ZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9SRUFETUUgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvUkVBRE1FCmluZGV4IDBmN2NjOWIuLjk3ZDBlOTQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9SRUFETUUKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL1JFQURNRQpAQCAtMTAsNjYgKzEwLDMxIEBACiBUaGlzIGxheWVyIGRlcGVuZHMgb246CiAKICAgVVJJOiBnaXQ6Ly9naXQub3BlbmVtYmVkZGVkLm9yZy9iaXRiYWtlCi0gIGJyYW5jaDogMS4zNgorICBicmFuY2g6IG1hc3RlcgogCiAgIFVSSTogZ2l0Oi8vZ2l0Lm9wZW5lbWJlZGRlZC5vcmcvb3BlbmVtYmVkZGVkLWNvcmUKICAgbGF5ZXJzOiBtZXRhCi0gIGJyYW5jaDogcm9ja28KKyAgYnJhbmNoOiBtYXN0ZXIKIAogICBVUkk6IGdpdDovL2dpdC5vcGVuZW1iZWRkZWQub3JnL21ldGEtb3BlbmVtYmVkZGVkCiAgIGxheWVyczogbWV0YS1vZQotICBicmFuY2g6IHJvY2tvCisgIGJyYW5jaDogbWFzdGVyCiAKIFBhdGNoZXMKID09PT09PT0KIAogUGxlYXNlIHN1Ym1pdCBhbnkgcGF0Y2hlcyBhZ2FpbnN0IHRoZSBmaWxlc3lzdGVtcyBsYXllciB0byB0aGUKIE9wZW5FbWJlZGRlZCBkZXZlbG9wbWVudCBtYWlsaW5nIGxpc3QgKG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnKQotd2l0aCAnW21ldGEtZmlsZXN5c3RlbXNdW3JvY2tvXScgaW4gdGhlIHN1YmplY3QuCit3aXRoICdbbWV0YS1maWxlc3lzdGVtc10nIGluIHRoZSBzdWJqZWN0LgogCi1NYWludGFpbmVycyBMaXN0OgotICBwaHlzZnMgICAgICBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0KLSAgZnVzZSAgICAgICAgS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KLSAgICAgICAgICAgICAgUGhpbGlwIEJhbGlzdGVyIDxwaGlsaXBAYmFsaXN0ZXIub3JnPgotICAgICAgICAgICAgICBob25neHUgamlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+Ci0KLSAgaWZ1c2UgICAgICAgU2FuZGVyIHZhbiBHcmlla2VuIDxzYW5kZXJAb3V0cmlnaHRzb2x1dGlvbnMubmw+Ci0gICAgICAgICAgICAgIEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+Ci0KLSAgc3NoZnMtZnVzZSAgUGhpbGlwIEJhbGlzdGVyIDxwaGlsaXBAYmFsaXN0ZXIub3JnPgotICAgICAgICAgICAgICBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotCi0gIG93ZnMgICAgICAgIE90YXZpbyBTYWx2YWRvciA8b3RhdmlvQG9zc3lzdGVtcy5jb20uYnI+Ci0gICAgICAgICAgICAgIEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+Ci0gICAgICAgICAgICAgIGhvbmd4dSBqaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KLQotICBudGZzLTNnLW50ZnNwcm9ncyAgT3RhdmlvIFNhbHZhZG9yIDxvdGF2aW9Ab3NzeXN0ZW1zLmNvbS5icj4KLSAgICAgICAgICAgICAgICAgICAgIGhvbmd4dSBqaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KLQotICBjcmFtZnMgICAgICBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotCi0gIHNtYm5ldGZzICAgIFNhbmRlciB2YW4gR3JpZWtlbiA8c2FuZGVyQG91dHJpZ2h0c29sdXRpb25zLm5sPgotICAgICAgICAgICAgICBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotCi0gIGZ1c2UtZXhmYXQgIGhvbmd4dSBqaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KLQotICBleGZhdC11dGlscyBob25neHUgamlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+Ci0KLSAgZjJmcy10b29scyAgTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgotICAgICAgICAgICAgICBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotCi0gIHhmc3Byb2dzICAgIEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+Ci0gICAgICAgICAgICAgIGhvbmd4dSBqaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KK0xheWVyIG1haW50YWluZXI6IEFybWluIEt1c3RlciA8YWt1c3RlcjgwOEBnbWFpbC5jb20+CiAKIFdoZW4gc2VuZGluZyBzaW5nbGUgcGF0Y2hlcywgcGxlYXNlIHVzZSBzb21ldGhpbmcgbGlrZToKIAogICAgZ2l0IHNlbmQtZW1haWwgLTEgLU0gXAogICAgICAgICAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIFwKLSAgICAgICAgLS1zdWJqZWN0LXByZWZpeD1tZXRhLWZpbGVzeXN0ZW1zXVtyb2Nrb11bUEFUQ0gKKyAgICAgICAgLS1zdWJqZWN0LXByZWZpeD1tZXRhLWZpbGVzeXN0ZW1zXVtQQVRDSAogCi1yb2NrbyBCcmFuY2ggTWFpbnRhaW5lcjoKLUFybWluIEt1c3RlciA8YWt1c3RlcjgwOEBnbWFpbC5jb20+CiAKIFRhYmxlIG9mIENvbnRlbnRzCiA9PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9jb25mL2xheWVyLmNvbmYKaW5kZXggOWVkNmQxYi4uZGJjZmY0MiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvY29uZi9sYXllci5jb25mCkBAIC0xNCwzICsxNCw1IEBACiBMQVlFUlZFUlNJT05fZmlsZXN5c3RlbXMtbGF5ZXIgPSAiMSIKIAogTEFZRVJERVBFTkRTX2ZpbGVzeXN0ZW1zLWxheWVyID0gImNvcmUgb3BlbmVtYmVkZGVkLWxheWVyIgorCitMQVlFUlNFUklFU19DT01QQVRfZmlsZXN5c3RlbXMtbGF5ZXIgPSAic3VtbyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzL1VzaW5nLVBLR19DSEVDS19NT0RVTEVTLXRvLWZvdW5kLWhlYWRlcnMtYW5kLWxpYnJhcmllcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzL1VzaW5nLVBLR19DSEVDS19NT0RVTEVTLXRvLWZvdW5kLWhlYWRlcnMtYW5kLWxpYnJhcmllcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDYwYzlkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtZmlsZXN5c3RlbXMvc21ibmV0ZnMvc21ibmV0ZnMvVXNpbmctUEtHX0NIRUNLX01PRFVMRVMtdG8tZm91bmQtaGVhZGVycy1hbmQtbGlicmFyaWVzLnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAKK0Zyb20gN2E1MjRkNDliM2Q0NDU5MjgwZjE4OTQyZGYyOTgwNjAzNDAwZWM1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJpYW4gTmFpbWVuZyA8Ymlhbm5tQGNuLmZ1aml0c3UuY29tPgorRGF0ZTogRnJpLCAxOSBKdW4gMjAxNSAxMTo1NDo0NCArMDkwMAorU3ViamVjdDogW1BBVENIXSBVc2luZyBQS0dfQ0hFQ0tfTU9EVUxFUyB0byBmb3VuZCBoZWFkZXJzIGFuZCBsaWJyYXJpZXMgb2YKKyBzbWJjbGllbnQKKworU2lnbmVkLW9mZi1ieTogQmlhbiBOYWltZW5nIDxiaWFubm1AY24uZnVqaXRzdS5jb20+CistLS0KKyBjb25maWd1cmUuaW4gICAgfCA1ICsrKysrCisgc3JjL01ha2VmaWxlLmFtIHwgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA0YzAzNDA5Li44ZDIyZTcxIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0xMTksNiArMTE5LDExIEBAIEFDX0NIRUNLX0xJQihzbWJjbGllbnQsIHNtYmNfc2V0T3B0aW9uVXNlQ0NhY2hlLCBbXSwgWworIExJQlM9IiRMSUJTICRTTUJDTElFTlRfTElCUyIKKyBDRkxBR1M9IiRDRkxBR1MgJFNNQkNMSUVOVF9DRkxBR1MiCisgCisrZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrZG5sICoqKiBDaGVjayBsaWJzbWJjbGllbnQgYnkgcGtnY29uZmlnIHRvIGdldCBjZmxhZ3MgYW5kIGxkZmxhZ3MgKioqCisrZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrUEtHX0NIRUNLX01PRFVMRVMoU01CQ0xJRU5ULCBzbWJjbGllbnQpCisrCisgZG5sICoqKioqKioqKioqKioqKioqKgorIGRubCAqKiogRmluYWwgc3RlcCAqKioKKyBkbmwgKioqKioqKioqKioqKioqKioqCitkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlLmFtIGIvc3JjL01ha2VmaWxlLmFtCitpbmRleCBjY2FhOGMzLi42NTk4MzE3IDEwMDY0NAorLS0tIGEvc3JjL01ha2VmaWxlLmFtCisrKysgYi9zcmMvTWFrZWZpbGUuYW0KK0BAIC0xNywzICsxNyw2IEBAIHNtYm5ldGZzX1NPVVJDRVMgPSBcCisgCWV2ZW50LmMJCQlldmVudC5oCQkJXAorIAlyZWNvbmZpZ3VyZS5jCQlyZWNvbmZpZ3VyZS5oCQlcCisgCW1haW4uYworKworK3NtYm5ldGZzX0NGTEFHUz0ke1NNQkNMSUVOVF9DRkxBR1N9Cisrc21ibmV0ZnNfTERGTEFHUz0ke1NNQkNMSUVOVF9MREZMQUdTfQorLS0gCisxLjguNC4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzL2NvbmZpZ3VyZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzL2NvbmZpZ3VyZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTI3NTY2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtZmlsZXN5c3RlbXMvc21ibmV0ZnMvc21ibmV0ZnMvY29uZmlndXJlLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKK0luZGV4OiBnaXQvY29uZmlndXJlLmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2l0Lm9yaWcvY29uZmlndXJlLmFjCTIwMTQtMDYtMTggMTY6MDY6MTYuMDQwNzIxMzQ5ICswMDAwCisrKysgZ2l0L2NvbmZpZ3VyZS5hYwkyMDE0LTA3LTE4IDA3OjQ5OjE3LjA4NTU1MjI1NiArMDAwMAorQEAgLTEsNSArMSw1IEBACisgQUNfSU5JVChbU01CTmV0RlNdLFswLjYuMV0pCistQU1fSU5JVF9BVVRPTUFLRQorK0FNX0lOSVRfQVVUT01BS0UoW2ZvcmVpZ25dKQorIEFDX0NPTkZJR19IRUFERVJTKFtzcmMvY29uZmlnLmhdKQorIEFDX1BST0dfQ0MKKyAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzI5MzZjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtZmlsZXN5c3RlbXMvc21ibmV0ZnMvc21ibmV0ZnNfZ2l0LmJiCkBAIC0wLDAgKzEsMzMgQEAKK1NVTU1BUlkgPSAiRlVTRSBtb2R1bGUgZm9yIG1vdW50aW5nIGFuIGVudGlyZSBTTUIvTk1CIG5ldHdvcmsgaW4gYSBzaW5nbGUgZGlyZWN0b3J5IgorREVTQ1JJUFRJT04gPSAiU01CTmV0RlMgaXMgYSBMaW51eC9GcmVlQlNEIGZpbGVzeXN0ZW0gdGhhdCBhbGxvdyB5b3UgdG8gdXNlIFwKKyAgICAgICAgICAgICAgIHNhbWJhL21pY3Jvc29mdCBuZXR3b3JrIGluIHRoZSBzYW1lIG1hbm5lciBhcyB0aGUgbmV0d29yayBcCisgICAgICAgICAgICAgICBuZWlnaGJvcmhvb2QgaW4gTWljcm9zb2Z0IFdpbmRvd3MuIFBsZWFzZSBkb25hdGUgbWUgdG8gaGVscCBcCisgICAgICAgICAgICAgICBpbiBTTUJOZXRGUyBkZXZlbG9wbWVudC4iCisKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1lYjcyM2I2MTUzOWZlZWYwMTNkZTQ3NmU2OGI1YzUwYSIKK0hPTUVQQUdFID0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9zbWJuZXRmcyIKKworREVQRU5EUyA9ICJmdXNlIHNhbWJhIgorREVQRU5EU19hcHBlbmRfbGliYy1tdXNsID0gIiBsaWJleGVjaW5mbyIKKworIyBzYW1iYSBkZXBlbmRzIG9uIGxpYnBhbQoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJwYW0iCisKK2luaGVyaXQgYXV0b3Rvb2xzIGdpdHBrZ3YgcGtnY29uZmlnCisKK1BLR1YgPSAiJHtHSVRQS0dWVEFHfSIKKworU1JDUkVWID0gImJjNmI5NGIwMTVmZGFmN2M0ZGFiNTZjY2I5OTZlZWNlYThiYzQzNzMiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vc21ibmV0ZnMuZ2l0LnNvdXJjZWZvcmdlLm5ldC9naXRyb290L3NtYm5ldGZzL3NtYm5ldGZzO2JyYW5jaD1tYXN0ZXIgXAorICAgICAgICAgICBmaWxlOi8vY29uZmlndXJlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL1VzaW5nLVBLR19DSEVDS19NT0RVTEVTLXRvLWZvdW5kLWhlYWRlcnMtYW5kLWxpYnJhcmllcy5wYXRjaCIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiIKK1BBQ0tBR0VDT05GSUdbbGlic2VjcmV0XSA9ICItLXdpdGgtbGlic2VjcmV0PXllcywtLXdpdGgtbGlic2VjcmV0PW5vLGxpYnNlY3JldCIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworTERGTEFHU19hcHBlbmRfbGliYy1tdXNsID0gIiAtbGV4ZWNpbmZvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMvYXVmcy11dGlsL2F1ZnMtdXRpbC8wMDAxLWxpYmF1LURlZmluZS1TVFJJUC13ZWFrbHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy9hdWZzLXV0aWwvYXVmcy11dGlsLzAwMDEtbGliYXUtRGVmaW5lLVNUUklQLXdlYWtseS5wYXRjaAppbmRleCA5ZWZlYTgwLi42NzMyZGM0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy9hdWZzLXV0aWwvYXVmcy11dGlsLzAwMDEtbGliYXUtRGVmaW5lLVNUUklQLXdlYWtseS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy9hdWZzLXV0aWwvYXVmcy11dGlsLzAwMDEtbGliYXUtRGVmaW5lLVNUUklQLXdlYWtseS5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gYmI4ODAxZmIyMWFjOGQ3M2UzYjFhMTFhODU1NWFhZjgyMjE4MmE1MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZGFmMDRkYzljYTFmMmU0YzY1ZWMzMzhhYjQzOWUwYTc5MmUxYThhYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBUdWUsIDUgU2VwIDIwMTcgMTA6MzY6NTIgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gbGliYXU6IERlZmluZSBTVFJJUCB3ZWFrbHkKQEAgLTYsMTAgKzYsMTEgQEAKIFNUUklQIGNhbiBiZSBzZXQgb24gZW52aXJvbm1lbnQgdG8gdXNlIGNyb3NzIHZlcnNpb24gb2Ygc3RyaXAgdXRpbGl0eQogaGFyZGNvZGluZyB0byBzdHJpcCBpcyBub3Qgd29ya2luZyBpbiBjcm9zcyBlbnZpcm9ubWVudAogCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCiBVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZAogCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCistLS0KICBsaWJhdS9NYWtlZmlsZSB8IDMgKystCiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogCkBAIC0zNCw2ICszNSwzIEBACiAgIwlyZWFkZWxmIC0tc3ltcyAtLXVzZS1keW5hbWljIGxpYmF1LnNvCiAgCiAgaW5zdGFsbF91bGliOiBGaWxlID0gJHtMaWJTb30uJHtMaWJTb01ham9yfS4ke0xpYlNvTWlub3J9Ci0tLSAKLTIuMTQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy9hdWZzLXV0aWwvYXVmcy11dGlsL2F1ZnMtdXRpbC1hZGQtdG9vbC1jb25jZXB0LXRvLU1ha2VmaWxlLWZvci1jcm9zcy1jb20ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy9hdWZzLXV0aWwvYXVmcy11dGlsL2F1ZnMtdXRpbC1hZGQtdG9vbC1jb25jZXB0LXRvLU1ha2VmaWxlLWZvci1jcm9zcy1jb20ucGF0Y2gKaW5kZXggNWMzNTU4Ni4uYzgzMjY5NiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMvYXVmcy11dGlsL2F1ZnMtdXRpbC9hdWZzLXV0aWwtYWRkLXRvb2wtY29uY2VwdC10by1NYWtlZmlsZS1mb3ItY3Jvc3MtY29tLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL2F1ZnMtdXRpbC9hdWZzLXV0aWwvYXVmcy11dGlsLWFkZC10b29sLWNvbmNlcHQtdG8tTWFrZWZpbGUtZm9yLWNyb3NzLWNvbS5wYXRjaApAQCAtMSwzICsxLDYgQEAKK0Zyb20gMTNhNjBjNjMxZDdjZjZjN2UxOTI2NDczZDgwNjk3OTVjMGRlZjliNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENoZW4gUWkgPFFpLkNoZW5Ad2luZHJpdmVyLmNvbT4KK0RhdGU6IFRodSwgMTkgSnVuIDIwMTQgMTU6MDk6NTYgKzAxMDAKIFN1YmplY3Q6IFtQQVRDSF0gYXVmcy11dGlsOiBhZGQgdG9vbCBjb25jZXB0IHRvIE1ha2VmaWxlIGZvciBjcm9zcyBjb21waWxpbmcKICBwdXJwb3NlCiAKQEAgLTcsMjMgKzEwLDIxIEBACiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAogU2lnbmVkLW9mZi1ieTogQ2hlbiBRaSA8UWkuQ2hlbkB3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBNYWtlZmlsZSB8ICAgIDIgKy0KKyBNYWtlZmlsZSB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKLWluZGV4IDJmOTA1YWQuLjQ5YzNjZDUgMTAwNjQ0CitpbmRleCBkYmJlNDNkLi5hZmY5NjllIDEwMDY0NAogLS0tIGEvTWFrZWZpbGUKICsrKyBiL01ha2VmaWxlCi1AQCAtODUsNyArODUsNyBAQCBhdWZzLjU6IGF1ZnMuaW4uNSBjMnRtYWMKK0BAIC0xNTIsNyArMTUyLDcgQEAgYXVmcy41OiBhdWZzLmluLjUgYzJ0bWFjCiAgCWNobW9kIGEtdyAkQAogIAogIGMyc2ggYzJ0bWFjIHZlcjogQ0MgPSAke0hPU1RDQ30KIC0uSU5URVJNRURJQVRFOiBjMnNoIGMydG1hYyB2ZXIKICt0b29sczogYzJzaCBjMnRtYWMgdmVyCiAgCi0gSW5zdGFsbCA9IGluc3RhbGwgLW8gcm9vdCAtZyByb290IC1wCi0gaW5zdGFsbF9zYmluOiBGaWxlID0gYXVpYnVzeSBhdXBsaW5rIG1vdW50LmF1ZnMgdW1vdW50LmF1ZnMKLS0tIAotMS43LjkuNQotCisgaW5zdGFsbF9zYmluOiBGaWxlID0gYXVpYnVzeSBhdW12ZG93biBhdXBsaW5rIG1vdW50LmF1ZnMgdW1vdW50LmF1ZnMKKyBpZmVxICgke0dsaWJjfSxubykKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL2F1ZnMtdXRpbC9hdWZzLXV0aWwvYXVmcy11dGlsLWRvbi10LXN0cmlwLWV4ZWN1dGFibGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMvYXVmcy11dGlsL2F1ZnMtdXRpbC9hdWZzLXV0aWwtZG9uLXQtc3RyaXAtZXhlY3V0YWJsZXMucGF0Y2gKaW5kZXggZmUyYTZhNS4uYjQwODIyYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMvYXVmcy11dGlsL2F1ZnMtdXRpbC9hdWZzLXV0aWwtZG9uLXQtc3RyaXAtZXhlY3V0YWJsZXMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMvYXVmcy11dGlsL2F1ZnMtdXRpbC9hdWZzLXV0aWwtZG9uLXQtc3RyaXAtZXhlY3V0YWJsZXMucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDI0NDg2M2VjYTc3ZmNhYTExODc4ODQ4MzZjM2UyOGQ2YjZkMTUwNGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDlkNWU3ZWZmNGFlOTA2ZjFlYTZlNjUyNzA4MGZkZWQwYjU5NWZiZDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBCcnVjZSBBc2hmaWVsZCA8YnJ1Y2UuYXNoZmllbGRAd2luZHJpdmVyLmNvbT4KIERhdGU6IFR1ZSwgOSBBcHIgMjAxMyAxODo1MDozNCAtMDcwMAogU3ViamVjdDogW1BBVENIXSBhdWZzLXV0aWw6IGRvbid0IHN0cmlwIGV4ZWN1dGFibGVzCkBAIC0xNCwxNiArMTQsMTkgQEAKIAogVG8gcHJldmVudCB0aGlzLCB3ZSByZW1vdmUgLXMgZnJvbSBMREZMQUdTLgogCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW29lIHNwZWNpZmljXQorCiBTaWduZWQtb2ZmLWJ5OiBCcnVjZSBBc2hmaWVsZCA8YnJ1Y2UuYXNoZmllbGRAd2luZHJpdmVyLmNvbT4KKwogLS0tCi0gTWFrZWZpbGUgfCAgICAyICstCisgTWFrZWZpbGUgfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCi1pbmRleCAyZjkwNWFkLi5lMGM2ZGNkIDEwMDY0NAoraW5kZXggNTRmOGQ5Ny4uZGJiZTQzZCAxMDA2NDQKIC0tLSBhL01ha2VmaWxlCiArKysgYi9NYWtlZmlsZQotQEAgLTU2LDcgKzU2LDcgQEAgYWxsOiB2ZXJfdGVzdCAke01hbn0gJHtCaW59ICR7RXRjfQorQEAgLTExOCw3ICsxMTgsNyBAQCBjbGVhbjoKICB2ZXJfdGVzdDogdmVyCiAgCS4vdmVyCiAgCkBAIC0zMiw2ICszNSwzIEBACiAgJHtCaW59OiBMRExJQlMgPSAtTC4gLWxhdXRpbAogICR7QmluT2JqfTogJS5vOiAlLmMgJHtMaWJVdGlsSGRyfSAke0xpYlV0aWx9CiAgCi0tLSAKLTEuNy4xMC40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc2R1bXAveGZzZHVtcF8zLjEuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc2R1bXAveGZzZHVtcF8zLjEuNy5iYgppbmRleCAwYWM5OTFiLi4zOWYxMTg5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNkdW1wL3hmc2R1bXBfMy4xLjcuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzZHVtcC94ZnNkdW1wXzMuMS43LmJiCkBAIC0zNCw2ICszNCw4IEBACiAKIGRvX2NvbmZpZ3VyZSAoKSB7CiAgICAgZXhwb3J0IERFQlVHPSItRE5ERUJVRyIKKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtTVEFHSU5HX0RBVEFESVJfTkFUSVZFfS9nbnUtY29uZmlnL2NvbmZpZy5ndWVzcyAke1N9CisgICAgaW5zdGFsbCAtbSAwNzU1ICR7U1RBR0lOR19EQVRBRElSX05BVElWRX0vZ251LWNvbmZpZy9jb25maWcuc3ViICR7U30KICAgICBvZV9ydW5jb25mCiB9CiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc3Byb2dzL2ZpbGVzLzAwMDEtYnVpbGQtQ2hlY2stZm9yLXN5bmNfZmlsZV9yYW5nZS1saWJjLWZ1bmN0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvMDAwMS1idWlsZC1DaGVjay1mb3Itc3luY19maWxlX3JhbmdlLWxpYmMtZnVuY3Rpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhmZjU1NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc3Byb2dzL2ZpbGVzLzAwMDEtYnVpbGQtQ2hlY2stZm9yLXN5bmNfZmlsZV9yYW5nZS1saWJjLWZ1bmN0aW9uLnBhdGNoCkBAIC0wLDAgKzEsODIgQEAKK0Zyb20gYWU3MTcyMTk0ZDNmYmI1NjNmZjhiYmU3YzAyZDM0ZjFiZDBlNWVjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBXZWQsIDMxIEphbiAyMDE4IDIxOjI4OjUzIC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIGJ1aWxkOiBDaGVjayBmb3Igc3luY19maWxlX3JhbmdlIGxpYmMgZnVuY3Rpb24KKworZ2xpYmMgMi4yNyBub3cgaGFzIHN5bmNfZmlsZV9yYW5nZSgpCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCisgaW5jbHVkZS9idWlsZGRlZnMuaW4gfCAxICsKKyBpby9NYWtlZmlsZSAgICAgICAgICB8IDUgKysrKy0KKyBpby9pby5oICAgICAgICAgICAgICB8IDIgKy0KKyBpby9zeW5jX2ZpbGVfcmFuZ2UuYyB8IDMgKysrCisgNCBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2J1aWxkZGVmcy5pbiBiL2luY2x1ZGUvYnVpbGRkZWZzLmluCitpbmRleCA5MmQ1MDc2Li41MDQyMjVhIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9idWlsZGRlZnMuaW4KKysrKyBiL2luY2x1ZGUvYnVpbGRkZWZzLmluCitAQCAtMTA1LDYgKzEwNSw3IEBAIEhBVkVfRklFTUFQID0gQGhhdmVfZmllbWFwQAorIEhBVkVfUFJFQURWID0gQGhhdmVfcHJlYWR2QAorIEhBVkVfUFdSSVRFVjIgPSBAaGF2ZV9wd3JpdGV2MkAKKyBIQVZFX0NPUFlfRklMRV9SQU5HRSA9IEBoYXZlX2NvcHlfZmlsZV9yYW5nZUAKKytIQVZFX05SX0NPUFlfRklMRV9SQU5HRSA9IEBoYXZlX25yX2NvcHlfZmlsZV9yYW5nZUAKKyBIQVZFX1NZTkNfRklMRV9SQU5HRSA9IEBoYXZlX3N5bmNfZmlsZV9yYW5nZUAKKyBIQVZFX1NZTkNGUyA9IEBoYXZlX3N5bmNmc0AKKyBIQVZFX1JFQURESVIgPSBAaGF2ZV9yZWFkZGlyQAorZGlmZiAtLWdpdCBhL2lvL01ha2VmaWxlIGIvaW8vTWFrZWZpbGUKK2luZGV4IDY3MjU5MzYuLjE4NzZlOTUgMTAwNjQ0CistLS0gYS9pby9NYWtlZmlsZQorKysrIGIvaW8vTWFrZWZpbGUKK0BAIC01OSwxMCArNTksMTMgQEAgQ0ZJTEVTICs9IGluamVjdC5jIHJlc2Jsa3MuYworIExDRkxBR1MgKz0gLURIQVZFX0lOSkVDVCAtREhBVkVfUkVTQkxLUworIGVuZGlmCisgCistaWZlcSAoJChIQVZFX0NPUFlfRklMRV9SQU5HRSkseWVzKQorK2lmZXEgKCQoSEFWRV9OUl9DT1BZX0ZJTEVfUkFOR0UpLHllcykKKyBDRklMRVMgKz0gY29weV9maWxlX3JhbmdlLmMKKytMQ0ZMQUdTICs9IC1ESEFWRV9OUl9DT1BZX0ZJTEVfUkFOR0UKKytpZmVxICgkKEhBVkVfQ09QWV9GSUxFX1JBTkdFKSx5ZXMpCisgTENGTEFHUyArPSAtREhBVkVfQ09QWV9GSUxFX1JBTkdFCisgZW5kaWYKKytlbmRpZgorIAorIGlmZXEgKCQoSEFWRV9TWU5DX0ZJTEVfUkFOR0UpLHllcykKKyBDRklMRVMgKz0gc3luY19maWxlX3JhbmdlLmMKK2RpZmYgLS1naXQgYS9pby9pby5oIGIvaW8vaW8uaAoraW5kZXggMzg2Mjk4NS4uNzlkZGM3YiAxMDA2NDQKKy0tLSBhL2lvL2lvLmgKKysrKyBiL2lvL2lvLmgKK0BAIC0xNTgsNyArMTU4LDcgQEAgZXh0ZXJuIHZvaWQJCWZpZW1hcF9pbml0KHZvaWQpOworICNkZWZpbmUgZmllbWFwX2luaXQoKQlkbyB7IH0gd2hpbGUgKDApCisgI2VuZGlmCisgCistI2lmZGVmIEhBVkVfQ09QWV9GSUxFX1JBTkdFCisrI2lmIGRlZmluZWQoSEFWRV9OUl9DT1BZX0ZJTEVfUkFOR0UpICYmICFkZWZpbmVkKEhBVkVfQ09QWV9GSUxFX1JBTkdFKQorIGV4dGVybiB2b2lkCQljb3B5X3JhbmdlX2luaXQodm9pZCk7CisgI2Vsc2UKKyAjZGVmaW5lIGNvcHlfcmFuZ2VfaW5pdCgpCWRvIHsgfSB3aGlsZSAoMCkKK2RpZmYgLS1naXQgYS9pby9zeW5jX2ZpbGVfcmFuZ2UuYyBiL2lvL3N5bmNfZmlsZV9yYW5nZS5jCitpbmRleCA3ZTRmM2U2Li5hYWZlYTAxIDEwMDY0NAorLS0tIGEvaW8vc3luY19maWxlX3JhbmdlLmMKKysrKyBiL2lvL3N5bmNfZmlsZV9yYW5nZS5jCitAQCAtMTYsNiArMTYsNyBAQAorICAqIEluYy4sICA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICAqLworIAorKyNpZm5kZWYgSEFWRV9DT1BZX0ZJTEVfUkFOR0UKKyAjaW5jbHVkZSAiY29tbWFuZC5oIgorICNpbmNsdWRlICJpbnB1dC5oIgorICNpbmNsdWRlICJpbml0LmgiCitAQCAtMTA0LDMgKzEwNSw1IEBAIHN5bmNfcmFuZ2VfaW5pdCh2b2lkKQorIAorIAlhZGRfY29tbWFuZCgmc3luY19yYW5nZV9jbWQpOworIH0KKysKKysjZW5kaWYKKy0tIAorMi4xNi4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc3Byb2dzL2ZpbGVzLzAwMDEteGZzLXJlbW92ZS1kb3VibGUtdW5kZXJzY29yZS1pbnRlZ2VyLXR5cGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvMDAwMS14ZnMtcmVtb3ZlLWRvdWJsZS11bmRlcnNjb3JlLWludGVnZXItdHlwZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0N2M0ODcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvMDAwMS14ZnMtcmVtb3ZlLWRvdWJsZS11bmRlcnNjb3JlLWludGVnZXItdHlwZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMDgyICswLDAgQEAKLUZyb20gNGE0OTJlNzI1MTU1MDllZTcwMjI4NmE0MmFmZTdkOGY4OWQzNzYzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ICJEYXJyaWNrIEouIFdvbmciIDxkYXJyaWNrLndvbmdAb3JhY2xlLmNvbT4KLURhdGU6IE1vbiwgMzEgSnVsIDIwMTcgMTU6MDg6MTAgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0geGZzOiByZW1vdmUgZG91YmxlLXVuZGVyc2NvcmUgaW50ZWdlciB0eXBlcwotCi1Tb3VyY2Uga2VybmVsIGNvbW1pdDogYzhjZTU0MGRiNWY2N2QyNTRhYWZiMTRiNWQ3NjQyMmM2MmE5MDZkZgotCi1UaGlzIGlzIGEgcHVyZWx5IG1lY2hhbmljYWwgcGF0Y2ggdGhhdCByZW1vdmVzIHRoZSBwcml2YXRlCi1fX3t1LH1pbnR7OCwxNiwzMiw2NH1fdCB0eXBlZGVmcyBpbiBmYXZvciBvZiB1c2luZyB0aGUgc3lzdGVtCi17dSx9aW50ezgsMTYsMzIsNjR9X3QgdHlwZWRlZnMuICBUaGlzIGlzIHRoZSBzZWQgc2NyaXB0IHVzZWQgdG8gcGVyZm9ybQotdGhlIHRyYW5zZm9ybWF0aW9uIGFuZCBmaXggdGhlIHJlc3VsdGluZyB3aGl0ZXNwYWNlIGFuZCBpbmRlbnRhdGlvbgotZXJyb3JzOgotCi1zL3R5cGVkZWZcdF9fdWludDhfdC90eXBlZGVmIF9fdWludDhfdFx0L2cKLXMvdHlwZWRlZlx0X191aW50L3R5cGVkZWYgX191aW50L2cKLXMvdHlwZWRlZlx0X19pbnRcKFswLTldKlwpX3QvdHlwZWRlZiBpbnRcMV90XHQvZwotcy9fX3VpbnQ4X3RcdC9fX3VpbnQ4X3RcdFx0L2cKLXMvX191aW50L3VpbnQvZwotcy9fX2ludFwoWzAtOV0qXClfdFx0L19faW50XDFfdFx0XHQvZwotcy9fX2ludC9pbnQvZwotL150eXBlZGVmLippbnRbMC05XSpfdDskL2QKLQotU2lnbmVkLW9mZi1ieTogRGFycmljayBKLiBXb25nIDxkYXJyaWNrLndvbmdAb3JhY2xlLmNvbT4KLVJldmlld2VkLWJ5OiBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGxzdC5kZT4KLVNpZ25lZC1vZmYtYnk6IEVyaWMgU2FuZGVlbiA8c2FuZGVlbkBzYW5kZWVuLm5ldD4KLS0tLQotIGxpYnhmcy9saWJ4ZnNfcHJpdi5oICAgICAgICB8ICAgMSArCi0gbGlieGZzL3hmc19hbGxvY19idHJlZS5jICAgIHwgIDIwICsrLS0KLSBsaWJ4ZnMveGZzX2F0dHJfcmVtb3RlLmMgICAgfCAgIDggKy0KLSBsaWJ4ZnMveGZzX2F0dHJfc2YuaCAgICAgICAgfCAgMTAgKy0KLSBsaWJ4ZnMveGZzX2JpdC5oICAgICAgICAgICAgfCAgMjQgKystLS0KLSBsaWJ4ZnMveGZzX2JtYXBfYnRyZWUuYyAgICAgfCAgIDggKy0KLSBsaWJ4ZnMveGZzX2J0cmVlLmMgICAgICAgICAgfCAgMjIgKystLQotIGxpYnhmcy94ZnNfYnRyZWUuaCAgICAgICAgICB8ICAxOCArKy0tCi0gbGlieGZzL3hmc19ja3N1bS5oICAgICAgICAgIHwgIDE2ICstLQotIGxpYnhmcy94ZnNfZGFfYnRyZWUuYyAgICAgICB8ICAgMiArLQotIGxpYnhmcy94ZnNfZGFfYnRyZWUuaCAgICAgICB8ICAgOCArLQotIGxpYnhmcy94ZnNfZGFfZm9ybWF0LmMgICAgICB8ICAyOCArKy0tLQotIGxpYnhmcy94ZnNfZGFfZm9ybWF0LmggICAgICB8ICA2NCArKysrKy0tLS0tLQotIGxpYnhmcy94ZnNfZGlyMi5oICAgICAgICAgICB8ICAgOCArLQotIGxpYnhmcy94ZnNfZGlyMl9sZWFmLmMgICAgICB8ICAxMiArLS0KLSBsaWJ4ZnMveGZzX2RpcjJfcHJpdi5oICAgICAgfCAgIDIgKy0KLSBsaWJ4ZnMveGZzX2RpcjJfc2YuYyAgICAgICAgfCAgIDQgKy0KLSBsaWJ4ZnMveGZzX2Zvcm1hdC5oICAgICAgICAgfCAxMTIgKysrKysrKysrLS0tLS0tLS0tLQotIGxpYnhmcy94ZnNfZnMuaCAgICAgICAgICAgICB8ICAxMiArLS0KLSBsaWJ4ZnMveGZzX2lhbGxvYy5jICAgICAgICAgfCAgIDYgKy0KLSBsaWJ4ZnMveGZzX2lhbGxvY19idHJlZS5jICAgfCAgIDQgKy0KLSBsaWJ4ZnMveGZzX2lub2RlX2J1Zi5jICAgICAgfCAgIDIgKy0KLSBsaWJ4ZnMveGZzX2lub2RlX2J1Zi5oICAgICAgfCAgMjggKystLS0KLSBsaWJ4ZnMveGZzX2xvZ19mb3JtYXQuaCAgICAgfCAyNTYgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBsaWJ4ZnMveGZzX3F1b3RhX2RlZnMuaCAgICAgfCAgIDQgKy0KLSBsaWJ4ZnMveGZzX3JlZmNvdW50X2J0cmVlLmMgfCAgIDggKy0KLSBsaWJ4ZnMveGZzX3JtYXAuYyAgICAgICAgICAgfCAgIDggKy0KLSBsaWJ4ZnMveGZzX3JtYXAuaCAgICAgICAgICAgfCAgIDggKy0KLSBsaWJ4ZnMveGZzX3JtYXBfYnRyZWUuYyAgICAgfCAgMzAgKysrLS0tCi0gbGlieGZzL3hmc19ydGJpdG1hcC5jICAgICAgIHwgICAyICstCi0gbGlieGZzL3hmc19zYi5jICAgICAgICAgICAgIHwgICA0ICstCi0gbGlieGZzL3hmc190eXBlcy5oICAgICAgICAgIHwgIDQ2ICsrKystLS0tCi0gMzIgZmlsZXMgY2hhbmdlZCwgMzkzIGluc2VydGlvbnMoKyksIDM5MiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYnhmcy9saWJ4ZnNfcHJpdi5oIGIvbGlieGZzL2xpYnhmc19wcml2LmgKLWluZGV4IDBiNGM0ODkwLi5iM2NjN2U1MyAxMDA2NDQKLS0tLSBhL2xpYnhmcy9saWJ4ZnNfcHJpdi5oCi0rKysgYi9saWJ4ZnMvbGlieGZzX3ByaXYuaAotQEAgLTUwNCw1ICs1MDQsNiBAQCBib29sIHhmc19sb2dfY2hlY2tfbHNuKHN0cnVjdCB4ZnNfbW91bnQgKiwgeGZzX2xzbl90KTsKLSAjZGVmaW5lIFhGU19TVEFUU19JTkNfT0ZGKG1wLCBvZmYpCi0gI2RlZmluZSBYRlNfU1RBVFNfQUREX09GRihtcCwgb2ZmLCB2YWwpCi0gCi0rdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHU4OwotIAotICNlbmRpZgkvKiBfX0xJQlhGU19JTlRFUk5BTF9YRlNfSF9fICovCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19hbGxvY19idHJlZS5jIGIvbGlieGZzL3hmc19hbGxvY19idHJlZS5jCi1pbmRleCBlMTFkODlhMy4uOGU3N2U2ZTMgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2FsbG9jX2J0cmVlLmMKLSsrKyBiL2xpYnhmcy94ZnNfYWxsb2NfYnRyZWUuYwotQEAgLTI1MSw3ICsyNTEsNyBAQCB4ZnNfYWxsb2NidF9pbml0X3B0cl9mcm9tX2N1cigKLSAJcHRyLT5zID0gYWdmLT5hZ2Zfcm9vdHNbY3VyLT5iY19idG51bV07Ci0gfQotIAotLVNUQVRJQyBfX2ludDY0X3QKLStTVEFUSUMgaW50NjRfdAotIHhmc19ibm9idF9rZXlfZGlmZigKLSAJc3RydWN0IHhmc19idHJlZV9jdXIJKmN1ciwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqa2V5KQotQEAgLTI1OSw0MiArMjU5LDQyIEBAIHhmc19ibm9idF9rZXlfZGlmZigKLSAJeGZzX2FsbG9jX3JlY19pbmNvcmVfdAkqcmVjID0gJmN1ci0+YmNfcmVjLmE7Ci0gCXhmc19hbGxvY19rZXlfdAkJKmtwID0gJmtleS0+YWxsb2M7Ci0gCi0tCXJldHVybiAoX19pbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5hcl9zdGFydGJsb2NrKSAtIHJlYy0+YXJfc3RhcnRibG9jazsKLSsJcmV0dXJuIChpbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5hcl9zdGFydGJsb2NrKSAtIHJlYy0+YXJfc3RhcnRibG9jazsKLSB9Ci0gCi0tU1RBVElDIF9faW50NjRfdAotK1NUQVRJQyBpbnQ2NF90Ci0geGZzX2NudGJ0X2tleV9kaWZmKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprZXkpCi0gewotIAl4ZnNfYWxsb2NfcmVjX2luY29yZV90CSpyZWMgPSAmY3VyLT5iY19yZWMuYTsKLSAJeGZzX2FsbG9jX2tleV90CQkqa3AgPSAma2V5LT5hbGxvYzsKLS0JX19pbnQ2NF90CQlkaWZmOwotKwlpbnQ2NF90CQkJZGlmZjsKLSAKLS0JZGlmZiA9IChfX2ludDY0X3QpYmUzMl90b19jcHUoa3AtPmFyX2Jsb2NrY291bnQpIC0gcmVjLT5hcl9ibG9ja2NvdW50OwotKwlkaWZmID0gKGludDY0X3QpYmUzMl90b19jcHUoa3AtPmFyX2Jsb2NrY291bnQpIC0gcmVjLT5hcl9ibG9ja2NvdW50OwotIAlpZiAoZGlmZikKLSAJCXJldHVybiBkaWZmOwotIAotLQlyZXR1cm4gKF9faW50NjRfdCliZTMyX3RvX2NwdShrcC0+YXJfc3RhcnRibG9jaykgLSByZWMtPmFyX3N0YXJ0YmxvY2s7Ci0rCXJldHVybiAoaW50NjRfdCliZTMyX3RvX2NwdShrcC0+YXJfc3RhcnRibG9jaykgLSByZWMtPmFyX3N0YXJ0YmxvY2s7Ci0gfQotIAotLVNUQVRJQyBfX2ludDY0X3QKLStTVEFUSUMgaW50NjRfdAotIHhmc19ibm9idF9kaWZmX3R3b19rZXlzKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprMSwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqazIpCi0gewotLQlyZXR1cm4gKF9faW50NjRfdCliZTMyX3RvX2NwdShrMS0+YWxsb2MuYXJfc3RhcnRibG9jaykgLQotKwlyZXR1cm4gKGludDY0X3QpYmUzMl90b19jcHUoazEtPmFsbG9jLmFyX3N0YXJ0YmxvY2spIC0KLSAJCQkgIGJlMzJfdG9fY3B1KGsyLT5hbGxvYy5hcl9zdGFydGJsb2NrKTsKLSB9Ci0gCi0tU1RBVElDIF9faW50NjRfdAotK1NUQVRJQyBpbnQ2NF90Ci0geGZzX2NudGJ0X2RpZmZfdHdvX2tleXMoCi0gCXN0cnVjdCB4ZnNfYnRyZWVfY3VyCSpjdXIsCi0gCXVuaW9uIHhmc19idHJlZV9rZXkJKmsxLAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprMikKLSB7Ci0tCV9faW50NjRfdAkJZGlmZjsKLSsJaW50NjRfdAkJCWRpZmY7Ci0gCi0gCWRpZmYgPSAgYmUzMl90b19jcHUoazEtPmFsbG9jLmFyX2Jsb2NrY291bnQpIC0KLSAJCWJlMzJfdG9fY3B1KGsyLT5hbGxvYy5hcl9ibG9ja2NvdW50KTsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2F0dHJfcmVtb3RlLmMgYi9saWJ4ZnMveGZzX2F0dHJfcmVtb3RlLmMKLWluZGV4IGFiZTE3MDUyLi4xZjI1ZTM2MyAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfYXR0cl9yZW1vdGUuYwotKysrIGIvbGlieGZzL3hmc19hdHRyX3JlbW90ZS5jCi1AQCAtMjQ4LDcgKzI0OCw3IEBAIHhmc19hdHRyX3JtdHZhbF9jb3B5b3V0KAotIAl4ZnNfaW5vX3QJaW5vLAotIAlpbnQJCSpvZmZzZXQsCi0gCWludAkJKnZhbHVlbGVuLAotLQlfX3VpbnQ4X3QJKipkc3QpCi0rCXVpbnQ4X3QJCSoqZHN0KQotIHsKLSAJY2hhcgkJKnNyYyA9IGJwLT5iX2FkZHI7Ci0gCXhmc19kYWRkcl90CWJubyA9IGJwLT5iX2JuOwotQEAgLTI5Niw3ICsyOTYsNyBAQCB4ZnNfYXR0cl9ybXR2YWxfY29weWluKAotIAl4ZnNfaW5vX3QJaW5vLAotIAlpbnQJCSpvZmZzZXQsCi0gCWludAkJKnZhbHVlbGVuLAotLQlfX3VpbnQ4X3QJKipzcmMpCi0rCXVpbnQ4X3QJCSoqc3JjKQotIHsKLSAJY2hhcgkJKmRzdCA9IGJwLT5iX2FkZHI7Ci0gCXhmc19kYWRkcl90CWJubyA9IGJwLT5iX2JuOwotQEAgLTM1MCw3ICszNTAsNyBAQCB4ZnNfYXR0cl9ybXR2YWxfZ2V0KAotIAlzdHJ1Y3QgeGZzX21vdW50CSptcCA9IGFyZ3MtPmRwLT5pX21vdW50OwotIAlzdHJ1Y3QgeGZzX2J1ZgkJKmJwOwotIAl4ZnNfZGFibGtfdAkJbGJsa25vID0gYXJncy0+cm10Ymxrbm87Ci0tCV9fdWludDhfdAkJKmRzdCA9IGFyZ3MtPnZhbHVlOwotKwl1aW50OF90CQkJKmRzdCA9IGFyZ3MtPnZhbHVlOwotIAlpbnQJCQl2YWx1ZWxlbjsKLSAJaW50CQkJbm1hcDsKLSAJaW50CQkJZXJyb3I7Ci1AQCAtNDE2LDcgKzQxNiw3IEBAIHhmc19hdHRyX3JtdHZhbF9zZXQoCi0gCXN0cnVjdCB4ZnNfYm1idF9pcmVjCW1hcDsKLSAJeGZzX2RhYmxrX3QJCWxibGtubzsKLSAJeGZzX2ZpbGVvZmZfdAkJbGZpbGVvZmYgPSAwOwotLQlfX3VpbnQ4X3QJCSpzcmMgPSBhcmdzLT52YWx1ZTsKLSsJdWludDhfdAkJCSpzcmMgPSBhcmdzLT52YWx1ZTsKLSAJaW50CQkJYmxrY250OwotIAlpbnQJCQl2YWx1ZWxlbjsKLSAJaW50CQkJbm1hcDsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2F0dHJfc2YuaCBiL2xpYnhmcy94ZnNfYXR0cl9zZi5oCi1pbmRleCA5MDkyOGJiZS4uYWZkNjg0YWUgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2F0dHJfc2YuaAotKysrIGIvbGlieGZzL3hmc19hdHRyX3NmLmgKLUBAIC0zMSwxMCArMzEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX2F0dHJfc2ZfZW50cnkgeGZzX2F0dHJfc2ZfZW50cnlfdDsKLSAgKiBXZSBnZW5lcmF0ZSB0aGlzIHRoZW4gc29ydCBpdCwgYXR0cl9saXN0KCkgbXVzdCByZXR1cm4gdGhpbmdzIGluIGhhc2gtb3JkZXIuCi0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2F0dHJfc2Zfc29ydCB7Ci0tCV9fdWludDhfdAllbnRubzsJCS8qIGVudHJ5IG51bWJlciBpbiBvcmlnaW5hbCBsaXN0ICovCi0tCV9fdWludDhfdAluYW1lbGVuOwkvKiBsZW5ndGggb2YgbmFtZSB2YWx1ZSAobm8gbnVsbCkgKi8KLS0JX191aW50OF90CXZhbHVlbGVuOwkvKiBsZW5ndGggb2YgdmFsdWUgKi8KLS0JX191aW50OF90CWZsYWdzOwkJLyogZmxhZ3MgYml0cyAoc2VlIHhmc19hdHRyX2xlYWYuaCkgKi8KLSsJdWludDhfdAkJZW50bm87CQkvKiBlbnRyeSBudW1iZXIgaW4gb3JpZ2luYWwgbGlzdCAqLwotKwl1aW50OF90CQluYW1lbGVuOwkvKiBsZW5ndGggb2YgbmFtZSB2YWx1ZSAobm8gbnVsbCkgKi8KLSsJdWludDhfdAkJdmFsdWVsZW47CS8qIGxlbmd0aCBvZiB2YWx1ZSAqLwotKwl1aW50OF90CQlmbGFnczsJCS8qIGZsYWdzIGJpdHMgKHNlZSB4ZnNfYXR0cl9sZWFmLmgpICovCi0gCXhmc19kYWhhc2hfdAloYXNoOwkJLyogdGhpcyBlbnRyeSdzIGhhc2ggdmFsdWUgKi8KLSAJdW5zaWduZWQgY2hhcgkqbmFtZTsJCS8qIG5hbWUgdmFsdWUsIHBvaW50ZXIgaW50byBidWZmZXIgKi8KLSB9IHhmc19hdHRyX3NmX3NvcnRfdDsKLUBAIC00Miw3ICs0Miw3IEBAIHR5cGVkZWYgc3RydWN0IHhmc19hdHRyX3NmX3NvcnQgewotICNkZWZpbmUgWEZTX0FUVFJfU0ZfRU5UU0laRV9CWU5BTUUobmxlbix2bGVuKQkvKiBzcGFjZSBuYW1lL3ZhbHVlIHVzZXMgKi8gXAotIAkoKChpbnQpc2l6ZW9mKHhmc19hdHRyX3NmX2VudHJ5X3QpLTEgKyAobmxlbikrKHZsZW4pKSkKLSAjZGVmaW5lIFhGU19BVFRSX1NGX0VOVFNJWkVfTUFYCQkJLyogbWF4IHNwYWNlIGZvciBuYW1lJnZhbHVlICovIFwKLS0JKCgxIDw8IChOQkJZKihpbnQpc2l6ZW9mKF9fdWludDhfdCkpKSAtIDEpCi0rCSgoMSA8PCAoTkJCWSooaW50KXNpemVvZih1aW50OF90KSkpIC0gMSkKLSAjZGVmaW5lIFhGU19BVFRSX1NGX0VOVFNJWkUoc2ZlcCkJCS8qIHNwYWNlIGFuIGVudHJ5IHVzZXMgKi8gXAotIAkoKGludClzaXplb2YoeGZzX2F0dHJfc2ZfZW50cnlfdCktMSArIChzZmVwKS0+bmFtZWxlbisoc2ZlcCktPnZhbHVlbGVuKQotICNkZWZpbmUgWEZTX0FUVFJfU0ZfTkVYVEVOVFJZKHNmZXApCQkvKiBuZXh0IGVudHJ5IGluIHN0cnVjdCAqLyBcCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19iaXQuaCBiL2xpYnhmcy94ZnNfYml0LmgKLWluZGV4IGUxNjQ5YzBkLi42MWM2YjIwMiAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfYml0LmgKLSsrKyBiL2xpYnhmcy94ZnNfYml0LmgKLUBAIC0yNSw0NyArMjUsNDcgQEAKLSAvKgotICAqIG1hc2tzIHdpdGggbiBoaWdoL2xvdyBiaXRzIHNldCwgNjQtYml0IHZhbHVlcwotICAqLwotLXN0YXRpYyBpbmxpbmUgX191aW50NjRfdCB4ZnNfbWFzazY0aGkoaW50IG4pCi0rc3RhdGljIGlubGluZSB1aW50NjRfdCB4ZnNfbWFzazY0aGkoaW50IG4pCi0gewotLQlyZXR1cm4gKF9fdWludDY0X3QpLTEgPDwgKDY0IC0gKG4pKTsKLSsJcmV0dXJuICh1aW50NjRfdCktMSA8PCAoNjQgLSAobikpOwotIH0KLS1zdGF0aWMgaW5saW5lIF9fdWludDMyX3QgeGZzX21hc2szMmxvKGludCBuKQotK3N0YXRpYyBpbmxpbmUgdWludDMyX3QgeGZzX21hc2szMmxvKGludCBuKQotIHsKLS0JcmV0dXJuICgoX191aW50MzJfdCkxIDw8IChuKSkgLSAxOwotKwlyZXR1cm4gKCh1aW50MzJfdCkxIDw8IChuKSkgLSAxOwotIH0KLS1zdGF0aWMgaW5saW5lIF9fdWludDY0X3QgeGZzX21hc2s2NGxvKGludCBuKQotK3N0YXRpYyBpbmxpbmUgdWludDY0X3QgeGZzX21hc2s2NGxvKGludCBuKQotIHsKLS0JcmV0dXJuICgoX191aW50NjRfdCkxIDw8IChuKSkgLSAxOwotKwlyZXR1cm4gKCh1aW50NjRfdCkxIDw8IChuKSkgLSAxOwotIH0KLSAKLSAvKiBHZXQgaGlnaCBiaXQgc2V0IG91dCBvZiAzMi1iaXQgYXJndW1lbnQsIC0xIGlmIG5vbmUgc2V0ICovCi0tc3RhdGljIGlubGluZSBpbnQgeGZzX2hpZ2hiaXQzMihfX3VpbnQzMl90IHYpCi0rc3RhdGljIGlubGluZSBpbnQgeGZzX2hpZ2hiaXQzMih1aW50MzJfdCB2KQotIHsKLSAJcmV0dXJuIGZscyh2KSAtIDE7Ci0gfQotIAotIC8qIEdldCBoaWdoIGJpdCBzZXQgb3V0IG9mIDY0LWJpdCBhcmd1bWVudCwgLTEgaWYgbm9uZSBzZXQgKi8KLS1zdGF0aWMgaW5saW5lIGludCB4ZnNfaGlnaGJpdDY0KF9fdWludDY0X3QgdikKLStzdGF0aWMgaW5saW5lIGludCB4ZnNfaGlnaGJpdDY0KHVpbnQ2NF90IHYpCi0gewotIAlyZXR1cm4gZmxzNjQodikgLSAxOwotIH0KLSAKLSAvKiBHZXQgbG93IGJpdCBzZXQgb3V0IG9mIDMyLWJpdCBhcmd1bWVudCwgLTEgaWYgbm9uZSBzZXQgKi8KLS1zdGF0aWMgaW5saW5lIGludCB4ZnNfbG93Yml0MzIoX191aW50MzJfdCB2KQotK3N0YXRpYyBpbmxpbmUgaW50IHhmc19sb3diaXQzMih1aW50MzJfdCB2KQotIHsKLSAJcmV0dXJuIGZmcyh2KSAtIDE7Ci0gfQotIAotIC8qIEdldCBsb3cgYml0IHNldCBvdXQgb2YgNjQtYml0IGFyZ3VtZW50LCAtMSBpZiBub25lIHNldCAqLwotLXN0YXRpYyBpbmxpbmUgaW50IHhmc19sb3diaXQ2NChfX3VpbnQ2NF90IHYpCi0rc3RhdGljIGlubGluZSBpbnQgeGZzX2xvd2JpdDY0KHVpbnQ2NF90IHYpCi0gewotLQlfX3VpbnQzMl90CXcgPSAoX191aW50MzJfdCl2OwotKwl1aW50MzJfdAl3ID0gKHVpbnQzMl90KXY7Ci0gCWludAkJbiA9IDA7Ci0gCi0gCWlmICh3KSB7CS8qIGxvd2VyIGJpdHMgKi8KLSAJCW4gPSBmZnModyk7Ci0gCX0gZWxzZSB7CS8qIHVwcGVyIGJpdHMgKi8KLS0JCXcgPSAoX191aW50MzJfdCkodiA+PiAzMik7Ci0rCQl3ID0gKHVpbnQzMl90KSh2ID4+IDMyKTsKLSAJCWlmICh3KSB7Ci0gCQkJbiA9IGZmcyh3KTsKLSAJCQlpZiAobikKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2JtYXBfYnRyZWUuYyBiL2xpYnhmcy94ZnNfYm1hcF9idHJlZS5jCi1pbmRleCBjNDhjYmVjMS4uOWVlNDBkOGIgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2JtYXBfYnRyZWUuYwotKysrIGIvbGlieGZzL3hmc19ibWFwX2J0cmVlLmMKLUBAIC05MSw4ICs5MSw4IEBAIHhmc19ibWRyX3RvX2JtYnQoCi0gICovCi0gU1RBVElDIHZvaWQKLSBfX3hmc19ibWJ0X2dldF9hbGwoCi0tCQlfX3VpbnQ2NF90IGwwLAotLQkJX191aW50NjRfdCBsMSwKLSsJCXVpbnQ2NF90IGwwLAotKwkJdWludDY0X3QgbDEsCi0gCQl4ZnNfYm1idF9pcmVjX3QgKnMpCi0gewotIAlpbnQJZXh0X2ZsYWc7Ci1AQCAtNTg1LDEyICs1ODUsMTIgQEAgeGZzX2JtYnRfaW5pdF9wdHJfZnJvbV9jdXIoCi0gCXB0ci0+bCA9IDA7Ci0gfQotIAotLVNUQVRJQyBfX2ludDY0X3QKLStTVEFUSUMgaW50NjRfdAotIHhmc19ibWJ0X2tleV9kaWZmKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprZXkpCi0gewotLQlyZXR1cm4gKF9faW50NjRfdCliZTY0X3RvX2NwdShrZXktPmJtYnQuYnJfc3RhcnRvZmYpIC0KLSsJcmV0dXJuIChpbnQ2NF90KWJlNjRfdG9fY3B1KGtleS0+Ym1idC5icl9zdGFydG9mZikgLQotIAkJCQkgICAgICBjdXItPmJjX3JlYy5iLmJyX3N0YXJ0b2ZmOwotIH0KLSAKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2J0cmVlLmMgYi9saWJ4ZnMveGZzX2J0cmVlLmMKLWluZGV4IDNkMjkzNTIwLi41NmI1MGE1YiAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfYnRyZWUuYwotKysrIGIvbGlieGZzL3hmc19idHJlZS5jCi1AQCAtMzksNyArMzksNyBAQCBrbWVtX3pvbmVfdAkqeGZzX2J0cmVlX2N1cl96b25lOwotIC8qCi0gICogQnRyZWUgbWFnaWMgbnVtYmVycy4KLSAgKi8KLS1zdGF0aWMgY29uc3QgX191aW50MzJfdCB4ZnNfbWFnaWNzWzJdW1hGU19CVE5VTV9NQVhdID0gewotK3N0YXRpYyBjb25zdCB1aW50MzJfdCB4ZnNfbWFnaWNzWzJdW1hGU19CVE5VTV9NQVhdID0gewotIAl7IFhGU19BQlRCX01BR0lDLCBYRlNfQUJUQ19NQUdJQywgMCwgWEZTX0JNQVBfTUFHSUMsIFhGU19JQlRfTUFHSUMsCi0gCSAgWEZTX0ZJQlRfTUFHSUMsIDAgfSwKLSAJeyBYRlNfQUJUQl9DUkNfTUFHSUMsIFhGU19BQlRDX0NSQ19NQUdJQywgWEZTX1JNQVBfQ1JDX01BR0lDLAotQEAgLTQ3LDEyICs0NywxMiBAQCBzdGF0aWMgY29uc3QgX191aW50MzJfdCB4ZnNfbWFnaWNzWzJdW1hGU19CVE5VTV9NQVhdID0gewotIAkgIFhGU19SRUZDX0NSQ19NQUdJQyB9Ci0gfTsKLSAKLS1fX3VpbnQzMl90Ci0rdWludDMyX3QKLSB4ZnNfYnRyZWVfbWFnaWMoCi0gCWludAkJCWNyYywKLSAJeGZzX2J0bnVtX3QJCWJ0bnVtKQotIHsKLS0JX191aW50MzJfdAkJbWFnaWMgPSB4ZnNfbWFnaWNzW2NyY11bYnRudW1dOwotKwl1aW50MzJfdAkJbWFnaWMgPSB4ZnNfbWFnaWNzW2NyY11bYnRudW1dOwotIAotIAkvKiBFbnN1cmUgd2UgYXNrZWQgZm9yIGNyYyBmb3IgY3JjLW9ubHkgbWFnaWNzLiAqLwotIAlBU1NFUlQobWFnaWMgIT0gMCk7Ci1AQCAtNzc0LDE0ICs3NzQsMTQgQEAgeGZzX2J0cmVlX2xhc3RyZWMoCi0gICovCi0gdm9pZAotIHhmc19idHJlZV9vZmZzZXRzKAotLQlfX2ludDY0X3QJZmllbGRzLAkJLyogYml0bWFzayBvZiBmaWVsZHMgKi8KLSsJaW50NjRfdAkJZmllbGRzLAkJLyogYml0bWFzayBvZiBmaWVsZHMgKi8KLSAJY29uc3Qgc2hvcnQJKm9mZnNldHMsCS8qIHRhYmxlIG9mIGZpZWxkIG9mZnNldHMgKi8KLSAJaW50CQluYml0cywJCS8qIG51bWJlciBvZiBiaXRzIHRvIGluc3BlY3QgKi8KLSAJaW50CQkqZmlyc3QsCQkvKiBvdXRwdXQ6IGZpcnN0IGJ5dGUgb2Zmc2V0ICovCi0gCWludAkJKmxhc3QpCQkvKiBvdXRwdXQ6IGxhc3QgYnl0ZSBvZmZzZXQgKi8KLSB7Ci0gCWludAkJaTsJCS8qIGN1cnJlbnQgYml0IG51bWJlciAqLwotLQlfX2ludDY0X3QJaW1hc2s7CQkvKiBtYXNrIGZvciBjdXJyZW50IGJpdCBudW1iZXIgKi8KLSsJaW50NjRfdAkJaW1hc2s7CQkvKiBtYXNrIGZvciBjdXJyZW50IGJpdCBudW1iZXIgKi8KLSAKLSAJQVNTRVJUKGZpZWxkcyAhPSAwKTsKLSAJLyoKLUBAIC0xODQyLDcgKzE4NDIsNyBAQCB4ZnNfYnRyZWVfbG9va3VwKAotIAlpbnQJCQkqc3RhdCkJLyogc3VjY2Vzcy9mYWlsdXJlICovCi0gewotIAlzdHJ1Y3QgeGZzX2J0cmVlX2Jsb2NrCSpibG9jazsJLyogY3VycmVudCBidHJlZSBibG9jayAqLwotLQlfX2ludDY0X3QJCWRpZmY7CS8qIGRpZmZlcmVuY2UgZm9yIHRoZSBjdXJyZW50IGtleSAqLwotKwlpbnQ2NF90CQkJZGlmZjsJLyogZGlmZmVyZW5jZSBmb3IgdGhlIGN1cnJlbnQga2V5ICovCi0gCWludAkJCWVycm9yOwkvKiBlcnJvciByZXR1cm4gdmFsdWUgKi8KLSAJaW50CQkJa2V5bm87CS8qIGN1cnJlbnQga2V5IG51bWJlciAqLwotIAlpbnQJCQlsZXZlbDsJLyogbGV2ZWwgaW4gdGhlIGJ0cmVlICovCi1AQCAtNDQzNSw3ICs0NDM1LDcgQEAgeGZzX2J0cmVlX3Zpc2l0X2Jsb2NrcygKLSAgKiByZWNvdmVyeSBjb21wbGV0aW9uIHdyaXRlcyB0aGUgY2hhbmdlcyB0byBkaXNrLgotICAqLwotIHN0cnVjdCB4ZnNfYnRyZWVfYmxvY2tfY2hhbmdlX293bmVyX2luZm8gewotLQlfX3VpbnQ2NF90CQluZXdfb3duZXI7Ci0rCXVpbnQ2NF90CQluZXdfb3duZXI7Ci0gCXN0cnVjdCBsaXN0X2hlYWQJKmJ1ZmZlcl9saXN0OwotIH07Ci0gCi1AQCAtNDQ4MSw3ICs0NDgxLDcgQEAgeGZzX2J0cmVlX2Jsb2NrX2NoYW5nZV9vd25lcigKLSBpbnQKLSB4ZnNfYnRyZWVfY2hhbmdlX293bmVyKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotLQlfX3VpbnQ2NF90CQluZXdfb3duZXIsCi0rCXVpbnQ2NF90CQluZXdfb3duZXIsCi0gCXN0cnVjdCBsaXN0X2hlYWQJKmJ1ZmZlcl9saXN0KQotIHsKLSAJc3RydWN0IHhmc19idHJlZV9ibG9ja19jaGFuZ2Vfb3duZXJfaW5mbwliYmNvaTsKLUBAIC00NTg1LDcgKzQ1ODUsNyBAQCB4ZnNfYnRyZWVfc2ltcGxlX3F1ZXJ5X3JhbmdlKAotIHsKLSAJdW5pb24geGZzX2J0cmVlX3JlYwkJKnJlY3A7Ci0gCXVuaW9uIHhmc19idHJlZV9rZXkJCXJlY19rZXk7Ci0tCV9faW50NjRfdAkJCWRpZmY7Ci0rCWludDY0X3QJCQkJZGlmZjsKLSAJaW50CQkJCXN0YXQ7Ci0gCWJvb2wJCQkJZmlyc3RyZWMgPSB0cnVlOwotIAlpbnQJCQkJZXJyb3I7Ci1AQCAtNDY4Miw4ICs0NjgyLDggQEAgeGZzX2J0cmVlX292ZXJsYXBwZWRfcXVlcnlfcmFuZ2UoCi0gCXVuaW9uIHhmc19idHJlZV9rZXkJCSpoa3A7Ci0gCXVuaW9uIHhmc19idHJlZV9yZWMJCSpyZWNwOwotIAlzdHJ1Y3QgeGZzX2J0cmVlX2Jsb2NrCQkqYmxvY2s7Ci0tCV9faW50NjRfdAkJCWxkaWZmOwotLQlfX2ludDY0X3QJCQloZGlmZjsKLSsJaW50NjRfdAkJCQlsZGlmZjsKLSsJaW50NjRfdAkJCQloZGlmZjsKLSAJaW50CQkJCWxldmVsOwotIAlzdHJ1Y3QgeGZzX2J1ZgkJCSpicDsKLSAJaW50CQkJCWk7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19idHJlZS5oIGIvbGlieGZzL3hmc19idHJlZS5oCi1pbmRleCAwNWNmMzViNS4uM2MxZmVkMjMgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2J0cmVlLmgKLSsrKyBiL2xpYnhmcy94ZnNfYnRyZWUuaAotQEAgLTc2LDcgKzc2LDcgQEAgdW5pb24geGZzX2J0cmVlX3JlYyB7Ci0gI2RlZmluZQlYRlNfQlROVU1fUk1BUAkoKHhmc19idG51bV90KVhGU19CVE5VTV9STUFQaSkKLSAjZGVmaW5lCVhGU19CVE5VTV9SRUZDCSgoeGZzX2J0bnVtX3QpWEZTX0JUTlVNX1JFRkNpKQotIAotLV9fdWludDMyX3QgeGZzX2J0cmVlX21hZ2ljKGludCBjcmMsIHhmc19idG51bV90IGJ0bnVtKTsKLSt1aW50MzJfdCB4ZnNfYnRyZWVfbWFnaWMoaW50IGNyYywgeGZzX2J0bnVtX3QgYnRudW0pOwotIAotIC8qCi0gICogRm9yIGxvZ2dpbmcgcmVjb3JkIGZpZWxkcy4KLUBAIC0xNTAsMTQgKzE1MCwxNCBAQCBzdHJ1Y3QgeGZzX2J0cmVlX29wcyB7Ci0gCQkJCQkgIHVuaW9uIHhmc19idHJlZV9yZWMgKnJlYyk7Ci0gCi0gCS8qIGRpZmZlcmVuY2UgYmV0d2VlbiBrZXkgdmFsdWUgYW5kIGN1cnNvciB2YWx1ZSAqLwotLQlfX2ludDY0X3QgKCprZXlfZGlmZikoc3RydWN0IHhmc19idHJlZV9jdXIgKmN1ciwKLSsJaW50NjRfdCAoKmtleV9kaWZmKShzdHJ1Y3QgeGZzX2J0cmVlX2N1ciAqY3VyLAotIAkJCSAgICAgIHVuaW9uIHhmc19idHJlZV9rZXkgKmtleSk7Ci0gCi0gCS8qCi0gCSAqIERpZmZlcmVuY2UgYmV0d2VlbiBrZXkyIGFuZCBrZXkxIC0tIHBvc2l0aXZlIGlmIGtleTEgPiBrZXkyLAotIAkgKiBuZWdhdGl2ZSBpZiBrZXkxIDwga2V5MiwgYW5kIHplcm8gaWYgZXF1YWwuCi0gCSAqLwotLQlfX2ludDY0X3QgKCpkaWZmX3R3b19rZXlzKShzdHJ1Y3QgeGZzX2J0cmVlX2N1ciAqY3VyLAotKwlpbnQ2NF90ICgqZGlmZl90d29fa2V5cykoc3RydWN0IHhmc19idHJlZV9jdXIgKmN1ciwKLSAJCQkJICAgdW5pb24geGZzX2J0cmVlX2tleSAqa2V5MSwKLSAJCQkJICAgdW5pb24geGZzX2J0cmVlX2tleSAqa2V5Mik7Ci0gCi1AQCAtMjEzLDExICsyMTMsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX2J0cmVlX2N1cgotIAl1bmlvbiB4ZnNfYnRyZWVfaXJlYwliY19yZWM7CS8qIGN1cnJlbnQgaW5zZXJ0L3NlYXJjaCByZWNvcmQgdmFsdWUgKi8KLSAJc3RydWN0IHhmc19idWYJKmJjX2J1ZnNbWEZTX0JUUkVFX01BWExFVkVMU107CS8qIGJ1ZiBwdHIgcGVyIGxldmVsICovCi0gCWludAkJYmNfcHRyc1tYRlNfQlRSRUVfTUFYTEVWRUxTXTsJLyoga2V5L3JlY29yZCAjICovCi0tCV9fdWludDhfdAliY19yYVtYRlNfQlRSRUVfTUFYTEVWRUxTXTsJLyogcmVhZGFoZWFkIGJpdHMgKi8KLSsJdWludDhfdAkJYmNfcmFbWEZTX0JUUkVFX01BWExFVkVMU107CS8qIHJlYWRhaGVhZCBiaXRzICovCi0gI2RlZmluZQlYRlNfQlRDVVJfTEVGVFJBCTEJLyogbGVmdCBzaWJsaW5nIGhhcyBiZWVuIHJlYWQtYWhlYWQgKi8KLSAjZGVmaW5lCVhGU19CVENVUl9SSUdIVFJBCTIJLyogcmlnaHQgc2libGluZyBoYXMgYmVlbiByZWFkLWFoZWFkICovCi0tCV9fdWludDhfdAliY19ubGV2ZWxzOwkvKiBudW1iZXIgb2YgbGV2ZWxzIGluIHRoZSB0cmVlICovCi0tCV9fdWludDhfdAliY19ibG9ja2xvZzsJLyogbG9nMihibG9ja3NpemUpIG9mIGJ0cmVlIGJsb2NrcyAqLwotKwl1aW50OF90CQliY19ubGV2ZWxzOwkvKiBudW1iZXIgb2YgbGV2ZWxzIGluIHRoZSB0cmVlICovCi0rCXVpbnQ4X3QJCWJjX2Jsb2NrbG9nOwkvKiBsb2cyKGJsb2Nrc2l6ZSkgb2YgYnRyZWUgYmxvY2tzICovCi0gCXhmc19idG51bV90CWJjX2J0bnVtOwkvKiBpZGVudGlmaWVzIHdoaWNoIGJ0cmVlIHR5cGUgKi8KLSAJaW50CQliY19zdGF0b2ZmOwkvKiBvZmZzZXQgb2YgYnRyZSBzdGF0cyBhcnJheSAqLwotIAl1bmlvbiB7Ci1AQCAtMzMwLDcgKzMzMCw3IEBAIHhmc19idHJlZV9pc2xhc3RibG9jaygKLSAgKi8KLSB2b2lkCi0geGZzX2J0cmVlX29mZnNldHMoCi0tCV9faW50NjRfdAkJZmllbGRzLAkvKiBiaXRtYXNrIG9mIGZpZWxkcyAqLwotKwlpbnQ2NF90CQkJZmllbGRzLAkvKiBiaXRtYXNrIG9mIGZpZWxkcyAqLwotIAljb25zdCBzaG9ydAkJKm9mZnNldHMsLyogdGFibGUgb2YgZmllbGQgb2Zmc2V0cyAqLwotIAlpbnQJCQluYml0cywJLyogbnVtYmVyIG9mIGJpdHMgdG8gaW5zcGVjdCAqLwotIAlpbnQJCQkqZmlyc3QsCS8qIG91dHB1dDogZmlyc3QgYnl0ZSBvZmZzZXQgKi8KLUBAIC00MDgsNyArNDA4LDcgQEAgaW50IHhmc19idHJlZV9uZXdfaXJvb3Qoc3RydWN0IHhmc19idHJlZV9jdXIgKiwgaW50ICosIGludCAqKTsKLSBpbnQgeGZzX2J0cmVlX2luc2VydChzdHJ1Y3QgeGZzX2J0cmVlX2N1ciAqLCBpbnQgKik7Ci0gaW50IHhmc19idHJlZV9kZWxldGUoc3RydWN0IHhmc19idHJlZV9jdXIgKiwgaW50ICopOwotIGludCB4ZnNfYnRyZWVfZ2V0X3JlYyhzdHJ1Y3QgeGZzX2J0cmVlX2N1ciAqLCB1bmlvbiB4ZnNfYnRyZWVfcmVjICoqLCBpbnQgKik7Ci0taW50IHhmc19idHJlZV9jaGFuZ2Vfb3duZXIoc3RydWN0IHhmc19idHJlZV9jdXIgKmN1ciwgX191aW50NjRfdCBuZXdfb3duZXIsCi0raW50IHhmc19idHJlZV9jaGFuZ2Vfb3duZXIoc3RydWN0IHhmc19idHJlZV9jdXIgKmN1ciwgdWludDY0X3QgbmV3X293bmVyLAotIAkJCSAgIHN0cnVjdCBsaXN0X2hlYWQgKmJ1ZmZlcl9saXN0KTsKLSAKLSAvKgotQEAgLTQzNCw3ICs0MzQsNyBAQCBzdGF0aWMgaW5saW5lIGludCB4ZnNfYnRyZWVfZ2V0X251bXJlY3Moc3RydWN0IHhmc19idHJlZV9ibG9jayAqYmxvY2spCi0gfQotIAotIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZnNfYnRyZWVfc2V0X251bXJlY3Moc3RydWN0IHhmc19idHJlZV9ibG9jayAqYmxvY2ssCi0tCQlfX3VpbnQxNl90IG51bXJlY3MpCi0rCQl1aW50MTZfdCBudW1yZWNzKQotIHsKLSAJYmxvY2stPmJiX251bXJlY3MgPSBjcHVfdG9fYmUxNihudW1yZWNzKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19ja3N1bS5oIGIvbGlieGZzL3hmc19ja3N1bS5oCi1pbmRleCBhNDE2YzdjYi4uODIxMWY0OGIgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2Nrc3VtLmgKLSsrKyBiL2xpYnhmcy94ZnNfY2tzdW0uaAotQEAgLTEsNyArMSw3IEBACi0gI2lmbmRlZiBfWEZTX0NLU1VNX0gKLSAjZGVmaW5lIF9YRlNfQ0tTVU1fSCAxCi0gCi0tI2RlZmluZSBYRlNfQ1JDX1NFRUQJKH4oX191aW50MzJfdCkwKQotKyNkZWZpbmUgWEZTX0NSQ19TRUVECSh+KHVpbnQzMl90KTApCi0gCi0gLyoKLSAgKiBDYWxjdWxhdGUgdGhlIGludGVybWVkaWF0ZSBjaGVja3N1bSBmb3IgYSBidWZmZXIgdGhhdCBoYXMgdGhlIENSQyBmaWVsZAotQEAgLTksMTEgKzksMTEgQEAKLSAgKiBja3N1bV9vZmZzZXQgcGFyYW1ldGVyLiBXZSBkbyBub3QgbW9kaWZ5IHRoZSBidWZmZXIgZHVyaW5nIHZlcmlmaWNhdGlvbiwKLSAgKiBoZW5jZSB3ZSBoYXZlIHRvIHNwbGl0IHRoZSBDUkMgY2FsY3VsYXRpb24gYWNyb3NzIHRoZSBja3N1bV9vZmZzZXQuCi0gICovCi0tc3RhdGljIGlubGluZSBfX3VpbnQzMl90Ci0rc3RhdGljIGlubGluZSB1aW50MzJfdAotIHhmc19zdGFydF9ja3N1bV9zYWZlKGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCwgdW5zaWduZWQgbG9uZyBja3N1bV9vZmZzZXQpCi0gewotLQlfX3VpbnQzMl90IHplcm8gPSAwOwotLQlfX3VpbnQzMl90IGNyYzsKLSsJdWludDMyX3QgemVybyA9IDA7Ci0rCXVpbnQzMl90IGNyYzsKLSAKLSAJLyogQ2FsY3VsYXRlIENSQyB1cCB0byB0aGUgY2hlY2tzdW0uICovCi0gCWNyYyA9IGNyYzMyYyhYRlNfQ1JDX1NFRUQsIGJ1ZmZlciwgY2tzdW1fb2Zmc2V0KTsKLUBAIC0zMCw3ICszMCw3IEBAIHhmc19zdGFydF9ja3N1bV9zYWZlKGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCwgdW5zaWduZWQgbG9uZyBja3N1bV9vZmZzZXQpCi0gICogRmFzdCBDUkMgbWV0aG9kIHdoZXJlIHRoZSBidWZmZXIgaXMgbW9kaWZpZWQuIENhbGxlcnMgbXVzdCBoYXZlIGV4Y2x1c2l2ZQotICAqIGFjY2VzcyB0byB0aGUgYnVmZmVyIHdoaWxlIHRoZSBjYWxjdWxhdGlvbiB0YWtlcyBwbGFjZS4KLSAgKi8KLS1zdGF0aWMgaW5saW5lIF9fdWludDMyX3QKLStzdGF0aWMgaW5saW5lIHVpbnQzMl90Ci0geGZzX3N0YXJ0X2Nrc3VtX3VwZGF0ZShjaGFyICpidWZmZXIsIHNpemVfdCBsZW5ndGgsIHVuc2lnbmVkIGxvbmcgY2tzdW1fb2Zmc2V0KQotIHsKLSAJLyogemVybyB0aGUgQ1JDIGZpZWxkICovCi1AQCAtNDgsNyArNDgsNyBAQCB4ZnNfc3RhcnRfY2tzdW1fdXBkYXRlKGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCwgdW5zaWduZWQgbG9uZyBja3N1bV9vZmZzZXQpCi0gICogc28gdGhhdCBpdCBpcyBjb25zaXN0ZW50IG9uIGRpc2suCi0gICovCi0gc3RhdGljIGlubGluZSBfX2xlMzIKLS14ZnNfZW5kX2Nrc3VtKF9fdWludDMyX3QgY3JjKQotK3hmc19lbmRfY2tzdW0odWludDMyX3QgY3JjKQotIHsKLSAJcmV0dXJuIH5jcHVfdG9fbGUzMihjcmMpOwotIH0KLUBAIC02Miw3ICs2Miw3IEBAIHhmc19lbmRfY2tzdW0oX191aW50MzJfdCBjcmMpCi0gc3RhdGljIGlubGluZSB2b2lkCi0geGZzX3VwZGF0ZV9ja3N1bShjaGFyICpidWZmZXIsIHNpemVfdCBsZW5ndGgsIHVuc2lnbmVkIGxvbmcgY2tzdW1fb2Zmc2V0KQotIHsKLS0JX191aW50MzJfdCBjcmMgPSB4ZnNfc3RhcnRfY2tzdW1fdXBkYXRlKGJ1ZmZlciwgbGVuZ3RoLCBja3N1bV9vZmZzZXQpOwotKwl1aW50MzJfdCBjcmMgPSB4ZnNfc3RhcnRfY2tzdW1fdXBkYXRlKGJ1ZmZlciwgbGVuZ3RoLCBja3N1bV9vZmZzZXQpOwotIAotIAkqKF9fbGUzMiAqKShidWZmZXIgKyBja3N1bV9vZmZzZXQpID0geGZzX2VuZF9ja3N1bShjcmMpOwotIH0KLUBAIC03Myw3ICs3Myw3IEBAIHhmc191cGRhdGVfY2tzdW0oY2hhciAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoLCB1bnNpZ25lZCBsb25nIGNrc3VtX29mZnNldCkKLSBzdGF0aWMgaW5saW5lIGludAotIHhmc192ZXJpZnlfY2tzdW0oY2hhciAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoLCB1bnNpZ25lZCBsb25nIGNrc3VtX29mZnNldCkKLSB7Ci0tCV9fdWludDMyX3QgY3JjID0geGZzX3N0YXJ0X2Nrc3VtX3NhZmUoYnVmZmVyLCBsZW5ndGgsIGNrc3VtX29mZnNldCk7Ci0rCXVpbnQzMl90IGNyYyA9IHhmc19zdGFydF9ja3N1bV9zYWZlKGJ1ZmZlciwgbGVuZ3RoLCBja3N1bV9vZmZzZXQpOwotIAotIAlyZXR1cm4gKihfX2xlMzIgKikoYnVmZmVyICsgY2tzdW1fb2Zmc2V0KSA9PSB4ZnNfZW5kX2Nrc3VtKGNyYyk7Ci0gfQotZGlmZiAtLWdpdCBhL2xpYnhmcy94ZnNfZGFfYnRyZWUuYyBiL2xpYnhmcy94ZnNfZGFfYnRyZWUuYwotaW5kZXggYmMxMmY1OGYuLjA4NDQ3YmU4IDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kYV9idHJlZS5jCi0rKysgYi9saWJ4ZnMveGZzX2RhX2J0cmVlLmMKLUBAIC0xOTQ3LDcgKzE5NDcsNyBAQCB4ZnNfZGEzX3BhdGhfc2hpZnQoCi0gICogVGhpcyBpcyBpbXBsZW1lbnRlZCB3aXRoIHNvbWUgc291cmNlLWxldmVsIGxvb3AgdW5yb2xsaW5nLgotICAqLwotIHhmc19kYWhhc2hfdAotLXhmc19kYV9oYXNobmFtZShjb25zdCBfX3VpbnQ4X3QgKm5hbWUsIGludCBuYW1lbGVuKQotK3hmc19kYV9oYXNobmFtZShjb25zdCB1aW50OF90ICpuYW1lLCBpbnQgbmFtZWxlbikKLSB7Ci0gCXhmc19kYWhhc2hfdCBoYXNoOwotIAotZGlmZiAtLWdpdCBhL2xpYnhmcy94ZnNfZGFfYnRyZWUuaCBiL2xpYnhmcy94ZnNfZGFfYnRyZWUuaAotaW5kZXggNGUyOWNiNmEuLmFlNmRlMTc0IDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kYV9idHJlZS5oCi0rKysgYi9saWJ4ZnMveGZzX2RhX2J0cmVlLmgKLUBAIC02MCwxMCArNjAsMTAgQEAgZW51bSB4ZnNfZGFjbXAgewotICAqLwotIHR5cGVkZWYgc3RydWN0IHhmc19kYV9hcmdzIHsKLSAJc3RydWN0IHhmc19kYV9nZW9tZXRyeSAqZ2VvOwkvKiBkYSBibG9jayBnZW9tZXRyeSAqLwotLQljb25zdCBfX3VpbnQ4X3QJKm5hbWU7CQkvKiBzdHJpbmcgKG1heWJlIG5vdCBOVUxMIHRlcm1pbmF0ZWQpICovCi0rCWNvbnN0IHVpbnQ4X3QJCSpuYW1lOwkJLyogc3RyaW5nIChtYXliZSBub3QgTlVMTCB0ZXJtaW5hdGVkKSAqLwotIAlpbnQJCW5hbWVsZW47CS8qIGxlbmd0aCBvZiBzdHJpbmcgKG1heWJlIG5vIE5VTEwpICovCi0tCV9fdWludDhfdAlmaWxldHlwZTsJLyogZmlsZXR5cGUgb2YgaW5vZGUgZm9yIGRpcmVjdG9yaWVzICovCi0tCV9fdWludDhfdAkqdmFsdWU7CQkvKiBzZXQgb2YgYnl0ZXMgKG1heWJlIGNvbnRhaW4gTlVMTHMpICovCi0rCXVpbnQ4X3QJCWZpbGV0eXBlOwkvKiBmaWxldHlwZSBvZiBpbm9kZSBmb3IgZGlyZWN0b3JpZXMgKi8KLSsJdWludDhfdAkJKnZhbHVlOwkJLyogc2V0IG9mIGJ5dGVzIChtYXliZSBjb250YWluIE5VTExzKSAqLwotIAlpbnQJCXZhbHVlbGVuOwkvKiBsZW5ndGggb2YgdmFsdWUgKi8KLSAJaW50CQlmbGFnczsJCS8qIGFyZ3VtZW50IGZsYWdzIChlZzogQVRUUl9OT0NSRUFURSkgKi8KLSAJeGZzX2RhaGFzaF90CWhhc2h2YWw7CS8qIGhhc2ggdmFsdWUgb2YgbmFtZSAqLwotQEAgLTIwNyw3ICsyMDcsNyBAQCBpbnQJeGZzX2RhX3JlYWRhX2J1ZihzdHJ1Y3QgeGZzX2lub2RlICpkcCwgeGZzX2RhYmxrX3QgYm5vLAotIGludAl4ZnNfZGFfc2hyaW5rX2lub2RlKHhmc19kYV9hcmdzX3QgKmFyZ3MsIHhmc19kYWJsa190IGRlYWRfYmxrbm8sCi0gCQkJCQkgIHN0cnVjdCB4ZnNfYnVmICpkZWFkX2J1Zik7Ci0gCi0tdWludCB4ZnNfZGFfaGFzaG5hbWUoY29uc3QgX191aW50OF90ICpuYW1lX3N0cmluZywgaW50IG5hbWVfbGVuZ3RoKTsKLSt1aW50IHhmc19kYV9oYXNobmFtZShjb25zdCB1aW50OF90ICpuYW1lX3N0cmluZywgaW50IG5hbWVfbGVuZ3RoKTsKLSBlbnVtIHhmc19kYWNtcCB4ZnNfZGFfY29tcG5hbWUoc3RydWN0IHhmc19kYV9hcmdzICphcmdzLAotIAkJCQljb25zdCB1bnNpZ25lZCBjaGFyICpuYW1lLCBpbnQgbGVuKTsKLSAKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2RhX2Zvcm1hdC5jIGIvbGlieGZzL3hmc19kYV9mb3JtYXQuYwotaW5kZXggMmI3MzJiM2MuLmYzMDAwNGY2IDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kYV9mb3JtYXQuYwotKysrIGIvbGlieGZzL3hmc19kYV9mb3JtYXQuYwotQEAgLTQ5LDcgKzQ5LDcgQEAgeGZzX2RpcjNfc2ZfZW50c2l6ZSgKLSAJc3RydWN0IHhmc19kaXIyX3NmX2hkcgkqaGRyLAotIAlpbnQJCQlsZW4pCi0gewotLQlyZXR1cm4geGZzX2RpcjJfc2ZfZW50c2l6ZShoZHIsIGxlbikgKyBzaXplb2YoX191aW50OF90KTsKLSsJcmV0dXJuIHhmc19kaXIyX3NmX2VudHNpemUoaGRyLCBsZW4pICsgc2l6ZW9mKHVpbnQ4X3QpOwotIH0KLSAKLSBzdGF0aWMgc3RydWN0IHhmc19kaXIyX3NmX2VudHJ5ICoKLUBAIC03Nyw3ICs3Nyw3IEBAIHhmc19kaXIzX3NmX25leHRlbnRyeSgKLSAgKiBub3QgbmVjZXNzYXJ5LiBGb3Igbm9uLWZpbGV0eXBlIGVuYWJsZSBkaXJlY3RvcmllcywgdGhlIHR5cGUgaXMgYWx3YXlzCi0gICogdW5rbm93biBhbmQgd2UgbmV2ZXIgc3RvcmUgdGhlIHZhbHVlLgotICAqLwotLXN0YXRpYyBfX3VpbnQ4X3QKLStzdGF0aWMgdWludDhfdAotIHhmc19kaXIyX3NmZV9nZXRfZnR5cGUoCi0gCXN0cnVjdCB4ZnNfZGlyMl9zZl9lbnRyeSAqc2ZlcCkKLSB7Ci1AQCAtODcsMTYgKzg3LDE2IEBAIHhmc19kaXIyX3NmZV9nZXRfZnR5cGUoCi0gc3RhdGljIHZvaWQKLSB4ZnNfZGlyMl9zZmVfcHV0X2Z0eXBlKAotIAlzdHJ1Y3QgeGZzX2RpcjJfc2ZfZW50cnkgKnNmZXAsCi0tCV9fdWludDhfdAkJZnR5cGUpCi0rCXVpbnQ4X3QJCQlmdHlwZSkKLSB7Ci0gCUFTU0VSVChmdHlwZSA8IFhGU19ESVIzX0ZUX01BWCk7Ci0gfQotIAotLXN0YXRpYyBfX3VpbnQ4X3QKLStzdGF0aWMgdWludDhfdAotIHhmc19kaXIzX3NmZV9nZXRfZnR5cGUoCi0gCXN0cnVjdCB4ZnNfZGlyMl9zZl9lbnRyeSAqc2ZlcCkKLSB7Ci0tCV9fdWludDhfdAlmdHlwZTsKLSsJdWludDhfdAkJZnR5cGU7Ci0gCi0gCWZ0eXBlID0gc2ZlcC0+bmFtZVtzZmVwLT5uYW1lbGVuXTsKLSAJaWYgKGZ0eXBlID49IFhGU19ESVIzX0ZUX01BWCkKLUBAIC0xMDcsNyArMTA3LDcgQEAgeGZzX2RpcjNfc2ZlX2dldF9mdHlwZSgKLSBzdGF0aWMgdm9pZAotIHhmc19kaXIzX3NmZV9wdXRfZnR5cGUoCi0gCXN0cnVjdCB4ZnNfZGlyMl9zZl9lbnRyeSAqc2ZlcCwKLS0JX191aW50OF90CQlmdHlwZSkKLSsJdWludDhfdAkJCWZ0eXBlKQotIHsKLSAJQVNTRVJUKGZ0eXBlIDwgWEZTX0RJUjNfRlRfTUFYKTsKLSAKLUBAIC0xMjQsNyArMTI0LDcgQEAgeGZzX2RpcjNfc2ZlX3B1dF9mdHlwZSgKLSBzdGF0aWMgeGZzX2lub190Ci0geGZzX2RpcjJfc2ZfZ2V0X2lubygKLSAJc3RydWN0IHhmc19kaXIyX3NmX2hkcgkqaGRyLAotLQlfX3VpbnQ4X3QJCSpmcm9tKQotKwl1aW50OF90CQkJKmZyb20pCi0gewotIAlpZiAoaGRyLT5pOGNvdW50KQotIAkJcmV0dXJuIGdldF91bmFsaWduZWRfYmU2NChmcm9tKSAmIDB4MDBmZmZmZmZmZmZmZmZmZlVMTDsKLUBAIC0xMzUsNyArMTM1LDcgQEAgeGZzX2RpcjJfc2ZfZ2V0X2lubygKLSBzdGF0aWMgdm9pZAotIHhmc19kaXIyX3NmX3B1dF9pbm8oCi0gCXN0cnVjdCB4ZnNfZGlyMl9zZl9oZHIJKmhkciwKLS0JX191aW50OF90CQkqdG8sCi0rCXVpbnQ4X3QJCQkqdG8sCi0gCXhmc19pbm9fdAkJaW5vKQotIHsKLSAJQVNTRVJUKChpbm8gJiAweGZmMDAwMDAwMDAwMDAwMDBVTEwpID09IDApOwotQEAgLTIyNSw3ICsyMjUsNyBAQCB4ZnNfZGlyM19zZmVfcHV0X2lubygKLSAKLSAjZGVmaW5lIFhGU19ESVIzX0RBVEFfRU5UU0laRShuKQkJCQkJXAotIAlyb3VuZF91cCgob2Zmc2V0b2Yoc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnksIG5hbWVbMF0pICsgKG4pICsJXAotLQkJIHNpemVvZih4ZnNfZGlyMl9kYXRhX29mZl90KSArIHNpemVvZihfX3VpbnQ4X3QpKSwJXAotKwkJIHNpemVvZih4ZnNfZGlyMl9kYXRhX29mZl90KSArIHNpemVvZih1aW50OF90KSksCVwKLSAJCVhGU19ESVIyX0RBVEFfQUxJR04pCi0gCi0gc3RhdGljIGludAotQEAgLTI0Miw3ICsyNDIsNyBAQCB4ZnNfZGlyM19kYXRhX2VudHNpemUoCi0gCXJldHVybiBYRlNfRElSM19EQVRBX0VOVFNJWkUobik7Ci0gfQotIAotLXN0YXRpYyBfX3VpbnQ4X3QKLStzdGF0aWMgdWludDhfdAotIHhmc19kaXIyX2RhdGFfZ2V0X2Z0eXBlKAotIAlzdHJ1Y3QgeGZzX2RpcjJfZGF0YV9lbnRyeSAqZGVwKQotIHsKLUBAIC0yNTIsMTYgKzI1MiwxNiBAQCB4ZnNfZGlyMl9kYXRhX2dldF9mdHlwZSgKLSBzdGF0aWMgdm9pZAotIHhmc19kaXIyX2RhdGFfcHV0X2Z0eXBlKAotIAlzdHJ1Y3QgeGZzX2RpcjJfZGF0YV9lbnRyeSAqZGVwLAotLQlfX3VpbnQ4X3QJCWZ0eXBlKQotKwl1aW50OF90CQkJZnR5cGUpCi0gewotIAlBU1NFUlQoZnR5cGUgPCBYRlNfRElSM19GVF9NQVgpOwotIH0KLSAKLS1zdGF0aWMgX191aW50OF90Ci0rc3RhdGljIHVpbnQ4X3QKLSB4ZnNfZGlyM19kYXRhX2dldF9mdHlwZSgKLSAJc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnkgKmRlcCkKLSB7Ci0tCV9fdWludDhfdAlmdHlwZSA9IGRlcC0+bmFtZVtkZXAtPm5hbWVsZW5dOwotKwl1aW50OF90CQlmdHlwZSA9IGRlcC0+bmFtZVtkZXAtPm5hbWVsZW5dOwotIAotIAlpZiAoZnR5cGUgPj0gWEZTX0RJUjNfRlRfTUFYKQotIAkJcmV0dXJuIFhGU19ESVIzX0ZUX1VOS05PV047Ci1AQCAtMjcxLDcgKzI3MSw3IEBAIHhmc19kaXIzX2RhdGFfZ2V0X2Z0eXBlKAotIHN0YXRpYyB2b2lkCi0geGZzX2RpcjNfZGF0YV9wdXRfZnR5cGUoCi0gCXN0cnVjdCB4ZnNfZGlyMl9kYXRhX2VudHJ5ICpkZXAsCi0tCV9fdWludDhfdAkJdHlwZSkKLSsJdWludDhfdAkJCXR5cGUpCi0gewotIAlBU1NFUlQodHlwZSA8IFhGU19ESVIzX0ZUX01BWCk7Ci0gCUFTU0VSVChkZXAtPm5hbWVsZW4gIT0gMCk7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19kYV9mb3JtYXQuaCBiL2xpYnhmcy94ZnNfZGFfZm9ybWF0LmgKLWluZGV4IDlhNDkyYTllLi4zNzcxZWRjYiAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfZGFfZm9ybWF0LmgKLSsrKyBiL2xpYnhmcy94ZnNfZGFfZm9ybWF0LmgKLUBAIC0xMTEsMTEgKzExMSwxMSBAQCBzdHJ1Y3QgeGZzX2RhM19pbnRub2RlIHsKLSAgKiBhcHByb3ByaWF0ZS4KLSAgKi8KLSBzdHJ1Y3QgeGZzX2RhM19pY25vZGVfaGRyIHsKLS0JX191aW50MzJfdAlmb3J3OwotLQlfX3VpbnQzMl90CWJhY2s7Ci0tCV9fdWludDE2X3QJbWFnaWM7Ci0tCV9fdWludDE2X3QJY291bnQ7Ci0tCV9fdWludDE2X3QJbGV2ZWw7Ci0rCXVpbnQzMl90CWZvcnc7Ci0rCXVpbnQzMl90CWJhY2s7Ci0rCXVpbnQxNl90CW1hZ2ljOwotKwl1aW50MTZfdAljb3VudDsKLSsJdWludDE2X3QJbGV2ZWw7Ci0gfTsKLSAKLSAvKgotQEAgLTE4NywxNCArMTg3LDE0IEBAIHN0cnVjdCB4ZnNfZGEzX2ljbm9kZV9oZHIgewotIC8qCi0gICogQnl0ZSBvZmZzZXQgaW4gZGF0YSBibG9jayBhbmQgc2hvcnRmb3JtIGVudHJ5LgotICAqLwotLXR5cGVkZWYJX191aW50MTZfdAl4ZnNfZGlyMl9kYXRhX29mZl90OwotK3R5cGVkZWYgdWludDE2X3QJeGZzX2RpcjJfZGF0YV9vZmZfdDsKLSAjZGVmaW5lCU5VTExEQVRBT0ZGCTB4ZmZmZlUKLSB0eXBlZGVmIHVpbnQJCXhmc19kaXIyX2RhdGFfYW9mZl90OwkvKiBhcmd1bWVudCBmb3JtICovCi0gCi0gLyoKLSAgKiBPZmZzZXQgaW4gZGF0YSBzcGFjZSBvZiBhIGRhdGEgZW50cnkuCi0gICovCi0tdHlwZWRlZglfX3VpbnQzMl90CXhmc19kaXIyX2RhdGFwdHJfdDsKLSt0eXBlZGVmIHVpbnQzMl90CXhmc19kaXIyX2RhdGFwdHJfdDsKLSAjZGVmaW5lCVhGU19ESVIyX01BWF9EQVRBUFRSCSgoeGZzX2RpcjJfZGF0YXB0cl90KTB4ZmZmZmZmZmYpCi0gI2RlZmluZQlYRlNfRElSMl9OVUxMX0RBVEFQVFIJKCh4ZnNfZGlyMl9kYXRhcHRyX3QpMCkKLSAKLUBAIC0yMDYsNyArMjA2LDcgQEAgdHlwZWRlZgl4ZnNfb2ZmX3QJeGZzX2RpcjJfb2ZmX3Q7Ci0gLyoKLSAgKiBEaXJlY3RvcnkgYmxvY2sgbnVtYmVyIChsb2dpY2FsIGRpcmJsayBpbiBmaWxlKQotICAqLwotLXR5cGVkZWYJX191aW50MzJfdAl4ZnNfZGlyMl9kYl90OwotK3R5cGVkZWYgdWludDMyX3QJeGZzX2RpcjJfZGJfdDsKLSAKLSAjZGVmaW5lIFhGU19JTk8zMl9TSVpFCTQKLSAjZGVmaW5lIFhGU19JTk82NF9TSVpFCTgKLUBAIC0yMjYsOSArMjI2LDkgQEAgdHlwZWRlZglfX3VpbnQzMl90CXhmc19kaXIyX2RiX3Q7Ci0gICogb3ZlciB0aGVtLgotICAqLwotIHR5cGVkZWYgc3RydWN0IHhmc19kaXIyX3NmX2hkciB7Ci0tCV9fdWludDhfdAkJY291bnQ7CQkvKiBjb3VudCBvZiBlbnRyaWVzICovCi0tCV9fdWludDhfdAkJaThjb3VudDsJLyogY291bnQgb2YgOC1ieXRlIGlub2RlICNzICovCi0tCV9fdWludDhfdAkJcGFyZW50WzhdOwkvKiBwYXJlbnQgZGlyIGlub2RlIG51bWJlciAqLwotKwl1aW50OF90CQkJY291bnQ7CQkvKiBjb3VudCBvZiBlbnRyaWVzICovCi0rCXVpbnQ4X3QJCQlpOGNvdW50OwkvKiBjb3VudCBvZiA4LWJ5dGUgaW5vZGUgI3MgKi8KLSsJdWludDhfdAkJCXBhcmVudFs4XTsJLyogcGFyZW50IGRpciBpbm9kZSBudW1iZXIgKi8KLSB9IF9fcGFja2VkIHhmc19kaXIyX3NmX2hkcl90OwotIAotIHR5cGVkZWYgc3RydWN0IHhmc19kaXIyX3NmX2VudHJ5IHsKLUBAIC00NDcsMTEgKzQ0NywxMSBAQCBzdHJ1Y3QgeGZzX2RpcjNfbGVhZl9oZHIgewotIH07Ci0gCi0gc3RydWN0IHhmc19kaXIzX2ljbGVhZl9oZHIgewotLQlfX3VpbnQzMl90CQlmb3J3OwotLQlfX3VpbnQzMl90CQliYWNrOwotLQlfX3VpbnQxNl90CQltYWdpYzsKLS0JX191aW50MTZfdAkJY291bnQ7Ci0tCV9fdWludDE2X3QJCXN0YWxlOwotKwl1aW50MzJfdAkJZm9ydzsKLSsJdWludDMyX3QJCWJhY2s7Ci0rCXVpbnQxNl90CQltYWdpYzsKLSsJdWludDE2X3QJCWNvdW50OwotKwl1aW50MTZfdAkJc3RhbGU7Ci0gfTsKLSAKLSAvKgotQEAgLTUzOCwxMCArNTM4LDEwIEBAIHN0cnVjdCB4ZnNfZGlyM19mcmVlIHsKLSAgKiB4ZnNfZGlyM19mcmVlX2hkcl9mcm9tX2Rpc2sveGZzX2RpcjNfZnJlZV9oZHJfdG9fZGlzay4KLSAgKi8KLSBzdHJ1Y3QgeGZzX2RpcjNfaWNmcmVlX2hkciB7Ci0tCV9fdWludDMyX3QJbWFnaWM7Ci0tCV9fdWludDMyX3QJZmlyc3RkYjsKLS0JX191aW50MzJfdAludmFsaWQ7Ci0tCV9fdWludDMyX3QJbnVzZWQ7Ci0rCXVpbnQzMl90CW1hZ2ljOwotKwl1aW50MzJfdAlmaXJzdGRiOwotKwl1aW50MzJfdAludmFsaWQ7Ci0rCXVpbnQzMl90CW51c2VkOwotIAotIH07Ci0gCi1AQCAtNjMyLDEwICs2MzIsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX2F0dHJfc2hvcnRmb3JtIHsKLSAJCV9fdTgJcGFkZGluZzsKLSAJfSBoZHI7Ci0gCXN0cnVjdCB4ZnNfYXR0cl9zZl9lbnRyeSB7Ci0tCQlfX3VpbnQ4X3QgbmFtZWxlbjsJLyogYWN0dWFsIGxlbmd0aCBvZiBuYW1lIChubyBOVUxMKSAqLwotLQkJX191aW50OF90IHZhbHVlbGVuOwkvKiBhY3R1YWwgbGVuZ3RoIG9mIHZhbHVlIChubyBOVUxMKSAqLwotLQkJX191aW50OF90IGZsYWdzOwkvKiBmbGFncyBiaXRzIChzZWUgeGZzX2F0dHJfbGVhZi5oKSAqLwotLQkJX191aW50OF90IG5hbWV2YWxbMV07CS8qIG5hbWUgJiB2YWx1ZSBieXRlcyBjb25jYXRlbmF0ZWQgKi8KLSsJCXVpbnQ4X3QgbmFtZWxlbjsJLyogYWN0dWFsIGxlbmd0aCBvZiBuYW1lIChubyBOVUxMKSAqLwotKwkJdWludDhfdCB2YWx1ZWxlbjsJLyogYWN0dWFsIGxlbmd0aCBvZiB2YWx1ZSAobm8gTlVMTCkgKi8KLSsJCXVpbnQ4X3QgZmxhZ3M7CS8qIGZsYWdzIGJpdHMgKHNlZSB4ZnNfYXR0cl9sZWFmLmgpICovCi0rCQl1aW50OF90IG5hbWV2YWxbMV07CS8qIG5hbWUgJiB2YWx1ZSBieXRlcyBjb25jYXRlbmF0ZWQgKi8KLSAJfSBsaXN0WzFdOwkJCS8qIHZhcmlhYmxlIHNpemVkIGFycmF5ICovCi0gfSB4ZnNfYXR0cl9zaG9ydGZvcm1fdDsKLSAKLUBAIC03MjUsMjIgKzcyNSwyMiBAQCBzdHJ1Y3QgeGZzX2F0dHIzX2xlYWZibG9jayB7Ci0gICogaW5jb3JlLCBuZXV0cmFsIHZlcnNpb24gb2YgdGhlIGF0dHJpYnV0ZSBsZWFmIGhlYWRlcgotICAqLwotIHN0cnVjdCB4ZnNfYXR0cjNfaWNsZWFmX2hkciB7Ci0tCV9fdWludDMyX3QJZm9ydzsKLS0JX191aW50MzJfdAliYWNrOwotLQlfX3VpbnQxNl90CW1hZ2ljOwotLQlfX3VpbnQxNl90CWNvdW50OwotLQlfX3VpbnQxNl90CXVzZWRieXRlczsKLSsJdWludDMyX3QJZm9ydzsKLSsJdWludDMyX3QJYmFjazsKLSsJdWludDE2X3QJbWFnaWM7Ci0rCXVpbnQxNl90CWNvdW50OwotKwl1aW50MTZfdAl1c2VkYnl0ZXM7Ci0gCS8qCi0gCSAqIGZpcnN0dXNlZCBpcyAzMi1iaXQgaGVyZSBpbnN0ZWFkIG9mIDE2LWJpdCBsaWtlIHRoZSBvbi1kaXNrIHZhcmlhbnQKLSAJICogdG8gc3VwcG9ydCBtYXhpbXVtIGZzYiBzaXplIG9mIDY0ayB3aXRob3V0IG92ZXJmbG93IGlzc3VlcyB0aHJvdWdob3V0Ci0gCSAqIHRoZSBhdHRyIGNvZGUuIEluc3RlYWQsIHRoZSBvdmVyZmxvdyBjb25kaXRpb24gaXMgaGFuZGxlZCBvbgotIAkgKiBjb252ZXJzaW9uIHRvL2Zyb20gZGlzay4KLSAJICovCi0tCV9fdWludDMyX3QJZmlyc3R1c2VkOwotKwl1aW50MzJfdAlmaXJzdHVzZWQ7Ci0gCV9fdTgJCWhvbGVzOwotIAlzdHJ1Y3QgewotLQkJX191aW50MTZfdAliYXNlOwotLQkJX191aW50MTZfdAlzaXplOwotKwkJdWludDE2X3QJYmFzZTsKLSsJCXVpbnQxNl90CXNpemU7Ci0gCX0gZnJlZW1hcFtYRlNfQVRUUl9MRUFGX01BUFNJWkVdOwotIH07Ci0gCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19kaXIyLmggYi9saWJ4ZnMveGZzX2RpcjIuaAotaW5kZXggZDZlNmQ5ZDEuLjIxYzhmOGJmIDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kaXIyLmgKLSsrKyBiL2xpYnhmcy94ZnNfZGlyMi5oCi1AQCAtNDcsOSArNDcsOSBAQCBzdHJ1Y3QgeGZzX2Rpcl9vcHMgewotIAlzdHJ1Y3QgeGZzX2RpcjJfc2ZfZW50cnkgKgotIAkJKCpzZl9uZXh0ZW50cnkpKHN0cnVjdCB4ZnNfZGlyMl9zZl9oZHIgKmhkciwKLSAJCQkJc3RydWN0IHhmc19kaXIyX3NmX2VudHJ5ICpzZmVwKTsKLS0JX191aW50OF90ICgqc2ZfZ2V0X2Z0eXBlKShzdHJ1Y3QgeGZzX2RpcjJfc2ZfZW50cnkgKnNmZXApOwotKwl1aW50OF90ICgqc2ZfZ2V0X2Z0eXBlKShzdHJ1Y3QgeGZzX2RpcjJfc2ZfZW50cnkgKnNmZXApOwotIAl2b2lkCSgqc2ZfcHV0X2Z0eXBlKShzdHJ1Y3QgeGZzX2RpcjJfc2ZfZW50cnkgKnNmZXAsCi0tCQkJCV9fdWludDhfdCBmdHlwZSk7Ci0rCQkJCXVpbnQ4X3QgZnR5cGUpOwotIAl4ZnNfaW5vX3QgKCpzZl9nZXRfaW5vKShzdHJ1Y3QgeGZzX2RpcjJfc2ZfaGRyICpoZHIsCi0gCQkJCXN0cnVjdCB4ZnNfZGlyMl9zZl9lbnRyeSAqc2ZlcCk7Ci0gCXZvaWQJKCpzZl9wdXRfaW5vKShzdHJ1Y3QgeGZzX2RpcjJfc2ZfaGRyICpoZHIsCi1AQCAtNjAsOSArNjAsOSBAQCBzdHJ1Y3QgeGZzX2Rpcl9vcHMgewotIAkJCQkgICAgIHhmc19pbm9fdCBpbm8pOwotIAotIAlpbnQJKCpkYXRhX2VudHNpemUpKGludCBsZW4pOwotLQlfX3VpbnQ4X3QgKCpkYXRhX2dldF9mdHlwZSkoc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnkgKmRlcCk7Ci0rCXVpbnQ4X3QgKCpkYXRhX2dldF9mdHlwZSkoc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnkgKmRlcCk7Ci0gCXZvaWQJKCpkYXRhX3B1dF9mdHlwZSkoc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnkgKmRlcCwKLS0JCQkJX191aW50OF90IGZ0eXBlKTsKLSsJCQkJdWludDhfdCBmdHlwZSk7Ci0gCV9fYmUxNiAqICgqZGF0YV9lbnRyeV90YWdfcCkoc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnkgKmRlcCk7Ci0gCXN0cnVjdCB4ZnNfZGlyMl9kYXRhX2ZyZWUgKgotIAkJKCpkYXRhX2Jlc3RmcmVlX3ApKHN0cnVjdCB4ZnNfZGlyMl9kYXRhX2hkciAqaGRyKTsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2RpcjJfbGVhZi5jIGIvbGlieGZzL3hmc19kaXIyX2xlYWYuYwotaW5kZXggZjgwZDkxZmMuLjQwYTM1Yjg0IDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kaXIyX2xlYWYuYwotKysrIGIvbGlieGZzL3hmc19kaXIyX2xlYWYuYwotQEAgLTE0Miw3ICsxNDIsNyBAQCB4ZnNfZGlyM19sZWFmX2NoZWNrX2ludCgKLSBzdGF0aWMgYm9vbAotIHhmc19kaXIzX2xlYWZfdmVyaWZ5KAotIAlzdHJ1Y3QgeGZzX2J1ZgkJKmJwLAotLQlfX3VpbnQxNl90CQltYWdpYykKLSsJdWludDE2X3QJCW1hZ2ljKQotIHsKLSAJc3RydWN0IHhmc19tb3VudAkqbXAgPSBicC0+Yl90YXJnZXQtPmJ0X21vdW50OwotIAlzdHJ1Y3QgeGZzX2RpcjJfbGVhZgkqbGVhZiA9IGJwLT5iX2FkZHI7Ci1AQCAtMTUxLDcgKzE1MSw3IEBAIHhmc19kaXIzX2xlYWZfdmVyaWZ5KAotIAotIAlpZiAoeGZzX3NiX3ZlcnNpb25faGFzY3JjKCZtcC0+bV9zYikpIHsKLSAJCXN0cnVjdCB4ZnNfZGlyM19sZWFmX2hkciAqbGVhZjMgPSBicC0+Yl9hZGRyOwotLQkJX191aW50MTZfdAkJbWFnaWMzOwotKwkJdWludDE2X3QJCW1hZ2ljMzsKLSAKLSAJCW1hZ2ljMyA9IChtYWdpYyA9PSBYRlNfRElSMl9MRUFGMV9NQUdJQykgPyBYRlNfRElSM19MRUFGMV9NQUdJQwotIAkJCQkJCQkgOiBYRlNfRElSM19MRUFGTl9NQUdJQzsKLUBAIC0xNzUsNyArMTc1LDcgQEAgeGZzX2RpcjNfbGVhZl92ZXJpZnkoCi0gc3RhdGljIHZvaWQKLSBfX3JlYWRfdmVyaWZ5KAotIAlzdHJ1Y3QgeGZzX2J1ZiAgKmJwLAotLQlfX3VpbnQxNl90CW1hZ2ljKQotKwl1aW50MTZfdAltYWdpYykKLSB7Ci0gCXN0cnVjdCB4ZnNfbW91bnQJKm1wID0gYnAtPmJfdGFyZ2V0LT5idF9tb3VudDsKLSAKLUBAIC0xOTIsNyArMTkyLDcgQEAgX19yZWFkX3ZlcmlmeSgKLSBzdGF0aWMgdm9pZAotIF9fd3JpdGVfdmVyaWZ5KAotIAlzdHJ1Y3QgeGZzX2J1ZiAgKmJwLAotLQlfX3VpbnQxNl90CW1hZ2ljKQotKwl1aW50MTZfdAltYWdpYykKLSB7Ci0gCXN0cnVjdCB4ZnNfbW91bnQJKm1wID0gYnAtPmJfdGFyZ2V0LT5idF9tb3VudDsKLSAJc3RydWN0IHhmc19idWZfbG9nX2l0ZW0JKmJpcCA9IGJwLT5iX2ZzcHJpdjsKLUBAIC0yOTYsNyArMjk2LDcgQEAgeGZzX2RpcjNfbGVhZl9pbml0KAotIAlzdHJ1Y3QgeGZzX3RyYW5zCSp0cCwKLSAJc3RydWN0IHhmc19idWYJCSpicCwKLSAJeGZzX2lub190CQlvd25lciwKLS0JX191aW50MTZfdAkJdHlwZSkKLSsJdWludDE2X3QJCXR5cGUpCi0gewotIAlzdHJ1Y3QgeGZzX2RpcjJfbGVhZgkqbGVhZiA9IGJwLT5iX2FkZHI7Ci0gCi1AQCAtMzQwLDcgKzM0MCw3IEBAIHhmc19kaXIzX2xlYWZfZ2V0X2J1ZigKLSAJeGZzX2RhX2FyZ3NfdAkJKmFyZ3MsCi0gCXhmc19kaXIyX2RiX3QJCWJubywKLSAJc3RydWN0IHhmc19idWYJCSoqYnBwLAotLQlfX3VpbnQxNl90CQltYWdpYykKLSsJdWludDE2X3QJCW1hZ2ljKQotIHsKLSAJc3RydWN0IHhmc19pbm9kZQkqZHAgPSBhcmdzLT5kcDsKLSAJc3RydWN0IHhmc190cmFucwkqdHAgPSBhcmdzLT50cmFuczsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2RpcjJfcHJpdi5oIGIvbGlieGZzL3hmc19kaXIyX3ByaXYuaAotaW5kZXggMzlmODYwNGYuLjAxMWRmNGRhIDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kaXIyX3ByaXYuaAotKysrIGIvbGlieGZzL3hmc19kaXIyX3ByaXYuaAotQEAgLTY5LDcgKzY5LDcgQEAgZXh0ZXJuIHZvaWQgeGZzX2RpcjNfbGVhZl9jb21wYWN0X3gxKHN0cnVjdCB4ZnNfZGlyM19pY2xlYWZfaGRyICpsZWFmaGRyLAotIAkJc3RydWN0IHhmc19kaXIyX2xlYWZfZW50cnkgKmVudHMsIGludCAqaW5kZXhwLAotIAkJaW50ICpsb3dzdGFsZXAsIGludCAqaGlnaHN0YWxlcCwgaW50ICpsb3dsb2dwLCBpbnQgKmhpZ2hsb2dwKTsKLSBleHRlcm4gaW50IHhmc19kaXIzX2xlYWZfZ2V0X2J1ZihzdHJ1Y3QgeGZzX2RhX2FyZ3MgKmFyZ3MsIHhmc19kaXIyX2RiX3QgYm5vLAotLQkJc3RydWN0IHhmc19idWYgKipicHAsIF9fdWludDE2X3QgbWFnaWMpOwotKwkJc3RydWN0IHhmc19idWYgKipicHAsIHVpbnQxNl90IG1hZ2ljKTsKLSBleHRlcm4gdm9pZCB4ZnNfZGlyM19sZWFmX2xvZ19lbnRzKHN0cnVjdCB4ZnNfZGFfYXJncyAqYXJncywKLSAJCXN0cnVjdCB4ZnNfYnVmICpicCwgaW50IGZpcnN0LCBpbnQgbGFzdCk7Ci0gZXh0ZXJuIHZvaWQgeGZzX2RpcjNfbGVhZl9sb2dfaGVhZGVyKHN0cnVjdCB4ZnNfZGFfYXJncyAqYXJncywKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2RpcjJfc2YuYyBiL2xpYnhmcy94ZnNfZGlyMl9zZi5jCi1pbmRleCAxOTVmODE2ZC4uMGM0NTM5ODggMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2RpcjJfc2YuYwotKysrIGIvbGlieGZzL3hmc19kaXIyX3NmLmMKLUBAIC0xMjUsNyArMTI1LDcgQEAgeGZzX2RpcjJfYmxvY2tfc2ZzaXplKAotIAkJICogQ2FsY3VsYXRlIHRoZSBuZXcgc2l6ZSwgc2VlIGlmIHdlIHNob3VsZCBnaXZlIHVwIHlldC4KLSAJCSAqLwotIAkJc2l6ZSA9IHhmc19kaXIyX3NmX2hkcl9zaXplKGk4Y291bnQpICsJLyogaGVhZGVyICovCi0tCQkgICAgICAgY291bnQgKiAzICogc2l6ZW9mKF9fdTgpICsJLyogbmFtZWxlbiArIG9mZnNldCAqLwotKwkJICAgICAgIGNvdW50ICogMyAqIHNpemVvZih1OCkgKwkJLyogbmFtZWxlbiArIG9mZnNldCAqLwotIAkJICAgICAgIG5hbWVsZW4gKwkJCS8qIG5hbWUgKi8KLSAJCSAgICAgICAoaThjb3VudCA/CQkJLyogaW51bWJlciAqLwotIAkJCQljb3VudCAqIFhGU19JTk82NF9TSVpFIDoKLUBAIC02NDUsNyArNjQ1LDcgQEAgeGZzX2RpcjJfc2ZfdmVyaWZ5KAotIAlpbnQJCQkJb2Zmc2V0OwotIAlpbnQJCQkJc2l6ZTsKLSAJaW50CQkJCWVycm9yOwotLQlfX3VpbnQ4X3QJCQlmaWxldHlwZTsKLSsJdWludDhfdAkJCQlmaWxldHlwZTsKLSAKLSAJQVNTRVJUKGlwLT5pX2QuZGlfZm9ybWF0ID09IFhGU19ESU5PREVfRk1UX0xPQ0FMKTsKLSAJLyoKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2Zvcm1hdC5oIGIvbGlieGZzL3hmc19mb3JtYXQuaAotaW5kZXggNGMzZWQxZmQuLmE1M2YwMzVmIDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19mb3JtYXQuaAotKysrIGIvbGlieGZzL3hmc19mb3JtYXQuaAotQEAgLTEwMyw4ICsxMDMsOCBAQCBzdHJ1Y3QgeGZzX2lmb3JrOwotICAqIE11c3QgYmUgcGFkZGVkIHRvIDY0IGJpdCBhbGlnbm1lbnQuCi0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX3NiIHsKLS0JX191aW50MzJfdAlzYl9tYWdpY251bTsJLyogbWFnaWMgbnVtYmVyID09IFhGU19TQl9NQUdJQyAqLwotLQlfX3VpbnQzMl90CXNiX2Jsb2Nrc2l6ZTsJLyogbG9naWNhbCBibG9jayBzaXplLCBieXRlcyAqLwotKwl1aW50MzJfdAlzYl9tYWdpY251bTsJLyogbWFnaWMgbnVtYmVyID09IFhGU19TQl9NQUdJQyAqLwotKwl1aW50MzJfdAlzYl9ibG9ja3NpemU7CS8qIGxvZ2ljYWwgYmxvY2sgc2l6ZSwgYnl0ZXMgKi8KLSAJeGZzX3Jmc2Jsb2NrX3QJc2JfZGJsb2NrczsJLyogbnVtYmVyIG9mIGRhdGEgYmxvY2tzICovCi0gCXhmc19yZnNibG9ja190CXNiX3JibG9ja3M7CS8qIG51bWJlciBvZiByZWFsdGltZSBibG9ja3MgKi8KLSAJeGZzX3J0YmxvY2tfdAlzYl9yZXh0ZW50czsJLyogbnVtYmVyIG9mIHJlYWx0aW1lIGV4dGVudHMgKi8KLUBAIC0xMTgsNDUgKzExOCw0NSBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfc2IgewotIAl4ZnNfYWdudW1iZXJfdAlzYl9hZ2NvdW50OwkvKiBudW1iZXIgb2YgYWxsb2NhdGlvbiBncm91cHMgKi8KLSAJeGZzX2V4dGxlbl90CXNiX3JibWJsb2NrczsJLyogbnVtYmVyIG9mIHJ0IGJpdG1hcCBibG9ja3MgKi8KLSAJeGZzX2V4dGxlbl90CXNiX2xvZ2Jsb2NrczsJLyogbnVtYmVyIG9mIGxvZyBibG9ja3MgKi8KLS0JX191aW50MTZfdAlzYl92ZXJzaW9ubnVtOwkvKiBoZWFkZXIgdmVyc2lvbiA9PSBYRlNfU0JfVkVSU0lPTiAqLwotLQlfX3VpbnQxNl90CXNiX3NlY3RzaXplOwkvKiB2b2x1bWUgc2VjdG9yIHNpemUsIGJ5dGVzICovCi0tCV9fdWludDE2X3QJc2JfaW5vZGVzaXplOwkvKiBpbm9kZSBzaXplLCBieXRlcyAqLwotLQlfX3VpbnQxNl90CXNiX2lub3BibG9jazsJLyogaW5vZGVzIHBlciBibG9jayAqLwotKwl1aW50MTZfdAlzYl92ZXJzaW9ubnVtOwkvKiBoZWFkZXIgdmVyc2lvbiA9PSBYRlNfU0JfVkVSU0lPTiAqLwotKwl1aW50MTZfdAlzYl9zZWN0c2l6ZTsJLyogdm9sdW1lIHNlY3RvciBzaXplLCBieXRlcyAqLwotKwl1aW50MTZfdAlzYl9pbm9kZXNpemU7CS8qIGlub2RlIHNpemUsIGJ5dGVzICovCi0rCXVpbnQxNl90CXNiX2lub3BibG9jazsJLyogaW5vZGVzIHBlciBibG9jayAqLwotIAljaGFyCQlzYl9mbmFtZVsxMl07CS8qIGZpbGUgc3lzdGVtIG5hbWUgKi8KLS0JX191aW50OF90CXNiX2Jsb2NrbG9nOwkvKiBsb2cyIG9mIHNiX2Jsb2Nrc2l6ZSAqLwotLQlfX3VpbnQ4X3QJc2Jfc2VjdGxvZzsJLyogbG9nMiBvZiBzYl9zZWN0c2l6ZSAqLwotLQlfX3VpbnQ4X3QJc2JfaW5vZGVsb2c7CS8qIGxvZzIgb2Ygc2JfaW5vZGVzaXplICovCi0tCV9fdWludDhfdAlzYl9pbm9wYmxvZzsJLyogbG9nMiBvZiBzYl9pbm9wYmxvY2sgKi8KLS0JX191aW50OF90CXNiX2FnYmxrbG9nOwkvKiBsb2cyIG9mIHNiX2FnYmxvY2tzIChyb3VuZGVkIHVwKSAqLwotLQlfX3VpbnQ4X3QJc2JfcmV4dHNsb2c7CS8qIGxvZzIgb2Ygc2JfcmV4dGVudHMgKi8KLS0JX191aW50OF90CXNiX2lucHJvZ3Jlc3M7CS8qIG1rZnMgaXMgaW4gcHJvZ3Jlc3MsIGRvbid0IG1vdW50ICovCi0tCV9fdWludDhfdAlzYl9pbWF4X3BjdDsJLyogbWF4ICUgb2YgZnMgZm9yIGlub2RlIHNwYWNlICovCi0rCXVpbnQ4X3QJCXNiX2Jsb2NrbG9nOwkvKiBsb2cyIG9mIHNiX2Jsb2Nrc2l6ZSAqLwotKwl1aW50OF90CQlzYl9zZWN0bG9nOwkvKiBsb2cyIG9mIHNiX3NlY3RzaXplICovCi0rCXVpbnQ4X3QJCXNiX2lub2RlbG9nOwkvKiBsb2cyIG9mIHNiX2lub2Rlc2l6ZSAqLwotKwl1aW50OF90CQlzYl9pbm9wYmxvZzsJLyogbG9nMiBvZiBzYl9pbm9wYmxvY2sgKi8KLSsJdWludDhfdAkJc2JfYWdibGtsb2c7CS8qIGxvZzIgb2Ygc2JfYWdibG9ja3MgKHJvdW5kZWQgdXApICovCi0rCXVpbnQ4X3QJCXNiX3JleHRzbG9nOwkvKiBsb2cyIG9mIHNiX3JleHRlbnRzICovCi0rCXVpbnQ4X3QJCXNiX2lucHJvZ3Jlc3M7CS8qIG1rZnMgaXMgaW4gcHJvZ3Jlc3MsIGRvbid0IG1vdW50ICovCi0rCXVpbnQ4X3QJCXNiX2ltYXhfcGN0OwkvKiBtYXggJSBvZiBmcyBmb3IgaW5vZGUgc3BhY2UgKi8KLSAJCQkJCS8qIHN0YXRpc3RpY3MgKi8KLSAJLyoKLSAJICogVGhlc2UgZmllbGRzIG11c3QgcmVtYWluIGNvbnRpZ3VvdXMuICBJZiB5b3UgcmVhbGx5Ci0gCSAqIHdhbnQgdG8gY2hhbmdlIHRoZWlyIGxheW91dCwgbWFrZSBzdXJlIHlvdSBmaXggdGhlCi0gCSAqIGNvZGUgaW4geGZzX3RyYW5zX2FwcGx5X3NiX2RlbHRhcygpLgotIAkgKi8KLS0JX191aW50NjRfdAlzYl9pY291bnQ7CS8qIGFsbG9jYXRlZCBpbm9kZXMgKi8KLS0JX191aW50NjRfdAlzYl9pZnJlZTsJLyogZnJlZSBpbm9kZXMgKi8KLS0JX191aW50NjRfdAlzYl9mZGJsb2NrczsJLyogZnJlZSBkYXRhIGJsb2NrcyAqLwotLQlfX3VpbnQ2NF90CXNiX2ZyZXh0ZW50czsJLyogZnJlZSByZWFsdGltZSBleHRlbnRzICovCi0rCXVpbnQ2NF90CXNiX2ljb3VudDsJLyogYWxsb2NhdGVkIGlub2RlcyAqLwotKwl1aW50NjRfdAlzYl9pZnJlZTsJLyogZnJlZSBpbm9kZXMgKi8KLSsJdWludDY0X3QJc2JfZmRibG9ja3M7CS8qIGZyZWUgZGF0YSBibG9ja3MgKi8KLSsJdWludDY0X3QJc2JfZnJleHRlbnRzOwkvKiBmcmVlIHJlYWx0aW1lIGV4dGVudHMgKi8KLSAJLyoKLSAJICogRW5kIGNvbnRpZ3VvdXMgZmllbGRzLgotIAkgKi8KLSAJeGZzX2lub190CXNiX3VxdW90aW5vOwkvKiB1c2VyIHF1b3RhIGlub2RlICovCi0gCXhmc19pbm9fdAlzYl9ncXVvdGlubzsJLyogZ3JvdXAgcXVvdGEgaW5vZGUgKi8KLS0JX191aW50MTZfdAlzYl9xZmxhZ3M7CS8qIHF1b3RhIGZsYWdzICovCi0tCV9fdWludDhfdAlzYl9mbGFnczsJLyogbWlzYy4gZmxhZ3MgKi8KLS0JX191aW50OF90CXNiX3NoYXJlZF92bjsJLyogc2hhcmVkIHZlcnNpb24gbnVtYmVyICovCi0rCXVpbnQxNl90CXNiX3FmbGFnczsJLyogcXVvdGEgZmxhZ3MgKi8KLSsJdWludDhfdAkJc2JfZmxhZ3M7CS8qIG1pc2MuIGZsYWdzICovCi0rCXVpbnQ4X3QJCXNiX3NoYXJlZF92bjsJLyogc2hhcmVkIHZlcnNpb24gbnVtYmVyICovCi0gCXhmc19leHRsZW5fdAlzYl9pbm9hbGlnbm10OwkvKiBpbm9kZSBjaHVuayBhbGlnbm1lbnQsIGZzYmxvY2tzICovCi0tCV9fdWludDMyX3QJc2JfdW5pdDsJLyogc3RyaXBlIG9yIHJhaWQgdW5pdCAqLwotLQlfX3VpbnQzMl90CXNiX3dpZHRoOwkvKiBzdHJpcGUgb3IgcmFpZCB3aWR0aCAqLwotLQlfX3VpbnQ4X3QJc2JfZGlyYmxrbG9nOwkvKiBsb2cyIG9mIGRpciBibG9jayBzaXplIChmc2JzKSAqLwotLQlfX3VpbnQ4X3QJc2JfbG9nc2VjdGxvZzsJLyogbG9nMiBvZiB0aGUgbG9nIHNlY3RvciBzaXplICovCi0tCV9fdWludDE2X3QJc2JfbG9nc2VjdHNpemU7CS8qIHNlY3RvciBzaXplIGZvciB0aGUgbG9nLCBieXRlcyAqLwotLQlfX3VpbnQzMl90CXNiX2xvZ3N1bml0OwkvKiBzdHJpcGUgdW5pdCBzaXplIGZvciB0aGUgbG9nICovCi0tCV9fdWludDMyX3QJc2JfZmVhdHVyZXMyOwkvKiBhZGRpdGlvbmFsIGZlYXR1cmUgYml0cyAqLwotKwl1aW50MzJfdAlzYl91bml0OwkvKiBzdHJpcGUgb3IgcmFpZCB1bml0ICovCi0rCXVpbnQzMl90CXNiX3dpZHRoOwkvKiBzdHJpcGUgb3IgcmFpZCB3aWR0aCAqLwotKwl1aW50OF90CQlzYl9kaXJibGtsb2c7CS8qIGxvZzIgb2YgZGlyIGJsb2NrIHNpemUgKGZzYnMpICovCi0rCXVpbnQ4X3QJCXNiX2xvZ3NlY3Rsb2c7CS8qIGxvZzIgb2YgdGhlIGxvZyBzZWN0b3Igc2l6ZSAqLwotKwl1aW50MTZfdAlzYl9sb2dzZWN0c2l6ZTsJLyogc2VjdG9yIHNpemUgZm9yIHRoZSBsb2csIGJ5dGVzICovCi0rCXVpbnQzMl90CXNiX2xvZ3N1bml0OwkvKiBzdHJpcGUgdW5pdCBzaXplIGZvciB0aGUgbG9nICovCi0rCXVpbnQzMl90CXNiX2ZlYXR1cmVzMjsJLyogYWRkaXRpb25hbCBmZWF0dXJlIGJpdHMgKi8KLSAKLSAJLyoKLSAJICogYmFkIGZlYXR1cmVzMiBmaWVsZCBhcyBhIHJlc3VsdCBvZiBmYWlsaW5nIHRvIHBhZCB0aGUgc2Igc3RydWN0dXJlIHRvCi1AQCAtMTY3LDE3ICsxNjcsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX3NiIHsKLSAJICogdGhlIHZhbHVlIGluIHNiX2ZlYXR1cmVzMiB3aGVuIGZvcm1hdHRpbmcgdGhlIGluY29yZSBzdXBlcmJsb2NrIHRvCi0gCSAqIHRoZSBkaXNrIGJ1ZmZlci4KLSAJICovCi0tCV9fdWludDMyX3QJc2JfYmFkX2ZlYXR1cmVzMjsKLSsJdWludDMyX3QJc2JfYmFkX2ZlYXR1cmVzMjsKLSAKLSAJLyogdmVyc2lvbiA1IHN1cGVyYmxvY2sgZmllbGRzIHN0YXJ0IGhlcmUgKi8KLSAKLSAJLyogZmVhdHVyZSBtYXNrcyAqLwotLQlfX3VpbnQzMl90CXNiX2ZlYXR1cmVzX2NvbXBhdDsKLS0JX191aW50MzJfdAlzYl9mZWF0dXJlc19yb19jb21wYXQ7Ci0tCV9fdWludDMyX3QJc2JfZmVhdHVyZXNfaW5jb21wYXQ7Ci0tCV9fdWludDMyX3QJc2JfZmVhdHVyZXNfbG9nX2luY29tcGF0OwotKwl1aW50MzJfdAlzYl9mZWF0dXJlc19jb21wYXQ7Ci0rCXVpbnQzMl90CXNiX2ZlYXR1cmVzX3JvX2NvbXBhdDsKLSsJdWludDMyX3QJc2JfZmVhdHVyZXNfaW5jb21wYXQ7Ci0rCXVpbnQzMl90CXNiX2ZlYXR1cmVzX2xvZ19pbmNvbXBhdDsKLSAKLS0JX191aW50MzJfdAlzYl9jcmM7CQkvKiBzdXBlcmJsb2NrIGNyYyAqLwotKwl1aW50MzJfdAlzYl9jcmM7CQkvKiBzdXBlcmJsb2NrIGNyYyAqLwotIAl4ZnNfZXh0bGVuX3QJc2Jfc3Bpbm9fYWxpZ247CS8qIHNwYXJzZSBpbm9kZSBjaHVuayBhbGlnbm1lbnQgKi8KLSAKLSAJeGZzX2lub190CXNiX3BxdW90aW5vOwkvKiBwcm9qZWN0IHF1b3RhIGlub2RlICovCi1AQCAtNDQ5LDcgKzQ0OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZnNfc2JfdmVyc2lvbl9hZGRwcm9qaWQzMmJpdChzdHJ1Y3QgeGZzX3NiICpzYnApCi0gc3RhdGljIGlubGluZSBib29sCi0geGZzX3NiX2hhc19jb21wYXRfZmVhdHVyZSgKLSAJc3RydWN0IHhmc19zYgkqc2JwLAotLQlfX3VpbnQzMl90CWZlYXR1cmUpCi0rCXVpbnQzMl90CWZlYXR1cmUpCi0gewotIAlyZXR1cm4gKHNicC0+c2JfZmVhdHVyZXNfY29tcGF0ICYgZmVhdHVyZSkgIT0gMDsKLSB9Ci1AQCAtNDY1LDcgKzQ2NSw3IEBAIHhmc19zYl9oYXNfY29tcGF0X2ZlYXR1cmUoCi0gc3RhdGljIGlubGluZSBib29sCi0geGZzX3NiX2hhc19yb19jb21wYXRfZmVhdHVyZSgKLSAJc3RydWN0IHhmc19zYgkqc2JwLAotLQlfX3VpbnQzMl90CWZlYXR1cmUpCi0rCXVpbnQzMl90CWZlYXR1cmUpCi0gewotIAlyZXR1cm4gKHNicC0+c2JfZmVhdHVyZXNfcm9fY29tcGF0ICYgZmVhdHVyZSkgIT0gMDsKLSB9Ci1AQCAtNDgyLDcgKzQ4Miw3IEBAIHhmc19zYl9oYXNfcm9fY29tcGF0X2ZlYXR1cmUoCi0gc3RhdGljIGlubGluZSBib29sCi0geGZzX3NiX2hhc19pbmNvbXBhdF9mZWF0dXJlKAotIAlzdHJ1Y3QgeGZzX3NiCSpzYnAsCi0tCV9fdWludDMyX3QJZmVhdHVyZSkKLSsJdWludDMyX3QJZmVhdHVyZSkKLSB7Ci0gCXJldHVybiAoc2JwLT5zYl9mZWF0dXJlc19pbmNvbXBhdCAmIGZlYXR1cmUpICE9IDA7Ci0gfQotQEAgLTQ5Miw3ICs0OTIsNyBAQCB4ZnNfc2JfaGFzX2luY29tcGF0X2ZlYXR1cmUoCi0gc3RhdGljIGlubGluZSBib29sCi0geGZzX3NiX2hhc19pbmNvbXBhdF9sb2dfZmVhdHVyZSgKLSAJc3RydWN0IHhmc19zYgkqc2JwLAotLQlfX3VpbnQzMl90CWZlYXR1cmUpCi0rCXVpbnQzMl90CWZlYXR1cmUpCi0gewotIAlyZXR1cm4gKHNicC0+c2JfZmVhdHVyZXNfbG9nX2luY29tcGF0ICYgZmVhdHVyZSkgIT0gMDsKLSB9Ci1AQCAtNTk0LDggKzU5NCw4IEBAIHhmc19pc19xdW90YV9pbm9kZShzdHJ1Y3QgeGZzX3NiICpzYnAsIHhmc19pbm9fdCBpbm8pCi0gICovCi0gI2RlZmluZSBYRlNfRlNCX1RPX0IobXAsZnNibm8pCSgoeGZzX2ZzaXplX3QpKGZzYm5vKSA8PCAobXApLT5tX3NiLnNiX2Jsb2NrbG9nKQotICNkZWZpbmUgWEZTX0JfVE9fRlNCKG1wLGIpCVwKLS0JKCgoKF9fdWludDY0X3QpKGIpKSArIChtcCktPm1fYmxvY2ttYXNrKSA+PiAobXApLT5tX3NiLnNiX2Jsb2NrbG9nKQotLSNkZWZpbmUgWEZTX0JfVE9fRlNCVChtcCxiKQkoKChfX3VpbnQ2NF90KShiKSkgPj4gKG1wKS0+bV9zYi5zYl9ibG9ja2xvZykKLSsJKCgoKHVpbnQ2NF90KShiKSkgKyAobXApLT5tX2Jsb2NrbWFzaykgPj4gKG1wKS0+bV9zYi5zYl9ibG9ja2xvZykKLSsjZGVmaW5lIFhGU19CX1RPX0ZTQlQobXAsYikJKCgodWludDY0X3QpKGIpKSA+PiAobXApLT5tX3NiLnNiX2Jsb2NrbG9nKQotICNkZWZpbmUgWEZTX0JfRlNCX09GRlNFVChtcCxiKQkoKGIpICYgKG1wKS0+bV9ibG9ja21hc2spCi0gCi0gLyoKLUBAIC0xMDcyLDcgKzEwNzIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGZzX2Rpbm9kZV9wdXRfcmRldihzdHJ1Y3QgeGZzX2Rpbm9kZSAqZGlwLCB4ZnNfZGV2X3QgcmRldikKLSAgKiBuZXh0IGFnbm9fbG9nIGJpdHMgLSBhZyBudW1iZXIKLSAgKiBoaWdoIGFnbm9fbG9nLWFnYmxrbG9nLWlub3BibG9nIGJpdHMgLSAwCi0gICovCi0tI2RlZmluZQlYRlNfSU5PX01BU0soaykJCQkoX191aW50MzJfdCkoKDFVTEwgPDwgKGspKSAtIDEpCi0rI2RlZmluZQlYRlNfSU5PX01BU0soaykJCQkodWludDMyX3QpKCgxVUxMIDw8IChrKSkgLSAxKQotICNkZWZpbmUJWEZTX0lOT19PRkZTRVRfQklUUyhtcCkJCShtcCktPm1fc2Iuc2JfaW5vcGJsb2cKLSAjZGVmaW5lCVhGU19JTk9fQUdCTk9fQklUUyhtcCkJCShtcCktPm1fc2Iuc2JfYWdibGtsb2cKLSAjZGVmaW5lCVhGU19JTk9fQUdJTk9fQklUUyhtcCkJCShtcCktPm1fYWdpbm9fbG9nCi1AQCAtMTI2OSwxNiArMTI2OSwxNiBAQCB0eXBlZGVmIF9fYmUzMiB4ZnNfYWxsb2NfcHRyX3Q7Ci0gI2RlZmluZQlYRlNfRklCVF9NQUdJQwkJMHg0NjQ5NDI1NAkvKiAnRklCVCcgKi8KLSAjZGVmaW5lCVhGU19GSUJUX0NSQ19NQUdJQwkweDQ2NDk0MjMzCS8qICdGSUIzJyAqLwotIAotLXR5cGVkZWYJX191aW50NjRfdAl4ZnNfaW5vZnJlZV90OwotK3R5cGVkZWYgdWludDY0X3QJeGZzX2lub2ZyZWVfdDsKLSAjZGVmaW5lCVhGU19JTk9ERVNfUEVSX0NIVU5LCQkoTkJCWSAqIHNpemVvZih4ZnNfaW5vZnJlZV90KSkKLSAjZGVmaW5lCVhGU19JTk9ERVNfUEVSX0NIVU5LX0xPRwkoWEZTX05CQllMT0cgKyAzKQotICNkZWZpbmUJWEZTX0lOT0JUX0FMTF9GUkVFCQkoKHhmc19pbm9mcmVlX3QpLTEpCi0gI2RlZmluZQlYRlNfSU5PQlRfTUFTSyhpKQkJKCh4ZnNfaW5vZnJlZV90KTEgPDwgKGkpKQotIAotICNkZWZpbmUgWEZTX0lOT0JUX0hPTEVNQVNLX0ZVTEwJCTAJLyogaG9sZW1hc2sgZm9yIGZ1bGwgY2h1bmsgKi8KLS0jZGVmaW5lIFhGU19JTk9CVF9IT0xFTUFTS19CSVRTCQkoTkJCWSAqIHNpemVvZihfX3VpbnQxNl90KSkKLSsjZGVmaW5lIFhGU19JTk9CVF9IT0xFTUFTS19CSVRTCQkoTkJCWSAqIHNpemVvZih1aW50MTZfdCkpCi0gI2RlZmluZSBYRlNfSU5PREVTX1BFUl9IT0xFTUFTS19CSVQJXAotLQkoWEZTX0lOT0RFU19QRVJfQ0hVTksgLyAoTkJCWSAqIHNpemVvZihfX3VpbnQxNl90KSkpCi0rCShYRlNfSU5PREVTX1BFUl9DSFVOSyAvIChOQkJZICogc2l6ZW9mKHVpbnQxNl90KSkpCi0gCi0gc3RhdGljIGlubGluZSB4ZnNfaW5vZnJlZV90IHhmc19pbm9idF9tYXNrbihpbnQgaSwgaW50IG4pCi0gewotQEAgLTEzMTIsOSArMTMxMiw5IEBAIHR5cGVkZWYgc3RydWN0IHhmc19pbm9idF9yZWMgewotIAotIHR5cGVkZWYgc3RydWN0IHhmc19pbm9idF9yZWNfaW5jb3JlIHsKLSAJeGZzX2FnaW5vX3QJaXJfc3RhcnRpbm87CS8qIHN0YXJ0aW5nIGlub2RlIG51bWJlciAqLwotLQlfX3VpbnQxNl90CWlyX2hvbGVtYXNrOwkvKiBob2xlIG1hc2sgZm9yIHNwYXJzZSBjaHVua3MgKi8KLS0JX191aW50OF90CWlyX2NvdW50OwkvKiB0b3RhbCBpbm9kZSBjb3VudCAqLwotLQlfX3VpbnQ4X3QJaXJfZnJlZWNvdW50OwkvKiBjb3VudCBvZiBmcmVlIGlub2RlcyAoc2V0IGJpdHMpICovCi0rCXVpbnQxNl90CWlyX2hvbGVtYXNrOwkvKiBob2xlIG1hc2sgZm9yIHNwYXJzZSBjaHVua3MgKi8KLSsJdWludDhfdAkJaXJfY291bnQ7CS8qIHRvdGFsIGlub2RlIGNvdW50ICovCi0rCXVpbnQ4X3QJCWlyX2ZyZWVjb3VudDsJLyogY291bnQgb2YgZnJlZSBpbm9kZXMgKHNldCBiaXRzKSAqLwotIAl4ZnNfaW5vZnJlZV90CWlyX2ZyZWU7CS8qIGZyZWUgaW5vZGUgbWFzayAqLwotIH0geGZzX2lub2J0X3JlY19pbmNvcmVfdDsKLSAKLUBAIC0xMzk3LDE1ICsxMzk3LDE1IEBAIHN0cnVjdCB4ZnNfcm1hcF9yZWMgewotICAqICBybV9vZmZzZXQ6NTQtNjAgYXJlbid0IHVzZWQgYW5kIHNob3VsZCBiZSB6ZXJvCi0gICogIHJtX29mZnNldDowLTUzIGlzIHRoZSBibG9jayBvZmZzZXQgd2l0aGluIHRoZSBpbm9kZQotICAqLwotLSNkZWZpbmUgWEZTX1JNQVBfT0ZGX0FUVFJfRk9SSwkoKF9fdWludDY0X3QpMVVMTCA8PCA2MykKLS0jZGVmaW5lIFhGU19STUFQX09GRl9CTUJUX0JMT0NLCSgoX191aW50NjRfdCkxVUxMIDw8IDYyKQotLSNkZWZpbmUgWEZTX1JNQVBfT0ZGX1VOV1JJVFRFTgkoKF9fdWludDY0X3QpMVVMTCA8PCA2MSkKLSsjZGVmaW5lIFhGU19STUFQX09GRl9BVFRSX0ZPUksJKCh1aW50NjRfdCkxVUxMIDw8IDYzKQotKyNkZWZpbmUgWEZTX1JNQVBfT0ZGX0JNQlRfQkxPQ0sJKCh1aW50NjRfdCkxVUxMIDw8IDYyKQotKyNkZWZpbmUgWEZTX1JNQVBfT0ZGX1VOV1JJVFRFTgkoKHVpbnQ2NF90KTFVTEwgPDwgNjEpCi0gCi0tI2RlZmluZSBYRlNfUk1BUF9MRU5fTUFYCSgoX191aW50MzJfdCl+MFUpCi0rI2RlZmluZSBYRlNfUk1BUF9MRU5fTUFYCSgodWludDMyX3QpfjBVKQotICNkZWZpbmUgWEZTX1JNQVBfT0ZGX0ZMQUdTCShYRlNfUk1BUF9PRkZfQVRUUl9GT1JLIHwgXAotIAkJCQkgWEZTX1JNQVBfT0ZGX0JNQlRfQkxPQ0sgfCBcCi0gCQkJCSBYRlNfUk1BUF9PRkZfVU5XUklUVEVOKQotLSNkZWZpbmUgWEZTX1JNQVBfT0ZGX01BU0sJKChfX3VpbnQ2NF90KTB4M0ZGRkZGRkZGRkZGRkZVTEwpCi0rI2RlZmluZSBYRlNfUk1BUF9PRkZfTUFTSwkoKHVpbnQ2NF90KTB4M0ZGRkZGRkZGRkZGRkZVTEwpCi0gCi0gI2RlZmluZSBYRlNfUk1BUF9PRkYob2ZmKQkJKChvZmYpICYgWEZTX1JNQVBfT0ZGX01BU0spCi0gCi1AQCAtMTQzMSw4ICsxNDMxLDggQEAgc3RydWN0IHhmc19ybWFwX3JlYyB7Ci0gc3RydWN0IHhmc19ybWFwX2lyZWMgewotIAl4ZnNfYWdibG9ja190CXJtX3N0YXJ0YmxvY2s7CS8qIGV4dGVudCBzdGFydCBibG9jayAqLwotIAl4ZnNfZXh0bGVuX3QJcm1fYmxvY2tjb3VudDsJLyogZXh0ZW50IGxlbmd0aCAqLwotLQlfX3VpbnQ2NF90CXJtX293bmVyOwkvKiBleHRlbnQgb3duZXIgKi8KLS0JX191aW50NjRfdAlybV9vZmZzZXQ7CS8qIG9mZnNldCB3aXRoaW4gdGhlIG93bmVyICovCi0rCXVpbnQ2NF90CXJtX293bmVyOwkvKiBleHRlbnQgb3duZXIgKi8KLSsJdWludDY0X3QJcm1fb2Zmc2V0OwkvKiBvZmZzZXQgd2l0aGluIHRoZSBvd25lciAqLwotIAl1bnNpZ25lZCBpbnQJcm1fZmxhZ3M7CS8qIHN0YXRlIGZsYWdzICovCi0gfTsKLSAKLUBAIC0xNTQ0LDExICsxNTQ0LDExIEBAIHR5cGVkZWYgc3RydWN0IHhmc19ibWJ0X3JlYyB7Ci0gCV9fYmU2NAkJCWwwLCBsMTsKLSB9IHhmc19ibWJ0X3JlY190OwotIAotLXR5cGVkZWYgX191aW50NjRfdAl4ZnNfYm1idF9yZWNfYmFzZV90OwkvKiB1c2UgdGhpcyBmb3IgY2FzdHMgKi8KLSt0eXBlZGVmIHVpbnQ2NF90CXhmc19ibWJ0X3JlY19iYXNlX3Q7CS8qIHVzZSB0aGlzIGZvciBjYXN0cyAqLwotIHR5cGVkZWYgeGZzX2JtYnRfcmVjX3QgeGZzX2JtZHJfcmVjX3Q7Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2JtYnRfcmVjX2hvc3QgewotLQlfX3VpbnQ2NF90CQlsMCwgbDE7Ci0rCXVpbnQ2NF90CQlsMCwgbDE7Ci0gfSB4ZnNfYm1idF9yZWNfaG9zdF90OwotIAotIC8qCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19mcy5oIGIvbGlieGZzL3hmc19mcy5oCi1pbmRleCA5OWY3Zjg4MS4uOGEwYzBlZWMgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2ZzLmgKLSsrKyBiL2xpYnhmcy94ZnNfZnMuaAotQEAgLTMyMywxMCArMzIzLDEwIEBAIHR5cGVkZWYgc3RydWN0IHhmc19ic3RhdCB7Ci0gICogYW5kIHVzaW5nIHR3byAxNmJpdCB2YWx1ZXMgdG8gaG9sZCBuZXcgMzJiaXQgcHJvamlkIHdhcyBjaG9vc2VuCi0gICogdG8gcmV0YWluIGNvbXBhdGliaWxpdHkgd2l0aCAib2xkIiBmaWxlc3lzdGVtcykuCi0gICovCi0tc3RhdGljIGlubGluZSBfX3VpbnQzMl90Ci0rc3RhdGljIGlubGluZSB1aW50MzJfdAotIGJzdGF0X2dldF9wcm9qaWQoc3RydWN0IHhmc19ic3RhdCAqYnMpCi0gewotLQlyZXR1cm4gKF9fdWludDMyX3QpYnMtPmJzX3Byb2ppZF9oaSA8PCAxNiB8IGJzLT5ic19wcm9qaWRfbG87Ci0rCXJldHVybiAodWludDMyX3QpYnMtPmJzX3Byb2ppZF9oaSA8PCAxNiB8IGJzLT5ic19wcm9qaWRfbG87Ci0gfQotIAotIC8qCi1AQCAtNDcyLDEwICs0NzIsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX2hhbmRsZSB7Ci0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX3N3YXBleHQKLSB7Ci0tCV9faW50NjRfdAlzeF92ZXJzaW9uOwkvKiB2ZXJzaW9uICovCi0rCWludDY0X3QJCXN4X3ZlcnNpb247CS8qIHZlcnNpb24gKi8KLSAjZGVmaW5lIFhGU19TWF9WRVJTSU9OCQkwCi0tCV9faW50NjRfdAlzeF9mZHRhcmdldDsJLyogZmQgb2YgdGFyZ2V0IGZpbGUgKi8KLS0JX19pbnQ2NF90CXN4X2ZkdG1wOwkvKiBmZCBvZiB0bXAgZmlsZSAqLwotKwlpbnQ2NF90CQlzeF9mZHRhcmdldDsJLyogZmQgb2YgdGFyZ2V0IGZpbGUgKi8KLSsJaW50NjRfdAkJc3hfZmR0bXA7CS8qIGZkIG9mIHRtcCBmaWxlICovCi0gCXhmc19vZmZfdAlzeF9vZmZzZXQ7CS8qIG9mZnNldCBpbnRvIGZpbGUgKi8KLSAJeGZzX29mZl90CXN4X2xlbmd0aDsJLyogbGVuZyBmcm9tIG9mZnNldCAqLwotIAljaGFyCQlzeF9wYWRbMTZdOwkvKiBwYWQgc3BhY2UsIHVudXNlZCAqLwotQEAgLTU2Miw3ICs1NjIsNyBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfc3dhcGV4dAotICNkZWZpbmUgWEZTX0lPQ19BVFRSTElTVF9CWV9IQU5ETEUgICBfSU9XICgnWCcsIDEyMiwgc3RydWN0IHhmc19mc29wX2F0dHJsaXN0X2hhbmRsZXJlcSkKLSAjZGVmaW5lIFhGU19JT0NfQVRUUk1VTFRJX0JZX0hBTkRMRSAgX0lPVyAoJ1gnLCAxMjMsIHN0cnVjdCB4ZnNfZnNvcF9hdHRybXVsdGlfaGFuZGxlcmVxKQotICNkZWZpbmUgWEZTX0lPQ19GU0dFT01FVFJZCSAgICAgX0lPUiAoJ1gnLCAxMjQsIHN0cnVjdCB4ZnNfZnNvcF9nZW9tKQotLSNkZWZpbmUgWEZTX0lPQ19HT0lOR0RPV04JICAgICBfSU9SICgnWCcsIDEyNSwgX191aW50MzJfdCkKLSsjZGVmaW5lIFhGU19JT0NfR09JTkdET1dOCSAgICAgX0lPUiAoJ1gnLCAxMjUsIHVpbnQzMl90KQotIC8qCVhGU19JT0NfR0VURlNVVUlEIC0tLS0tLS0tLS0gZGVwcmVjYXRlZCAxNDAJICovCi0gCi0gLyogcmVmbGluayBpb2N0bHM7IHRoZXNlIE1VU1QgbWF0Y2ggdGhlIGJ0cmZzIGlvY3RsIGRlZmluaXRpb25zICovCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19pYWxsb2MuYyBiL2xpYnhmcy94ZnNfaWFsbG9jLmMKLWluZGV4IDU1Y2M0NTA3Li44ZDI0NTE4NCAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfaWFsbG9jLmMKLSsrKyBiL2xpYnhmcy94ZnNfaWFsbG9jLmMKLUBAIC0xMzQsOSArMTM0LDkgQEAgeGZzX2lub2J0X2dldF9yZWMoCi0gU1RBVElDIGludAotIHhmc19pbm9idF9pbnNlcnRfcmVjKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotLQlfX3VpbnQxNl90CQlob2xlbWFzaywKLS0JX191aW50OF90CQljb3VudCwKLS0JX19pbnQzMl90CQlmcmVlY291bnQsCi0rCXVpbnQxNl90CQlob2xlbWFzaywKLSsJdWludDhfdAkJCWNvdW50LAotKwlpbnQzMl90CQkJZnJlZWNvdW50LAotIAl4ZnNfaW5vZnJlZV90CQlmcmVlLAotIAlpbnQJCQkqc3RhdCkKLSB7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19pYWxsb2NfYnRyZWUuYyBiL2xpYnhmcy94ZnNfaWFsbG9jX2J0cmVlLmMKLWluZGV4IDdiNGJlNzY2Li41YjI4MTA1NCAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfaWFsbG9jX2J0cmVlLmMKLSsrKyBiL2xpYnhmcy94ZnNfaWFsbG9jX2J0cmVlLmMKLUBAIC0yMTgsMTIgKzIxOCwxMiBAQCB4ZnNfZmlub2J0X2luaXRfcHRyX2Zyb21fY3VyKAotIAlwdHItPnMgPSBhZ2ktPmFnaV9mcmVlX3Jvb3Q7Ci0gfQotIAotLVNUQVRJQyBfX2ludDY0X3QKLStTVEFUSUMgaW50NjRfdAotIHhmc19pbm9idF9rZXlfZGlmZigKLSAJc3RydWN0IHhmc19idHJlZV9jdXIJKmN1ciwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqa2V5KQotIHsKLS0JcmV0dXJuIChfX2ludDY0X3QpYmUzMl90b19jcHUoa2V5LT5pbm9idC5pcl9zdGFydGlubykgLQotKwlyZXR1cm4gKGludDY0X3QpYmUzMl90b19jcHUoa2V5LT5pbm9idC5pcl9zdGFydGlubykgLQotIAkJCSAgY3VyLT5iY19yZWMuaS5pcl9zdGFydGlubzsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19pbm9kZV9idWYuYyBiL2xpYnhmcy94ZnNfaW5vZGVfYnVmLmMKLWluZGV4IDI5NzI3MDFkLi5mY2M2ZmI4ZSAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfaW5vZGVfYnVmLmMKLSsrKyBiL2xpYnhmcy94ZnNfaW5vZGVfYnVmLmMKLUBAIC00NDIsNyArNDQyLDcgQEAgeGZzX2Rpbm9kZV9jYWxjX2NyYygKLSAJc3RydWN0IHhmc19tb3VudAkqbXAsCi0gCXN0cnVjdCB4ZnNfZGlub2RlCSpkaXApCi0gewotLQlfX3VpbnQzMl90CQljcmM7Ci0rCXVpbnQzMl90CQljcmM7Ci0gCi0gCWlmIChkaXAtPmRpX3ZlcnNpb24gPCAzKQotIAkJcmV0dXJuOwotZGlmZiAtLWdpdCBhL2xpYnhmcy94ZnNfaW5vZGVfYnVmLmggYi9saWJ4ZnMveGZzX2lub2RlX2J1Zi5oCi1pbmRleCA2ODQ4YTBhZi4uMDgyN2Q3ZGUgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2lub2RlX2J1Zi5oCi0rKysgYi9saWJ4ZnMveGZzX2lub2RlX2J1Zi5oCi1AQCAtMjgsMjYgKzI4LDI2IEBAIHN0cnVjdCB4ZnNfZGlub2RlOwotICAqIGZvcm1hdCBzcGVjaWZpYyBzdHJ1Y3R1cmVzIGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lLgotICAqLwotIHN0cnVjdCB4ZnNfaWNkaW5vZGUgewotLQlfX2ludDhfdAlkaV92ZXJzaW9uOwkvKiBpbm9kZSB2ZXJzaW9uICovCi0tCV9faW50OF90CWRpX2Zvcm1hdDsJLyogZm9ybWF0IG9mIGRpX2MgZGF0YSAqLwotLQlfX3VpbnQxNl90CWRpX2ZsdXNoaXRlcjsJLyogaW5jcmVtZW50ZWQgb24gZmx1c2ggKi8KLS0JX191aW50MzJfdAlkaV91aWQ7CQkvKiBvd25lcidzIHVzZXIgaWQgKi8KLS0JX191aW50MzJfdAlkaV9naWQ7CQkvKiBvd25lcidzIGdyb3VwIGlkICovCi0tCV9fdWludDE2X3QJZGlfcHJvamlkX2xvOwkvKiBsb3dlciBwYXJ0IG9mIG93bmVyJ3MgcHJvamVjdCBpZCAqLwotLQlfX3VpbnQxNl90CWRpX3Byb2ppZF9oaTsJLyogaGlnaGVyIHBhcnQgb2Ygb3duZXIncyBwcm9qZWN0IGlkICovCi0rCWludDhfdAkJZGlfdmVyc2lvbjsJLyogaW5vZGUgdmVyc2lvbiAqLwotKwlpbnQ4X3QJCWRpX2Zvcm1hdDsJLyogZm9ybWF0IG9mIGRpX2MgZGF0YSAqLwotKwl1aW50MTZfdAlkaV9mbHVzaGl0ZXI7CS8qIGluY3JlbWVudGVkIG9uIGZsdXNoICovCi0rCXVpbnQzMl90CWRpX3VpZDsJCS8qIG93bmVyJ3MgdXNlciBpZCAqLwotKwl1aW50MzJfdAlkaV9naWQ7CQkvKiBvd25lcidzIGdyb3VwIGlkICovCi0rCXVpbnQxNl90CWRpX3Byb2ppZF9sbzsJLyogbG93ZXIgcGFydCBvZiBvd25lcidzIHByb2plY3QgaWQgKi8KLSsJdWludDE2X3QJZGlfcHJvamlkX2hpOwkvKiBoaWdoZXIgcGFydCBvZiBvd25lcidzIHByb2plY3QgaWQgKi8KLSAJeGZzX2ZzaXplX3QJZGlfc2l6ZTsJLyogbnVtYmVyIG9mIGJ5dGVzIGluIGZpbGUgKi8KLSAJeGZzX3Jmc2Jsb2NrX3QJZGlfbmJsb2NrczsJLyogIyBvZiBkaXJlY3QgJiBidHJlZSBibG9ja3MgdXNlZCAqLwotIAl4ZnNfZXh0bGVuX3QJZGlfZXh0c2l6ZTsJLyogYmFzaWMvbWluaW11bSBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotIAl4ZnNfZXh0bnVtX3QJZGlfbmV4dGVudHM7CS8qIG51bWJlciBvZiBleHRlbnRzIGluIGRhdGEgZm9yayAqLwotIAl4ZnNfYWV4dG51bV90CWRpX2FuZXh0ZW50czsJLyogbnVtYmVyIG9mIGV4dGVudHMgaW4gYXR0cmlidXRlIGZvcmsqLwotLQlfX3VpbnQ4X3QJZGlfZm9ya29mZjsJLyogYXR0ciBmb3JrIG9mZnMsIDw8MyBmb3IgNjRiIGFsaWduICovCi0tCV9faW50OF90CWRpX2Fmb3JtYXQ7CS8qIGZvcm1hdCBvZiBhdHRyIGZvcmsncyBkYXRhICovCi0tCV9fdWludDMyX3QJZGlfZG1ldm1hc2s7CS8qIERNSUcgZXZlbnQgbWFzayAqLwotLQlfX3VpbnQxNl90CWRpX2Rtc3RhdGU7CS8qIERNSUcgc3RhdGUgaW5mbyAqLwotLQlfX3VpbnQxNl90CWRpX2ZsYWdzOwkvKiByYW5kb20gZmxhZ3MsIFhGU19ESUZMQUdfLi4uICovCi0rCXVpbnQ4X3QJCWRpX2ZvcmtvZmY7CS8qIGF0dHIgZm9yayBvZmZzLCA8PDMgZm9yIDY0YiBhbGlnbiAqLwotKwlpbnQ4X3QJCWRpX2Fmb3JtYXQ7CS8qIGZvcm1hdCBvZiBhdHRyIGZvcmsncyBkYXRhICovCi0rCXVpbnQzMl90CWRpX2RtZXZtYXNrOwkvKiBETUlHIGV2ZW50IG1hc2sgKi8KLSsJdWludDE2X3QJZGlfZG1zdGF0ZTsJLyogRE1JRyBzdGF0ZSBpbmZvICovCi0rCXVpbnQxNl90CWRpX2ZsYWdzOwkvKiByYW5kb20gZmxhZ3MsIFhGU19ESUZMQUdfLi4uICovCi0gCi0tCV9fdWludDY0X3QJZGlfZmxhZ3MyOwkvKiBtb3JlIHJhbmRvbSBmbGFncyAqLwotLQlfX3VpbnQzMl90CWRpX2Nvd2V4dHNpemU7CS8qIGJhc2ljIGNvdyBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotKwl1aW50NjRfdAlkaV9mbGFnczI7CS8qIG1vcmUgcmFuZG9tIGZsYWdzICovCi0rCXVpbnQzMl90CWRpX2Nvd2V4dHNpemU7CS8qIGJhc2ljIGNvdyBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotIAotIAl4ZnNfaWN0aW1lc3RhbXBfdCBkaV9jcnRpbWU7CS8qIHRpbWUgY3JlYXRlZCAqLwotIH07Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19sb2dfZm9ybWF0LmggYi9saWJ4ZnMveGZzX2xvZ19mb3JtYXQuaAotaW5kZXggN2FlNTcxZjguLjgzNzJlOWJjIDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19sb2dfZm9ybWF0LmgKLSsrKyBiL2xpYnhmcy94ZnNfbG9nX2Zvcm1hdC5oCi1AQCAtMzEsNyArMzEsNyBAQCBzdHJ1Y3QgeGZzX3RyYW5zX3JlczsKLSAgKiB0aHJvdWdoIGFsbCB0aGUgbG9nIGl0ZW1zIGRlZmluaXRpb25zIGFuZCBldmVyeXRoaW5nIHRoZXkgZW5jb2RlIGludG8gdGhlCi0gICogbG9nLgotICAqLwotLXR5cGVkZWYgX191aW50MzJfdCB4bG9nX3RpZF90OwotK3R5cGVkZWYgdWludDMyX3QgeGxvZ190aWRfdDsKLSAKLSAjZGVmaW5lIFhMT0dfTUlOX0lDTE9HUwkJMgotICNkZWZpbmUgWExPR19NQVhfSUNMT0dTCQk4Ci1AQCAtMjExLDcgKzIxMSw3IEBAIHR5cGVkZWYgc3RydWN0IHhmc19sb2dfaW92ZWMgewotIHR5cGVkZWYgc3RydWN0IHhmc190cmFuc19oZWFkZXIgewotIAl1aW50CQl0aF9tYWdpYzsJCS8qIG1hZ2ljIG51bWJlciAqLwotIAl1aW50CQl0aF90eXBlOwkJLyogdHJhbnNhY3Rpb24gdHlwZSAqLwotLQlfX2ludDMyX3QJdGhfdGlkOwkJCS8qIHRyYW5zYWN0aW9uIGlkICh1bnVzZWQpICovCi0rCWludDMyX3QJCXRoX3RpZDsJCQkvKiB0cmFuc2FjdGlvbiBpZCAodW51c2VkKSAqLwotIAl1aW50CQl0aF9udW1faXRlbXM7CQkvKiBudW0gaXRlbXMgbG9nZ2VkIGJ5IHRyYW5zICovCi0gfSB4ZnNfdHJhbnNfaGVhZGVyX3Q7Ci0gCi1AQCAtMjY1LDUyICsyNjUsNTIgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX3RyYW5zX2hlYWRlciB7Ci0gICogbXVzdCBiZSBhZGRlZCBvbiB0byB0aGUgZW5kLgotICAqLwotIHR5cGVkZWYgc3RydWN0IHhmc19pbm9kZV9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJaWxmX3R5cGU7CS8qIGlub2RlIGxvZyBpdGVtIHR5cGUgKi8KLS0JX191aW50MTZfdAkJaWxmX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0tCV9fdWludDMyX3QJCWlsZl9maWVsZHM7CS8qIGZsYWdzIGZvciBmaWVsZHMgbG9nZ2VkICovCi0tCV9fdWludDE2X3QJCWlsZl9hc2l6ZTsJLyogc2l6ZSBvZiBhdHRyIGQvZXh0L3Jvb3QgKi8KLS0JX191aW50MTZfdAkJaWxmX2RzaXplOwkvKiBzaXplIG9mIGRhdGEvZXh0L3Jvb3QgKi8KLS0JX191aW50NjRfdAkJaWxmX2lubzsJLyogaW5vZGUgbnVtYmVyICovCi0rCXVpbnQxNl90CQlpbGZfdHlwZTsJLyogaW5vZGUgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJaWxmX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQlpbGZfZmllbGRzOwkvKiBmbGFncyBmb3IgZmllbGRzIGxvZ2dlZCAqLwotKwl1aW50MTZfdAkJaWxmX2FzaXplOwkvKiBzaXplIG9mIGF0dHIgZC9leHQvcm9vdCAqLwotKwl1aW50MTZfdAkJaWxmX2RzaXplOwkvKiBzaXplIG9mIGRhdGEvZXh0L3Jvb3QgKi8KLSsJdWludDY0X3QJCWlsZl9pbm87CS8qIGlub2RlIG51bWJlciAqLwotIAl1bmlvbiB7Ci0tCQlfX3VpbnQzMl90CWlsZnVfcmRldjsJLyogcmRldiB2YWx1ZSBmb3IgZGV2IGlub2RlKi8KLSsJCXVpbnQzMl90CWlsZnVfcmRldjsJLyogcmRldiB2YWx1ZSBmb3IgZGV2IGlub2RlKi8KLSAJCXV1aWRfdAkJaWxmdV91dWlkOwkvKiBtb3VudCBwb2ludCB2YWx1ZSAqLwotIAl9IGlsZl91OwotLQlfX2ludDY0X3QJCWlsZl9ibGtubzsJLyogYmxrbm8gb2YgaW5vZGUgYnVmZmVyICovCi0tCV9faW50MzJfdAkJaWxmX2xlbjsJLyogbGVuIG9mIGlub2RlIGJ1ZmZlciAqLwotLQlfX2ludDMyX3QJCWlsZl9ib2Zmc2V0OwkvKiBvZmYgb2YgaW5vZGUgaW4gYnVmZmVyICovCi0rCWludDY0X3QJCQlpbGZfYmxrbm87CS8qIGJsa25vIG9mIGlub2RlIGJ1ZmZlciAqLwotKwlpbnQzMl90CQkJaWxmX2xlbjsJLyogbGVuIG9mIGlub2RlIGJ1ZmZlciAqLwotKwlpbnQzMl90CQkJaWxmX2JvZmZzZXQ7CS8qIG9mZiBvZiBpbm9kZSBpbiBidWZmZXIgKi8KLSB9IHhmc19pbm9kZV9sb2dfZm9ybWF0X3Q7Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2lub2RlX2xvZ19mb3JtYXRfMzIgewotLQlfX3VpbnQxNl90CQlpbGZfdHlwZTsJLyogaW5vZGUgbG9nIGl0ZW0gdHlwZSAqLwotLQlfX3VpbnQxNl90CQlpbGZfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLS0JX191aW50MzJfdAkJaWxmX2ZpZWxkczsJLyogZmxhZ3MgZm9yIGZpZWxkcyBsb2dnZWQgKi8KLS0JX191aW50MTZfdAkJaWxmX2FzaXplOwkvKiBzaXplIG9mIGF0dHIgZC9leHQvcm9vdCAqLwotLQlfX3VpbnQxNl90CQlpbGZfZHNpemU7CS8qIHNpemUgb2YgZGF0YS9leHQvcm9vdCAqLwotLQlfX3VpbnQ2NF90CQlpbGZfaW5vOwkvKiBpbm9kZSBudW1iZXIgKi8KLSsJdWludDE2X3QJCWlsZl90eXBlOwkvKiBpbm9kZSBsb2cgaXRlbSB0eXBlICovCi0rCXVpbnQxNl90CQlpbGZfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLSsJdWludDMyX3QJCWlsZl9maWVsZHM7CS8qIGZsYWdzIGZvciBmaWVsZHMgbG9nZ2VkICovCi0rCXVpbnQxNl90CQlpbGZfYXNpemU7CS8qIHNpemUgb2YgYXR0ciBkL2V4dC9yb290ICovCi0rCXVpbnQxNl90CQlpbGZfZHNpemU7CS8qIHNpemUgb2YgZGF0YS9leHQvcm9vdCAqLwotKwl1aW50NjRfdAkJaWxmX2lubzsJLyogaW5vZGUgbnVtYmVyICovCi0gCXVuaW9uIHsKLS0JCV9fdWludDMyX3QJaWxmdV9yZGV2OwkvKiByZGV2IHZhbHVlIGZvciBkZXYgaW5vZGUqLwotKwkJdWludDMyX3QJaWxmdV9yZGV2OwkvKiByZGV2IHZhbHVlIGZvciBkZXYgaW5vZGUqLwotIAkJdXVpZF90CQlpbGZ1X3V1aWQ7CS8qIG1vdW50IHBvaW50IHZhbHVlICovCi0gCX0gaWxmX3U7Ci0tCV9faW50NjRfdAkJaWxmX2Jsa25vOwkvKiBibGtubyBvZiBpbm9kZSBidWZmZXIgKi8KLS0JX19pbnQzMl90CQlpbGZfbGVuOwkvKiBsZW4gb2YgaW5vZGUgYnVmZmVyICovCi0tCV9faW50MzJfdAkJaWxmX2JvZmZzZXQ7CS8qIG9mZiBvZiBpbm9kZSBpbiBidWZmZXIgKi8KLSsJaW50NjRfdAkJCWlsZl9ibGtubzsJLyogYmxrbm8gb2YgaW5vZGUgYnVmZmVyICovCi0rCWludDMyX3QJCQlpbGZfbGVuOwkvKiBsZW4gb2YgaW5vZGUgYnVmZmVyICovCi0rCWludDMyX3QJCQlpbGZfYm9mZnNldDsJLyogb2ZmIG9mIGlub2RlIGluIGJ1ZmZlciAqLwotIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgeGZzX2lub2RlX2xvZ19mb3JtYXRfMzJfdDsKLSAKLSB0eXBlZGVmIHN0cnVjdCB4ZnNfaW5vZGVfbG9nX2Zvcm1hdF82NCB7Ci0tCV9fdWludDE2X3QJCWlsZl90eXBlOwkvKiBpbm9kZSBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCWlsZl9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQlpbGZfZmllbGRzOwkvKiBmbGFncyBmb3IgZmllbGRzIGxvZ2dlZCAqLwotLQlfX3VpbnQxNl90CQlpbGZfYXNpemU7CS8qIHNpemUgb2YgYXR0ciBkL2V4dC9yb290ICovCi0tCV9fdWludDE2X3QJCWlsZl9kc2l6ZTsJLyogc2l6ZSBvZiBkYXRhL2V4dC9yb290ICovCi0tCV9fdWludDMyX3QJCWlsZl9wYWQ7CS8qIHBhZCBmb3IgNjQgYml0IGJvdW5kYXJ5ICovCi0tCV9fdWludDY0X3QJCWlsZl9pbm87CS8qIGlub2RlIG51bWJlciAqLwotKwl1aW50MTZfdAkJaWxmX3R5cGU7CS8qIGlub2RlIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCWlsZl9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJaWxmX2ZpZWxkczsJLyogZmxhZ3MgZm9yIGZpZWxkcyBsb2dnZWQgKi8KLSsJdWludDE2X3QJCWlsZl9hc2l6ZTsJLyogc2l6ZSBvZiBhdHRyIGQvZXh0L3Jvb3QgKi8KLSsJdWludDE2X3QJCWlsZl9kc2l6ZTsJLyogc2l6ZSBvZiBkYXRhL2V4dC9yb290ICovCi0rCXVpbnQzMl90CQlpbGZfcGFkOwkvKiBwYWQgZm9yIDY0IGJpdCBib3VuZGFyeSAqLwotKwl1aW50NjRfdAkJaWxmX2lubzsJLyogaW5vZGUgbnVtYmVyICovCi0gCXVuaW9uIHsKLS0JCV9fdWludDMyX3QJaWxmdV9yZGV2OwkvKiByZGV2IHZhbHVlIGZvciBkZXYgaW5vZGUqLwotKwkJdWludDMyX3QJaWxmdV9yZGV2OwkvKiByZGV2IHZhbHVlIGZvciBkZXYgaW5vZGUqLwotIAkJdXVpZF90CQlpbGZ1X3V1aWQ7CS8qIG1vdW50IHBvaW50IHZhbHVlICovCi0gCX0gaWxmX3U7Ci0tCV9faW50NjRfdAkJaWxmX2Jsa25vOwkvKiBibGtubyBvZiBpbm9kZSBidWZmZXIgKi8KLS0JX19pbnQzMl90CQlpbGZfbGVuOwkvKiBsZW4gb2YgaW5vZGUgYnVmZmVyICovCi0tCV9faW50MzJfdAkJaWxmX2JvZmZzZXQ7CS8qIG9mZiBvZiBpbm9kZSBpbiBidWZmZXIgKi8KLSsJaW50NjRfdAkJCWlsZl9ibGtubzsJLyogYmxrbm8gb2YgaW5vZGUgYnVmZmVyICovCi0rCWludDMyX3QJCQlpbGZfbGVuOwkvKiBsZW4gb2YgaW5vZGUgYnVmZmVyICovCi0rCWludDMyX3QJCQlpbGZfYm9mZnNldDsJLyogb2ZmIG9mIGlub2RlIGluIGJ1ZmZlciAqLwotIH0geGZzX2lub2RlX2xvZ19mb3JtYXRfNjRfdDsKLSAKLSAKLUBAIC0zNzksOCArMzc5LDggQEAgc3RhdGljIGlubGluZSBpbnQgeGZzX2lsb2dfZmRhdGEoaW50IHcpCi0gICogaW5mb3JtYXRpb24uCi0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2ljdGltZXN0YW1wIHsKLS0JX19pbnQzMl90CXRfc2VjOwkJLyogdGltZXN0YW1wIHNlY29uZHMgKi8KLS0JX19pbnQzMl90CXRfbnNlYzsJCS8qIHRpbWVzdGFtcCBuYW5vc2Vjb25kcyAqLwotKwlpbnQzMl90CQl0X3NlYzsJCS8qIHRpbWVzdGFtcCBzZWNvbmRzICovCi0rCWludDMyX3QJCXRfbnNlYzsJCS8qIHRpbWVzdGFtcCBuYW5vc2Vjb25kcyAqLwotIH0geGZzX2ljdGltZXN0YW1wX3Q7Ci0gCi0gLyoKLUBAIC0zODgsMTggKzM4OCwxOCBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfaWN0aW1lc3RhbXAgewotICAqIGtlcHQgaWRlbnRpY2FsIHRvIHN0cnVjdCB4ZnNfZGlub2RlIGV4Y2VwdCBmb3IgdGhlIGVuZGlhbm5lc3MgYW5ub3RhdGlvbnMuCi0gICovCi0gc3RydWN0IHhmc19sb2dfZGlub2RlIHsKLS0JX191aW50MTZfdAlkaV9tYWdpYzsJLyogaW5vZGUgbWFnaWMgIyA9IFhGU19ESU5PREVfTUFHSUMgKi8KLS0JX191aW50MTZfdAlkaV9tb2RlOwkvKiBtb2RlIGFuZCB0eXBlIG9mIGZpbGUgKi8KLS0JX19pbnQ4X3QJZGlfdmVyc2lvbjsJLyogaW5vZGUgdmVyc2lvbiAqLwotLQlfX2ludDhfdAlkaV9mb3JtYXQ7CS8qIGZvcm1hdCBvZiBkaV9jIGRhdGEgKi8KLS0JX191aW50OF90CWRpX3BhZDNbMl07CS8qIHVudXNlZCBpbiB2Mi8zIGlub2RlcyAqLwotLQlfX3VpbnQzMl90CWRpX3VpZDsJCS8qIG93bmVyJ3MgdXNlciBpZCAqLwotLQlfX3VpbnQzMl90CWRpX2dpZDsJCS8qIG93bmVyJ3MgZ3JvdXAgaWQgKi8KLS0JX191aW50MzJfdAlkaV9ubGluazsJLyogbnVtYmVyIG9mIGxpbmtzIHRvIGZpbGUgKi8KLS0JX191aW50MTZfdAlkaV9wcm9qaWRfbG87CS8qIGxvd2VyIHBhcnQgb2Ygb3duZXIncyBwcm9qZWN0IGlkICovCi0tCV9fdWludDE2X3QJZGlfcHJvamlkX2hpOwkvKiBoaWdoZXIgcGFydCBvZiBvd25lcidzIHByb2plY3QgaWQgKi8KLS0JX191aW50OF90CWRpX3BhZFs2XTsJLyogdW51c2VkLCB6ZXJvZWQgc3BhY2UgKi8KLS0JX191aW50MTZfdAlkaV9mbHVzaGl0ZXI7CS8qIGluY3JlbWVudGVkIG9uIGZsdXNoICovCi0rCXVpbnQxNl90CWRpX21hZ2ljOwkvKiBpbm9kZSBtYWdpYyAjID0gWEZTX0RJTk9ERV9NQUdJQyAqLwotKwl1aW50MTZfdAlkaV9tb2RlOwkvKiBtb2RlIGFuZCB0eXBlIG9mIGZpbGUgKi8KLSsJaW50OF90CQlkaV92ZXJzaW9uOwkvKiBpbm9kZSB2ZXJzaW9uICovCi0rCWludDhfdAkJZGlfZm9ybWF0OwkvKiBmb3JtYXQgb2YgZGlfYyBkYXRhICovCi0rCXVpbnQ4X3QJCWRpX3BhZDNbMl07CS8qIHVudXNlZCBpbiB2Mi8zIGlub2RlcyAqLwotKwl1aW50MzJfdAlkaV91aWQ7CQkvKiBvd25lcidzIHVzZXIgaWQgKi8KLSsJdWludDMyX3QJZGlfZ2lkOwkJLyogb3duZXIncyBncm91cCBpZCAqLwotKwl1aW50MzJfdAlkaV9ubGluazsJLyogbnVtYmVyIG9mIGxpbmtzIHRvIGZpbGUgKi8KLSsJdWludDE2X3QJZGlfcHJvamlkX2xvOwkvKiBsb3dlciBwYXJ0IG9mIG93bmVyJ3MgcHJvamVjdCBpZCAqLwotKwl1aW50MTZfdAlkaV9wcm9qaWRfaGk7CS8qIGhpZ2hlciBwYXJ0IG9mIG93bmVyJ3MgcHJvamVjdCBpZCAqLwotKwl1aW50OF90CQlkaV9wYWRbNl07CS8qIHVudXNlZCwgemVyb2VkIHNwYWNlICovCi0rCXVpbnQxNl90CWRpX2ZsdXNoaXRlcjsJLyogaW5jcmVtZW50ZWQgb24gZmx1c2ggKi8KLSAJeGZzX2ljdGltZXN0YW1wX3QgZGlfYXRpbWU7CS8qIHRpbWUgbGFzdCBhY2Nlc3NlZCAqLwotIAl4ZnNfaWN0aW1lc3RhbXBfdCBkaV9tdGltZTsJLyogdGltZSBsYXN0IG1vZGlmaWVkICovCi0gCXhmc19pY3RpbWVzdGFtcF90IGRpX2N0aW1lOwkvKiB0aW1lIGNyZWF0ZWQvaW5vZGUgbW9kaWZpZWQgKi8KLUBAIC00MDgsMjMgKzQwOCwyMyBAQCBzdHJ1Y3QgeGZzX2xvZ19kaW5vZGUgewotIAl4ZnNfZXh0bGVuX3QJZGlfZXh0c2l6ZTsJLyogYmFzaWMvbWluaW11bSBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotIAl4ZnNfZXh0bnVtX3QJZGlfbmV4dGVudHM7CS8qIG51bWJlciBvZiBleHRlbnRzIGluIGRhdGEgZm9yayAqLwotIAl4ZnNfYWV4dG51bV90CWRpX2FuZXh0ZW50czsJLyogbnVtYmVyIG9mIGV4dGVudHMgaW4gYXR0cmlidXRlIGZvcmsqLwotLQlfX3VpbnQ4X3QJZGlfZm9ya29mZjsJLyogYXR0ciBmb3JrIG9mZnMsIDw8MyBmb3IgNjRiIGFsaWduICovCi0tCV9faW50OF90CWRpX2Fmb3JtYXQ7CS8qIGZvcm1hdCBvZiBhdHRyIGZvcmsncyBkYXRhICovCi0tCV9fdWludDMyX3QJZGlfZG1ldm1hc2s7CS8qIERNSUcgZXZlbnQgbWFzayAqLwotLQlfX3VpbnQxNl90CWRpX2Rtc3RhdGU7CS8qIERNSUcgc3RhdGUgaW5mbyAqLwotLQlfX3VpbnQxNl90CWRpX2ZsYWdzOwkvKiByYW5kb20gZmxhZ3MsIFhGU19ESUZMQUdfLi4uICovCi0tCV9fdWludDMyX3QJZGlfZ2VuOwkJLyogZ2VuZXJhdGlvbiBudW1iZXIgKi8KLSsJdWludDhfdAkJZGlfZm9ya29mZjsJLyogYXR0ciBmb3JrIG9mZnMsIDw8MyBmb3IgNjRiIGFsaWduICovCi0rCWludDhfdAkJZGlfYWZvcm1hdDsJLyogZm9ybWF0IG9mIGF0dHIgZm9yaydzIGRhdGEgKi8KLSsJdWludDMyX3QJZGlfZG1ldm1hc2s7CS8qIERNSUcgZXZlbnQgbWFzayAqLwotKwl1aW50MTZfdAlkaV9kbXN0YXRlOwkvKiBETUlHIHN0YXRlIGluZm8gKi8KLSsJdWludDE2X3QJZGlfZmxhZ3M7CS8qIHJhbmRvbSBmbGFncywgWEZTX0RJRkxBR18uLi4gKi8KLSsJdWludDMyX3QJZGlfZ2VuOwkJLyogZ2VuZXJhdGlvbiBudW1iZXIgKi8KLSAKLSAJLyogZGlfbmV4dF91bmxpbmtlZCBpcyB0aGUgb25seSBub24tY29yZSBmaWVsZCBpbiB0aGUgb2xkIGRpbm9kZSAqLwotIAl4ZnNfYWdpbm9fdAlkaV9uZXh0X3VubGlua2VkOy8qIGFnaSB1bmxpbmtlZCBsaXN0IHB0ciAqLwotIAotIAkvKiBzdGFydCBvZiB0aGUgZXh0ZW5kZWQgZGlub2RlLCB3cml0YWJsZSBmaWVsZHMgKi8KLS0JX191aW50MzJfdAlkaV9jcmM7CQkvKiBDUkMgb2YgdGhlIGlub2RlICovCi0tCV9fdWludDY0X3QJZGlfY2hhbmdlY291bnQ7CS8qIG51bWJlciBvZiBhdHRyaWJ1dGUgY2hhbmdlcyAqLwotKwl1aW50MzJfdAlkaV9jcmM7CQkvKiBDUkMgb2YgdGhlIGlub2RlICovCi0rCXVpbnQ2NF90CWRpX2NoYW5nZWNvdW50OwkvKiBudW1iZXIgb2YgYXR0cmlidXRlIGNoYW5nZXMgKi8KLSAJeGZzX2xzbl90CWRpX2xzbjsJCS8qIGZsdXNoIHNlcXVlbmNlICovCi0tCV9fdWludDY0X3QJZGlfZmxhZ3MyOwkvKiBtb3JlIHJhbmRvbSBmbGFncyAqLwotLQlfX3VpbnQzMl90CWRpX2Nvd2V4dHNpemU7CS8qIGJhc2ljIGNvdyBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotLQlfX3VpbnQ4X3QJZGlfcGFkMlsxMl07CS8qIG1vcmUgcGFkZGluZyBmb3IgZnV0dXJlIGV4cGFuc2lvbiAqLwotKwl1aW50NjRfdAlkaV9mbGFnczI7CS8qIG1vcmUgcmFuZG9tIGZsYWdzICovCi0rCXVpbnQzMl90CWRpX2Nvd2V4dHNpemU7CS8qIGJhc2ljIGNvdyBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotKwl1aW50OF90CQlkaV9wYWQyWzEyXTsJLyogbW9yZSBwYWRkaW5nIGZvciBmdXR1cmUgZXhwYW5zaW9uICovCi0gCi0gCS8qIGZpZWxkcyBvbmx5IHdyaXR0ZW4gdG8gZHVyaW5nIGlub2RlIGNyZWF0aW9uICovCi0gCXhmc19pY3RpbWVzdGFtcF90IGRpX2NydGltZTsJLyogdGltZSBjcmVhdGVkICovCi1AQCAtNDgzLDcgKzQ4Myw3IEBAIHR5cGVkZWYgc3RydWN0IHhmc19idWZfbG9nX2Zvcm1hdCB7Ci0gCXVuc2lnbmVkIHNob3J0CWJsZl9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotIAl1bnNpZ25lZCBzaG9ydAlibGZfZmxhZ3M7CS8qIG1pc2Mgc3RhdGUgKi8KLSAJdW5zaWduZWQgc2hvcnQJYmxmX2xlbjsJLyogbnVtYmVyIG9mIGJsb2NrcyBpbiB0aGlzIGJ1ZiAqLwotLQlfX2ludDY0X3QJYmxmX2Jsa25vOwkvKiBzdGFydGluZyBibGtubyBvZiB0aGlzIGJ1ZiAqLwotKwlpbnQ2NF90CQlibGZfYmxrbm87CS8qIHN0YXJ0aW5nIGJsa25vIG9mIHRoaXMgYnVmICovCi0gCXVuc2lnbmVkIGludAlibGZfbWFwX3NpemU7CS8qIHVzZWQgc2l6ZSBvZiBkYXRhIGJpdG1hcCBpbiB3b3JkcyAqLwotIAl1bnNpZ25lZCBpbnQJYmxmX2RhdGFfbWFwW1hGU19CTEZfREFUQU1BUF9TSVpFXTsgLyogZGlydHkgYml0bWFwICovCi0gfSB4ZnNfYnVmX2xvZ19mb3JtYXRfdDsKLUBAIC01MzMsNyArNTMzLDcgQEAgeGZzX2JsZnRfdG9fZmxhZ3Moc3RydWN0IHhmc19idWZfbG9nX2Zvcm1hdCAqYmxmLCBlbnVtIHhmc19ibGZ0IHR5cGUpCi0gCWJsZi0+YmxmX2ZsYWdzIHw9ICgodHlwZSA8PCBYRlNfQkxGVF9TSElGVCkgJiBYRlNfQkxGVF9NQVNLKTsKLSB9Ci0gCi0tc3RhdGljIGlubGluZSBfX3VpbnQxNl90Ci0rc3RhdGljIGlubGluZSB1aW50MTZfdAotIHhmc19ibGZ0X2Zyb21fZmxhZ3Moc3RydWN0IHhmc19idWZfbG9nX2Zvcm1hdCAqYmxmKQotIHsKLSAJcmV0dXJuIChibGYtPmJsZl9mbGFncyAmIFhGU19CTEZUX01BU0spID4+IFhGU19CTEZUX1NISUZUOwotQEAgLTU1NCwxNCArNTU0LDE0IEBAIHR5cGVkZWYgc3RydWN0IHhmc19leHRlbnQgewotICAqIGNvbnZlcnNpb24gcm91dGluZS4KLSAgKi8KLSB0eXBlZGVmIHN0cnVjdCB4ZnNfZXh0ZW50XzMyIHsKLS0JX191aW50NjRfdAlleHRfc3RhcnQ7Ci0tCV9fdWludDMyX3QJZXh0X2xlbjsKLSsJdWludDY0X3QJZXh0X3N0YXJ0OwotKwl1aW50MzJfdAlleHRfbGVuOwotIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgeGZzX2V4dGVudF8zMl90OwotIAotIHR5cGVkZWYgc3RydWN0IHhmc19leHRlbnRfNjQgewotLQlfX3VpbnQ2NF90CWV4dF9zdGFydDsKLS0JX191aW50MzJfdAlleHRfbGVuOwotLQlfX3VpbnQzMl90CWV4dF9wYWQ7Ci0rCXVpbnQ2NF90CWV4dF9zdGFydDsKLSsJdWludDMyX3QJZXh0X2xlbjsKLSsJdWludDMyX3QJZXh0X3BhZDsKLSB9IHhmc19leHRlbnRfNjRfdDsKLSAKLSAvKgotQEAgLTU3MCwyNiArNTcwLDI2IEBAIHR5cGVkZWYgc3RydWN0IHhmc19leHRlbnRfNjQgewotICAqIHNpemUgaXMgZ2l2ZW4gYnkgZWZpX25leHRlbnRzLgotICAqLwotIHR5cGVkZWYgc3RydWN0IHhmc19lZmlfbG9nX2Zvcm1hdCB7Ci0tCV9fdWludDE2X3QJCWVmaV90eXBlOwkvKiBlZmkgbG9nIGl0ZW0gdHlwZSAqLwotLQlfX3VpbnQxNl90CQllZmlfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLS0JX191aW50MzJfdAkJZWZpX25leHRlbnRzOwkvKiAjIGV4dGVudHMgdG8gZnJlZSAqLwotLQlfX3VpbnQ2NF90CQllZmlfaWQ7CQkvKiBlZmkgaWRlbnRpZmllciAqLwotKwl1aW50MTZfdAkJZWZpX3R5cGU7CS8qIGVmaSBsb2cgaXRlbSB0eXBlICovCi0rCXVpbnQxNl90CQllZmlfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLSsJdWludDMyX3QJCWVmaV9uZXh0ZW50czsJLyogIyBleHRlbnRzIHRvIGZyZWUgKi8KLSsJdWludDY0X3QJCWVmaV9pZDsJCS8qIGVmaSBpZGVudGlmaWVyICovCi0gCXhmc19leHRlbnRfdAkJZWZpX2V4dGVudHNbMV07CS8qIGFycmF5IG9mIGV4dGVudHMgdG8gZnJlZSAqLwotIH0geGZzX2VmaV9sb2dfZm9ybWF0X3Q7Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2VmaV9sb2dfZm9ybWF0XzMyIHsKLS0JX191aW50MTZfdAkJZWZpX3R5cGU7CS8qIGVmaSBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCWVmaV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQllZmlfbmV4dGVudHM7CS8qICMgZXh0ZW50cyB0byBmcmVlICovCi0tCV9fdWludDY0X3QJCWVmaV9pZDsJCS8qIGVmaSBpZGVudGlmaWVyICovCi0rCXVpbnQxNl90CQllZmlfdHlwZTsJLyogZWZpIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCWVmaV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJZWZpX25leHRlbnRzOwkvKiAjIGV4dGVudHMgdG8gZnJlZSAqLwotKwl1aW50NjRfdAkJZWZpX2lkOwkJLyogZWZpIGlkZW50aWZpZXIgKi8KLSAJeGZzX2V4dGVudF8zMl90CQllZmlfZXh0ZW50c1sxXTsJLyogYXJyYXkgb2YgZXh0ZW50cyB0byBmcmVlICovCi0gfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSB4ZnNfZWZpX2xvZ19mb3JtYXRfMzJfdDsKLSAKLSB0eXBlZGVmIHN0cnVjdCB4ZnNfZWZpX2xvZ19mb3JtYXRfNjQgewotLQlfX3VpbnQxNl90CQllZmlfdHlwZTsJLyogZWZpIGxvZyBpdGVtIHR5cGUgKi8KLS0JX191aW50MTZfdAkJZWZpX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0tCV9fdWludDMyX3QJCWVmaV9uZXh0ZW50czsJLyogIyBleHRlbnRzIHRvIGZyZWUgKi8KLS0JX191aW50NjRfdAkJZWZpX2lkOwkJLyogZWZpIGlkZW50aWZpZXIgKi8KLSsJdWludDE2X3QJCWVmaV90eXBlOwkvKiBlZmkgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJZWZpX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQllZmlfbmV4dGVudHM7CS8qICMgZXh0ZW50cyB0byBmcmVlICovCi0rCXVpbnQ2NF90CQllZmlfaWQ7CQkvKiBlZmkgaWRlbnRpZmllciAqLwotIAl4ZnNfZXh0ZW50XzY0X3QJCWVmaV9leHRlbnRzWzFdOwkvKiBhcnJheSBvZiBleHRlbnRzIHRvIGZyZWUgKi8KLSB9IHhmc19lZmlfbG9nX2Zvcm1hdF82NF90OwotIAotQEAgLTU5OSwyNiArNTk5LDI2IEBAIHR5cGVkZWYgc3RydWN0IHhmc19lZmlfbG9nX2Zvcm1hdF82NCB7Ci0gICogc2l6ZSBpcyBnaXZlbiBieSBlZmRfbmV4dGVudHM7Ci0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2VmZF9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJZWZkX3R5cGU7CS8qIGVmZCBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCWVmZF9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQllZmRfbmV4dGVudHM7CS8qICMgb2YgZXh0ZW50cyBmcmVlZCAqLwotLQlfX3VpbnQ2NF90CQllZmRfZWZpX2lkOwkvKiBpZCBvZiBjb3JyZXNwb25kaW5nIGVmaSAqLwotKwl1aW50MTZfdAkJZWZkX3R5cGU7CS8qIGVmZCBsb2cgaXRlbSB0eXBlICovCi0rCXVpbnQxNl90CQllZmRfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLSsJdWludDMyX3QJCWVmZF9uZXh0ZW50czsJLyogIyBvZiBleHRlbnRzIGZyZWVkICovCi0rCXVpbnQ2NF90CQllZmRfZWZpX2lkOwkvKiBpZCBvZiBjb3JyZXNwb25kaW5nIGVmaSAqLwotIAl4ZnNfZXh0ZW50X3QJCWVmZF9leHRlbnRzWzFdOwkvKiBhcnJheSBvZiBleHRlbnRzIGZyZWVkICovCi0gfSB4ZnNfZWZkX2xvZ19mb3JtYXRfdDsKLSAKLSB0eXBlZGVmIHN0cnVjdCB4ZnNfZWZkX2xvZ19mb3JtYXRfMzIgewotLQlfX3VpbnQxNl90CQllZmRfdHlwZTsJLyogZWZkIGxvZyBpdGVtIHR5cGUgKi8KLS0JX191aW50MTZfdAkJZWZkX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0tCV9fdWludDMyX3QJCWVmZF9uZXh0ZW50czsJLyogIyBvZiBleHRlbnRzIGZyZWVkICovCi0tCV9fdWludDY0X3QJCWVmZF9lZmlfaWQ7CS8qIGlkIG9mIGNvcnJlc3BvbmRpbmcgZWZpICovCi0rCXVpbnQxNl90CQllZmRfdHlwZTsJLyogZWZkIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCWVmZF9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJZWZkX25leHRlbnRzOwkvKiAjIG9mIGV4dGVudHMgZnJlZWQgKi8KLSsJdWludDY0X3QJCWVmZF9lZmlfaWQ7CS8qIGlkIG9mIGNvcnJlc3BvbmRpbmcgZWZpICovCi0gCXhmc19leHRlbnRfMzJfdAkJZWZkX2V4dGVudHNbMV07CS8qIGFycmF5IG9mIGV4dGVudHMgZnJlZWQgKi8KLSB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIHhmc19lZmRfbG9nX2Zvcm1hdF8zMl90OwotIAotIHR5cGVkZWYgc3RydWN0IHhmc19lZmRfbG9nX2Zvcm1hdF82NCB7Ci0tCV9fdWludDE2X3QJCWVmZF90eXBlOwkvKiBlZmQgbG9nIGl0ZW0gdHlwZSAqLwotLQlfX3VpbnQxNl90CQllZmRfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLS0JX191aW50MzJfdAkJZWZkX25leHRlbnRzOwkvKiAjIG9mIGV4dGVudHMgZnJlZWQgKi8KLS0JX191aW50NjRfdAkJZWZkX2VmaV9pZDsJLyogaWQgb2YgY29ycmVzcG9uZGluZyBlZmkgKi8KLSsJdWludDE2X3QJCWVmZF90eXBlOwkvKiBlZmQgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJZWZkX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQllZmRfbmV4dGVudHM7CS8qICMgb2YgZXh0ZW50cyBmcmVlZCAqLwotKwl1aW50NjRfdAkJZWZkX2VmaV9pZDsJLyogaWQgb2YgY29ycmVzcG9uZGluZyBlZmkgKi8KLSAJeGZzX2V4dGVudF82NF90CQllZmRfZXh0ZW50c1sxXTsJLyogYXJyYXkgb2YgZXh0ZW50cyBmcmVlZCAqLwotIH0geGZzX2VmZF9sb2dfZm9ybWF0XzY0X3Q7Ci0gCi1AQCAtNjI2LDExICs2MjYsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX2VmZF9sb2dfZm9ybWF0XzY0IHsKLSAgKiBSVUkvUlVEIChyZXZlcnNlIG1hcHBpbmcpIGxvZyBmb3JtYXQgZGVmaW5pdGlvbnMKLSAgKi8KLSBzdHJ1Y3QgeGZzX21hcF9leHRlbnQgewotLQlfX3VpbnQ2NF90CQltZV9vd25lcjsKLS0JX191aW50NjRfdAkJbWVfc3RhcnRibG9jazsKLS0JX191aW50NjRfdAkJbWVfc3RhcnRvZmY7Ci0tCV9fdWludDMyX3QJCW1lX2xlbjsKLS0JX191aW50MzJfdAkJbWVfZmxhZ3M7Ci0rCXVpbnQ2NF90CQltZV9vd25lcjsKLSsJdWludDY0X3QJCW1lX3N0YXJ0YmxvY2s7Ci0rCXVpbnQ2NF90CQltZV9zdGFydG9mZjsKLSsJdWludDMyX3QJCW1lX2xlbjsKLSsJdWludDMyX3QJCW1lX2ZsYWdzOwotIH07Ci0gCi0gLyogcm1hcCBtZV9mbGFnczogdXBwZXIgYml0cyBhcmUgZmxhZ3MsIGxvd2VyIGJ5dGUgaXMgdHlwZSBjb2RlICovCi1AQCAtNjU5LDEwICs2NTksMTAgQEAgc3RydWN0IHhmc19tYXBfZXh0ZW50IHsKLSAgKiBzaXplIGlzIGdpdmVuIGJ5IHJ1aV9uZXh0ZW50cy4KLSAgKi8KLSBzdHJ1Y3QgeGZzX3J1aV9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJcnVpX3R5cGU7CS8qIHJ1aSBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCXJ1aV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQlydWlfbmV4dGVudHM7CS8qICMgZXh0ZW50cyB0byBmcmVlICovCi0tCV9fdWludDY0X3QJCXJ1aV9pZDsJCS8qIHJ1aSBpZGVudGlmaWVyICovCi0rCXVpbnQxNl90CQlydWlfdHlwZTsJLyogcnVpIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCXJ1aV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJcnVpX25leHRlbnRzOwkvKiAjIGV4dGVudHMgdG8gZnJlZSAqLwotKwl1aW50NjRfdAkJcnVpX2lkOwkJLyogcnVpIGlkZW50aWZpZXIgKi8KLSAJc3RydWN0IHhmc19tYXBfZXh0ZW50CXJ1aV9leHRlbnRzW107CS8qIGFycmF5IG9mIGV4dGVudHMgdG8gcm1hcCAqLwotIH07Ci0gCi1AQCAtNjgwLDE5ICs2ODAsMTkgQEAgeGZzX3J1aV9sb2dfZm9ybWF0X3NpemVvZigKLSAgKiBzaXplIGlzIGdpdmVuIGJ5IHJ1ZF9uZXh0ZW50czsKLSAgKi8KLSBzdHJ1Y3QgeGZzX3J1ZF9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJcnVkX3R5cGU7CS8qIHJ1ZCBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCXJ1ZF9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQlfX3BhZDsKLS0JX191aW50NjRfdAkJcnVkX3J1aV9pZDsJLyogaWQgb2YgY29ycmVzcG9uZGluZyBydWkgKi8KLSsJdWludDE2X3QJCXJ1ZF90eXBlOwkvKiBydWQgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJcnVkX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQlfX3BhZDsKLSsJdWludDY0X3QJCXJ1ZF9ydWlfaWQ7CS8qIGlkIG9mIGNvcnJlc3BvbmRpbmcgcnVpICovCi0gfTsKLSAKLSAvKgotICAqIENVSS9DVUQgKHJlZmNvdW50IHVwZGF0ZSkgbG9nIGZvcm1hdCBkZWZpbml0aW9ucwotICAqLwotIHN0cnVjdCB4ZnNfcGh5c19leHRlbnQgewotLQlfX3VpbnQ2NF90CQlwZV9zdGFydGJsb2NrOwotLQlfX3VpbnQzMl90CQlwZV9sZW47Ci0tCV9fdWludDMyX3QJCXBlX2ZsYWdzOwotKwl1aW50NjRfdAkJcGVfc3RhcnRibG9jazsKLSsJdWludDMyX3QJCXBlX2xlbjsKLSsJdWludDMyX3QJCXBlX2ZsYWdzOwotIH07Ci0gCi0gLyogcmVmY291bnQgcGVfZmxhZ3M6IHVwcGVyIGJpdHMgYXJlIGZsYWdzLCBsb3dlciBieXRlIGlzIHR5cGUgY29kZSAqLwotQEAgLTcwNywxMCArNzA3LDEwIEBAIHN0cnVjdCB4ZnNfcGh5c19leHRlbnQgewotICAqIHNpemUgaXMgZ2l2ZW4gYnkgY3VpX25leHRlbnRzLgotICAqLwotIHN0cnVjdCB4ZnNfY3VpX2xvZ19mb3JtYXQgewotLQlfX3VpbnQxNl90CQljdWlfdHlwZTsJLyogY3VpIGxvZyBpdGVtIHR5cGUgKi8KLS0JX191aW50MTZfdAkJY3VpX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0tCV9fdWludDMyX3QJCWN1aV9uZXh0ZW50czsJLyogIyBleHRlbnRzIHRvIGZyZWUgKi8KLS0JX191aW50NjRfdAkJY3VpX2lkOwkJLyogY3VpIGlkZW50aWZpZXIgKi8KLSsJdWludDE2X3QJCWN1aV90eXBlOwkvKiBjdWkgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJY3VpX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQljdWlfbmV4dGVudHM7CS8qICMgZXh0ZW50cyB0byBmcmVlICovCi0rCXVpbnQ2NF90CQljdWlfaWQ7CQkvKiBjdWkgaWRlbnRpZmllciAqLwotIAlzdHJ1Y3QgeGZzX3BoeXNfZXh0ZW50CWN1aV9leHRlbnRzW107CS8qIGFycmF5IG9mIGV4dGVudHMgKi8KLSB9OwotIAotQEAgLTcyOCwxMCArNzI4LDEwIEBAIHhmc19jdWlfbG9nX2Zvcm1hdF9zaXplb2YoCi0gICogc2l6ZSBpcyBnaXZlbiBieSBjdWRfbmV4dGVudHM7Ci0gICovCi0gc3RydWN0IHhmc19jdWRfbG9nX2Zvcm1hdCB7Ci0tCV9fdWludDE2X3QJCWN1ZF90eXBlOwkvKiBjdWQgbG9nIGl0ZW0gdHlwZSAqLwotLQlfX3VpbnQxNl90CQljdWRfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLS0JX191aW50MzJfdAkJX19wYWQ7Ci0tCV9fdWludDY0X3QJCWN1ZF9jdWlfaWQ7CS8qIGlkIG9mIGNvcnJlc3BvbmRpbmcgY3VpICovCi0rCXVpbnQxNl90CQljdWRfdHlwZTsJLyogY3VkIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCWN1ZF9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJX19wYWQ7Ci0rCXVpbnQ2NF90CQljdWRfY3VpX2lkOwkvKiBpZCBvZiBjb3JyZXNwb25kaW5nIGN1aSAqLwotIH07Ci0gCi0gLyoKLUBAIC03NTUsMTAgKzc1NSwxMCBAQCBzdHJ1Y3QgeGZzX2N1ZF9sb2dfZm9ybWF0IHsKLSAgKiBzaXplIGlzIGdpdmVuIGJ5IGJ1aV9uZXh0ZW50cy4KLSAgKi8KLSBzdHJ1Y3QgeGZzX2J1aV9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJYnVpX3R5cGU7CS8qIGJ1aSBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCWJ1aV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQlidWlfbmV4dGVudHM7CS8qICMgZXh0ZW50cyB0byBmcmVlICovCi0tCV9fdWludDY0X3QJCWJ1aV9pZDsJCS8qIGJ1aSBpZGVudGlmaWVyICovCi0rCXVpbnQxNl90CQlidWlfdHlwZTsJLyogYnVpIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCWJ1aV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJYnVpX25leHRlbnRzOwkvKiAjIGV4dGVudHMgdG8gZnJlZSAqLwotKwl1aW50NjRfdAkJYnVpX2lkOwkJLyogYnVpIGlkZW50aWZpZXIgKi8KLSAJc3RydWN0IHhmc19tYXBfZXh0ZW50CWJ1aV9leHRlbnRzW107CS8qIGFycmF5IG9mIGV4dGVudHMgdG8gYm1hcCAqLwotIH07Ci0gCi1AQCAtNzc2LDEwICs3NzYsMTAgQEAgeGZzX2J1aV9sb2dfZm9ybWF0X3NpemVvZigKLSAgKiBzaXplIGlzIGdpdmVuIGJ5IGJ1ZF9uZXh0ZW50czsKLSAgKi8KLSBzdHJ1Y3QgeGZzX2J1ZF9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJYnVkX3R5cGU7CS8qIGJ1ZCBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCWJ1ZF9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQlfX3BhZDsKLS0JX191aW50NjRfdAkJYnVkX2J1aV9pZDsJLyogaWQgb2YgY29ycmVzcG9uZGluZyBidWkgKi8KLSsJdWludDE2X3QJCWJ1ZF90eXBlOwkvKiBidWQgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJYnVkX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQlfX3BhZDsKLSsJdWludDY0X3QJCWJ1ZF9idWlfaWQ7CS8qIGlkIG9mIGNvcnJlc3BvbmRpbmcgYnVpICovCi0gfTsKLSAKLSAvKgotQEAgLTc4OSwxMiArNzg5LDEyIEBAIHN0cnVjdCB4ZnNfYnVkX2xvZ19mb3JtYXQgewotICAqIDMyIGJpdHMgOiBsb2dfcmVjb3ZlcnkgY29kZSBhc3N1bWVzIHRoYXQuCi0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2RxX2xvZ2Zvcm1hdCB7Ci0tCV9fdWludDE2X3QJCXFsZl90eXBlOyAgICAgIC8qIGRxdW90IGxvZyBpdGVtIHR5cGUgKi8KLS0JX191aW50MTZfdAkJcWxmX3NpemU7ICAgICAgLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLSsJdWludDE2X3QJCXFsZl90eXBlOyAgICAgIC8qIGRxdW90IGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCXFsZl9zaXplOyAgICAgIC8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0gCXhmc19kcWlkX3QJCXFsZl9pZDsJICAgICAgIC8qIHVzci9ncnAvcHJvaiBpZCA6IDMyIGJpdHMgKi8KLS0JX19pbnQ2NF90CQlxbGZfYmxrbm87ICAgICAvKiBibGtubyBvZiBkcXVvdCBidWZmZXIgKi8KLS0JX19pbnQzMl90CQlxbGZfbGVuOyAgICAgICAvKiBsZW4gb2YgZHF1b3QgYnVmZmVyICovCi0tCV9fdWludDMyX3QJCXFsZl9ib2Zmc2V0OyAgIC8qIG9mZiBvZiBkcXVvdCBpbiBidWZmZXIgKi8KLSsJaW50NjRfdAkJCXFsZl9ibGtubzsgICAgIC8qIGJsa25vIG9mIGRxdW90IGJ1ZmZlciAqLwotKwlpbnQzMl90CQkJcWxmX2xlbjsgICAgICAgLyogbGVuIG9mIGRxdW90IGJ1ZmZlciAqLwotKwl1aW50MzJfdAkJcWxmX2JvZmZzZXQ7ICAgLyogb2ZmIG9mIGRxdW90IGluIGJ1ZmZlciAqLwotIH0geGZzX2RxX2xvZ2Zvcm1hdF90OwotIAotIC8qCi1AQCAtODUzLDggKzg1Myw4IEBAIHR5cGVkZWYgc3RydWN0IHhmc19xb2ZmX2xvZ2Zvcm1hdCB7Ci0gICogZGVjb2RpbmcgY2FuIGJlIGRvbmUgY29ycmVjdGx5LgotICAqLwotIHN0cnVjdCB4ZnNfaWNyZWF0ZV9sb2cgewotLQlfX3VpbnQxNl90CWljbF90eXBlOwkvKiB0eXBlIG9mIGxvZyBmb3JtYXQgc3RydWN0dXJlICovCi0tCV9fdWludDE2X3QJaWNsX3NpemU7CS8qIHNpemUgb2YgbG9nIGZvcm1hdCBzdHJ1Y3R1cmUgKi8KLSsJdWludDE2X3QJaWNsX3R5cGU7CS8qIHR5cGUgb2YgbG9nIGZvcm1hdCBzdHJ1Y3R1cmUgKi8KLSsJdWludDE2X3QJaWNsX3NpemU7CS8qIHNpemUgb2YgbG9nIGZvcm1hdCBzdHJ1Y3R1cmUgKi8KLSAJX19iZTMyCQlpY2xfYWc7CQkvKiBhZyBiZWluZyBhbGxvY2F0ZWQgaW4gKi8KLSAJX19iZTMyCQlpY2xfYWdibm87CS8qIHN0YXJ0IGJsb2NrIG9mIGlub2RlIHJhbmdlICovCi0gCV9fYmUzMgkJaWNsX2NvdW50OwkvKiBudW1iZXIgb2YgaW5vZGVzIHRvIGluaXRpYWxpc2UgKi8KLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX3F1b3RhX2RlZnMuaCBiL2xpYnhmcy94ZnNfcXVvdGFfZGVmcy5oCi1pbmRleCA4ZWVkNTEyNy4uZDY5Yzc3MjIgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX3F1b3RhX2RlZnMuaAotKysrIGIvbGlieGZzL3hmc19xdW90YV9kZWZzLmgKLUBAIC0yNyw4ICsyNyw4IEBACi0gICogdGhleSBtYXkgbmVlZCA2NC1iaXQgYWNjb3VudGluZy4gSGVuY2UsIDY0LWJpdCBxdW90YS1jb3VudGVycywKLSAgKiBhbmQgcXVvdGEtbGltaXRzLiBUaGlzIGlzIGEgd2FzdGUgaW4gdGhlIGNvbW1vbiBjYXNlLCBidXQgaGV5IC4uLgotICAqLwotLXR5cGVkZWYgX191aW50NjRfdAl4ZnNfcWNudF90OwotLXR5cGVkZWYgX191aW50MTZfdAl4ZnNfcXdhcm5jbnRfdDsKLSt0eXBlZGVmIHVpbnQ2NF90CXhmc19xY250X3Q7Ci0rdHlwZWRlZiB1aW50MTZfdAl4ZnNfcXdhcm5jbnRfdDsKLSAKLSAvKgotICAqIGZsYWdzIGZvciBxX2ZsYWdzIGZpZWxkIGluIHRoZSBkcXVvdC4KLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX3JlZmNvdW50X2J0cmVlLmMgYi9saWJ4ZnMveGZzX3JlZmNvdW50X2J0cmVlLmMKLWluZGV4IDI4MTRmOTRmLi5iZDFhOGYyZCAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfcmVmY291bnRfYnRyZWUuYwotKysrIGIvbGlieGZzL3hmc19yZWZjb3VudF9idHJlZS5jCi1AQCAtMjAxLDcgKzIwMSw3IEBAIHhmc19yZWZjb3VudGJ0X2luaXRfcHRyX2Zyb21fY3VyKAotIAlwdHItPnMgPSBhZ2YtPmFnZl9yZWZjb3VudF9yb290OwotIH0KLSAKLS1TVEFUSUMgX19pbnQ2NF90Ci0rU1RBVElDIGludDY0X3QKLSB4ZnNfcmVmY291bnRidF9rZXlfZGlmZigKLSAJc3RydWN0IHhmc19idHJlZV9jdXIJKmN1ciwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqa2V5KQotQEAgLTIwOSwxNiArMjA5LDE2IEBAIHhmc19yZWZjb3VudGJ0X2tleV9kaWZmKAotIAlzdHJ1Y3QgeGZzX3JlZmNvdW50X2lyZWMJKnJlYyA9ICZjdXItPmJjX3JlYy5yYzsKLSAJc3RydWN0IHhmc19yZWZjb3VudF9rZXkJCSprcCA9ICZrZXktPnJlZmM7Ci0gCi0tCXJldHVybiAoX19pbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5yY19zdGFydGJsb2NrKSAtIHJlYy0+cmNfc3RhcnRibG9jazsKLSsJcmV0dXJuIChpbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5yY19zdGFydGJsb2NrKSAtIHJlYy0+cmNfc3RhcnRibG9jazsKLSB9Ci0gCi0tU1RBVElDIF9faW50NjRfdAotK1NUQVRJQyBpbnQ2NF90Ci0geGZzX3JlZmNvdW50YnRfZGlmZl90d29fa2V5cygKLSAJc3RydWN0IHhmc19idHJlZV9jdXIJKmN1ciwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqazEsCi0gCXVuaW9uIHhmc19idHJlZV9rZXkJKmsyKQotIHsKLS0JcmV0dXJuIChfX2ludDY0X3QpYmUzMl90b19jcHUoazEtPnJlZmMucmNfc3RhcnRibG9jaykgLQotKwlyZXR1cm4gKGludDY0X3QpYmUzMl90b19jcHUoazEtPnJlZmMucmNfc3RhcnRibG9jaykgLQotIAkJCSAgYmUzMl90b19jcHUoazItPnJlZmMucmNfc3RhcnRibG9jayk7Ci0gfQotIAotZGlmZiAtLWdpdCBhL2xpYnhmcy94ZnNfcm1hcC5jIGIvbGlieGZzL3hmc19ybWFwLmMKLWluZGV4IGY3ODc3MWQxLi4wZDZiNWQ0MSAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfcm1hcC5jCi0rKysgYi9saWJ4ZnMveGZzX3JtYXAuYwotQEAgLTIwNTksNyArMjA1OSw3IEBAIGludAotIHhmc19ybWFwX2ZpbmlzaF9vbmUoCi0gCXN0cnVjdCB4ZnNfdHJhbnMJCSp0cCwKLSAJZW51bSB4ZnNfcm1hcF9pbnRlbnRfdHlwZQl0eXBlLAotLQlfX3VpbnQ2NF90CQkJb3duZXIsCi0rCXVpbnQ2NF90CQkJb3duZXIsCi0gCWludAkJCQl3aGljaGZvcmssCi0gCXhmc19maWxlb2ZmX3QJCQlzdGFydG9mZiwKLSAJeGZzX2ZzYmxvY2tfdAkJCXN0YXJ0YmxvY2ssCi1AQCAtMjE4MCw3ICsyMTgwLDcgQEAgX194ZnNfcm1hcF9hZGQoCi0gCXN0cnVjdCB4ZnNfbW91bnQJCSptcCwKLSAJc3RydWN0IHhmc19kZWZlcl9vcHMJCSpkZm9wcywKLSAJZW51bSB4ZnNfcm1hcF9pbnRlbnRfdHlwZQl0eXBlLAotLQlfX3VpbnQ2NF90CQkJb3duZXIsCi0rCXVpbnQ2NF90CQkJb3duZXIsCi0gCWludAkJCQl3aGljaGZvcmssCi0gCXN0cnVjdCB4ZnNfYm1idF9pcmVjCQkqYm1hcCkKLSB7Ci1AQCAtMjI2NCw3ICsyMjY0LDcgQEAgeGZzX3JtYXBfYWxsb2NfZXh0ZW50KAotIAl4ZnNfYWdudW1iZXJfdAkJYWdubywKLSAJeGZzX2FnYmxvY2tfdAkJYm5vLAotIAl4ZnNfZXh0bGVuX3QJCWxlbiwKLS0JX191aW50NjRfdAkJb3duZXIpCi0rCXVpbnQ2NF90CQlvd25lcikKLSB7Ci0gCXN0cnVjdCB4ZnNfYm1idF9pcmVjCWJtYXA7Ci0gCi1AQCAtMjI4OCw3ICsyMjg4LDcgQEAgeGZzX3JtYXBfZnJlZV9leHRlbnQoCi0gCXhmc19hZ251bWJlcl90CQlhZ25vLAotIAl4ZnNfYWdibG9ja190CQlibm8sCi0gCXhmc19leHRsZW5fdAkJbGVuLAotLQlfX3VpbnQ2NF90CQlvd25lcikKLSsJdWludDY0X3QJCW93bmVyKQotIHsKLSAJc3RydWN0IHhmc19ibWJ0X2lyZWMJYm1hcDsKLSAKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX3JtYXAuaCBiL2xpYnhmcy94ZnNfcm1hcC5oCi1pbmRleCA5OGY5MDhmZS4uMjY1MTE2ZDAgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX3JtYXAuaAotKysrIGIvbGlieGZzL3hmc19ybWFwLmgKLUBAIC0xNzksNyArMTc5LDcgQEAgZW51bSB4ZnNfcm1hcF9pbnRlbnRfdHlwZSB7Ci0gc3RydWN0IHhmc19ybWFwX2ludGVudCB7Ci0gCXN0cnVjdCBsaXN0X2hlYWQJCQlyaV9saXN0OwotIAllbnVtIHhmc19ybWFwX2ludGVudF90eXBlCQlyaV90eXBlOwotLQlfX3VpbnQ2NF90CQkJCXJpX293bmVyOwotKwl1aW50NjRfdAkJCQlyaV9vd25lcjsKLSAJaW50CQkJCQlyaV93aGljaGZvcms7Ci0gCXN0cnVjdCB4ZnNfYm1idF9pcmVjCQkJcmlfYm1hcDsKLSB9OwotQEAgLTE5NiwxNSArMTk2LDE1IEBAIGludCB4ZnNfcm1hcF9jb252ZXJ0X2V4dGVudChzdHJ1Y3QgeGZzX21vdW50ICptcCwgc3RydWN0IHhmc19kZWZlcl9vcHMgKmRmb3BzLAotIAkJc3RydWN0IHhmc19ibWJ0X2lyZWMgKmltYXApOwotIGludCB4ZnNfcm1hcF9hbGxvY19leHRlbnQoc3RydWN0IHhmc19tb3VudCAqbXAsIHN0cnVjdCB4ZnNfZGVmZXJfb3BzICpkZm9wcywKLSAJCXhmc19hZ251bWJlcl90IGFnbm8sIHhmc19hZ2Jsb2NrX3QgYm5vLCB4ZnNfZXh0bGVuX3QgbGVuLAotLQkJX191aW50NjRfdCBvd25lcik7Ci0rCQl1aW50NjRfdCBvd25lcik7Ci0gaW50IHhmc19ybWFwX2ZyZWVfZXh0ZW50KHN0cnVjdCB4ZnNfbW91bnQgKm1wLCBzdHJ1Y3QgeGZzX2RlZmVyX29wcyAqZGZvcHMsCi0gCQl4ZnNfYWdudW1iZXJfdCBhZ25vLCB4ZnNfYWdibG9ja190IGJubywgeGZzX2V4dGxlbl90IGxlbiwKLS0JCV9fdWludDY0X3Qgb3duZXIpOwotKwkJdWludDY0X3Qgb3duZXIpOwotIAotIHZvaWQgeGZzX3JtYXBfZmluaXNoX29uZV9jbGVhbnVwKHN0cnVjdCB4ZnNfdHJhbnMgKnRwLAotIAkJc3RydWN0IHhmc19idHJlZV9jdXIgKnJjdXIsIGludCBlcnJvcik7Ci0gaW50IHhmc19ybWFwX2ZpbmlzaF9vbmUoc3RydWN0IHhmc190cmFucyAqdHAsIGVudW0geGZzX3JtYXBfaW50ZW50X3R5cGUgdHlwZSwKLS0JCV9fdWludDY0X3Qgb3duZXIsIGludCB3aGljaGZvcmssIHhmc19maWxlb2ZmX3Qgc3RhcnRvZmYsCi0rCQl1aW50NjRfdCBvd25lciwgaW50IHdoaWNoZm9yaywgeGZzX2ZpbGVvZmZfdCBzdGFydG9mZiwKLSAJCXhmc19mc2Jsb2NrX3Qgc3RhcnRibG9jaywgeGZzX2ZpbGJsa3NfdCBibG9ja2NvdW50LAotIAkJeGZzX2V4bnRzdF90IHN0YXRlLCBzdHJ1Y3QgeGZzX2J0cmVlX2N1ciAqKnBjdXIpOwotIAotZGlmZiAtLWdpdCBhL2xpYnhmcy94ZnNfcm1hcF9idHJlZS5jIGIvbGlieGZzL3hmc19ybWFwX2J0cmVlLmMKLWluZGV4IGExODZjODcyLi40NWFjNDM2ZiAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfcm1hcF9idHJlZS5jCi0rKysgYi9saWJ4ZnMveGZzX3JtYXBfYnRyZWUuYwotQEAgLTE5Nyw3ICsxOTcsNyBAQCB4ZnNfcm1hcGJ0X2luaXRfaGlnaF9rZXlfZnJvbV9yZWMoCi0gCXVuaW9uIHhmc19idHJlZV9rZXkJKmtleSwKLSAJdW5pb24geGZzX2J0cmVlX3JlYwkqcmVjKQotIHsKLS0JX191aW50NjRfdAkJb2ZmOwotKwl1aW50NjRfdAkJb2ZmOwotIAlpbnQJCQlhZGo7Ci0gCi0gCWFkaiA9IGJlMzJfdG9fY3B1KHJlYy0+cm1hcC5ybV9ibG9ja2NvdW50KSAtIDE7Ci1AQCAtMjM5LDcgKzIzOSw3IEBAIHhmc19ybWFwYnRfaW5pdF9wdHJfZnJvbV9jdXIoCi0gCXB0ci0+cyA9IGFnZi0+YWdmX3Jvb3RzW2N1ci0+YmNfYnRudW1dOwotIH0KLSAKLS1TVEFUSUMgX19pbnQ2NF90Ci0rU1RBVElDIGludDY0X3QKLSB4ZnNfcm1hcGJ0X2tleV9kaWZmKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprZXkpCi1AQCAtMjQ3LDkgKzI0Nyw5IEBAIHhmc19ybWFwYnRfa2V5X2RpZmYoCi0gCXN0cnVjdCB4ZnNfcm1hcF9pcmVjCSpyZWMgPSAmY3VyLT5iY19yZWMucjsKLSAJc3RydWN0IHhmc19ybWFwX2tleQkqa3AgPSAma2V5LT5ybWFwOwotIAlfX3U2NAkJCXgsIHk7Ci0tCV9faW50NjRfdAkJZDsKLSsJaW50NjRfdAkJCWQ7Ci0gCi0tCWQgPSAoX19pbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5ybV9zdGFydGJsb2NrKSAtIHJlYy0+cm1fc3RhcnRibG9jazsKLSsJZCA9IChpbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5ybV9zdGFydGJsb2NrKSAtIHJlYy0+cm1fc3RhcnRibG9jazsKLSAJaWYgKGQpCi0gCQlyZXR1cm4gZDsKLSAKLUBAIC0yNjksNyArMjY5LDcgQEAgeGZzX3JtYXBidF9rZXlfZGlmZigKLSAJcmV0dXJuIDA7Ci0gfQotIAotLVNUQVRJQyBfX2ludDY0X3QKLStTVEFUSUMgaW50NjRfdAotIHhmc19ybWFwYnRfZGlmZl90d29fa2V5cygKLSAJc3RydWN0IHhmc19idHJlZV9jdXIJKmN1ciwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqazEsCi1AQCAtMjc3LDEwICsyNzcsMTAgQEAgeGZzX3JtYXBidF9kaWZmX3R3b19rZXlzKAotIHsKLSAJc3RydWN0IHhmc19ybWFwX2tleQkqa3AxID0gJmsxLT5ybWFwOwotIAlzdHJ1Y3QgeGZzX3JtYXBfa2V5CSprcDIgPSAmazItPnJtYXA7Ci0tCV9faW50NjRfdAkJZDsKLSsJaW50NjRfdAkJCWQ7Ci0gCV9fdTY0CQkJeCwgeTsKLSAKLS0JZCA9IChfX2ludDY0X3QpYmUzMl90b19jcHUoa3AxLT5ybV9zdGFydGJsb2NrKSAtCi0rCWQgPSAoaW50NjRfdCliZTMyX3RvX2NwdShrcDEtPnJtX3N0YXJ0YmxvY2spIC0KLSAJCSAgICAgICBiZTMyX3RvX2NwdShrcDItPnJtX3N0YXJ0YmxvY2spOwotIAlpZiAoZCkKLSAJCXJldHVybiBkOwotQEAgLTM4MiwxMCArMzgyLDEwIEBAIHhmc19ybWFwYnRfa2V5c19pbm9yZGVyKAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprMSwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqazIpCi0gewotLQlfX3VpbnQzMl90CQl4OwotLQlfX3VpbnQzMl90CQl5OwotLQlfX3VpbnQ2NF90CQlhOwotLQlfX3VpbnQ2NF90CQliOwotKwl1aW50MzJfdAkJeDsKLSsJdWludDMyX3QJCXk7Ci0rCXVpbnQ2NF90CQlhOwotKwl1aW50NjRfdAkJYjsKLSAKLSAJeCA9IGJlMzJfdG9fY3B1KGsxLT5ybWFwLnJtX3N0YXJ0YmxvY2spOwotIAl5ID0gYmUzMl90b19jcHUoazItPnJtYXAucm1fc3RhcnRibG9jayk7Ci1AQCAtNDEyLDEwICs0MTIsMTAgQEAgeGZzX3JtYXBidF9yZWNzX2lub3JkZXIoCi0gCXVuaW9uIHhmc19idHJlZV9yZWMJKnIxLAotIAl1bmlvbiB4ZnNfYnRyZWVfcmVjCSpyMikKLSB7Ci0tCV9fdWludDMyX3QJCXg7Ci0tCV9fdWludDMyX3QJCXk7Ci0tCV9fdWludDY0X3QJCWE7Ci0tCV9fdWludDY0X3QJCWI7Ci0rCXVpbnQzMl90CQl4OwotKwl1aW50MzJfdAkJeTsKLSsJdWludDY0X3QJCWE7Ci0rCXVpbnQ2NF90CQliOwotIAotIAl4ID0gYmUzMl90b19jcHUocjEtPnJtYXAucm1fc3RhcnRibG9jayk7Ci0gCXkgPSBiZTMyX3RvX2NwdShyMi0+cm1hcC5ybV9zdGFydGJsb2NrKTsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX3J0Yml0bWFwLmMgYi9saWJ4ZnMveGZzX3J0Yml0bWFwLmMKLWluZGV4IGRiZDJmODgxLi44ZjhhOTlkNiAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfcnRiaXRtYXAuYwotKysrIGIvbGlieGZzL3hmc19ydGJpdG1hcC5jCi1AQCAtMTAwNiw3ICsxMDA2LDcgQEAgeGZzX3J0ZnJlZV9leHRlbnQoCi0gCSAgICBtcC0+bV9zYi5zYl9yZXh0ZW50cykgewotIAkJaWYgKCEobXAtPm1fcmJtaXAtPmlfZC5kaV9mbGFncyAmIFhGU19ESUZMQUdfTkVXUlRCTSkpCi0gCQkJbXAtPm1fcmJtaXAtPmlfZC5kaV9mbGFncyB8PSBYRlNfRElGTEFHX05FV1JUQk07Ci0tCQkqKF9fdWludDY0X3QgKikmVkZTX0kobXAtPm1fcmJtaXApLT5pX2F0aW1lID0gMDsKLSsJCSoodWludDY0X3QgKikmVkZTX0kobXAtPm1fcmJtaXApLT5pX2F0aW1lID0gMDsKLSAJCXhmc190cmFuc19sb2dfaW5vZGUodHAsIG1wLT5tX3JibWlwLCBYRlNfSUxPR19DT1JFKTsKLSAJfQotIAlyZXR1cm4gMDsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX3NiLmMgYi9saWJ4ZnMveGZzX3NiLmMKLWluZGV4IDkzYTE4MTkwLi41MWY2OTcwNCAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfc2IuYwotKysrIGIvbGlieGZzL3hmc19zYi5jCi1AQCAtNDMwLDcgKzQzMCw3IEBAIHhmc19zYl9xdW90YV90b19kaXNrKAotIAlzdHJ1Y3QgeGZzX2RzYgkqdG8sCi0gCXN0cnVjdCB4ZnNfc2IJKmZyb20pCi0gewotLQlfX3VpbnQxNl90CXFmbGFncyA9IGZyb20tPnNiX3FmbGFnczsKLSsJdWludDE2X3QJcWZsYWdzID0gZnJvbS0+c2JfcWZsYWdzOwotIAotIAl0by0+c2JfdXF1b3Rpbm8gPSBjcHVfdG9fYmU2NChmcm9tLT5zYl91cXVvdGlubyk7Ci0gCWlmICh4ZnNfc2JfdmVyc2lvbl9oYXNfcHF1b3Rpbm8oZnJvbSkpIHsKLUBAIC03MzgsNyArNzM4LDcgQEAgeGZzX3NiX21vdW50X2NvbW1vbigKLSAJbXAtPm1fcmVmY19tbnJbMV0gPSBtcC0+bV9yZWZjX214clsxXSAvIDI7Ci0gCi0gCW1wLT5tX2JzaXplID0gWEZTX0ZTQl9UT19CQihtcCwgMSk7Ci0tCW1wLT5tX2lhbGxvY19pbm9zID0gKGludClNQVgoKF9fdWludDE2X3QpWEZTX0lOT0RFU19QRVJfQ0hVTkssCi0rCW1wLT5tX2lhbGxvY19pbm9zID0gKGludClNQVgoKHVpbnQxNl90KVhGU19JTk9ERVNfUEVSX0NIVU5LLAotIAkJCQkJc2JwLT5zYl9pbm9wYmxvY2spOwotIAltcC0+bV9pYWxsb2NfYmxrcyA9IG1wLT5tX2lhbGxvY19pbm9zID4+IHNicC0+c2JfaW5vcGJsb2c7Ci0gCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc190eXBlcy5oIGIvbGlieGZzL3hmc190eXBlcy5oCi1pbmRleCA3MTc5MDlmMi4uMDIyMDE1OWIgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX3R5cGVzLmgKLSsrKyBiL2xpYnhmcy94ZnNfdHlwZXMuaAotQEAgLTE4LDM0ICsxOCwzNCBAQAotICNpZm5kZWYgX19YRlNfVFlQRVNfSF9fCi0gI2RlZmluZQlfX1hGU19UWVBFU19IX18KLSAKLS10eXBlZGVmIF9fdWludDMyX3QJcHJpZF90OwkJLyogcHJvamVjdCBJRCAqLwotK3R5cGVkZWYgdWludDMyX3QJcHJpZF90OwkJLyogcHJvamVjdCBJRCAqLwotIAotLXR5cGVkZWYgX191aW50MzJfdAl4ZnNfYWdibG9ja190OwkvKiBibG9ja25vIGluIGFsbG9jLiBncm91cCAqLwotLXR5cGVkZWYJX191aW50MzJfdAl4ZnNfYWdpbm9fdDsJLyogaW5vZGUgIyB3aXRoaW4gYWxsb2NhdGlvbiBncnAgKi8KLS10eXBlZGVmCV9fdWludDMyX3QJeGZzX2V4dGxlbl90OwkvKiBleHRlbnQgbGVuZ3RoIGluIGJsb2NrcyAqLwotLXR5cGVkZWYJX191aW50MzJfdAl4ZnNfYWdudW1iZXJfdDsJLyogYWxsb2NhdGlvbiBncm91cCBudW1iZXIgKi8KLS10eXBlZGVmIF9faW50MzJfdAl4ZnNfZXh0bnVtX3Q7CS8qICMgb2YgZXh0ZW50cyBpbiBhIGZpbGUgKi8KLS10eXBlZGVmIF9faW50MTZfdAl4ZnNfYWV4dG51bV90OwkvKiAjIGV4dGVudHMgaW4gYW4gYXR0cmlidXRlIGZvcmsgKi8KLS10eXBlZGVmCV9faW50NjRfdAl4ZnNfZnNpemVfdDsJLyogYnl0ZXMgaW4gYSBmaWxlICovCi0tdHlwZWRlZiBfX3VpbnQ2NF90CXhmc191ZnNpemVfdDsJLyogdW5zaWduZWQgYnl0ZXMgaW4gYSBmaWxlICovCi0rdHlwZWRlZiB1aW50MzJfdAl4ZnNfYWdibG9ja190OwkvKiBibG9ja25vIGluIGFsbG9jLiBncm91cCAqLwotK3R5cGVkZWYgdWludDMyX3QJeGZzX2FnaW5vX3Q7CS8qIGlub2RlICMgd2l0aGluIGFsbG9jYXRpb24gZ3JwICovCi0rdHlwZWRlZiB1aW50MzJfdAl4ZnNfZXh0bGVuX3Q7CS8qIGV4dGVudCBsZW5ndGggaW4gYmxvY2tzICovCi0rdHlwZWRlZiB1aW50MzJfdAl4ZnNfYWdudW1iZXJfdDsJLyogYWxsb2NhdGlvbiBncm91cCBudW1iZXIgKi8KLSt0eXBlZGVmIGludDMyX3QJCXhmc19leHRudW1fdDsJLyogIyBvZiBleHRlbnRzIGluIGEgZmlsZSAqLwotK3R5cGVkZWYgaW50MTZfdAkJeGZzX2FleHRudW1fdDsJLyogIyBleHRlbnRzIGluIGFuIGF0dHJpYnV0ZSBmb3JrICovCi0rdHlwZWRlZiBpbnQ2NF90CQl4ZnNfZnNpemVfdDsJLyogYnl0ZXMgaW4gYSBmaWxlICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfdWZzaXplX3Q7CS8qIHVuc2lnbmVkIGJ5dGVzIGluIGEgZmlsZSAqLwotIAotLXR5cGVkZWYJX19pbnQzMl90CXhmc19zdW1pbmZvX3Q7CS8qIHR5cGUgb2YgYml0bWFwIHN1bW1hcnkgaW5mbyAqLwotLXR5cGVkZWYJX19pbnQzMl90CXhmc19ydHdvcmRfdDsJLyogd29yZCB0eXBlIGZvciBiaXRtYXAgbWFuaXB1bGF0aW9ucyAqLwotK3R5cGVkZWYgaW50MzJfdAkJeGZzX3N1bWluZm9fdDsJLyogdHlwZSBvZiBiaXRtYXAgc3VtbWFyeSBpbmZvICovCi0rdHlwZWRlZiBpbnQzMl90CQl4ZnNfcnR3b3JkX3Q7CS8qIHdvcmQgdHlwZSBmb3IgYml0bWFwIG1hbmlwdWxhdGlvbnMgKi8KLSAKLS10eXBlZGVmCV9faW50NjRfdAl4ZnNfbHNuX3Q7CS8qIGxvZyBzZXF1ZW5jZSBudW1iZXIgKi8KLS10eXBlZGVmCV9faW50MzJfdAl4ZnNfdGlkX3Q7CS8qIHRyYW5zYWN0aW9uIGlkZW50aWZpZXIgKi8KLSt0eXBlZGVmIGludDY0X3QJCXhmc19sc25fdDsJLyogbG9nIHNlcXVlbmNlIG51bWJlciAqLwotK3R5cGVkZWYgaW50MzJfdAkJeGZzX3RpZF90OwkvKiB0cmFuc2FjdGlvbiBpZGVudGlmaWVyICovCi0gCi0tdHlwZWRlZglfX3VpbnQzMl90CXhmc19kYWJsa190OwkvKiBkaXIvYXR0ciBibG9jayBudW1iZXIgKGluIGZpbGUpICovCi0tdHlwZWRlZglfX3VpbnQzMl90CXhmc19kYWhhc2hfdDsJLyogZGlyL2F0dHIgaGFzaCB2YWx1ZSAqLwotK3R5cGVkZWYgdWludDMyX3QJeGZzX2RhYmxrX3Q7CS8qIGRpci9hdHRyIGJsb2NrIG51bWJlciAoaW4gZmlsZSkgKi8KLSt0eXBlZGVmIHVpbnQzMl90CXhmc19kYWhhc2hfdDsJLyogZGlyL2F0dHIgaGFzaCB2YWx1ZSAqLwotIAotLXR5cGVkZWYJX191aW50NjRfdAl4ZnNfZnNibG9ja190OwkvKiBibG9ja25vIGluIGZpbGVzeXN0ZW0gKGFnbm98YWdibm8pICovCi0tdHlwZWRlZiBfX3VpbnQ2NF90CXhmc19yZnNibG9ja190OwkvKiBibG9ja25vIGluIGZpbGVzeXN0ZW0gKHJhdykgKi8KLS10eXBlZGVmIF9fdWludDY0X3QJeGZzX3J0YmxvY2tfdDsJLyogZXh0ZW50IChibG9jaykgaW4gcmVhbHRpbWUgYXJlYSAqLwotLXR5cGVkZWYgX191aW50NjRfdAl4ZnNfZmlsZW9mZl90OwkvKiBibG9jayBudW1iZXIgaW4gYSBmaWxlICovCi0tdHlwZWRlZiBfX3VpbnQ2NF90CXhmc19maWxibGtzX3Q7CS8qIG51bWJlciBvZiBibG9ja3MgaW4gYSBmaWxlICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfZnNibG9ja190OwkvKiBibG9ja25vIGluIGZpbGVzeXN0ZW0gKGFnbm98YWdibm8pICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfcmZzYmxvY2tfdDsJLyogYmxvY2tubyBpbiBmaWxlc3lzdGVtIChyYXcpICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfcnRibG9ja190OwkvKiBleHRlbnQgKGJsb2NrKSBpbiByZWFsdGltZSBhcmVhICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfZmlsZW9mZl90OwkvKiBibG9jayBudW1iZXIgaW4gYSBmaWxlICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfZmlsYmxrc190OwkvKiBudW1iZXIgb2YgYmxvY2tzIGluIGEgZmlsZSAqLwotIAotLXR5cGVkZWYJX19pbnQ2NF90CXhmc19zcnRibG9ja190OwkvKiBzaWduZWQgdmVyc2lvbiBvZiB4ZnNfcnRibG9ja190ICovCi0tdHlwZWRlZiBfX2ludDY0X3QJeGZzX3NmaWxvZmZfdDsJLyogc2lnbmVkIGJsb2NrIG51bWJlciBpbiBhIGZpbGUgKi8KLSt0eXBlZGVmIGludDY0X3QJCXhmc19zcnRibG9ja190OwkvKiBzaWduZWQgdmVyc2lvbiBvZiB4ZnNfcnRibG9ja190ICovCi0rdHlwZWRlZiBpbnQ2NF90CQl4ZnNfc2ZpbG9mZl90OwkvKiBzaWduZWQgYmxvY2sgbnVtYmVyIGluIGEgZmlsZSAqLwotIAotIC8qCi0gICogTnVsbCB2YWx1ZXMgZm9yIHRoZSB0eXBlcy4KLUBAIC0xMjUsNyArMTI1LDcgQEAgc3RydWN0IHhmc19uYW1lIHsKLSAgKiB1aWRfdCBhbmQgZ2lkX3QgYXJlIGhhcmQtY29kZWQgdG8gMzIgYml0cyBpbiB0aGUgaW5vZGUuCi0gICogSGVuY2UsIGFuICdpZCcgaW4gYSBkcXVvdCBpcyAzMiBiaXRzLi4KLSAgKi8KLS10eXBlZGVmIF9fdWludDMyX3QJeGZzX2RxaWRfdDsKLSt0eXBlZGVmIHVpbnQzMl90CXhmc19kcWlkX3Q7Ci0gCi0gLyoKLSAgKiBDb25zdGFudHMgZm9yIGJpdCBtYW5pcHVsYXRpb25zLgotLS0gCi0yLjE0LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvMDAwMS14ZnNwcm9ncy1yZW1vdmUtZG91YmxlLXVuZGVyc2NvcmUtaW50ZWdlci10eXBlcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc3Byb2dzL2ZpbGVzLzAwMDEteGZzcHJvZ3MtcmVtb3ZlLWRvdWJsZS11bmRlcnNjb3JlLWludGVnZXItdHlwZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlMDhmMGQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvMDAwMS14ZnNwcm9ncy1yZW1vdmUtZG91YmxlLXVuZGVyc2NvcmUtaW50ZWdlci10eXBlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM4MDAgKzAsMCBAQAotRnJvbSAxNGY4YjY4MTBiZDI0MGNjNTgxMzE0ODM3OTBhMDk5ZmNmNTZjMDczIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogIkRhcnJpY2sgSi4gV29uZyIgPGRhcnJpY2sud29uZ0BvcmFjbGUuY29tPgotRGF0ZTogRnJpLCA0IEF1ZyAyMDE3IDE2OjMzOjUxIC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHhmc3Byb2dzOiByZW1vdmUgZG91YmxlLXVuZGVyc2NvcmUgaW50ZWdlciB0eXBlcwotCi1UaGlzIGlzIGEgcHVyZWx5IG1lY2hhbmljYWwgcGF0Y2ggdGhhdCByZW1vdmVzIHRoZSBwcml2YXRlCi1fX3t1LH1pbnR7OCwxNiwzMiw2NH1fdCB0eXBlZGVmcyBpbiBmYXZvciBvZiB1c2luZyB0aGUgc3lzdGVtCi17dSx9aW50ezgsMTYsMzIsNjR9X3QgdHlwZWRlZnMuICBUaGlzIGlzIHRoZSBzZWQgc2NyaXB0IHVzZWQgdG8gcGVyZm9ybQotdGhlIHRyYW5zZm9ybWF0aW9uIGFuZCBmaXggdGhlIHJlc3VsdGluZyB3aGl0ZXNwYWNlIGFuZCBpbmRlbnRhdGlvbgotZXJyb3JzOgotCi1zL3R5cGVkZWZcdF9fdWludDhfdC90eXBlZGVmIF9fdWludDhfdFx0L2cKLXMvdHlwZWRlZlx0X191aW50L3R5cGVkZWYgX191aW50L2cKLXMvdHlwZWRlZlx0X19pbnRcKFswLTldKlwpX3QvdHlwZWRlZiBpbnRcMV90XHQvZwotcy9fX3VpbnQ4X3RcdC9fX3VpbnQ4X3RcdFx0L2cKLXMvX191aW50L3VpbnQvZwotcy9fX2ludFwoWzAtOV0qXClfdFx0L19faW50XDFfdFx0XHQvZwotcy9fX2ludC9pbnQvZwotL150eXBlZGVmLippbnRbMC05XSpfdDskL2QKLQotU2lnbmVkLW9mZi1ieTogRGFycmljayBKLiBXb25nIDxkYXJyaWNrLndvbmdAb3JhY2xlLmNvbT4KLVJldmlld2VkLWJ5OiBDYXJsb3MgTWFpb2xpbm8gPGNtYWlvbGlub0ByZWRoYXQuY29tPgotW3NhbmRlZW46IGZpeCB3aGl0ZXNwYWNlIGluY2lkZW50YWxzXQotUmV2aWV3ZWQtYnk6IERhcnJpY2sgSi4gV29uZyA8ZGFycmljay53b25nQG9yYWNsZS5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBFcmljIFNhbmRlZW4gPHNhbmRlZW5Ac2FuZGVlbi5uZXQ+Ci0tLS0KLSBjb3B5L3hmc19jb3B5LmMgICAgICAgICAgIHwgMTQgKysrKy0tLS0tCi0gY29weS94ZnNfY29weS5oICAgICAgICAgICB8ICAyICstCi0gZGIvYXR0ci5jICAgICAgICAgICAgICAgICB8ICA4ICsrLS0tCi0gZGIvYXR0cnNob3J0LmMgICAgICAgICAgICB8ICA0ICstLQotIGRiL2JpdC5jICAgICAgICAgICAgICAgICAgfCAgNCArLS0KLSBkYi9iaXQuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkYi9ibG9jay5jICAgICAgICAgICAgICAgIHwgIDggKystLS0KLSBkYi9jaGVjay5jICAgICAgICAgICAgICAgIHwgMTggKysrKystLS0tLS0KLSBkYi9jb252ZXJ0LmMgICAgICAgICAgICAgIHwgMjggKysrKysrKystLS0tLS0tLS0KLSBkYi9mYWRkci5jICAgICAgICAgICAgICAgIHwgMTQgKysrKy0tLS0tCi0gZGIvZmllbGQuYyAgICAgICAgICAgICAgICB8IDQ0ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIGRiL2ZwcmludC5jICAgICAgICAgICAgICAgfCAgOCArKy0tLQotIGRiL2ZyYWcuYyAgICAgICAgICAgICAgICAgfCAgOCArKy0tLQotIGRiL2lub2RlLmMgICAgICAgICAgICAgICAgfCAzNCArKysrKysrKysrLS0tLS0tLS0tLS0KLSBkYi9pby5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkYi9pby5oICAgICAgICAgICAgICAgICAgIHwgIDYgKystLQotIGRiL21ldGFkdW1wLmMgICAgICAgICAgICAgfCAxMiArKysrLS0tLQotIGRiL3NiLmMgICAgICAgICAgICAgICAgICAgfCAgNiArKy0tCi0gZnNyL3hmc19mc3IuYyAgICAgICAgICAgICB8ICAyICstCi0gaW5jbHVkZS9kYXJ3aW4uaCAgICAgICAgICB8IDE4ICsrKysrLS0tLS0tCi0gaW5jbHVkZS9mcmVlYnNkLmggICAgICAgICB8ICA2ICsrLS0KLSBpbmNsdWRlL2dudWtmcmVlYnNkLmggICAgIHwgIDYgKystLQotIGluY2x1ZGUvbGlieGNtZC5oICAgICAgICAgfCAgNiArKy0tCi0gaW5jbHVkZS9saW51eC5oICAgICAgICAgICB8ICA4ICsrLS0tCi0gaW5jbHVkZS94ZnNfYXJjaC5oICAgICAgICB8IDIyICsrKysrKystLS0tLS0tCi0gaW5jbHVkZS94ZnNfaW5vZGUuaCAgICAgICB8ICA0ICstLQotIGluY2x1ZGUveGZzX2xvZ19yZWNvdmVyLmggfCAgMiArLQotIGluY2x1ZGUveGZzX21ldGFkdW1wLmggICAgfCAgNCArLS0KLSBpbmNsdWRlL3hmc19tb3VudC5oICAgICAgIHwgMjIgKysrKysrKy0tLS0tLS0KLSBsaWJoYW5kbGUvaGFuZGxlLmMgICAgICAgIHwgIDIgKy0KLSBsaWJoYW5kbGUvamRtLmMgICAgICAgICAgIHwgIDIgKy0KLSBsaWJ4Y21kL3RvcG9sb2d5LmMgICAgICAgIHwgMTQgKysrKy0tLS0tCi0gbGlieGZzL2Rhcndpbi5jICAgICAgICAgICB8ICAyICstCi0gbGlieGZzL2ZyZWVic2QuYyAgICAgICAgICB8ICAyICstCi0gbGlieGZzL2luaXQuYyAgICAgICAgICAgICB8ICAyICstCi0gbGlieGZzL2lyaXguYyAgICAgICAgICAgICB8ICAyICstCi0gbGlieGZzL2xpYnhmc19wcml2LmggICAgICB8ICA0ICstLQotIGxpYnhmcy9saW51eC5jICAgICAgICAgICAgfCAgMiArLQotIGxpYnhmcy9sb2dpdGVtLmMgICAgICAgICAgfCAgMiArLQotIGxpYnhmcy9yYWRpeC10cmVlLmMgICAgICAgfCAgOCArKy0tLQotIGxpYnhmcy9yZHdyLmMgICAgICAgICAgICAgfCAgNiArKy0tCi0gbGlieGZzL3V0aWwuYyAgICAgICAgICAgICB8ICA4ICsrLS0tCi0gbG9ncHJpbnQvbG9nX21pc2MuYyAgICAgICB8ICA2ICsrLS0KLSBtZHJlc3RvcmUveGZzX21kcmVzdG9yZS5jIHwgIDIgKy0KLSBta2ZzL3Byb3RvLmMgICAgICAgICAgICAgIHwgIDIgKy0KLSBta2ZzL3hmc19ta2ZzLmMgICAgICAgICAgIHwgNzYgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBxdW90YS9lZGl0LmMgICAgICAgICAgICAgIHwgNjQgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gcXVvdGEvZnJlZS5jICAgICAgICAgICAgICB8IDQ0ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIHF1b3RhL3F1b3QuYyAgICAgICAgICAgICAgfCAyNCArKysrKysrLS0tLS0tLS0KLSBxdW90YS9xdW90YS5jICAgICAgICAgICAgIHwgIDQgKy0tCi0gcXVvdGEvcXVvdGEuaCAgICAgICAgICAgICB8IDEyICsrKystLS0tCi0gcXVvdGEvcmVwb3J0LmMgICAgICAgICAgICB8ICA0ICstLQotIHF1b3RhL3N0YXRlLmMgICAgICAgICAgICAgfCAgMiArLQotIHF1b3RhL3V0aWwuYyAgICAgICAgICAgICAgfCA2NiArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVwYWlyL1JFQURNRSAgICAgICAgICAgICB8ICAyICstCi0gcmVwYWlyL2FnaGVhZGVyLmggICAgICAgICB8IDE0ICsrKystLS0tLQotIHJlcGFpci9hdHRyX3JlcGFpci5oICAgICAgfCAyNiArKysrKysrKy0tLS0tLS0tCi0gcmVwYWlyL2F2bDY0LmMgICAgICAgICAgICB8IDM4ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQotIHJlcGFpci9hdmw2NC5oICAgICAgICAgICAgfCAxOCArKysrKy0tLS0tLQotIHJlcGFpci9kaW5vZGUuYyAgICAgICAgICAgfCAzOCArKysrKysrKysrKystLS0tLS0tLS0tLS0KLSByZXBhaXIvZGlub2RlLmggICAgICAgICAgIHwgIDQgKy0tCi0gcmVwYWlyL2RpcjIuYyAgICAgICAgICAgICB8ICAyICstCi0gcmVwYWlyL2dsb2JhbHMuaCAgICAgICAgICB8IDE4ICsrKysrLS0tLS0tCi0gcmVwYWlyL2luY29yZS5jICAgICAgICAgICB8IDEwICsrKy0tLS0KLSByZXBhaXIvaW5jb3JlLmggICAgICAgICAgIHwgNDYgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIHJlcGFpci9pbmNvcmVfZXh0LmMgICAgICAgfCAgNiArKy0tCi0gcmVwYWlyL2luY29yZV9pbm8uYyAgICAgICB8IDcyICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVwYWlyL3BoYXNlMi5jICAgICAgICAgICB8ICAyICstCi0gcmVwYWlyL3BoYXNlMy5jICAgICAgICAgICB8ICA2ICsrLS0KLSByZXBhaXIvcGhhc2U0LmMgICAgICAgICAgIHwgIDQgKy0tCi0gcmVwYWlyL3BoYXNlNS5jICAgICAgICAgICB8IDI4ICsrKysrKysrLS0tLS0tLS0tCi0gcmVwYWlyL3BoYXNlNi5jICAgICAgICAgICB8IDE2ICsrKysrLS0tLS0KLSByZXBhaXIvcGhhc2U3LmMgICAgICAgICAgIHwgIDYgKystLQotIHJlcGFpci9wcm9ncmVzcy5jICAgICAgICAgfCAzMCArKysrKysrKystLS0tLS0tLS0tCi0gcmVwYWlyL3Byb2dyZXNzLmggICAgICAgICB8ICA0ICstLQotIHJlcGFpci9ybWFwLmMgICAgICAgICAgICAgfCAxOCArKysrKy0tLS0tLQotIHJlcGFpci9ybWFwLmggICAgICAgICAgICAgfCAgMiArLQotIHJlcGFpci9zYi5jICAgICAgICAgICAgICAgfCAyNCArKysrKysrLS0tLS0tLS0KLSByZXBhaXIvc2Nhbi5jICAgICAgICAgICAgIHwgNTAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQotIHJlcGFpci9zY2FuLmggICAgICAgICAgICAgfCAxMiArKysrLS0tLQotIDgwIGZpbGVzIGNoYW5nZWQsIDU5MCBpbnNlcnRpb25zKCspLCA1OTAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9jb3B5L3hmc19jb3B5LmMgYi9jb3B5L3hmc19jb3B5LmMKLWluZGV4IGE3ZGE4MjRmLi4zM2UwNWRmZCAxMDA2NDQKLS0tLSBhL2NvcHkveGZzX2NvcHkuYwotKysrIGIvY29weS94ZnNfY29weS5jCi1AQCAtNDMsNyArNDMsNyBAQCB1bnNpZ25lZCBpbnQJc291cmNlX3NlY3RvcnNpemU7CS8qIHNvdXJjZSBkaXNrIHNlY3RvcnNpemUgKi8KLSAKLSB4ZnNfYWdibG9ja190CWZpcnN0X2FnYm5vOwotIAotLV9fdWludDY0X3QJYmFyY291bnRbMTFdOwotK3VpbnQ2NF90CWJhcmNvdW50WzExXTsKLSAKLSB1bnNpZ25lZCBpbnQJbnVtX3RhcmdldHM7Ci0gdGFyZ2V0X2NvbnRyb2wJKnRhcmdldDsKLUBAIC0zMTMsNyArMzEzLDcgQEAgdXNhZ2Uodm9pZCkKLSB9Ci0gCi0gdm9pZAotLWluaXRfYmFyKF9fdWludDY0X3Qgc291cmNlX2Jsb2NrcykKLStpbml0X2Jhcih1aW50NjRfdCBzb3VyY2VfYmxvY2tzKQotIHsKLSAJaW50CWk7Ci0gCi1AQCAtMzIyLDcgKzMyMiw3IEBAIGluaXRfYmFyKF9fdWludDY0X3Qgc291cmNlX2Jsb2NrcykKLSB9Ci0gCi0gaW50Ci0tYnVtcF9iYXIoaW50IHRlbnRocywgX191aW50NjRfdCBudW1ibG9ja3MpCi0rYnVtcF9iYXIoaW50IHRlbnRocywgdWludDY0X3QgbnVtYmxvY2tzKQotIHsKLSAJc3RhdGljIGNoYXIgKmJhclsxMV0gPSB7Ci0gCQkiIDAlICIsCi1AQCAtNTM0LDggKzUzNCw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAl4ZnNfb2ZmX3QJcG9zOwotIAlzaXplX3QJCWxlbmd0aDsKLSAJaW50CQljOwotLQlfX3VpbnQ2NF90CXNpemUsIHNpemViOwotLQlfX3VpbnQ2NF90CW51bWJsb2NrcyA9IDA7Ci0rCXVpbnQ2NF90CXNpemUsIHNpemViOwotKwl1aW50NjRfdAludW1ibG9ja3MgPSAwOwotIAlpbnQJCXdibG9ja3MgPSAwOwotIAlpbnQJCW51bV90aHJlYWRzID0gMDsKLSAJc3RydWN0IGRpb2F0dHIJZDsKLUBAIC05NTEsOCArOTUxLDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gCW51bV9hZ3MgPSBtcC0+bV9zYi5zYl9hZ2NvdW50OwotIAotIAlpbml0X2JhcihtcC0+bV9zYi5zYl9ibG9ja3NpemUgLyBCQlNJWkUKLS0JCQkqICgoX191aW50NjRfdCltcC0+bV9zYi5zYl9kYmxvY2tzCi0tCQkJICAgIC0gKF9fdWludDY0X3QpbXAtPm1fc2Iuc2JfZmRibG9ja3MgKyAxMCAqIG51bV9hZ3MpKTsKLSsJCQkqICgodWludDY0X3QpbXAtPm1fc2Iuc2JfZGJsb2NrcwotKwkJCSAgICAtICh1aW50NjRfdCltcC0+bV9zYi5zYl9mZGJsb2NrcyArIDEwICogbnVtX2FncykpOwotIAotIAlraWRzID0gbnVtX3RhcmdldHM7Ci0gCi1kaWZmIC0tZ2l0IGEvY29weS94ZnNfY29weS5oIGIvY29weS94ZnNfY29weS5oCi1pbmRleCAyNzM3MDY4OC4uNTNjNmU0MmMgMTAwNjQ0Ci0tLS0gYS9jb3B5L3hmc19jb3B5LmgKLSsrKyBiL2NvcHkveGZzX2NvcHkuaAotQEAgLTc2LDcgKzc2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewotIAotIHR5cGVkZWYgaW50IHRocmVhZF9pZDsKLSB0eXBlZGVmIGludCB0bV9pbmRleDsJCQkvKiBpbmRleCBpbnRvIHRocmVhZCBtYXNrIGFycmF5ICovCi0tdHlwZWRlZiBfX3VpbnQzMl90IHRocmVhZF9tYXNrOwkJLyogYSB0aHJlYWQgbWFzayAqLwotK3R5cGVkZWYgdWludDMyX3QgdGhyZWFkX21hc2s7CQkvKiBhIHRocmVhZCBtYXNrICovCi0gCi0gdHlwZWRlZiBzdHJ1Y3QgewotIAljaGFyCQkqbmFtZTsKLWRpZmYgLS1naXQgYS9kYi9hdHRyLmMgYi9kYi9hdHRyLmMKLWluZGV4IDMxNTM2YThiLi4yM2ZmY2Q1ZiAxMDA2NDQKLS0tLSBhL2RiL2F0dHIuYwotKysrIGIvZGIvYXR0ci5jCi1AQCAtNzcsMTYgKzc3LDE2IEBAIGNvbnN0IGZpZWxkX3QJYXR0cl9sZWFmX2VudHJ5X2ZsZHNbXSA9IHsKLSAJeyAibmFtZWlkeCIsIEZMRFRfVUlOVDE2RCwgT0koTEVPRkYobmFtZWlkeCkpLCBDMSwgMCwgVFlQX05PTkUgfSwKLSAJeyAiZmxhZ3MiLCBGTERUX1VJTlQ4WCwgT0koTEVPRkYoZmxhZ3MpKSwgQzEsIEZMRF9TS0lQQUxMLCBUWVBfTk9ORSB9LAotIAl7ICJpbmNvbXBsZXRlIiwgRkxEVF9VSU5UMSwKLS0JICBPSShMRU9GRihmbGFncykgKyBiaXRzeihfX3VpbnQ4X3QpIC0gWEZTX0FUVFJfSU5DT01QTEVURV9CSVQgLSAxKSwgQzEsCi0rCSAgT0koTEVPRkYoZmxhZ3MpICsgYml0c3oodWludDhfdCkgLSBYRlNfQVRUUl9JTkNPTVBMRVRFX0JJVCAtIDEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJyb290IiwgRkxEVF9VSU5UMSwKLS0JICBPSShMRU9GRihmbGFncykgKyBiaXRzeihfX3VpbnQ4X3QpIC0gWEZTX0FUVFJfUk9PVF9CSVQgLSAxKSwgQzEsIDAsCi0rCSAgT0koTEVPRkYoZmxhZ3MpICsgYml0c3oodWludDhfdCkgLSBYRlNfQVRUUl9ST09UX0JJVCAtIDEpLCBDMSwgMCwKLSAJICBUWVBfTk9ORSB9LAotIAl7ICJzZWN1cmUiLCBGTERUX1VJTlQxLAotLQkgIE9JKExFT0ZGKGZsYWdzKSArIGJpdHN6KF9fdWludDhfdCkgLSBYRlNfQVRUUl9TRUNVUkVfQklUIC0gMSksIEMxLCAwLAotKwkgIE9JKExFT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQ4X3QpIC0gWEZTX0FUVFJfU0VDVVJFX0JJVCAtIDEpLCBDMSwgMCwKLSAJICBUWVBfTk9ORSB9LAotIAl7ICJsb2NhbCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koTEVPRkYoZmxhZ3MpICsgYml0c3ooX191aW50OF90KSAtIFhGU19BVFRSX0xPQ0FMX0JJVCAtIDEpLCBDMSwgMCwKLSsJICBPSShMRU9GRihmbGFncykgKyBiaXRzeih1aW50OF90KSAtIFhGU19BVFRSX0xPQ0FMX0JJVCAtIDEpLCBDMSwgMCwKLSAJICBUWVBfTk9ORSB9LAotIAl7ICJwYWQyIiwgRkxEVF9VSU5UOFgsIE9JKExFT0ZGKHBhZDIpKSwgQzEsIEZMRF9TS0lQQUxMLCBUWVBfTk9ORSB9LAotIAl7IE5VTEwgfQotZGlmZiAtLWdpdCBhL2RiL2F0dHJzaG9ydC5jIGIvZGIvYXR0cnNob3J0LmMKLWluZGV4IGQ4MjU1OWNjLi4yZWYzNThmNSAxMDA2NDQKLS0tLSBhL2RiL2F0dHJzaG9ydC5jCi0rKysgYi9kYi9hdHRyc2hvcnQuYwotQEAgLTUxLDEwICs1MSwxMCBAQCBjb25zdCBmaWVsZF90CWF0dHJfc2ZfZW50cnlfZmxkc1tdID0gewotIAl7ICJ2YWx1ZWxlbiIsIEZMRFRfVUlOVDhELCBPSShFT0ZGKHZhbHVlbGVuKSksIEMxLCAwLCBUWVBfTk9ORSB9LAotIAl7ICJmbGFncyIsIEZMRFRfVUlOVDhYLCBPSShFT0ZGKGZsYWdzKSksIEMxLCBGTERfU0tJUEFMTCwgVFlQX05PTkUgfSwKLSAJeyAicm9vdCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koRU9GRihmbGFncykgKyBiaXRzeihfX3VpbnQ4X3QpIC0gWEZTX0FUVFJfUk9PVF9CSVQgLSAxKSwgQzEsIDAsCi0rCSAgT0koRU9GRihmbGFncykgKyBiaXRzeih1aW50OF90KSAtIFhGU19BVFRSX1JPT1RfQklUIC0gMSksIEMxLCAwLAotIAkgIFRZUF9OT05FIH0sCi0gCXsgInNlY3VyZSIsIEZMRFRfVUlOVDEsCi0tCSAgT0koRU9GRihmbGFncykgKyBiaXRzeihfX3VpbnQ4X3QpIC0gWEZTX0FUVFJfU0VDVVJFX0JJVCAtIDEpLCBDMSwgMCwKLSsJICBPSShFT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQ4X3QpIC0gWEZTX0FUVFJfU0VDVVJFX0JJVCAtIDEpLCBDMSwgMCwKLSAJICBUWVBfTk9ORSB9LAotIAl7ICJuYW1lIiwgRkxEVF9DSEFSTlMsIE9JKEVPRkYobmFtZXZhbCkpLCBhdHRyX3NmX2VudHJ5X25hbWVfY291bnQsCi0gCSAgRkxEX0NPVU5ULCBUWVBfTk9ORSB9LAotZGlmZiAtLWdpdCBhL2RiL2JpdC5jIGIvZGIvYml0LmMKLWluZGV4IDI0ODcyYmY3Li5mNWViZjY4MSAxMDA2NDQKLS0tLSBhL2RiL2JpdC5jCi0rKysgYi9kYi9iaXQuYwotQEAgLTYwLDcgKzYwLDcgQEAgc2V0Yml0KAotIAl9Ci0gfQotIAotLV9faW50NjRfdAotK2ludDY0X3QKLSBnZXRiaXR2YWwoCi0gCXZvaWQJCSpvYmosCi0gCWludAkJYml0b2ZmLAotQEAgLTcwLDcgKzcwLDcgQEAgZ2V0Yml0dmFsKAotIAlpbnQJCWJpdDsKLSAJaW50CQlpOwotIAljaGFyCQkqcDsKLS0JX19pbnQ2NF90CXJ2YWw7Ci0rCWludDY0X3QJCXJ2YWw7Ci0gCWludAkJc2lnbmV4dDsKLSAJaW50CQl6MSwgejIsIHozLCB6NDsKLSAKLWRpZmYgLS1naXQgYS9kYi9iaXQuaCBiL2RiL2JpdC5oCi1pbmRleCA4MGJhMjRjNC4uOWZkNzFmNGIgMTAwNjQ0Ci0tLS0gYS9kYi9iaXQuaAotKysrIGIvZGIvYml0LmgKLUBAIC0yNSw1ICsyNSw1IEBACi0gI2RlZmluZQlCVlVOU0lHTkVECTAKLSAjZGVmaW5lCUJWU0lHTkVECTEKLSAKLS1leHRlcm4gX19pbnQ2NF90CWdldGJpdHZhbCh2b2lkICpvYmosIGludCBiaXRvZmYsIGludCBuYml0cywgaW50IGZsYWdzKTsKLStleHRlcm4gaW50NjRfdAkJZ2V0Yml0dmFsKHZvaWQgKm9iaiwgaW50IGJpdG9mZiwgaW50IG5iaXRzLCBpbnQgZmxhZ3MpOwotIGV4dGVybiB2b2lkICAgICAgICAgICAgIHNldGJpdHZhbCh2b2lkICpvYnVmLCBpbnQgYml0b2ZmLCBpbnQgbmJpdHMsIHZvaWQgKmlidWYpOwotZGlmZiAtLWdpdCBhL2RiL2Jsb2NrLmMgYi9kYi9ibG9jay5jCi1pbmRleCA0YTM1N2NlZC4uNWVjZDY4N2EgMTAwNjQ0Ci0tLS0gYS9kYi9ibG9jay5jCi0rKysgYi9kYi9ibG9jay5jCi1AQCAtOTgsNyArOTgsNyBAQCBhYmxvY2tfZigKLSAJfQotIAlkZnNibm8gPSBibS5zdGFydGJsb2NrICsgKGJubyAtIGJtLnN0YXJ0b2ZmKTsKLSAJQVNTRVJUKHR5cHRhYltUWVBfQVRUUl0udHlwbm0gPT0gVFlQX0FUVFIpOwotLQlzZXRfY3VyKCZ0eXB0YWJbVFlQX0FUVFJdLCAoX19pbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksCi0rCXNldF9jdXIoJnR5cHRhYltUWVBfQVRUUl0sIChpbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksCi0gCQlibGtiYiwgREJfUklOR19BREQsIE5VTEwpOwotIAlyZXR1cm4gMDsKLSB9Ci1AQCAtMTI4LDE0ICsxMjgsMTQgQEAgZGFkZHJfZigKLSAJaW50CQlhcmdjLAotIAljaGFyCQkqKmFyZ3YpCi0gewotLQlfX2ludDY0X3QJZDsKLSsJaW50NjRfdAkJZDsKLSAJY2hhcgkJKnA7Ci0gCi0gCWlmIChhcmdjID09IDEpIHsKLSAJCWRicHJpbnRmKF8oImN1cnJlbnQgZGFkZHIgaXMgJWxsZFxuIiksIGlvY3VyX3RvcC0+b2ZmID4+IEJCU0hJRlQpOwotIAkJcmV0dXJuIDA7Ci0gCX0KLS0JZCA9IChfX2ludDY0X3Qpc3RydG91bGwoYXJndlsxXSwgJnAsIDApOwotKwlkID0gKGludDY0X3Qpc3RydG91bGwoYXJndlsxXSwgJnAsIDApOwotIAlpZiAoKnAgIT0gJ1wwJyB8fAotIAkgICAgZCA+PSBtcC0+bV9zYi5zYl9kYmxvY2tzIDw8IChtcC0+bV9zYi5zYl9ibG9ja2xvZyAtIEJCU0hJRlQpKSB7Ci0gCQlkYnByaW50ZihfKCJiYWQgZGFkZHIgJXNcbiIpLCBhcmd2WzFdKTsKLUBAIC0xOTcsNyArMTk3LDcgQEAgZGJsb2NrX2YoCi0gCUFTU0VSVCh0eXB0YWJbdHlwZV0udHlwbm0gPT0gdHlwZSk7Ci0gCWlmIChuZXggPiAxKQotIAkJbWFrZV9iYm1hcCgmYmJtYXAsIG5leCwgYm1wKTsKLS0Jc2V0X2N1cigmdHlwdGFiW3R5cGVdLCAoX19pbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksCi0rCXNldF9jdXIoJnR5cHRhYlt0eXBlXSwgKGludDY0X3QpWEZTX0ZTQl9UT19EQUREUihtcCwgZGZzYm5vKSwKLSAJCW5iICogYmxrYmIsIERCX1JJTkdfQURELCBuZXggPiAxID8gJmJibWFwIDogTlVMTCk7Ci0gCWZyZWUoYm1wKTsKLSAJcmV0dXJuIDA7Ci1kaWZmIC0tZ2l0IGEvZGIvY2hlY2suYyBiL2RiL2NoZWNrLmMKLWluZGV4IDhlNjE4YTIzLi44MWJhNjNhNiAxMDA2NDQKLS0tLSBhL2RiL2NoZWNrLmMKLSsrKyBiL2RiL2NoZWNrLmMKLUBAIC0xMTQsOCArMTE0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgZGlyaGFzaCB7Ci0gCi0gc3RhdGljIHhmc19leHRsZW5fdAlhZ2ZmcmVlYmxrczsKLSBzdGF0aWMgeGZzX2V4dGxlbl90CWFnZmxvbmdlc3Q7Ci0tc3RhdGljIF9fdWludDY0X3QJYWdmX2FnZ3JfZnJlZWJsa3M7CS8qIGFnZ3JlZ2F0ZSBjb3VudCBvdmVyIGFsbCAqLwotLXN0YXRpYyBfX3VpbnQzMl90CWFnZmJ0cmVlYmxrczsKLStzdGF0aWMgdWludDY0X3QJYWdmX2FnZ3JfZnJlZWJsa3M7CS8qIGFnZ3JlZ2F0ZSBjb3VudCBvdmVyIGFsbCAqLwotK3N0YXRpYyB1aW50MzJfdAlhZ2ZidHJlZWJsa3M7Ci0gc3RhdGljIGludAkJbGF6eWNvdW50OwotIHN0YXRpYyB4ZnNfYWdpbm9fdAlhZ2ljb3VudDsKLSBzdGF0aWMgeGZzX2FnaW5vX3QJYWdpZnJlZWNvdW50OwotQEAgLTEyNCwxMCArMTI0LDEwIEBAIHN0YXRpYyBpbnQJCWJsaXN0X3NpemU7Ci0gc3RhdGljIGNoYXIJCSoqZGJtYXA7CS8qIHJlYWxseSBkYm1fdDo4ICovCi0gc3RhdGljIGRpcmhhc2hfdAkqKmRpcmhhc2g7Ci0gc3RhdGljIGludAkJZXJyb3I7Ci0tc3RhdGljIF9fdWludDY0X3QJZmRibG9ja3M7Ci0tc3RhdGljIF9fdWludDY0X3QJZnJleHRlbnRzOwotLXN0YXRpYyBfX3VpbnQ2NF90CWljb3VudDsKLS1zdGF0aWMgX191aW50NjRfdAlpZnJlZTsKLStzdGF0aWMgdWludDY0X3QJZmRibG9ja3M7Ci0rc3RhdGljIHVpbnQ2NF90CWZyZXh0ZW50czsKLStzdGF0aWMgdWludDY0X3QJaWNvdW50OwotK3N0YXRpYyB1aW50NjRfdAlpZnJlZTsKLSBzdGF0aWMgaW5vZGF0YV90CSoqKmlub2RhdGE7Ci0gc3RhdGljIGludAkJaW5vZGF0YV9oYXNoX3NpemU7Ci0gc3RhdGljIGlub2RhdGFfdAkqKippbm9tYXA7Ci1AQCAtMTE4Nyw3ICsxMTg3LDcgQEAgYmxvY2t0cmFzaF9mKAotIAkJZ290byBvdXQ7Ci0gCX0KLSAJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLS0JCXJhbmRiID0gKHhmc19yZnNibG9ja190KSgoKChfX2ludDY0X3QpcmFuZG9tKCkgPDwgMzIpIHwKLSsJCXJhbmRiID0gKHhmc19yZnNibG9ja190KSgoKChpbnQ2NF90KXJhbmRvbSgpIDw8IDMyKSB8Ci0gCQkJCQkgcmFuZG9tKCkpICUgYmxvY2tzKTsKLSAJCWZvciAoYmkgPSAwLCBhZ25vID0gMCwgZG9uZSA9IDA7Ci0gCQkgICAgICFkb25lICYmIGFnbm8gPCBtcC0+bV9zYi5zYl9hZ2NvdW50OwotQEAgLTMwMzIsNyArMzAzMiw3IEBAIHByb2Nlc3NfbGVhZl9ub2RlX2Rpcl92MigKLSAJCX0KLSAJCWlmICh2KQotIAkJCWRicHJpbnRmKF8oImRpciBpbm9kZSAlbGxkIGJsb2NrICV1PSVsbHVcbiIpLCBpZC0+aW5vLAotLQkJCQkoX191aW50MzJfdClkYm5vLAotKwkJCQkodWludDMyX3QpZGJubywKLSAJCQkJKHhmc19mc2Jsb2NrX3QpYm1wLT5zdGFydGJsb2NrKTsKLSAJCXB1c2hfY3VyKCk7Ci0gCQlpZiAobmV4ID4gMSkKLUBAIC0zMDQ1LDcgKzMwNDUsNyBAQCBwcm9jZXNzX2xlYWZfbm9kZV9kaXJfdjIoCi0gCQkJaWYgKCFzZmxhZyB8fCB2KQotIAkJCQlkYnByaW50ZihfKCJjYW4ndCByZWFkIGJsb2NrICV1IGZvciBkaXJlY3RvcnkgIgotIAkJCQkJICJpbm9kZSAlbGxkXG4iKSwKLS0JCQkJCShfX3VpbnQzMl90KWRibm8sIGlkLT5pbm8pOwotKwkJCQkJKHVpbnQzMl90KWRibm8sIGlkLT5pbm8pOwotIAkJCWVycm9yKys7Ci0gCQkJcG9wX2N1cigpOwotIAkJCWRibm8gKz0gbXAtPm1fZGlyX2dlby0+ZnNiY291bnQgLSAxOwotZGlmZiAtLWdpdCBhL2RiL2NvbnZlcnQuYyBiL2RiL2NvbnZlcnQuYwotaW5kZXggYTMzN2FiZWEuLmZhNGY5NjIzIDEwMDY0NAotLS0tIGEvZGIvY29udmVydC5jCi0rKysgYi9kYi9jb252ZXJ0LmMKLUBAIC0yNCwxMyArMjQsMTMgQEAKLSAKLSAjZGVmaW5lCU0oQSkJKDEgPDwgQ1RfICMjIEEpCi0gI2RlZmluZQlhZ2Jsb2NrX3RvX2J5dGVzKHgpCVwKLS0JKChfX3VpbnQ2NF90KSh4KSA8PCBtcC0+bV9zYi5zYl9ibG9ja2xvZykKLSsJKCh1aW50NjRfdCkoeCkgPDwgbXAtPm1fc2Iuc2JfYmxvY2tsb2cpCi0gI2RlZmluZQlhZ2lub190b19ieXRlcyh4KQlcCi0tCSgoX191aW50NjRfdCkoeCkgPDwgbXAtPm1fc2Iuc2JfaW5vZGVsb2cpCi0rCSgodWludDY0X3QpKHgpIDw8IG1wLT5tX3NiLnNiX2lub2RlbG9nKQotICNkZWZpbmUJYWdudW1iZXJfdG9fYnl0ZXMoeCkJXAotLQlhZ2Jsb2NrX3RvX2J5dGVzKChfX3VpbnQ2NF90KSh4KSAqIG1wLT5tX3NiLnNiX2FnYmxvY2tzKQotKwlhZ2Jsb2NrX3RvX2J5dGVzKCh1aW50NjRfdCkoeCkgKiBtcC0+bV9zYi5zYl9hZ2Jsb2NrcykKLSAjZGVmaW5lCWRhZGRyX3RvX2J5dGVzKHgpCVwKLS0JKChfX3VpbnQ2NF90KSh4KSA8PCBCQlNISUZUKQotKwkoKHVpbnQ2NF90KSh4KSA8PCBCQlNISUZUKQotICNkZWZpbmUJZnNibG9ja190b19ieXRlcyh4KQlcCi0gCShhZ251bWJlcl90b19ieXRlcyhYRlNfRlNCX1RPX0FHTk8obXAsICh4KSkpICsgXAotIAkgYWdibG9ja190b19ieXRlcyhYRlNfRlNCX1RPX0FHQk5PKG1wLCAoeCkpKSkKLUBAIC0zOCw3ICszOCw3IEBACi0gCShhZ251bWJlcl90b19ieXRlcyhYRlNfSU5PX1RPX0FHTk8obXAsICh4KSkpICsgXAotIAkgYWdpbm9fdG9fYnl0ZXMoWEZTX0lOT19UT19BR0lOTyhtcCwgKHgpKSkpCi0gI2RlZmluZQlpbm9pZHhfdG9fYnl0ZXMoeCkJXAotLQkoKF9fdWludDY0X3QpKHgpIDw8IG1wLT5tX3NiLnNiX2lub2RlbG9nKQotKwkoKHVpbnQ2NF90KSh4KSA8PCBtcC0+bV9zYi5zYl9pbm9kZWxvZykKLSAKLSB0eXBlZGVmIGVudW0gewotIAlDVF9OT05FID0gLTEsCi1AQCAtNjgsNyArNjgsNyBAQCB0eXBlZGVmIHVuaW9uIHsKLSAJeGZzX2FnbnVtYmVyX3QJYWdudW1iZXI7Ci0gCWludAkJYmJvZmY7Ci0gCWludAkJYmxrb2ZmOwotLQlfX3VpbnQ2NF90CWJ5dGU7Ci0rCXVpbnQ2NF90CWJ5dGU7Ci0gCXhmc19kYWRkcl90CWRhZGRyOwotIAl4ZnNfZnNibG9ja190CWZzYmxvY2s7Ci0gCXhmc19pbm9fdAlpbm87Ci1AQCAtNzYsNyArNzYsNyBAQCB0eXBlZGVmIHVuaW9uIHsKLSAJaW50CQlpbm9vZmY7Ci0gfSBjdmFsX3Q7Ci0gCi0tc3RhdGljIF9fdWludDY0X3QJCWJ5dGV2YWx1ZShjdHlwZV90IGN0eXBlLCBjdmFsX3QgKnZhbCk7Ci0rc3RhdGljIHVpbnQ2NF90CQlieXRldmFsdWUoY3R5cGVfdCBjdHlwZSwgY3ZhbF90ICp2YWwpOwotIHN0YXRpYyBpbnQJCWNvbnZlcnRfZihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwotIHN0YXRpYyBpbnQJCWdldHZhbHVlKGNoYXIgKnMsIGN0eXBlX3QgY3R5cGUsIGN2YWxfdCAqdmFsKTsKLSBzdGF0aWMgY3R5cGVfdAkJbG9va3VwY3R5KGNoYXIgKmN0eW5hbWUpOwotQEAgLTExOCw3ICsxMTgsNyBAQCBzdGF0aWMgY29uc3QgY21kaW5mb190CWNvbnZlcnRfY21kID0KLSAJeyAiY29udmVydCIsIE5VTEwsIGNvbnZlcnRfZiwgMywgOSwgMCwgInR5cGUgbnVtIFt0eXBlIG51bV0uLi4gdHlwZSIsCi0gCSAgImNvbnZlcnQgZnJvbSBvbmUgYWRkcmVzcyBmb3JtIHRvIGFub3RoZXIiLCBOVUxMIH07Ci0gCi0tc3RhdGljIF9fdWludDY0X3QKLStzdGF0aWMgdWludDY0X3QKLSBieXRldmFsdWUoY3R5cGVfdCBjdHlwZSwgY3ZhbF90ICp2YWwpCi0gewotIAlzd2l0Y2ggKGN0eXBlKSB7Ci1AQCAtMTI5LDkgKzEyOSw5IEBAIGJ5dGV2YWx1ZShjdHlwZV90IGN0eXBlLCBjdmFsX3QgKnZhbCkKLSAJY2FzZSBDVF9BR05VTUJFUjoKLSAJCXJldHVybiBhZ251bWJlcl90b19ieXRlcyh2YWwtPmFnbnVtYmVyKTsKLSAJY2FzZSBDVF9CQk9GRjoKLS0JCXJldHVybiAoX191aW50NjRfdCl2YWwtPmJib2ZmOwotKwkJcmV0dXJuICh1aW50NjRfdCl2YWwtPmJib2ZmOwotIAljYXNlIENUX0JMS09GRjoKLS0JCXJldHVybiAoX191aW50NjRfdCl2YWwtPmJsa29mZjsKLSsJCXJldHVybiAodWludDY0X3QpdmFsLT5ibGtvZmY7Ci0gCWNhc2UgQ1RfQllURToKLSAJCXJldHVybiB2YWwtPmJ5dGU7Ci0gCWNhc2UgQ1RfREFERFI6Ci1AQCAtMTQzLDcgKzE0Myw3IEBAIGJ5dGV2YWx1ZShjdHlwZV90IGN0eXBlLCBjdmFsX3QgKnZhbCkKLSAJY2FzZSBDVF9JTk9JRFg6Ci0gCQlyZXR1cm4gaW5vaWR4X3RvX2J5dGVzKHZhbC0+aW5vaWR4KTsKLSAJY2FzZSBDVF9JTk9PRkY6Ci0tCQlyZXR1cm4gKF9fdWludDY0X3QpdmFsLT5pbm9vZmY7Ci0rCQlyZXR1cm4gKHVpbnQ2NF90KXZhbC0+aW5vb2ZmOwotIAljYXNlIENUX05PTkU6Ci0gCWNhc2UgTkNUUzoKLSAJCWJyZWFrOwotQEAgLTE2MCw3ICsxNjAsNyBAQCBjb252ZXJ0X2YoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAljdmFsX3QJCWN2YWxzW05DVFNdID0ge307Ci0gCWludAkJaTsKLSAJaW50CQltYXNrOwotLQlfX3VpbnQ2NF90CXY7Ci0rCXVpbnQ2NF90CXY7Ci0gCWN0eXBlX3QJCXd0eXBlOwotIAotIAkvKiBtb3ZlIHBhc3QgdGhlICJjb252ZXJ0IiBjb21tYW5kICovCi1AQCAtMjYyLDcgKzI2Miw3IEBAIHN0YXRpYyBpbnQKLSBnZXR2YWx1ZShjaGFyICpzLCBjdHlwZV90IGN0eXBlLCBjdmFsX3QgKnZhbCkKLSB7Ci0gCWNoYXIJCSpwOwotLQlfX3VpbnQ2NF90CXY7Ci0rCXVpbnQ2NF90CXY7Ci0gCi0gCXYgPSBzdHJ0b3VsbChzLCAmcCwgMCk7Ci0gCWlmICgqcCAhPSAnXDAnKSB7Ci1AQCAtMjg2LDcgKzI4Niw3IEBAIGdldHZhbHVlKGNoYXIgKnMsIGN0eXBlX3QgY3R5cGUsIGN2YWxfdCAqdmFsKQotIAkJdmFsLT5ibGtvZmYgPSAoaW50KXY7Ci0gCQlicmVhazsKLSAJY2FzZSBDVF9CWVRFOgotLQkJdmFsLT5ieXRlID0gKF9fdWludDY0X3QpdjsKLSsJCXZhbC0+Ynl0ZSA9ICh1aW50NjRfdCl2OwotIAkJYnJlYWs7Ci0gCWNhc2UgQ1RfREFERFI6Ci0gCQl2YWwtPmRhZGRyID0gKHhmc19kYWRkcl90KXY7Ci1kaWZmIC0tZ2l0IGEvZGIvZmFkZHIuYyBiL2RiL2ZhZGRyLmMKLWluZGV4IDg3NzIwMGJmLi41NjIwNzY0OCAxMDA2NDQKLS0tLSBhL2RiL2ZhZGRyLmMKLSsrKyBiL2RiL2ZhZGRyLmMKLUBAIC03OSwxMSArNzksMTEgQEAgZmFfYXR0cmJsb2NrKAotIAl0eXBubV90CQluZXh0KQotIHsKLSAJYm1hcF9leHRfdAlibTsKLS0JX191aW50MzJfdAlibm87Ci0rCXVpbnQzMl90CWJubzsKLSAJeGZzX2ZzYmxvY2tfdAlkZnNibm87Ci0gCWludAkJbmV4OwotIAotLQlibm8gPSAoX191aW50MzJfdClnZXRiaXR2YWwob2JqLCBiaXQsIGJpdHN6KGJubyksIEJWVU5TSUdORUQpOwotKwlibm8gPSAodWludDMyX3QpZ2V0Yml0dmFsKG9iaiwgYml0LCBiaXRzeihibm8pLCBCVlVOU0lHTkVEKTsKLSAJaWYgKGJubyA9PSAwKSB7Ci0gCQlkYnByaW50ZihfKCJudWxsIGF0dHJpYnV0ZSBibG9jayBudW1iZXIsIGNhbm5vdCBzZXQgbmV3IGFkZHJcbiIpKTsKLSAJCXJldHVybjsKLUBAIC05Niw3ICs5Niw3IEBAIGZhX2F0dHJibG9jaygKLSAJfQotIAlkZnNibm8gPSBibS5zdGFydGJsb2NrICsgKGJubyAtIGJtLnN0YXJ0b2ZmKTsKLSAJQVNTRVJUKHR5cHRhYltuZXh0XS50eXBubSA9PSBuZXh0KTsKLS0Jc2V0X2N1cigmdHlwdGFiW25leHRdLCAoX19pbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksIGJsa2JiLAotKwlzZXRfY3VyKCZ0eXB0YWJbbmV4dF0sIChpbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksIGJsa2JiLAotIAkJREJfUklOR19BREQsIE5VTEwpOwotIH0KLSAKLUBAIC0yNzYsMTEgKzI3NiwxMSBAQCBmYV9kaXJibG9jaygKLSB7Ci0gCWJibWFwX3QJCWJibWFwOwotIAlibWFwX2V4dF90CSpibXA7Ci0tCV9fdWludDMyX3QJYm5vOwotKwl1aW50MzJfdAlibm87Ci0gCXhmc19mc2Jsb2NrX3QJZGZzYm5vOwotIAlpbnQJCW5leDsKLSAKLS0JYm5vID0gKF9fdWludDMyX3QpZ2V0Yml0dmFsKG9iaiwgYml0LCBiaXRzeihibm8pLCBCVlVOU0lHTkVEKTsKLSsJYm5vID0gKHVpbnQzMl90KWdldGJpdHZhbChvYmosIGJpdCwgYml0c3ooYm5vKSwgQlZVTlNJR05FRCk7Ci0gCWlmIChibm8gPT0gMCkgewotIAkJZGJwcmludGYoXygibnVsbCBkaXJlY3RvcnkgYmxvY2sgbnVtYmVyLCBjYW5ub3Qgc2V0IG5ldyBhZGRyXG4iKSk7Ci0gCQlyZXR1cm47Ci1AQCAtMjk3LDcgKzI5Nyw3IEBAIGZhX2RpcmJsb2NrKAotIAlBU1NFUlQodHlwdGFiW25leHRdLnR5cG5tID09IG5leHQpOwotIAlpZiAobmV4ID4gMSkKLSAJCW1ha2VfYmJtYXAoJmJibWFwLCBuZXgsIGJtcCk7Ci0tCXNldF9jdXIoJnR5cHRhYltuZXh0XSwgKF9faW50NjRfdClYRlNfRlNCX1RPX0RBRERSKG1wLCBkZnNibm8pLAotKwlzZXRfY3VyKCZ0eXB0YWJbbmV4dF0sIChpbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksCi0gCQlYRlNfRlNCX1RPX0JCKG1wLCBtcC0+bV9kaXJfZ2VvLT5mc2Jjb3VudCksIERCX1JJTkdfQURELAotIAkJbmV4ID4gMSA/ICZiYm1hcCA6IE5VTEwpOwotIAlmcmVlKGJtcCk7Ci1AQCAtMzE3LDcgKzMxNyw3IEBAIGZhX2RyZnNibm8oCi0gCQlyZXR1cm47Ci0gCX0KLSAJQVNTRVJUKHR5cHRhYltuZXh0XS50eXBubSA9PSBuZXh0KTsKLS0Jc2V0X2N1cigmdHlwdGFiW25leHRdLCAoX19pbnQ2NF90KVhGU19GU0JfVE9fQkIobXAsIGJubyksIGJsa2JiLAotKwlzZXRfY3VyKCZ0eXB0YWJbbmV4dF0sIChpbnQ2NF90KVhGU19GU0JfVE9fQkIobXAsIGJubyksIGJsa2JiLAotIAkJREJfUklOR19BREQsIE5VTEwpOwotIH0KLSAKLWRpZmYgLS1naXQgYS9kYi9maWVsZC5jIGIvZGIvZmllbGQuYwotaW5kZXggODY1YjBiNzEuLmYxZTVmMzVlIDEwMDY0NAotLS0tIGEvZGIvZmllbGQuYwotKysrIGIvZGIvZmllbGQuYwotQEAgLTgzLDcgKzgzLDcgQEAgY29uc3QgZnRhdHRyX3QJZnRhdHRydGFiW10gPSB7Ci0gCSAgYXR0cl9zZl9lbnRyeV9zaXplLCBGVEFSR19TSVpFLCBOVUxMLCBhdHRyX3NmX2VudHJ5X2ZsZHMgfSwKLSAJeyBGTERUX0FUVFJfU0ZfSERSLCAiYXR0cl9zZl9oZHIiLCBOVUxMLCAoY2hhciAqKWF0dHJfc2ZfaGRyX2ZsZHMsCi0gCSAgU0koYml0c3ooc3RydWN0IHhmc19hdHRyX3NmX2hkcikpLCAwLCBOVUxMLCBhdHRyX3NmX2hkcl9mbGRzIH0sCi0tCXsgRkxEVF9BVFRSQkxPQ0ssICJhdHRyYmxvY2siLCBmcF9udW0sICIldSIsIFNJKGJpdHN6KF9fdWludDMyX3QpKSwgMCwKLSsJeyBGTERUX0FUVFJCTE9DSywgImF0dHJibG9jayIsIGZwX251bSwgIiV1IiwgU0koYml0c3oodWludDMyX3QpKSwgMCwKLSAJICBmYV9hdHRyYmxvY2ssIE5VTEwgfSwKLSAJeyBGTERUX0FUVFJTSE9SVCwgImF0dHJzaG9ydCIsIE5VTEwsIChjaGFyICopYXR0cl9zaG9ydGZvcm1fZmxkcywKLSAJICBhdHRyc2hvcnRfc2l6ZSwgRlRBUkdfU0laRSwgTlVMTCwgYXR0cl9zaG9ydGZvcm1fZmxkcyB9LAotQEAgLTE5OSw3ICsxOTksNyBAQCBjb25zdCBmdGF0dHJfdAlmdGF0dHJ0YWJbXSA9IHsKLSAJICBTSShiaXRzeihzdHJ1Y3QgeGZzX3JlZmNvdW50X3JlYykpLCAwLCBOVUxMLCByZWZjYnRfcmVjX2ZsZHMgfSwKLSAKLSAvKiBDUkMgZmllbGQgKi8KLS0JeyBGTERUX0NSQywgImNyYyIsIGZwX2NyYywgIiUjeCAoJXMpIiwgU0koYml0c3ooX191aW50MzJfdCkpLAotKwl7IEZMRFRfQ1JDLCAiY3JjIiwgZnBfY3JjLCAiJSN4ICglcykiLCBTSShiaXRzeih1aW50MzJfdCkpLAotIAkgIDAsIE5VTEwsIE5VTEwgfSwKLSAKLSAJeyBGTERUX0RFViwgImRldiIsIGZwX251bSwgIiUjeCIsIFNJKGJpdHN6KHhmc19kZXZfdCkpLCAwLCBOVUxMLCBOVUxMIH0sCi1AQCAtMjE0LDcgKzIxNCw3IEBAIGNvbnN0IGZ0YXR0cl90CWZ0YXR0cnRhYltdID0gewotIAl7IEZMRFRfRElOT0RFX0NPUkUsICJkaW5vZGVfY29yZSIsIE5VTEwsIChjaGFyICopaW5vZGVfY29yZV9mbGRzLAotIAkgIFNJKGJpdHN6KHhmc19kaW5vZGVfdCkpLCAwLCBOVUxMLCBpbm9kZV9jb3JlX2ZsZHMgfSwKLSAJeyBGTERUX0RJTk9ERV9GTVQsICJkaW5vZGVfZm10IiwgZnBfZGlub2RlX2ZtdCwgTlVMTCwKLS0JICBTSShiaXRzeihfX2ludDhfdCkpLCAwLCBOVUxMLCBOVUxMIH0sCi0rCSAgU0koYml0c3ooaW50OF90KSksIDAsIE5VTEwsIE5VTEwgfSwKLSAJeyBGTERUX0RJTk9ERV9VLCAiZGlub2RlX3UiLCBOVUxMLCAoY2hhciAqKWlub2RlX3VfZmxkcywgaW5vZGVfdV9zaXplLAotIAkgIEZUQVJHX1NJWkV8RlRBUkdfT0tFTVBUWSwgTlVMTCwgaW5vZGVfdV9mbGRzIH0sCi0gCXsgRkxEVF9ESU5PREVfVjMsICJkaW5vZGVfdjMiLCBOVUxMLCAoY2hhciAqKWlub2RlX3YzX2ZsZHMsCi1AQCAtMjk1LDcgKzI5NSw3IEBAIGNvbnN0IGZ0YXR0cl90CWZ0YXR0cnRhYltdID0gewotIAl7IEZMRFRfREEzX05PREVfSERSLCAiZGlyX25vZGVfaGRyIiwgTlVMTCwgKGNoYXIgKilkYTNfbm9kZV9oZHJfZmxkcywKLSAJICBTSShiaXRzeihzdHJ1Y3QgeGZzX2RhM19ub2RlX2hkcikpLCAwLCBOVUxMLCBkYTNfbm9kZV9oZHJfZmxkcyB9LAotIAotLQl7IEZMRFRfRElSQkxPQ0ssICJkaXJibG9jayIsIGZwX251bSwgIiV1IiwgU0koYml0c3ooX191aW50MzJfdCkpLCAwLAotKwl7IEZMRFRfRElSQkxPQ0ssICJkaXJibG9jayIsIGZwX251bSwgIiV1IiwgU0koYml0c3oodWludDMyX3QpKSwgMCwKLSAJICBmYV9kaXJibG9jaywgTlVMTCB9LAotIAl7IEZMRFRfRElTS19EUVVPVCwgImRpc2tfZHF1b3QiLCBOVUxMLCAoY2hhciAqKWRpc2tfZHF1b3RfZmxkcywKLSAJICBTSShiaXRzeih4ZnNfZGlza19kcXVvdF90KSksIDAsIE5VTEwsIGRpc2tfZHF1b3RfZmxkcyB9LAotQEAgLTMzNSwxNSArMzM1LDE1IEBAIGNvbnN0IGZ0YXR0cl90CWZ0YXR0cnRhYltdID0gewotIAkgIEZUQVJHX1NJWkUsIE5VTEwsIGlub2RlX2NyY19mbGRzIH0sCi0gCXsgRkxEVF9JTk9GUkVFLCAiaW5vZnJlZSIsIGZwX251bSwgIiUjbGx4IiwgU0koYml0c3ooeGZzX2lub2ZyZWVfdCkpLCAwLAotIAkgIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX0lOVDE2RCwgImludDE2ZCIsIGZwX251bSwgIiVkIiwgU0koYml0c3ooX19pbnQxNl90KSksCi0rCXsgRkxEVF9JTlQxNkQsICJpbnQxNmQiLCBmcF9udW0sICIlZCIsIFNJKGJpdHN6KGludDE2X3QpKSwKLSAJICBGVEFSR19TSUdORUQsIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX0lOVDMyRCwgImludDMyZCIsIGZwX251bSwgIiVkIiwgU0koYml0c3ooX19pbnQzMl90KSksCi0rCXsgRkxEVF9JTlQzMkQsICJpbnQzMmQiLCBmcF9udW0sICIlZCIsIFNJKGJpdHN6KGludDMyX3QpKSwKLSAJICBGVEFSR19TSUdORUQsIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX0lOVDY0RCwgImludDY0ZCIsIGZwX251bSwgIiVsbGQiLCBTSShiaXRzeihfX2ludDY0X3QpKSwKLSsJeyBGTERUX0lOVDY0RCwgImludDY0ZCIsIGZwX251bSwgIiVsbGQiLCBTSShiaXRzeihpbnQ2NF90KSksCi0gCSAgRlRBUkdfU0lHTkVELCBOVUxMLCBOVUxMIH0sCi0tCXsgRkxEVF9JTlQ4RCwgImludDhkIiwgZnBfbnVtLCAiJWQiLCBTSShiaXRzeihfX2ludDhfdCkpLCBGVEFSR19TSUdORUQsCi0rCXsgRkxEVF9JTlQ4RCwgImludDhkIiwgZnBfbnVtLCAiJWQiLCBTSShiaXRzeihpbnQ4X3QpKSwgRlRBUkdfU0lHTkVELAotIAkgIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX05TRUMsICJuc2VjIiwgZnBfbnVtLCAiJTA5ZCIsIFNJKGJpdHN6KF9faW50MzJfdCkpLCBGVEFSR19TSUdORUQsCi0rCXsgRkxEVF9OU0VDLCAibnNlYyIsIGZwX251bSwgIiUwOWQiLCBTSShiaXRzeihpbnQzMl90KSksIEZUQVJHX1NJR05FRCwKLSAJICBOVUxMLCBOVUxMIH0sCi0gCXsgRkxEVF9RQ05ULCAicWNudCIsIGZwX251bSwgIiVsbHUiLCBTSShiaXRzeih4ZnNfcWNudF90KSksIDAsIE5VTEwsCi0gCSAgTlVMTCB9LAotQEAgLTM1NiwzNCArMzU2LDM0IEBAIGNvbnN0IGZ0YXR0cl90CWZ0YXR0cnRhYltdID0gewotIAl7IEZMRFRfU1lNTElOS19DUkMsICJzeW1saW5rIiwgTlVMTCwgKGNoYXIgKilzeW1saW5rX2NyY19mbGRzLAotIAkgIHN5bWxpbmtfc2l6ZSwgRlRBUkdfU0laRSwgTlVMTCwgc3ltbGlua19jcmNfZmxkcyB9LAotIAotLQl7IEZMRFRfVElNRSwgInRpbWUiLCBmcF90aW1lLCBOVUxMLCBTSShiaXRzeihfX2ludDMyX3QpKSwgRlRBUkdfU0lHTkVELAotKwl7IEZMRFRfVElNRSwgInRpbWUiLCBmcF90aW1lLCBOVUxMLCBTSShiaXRzeihpbnQzMl90KSksIEZUQVJHX1NJR05FRCwKLSAJICBOVUxMLCBOVUxMIH0sCi0gCXsgRkxEVF9USU1FU1RBTVAsICJ0aW1lc3RhbXAiLCBOVUxMLCAoY2hhciAqKXRpbWVzdGFtcF9mbGRzLAotIAkgIFNJKGJpdHN6KHhmc190aW1lc3RhbXBfdCkpLCAwLCBOVUxMLCB0aW1lc3RhbXBfZmxkcyB9LAotIAl7IEZMRFRfVUlOVDEsICJ1aW50MSIsIGZwX251bSwgIiV1IiwgU0koMSksIDAsIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX1VJTlQxNkQsICJ1aW50MTZkIiwgZnBfbnVtLCAiJXUiLCBTSShiaXRzeihfX3VpbnQxNl90KSksIDAsIE5VTEwsCi0rCXsgRkxEVF9VSU5UMTZELCAidWludDE2ZCIsIGZwX251bSwgIiV1IiwgU0koYml0c3oodWludDE2X3QpKSwgMCwgTlVMTCwKLSAJICBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UMTZPLCAidWludDE2byIsIGZwX251bSwgIiUjbyIsIFNJKGJpdHN6KF9fdWludDE2X3QpKSwgMCwKLSsJeyBGTERUX1VJTlQxNk8sICJ1aW50MTZvIiwgZnBfbnVtLCAiJSNvIiwgU0koYml0c3oodWludDE2X3QpKSwgMCwKLSAJICBOVUxMLCBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UMTZYLCAidWludDE2eCIsIGZwX251bSwgIiUjeCIsIFNJKGJpdHN6KF9fdWludDE2X3QpKSwgMCwKLSsJeyBGTERUX1VJTlQxNlgsICJ1aW50MTZ4IiwgZnBfbnVtLCAiJSN4IiwgU0koYml0c3oodWludDE2X3QpKSwgMCwKLSAJICBOVUxMLCBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UMzJELCAidWludDMyZCIsIGZwX251bSwgIiV1IiwgU0koYml0c3ooX191aW50MzJfdCkpLCAwLCBOVUxMLAotKwl7IEZMRFRfVUlOVDMyRCwgInVpbnQzMmQiLCBmcF9udW0sICIldSIsIFNJKGJpdHN6KHVpbnQzMl90KSksIDAsIE5VTEwsCi0gCSAgTlVMTCB9LAotLQl7IEZMRFRfVUlOVDMyTywgInVpbnQzMm8iLCBmcF9udW0sICIlI28iLCBTSShiaXRzeihfX3VpbnQzMl90KSksIDAsCi0rCXsgRkxEVF9VSU5UMzJPLCAidWludDMybyIsIGZwX251bSwgIiUjbyIsIFNJKGJpdHN6KHVpbnQzMl90KSksIDAsCi0gCSAgTlVMTCwgTlVMTCB9LAotLQl7IEZMRFRfVUlOVDMyWCwgInVpbnQzMngiLCBmcF9udW0sICIlI3giLCBTSShiaXRzeihfX3VpbnQzMl90KSksIDAsCi0rCXsgRkxEVF9VSU5UMzJYLCAidWludDMyeCIsIGZwX251bSwgIiUjeCIsIFNJKGJpdHN6KHVpbnQzMl90KSksIDAsCi0gCSAgTlVMTCwgTlVMTCB9LAotLQl7IEZMRFRfVUlOVDY0RCwgInVpbnQ2NGQiLCBmcF9udW0sICIlbGx1IiwgU0koYml0c3ooX191aW50NjRfdCkpLCAwLAotKwl7IEZMRFRfVUlOVDY0RCwgInVpbnQ2NGQiLCBmcF9udW0sICIlbGx1IiwgU0koYml0c3oodWludDY0X3QpKSwgMCwKLSAJICBOVUxMLCBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UNjRPLCAidWludDY0byIsIGZwX251bSwgIiUjbGxvIiwgU0koYml0c3ooX191aW50NjRfdCkpLCAwLAotKwl7IEZMRFRfVUlOVDY0TywgInVpbnQ2NG8iLCBmcF9udW0sICIlI2xsbyIsIFNJKGJpdHN6KHVpbnQ2NF90KSksIDAsCi0gCSAgTlVMTCwgTlVMTCB9LAotLQl7IEZMRFRfVUlOVDY0WCwgInVpbnQ2NHgiLCBmcF9udW0sICIlI2xseCIsIFNJKGJpdHN6KF9fdWludDY0X3QpKSwgMCwKLSsJeyBGTERUX1VJTlQ2NFgsICJ1aW50NjR4IiwgZnBfbnVtLCAiJSNsbHgiLCBTSShiaXRzeih1aW50NjRfdCkpLCAwLAotIAkgIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX1VJTlQ4RCwgInVpbnQ4ZCIsIGZwX251bSwgIiV1IiwgU0koYml0c3ooX191aW50OF90KSksIDAsIE5VTEwsCi0rCXsgRkxEVF9VSU5UOEQsICJ1aW50OGQiLCBmcF9udW0sICIldSIsIFNJKGJpdHN6KHVpbnQ4X3QpKSwgMCwgTlVMTCwKLSAJICBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UOE8sICJ1aW50OG8iLCBmcF9udW0sICIlI28iLCBTSShiaXRzeihfX3VpbnQ4X3QpKSwgMCwgTlVMTCwKLSsJeyBGTERUX1VJTlQ4TywgInVpbnQ4byIsIGZwX251bSwgIiUjbyIsIFNJKGJpdHN6KHVpbnQ4X3QpKSwgMCwgTlVMTCwKLSAJICBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UOFgsICJ1aW50OHgiLCBmcF9udW0sICIlI3giLCBTSShiaXRzeihfX3VpbnQ4X3QpKSwgMCwgTlVMTCwKLSsJeyBGTERUX1VJTlQ4WCwgInVpbnQ4eCIsIGZwX251bSwgIiUjeCIsIFNJKGJpdHN6KHVpbnQ4X3QpKSwgMCwgTlVMTCwKLSAJICBOVUxMIH0sCi0gCXsgRkxEVF9VVUlELCAidXVpZCIsIGZwX3V1aWQsIE5VTEwsIFNJKGJpdHN6KHV1aWRfdCkpLCAwLCBOVUxMLCBOVUxMIH0sCi0gCXsgRkxEVF9aWlosIE5VTEwgfQotZGlmZiAtLWdpdCBhL2RiL2ZwcmludC5jIGIvZGIvZnByaW50LmMKLWluZGV4IGZkN2U3ZjQ1Li4yNjFhMzFlZiAxMDA2NDQKLS0tLSBhL2RiL2ZwcmludC5jCi0rKysgYi9kYi9mcHJpbnQuYwotQEAgLTgwLDcgKzgwLDcgQEAgZnBfbnVtKAotIAlpbnQJCWJpdHBvczsKLSAJaW50CQlpOwotIAlpbnQJCWlzbnVsbDsKLS0JX19pbnQ2NF90CXZhbDsKLSsJaW50NjRfdAkJdmFsOwotIAotIAlmb3IgKGkgPSAwLCBiaXRwb3MgPSBiaXQ7Ci0gCSAgICAgaSA8IGNvdW50ICYmICFzZWVuaW50KCk7Ci1AQCAtMTAwLDcgKzEwMCw3IEBAIGZwX251bSgKLSAJCWVsc2UgaWYgKHNpemUgPiAzMikKLSAJCQlkYnByaW50ZihmbXRzdHIsIHZhbCk7Ci0gCQllbHNlCi0tCQkJZGJwcmludGYoZm10c3RyLCAoX19pbnQzMl90KXZhbCk7Ci0rCQkJZGJwcmludGYoZm10c3RyLCAoaW50MzJfdCl2YWwpOwotIAkJaWYgKGkgPCBjb3VudCAtIDEpCi0gCQkJZGJwcmludGYoIiAiKTsKLSAJfQotQEAgLTIwMyw3ICsyMDMsNyBAQCBmcF9jcmMoCi0gewotIAlpbnQJCWJpdHBvczsKLSAJaW50CQlpOwotLQlfX2ludDY0X3QJdmFsOwotKwlpbnQ2NF90CQl2YWw7Ci0gCWNoYXIJCSpvazsKLSAKLSAJc3dpdGNoIChpb2N1cl9jcmNfdmFsaWQoKSkgewotQEAgLTIzMCw3ICsyMzAsNyBAQCBmcF9jcmMoCi0gCQlpZiAoc2l6ZSA+IDMyKQotIAkJCWRicHJpbnRmKGZtdHN0ciwgdmFsLCBvayk7Ci0gCQllbHNlCi0tCQkJZGJwcmludGYoZm10c3RyLCAoX19pbnQzMl90KXZhbCwgb2spOwotKwkJCWRicHJpbnRmKGZtdHN0ciwgKGludDMyX3QpdmFsLCBvayk7Ci0gCQlpZiAoaSA8IGNvdW50IC0gMSkKLSAJCQlkYnByaW50ZigiICIpOwotIAl9Ci1kaWZmIC0tZ2l0IGEvZGIvZnJhZy5jIGIvZGIvZnJhZy5jCi1pbmRleCA4MDA1ZTQ1ZC4uZDIyNGYwYzIgMTAwNjQ0Ci0tLS0gYS9kYi9mcmFnLmMKLSsrKyBiL2RiL2ZyYWcuYwotQEAgLTQyLDggKzQyLDggQEAgdHlwZWRlZglzdHJ1Y3QgZXh0bWFwIHsKLSAKLSBzdGF0aWMgaW50CQlhZmxhZzsKLSBzdGF0aWMgaW50CQlkZmxhZzsKLS1zdGF0aWMgX191aW50NjRfdAlleHRjb3VudF9hY3R1YWw7Ci0tc3RhdGljIF9fdWludDY0X3QJZXh0Y291bnRfaWRlYWw7Ci0rc3RhdGljIHVpbnQ2NF90CWV4dGNvdW50X2FjdHVhbDsKLStzdGF0aWMgdWludDY0X3QJZXh0Y291bnRfaWRlYWw7Ci0gc3RhdGljIGludAkJZmZsYWc7Ci0gc3RhdGljIGludAkJbGZsYWc7Ci0gc3RhdGljIGludAkJcWZsYWc7Ci1AQCAtMzEwLDggKzMxMCw4IEBAIHByb2Nlc3NfaW5vZGUoCi0gCXhmc19hZ2lub190CQlhZ2lubywKLSAJeGZzX2Rpbm9kZV90CQkqZGlwKQotIHsKLS0JX191aW50NjRfdAkJYWN0dWFsOwotLQlfX3VpbnQ2NF90CQlpZGVhbDsKLSsJdWludDY0X3QJCWFjdHVhbDsKLSsJdWludDY0X3QJCWlkZWFsOwotIAl4ZnNfaW5vX3QJCWlubzsKLSAJaW50CQkJc2tpcGE7Ci0gCWludAkJCXNraXBkOwotZGlmZiAtLWdpdCBhL2RiL2lub2RlLmMgYi9kYi9pbm9kZS5jCi1pbmRleCA4YjdhNDFlNC4uNmNjNDdkNmEgMTAwNjQ0Ci0tLS0gYS9kYi9pbm9kZS5jCi0rKysgYi9kYi9pbm9kZS5jCi1AQCAtMTE5LDQ5ICsxMTksNDkgQEAgY29uc3QgZmllbGRfdAlpbm9kZV9jb3JlX2ZsZHNbXSA9IHsKLSAJeyAiZG1zdGF0ZSIsIEZMRFRfVUlOVDE2RCwgT0koQ09GRihkbXN0YXRlKSksIEMxLCAwLCBUWVBfTk9ORSB9LAotIAl7ICJmbGFncyIsIEZMRFRfVUlOVDE2WCwgT0koQ09GRihmbGFncykpLCBDMSwgRkxEX1NLSVBBTEwsIFRZUF9OT05FIH0sCi0gCXsgIm5ld3J0Ym0iLCBGTERUX1VJTlQxLAotLQkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3ooX191aW50MTZfdCkgLSBYRlNfRElGTEFHX05FV1JUQk1fQklUIC0gMSksIEMxLAotKwkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3oodWludDE2X3QpIC0gWEZTX0RJRkxBR19ORVdSVEJNX0JJVCAtIDEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJwcmVhbGxvYyIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfUFJFQUxMT0NfQklUIC0gMSksIEMxLAotKwkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3oodWludDE2X3QpIC0gWEZTX0RJRkxBR19QUkVBTExPQ19CSVQgLSAxKSwgQzEsCi0gCSAgMCwgVFlQX05PTkUgfSwKLSAJeyAicmVhbHRpbWUiLCBGTERUX1VJTlQxLAotLQkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3ooX191aW50MTZfdCkgLSBYRlNfRElGTEFHX1JFQUxUSU1FX0JJVCAtIDEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfUkVBTFRJTUVfQklUIC0gMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImltbXV0YWJsZSIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfSU1NVVRBQkxFX0JJVC0xKSwgQzEsCi0rCSAgT0koQ09GRihmbGFncykgKyBiaXRzeih1aW50MTZfdCkgLSBYRlNfRElGTEFHX0lNTVVUQUJMRV9CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImFwcGVuZCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfQVBQRU5EX0JJVCAtIDEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfQVBQRU5EX0JJVCAtIDEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJzeW5jIiwgRkxEVF9VSU5UMSwKLS0JICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KF9fdWludDE2X3QpIC0gWEZTX0RJRkxBR19TWU5DX0JJVCAtIDEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfU1lOQ19CSVQgLSAxKSwgQzEsCi0gCSAgMCwgVFlQX05PTkUgfSwKLSAJeyAibm9hdGltZSIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfTk9BVElNRV9CSVQgLSAxKSwgQzEsCi0rCSAgT0koQ09GRihmbGFncykgKyBiaXRzeih1aW50MTZfdCkgLSBYRlNfRElGTEFHX05PQVRJTUVfQklUIC0gMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgIm5vZHVtcCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfTk9EVU1QX0JJVCAtIDEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfTk9EVU1QX0JJVCAtIDEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJydGluaGVyaXQiLCBGTERUX1VJTlQxLAotLQkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3ooX191aW50MTZfdCkgLSBYRlNfRElGTEFHX1JUSU5IRVJJVF9CSVQtMSksIEMxLAotKwkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3oodWludDE2X3QpIC0gWEZTX0RJRkxBR19SVElOSEVSSVRfQklULTEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJwcm9qaW5oZXJpdCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfUFJPSklOSEVSSVRfQklULTEpLEMxLAotKwkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3oodWludDE2X3QpIC0gWEZTX0RJRkxBR19QUk9KSU5IRVJJVF9CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgIm5vc3ltbGlua3MiLCBGTERUX1VJTlQxLAotLQkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3ooX191aW50MTZfdCkgLSBYRlNfRElGTEFHX05PU1lNTElOS1NfQklULTEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfTk9TWU1MSU5LU19CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImV4dHN6IiwgRkxEVF9VSU5UMSwKLS0JICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KF9fdWludDE2X3QpIC0gWEZTX0RJRkxBR19FWFRTSVpFX0JJVC0xKSxDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfRVhUU0laRV9CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImV4dHN6aW5oZXJpdCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfRVhUU1pJTkhFUklUX0JJVC0xKSxDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfRVhUU1pJTkhFUklUX0JJVC0xKSwgQzEsCi0gCSAgMCwgVFlQX05PTkUgfSwKLSAJeyAibm9kZWZyYWciLCBGTERUX1VJTlQxLAotLQkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3ooX191aW50MTZfdCkgLSBYRlNfRElGTEFHX05PREVGUkFHX0JJVC0xKSxDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfTk9ERUZSQUdfQklULTEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJmaWxlc3RyZWFtIiwgRkxEVF9VSU5UMSwKLS0JICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KF9fdWludDE2X3QpIC0gWEZTX0RJRkxBR19GSUxFU1RSRUFNX0JJVC0xKSxDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfRklMRVNUUkVBTV9CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImdlbiIsIEZMRFRfVUlOVDMyRCwgT0koQ09GRihnZW4pKSwgQzEsIDAsIFRZUF9OT05FIH0sCi0gCXsgTlVMTCB9Ci1AQCAtMTc3LDEwICsxNzcsMTAgQEAgY29uc3QgZmllbGRfdAlpbm9kZV92M19mbGRzW10gPSB7Ci0gCXsgImludW1iZXIiLCBGTERUX0lOTywgT0koQ09GRihpbm8pKSwgQzEsIDAsIFRZUF9OT05FIH0sCi0gCXsgInV1aWQiLCBGTERUX1VVSUQsIE9JKENPRkYodXVpZCkpLCBDMSwgMCwgVFlQX05PTkUgfSwKLSAJeyAicmVmbGluayIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFnczIpICsgYml0c3ooX191aW50NjRfdCkgLSBYRlNfRElGTEFHMl9SRUZMSU5LX0JJVC0xKSwgQzEsCi0rCSAgT0koQ09GRihmbGFnczIpICsgYml0c3oodWludDY0X3QpIC0gWEZTX0RJRkxBRzJfUkVGTElOS19CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImNvd2V4dHN6IiwgRkxEVF9VSU5UMSwKLS0JICBPSShDT0ZGKGZsYWdzMikgKyBiaXRzeihfX3VpbnQ2NF90KSAtIFhGU19ESUZMQUcyX0NPV0VYVFNJWkVfQklULTEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzMikgKyBiaXRzeih1aW50NjRfdCkgLSBYRlNfRElGTEFHMl9DT1dFWFRTSVpFX0JJVC0xKSwgQzEsCi0gCSAgMCwgVFlQX05PTkUgfSwKLSAJeyBOVUxMIH0KLSB9OwotZGlmZiAtLWdpdCBhL2RiL2lvLmMgYi9kYi9pby5jCi1pbmRleCAxZjI3ZjZiMy4uZmQ5YjlmNGIgMTAwNjQ0Ci0tLS0gYS9kYi9pby5jCi0rKysgYi9kYi9pby5jCi1AQCAtNTQ1LDcgKzU0NSw3IEBAIHNldF9jdXIoCi0gCXN0cnVjdCB4ZnNfYnVmCSpicDsKLSAJeGZzX2lub190CWRpcmlubzsKLSAJeGZzX2lub190CWlubzsKLS0JX191aW50MTZfdAltb2RlOwotKwl1aW50MTZfdAltb2RlOwotIAljb25zdCBzdHJ1Y3QgeGZzX2J1Zl9vcHMgKm9wcyA9IHR5cGUgPyB0eXBlLT5ib3BzIDogTlVMTDsKLSAKLSAJaWYgKGlvY3VyX3NwIDwgMCkgewotZGlmZiAtLWdpdCBhL2RiL2lvLmggYi9kYi9pby5oCi1pbmRleCA5OTczMDA0OC4uZGYwZmRkNzUgMTAwNjQ0Ci0tLS0gYS9kYi9pby5oCi0rKysgYi9kYi9pby5oCi1AQCAtMjUsNyArMjUsNyBAQCB0eXBlZGVmIHN0cnVjdCBiYm1hcCB7Ci0gfSBiYm1hcF90OwotIAotIHR5cGVkZWYgc3RydWN0IGlvY3VyIHsKLS0JX19pbnQ2NF90CQliYjsJLyogQkIgbnVtYmVyIGluIGZpbGVzeXN0ZW0gb2YgYnVmICovCi0rCWludDY0X3QJCQliYjsJLyogQkIgbnVtYmVyIGluIGZpbGVzeXN0ZW0gb2YgYnVmICovCi0gCWludAkJCWJsZW47CS8qIGxlbmd0aCBvZiAiYnVmIiwgYmIncyAqLwotIAlpbnQJCQlib2ZmOwkvKiBkYXRhIC0gYnVmICovCi0gCXZvaWQJCQkqYnVmOwkvKiBiYXNlIGFkZHJlc3Mgb2YgYnVmZmVyICovCi1AQCAtMzMsNyArMzMsNyBAQCB0eXBlZGVmIHN0cnVjdCBpb2N1ciB7Ci0gCXhmc19pbm9fdAkJZGlyaW5vOwkvKiBjdXJyZW50IGRpcmVjdG9yeSBpbm9kZSBudW1iZXIgKi8KLSAJeGZzX2lub190CQlpbm87CS8qIGN1cnJlbnQgaW5vZGUgbnVtYmVyICovCi0gCWludAkJCWxlbjsJLyogbGVuZ3RoIG9mICJkYXRhIiwgYnl0ZXMgKi8KLS0JX191aW50MTZfdAkJbW9kZTsJLyogY3VycmVudCBpbm9kZSdzIG1vZGUgKi8KLSsJdWludDE2X3QJCW1vZGU7CS8qIGN1cnJlbnQgaW5vZGUncyBtb2RlICovCi0gCXhmc19vZmZfdAkJb2ZmOwkvKiBmcyBvZmZzZXQgb2YgImRhdGEiIGluIGJ5dGVzICovCi0gCWNvbnN0IHN0cnVjdCB0eXAJKnR5cDsJLyogdHlwZSBvZiAiZGF0YSIgKi8KLSAJYmJtYXBfdAkJCSpiYm1hcDsJLyogbWFwIGRhZGRyIGlmIGZyYWdtZW50ZWQgKi8KLUBAIC01Nyw3ICs1Nyw3IEBAIGV4dGVybiB2b2lkCW9mZl9jdXIoaW50IG9mZiwgaW50IGxlbik7Ci0gZXh0ZXJuIHZvaWQJcG9wX2N1cih2b2lkKTsKLSBleHRlcm4gdm9pZAlwcmludF9pb2N1cihjaGFyICp0YWcsIGlvY3VyX3QgKmlvYyk7Ci0gZXh0ZXJuIHZvaWQJcHVzaF9jdXIodm9pZCk7Ci0tZXh0ZXJuIGludAlyZWFkX2J1ZihfX2ludDY0X3QgZGFkZHIsIGludCBjb3VudCwgdm9pZCAqYnVmcCk7Ci0rZXh0ZXJuIGludAlyZWFkX2J1ZihpbnQ2NF90IGRhZGRyLCBpbnQgY291bnQsIHZvaWQgKmJ1ZnApOwotIGV4dGVybiB2b2lkICAgICB3cml0ZV9jdXIodm9pZCk7Ci0gZXh0ZXJuIHZvaWQJc2V0X2N1cihjb25zdCBzdHJ1Y3QgdHlwICp0eXBlLCB4ZnNfZGFkZHJfdCBibGtudW0sCi0gCQkJaW50IGxlbiwgaW50IHJpbmdfYWRkLCBiYm1hcF90ICpiYm1hcCk7Ci1kaWZmIC0tZ2l0IGEvZGIvbWV0YWR1bXAuYyBiL2RiL21ldGFkdW1wLmMKLWluZGV4IDMxYmI1OTU5Li42N2JkZjE0ZSAxMDA2NDQKLS0tLSBhL2RiL21ldGFkdW1wLmMKLSsrKyBiL2RiL21ldGFkdW1wLmMKLUBAIC0xNzUsNyArMTc1LDcgQEAgd3JpdGVfaW5kZXgodm9pZCkKLSBzdGF0aWMgaW50Ci0gd3JpdGVfYnVmX3NlZ21lbnQoCi0gCWNoYXIJCSpkYXRhLAotLQlfX2ludDY0X3QJb2ZmLAotKwlpbnQ2NF90CQlvZmYsCi0gCWludAkJbGVuKQotIHsKLSAJaW50CQlpOwotQEAgLTEyNTYsNyArMTI1Niw3IEBAIHByb2Nlc3Nfc2ZfZGlyKAotIHsKLSAJc3RydWN0IHhmc19kaXIyX3NmX2hkcgkqc2ZwOwotIAl4ZnNfZGlyMl9zZl9lbnRyeV90CSpzZmVwOwotLQlfX3VpbnQ2NF90CQlpbm9fZGlyX3NpemU7Ci0rCXVpbnQ2NF90CQlpbm9fZGlyX3NpemU7Ci0gCWludAkJCWk7Ci0gCi0gCXNmcCA9IChzdHJ1Y3QgeGZzX2RpcjJfc2ZfaGRyICopWEZTX0RGT1JLX0RQVFIoZGlwKTsKLUBAIC0xMzIyLDcgKzEzMjIsNyBAQCBwcm9jZXNzX3NmX2RpcigKLSBzdGF0aWMgdm9pZAotIG9iZnVzY2F0ZV9wYXRoX2NvbXBvbmVudHMoCi0gCWNoYXIJCQkqYnVmLAotLQlfX3VpbnQ2NF90CQlsZW4pCi0rCXVpbnQ2NF90CQlsZW4pCi0gewotIAl1bnNpZ25lZCBjaGFyCQkqY29tcCA9ICh1bnNpZ25lZCBjaGFyICopYnVmOwotIAl1bnNpZ25lZCBjaGFyCQkqZW5kID0gY29tcCArIGxlbjsKLUBAIC0xMzU5LDcgKzEzNTksNyBAQCBzdGF0aWMgdm9pZAotIHByb2Nlc3Nfc2Zfc3ltbGluaygKLSAJeGZzX2Rpbm9kZV90CQkqZGlwKQotIHsKLS0JX191aW50NjRfdAkJbGVuOwotKwl1aW50NjRfdAkJbGVuOwotIAljaGFyCQkJKmJ1ZjsKLSAKLSAJbGVuID0gYmU2NF90b19jcHUoZGlwLT5kaV9zaXplKTsKLUBAIC0xNjMxLDcgKzE2MzEsNyBAQCBwcm9jZXNzX2F0dHJfYmxvY2soCi0gCXhmc19hdHRyX2xlYWZfZW50cnlfdCAJCSplbnRyeTsKLSAJeGZzX2F0dHJfbGVhZl9uYW1lX2xvY2FsX3QgCSpsb2NhbDsKLSAJeGZzX2F0dHJfbGVhZl9uYW1lX3JlbW90ZV90IAkqcmVtb3RlOwotLQlfX3VpbnQzMl90CQkJYnMgPSBtcC0+bV9zYi5zYl9ibG9ja3NpemU7Ci0rCXVpbnQzMl90CQkJYnMgPSBtcC0+bV9zYi5zYl9ibG9ja3NpemU7Ci0gCWNoYXIJCQkJKmZpcnN0X25hbWU7Ci0gCi0gCi1AQCAtMjI3MCw3ICsyMjcwLDcgQEAgZG9uZToKLSAJcmV0dXJuIHN1Y2Nlc3M7Ci0gfQotIAotLXN0YXRpYyBfX3VpbnQzMl90CWlub2Rlc19jb3BpZWQgPSAwOwotK3N0YXRpYyB1aW50MzJfdAlpbm9kZXNfY29waWVkOwotIAotIHN0YXRpYyBpbnQKLSBjb3B5X2lub2RlX2NodW5rKAotZGlmZiAtLWdpdCBhL2RiL3NiLmMgYi9kYi9zYi5jCi1pbmRleCA4ZTc3MjJjZC4uZjE5MjQ4ZDcgMTAwNjQ0Ci0tLS0gYS9kYi9zYi5jCi0rKysgYi9kYi9zYi5jCi1AQCAtNjA2LDcgKzYwNiw3IEBAIHZlcnNpb25faGVscCh2b2lkKQotIH0KLSAKLSBzdGF0aWMgaW50Ci0tZG9fdmVyc2lvbih4ZnNfYWdudW1iZXJfdCBhZ25vLCBfX3VpbnQxNl90IHZlcnNpb24sIF9fdWludDMyX3QgZmVhdHVyZXMpCi0rZG9fdmVyc2lvbih4ZnNfYWdudW1iZXJfdCBhZ25vLCB1aW50MTZfdCB2ZXJzaW9uLCB1aW50MzJfdCBmZWF0dXJlcykKLSB7Ci0gCXhmc19zYl90CXRzYjsKLSAKLUBAIC03MTAsOCArNzEwLDggQEAgdmVyc2lvbl9mKAotIAlpbnQJCWFyZ2MsCi0gCWNoYXIJCSoqYXJndikKLSB7Ci0tCV9fdWludDE2X3QJdmVyc2lvbiA9IDA7Ci0tCV9fdWludDMyX3QJZmVhdHVyZXMgPSAwOwotKwl1aW50MTZfdAl2ZXJzaW9uID0gMDsKLSsJdWludDMyX3QJZmVhdHVyZXMgPSAwOwotIAl4ZnNfYWdudW1iZXJfdAlhZzsKLSAKLSAJaWYgKGFyZ2MgPT0gMikgewkvKiBXUklURSBWRVJTSU9OICovCi1kaWZmIC0tZ2l0IGEvZnNyL3hmc19mc3IuYyBiL2Zzci94ZnNfZnNyLmMKLWluZGV4IDUxN2I3NWYwLi5kNDg0NmEzMiAxMDA2NDQKLS0tLSBhL2Zzci94ZnNfZnNyLmMKLSsrKyBiL2Zzci94ZnNfZnNyLmMKLUBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBnZXRibWFwICAqb3V0bWFwID0gTlVMTDsKLSBpbnQgICAgICAgICAgICAgb3V0bWFwX3NpemUgPSAwOwotIGludAkJUmVhbFVpZDsKLSBpbnQJCXRtcF9hZ2k7Ci0tc3RhdGljIF9faW50NjRfdAltaW5pbXVtZnJlZSA9IDIwNDg7Ci0rc3RhdGljIGludDY0X3QJCW1pbmltdW1mcmVlID0gMjA0ODsKLSAKLSAjZGVmaW5lIE1OVFRZUEVfWEZTICAgICAgICAgICAgICJ4ZnMiCi0gCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9kYXJ3aW4uaCBiL2luY2x1ZGUvZGFyd2luLmgKLWluZGV4IDdiYmQ1NzY0Li41MTAzMWM0MiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvZGFyd2luLmgKLSsrKyBiL2luY2x1ZGUvZGFyd2luLmgKLUBAIC0xMjUsMTUgKzEyNSwxNSBAQCB0eXBlZGVmIHNpZ25lZCBpbnQJCV9fczMyOwotIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludAlfX3U2NDsKLSB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50CV9fczY0OwotIAotLSNkZWZpbmUgX19pbnQ4X3QJaW50OF90Ci0tI2RlZmluZSBfX2ludDE2X3QJaW50MTZfdAotLSNkZWZpbmUgX19pbnQzMl90CWludDMyX3QKLS0jZGVmaW5lIF9faW50MzJfdAlpbnQzMl90Ci0tI2RlZmluZSBfX2ludDY0X3QJaW50NjRfdAotLSNkZWZpbmUgX191aW50OF90CXVfaW50OF90Ci0tI2RlZmluZSBfX3VpbnQxNl90CXVfaW50MTZfdAotLSNkZWZpbmUgX191aW50MzJfdAl1X2ludDMyX3QKLS0jZGVmaW5lIF9fdWludDY0X3QJdV9pbnQ2NF90Ci0rI2RlZmluZSBpbnQ4X3QJCWludDhfdAotKyNkZWZpbmUgaW50MTZfdAkJaW50MTZfdAotKyNkZWZpbmUgaW50MzJfdAkJaW50MzJfdAotKyNkZWZpbmUgaW50MzJfdAkJaW50MzJfdAotKyNkZWZpbmUgaW50NjRfdAkJaW50NjRfdAotKyNkZWZpbmUgdWludDhfdAkJdV9pbnQ4X3QKLSsjZGVmaW5lIHVpbnQxNl90CXVfaW50MTZfdAotKyNkZWZpbmUgdWludDMyX3QJdV9pbnQzMl90Ci0rI2RlZmluZSB1aW50NjRfdAl1X2ludDY0X3QKLSAKLSB0eXBlZGVmIG9mZl90CQl4ZnNfb2ZmX3Q7Ci0gdHlwZWRlZiB1X2ludDY0X3QJeGZzX2lub190OwotZGlmZiAtLWdpdCBhL2luY2x1ZGUvZnJlZWJzZC5oIGIvaW5jbHVkZS9mcmVlYnNkLmgKLWluZGV4IGZiMzE4Yjg5Li5mNTJlZDBhOSAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvZnJlZWJzZC5oCi0rKysgYi9pbmNsdWRlL2ZyZWVic2QuaAotQEAgLTUwLDkgKzUwLDkgQEAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50CV9fdTY0OwotIHR5cGVkZWYgc2lnbmVkIGxvbmcgbG9uZyBpbnQJX19zNjQ7Ci0gCi0gdHlwZWRlZiBvZmZfdAkJeGZzX29mZl90OwotLXR5cGVkZWYgX191aW50NjRfdAl4ZnNfaW5vX3Q7Ci0tdHlwZWRlZiBfX3VpbnQzMl90CXhmc19kZXZfdDsKLS10eXBlZGVmIF9faW50NjRfdAl4ZnNfZGFkZHJfdDsKLSt0eXBlZGVmIHVpbnQ2NF90CXhmc19pbm9fdDsKLSt0eXBlZGVmIHVpbnQzMl90CXhmc19kZXZfdDsKLSt0eXBlZGVmIGludDY0X3QJCXhmc19kYWRkcl90OwotIHR5cGVkZWYgX191MzIJCXhmc19ubGlua190OwotIAotICNkZWZpbmUJT19MQVJHRUZJTEUJMAotZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ251a2ZyZWVic2QuaCBiL2luY2x1ZGUvZ251a2ZyZWVic2QuaAotaW5kZXggNjkxNmU2NWEuLjFkYjNmNGYwIDEwMDY0NAotLS0tIGEvaW5jbHVkZS9nbnVrZnJlZWJzZC5oCi0rKysgYi9pbmNsdWRlL2dudWtmcmVlYnNkLmgKLUBAIC00Niw5ICs0Niw5IEBAIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludAlfX3U2NDsKLSB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50CV9fczY0OwotIAotIHR5cGVkZWYgb2ZmX3QJCXhmc19vZmZfdDsKLS10eXBlZGVmIF9fdWludDY0X3QJeGZzX2lub190OwotLXR5cGVkZWYgX191aW50MzJfdAl4ZnNfZGV2X3Q7Ci0tdHlwZWRlZiBfX2ludDY0X3QJeGZzX2RhZGRyX3Q7Ci0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfaW5vX3Q7Ci0rdHlwZWRlZiB1aW50MzJfdAl4ZnNfZGV2X3Q7Ci0rdHlwZWRlZiBpbnQ2NF90CQl4ZnNfZGFkZHJfdDsKLSB0eXBlZGVmIF9fdTMyCQl4ZnNfbmxpbmtfdDsKLSAKLSAjZGVmaW5lIEhBVkVfRklECTEKLWRpZmYgLS1naXQgYS9pbmNsdWRlL2xpYnhjbWQuaCBiL2luY2x1ZGUvbGlieGNtZC5oCi1pbmRleCBlOGQyZmZjOC4uNjgwNjM4MGMgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL2xpYnhjbWQuaAotKysrIGIvaW5jbHVkZS9saWJ4Y21kLmgKLUBAIC00MiwxMCArNDIsMTAgQEAgZ2V0X3RvcG9sb2d5KAotIGV4dGVybiB2b2lkCi0gY2FsY19kZWZhdWx0X2FnX2dlb21ldHJ5KAotIAlpbnQJCWJsb2NrbG9nLAotLQlfX3VpbnQ2NF90CWRibG9ja3MsCi0rCXVpbnQ2NF90CWRibG9ja3MsCi0gCWludAkJbXVsdGlkaXNrLAotLQlfX3VpbnQ2NF90CSphZ3NpemUsCi0tCV9fdWludDY0X3QJKmFnY291bnQpOwotKwl1aW50NjRfdAkqYWdzaXplLAotKwl1aW50NjRfdAkqYWdjb3VudCk7Ci0gCi0gZXh0ZXJuIGludAotIGNoZWNrX292ZXJ3cml0ZSgKLWRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4LmggYi9pbmNsdWRlL2xpbnV4LmgKLWluZGV4IDk2MTFhMzdmLi42Y2UzNDRjNSAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvbGludXguaAotKysrIGIvaW5jbHVkZS9saW51eC5oCi1AQCAtMTMyLDcgKzEzMiw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgcGxhdGZvcm1fdXVpZF9jb3B5KHV1aWRfdCAqZHN0LCB1dWlkX3QgKnNyYykKLSBzdGF0aWMgX19pbmxpbmVfXyBpbnQKLSBwbGF0Zm9ybV9kaXNjYXJkX2Jsb2NrcyhpbnQgZmQsIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBsZW4pCi0gewotLQlfX3VpbnQ2NF90IHJhbmdlWzJdID0geyBzdGFydCwgbGVuIH07Ci0rCXVpbnQ2NF90IHJhbmdlWzJdID0geyBzdGFydCwgbGVuIH07Ci0gCi0gCWlmIChpb2N0bChmZCwgQkxLRElTQ0FSRCwgJnJhbmdlKSA8IDApCi0gCQlyZXR1cm4gZXJybm87Ci1AQCAtMTQ0LDkgKzE0NCw5IEBAIHBsYXRmb3JtX2Rpc2NhcmRfYmxvY2tzKGludCBmZCwgdWludDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGxlbikKLSAjZGVmaW5lIEVGU0JBRENSQwlFQkFETVNHCS8qIEJhZCBDUkMgZGV0ZWN0ZWQgKi8KLSAKLSB0eXBlZGVmIG9mZl90CQl4ZnNfb2ZmX3Q7Ci0tdHlwZWRlZiBfX3VpbnQ2NF90CXhmc19pbm9fdDsKLS10eXBlZGVmIF9fdWludDMyX3QJeGZzX2Rldl90OwotLXR5cGVkZWYgX19pbnQ2NF90CXhmc19kYWRkcl90OwotK3R5cGVkZWYgdWludDY0X3QJeGZzX2lub190OwotK3R5cGVkZWYgdWludDMyX3QJeGZzX2Rldl90OwotK3R5cGVkZWYgaW50NjRfdAkJeGZzX2RhZGRyX3Q7Ci0gdHlwZWRlZiBfX3UzMgkJeGZzX25saW5rX3Q7Ci0gCi0gLyoqCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZnNfYXJjaC5oIGIvaW5jbHVkZS94ZnNfYXJjaC5oCi1pbmRleCAxMmNkNDNlNi4uMTg2Y2FkYmEgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3hmc19hcmNoLmgKLSsrKyBiL2luY2x1ZGUveGZzX2FyY2guaAotQEAgLTI0NCwzOSArMjQ0LDM5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBiZTY0X2FkZF9jcHUoX19iZTY0ICphLCBfX3M2NCBiKQotIAkqYSA9IGNwdV90b19iZTY0KGJlNjRfdG9fY3B1KCphKSArIGIpOwotIH0KLSAKLS1zdGF0aWMgaW5saW5lIF9fdWludDE2X3QgZ2V0X3VuYWxpZ25lZF9iZTE2KHZvaWQgKnApCi0rc3RhdGljIGlubGluZSB1aW50MTZfdCBnZXRfdW5hbGlnbmVkX2JlMTYodm9pZCAqcCkKLSB7Ci0tCV9fdWludDhfdCAqX19wID0gcDsKLSsJdWludDhfdCAqX19wID0gcDsKLSAJcmV0dXJuIF9fcFswXSA8PCA4IHwgX19wWzFdOwotIH0KLSAKLS1zdGF0aWMgaW5saW5lIF9fdWludDMyX3QgZ2V0X3VuYWxpZ25lZF9iZTMyKHZvaWQgKnApCi0rc3RhdGljIGlubGluZSB1aW50MzJfdCBnZXRfdW5hbGlnbmVkX2JlMzIodm9pZCAqcCkKLSB7Ci0tCV9fdWludDhfdCAqX19wID0gcDsKLSsJdWludDhfdCAqX19wID0gcDsKLSAgICAgICAgIHJldHVybiBfX3BbMF0gPDwgMjQgfCBfX3BbMV0gPDwgMTYgfCBfX3BbMl0gPDwgOCB8IF9fcFszXTsKLSB9Ci0gCi0tc3RhdGljIGlubGluZSBfX3VpbnQ2NF90IGdldF91bmFsaWduZWRfYmU2NCh2b2lkICpwKQotK3N0YXRpYyBpbmxpbmUgdWludDY0X3QgZ2V0X3VuYWxpZ25lZF9iZTY0KHZvaWQgKnApCi0gewotLQlyZXR1cm4gKF9fdWludDY0X3QpZ2V0X3VuYWxpZ25lZF9iZTMyKHApIDw8IDMyIHwKLSsJcmV0dXJuICh1aW50NjRfdClnZXRfdW5hbGlnbmVkX2JlMzIocCkgPDwgMzIgfAotIAkJCSAgIGdldF91bmFsaWduZWRfYmUzMihwICsgNCk7Ci0gfQotIAotLXN0YXRpYyBpbmxpbmUgdm9pZCBwdXRfdW5hbGlnbmVkX2JlMTYoX191aW50MTZfdCB2YWwsIHZvaWQgKnApCi0rc3RhdGljIGlubGluZSB2b2lkIHB1dF91bmFsaWduZWRfYmUxNih1aW50MTZfdCB2YWwsIHZvaWQgKnApCi0gewotLQlfX3VpbnQ4X3QgKl9fcCA9IHA7Ci0rCXVpbnQ4X3QgKl9fcCA9IHA7Ci0gCSpfX3ArKyA9IHZhbCA+PiA4OwotIAkqX19wKysgPSB2YWw7Ci0gfQotIAotLXN0YXRpYyBpbmxpbmUgdm9pZCBwdXRfdW5hbGlnbmVkX2JlMzIoX191aW50MzJfdCB2YWwsIHZvaWQgKnApCi0rc3RhdGljIGlubGluZSB2b2lkIHB1dF91bmFsaWduZWRfYmUzMih1aW50MzJfdCB2YWwsIHZvaWQgKnApCi0gewotLQlfX3VpbnQ4X3QgKl9fcCA9IHA7Ci0rCXVpbnQ4X3QgKl9fcCA9IHA7Ci0gCXB1dF91bmFsaWduZWRfYmUxNih2YWwgPj4gMTYsIF9fcCk7Ci0gCXB1dF91bmFsaWduZWRfYmUxNih2YWwsIF9fcCArIDIpOwotIH0KLSAKLS1zdGF0aWMgaW5saW5lIHZvaWQgcHV0X3VuYWxpZ25lZF9iZTY0KF9fdWludDY0X3QgdmFsLCB2b2lkICpwKQotK3N0YXRpYyBpbmxpbmUgdm9pZCBwdXRfdW5hbGlnbmVkX2JlNjQodWludDY0X3QgdmFsLCB2b2lkICpwKQotIHsKLSAJcHV0X3VuYWxpZ25lZF9iZTMyKHZhbCA+PiAzMiwgcCk7Ci0gCXB1dF91bmFsaWduZWRfYmUzMih2YWwsIHAgKyA0KTsKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3hmc19pbm9kZS5oIGIvaW5jbHVkZS94ZnNfaW5vZGUuaAotaW5kZXggZmI2YjU0MjkuLjg3NjYwMjRlIDEwMDY0NAotLS0tIGEvaW5jbHVkZS94ZnNfaW5vZGUuaAotKysrIGIvaW5jbHVkZS94ZnNfaW5vZGUuaAotQEAgLTEyMyw4ICsxMjMsOCBAQCB4ZnNfZ2V0X3Byb2ppZChzdHJ1Y3QgeGZzX2ljZGlub2RlICppZCkKLSBzdGF0aWMgaW5saW5lIHZvaWQKLSB4ZnNfc2V0X3Byb2ppZChzdHJ1Y3QgeGZzX2ljZGlub2RlICppZCwgcHJpZF90IHByb2ppZCkKLSB7Ci0tCWlkLT5kaV9wcm9qaWRfaGkgPSAoX191aW50MTZfdCkgKHByb2ppZCA+PiAxNik7Ci0tCWlkLT5kaV9wcm9qaWRfbG8gPSAoX191aW50MTZfdCkgKHByb2ppZCAmIDB4ZmZmZik7Ci0rCWlkLT5kaV9wcm9qaWRfaGkgPSAodWludDE2X3QpIChwcm9qaWQgPj4gMTYpOwotKwlpZC0+ZGlfcHJvamlkX2xvID0gKHVpbnQxNl90KSAocHJvamlkICYgMHhmZmZmKTsKLSB9Ci0gCi0gc3RhdGljIGlubGluZSBib29sIHhmc19pc19yZWZsaW5rX2lub2RlKHN0cnVjdCB4ZnNfaW5vZGUgKmlwKQotZGlmZiAtLWdpdCBhL2luY2x1ZGUveGZzX2xvZ19yZWNvdmVyLmggYi9pbmNsdWRlL3hmc19sb2dfcmVjb3Zlci5oCi1pbmRleCA3NTgyNjc2Yi4uMGQwOTg2MjggMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3hmc19sb2dfcmVjb3Zlci5oCi0rKysgYi9pbmNsdWRlL3hmc19sb2dfcmVjb3Zlci5oCi1AQCAtMjYsNyArMjYsNyBAQAotICNkZWZpbmUgWExPR19SSEFTSF9TSVpFCTE2Ci0gI2RlZmluZSBYTE9HX1JIQVNIX1NISUZUIDIKLSAjZGVmaW5lIFhMT0dfUkhBU0godGlkKQlcCi0tCSgoKChfX3VpbnQzMl90KXRpZCk+PlhMT0dfUkhBU0hfU0hJRlQpICYgKFhMT0dfUkhBU0hfU0laRS0xKSkKLSsJKCgoKHVpbnQzMl90KXRpZCk+PlhMT0dfUkhBU0hfU0hJRlQpICYgKFhMT0dfUkhBU0hfU0laRS0xKSkKLSAKLSAjZGVmaW5lIFhMT0dfTUFYX1JFR0lPTlNfSU5fSVRFTSAgIChYRlNfTUFYX0JMT0NLU0laRSAvIFhGU19CTEZfQ0hVTksgLyAyICsgMSkKLSAKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3hmc19tZXRhZHVtcC5oIGIvaW5jbHVkZS94ZnNfbWV0YWR1bXAuaAotaW5kZXggN2YzMDM5ZWIuLjEzYWZiOGRkIDEwMDY0NAotLS0tIGEvaW5jbHVkZS94ZnNfbWV0YWR1bXAuaAotKysrIGIvaW5jbHVkZS94ZnNfbWV0YWR1bXAuaAotQEAgLTI0LDggKzI0LDggQEAKLSB0eXBlZGVmIHN0cnVjdCB4ZnNfbWV0YWJsb2NrIHsKLSAJX19iZTMyCQltYl9tYWdpYzsKLSAJX19iZTE2CQltYl9jb3VudDsKLS0JX191aW50OF90CW1iX2Jsb2NrbG9nOwotLQlfX3VpbnQ4X3QJbWJfaW5mbzsKLSsJdWludDhfdAkJbWJfYmxvY2tsb2c7Ci0rCXVpbnQ4X3QJCW1iX2luZm87Ci0gCS8qIGZvbGxvd2VkIGJ5IGFuIGFycmF5IG9mIHhmc19kYWRkcl90ICovCi0gfSB4ZnNfbWV0YWJsb2NrX3Q7Ci0gCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZnNfbW91bnQuaCBiL2luY2x1ZGUveGZzX21vdW50LmgKLWluZGV4IDVmZjI0ZWJmLi41YjMyM2JiMSAxMDA2NDQKLS0tLSBhL2luY2x1ZGUveGZzX21vdW50LmgKLSsrKyBiL2luY2x1ZGUveGZzX21vdW50LmgKLUBAIC00OCwxMiArNDgsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX21vdW50IHsKLSAjZGVmaW5lIG1fZGV2CQltX2RkZXZfdGFyZ3AKLSAjZGVmaW5lIG1fbG9nZGV2CW1fbG9nZGV2X3RhcmdwCi0gI2RlZmluZSBtX3J0ZGV2CQltX3J0ZGV2X3RhcmdwCi0tCV9fdWludDhfdAkJbV9kaXJjb29rX2Vsb2c7CS8qIGxvZyBkLWNvb2tpZSBlbnRyeSBiaXRzICovCi0tCV9fdWludDhfdAkJbV9ibGtiaXRfbG9nOwkvKiBibG9ja2xvZyArIE5CQlkgKi8KLS0JX191aW50OF90CQltX2Jsa2JiX2xvZzsJLyogYmxvY2tsb2cgLSBCQlNISUZUICovCi0tCV9fdWludDhfdAkJbV9zZWN0YmJfbG9nOwkvKiBzZWN0b3Jsb2cgLSBCQlNISUZUICovCi0tCV9fdWludDhfdAkJbV9hZ25vX2xvZzsJLyogbG9nICNhZydzICovCi0tCV9fdWludDhfdAkJbV9hZ2lub19sb2c7CS8qICNiaXRzIGZvciBhZ2lubyBpbiBpbnVtICovCi0rCXVpbnQ4X3QJCQltX2RpcmNvb2tfZWxvZzsJLyogbG9nIGQtY29va2llIGVudHJ5IGJpdHMgKi8KLSsJdWludDhfdAkJCW1fYmxrYml0X2xvZzsJLyogYmxvY2tsb2cgKyBOQkJZICovCi0rCXVpbnQ4X3QJCQltX2Jsa2JiX2xvZzsJLyogYmxvY2tsb2cgLSBCQlNISUZUICovCi0rCXVpbnQ4X3QJCQltX3NlY3RiYl9sb2c7CS8qIHNlY3RvcmxvZyAtIEJCU0hJRlQgKi8KLSsJdWludDhfdAkJCW1fYWdub19sb2c7CS8qIGxvZyAjYWcncyAqLwotKwl1aW50OF90CQkJbV9hZ2lub19sb2c7CS8qICNiaXRzIGZvciBhZ2lubyBpbiBpbnVtICovCi0gCXVpbnQJCQltX2lub2RlX2NsdXN0ZXJfc2l6ZTsvKiBtaW4gaW5vZGUgYnVmIHNpemUgKi8KLSAJdWludAkJCW1fYmxvY2ttYXNrOwkvKiBzYl9ibG9ja3NpemUtMSAqLwotIAl1aW50CQkJbV9ibG9ja3dzaXplOwkvKiBzYl9ibG9ja3NpemUgaW4gd29yZHMgKi8KLUBAIC04OCw3ICs4OCw3IEBAIHR5cGVkZWYgc3RydWN0IHhmc19tb3VudCB7Ci0gCWludAkJCW1fbGl0aW5vOwkvKiBzaXplIG9mIGlub2RlIHVuaW9uIGFyZWEgKi8KLSAJaW50CQkJbV9pbm9hbGlnbl9tYXNrOy8qIG1hc2sgc2JfaW5vYWxpZ25tdCBpZiB1c2VkICovCi0gCXN0cnVjdCB4ZnNfdHJhbnNfcmVzdgltX3Jlc3Y7CQkvKiBwcmVjb21wdXRlZCByZXMgdmFsdWVzICovCi0tCV9fdWludDY0X3QJCW1fbWF4aWNvdW50OwkvKiBtYXhpbXVtIGlub2RlIGNvdW50ICovCi0rCXVpbnQ2NF90CQltX21heGljb3VudDsJLyogbWF4aW11bSBpbm9kZSBjb3VudCAqLwotIAlpbnQJCQltX2RhbGlnbjsJLyogc3RyaXBlIHVuaXQgKi8KLSAJaW50CQkJbV9zd2lkdGg7CS8qIHN0cmlwZSB3aWR0aCAqLwotIAlpbnQJCQltX3Npbm9hbGlnbjsJLyogc3RyaXBlIHVuaXQgaW5vZGUgYWxpZ25tbnQgKi8KLUBAIC0xNDQsMTIgKzE0NCwxMiBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfcGVyYWcgewotIAljaGFyCQlwYWdpX2luaXQ7CS8qIHRoaXMgYWdpJ3MgZW50cnkgaXMgaW5pdGlhbGl6ZWQgKi8KLSAJY2hhcgkJcGFnZl9tZXRhZGF0YTsJLyogdGhlIGFnZiBpcyBwcmVmZXJyZWQgdG8gYmUgbWV0YWRhdGEgKi8KLSAJY2hhcgkJcGFnaV9pbm9kZW9rOwkvKiBUaGUgYWdpIGlzIG9rIGZvciBpbm9kZXMgKi8KLS0JX191aW50OF90CXBhZ2ZfbGV2ZWxzW1hGU19CVE5VTV9BR0ZdOwotKwl1aW50OF90CQlwYWdmX2xldmVsc1tYRlNfQlROVU1fQUdGXTsKLSAJCQkJCS8qICMgb2YgbGV2ZWxzIGluIGJubyAmIGNudCBidHJlZSAqLwotLQlfX3VpbnQzMl90CXBhZ2ZfZmxjb3VudDsJLyogY291bnQgb2YgYmxvY2tzIGluIGZyZWVsaXN0ICovCi0rCXVpbnQzMl90CXBhZ2ZfZmxjb3VudDsJLyogY291bnQgb2YgYmxvY2tzIGluIGZyZWVsaXN0ICovCi0gCXhmc19leHRsZW5fdAlwYWdmX2ZyZWVibGtzOwkvKiB0b3RhbCBmcmVlIGJsb2NrcyAqLwotIAl4ZnNfZXh0bGVuX3QJcGFnZl9sb25nZXN0OwkvKiBsb25nZXN0IGZyZWUgc3BhY2UgKi8KLS0JX191aW50MzJfdAlwYWdmX2J0cmVlYmxrczsJLyogIyBvZiBibG9ja3MgaGVsZCBpbiBBR0YgYnRyZWVzICovCi0rCXVpbnQzMl90CXBhZ2ZfYnRyZWVibGtzOwkvKiAjIG9mIGJsb2NrcyBoZWxkIGluIEFHRiBidHJlZXMgKi8KLSAJeGZzX2FnaW5vX3QJcGFnaV9mcmVlY291bnQ7CS8qIG51bWJlciBvZiBmcmVlIGlub2RlcyAqLwotIAl4ZnNfYWdpbm9fdAlwYWdpX2NvdW50OwkvKiBudW1iZXIgb2YgYWxsb2NhdGVkIGlub2RlcyAqLwotIAotQEAgLTE2OSw3ICsxNjksNyBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfcGVyYWcgewotIAlzdHJ1Y3QgeGZzX2FnX3Jlc3YJcGFnX2FnZmxfcmVzdjsKLSAKLSAJLyogcmVmZXJlbmNlIGNvdW50ICovCi0tCV9fdWludDhfdAlwYWdmX3JlZmNvdW50X2xldmVsOwotKwl1aW50OF90CQlwYWdmX3JlZmNvdW50X2xldmVsOwotIH0geGZzX3BlcmFnX3Q7Ci0gCi0gc3RhdGljIGlubGluZSBzdHJ1Y3QgeGZzX2FnX3Jlc3YgKgotZGlmZiAtLWdpdCBhL2xpYmhhbmRsZS9oYW5kbGUuYyBiL2xpYmhhbmRsZS9oYW5kbGUuYwotaW5kZXggMjM2ZWQyMmEuLjAwMTI3YjNjIDEwMDY0NAotLS0tIGEvbGliaGFuZGxlL2hhbmRsZS5jCi0rKysgYi9saWJoYW5kbGUvaGFuZGxlLmMKLUBAIC0yMzIsNyArMjMyLDcgQEAgb2JqX3RvX2hhbmRsZSgKLSB7Ci0gCWNoYXIJCWhidWYgW01BWEhBTlNJWl07Ci0gCWludAkJcmV0OwotLQlfX3VpbnQzMl90CWhhbmRsZW47Ci0rCXVpbnQzMl90CWhhbmRsZW47Ci0gCXhmc19mc29wX2hhbmRsZXJlcV90IGhyZXE7Ci0gCi0gCWlmIChvcGNvZGUgPT0gWEZTX0lPQ19GRF9UT19IQU5ETEUpIHsKLWRpZmYgLS1naXQgYS9saWJoYW5kbGUvamRtLmMgYi9saWJoYW5kbGUvamRtLmMKLWluZGV4IGU1MmY1ZDgzLi44MjEwNjFiNCAxMDA2NDQKLS0tLSBhL2xpYmhhbmRsZS9qZG0uYwotKysrIGIvbGliaGFuZGxlL2pkbS5jCi1AQCAtMzYsNyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBmaWxlaGFuZGxlIHsKLSAJZnNoYW5kbGVfdCBmaF9mc2hhbmRsZTsJCS8qIGhhbmRsZSBvZiBmcyBjb250YWluaW5nIHRoaXMgaW5vZGUgKi8KLSAJaW50MTZfdCBmaF9zel9mb2xsb3dpbmc7CS8qIGJ5dGVzIGluIGhhbmRsZSBhZnRlciB0aGlzIG1lbWJlciAqLwotIAljaGFyIGZoX3BhZFtGSUxFSEFORExFX1NaX1BBRF07CS8qIHBhZGRpbmcsIG11c3QgYmUgemVyb2VkICovCi0tCV9fdWludDMyX3QgZmhfZ2VuOwkJLyogZ2VuZXJhdGlvbiBjb3VudCAqLwotKwl1aW50MzJfdCBmaF9nZW47CQkvKiBnZW5lcmF0aW9uIGNvdW50ICovCi0gCXhmc19pbm9fdCBmaF9pbm87CQkvKiA2NCBiaXQgaW5vICovCi0gfSBmaWxlaGFuZGxlX3Q7Ci0gCi1kaWZmIC0tZ2l0IGEvbGlieGNtZC90b3BvbG9neS5jIGIvbGlieGNtZC90b3BvbG9neS5jCi1pbmRleCA4YjAyNzZhNy4uZjY2ZGQxYmMgMTAwNjQ0Ci0tLS0gYS9saWJ4Y21kL3RvcG9sb2d5LmMKLSsrKyBiL2xpYnhjbWQvdG9wb2xvZ3kuYwotQEAgLTIzLDE5ICsyMywxOSBAQAotICNlbmRpZiAvKiBFTkFCTEVfQkxLSUQgKi8KLSAjaW5jbHVkZSAieGZzX211bHRpZGlzay5oIgotIAotLSNkZWZpbmUgVEVSQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoNDAgLSAoYmxvZykpKQotLSNkZWZpbmUgR0lHQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoMzAgLSAoYmxvZykpKQotLSNkZWZpbmUgTUVHQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoMjAgLSAoYmxvZykpKQotKyNkZWZpbmUgVEVSQUJZVEVTKGNvdW50LCBibG9nKQkoKHVpbnQ2NF90KShjb3VudCkgPDwgKDQwIC0gKGJsb2cpKSkKLSsjZGVmaW5lIEdJR0FCWVRFUyhjb3VudCwgYmxvZykJKCh1aW50NjRfdCkoY291bnQpIDw8ICgzMCAtIChibG9nKSkpCi0rI2RlZmluZSBNRUdBQllURVMoY291bnQsIGJsb2cpCSgodWludDY0X3QpKGNvdW50KSA8PCAoMjAgLSAoYmxvZykpKQotIAotIHZvaWQKLSBjYWxjX2RlZmF1bHRfYWdfZ2VvbWV0cnkoCi0gCWludAkJYmxvY2tsb2csCi0tCV9fdWludDY0X3QJZGJsb2NrcywKLSsJdWludDY0X3QJZGJsb2NrcywKLSAJaW50CQltdWx0aWRpc2ssCi0tCV9fdWludDY0X3QJKmFnc2l6ZSwKLS0JX191aW50NjRfdAkqYWdjb3VudCkKLSsJdWludDY0X3QJKmFnc2l6ZSwKLSsJdWludDY0X3QJKmFnY291bnQpCi0gewotLQlfX3VpbnQ2NF90CWJsb2NrcyA9IDA7Ci0rCXVpbnQ2NF90CWJsb2NrcyA9IDA7Ci0gCWludAkJc2hpZnQgPSAwOwotIAotIAkvKgotZGlmZiAtLWdpdCBhL2xpYnhmcy9kYXJ3aW4uYyBiL2xpYnhmcy9kYXJ3aW4uYwotaW5kZXggNzQ1MDdlODEuLjE2ZDJjMzVjIDEwMDY0NAotLS0tIGEvbGlieGZzL2Rhcndpbi5jCi0rKysgYi9saWJ4ZnMvZGFyd2luLmMKLUBAIC02OCw3ICs2OCw3IEBAIHBsYXRmb3JtX2ZsdXNoX2RldmljZShpbnQgZmQsIGRldl90IGRldmljZSkKLSB2b2lkCi0gcGxhdGZvcm1fZmluZHNpemVzKGNoYXIgKnBhdGgsIGludCBmZCwgbG9uZyBsb25nICpzeiwgaW50ICpic3opCi0gewotLQlfX3VpbnQ2NF90CXNpemU7Ci0rCXVpbnQ2NF90CXNpemU7Ci0gCXN0cnVjdCBzdGF0CXN0OwotIAotIAlpZiAoZnN0YXQoZmQsICZzdCkgPCAwKSB7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL2ZyZWVic2QuYyBiL2xpYnhmcy9mcmVlYnNkLmMKLWluZGV4IDQ2NjdkMWY1Li5kN2JjYTE0MiAxMDA2NDQKLS0tLSBhL2xpYnhmcy9mcmVlYnNkLmMKLSsrKyBiL2xpYnhmcy9mcmVlYnNkLmMKLUBAIC0xMDksNyArMTA5LDcgQEAgdm9pZAotIHBsYXRmb3JtX2ZpbmRzaXplcyhjaGFyICpwYXRoLCBpbnQgZmQsIGxvbmcgbG9uZyAqc3osIGludCAqYnN6KQotIHsKLSAJc3RydWN0IHN0YXQJc3Q7Ci0tCV9faW50NjRfdAlzaXplOwotKwlpbnQ2NF90CQlzaXplOwotIAl1X2ludAkJc3NpemU7Ci0gCi0gCWlmIChmc3RhdChmZCwgJnN0KSA8IDApIHsKLWRpZmYgLS1naXQgYS9saWJ4ZnMvaW5pdC5jIGIvbGlieGZzL2luaXQuYwotaW5kZXggZmMxNGM1ZTQuLjBmNDFhODUzIDEwMDY0NAotLS0tIGEvbGlieGZzL2luaXQuYwotKysrIGIvbGlieGZzL2luaXQuYwotQEAgLTU0Niw3ICs1NDYsNyBAQCBsaWJ4ZnNfaW5pdGlhbGl6ZV9wZXJhZygKLSAJCSAqIHRoZSBtYXggaW5vZGUgcGVyY2VudGFnZS4KLSAJCSAqLwotIAkJaWYgKG1wLT5tX21heGljb3VudCkgewotLQkJCV9fdWludDY0X3QJaWNvdW50OwotKwkJCXVpbnQ2NF90CWljb3VudDsKLSAKLSAJCQlpY291bnQgPSBzYnAtPnNiX2RibG9ja3MgKiBzYnAtPnNiX2ltYXhfcGN0OwotIAkJCWRvX2RpdihpY291bnQsIDEwMCk7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL2lyaXguYyBiL2xpYnhmcy9pcml4LmMKLWluZGV4IDMyZmNiM2U1Li4wZjE0YWVjNyAxMDA2NDQKLS0tLSBhL2xpYnhmcy9pcml4LmMKLSsrKyBiL2xpYnhmcy9pcml4LmMKLUBAIC0yMiw3ICsyMiw3IEBACi0gCi0gaW50IHBsYXRmb3JtX2hhc191dWlkID0gMDsKLSBleHRlcm4gY2hhciAqcHJvZ25hbWU7Ci0tZXh0ZXJuIF9faW50NjRfdCBmaW5kc2l6ZShjaGFyICopOwotK2V4dGVybiBpbnQ2NF90IGZpbmRzaXplKGNoYXIgKik7Ci0gCi0gaW50Ci0gcGxhdGZvcm1fY2hlY2tfaXNtb3VudGVkKGNoYXIgKm5hbWUsIGNoYXIgKmJsb2NrLCBzdHJ1Y3Qgc3RhdCAqcywgaW50IHZlcmJvc2UpCi1kaWZmIC0tZ2l0IGEvbGlieGZzL2xpYnhmc19wcml2LmggYi9saWJ4ZnMvbGlieGZzX3ByaXYuaAotaW5kZXggYjRmNzY2ZGIuLmQ1MjViNjY3IDEwMDY0NAotLS0tIGEvbGlieGZzL2xpYnhmc19wcml2LmgKLSsrKyBiL2xpYnhmcy9saWJ4ZnNfcHJpdi5oCi1AQCAtMjk2LDggKzI5Niw4IEBAIHJvdW5kdXBfcG93X29mX3R3byh1aW50IHYpCi0gCXJldHVybiAwOwotIH0KLSAKLS1zdGF0aWMgaW5saW5lIF9fdWludDY0X3QKLS1yb3VuZHVwXzY0KF9fdWludDY0X3QgeCwgX191aW50MzJfdCB5KQotK3N0YXRpYyBpbmxpbmUgdWludDY0X3QKLStyb3VuZHVwXzY0KHVpbnQ2NF90IHgsIHVpbnQzMl90IHkpCi0gewotIAl4ICs9IHkgLSAxOwotIAlkb19kaXYoeCwgeSk7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL2xpbnV4LmMgYi9saWJ4ZnMvbGludXguYwotaW5kZXggNjlmMDRhZDkuLjBiYWNlM2ViIDEwMDY0NAotLS0tIGEvbGlieGZzL2xpbnV4LmMKLSsrKyBiL2xpYnhmcy9saW51eC5jCi1AQCAtMTYzLDcgKzE2Myw3IEBAIHZvaWQKLSBwbGF0Zm9ybV9maW5kc2l6ZXMoY2hhciAqcGF0aCwgaW50IGZkLCBsb25nIGxvbmcgKnN6LCBpbnQgKmJzeikKLSB7Ci0gCXN0cnVjdCBzdGF0CXN0OwotLQlfX3VpbnQ2NF90CXNpemU7Ci0rCXVpbnQ2NF90CXNpemU7Ci0gCWludAkJZXJyb3I7Ci0gCi0gCWlmIChmc3RhdChmZCwgJnN0KSA8IDApIHsKLWRpZmYgLS1naXQgYS9saWJ4ZnMvbG9naXRlbS5jIGIvbGlieGZzL2xvZ2l0ZW0uYwotaW5kZXggN2U5M2Y2MDkuLjQ2NmI0NDIxIDEwMDY0NAotLS0tIGEvbGlieGZzL2xvZ2l0ZW0uYwotKysrIGIvbGlieGZzL2xvZ2l0ZW0uYwotQEAgLTEyMSw3ICsxMjEsNyBAQCB4ZnNfYnVmX2l0ZW1faW5pdCgKLSAJYmlwLT5ibGlfaXRlbS5saV9tb3VudHAgPSBtcDsKLSAJYmlwLT5ibGlfYnVmID0gYnA7Ci0gCWJpcC0+YmxpX2Zvcm1hdC5ibGZfdHlwZSA9IFhGU19MSV9CVUY7Ci0tCWJpcC0+YmxpX2Zvcm1hdC5ibGZfYmxrbm8gPSAoX19pbnQ2NF90KVhGU19CVUZfQUREUihicCk7Ci0rCWJpcC0+YmxpX2Zvcm1hdC5ibGZfYmxrbm8gPSAoaW50NjRfdClYRlNfQlVGX0FERFIoYnApOwotIAliaXAtPmJsaV9mb3JtYXQuYmxmX2xlbiA9ICh1bnNpZ25lZCBzaG9ydClCVE9CQihYRlNfQlVGX0NPVU5UKGJwKSk7Ci0gCVhGU19CVUZfU0VUX0ZTUFJJVkFURShicCwgYmlwKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3JhZGl4LXRyZWUuYyBiL2xpYnhmcy9yYWRpeC10cmVlLmMKLWluZGV4IGVlZjljMzZkLi4zZjAyNTdmZSAxMDA2NDQKLS0tLSBhL2xpYnhmcy9yYWRpeC10cmVlLmMKLSsrKyBiL2xpYnhmcy9yYWRpeC10cmVlLmMKLUBAIC02NiwyMSArNjYsMjEgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaGVpZ2h0X3RvX21heGluZGV4W1JBRElYX1RSRUVfTUFYX1BBVEhdOwotIHN0YXRpYyBpbmxpbmUgdm9pZCB0YWdfc2V0KHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsIHVuc2lnbmVkIGludCB0YWcsCi0gCQlpbnQgb2Zmc2V0KQotIHsKLS0JKigoX191aW50MzJfdCAqKW5vZGUtPnRhZ3NbdGFnXSArIChvZmZzZXQgPj4gNSkpIHw9ICgxIDw8IChvZmZzZXQgJiAzMSkpOwotKwkqKCh1aW50MzJfdCAqKW5vZGUtPnRhZ3NbdGFnXSArIChvZmZzZXQgPj4gNSkpIHw9ICgxIDw8IChvZmZzZXQgJiAzMSkpOwotIH0KLSAKLSBzdGF0aWMgaW5saW5lIHZvaWQgdGFnX2NsZWFyKHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsIHVuc2lnbmVkIGludCB0YWcsCi0gCQlpbnQgb2Zmc2V0KQotIHsKLS0JX191aW50MzJfdCAJKnAgPSAoX191aW50MzJfdCopbm9kZS0+dGFnc1t0YWddICsgKG9mZnNldCA+PiA1KTsKLS0JX191aW50MzJfdCAJbSA9IDEgPDwgKG9mZnNldCAmIDMxKTsKLSsJdWludDMyX3QgCSpwID0gKHVpbnQzMl90Kilub2RlLT50YWdzW3RhZ10gKyAob2Zmc2V0ID4+IDUpOwotKwl1aW50MzJfdCAJbSA9IDEgPDwgKG9mZnNldCAmIDMxKTsKLSAJKnAgJj0gfm07Ci0gfQotIAotIHN0YXRpYyBpbmxpbmUgaW50IHRhZ19nZXQoc3RydWN0IHJhZGl4X3RyZWVfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IHRhZywKLSAJCWludCBvZmZzZXQpCi0gewotLQlyZXR1cm4gMSAmICgoKGNvbnN0IF9fdWludDMyX3QgKilub2RlLT50YWdzW3RhZ10pW29mZnNldCA+PiA1XSA+PiAob2Zmc2V0ICYgMzEpKTsKLSsJcmV0dXJuIDEgJiAoKChjb25zdCB1aW50MzJfdCAqKW5vZGUtPnRhZ3NbdGFnXSlbb2Zmc2V0ID4+IDVdID4+IChvZmZzZXQgJiAzMSkpOwotIH0KLSAKLSAvKgotZGlmZiAtLWdpdCBhL2xpYnhmcy9yZHdyLmMgYi9saWJ4ZnMvcmR3ci5jCi1pbmRleCAyMWM0MmYxNC4uNDc0ZTVlYmMgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMvcmR3ci5jCi0rKysgYi9saWJ4ZnMvcmR3ci5jCi1AQCAtMTE4LDkgKzExOCw5IEBAIHN0YXRpYyB2b2lkIHVubW91bnRfcmVjb3JkKHZvaWQgKnApCi0gCXhsb2dfb3BfaGVhZGVyX3QJKm9wID0gKHhsb2dfb3BfaGVhZGVyX3QgKilwOwotIAkvKiB0aGUgZGF0YSBzZWN0aW9uIG11c3QgYmUgMzIgYml0IHNpemUgYWxpZ25lZCAqLwotIAlzdHJ1Y3QgewotLQkgICAgX191aW50MTZfdCBtYWdpYzsKLS0JICAgIF9fdWludDE2X3QgcGFkMTsKLS0JICAgIF9fdWludDMyX3QgcGFkMjsgLyogbWF5IGFzIHdlbGwgbWFrZSBpdCA2NCBiaXRzICovCi0rCSAgICB1aW50MTZfdCBtYWdpYzsKLSsJICAgIHVpbnQxNl90IHBhZDE7Ci0rCSAgICB1aW50MzJfdCBwYWQyOyAvKiBtYXkgYXMgd2VsbCBtYWtlIGl0IDY0IGJpdHMgKi8KLSAJfSBtYWdpYyA9IHsgWExPR19VTk1PVU5UX1RZUEUsIDAsIDAgfTsKLSAKLSAJbWVtc2V0KHAsIDAsIEJCU0laRSk7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3V0aWwuYyBiL2xpYnhmcy91dGlsLmMKLWluZGV4IGRjZmNhMzk3Li43OTM4ZTMxNyAxMDA2NDQKLS0tLSBhL2xpYnhmcy91dGlsLmMKLSsrKyBiL2xpYnhmcy91dGlsLmMKLUBAIC0xNzAsOCArMTcwLDggQEAgbGlieGZzX3RyYW5zX2ljaGd0aW1lKAotIAlpZiAoZmxhZ3MgJiBYRlNfSUNIR1RJTUVfQ0hHKQotIAkJVkZTX0koaXApLT5pX2N0aW1lID0gdHY7Ci0gCWlmIChmbGFncyAmIFhGU19JQ0hHVElNRV9DUkVBVEUpIHsKLS0JCWlwLT5pX2QuZGlfY3J0aW1lLnRfc2VjID0gKF9faW50MzJfdCl0di50dl9zZWM7Ci0tCQlpcC0+aV9kLmRpX2NydGltZS50X25zZWMgPSAoX19pbnQzMl90KXR2LnR2X25zZWM7Ci0rCQlpcC0+aV9kLmRpX2NydGltZS50X3NlYyA9IChpbnQzMl90KXR2LnR2X3NlYzsKLSsJCWlwLT5pX2QuZGlfY3J0aW1lLnRfbnNlYyA9IChpbnQzMl90KXR2LnR2X25zZWM7Ci0gCX0KLSB9Ci0gCi1AQCAtMjYxLDggKzI2MSw4IEBAIGxpYnhmc19pYWxsb2MoCi0gCQlBU1NFUlQodXVpZF9lcXVhbCgmaXAtPmlfZC5kaV91dWlkLCAmbXAtPm1fc2Iuc2JfbWV0YV91dWlkKSk7Ci0gCQlWRlNfSShpcCktPmlfdmVyc2lvbiA9IDE7Ci0gCQlpcC0+aV9kLmRpX2ZsYWdzMiA9IDA7Ci0tCQlpcC0+aV9kLmRpX2NydGltZS50X3NlYyA9IChfX2ludDMyX3QpVkZTX0koaXApLT5pX210aW1lLnR2X3NlYzsKLS0JCWlwLT5pX2QuZGlfY3J0aW1lLnRfbnNlYyA9IChfX2ludDMyX3QpVkZTX0koaXApLT5pX210aW1lLnR2X25zZWM7Ci0rCQlpcC0+aV9kLmRpX2NydGltZS50X3NlYyA9IChpbnQzMl90KVZGU19JKGlwKS0+aV9tdGltZS50dl9zZWM7Ci0rCQlpcC0+aV9kLmRpX2NydGltZS50X25zZWMgPSAoaW50MzJfdClWRlNfSShpcCktPmlfbXRpbWUudHZfbnNlYzsKLSAJfQotIAotIAlmbGFncyA9IFhGU19JTE9HX0NPUkU7Ci1kaWZmIC0tZ2l0IGEvbG9ncHJpbnQvbG9nX21pc2MuYyBiL2xvZ3ByaW50L2xvZ19taXNjLmMKLWluZGV4IDBkZmNmZDE5Li4yZmQwMWNlYiAxMDA2NDQKLS0tLSBhL2xvZ3ByaW50L2xvZ19taXNjLmMKLSsrKyBiL2xvZ3ByaW50L2xvZ19taXNjLmMKLUBAIC0xNjYsMTIgKzE2NiwxMiBAQCB4bG9nX3ByaW50X3RyYW5zX2hlYWRlcihjaGFyICoqcHRyLCBpbnQgbGVuKQotIHsKLSAgICAgeGZzX3RyYW5zX2hlYWRlcl90ICAqaDsKLSAgICAgY2hhcgkJKmNwdHIgPSAqcHRyOwotLSAgICBfX3VpbnQzMl90ICAgICAgICAgIG1hZ2ljOwotKyAgICB1aW50MzJfdCAgICAgICAgICBtYWdpYzsKLSAgICAgY2hhciAgICAgICAgICAgICAgICAqbWFnaWNfYyA9IChjaGFyICopJm1hZ2ljOwotIAotICAgICAqcHRyICs9IGxlbjsKLSAKLS0gICAgbWFnaWM9KihfX3VpbnQzMl90KiljcHRyOyAvKiBYWFggYmUzMl90b19jcHUgc29vbiAqLwotKyAgICBtYWdpYyA9ICoodWludDMyX3QgKiljcHRyOyAvKiBYWFggYmUzMl90b19jcHUgc29vbiAqLwotIAotICAgICBpZiAobGVuID49IDQpIHsKLSAjaWYgX19CWVRFX09SREVSID09IF9fTElUVExFX0VORElBTgotQEAgLTIwMSw3ICsyMDEsNyBAQCB4bG9nX3ByaW50X3RyYW5zX2J1ZmZlcihjaGFyICoqcHRyLCBpbnQgbGVuLCBpbnQgKmksIGludCBudW1fb3BzKQotICAgICBpbnQJCQkgbnVtLCBza2lwOwotICAgICBpbnQJCQkgc3VwZXJfYmxvY2sgPSAwOwotICAgICBpbnQJCQkgYnVja2V0LCBjb2wsIGJ1Y2tldHM7Ci0tICAgIF9faW50NjRfdAkJIGJsa25vOwotKyAgICBpbnQ2NF90CQkJIGJsa25vOwotICAgICB4ZnNfYnVmX2xvZ19mb3JtYXRfdCBsYnVmOwotICAgICBpbnQJCQkgc2l6ZSwgYmxlbiwgbWFwX3NpemUsIHN0cnVjdF9zaXplOwotICAgICBfX2JlNjQJCSB4LCB5OwotZGlmZiAtLWdpdCBhL21kcmVzdG9yZS94ZnNfbWRyZXN0b3JlLmMgYi9tZHJlc3RvcmUveGZzX21kcmVzdG9yZS5jCi1pbmRleCA5ZDFiNGU4MC4uYzQ5YzEzYWEgMTAwNjQ0Ci0tLS0gYS9tZHJlc3RvcmUveGZzX21kcmVzdG9yZS5jCi0rKysgYi9tZHJlc3RvcmUveGZzX21kcmVzdG9yZS5jCi1AQCAtNjYsNyArNjYsNyBAQCBwZXJmb3JtX3Jlc3RvcmUoCi0gCWludAkJCW1iX2NvdW50OwotIAl4ZnNfbWV0YWJsb2NrX3QJCXRtYjsKLSAJeGZzX3NiX3QJCXNiOwotLQlfX2ludDY0X3QJCWJ5dGVzX3JlYWQ7Ci0rCWludDY0X3QJCQlieXRlc19yZWFkOwotIAotIAkvKgotIAkgKiByZWFkIGluIGZpcnN0IGJsb2NrcyAoc3VwZXJibG9jayAwKSwgc2V0ICJpbnByb2dyZXNzIiBmbGFnIGZvciBpdCwKLWRpZmYgLS1naXQgYS9ta2ZzL3Byb3RvLmMgYi9ta2ZzL3Byb3RvLmMKLWluZGV4IDg5Y2QyMzc5Li5jZjhjYzM5MSAxMDA2NDQKLS0tLSBhL21rZnMvcHJvdG8uYwotKysrIGIvbWtmcy9wcm90by5jCi1AQCAtNjY3LDcgKzY2Nyw3IEBAIHJ0aW5pdCgKLSAJbXAtPm1fc2Iuc2JfcmJtaW5vID0gcmJtaXAtPmlfaW5vOwotIAlyYm1pcC0+aV9kLmRpX3NpemUgPSBtcC0+bV9zYi5zYl9yYm1ibG9ja3MgKiBtcC0+bV9zYi5zYl9ibG9ja3NpemU7Ci0gCXJibWlwLT5pX2QuZGlfZmxhZ3MgPSBYRlNfRElGTEFHX05FV1JUQk07Ci0tCSooX191aW50NjRfdCAqKSZWRlNfSShyYm1pcCktPmlfYXRpbWUgPSAwOwotKwkqKHVpbnQ2NF90ICopJlZGU19JKHJibWlwKS0+aV9hdGltZSA9IDA7Ci0gCWxpYnhmc190cmFuc19sb2dfaW5vZGUodHAsIHJibWlwLCBYRlNfSUxPR19DT1JFKTsKLSAJbGlieGZzX2xvZ19zYih0cCk7Ci0gCW1wLT5tX3JibWlwID0gcmJtaXA7Ci1kaWZmIC0tZ2l0IGEvbWtmcy94ZnNfbWtmcy5jIGIvbWtmcy94ZnNfbWtmcy5jCi1pbmRleCBiNWMzYTU3ZS4uN2JiNjQwOGYgMTAwNjQ0Ci0tLS0gYS9ta2ZzL3hmc19ta2ZzLmMKLSsrKyBiL21rZnMveGZzX21rZnMuYwotQEAgLTcwNSw5ICs3MDUsOSBAQCBzdHJ1Y3Qgb3B0X3BhcmFtcyBtb3B0cyA9IHsKLSAJfSwKLSB9OwotIAotLSNkZWZpbmUgVEVSQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoNDAgLSAoYmxvZykpKQotLSNkZWZpbmUgR0lHQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoMzAgLSAoYmxvZykpKQotLSNkZWZpbmUgTUVHQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoMjAgLSAoYmxvZykpKQotKyNkZWZpbmUgVEVSQUJZVEVTKGNvdW50LCBibG9nKQkoKHVpbnQ2NF90KShjb3VudCkgPDwgKDQwIC0gKGJsb2cpKSkKLSsjZGVmaW5lIEdJR0FCWVRFUyhjb3VudCwgYmxvZykJKCh1aW50NjRfdCkoY291bnQpIDw8ICgzMCAtIChibG9nKSkpCi0rI2RlZmluZSBNRUdBQllURVMoY291bnQsIGJsb2cpCSgodWludDY0X3QpKGNvdW50KSA8PCAoMjAgLSAoYmxvZykpKQotIAotIC8qCi0gICogVXNlIHRoaXMgbWFjcm8gYmVmb3JlIHdlIGhhdmUgc3VwZXJibG9jayBhbmQgbW91bnQgc3RydWN0dXJlCi1AQCAtODc4LDcgKzg3OCw3IEBAIGZpeHVwX2xvZ19zdHJpcGVfdW5pdCgKLSAJeGZzX3Jmc2Jsb2NrX3QJKmxvZ2Jsb2NrcywKLSAJaW50CQlibG9ja2xvZykKLSB7Ci0tCV9fdWludDY0X3QJdG1wX2xvZ2Jsb2NrczsKLSsJdWludDY0X3QJdG1wX2xvZ2Jsb2NrczsKLSAKLSAJLyoKLSAJICogTWFrZSBzdXJlIHRoYXQgdGhlIGxvZyBzaXplIGlzIGEgbXVsdGlwbGUgb2YgdGhlIHN0cmlwZSB1bml0Ci1AQCAtOTEwLDcgKzkxMCw3IEBAIGZpeHVwX2ludGVybmFsX2xvZ19zdHJpcGUoCi0gCXhmc19tb3VudF90CSptcCwKLSAJaW50CQlsc2ZsYWcsCi0gCXhmc19mc2Jsb2NrX3QJbG9nc3RhcnQsCi0tCV9fdWludDY0X3QJYWdzaXplLAotKwl1aW50NjRfdAlhZ3NpemUsCi0gCWludAkJc3VuaXQsCi0gCXhmc19yZnNibG9ja190CSpsb2dibG9ja3MsCi0gCWludAkJYmxvY2tsb2csCi1AQCAtOTM0LDcgKzkzNCw3IEBAIGZpeHVwX2ludGVybmFsX2xvZ19zdHJpcGUoCi0gfQotIAotIHZvaWQKLS12YWxpZGF0ZV9sb2dfc2l6ZShfX3VpbnQ2NF90IGxvZ2Jsb2NrcywgaW50IGJsb2NrbG9nLCBpbnQgbWluX2xvZ2Jsb2NrcykKLSt2YWxpZGF0ZV9sb2dfc2l6ZSh1aW50NjRfdCBsb2dibG9ja3MsIGludCBibG9ja2xvZywgaW50IG1pbl9sb2dibG9ja3MpCi0gewotIAlpZiAobG9nYmxvY2tzIDwgbWluX2xvZ2Jsb2NrcykgewotIAkJZnByaW50ZihzdGRlcnIsCi1AQCAtOTU5LDcgKzk1OSw3IEBAIHZhbGlkYXRlX2xvZ19zaXplKF9fdWludDY0X3QgbG9nYmxvY2tzLCBpbnQgYmxvY2tsb2csIGludCBtaW5fbG9nYmxvY2tzKQotIHN0YXRpYyBpbnQKLSBjYWxjX2RlZmF1bHRfaW1heHBjdCgKLSAJaW50CQlibG9ja2xvZywKLS0JX191aW50NjRfdAlkYmxvY2tzKQotKwl1aW50NjRfdAlkYmxvY2tzKQotIHsKLSAJLyoKLSAJICogVGhpcyByZXR1cm5zIHRoZSAlIG9mIHRoZSBkaXNrIHNwYWNlIHRoYXQgaXMgdXNlZCBmb3IKLUBAIC05ODEsOSArOTgxLDkgQEAgY2FsY19kZWZhdWx0X2ltYXhwY3QoCi0gc3RhdGljIHZvaWQKLSB2YWxpZGF0ZV9hZ19nZW9tZXRyeSgKLSAJaW50CQlibG9ja2xvZywKLS0JX191aW50NjRfdAlkYmxvY2tzLAotLQlfX3VpbnQ2NF90CWFnc2l6ZSwKLS0JX191aW50NjRfdAlhZ2NvdW50KQotKwl1aW50NjRfdAlkYmxvY2tzLAotKwl1aW50NjRfdAlhZ3NpemUsCi0rCXVpbnQ2NF90CWFnY291bnQpCi0gewotIAlpZiAoYWdzaXplIDwgWEZTX0FHX01JTl9CTE9DS1MoYmxvY2tsb2cpKSB7Ci0gCQlmcHJpbnRmKHN0ZGVyciwKLUBAIC0xMDU5LDcgKzEwNTksNyBAQCB6ZXJvX29sZF94ZnNfc3RydWN0dXJlcygKLSB7Ci0gCXZvaWQgCQkJKmJ1ZjsKLSAJeGZzX3NiX3QgCQlzYjsKLS0JX191aW50MzJfdAkJYnNpemU7Ci0rCXVpbnQzMl90CQlic2l6ZTsKLSAJaW50CQkJaTsKLSAJeGZzX29mZl90CQlvZmY7Ci0gCi1AQCAtMTExMiw4ICsxMTEyLDggQEAgemVyb19vbGRfeGZzX3N0cnVjdHVyZXMoCi0gCQkJaSAhPSBzYi5zYl9ibG9ja2xvZykKLSAJCWdvdG8gZG9uZTsKLSAKLS0JaWYgKHNiLnNiX2RibG9ja3MgPiAoKF9fdWludDY0X3Qpc2Iuc2JfYWdjb3VudCAqIHNiLnNiX2FnYmxvY2tzKSB8fAotLQkJCXNiLnNiX2RibG9ja3MgPCAoKF9fdWludDY0X3QpKHNiLnNiX2FnY291bnQgLSAxKSAqCi0rCWlmIChzYi5zYl9kYmxvY2tzID4gKCh1aW50NjRfdClzYi5zYl9hZ2NvdW50ICogc2Iuc2JfYWdibG9ja3MpIHx8Ci0rCQkJc2Iuc2JfZGJsb2NrcyA8ICgodWludDY0X3QpKHNiLnNiX2FnY291bnQgLSAxKSAqCi0gCQkJCQkgc2Iuc2JfYWdibG9ja3MgKyBYRlNfTUlOX0FHX0JMT0NLUykpCi0gCQlnb3RvIGRvbmU7Ci0gCi1AQCAtMTEzMyw3ICsxMTMzLDcgQEAgZG9uZToKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLS1kaXNjYXJkX2Jsb2NrcyhkZXZfdCBkZXYsIF9fdWludDY0X3QgbnNlY3RvcnMpCi0rZGlzY2FyZF9ibG9ja3MoZGV2X3QgZGV2LCB1aW50NjRfdCBuc2VjdG9ycykKLSB7Ci0gCWludCBmZDsKLSAKLUBAIC0xMzk1LDExICsxMzk1LDExIEBAIG1haW4oCi0gCWludAkJCWFyZ2MsCi0gCWNoYXIJCQkqKmFyZ3YpCi0gewotLQlfX3VpbnQ2NF90CQlhZ2NvdW50OwotKwl1aW50NjRfdAkJYWdjb3VudDsKLSAJeGZzX2FnZl90CQkqYWdmOwotIAl4ZnNfYWdpX3QJCSphZ2k7Ci0gCXhmc19hZ251bWJlcl90CQlhZ25vOwotLQlfX3VpbnQ2NF90CQlhZ3NpemU7Ci0rCXVpbnQ2NF90CQlhZ3NpemU7Ci0gCXhmc19hbGxvY19yZWNfdAkJKmFyZWM7Ci0gCXN0cnVjdCB4ZnNfYnRyZWVfYmxvY2sJKmJsb2NrOwotIAlpbnQJCQlibGZsYWc7Ci1AQCAtMTQ3NSwxMCArMTQ3NSwxMCBAQCBtYWluKAotIAljaGFyCQkJKnJ0c2l6ZTsKLSAJeGZzX3NiX3QJCSpzYnA7Ci0gCWludAkJCXNlY3RvcmxvZzsKLS0JX191aW50NjRfdAkJc2VjdG9yX21hc2s7Ci0rCXVpbnQ2NF90CQlzZWN0b3JfbWFzazsKLSAJaW50CQkJc2xmbGFnOwotIAlpbnQJCQlzc2ZsYWc7Ci0tCV9fdWludDY0X3QJCXRtcF9hZ3NpemU7Ci0rCXVpbnQ2NF90CQl0bXBfYWdzaXplOwotIAl1dWlkX3QJCQl1dWlkOwotIAlpbnQJCQl3b3JzdF9mcmVlbGlzdDsKLSAJbGlieGZzX2luaXRfdAkJeGk7Ci1AQCAtMjE2Nyw3ICsyMTY3LDcgQEAgXygicm1hcGJ0IG5vdCBzdXBwb3J0ZWQgd2l0aCByZWFsdGltZSBkZXZpY2VzXG4iKSk7Ci0gCi0gCi0gCWlmIChkc2l6ZSkgewotLQkJX191aW50NjRfdCBkYnl0ZXM7Ci0rCQl1aW50NjRfdCBkYnl0ZXM7Ci0gCi0gCQlkYnl0ZXMgPSBnZXRudW0oZHNpemUsICZkb3B0cywgRF9TSVpFKTsKLSAJCWlmIChkYnl0ZXMgJSBYRlNfTUlOX0JMT0NLU0laRSkgewotQEAgLTIxOTksNyArMjE5OSw3IEBAIF8oInJtYXBidCBub3Qgc3VwcG9ydGVkIHdpdGggcmVhbHRpbWUgZGV2aWNlc1xuIikpOwotIAl9Ci0gCi0gCWlmIChsb2dzaXplKSB7Ci0tCQlfX3VpbnQ2NF90IGxvZ2J5dGVzOwotKwkJdWludDY0X3QgbG9nYnl0ZXM7Ci0gCi0gCQlsb2dieXRlcyA9IGdldG51bShsb2dzaXplLCAmbG9wdHMsIExfU0laRSk7Ci0gCQlpZiAobG9nYnl0ZXMgJSBYRlNfTUlOX0JMT0NLU0laRSkgewotQEAgLTIyMTYsNyArMjIxNiw3IEBAIF8oInJtYXBidCBub3Qgc3VwcG9ydGVkIHdpdGggcmVhbHRpbWUgZGV2aWNlc1xuIikpOwotIAkJCQkobG9uZyBsb25nKShsb2dibG9ja3MgPDwgYmxvY2tsb2cpKTsKLSAJfQotIAlpZiAocnRzaXplKSB7Ci0tCQlfX3VpbnQ2NF90IHJ0Ynl0ZXM7Ci0rCQl1aW50NjRfdCBydGJ5dGVzOwotIAotIAkJcnRieXRlcyA9IGdldG51bShydHNpemUsICZyb3B0cywgUl9TSVpFKTsKLSAJCWlmIChydGJ5dGVzICUgWEZTX01JTl9CTE9DS1NJWkUpIHsKLUBAIC0yMjM2LDcgKzIyMzYsNyBAQCBfKCJybWFwYnQgbm90IHN1cHBvcnRlZCB3aXRoIHJlYWx0aW1lIGRldmljZXNcbiIpKTsKLSAJICogSWYgc3BlY2lmaWVkLCBjaGVjayBydCBleHRlbnQgc2l6ZSBhZ2FpbnN0IGl0cyBjb25zdHJhaW50cy4KLSAJICovCi0gCWlmIChydGV4dHNpemUpIHsKLS0JCV9fdWludDY0X3QgcnRleHRieXRlczsKLSsJCXVpbnQ2NF90IHJ0ZXh0Ynl0ZXM7Ci0gCi0gCQlydGV4dGJ5dGVzID0gZ2V0bnVtKHJ0ZXh0c2l6ZSwgJnJvcHRzLCBSX0VYVFNJWkUpOwotIAkJaWYgKHJ0ZXh0Ynl0ZXMgJSBibG9ja3NpemUpIHsKLUBAIC0yMjUyLDggKzIyNTIsOCBAQCBfKCJybWFwYnQgbm90IHN1cHBvcnRlZCB3aXRoIHJlYWx0aW1lIGRldmljZXNcbiIpKTsKLSAJCSAqIGFuZCB0aGUgdW5kZXJseWluZyB2b2x1bWUgaXMgc3RyaXBlZCwgdGhlbiBzZXQgcnRleHRibG9ja3MKLSAJCSAqIHRvIHRoZSBzdHJpcGUgd2lkdGguCi0gCQkgKi8KLS0JCV9fdWludDY0X3QJcnN3aWR0aDsKLS0JCV9fdWludDY0X3QJcnRleHRieXRlczsKLSsJCXVpbnQ2NF90CXJzd2lkdGg7Ci0rCQl1aW50NjRfdAlydGV4dGJ5dGVzOwotIAotIAkJaWYgKCFub3JzZmxhZyAmJiAheGkucmlzZmlsZSAmJiAhKCFydHNpemUgJiYgeGkuZGlzZmlsZSkpCi0gCQkJcnN3aWR0aCA9IGZ0LnJ0c3dpZHRoOwotQEAgLTIzMzUsMTAgKzIzMzUsMTAgQEAgXygicm1hcGJ0IG5vdCBzdXBwb3J0ZWQgd2l0aCByZWFsdGltZSBkZXZpY2VzXG4iKSk7Ci0gCSAqIG11bHRpcGxlIG9mIHRoZSBzZWN0b3Igc2l6ZSwgb3IgMTAyNCwgd2hpY2hldmVyIGlzIGxhcmdlci4KLSAJICovCi0gCi0tCXNlY3Rvcl9tYXNrID0gKF9fdWludDY0X3QpLTEgPDwgKE1BWChzZWN0b3Jsb2csIDEwKSAtIEJCU0hJRlQpOwotKwlzZWN0b3JfbWFzayA9ICh1aW50NjRfdCktMSA8PCAoTUFYKHNlY3RvcmxvZywgMTApIC0gQkJTSElGVCk7Ci0gCXhpLmRzaXplICY9IHNlY3Rvcl9tYXNrOwotIAl4aS5ydHNpemUgJj0gc2VjdG9yX21hc2s7Ci0tCXhpLmxvZ0JCc2l6ZSAmPSAoX191aW50NjRfdCktMSA8PCAoTUFYKGxzZWN0b3Jsb2csIDEwKSAtIEJCU0hJRlQpOwotKwl4aS5sb2dCQnNpemUgJj0gKHVpbnQ2NF90KS0xIDw8IChNQVgobHNlY3RvcmxvZywgMTApIC0gQkJTSElGVCk7Ci0gCi0gCi0gCS8qIGRvbid0IGRvIGRpc2NhcmRzIG9uIHByaW50LW9ubHkgcnVucyBvciBvbiBmaWxlcyAqLwotQEAgLTI2OTYsOSArMjY5Niw5IEBAIF8oInNpemUgJXMgc3BlY2lmaWVkIGZvciBsb2cgc3Vidm9sdW1lIGlzIHRvbyBsYXJnZSwgbWF4aW11bSBpcyAlbGxkIGJsb2Nrc1xuIiksCi0gCW1wID0gJm1idWY7Ci0gCXNicCA9ICZtcC0+bV9zYjsKLSAJbWVtc2V0KG1wLCAwLCBzaXplb2YoeGZzX21vdW50X3QpKTsKLS0Jc2JwLT5zYl9ibG9ja2xvZyA9IChfX3VpbnQ4X3QpYmxvY2tsb2c7Ci0tCXNicC0+c2Jfc2VjdGxvZyA9IChfX3VpbnQ4X3Qpc2VjdG9ybG9nOwotLQlzYnAtPnNiX2FnYmxrbG9nID0gKF9fdWludDhfdClsaWJ4ZnNfbG9nMl9yb3VuZHVwKCh1bnNpZ25lZCBpbnQpYWdzaXplKTsKLSsJc2JwLT5zYl9ibG9ja2xvZyA9ICh1aW50OF90KWJsb2NrbG9nOwotKwlzYnAtPnNiX3NlY3Rsb2cgPSAodWludDhfdClzZWN0b3Jsb2c7Ci0rCXNicC0+c2JfYWdibGtsb2cgPSAodWludDhfdClsaWJ4ZnNfbG9nMl9yb3VuZHVwKCh1bnNpZ25lZCBpbnQpYWdzaXplKTsKLSAJc2JwLT5zYl9hZ2Jsb2NrcyA9ICh4ZnNfYWdibG9ja190KWFnc2l6ZTsKLSAJbXAtPm1fYmxrYmJfbG9nID0gc2JwLT5zYl9ibG9ja2xvZyAtIEJCU0hJRlQ7Ci0gCW1wLT5tX3NlY3RiYl9sb2cgPSBzYnAtPnNiX3NlY3Rsb2cgLSBCQlNISUZUOwotQEAgLTI4MDUsMTQgKzI4MDUsMTQgQEAgXygic2l6ZSAlcyBzcGVjaWZpZWQgZm9yIGxvZyBzdWJ2b2x1bWUgaXMgdG9vIGxhcmdlLCBtYXhpbXVtIGlzICVsbGQgYmxvY2tzXG4iKSwKLSAJc2JwLT5zYl9hZ2NvdW50ID0gKHhmc19hZ251bWJlcl90KWFnY291bnQ7Ci0gCXNicC0+c2JfcmJtYmxvY2tzID0gbmJtYmxvY2tzOwotIAlzYnAtPnNiX2xvZ2Jsb2NrcyA9ICh4ZnNfZXh0bGVuX3QpbG9nYmxvY2tzOwotLQlzYnAtPnNiX3NlY3RzaXplID0gKF9fdWludDE2X3Qpc2VjdG9yc2l6ZTsKLS0Jc2JwLT5zYl9pbm9kZXNpemUgPSAoX191aW50MTZfdClpc2l6ZTsKLS0Jc2JwLT5zYl9pbm9wYmxvY2sgPSAoX191aW50MTZfdCkoYmxvY2tzaXplIC8gaXNpemUpOwotLQlzYnAtPnNiX3NlY3Rsb2cgPSAoX191aW50OF90KXNlY3RvcmxvZzsKLS0Jc2JwLT5zYl9pbm9kZWxvZyA9IChfX3VpbnQ4X3QpaW5vZGVsb2c7Ci0tCXNicC0+c2JfaW5vcGJsb2cgPSAoX191aW50OF90KShibG9ja2xvZyAtIGlub2RlbG9nKTsKLSsJc2JwLT5zYl9zZWN0c2l6ZSA9ICh1aW50MTZfdClzZWN0b3JzaXplOwotKwlzYnAtPnNiX2lub2Rlc2l6ZSA9ICh1aW50MTZfdClpc2l6ZTsKLSsJc2JwLT5zYl9pbm9wYmxvY2sgPSAodWludDE2X3QpKGJsb2Nrc2l6ZSAvIGlzaXplKTsKLSsJc2JwLT5zYl9zZWN0bG9nID0gKHVpbnQ4X3Qpc2VjdG9ybG9nOwotKwlzYnAtPnNiX2lub2RlbG9nID0gKHVpbnQ4X3QpaW5vZGVsb2c7Ci0rCXNicC0+c2JfaW5vcGJsb2cgPSAodWludDhfdCkoYmxvY2tsb2cgLSBpbm9kZWxvZyk7Ci0gCXNicC0+c2JfcmV4dHNsb2cgPQotLQkJKF9fdWludDhfdCkocnRleHRlbnRzID8KLSsJCSh1aW50OF90KShydGV4dGVudHMgPwotIAkJCWxpYnhmc19oaWdoYml0MzIoKHVuc2lnbmVkIGludClydGV4dGVudHMpIDogMCk7Ci0gCXNicC0+c2JfaW5wcm9ncmVzcyA9IDE7CS8qIG1rZnMgaXMgaW4gcHJvZ3Jlc3MgKi8KLSAJc2JwLT5zYl9pbWF4X3BjdCA9IGltYXhwY3Q7Ci1AQCAtMjg0MCw4ICsyODQwLDggQEAgXygic2l6ZSAlcyBzcGVjaWZpZWQgZm9yIGxvZyBzdWJ2b2x1bWUgaXMgdG9vIGxhcmdlLCBtYXhpbXVtIGlzICVsbGQgYmxvY2tzXG4iKSwKLSAJfSBlbHNlCi0gCQlzYnAtPnNiX2lub2FsaWdubXQgPSAwOwotIAlpZiAobHNlY3RvcnNpemUgIT0gQkJTSVpFIHx8IHNlY3RvcnNpemUgIT0gQkJTSVpFKSB7Ci0tCQlzYnAtPnNiX2xvZ3NlY3Rsb2cgPSAoX191aW50OF90KWxzZWN0b3Jsb2c7Ci0tCQlzYnAtPnNiX2xvZ3NlY3RzaXplID0gKF9fdWludDE2X3QpbHNlY3RvcnNpemU7Ci0rCQlzYnAtPnNiX2xvZ3NlY3Rsb2cgPSAodWludDhfdClsc2VjdG9ybG9nOwotKwkJc2JwLT5zYl9sb2dzZWN0c2l6ZSA9ICh1aW50MTZfdClsc2VjdG9yc2l6ZTsKLSAJfSBlbHNlIHsKLSAJCXNicC0+c2JfbG9nc2VjdGxvZyA9IDA7Ci0gCQlzYnAtPnNiX2xvZ3NlY3RzaXplID0gMDsKLWRpZmYgLS1naXQgYS9xdW90YS9lZGl0LmMgYi9xdW90YS9lZGl0LmMKLWluZGV4IDM2YjMyN2E1Li44NDE4ZTg1OCAxMDA2NDQKLS0tLSBhL3F1b3RhL2VkaXQuYwotKysrIGIvcXVvdGEvZWRpdC5jCi1AQCAtMTE1LDE2ICsxMTUsMTYgQEAgd2Fybl9oZWxwKHZvaWQpCi0gCi0gc3RhdGljIHZvaWQKLSBzZXRfbGltaXRzKAotLQlfX3VpbnQzMl90CWlkLAotKwl1aW50MzJfdAlpZCwKLSAJdWludAkJdHlwZSwKLSAJdWludAkJbWFzaywKLSAJY2hhcgkJKmRldiwKLS0JX191aW50NjRfdAkqYnNvZnQsCi0tCV9fdWludDY0X3QJKmJoYXJkLAotLQlfX3VpbnQ2NF90CSppc29mdCwKLS0JX191aW50NjRfdAkqaWhhcmQsCi0tCV9fdWludDY0X3QJKnJ0YnNvZnQsCi0tCV9fdWludDY0X3QJKnJ0YmhhcmQpCi0rCXVpbnQ2NF90CSpic29mdCwKLSsJdWludDY0X3QJKmJoYXJkLAotKwl1aW50NjRfdAkqaXNvZnQsCi0rCXVpbnQ2NF90CSppaGFyZCwKLSsJdWludDY0X3QJKnJ0YnNvZnQsCi0rCXVpbnQ2NF90CSpydGJoYXJkKQotIHsKLSAJZnNfZGlza19xdW90YV90CWQ7Ci0gCi1AQCAtMTUyLDEyICsxNTIsMTIgQEAgc2V0X3VzZXJfbGltaXRzKAotIAljaGFyCQkqbmFtZSwKLSAJdWludAkJdHlwZSwKLSAJdWludAkJbWFzaywKLS0JX191aW50NjRfdAkqYnNvZnQsCi0tCV9fdWludDY0X3QJKmJoYXJkLAotLQlfX3VpbnQ2NF90CSppc29mdCwKLS0JX191aW50NjRfdAkqaWhhcmQsCi0tCV9fdWludDY0X3QJKnJ0YnNvZnQsCi0tCV9fdWludDY0X3QJKnJ0YmhhcmQpCi0rCXVpbnQ2NF90CSpic29mdCwKLSsJdWludDY0X3QJKmJoYXJkLAotKwl1aW50NjRfdAkqaXNvZnQsCi0rCXVpbnQ2NF90CSppaGFyZCwKLSsJdWludDY0X3QJKnJ0YnNvZnQsCi0rCXVpbnQ2NF90CSpydGJoYXJkKQotIHsKLSAJdWlkX3QJCXVpZCA9IHVpZF9mcm9tX3N0cmluZyhuYW1lKTsKLSAKLUBAIC0xNzUsMTIgKzE3NSwxMiBAQCBzZXRfZ3JvdXBfbGltaXRzKAotIAljaGFyCQkqbmFtZSwKLSAJdWludAkJdHlwZSwKLSAJdWludAkJbWFzaywKLS0JX191aW50NjRfdAkqYnNvZnQsCi0tCV9fdWludDY0X3QJKmJoYXJkLAotLQlfX3VpbnQ2NF90CSppc29mdCwKLS0JX191aW50NjRfdAkqaWhhcmQsCi0tCV9fdWludDY0X3QJKnJ0YnNvZnQsCi0tCV9fdWludDY0X3QJKnJ0YmhhcmQpCi0rCXVpbnQ2NF90CSpic29mdCwKLSsJdWludDY0X3QJKmJoYXJkLAotKwl1aW50NjRfdAkqaXNvZnQsCi0rCXVpbnQ2NF90CSppaGFyZCwKLSsJdWludDY0X3QJKnJ0YnNvZnQsCi0rCXVpbnQ2NF90CSpydGJoYXJkKQotIHsKLSAJZ2lkX3QJCWdpZCA9IGdpZF9mcm9tX3N0cmluZyhuYW1lKTsKLSAKLUBAIC0xOTgsMTIgKzE5OCwxMiBAQCBzZXRfcHJvamVjdF9saW1pdHMoCi0gCWNoYXIJCSpuYW1lLAotIAl1aW50CQl0eXBlLAotIAl1aW50CQltYXNrLAotLQlfX3VpbnQ2NF90CSpic29mdCwKLS0JX191aW50NjRfdAkqYmhhcmQsCi0tCV9fdWludDY0X3QJKmlzb2Z0LAotLQlfX3VpbnQ2NF90CSppaGFyZCwKLS0JX191aW50NjRfdAkqcnRic29mdCwKLS0JX191aW50NjRfdAkqcnRiaGFyZCkKLSsJdWludDY0X3QJKmJzb2Z0LAotKwl1aW50NjRfdAkqYmhhcmQsCi0rCXVpbnQ2NF90CSppc29mdCwKLSsJdWludDY0X3QJKmloYXJkLAotKwl1aW50NjRfdAkqcnRic29mdCwKLSsJdWludDY0X3QJKnJ0YmhhcmQpCi0gewotIAlwcmlkX3QJCXByaWQgPSBwcmlkX2Zyb21fc3RyaW5nKG5hbWUpOwotIAotQEAgLTIyNCw3ICsyMjQsNyBAQCBleHRyYWN0YigKLSAJaW50CQlsZW5ndGgsCi0gCXVpbnQJCWJsb2Nrc2l6ZSwKLSAJdWludAkJc2VjdG9yc2l6ZSwKLS0JX191aW50NjRfdAkqdmFsdWUpCi0rCXVpbnQ2NF90CSp2YWx1ZSkKLSB7Ci0gCWxvbmcgbG9uZwl2OwotIAljaGFyCQkqcyA9IHN0cmluZzsKLUBAIC0yMzgsNyArMjM4LDcgQEAgZXh0cmFjdGIoCi0gCQkJCXByb2duYW1lLCBzKTsKLSAJCQlyZXR1cm4gMDsKLSAJCX0KLS0JCSp2YWx1ZSA9IChfX3VpbnQ2NF90KXYgPj4gOTsJLyogc3lzY2FsbHMgdXNlIGJhc2ljIGJsb2NrcyAqLwotKwkJKnZhbHVlID0gKHVpbnQ2NF90KXYgPj4gOTsJLyogc3lzY2FsbHMgdXNlIGJhc2ljIGJsb2NrcyAqLwotIAkJaWYgKHYgPiAwICYmICp2YWx1ZSA9PSAwKQotIAkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogV2FybmluZzogYCVzJyBpbiBxdW90YSBibG9ja3MgaXMgMCAodW5saW1pdGVkKS5cbiIpLCBwcm9nbmFtZSwgcyk7Ci0gCQlyZXR1cm4gMTsKLUBAIC0yNTIsNyArMjUyLDcgQEAgZXh0cmFjdGkoCi0gCWNoYXIJCSpzdHJpbmcsCi0gCWNvbnN0IGNoYXIJKnByZWZpeCwKLSAJaW50CQlsZW5ndGgsCi0tCV9fdWludDY0X3QJKnZhbHVlKQotKwl1aW50NjRfdAkqdmFsdWUpCi0gewotIAljaGFyCQkqc3AsICpzID0gc3RyaW5nOwotIAotQEAgLTI3MCw3ICsyNzAsNyBAQCBsaW1pdF9mKAotIAljaGFyCQkqKmFyZ3YpCi0gewotIAljaGFyCQkqbmFtZTsKLS0JX191aW50NjRfdAlic29mdCwgYmhhcmQsIGlzb2Z0LCBpaGFyZCwgcnRic29mdCwgcnRiaGFyZDsKLSsJdWludDY0X3QJYnNvZnQsIGJoYXJkLCBpc29mdCwgaWhhcmQsIHJ0YnNvZnQsIHJ0YmhhcmQ7Ci0gCWludAkJYywgdHlwZSA9IDAsIG1hc2sgPSAwLCBmbGFncyA9IDA7Ci0gCXVpbnQJCWJzaXplLCBzc2l6ZSwgZW5kb3B0aW9uczsKLSAKLUBAIC0zODQsOCArMzg0LDggQEAgcmVzdG9yZV9maWxlKAotIAljaGFyCQkqZGV2ID0gTlVMTDsKLSAJdWludAkJbWFzazsKLSAJaW50CQljbnQ7Ci0tCV9fdWludDMyX3QJaWQ7Ci0tCV9fdWludDY0X3QJYnNvZnQsIGJoYXJkLCBpc29mdCwgaWhhcmQsIHJ0YnNvZnQsIHJ0YmhhcmQ7Ci0rCXVpbnQzMl90CWlkOwotKwl1aW50NjRfdAlic29mdCwgYmhhcmQsIGlzb2Z0LCBpaGFyZCwgcnRic29mdCwgcnRiaGFyZDsKLSAKLSAJd2hpbGUgKGZnZXRzKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIGZwKSAhPSBOVUxMKSB7Ci0gCQlpZiAoc3RybmNtcCgiZnMgPSAiLCBidWZmZXIsIDUpID09IDApIHsKLUBAIC01NDYsNyArNTQ2LDcgQEAgdGltZXJfZigKLSAKLSBzdGF0aWMgdm9pZAotIHNldF93YXJuaW5ncygKLS0JX191aW50MzJfdAlpZCwKLSsJdWludDMyX3QJaWQsCi0gCXVpbnQJCXR5cGUsCi0gCXVpbnQJCW1hc2ssCi0gCWNoYXIJCSpkZXYsCi1kaWZmIC0tZ2l0IGEvcXVvdGEvZnJlZS5jIGIvcXVvdGEvZnJlZS5jCi1pbmRleCBjZWUxNWVlOS4uMWY4Mzc4ZDIgMTAwNjQ0Ci0tLS0gYS9xdW90YS9mcmVlLmMKLSsrKyBiL3F1b3RhL2ZyZWUuYwotQEAgLTQ5LDIwICs0OSwyMCBAQCBmcmVlX2hlbHAodm9pZCkKLSBzdGF0aWMgaW50Ci0gbW91bnRfZnJlZV9zcGFjZV9kYXRhKAotIAlzdHJ1Y3QgZnNfcGF0aAkJKm1vdW50LAotLQlfX3VpbnQ2NF90CQkqYmNvdW50LAotLQlfX3VpbnQ2NF90CQkqYnVzZWQsCi0tCV9fdWludDY0X3QJCSpiZnJlZSwKLS0JX191aW50NjRfdAkJKmljb3VudCwKLS0JX191aW50NjRfdAkJKml1c2VkLAotLQlfX3VpbnQ2NF90CQkqaWZyZWUsCi0tCV9fdWludDY0X3QJCSpyY291bnQsCi0tCV9fdWludDY0X3QJCSpydXNlZCwKLS0JX191aW50NjRfdAkJKnJmcmVlKQotKwl1aW50NjRfdAkJKmJjb3VudCwKLSsJdWludDY0X3QJCSpidXNlZCwKLSsJdWludDY0X3QJCSpiZnJlZSwKLSsJdWludDY0X3QJCSppY291bnQsCi0rCXVpbnQ2NF90CQkqaXVzZWQsCi0rCXVpbnQ2NF90CQkqaWZyZWUsCi0rCXVpbnQ2NF90CQkqcmNvdW50LAotKwl1aW50NjRfdAkJKnJ1c2VkLAotKwl1aW50NjRfdAkJKnJmcmVlKQotIHsKLSAJc3RydWN0IHhmc19mc29wX2NvdW50cwlmc2NvdW50czsKLSAJc3RydWN0IHhmc19mc29wX2dlb20JZnNnZW87Ci0gCXN0cnVjdCBzdGF0ZnMJCXN0OwotLQlfX3VpbnQ2NF90CQlsb2dzaXplLCBjb3VudCwgZnJlZTsKLSsJdWludDY0X3QJCWxvZ3NpemUsIGNvdW50LCBmcmVlOwotIAlpbnQJCQlmZDsKLSAKLSAJaWYgKChmZCA9IG9wZW4obW91bnQtPmZzX2RpciwgT19SRE9OTFkpKSA8IDApIHsKLUBAIC0xMzIsMTUgKzEzMiwxNSBAQCBtb3VudF9mcmVlX3NwYWNlX2RhdGEoCi0gc3RhdGljIGludAotIHByb2plY3RzX2ZyZWVfc3BhY2VfZGF0YSgKLSAJc3RydWN0IGZzX3BhdGgJCSpwYXRoLAotLQlfX3VpbnQ2NF90CQkqYmNvdW50LAotLQlfX3VpbnQ2NF90CQkqYnVzZWQsCi0tCV9fdWludDY0X3QJCSpiZnJlZSwKLS0JX191aW50NjRfdAkJKmljb3VudCwKLS0JX191aW50NjRfdAkJKml1c2VkLAotLQlfX3VpbnQ2NF90CQkqaWZyZWUsCi0tCV9fdWludDY0X3QJCSpyY291bnQsCi0tCV9fdWludDY0X3QJCSpydXNlZCwKLS0JX191aW50NjRfdAkJKnJmcmVlKQotKwl1aW50NjRfdAkJKmJjb3VudCwKLSsJdWludDY0X3QJCSpidXNlZCwKLSsJdWludDY0X3QJCSpiZnJlZSwKLSsJdWludDY0X3QJCSppY291bnQsCi0rCXVpbnQ2NF90CQkqaXVzZWQsCi0rCXVpbnQ2NF90CQkqaWZyZWUsCi0rCXVpbnQ2NF90CQkqcmNvdW50LAotKwl1aW50NjRfdAkJKnJ1c2VkLAotKwl1aW50NjRfdAkJKnJmcmVlKQotIHsKLSAJZnNfcXVvdGFfc3RhdF90CQlxZnM7Ci0gCWZzX2Rpc2tfcXVvdGFfdAkJZDsKLUBAIC0yMjYsOSArMjI2LDkgQEAgZnJlZV9zcGFjZSgKLSAJZnNfcGF0aF90CSpwYXRoLAotIAl1aW50CQlmbGFncykKLSB7Ci0tCV9fdWludDY0X3QJYmNvdW50LCBidXNlZCwgYmZyZWU7Ci0tCV9fdWludDY0X3QJaWNvdW50LCBpdXNlZCwgaWZyZWU7Ci0tCV9fdWludDY0X3QJcmNvdW50LCBydXNlZCwgcmZyZWU7Ci0rCXVpbnQ2NF90CWJjb3VudCwgYnVzZWQsIGJmcmVlOwotKwl1aW50NjRfdAlpY291bnQsIGl1c2VkLCBpZnJlZTsKLSsJdWludDY0X3QJcmNvdW50LCBydXNlZCwgcmZyZWU7Ci0gCWNoYXIJCWFbOF0sIHNbOF0sIHVbOF0sIHBbOF07Ci0gCWludAkJY291bnQ7Ci0gCi1kaWZmIC0tZ2l0IGEvcXVvdGEvcXVvdC5jIGIvcXVvdGEvcXVvdC5jCi1pbmRleCBjY2MxNTRmNS4uNjM3OGZiYjcgMTAwNjQ0Ci0tLS0gYS9xdW90YS9xdW90LmMKLSsrKyBiL3F1b3RhL3F1b3QuYwotQEAgLTI2LDE3ICsyNiwxNyBAQAotIAotIHR5cGVkZWYgc3RydWN0IGR1IHsKLSAJc3RydWN0IGR1CSpuZXh0OwotLQlfX3VpbnQ2NF90CWJsb2NrczsKLS0JX191aW50NjRfdAlibG9ja3MzMDsKLS0JX191aW50NjRfdAlibG9ja3M2MDsKLS0JX191aW50NjRfdAlibG9ja3M5MDsKLS0JX191aW50NjRfdAluZmlsZXM7Ci0tCV9fdWludDMyX3QJaWQ7Ci0rCXVpbnQ2NF90CWJsb2NrczsKLSsJdWludDY0X3QJYmxvY2tzMzA7Ci0rCXVpbnQ2NF90CWJsb2NrczYwOwotKwl1aW50NjRfdAlibG9ja3M5MDsKLSsJdWludDY0X3QJbmZpbGVzOwotKwl1aW50MzJfdAlpZDsKLSB9IGR1X3Q7Ci0gCi0gI2RlZmluZQlUU0laRQkJNTAwCi0tc3RhdGljIF9fdWludDY0X3QJc2l6ZXNbVFNJWkVdOwotLXN0YXRpYyBfX3VpbnQ2NF90CW92ZXJmbG93OwotK3N0YXRpYyB1aW50NjRfdAlzaXplc1tUU0laRV07Ci0rc3RhdGljIHVpbnQ2NF90CW92ZXJmbG93OwotIAotICNkZWZpbmUJTkRVCQk2MDAwMAotICNkZWZpbmUJRFVIQVNICQk4MjA5Ci1AQCAtODQsOCArODQsOCBAQCBxdW90X2J1bGtzdGF0X2FkZCgKLSB7Ci0gCWR1X3QJCSpkcDsKLSAJZHVfdAkJKipocDsKLS0JX191aW50NjRfdAlzaXplOwotLQlfX3VpbnQzMl90CWksIGlkOwotKwl1aW50NjRfdAlzaXplOwotKwl1aW50MzJfdAlpLCBpZDsKLSAKLSAJaWYgKChwLT5ic19tb2RlICYgU19JRk1UKSA9PSAwKQotIAkJcmV0dXJuOwotQEAgLTIwMyw3ICsyMDMsNyBAQCBxY29tcGFyZSgKLSAJcmV0dXJuIDA7Ci0gfQotIAotLXR5cGVkZWYgY2hhciAqKCppZHRvbmFtZV90KShfX3VpbnQzMl90KTsKLSt0eXBlZGVmIGNoYXIgKigqaWR0b25hbWVfdCkodWludDMyX3QpOwotIAotIHN0YXRpYyB2b2lkCi0gcXVvdF9yZXBvcnRfbW91bnRfYW55X3R5cGUoCi1AQCAtMjkxLDcgKzI5MSw3IEBAIHF1b3RfaGlzdG9ncmFtX21vdW50KAotIAlmc19wYXRoX3QJKm1vdW50LAotIAl1aW50CQlmbGFncykKLSB7Ci0tCV9fdWludDY0X3QJdCA9IDA7Ci0rCXVpbnQ2NF90CXQgPSAwOwotIAlpbnQJCWk7Ci0gCi0gCWZwcmludGYoZnAsIF8oIiVzICglcyk6XG4iKSwgbW91bnQtPmZzX25hbWUsIG1vdW50LT5mc19kaXIpOwotZGlmZiAtLWdpdCBhL3F1b3RhL3F1b3RhLmMgYi9xdW90YS9xdW90YS5jCi1pbmRleCBkMDllMjM5Yi4uNDc5Yjk3MGUgMTAwNjQ0Ci0tLS0gYS9xdW90YS9xdW90YS5jCi0rKysgYi9xdW90YS9xdW90YS5jCi1AQCAtNTIsNyArNTIsNyBAQCBxdW90YV9oZWxwKHZvaWQpCi0gc3RhdGljIGludAotIHF1b3RhX21vdW50KAotIAlGSUxFCQkqZnAsCi0tCV9fdWludDMyX3QJaWQsCi0rCXVpbnQzMl90CWlkLAotIAljaGFyCQkqbmFtZSwKLSAJdWludAkJZm9ybSwKLSAJdWludAkJdHlwZSwKLUBAIC0xODEsNyArMTgxLDcgQEAgcXVvdGFfbW91bnQoCi0gc3RhdGljIHZvaWQKLSBxdW90YSgKLSAJRklMRQkJKmZwLAotLQlfX3VpbnQzMl90CWlkLAotKwl1aW50MzJfdAlpZCwKLSAJY2hhcgkJKm5hbWUsCi0gCXVpbnQJCWZvcm0sCi0gCXVpbnQJCXR5cGUsCi1kaWZmIC0tZ2l0IGEvcXVvdGEvcXVvdGEuaCBiL3F1b3RhL3F1b3RhLmgKLWluZGV4IDRiZGUzNTEzLi45ZWQyOGJlZSAxMDA2NDQKLS0tLSBhL3F1b3RhL3F1b3RhLmgKLSsrKyBiL3F1b3RhL3F1b3RhLmgKLUBAIC01Myw5ICs1Myw5IEBAIGVudW0gewotIGV4dGVybiBjaGFyICp0eXBlX3RvX3N0cmluZyh1aW50IF9fdHlwZSk7Ci0gZXh0ZXJuIGNoYXIgKmZvcm1fdG9fc3RyaW5nKHVpbnQgX19mb3JtKTsKLSBleHRlcm4gY2hhciAqdGltZV90b19zdHJpbmcodGltZV90IF9fdGltZSwgdWludCBfX2ZsYWdzKTsKLS1leHRlcm4gY2hhciAqYmJzX3RvX3N0cmluZyhfX3VpbnQ2NF90IF9fdiwgY2hhciAqX19jLCB1aW50IF9fc2l6ZSk7Ci0tZXh0ZXJuIGNoYXIgKm51bV90b19zdHJpbmcoX191aW50NjRfdCBfX3YsIGNoYXIgKl9fYywgdWludCBfX3NpemUpOwotLWV4dGVybiBjaGFyICpwY3RfdG9fc3RyaW5nKF9fdWludDY0X3QgX192LCBfX3VpbnQ2NF90IF9fdCwgY2hhciAqX19jLCB1aW50IF9fcyk7Ci0rZXh0ZXJuIGNoYXIgKmJic190b19zdHJpbmcodWludDY0X3QgX192LCBjaGFyICpfX2MsIHVpbnQgX19zaXplKTsKLStleHRlcm4gY2hhciAqbnVtX3RvX3N0cmluZyh1aW50NjRfdCBfX3YsIGNoYXIgKl9fYywgdWludCBfX3NpemUpOwotK2V4dGVybiBjaGFyICpwY3RfdG9fc3RyaW5nKHVpbnQ2NF90IF9fdiwgdWludDY0X3QgX190LCBjaGFyICpfX2MsIHVpbnQgX19zKTsKLSAKLSBleHRlcm4gRklMRSAqZm9wZW5fd3JpdGVfc2VjdXJlKGNoYXIgKl9fZmlsZW5hbWUpOwotIAotQEAgLTgxLDcgKzgxLDcgQEAgZW51bSB7Ci0gICogSWRlbnRpZmllciAodWlkL2dpZC9wcmlkKSBjYWNoZSByb3V0aW5lcwotICAqLwotICNkZWZpbmUgTk1BWCAzMgotLWV4dGVybiBjaGFyICp1aWRfdG9fbmFtZShfX3VpbnQzMl90IF9fdWlkKTsKLS1leHRlcm4gY2hhciAqZ2lkX3RvX25hbWUoX191aW50MzJfdCBfX2dpZCk7Ci0tZXh0ZXJuIGNoYXIgKnByaWRfdG9fbmFtZShfX3VpbnQzMl90IF9fcHJpZCk7Ci0rZXh0ZXJuIGNoYXIgKnVpZF90b19uYW1lKHVpbnQzMl90IF9fdWlkKTsKLStleHRlcm4gY2hhciAqZ2lkX3RvX25hbWUodWludDMyX3QgX19naWQpOwotK2V4dGVybiBjaGFyICpwcmlkX3RvX25hbWUodWludDMyX3QgX19wcmlkKTsKLSBleHRlcm4gYm9vbCBpc2RpZ2l0c19vbmx5KGNvbnN0IGNoYXIgKik7Ci1kaWZmIC0tZ2l0IGEvcXVvdGEvcmVwb3J0LmMgYi9xdW90YS9yZXBvcnQuYwotaW5kZXggZDA1MDljMjUuLmIyZWEzYmJlIDEwMDY0NAotLS0tIGEvcXVvdGEvcmVwb3J0LmMKLSsrKyBiL3F1b3RhL3JlcG9ydC5jCi1AQCAtMzMzLDkgKzMzMyw5IEBAIHJlcG9ydF9oZWFkZXIoCi0gc3RhdGljIGludAotIHJlcG9ydF9tb3VudCgKLSAJRklMRQkJKmZwLAotLQlfX3VpbnQzMl90CWlkLAotKwl1aW50MzJfdAlpZCwKLSAJY2hhcgkJKm5hbWUsCi0tCV9fdWludDMyX3QJKm9pZCwKLSsJdWludDMyX3QJKm9pZCwKLSAJdWludAkJZm9ybSwKLSAJdWludAkJdHlwZSwKLSAJZnNfcGF0aF90CSptb3VudCwKLWRpZmYgLS1naXQgYS9xdW90YS9zdGF0ZS5jIGIvcXVvdGEvc3RhdGUuYwotaW5kZXggMDlkZmE3MDUuLmIwOGJmNTBiIDEwMDY0NAotLS0tIGEvcXVvdGEvc3RhdGUuYwotKysrIGIvcXVvdGEvc3RhdGUuYwotQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgdm9pZAotIHN0YXRlX3RpbWVsaW1pdCgKLSAJRklMRQkJKmZwLAotIAl1aW50CQlmb3JtLAotLQlfX3VpbnQzMl90CXRpbWVsaW1pdCkKLSsJdWludDMyX3QJdGltZWxpbWl0KQotIHsKLSAJZnByaW50ZihmcCwgXygiJXMgZ3JhY2UgdGltZTogJXNcbiIpLAotIAkJZm9ybV90b19zdHJpbmcoZm9ybSksCi1kaWZmIC0tZ2l0IGEvcXVvdGEvdXRpbC5jIGIvcXVvdGEvdXRpbC5jCi1pbmRleCBjYWZkNDVmNS4uMzc4NDBhODYgMTAwNjQ0Ci0tLS0gYS9xdW90YS91dGlsLmMKLSsrKyBiL3F1b3RhL3V0aWwuYwotQEAgLTk0LDggKzk0LDggQEAgcm91bmRfc25wcmludGYoCi0gCXNpemVfdAkJc2l6ZSwKLSAJY29uc3QgY2hhcgkqZm10X3JvdW5kLAotIAljb25zdCBjaGFyCSpmbXRfbm90X3JvdW5kLAotLQlfX3VpbnQ2NF90CXZhbHVlLAotLQlfX3VpbnQ2NF90CWRpdmlzb3IpCi0rCXVpbnQ2NF90CXZhbHVlLAotKwl1aW50NjRfdAlkaXZpc29yKQotIHsKLSAJZG91YmxlCQl2ID0gKGRvdWJsZSl2YWx1ZSAvIGRpdmlzb3I7Ci0gCi1AQCAtMTA3LDIzICsxMDcsMjMgQEAgcm91bmRfc25wcmludGYoCi0gfQotIAotIC8qIEJhc2ljIGJsb2NrcyAoNTEyKSBieXRlcyBhcmUgcmV0dXJuZWQgZnJvbSBxdW90YWN0bCAqLwotLSNkZWZpbmUgQkJTX1RPX0VYQUJZVEVTKGJicykJKChfX3VpbnQ2NF90KShiYnMpPj41MSkKLS0jZGVmaW5lIEJCU19UT19QRVRBQllURVMoYmJzKQkoKF9fdWludDY0X3QpKGJicyk+PjQxKQotLSNkZWZpbmUgQkJTX1RPX1RFUkFCWVRFUyhiYnMpCSgoX191aW50NjRfdCkoYmJzKT4+MzEpCi0tI2RlZmluZSBCQlNfVE9fR0lHQUJZVEVTKGJicykJKChfX3VpbnQ2NF90KShiYnMpPj4yMSkKLS0jZGVmaW5lIEJCU19UT19NRUdBQllURVMoYmJzKQkoKF9fdWludDY0X3QpKGJicyk+PjExKQotLSNkZWZpbmUgQkJTX1RPX0tJTE9CWVRFUyhiYnMpCSgoX191aW50NjRfdCkoYmJzKT4+MSkKLS0KLS0jZGVmaW5lIEJCRVhBQllURQkJKChfX3VpbnQ2NF90KTE8PDUxKQotLSNkZWZpbmUgQkJQRVRBQllURQkJKChfX3VpbnQ2NF90KTE8PDQxKQotLSNkZWZpbmUgQkJURVJBQllURQkJKChfX3VpbnQ2NF90KTE8PDMxKQotLSNkZWZpbmUgQkJHSUdBQllURQkJKChfX3VpbnQ2NF90KTE8PDIxKQotLSNkZWZpbmUgQkJNRUdBQllURQkJKChfX3VpbnQ2NF90KTE8PDExKQotLSNkZWZpbmUgQkJLSUxPQllURQkJKChfX3VpbnQ2NF90KTE8PCAxKQotKyNkZWZpbmUgQkJTX1RPX0VYQUJZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+NTEpCi0rI2RlZmluZSBCQlNfVE9fUEVUQUJZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+NDEpCi0rI2RlZmluZSBCQlNfVE9fVEVSQUJZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+MzEpCi0rI2RlZmluZSBCQlNfVE9fR0lHQUJZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+MjEpCi0rI2RlZmluZSBCQlNfVE9fTUVHQUJZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+MTEpCi0rI2RlZmluZSBCQlNfVE9fS0lMT0JZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+MSkKLSsKLSsjZGVmaW5lIEJCRVhBQllURQkJKCh1aW50NjRfdCkxPDw1MSkKLSsjZGVmaW5lIEJCUEVUQUJZVEUJCSgodWludDY0X3QpMTw8NDEpCi0rI2RlZmluZSBCQlRFUkFCWVRFCQkoKHVpbnQ2NF90KTE8PDMxKQotKyNkZWZpbmUgQkJHSUdBQllURQkJKCh1aW50NjRfdCkxPDwyMSkKLSsjZGVmaW5lIEJCTUVHQUJZVEUJCSgodWludDY0X3QpMTw8MTEpCi0rI2RlZmluZSBCQktJTE9CWVRFCQkoKHVpbnQ2NF90KTE8PCAxKQotIAotIGNoYXIgKgotIGJic190b19zdHJpbmcoCi0tCV9fdWludDY0X3QJdiwKLSsJdWludDY0X3QJdiwKLSAJY2hhcgkJKnNwLAotIAl1aW50CQlzaXplKQotIHsKLUBAIC0xNDYsMTcgKzE0NiwxNyBAQCBiYnNfdG9fc3RyaW5nKAotIAlyZXR1cm4gc3A7Ci0gfQotIAotLSNkZWZpbmUgVEhPVVNBTkQJCSgoX191aW50NjRfdCkxMDAwKQotLSNkZWZpbmUgTUlMTElPTgkJCSgoX191aW50NjRfdCkxMDAwKjEwMDApCi0tI2RlZmluZSBCSUxMSU9OCQkJKChfX3VpbnQ2NF90KTEwMDAqMTAwMCoxMDAwKQotLSNkZWZpbmUgVFJJTExJT04JCSgoX191aW50NjRfdCkxMDAwKjEwMDAqMTAwMCoxMDAwKQotLSNkZWZpbmUgR0FaSUxMSU9OCQkoKF9fdWludDY0X3QpMTAwMCoxMDAwKjEwMDAqMTAwMCoxMDAwKQotLSNkZWZpbmUgUklESUNVTE9VUwkJKChfX3VpbnQ2NF90KTEwMDAqMTAwMCoxMDAwKjEwMDAqMTAwMCoxMDAwKQotLSNkZWZpbmUgU1RPUEFMUkVBRFkJCSgoX191aW50NjRfdCkxMDAwKjEwMDAqMTAwMCoxMDAwKjEwMDAqMTAwMCoxMDAwKQotKyNkZWZpbmUgVEhPVVNBTkQJCSgodWludDY0X3QpMTAwMCkKLSsjZGVmaW5lIE1JTExJT04JCQkoKHVpbnQ2NF90KTEwMDAqMTAwMCkKLSsjZGVmaW5lIEJJTExJT04JCQkoKHVpbnQ2NF90KTEwMDAqMTAwMCoxMDAwKQotKyNkZWZpbmUgVFJJTExJT04JCSgodWludDY0X3QpMTAwMCoxMDAwKjEwMDAqMTAwMCkKLSsjZGVmaW5lIEdBWklMTElPTgkJKCh1aW50NjRfdCkxMDAwKjEwMDAqMTAwMCoxMDAwKjEwMDApCi0rI2RlZmluZSBSSURJQ1VMT1VTCQkoKHVpbnQ2NF90KTEwMDAqMTAwMCoxMDAwKjEwMDAqMTAwMCoxMDAwKQotKyNkZWZpbmUgU1RPUEFMUkVBRFkJCSgodWludDY0X3QpMTAwMCoxMDAwKjEwMDAqMTAwMCoxMDAwKjEwMDAqMTAwMCkKLSAKLSBjaGFyICoKLSBudW1fdG9fc3RyaW5nKAotLQlfX3VpbnQ2NF90CXYsCi0rCXVpbnQ2NF90CXYsCi0gCWNoYXIJCSpzcCwKLSAJdWludAkJc2l6ZSkKLSB7Ci1AQCAtMTgzLDggKzE4Myw4IEBAIG51bV90b19zdHJpbmcoCi0gCi0gY2hhciAqCi0gcGN0X3RvX3N0cmluZygKLS0JX191aW50NjRfdAlwb3J0aW9uLAotLQlfX3VpbnQ2NF90CXdob2xlLAotKwl1aW50NjRfdAlwb3J0aW9uLAotKwl1aW50NjRfdAl3aG9sZSwKLSAJY2hhcgkJKmJ1ZiwKLSAJdWludAkJc2l6ZSkKLSB7Ci1AQCAtMjM3LDcgKzIzNyw3IEBAIHR5cGVfdG9fc3RyaW5nKAotICNkZWZpbmUgSURNQVNLCQkoTklELTEpCi0gCi0gdHlwZWRlZiBzdHJ1Y3QgewotLQlfX3VpbnQzMl90CWlkOwotKwl1aW50MzJfdAlpZDsKLSAJY2hhcgkJbmFtZVtOTUFYKzFdOwotIH0gaWRjYWNoZV90OwotIAotQEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMgaW50CQlwZW50cmllc2xlZnQgPSBOSUQ7Ci0gCi0gc3RhdGljIGlkY2FjaGVfdCAqCi0gZ2V0bmV4dHB3ZW50KAotLQlfX3VpbnQzMl90CWlkLAotKwl1aW50MzJfdAlpZCwKLSAJaW50CQlieWlkKQotIHsKLSAJc3RydWN0IHBhc3N3ZAkqcHc7Ci1AQCAtMjY2LDcgKzI2Niw3IEBAIGdldG5leHRwd2VudCgKLSAKLSBzdGF0aWMgaWRjYWNoZV90ICoKLSBnZXRuZXh0Z3JlbnQoCi0tCV9fdWludDMyX3QJaWQsCi0rCXVpbnQzMl90CWlkLAotIAlpbnQJCWJ5aWQpCi0gewotIAlzdHJ1Y3QgZ3JvdXAJKmdyOwotQEAgLTI4MSw3ICsyODEsNyBAQCBnZXRuZXh0Z3JlbnQoCi0gCi0gc3RhdGljIGlkY2FjaGVfdCAqCi0gZ2V0bmV4dHByZW50KAotLQlfX3VpbnQzMl90CWlkLAotKwl1aW50MzJfdAlpZCwKLSAJaW50CQlieWlkKQotIHsKLSAJZnNfcHJvamVjdF90CSpwcjsKLUBAIC0yOTYsNyArMjk2LDcgQEAgZ2V0bmV4dHByZW50KAotIAotIGNoYXIgKgotIHVpZF90b19uYW1lKAotLQlfX3VpbnQzMl90CWlkKQotKwl1aW50MzJfdAlpZCkKLSB7Ci0gCWlkY2FjaGVfdAkqbmNwLCAqaWRwOwotIAotQEAgLTMzMyw3ICszMzMsNyBAQCB1aWRfdG9fbmFtZSgKLSAKLSBjaGFyICoKLSBnaWRfdG9fbmFtZSgKLS0JX191aW50MzJfdAlpZCkKLSsJdWludDMyX3QJaWQpCi0gewotIAlpZGNhY2hlX3QJKm5jcCwgKmlkcDsKLSAKLUBAIC0zNzAsNyArMzcwLDcgQEAgZ2lkX3RvX25hbWUoCi0gCi0gY2hhciAqCi0gcHJpZF90b19uYW1lKAotLQlfX3VpbnQzMl90CWlkKQotKwl1aW50MzJfdAlpZCkKLSB7Ci0gCWlkY2FjaGVfdAkqbmNwLCAqaWRwOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9SRUFETUUgYi9yZXBhaXIvUkVBRE1FCi1pbmRleCA3ZjE2OGU2OS4uNDY5MjQ2M2QgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvUkVBRE1FCi0rKysgYi9yZXBhaXIvUkVBRE1FCi1AQCAtMTg5LDcgKzE4OSw3IEBAIEQgLSAwKSBsb29rIGF0IHVzYWdlIG9mIFhGU19NQUtFX0lQVFIoKS4gIEl0IGRvZXMgdGhlIHJpZ2h0Ci0gCi0gCi0gRCAtIDApIGxvb2sgYXQgcmVmZXJlbmNlcyB0byBYRlNfSU5PREVTX1BFUl9DSFVOSy4gIGNoYW5nZSB0aGUKLS0Jb25lcyB0aGF0IHJlYWxseSBtZWFuIHNpemVvZihfX3VpbnQ2NF90KSpOQkJZIHRvCi0rCW9uZXMgdGhhdCByZWFsbHkgbWVhbiBzaXplb2YodWludDY0X3QpKk5CQlkgdG8KLSAJc29tZXRoaW5nIGVsc2UgKGxpa2UgdGhhdCBvbmx5IGRlZmluZWQgYXMgYSBjb25zdGFudAotIAlJTk9TX1BFUl9JUkVDLiB0aGlzIGlzbid0IGFzIGltcG9ydGFudCBzaW5jZQotIAlYRlNfSU5PREVTX1BFUl9DSFVOSyB3aWxsIG5ldmVyIGNoYW5nCi1kaWZmIC0tZ2l0IGEvcmVwYWlyL2FnaGVhZGVyLmggYi9yZXBhaXIvYWdoZWFkZXIuaAotaW5kZXggNmIyOTc0Y2EuLjJmNzI0NmQyIDEwMDY0NAotLS0tIGEvcmVwYWlyL2FnaGVhZGVyLmgKLSsrKyBiL3JlcGFpci9hZ2hlYWRlci5oCi1AQCAtMjAsNyArMjAsNyBAQCB0eXBlZGVmIHN0cnVjdCBmc19nZW9tZXRyeSAgewotIAkvKgotIAkgKiB0aGVzZSB0eXBlcyBzaG91bGQgbWF0Y2ggdGhlIHN1cGVyYmxvY2sgdHlwZXMKLSAJICovCi0tCV9fdWludDMyX3QJc2JfYmxvY2tzaXplOwkvKiBibG9ja3NpemUgKGJ5dGVzKSAqLwotKwl1aW50MzJfdAlzYl9ibG9ja3NpemU7CS8qIGJsb2Nrc2l6ZSAoYnl0ZXMpICovCi0gCXhmc19yZnNibG9ja190CXNiX2RibG9ja3M7CS8qICMgZGF0YSBibG9ja3MgKi8KLSAJeGZzX3Jmc2Jsb2NrX3QJc2JfcmJsb2NrczsJLyogIyByZWFsdGltZSBibG9ja3MgKi8KLSAJeGZzX3J0YmxvY2tfdAlzYl9yZXh0ZW50czsJLyogIyByZWFsdGltZSBleHRlbnRzICovCi1AQCAtMzAsOSArMzAsOSBAQCB0eXBlZGVmIHN0cnVjdCBmc19nZW9tZXRyeSAgewotIAl4ZnNfYWdudW1iZXJfdAlzYl9hZ2NvdW50OwkvKiAjIG9mIGFncyAqLwotIAl4ZnNfZXh0bGVuX3QJc2JfcmJtYmxvY2tzOwkvKiAjIG9mIHJ0IGJpdG1hcCBibG9ja3MgKi8KLSAJeGZzX2V4dGxlbl90CXNiX2xvZ2Jsb2NrczsJLyogIyBvZiBsb2cgYmxvY2tzICovCi0tCV9fdWludDE2X3QJc2Jfc2VjdHNpemU7CS8qIHZvbHVtZSBzZWN0b3Igc2l6ZSAoYnl0ZXMpICovCi0tCV9fdWludDE2X3QJc2JfaW5vZGVzaXplOwkvKiBpbm9kZSBzaXplIChieXRlcykgKi8KLS0JX191aW50OF90CXNiX2ltYXhfcGN0OwkvKiBtYXggJSBvZiBmcyBmb3IgaW5vZGUgc3BhY2UgKi8KLSsJdWludDE2X3QJc2Jfc2VjdHNpemU7CS8qIHZvbHVtZSBzZWN0b3Igc2l6ZSAoYnl0ZXMpICovCi0rCXVpbnQxNl90CXNiX2lub2Rlc2l6ZTsJLyogaW5vZGUgc2l6ZSAoYnl0ZXMpICovCi0rCXVpbnQ4X3QJCXNiX2ltYXhfcGN0OwkvKiBtYXggJSBvZiBmcyBmb3IgaW5vZGUgc3BhY2UgKi8KLSAKLSAJLyoKLSAJICogdGhlc2UgZG9uJ3QgaGF2ZSB0byBtYXRjaCB0aGUgc3VwZXJibG9jayB0eXBlcyBidXQgYXJlIHBsYWNlZAotQEAgLTQ5LDEwICs0OSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBmc19nZW9tZXRyeSAgewotIAkvKgotIAkgKiBmaWVsZHMgYWZ0ZXIgdGhpcyBwb2ludCBoYXZlIHRvIGJlIGNoZWNrZWQgbWFudWFsbHkgaW4gY29tcGFyZV9zYigpCi0gCSAqLwotLQlfX3VpbnQ4X3QJc2Jfc2hhcmVkX3ZuOwkvKiBzaGFyZWQgdmVyc2lvbiBudW1iZXIgKi8KLSsJdWludDhfdAkJc2Jfc2hhcmVkX3ZuOwkvKiBzaGFyZWQgdmVyc2lvbiBudW1iZXIgKi8KLSAJeGZzX2V4dGxlbl90CXNiX2lub2FsaWdubXQ7CS8qIGlub2RlIGNodW5rIGFsaWdubWVudCwgZnNibG9ja3MgKi8KLS0JX191aW50MzJfdAlzYl91bml0OwkvKiBzdHJpcGUgb3IgcmFpZCB1bml0ICovCi0tCV9fdWludDMyX3QJc2Jfd2lkdGg7CS8qIHN0cmlwZSBvciB3aWR0aCB1bml0ICovCi0rCXVpbnQzMl90CXNiX3VuaXQ7CS8qIHN0cmlwZSBvciByYWlkIHVuaXQgKi8KLSsJdWludDMyX3QJc2Jfd2lkdGg7CS8qIHN0cmlwZSBvciB3aWR0aCB1bml0ICovCi0gCi0gCS8qCi0gCSAqIHRoZXNlIGRvbid0IGhhdmUgdG8gbWF0Y2gsIHRoZXkgdHJhY2sgc3VwZXJibG9jayBwcm9wZXJ0aWVzCi1kaWZmIC0tZ2l0IGEvcmVwYWlyL2F0dHJfcmVwYWlyLmggYi9yZXBhaXIvYXR0cl9yZXBhaXIuaAotaW5kZXggNzAxMGU0ZmYuLjI5NGZhZDQ0IDEwMDY0NAotLS0tIGEvcmVwYWlyL2F0dHJfcmVwYWlyLmgKLSsrKyBiL3JlcGFpci9hdHRyX3JlcGFpci5oCi1AQCAtMzIsMTAgKzMyLDEwIEBACi0gI2RlZmluZSBBQ0xfV1JJVEUJMDIKLSAjZGVmaW5lIEFDTF9FWEVDVVRFCTAxCi0gCi0tdHlwZWRlZiBfX3VpbnQxNl90CXhmc19hY2xfcGVybV90OwotLXR5cGVkZWYgX19pbnQzMl90CXhmc19hY2xfdHlwZV90OwotLXR5cGVkZWYgX19pbnQzMl90CXhmc19hY2xfdGFnX3Q7Ci0tdHlwZWRlZiBfX2ludDMyX3QJeGZzX2FjbF9pZF90OwotK3R5cGVkZWYgdWludDE2X3QJeGZzX2FjbF9wZXJtX3Q7Ci0rdHlwZWRlZiBpbnQzMl90CQl4ZnNfYWNsX3R5cGVfdDsKLSt0eXBlZGVmIGludDMyX3QJCXhmc19hY2xfdGFnX3Q7Ci0rdHlwZWRlZiBpbnQzMl90CQl4ZnNfYWNsX2lkX3Q7Ci0gCi0gLyoKLSAgKiAiaWNhY2wiID0gaW4tY29yZSBBQ0wuIFRoZXJlIGlzIG5vIGVxdWl2YWxlbnQgaW4gdGhlIFhGUyBrZXJuZWwgY29kZSwKLUBAIC01MCw3ICs1MCw3IEBAIHN0cnVjdCB4ZnNfaWNhY2xfZW50cnkgewotIH07Ci0gCi0gc3RydWN0IHhmc19pY2FjbCB7Ci0tCV9faW50MzJfdAkJYWNsX2NudDsKLSsJaW50MzJfdAkJCWFjbF9jbnQ7Ci0gCXN0cnVjdCB4ZnNfaWNhY2xfZW50cnkJYWNsX2VudHJ5WzBdOwotIH07Ci0gCi1AQCAtNTksMTQgKzU5LDE0IEBAIHN0cnVjdCB4ZnNfaWNhY2wgewotICAqLwotICNkZWZpbmUgWEZTX01BQ19NQVhfU0VUUwkyNTAKLSB0eXBlZGVmIHN0cnVjdCB4ZnNfbWFjX2xhYmVsIHsKLS0JX191aW50OF90ICAgICAgIG1sX21zZW5fdHlwZTsJLyogTVNFTiBsYWJlbCB0eXBlICovCi0tCV9fdWludDhfdCAgICAgICBtbF9taW50X3R5cGU7CS8qIE1JTlQgbGFiZWwgdHlwZSAqLwotLQlfX3VpbnQ4X3QgICAgICAgbWxfbGV2ZWw7CS8qIEhpZXJhcmNoaWNhbCBsZXZlbCAqLwotLQlfX3VpbnQ4X3QgICAgICAgbWxfZ3JhZGU7CS8qIEhpZXJhcmNoaWNhbCBncmFkZSAqLwotLQlfX3VpbnQxNl90ICAgICAgbWxfY2F0Y291bnQ7CS8qIENhdGVnb3J5IGNvdW50ICovCi0tCV9fdWludDE2X3QgICAgICBtbF9kaXZjb3VudDsJLyogRGl2aXNpb24gY291bnQgKi8KLSsJdWludDhfdCAgICAgICBtbF9tc2VuX3R5cGU7CS8qIE1TRU4gbGFiZWwgdHlwZSAqLwotKwl1aW50OF90ICAgICAgIG1sX21pbnRfdHlwZTsJLyogTUlOVCBsYWJlbCB0eXBlICovCi0rCXVpbnQ4X3QgICAgICAgbWxfbGV2ZWw7CS8qIEhpZXJhcmNoaWNhbCBsZXZlbCAqLwotKwl1aW50OF90ICAgICAgIG1sX2dyYWRlOwkvKiBIaWVyYXJjaGljYWwgZ3JhZGUgKi8KLSsJdWludDE2X3QgICAgICBtbF9jYXRjb3VudDsJLyogQ2F0ZWdvcnkgY291bnQgKi8KLSsJdWludDE2X3QgICAgICBtbF9kaXZjb3VudDsJLyogRGl2aXNpb24gY291bnQgKi8KLSAJCQkJCS8qIENhdGVnb3J5IHNldCwgdGhlbiBEaXZpc2lvbiBzZXQgKi8KLS0JX191aW50MTZfdCAgICAgIG1sX2xpc3RbWEZTX01BQ19NQVhfU0VUU107Ci0rCXVpbnQxNl90ICAgICAgbWxfbGlzdFtYRlNfTUFDX01BWF9TRVRTXTsKLSB9IHhmc19tYWNfbGFiZWxfdDsKLSAKLSAvKiBNU0VOIGxhYmVsIHR5cGUgbmFtZXMuIENob29zZSBhbiB1cHBlciBjYXNlIEFTQ0lJIGNoYXJhY3Rlci4gICovCi1AQCAtOTMsNyArOTMsNyBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfbWFjX2xhYmVsIHsKLSAvKgotICAqIENhcGFiaWxpdGllcyAoSVJJWCkKLSAgKi8KLS10eXBlZGVmIF9fdWludDY0X3QgeGZzX2NhcF92YWx1ZV90OwotK3R5cGVkZWYgdWludDY0X3QgeGZzX2NhcF92YWx1ZV90OwotIAotIHR5cGVkZWYgc3RydWN0IHhmc19jYXBfc2V0IHsKLSAJeGZzX2NhcF92YWx1ZV90CWNhcF9lZmZlY3RpdmU7ICAvKiB1c2UgaW4gY2FwYWJpbGl0eSBjaGVja3MgKi8KLWRpZmYgLS1naXQgYS9yZXBhaXIvYXZsNjQuYyBiL3JlcGFpci9hdmw2NC5jCi1pbmRleCA1MWNkNjI0Yy4uOGY0YTEyMTEgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvYXZsNjQuYwotKysrIGIvcmVwYWlyL2F2bDY0LmMKLUBAIC03MCw4ICs3MCw4IEBAIGF2bDY0X2NoZWNrdHJlZSgKLSAJYXZsNjRub2RlX3QgKnJvb3QpCi0gewotIAlhdmw2NG5vZGVfdCAqbmxhc3QsICpubmV4dCwgKm5wOwotLQlfX3VpbnQ2NF90IG9mZnNldCA9IDA7Ci0tCV9fdWludDY0X3QgZW5kOwotKwl1aW50NjRfdCBvZmZzZXQgPSAwOwotKwl1aW50NjRfdCBlbmQ7Ci0gCi0gCW5sYXN0ID0gbm5leHQgPSByb290OwotIAotQEAgLTU4Myw4ICs1ODMsOCBAQCBhdHRhY2g6Ci0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2ZpbmRhbnlyYW5nZSgKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdCBzdGFydCwKLS0JX191aW50NjRfdCBlbmQsCi0rCXVpbnQ2NF90IHN0YXJ0LAotKwl1aW50NjRfdCBlbmQsCi0gCWludAljaGVja2xlbikKLSB7Ci0gCWF2bDY0bm9kZV90ICpucCA9IHRyZWUtPmF2bF9yb290OwotQEAgLTY1NSw3ICs2NTUsNyBAQCBhdmw2NF9maW5kYW55cmFuZ2UoCi0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2ZpbmRyYW5nZSgKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdCB2YWx1ZSkKLSsJdWludDY0X3QgdmFsdWUpCi0gewotIAlhdmw2NG5vZGVfdCAqbnAgPSB0cmVlLT5hdmxfcm9vdDsKLSAKLUBAIC02ODIsMTAgKzY4MiwxMCBAQCBhdmw2NF9maW5kcmFuZ2UoCi0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2ZpbmQoCi0gCWF2bDY0dHJlZV9kZXNjX3QgKnRyZWUsCi0tCV9fdWludDY0X3QgdmFsdWUpCi0rCXVpbnQ2NF90IHZhbHVlKQotIHsKLSAJYXZsNjRub2RlX3QgKm5wID0gdHJlZS0+YXZsX3Jvb3Q7Ci0tCV9fdWludDY0X3QgbnZhbHVlOwotKwl1aW50NjRfdCBudmFsdWU7Ci0gCi0gCXdoaWxlIChucCkgewotIAkJbnZhbHVlID0gQVZMX1NUQVJUKHRyZWUsIG5wKTsKLUBAIC05MDksOCArOTA5LDggQEAgc3RhdGljCi0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2luc2VydF9maW5kX2dyb3d0aCgKLSAJCWF2bDY0dHJlZV9kZXNjX3QgKnRyZWUsCi0tCQlfX3VpbnQ2NF90IHN0YXJ0LAkvKiByYW5nZSBzdGFydCBhdCBzdGFydCwgKi8KLS0JCV9fdWludDY0X3QgZW5kLAkvKiBleGNsdXNpdmUgKi8KLSsJCXVpbnQ2NF90IHN0YXJ0LAkvKiByYW5nZSBzdGFydCBhdCBzdGFydCwgKi8KLSsJCXVpbnQ2NF90IGVuZCwJLyogZXhjbHVzaXZlICovCi0gCQlpbnQgICAqZ3Jvd3RocCkJLyogT1VUICovCi0gewotIAlhdmw2NG5vZGVfdCAqcm9vdCA9IHRyZWUtPmF2bF9yb290OwotQEAgLTk2Myw3ICs5NjMsNyBAQCBhdmw2NF9pbnNlcnRfZ3JvdygKLSAJaW50IGdyb3d0aCkKLSB7Ci0gCWF2bDY0bm9kZV90ICpubmV4dDsKLS0JX191aW50NjRfdCBzdGFydCA9IEFWTF9TVEFSVCh0cmVlLCBuZXdub2RlKTsKLSsJdWludDY0X3Qgc3RhcnQgPSBBVkxfU1RBUlQodHJlZSwgbmV3bm9kZSk7Ci0gCi0gCWlmIChncm93dGggPT0gQVZMX0JBQ0spIHsKLSAKLUBAIC0xMDA1LDggKzEwMDUsOCBAQCBhdmw2NF9pbnNlcnQoCi0gCWF2bDY0bm9kZV90ICpuZXdub2RlKQotIHsKLSAJYXZsNjRub2RlX3QgKm5wOwotLQlfX3VpbnQ2NF90IHN0YXJ0ID0gQVZMX1NUQVJUKHRyZWUsIG5ld25vZGUpOwotLQlfX3VpbnQ2NF90IGVuZCA9IEFWTF9FTkQodHJlZSwgbmV3bm9kZSk7Ci0rCXVpbnQ2NF90IHN0YXJ0ID0gQVZMX1NUQVJUKHRyZWUsIG5ld25vZGUpOwotKwl1aW50NjRfdCBlbmQgPSBBVkxfRU5EKHRyZWUsIG5ld25vZGUpOwotIAlpbnQgZ3Jvd3RoOwotIAotIAlBU1NFUlQobmV3bm9kZSk7Ci1AQCAtMTE1OSwxNiArMTE1OSwxNiBAQCBhdmw2NG9wc190IGF2bF9kZWJ1Z19vcHMgPSB7Ci0gCWF2bF9kZWJ1Z19lbmQsCi0gfQotIAotLXN0YXRpYyBfX3VpbnQ2NF90Ci0rc3RhdGljIHVpbnQ2NF90Ci0gYXZsNjRfZGVidWdfc3RhcnQoYXZsNjRub2RlX3QgKm5vZGUpCi0gewotLQlyZXR1cm4gKF9fdWludDY0X3QpKHN0cnVjdCBhdmxfZGVidWdfbm9kZSAqKW5vZGUtPmF2bF9zdGFydDsKLSsJcmV0dXJuICh1aW50NjRfdCkoc3RydWN0IGF2bF9kZWJ1Z19ub2RlICopbm9kZS0+YXZsX3N0YXJ0OwotIH0KLSAKLS1zdGF0aWMgX191aW50NjRfdAotK3N0YXRpYyB1aW50NjRfdAotIGF2bDY0X2RlYnVnX2VuZChhdmw2NG5vZGVfdCAqbm9kZSkKLSB7Ci0tCXJldHVybiAoX191aW50NjRfdCkKLSsJcmV0dXJuICh1aW50NjRfdCkKLSAJCSgoc3RydWN0IGF2bF9kZWJ1Z19ub2RlICopbm9kZS0+YXZsX3N0YXJ0ICsKLSAJCSAoc3RydWN0IGF2bF9kZWJ1Z19ub2RlICopbm9kZS0+YXZsX3NpemUpOwotIH0KLUBAIC0xMzA0LDcgKzEzMDQsNyBAQCBtYWluKCkKLSBhdmw2NG5vZGVfdCAqCi0gYXZsNjRfZmluZGFkamFjZW50KAotIAlhdmw2NHRyZWVfZGVzY190ICp0cmVlLAotLQlfX3VpbnQ2NF90IHZhbHVlLAotKwl1aW50NjRfdCB2YWx1ZSwKLSAJaW50CQlkaXIpCi0gewotIAlhdmw2NG5vZGVfdCAqbnAgPSB0cmVlLT5hdmxfcm9vdDsKLUBAIC0xMzc4LDggKzEzNzgsOCBAQCBhdmw2NF9maW5kYWRqYWNlbnQoCi0gdm9pZAotIGF2bDY0X2ZpbmRyYW5nZXMoCi0gCWF2bDY0dHJlZV9kZXNjX3QgKnRyZWUsCi0tCV9fdWludDY0X3Qgc3RhcnQsCi0tCV9fdWludDY0X3QgZW5kLAotKwl1aW50NjRfdCBzdGFydCwKLSsJdWludDY0X3QgZW5kLAotIAlhdmw2NG5vZGVfdAkgICAgICAgICoqc3RhcnRwLAotIAlhdmw2NG5vZGVfdAkJKiplbmRwKQotIHsKLWRpZmYgLS1naXQgYS9yZXBhaXIvYXZsNjQuaCBiL3JlcGFpci9hdmw2NC5oCi1pbmRleCBmZDE5MzIxOC4uY2QwNzlhMDAgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvYXZsNjQuaAotKysrIGIvcmVwYWlyL2F2bDY0LmgKLUBAIC0zMiw4ICszMiw4IEBAIHR5cGVkZWYgc3RydWN0CWF2bDY0bm9kZSB7Ci0gICogYXZsLXRyZWUgb3BlcmF0aW9ucwotICAqLwotIHR5cGVkZWYgc3RydWN0IGF2bDY0b3BzIHsKLS0JX191aW50NjRfdAkoKmF2bF9zdGFydCkoYXZsNjRub2RlX3QgKik7Ci0tCV9fdWludDY0X3QJKCphdmxfZW5kKShhdmw2NG5vZGVfdCAqKTsKLSsJdWludDY0X3QJKCphdmxfc3RhcnQpKGF2bDY0bm9kZV90ICopOwotKwl1aW50NjRfdAkoKmF2bF9lbmQpKGF2bDY0bm9kZV90ICopOwotIH0gYXZsNjRvcHNfdDsKLSAKLSAvKgotQEAgLTg5LDMyICs4OSwzMiBAQCBhdmw2NF9pbml0X3RyZWUoCi0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2ZpbmRyYW5nZSgKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdCB2YWx1ZSk7Ci0rCXVpbnQ2NF90IHZhbHVlKTsKLSAKLSBhdmw2NG5vZGVfdCAqCi0gYXZsNjRfZmluZCgKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdCB2YWx1ZSk7Ci0rCXVpbnQ2NF90IHZhbHVlKTsKLSAKLSBhdmw2NG5vZGVfdCAqCi0gYXZsNjRfZmluZGFueXJhbmdlKAotIAlhdmw2NHRyZWVfZGVzY190ICp0cmVlLAotLQlfX3VpbnQ2NF90CXN0YXJ0LAotLQlfX3VpbnQ2NF90CWVuZCwKLSsJdWludDY0X3QJc3RhcnQsCi0rCXVpbnQ2NF90CWVuZCwKLSAJaW50ICAgICBjaGVja2xlbik7Ci0gCi0gCi0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2ZpbmRhZGphY2VudCgKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdAl2YWx1ZSwKLSsJdWludDY0X3QJdmFsdWUsCi0gCWludAkJZGlyKTsKLSAKLSB2b2lkCi0gYXZsNjRfZmluZHJhbmdlcygKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdAlzdGFydCwKLS0JX191aW50NjRfdAllbmQsCi0rCXVpbnQ2NF90CXN0YXJ0LAotKwl1aW50NjRfdAllbmQsCi0gCWF2bDY0bm9kZV90CSAgICAgICAgKipzdGFydHAsCi0gCWF2bDY0bm9kZV90CQkqKmVuZHApOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9kaW5vZGUuYyBiL3JlcGFpci9kaW5vZGUuYwotaW5kZXggZDY2NGY4N2EuLmRhODcyMTc4IDEwMDY0NAotLS0tIGEvcmVwYWlyL2Rpbm9kZS5jCi0rKysgYi9yZXBhaXIvZGlub2RlLmMKLUBAIC03NDYsNyArNzQ2LDcgQEAgXygiJXMgZm9yayBpbiBpbm8gJSIgUFJJdTY0ICIgY2xhaW1zIGR1cCBleHRlbnQsICIKLSAJCQljYXNlIFhSX0VfRlJFRTE6Ci0gCQkJCWRvX3dhcm4oCi0gXygiJXMgZm9yayBpbiBpbm8gJSIgUFJJdTY0ICIgY2xhaW1zIGZyZWUgYmxvY2sgJSIgUFJJdTY0ICJcbiIpLAotLQkJCQkJZm9ya25hbWUsIGlubywgKF9fdWludDY0X3QpIGIpOwotKwkJCQkJZm9ya25hbWUsIGlubywgKHVpbnQ2NF90KSBiKTsKLSAJCQkJLyogZmFsbCB0aHJvdWdoIC4uLiAqLwotIAkJCWNhc2UgWFJfRV9JTlVTRTE6CS8qIHNlZW4gYnkgcm1hcCAqLwotIAkJCWNhc2UgWFJfRV9VTktOT1dOOgotQEAgLTkyMyw3ICs5MjMsNyBAQCBwcm9jZXNzX2J0aW5vZGUoCi0gCWludAkJCXR5cGUsCi0gCWludAkJCSpkaXJ0eSwKLSAJeGZzX3Jmc2Jsb2NrX3QJCSp0b3QsCi0tCV9fdWludDY0X3QJCSpuZXgsCi0rCXVpbnQ2NF90CQkqbmV4LAotIAlibGttYXBfdAkJKipibGttYXBwLAotIAlpbnQJCQl3aGljaGZvcmssCi0gCWludAkJCWNoZWNrX2R1cHMpCi1AQCAtOTM5LDcgKzkzOSw3IEBAIHByb2Nlc3NfYnRpbm9kZSgKLSAJaW50CQkJbGV2ZWw7Ci0gCWludAkJCW51bXJlY3M7Ci0gCWJtYXBfY3Vyc29yX3QJCWN1cnNvcjsKLS0JX191aW50NjRfdAkJbWFnaWM7Ci0rCXVpbnQ2NF90CQltYWdpYzsKLSAKLSAJZGliID0gKHhmc19ibWRyX2Jsb2NrX3QgKilYRlNfREZPUktfUFRSKGRpcCwgd2hpY2hmb3JrKTsKLSAJbGlubyA9IFhGU19BR0lOT19UT19JTk8obXAsIGFnbm8sIGlubyk7Ci1AQCAtMTA5OCw3ICsxMDk4LDcgQEAgcHJvY2Vzc19leGlub2RlKAotIAlpbnQJCQl0eXBlLAotIAlpbnQJCQkqZGlydHksCi0gCXhmc19yZnNibG9ja190CQkqdG90LAotLQlfX3VpbnQ2NF90CQkqbmV4LAotKwl1aW50NjRfdAkJKm5leCwKLSAJYmxrbWFwX3QJCSoqYmxrbWFwcCwKLSAJaW50CQkJd2hpY2hmb3JrLAotIAlpbnQJCQljaGVja19kdXBzKQotQEAgLTEyMDAsMTQgKzEyMDAsMTQgQEAgcHJvY2Vzc19zeW1saW5rX2V4dGxpc3QoeGZzX21vdW50X3QgKm1wLCB4ZnNfaW5vX3QgbGlubywgeGZzX2Rpbm9kZV90ICpkaW5vKQotIAkJZG9fd2FybigKLSBfKCJtaXNtYXRjaCBiZXR3ZWVuIGZvcm1hdCAoJWQpIGFuZCBzaXplICglIiBQUklkNjQgIikgaW4gc3ltbGluayBpbm8gJSIgUFJJdTY0ICJcbiIpLAotIAkJCWRpbm8tPmRpX2Zvcm1hdCwKLS0JCQkoX19pbnQ2NF90KWJlNjRfdG9fY3B1KGRpbm8tPmRpX3NpemUpLCBsaW5vKTsKLSsJCQkoaW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSwgbGlubyk7Ci0gCQlyZXR1cm4gMTsKLSAJfQotIAlpZiAoZGluby0+ZGlfZm9ybWF0ID09IFhGU19ESU5PREVfRk1UX0xPQ0FMKSB7Ci0gCQlkb193YXJuKAotIF8oIm1pc21hdGNoIGJldHdlZW4gZm9ybWF0ICglZCkgYW5kIHNpemUgKCUiIFBSSWQ2NCAiKSBpbiBzeW1saW5rIGlub2RlICUiIFBSSXU2NCAiXG4iKSwKLSAJCQlkaW5vLT5kaV9mb3JtYXQsCi0tCQkJKF9faW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSwgbGlubyk7Ci0rCQkJKGludDY0X3QpYmU2NF90b19jcHUoZGluby0+ZGlfc2l6ZSksIGxpbm8pOwotIAkJcmV0dXJuIDE7Ci0gCX0KLSAKLUBAIC0xNDU0LDIyICsxNDU0LDIyIEBAIF8oImlub2RlICUiIFBSSXU2NCAiIGhhcyBiYWQgaW5vZGUgdHlwZSAoSUZNTlQpXG4iKSwgbGlubyk7Ci0gCQljYXNlIFhSX0lOT19DSFJERVY6Ci0gCQkJZG9fd2FybigKLSBfKCJzaXplIG9mIGNoYXJhY3RlciBkZXZpY2UgaW5vZGUgJSIgUFJJdTY0ICIgIT0gMCAoJSIgUFJJZDY0ICIgYnl0ZXMpXG4iKSwgbGlubywKLS0JCQkJKF9faW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSk7Ci0rCQkJCShpbnQ2NF90KWJlNjRfdG9fY3B1KGRpbm8tPmRpX3NpemUpKTsKLSAJCQlicmVhazsKLSAJCWNhc2UgWFJfSU5PX0JMS0RFVjoKLSAJCQlkb193YXJuKAotIF8oInNpemUgb2YgYmxvY2sgZGV2aWNlIGlub2RlICUiIFBSSXU2NCAiICE9IDAgKCUiIFBSSWQ2NCAiIGJ5dGVzKVxuIiksIGxpbm8sCi0tCQkJCShfX2ludDY0X3QpYmU2NF90b19jcHUoZGluby0+ZGlfc2l6ZSkpOwotKwkJCQkoaW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSk7Ci0gCQkJYnJlYWs7Ci0gCQljYXNlIFhSX0lOT19TT0NLOgotIAkJCWRvX3dhcm4oCi0gXygic2l6ZSBvZiBzb2NrZXQgaW5vZGUgJSIgUFJJdTY0ICIgIT0gMCAoJSIgUFJJZDY0ICIgYnl0ZXMpXG4iKSwgbGlubywKLS0JCQkJKF9faW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSk7Ci0rCQkJCShpbnQ2NF90KWJlNjRfdG9fY3B1KGRpbm8tPmRpX3NpemUpKTsKLSAJCQlicmVhazsKLSAJCWNhc2UgWFJfSU5PX0ZJRk86Ci0gCQkJZG9fd2FybigKLSBfKCJzaXplIG9mIGZpZm8gaW5vZGUgJSIgUFJJdTY0ICIgIT0gMCAoJSIgUFJJZDY0ICIgYnl0ZXMpXG4iKSwgbGlubywKLS0JCQkJKF9faW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSk7Ci0rCQkJCShpbnQ2NF90KWJlNjRfdG9fY3B1KGRpbm8tPmRpX3NpemUpKTsKLSAJCQlicmVhazsKLSAJCWRlZmF1bHQ6Ci0gCQkJZG9fd2FybihfKCJJbnRlcm5hbCBlcnJvciAtIHByb2Nlc3NfbWlzY19pbm9fdHlwZXMsICIKLUBAIC0xNzQzLDEyICsxNzQzLDEyIEBAIF8oImZvdW5kIGlub2RlICUiIFBSSXU2NCAiIGNsYWltaW5nIHRvIGJlIGEgcmVhbC10aW1lIGZpbGVcbiIpLCBsaW5vKTsKLSAJCWJyZWFrOwotIAotIAljYXNlIFhSX0lOT19SVEJJVE1BUDoKLS0JCWlmIChzaXplICE9IChfX2ludDY0X3QpbXAtPm1fc2Iuc2JfcmJtYmxvY2tzICoKLSsJCWlmIChzaXplICE9IChpbnQ2NF90KW1wLT5tX3NiLnNiX3JibWJsb2NrcyAqCi0gCQkJCQltcC0+bV9zYi5zYl9ibG9ja3NpemUpIHsKLSAJCQlkb193YXJuKAotIF8oInJlYWx0aW1lIGJpdG1hcCBpbm9kZSAlIiBQUkl1NjQgIiBoYXMgYmFkIHNpemUgJSIgUFJJZDY0ICIgKHNob3VsZCBiZSAlIiBQUkl1NjQgIilcbiIpLAotIAkJCQlsaW5vLCBzaXplLAotLQkJCQkoX19pbnQ2NF90KSBtcC0+bV9zYi5zYl9yYm1ibG9ja3MgKgotKwkJCQkoaW50NjRfdCkgbXAtPm1fc2Iuc2JfcmJtYmxvY2tzICoKLSAJCQkJCW1wLT5tX3NiLnNiX2Jsb2Nrc2l6ZSk7Ci0gCQkJcmV0dXJuIDE7Ci0gCQl9Ci1AQCAtMTgxNyw4ICsxODE3LDggQEAgc3RhdGljIGludAotIHByb2Nlc3NfaW5vZGVfYmxvY2tzX2FuZF9leHRlbnRzKAotIAl4ZnNfZGlub2RlX3QJKmRpbm8sCi0gCXhmc19yZnNibG9ja190CW5ibG9ja3MsCi0tCV9fdWludDY0X3QJbmV4dGVudHMsCi0tCV9fdWludDY0X3QJYW5leHRlbnRzLAotKwl1aW50NjRfdAluZXh0ZW50cywKLSsJdWludDY0X3QJYW5leHRlbnRzLAotIAl4ZnNfaW5vX3QJbGlubywKLSAJaW50CQkqZGlydHkpCi0gewotQEAgLTE5MDgsNyArMTkwOCw3IEBAIHByb2Nlc3NfaW5vZGVfZGF0YV9mb3JrKAotIAlpbnQJCXR5cGUsCi0gCWludAkJKmRpcnR5LAotIAl4ZnNfcmZzYmxvY2tfdAkqdG90YmxvY2tzLAotLQlfX3VpbnQ2NF90CSpuZXh0ZW50cywKLSsJdWludDY0X3QJKm5leHRlbnRzLAotIAlibGttYXBfdAkqKmRibGttYXAsCi0gCWludAkJY2hlY2tfZHVwcykKLSB7Ci1AQCAtMjAxNyw3ICsyMDE3LDcgQEAgcHJvY2Vzc19pbm9kZV9hdHRyX2ZvcmsoCi0gCWludAkJdHlwZSwKLSAJaW50CQkqZGlydHksCi0gCXhmc19yZnNibG9ja190CSphdG90YmxvY2tzLAotLQlfX3VpbnQ2NF90CSphbmV4dGVudHMsCi0rCXVpbnQ2NF90CSphbmV4dGVudHMsCi0gCWludAkJY2hlY2tfZHVwcywKLSAJaW50CQlleHRyYV9hdHRyX2NoZWNrLAotIAlpbnQJCSpyZXR2YWwpCi1AQCAtMjIyOCw4ICsyMjI4LDggQEAgcHJvY2Vzc19kaW5vZGVfaW50KHhmc19tb3VudF90ICptcCwKLSAJaW50CQkJZGlfbW9kZTsKLSAJaW50CQkJdHlwZTsKLSAJaW50CQkJcmV0dmFsID0gMDsKLS0JX191aW50NjRfdAkJbmV4dGVudHM7Ci0tCV9fdWludDY0X3QJCWFuZXh0ZW50czsKLSsJdWludDY0X3QJCW5leHRlbnRzOwotKwl1aW50NjRfdAkJYW5leHRlbnRzOwotIAl4ZnNfaW5vX3QJCWxpbm87Ci0gCWNvbnN0IGludAkJaXNfZnJlZSA9IDA7Ci0gCWNvbnN0IGludAkJaXNfdXNlZCA9IDE7Ci1AQCAtMjM0Niw3ICsyMzQ2LDcgQEAgXygiaW5vZGUgaWRlbnRpZmllciAlbGx1IG1pc21hdGNoIG9uIGlub2RlICUiIFBSSXU2NCAiXG4iKSwKLSAJCWlmICghdW5jZXJ0YWluKQotIAkJCWRvX3dhcm4oCi0gXygiYmFkIChuZWdhdGl2ZSkgc2l6ZSAlIiBQUklkNjQgIiBvbiBpbm9kZSAlIiBQUkl1NjQgIlxuIiksCi0tCQkJCShfX2ludDY0X3QpYmU2NF90b19jcHUoZGluby0+ZGlfc2l6ZSksCi0rCQkJCShpbnQ2NF90KWJlNjRfdG9fY3B1KGRpbm8tPmRpX3NpemUpLAotIAkJCQlsaW5vKTsKLSAJCWlmICh2ZXJpZnlfbW9kZSkKLSAJCQlyZXR1cm4gMTsKLWRpZmYgLS1naXQgYS9yZXBhaXIvZGlub2RlLmggYi9yZXBhaXIvZGlub2RlLmgKLWluZGV4IDYxZDA3MzYzLi4zOWQ2YTcyZiAxMDA2NDQKLS0tLSBhL3JlcGFpci9kaW5vZGUuaAotKysrIGIvcmVwYWlyL2Rpbm9kZS5oCi1AQCAtNDYsOCArNDYsOCBAQCBwcm9jZXNzX2JtYnRfcmVjbGlzdCh4ZnNfbW91bnRfdAkqbXAsCi0gCQl4ZnNfaW5vX3QJCWlubywKLSAJCXhmc19yZnNibG9ja190CQkqdG90LAotIAkJc3RydWN0IGJsa21hcAkJKipibGttYXBwLAotLQkJX191aW50NjRfdAkJKmZpcnN0X2tleSwKLS0JCV9fdWludDY0X3QJCSpsYXN0X2tleSwKLSsJCXVpbnQ2NF90CQkqZmlyc3Rfa2V5LAotKwkJdWludDY0X3QJCSpsYXN0X2tleSwKLSAJCWludAkJCXdoaWNoZm9yayk7Ci0gCi0gaW50Ci1kaWZmIC0tZ2l0IGEvcmVwYWlyL2RpcjIuYyBiL3JlcGFpci9kaXIyLmMKLWluZGV4IGU2NDE1ZTQ5Li43M2RmZjkwMiAxMDA2NDQKLS0tLSBhL3JlcGFpci9kaXIyLmMKLSsrKyBiL3JlcGFpci9kaXIyLmMKLUBAIC0xNjAsNyArMTYwLDcgQEAgcHJvY2Vzc19zZl9kaXIyKAotIAlpbnQJCQliYWRfc2ZuYW1lbGVuOwotIAlpbnQJCQlpOwotIAlpbnQJCQlpODsKLS0JX19pbnQ2NF90CQlpbm9fZGlyX3NpemU7Ci0rCWludDY0X3QJCQlpbm9fZGlyX3NpemU7Ci0gCWludAkJCWlub19vZmY7Ci0gCWlub190cmVlX25vZGVfdAkJKmlyZWNfcDsKLSAJaW50CQkJanVua2l0OwotZGlmZiAtLWdpdCBhL3JlcGFpci9nbG9iYWxzLmggYi9yZXBhaXIvZ2xvYmFscy5oCi1pbmRleCA0MDg1Y2NjNC4uYzdiYmU2ZjEgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvZ2xvYmFscy5oCi0rKysgYi9yZXBhaXIvZ2xvYmFscy5oCi1AQCAtMTQxLDcgKzE0MSw3IEBAIEVYVEVSTiBpbnQJCWlub2Rlc19wZXJfY2x1c3RlcjsKLSBFWFRFUk4gdW5zaWduZWQgaW50CWdsb2JfYWdjb3VudDsKLSBFWFRFUk4gaW50CQljaHVua3NfcGJsb2NrOwkvKiAjIG9mIDY0LWlubyBjaHVua3MgcGVyIGFsbG9jYXRpb24gKi8KLSBFWFRFUk4gaW50CQltYXhfc3ltbGlua19ibG9ja3M7Ci0tRVhURVJOIF9faW50NjRfdAlmc19tYXhfZmlsZV9vZmZzZXQ7Ci0rRVhURVJOIGludDY0X3QJCWZzX21heF9maWxlX29mZnNldDsKLSAKLSAvKiByZWFsdGltZSBpbmZvICovCi0gCi1AQCAtMTYxLDI0ICsxNjEsMjQgQEAgRVhURVJOIGludAkJZnVsbF9pbm9fZXhfZGF0YTsvKgotIAotIC8qIHN1cGVyYmxvY2sgY291bnRlcnMgKi8KLSAKLS1FWFRFUk4gX191aW50NjRfdAlzYl9pY291bnQ7CS8qIGFsbG9jYXRlZCAobWFkZSkgaW5vZGVzICovCi0tRVhURVJOIF9fdWludDY0X3QJc2JfaWZyZWU7CS8qIGZyZWUgaW5vZGVzICovCi0tRVhURVJOIF9fdWludDY0X3QJc2JfZmRibG9ja3M7CS8qIGZyZWUgZGF0YSBibG9ja3MgKi8KLS1FWFRFUk4gX191aW50NjRfdAlzYl9mcmV4dGVudHM7CS8qIGZyZWUgcmVhbHRpbWUgZXh0ZW50cyAqLwotK0VYVEVSTiB1aW50NjRfdAlzYl9pY291bnQ7CS8qIGFsbG9jYXRlZCAobWFkZSkgaW5vZGVzICovCi0rRVhURVJOIHVpbnQ2NF90CXNiX2lmcmVlOwkvKiBmcmVlIGlub2RlcyAqLwotK0VYVEVSTiB1aW50NjRfdAlzYl9mZGJsb2NrczsJLyogZnJlZSBkYXRhIGJsb2NrcyAqLwotK0VYVEVSTiB1aW50NjRfdAlzYl9mcmV4dGVudHM7CS8qIGZyZWUgcmVhbHRpbWUgZXh0ZW50cyAqLwotIAotIC8qIHN1cGVyYmxvY2sgZ2VvbWV0cnkgaW5mbyAqLwotIAotIEVYVEVSTiB4ZnNfZXh0bGVuX3QJc2JfaW5vYWxpZ25tdDsKLS1FWFRFUk4gX191aW50MzJfdAlzYl91bml0OwotLUVYVEVSTiBfX3VpbnQzMl90CXNiX3dpZHRoOwotK0VYVEVSTiB1aW50MzJfdAlzYl91bml0OwotK0VYVEVSTiB1aW50MzJfdAlzYl93aWR0aDsKLSAKLSBzdHJ1Y3QgYWdsb2NrIHsKLSAJcHRocmVhZF9tdXRleF90CWxvY2sgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oNjQpKSk7Ci0gfTsKLSBFWFRFUk4gc3RydWN0IGFnbG9jawkqYWdfbG9ja3M7Ci0gCi0tRVhURVJOIGludCAJCXJlcG9ydF9pbnRlcnZhbDsKLS1FWFRFUk4gX191aW50NjRfdCAJKnByb2dfcnB0X2RvbmU7Ci0rRVhURVJOIGludAkJcmVwb3J0X2ludGVydmFsOwotK0VYVEVSTiB1aW50NjRfdAkJKnByb2dfcnB0X2RvbmU7Ci0gCi0gRVhURVJOIGludAkJYWdfc3RyaWRlOwotIEVYVEVSTiBpbnQJCXRocmVhZF9jb3VudDsKLWRpZmYgLS1naXQgYS9yZXBhaXIvaW5jb3JlLmMgYi9yZXBhaXIvaW5jb3JlLmMKLWluZGV4IGNiNTczMTY1Li5hOTE5MWFlMiAxMDA2NDQKLS0tLSBhL3JlcGFpci9pbmNvcmUuYwotKysrIGIvcmVwYWlyL2luY29yZS5jCi1AQCAtMTc5LDcgKzE3OSw3IEBAIGdldF9ibWFwX2V4dCgKLSBzdGF0aWMgdWludDY0X3QJCSpydF9ibWFwOwotIHN0YXRpYyBzaXplX3QJCXJ0X2JtYXBfc2l6ZTsKLSAKLS0vKiBibG9jayByZWNvcmRzIGZpdCBpbnRvIF9fdWludDY0X3QncyB1bml0cyAqLwotKy8qIGJsb2NrIHJlY29yZHMgZml0IGludG8gdWludDY0X3QncyB1bml0cyAqLwotICNkZWZpbmUgWFJfQkJfVU5JVAk2NAkJCS8qIG51bWJlciBvZiBiaXRzL3VuaXQgKi8KLSAjZGVmaW5lIFhSX0JCCQk0CQkJLyogYml0cyBwZXIgYmxvY2sgcmVjb3JkICovCi0gI2RlZmluZSBYUl9CQl9OVU0JKFhSX0JCX1VOSVQvWFJfQkIpCS8qIG51bWJlciBvZiByZWNvcmRzIHBlciB1bml0ICovCi1AQCAtMjAzLDggKzIwMyw4IEBAIHNldF9ydGJtYXAoCi0gewotIAkqKHJ0X2JtYXAgKyBibm8gLyBYUl9CQl9OVU0pID0KLSAJICgoKihydF9ibWFwICsgYm5vIC8gWFJfQkJfTlVNKSAmCi0tCSAgKH4oKF9fdWludDY0X3QpIFhSX0JCX01BU0sgPDwgKChibm8gJSBYUl9CQl9OVU0pICogWFJfQkIpKSkpIHwKLS0JICgoKF9fdWludDY0X3QpIHN0YXRlKSA8PCAoKGJubyAlIFhSX0JCX05VTSkgKiBYUl9CQikpKTsKLSsJICAofigodWludDY0X3QpIFhSX0JCX01BU0sgPDwgKChibm8gJSBYUl9CQl9OVU0pICogWFJfQkIpKSkpIHwKLSsJICgoKHVpbnQ2NF90KSBzdGF0ZSkgPDwgKChibm8gJSBYUl9CQl9OVU0pICogWFJfQkIpKSk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi1AQCAtMjIyLDkgKzIyMiw5IEBAIGluaXRfcnRfYm1hcCgKLSAJCXJldHVybjsKLSAKLSAJcnRfYm1hcF9zaXplID0gcm91bmR1cChtcC0+bV9zYi5zYl9yZXh0ZW50cyAvIChOQkJZIC8gWFJfQkIpLAotLQkJCSAgICAgICBzaXplb2YoX191aW50NjRfdCkpOwotKwkJCSAgICAgICBzaXplb2YodWludDY0X3QpKTsKLSAKLS0JcnRfYm1hcCA9IG1lbWFsaWduKHNpemVvZihfX3VpbnQ2NF90KSwgcnRfYm1hcF9zaXplKTsKLSsJcnRfYm1hcCA9IG1lbWFsaWduKHNpemVvZih1aW50NjRfdCksIHJ0X2JtYXBfc2l6ZSk7Ci0gCWlmICghcnRfYm1hcCkgewotIAkJZG9fZXJyb3IoCi0gCV8oImNvdWxkbid0IGFsbG9jYXRlIHJlYWx0aW1lIGJsb2NrIG1hcCwgc2l6ZSA9ICUiIFBSSXU2NCAiXG4iKSwKLWRpZmYgLS1naXQgYS9yZXBhaXIvaW5jb3JlLmggYi9yZXBhaXIvaW5jb3JlLmgKLWluZGV4IGMyM2EzYTNjLi5mZDY2MDg0ZiAxMDA2NDQKLS0tLSBhL3JlcGFpci9pbmNvcmUuaAotKysrIGIvcmVwYWlyL2luY29yZS5oCi1AQCAtMjU3LDcgKzI1Nyw3IEBAIHR5cGVkZWYgeGZzX2lub190IHBhcmVudF9lbnRyeV90OwotIHN0cnVjdCBubGlua19vcHM7Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgcGFyZW50X2xpc3QgIHsKLS0JX191aW50NjRfdAkJcG1hc2s7Ci0rCXVpbnQ2NF90CQlwbWFzazsKLSAJcGFyZW50X2VudHJ5X3QJCSpwZW50cmllczsKLSAjaWZkZWYgREVCVUcKLSAJc2hvcnQJCQljbnQ7Ci1AQCAtMjY1LDE0ICsyNjUsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFyZW50X2xpc3QgIHsKLSB9IHBhcmVudF9saXN0X3Q7Ci0gCi0gdW5pb24gaW5vX25saW5rIHsKLS0JX191aW50OF90CSp1bjg7Ci0tCV9fdWludDE2X3QJKnVuMTY7Ci0tCV9fdWludDMyX3QJKnVuMzI7Ci0rCXVpbnQ4X3QJCSp1bjg7Ci0rCXVpbnQxNl90CSp1bjE2OwotKwl1aW50MzJfdAkqdW4zMjsKLSB9OwotIAotIHR5cGVkZWYgc3RydWN0IGlub19leF9kYXRhICB7Ci0tCV9fdWludDY0X3QJCWlub19yZWFjaGVkOwkvKiBiaXQgPT0gMSBpZiByZWFjaGVkICovCi0tCV9fdWludDY0X3QJCWlub19wcm9jZXNzZWQ7CS8qIHJlZmVyZW5jZSBjaGVja2VkIGJpdCBtYXNrICovCi0rCXVpbnQ2NF90CQlpbm9fcmVhY2hlZDsJLyogYml0ID09IDEgaWYgcmVhY2hlZCAqLwotKwl1aW50NjRfdAkJaW5vX3Byb2Nlc3NlZDsJLyogcmVmZXJlbmNlIGNoZWNrZWQgYml0IG1hc2sgKi8KLSAJcGFyZW50X2xpc3RfdAkJKnBhcmVudHM7Ci0gCXVuaW9uIGlub19ubGluawkJY291bnRlZF9ubGlua3M7LyogY291bnRlZCBubGlua3MgaW4gUDYgKi8KLSB9IGlub19leF9kYXRhX3Q7Ci1AQCAtMjgxLDIyICsyODEsMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAgewotIAlhdmxub2RlX3QJCWF2bF9ub2RlOwotIAl4ZnNfYWdpbm9fdAkJaW5vX3N0YXJ0bnVtOwkvKiBzdGFydGluZyBpbm9kZSAjICovCi0gCXhmc19pbm9mcmVlX3QJCWlyX2ZyZWU7CS8qIGlub2RlIGZyZWUgYml0IG1hc2sgKi8KLS0JX191aW50NjRfdAkJaXJfc3BhcnNlOwkvKiBzcGFyc2UgaW5vZGUgYml0bWFzayAqLwotLQlfX3VpbnQ2NF90CQlpbm9fY29uZmlybWVkOwkvKiBjb25maXJtZWQgYml0bWFzayAqLwotLQlfX3VpbnQ2NF90CQlpbm9faXNhX2RpcjsJLyogYml0ID09IDEgaWYgYSBkaXJlY3RvcnkgKi8KLS0JX191aW50NjRfdAkJaW5vX3dhc19ybDsJLyogYml0ID09IDEgaWYgcmVmbGluayBmbGFnIHNldCAqLwotLQlfX3VpbnQ2NF90CQlpbm9faXNfcmw7CS8qIGJpdCA9PSAxIGlmIHJlZmxpbmsgZmxhZyBzaG91bGQgYmUgc2V0ICovCi0tCV9fdWludDhfdAkJbmxpbmtfc2l6ZTsKLSsJdWludDY0X3QJCWlyX3NwYXJzZTsJLyogc3BhcnNlIGlub2RlIGJpdG1hc2sgKi8KLSsJdWludDY0X3QJCWlub19jb25maXJtZWQ7CS8qIGNvbmZpcm1lZCBiaXRtYXNrICovCi0rCXVpbnQ2NF90CQlpbm9faXNhX2RpcjsJLyogYml0ID09IDEgaWYgYSBkaXJlY3RvcnkgKi8KLSsJdWludDY0X3QJCWlub193YXNfcmw7CS8qIGJpdCA9PSAxIGlmIHJlZmxpbmsgZmxhZyBzZXQgKi8KLSsJdWludDY0X3QJCWlub19pc19ybDsJLyogYml0ID09IDEgaWYgcmVmbGluayBmbGFnIHNob3VsZCBiZSBzZXQgKi8KLSsJdWludDhfdAkJCW5saW5rX3NpemU7Ci0gCXVuaW9uIGlub19ubGluawkJZGlza19ubGlua3M7CS8qIG9uLWRpc2sgbmxpbmtzLCBzZXQgaW4gUDMgKi8KLSAJdW5pb24gIHsKLSAJCWlub19leF9kYXRhX3QJKmV4X2RhdGE7CS8qIHBoYXNlcyA2LDcgKi8KLSAJCXBhcmVudF9saXN0X3QJKnBsaXN0OwkJLyogcGhhc2VzIDItNSAqLwotIAl9IGlub191bjsKLS0JX191aW50OF90CQkqZnR5cGVzOwkvKiBwaGFzZXMgMyw2ICovCi0rCXVpbnQ4X3QJCQkqZnR5cGVzOwkvKiBwaGFzZXMgMyw2ICovCi0gfSBpbm9fdHJlZV9ub2RlX3Q7Ci0gCi0tI2RlZmluZSBJTk9TX1BFUl9JUkVDCShzaXplb2YoX191aW50NjRfdCkgKiBOQkJZKQotLSNkZWZpbmUJSVJFQ19NQVNLKGkpCSgoX191aW50NjRfdCkxIDw8IChpKSkKLSsjZGVmaW5lIElOT1NfUEVSX0lSRUMJKHNpemVvZih1aW50NjRfdCkgKiBOQkJZKQotKyNkZWZpbmUJSVJFQ19NQVNLKGkpCSgodWludDY0X3QpMSA8PCAoaSkpCi0gCi0gdm9pZAkJYWRkX2lub19leF9kYXRhKHhmc19tb3VudF90ICptcCk7Ci0gCi1AQCAtNTQzLDEwICs1NDMsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgaW5vZGVfaXNfcmwoc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBvZmZzZXQpCi0gICovCi0gdm9pZCBhZGRfaW5vZGVfcmVmKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgb2Zmc2V0KTsKLSB2b2lkIGRyb3BfaW5vZGVfcmVmKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgb2Zmc2V0KTsKLS1fX3VpbnQzMl90IG51bV9pbm9kZV9yZWZlcmVuY2VzKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgb2Zmc2V0KTsKLSt1aW50MzJfdCBudW1faW5vZGVfcmVmZXJlbmNlcyhzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAqaXJlYywgaW50IG9mZnNldCk7Ci0gCi0tdm9pZCBzZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBvZmZzZXQsIF9fdWludDMyX3QgbmxpbmtzKTsKLS1fX3VpbnQzMl90IGdldF9pbm9kZV9kaXNrX25saW5rcyhzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAqaXJlYywgaW50IG9mZnNldCk7Ci0rdm9pZCBzZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBvZmZzZXQsIHVpbnQzMl90IG5saW5rcyk7Ci0rdWludDMyX3QgZ2V0X2lub2RlX2Rpc2tfbmxpbmtzKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgb2Zmc2V0KTsKLSAKLSBzdGF0aWMgaW5saW5lIGludCBpc19pbm9kZV9yZWFjaGVkKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgb2Zmc2V0KQotIHsKLUBAIC01NjcsMTMgKzU2NywxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkX2lub2RlX3JlYWNoZWQoc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBvZmZzZXQpCi0gc3RhdGljIGlubGluZSB2b2lkCi0gc2V0X2lub2RlX2Z0eXBlKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLAotIAlpbnQJCWlub19vZmZzZXQsCi0tCV9fdWludDhfdAlmdHlwZSkKLSsJdWludDhfdAkJZnR5cGUpCi0gewotIAlpZiAoaXJlYy0+ZnR5cGVzKQotIAkJaXJlYy0+ZnR5cGVzW2lub19vZmZzZXRdID0gZnR5cGU7Ci0gfQotIAotLXN0YXRpYyBpbmxpbmUgX191aW50OF90Ci0rc3RhdGljIGlubGluZSB1aW50OF90Ci0gZ2V0X2lub2RlX2Z0eXBlKAotIAlzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAqaXJlYywKLSAJaW50CQlpbm9fb2Zmc2V0KQotQEAgLTYwNiwxMSArNjA2LDExIEBAIHR5cGVkZWYgc3RydWN0IGJtX2xldmVsX3N0YXRlICB7Ci0gCXhmc19mc2Jsb2NrX3QJCWZzYm5vOwotIAl4ZnNfZnNibG9ja190CQlsZWZ0X2ZzYm5vOwotIAl4ZnNfZnNibG9ja190CQlyaWdodF9mc2JubzsKLS0JX191aW50NjRfdAkJZmlyc3Rfa2V5OwotLQlfX3VpbnQ2NF90CQlsYXN0X2tleTsKLSsJdWludDY0X3QJCWZpcnN0X2tleTsKLSsJdWludDY0X3QJCWxhc3Rfa2V5OwotIC8qCi0gCWludAkJCWxldmVsOwotLQlfX3VpbnQ2NF90CQlwcmV2X2xhc3Rfa2V5OwotKwl1aW50NjRfdAkJcHJldl9sYXN0X2tleTsKLSAJeGZzX2J1Zl90CQkqYnA7Ci0gCXhmc19ibWJ0X2Jsb2NrX3QJKmJsb2NrOwotICovCi1kaWZmIC0tZ2l0IGEvcmVwYWlyL2luY29yZV9leHQuYyBiL3JlcGFpci9pbmNvcmVfZXh0LmMKLWluZGV4IDdlNjc4NmM1Li4wYTgxMzhhOSAxMDA2NDQKLS0tLSBhL3JlcGFpci9pbmNvcmVfZXh0LmMKLSsrKyBiL3JlcGFpci9pbmNvcmVfZXh0LmMKLUBAIC03MjEsMTMgKzcyMSwxMyBAQCBzZWFyY2hfcnRfZHVwX2V4dGVudCh4ZnNfbW91bnRfdCAqbXAsIHhmc19ydGJsb2NrX3QgYm5vKQotIAlyZXR1cm4ocmV0KTsKLSB9Ci0gCi0tc3RhdGljIF9fdWludDY0X3QKLStzdGF0aWMgdWludDY0X3QKLSBhdmw2NF9ydF9leHRfc3RhcnQoYXZsNjRub2RlX3QgKm5vZGUpCi0gewotIAlyZXR1cm4oKChydF9leHRlbnRfdHJlZV9ub2RlX3QgKikgbm9kZSktPnJ0X3N0YXJ0YmxvY2spOwotIH0KLSAKLS1zdGF0aWMgX191aW50NjRfdAotK3N0YXRpYyB1aW50NjRfdAotIGF2bDY0X2V4dF9lbmQoYXZsNjRub2RlX3QgKm5vZGUpCi0gewotIAlyZXR1cm4oKChydF9leHRlbnRfdHJlZV9ub2RlX3QgKikgbm9kZSktPnJ0X3N0YXJ0YmxvY2sgKwotQEAgLTgzNCw3ICs4MzQsNyBAQCBjb3VudF9leHRlbnRzKHhmc19hZ251bWJlcl90IGFnbm8sIGF2bHRyZWVfZGVzY190ICp0cmVlLCBpbnQgd2hpY2h0cmVlKQotIGludAotIGNvdW50X2Jub19leHRlbnRzX2Jsb2Nrcyh4ZnNfYWdudW1iZXJfdCBhZ25vLCB1aW50ICpudW1ibG9ja3MpCi0gewotLQlfX3VpbnQ2NF90IG5ibG9ja3M7Ci0rCXVpbnQ2NF90IG5ibG9ja3M7Ci0gCWV4dGVudF90cmVlX25vZGVfdCAqbm9kZTsKLSAJaW50IGkgPSAwOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9pbmNvcmVfaW5vLmMgYi9yZXBhaXIvaW5jb3JlX2luby5jCi1pbmRleCAyZWMxNzY1Ny4uM2I2YjQ0ZDQgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvaW5jb3JlX2luby5jCi0rKysgYi9yZXBhaXIvaW5jb3JlX2luby5jCi1AQCAtMzgsNyArMzgsNyBAQCBzdGF0aWMgYXZsdHJlZV9kZXNjX3QJKippbm9kZV91bmNlcnRhaW5fdHJlZV9wdHJzOwotIC8qIG1lbW9yeSBvcHRpbWlzZWQgbmxpbmsgY291bnRpbmcgZm9yIGFsbCBpbm9kZXMgKi8KLSAKLSBzdGF0aWMgdm9pZCAqCi0tYWxsb2NfbmxpbmtfYXJyYXkoX191aW50OF90IG5saW5rX3NpemUpCi0rYWxsb2NfbmxpbmtfYXJyYXkodWludDhfdCBubGlua19zaXplKQotIHsKLSAJdm9pZCAqcHRyOwotIAotQEAgLTUxLDEwICs1MSwxMCBAQCBhbGxvY19ubGlua19hcnJheShfX3VpbnQ4X3Qgbmxpbmtfc2l6ZSkKLSBzdGF0aWMgdm9pZAotIG5saW5rX2dyb3dfOF90b18xNihpbm9fdHJlZV9ub2RlX3QgKmlyZWMpCi0gewotLQlfX3VpbnQxNl90CSpuZXdfbmxpbmtzOwotKwl1aW50MTZfdAkqbmV3X25saW5rczsKLSAJaW50CQlpOwotIAotLQlpcmVjLT5ubGlua19zaXplID0gc2l6ZW9mKF9fdWludDE2X3QpOwotKwlpcmVjLT5ubGlua19zaXplID0gc2l6ZW9mKHVpbnQxNl90KTsKLSAKLSAJbmV3X25saW5rcyA9IGFsbG9jX25saW5rX2FycmF5KGlyZWMtPm5saW5rX3NpemUpOwotIAlmb3IgKGkgPSAwOyBpIDwgWEZTX0lOT0RFU19QRVJfQ0hVTks7IGkrKykKLUBAIC03NiwxMCArNzYsMTAgQEAgbmxpbmtfZ3Jvd184X3RvXzE2KGlub190cmVlX25vZGVfdCAqaXJlYykKLSBzdGF0aWMgdm9pZAotIG5saW5rX2dyb3dfMTZfdG9fMzIoaW5vX3RyZWVfbm9kZV90ICppcmVjKQotIHsKLS0JX191aW50MzJfdAkqbmV3X25saW5rczsKLSsJdWludDMyX3QJKm5ld19ubGlua3M7Ci0gCWludAkJaTsKLSAKLS0JaXJlYy0+bmxpbmtfc2l6ZSA9IHNpemVvZihfX3VpbnQzMl90KTsKLSsJaXJlYy0+bmxpbmtfc2l6ZSA9IHNpemVvZih1aW50MzJfdCk7Ci0gCi0gCW5ld19ubGlua3MgPSBhbGxvY19ubGlua19hcnJheShpcmVjLT5ubGlua19zaXplKTsKLSAJZm9yIChpID0gMDsgaSA8IFhGU19JTk9ERVNfUEVSX0NIVU5LOyBpKyspCi1AQCAtMTA0LDIxICsxMDQsMjEgQEAgdm9pZCBhZGRfaW5vZGVfcmVmKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgaW5vX29mZnNldCkKLSAJQVNTRVJUKGlyZWMtPmlub191bi5leF9kYXRhICE9IE5VTEwpOwotIAotIAlzd2l0Y2ggKGlyZWMtPm5saW5rX3NpemUpIHsKLS0JY2FzZSBzaXplb2YoX191aW50OF90KToKLSsJY2FzZSBzaXplb2YodWludDhfdCk6Ci0gCQlpZiAoaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuOFtpbm9fb2Zmc2V0XSA8IDB4ZmYpIHsKLSAJCQlpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW44W2lub19vZmZzZXRdKys7Ci0gCQkJYnJlYWs7Ci0gCQl9Ci0gCQlubGlua19ncm93XzhfdG9fMTYoaXJlYyk7Ci0gCQkvKkZBTExUSFJVKi8KLS0JY2FzZSBzaXplb2YoX191aW50MTZfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQxNl90KToKLSAJCWlmIChpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW4xNltpbm9fb2Zmc2V0XSA8IDB4ZmZmZikgewotIAkJCWlyZWMtPmlub191bi5leF9kYXRhLT5jb3VudGVkX25saW5rcy51bjE2W2lub19vZmZzZXRdKys7Ci0gCQkJYnJlYWs7Ci0gCQl9Ci0gCQlubGlua19ncm93XzE2X3RvXzMyKGlyZWMpOwotIAkJLypGQUxMVEhSVSovCi0tCWNhc2Ugc2l6ZW9mKF9fdWludDMyX3QpOgotKwljYXNlIHNpemVvZih1aW50MzJfdCk6Ci0gCQlpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW4zMltpbm9fb2Zmc2V0XSsrOwotIAkJYnJlYWs7Ci0gCWRlZmF1bHQ6Ci1AQCAtMTI4LDIwICsxMjgsMjAgQEAgdm9pZCBhZGRfaW5vZGVfcmVmKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgaW5vX29mZnNldCkKLSAKLSB2b2lkIGRyb3BfaW5vZGVfcmVmKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgaW5vX29mZnNldCkKLSB7Ci0tCV9fdWludDMyX3QJcmVmcyA9IDA7Ci0rCXVpbnQzMl90CXJlZnMgPSAwOwotIAotIAlBU1NFUlQoaXJlYy0+aW5vX3VuLmV4X2RhdGEgIT0gTlVMTCk7Ci0gCi0gCXN3aXRjaCAoaXJlYy0+bmxpbmtfc2l6ZSkgewotLQljYXNlIHNpemVvZihfX3VpbnQ4X3QpOgotKwljYXNlIHNpemVvZih1aW50OF90KToKLSAJCUFTU0VSVChpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW44W2lub19vZmZzZXRdID4gMCk7Ci0gCQlyZWZzID0gLS1pcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW44W2lub19vZmZzZXRdOwotIAkJYnJlYWs7Ci0tCWNhc2Ugc2l6ZW9mKF9fdWludDE2X3QpOgotKwljYXNlIHNpemVvZih1aW50MTZfdCk6Ci0gCQlBU1NFUlQoaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuMTZbaW5vX29mZnNldF0gPiAwKTsKLSAJCXJlZnMgPSAtLWlyZWMtPmlub191bi5leF9kYXRhLT5jb3VudGVkX25saW5rcy51bjE2W2lub19vZmZzZXRdOwotIAkJYnJlYWs7Ci0tCWNhc2Ugc2l6ZW9mKF9fdWludDMyX3QpOgotKwljYXNlIHNpemVvZih1aW50MzJfdCk6Ci0gCQlBU1NFUlQoaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuMzJbaW5vX29mZnNldF0gPiAwKTsKLSAJCXJlZnMgPSAtLWlyZWMtPmlub191bi5leF9kYXRhLT5jb3VudGVkX25saW5rcy51bjMyW2lub19vZmZzZXRdOwotIAkJYnJlYWs7Ci1AQCAtMTUzLDE2ICsxNTMsMTYgQEAgdm9pZCBkcm9wX2lub2RlX3JlZihzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAqaXJlYywgaW50IGlub19vZmZzZXQpCi0gCQlpcmVjLT5pbm9fdW4uZXhfZGF0YS0+aW5vX3JlYWNoZWQgJj0gfklSRUNfTUFTSyhpbm9fb2Zmc2V0KTsKLSB9Ci0gCi0tX191aW50MzJfdCBudW1faW5vZGVfcmVmZXJlbmNlcyhzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAqaXJlYywgaW50IGlub19vZmZzZXQpCi0rdWludDMyX3QgbnVtX2lub2RlX3JlZmVyZW5jZXMoc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBpbm9fb2Zmc2V0KQotIHsKLSAJQVNTRVJUKGlyZWMtPmlub191bi5leF9kYXRhICE9IE5VTEwpOwotIAotIAlzd2l0Y2ggKGlyZWMtPm5saW5rX3NpemUpIHsKLS0JY2FzZSBzaXplb2YoX191aW50OF90KToKLSsJY2FzZSBzaXplb2YodWludDhfdCk6Ci0gCQlyZXR1cm4gaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuOFtpbm9fb2Zmc2V0XTsKLS0JY2FzZSBzaXplb2YoX191aW50MTZfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQxNl90KToKLSAJCXJldHVybiBpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW4xNltpbm9fb2Zmc2V0XTsKLS0JY2FzZSBzaXplb2YoX191aW50MzJfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQzMl90KToKLSAJCXJldHVybiBpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW4zMltpbm9fb2Zmc2V0XTsKLSAJZGVmYXVsdDoKLSAJCUFTU0VSVCgwKTsKLUBAIC0xNzEsMjQgKzE3MSwyNCBAQCBfX3VpbnQzMl90IG51bV9pbm9kZV9yZWZlcmVuY2VzKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgaW5vX29mZnNldCkKLSB9Ci0gCi0gdm9pZCBzZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBpbm9fb2Zmc2V0LAotLQkJX191aW50MzJfdCBubGlua3MpCi0rCQl1aW50MzJfdCBubGlua3MpCi0gewotIAlzd2l0Y2ggKGlyZWMtPm5saW5rX3NpemUpIHsKLS0JY2FzZSBzaXplb2YoX191aW50OF90KToKLSsJY2FzZSBzaXplb2YodWludDhfdCk6Ci0gCQlpZiAobmxpbmtzIDwgMHhmZikgewotIAkJCWlyZWMtPmRpc2tfbmxpbmtzLnVuOFtpbm9fb2Zmc2V0XSA9IG5saW5rczsKLSAJCQlicmVhazsKLSAJCX0KLSAJCW5saW5rX2dyb3dfOF90b18xNihpcmVjKTsKLSAJCS8qRkFMTFRIUlUqLwotLQljYXNlIHNpemVvZihfX3VpbnQxNl90KToKLSsJY2FzZSBzaXplb2YodWludDE2X3QpOgotIAkJaWYgKG5saW5rcyA8IDB4ZmZmZikgewotIAkJCWlyZWMtPmRpc2tfbmxpbmtzLnVuMTZbaW5vX29mZnNldF0gPSBubGlua3M7Ci0gCQkJYnJlYWs7Ci0gCQl9Ci0gCQlubGlua19ncm93XzE2X3RvXzMyKGlyZWMpOwotIAkJLypGQUxMVEhSVSovCi0tCWNhc2Ugc2l6ZW9mKF9fdWludDMyX3QpOgotKwljYXNlIHNpemVvZih1aW50MzJfdCk6Ci0gCQlpcmVjLT5kaXNrX25saW5rcy51bjMyW2lub19vZmZzZXRdID0gbmxpbmtzOwotIAkJYnJlYWs7Ci0gCWRlZmF1bHQ6Ci1AQCAtMTk2LDE0ICsxOTYsMTQgQEAgdm9pZCBzZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBpbm9fb2Zmc2V0LAotIAl9Ci0gfQotIAotLV9fdWludDMyX3QgZ2V0X2lub2RlX2Rpc2tfbmxpbmtzKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgaW5vX29mZnNldCkKLSt1aW50MzJfdCBnZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBpbm9fb2Zmc2V0KQotIHsKLSAJc3dpdGNoIChpcmVjLT5ubGlua19zaXplKSB7Ci0tCWNhc2Ugc2l6ZW9mKF9fdWludDhfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQ4X3QpOgotIAkJcmV0dXJuIGlyZWMtPmRpc2tfbmxpbmtzLnVuOFtpbm9fb2Zmc2V0XTsKLS0JY2FzZSBzaXplb2YoX191aW50MTZfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQxNl90KToKLSAJCXJldHVybiBpcmVjLT5kaXNrX25saW5rcy51bjE2W2lub19vZmZzZXRdOwotLQljYXNlIHNpemVvZihfX3VpbnQzMl90KToKLSsJY2FzZSBzaXplb2YodWludDMyX3QpOgotIAkJcmV0dXJuIGlyZWMtPmRpc2tfbmxpbmtzLnVuMzJbaW5vX29mZnNldF07Ci0gCWRlZmF1bHQ6Ci0gCQlBU1NFUlQoMCk7Ci1AQCAtMjExLDExICsyMTEsMTEgQEAgX191aW50MzJfdCBnZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBpbm9fb2Zmc2V0KQotIAlyZXR1cm4gMDsKLSB9Ci0gCi0tc3RhdGljIF9fdWludDhfdCAqCi0rc3RhdGljIHVpbnQ4X3QgKgotIGFsbG9jX2Z0eXBlc19hcnJheSgKLSAJc3RydWN0IHhmc19tb3VudCAqbXApCi0gewotLQlfX3VpbnQ4X3QJKnB0cjsKLSsJdWludDhfdAkJKnB0cjsKLSAKLSAJaWYgKCF4ZnNfc2JfdmVyc2lvbl9oYXNmdHlwZSgmbXAtPm1fc2IpKQotIAkJcmV0dXJuIE5VTEw7Ci1AQCAtMjYyLDIzICsyNjIsMjMgQEAgYWxsb2NfaW5vX25vZGUoCi0gCWlyZWMtPmlyX2ZyZWUgPSAoeGZzX2lub2ZyZWVfdCkgLSAxOwotIAlpcmVjLT5pcl9zcGFyc2UgPSAwOwotIAlpcmVjLT5pbm9fdW4uZXhfZGF0YSA9IE5VTEw7Ci0tCWlyZWMtPm5saW5rX3NpemUgPSBzaXplb2YoX191aW50OF90KTsKLSsJaXJlYy0+bmxpbmtfc2l6ZSA9IHNpemVvZih1aW50OF90KTsKLSAJaXJlYy0+ZGlza19ubGlua3MudW44ID0gYWxsb2NfbmxpbmtfYXJyYXkoaXJlYy0+bmxpbmtfc2l6ZSk7Ci0gCWlyZWMtPmZ0eXBlcyA9IGFsbG9jX2Z0eXBlc19hcnJheShtcCk7Ci0gCXJldHVybiBpcmVjOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotLWZyZWVfbmxpbmtfYXJyYXkodW5pb24gaW5vX25saW5rIG5saW5rcywgX191aW50OF90IG5saW5rX3NpemUpCi0rZnJlZV9ubGlua19hcnJheSh1bmlvbiBpbm9fbmxpbmsgbmxpbmtzLCB1aW50OF90IG5saW5rX3NpemUpCi0gewotIAlzd2l0Y2ggKG5saW5rX3NpemUpIHsKLS0JY2FzZSBzaXplb2YoX191aW50OF90KToKLSsJY2FzZSBzaXplb2YodWludDhfdCk6Ci0gCQlmcmVlKG5saW5rcy51bjgpOwotIAkJYnJlYWs7Ci0tCWNhc2Ugc2l6ZW9mKF9fdWludDE2X3QpOgotKwljYXNlIHNpemVvZih1aW50MTZfdCk6Ci0gCQlmcmVlKG5saW5rcy51bjE2KTsKLSAJCWJyZWFrOwotLQljYXNlIHNpemVvZihfX3VpbnQzMl90KToKLSsJY2FzZSBzaXplb2YodWludDMyX3QpOgotIAkJZnJlZShubGlua3MudW4zMik7Ci0gCQlicmVhazsKLSAJZGVmYXVsdDoKLUBAIC02MDksNyArNjA5LDcgQEAgc2V0X2lub2RlX3BhcmVudCgKLSAJaW50CQkJaTsKLSAJaW50CQkJY250OwotIAlpbnQJCQl0YXJnZXQ7Ci0tCV9fdWludDY0X3QJCWJpdG1hc2s7Ci0rCXVpbnQ2NF90CQliaXRtYXNrOwotIAlwYXJlbnRfZW50cnlfdAkJKnRtcDsKLSAKLSAJaWYgKGZ1bGxfaW5vX2V4X2RhdGEpCi1AQCAtNjk5LDcgKzY5OSw3IEBAIHNldF9pbm9kZV9wYXJlbnQoCi0geGZzX2lub190Ci0gZ2V0X2lub2RlX3BhcmVudChpbm9fdHJlZV9ub2RlX3QgKmlyZWMsIGludCBvZmZzZXQpCi0gewotLQlfX3VpbnQ2NF90CWJpdG1hc2s7Ci0rCXVpbnQ2NF90CWJpdG1hc2s7Ci0gCXBhcmVudF9saXN0X3QJKnB0Ymw7Ci0gCWludAkJaTsKLSAJaW50CQl0YXJnZXQ7Ci1AQCAtNzQwLDE1ICs3NDAsMTUgQEAgYWxsb2NfZXhfZGF0YShpbm9fdHJlZV9ub2RlX3QgKmlyZWMpCi0gCWlyZWMtPmlub191bi5leF9kYXRhLT5wYXJlbnRzID0gcHRibDsKLSAKLSAJc3dpdGNoIChpcmVjLT5ubGlua19zaXplKSB7Ci0tCWNhc2Ugc2l6ZW9mKF9fdWludDhfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQ4X3QpOgotIAkJaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuOCA9Ci0gCQkJYWxsb2NfbmxpbmtfYXJyYXkoaXJlYy0+bmxpbmtfc2l6ZSk7Ci0gCQlicmVhazsKLS0JY2FzZSBzaXplb2YoX191aW50MTZfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQxNl90KToKLSAJCWlyZWMtPmlub191bi5leF9kYXRhLT5jb3VudGVkX25saW5rcy51bjE2ID0KLSAJCQlhbGxvY19ubGlua19hcnJheShpcmVjLT5ubGlua19zaXplKTsKLSAJCWJyZWFrOwotLQljYXNlIHNpemVvZihfX3VpbnQzMl90KToKLSsJY2FzZSBzaXplb2YodWludDMyX3QpOgotIAkJaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuMzIgPQotIAkJCWFsbG9jX25saW5rX2FycmF5KGlyZWMtPm5saW5rX3NpemUpOwotIAkJYnJlYWs7Ci1kaWZmIC0tZ2l0IGEvcmVwYWlyL3BoYXNlMi5jIGIvcmVwYWlyL3BoYXNlMi5jCi1pbmRleCBjMjE3NzhiOC4uMDA4NTczMmIgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcGhhc2UyLmMKLSsrKyBiL3JlcGFpci9waGFzZTIuYwotQEAgLTE3OSw3ICsxNzksNyBAQCBwaGFzZTIoCi0gCi0gCWJhZF9pbm9fYnRyZWUgPSAwOwotIAotLQlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX1NDQU5fQUcsIChfX3VpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotKwlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX1NDQU5fQUcsICh1aW50NjRfdCkgZ2xvYl9hZ2NvdW50KTsKLSAKLSAJc2Nhbl9hZ3MobXAsIHNjYW5fdGhyZWFkcyk7Ci0gCi1kaWZmIC0tZ2l0IGEvcmVwYWlyL3BoYXNlMy5jIGIvcmVwYWlyL3BoYXNlMy5jCi1pbmRleCAwODkwYTI3ZC4uMTdiMWMyOGQgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcGhhc2UzLmMKLSsrKyBiL3JlcGFpci9waGFzZTMuYwotQEAgLTEyMiw3ICsxMjIsNyBAQCBwaGFzZTMoCi0gCWVsc2UKLSAJCWRvX2xvZyhfKCIgICAgICAgIC0gc2NhbiAoYnV0IGRvbid0IGNsZWFyKSBhZ2kgdW5saW5rZWQgbGlzdHMuLi5cbiIpKTsKLSAKLS0Jc2V0X3Byb2dyZXNzX21zZyhQUk9HX0ZNVF9BR0lfVU5MSU5LRUQsIChfX3VpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotKwlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX0FHSV9VTkxJTktFRCwgKHVpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotIAotIAkvKiBmaXJzdCBjbGVhciB0aGUgYWdpIHVubGlua2VkIEFHSSBsaXN0ICovCi0gCWlmICghbm9fbW9kaWZ5KSB7Ci1AQCAtMTQyLDcgKzE0Miw3IEBAIHBoYXNlMygKLSAJZG9fbG9nKF8oCi0gCSAgICAiICAgICAgICAtIHByb2Nlc3Mga25vd24gaW5vZGVzIGFuZCBwZXJmb3JtIGlub2RlIGRpc2NvdmVyeS4uLlxuIikpOwotIAotLQlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX1BST0NFU1NfSU5PLCAoX191aW50NjRfdCkgbXAtPm1fc2Iuc2JfaWNvdW50KTsKLSsJc2V0X3Byb2dyZXNzX21zZyhQUk9HX0ZNVF9QUk9DRVNTX0lOTywgKHVpbnQ2NF90KSBtcC0+bV9zYi5zYl9pY291bnQpOwotIAotIAlwcm9jZXNzX2FncyhtcCk7Ci0gCi1AQCAtMTUyLDcgKzE1Miw3IEBAIHBoYXNlMygKLSAJICogcHJvY2VzcyBuZXdseSBkaXNjb3ZlcmVkIGlub2RlIGNodW5rcwotIAkgKi8KLSAJZG9fbG9nKF8oIiAgICAgICAgLSBwcm9jZXNzIG5ld2x5IGRpc2NvdmVyZWQgaW5vZGVzLi4uXG4iKSk7Ci0tCXNldF9wcm9ncmVzc19tc2coUFJPR19GTVRfTkVXX0lOT0RFUywgKF9fdWludDY0X3QpIGdsb2JfYWdjb3VudCk7Ci0rCXNldF9wcm9ncmVzc19tc2coUFJPR19GTVRfTkVXX0lOT0RFUywgKHVpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotIAotIAljb3VudHMgPSBjYWxsb2Moc2l6ZW9mKCpjb3VudHMpLCBtcC0+bV9zYi5zYl9hZ2NvdW50KTsKLSAJaWYgKCFjb3VudHMpIHsKLWRpZmYgLS1naXQgYS9yZXBhaXIvcGhhc2U0LmMgYi9yZXBhaXIvcGhhc2U0LmMKLWluZGV4IGU1OTQ2NGIxLi5jYzE3ZWMwMyAxMDA2NDQKLS0tLSBhL3JlcGFpci9waGFzZTQuYwotKysrIGIvcmVwYWlyL3BoYXNlNC5jCi1AQCAtMjkwLDcgKzI5MCw3IEBAIHBoYXNlNCh4ZnNfbW91bnRfdCAqbXApCi0gCWRvX2xvZyhfKCJQaGFzZSA0IC0gY2hlY2sgZm9yIGR1cGxpY2F0ZSBibG9ja3MuLi5cbiIpKTsKLSAJZG9fbG9nKF8oIiAgICAgICAgLSBzZXR0aW5nIHVwIGR1cGxpY2F0ZSBleHRlbnQgbGlzdC4uLlxuIikpOwotIAotLQlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX0RVUF9FWFRFTlQsIChfX3VpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotKwlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX0RVUF9FWFRFTlQsICh1aW50NjRfdCkgZ2xvYl9hZ2NvdW50KTsKLSAKLSAJaXJlYyA9IGZpbmRfaW5vZGVfcmVjKG1wLCBYRlNfSU5PX1RPX0FHTk8obXAsIG1wLT5tX3NiLnNiX3Jvb3Rpbm8pLAotIAkJCQlYRlNfSU5PX1RPX0FHSU5PKG1wLCBtcC0+bV9zYi5zYl9yb290aW5vKSk7Ci1AQCAtNDA0LDcgKzQwNCw3IEBAIHBoYXNlNCh4ZnNfbW91bnRfdCAqbXApCi0gCXJlc2V0X2JtYXBzKG1wKTsKLSAKLSAJZG9fbG9nKF8oIiAgICAgICAgLSBjaGVjayBmb3IgaW5vZGVzIGNsYWltaW5nIGR1cGxpY2F0ZSBibG9ja3MuLi5cbiIpKTsKLS0Jc2V0X3Byb2dyZXNzX21zZyhQUk9HX0ZNVF9EVVBfQkxPQ0tTLCAoX191aW50NjRfdCkgbXAtPm1fc2Iuc2JfaWNvdW50KTsKLSsJc2V0X3Byb2dyZXNzX21zZyhQUk9HX0ZNVF9EVVBfQkxPQ0tTLCAodWludDY0X3QpIG1wLT5tX3NiLnNiX2ljb3VudCk7Ci0gCi0gCS8qCi0gCSAqIG9rLCBub3cgcHJvY2VzcyB0aGUgaW5vZGVzIC0tIHNpZ25hbCAyLXBhc3MgY2hlY2sgcGVyIGlub2RlLgotZGlmZiAtLWdpdCBhL3JlcGFpci9waGFzZTUuYyBiL3JlcGFpci9waGFzZTUuYwotaW5kZXggMGI4MzNmMTMuLjIxZGNlNjdhIDEwMDY0NAotLS0tIGEvcmVwYWlyL3BoYXNlNS5jCi0rKysgYi9yZXBhaXIvcGhhc2U1LmMKLUBAIC04Niw5ICs4Niw5IEBAIHN0cnVjdCBhZ2lfc3RhdCB7Ci0gCXhmc19hZ2lub190CQlmcmVlY291bnQ7Ci0gfTsKLSAKLS1zdGF0aWMgX191aW50NjRfdAkqc2JfaWNvdW50X2FnOwkJLyogYWxsb2NhdGVkIGlub2RlcyBwZXIgYWcgKi8KLS1zdGF0aWMgX191aW50NjRfdAkqc2JfaWZyZWVfYWc7CQkvKiBmcmVlIGlub2RlcyBwZXIgYWcgKi8KLS1zdGF0aWMgX191aW50NjRfdAkqc2JfZmRibG9ja3NfYWc7CS8qIGZyZWUgZGF0YSBibG9ja3MgcGVyIGFnICovCi0rc3RhdGljIHVpbnQ2NF90CSpzYl9pY291bnRfYWc7CQkvKiBhbGxvY2F0ZWQgaW5vZGVzIHBlciBhZyAqLwotK3N0YXRpYyB1aW50NjRfdAkqc2JfaWZyZWVfYWc7CQkvKiBmcmVlIGlub2RlcyBwZXIgYWcgKi8KLStzdGF0aWMgdWludDY0X3QJKnNiX2ZkYmxvY2tzX2FnOwkvKiBmcmVlIGRhdGEgYmxvY2tzIHBlciBhZyAqLwotIAotIHN0YXRpYyBpbnQKLSBta19pbmNvcmVfZnN0cmVlKHhmc19tb3VudF90ICptcCwgeGZzX2FnbnVtYmVyX3QgYWdubykKLUBAIC04ODYsMTAgKzg4NiwxMCBAQCBidWlsZF9mcmVlc3BhY2VfdHJlZSh4ZnNfbW91bnRfdCAqbXAsIHhmc19hZ251bWJlcl90IGFnbm8sCi0gICovCi0gc3RhdGljIHZvaWQKLSBpbml0X2lub19jdXJzb3IoeGZzX21vdW50X3QgKm1wLCB4ZnNfYWdudW1iZXJfdCBhZ25vLCBidF9zdGF0dXNfdCAqYnRyZWVfY3VycywKLS0JCV9fdWludDY0X3QgKm51bV9pbm9zLCBfX3VpbnQ2NF90ICpudW1fZnJlZV9pbm9zLCBpbnQgZmlub2J0KQotKwkJdWludDY0X3QgKm51bV9pbm9zLCB1aW50NjRfdCAqbnVtX2ZyZWVfaW5vcywgaW50IGZpbm9idCkKLSB7Ci0tCV9fdWludDY0X3QJCW5pbm9zOwotLQlfX3VpbnQ2NF90CQluZmlub3M7Ci0rCXVpbnQ2NF90CQluaW5vczsKLSsJdWludDY0X3QJCW5maW5vczsKLSAJaW50CQkJcmVjX25maW5vczsKLSAJaW50CQkJcmVjX25pbm9zOwotIAlpbm9fdHJlZV9ub2RlX3QJCSppbm9fcmVjOwotQEAgLTIxOTMsMTAgKzIxOTMsMTAgQEAgcGhhc2U1X2Z1bmMoCi0gCXhmc19hZ251bWJlcl90CWFnbm8sCi0gCXN0cnVjdCB4ZnNfc2xhYgkqbG9zdF9mc2IpCi0gewotLQlfX3VpbnQ2NF90CW51bV9pbm9zOwotLQlfX3VpbnQ2NF90CW51bV9mcmVlX2lub3M7Ci0tCV9fdWludDY0X3QJZmlub2J0X251bV9pbm9zOwotLQlfX3VpbnQ2NF90CWZpbm9idF9udW1fZnJlZV9pbm9zOwotKwl1aW50NjRfdAludW1faW5vczsKLSsJdWludDY0X3QJbnVtX2ZyZWVfaW5vczsKLSsJdWludDY0X3QJZmlub2J0X251bV9pbm9zOwotKwl1aW50NjRfdAlmaW5vYnRfbnVtX2ZyZWVfaW5vczsKLSAJYnRfc3RhdHVzX3QJYm5vX2J0cmVlX2N1cnM7Ci0gCWJ0X3N0YXR1c190CWJjbnRfYnRyZWVfY3VyczsKLSAJYnRfc3RhdHVzX3QJaW5vX2J0cmVlX2N1cnM7Ci1AQCAtMjQ3MSw3ICsyNDcxLDcgQEAgcGhhc2U1KHhmc19tb3VudF90ICptcCkKLSAJaW50CQkJZXJyb3I7Ci0gCi0gCWRvX2xvZyhfKCJQaGFzZSA1IC0gcmVidWlsZCBBRyBoZWFkZXJzIGFuZCB0cmVlcy4uLlxuIikpOwotLQlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX1JFQlVJTERfQUcsIChfX3VpbnQ2NF90IClnbG9iX2FnY291bnQpOwotKwlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX1JFQlVJTERfQUcsICh1aW50NjRfdClnbG9iX2FnY291bnQpOwotIAotICNpZmRlZiBYUl9CTERfRlJFRV9UUkFDRQotIAlmcHJpbnRmKHN0ZGVyciwgImlub2J0IGxldmVsIDEsIG1heHJlYyA9ICVkLCBtaW5yZWMgPSAlZFxuIiwKLUBAIC0yNDk3LDE1ICsyNDk3LDE1IEBAIHBoYXNlNSh4ZnNfbW91bnRfdCAqbXApCi0gCWtlZXBfZnNpbm9zKG1wKTsKLSAKLSAJLyogYWxsb2NhdGUgcGVyIGFnIGNvdW50ZXJzICovCi0tCXNiX2ljb3VudF9hZyA9IGNhbGxvYyhtcC0+bV9zYi5zYl9hZ2NvdW50LCBzaXplb2YoX191aW50NjRfdCkpOwotKwlzYl9pY291bnRfYWcgPSBjYWxsb2MobXAtPm1fc2Iuc2JfYWdjb3VudCwgc2l6ZW9mKHVpbnQ2NF90KSk7Ci0gCWlmIChzYl9pY291bnRfYWcgPT0gTlVMTCkKLSAJCWRvX2Vycm9yKF8oImNhbm5vdCBhbGxvYyBzYl9pY291bnRfYWcgYnVmZmVyc1xuIikpOwotIAotLQlzYl9pZnJlZV9hZyA9IGNhbGxvYyhtcC0+bV9zYi5zYl9hZ2NvdW50LCBzaXplb2YoX191aW50NjRfdCkpOwotKwlzYl9pZnJlZV9hZyA9IGNhbGxvYyhtcC0+bV9zYi5zYl9hZ2NvdW50LCBzaXplb2YodWludDY0X3QpKTsKLSAJaWYgKHNiX2lmcmVlX2FnID09IE5VTEwpCi0gCQlkb19lcnJvcihfKCJjYW5ub3QgYWxsb2Mgc2JfaWZyZWVfYWcgYnVmZmVyc1xuIikpOwotIAotLQlzYl9mZGJsb2Nrc19hZyA9IGNhbGxvYyhtcC0+bV9zYi5zYl9hZ2NvdW50LCBzaXplb2YoX191aW50NjRfdCkpOwotKwlzYl9mZGJsb2Nrc19hZyA9IGNhbGxvYyhtcC0+bV9zYi5zYl9hZ2NvdW50LCBzaXplb2YodWludDY0X3QpKTsKLSAJaWYgKHNiX2ZkYmxvY2tzX2FnID09IE5VTEwpCi0gCQlkb19lcnJvcihfKCJjYW5ub3QgYWxsb2Mgc2JfZmRibG9ja3NfYWcgYnVmZmVyc1xuIikpOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9waGFzZTYuYyBiL3JlcGFpci9waGFzZTYuYwotaW5kZXggMDg2MzZkY2YuLjM3M2IxYTViIDEwMDY0NAotLS0tIGEvcmVwYWlyL3BoYXNlNi5jCi0rKysgYi9yZXBhaXIvcGhhc2U2LmMKLUBAIC04Miw3ICs4Miw3IEBAIHR5cGVkZWYgc3RydWN0IGRpcl9oYXNoX2VudCB7Ci0gCXN0cnVjdCBkaXJfaGFzaF9lbnQJKm5leHRieWhhc2g7CS8qIG5leHQgaW4gbmFtZSBidWNrZXQgKi8KLSAJc3RydWN0IGRpcl9oYXNoX2VudAkqbmV4dGJ5b3JkZXI7CS8qIG5leHQgaW4gb3JkZXIgYWRkZWQgKi8KLSAJeGZzX2RhaGFzaF90CQloYXNodmFsOwkvKiBoYXNoIHZhbHVlIG9mIG5hbWUgKi8KLS0JX191aW50MzJfdAkJYWRkcmVzczsJLyogb2Zmc2V0IG9mIGRhdGEgZW50cnkgKi8KLSsJdWludDMyX3QJCWFkZHJlc3M7CS8qIG9mZnNldCBvZiBkYXRhIGVudHJ5ICovCi0gCXhmc19pbm9fdCAJCWludW07CQkvKiBpbm9kZSBudW0gb2YgZW50cnkgKi8KLSAJc2hvcnQJCQlqdW5raXQ7CQkvKiBuYW1lIHN0YXJ0cyB3aXRoIC8gKi8KLSAJc2hvcnQJCQlzZWVuOwkJLyogaGF2ZSBzZWVuIGxlYWYgZW50cnkgKi8KLUBAIC0xNzAsMTEgKzE3MCwxMSBAQCBzdGF0aWMgaW50Ci0gZGlyX2hhc2hfYWRkKAotIAl4ZnNfbW91bnRfdAkJKm1wLAotIAlkaXJfaGFzaF90YWJfdAkJKmhhc2h0YWIsCi0tCV9fdWludDMyX3QJCWFkZHIsCi0rCXVpbnQzMl90CQlhZGRyLAotIAl4ZnNfaW5vX3QJCWludW0sCi0gCWludAkJCW5hbWVsZW4sCi0gCXVuc2lnbmVkIGNoYXIJCSpuYW1lLAotLQlfX3VpbnQ4X3QJCWZ0eXBlKQotKwl1aW50OF90CQkJZnR5cGUpCi0gewotIAl4ZnNfZGFoYXNoX3QJCWhhc2ggPSAwOwotIAlpbnQJCQlieWFkZHI7Ci1AQCAtMzU3LDcgKzM1Nyw3IEBAIHN0YXRpYyB2b2lkCi0gZGlyX2hhc2hfdXBkYXRlX2Z0eXBlKAotIAlkaXJfaGFzaF90YWJfdAkJKmhhc2h0YWIsCi0gCXhmc19kaXIyX2RhdGFwdHJfdAlhZGRyLAotLQlfX3VpbnQ4X3QJCWZ0eXBlKQotKwl1aW50OF90CQkJZnR5cGUpCi0gewotIAlpbnQJCQlpOwotIAlkaXJfaGFzaF9lbnRfdAkJKnA7Ci1AQCAtMTc5MSw4ICsxNzkxLDggQEAgbG9uZ2Zvcm1fZGlyMl9lbnRyeV9jaGVja19kYXRhKAotIAotIAkJLyogdmFsaWRhdGUgZnR5cGUgZmllbGQgaWYgc3VwcG9ydGVkICovCi0gCQlpZiAoeGZzX3NiX3ZlcnNpb25faGFzZnR5cGUoJm1wLT5tX3NiKSkgewotLQkJCV9fdWludDhfdCBkaXJfZnR5cGU7Ci0tCQkJX191aW50OF90IGlub19mdHlwZTsKLSsJCQl1aW50OF90IGRpcl9mdHlwZTsKLSsJCQl1aW50OF90IGlub19mdHlwZTsKLSAKLSAJCQlkaXJfZnR5cGUgPSBNX0RJUk9QUyhtcCktPmRhdGFfZ2V0X2Z0eXBlKGRlcCk7Ci0gCQkJaW5vX2Z0eXBlID0gZ2V0X2lub2RlX2Z0eXBlKGlyZWMsIGlub19vZmZzZXQpOwotQEAgLTI3MDMsOCArMjcwMyw4IEBAIF8oImVudHJ5IFwiJXNcIiAoaW5vICUiIFBSSXU2NCAiKSBpbiBkaXIgJSIgUFJJdTY0ICIgaXMgYSBkdXBsaWNhdGUgbmFtZSIpLAotIAotIAkJLyogdmFsaWRhdGUgZnR5cGUgZmllbGQgaWYgc3VwcG9ydGVkICovCi0gCQlpZiAoeGZzX3NiX3ZlcnNpb25faGFzZnR5cGUoJm1wLT5tX3NiKSkgewotLQkJCV9fdWludDhfdCBkaXJfZnR5cGU7Ci0tCQkJX191aW50OF90IGlub19mdHlwZTsKLSsJCQl1aW50OF90IGRpcl9mdHlwZTsKLSsJCQl1aW50OF90IGlub19mdHlwZTsKLSAKLSAJCQlkaXJfZnR5cGUgPSBNX0RJUk9QUyhtcCktPnNmX2dldF9mdHlwZShzZmVwKTsKLSAJCQlpbm9fZnR5cGUgPSBnZXRfaW5vZGVfZnR5cGUoaXJlYywgaW5vX29mZnNldCk7Ci1kaWZmIC0tZ2l0IGEvcmVwYWlyL3BoYXNlNy5jIGIvcmVwYWlyL3BoYXNlNy5jCi1pbmRleCA4YmNlMTE3ZC4uNGZmYjgxYTggMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcGhhc2U3LmMKLSsrKyBiL3JlcGFpci9waGFzZTcuYwotQEAgLTMyLDcgKzMyLDcgQEAgc3RhdGljIHZvaWQKLSB1cGRhdGVfaW5vZGVfbmxpbmtzKAotIAl4ZnNfbW91bnRfdCAJCSptcCwKLSAJeGZzX2lub190CQlpbm8sCi0tCV9fdWludDMyX3QJCW5saW5rcykKLSsJdWludDMyX3QJCW5saW5rcykKLSB7Ci0gCXhmc190cmFuc190CQkqdHA7Ci0gCXhmc19pbm9kZV90CQkqaXA7Ci1AQCAtMTA0LDcgKzEwNCw3IEBAIGRvX2xpbmtfdXBkYXRlcygKLSB7Ci0gCWlub190cmVlX25vZGVfdAkJKmlyZWM7Ci0gCWludAkJCWo7Ci0tCV9fdWludDMyX3QJCW5yZWZzOwotKwl1aW50MzJfdAkJbnJlZnM7Ci0gCi0gCWZvciAoaXJlYyA9IGZpbmRmaXJzdF9pbm9kZV9yZWMoYWdubyk7IGlyZWM7Ci0gCSAgICAgaXJlYyA9IG5leHRfaW5vX3JlYyhpcmVjKSkgewotQEAgLTE0Myw3ICsxNDMsNyBAQCBwaGFzZTcoCi0gCWVsc2UKLSAJCWRvX2xvZyhfKCJQaGFzZSA3IC0gdmVyaWZ5IGxpbmsgY291bnRzLi4uXG4iKSk7Ci0gCi0tCXNldF9wcm9ncmVzc19tc2coUFJPR1JFU1NfRk1UX0NPUlJfTElOSywgKF9fdWludDY0X3QpIGdsb2JfYWdjb3VudCk7Ci0rCXNldF9wcm9ncmVzc19tc2coUFJPR1JFU1NfRk1UX0NPUlJfTElOSywgKHVpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotIAotIAljcmVhdGVfd29ya19xdWV1ZSgmd3EsIG1wLCBzY2FuX3RocmVhZHMpOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9wcm9ncmVzcy5jIGIvcmVwYWlyL3Byb2dyZXNzLmMKLWluZGV4IDJhMDliMjM5Li45OWQyNjU4YyAxMDA2NDQKLS0tLSBhL3JlcGFpci9wcm9ncmVzcy5jCi0rKysgYi9yZXBhaXIvcHJvZ3Jlc3MuYwotQEAgLTg1LDggKzg1LDggQEAgcHRocmVhZF90CXJlcG9ydF90aHJlYWQ7Ci0gdHlwZWRlZiBzdHJ1Y3QgbXNnX2Jsb2NrX3MgewotIAlwdGhyZWFkX211dGV4X3QJbXV0ZXg7Ci0gCXByb2dyZXNzX3JwdF90CSpmb3JtYXQ7Ci0tCV9fdWludDY0X3QJKmRvbmU7Ci0tCV9fdWludDY0X3QJKnRvdGFsOwotKwl1aW50NjRfdAkqZG9uZTsKLSsJdWludDY0X3QJKnRvdGFsOwotIAlpbnQJCWNvdW50OwotIAlpbnQJCWludGVydmFsOwotIH0gbXNnX2Jsb2NrX3Q7Ci1AQCAtOTYsMTQgKzk2LDE0IEBAIHR5cGVkZWYgc3RydWN0IHBoYXNlX3RpbWVzX3MgewotIAl0aW1lX3QJCXN0YXJ0OwotIAl0aW1lX3QJCWVuZDsKLSAJdGltZV90CQlkdXJhdGlvbjsKLS0JX191aW50NjRfdAlpdGVtX2NvdW50c1s0XTsKLSsJdWludDY0X3QJaXRlbV9jb3VudHNbNF07Ci0gfSBwaGFzZV90aW1lc190OwotIHN0YXRpYyBwaGFzZV90aW1lc190IHBoYXNlX3RpbWVzWzhdOwotIAotIHN0YXRpYyB2b2lkICpwcm9ncmVzc19ycHRfdGhyZWFkKHZvaWQgKik7Ci0gc3RhdGljIGludCBjdXJyZW50X3BoYXNlOwotIHN0YXRpYyBpbnQgcnVubmluZzsKLS1zdGF0aWMgX191aW50NjRfdCBwcm9nX3JwdF90b3RhbDsKLStzdGF0aWMgdWludDY0X3QgcHJvZ19ycHRfdG90YWw7Ci0gCi0gdm9pZAotIGluaXRfcHJvZ3Jlc3NfcnB0ICh2b2lkKQotQEAgLTExMywxMSArMTEzLDExIEBAIGluaXRfcHJvZ3Jlc3NfcnB0ICh2b2lkKQotIAkgKiAgYWxsb2NhdGUgdGhlIGRvbmUgdmVjdG9yCi0gCSAqLwotIAotLQlpZiAoKHByb2dfcnB0X2RvbmUgPSAoX191aW50NjRfdCAqKQotLQkJbWFsbG9jKHNpemVvZihfX3VpbnQ2NF90KSpnbG9iX2FnY291bnQpKSA9PSBOVUxMICkgewotKwlpZiAoKHByb2dfcnB0X2RvbmUgPSAodWludDY0X3QgKikKLSsJCW1hbGxvYyhzaXplb2YodWludDY0X3QpKmdsb2JfYWdjb3VudCkpID09IE5VTEwpIHsKLSAJCWRvX2Vycm9yKF8oImNhbm5vdCBtYWxsb2MgcG9pbnRlciB0byBkb25lIHZlY3RvclxuIikpOwotIAl9Ci0tCWJ6ZXJvKHByb2dfcnB0X2RvbmUsIHNpemVvZihfX3VpbnQ2NF90KSpnbG9iX2FnY291bnQpOwotKwliemVybyhwcm9nX3JwdF9kb25lLCBzaXplb2YodWludDY0X3QpKmdsb2JfYWdjb3VudCk7Ci0gCi0gCS8qCi0gCSAqICBTZXR1cCBjb21tIGJsb2NrLCBzdGFydCB0aGUgdGhyZWFkCi1AQCAtMTY1LDEwICsxNjUsMTAgQEAgcHJvZ3Jlc3NfcnB0X3RocmVhZCAodm9pZCAqcCkKLSAJdGltZXJfdCB0aW1lcmlkOwotIAlzdHJ1Y3QgaXRpbWVyc3BlYyB0aW1lc3BlYzsKLSAJY2hhciAqbXNnYnVmOwotLQlfX3VpbnQ2NF90ICpkb25lcDsKLS0JX191aW50NjRfdCBzdW07Ci0rCXVpbnQ2NF90ICpkb25lcDsKLSsJdWludDY0X3Qgc3VtOwotIAltc2dfYmxvY2tfdCAqbXNncCA9IChtc2dfYmxvY2tfdCAqKXA7Ci0tCV9fdWludDY0X3QgcGVyY2VudDsKLSsJdWludDY0X3QgcGVyY2VudDsKLSAKLSAJLyogSXQncyBwb3NzaWJsZSB0byBnZXQgaGVyZSB2ZXJ5IGVhcmx5IHcvIG5vIHByb2dyZXNzIG1zZyBzZXQgKi8KLSAJaWYgKCFtc2dwLT5mb3JtYXQpCi1AQCAtMjg2LDcgKzI4Niw3IEBAIHByb2dyZXNzX3JwdF90aHJlYWQgKHZvaWQgKnApCi0gfQotIAotIGludAotLXNldF9wcm9ncmVzc19tc2cgKGludCByZXBvcnQsIF9fdWludDY0X3QgdG90YWwpCi0rc2V0X3Byb2dyZXNzX21zZyhpbnQgcmVwb3J0LCB1aW50NjRfdCB0b3RhbCkKLSB7Ci0gCi0gCWlmICghYWdfc3RyaWRlKQotQEAgLTMwMCw3ICszMDAsNyBAQCBzZXRfcHJvZ3Jlc3NfbXNnIChpbnQgcmVwb3J0LCBfX3VpbnQ2NF90IHRvdGFsKQotIAotIAkvKiByZXNldCBhbGwgdGhlIGFjY3VtdWxhdGl2ZSB0b3RhbHMgKi8KLSAJaWYgKHByb2dfcnB0X2RvbmUpCi0tCQliemVybyhwcm9nX3JwdF9kb25lLCBzaXplb2YoX191aW50NjRfdCkqZ2xvYl9hZ2NvdW50KTsKLSsJCWJ6ZXJvKHByb2dfcnB0X2RvbmUsIHNpemVvZih1aW50NjRfdCkqZ2xvYl9hZ2NvdW50KTsKLSAKLSAJaWYgKHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZnbG9iYWxfbXNncy5tdXRleCkpCi0gCQlkb19lcnJvcihfKCJzZXRfcHJvZ3Jlc3NfbXNnOiBjYW5ub3QgdW5sb2NrIHByb2dyZXNzIG11dGV4XG4iKSk7Ci1AQCAtMzA4LDE0ICszMDgsMTQgQEAgc2V0X3Byb2dyZXNzX21zZyAoaW50IHJlcG9ydCwgX191aW50NjRfdCB0b3RhbCkKLSAJcmV0dXJuICgwKTsKLSB9Ci0gCi0tX191aW50NjRfdAotK3VpbnQ2NF90Ci0gcHJpbnRfZmluYWxfcnB0KHZvaWQpCi0gewotIAlpbnQgaTsKLSAJc3RydWN0IHRtICp0bXA7Ci0gCXRpbWVfdCBub3c7Ci0tCV9fdWludDY0X3QgKmRvbmVwOwotLQlfX3VpbnQ2NF90IHN1bTsKLSsJdWludDY0X3QgKmRvbmVwOwotKwl1aW50NjRfdCBzdW07Ci0gCW1zZ19ibG9ja190IAkqbXNncCA9ICZnbG9iYWxfbXNnczsKLSAJY2hhcgkJbXNnYnVmW0RVUkFUSU9OX0JVRl9TSVpFXTsKLSAKLWRpZmYgLS1naXQgYS9yZXBhaXIvcHJvZ3Jlc3MuaCBiL3JlcGFpci9wcm9ncmVzcy5oCi1pbmRleCAzM2RiODM0NC4uNTE1MjY0ODMgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcHJvZ3Jlc3MuaAotKysrIGIvcmVwYWlyL3Byb2dyZXNzLmgKLUBAIC0zMiw4ICszMiw4IEBACi0gZXh0ZXJuIHZvaWQgaW5pdF9wcm9ncmVzc19ycHQodm9pZCk7Ci0gZXh0ZXJuIHZvaWQgc3RvcF9wcm9ncmVzc19ycHQodm9pZCk7Ci0gZXh0ZXJuIHZvaWQgc3VtbWFyeV9yZXBvcnQodm9pZCk7Ci0tZXh0ZXJuIGludCAgc2V0X3Byb2dyZXNzX21zZyhpbnQgcmVwb3J0LCBfX3VpbnQ2NF90IHRvdGFsKTsKLS1leHRlcm4gX191aW50NjRfdCBwcmludF9maW5hbF9ycHQodm9pZCk7Ci0rZXh0ZXJuIGludCAgc2V0X3Byb2dyZXNzX21zZyhpbnQgcmVwb3J0LCB1aW50NjRfdCB0b3RhbCk7Ci0rZXh0ZXJuIHVpbnQ2NF90IHByaW50X2ZpbmFsX3JwdCh2b2lkKTsKLSBleHRlcm4gY2hhciAqdGltZXN0YW1wKGludCBlbmQsIGludCBwaGFzZSwgY2hhciAqYnVmKTsKLSBleHRlcm4gY2hhciAqZHVyYXRpb24oaW50IHZhbCwgY2hhciAqYnVmKTsKLSBleHRlcm4gaW50IGRvX3BhcmFsbGVsOwotZGlmZiAtLWdpdCBhL3JlcGFpci9ybWFwLmMgYi9yZXBhaXIvcm1hcC5jCi1pbmRleCBhYjZlNTgzOS4uMDFkNmYwZmMgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcm1hcC5jCi0rKysgYi9yZXBhaXIvcm1hcC5jCi1AQCAtMzQzLDcgKzM0Myw3IEBAIGVycjoKLSAKLSBzdGF0aWMgaW50Ci0gZmluZF9maXJzdF96ZXJvX2JpdCgKLS0JX191aW50NjRfdAltYXNrKQotKwl1aW50NjRfdAltYXNrKQotIHsKLSAJaW50CQluOwotIAlpbnQJCWIgPSAwOwotQEAgLTM1Niw3ICszNTYsNyBAQCBmaW5kX2ZpcnN0X3plcm9fYml0KAotIAotIHN0YXRpYyBpbnQKLSBwb3BjbnQoCi0tCV9fdWludDY0X3QJbWFzaykKLSsJdWludDY0X3QJbWFzaykKLSB7Ci0gCWludAkJbjsKLSAJaW50CQliID0gMDsKLUBAIC0xMDY0LDE0ICsxMDY0LDE0IEBAIGVycjoKLSAgKiBDb21wYXJlIHRoZSBrZXkgZmllbGRzIG9mIHR3byBybWFwIHJlY29yZHMgLS0gcG9zaXRpdmUgaWYga2V5MSA+IGtleTIsCi0gICogbmVnYXRpdmUgaWYga2V5MSA8IGtleTIsIGFuZCB6ZXJvIGlmIGVxdWFsLgotICAqLwotLV9faW50NjRfdAotK2ludDY0X3QKLSBybWFwX2RpZmZrZXlzKAotIAlzdHJ1Y3QgeGZzX3JtYXBfaXJlYwkqa3AxLAotIAlzdHJ1Y3QgeGZzX3JtYXBfaXJlYwkqa3AyKQotIHsKLSAJX191NjQJCQlvYTsKLSAJX191NjQJCQlvYjsKLS0JX19pbnQ2NF90CQlkOwotKwlpbnQ2NF90CQkJZDsKLSAJc3RydWN0IHhmc19ybWFwX2lyZWMJdG1wOwotIAotIAl0bXAgPSAqa3AxOwotQEAgLTEwODEsNyArMTA4MSw3IEBAIHJtYXBfZGlmZmtleXMoCi0gCXRtcC5ybV9mbGFncyAmPSB+WEZTX1JNQVBfUkVDX0ZMQUdTOwotIAlvYiA9IGxpYnhmc19ybWFwX2lyZWNfb2Zmc2V0X3BhY2soJnRtcCk7Ci0gCi0tCWQgPSAoX19pbnQ2NF90KWtwMS0+cm1fc3RhcnRibG9jayAtIGtwMi0+cm1fc3RhcnRibG9jazsKLSsJZCA9IChpbnQ2NF90KWtwMS0+cm1fc3RhcnRibG9jayAtIGtwMi0+cm1fc3RhcnRibG9jazsKLSAJaWYgKGQpCi0gCQlyZXR1cm4gZDsKLSAKLUBAIC0xMTkyLDEwICsxMTkyLDEwIEBAIGZpeF9pbm9kZV9yZWZsaW5rX2ZsYWdzKAotIHsKLSAJc3RydWN0IGlub190cmVlX25vZGUJKmlyZWM7Ci0gCWludAkJCWJpdDsKLS0JX191aW50NjRfdAkJd2FzOwotLQlfX3VpbnQ2NF90CQlpczsKLS0JX191aW50NjRfdAkJZGlmZjsKLS0JX191aW50NjRfdAkJbWFzazsKLSsJdWludDY0X3QJCXdhczsKLSsJdWludDY0X3QJCWlzOwotKwl1aW50NjRfdAkJZGlmZjsKLSsJdWludDY0X3QJCW1hc2s7Ci0gCWludAkJCWVycm9yID0gMDsKLSAJeGZzX2FnaW5vX3QJCWFnaW5vOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9ybWFwLmggYi9yZXBhaXIvcm1hcC5oCi1pbmRleCA3NTJlY2U4Mi4uMTYxNmFiN2QgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcm1hcC5oCi0rKysgYi9yZXBhaXIvcm1hcC5oCi1AQCAtNDQsNyArNDQsNyBAQCBleHRlcm4gaW50IHJtYXBfaW5pdF9jdXJzb3IoeGZzX2FnbnVtYmVyX3QsIHN0cnVjdCB4ZnNfc2xhYl9jdXJzb3IgKiopOwotIGV4dGVybiB2b2lkIHJtYXBfYXZvaWRfY2hlY2sodm9pZCk7Ci0gZXh0ZXJuIGludCBybWFwc192ZXJpZnlfYnRyZWUoc3RydWN0IHhmc19tb3VudCAqLCB4ZnNfYWdudW1iZXJfdCk7Ci0gCi0tZXh0ZXJuIF9faW50NjRfdCBybWFwX2RpZmZrZXlzKHN0cnVjdCB4ZnNfcm1hcF9pcmVjICprcDEsCi0rZXh0ZXJuIGludDY0X3Qgcm1hcF9kaWZma2V5cyhzdHJ1Y3QgeGZzX3JtYXBfaXJlYyAqa3AxLAotIAkJc3RydWN0IHhmc19ybWFwX2lyZWMgKmtwMik7Ci0gZXh0ZXJuIHZvaWQgcm1hcF9oaWdoX2tleV9mcm9tX3JlYyhzdHJ1Y3QgeGZzX3JtYXBfaXJlYyAqcmVjLAotIAkJc3RydWN0IHhmc19ybWFwX2lyZWMgKmtleSk7Ci1kaWZmIC0tZ2l0IGEvcmVwYWlyL3NiLmMgYi9yZXBhaXIvc2IuYwotaW5kZXggNzdlNTE1NDYuLmFjYzkyODM5IDEwMDY0NAotLS0tIGEvcmVwYWlyL3NiLmMKLSsrKyBiL3JlcGFpci9zYi5jCi1AQCAtNDAsNyArNDAsNyBAQCBjb3B5X3NiKHhmc19zYl90ICpzb3VyY2UsIHhmc19zYl90ICpkZXN0KQotIAl4ZnNfaW5vX3QJdXF1b3Rpbm87Ci0gCXhmc19pbm9fdAlncXVvdGlubzsKLSAJeGZzX2lub190CXBxdW90aW5vOwotLQlfX3VpbnQxNl90CXZlcnNpb25udW07Ci0rCXVpbnQxNl90CXZlcnNpb25udW07Ci0gCi0gCXJvb3Rpbm8gPSBkZXN0LT5zYl9yb290aW5vOwotIAlyYm1pbm8gPSBkZXN0LT5zYl9yYm1pbm87Ci1AQCAtMTA2LDggKzEwNiw4IEBAIHZlcmlmeV9zYl9ibG9ja3NpemUoeGZzX3NiX3QgKnNiKQotIHN0YXRpYyBpbnQKLSBfX2ZpbmRfc2Vjb25kYXJ5X3NiKAotIAl4ZnNfc2JfdAkqcnNiLAotLQlfX3VpbnQ2NF90CXN0YXJ0LAotLQlfX3VpbnQ2NF90CXNraXApCi0rCXVpbnQ2NF90CXN0YXJ0LAotKwl1aW50NjRfdAlza2lwKQotIHsKLSAJeGZzX29mZl90CW9mZjsKLSAJeGZzX3NiX3QJKnNiOwotQEAgLTE4NywxMyArMTg3LDEzIEBAIF9fZmluZF9zZWNvbmRhcnlfc2IoCi0gCi0gc3RhdGljIGludAotIGd1ZXNzX2RlZmF1bHRfZ2VvbWV0cnkoCi0tCV9fdWludDY0X3QJCSphZ3NpemUsCi0tCV9fdWludDY0X3QJCSphZ2NvdW50LAotKwl1aW50NjRfdAkJKmFnc2l6ZSwKLSsJdWludDY0X3QJCSphZ2NvdW50LAotIAlsaWJ4ZnNfaW5pdF90CQkqeCkKLSB7Ci0gCXN0cnVjdCBmc190b3BvbG9neQlmdDsKLSAJaW50CQkJYmxvY2tsb2c7Ci0tCV9fdWludDY0X3QJCWRibG9ja3M7Ci0rCXVpbnQ2NF90CQlkYmxvY2tzOwotIAlpbnQJCQltdWx0aWRpc2s7Ci0gCi0gCW1lbXNldCgmZnQsIDAsIHNpemVvZihmdCkpOwotQEAgLTIxNiw5ICsyMTYsOSBAQCBpbnQKLSBmaW5kX3NlY29uZGFyeV9zYih4ZnNfc2JfdCAqcnNiKQotIHsKLSAJaW50CQlyZXR2YWwgPSAwOwotLQlfX3VpbnQ2NF90CWFnY291bnQ7Ci0tCV9fdWludDY0X3QJYWdzaXplOwotLQlfX3VpbnQ2NF90CXNraXA7Ci0rCXVpbnQ2NF90CWFnY291bnQ7Ci0rCXVpbnQ2NF90CWFnc2l6ZTsKLSsJdWludDY0X3QJc2tpcDsKLSAJaW50CQlibG9ja2xvZzsKLSAKLSAJLyoKLUBAIC0yMjksNyArMjI5LDcgQEAgZmluZF9zZWNvbmRhcnlfc2IoeGZzX3NiX3QgKnJzYikKLSAJZG9fd2FybihfKCJcbmF0dGVtcHRpbmcgdG8gZmluZCBzZWNvbmRhcnkgc3VwZXJibG9jay4uLlxuIikpOwotIAotIAlpZiAodmVyaWZ5X3NiX2Jsb2Nrc2l6ZShyc2IpID09IDApIHsKLS0JCXNraXAgPSAoX191aW50NjRfdClyc2ItPnNiX2FnYmxvY2tzICogcnNiLT5zYl9ibG9ja3NpemU7Ci0rCQlza2lwID0gKHVpbnQ2NF90KXJzYi0+c2JfYWdibG9ja3MgKiByc2ItPnNiX2Jsb2Nrc2l6ZTsKLSAJCWlmIChza2lwID49IFhGU19BR19NSU5fQllURVMgJiYgc2tpcCA8PSBYRlNfQUdfTUFYX0JZVEVTKQotIAkJCXJldHZhbCA9IF9fZmluZF9zZWNvbmRhcnlfc2IocnNiLCBza2lwLCBza2lwKTsKLSAJfQotQEAgLTM0Myw3ICszNDMsNyBAQCBzYl92YWxpZGF0ZV9pbm9fYWxpZ24oc3RydWN0IHhmc19zYiAqc2IpCi0gaW50Ci0gdmVyaWZ5X3NiKGNoYXIgKnNiX2J1ZiwgeGZzX3NiX3QgKnNiLCBpbnQgaXNfcHJpbWFyeV9zYikKLSB7Ci0tCV9fdWludDMyX3QJYnNpemU7Ci0rCXVpbnQzMl90CWJzaXplOwotIAlpbnQJCWk7Ci0gCWludAkJcmV0OwotIAotQEAgLTM5OSw3ICszOTksNyBAQCB2ZXJpZnlfc2IoY2hhciAqc2JfYnVmLCB4ZnNfc2JfdCAqc2IsIGludCBpc19wcmltYXJ5X3NiKQotIAkJc2ItPnNiX2RibG9ja3MgPCBYRlNfTUlOX0RCTE9DS1Moc2IpKQotIAkJcmV0dXJuKFhSX0JBRF9GU19TSVpFX0RBVEEpOwotIAotLQlpZiAoc2ItPnNiX2FnYmxrbG9nICE9IChfX3VpbnQ4X3QpbGlieGZzX2xvZzJfcm91bmR1cChzYi0+c2JfYWdibG9ja3MpKQotKwlpZiAoc2ItPnNiX2FnYmxrbG9nICE9ICh1aW50OF90KWxpYnhmc19sb2cyX3JvdW5kdXAoc2ItPnNiX2FnYmxvY2tzKSkKLSAJCXJldHVybihYUl9CQURfRlNfU0laRV9EQVRBKTsKLSAKLSAJaWYgKHNiLT5zYl9pbm9kZXNpemUgPCBYRlNfRElOT0RFX01JTl9TSVpFICAgICAgICAgICAgICAgICAgICAgfHwKLWRpZmYgLS1naXQgYS9yZXBhaXIvc2Nhbi5jIGIvcmVwYWlyL3NjYW4uYwotaW5kZXggYjllZjRkYzMuLjQ0NzYxMWFjIDEwMDY0NAotLS0tIGEvcmVwYWlyL3NjYW4uYwotKysrIGIvcmVwYWlyL3NjYW4uYwotQEAgLTQyLDEzICs0MiwxMyBAQCBzdHJ1Y3QgYWdoZHJfY250cyB7Ci0gCXhmc19hZ251bWJlcl90CWFnbm87Ci0gCXhmc19leHRsZW5fdAlhZ2ZmcmVlYmxrczsKLSAJeGZzX2V4dGxlbl90CWFnZmxvbmdlc3Q7Ci0tCV9fdWludDY0X3QJYWdmYnRyZWVibGtzOwotLQlfX3VpbnQzMl90CWFnaWNvdW50OwotLQlfX3VpbnQzMl90CWFnaWZyZWVjb3VudDsKLS0JX191aW50NjRfdAlmZGJsb2NrczsKLS0JX191aW50NjRfdAl1c2VkYmxvY2tzOwotLQlfX3VpbnQ2NF90CWlmcmVlY291bnQ7Ci0tCV9fdWludDMyX3QJZmlidGZyZWVjb3VudDsKLSsJdWludDY0X3QJYWdmYnRyZWVibGtzOwotKwl1aW50MzJfdAlhZ2ljb3VudDsKLSsJdWludDMyX3QJYWdpZnJlZWNvdW50OwotKwl1aW50NjRfdAlmZGJsb2NrczsKLSsJdWludDY0X3QJdXNlZGJsb2NrczsKLSsJdWludDY0X3QJaWZyZWVjb3VudDsKLSsJdWludDMyX3QJZmlidGZyZWVjb3VudDsKLSB9OwotIAotIHZvaWQKLUBAIC03MCwxMCArNzAsMTAgQEAgc2Nhbl9zYnRyZWUoCi0gCQkJCXhmc19hZ251bWJlcl90CQlhZ25vLAotIAkJCQlpbnQJCQlzdXNwZWN0LAotIAkJCQlpbnQJCQlpc3Jvb3QsCi0tCQkJCV9fdWludDMyX3QJCW1hZ2ljLAotKwkJCQl1aW50MzJfdAkJbWFnaWMsCi0gCQkJCXZvaWQJCQkqcHJpdiksCi0gCWludAkJaXNyb290LAotLQlfX3VpbnQzMl90CW1hZ2ljLAotKwl1aW50MzJfdAltYWdpYywKLSAJdm9pZAkJKnByaXYsCi0gCWNvbnN0IHN0cnVjdCB4ZnNfYnVmX29wcyAqb3BzKQotIHsKLUBAIC0xMTAsMjMgKzExMCwyMyBAQCBzY2FuX2xidHJlZSgKLSAJCQkJeGZzX2ZzYmxvY2tfdAkJYm5vLAotIAkJCQl4ZnNfaW5vX3QJCWlubywKLSAJCQkJeGZzX3Jmc2Jsb2NrX3QJCSp0b3QsCi0tCQkJCV9fdWludDY0X3QJCSpuZXgsCi0rCQkJCXVpbnQ2NF90CQkqbmV4LAotIAkJCQlibGttYXBfdAkJKipibGttYXBwLAotIAkJCQlibWFwX2N1cnNvcl90CQkqYm1fY3Vyc29yLAotIAkJCQlpbnQJCQlpc3Jvb3QsCi0gCQkJCWludAkJCWNoZWNrX2R1cHMsCi0gCQkJCWludAkJCSpkaXJ0eSwKLS0JCQkJX191aW50NjRfdAkJbWFnaWMpLAotKwkJCQl1aW50NjRfdAkJbWFnaWMpLAotIAlpbnQJCXR5cGUsCi0gCWludAkJd2hpY2hmb3JrLAotIAl4ZnNfaW5vX3QJaW5vLAotIAl4ZnNfcmZzYmxvY2tfdAkqdG90LAotLQlfX3VpbnQ2NF90CSpuZXgsCi0rCXVpbnQ2NF90CSpuZXgsCi0gCWJsa21hcF90CSoqYmxrbWFwcCwKLSAJYm1hcF9jdXJzb3JfdAkqYm1fY3Vyc29yLAotIAlpbnQJCWlzcm9vdCwKLSAJaW50CQljaGVja19kdXBzLAotLQlfX3VpbnQ2NF90CW1hZ2ljLAotKwl1aW50NjRfdAltYWdpYywKLSAJY29uc3Qgc3RydWN0IHhmc19idWZfb3BzICpvcHMpCi0gewotIAl4ZnNfYnVmX3QJKmJwOwotQEAgLTE3OSwxMyArMTc5LDEzIEBAIHNjYW5fYm1hcGJ0KAotIAl4ZnNfZnNibG9ja190CQlibm8sCi0gCXhmc19pbm9fdAkJaW5vLAotIAl4ZnNfcmZzYmxvY2tfdAkJKnRvdCwKLS0JX191aW50NjRfdAkJKm5leCwKLSsJdWludDY0X3QJCSpuZXgsCi0gCWJsa21hcF90CQkqKmJsa21hcHAsCi0gCWJtYXBfY3Vyc29yX3QJCSpibV9jdXJzb3IsCi0gCWludAkJCWlzcm9vdCwKLSAJaW50CQkJY2hlY2tfZHVwcywKLSAJaW50CQkJKmRpcnR5LAotLQlfX3VpbnQ2NF90CQltYWdpYykKLSsJdWludDY0X3QJCW1hZ2ljKQotIHsKLSAJaW50CQkJaTsKLSAJaW50CQkJZXJyOwotQEAgLTU0OCw3ICs1NDgsNyBAQCBzY2FuX2FsbG9jYnQoCi0gCXhmc19hZ251bWJlcl90CQlhZ25vLAotIAlpbnQJCQlzdXNwZWN0LAotIAlpbnQJCQlpc3Jvb3QsCi0tCV9fdWludDMyX3QJCW1hZ2ljLAotKwl1aW50MzJfdAkJbWFnaWMsCi0gCXZvaWQJCQkqcHJpdikKLSB7Ci0gCXN0cnVjdCBhZ2hkcl9jbnRzCSphZ2NudHMgPSBwcml2OwotQEAgLTkzMCw3ICs5MzAsNyBAQCBzY2FuX3JtYXBidCgKLSAJeGZzX2FnbnVtYmVyX3QJCWFnbm8sCi0gCWludAkJCXN1c3BlY3QsCi0gCWludAkJCWlzcm9vdCwKLS0JX191aW50MzJfdAkJbWFnaWMsCi0rCXVpbnQzMl90CQltYWdpYywKLSAJdm9pZAkJCSpwcml2KQotIHsKLSAJY29uc3QgY2hhcgkJKm5hbWUgPSAicm1hcCI7Ci1AQCAtMTIzMyw3ICsxMjMzLDcgQEAgc2Nhbl9yZWZjYnQoCi0gCXhmc19hZ251bWJlcl90CQlhZ25vLAotIAlpbnQJCQlzdXNwZWN0LAotIAlpbnQJCQlpc3Jvb3QsCi0tCV9fdWludDMyX3QJCW1hZ2ljLAotKwl1aW50MzJfdAkJbWFnaWMsCi0gCXZvaWQJCQkqcHJpdikKLSB7Ci0gCWNvbnN0IGNoYXIJCSpuYW1lID0gInJlZmNvdW50IjsKLUBAIC0xOTM5LDcgKzE5MzksNyBAQCBzY2FuX2lub2J0KAotIAl4ZnNfYWdudW1iZXJfdAkJYWdubywKLSAJaW50CQkJc3VzcGVjdCwKLSAJaW50CQkJaXNyb290LAotLQlfX3VpbnQzMl90CQltYWdpYywKLSsJdWludDMyX3QJCW1hZ2ljLAotIAl2b2lkCQkJKnByaXYpCi0gewotIAlzdHJ1Y3QgYWdoZHJfY250cwkqYWdjbnRzID0gcHJpdjsKLUBAIC0yMTc2LDcgKzIxNzYsNyBAQCB2YWxpZGF0ZV9hZ2YoCi0gCXN0cnVjdCBhZ2hkcl9jbnRzCSphZ2NudHMpCi0gewotIAl4ZnNfYWdibG9ja190CQlibm87Ci0tCV9fdWludDMyX3QJCW1hZ2ljOwotKwl1aW50MzJfdAkJbWFnaWM7Ci0gCi0gCWJubyA9IGJlMzJfdG9fY3B1KGFnZi0+YWdmX3Jvb3RzW1hGU19CVE5VTV9CTk9dKTsKLSAJaWYgKGJubyAhPSAwICYmIHZlcmlmeV9hZ2JubyhtcCwgYWdubywgYm5vKSkgewotQEAgLTIyNzQsNyArMjI3NCw3IEBAIHZhbGlkYXRlX2FnaSgKLSB7Ci0gCXhmc19hZ2Jsb2NrX3QJCWJubzsKLSAJaW50CQkJaTsKLS0JX191aW50MzJfdAkJbWFnaWM7Ci0rCXVpbnQzMl90CQltYWdpYzsKLSAKLSAJYm5vID0gYmUzMl90b19jcHUoYWdpLT5hZ2lfcm9vdCk7Ci0gCWlmIChibm8gIT0gMCAmJiB2ZXJpZnlfYWdibm8obXAsIGFnbm8sIGJubykpIHsKLUBAIC0yNDk5LDEwICsyNDk5LDEwIEBAIHNjYW5fYWdzKAotIAlpbnQJCQlzY2FuX3RocmVhZHMpCi0gewotIAlzdHJ1Y3QgYWdoZHJfY250cyAqYWdjbnRzOwotLQlfX3VpbnQ2NF90CWZkYmxvY2tzID0gMDsKLS0JX191aW50NjRfdAlpY291bnQgPSAwOwotLQlfX3VpbnQ2NF90CWlmcmVlY291bnQgPSAwOwotLQlfX3VpbnQ2NF90CXVzZWRibG9ja3MgPSAwOwotKwl1aW50NjRfdAlmZGJsb2NrcyA9IDA7Ci0rCXVpbnQ2NF90CWljb3VudCA9IDA7Ci0rCXVpbnQ2NF90CWlmcmVlY291bnQgPSAwOwotKwl1aW50NjRfdAl1c2VkYmxvY2tzID0gMDsKLSAJeGZzX2FnbnVtYmVyX3QJaTsKLSAJd29ya19xdWV1ZV90CXdxOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9zY2FuLmggYi9yZXBhaXIvc2Nhbi5oCi1pbmRleCBlYThjMGJmMi4uOWJiZTFlNjkgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvc2Nhbi5oCi0rKysgYi9yZXBhaXIvc2Nhbi5oCi1AQCAtMzAsMjMgKzMwLDIzIEBAIGludCBzY2FuX2xidHJlZSgKLSAJCQkJeGZzX2ZzYmxvY2tfdAkJYm5vLAotIAkJCQl4ZnNfaW5vX3QJCWlubywKLSAJCQkJeGZzX3Jmc2Jsb2NrX3QJCSp0b3QsCi0tCQkJCV9fdWludDY0X3QJCSpuZXgsCi0rCQkJCXVpbnQ2NF90CQkqbmV4LAotIAkJCQlzdHJ1Y3QgYmxrbWFwCQkqKmJsa21hcHAsCi0gCQkJCWJtYXBfY3Vyc29yX3QJCSpibV9jdXJzb3IsCi0gCQkJCWludAkJCWlzcm9vdCwKLSAJCQkJaW50CQkJY2hlY2tfZHVwcywKLSAJCQkJaW50CQkJKmRpcnR5LAotLQkJCQlfX3VpbnQ2NF90CQltYWdpYyksCi0rCQkJCXVpbnQ2NF90CQltYWdpYyksCi0gCWludAkJdHlwZSwKLSAJaW50CQl3aGljaGZvcmssCi0gCXhmc19pbm9fdAlpbm8sCi0gCXhmc19yZnNibG9ja190CSp0b3QsCi0tCV9fdWludDY0X3QJKm5leCwKLSsJdWludDY0X3QJKm5leCwKLSAJc3RydWN0IGJsa21hcAkqKmJsa21hcHAsCi0gCWJtYXBfY3Vyc29yX3QJKmJtX2N1cnNvciwKLSAJaW50CQlpc3Jvb3QsCi0gCWludAkJY2hlY2tfZHVwcywKLS0JX191aW50NjRfdAltYWdpYywKLSsJdWludDY0X3QJbWFnaWMsCi0gCWNvbnN0IHN0cnVjdCB4ZnNfYnVmX29wcyAqb3BzKTsKLSAKLSBpbnQgc2Nhbl9ibWFwYnQoCi1AQCAtNTcsMTMgKzU3LDEzIEBAIGludCBzY2FuX2JtYXBidCgKLSAJeGZzX2ZzYmxvY2tfdAkJYm5vLAotIAl4ZnNfaW5vX3QJCWlubywKLSAJeGZzX3Jmc2Jsb2NrX3QJCSp0b3QsCi0tCV9fdWludDY0X3QJCSpuZXgsCi0rCXVpbnQ2NF90CQkqbmV4LAotIAlzdHJ1Y3QgYmxrbWFwCQkqKmJsa21hcHAsCi0gCWJtYXBfY3Vyc29yX3QJCSpibV9jdXJzb3IsCi0gCWludAkJCWlzcm9vdCwKLSAJaW50CQkJY2hlY2tfZHVwcywKLSAJaW50CQkJKmRpcnR5LAotLQlfX3VpbnQ2NF90CQltYWdpYyk7Ci0rCXVpbnQ2NF90CQltYWdpYyk7Ci0gCi0gdm9pZAotIHNjYW5fYWdzKAotLS0gCi0yLjE0LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvcmVtb3ZlX2ZsYWdzX2Zyb21fYnVpbGRfZmxhZ3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy9maWxlcy9yZW1vdmVfZmxhZ3NfZnJvbV9idWlsZF9mbGFncy5wYXRjaAppbmRleCBiYmE5YTI1Li5iZDJkMDI1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy9maWxlcy9yZW1vdmVfZmxhZ3NfZnJvbV9idWlsZF9mbGFncy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy9maWxlcy9yZW1vdmVfZmxhZ3NfZnJvbV9idWlsZF9mbGFncy5wYXRjaApAQCAtMSwxMyArMSwxMyBAQAotSW5kZXg6IHhmc3Byb2dzLTQuMTIuMC9pbmNsdWRlL2J1aWxkZGVmcy5pbgorSW5kZXg6IHhmc3Byb2dzLTQuMTQuMC9pbmNsdWRlL2J1aWxkZGVmcy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHhmc3Byb2dzLTQuMTIuMC5vcmlnL2luY2x1ZGUvYnVpbGRkZWZzLmluCi0rKysgeGZzcHJvZ3MtNC4xMi4wL2luY2x1ZGUvYnVpbGRkZWZzLmluCi1AQCAtMTY0LDcgKzE2NCw3IEBAIGlmZXEgKCQoRU5BQkxFX0dFVFRFWFQpLHllcykKKy0tLSB4ZnNwcm9ncy00LjE0LjAub3JpZy9pbmNsdWRlL2J1aWxkZGVmcy5pbgorKysrIHhmc3Byb2dzLTQuMTQuMC9pbmNsdWRlL2J1aWxkZGVmcy5pbgorQEAgLTE2OCw3ICsxNjgsNyBAQCBpZmVxICgkKEVOQUJMRV9HRVRURVhUKSx5ZXMpCiAgR0NGTEFHUyArPSAtREVOQUJMRV9HRVRURVhUCiAgZW5kaWYKICAKIC1CVUlMRF9DRkxBR1MgKz0gJChHQ0ZMQUdTKSAkKFBDRkxBR1MpCiArQlVJTERfQ0ZMQUdTICs9ICQoR0NGTEFHUykKLSAjIEZpcnN0LCBHbG9iYWwsIFBsYXRmb3JtLCBMb2NhbCBDRkxBR1MKLSBDRkxBR1MgKz0gJChGQ0ZMQUdTKSAkKE9QVElNSVpFUikgJChHQ0ZMQUdTKSAkKFBDRkxBR1MpICQoTENGTEFHUykKKyAjIEZpcnN0LCBTYW5pdGl6ZXIsIEdsb2JhbCwgUGxhdGZvcm0sIExvY2FsIENGTEFHUworIENGTEFHUyArPSAkKEZDRkxBR1MpICQoU0FOSVRJWkVSX0NGTEFHUykgJChPUFRJTUlaRVIpICQoR0NGTEFHUykgJChQQ0ZMQUdTKSAkKExDRkxBR1MpCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy9maWxlcy94ZnNwcm9ncy00LjEyLjAtZml4X211c2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy9maWxlcy94ZnNwcm9ncy00LjEyLjAtZml4X211c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmYzU3ZTQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMveGZzcHJvZ3MtNC4xMi4wLWZpeF9tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTE3ICswLDAgQEAKLUZyb20gMjEyNTM2MTBmOWVmODdkYjhlMmE3NWI4NjNiN2ZjZmJkMGNkYjQyMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ICJEYXJyaWNrIEouIFdvbmciIDxkYXJyaWNrLndvbmdAb3JhY2xlLmNvbT4KLURhdGU6IFR1ZSwgMjUgSnVsIDIwMTcgMTM6NDU6MDEgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gSW4gcGF0Y2ggNDk0NGRlZmFkNCAoInhmc19kYjogcmVkaXJlY3QgcHJpbnRmcyB3aGVuCi0gbWV0YWR1bXBpbmcgdG8gc3Rkb3V0IiksIHdlIHNvbHZlZCB0aGUgcHJvYmxlbSBvZiB4ZnNfZGIgcHJpbnRmcyBlbmRpbmcgdXAgaW4KLSB0aGUgbWV0YWR1bXAgc3RyZWFtIGJ5IHJlYXNzaWduaW5nIHN0ZG91dCBmb3IgdGhlIGR1cmF0aW9uIG9mIGEgc3Rkb3V0Ci0gbWV0YWR1bXAuICBVbmZvcnR1bmF0ZWx5LCBtdXNsIGRvZXNuJ3QgYWxsb3cgc3Rkb3V0IHRvIGJlIHJlYXNzaWduZWQgKGluCi0gdGhlaXIgdmlldyAiZXh0ZXJuIEZJTEUgKnN0ZG91dCIgbWVhbnMgImV4dGVybiBGSUxFICogY29uc3Qgc3Rkb3V0IiksIHNvIHdlCi0gYWJhbmRvbiB0aGUgb2xkIGFwcHJvYWNoIGluIGZhdm9yIG9mIHBsYXlpbmcgZ2FtZXMgd2l0aCBkdXAoKSB0byBzd2l0Y2ggdGhlCi0gcmF3IGZpbGUgZGVzY3JpcHRvcnMuCi0KLVdoaWxlIHdlJ3JlIGF0IGl0LCBmaXggYSByZWdyZXNzaW9uIHdoZXJlIGFuIHVuY29udmVydGVkIG91dGYgdGVzdAotYWxsb3dzIHByb2dyZXNzIGluZm8gdG8gZW5kIHVwIGluIHRoZSBtZXRhZHVtcCBzdHJlYW0uCi0KLVNpZ25lZC1vZmYtYnk6IERhcnJpY2sgSi4gV29uZyA8ZGFycmljay53b25nQG9yYWNsZS5jb20+Ci0tLS0KLSBkYi9tZXRhZHVtcC5jIHwgNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kYi9tZXRhZHVtcC5jIGIvZGIvbWV0YWR1bXAuYwotaW5kZXggOTY2NDFlMC4uNGUyZjY0OCAxMDA2NDQKLS0tLSBhL2RiL21ldGFkdW1wLmMKLSsrKyBiL2RiL21ldGFkdW1wLmMKLUBAIC03OCw2ICs3OCw3IEBAIHN0YXRpYyBpbnQJCW9iZnVzY2F0ZSA9IDE7Ci0gc3RhdGljIGludAkJemVyb19zdGFsZV9kYXRhID0gMTsKLSBzdGF0aWMgaW50CQlzaG93X3dhcm5pbmdzID0gMDsKLSBzdGF0aWMgaW50CQlwcm9ncmVzc19zaW5jZV93YXJuaW5nID0gMDsKLStzdGF0aWMgYm9vbAkJc3Rkb3V0X21ldGFkdW1wOwotIAotIHZvaWQKLSBtZXRhZHVtcF9pbml0KHZvaWQpCi1AQCAtMTM3LDcgKzEzOCw3IEBAIHByaW50X3Byb2dyZXNzKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotIAl2YV9lbmQoYXApOwotIAlidWZbc2l6ZW9mKGJ1ZiktMV0gPSAnXDAnOwotIAotLQlmID0gKG91dGYgPT0gc3Rkb3V0KSA/IHN0ZGVyciA6IHN0ZG91dDsKLSsJZiA9IHN0ZG91dF9tZXRhZHVtcCA/IHN0ZGVyciA6IHN0ZG91dDsKLSAJZnByaW50ZihmLCAiXHIlLTU5cyIsIGJ1Zik7Ci0gCWZmbHVzaChmKTsKLSAJcHJvZ3Jlc3Nfc2luY2Vfd2FybmluZyA9IDE7Ci1AQCAtMjc1MCw3ICsyNzUxLDggQEAgbWV0YWR1bXBfZigKLSAJeGZzX2FnbnVtYmVyX3QJYWdubzsKLSAJaW50CQljOwotIAlpbnQJCXN0YXJ0X2lvY3VyX3NwOwotLQlib29sCQlzdGRvdXRfbWV0YWR1bXAgPSBmYWxzZTsKLSsJaW50CQlvdXRmZCA9IC0xOwotKwlpbnQJCXJldDsKLSAJY2hhcgkJKnA7Ci0gCi0gCWV4aXRjb2RlID0gMTsKLUBAIC0yODcwLDE2ICsyODcyLDM1IEBAIG1ldGFkdW1wX2YoCi0gCQkgKiBtZXRhZHVtcCBvcGVyYXRpb24gc28gdGhhdCBkYnByaW50ZiBhbmQgb3RoZXIgbWVzc2FnZXMKLSAJCSAqIGFyZSBzZW50IHRvIHRoZSBjb25zb2xlIGluc3RlYWQgb2YgcG9sbHV0aW5nIHRoZQotIAkJICogbWV0YWR1bXAgc3RyZWFtLgotKwkJICoKLSsJCSAqIFdlIGdldCB0byBkbyB0aGlzIHRoZSBoYXJkIHdheSBiZWNhdXNlIG11c2wgZG9lc24ndAotKwkJICogYWxsb3cgcmVhc3NpZ25tZW50IG9mIHN0ZG91dC4KLSAJCSAqLwotLQkJb3V0ZiA9IHN0ZG91dDsKLS0JCXN0ZG91dCA9IHN0ZGVycjsKLSsJCWZmbHVzaChzdGRvdXQpOwotKwkJb3V0ZmQgPSBkdXAoU1RET1VUX0ZJTEVOTyk7Ci0rCQlpZiAob3V0ZmQgPCAwKSB7Ci0rCQkJcGVycm9yKCJvcGVuaW5nIGR1bXAgc3RyZWFtIik7Ci0rCQkJZ290byBvdXQ7Ci0rCQl9Ci0rCQlyZXQgPSBkdXAyKFNUREVSUl9GSUxFTk8sIFNURE9VVF9GSUxFTk8pOwotKwkJaWYgKHJldCA8IDApIHsKLSsJCQlwZXJyb3IoInJlZGlyZWN0aW5nIHN0ZG91dCIpOwotKwkJCWNsb3NlKG91dGZkKTsKLSsJCQlnb3RvIG91dDsKLSsJCX0KLSsJCW91dGYgPSBmZG9wZW4ob3V0ZmQsICJhIik7Ci0rCQlpZiAob3V0ZiA9PSBOVUxMKSB7Ci0rCQkJZnByaW50ZihzdGRlcnIsICJjYW5ub3QgY3JlYXRlIGR1bXAgc3RyZWFtXG4iKTsKLSsJCQlkdXAyKG91dGZkLCAxKTsKLSsJCQljbG9zZShvdXRmZCk7Ci0rCQkJZ290byBvdXQ7Ci0rCQl9Ci0gCQlzdGRvdXRfbWV0YWR1bXAgPSB0cnVlOwotIAl9IGVsc2UgewotIAkJb3V0ZiA9IGZvcGVuKGFyZ3Zbb3B0aW5kXSwgIndiIik7Ci0gCQlpZiAob3V0ZiA9PSBOVUxMKSB7Ci0gCQkJcHJpbnRfd2FybmluZygiY2Fubm90IGNyZWF0ZSBkdW1wIGZpbGUiKTsKLS0JCQlmcmVlKG1ldGFibG9jayk7Ci0tCQkJcmV0dXJuIDA7Ci0rCQkJZ290byBvdXQ7Ci0gCQl9Ci0gCX0KLSAKLUBAIC0yOTA3LDE1ICsyOTI4LDE5IEBAIG1ldGFkdW1wX2YoCi0gCWlmIChwcm9ncmVzc19zaW5jZV93YXJuaW5nKQotIAkJZnB1dGMoJ1xuJywgc3Rkb3V0X21ldGFkdW1wID8gc3RkZXJyIDogc3Rkb3V0KTsKLSAKLS0JaWYgKHN0ZG91dF9tZXRhZHVtcCkKLS0JCXN0ZG91dCA9IG91dGY7Ci0tCWVsc2UKLS0JCWZjbG9zZShvdXRmKTsKLSsJaWYgKHN0ZG91dF9tZXRhZHVtcCkgewotKwkJZmZsdXNoKG91dGYpOwotKwkJZmZsdXNoKHN0ZG91dCk7Ci0rCQlyZXQgPSBkdXAyKG91dGZkLCBTVERPVVRfRklMRU5PKTsKLSsJCWlmIChyZXQgPCAwKQotKwkJCXBlcnJvcigidW4tcmVkaXJlY3Rpbmcgc3Rkb3V0Iik7Ci0rCX0KLSsJZmNsb3NlKG91dGYpOwotIAotIAkvKiBjbGVhbnVwIGlvY3VyIHN0YWNrICovCi0gCXdoaWxlIChpb2N1cl9zcCA+IHN0YXJ0X2lvY3VyX3NwKQotIAkJcG9wX2N1cigpOwotLQotK291dDoKLSAJZnJlZShtZXRhYmxvY2spOwotIAotIAlyZXR1cm4gMDsKLS0tIAotMi4xMy4zCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy94ZnNwcm9nc180LjEyLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy94ZnNwcm9nc180LjEyLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3ODg2OTUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MveGZzcHJvZ3NfNC4xMi4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotU1VNTUFSWSA9ICJYRlMgRmlsZXN5c3RlbSBVdGlsaXRpZXMiCi1IT01FUEFHRSA9ICJodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMveGZzIgotU0VDVElPTiA9ICJiYXNlIgotTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2Mi4xIgotTElDRU5TRV9saWJoYW5kbGUgPSAiTEdQTHYyLjEiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9kb2MvQ09QWUlORzttZDU9MTAyZjdmZWMzZDUzYzdjOGYwYjdiYWY5YmY5ZDc2YTgiCi1ERVBFTkRTID0gInV0aWwtbGludXggdXRpbC1saW51eC1uYXRpdmUiCi1TUkNfVVJJID0gImh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL2ZzL3hmcy94ZnNwcm9ncy8ke0JQfS50YXIueHogXAotICAgICAgICAgICBmaWxlOi8vMDAwMS14ZnNwcm9ncy1yZW1vdmUtZG91YmxlLXVuZGVyc2NvcmUtaW50ZWdlci10eXBlcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLXhmcy1yZW1vdmUtZG91YmxlLXVuZGVyc2NvcmUtaW50ZWdlci10eXBlcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9yZW1vdmVfZmxhZ3NfZnJvbV9idWlsZF9mbGFncy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly94ZnNwcm9ncy00LjEyLjAtZml4X211c2wucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiZTM0OGIwZTFkN2JkMWNkODJkNjRiOTFmZjM3ZTcyN2UiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjMzMGFkOGQ3MzdmNDE1MmFlNTExNTgwMTAyZTJmYzQ5MjEyYmI1MWRmYjRiNjE0MDg0MzQ0YWJhZTQ2ZDBkZiIKLQotaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwCi0KLVBBQ0tBR0VTID0rICIke1BOfS1mc2NrICR7UE59LW1rZnMgJHtQTn0tcmVwYWlyIGxpYmhhbmRsZSIKLQotREVQRU5EUyArPSAidXRpbC1saW51eCIKLQotUkRFUEVORFNfJHtQTn0gPSAiJHtQTn0tZnNjayAke1BOfS1ta2ZzICR7UE59LXJlcGFpciIKLQotRklMRVNfJHtQTn0tZnNjayA9ICIke2Jhc2Vfc2JpbmRpcn0vZnNjay54ZnMiCi1GSUxFU18ke1BOfS1ta2ZzID0gIiR7YmFzZV9zYmluZGlyfS9ta2ZzLnhmcyIKLUZJTEVTXyR7UE59LXJlcGFpciA9ICIke2Jhc2Vfc2JpbmRpcn0veGZzX3JlcGFpciIKLQotRklMRVNfbGliaGFuZGxlID0gIiR7YmFzZV9saWJkaXJ9L2xpYmhhbmRsZSR7U09MSUJTfSIKLQotRVhUUkFfT0VDT05GID0gIi0tZW5hYmxlLWdldHRleHQ9bm8gXAotICAgICAgICAgICAgICAgIElOU1RBTExfVVNFUj1yb290IFwKLSAgICAgICAgICAgICAgICBJTlNUQUxMX0dST1VQPXJvb3QgXAotICAgICAgICAgICAgICAgIGFjX2N2X2hlYWRlcl9haW9faD15ZXMgXAotICAgICAgICAgICAgICAgIGFjX2N2X2xpYl9ydF9saW9fbGlzdGlvPXllcyBcCi0iCi0KLURJU0FCTEVfU1RBVElDID0gIiIKLUVYVFJBX0FVVE9SRUNPTkYgKz0gIi1JICR7U30vbTQgLS1leGNsdWRlPWF1dG9oZWFkZXIiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICJyZWFkbGluZSBibGtpZCIKLQotUEFDS0FHRUNPTkZJR1tyZWFkbGluZV0gPSAiLS1lbmFibGUtcmVhZGxpbmU9eWVzLC0tZW5hYmxlLXJlYWRsaW5lPW5vLHJlYWRsaW5lIgotUEFDS0FHRUNPTkZJR1tibGtpZF0gPSAiLS1lbmFibGUtYmxraWQ9eWVzLC0tZW5hYmxlLWJsa2lkPW5vLHV0aWwtbGludXgiCi0KLWV4cG9ydCBERUJVRz0iLUROREVCVUciCi1leHBvcnQgQlVJTERfVkVSQk9TRT0iMSIKLWV4cG9ydCB0YWduYW1lPSJDQyIKLQotRVhUUkFfT0VNQUtFID0gIkRJU1RfUk9PVD0nJHtEfSciCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKLSAgICBleHBvcnQgQlVJTERfQ0M9IiR7QlVJTERfQ0N9ICR7QlVJTERfQ0ZMQUdTfSIKLSAgICAjIFByZXZlbnQgTWFrZWZpbGUgZnJvbSBjYWxsaW5nIGNvbmZpZ3VyZSB3aXRob3V0IGFyZ3VtZW50cywKLSAgICAjIHdoZW4gZG9fY29uZmlndXJlIGdldHMgY2FsbGVkIGZvciBhIHNlY29uZCB0aW1lLgotICAgIHJtIC1mICR7Qn0vaW5jbHVkZS9idWlsZGRlZnMgJHtCfS9pbmNsdWRlL3BsYXRmb3JtX2RlZnMuaCAke0J9L2NvbmZpZ3VyZQotICAgICMgUmVjcmVhdGUgY29uZmlndXJlIHNjcmlwdC4KLSAgICBvZV9ydW5tYWtlIGNvbmZpZ3VyZQotfQotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICAgICAgb2VfcnVubWFrZSAnREVTVERJUj0ke0R9JyBpbnN0YWxsLWRldgotICAgICAgICBybSAke0R9JHtsaWJkaXJ9LyoubGEKLSAgICAgICAgcm1kaXIgLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkgJHtEfSR7bGliZGlyfQotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MveGZzcHJvZ3NfNC4xNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MveGZzcHJvZ3NfNC4xNC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkNzZhZmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy94ZnNwcm9nc180LjE0LjAuYmIKQEAgLTAsMCArMSw2MyBAQAorU1VNTUFSWSA9ICJYRlMgRmlsZXN5c3RlbSBVdGlsaXRpZXMiCitIT01FUEFHRSA9ICJodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMveGZzIgorU0VDVElPTiA9ICJiYXNlIgorTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2Mi4xIgorTElDRU5TRV9saWJoYW5kbGUgPSAiTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9kb2MvQ09QWUlORzttZDU9MTAyZjdmZWMzZDUzYzdjOGYwYjdiYWY5YmY5ZDc2YTgiCitERVBFTkRTID0gInV0aWwtbGludXggdXRpbC1saW51eC1uYXRpdmUiCitTUkNfVVJJID0gImh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL2ZzL3hmcy94ZnNwcm9ncy8ke0JQfS50YXIueHogXAorICAgICAgICAgICBmaWxlOi8vcmVtb3ZlX2ZsYWdzX2Zyb21fYnVpbGRfZmxhZ3MucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1idWlsZC1DaGVjay1mb3Itc3luY19maWxlX3JhbmdlLWxpYmMtZnVuY3Rpb24ucGF0Y2ggXAorICAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiMmQ1MGUzNzUxY2M5OGU2YzkzNjRiYzNkMjI5N2I5ZmQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjFiNzEwYjI2OGJjOTVkNmY0NWVjYTA2ZTEyNjJjMjllYjM4ODY1YTE5Y2Q0NDA0ZTQ4YmE0NDZlMDQzYjdlYyIKKworaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwCisKK1BBQ0tBR0VTID0rICIke1BOfS1mc2NrICR7UE59LW1rZnMgJHtQTn0tcmVwYWlyIGxpYmhhbmRsZSIKKworREVQRU5EUyArPSAidXRpbC1saW51eCIKKworUkRFUEVORFNfJHtQTn0gPSAiJHtQTn0tZnNjayAke1BOfS1ta2ZzICR7UE59LXJlcGFpciIKKworRklMRVNfJHtQTn0tZnNjayA9ICIke2Jhc2Vfc2JpbmRpcn0vZnNjay54ZnMiCitGSUxFU18ke1BOfS1ta2ZzID0gIiR7YmFzZV9zYmluZGlyfS9ta2ZzLnhmcyIKK0ZJTEVTXyR7UE59LXJlcGFpciA9ICIke2Jhc2Vfc2JpbmRpcn0veGZzX3JlcGFpciIKKworRklMRVNfbGliaGFuZGxlID0gIiR7YmFzZV9saWJkaXJ9L2xpYmhhbmRsZSR7U09MSUJTfSIKKworRVhUUkFfT0VDT05GID0gIi0tZW5hYmxlLWdldHRleHQ9bm8gXAorICAgICAgICAgICAgICAgIElOU1RBTExfVVNFUj1yb290IFwKKyAgICAgICAgICAgICAgICBJTlNUQUxMX0dST1VQPXJvb3QgXAorICAgICAgICAgICAgICAgIGFjX2N2X2hlYWRlcl9haW9faD15ZXMgXAorICAgICAgICAgICAgICAgIGFjX2N2X2xpYl9ydF9saW9fbGlzdGlvPXllcyBcCisiCisKK0RJU0FCTEVfU1RBVElDID0gIiIKK0VYVFJBX0FVVE9SRUNPTkYgKz0gIi1JICR7U30vbTQgLS1leGNsdWRlPWF1dG9oZWFkZXIiCisKK1BBQ0tBR0VDT05GSUcgPz89ICJyZWFkbGluZSBibGtpZCIKKworUEFDS0FHRUNPTkZJR1tyZWFkbGluZV0gPSAiLS1lbmFibGUtcmVhZGxpbmU9eWVzLC0tZW5hYmxlLXJlYWRsaW5lPW5vLHJlYWRsaW5lIgorUEFDS0FHRUNPTkZJR1tibGtpZF0gPSAiLS1lbmFibGUtYmxraWQ9eWVzLC0tZW5hYmxlLWJsa2lkPW5vLHV0aWwtbGludXgiCisKK2V4cG9ydCBERUJVRz0iLUROREVCVUciCitleHBvcnQgQlVJTERfVkVSQk9TRT0iMSIKK2V4cG9ydCB0YWduYW1lPSJDQyIKKworRVhUUkFfT0VNQUtFID0gIkRJU1RfUk9PVD0nJHtEfSciCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKKyAgICBleHBvcnQgQlVJTERfQ0M9IiR7QlVJTERfQ0N9ICR7QlVJTERfQ0ZMQUdTfSIKKyAgICAjIFByZXZlbnQgTWFrZWZpbGUgZnJvbSBjYWxsaW5nIGNvbmZpZ3VyZSB3aXRob3V0IGFyZ3VtZW50cywKKyAgICAjIHdoZW4gZG9fY29uZmlndXJlIGdldHMgY2FsbGVkIGZvciBhIHNlY29uZCB0aW1lLgorICAgIHJtIC1mICR7Qn0vaW5jbHVkZS9idWlsZGRlZnMgJHtCfS9pbmNsdWRlL3BsYXRmb3JtX2RlZnMuaCAke0J9L2NvbmZpZ3VyZQorICAgICMgUmVjcmVhdGUgY29uZmlndXJlIHNjcmlwdC4KKyAgICBvZV9ydW5tYWtlIGNvbmZpZ3VyZQorfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICAgICAgb2VfcnVubWFrZSAnREVTVERJUj0ke0R9JyBpbnN0YWxsLWRldgorICAgICAgICBybSAke0R9JHtsaWJkaXJ9LyoubGEKKyAgICAgICAgcm1kaXIgLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkgJHtEfSR7bGliZGlyfQorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL1JFQURNRSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9SRUFETUUKaW5kZXggMjVlZjg1ZC4uMmE2ODJlNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL1JFQURNRQorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvUkVBRE1FCkBAIC0xLDE3ICsxLDM4IEBACittZXRhLWdub21lCis9PT09PT09PT09PQorCitUaGUgcmVjaXBlIGluIHRoaXMgbGF5ZXIgbmVlZHMgdG8gaGF2ZSAneDExJyBpbiBESVNUUk9fRkVBVFVSRVMgCit0byBoYXZlIGVmZmVjdC4gVG8gZW5hYmxlIHRoZW0sIGFkZCBpbiBjb25maWd1cmF0aW9uIGZpbGUgdGhlIGZvbGxvd2luZyBsaW5lLgorCisgIERJU1RST19GRUFUVVJFU19hcHBlbmQgPSAiIHgxMSIKKworSWYgbWV0YS1nbm9tZSBpcyBpbmNsdWRlZCwgYnV0IHgxMSBpcyBub3QgZW5hYmxlZCBhcyBhCitkaXN0cm8gZmVhdHVyZSBhIHdhcm5pbmcgaXMgcHJpbnRlZCBhdCBwYXJzZSB0aW1lOgorCisgICAgWW91IGhhdmUgaW5jbHVkZWQgdGhlIG1ldGEtZ25vbWUgbGF5ZXIsIGJ1dAorICAgICd4MTEnIGhhcyBub3QgYmVlbiBlbmFibGVkIGluIHlvdXIgRElTVFJPX0ZFQVRVUkVTLgorCitJZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcsIHRoaXMgd2FybmluZyBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyB0aGUgZm9sbG93aW5nCit2YXJpYWJsZSBpbiB5b3VyIGNvbmZpZ3VyYXRpb246CisKKyAgU0tJUF9NRVRBX0dOT01FX1NBTklUWV9DSEVDSyA9IDEKKworCitEZXBlbmRlbmNpZXMKKy0tLS0tLS0tLS0tLQogVGhpcyBsYXllciBkZXBlbmRzIG9uOgogCiBVUkk6IGdpdDovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL29lLWNvcmUuZ2l0Ci1icmFuY2g6IHJvY2tvCiticmFuY2g6IG1hc3RlcgogcmV2aXNpb246IEhFQUQKIAogVVJJOiBnaXQ6Ly9naXRodWIuY29tL29wZW5lbWJlZGRlZC9tZXRhLW9lLmdpdAotYnJhbmNoOiByb2NrbworYnJhbmNoOiBtYXN0ZXIKIHJldmlzaW9uOiBIRUFECiAKLVNlbmQgcHVsbCByZXF1ZXN0cyB0byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyB3aXRoICdbbWV0YS1nbm9tZV1bcm9ja29dJyBpbiB0aGUgc3ViamVjdCcKK1NlbmQgcHVsbCByZXF1ZXN0cyB0byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyB3aXRoICdbbWV0YS1nbm9tZV0nIGluIHRoZSBzdWJqZWN0JwogCiBXaGVuIHNlbmRpbmcgc2luZ2xlIHBhdGNoZXMsIHBsZWFzZSB1c2luZyBzb21ldGhpbmcgbGlrZToKLSdnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1nbm9tZV1bcm9ja29dW1BBVENIJworJ2dpdCBzZW5kLWVtYWlsIC1NIC0xIC0tdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgLS1zdWJqZWN0LXByZWZpeD1tZXRhLWdub21lXVtQQVRDSCcKIAotcm9ja28gQnJhbmNoIE1haW50YWluZXI6Ci1Bcm1pbiBLdXN0ZXIgPGFrdXN0ZXI4MDhAZ21haWwuY29tPgorTGF5ZXIgbWFpbnRhaW5lcjogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL2NsYXNzZXMvc2FuaXR5LW1ldGEtZ25vbWUuYmJjbGFzcyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9jbGFzc2VzL3Nhbml0eS1tZXRhLWdub21lLmJiY2xhc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzMxZWExOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9jbGFzc2VzL3Nhbml0eS1tZXRhLWdub21lLmJiY2xhc3MKQEAgLTAsMCArMSwxMCBAQAorYWRkaGFuZGxlciBnbm9tZV9iYmFwcGVuZF9kaXN0cm9jaGVjaworZ25vbWVfYmJhcHBlbmRfZGlzdHJvY2hlY2tbZXZlbnRtYXNrXSA9ICJiYi5ldmVudC5TYW5pdHlDaGVjayIKK3B5dGhvbiBnbm9tZV9iYmFwcGVuZF9kaXN0cm9jaGVjaygpIHsKKyAgICBza2lwX2NoZWNrID0gZS5kYXRhLmdldFZhcignU0tJUF9NRVRBX0dOT01FX1NBTklUWV9DSEVDSycpID09ICIxIgorICAgIGlmICd4MTEnIG5vdCBpbiBlLmRhdGEuZ2V0VmFyKCdESVNUUk9fRkVBVFVSRVMnKS5zcGxpdCgpIGFuZCBub3Qgc2tpcF9jaGVjazoKKyAgICAgICAgYmIud2FybigiWW91IGhhdmUgaW5jbHVkZWQgdGhlIG1ldGEtZ25vbWUgbGF5ZXIsIGJ1dCBcCisneDExJyBoYXMgbm90IGJlZW4gZW5hYmxlZCBpbiB5b3VyIERJU1RST19GRUFUVVJFUy4gU29tZSBiYmFwcGVuZCBmaWxlcyBcCittYXkgbm90IHRha2UgZWZmZWN0LiBTZWUgdGhlIG1ldGEtZ25vbWUgUkVBRE1FIGZvciBkZXRhaWxzIG9uIGVuYWJsaW5nIFwKK21ldGEtZ25vbWUgc3VwcG9ydC4iKQorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9jb25mL2xheWVyLmNvbmYKaW5kZXggYTEzODgxOC4uZTZlOTUzMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvY29uZi9sYXllci5jb25mCkBAIC0xNCw0ICsxNCw4IEBACiAKIExBWUVSREVQRU5EU19nbm9tZS1sYXllciA9ICJjb3JlIG9wZW5lbWJlZGRlZC1sYXllciBuZXR3b3JraW5nLWxheWVyIgogCi1BVkFISV9HVEtfcG4tYXZhaGktdWkgPSAiZ3RrIGd0azMiCitMQVlFUlNFUklFU19DT01QQVRfZ25vbWUtbGF5ZXIgPSAic3VtbyIKKworIyBTYW5pdHkgY2hlY2sgZm9yIG1ldGEtZ25vbWUgbGF5ZXIuCisjIFNldHRpbmcgU0tJUF9NRVRBX0dOT01FX1NBTklUWV9DSEVDSyB0byAiMSIgd291bGQgc2tpcCB0aGUgYmJhcHBlbmQgZmlsZXMgY2hlY2suCitJTkhFUklUICs9ICJzYW5pdHktbWV0YS1nbm9tZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrLW1hbmFnZXItYXBwbGV0L25ldHdvcmstbWFuYWdlci1hcHBsZXRfMS40LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29yay1tYW5hZ2VyLWFwcGxldC9uZXR3b3JrLW1hbmFnZXItYXBwbGV0XzEuNC40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNGIzMzZhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrLW1hbmFnZXItYXBwbGV0L25ldHdvcmstbWFuYWdlci1hcHBsZXRfMS40LjQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1TVU1NQVJZID0gIkdUSysgYXBwbGV0IGZvciBOZXR3b3JrTWFuYWdlciIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT01OTUzMGJkZjMzNjU5YjI5ZTczZDRhZGI5ZjlmNjU1MiIKLQotREVQRU5EUyA9ICJndGsrMyBsaWJub3RpZnkgbGlic2VjcmV0IG5ldHdvcmttYW5hZ2VyIGRidXMtZ2xpYiBcCi0gICAgICAgICAgIGdjb25mIGxpYmdub21lLWtleXJpbmcgaXNvLWNvZGVzIG5zcyBcCi0gICAgICAgICAgIGludGx0b29sLW5hdGl2ZSBcCi0iCi0KLWluaGVyaXQgZ25vbWViYXNlIGdzZXR0aW5ncyBndGstaWNvbi1jYWNoZSBnb2JqZWN0LWludHJvc3BlY3Rpb24KLQotR05PTUVfQ09NUFJFU1NfVFlQRSA9ICJ4eiIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiM2Y4MmNlZGM0NzAzZGYwMjc3Yzc2ZDlmZWI1YmYyYzgiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICI2OTM4NDZlZWFlMDk4NmU3OWViMWNlZGZiYzQ5OWYxMzJmMjdhOTk3NmVmMTg5YTBmMTY5MzhhYzU5ZWMzMjI2IgotCi1QQUNLQUdFQ09ORklHW21vZGVtbWFuYWdlcl0gPSAiLS13aXRoLXd3YW4sLS13aXRob3V0LXd3YW4sbW9kZW1tYW5hZ2VyIgotUEFDS0FHRUNPTkZJRyA/Pz0gIiIKLQotR0lfREFUQV9FTkFCTEVEX2xpYmMtbXVzbCA9ICJGYWxzZSIKLQotZG9fY29uZmlndXJlX2FwcGVuZCgpIHsKLSAgICAjIFNpZ2guLi4gLS1lbmFibGUtY29tcGlsZS13YXJuaW5ncz1ubyBkb2Vzbid0IGFjdHVhbGx5IHR1cm4gb2ZmIC1XZXJyb3IKLSAgICBmb3IgaSBpbiAkKGZpbmQgJHtCfSAtbmFtZSAiTWFrZWZpbGUiKSA7IGRvCi0gICAgICAgIHNlZCAtaSAtZSBzJS1XZXJyb3JbXls6c3BhY2U6XV0qJSVnICRpCi0gICAgZG9uZQotfQotCi1SREVQRU5EU18ke1BOfSA9KyAibmV0d29ya21hbmFnZXIiCi0KLUZJTEVTXyR7UE59ICs9ICIgXAotICAgICR7ZGF0YWRpcn0vYXBwZGF0YSBcCi0gICAgJHtkYXRhZGlyfS9ubS1hcHBsZXQvIFwKLSAgICAke2RhdGFkaXJ9L2xpYm5tLWd0ay93aWZpLnVpIFwKLSAgICAke2RhdGFkaXJ9L2xpYm5tYS93aWZpLnVpIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrLW1hbmFnZXItYXBwbGV0L25ldHdvcmstbWFuYWdlci1hcHBsZXRfMS44LjEwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmstbWFuYWdlci1hcHBsZXQvbmV0d29yay1tYW5hZ2VyLWFwcGxldF8xLjguMTAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMyYjk2NAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrLW1hbmFnZXItYXBwbGV0L25ldHdvcmstbWFuYWdlci1hcHBsZXRfMS44LjEwLmJiCkBAIC0wLDAgKzEsNDUgQEAKK1NVTU1BUlkgPSAiR1RLKyBhcHBsZXQgZm9yIE5ldHdvcmtNYW5hZ2VyIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgorCitERVBFTkRTID0gImd0ayszIGxpYm5vdGlmeSBsaWJzZWNyZXQgbmV0d29ya21hbmFnZXIgZGJ1cy1nbGliIFwKKyAgICAgICAgICAgZ2NvbmYgbGliZ25vbWUta2V5cmluZyBpc28tY29kZXMgbnNzIFwKKyAgICAgICAgICAgaW50bHRvb2wtbmF0aXZlIFwKKyIKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgZ25vbWViYXNlIGdzZXR0aW5ncyBndGstaWNvbi1jYWNoZSBnb2JqZWN0LWludHJvc3BlY3Rpb24KKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiZWFlM2JlNzVlNzdmZjFhN2VhMzE3NGJlMjVlNjJkMDMiCitTUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICIwYWRjNGJmYWU4YjQ5ZjdhMWQ5MjljMjJlZjIwOTMzYmQ0MWZiNGE4YjQ1ODI4MGY0NGM2NWY5ZTQ1YjRjOWMzIgorCitQQUNLQUdFQ09ORklHW21vZGVtbWFuYWdlcl0gPSAiLS13aXRoLXd3YW4sLS13aXRob3V0LXd3YW4sbW9kZW1tYW5hZ2VyIgorUEFDS0FHRUNPTkZJRyA/Pz0gIiIKKworRVhUUkFfT0VDT05GID0gIiBcCisgICAgLS13aXRob3V0LXNlbGludXggXAorIgorCitkb19jb25maWd1cmVfYXBwZW5kKCkgeworICAgICMgU2lnaC4uLiAtLWVuYWJsZS1jb21waWxlLXdhcm5pbmdzPW5vIGRvZXNuJ3QgYWN0dWFsbHkgdHVybiBvZmYgLVdlcnJvcgorICAgIGZvciBpIGluICQoZmluZCAke0J9IC1uYW1lICJNYWtlZmlsZSIpIDsgZG8KKyAgICAgICAgc2VkIC1pIC1lIHMlLVdlcnJvclteWzpzcGFjZTpdXSolJWcgJGkKKyAgICBkb25lCit9CisKKyMgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHJlbGF0ZWQKK0dJX0RBVEFfRU5BQkxFRF9saWJjLW11c2wgPSAiRmFsc2UiCisKK2RvX2NvbXBpbGVfcHJlcGVuZCgpIHsKKyAgICBleHBvcnQgR0lSX0VYVFJBX0xJQlNfUEFUSD0iJHtCfS9zcmMvbGlibm1hLy5saWJzOiR7Qn0vc3JjL2xpYm5tLWd0ay8ubGlicyIKK30KKworUkRFUEVORFNfJHtQTn0gPSsgIm5ldHdvcmttYW5hZ2VyIgorCitGSUxFU18ke1BOfSArPSAiIFwKKyAgICAke2RhdGFkaXJ9L2FwcGRhdGEgXAorICAgICR7ZGF0YWRpcn0vbm0tYXBwbGV0LyBcCisgICAgJHtkYXRhZGlyfS9saWJubS1ndGsvd2lmaS51aSBcCisgICAgJHtkYXRhZGlyfS9saWJubWEvd2lmaS51aSBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleC9vYmV4ZC9zc2l6ZV90X2RlZmluaXRpb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleC9vYmV4ZC9zc2l6ZV90X2RlZmluaXRpb24ucGF0Y2gKaW5kZXggMjAwOWRjZC4uNTcwY2I5ZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtY29ubmVjdGl2aXR5L29iZXgvb2JleGQvc3NpemVfdF9kZWZpbml0aW9uLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9vYmV4L29iZXhkL3NzaXplX3RfZGVmaW5pdGlvbi5wYXRjaApAQCAtMSw0ICsxLDcgQEAKLWluY2x1ZGUgdW5pc3RkLmggdG8gZ2V0IHNzaXplX3QgZGVmaW5pdGlvbnMKK0Zyb20gZmI1MDU2ZmVhOTU1OWIzZWMzYmI2MTk2N2ExMTJiNmM3OTNiNzAwZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDggSmFuIDIwMTMgMjE6MzM6MzQgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gaW5jbHVkZSB1bmlzdGQuaCB0byBnZXQgc3NpemVfdCBkZWZpbml0aW9ucwogCiBGaXhlcyBlcnJvcnMgbGlrZQogCkBAIC0xOCwxNSArMjEsMjAgQEAKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotSW5kZXg6IG9iZXhkLTAuNDQvcGx1Z2lucy9tYXMuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIG9iZXhkLTAuNDQub3JpZy9wbHVnaW5zL21hcy5jCTIwMTItMDEtMTEgMTQ6NTM6NTMuMDAwMDAwMDAwIC0wODAwCi0rKysgb2JleGQtMC40NC9wbHVnaW5zL21hcy5jCTIwMTMtMDEtMDggMTI6NTE6MTIuNjgxODgyMTc0IC0wODAwCi1AQCAtMjksNiArMjksNyBAQAorCistLS0KKyBwbHVnaW5zL21hcy5jIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9wbHVnaW5zL21hcy5jIGIvcGx1Z2lucy9tYXMuYworaW5kZXggMWIxODA1OS4uYjUxOTUwNyAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvbWFzLmMKKysrKyBiL3BsdWdpbnMvbWFzLmMKK0BAIC0zMCw2ICszMCw3IEBACiAgI2luY2x1ZGUgPGdsaWIuaD4KICAjaW5jbHVkZSA8ZmNudGwuaD4KICAjaW5jbHVkZSA8aW50dHlwZXMuaD4KICsjaW5jbHVkZSA8dW5pc3RkLmg+CiAgCi0gI2luY2x1ZGUgIm9iZXhkLmgiCi0gI2luY2x1ZGUgInBsdWdpbi5oIgorICNpbmNsdWRlIDxnb2JleC9nb2JleC5oPgorICNpbmNsdWRlIDxnb2JleC9nb2JleC1hcHBhcmFtLmg+CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTMvMDAwMS1BZGQtR19HTlVDX1BSSU5URi1vbi1mdW5jdGlvbnMtd2l0aC1mb3JtYXQtc3RyaW5ncy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlMy8wMDAxLUFkZC1HX0dOVUNfUFJJTlRGLW9uLWZ1bmN0aW9ucy13aXRoLWZvcm1hdC1zdHJpbmdzLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTMvMDAwMS1BZGQtR19HTlVDX1BSSU5URi1vbi1mdW5jdGlvbnMtd2l0aC1mb3JtYXQtc3RyaW5ncy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzLzAwMDEtQWRkLUdfR05VQ19QUklOVEYtb24tZnVuY3Rpb25zLXdpdGgtZm9ybWF0LXN0cmluZ3MucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlMy8wMDAxLWdub21lLWRvYy11dGlscy5tYWtlLXN5c3Jvb3RlZC1wa2ctY29uZmlnLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzLzAwMDEtZ25vbWUtZG9jLXV0aWxzLm1ha2Utc3lzcm9vdGVkLXBrZy1jb25maWcucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlMy8wMDAxLWdub21lLWRvYy11dGlscy5tYWtlLXN5c3Jvb3RlZC1wa2ctY29uZmlnLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTMvMDAwMS1nbm9tZS1kb2MtdXRpbHMubWFrZS1zeXNyb290ZWQtcGtnLWNvbmZpZy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzLzAwMDItZml4LWdjYy02LWJ1aWxkLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzLzAwMDItZml4LWdjYy02LWJ1aWxkLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTMvMDAwMi1maXgtZ2NjLTYtYnVpbGQucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlMy8wMDAyLWZpeC1nY2MtNi1idWlsZC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzXyUuYmJhcHBlbmQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTNfJS5iYmFwcGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FiYWNmYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTNfJS5iYmFwcGVuZAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVBBQ0tBR0VDT05GSUcgPz89ICJnbm9tZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlM18zLjguNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlM18zLjguNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2RhM2U5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzXzMuOC41LmJiCkBAIC0wLDAgKzEsMjMgQEAKK1NVTU1BUlkgPSAiR2xhZGUgLSBBIFVzZXIgSW50ZXJmYWNlIERlc2lnbmVyIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2duYXNoIgorTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWFhYmU4NzU5MWNiOGFlMGYzYzY4YmU2OTc3YmI1NTIyIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuR1BMO21kNT05YWMyZTdjZmYxZGRhZjQ4YjZlYWI2MDI4ZjIzZWY4OCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkxHUEw7bWQ1PTI1Mjg5MGQ5ZWVlMjZhYWI3YjQzMmU4YjhhNjE2NDc1IgorREVQRU5EUyA9ICJndGsrIGdub21lLWRvYy11dGlscyBnbm9tZS1jb21tb24gbGlieG1sMiBpbnRsdG9vbC1uYXRpdmUiCisKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcgcHl0aG9ubmF0aXZlIGd0ay1pY29uLWNhY2hlCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK1NSQ19VUkkgPSAiaHR0cDovL2Z0cC5nbm9tZS5vcmcvcHViL0dOT01FL3NvdXJjZXMvZ2xhZGUzLzMuOC9nbGFkZTMtJHtQVn0udGFyLnh6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtZ25vbWUtZG9jLXV0aWxzLm1ha2Utc3lzcm9vdGVkLXBrZy1jb25maWcucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMi1maXgtZ2NjLTYtYnVpbGQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1BZGQtR19HTlVDX1BSSU5URi1vbi1mdW5jdGlvbnMtd2l0aC1mb3JtYXQtc3RyaW5ncy5wYXRjaCBcCisgICAgICAgICAgICIKK1NSQ19VUklbbWQ1c3VtXSA9ICI0ZTRiNGY1ZWUzNGEwM2UwMTdlNGNlZjk3ZDc5NmMxZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1OGE1ZjZlNGRmNDAyODIzMGRkZWNjNzRjNTY0ODA4YjdlYzQ0NzFiMTkyNTA1OGUyOTMwNGY3NzhiNmIyNzM1IgorCitFWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1zY3JvbGxrZWVwZXIiCisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2ljb25zIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZXh0ZW5kZWQvZ3BhcnRlZC9ncGFydGVkXzAuMjguMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWV4dGVuZGVkL2dwYXJ0ZWQvZ3BhcnRlZF8wLjI4LjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzYWI2ZjIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZXh0ZW5kZWQvZ3BhcnRlZC9ncGFydGVkXzAuMjguMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLVNVTU1BUlkgPSAiQSBwYXJ0aXRpb24gZWRpdG9yIHRvIGdyYXBoaWNhbGx5IG1hbmFnZSBkaXNrIHBhcnRpdGlvbnMgIgotSE9NRVBBR0UgPSAiaHR0cDovL2dwYXJ0ZWQub3JnL2luZGV4LnBocCIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGd0ay1pY29uLWNhY2hlCi0KLVNSQ19VUkkgPSAiIFwKLSAgICAke1NPVVJDRUZPUkdFX01JUlJPUn0vcHJvamVjdC8ke0JQTn0vJHtCUE59LyR7QlBOfS0ke1BWfS8ke0JQTn0tJHtQVn0udGFyLmd6IFwKLSAgICBmaWxlOi8vb3JnLnlvY3RvcHJvamVjdC5wa2V4ZWMucnVuLWdwYXJ0ZWQucG9saWN5IFwKLSAgICBmaWxlOi8vZ3BhcnRlZF9wb2xraXQgXAotIgotU1JDX1VSSVttZDVzdW1dID0gImFiNzI0NjRhM2FiMjEzNzY2NGQ5ZGY4NDYyYmVmZDNmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc2ODkxZjE0Mzk0NzU0ZjdkNmVjY2ViYTJhZjBlNTg1YmY4OWY5ZDc4MGMzODlhMjU1ZGNkNDFhMmY0NWQzMzMiCi0KLURFUEVORFMgPSAiZ2xpYi0yLjAgZ2xpYi0yLjAtbmF0aXZlIGd0a21tIHBhcnRlZCBnbm9tZS1kb2MtdXRpbHMgaW50bHRvb2wtbmF0aXZlIgotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICAjIEFkZCBhIHNjcmlwdCB3aGljaCBjaGVja3MgaWYgcG9sa2l0IGlzIGluc3RhbGxlZC4KLSAgICAjIElmIHllczogYSBwb2xpY3kgaXMgcmVxdWVzdGVkIGZyb20gcG9sa2l0IC8gb3RoZXJ3aXNlIHN0YXJ0IGFzIHVzdWFsCi0gICAgaW5zdGFsbCAke1dPUktESVJ9L2dwYXJ0ZWRfcG9sa2l0ICR7RH0ke3NiaW5kaXJ9Ci0gICAgc2VkIC1pICdzOiVzYmluZGlyJToke3NiaW5kaXJ9OmcnICR7RH0ke3NiaW5kaXJ9L2dwYXJ0ZWRfcG9sa2l0Ci0gICAgIyByZWxpbmsgbWVudSBlbnRyeSB0byB1c2Ugb3VyIHNjcmlwdAotICAgIHNlZCAtaSAnczoke3NiaW5kaXJ9L2dwYXJ0ZWQ6JHtzYmluZGlyfS9ncGFydGVkX3BvbGtpdDpnJyAke0R9JHtkYXRhZGlyfS9hcHBsaWNhdGlvbnMvZ3BhcnRlZC5kZXNrdG9wCi0KLSAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9L3BvbGtpdC0xL2FjdGlvbnMKLSAgICBpbnN0YWxsICR7V09SS0RJUn0vb3JnLnlvY3RvcHJvamVjdC5wa2V4ZWMucnVuLWdwYXJ0ZWQucG9saWN5ICR7RH0ke2RhdGFkaXJ9L3BvbGtpdC0xL2FjdGlvbnMvb3JnLnlvY3RvcHJvamVjdC5wa2V4ZWMucnVuLWdwYXJ0ZWQucG9saWN5Ci19Ci0KLUVYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtc2Nyb2xsa2VlcGVyIC0tZGlzYWJsZS1kb2MiCi0KLUZJTEVTXyR7UE59ICs9ICIgXAotICAgICR7ZGF0YWRpcn0vYXBwZGF0YSBcCi0gICAgJHtkYXRhZGlyfS9pY29ucyBcCi0gICAgJHtkYXRhZGlyfS9wb2xraXQtMSBcCi0iCi0KLVJERVBFTkRTXyR7UE59ID0gImRvc2ZzdG9vbHMgbXRvb2xzIGUyZnNwcm9ncyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWV4dGVuZGVkL2dwYXJ0ZWQvZ3BhcnRlZF8wLjMxLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1leHRlbmRlZC9ncGFydGVkL2dwYXJ0ZWRfMC4zMS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4YmVhZjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1leHRlbmRlZC9ncGFydGVkL2dwYXJ0ZWRfMC4zMS4wLmJiCkBAIC0wLDAgKzEsNDAgQEAKK1NVTU1BUlkgPSAiQSBwYXJ0aXRpb24gZWRpdG9yIHRvIGdyYXBoaWNhbGx5IG1hbmFnZSBkaXNrIHBhcnRpdGlvbnMgIgorSE9NRVBBR0UgPSAiaHR0cDovL2dwYXJ0ZWQub3JnL2luZGV4LnBocCIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBndGstaWNvbi1jYWNoZQorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJID0gIiBcCisgICAgJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3Byb2plY3QvJHtCUE59LyR7QlBOfS8ke0JQTn0tJHtQVn0vJHtCUE59LSR7UFZ9LnRhci5neiBcCisgICAgZmlsZTovL29yZy55b2N0b3Byb2plY3QucGtleGVjLnJ1bi1ncGFydGVkLnBvbGljeSBcCisgICAgZmlsZTovL2dwYXJ0ZWRfcG9sa2l0IFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJjNTU0Y2M1NzM0YzUwNDU5ZGQ1NTFiZDNmYTEwNzEwZSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzYjdiNDlhNDM0ZDllNGIzOTdiYzQxYTFmNWFjYWI4NTM5YjlmZjQwMmI0NzJkZmQ4M2FkNzdiMmRlY2QwN2JhIgorCitERVBFTkRTID0gImdsaWItMi4wIGdsaWItMi4wLW5hdGl2ZSBndGttbSBwYXJ0ZWQgZ25vbWUtZG9jLXV0aWxzIGludGx0b29sLW5hdGl2ZSIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgIyBBZGQgYSBzY3JpcHQgd2hpY2ggY2hlY2tzIGlmIHBvbGtpdCBpcyBpbnN0YWxsZWQuCisgICAgIyBJZiB5ZXM6IGEgcG9saWN5IGlzIHJlcXVlc3RlZCBmcm9tIHBvbGtpdCAvIG90aGVyd2lzZSBzdGFydCBhcyB1c3VhbAorICAgIGluc3RhbGwgJHtXT1JLRElSfS9ncGFydGVkX3BvbGtpdCAke0R9JHtzYmluZGlyfQorICAgIHNlZCAtaSAnczolc2JpbmRpciU6JHtzYmluZGlyfTpnJyAke0R9JHtzYmluZGlyfS9ncGFydGVkX3BvbGtpdAorICAgICMgcmVsaW5rIG1lbnUgZW50cnkgdG8gdXNlIG91ciBzY3JpcHQKKyAgICBzZWQgLWkgJ3M6JHtzYmluZGlyfS9ncGFydGVkOiR7c2JpbmRpcn0vZ3BhcnRlZF9wb2xraXQ6ZycgJHtEfSR7ZGF0YWRpcn0vYXBwbGljYXRpb25zL2dwYXJ0ZWQuZGVza3RvcAorCisgICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9wb2xraXQtMS9hY3Rpb25zCisgICAgaW5zdGFsbCAke1dPUktESVJ9L29yZy55b2N0b3Byb2plY3QucGtleGVjLnJ1bi1ncGFydGVkLnBvbGljeSAke0R9JHtkYXRhZGlyfS9wb2xraXQtMS9hY3Rpb25zL29yZy55b2N0b3Byb2plY3QucGtleGVjLnJ1bi1ncGFydGVkLnBvbGljeQorfQorCitFWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLXNjcm9sbGtlZXBlciAtLWRpc2FibGUtZG9jIgorCitGSUxFU18ke1BOfSArPSAiIFwKKyAgICAke2RhdGFkaXJ9L2FwcGRhdGEgXAorICAgICR7ZGF0YWRpcn0vaWNvbnMgXAorICAgICR7ZGF0YWRpcn0vcG9sa2l0LTEgXAorIgorCitSREVQRU5EU18ke1BOfSA9ICJkb3Nmc3Rvb2xzIG10b29scyBlMmZzcHJvZ3MiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9hYml3b3JkL2FiaXdvcmRfMy4wLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9hYml3b3JkL2FiaXdvcmRfMy4wLjIuYmIKaW5kZXggMmExM2U0OC4uZDJjMDE4NiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYWJpd29yZC9hYml3b3JkXzMuMC4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2FiaXdvcmQvYWJpd29yZF8zLjAuMi5iYgpAQCAtOCw3ICs4LDYgQEAKICAgICBndGsrIFwKICAgICBndGttYXRodmlldyBcCiAgICAgd3YgXAotICAgIGxpYmdsYWRlIFwKICAgICBsaWJmcmliaWRpIFwKICAgICBqcGVnIFwKICAgICBsaWJwbmcgXApAQCAtMzgsNyArMzcsOSBAQAogI3dhbnQgMy54IGZyb20gMy54LnkgZm9yIHRoZSBpbnN0YWxsYXRpb24gZGlyZWN0b3J5CiBTSFJUX1ZFUiA9ICIke0BkLmdldFZhcignUFYnKS5zcGxpdCgnLicpWzBdfS4ke0BkLmdldFZhcignUFYnKS5zcGxpdCgnLicpWzFdfSIKIAotaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogUEFDS0FHRUNPTkZJRyA/Pz0gIiBcCiAgICAgY29sbGFiLWJhY2tlbmQteG1wcCBjb2xsYWItYmFja2VuZC10Y3AgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzLzAwMDEtYm9ub2JvLXVpLW5vZGUtcXVhbGlmeS1mdW5jdGlvbnMtd2l0aC1HX0dOVUNfUFJJTlRGLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzLzAwMDEtYm9ub2JvLXVpLW5vZGUtcXVhbGlmeS1mdW5jdGlvbnMtd2l0aC1HX0dOVUNfUFJJTlRGLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWFlYmI4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9maWxlcy8wMDAxLWJvbm9iby11aS1ub2RlLXF1YWxpZnktZnVuY3Rpb25zLXdpdGgtR19HTlVDX1BSSU5URi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLUZyb20gYjc1ODc5ZThjM2UyNGQzMzhjMGU1ODQzZDYxNmJjOWIwMmRhNGQwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDI2IEF1ZyAyMDE3IDA5OjUyOjE3IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIGJvbm9iby11aS1ub2RlOiBxdWFsaWZ5IGZ1bmN0aW9ucyB3aXRoIEdfR05VQ19QUklOVEYKLQotVGhpcyBoZWxwcyBjb21waWxlciBpbiBkb2luZyBmb3JtYXQgY2hlY2tpbmcgY29ycmVjdGx5Ci1GaXhlcwotYm9ub2JvLXVpLW5vZGUuYzo4NjQ6Mzg6IGVycm9yOiBmb3JtYXQgc3RyaW5nIGlzIG5vdCBhIHN0cmluZyBsaXRlcmFsIFstV2Vycm9yLC1XZm9ybWF0LW5vbmxpdGVyYWxdCi18ICAgICAgICAgZ19sb2d2ICAgKCJYTUwiLCBHX0xPR19MRVZFTF9FUlJPUiwgbXNnLCBhcmdzKTsKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIGJvbm9iby9ib25vYm8tdWktbm9kZS5jIHwgNiArKystLS0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYm9ub2JvL2Jvbm9iby11aS1ub2RlLmMgYi9ib25vYm8vYm9ub2JvLXVpLW5vZGUuYwotaW5kZXggOWJhYjVlNS4uNmVjNjZlMiAxMDA2NDQKLS0tLSBhL2Jvbm9iby9ib25vYm8tdWktbm9kZS5jCi0rKysgYi9ib25vYm8vYm9ub2JvLXVpLW5vZGUuYwotQEAgLTgzNSw3ICs4MzUsNyBAQCB1aUNoYXJhY3RlcnMgKFBhcnNlU3RhdGUgKnBzLCBjb25zdCB4bWxDaGFyICpjaGFycywgaW50IGxlbikKLSAJZ19zdHJpbmdfYXBwZW5kX2xlbiAocHMtPmNvbnRlbnQsIGNoYXJzLCBsZW4pOwotIH0KLSAKLS1zdGF0aWMgdm9pZAotK3N0YXRpYyBHX0dOVUNfUFJJTlRGKDIsIDMpIHZvaWQKLSB1aVdhcm5pbmcgKFBhcnNlU3RhdGUgKnBzLCBjb25zdCBjaGFyICptc2csIC4uLikKLSB7Ci0gCXZhX2xpc3QgYXJnczsKLUBAIC04NDUsNyArODQ1LDcgQEAgdWlXYXJuaW5nIChQYXJzZVN0YXRlICpwcywgY29uc3QgY2hhciAqbXNnLCAuLi4pCi0gCXZhX2VuZCAgIChhcmdzKTsKLSB9Ci0gCi0tc3RhdGljIHZvaWQKLStzdGF0aWMgR19HTlVDX1BSSU5URigyLCAzKSB2b2lkCi0gdWlFcnJvciAoUGFyc2VTdGF0ZSAqcHMsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQotIHsKLSAJdmFfbGlzdCBhcmdzOwotQEAgLTg1NSw3ICs4NTUsNyBAQCB1aUVycm9yIChQYXJzZVN0YXRlICpwcywgY29uc3QgY2hhciAqbXNnLCAuLi4pCi0gCXZhX2VuZCAgIChhcmdzKTsKLSB9Ci0gCi0tc3RhdGljIHZvaWQKLStzdGF0aWMgR19HTlVDX1BSSU5URigyLCAzKSB2b2lkCi0gdWlGYXRhbEVycm9yIChQYXJzZVN0YXRlICpwcywgY29uc3QgY2hhciAqbXNnLCAuLi4pCi0gewotIAl2YV9saXN0IGFyZ3M7Ci0tLSAKLTIuMTQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vZmlsZXMvZ2NjNS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9maWxlcy9nY2M1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzUyOGFkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9maWxlcy9nY2M1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotSW5kZXg6IGxpYmJvbm9ib3VpLTIuMjQuNS90b29scy9icm93c2VyL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbGliYm9ub2JvdWktMi4yNC41Lm9yaWcvdG9vbHMvYnJvd3Nlci9NYWtlZmlsZS5hbQotKysrIGxpYmJvbm9ib3VpLTIuMjQuNS90b29scy9icm93c2VyL01ha2VmaWxlLmFtCi1AQCAtMiw3ICsyLDYgQEAgSU5DTFVERVMgPQlcCi0gCS1EQk9OT0JPX0JST1dTRVJfREFUQURJUj1cIiIkKGRhdGFkaXIpIlwiCVwKLSAgICAgICAgIC1EQk9OT0JPX1NVUFBPUlRfTE9DQUxFRElSPVwiIiQoZGF0YWRpcikvbG9jYWxlIlwiICAgICAgICBcCi0gCS1JJChzcmNkaXIpIC1JJCh0b3Bfc3JjZGlyKSAJCQlcCi0tCS1JJCh0b3Bfc3JjZGlyKS9ib25vYm8tYnJvd3NlcgkJCVwKLSAJJChCT05PQk9VSV9DRkxBR1MpCQkJCVwKLSAJJChXQVJOX0NGTEFHUykKLSAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9maWxlcy9ndGstZG9jLm00IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzL2d0ay1kb2MubTQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlYzQxNjYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzL2d0ay1kb2MubTQKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi1kbmwgLSotIG1vZGU6IGF1dG9jb25mIC0qLQotCi0jIHNlcmlhbCAxCi0KLWRubCBVc2FnZToKLWRubCAgIEdUS19ET0NfQ0hFQ0soW21pbmltdW0tZ3RrLWRvYy12ZXJzaW9uXSkKLUFDX0RFRlVOKFtHVEtfRE9DX0NIRUNLXSwKLVsKLSAgQUNfQkVGT1JFKFtBQ19QUk9HX0xJQlRPT0xdLFskMF0pZG5sIHNldHVwIGxpYnRvb2wgZmlyc3QKLSAgQUNfQkVGT1JFKFtBTV9QUk9HX0xJQlRPT0xdLFskMF0pZG5sIHNldHVwIGxpYnRvb2wgZmlyc3QKLSAgZG5sIGZvciBvdmVycmlkaW5nIHRoZSBkb2N1bWVudGF0aW9uIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKLSAgQUNfQVJHX1dJVEgoaHRtbC1kaXIsCi0gICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1odG1sLWRpcj1QQVRIXSwgW3BhdGggdG8gaW5zdGFsbGVkIGRvY3NdKSwsCi0gICAgW3dpdGhfaHRtbF9kaXI9JyR7ZGF0YWRpcn0vZ3RrLWRvYy9odG1sJ10pCi0gIEhUTUxfRElSPSIkd2l0aF9odG1sX2RpciIKLSAgQUNfU1VCU1QoSFRNTF9ESVIpCi0KLSAgZG5sIGVuYWJsZS9kaXNhYmxlIGRvY3VtZW50YXRpb24gYnVpbGRpbmcKLSAgQUNfQVJHX0VOQUJMRShndGstZG9jLAotICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1ndGstZG9jXSwKLSAgICAgICAgICAgICAgICAgICBbdXNlIGd0ay1kb2MgdG8gYnVpbGQgZG9jdW1lbnRhdGlvbiBbZGVmYXVsdD1ub11dKSwsCi0gICAgZW5hYmxlX2d0a19kb2M9bm8pCi0KLSAgaGF2ZV9ndGtfZG9jPW5vCi0gIGlmIHRlc3QgLXogIiRQS0dfQ09ORklHIjsgdGhlbgotICAgIEFDX1BBVEhfUFJPRyhQS0dfQ09ORklHLCBwa2ctY29uZmlnLCBubykKLSAgZmkKLSAgaWYgdGVzdCAiJFBLR19DT05GSUciICE9ICJubyIgJiYgJFBLR19DT05GSUcgLS1leGlzdHMgZ3RrLWRvYzsgdGhlbgotICAgIGhhdmVfZ3RrX2RvYz15ZXMKLSAgZmkKLQotICBkbmwgZG8gd2Ugd2FudCB0byBkbyBhIHZlcnNpb24gY2hlY2s/Ci1pZmVsc2UoWyQxXSxbXSwsCi0gIFtndGtfZG9jX21pbl92ZXJzaW9uPSQxCi0gIGlmIHRlc3QgIiRoYXZlX2d0a19kb2MiID0geWVzOyB0aGVuCi0gICAgQUNfTVNHX0NIRUNLSU5HKFtndGstZG9jIHZlcnNpb24gPj0gJGd0a19kb2NfbWluX3ZlcnNpb25dKQotICAgIGlmICRQS0dfQ09ORklHIC0tYXRsZWFzdC12ZXJzaW9uICRndGtfZG9jX21pbl92ZXJzaW9uIGd0ay1kb2M7IHRoZW4KLSAgICAgIEFDX01TR19SRVNVTFQoeWVzKQotICAgIGVsc2UKLSAgICAgIEFDX01TR19SRVNVTFQobm8pCi0gICAgICBoYXZlX2d0a19kb2M9bm8KLSAgICBmaQotICBmaQotXSkKLSAgaWYgdGVzdCB4JGVuYWJsZV9ndGtfZG9jID0geHllczsgdGhlbgotICAgIGlmIHRlc3QgIiRoYXZlX2d0a19kb2MiICE9IHllczsgdGhlbgotICAgICAgZW5hYmxlX2d0a19kb2M9bm8KLSAgICBmaQotICBmaQotCi0gIEFNX0NPTkRJVElPTkFMKEVOQUJMRV9HVEtfRE9DLCB0ZXN0IHgkZW5hYmxlX2d0a19kb2MgPSB4eWVzKQotICBBTV9DT05ESVRJT05BTChHVEtfRE9DX1VTRV9MSUJUT09MLCB0ZXN0IC1uICIkTElCVE9PTCIpCi1dKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzL2d0ay1kb2MubWFrZSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9maWxlcy9ndGstZG9jLm1ha2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1NGZmYjcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzL2d0ay1kb2MubWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDE3MyArMCwwIEBACi0jIC0qLSBtb2RlOiBtYWtlZmlsZSAtKi0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIEV2ZXJ5dGhpbmcgYmVsb3cgaGVyZSBpcyBnZW5lcmljICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1pZiBHVEtfRE9DX1VTRV9MSUJUT09MCi1HVEtET0NfQ0MgPSAkKExJQlRPT0wpIC0tbW9kZT1jb21waWxlICQoQ0MpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLUdUS0RPQ19MRCA9ICQoTElCVE9PTCkgLS1tb2RlPWxpbmsgJChDQykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpICQoTERGTEFHUykKLWVsc2UKLUdUS0RPQ19DQyA9ICQoQ0MpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLUdUS0RPQ19MRCA9ICQoQ0MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSAkKExERkxBR1MpCi1lbmRpZgotCi0jIFdlIHNldCBHUEFUSCBoZXJlOyB0aGlzIGdpdmVzIHVzIHNlbWFudGljcyBmb3IgR05VIG1ha2UKLSMgd2hpY2ggYXJlIG1vcmUgbGlrZSBvdGhlciBtYWtlJ3MgVlBBVEgsIHdoZW4gaXQgY29tZXMgdG8KLSMgd2hldGhlciBhIHNvdXJjZSB0aGF0IGlzIGEgdGFyZ2V0IG9mIG9uZSBydWxlIGlzIHRoZW4KLSMgc2VhcmNoZWQgZm9yIGluIFZQQVRIL0dQQVRILgotIwotR1BBVEggPSAkKHNyY2RpcikKLQotVEFSR0VUX0RJUj0kKEhUTUxfRElSKS8kKERPQ19NT0RVTEUpCi0KLUVYVFJBX0RJU1QgPSAJCQkJXAotCSQoY29udGVudF9maWxlcykJCVwKLQkkKEhUTUxfSU1BR0VTKQkJCVwKLQkkKERPQ19NQUlOX1NHTUxfRklMRSkJCVwKLQkkKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dAlcCi0JJChET0NfTU9EVUxFKS1vdmVycmlkZXMudHh0Ci0KLURPQ19TVEFNUFM9c2Nhbi1idWlsZC5zdGFtcCB0bXBsLWJ1aWxkLnN0YW1wIHNnbWwtYnVpbGQuc3RhbXAgaHRtbC1idWlsZC5zdGFtcCBcCi0JICAgJChzcmNkaXIpL3RtcGwuc3RhbXAgJChzcmNkaXIpL3NnbWwuc3RhbXAgJChzcmNkaXIpL2h0bWwuc3RhbXAKLQotU0NBTk9CSl9GSUxFUyA9IAkJIFwKLQkkKERPQ19NT0RVTEUpLmFyZ3MgCSBcCi0JJChET0NfTU9EVUxFKS5oaWVyYXJjaHkgIFwKLQkkKERPQ19NT0RVTEUpLmludGVyZmFjZXMgXAotCSQoRE9DX01PRFVMRSkucHJlcmVxdWlzaXRlcyBcCi0JJChET0NfTU9EVUxFKS5zaWduYWxzCi0KLVJFUE9SVF9GSUxFUyA9IFwKLQkkKERPQ19NT0RVTEUpLXVuZG9jdW1lbnRlZC50eHQgXAotCSQoRE9DX01PRFVMRSktdW5kZWNsYXJlZC50eHQgXAotCSQoRE9DX01PRFVMRSktdW51c2VkLnR4dAotCi1DTEVBTkZJTEVTID0gJChTQ0FOT0JKX0ZJTEVTKSAkKFJFUE9SVF9GSUxFUykgJChET0NfU1RBTVBTKQotCi1pZiBFTkFCTEVfR1RLX0RPQwotYWxsLWxvY2FsOiBodG1sLWJ1aWxkLnN0YW1wCi1lbHNlCi1hbGwtbG9jYWw6Ci1lbmRpZgotCi1kb2NzOiBodG1sLWJ1aWxkLnN0YW1wCi0KLSMjIyMgc2NhbiAjIyMjCi0KLXNjYW4tYnVpbGQuc3RhbXA6ICQoSEZJTEVfR0xPQikgJChDRklMRV9HTE9CKQotCUBlY2hvICdndGstZG9jOiBTY2FubmluZyBoZWFkZXIgZmlsZXMnCi0JQC1jaG1vZCAtUiB1K3cgJChzcmNkaXIpCi0JY2QgJChzcmNkaXIpICYmIFwKLQkgIGd0a2RvYy1zY2FuIC0tbW9kdWxlPSQoRE9DX01PRFVMRSkgLS1zb3VyY2UtZGlyPSQoRE9DX1NPVVJDRV9ESVIpIC0taWdub3JlLWhlYWRlcnM9IiQoSUdOT1JFX0hGSUxFUykiICQoU0NBTl9PUFRJT05TKSAkKEVYVFJBX0hGSUxFUykKLQlpZiBncmVwIC1sICdeLi4qJCQnICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLnR5cGVzID4gL2Rldi9udWxsIDI+JjEgOyB0aGVuIFwKLQkgICAgQ0M9IiQoR1RLRE9DX0NDKSIgTEQ9IiQoR1RLRE9DX0xEKSIgQ0ZMQUdTPSIkKEdUS0RPQ19DRkxBR1MpIiBMREZMQUdTPSIkKEdUS0RPQ19MSUJTKSIgZ3RrZG9jLXNjYW5nb2JqICQoU0NBTkdPQkpfT1BUSU9OUykgLS1tb2R1bGU9JChET0NfTU9EVUxFKSAtLW91dHB1dC1kaXI9JChzcmNkaXIpIDsgXAotCWVsc2UgXAotCSAgICBjZCAkKHNyY2RpcikgOyBcCi0JICAgIGZvciBpIGluICQoU0NBTk9CSl9GSUxFUykgOyBkbyBcCi0gICAgICAgICAgICAgICB0ZXN0IC1mICQkaSB8fCB0b3VjaCAkJGkgOyBcCi0JICAgIGRvbmUgXAotCWZpCi0JdG91Y2ggc2Nhbi1idWlsZC5zdGFtcAotCi0kKERPQ19NT0RVTEUpLWRlY2wudHh0ICQoU0NBTk9CSl9GSUxFUykgJChET0NfTU9EVUxFKS1zZWN0aW9ucy50eHQgJChET0NfTU9EVUxFKS1vdmVycmlkZXMudHh0OiBzY2FuLWJ1aWxkLnN0YW1wCi0JQHRydWUKLQotIyMjIyB0ZW1wbGF0ZXMgIyMjIwotCi10bXBsLWJ1aWxkLnN0YW1wOiAkKERPQ19NT0RVTEUpLWRlY2wudHh0ICQoU0NBTk9CSl9GSUxFUykgJChET0NfTU9EVUxFKS1zZWN0aW9ucy50eHQgJChET0NfTU9EVUxFKS1vdmVycmlkZXMudHh0Ci0JQGVjaG8gJ2d0ay1kb2M6IFJlYnVpbGRpbmcgdGVtcGxhdGUgZmlsZXMnCi0JQC1jaG1vZCAtUiB1K3cgJChzcmNkaXIpCi0JY2QgJChzcmNkaXIpICYmIGd0a2RvYy1ta3RtcGwgLS1tb2R1bGU9JChET0NfTU9EVUxFKSAkKE1LVE1QTF9PUFRJT05TKQotCXRvdWNoIHRtcGwtYnVpbGQuc3RhbXAKLQotdG1wbC5zdGFtcDogdG1wbC1idWlsZC5zdGFtcAotCUB0cnVlCi0KLXRtcGwvKi5zZ21sOgotCUB0cnVlCi0KLQotIyMjIyB4bWwgIyMjIwotCi1zZ21sLWJ1aWxkLnN0YW1wOiB0bXBsLnN0YW1wICQoSEZJTEVfR0xPQikgJChDRklMRV9HTE9CKSAkKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCAkKHNyY2RpcikvdG1wbC8qLnNnbWwgJChleHBhbmRfY29udGVudF9maWxlcykKLQlAZWNobyAnZ3RrLWRvYzogQnVpbGRpbmcgWE1MJwotCUAtY2htb2QgLVIgdSt3ICQoc3JjZGlyKQotCWNkICQoc3JjZGlyKSAmJiBcCi0JZ3RrZG9jLW1rZGIgLS1tb2R1bGU9JChET0NfTU9EVUxFKSAtLXNvdXJjZS1kaXI9JChET0NfU09VUkNFX0RJUikgLS1vdXRwdXQtZm9ybWF0PXhtbCAtLWV4cGFuZC1jb250ZW50LWZpbGVzPSIkKGV4cGFuZF9jb250ZW50X2ZpbGVzKSIgLS1tYWluLXNnbWwtZmlsZT0kKERPQ19NQUlOX1NHTUxfRklMRSkgJChNS0RCX09QVElPTlMpCi0JdG91Y2ggc2dtbC1idWlsZC5zdGFtcAotCi1zZ21sLnN0YW1wOiBzZ21sLWJ1aWxkLnN0YW1wCi0JQHRydWUKLQotIyMjIyBodG1sICMjIyMKLQotaHRtbC1idWlsZC5zdGFtcDogc2dtbC5zdGFtcCAkKERPQ19NQUlOX1NHTUxfRklMRSkgJChjb250ZW50X2ZpbGVzKQotCUBlY2hvICdndGstZG9jOiBCdWlsZGluZyBIVE1MJwotCUAtY2htb2QgLVIgdSt3ICQoc3JjZGlyKQotCXJtIC1yZiAkKHNyY2RpcikvaHRtbAotCW1rZGlyICQoc3JjZGlyKS9odG1sCi0JY2QgJChzcmNkaXIpL2h0bWwgJiYgZ3RrZG9jLW1raHRtbCAkKERPQ19NT0RVTEUpIC4uLyQoRE9DX01BSU5fU0dNTF9GSUxFKQotCXRlc3QgIngkKEhUTUxfSU1BR0VTKSIgPSAieCIgfHwgKCBjZCAkKHNyY2RpcikgJiYgY3AgJChIVE1MX0lNQUdFUykgaHRtbCApCi0JQGVjaG8gJ2d0ay1kb2M6IEZpeGluZyBjcm9zcy1yZWZlcmVuY2VzJwotCWNkICQoc3JjZGlyKSAmJiBndGtkb2MtZml4eHJlZiAtLW1vZHVsZS1kaXI9aHRtbCAtLWh0bWwtZGlyPSQoSFRNTF9ESVIpICQoRklYWFJFRl9PUFRJT05TKQotCXRvdWNoIGh0bWwtYnVpbGQuc3RhbXAKLQotIyMjIyMjIyMjIyMjIyMKLQotY2xlYW4tbG9jYWw6Ci0Jcm0gLWYgKn4gKi5iYWsKLQlybSAtcmYgLmxpYnMKLQotZGlzdGNsZWFuLWxvY2FsOgotCWNkICQoc3JjZGlyKSAmJiBcCi0JICBybSAtcmYgeG1sICQoUkVQT1JUX0ZJTEVTKSBcCi0JICAgICAgICAgJChET0NfTU9EVUxFKS1kZWNsLWxpc3QudHh0ICQoRE9DX01PRFVMRSktZGVjbC50eHQKLQotbWFpbnRhaW5lci1jbGVhbi1sb2NhbDogY2xlYW4KLQljZCAkKHNyY2RpcikgJiYgcm0gLXJmIHhtbCBodG1sCi0KLWluc3RhbGwtZGF0YS1sb2NhbDoKLQktaW5zdGFsbGZpbGVzPWBlY2hvICQoc3JjZGlyKS9odG1sLypgOyBcCi0JaWYgdGVzdCAiJCRpbnN0YWxsZmlsZXMiID0gJyQoc3JjZGlyKS9odG1sLyonOyBcCi0JdGhlbiBlY2hvICctLSBOb3RoaW5nIHRvIGluc3RhbGwnIDsgXAotCWVsc2UgXAotCSAgJChta2luc3RhbGxkaXJzKSAkKERFU1RESVIpJChUQVJHRVRfRElSKTsgXAotCSAgZm9yIGkgaW4gJCRpbnN0YWxsZmlsZXM7IGRvIFwKLQkgICAgZWNobyAnLS0gSW5zdGFsbGluZyAnJCRpIDsgXAotCSAgICAkKElOU1RBTExfREFUQSkgJCRpICQoREVTVERJUikkKFRBUkdFVF9ESVIpOyBcCi0JICBkb25lOyBcCi0JICBlY2hvICctLSBJbnN0YWxsaW5nICQoc3JjZGlyKS9odG1sL2luZGV4LnNnbWwnIDsgXAotCSAgJChJTlNUQUxMX0RBVEEpICQoc3JjZGlyKS9odG1sL2luZGV4LnNnbWwgJChERVNURElSKSQoVEFSR0VUX0RJUikgfHwgOjsgXAotCSAgd2hpY2ggZ3RrZG9jLXJlYmFzZSA+L2Rldi9udWxsICYmIFwKLQkgICAgZ3RrZG9jLXJlYmFzZSAtLXJlbGF0aXZlIC0tZGVzdC1kaXI9JChERVNURElSKSAtLWh0bWwtZGlyPSQoREVTVERJUikkKFRBUkdFVF9ESVIpIDsgXAotCWZpCi0JCi0KLXVuaW5zdGFsbC1sb2NhbDoKLQlybSAtZiAkKERFU1RESVIpJChUQVJHRVRfRElSKS8qCi0KLSMKLSMgUmVxdWlyZSBndGstZG9jIHdoZW4gbWFraW5nIGRpc3QKLSMKLWlmIEVOQUJMRV9HVEtfRE9DCi1kaXN0LWNoZWNrLWd0a2RvYzoKLWVsc2UKLWRpc3QtY2hlY2stZ3RrZG9jOgotCUBlY2hvICIqKiogZ3RrLWRvYyBtdXN0IGJlIGluc3RhbGxlZCBhbmQgZW5hYmxlZCBpbiBvcmRlciB0byBtYWtlIGRpc3QiCi0JQGZhbHNlCi1lbmRpZgotCi1kaXN0LWhvb2s6IGRpc3QtY2hlY2stZ3RrZG9jIGRpc3QtaG9vay1sb2NhbAotCW1rZGlyICQoZGlzdGRpcikvdG1wbAotCW1rZGlyICQoZGlzdGRpcikveG1sCi0JbWtkaXIgJChkaXN0ZGlyKS9odG1sCi0JLWNwICQoc3JjZGlyKS90bXBsLyouc2dtbCAkKGRpc3RkaXIpL3RtcGwKLQktY3AgJChzcmNkaXIpL3htbC8qLnhtbCAkKGRpc3RkaXIpL3htbAotCWNwICQoc3JjZGlyKS9odG1sLyogJChkaXN0ZGlyKS9odG1sCi0JLWNwICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLnR5cGVzICQoZGlzdGRpcikvCi0JLWNwICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCAkKGRpc3RkaXIpLwotCWNkICQoZGlzdGRpcikgJiYgcm0gLWYgJChESVNUQ0xFQU5GSUxFUykKLQktZ3RrZG9jLXJlYmFzZSAtLW9ubGluZSAtLXJlbGF0aXZlIC0taHRtbC1kaXI9JChkaXN0ZGlyKS9odG1sCi0KLS5QSE9OWSA6IGRpc3QtaG9vay1sb2NhbCBkb2NzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8uaW5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDc1OWE4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8uaW5jCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiQm9ub2JvIENPUkJBIGludGVyZmFjZXMgbGlicmFyeSIKLUxJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuTElCO21kNT03ZmJjMzM4MzA5YWMzOGZlZmNkNjRiMDRiYjkwM2UzNCIKLVNFQ1RJT04gPSAieDExL2dub21lL2xpYnMiCi1ERVBFTkRTID0gImdub21lLWNvbW1vbi1uYXRpdmUgZ2xpYi0yLjAgb3JiaXQyLW5hdGl2ZSBvcmJpdDIgaW50bHRvb2wtbmF0aXZlIGxpYnhtbDIgZGJ1cyBkYnVzLWdsaWIiCi0KLWluaGVyaXQgZ25vbWViYXNlIGd0ay1kb2MgbGliX3BhY2thZ2UKLQotRVhUUkFfT0VDT05GICs9ICInUEVSTF9QQVRIPSR7VVNSQklOUEFUSH0vZW52IHBlcmwnIgotT1JCSVRfSURMX1NSQyA9ICIke1NUQUdJTkdfQklORElSX05BVElWRX0vb3JiaXQtaWRsLTIiCi0KLVJERVBFTkRTXyR7UE59LWJpbiA9ICIke1BOfSBwZXJsIgotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9vcmJpdC0yLjAvKi5zbyAke2xpYmRpcn0vYm9ub2JvL21vbmlrZXJzLyouc28iCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9ib25vYm8vbW9uaWtlcnMvLmRlYnVnIFwKLSAgICAke2xpYmRpcn0vYm9ub2JvLTIuMC9zYW1wbGVzLy5kZWJ1ZyAke2xpYmRpcn0vb3JiaXQtMi4wLy5kZWJ1ZyIKLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L29yYml0LTIuMC8qLmxhICR7bGliZGlyfS9ib25vYm8vbW9uaWtlcnMvKi5sYSAke2xpYmRpcn0vYm9ub2JvLTIuMC9zYW1wbGVzIgotRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vb3JiaXQtMi4wLyouYSAke2xpYmRpcn0vYm9ub2JvL21vbmlrZXJzLyouYSIKLQotTEVBRF9TT05BTUUgPSAibGliYm9ub2JvLTIuc28iCi0KLVBBUkFMTEVMX01BS0UgPSAiIgotCi1kb19jb21waWxlKCkgewotICAgIG9lX3J1bm1ha2UgT1JCSVRfSURMPSIke09SQklUX0lETF9TUkN9IgotfQotCi1kb19pbnN0YWxsKCkgewotICAgIG9lX3J1bm1ha2UgT1JCSVRfSURMPSIke09SQklUX0lETF9TUkN9IiBERVNURElSPSIke0R9IiBpbnN0YWxsCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvLzAwMDEtUmVtb3ZlLXVzZS1vZi1HX0RJU0FCTEVfREVQUkVDQVRFRC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8vMDAwMS1SZW1vdmUtdXNlLW9mLUdfRElTQUJMRV9ERVBSRUNBVEVELnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGNmMWY5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8vMDAwMS1SZW1vdmUtdXNlLW9mLUdfRElTQUJMRV9ERVBSRUNBVEVELnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotRnJvbSBmZWYxM2EzNzFmYzkxZjZkOWI0MjUxODEyNmMyYThiNDU5ZmRmMGU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQ29saW4gV2FsdGVycyA8d2FsdGVyc0B2ZXJidW0ub3JnPgotRGF0ZTogVGh1LCAyIE1heSAyMDEzIDE0OjE3OjM4IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIFJlbW92ZSB1c2Ugb2YgR19ESVNBQkxFX0RFUFJFQ0FURUQKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotVGhpcyBub3cgdHJpcHMgdXAgb24gR1N0YXRpY1JlY011dGV4OyBJJ20gbm90IGdvaW5nIHRvIGJvdGhlciB0byBwb3J0LAotcmVhbGlzdGljYWxseSBubyBvbmUgaXMgYWN0aXZlbHkgbWFpbnRhaW5pbmcgdGhpcyBjb2RlIGFueW1vcmUuCi0KLVVwc3RyZWFtLVN0YXR1czogQXBwbGllZAotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0tLS0KLSBhY3RpdmF0aW9uLXNlcnZlci9NYWtlZmlsZS5hbSB8ICAgIDEgLQotIGNvbmZpZ3VyZS5pbiAgICAgICAgICAgICAgICAgIHwgICAgMiArLQotIDIgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYWN0aXZhdGlvbi1zZXJ2ZXIvTWFrZWZpbGUuYW0gYi9hY3RpdmF0aW9uLXNlcnZlci9NYWtlZmlsZS5hbQotaW5kZXggZWZiMThhOC4uZmZhOTBmNiAxMDA2NDQKLS0tLSBhL2FjdGl2YXRpb24tc2VydmVyL01ha2VmaWxlLmFtCi0rKysgYi9hY3RpdmF0aW9uLXNlcnZlci9NYWtlZmlsZS5hbQotQEAgLTE3LDcgKzE3LDYgQEAgSU5DTFVERVM9CQkJCQlcCi0gCSQoU0VSVkVSX0NGTEFHUykJCQlcCi0gCSQoV0FSTl9DRkxBR1MpCQkJCVwKLSAJLURTRVJWRVJfQ09ORkRJUj1cIiQoc3lzY29uZmRpcilcIglcCi0tCS1ER19ESVNBQkxFX0RFUFJFQ0FURUQJCQlcCi0gCS1ER19MT0dfRE9NQUlOPVwiQm9ub2JvLUFjdGl2YXRpb24tU2VydmVyXCIgXAotIAkkKE5VTEwpCi0gCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCi1pbmRleCA3MGE0ZTI2Li42YmUyYmNhIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmluCi0rKysgYi9jb25maWd1cmUuaW4KLUBAIC0xMzIsNyArMTMyLDcgQEAgQUNfU1VCU1QoU0VSVkVSX0xJQlMpCi0gQUNfU1VCU1QoU0VSVkVSX0NGTEFHUykKLSAKLSBpZiB0ZXN0ICIkZW5hYmxlX21haW50YWluZXJfbW9kZSIgPSAieWVzIjsgdGhlbgotLQlESVNBQkxFX0RFUFJFQ0FURURfQ0ZMQUdTPSItREdfRElTQUJMRV9ERVBSRUNBVEVEIC1ER19ESVNBQkxFX1NJTkdMRV9JTkNMVURFUyIKLSsJRElTQUJMRV9ERVBSRUNBVEVEX0NGTEFHUz0iLURHX0RJU0FCTEVfU0lOR0xFX0lOQ0xVREVTIgotIAlBQ19TVUJTVChESVNBQkxFX0RFUFJFQ0FURURfQ0ZMQUdTKQotIGZpCi0gCi0tLSAKLTEuNy42LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9iby9kby1ub3QtdXNlLXNyY2Rpci12YXJpYWJsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8vZG8tbm90LXVzZS1zcmNkaXItdmFyaWFibGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMGVkZGEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9iby9kby1ub3QtdXNlLXNyY2Rpci12YXJpYWJsZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLXwgdGVzdHMvTWFrZWZpbGUuYW06NTU6IGVycm9yOiB1c2luZyAnJChzcmNkaXIpJyBpbiBURVNUUyBpcyBjdXJyZW50bHkgYnJva2VuOiAnJChzcmNkaXIpL3RlCi1zdC1wcm9wZXJ0aWVzLnNoJwotfCB0ZXN0cy90ZXN0LWFjdGl2YXRpb24vTWFrZWZpbGUuYW06NzY6IHdhcm5pbmc6ICdJTkNMVURFUycgaXMgdGhlIG9sZCBuYW1lIGZvciAnQU1fQ1BQRkxBR1MKLScgKG9yICcqX0NQUEZMQUdTJykKLXwgdXRpbHMvTWFrZWZpbGUuYW06OTogd2FybmluZzogJ0lOQ0xVREVTJyBpcyB0aGUgb2xkIG5hbWUgZm9yICdBTV9DUFBGTEFHUycgKG9yICcqX0NQUEZMQUdTCi0nKQotfCBhdXRvcmVjb25mOiBhdXRvbWFrZSBmYWlsZWQgd2l0aCBleGl0IHN0YXR1czogMQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotVXBzdHJlYW0tU3RhdHVzOiBOb3QgU3VibWl0dGVkCi0KLUluZGV4OiBsaWJib25vYm8tMi4zMi4xL3Rlc3RzL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbGliYm9ub2JvLTIuMzIuMS5vcmlnL3Rlc3RzL01ha2VmaWxlLmFtCTIwMTAtMDgtMjkgMDQ6NTY6MDAuMDAwMDAwMDAwIC0wNzAwCi0rKysgbGliYm9ub2JvLTIuMzIuMS90ZXN0cy9NYWtlZmlsZS5hbQkyMDE0LTA0LTI1IDE1OjM4OjIyLjAyNDc0NDM4NCAtMDcwMAotQEAgLTU1LDcgKzU1LDcgQEAKLSAJTU9ERUxTX0RJUj0iJChzcmNkaXIpL21vZGVscyIKLSAKLSBURVNUUyA9IHRlc3QtbW9uaWtlciQoRVhFRVhUKSB0ZXN0LWV2ZW50LXNvdXJjZSQoRVhFRVhUKSB0ZXN0LW9iamVjdCQoRVhFRVhUKSBcCi0tCXRlc3Qtc3RyZWFtLW1lbSQoRVhFRVhUKSAkKHNyY2RpcikvdGVzdC1wcm9wZXJ0aWVzLnNoIHRlc3Qtc3RvcmFnZS1tZW0kKEVYRUVYVCkgXAotKwl0ZXN0LXN0cmVhbS1tZW0kKEVYRUVYVCkgdGVzdC1wcm9wZXJ0aWVzLnNoIHRlc3Qtc3RvcmFnZS1tZW0kKEVYRUVYVCkgXAotIAl0ZXN0LW1haW4tbG9vcCQoRVhFRVhUKQotIAotICMgVEVTVFMgKz0gdGVzdC1nZW5lcmljLWZhY3Rvcnkuc2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8vZml4LW5vbmxpdGVyYWwtaW4tc3RyaW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9iby9maXgtbm9ubGl0ZXJhbC1pbi1zdHJpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwZGI2NzEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9iby9maXgtbm9ubGl0ZXJhbC1pbi1zdHJpbmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1UaGlzIGNoZWNrcyB3aGV0aGVyIHRoZSBmb3JtYXQgc3RyaW5nIGlzIGEgbGl0ZXJhbCBvbiB0aGUgY2FsbGluZyBmdW5jdGlvbi4gQXMgYm9ub2JvX2RlYnVnX3ByaW50KCkKLXRha2VzIGFscmVhZHkgYSB2YV9saXN0LCB3ZSBzcGVjaWZ5IHRoZSBmb3JtYXQgb24gdGhlIGZ1bmN0aW9ucyB0aGF0IGNhbGwgaXQKLVRoZSBzZWNvbmQgbnVtYmVyLCB3aGljaCBpcyAwIGhlcmUsIHNob3VsZCB0aGVuIGJlIHRoZSBhcmd1bWVudCBpbmRleCBvZiB0aGUgdmFyaWFkaWMgYXJndW1lbnQKLQotRml4ZWQgd2FybmluZyB3aXRoIGNsYW5nCi0KLXwgLi4vLi4vbGliYm9ub2JvLTIuMzIuMS9ib25vYm8vYm9ub2JvLWRlYnVnLmM6NTg6MzI6IGVycm9yOiBmb3JtYXQgc3RyaW5nIGlzIG5vdCBhIHN0cmluZyBsaXRlcmFsIFstV2Vycm9yLC1XZm9ybWF0LW5vbmxpdGVyYWxdCi18ICAgICAgICAgdmZwcmludGYgKF9ib25vYm9fZGVidWdfZmlsZSwgZm10LCBhcmdzKTsKLXwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4KLXwgMSBlcnJvciBnZW5lcmF0ZWQuCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotSW5kZXg6IGxpYmJvbm9iby0yLjMyLjEvYm9ub2JvL2Jvbm9iby1kZWJ1Zy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbGliYm9ub2JvLTIuMzIuMS5vcmlnL2Jvbm9iby9ib25vYm8tZGVidWcuYwotKysrIGxpYmJvbm9iby0yLjMyLjEvYm9ub2JvL2Jvbm9iby1kZWJ1Zy5jCi1AQCAtNDcsNiArNDcsNyBAQCBib25vYm9fZGVidWdfaW5pdCh2b2lkKQotIAkgIF9ib25vYm9fZGVidWdfZmlsZSA9IHN0ZGVycjsKLSB9Ci0gCi0rX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyAocHJpbnRmLCAyLCAwKSkpCi0gdm9pZAotIGJvbm9ib19kZWJ1Z19wcmludCAoY29uc3QgY2hhciAqbmFtZSwgY2hhciAqZm10LCAuLi4pCi0gewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9ib18yLjMyLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvXzIuMzIuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGUwMGViNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvXzIuMzIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotcmVxdWlyZSBsaWJib25vYm8uaW5jCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLVJlbW92ZS11c2Utb2YtR19ESVNBQkxFX0RFUFJFQ0FURUQucGF0Y2ggXAotICAgICAgICAgICAgZmlsZTovL2RvLW5vdC11c2Utc3JjZGlyLXZhcmlhYmxlLnBhdGNoIFwKLSAgICAgICAgICAgIGZpbGU6Ly9maXgtbm9ubGl0ZXJhbC1pbi1zdHJpbmcucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICIyN2ZhOTAyZDRmZGY2NzYyZWUwMTBlNzA1M2FhZjc3YiIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjkxNjBkNGYyNzc2NDY0MDBkM2JiNmI0ZmE3MzYzNmNjNmQxYTg2NWEzMmI5ZDA3NjBlMWU5ZTZlZTYyNDk3NmIiCi1HTk9NRV9DT01QUkVTU19UWVBFPSJiejIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvdWlfMi4yNC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9ib3VpXzIuMjQuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjNjYTBhNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvdWlfMi4yNC41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotU0VDVElPTiA9ICJ4MTEvZ25vbWUvbGlicyIKLUxJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuTElCO21kNT03ZmJjMzM4MzA5YWMzOGZlZmNkNjRiMDRiYjkwM2UzNCIKLQotaW5oZXJpdCBnbm9tZWJhc2UgcGtnY29uZmlnIGd0ay1kb2MKLQotU1JDX1VSSSArPSAiZmlsZTovL2djYzUucGF0Y2ggXAotICAgICAgICAgICAgZmlsZTovLzAwMDEtYm9ub2JvLXVpLW5vZGUtcXVhbGlmeS1mdW5jdGlvbnMtd2l0aC1HX0dOVUNfUFJJTlRGLnBhdGNoIFwKLSAgICAgICAgICAgICIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiODUzYmU4ZTI4YWFhNGNlNDhiYTYwYmU3ZDkwNDZiZjQiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICJmYWI1ZjJhYzZjODQyZDk0OTg2MWMwN2NiNTIwYWZlNWJlZTNkY2U1NTgwNTE1MWNlOWNkMDFiZTBlYzQ2ZmNkIgotR05PTUVfQ09NUFJFU1NfVFlQRT0iYnoyIgotCi1ERVBFTkRTID0gImxpYmdub21lY2FudmFzIGxpYmJvbm9ibyBsaWJnbm9tZSBnbGliLTIuMCBnY29uZiBsaWJ4bWwyIGxpYmdsYWRlIGdub21lLWNvbW1vbiBpbnRsdG9vbC1uYXRpdmUiCi0KLUZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vbGliZ2xhZGUvMi4wLyouc28iCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9saWJnbGFkZS8yLjAvKi5sYSAke2RhdGFkaXJ9L2dub21lLTIuMC91aSBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ib25vYm8tMi4wL3NhbXBsZXMiCi1GSUxFU18ke1BOfS1zdGF0aWNkZXYgKz0gIiR7bGliZGlyfS9saWJnbGFkZS8yLjAvKi5hIgotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vYm9ub2JvLTIuMC9zYW1wbGVzLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9saWJnbGFkZS8yLjAvLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZGV2aWxzcGllL2Rldmlsc3BpZTJfMC40Mi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Rldmlsc3BpZS9kZXZpbHNwaWUyXzAuNDIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlMmVjNWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZGV2aWxzcGllL2Rldmlsc3BpZTJfMC40Mi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLURFU0NSSVBUSU9OID0gIkRldmlsc3BpZTIgaXMgYSB3aW5kb3cgbWF0Y2hpbmcgdXRpbGl0eSwgYWxsb3dpbmcgdGhlIHVzZXIgdG8gcGVyZm9ybSBzY3JpcHRlZCBhY3Rpb25zIG9uIHdpbmRvd3MgYXMgdGhleSBhcmUgY3JlYXRlZCIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3VzbmFuLnNlL2Rldmlsc3BpZTIiCi1MSUNFTlNFID0gIkdQTHYzIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MDBhZWZhYTUwYWFkNzVjMjEzNjdkZjY2MTAyZDU0MmMgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vR1BMMy50eHQ7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgotCi1ERVBFTkRTID0gImd0aysgZ2xpYi0yLjAgbGlid25jayBsdWEgdmlydHVhbC9saWJ4MTEiCi0KLVNSQ19VUkkgPSAiIFwKLSAgICBodHRwOi8vZG93bmxvYWQuc2F2YW5uYWguZ251Lm9yZy9yZWxlYXNlcy8ke0JQTn0vJHtCUE59XyR7UFZ9LXNyYy50YXIuZ3ogXAotICAgIGZpbGU6Ly9kZWZhdWx0Lmx1YSBcCi0gICAgZmlsZTovL2Rldmlsc3BpZTIuZGVza3RvcCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiZjIwNTQwOWU5MjFhYTJkODY0ODFmMWI4ZDUxOGRhNDUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTFmNWJjMzEwZmJhNGRmNDA0YzA1NzQ2MWZmYjNmYWRhYzhlZjUxZDIxMTAwOGM2NjVjNDhmNTg3YTVhM2Y4NSIKLQotaW5oZXJpdCBwa2djb25maWcgZ2V0dGV4dAotCi1kb19jb21waWxlKCkgewotICAgIGV4cG9ydCBHVEsyPTEKLSAgICBvZV9ydW5tYWtlIENDPSIke0NDfSIgQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9IiBMREZMQUdTPSIgLWxkbCAtbG0gJHtMREZMQUdTfSIKLX0KLQotZG9faW5zdGFsbCgpIHsKLSAgICBvZV9ydW5tYWtlIERFU1RESVI9IiR7RH0iIFBSRUZJWD0iJHtwcmVmaXh9IiBpbnN0YWxsCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vZGV2aWxzcGllMgotICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vZGVmYXVsdC5sdWEgJHtEfS8ke3N5c2NvbmZkaXJ9L2Rldmlsc3BpZTIKLSAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS94ZGcvYXV0b3N0YXJ0Ci0gICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9kZXZpbHNwaWUyLmRlc2t0b3AgJHtEfS8ke3N5c2NvbmZkaXJ9L3hkZy9hdXRvc3RhcnQKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Rldmlsc3BpZS9kZXZpbHNwaWUyXzAuNDMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9kZXZpbHNwaWUvZGV2aWxzcGllMl8wLjQzLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlZjhlOGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9kZXZpbHNwaWUvZGV2aWxzcGllMl8wLjQzLmJiCkBAIC0wLDAgKzEsMzIgQEAKK0RFU0NSSVBUSU9OID0gIkRldmlsc3BpZTIgaXMgYSB3aW5kb3cgbWF0Y2hpbmcgdXRpbGl0eSwgYWxsb3dpbmcgdGhlIHVzZXIgdG8gcGVyZm9ybSBzY3JpcHRlZCBhY3Rpb25zIG9uIHdpbmRvd3MgYXMgdGhleSBhcmUgY3JlYXRlZCIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3VzbmFuLnNlL2Rldmlsc3BpZTIiCitMSUNFTlNFID0gIkdQTHYzIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MDBhZWZhYTUwYWFkNzVjMjEzNjdkZjY2MTAyZDU0MmMgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vR1BMMy50eHQ7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgorCitERVBFTkRTID0gImd0aysgZ2xpYi0yLjAgbGlid25jayBsdWEgdmlydHVhbC9saWJ4MTEiCisKK1NSQ19VUkkgPSAiIFwKKyAgICBodHRwOi8vZG93bmxvYWQuc2F2YW5uYWguZ251Lm9yZy9yZWxlYXNlcy8ke0JQTn0vJHtCUE59XyR7UFZ9LXNyYy50YXIuZ3ogXAorICAgIGZpbGU6Ly9kZWZhdWx0Lmx1YSBcCisgICAgZmlsZTovL2Rldmlsc3BpZTIuZGVza3RvcCBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiMjZlZWQwYjViNGFmNWM3ZTEzYzU1MWVjZWFlYWI4MzIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZWNmZmMxN2M2MmI0MWUxOTZiNzIzNDAxOTJhOTBjNDIyMzMyOWRmMDQxZjEzNWU3NGMwOTkwODYwNTk1ZjgyOCIKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgcGtnY29uZmlnIGdldHRleHQKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworZG9fY29tcGlsZSgpIHsKKyAgICBleHBvcnQgR1RLMj0xCisgICAgb2VfcnVubWFrZSBDQz0iJHtDQ30iIENQUEZMQUdTPSIke0NQUEZMQUdTfSIgTERGTEFHUz0iIC1sZGwgLWxtICR7TERGTEFHU30iCit9CisKK2RvX2luc3RhbGwoKSB7CisgICAgb2VfcnVubWFrZSBERVNURElSPSIke0R9IiBQUkVGSVg9IiR7cHJlZml4fSIgaW5zdGFsbAorICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2Rldmlsc3BpZTIKKyAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L2RlZmF1bHQubHVhICR7RH0vJHtzeXNjb25mZGlyfS9kZXZpbHNwaWUyCisgICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0veGRnL2F1dG9zdGFydAorICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vZGV2aWxzcGllMi5kZXNrdG9wICR7RH0vJHtzeXNjb25mZGlyfS94ZGcvYXV0b3N0YXJ0Cit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9kZXZpbHNwaWUvZmlsZXMvZGV2aWxzcGllMi5kZXNrdG9wIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZGV2aWxzcGllL2ZpbGVzL2Rldmlsc3BpZTIuZGVza3RvcAppbmRleCBlMzRlODgxLi5iODA5MDRhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9kZXZpbHNwaWUvZmlsZXMvZGV2aWxzcGllMi5kZXNrdG9wCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Rldmlsc3BpZS9maWxlcy9kZXZpbHNwaWUyLmRlc2t0b3AKQEAgLTEsNSArMSw2IEBACiBbRGVza3RvcCBFbnRyeV0KIFR5cGU9QXBwbGljYXRpb24KIE5hbWU9RGV2aWxzcGllMgorQ29tbWVudD1QZXJmb3JtIHNjcmlwdGVkIGFjdGlvbnMgb24gd2luZG93cyBhcyB0aGV5IGFyZSBjcmVhdGVkCiBFeGVjPWRldmlsc3BpZTIgLWYgL2V0Yy9kZXZpbHNwaWUyCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwMS1DTWFrZUxpc3RzLnR4dC1SZW1vdmUtVFJZX1JVTi1mb3ItaWNvbnYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDEtQ01ha2VMaXN0cy50eHQtUmVtb3ZlLVRSWV9SVU4tZm9yLWljb252LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4MjFhMTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDEtQ01ha2VMaXN0cy50eHQtUmVtb3ZlLVRSWV9SVU4tZm9yLWljb252LnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKK0Zyb20gMTMxYjg4YTgxYWJhM2Q3MmQ1NjZiYzhhOWQ5Njg5NDFhOThlMDAwNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDE5IERlYyAyMDE3IDE2OjM3OjIwICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIENNYWtlTGlzdHMudHh0OiBSZW1vdmUgVFJZX1JVTiBmb3IgaWNvbnYKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworfCBDTWFrZSBFcnJvcjogVFJZX1JVTigpIGludm9rZWQgaW4gY3Jvc3MtY29tcGlsaW5nIG1vZGUsIHBsZWFzZSBzZXQgdGhlIGZvbGxvd2luZyBjYWNoZSB2YXJpYWJsZXMgYXBwcm9wcmlhdGVseToKK3wgICAgX2NvcnJlY3RfaWNvbnZfRVhJVENPREUgKGFkdmFuY2VkKQorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgQ01ha2VMaXN0cy50eHQgfCA1IC0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRleCA4ZDA3NzcyLi5hMjM5NmYyIDEwMDY0NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtNTIxLDEzICs1MjEsOCBAQCBpZihOT1QgSEFWRV9JQ09OVikKKyBlbmRpZihOT1QgSEFWRV9JQ09OVikKKyAKKyBzZXQoQ01BS0VfUkVRVUlSRURfTElCUkFSSUVTICR7SUNPTlZfTElCU30pCistQ0hFQ0tfQ19TT1VSQ0VfUlVOUygiI2luY2x1ZGUgXCIke0NNQUtFX1NPVVJDRV9ESVJ9L2ljb252LWRldGVjdC5jXCIiIF9jb3JyZWN0X2ljb252KQorIHVuc2V0KENNQUtFX1JFUVVJUkVEX0xJQlJBUklFUykKKyAKKy1pZihOT1QgX2NvcnJlY3RfaWNvbnYpCistCW1lc3NhZ2UoRkFUQUxfRVJST1IgIllvdSBuZWVkIHRvIGluc3RhbGwgYSB3b3JraW5nIGljb252IGltcGxlbWVudGF0aW9uLCBzdWNoIGFzIGZ0cDovL2Z0cC5nbnUub3JnL3B1Yi9nbnUvbGliaWNvbnYiKQorLWVuZGlmKE5PVCBfY29ycmVjdF9pY29udikKKy0KKyAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICMgQmFja3RyYWNlcyBmb3IgZGVidWdnaW5nCisgIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwMS1jb250YWN0LVJlcGxhY2UtdGhlLU5vdmVsbC1zYW1wbGUtY29udGFjdC13aXRoLXNvbWV0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAxLWNvbnRhY3QtUmVwbGFjZS10aGUtTm92ZWxsLXNhbXBsZS1jb250YWN0LXdpdGgtc29tZXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3N2U3YjkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAxLWNvbnRhY3QtUmVwbGFjZS10aGUtTm92ZWxsLXNhbXBsZS1jb250YWN0LXdpdGgtc29tZXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMTUgKzAsMCBAQAotRnJvbSA0ZGY4YmQ4YWU0MjU4Mjg5NjYzYjI3YWYxMjA3MDI3YzdlZTA2MzQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgotRGF0ZTogU3VuLCA0IEF1ZyAyMDEzIDA5OjEzOjI1ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMS81XSBjb250YWN0OiBSZXBsYWNlIHRoZSBOb3ZlbGwgc2FtcGxlIGNvbnRhY3Qgd2l0aCBzb21ldGhpbmcKLSBtb3JlIGFwcHJvcHJpYXRlCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLVNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KLS0tLQotIGFkZHJlc3Nib29rL2JhY2tlbmRzL2ZpbGUvTWFrZWZpbGUuYW0gICAgfCAgIDEgKwotIGFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2sveGltaWFuLXZjYXJkLmggfCAxNzkgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDc3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYWRkcmVzc2Jvb2svYmFja2VuZHMvZmlsZS9NYWtlZmlsZS5hbSBiL2FkZHJlc3Nib29rL2JhY2tlbmRzL2ZpbGUvTWFrZWZpbGUuYW0KLWluZGV4IDA4Y2Y1OGYuLjE3ZTcxNDkgMTAwNjQ0Ci0tLS0gYS9hZGRyZXNzYm9vay9iYWNrZW5kcy9maWxlL01ha2VmaWxlLmFtCi0rKysgYi9hZGRyZXNzYm9vay9iYWNrZW5kcy9maWxlL01ha2VmaWxlLmFtCi1AQCAtMiw2ICsyLDcgQEAgZWJvb2tfYmFja2VuZF9MVExJQlJBUklFUyA9IGxpYmVib29rYmFja2VuZGZpbGUubGEKLSAKLSBsaWJlYm9va2JhY2tlbmRmaWxlX2xhX0NQUEZMQUdTID0gXAotIAkkKEFNX0NQUEZMQUdTKQkJCQkJXAotKwktRENSRUFURV9ERUZBVUxUX1ZDQVJEIFwKLSAJLURHX0xPR19ET01BSU49XCJsaWJlYm9va2JhY2tlbmRcIgkJXAotIAktSSQodG9wX3NyY2RpcikJCQkJCVwKLSAJLUkkKHRvcF9idWlsZGRpcikJCQkJXAotZGlmZiAtLWdpdCBhL2FkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2sveGltaWFuLXZjYXJkLmggYi9hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL3hpbWlhbi12Y2FyZC5oCi1pbmRleCA3ODJkMzdiLi41YjBiMjUwIDEwMDY0NAotLS0tIGEvYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay94aW1pYW4tdmNhcmQuaAotKysrIGIvYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay94aW1pYW4tdmNhcmQuaAotQEAgLTEsODAgKzEsMTA1IEBACi0gI2RlZmluZSBYSU1JQU5fVkNBUkQgXAotICJCRUdJTjpWQ0FSRFxuIiBcCi0tIlgtRVZPTFVUSU9OLUZJTEUtQVM6Tm92ZWxsIFhpbWlhbiBHcm91cFxuIiBcCi0tIkFEUjtUWVBFPVdPUks6O1N1aXRlIDUwMDs4IENhbWJyaWRnZSBDZW50ZXI7Q2FtYnJpZGdlO01BOzAyMTQyO1VTQVxuIiBcCi0tIkxBQkVMO1RZUEU9V09SSzo4IENhbWJyaWRnZSBDZW50ZXIsIFN1aXRlIDUwMFxcbkNhbWJyaWRnZVxcLCBNQVxcbjAyMTQyXFxuVVNBXG4iIFwKLS0iVEVMO1dPUks7Vk9JQ0U6KDYxNykgNjEzLTIwMDBcbiIgXAotLSJURUw7V09SSztGQVg6KDYxNykgNjEzLTIwMDFcbiIgXAotLSJFTUFJTDtJTlRFUk5FVDpoZWxsb0B4aW1pYW4uY29tXG4iIFwKLS0iVVJMOmh0dHA6Ly93d3cueGltaWFuLmNvbS9cbiIgXAotLSJPUkc6Tm92ZWxsO1hpbWlhbiBHcm91cFxuIiBcCi0tIlBIT1RPO0VOQ09ESU5HPWI7VFlQRT1KUEVHOi85ai80QUFRU2taSlJnQUJBUUVBUndCSEFBRC8vZ0FYUTNKbFlYUmxaQ0IzYVhSb1xuIiBcCi0tIiBJRlJvWlNCSFNVMVEvOXNBUXdBSUJnWUhCZ1VJQndjSENRa0lDZ3dVRFF3TEN3d1pFaE1QRkIwYUh4NGRHaHdjSUNRdUp5QWlMQ01cbiIgXAotLSIgY0hDZzNLU3d3TVRRME5COG5PVDA0TWp3dU16UXkvOXNBUXdFSkNRa01Dd3dZRFEwWU1pRWNJVEl5TWpJeU1qSXlNakl5TWpJeU1qXG4iIFwKLS0iIEl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXkvOEFBRVFnQWJnQmtBd0VpQUFJUkFRTVJBZi9FQVxuIiBcCi0tIiBCd0FBQUlEQVFFQkFRQUFBQUFBQUFBQUFBQUhCUVlJQkFNQkF2L0VBRVlRQUFFREF3RUZCZ01FQmdRUEFBQUFBQUVDQXdRQUJSRUdcbiIgXAotLSIgQnhJaE1XRVRJa0ZSY1lFVWthRUlNa0xCRlNOU3NiTFJGbUp5ZFJna016WTNRMFJHZ3BLVG9zTGg4UC9FQUJzQkFRQUNBd0VCQUFBXG4iIFwKLS0iIEFBQUFBQUFBQUFBQUVCUUlEQmdFSC84UUFMUkVBQVFNQ0F3WUdBZ01BQUFBQUFBQUFBUUFDQXdRUkVpRlJCUk1pTVVGaE1uR0JrYlxuIiBcCi0tIiBIUkJzRVVvZkQvMmdBTUF3RUFBaEVERVFBL0FIL1JSUlJFVndYZTlXMnd3RnpicE5aaXhrYzF1cXdQUWVaNkNvSFhldkxmb20xZHNcbiIgXAotLSIgOWg2YTZEOFBHQ3NGWkhNaytDUjRuODZ5emRicnFmYVpxWUJTbnAwaFJQWk1vRzYyeW5vT1NSMVB1YThMZzBYUEplZ1g1SnY2ayswXG4iIFwKLS0iIGJCanJXeHAyMkxsa2NCSWxIczBIcUVqaVI2NHBlVDl1bXVwcXlXcmhIaHBQNFdJNmVIdXJlTlc3VG13K0RHYVRJMUZKVkpkeGtzTVxuIiBcCi0tIiBxS0cwOUNybWZiRk1DSHBDdzJ4QVREczhKckg0Z3lrcStaNG1xaWZiTVVac3hwZC9RVWxsSzUzTTJTQ2IyeGErYlh2ZjBnY1YwVXdcbiIgXAotLSIgMFIvRFZrdEgyaGRVd2xwRnhqUXJnMTQ5MHRMUHVPSDBwdnYycUU0amRjaHgxcDhsTkFqOTFWYTg3T3RNM1JDdCsyTngzRHljaS9xXG4iIFwKLS0iIHlQWWNEN2cxRVorUlI0clNNSTliL1MybWhkYmhLc21rZHRXbU5UdU54blhWVzJjdmdHWlJBU28rU1Y4ajc0UFNtT2xRVU1wT1JXUFxuIiBcCi0tIiBOVTdNcmpZMHJsUUZtZERUeE9FNGNRT284UjFIeXFlMlo3WkoybTMyYlhmSG5KVnBKQ1V1cU84dVA3K0tlbmg0ZVZYa0ZSRlVNeHhcbiIgXAotLSIgRzRVT1NOMFpzNExVMUZlRU9XeE9pdHlZenFIV1hFaFNGb09Rb0hrUWE5NjNyQkZGRkZFUlVkZnIxRTA5WTVkMW1yM1k4WnNyVjVuXG4iIFwKLS0iIHlBNms0QTZtcEdrTDlvalV5bTBXL1RyTG1Bc0dVK0FlWUJ3Z2ZQSi80UlJFcXJyY2IxdEoxb1VwQlhMbU9icVVaN3JTQnlUMFNrWlxuIiBcCi0tIiBKOHprMXBIUW1pTFhvK3pwYmFiQzNTQXA1NVE3enl2TTlQSVV1ZGlHbVVSYlM3ZnBDTXZ6RkZ0b244TFNUeHg2cUgwRk03VlY5VllcbiIgXAotLSIgOU16WjdhUXQ1dEFTdzMrMjZvaEtCL3pFVlNWRlZ2WnpHTXcwMnRxZS9rcGJJOExNUjYvQy9YeHE5UWFnZmJiUCtJVzFRUTRSeWNmXG4iIFwKLS0iIHhuY0hSQUlKL3JFZnNtdTJhOUZnc2wyWElaanRqOGJxd2dmTTErOUwyVkZrc0VTQVY5bzZoRzg4NmVianFqdkxXZXBVU2FydXRkblxuIiBcCi0tIiBNWFYrb2JSY1prcy9Dd0NRNURLTXBlQk9UeHp3emdBOUt3ZlR0ZnhQT1NCNUdRVVhjOXBPam9DK3pYZTJIVjV4aU9DNlBta0VmV3BcbiIgXAotLSIgeGU2dEFXZ2hTVkRJSU9RUlh4ZWtOT3g0YjBXUFpZTExUcmFtMTltd2xKS1NNSGpqTlV6UWQyZFpNN1NOeGN6Y0xPc3R0cVZ6ZFl6XG4iIFwKLS0iIDNGZXdJOWlLcEsybWpNWmRGZTdlZDlOZlQ5cVpESTRPQWQxVmtrbzUwbmRvdWkyMmt1WHEyTkJPTzlKWlNPSDlzRDkvejg2YzhnY1xuIiBcCi0tIiBEVUpOUWxhRkpVa0tTb1lJSTRFVkdvS3A5UElIdDllNmx5Uk5sWmhjcWxzSjJndVFweWRMM0Y0bU83a3cxS1AzRmN5ajBQRWpybnpcbiIgXAotLSIgclNBSUl5T1ZZZnZzSjNUR3FsQ0twVGZZdUpmakxITURPUjhqdzlxMkZveStvMUZwV0Jja1kvWE1wVW9lUnh4SHNjaXUvamVKR0I3XG4iIFwKLS0iIGVSWFB2YVd1TFQwVS9SUlJXYXhRZVZZODJ4M0JWdzJvWGJKeWhnb1pSMEFRTS9VbXRoSys2ZlNzV2JSUVc5cFY3M3gvdFpQdHdORVxuIiBcCi0tIiBXajlOdzBXdXd3SUtRQUdJNkcvY0FaK3RSVzBseDVuVEVXNE50cWRhdDl4ank1Q0VqSkxTRlpQNUgycWFZZENrcFVrNUJHUWE3QXBcbiIgXAotLSIgRHJTbTNFcFdoWUtWSlVNZ2c4d1JYeitrcXl5VEc3VlhVc1YyMkNscmZjNDgrQ3pNaVBJZWp2SUMyM0VISVVEWE5lNzliN0hiWGJoXG4iIFwKLS0iIGM1U0k4WnZtdFo1bnlBNWs5QlM3ZDBuZmRNUHVTZEQzSnRFWmFpdGRvbTVVem54M0R6VDZjUFdrdnEvVjE2MTFmR1c1blp0QkNneVxuIiBcCi0tIiB6RmJYaHRDeWNFNUp4a254UGhYUjA3UlVlQjNEMTFIKzlsQWZ3Y3htcnJxTGJ4Y0hwaWtXR0F3MUZTY0J5VWtxV3ZyZ0VCUHB4cWlcbiIgXAotLSIgenRkWFdkcW1OcUlJang3Z3lrSlVwaEpDWEFNL2VCSjVnNFBRQ21CWk5pREtXRXUzNjR1RjBqSlloNEFUNnFVRG4yRlZ1NmJQSWtUXG4iIFwKLS0iIGFUQjA4eEtlTU9VMkg5OWVDdEtSdlpHUU1aN2h3Y2VOWnhWR3pzYm1NeklCdjVkZk5lT2puc0NkVXdiVHRLc1Y4bkpnSWNjWmtxd1xuIiBcCi0tIiBsSmNUaERxdkpKejhzNHpVdExWenBjMnZaWkt0K3FCSWt5VUt0MFYwT05LU2UrN2c1U0NQRHI5S3YwdHpuWFAxY05NeVFmeG5YQkNcbiIgXAotLSIgdHFVeXVCM2dzbGZ0UGpKTGtHV0IzdTgyby9Jajg2YmYyZTdpcVJveHlJcFdmaHBDMEpIUTRWLzVHbFZ0SmNCdDBSUGlYaWYrMDB3XG4iIFwKLS0iIFBzNUJRdE54UDRUSlA4S2E2clpaSnBXMzcvS3E2OEFUbFBlaWlpckJRMEhsV1I5dDlxVmJ0cEVwL2R3aVkwaDVKOE1nYnAvaCt0YVxuIiBcCi0tIiA0cE03ZmRLTHVtbjJyeEdiS240QktsNEhFdG43M3l3RDdHaUw3bzI4SnV1bExiS0NzcUxLVUwvdEo3cCtvcXlJZTRjNlJHeXpVNGdcbiIgXAotLSIgVEhMTkpjM1dwQ3Q5Z2s4QTU0ajNHUGNkYVp1b29zeTgyVjIzUXBhWXBrRUlkZUlKS1VlSUFIaWVYUGtUWEExMUR1YXNzSnNDZWZZXG4iIFwKLS0iIC9TdllaTjVGaUdaVTllZFJ3TERBWEpueTJtUnVrb1N0UUJXUU9RSGpTamc3UFlFN1ptemNaYjdjRzZLSzVDWkQ2dHhPQ2NKUXZQZ1xuIiBcCi0tIiBRQVFmQW4ycTZSTk9XaTFEOUozUjVkd2xSMnhtWlBWdjltbEk4QnlUajU5YXIwOUxtMGpVSVFsNVkwekFVTXJRU1BpWGZISHB5ejRcbiIgXAotLSIgRDFxVFJ2TVFJaWVRQVFYT3RsbGZJRHJlL1gyV3FWbUk4UXo2RDlxMGJQOVNPMzdTclNwVzhaVVZYdzdxK1ljS2VTZ2VSeU1aNjVxXG4iIFwKLS0iIHFhbW12V1RhbEV2MXlqT0p0YVdmaDI1Q0J2Qk9Va0hQbHhVZUhseXEvTWlQQ2l0eG9yU0dXRzA3cUcwREFTSzQ1eFpseDNHSkRhSFxuIiBcCi0tIiBXbGpDa0xHUVI2Vkdpblkyb2ZJRzhMcmkyZ09pMzdoeFlHM3pDK3VUMkhZNlpEYnlGTXJBVWx3SzdwQjVITlJjcDdueHFwemROM0dcbiIgXAotLSIgQ0ZRN05PYlRhM25BcGNhU04vc3VPZTRTRHc2VkszTzRzd29qc3A5V0dteGs5ZklEclc0VXpXa2J0MksvdjY5MXZqZWM4WXRaVVRhXG4iIFwKLS0iIEJMK0l1TWFJamlXV3l0WFFuL3dCRDYwOHRndHJWQzBXMit0T0ZTRnFkOWljRDZBVm5tRkZsNm4xQWhvQW1SUGR3Y2ZnUjRuMkg3cVxuIiBcCi0tIiAyUHBpMU4yZXhSb2phUWxLRUJJSGtBSzdHbWkzTVRXYUxuNmlUZVNGK3FtYUtLSzNyU2l1ZWRFYW5RM0k3cVFwQzBrRUVaelhSUlJcbiIgXAotLSIgRmpuYVJvU1ZvcS9LY1lRdjlIT3IzbUhCL3F6ejNTZW5oVmkwZnRBYm5OTndMbzZHNWlRRW9kVWNKZDlmSlg3NjBacUxUa0hVZHNkXG4iIFwKLS0iIGhUV0VPdHVKd1FvVmwvWEd5UzdhYWtPUHdHbkpjRE9SdWpLMERxUEgycUpWMGNkVXpDLzBPaTNRVHVoZGRxWTg0SXVGdWt3bkZGS1xuIiBcCi0tIiBKRFNtbEVjd0ZER1I4NklTSTF0Z3RRNGpZYVlhVHVvU1AvdWRKUzFhenZGb0FaTG5ic3A0ZG0va2xQUUhtS3MwZmFWRVdrZkV3MzJcbiIgXAotLSIgMWYxQ0ZqOHE1NlhaTlN3WUc1dDdmU3Q0NnlCNXVjaW1NNUw0YzY0M3BYV3FVNXRDdGVNcFJLVWZJSUg4NmlwbXZubkFVd29RU2YyXG4iIFwKLS0iIDNsWitnL25XRWV5NXlmQ3RycXVCbzhTdTArNHNRNDZwRXAxTFRTZVpVZm9QT2xuZnI2N2ZaS1FsSzBRa0svVnRmaWNWNW5yWE9rWFxuIiBcCi0tIiBYVWs5S1FIcDBnbmdoSTdxUHlBcDFiT2RrQ21IMnJuZVFISHh4UWpIZGI5T3ZXcjJqMmMyRGlkbTc0VlpWVnBsR0Z1UVhSc2MyZk9cbiIgXAotLSIgUWdiMWNtc1NYUU4xSkgrVFQ0RCtkUEVBQUFEa0s4NDhkdU15bHBwSVNrREdCWHJWa29DS0tLS0lpaXFycmJYOW0wSkFSSXVhMXJlXG4iIFwKLS0iIGRKRE1kb0FyY0k1OCtBQTh6VkxzTzI2UnFpUzlHc3VrcGN0NWxIYUtiVExhU3JkOHdGRVo5czBSTjZ2R1JHWmt0bERxQW9IekZLcVxuIiBcCi0tIiBKdG9tenJQT3V6R2padndFQlJUSmZja3R0cGJVT2FlOWpKNWNCazhSNTE0V3JibzdlNDg5KzNhVGx2dFFHVElrcUVsc2RtMk1rcTRcbiIgXAotLSIgNHp5UEtpS2YxSHNqMDlmbEtkWEVRaDQvalIzVmZNVXZKLzJldDFaTU9lOGtlU2dGZnlxejJMYmZKMU05SVpzMmtKc3gyTzBYbkVOXG4iIFwKLS0iIHlFQWhBNFp3Y1o1OGh4cjdaZHRrdlVTNVNiVG8yZkpNUnN1UGtQb1NHMGp6S3NEUFBoejRIeW9pcERld0M0NytGWEZXT2pZSDUxWVxuIiBcCi0tIiBiVHNBZ3RyU3FjODgvandXckErUXhVbFl0dWp1cFo2b05vMG5MbFNVdHFkS0V5VzA0U01aT1ZZSGlLalA4QUNVdDUvd0IzcFgvWFRcbiIgXAotLSIgL0tpSm5XTFExbnNUU1VSb3JhZDM5bElGV1pLVW9UaElBSFNsTnFEYkxQMHNpS3U5Nk1uUTB5Z1N5VnlHenZZeG5sbkI0amdhODdGXG4iIFwKLS0iIHR0bGFtWEpiczJqNTB4Y1p2dFhVdHlFWkNmUEI1K2d5YUltOVJTZXRtM0o2OFJiaEpnYVNtUE0yNXZ0WmF2aVcwOWtuanhJT004alxuIiBcCi0tIiB5OHE3TEh0enN0d3YvQU9ocmxCZnRra3Vka0ZPTFM0M3Y1eGdxU2VISHg1ZGFJbXJSWDVRdEswaFNUa0dpaUxNUDJobzh3YTFpU25cbiIgXAotLSIgUW94VlJRMjBmQUtDbEZROWVJcXE3TExKZTd2cmVHN1paQ29aaHFEOGlaanVzdGpubndPUmtZOGMrV2ExWnFiU3R0MVBCTWE0TUlkXG4iIFwKLS0iIFJ6N3d6ZytkTDhiRWJBMXZwYTdSdEsrQ2twZFdBZlhqUkZCN1VwQ05lNktkbTZObkpmdDFxbHVLdVVKbHZkS3puUGJZSDNoelBYSlxuIiBcCi0tIiBQTUdxWnNrL3pjMmdmM0c1L0N1bWMzc1JzVE85MlJjYjN1QjNYVmpQMXI0allmWUd3b043NlFzWVVFdXJHUjVIalJFdWRoVXQyQlBcbiIgXAotLSIgMVRNWUlEMGV5dXVvSkdSdkpJSStvcTk2STJpd3RWejdyYjdaWldiYWx5enlKOXdLVWpMc3JLRWtqSDRjRTgrSnowNDliZXcrd05iXG4iIFwKLS0iIDNaNzZONFlPNjZzWkhsem9iMkgyQmtrdGI2Q1JnbExxeGtlWE9pSlpiQXY5SU1qKzdYL3dCNmFnOWxHbkVhajE3Q1JKQStCaFpteVxuIiBcCi0tIiBsSys2RUk0NFBRcTNSNkUwNlc5aDlnWlZ2TmI2Rll4bExxd2NmT2h2WWhZV3Q3czk5RzhNSzNYVmpJNjhhSW83VXhnYlI5SWFqaFFcbiIgXAotLSIgNy9EdTl5aVNGM1MzdE1OclN0bGtBQXQ5NERQREk0ZUpGVXZZZk5ldHFOWXo0eEFmaldaeDVza1pBVW5KSEQxRk1WclloWVdWYnpXXG4iIFwKLS0iICsyb2pHVU9yQng4NkViRDdBMEZCdmZSdkRDdDExWXlQSThhSW8yM3pkUDZpMmU2MjFUYVVKaVhDZmExSXVjRlBKdDVLVm5mSFJXU1xuIiBcCi0tIiBldVBQTloyWWFkZmtOc3NwVXAxYWdsQ1U4eVR5clRTTmg5Z2JDZ2pmU0ZqQ2dsMVl5UEk4YWw5UGJJdFAyV2FtVXl3a3VKNUtPVkVcbiIgXAotLSIgZW1lVkVWdzAyWkg5SDRZa0VxZERZQ2lmRTRvcVhiYVMwMmxDUmhJR0JSUkYvL1pcbiIgXAotKyJWRVJTSU9OOjMuMFxuIiBcCi0rIkZOOllvY3RvIFByb2plY3RcbiIgXAotKyJVUkw6aHR0cDovL3d3dy55b2N0b3Byb2plY3Qub3JnL1xuIiBcCi0rIkVNQUlMOnlvY3RvQHlvY3RvcHJvamVjdC5vcmdcbiIgXAotKyJURUw7VFlQRT1WT0lDRTorMDAgMDAwIDAwMCAwMDAwXG4iIFwKLSsiQURSO1RZUEU9SE9NRTo7MTcyMCBCZWF2ZXIgQ3JlZWs7RGFtICM0O1BsYW5ldCBFYXJ0aFxuIiBcCi0rIkxBQkVMOjE3MjAgQmVhdmVyIENyZWVrXFxuRGFtICM0XFxuUGxhbmV0IEVhcnRoXG4iIFwKLSsiUEhPVE87RU5DT0RJTkc9YjppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBR1FBQUFCa0NBWUFBQUJ3NHBWXG4iIFwKLSsiIFVBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFd0FBQ3hNQkFKcWNHQUFBRkU5SlJFRlVlSnp0blhtUUhOVjl4elxuIiBcCi0rIiArdmU4NmR2VS90YW5VaUNWd1JRdWFJaFNFT01zSWlFc2JHUnRpVkdGeTRFc2RVNGJJTk9JQ1BVdGtRSE94Z1lvaURUVkp4Q0Jpd01cbiIgXAotKyIgQ0J4QmpBbHNJVWxFUXpJU0FoWk41SlcybDN0dmJOejlKVS9mdS9ON0N3Z1ZxdVZtRXIxOTQvdDdlbnU5N3A3M3ZmOXp2Y2JDQkVpXG4iIFwKLSsiIFJJZ1FJVUtFQ0RINVVCLzBEWXdYd1p2L01oOEFLM0lTZ0JzNEF3QVIyOW9Dd053RmZRQktMWFkvbUR1Y0hGZ2Y5QTJFS0VYWk1pVFxuIiBcCi0rIiBZZHRkVUFEZmYrUUNBNVEvOUJRQitYazd3OWEyN3ZweFA4ZzBBTzlKNElZQTY0L3FPRTNtL2s0V1FJV1dHc21KSS9xMGZuMlArdDVcbiIgXAotKyIgemVyd0ZZREswQUNBZ0NBTXNYUnVDTHFQRFRRN0x2QmdvZ1NEWThET0RXTHZndVFPTGt2OXQ2UW01K2toQXlwTXdRZmlGbGhrbVpzXG4iIFwKLSsiIHZZLzlyT3pBWEs1OUVrQUVjODdCREQ5Yzk5Y0M2Q1U4dDd0dW1EL1BRMEEvdUNPSHdGNFZtNnBPV2JuYzIwQWx2SURPVG5RRjhuVVxuIiBcCi0rIiBoSk9UM1hRL0FLN2p5SlJXVVNYSEl3MXZBUVFWMDc4QkVKMS83ZjlNd3FNZWQ0UU1LVE5NaUNGL3VQL09OZ0M3WS9PREFGNTJZQ0VcbiIgXAotKyIgQXJoY0J3TUlEaU1aaUxrQXNWWDhmd0NsZnZmT3JBTGxkZDV3R1lHZTZIZ1JRUWZwa0FCWHhpL2ZqQ0trQ1g2aWh0SjZydEZBUDhpXG4iIFwKLSsiIE55M25BZkFKNGRrL09pQ1FCc1pTbjV2TG9YSUorYWV6VkF4Znh2UERDUlp6NVJDQmxTWnBnUVF6YmUrcVh6QVlMY3dBTUFnUk0wQVxuIiBcCi0rIiBVVFEwNzJTZjZKS21vOEhXUVZnTlNjN0FVNitZRzRBRUxpWktYSVRJaWM4Z3NMOTJKNXV5elhpeHpCR2J4MXRJQTczeUlNa0syVnJcbiIgXAotKyIgeC9SNWNnOUthWFU0MGdDQUgyLy9sT2tqc20zV2t3Qjk3S29FeU9IVUEyVFR3OUo1VTBNV3dObTVydzlnM3RmdXpCM2xxenBxaEF3XG4iIFwKLSsiIHBNMFFtY2xFMGtuSUJ2T3l3RCtBcEI0QkFHMnUyRW1vRW5udyt4RUFBc09ERDdTMEF1R0xNS1pSUm5ZUkJScE1DZk1NTUxUTlVJUFxuIiBcCi0rIiB2S2MwdTJXUG9hU3orS2JldVBQUVhnZThJKzVYZUxEQXFzWDVrK09uSzdid0p3ZTUwYkFITFpmQldBbzl2MkRuZkszZG54dFFDdjNcbiIgXAotKyIgdkgxV3dCMlRQbm9Xb0RMTHJ2c1hiWEhZMEhJa0RMRGhCaGl6engxSjRDN3RYY1lRQVZPQzRDdFJZQVZ5S2gyL0RRQTg4NlpvUUFTXG4iIFwKLSsiIFZWR2dhRXFvc1RKc0ZFT1VOOGFKeU5qQjZKZGVZK214RlpRMnFTd3RRenc1MGM0ZVNKaGpVVy93SHdGMjc1TytVcFgxSXRzMHc3MlxuIiBcCi0rIiA4OGVTUExBWndvaU1mQVdqMTEzMWFIM2lPU1ViSWtETERoQmh5Mm1lL3ZCOWd3MjFYUFFRUUg4emNBT0FybWRBREo2TUFwcDVTQjBcbiIgXAotKyIgRDFsS3FTNnd0ak9EQkd1TFl0L0ZHeEpTTTdmRE5tZ2xGL1FSa2ZvMmFPUmVsNVpsdnN5OU5NS2ZiUjBDTFhKUFpJRzQ0bjUxaEtQXG4iIFwKLSsiIG5jTGZjcCszc2tuQUx4TXVuYnNPNWtzaEF3cE0weUlJUWFMcnIzclJvRDF0MTVaQjVBWTZ2eDdnR2hLUmx4TmU2MW9PTFl0bzFOZlxuIiBcCi0rIiBGMmhtS0UvTEJUTnFOVk5nbFAzaHl2eXVDdGZJdm0vY1l5cXB0N1krVDJ0OFk1bFN1cXN2RWY2MHo0Z0Q4TWFyWXZWWDFXaWJSWi9cbiIgXAotKyIgc2FIbmxxT1FXZ0ZqRHpGZmUrNjBjRzBLR2xCa21OVUMxL3Q5WG5nZlExblRnMXdEVFo5aml6UzNNMjNwNCtxWnozWDFFeG9XeTdFXG4iIFwKLSsiIEpiZ1hIeWF1MUpHLzBvZjB4YnVvM0ExWjk3cFpaOWdYM3VtQzJnSFFSa2hySUF2THhlTEhUYkVvWVlabnRXYkJqQXI1dDZIY0RIclxuIiBcCi0rIiA3Mzk1MGQ0RGNlRWtDRmxobU9TSVdPeDZMd3FtWXl6TmRVQVhyYXY1TGl5cFRzVkUzOVR3WVl3RTd3M3lnN1JtbzdSdGdqTXlEZlhcbiIgXAotKyIgMkhyUDdCc21HYzFJVThwWThyYnBzaWluREl0aUNmRVUxOWFMemRMWktZeEpWTmJ0QW5BcTYzOENjTUZ4WklaQnlKQXl3NlRJa0dEXG4iIFwKLSsiIHZjN01Cdk01bk5nQ29ZS0FKSU5ERDFkSWVWeFBMQU5HRUtQaXJITlBTcUVhTnZESE1VS1ZiWTVuYmhpbWFJZnE0cjRJeFZ3VzZ1VlxuIiBcCi0rIiBFV3Z5ZjNZMmxaMHROcmRRRnMzaGI3S1lDVGFINFU0SUpyYjMvai9kN0JaQ0ZrU0psaFVtUklMdWNrQUdLRDJTWUFuQXdBRm1MNVpcbiIgXAotKyIgaktaQUNDVEZncytPeXpIczNrSkx6ZzYyUzJmTHhMVzA4eXd0V3lJeHVSWUxDRzNYQkdYYlZWMUJRQ3BTbjJ0bGhXV0hkVlBLR0l0XG4iIFwKLSsiIE1IWktpU0VpYmZpYWJUWE5FbFA1eTJtTmp3R29qOXh5d3BoaEVES2t6REFwREVuTVcvWW1RRzdERHlTMlBzQlhBRjdkc1BOaWdEZVxuIiBcCi0rIiAyN21zRENJemZ5WlpSYSttUkdURXhqRkVTelZLeGtqNk0xVnp3ZTNuQ01pZmZyOXVRNHczVjBuWnpzelRXV0M5OU5EYks2RTlXSmdcbiIgXAotKyIgdHRxbWhDN0k3S2F2Rmh4V3FiQWR4STVaU2pmUWVUaFpBaFpZYndDeWt6VEtwaEdGOTA0eWI5NzFVQXYxbDVoUVBRM3VaZExaMUp0XG4iIFwKLSsiIEtuZ1hOVCtFRXVaZ0ZWeGZQZ0ZoZFVJWWF0a3oxenJHL1ZZcTdNNVR4U0Z2UWRsZjlOMjJSL0pTRGkycnFvNEw4NmNKcHJBd3ZsMlxuIiBcCi0rIiBMMEJGVzYzNFZXS1JEMnlOU2NpUU1zT2tNc1JnNjdyVlZRREQ2OWFjQm9DcTF1NzNVb2VnNzVlNlE3eFJyaE8vNElmVXpzUFJIZytcbiIgXAotKyIgS0xETlgrSmFja05UcWJqd3FSNnFyZExCSkc2WDVVUUdxL2YzNjJyMlYxd0Y4dEw3MWZ3RmluVE0rc0l6NWtDRmxodVBDa054YlcyXG4iIFwKLSsiIFlBSk94WUcwQ3Z0dFllZldVbkFHZk9xQWZnOUZiWjVyWGowTE9MODd1dktlSWFFVkhJdWRZdWtESG5LVzM0WVJ0bm96eGFqelpDYVxuIiBcCi0rIiA1S2k3bGFNMHFhcjRub24wWm9CaUMvOTV1YUpQTzlrSW1SSW1lRzRNQ1RpWldZRHhKT1JhUURQYnBUbGZ2c2xLNGhVcDR6YXMyYktcbiIgXAotKyIgZkI5eFNtVUxGSTFFSXpzSzNuaHZqTE5SbFRMSDRNMkRBd0E4c1drL0FPZDlxQTJBRDArckw1NmtVNHlpNUMvV256dzQ3b2M4VGdnXG4iIFwKLSsiIFpVbVk0TGd5eExXOHVnQjk0Y1lBRGc3bVNsRkVUTklwb0duZzZkQnRSeGZIaGFvZWpqdTdpR1FZWWQzc3BJUXBhbVFsb2RROEtDMVxuIiBcCi0rIiAwdFcvYjN5ZjZIV29wYVZrVlNaSWliSFQ3bDZKL3krQ0JrU0psaFVobnlwNmVlaWdQazl2NTJGa0JVQjZDMHg1eitySXplMlkyU09cbiIgXAotKyIgS2ZHV095ajAwQk53b01KYXBuQWs5TDZsVFZHN0pnb3NHRktiVXEwS3MrWDVRb1pSNi9hOVlvR2phOTVGbmhPSlVBUUJERjlQL21qXG4iIFwKLSsiIGZmYkpRc2lRTXNPa01pVGEyYWtBMGs1T2ZPQ09oR2FYelc4SG9DY3QrNmUzMXdDUTBkcFZYc3NMTmRyL3J1VkpvQmxpWklySkIxS1xuIiBcCi0rIiAyRHRrV0JyejhZM1N3MlUzQ3duazY2TlNpQTFteGFIRU1LbDhDYUs0bm5XMS8rajZUaUIweUpJUmdVaG15WitaTUY2Qnl5NVp1S09cbiIgXAotKyIgYWtUYXVTK1h4NmpXek5xRGJtaHhmSXVPanVPbHhvSzFtUkFxRDV6TE1CbURwL0FRQWRMNjRGWUhEUGRnQmM3WnVLeG9XVVJpdExhXG4iIFwKLSsiIGF0LytmeHBRSEhrR2M4eWdHdXFReWpsQXN4YmR2bmdCQjZiVFpzMnRBTllGZkU1QVBQbkxQeURPYWFVR2pxYXRrS0dsQmttbFNHTFxuIiBcCi0rIiBGMHV0cWcwL3ZlNEZBS1dpVndQa0E2Y0tJSEI4bmFxcFN1SWlSdk5wYkdnb3RHVmtRVldyUkZOcnBrNEg0R0M3YkwwZGtuOFFUMVNcbiIgXAotKyIgVTNvUnhaV2taRkxlTWJGSHZjQWQ0bnZ3Zmo5ZE1hS24wczgvZmZ6SEFhNXMycmdGNGZOVWFBQm9hRzNhYmMzNTg2OHJMQUs2NS9uXG4iIFwKLSsiIHZqU3RBT0dWSm1PQzdWZ0ZZR0loVE8vK2RyN2dESURYZCtDU0RpZVVtQVNDRnp1dlF1N0ZGdEZPWjhiVTNiS2RITVJnWWxQVFdxbFxuIiBcCi0rIiA1c1pKY3ZFTzR5WmtkTlpFYjVlaE9QcDR6a1ZLZGo0cXFMdUJZRFBmdS91angvTjh6M3g5SDJma3JiZFZRQjczejRZQTNqdThhY0RcbiIgXAotKyIgZ1A3dW5zSjdiWm5TbGdHWWZmS3NDd0Z1dmUzdTN4NnA3WkFoWllZVFVpOXJ6YzFmL2k1QTk4RzN2dzlRb3hmM1Z5VkZoTVVMRHF2XG4iIFwKLSsiIFJscnA4WmhWU1FzZEVHOGZFMU0zV0swUUc1ZXlzRitRQVBNdCtIY0NKVmo1aSt2aWJXLzd6Tm5qdjRqanZlSTQxdjFnRTRPRkxUU1xuIiBcCi0rIiA3c05nQmxpOTlnb0g5UUFUeTMrcWtDQy9kczI2a0FtcWMwRHdFc1hYclJKUUJYWDNmOTgrL1dSOGlRTXNOeDhmWWFHTi9RdlhkZGRcbiIgXAotKyIgVDdBenIxaUFPL2F1UWNBMXhHcFlldlJQbTltTVlrdEVaTllTVElxVzlzczNERk1jT1VhTnllRGV5QXQrNFBhK0xGMDRraGVXLy8xXG4iIFwKLSsiIDdXM2JBU0puVC85WDA4ZDRtZkhMWDk4MUZ5RHZ1cUtOUld5ZCtJZStGNkYyTWlVYTMrS0xMaXhRL1luMDZnQmdzS3VyQ3VCM3YzdlxuIiBcCi0rIiB1aC9yUUdlL1dWOGlRTWtQNGhaUVpqb3RRZitXWFAyOEVjQlArendDRzRzR25BUWI2aHkyQTdsMWJGY0NpT2dtdmJ1OFdqOFhhdDRcbiIgXAotKyIgdkZkbXJycWdGSUpIWDFCMU1WVm1jOVpMSzZqc3FRVElOYnRzdituc095L2N4WmNuMGtJVnBCcXFWT0FiVEhwejFtK3ZqS2QvNnRVXG4iIFwKLSsiIEJubzNmRG9vdzlNQTNDOVlVa0FqRnAxVUhUMWVEckRJZ2hNdFFoOTRTZ25hVzVFVm1QOTZyL3VsUlhKbVh3SHdBL3Z1dk4wZ0lVTFxuIiBcCi0rIiB6K2thM1dmSWtETERNVEhrOWYrK05nVVFUMGVhQUVhYzNKVUF2VjJIdmc2d3IzZWdHbUQzaUl6cXM1Yi9GUUNSRVVuclBDc2lBeStcbiIgXAotKyIgYmwxRjB5N3FCUXR0VnpiTFVwTEpDQy9Xb0tBQ09OZ2hIUm9RSiszZDFBOUN4UjVneU5DTEgvM3lPRkI0NmMzNHJBTnM2RHdZQUZmXG4iIFwKLSsiIDNGUlNnTnplMXZBY1NUa1JzQWFsTXRVclo4U25zR3dHK3MzZ2hnUlcwcDZteXEyMm5YajZldFVNOGtYaGdhQjZNV29VVEZ5OW5YSVxuIiBcCi0rIiBVUjQ1dUhIZmdUdzlBdnIvK0dkYnpSa1NObGhRbXJ2bHYvNDlneUE2TkR3N1FENWJOOGxBUDZ3ZUpyTmlMZWFXZ0tBenRlM0s0QzhcbiIgXAotKyIgL3Y0N0IyVUFSZE5TTjNISktjS0NsOTRxRW5hN1R1YTBJaWJaUWE2SmE4OUhoVFlZRzRma2VJMU9mcWhOeVNPOThiYUVicmQzU3I1XG4iIFwKLSsiIG9kVlJtZ3puVnNjTG9qWFh2UHdVZ24waXNCaGlwRXBiVlRtMEdRTnV0T05vTGFsbldFV2VVSUNobEVJQ24xZkRtbHRiVjhON01NQVxuIiBcCi0rIiBnWlVtWVlOME4yci8xRm9jNVVkc3RyM3dJZzEzOEpRS0FUQ054QWhyRUtaQ1E1VmxJQlhMcmtQQUNhRHUwRFlPZm1IUUFNVzVJNUZcbiIgXAotKyIgM3hZNXZtVkZ4YjcrLzRhMGJqbWF0blJwalBtRHVkbGdMK281VktWem1xb1RzanhYcDFDR3RHR3Bha0UwWmVUZXp3MFZKUWhsUWxwXG4iIFwKLSsiIE82bXJHRkhmcUFBMmJKVDQwdnd6VHBmN250cXFRNzI2M3VPWUZLUmdUT1ozYVdLNDlSaUFXMnQ5Z1hFZ1pFaVpZZHdNNmQzOFppRVxuIiBcCi0rIiBITTU0Zk9nUEF6NHVtazhuTE1NMjdrcHZwT1RKRU5xMlhtRXhTajV6elc4UzFVTjhqMmxUUGRBbTdabDRUTzJUKzFtSUk5NThxcElcbiIgXAotKyIgMldLYUp0RGMrZUFVRHQxbDBBL0cxQzJLVUNHZm1ObWtrSHRVUCtxUkhaZjEzSGlXdDBGUWwzT0Yzb3c2L1hOWDRyRXJKYVdBZTc5XG4iIFwKLSsiIHU0USsyalg5cjBBWEhMNVpkSjNrd1RRWExPK1BpalpvSFN1VWhDbzlhWVAyL2EvQ25ERjBpdUtIUjhCSVVQS0RPUFhzcExGVUdrbVxuIiBcCi0rIiBJM091bjVYUm1kYWpNSzBaTTVBVmJhVnJVT1RBcW95TXFGUHJKQ1VuMXlvMnd1dC9FdDI4dFVPT1Z3Y0ZNVVd0a1MvYVl1OCtZeEVcbiIgXAotKyIgQVRYdEVEalZybVJCVElpdFNNV0hFYkoxZ2w5ZDFmZGYzeTNrOVNOdFd0dWdObUszbGo2MDFvYmdlbmhWVmNwOTkzYUtwcmI1M0ZRXG4iIFwKLSsiIENYWGlsaUlGa3RDUmllWG1Ga0dkUGNzZzRDcEpJMTE1cytWbnh5eGRzY0JVS0dsQm5HelpEVFR6cXY0SE41cVhmVml3QlpWNTBKTVxuIiBcCi0rIiBKeVJ5dFdET1dISTdsNUpiTjZha2U5N2Q4MXNrVEUxTFFyZzJrcy9Cc0NUOXowTndPWStzYmFYbnJ1ZzBOK2RhMzRQd0VVN0pHUTdcbiIgXAotKyIgYzc5NHZuZG9QOUtkL1JMU25hYlhvWDl4a1NUalBmdWFlQUVlN2hkWnNsV1plcjV5WHJLWTdNRDJuaEVGVUY4aHNpeldJOWI4U1hPXG4iIFwKLSsiIG1LNEJYKzZSdk55c090R2RXUDZrQVBuSEo4Z0Fna1VwcUg1YnFBckR0eE9jQlZueHl4ZS9lODBXK0QwS0dsQm5HelJDMXVQaHpkQ1xuIiBcCi0rIiAvKzlOcy9BUmdlR0pnRzBER1VYUUxRUFRCOEFHQnp0NVN1UGhodE9CM0FyMnRJQUd3NEpNeDUvaFd4UTdweTB2MzZQZ25wTHBvenRcbiIgXAotKyIgOURmN21ZWjZWY2YwcmxyR1pNWVljSyt3b0FmekpIOXRDK3k1TzREMGxaWFhJSmRrWlNNZnMvOFJGSXVVN0JEdGcxazBnRFZLYWNYXG4iIFwKLSsiIGdNN04wd0RtbkhsbUw4Q2ZMWndmQS9qank1c3FBYm9QQ0lOZWVuYXRBamgzNlpKQmdHZ3NjVG5BRnk3OXdoRVRHTWFEa0NGbGhtUFxuIiBcCi0rIiB5OXI2OTZyWWt3TStmV2Y5NWdHMjc5bjhPb0xNL1BSV2dJOGZKQUoycEtWR0FrWHBKZWl2UVVudExuUkhScU02ZTExWm9lNXRla3RcbiIgXAotKyIgYVRMeTB1WUl6aXVPUXVzRVRjVGd4cEwvRHZlNlQxSUtLMytnbmpmUWNCYUJvcDJqcXRGWFplTjVvR1VMNWJCekI5U3VQTkFCZC84XG4iIFwKLSsiIFl1L0FYanQ1WmNmQVhqemozK3NCMUJXMEFmd2llVVhYUW53dFd1K3MyWWNyMnRjQ0JsU1pqZ21odHowN2V0T0F0ajg2c2FOQUU1bVxuIiBcCi0rIiBwQllnbDNjdEFFL242Z3hsWlVuYnpueEtBZlEwekFJZ1NJaHRZR3IwV243UlNSUW9QZWZyeXRhQitYVUVuU0pxS2xtYktrQW1MY2pcbiIgXAotKyIgVG4xczZDVHZaSzNiTDlMeUlpY1pVdE5DSnJiTXJ6SEs1dkY0RVdsRlZHUUMwejVwMUdzQTU1eXcrQU9BNzJjVUE2ZXp3YXdEWFhIXG4iIFwKLSsiIFBqcnFONFhlTkN5SkF5d3pFeDVJcFBmZndKQUMrZld3YVExZFp6b050Tlp5VXVNcUxqMzNrZEQrOTBSZk01VksxL1RpUXFscS95aVxuIiBcCi0rIiBwRTJXN21PZk9abUFHeE5FVTlYQ0Fnc0t3bmdXenJyenBLTjBuSHU2TkJCQlRBekl6Wk9veTZZR28wVXgyQ2hyS1BldXRwR3NYVzlcbiIgXAotKyIgM3FiVzF1Y0JWajM2NUpLamZ6c1RROGlRTXNPRUlvYmYrUEpmbndyUXNYZjNxUUM1aktoQ3Z2NlZtNXoyYWJsQmFjVnFTeThOYUxJXG4iIFwKLSsiIGtVaGpway9tOVh6UEVpaGZyWGl6NzJNZHVCVml4NU55SEFKWXRXOVlGOE1JTEx6UUIvT1NCeHk4QzJMWjMzMFVBblFOREN3R0M5RVxuIiBcCi0rIiBBS29DVXYybFM5RHZ0RkREUFVhSVlZUWhiY3R2SWNPdTZSVDQrY2UzUnY1dGdSTXFUTUVINGhaWVlKVFZtZUU5UUErTDVVcWpTcmFcbiIgXAotKyIgQU5MVi9YeFNqUFNpOSs3V1cwcmJvNXFXODVQZXBMMW9MTEZja0NucE94ZkFTeGZ2bnpMbU80NzlYWXp3THAxNng0QytPYjFOejRDXG4iIFwKLSsiIE1KVHZXUUNRaXBycVFEcExYdCtUc2tiOUpJYXBZbDVZQTE5YU44Vng4L0gzZXhlVGpaQWhaWVlKTVNUcmN4Z2c3MHVCdytJYURUblxuIiBcCi0rIiB1amQyYVdsZGFyVFNWNUZ5OVR0d1B4RUNyYjZqOWplbmorcHR1ZWhQZ2hwdHZQdUs5WkxxNitnSHN3QlVkVzdQUTlXU3MyVnJWRG1cbiIgXAotKyIgenpHMGtsWTFCU1FZMkRaVXhsb1ZpOFlrS3JjbzhGSVVQS0RCTml5SmV1dXJ3RDRJNWJidDhJTUpMdWJnZklaWE1XaktxWGFLckNtXG4iIFwKLSsiIGExWnVLNUxOdFRVMWg4R2FHK2Z0aExnL29jZXVzdjBvVlF4a0hRa1hQQ1p6L1FBM0hQUFBTc0Fubjd5OFNzQmVyb09ud3RnNHk4QVxuIiBcCi0rIiB5T2V6OHFPUmpsdVFDK1lISkgxZmxsMUY3VWdPSUpsSzdnT1lQbXZ1YlhMbXBQODYzbnNpWkVpWllWS1dJNnhjK2EyRkFIdi90UDFcbiIgXAotKyIgY2dNN096bXFBd0xkYUFSelA2UUNvYmFqckE1Z3phKzVMQUxmZWZ1SitCc0tndDdkM3h0alA2dXJxeFAydTFPRjNYbkZpRVRJa1JJXG4iIFwKLSsiIGdRSVVLRStIK0Mvd01HWDhJYXMxczZDUUFBQUFCSlJVNUVya0pnZ2c9PVxuIiBcCi0gIkVORDpWQ0FSRCIKLS0tIAotMS44LjMuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDEtaW1hcHgtRml4LXNpZ25hdHVyZS1mb3ItaW1hcHhfdG9rZW5pc2Vfc3RydWN0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAxLWltYXB4LUZpeC1zaWduYXR1cmUtZm9yLWltYXB4X3Rva2VuaXNlX3N0cnVjdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjgyYTc2ZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDEtaW1hcHgtRml4LXNpZ25hdHVyZS1mb3ItaW1hcHhfdG9rZW5pc2Vfc3RydWN0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotRnJvbSAwZTEwZTk3NjAyNWIyMWQxMmRmMDk5ZTgyOTUxZjc1OTAyNGFkNjQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFRodSwgMjQgQXVnIDIwMTcgMjI6MDQ6NTYgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gaW1hcHg6IEZpeCBzaWduYXR1cmUgZm9yIGltYXB4X3Rva2VuaXNlX3N0cnVjdCgpCi0KLWNsYW5nIGNvbXBsYWlucyBhYm91dCBkaWZmZXJlbnQgc2lnbmF0dXJlIGZvciB0aGlzIHBhdGNoCi0KLUZpeGVzCi1jYW1lbC9wcm92aWRlcnMvaW1hcHgvY2FtZWwtaW1hcHgtdG9rZW5zLnR4dDo1NjoxOiBlcnJvcjogY29uZmxpY3RpbmcgdHlwZXMgZm9yICdpbWFweF90b2tlbmlzZV9zdHJ1Y3QnCi18IGltYXB4X3Rva2VuaXNlX3N0cnVjdCAocmVnaXN0ZXIgY29uc3QgY2hhciAqc3RyLCByZWdpc3RlciBzaXplX3QgbGVuKQotfCBeCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBjYW1lbC9wcm92aWRlcnMvaW1hcHgvY2FtZWwtaW1hcHgtdG9rZW5zLnR4dCB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2NhbWVsL3Byb3ZpZGVycy9pbWFweC9jYW1lbC1pbWFweC10b2tlbnMudHh0IGIvY2FtZWwvcHJvdmlkZXJzL2ltYXB4L2NhbWVsLWltYXB4LXRva2Vucy50eHQKLWluZGV4IGQ0ODUwMTg2NS4uOTk0YzM2OGMwIDEwMDY0NAotLS0tIGEvY2FtZWwvcHJvdmlkZXJzL2ltYXB4L2NhbWVsLWltYXB4LXRva2Vucy50eHQKLSsrKyBiL2NhbWVsL3Byb3ZpZGVycy9pbWFweC9jYW1lbC1pbWFweC10b2tlbnMudHh0Ci1AQCAtMSw3ICsxLDcgQEAKLSAvKiBUaGlzIGNvbnRhaW5zIGFsbCBvZiB0aGUga2V5d29yZHMgd2UgY2FyZSBhYm91dC4gIFRoZXNlCi0gICAgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiBpZCB2ZXJ5IGVmZmljaWVudGx5ICovCi0gc3RydWN0IF9pbWFweF9rZXl3b3JkIHtjb25zdCBnY2hhciAqbmFtZTsgY2FtZWxfaW1hcHhfaWRfdCBpZDsgfTsKLS1zdHJ1Y3QgX2ltYXB4X2tleXdvcmQgKmltYXB4X3Rva2VuaXNlX3N0cnVjdCAocmVnaXN0ZXIgY29uc3QgY2hhciAqc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKLStzdHJ1Y3QgX2ltYXB4X2tleXdvcmQgKmltYXB4X3Rva2VuaXNlX3N0cnVjdCAocmVnaXN0ZXIgY29uc3QgY2hhciAqc3RyLCByZWdpc3RlciBzaXplX3QgbGVuKTsKLSAlJQotIEFMRVJULCAgICAgICAgICBJTUFQWF9BTEVSVAotIEFQUEVORFVJRCwJSU1BUFhfQVBQRU5EVUlECi0tLSAKLTIuMTQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDItQ01ha2VMaXN0cy50eHQtcmVtb3ZlLUNIRUNLX0NfU09VUkNFX1JVTlMtY2hlY2sucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDItQ01ha2VMaXN0cy50eHQtcmVtb3ZlLUNIRUNLX0NfU09VUkNFX1JVTlMtY2hlY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhkYzdlMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwMi1DTWFrZUxpc3RzLnR4dC1yZW1vdmUtQ0hFQ0tfQ19TT1VSQ0VfUlVOUy1jaGVjay5wYXRjaApAQCAtMCwwICsxLDUzIEBACitGcm9tIDIxMGIyMDRkOWVkZDcxMjAyNDU0ZmYwNDAxM2NjNTJiMjNjNTk4ZTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogVHVlLCAxOSBEZWMgMjAxNyAxNjo1NToxMyArMDEwMAorU3ViamVjdDogW1BBVENIXSBDTWFrZUxpc3RzLnR4dDogcmVtb3ZlIENIRUNLX0NfU09VUkNFX1JVTlMgY2hlY2sKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworKiBUUllfUlVOOiBkb2VzIG5vdCB3b3JrIGZvciBPRQorKiBIQVZFX0xLU1RSRlRJTUUgaXMgc2V0IGJ5IHJlY2lwZSBhcyBjb25maWd1cmUgb3B0aW9uCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CistLS0KKyBDTWFrZUxpc3RzLnR4dCB8IDIzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggYTIzOTZmMi4uZjNiMjcxYiAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTU3MywyOSArNTczLDYgQEAgQ0hFQ0tfQ19TT1VSQ0VfQ09NUElMRVMoIiNpbmNsdWRlIDxsYW5naW5mby5oPgorIENIRUNLX0NfU09VUkNFX0NPTVBJTEVTKCIjaW5jbHVkZSA8bGFuZ2luZm8uaD4KKyAJCQlpbnQgbWFpbih2b2lkKSB7IGNoYXIgKmRldGFpbCA9IG5sX2xhbmdpbmZvIChfTkxfQUREUkVTU19DT1VOVFJZX0FCMik7IHJldHVybiAwOyB9IiBIQVZFX19OTF9BRERSRVNTX0NPVU5UUllfQUIyKQorIAorLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLSMgQ2hlY2sgdG8gc2VlIGlmIHN0cmZ0aW1lIHN1cHBvcnRzIHRoZSB1c2Ugb2YgJWwgYW5kICVrCistIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCistCistQ0hFQ0tfQ19TT1VSQ0VfUlVOUygiCistCSNpbmNsdWRlIDxzdGRsaWIuaD4KKy0JI2luY2x1ZGUgPHN0cmluZy5oPgorLQkjaW5jbHVkZSA8dGltZS5oPgorLQlpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCXsKKy0JY2hhciBidWZbMTBdOworLQl0aW1lX3QgcmF3dGltZTsKKy0Jc3RydWN0IHRtICp0aW1laW5mbzsKKy0KKy0JdGltZSgmcmF3dGltZSk7CistCXRpbWVpbmZvPWxvY2FsdGltZSgmcmF3dGltZSk7CistCWJ1ZlswXSA9IDA7CistCXN0cmZ0aW1lKGJ1ZiwgMTAsIFwiJWx4JWtcIiwgdGltZWluZm8pOworLQorLQlpZiAoIWJ1ZlswXSB8fCBidWZbMF0gPT0gJ3gnIHx8IHN0cnN0cihidWYsIFwibFwiKSB8fCBzdHJzdHIoYnVmLCBcImtcIikpCistCQlyZXR1cm4gMTsKKy0JcmV0dXJuIDA7CistCX0iIEhBVkVfTEtTVFJGVElNRSkKKy0KKyAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICMgc3lzdGVtIG1haWwgc3R1ZmYKKyAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLS0gCisyLjE0LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAyLUZpeC1mb3ItYXV0b21ha2UtMS4xMi54LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAyLUZpeC1mb3ItYXV0b21ha2UtMS4xMi54LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZjIyMmFlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwMi1GaXgtZm9yLWF1dG9tYWtlLTEuMTIueC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLUZyb20gZjQ2NDIzYzllNGI4YjE5ZWRhMjdiMzA3NDU2YTcxN2RlNzliNzVmMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE5pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+Ci1EYXRlOiBTdW4sIDQgQXVnIDIwMTMgMDk6MTU6NDMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyLzVdIEZpeCBmb3IgYXV0b21ha2UtMS4xMi54Ci0KLUZpeGVkIHRoZXNlIGtpbmRzIGlmIHdhcm5pbmctZXJyb3JzCi0KLXdhcm5pbmc6ICdsaWJlYm9va2JhY2tlbmRmaWxlLmxhJzogbGlua2luZyBsaWJ0b29sIGxpYnJhcmllcyB1c2luZyBhIG5vbi1QT1NJWCBhcmNoaXZlciByZXF1aXJlcyAnQU1fUFJPR19BUicgaW4gJ2NvbmZpZ3VyZS5hYycKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1PZmYtQnk6IE5pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+Ci0tLS0KLSBjb25maWd1cmUuYWMgfCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggOWJkOTdkYi4uNDlkNzUwNiAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMzEsNiArMzEsNyBAQCBBQ19MQU5HKEMpCi0gCi0gZG5sIEF1dG9tYWtlIDEuMTEgLSBTaWxlbnQgQnVpbGQgUnVsZXMKLSBtNF9pZmRlZihbQU1fU0lMRU5UX1JVTEVTXSwgW0FNX1NJTEVOVF9SVUxFUyhbeWVzXSldKQotK200X2lmZGVmKFtBTV9QUk9HX0FSXSwgW0FNX1BST0dfQVJdKSAjIHJlcXVpcmVkIGJ5IGF1dG9tYWtlIDEuMTIKLSAKLSBkbmwgUmVxdWlyZWQgUGFja2FnZSBWZXJzaW9ucwotIG00X2RlZmluZShbZ2xpYl9taW5pbXVtX3ZlcnNpb25dLCBbMi4yOF0pCi0tLSAKLTEuOC4zLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAzLURpc2FibGUtV2Vycm9yLWZvci1hdXRvbWFrZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwMy1EaXNhYmxlLVdlcnJvci1mb3ItYXV0b21ha2UucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExODJkNGQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAzLURpc2FibGUtV2Vycm9yLWZvci1hdXRvbWFrZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLUZyb20gMzdiMjI3Y2ZmNzhmZDRjNjUyNjUxNjYyZGFmZDcxNTM3MjgwODI0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE5pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+Ci1EYXRlOiBTdW4sIDQgQXVnIDIwMTMgMDk6MTY6NTkgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAzLzVdIERpc2FibGUgV2Vycm9yIGZvciBhdXRvbWFrZQotCi1Bdm9pZCB0aGVzZSB3YXJuaW5nLWVycm9ycwotCi1hdXRvbWFrZTogd2FybmluZ3MgYXJlIHRyZWF0ZWQgYXMgZXJyb3JzCi1NYWtlZmlsZS5hbToxNTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1NYWtlZmlsZS5hbToyMTogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1hZGRyZXNzYm9vay9iYWNrZW5kcy9maWxlL01ha2VmaWxlLmFtOiBpbnN0YWxsaW5nICcuL2RlcGNvbXAnCi1hZGRyZXNzYm9vay9saWJlYm9vay9NYWtlZmlsZS5hbTo1NTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1hZGRyZXNzYm9vay9saWJlYm9vay9NYWtlZmlsZS5hbTo2NTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1hZGRyZXNzYm9vay9saWJlYm9vay9NYWtlZmlsZS5hbTo2Njogd2FybmluZzogc3Vic3QgLSxfLCQqOiBub24tUE9TSVggdmFyaWFibGUgbmFtZQotYWRkcmVzc2Jvb2svbGliZWJvb2svTWFrZWZpbGUuYW06NjY6IChwcm9iYWJseSBhIEdOVSBtYWtlIGV4dGVuc2lvbikKLWFkZHJlc3Nib29rL2xpYmVib29rL01ha2VmaWxlLmFtOjcyOiB3YXJuaW5nOiBwa2djb25maWdfREFUQTotJChBUElfVkVSU0lPTjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLWFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svTWFrZWZpbGUuYW06Mjogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL01ha2VmaWxlLmFtOjM6IHdhcm5pbmc6IHN1YnN0IC0sXywkKjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLWFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svTWFrZWZpbGUuYW06MzogKHByb2JhYmx5IGEgR05VIG1ha2UgZXh0ZW5zaW9uKQotZ2xpYi1nZW4ubWFrOjk6IHdhcm5pbmc6ICclJy1zdHlsZSBwYXR0ZXJuIHJ1bGVzIGFyZSBhIEdOVSBtYWtlIGV4dGVuc2lvbgotYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay9NYWtlZmlsZS5hbTo1OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjEzOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svTWFrZWZpbGUuYW06NTogICAnZ2xpYi1nZW4ubWFrJyBpbmNsdWRlZCBmcm9tIGhlcmUKLWdsaWItZ2VuLm1hazoxODogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL01ha2VmaWxlLmFtOjU6ICAgJ2dsaWItZ2VuLm1haycgaW5jbHVkZWQgZnJvbSBoZXJlCi1nbGliLWdlbi5tYWs6MjY6IHdhcm5pbmc6ICclJy1zdHlsZSBwYXR0ZXJuIHJ1bGVzIGFyZSBhIEdOVSBtYWtlIGV4dGVuc2lvbgotYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay9NYWtlZmlsZS5hbTo1OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjM4OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svTWFrZWZpbGUuYW06NTogICAnZ2xpYi1nZW4ubWFrJyBpbmNsdWRlZCBmcm9tIGhlcmUKLWdsaWItZ2VuLm1hazo0MTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL01ha2VmaWxlLmFtOjU6ICAgJ2dsaWItZ2VuLm1haycgaW5jbHVkZWQgZnJvbSBoZXJlCi1hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL01ha2VmaWxlLmFtOjg2OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svTWFrZWZpbGUuYW06MTAxOiB3YXJuaW5nOiBwa2djb25maWdfREFUQTotJChBUElfVkVSU0lPTjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLWNhbGVuZGFyL2JhY2tlbmRzL3dlYXRoZXIvTWFrZWZpbGUuYW06NDQ6IHdhcm5pbmc6ICclJy1zdHlsZSBwYXR0ZXJuIHJ1bGVzIGFyZSBhIEdOVSBtYWtlIGV4dGVuc2lvbgotY2FsZW5kYXIvbGliZWNhbC9NYWtlZmlsZS5hbTo1Mzogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1jYWxlbmRhci9saWJlY2FsL01ha2VmaWxlLmFtOjYxOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVjYWwvTWFrZWZpbGUuYW06NjI6IHdhcm5pbmc6IHN1YnN0IC0sXywkKjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLWNhbGVuZGFyL2xpYmVjYWwvTWFrZWZpbGUuYW06NjI6IChwcm9iYWJseSBhIEdOVSBtYWtlIGV4dGVuc2lvbikgY2FsZW5kYXIvbGliZWNhbC9NYWtlZmlsZS5hbTo2ODogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1jYWxlbmRhci9saWJlZGF0YS1jYWwvTWFrZWZpbGUuYW06NTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1jYWxlbmRhci9saWJlZGF0YS1jYWwvTWFrZWZpbGUuYW06Njogd2FybmluZzogc3Vic3QgLSxfLCQqOiBub24tUE9TSVggdmFyaWFibGUgbmFtZQotY2FsZW5kYXIvbGliZWRhdGEtY2FsL01ha2VmaWxlLmFtOjY6IChwcm9iYWJseSBhIEdOVSBtYWtlIGV4dGVuc2lvbikKLWdsaWItZ2VuLm1hazo5OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjEzOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjE4OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjI2OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjM4OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjQxOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotY2FsZW5kYXIvbGliZWRhdGEtY2FsL01ha2VmaWxlLmFtOjcxOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4Njogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1jYW1lbC9NYWtlZmlsZS5hbToxNzogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1saWJlYmFja2VuZC9NYWtlZmlsZS5hbTozNTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1saWJlYmFja2VuZC9NYWtlZmlsZS5hbTo0MTogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1saWJlZGF0YXNlcnZlci9NYWtlZmlsZS5hbTo5MTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1saWJlZGF0YXNlcnZlci9NYWtlZmlsZS5hbTo5Nzogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1saWJlZGF0YXNlcnZlcnVpL01ha2VmaWxlLmFtOjEwODogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1saWJlZGF0YXNlcnZlcnVpL01ha2VmaWxlLmFtOjExODogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1zZXJ2ZXJzL2dvb2dsZS9saWJnZGF0YS1nb29nbGUvTWFrZWZpbGUuYW06Mjc6IHdhcm5pbmc6ICclJy1zdHlsZSBwYXR0ZXJuIHJ1bGVzIGFyZSBhIEdOVSBtYWtlIGV4dGVuc2lvbgotc2VydmVycy9nb29nbGUvbGliZ2RhdGEtZ29vZ2xlL01ha2VmaWxlLmFtOjMzOiB3YXJuaW5nOiBwa2djb25maWdfREFUQTotJChBUElfVkVSU0lPTjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLXNlcnZlcnMvZ29vZ2xlL2xpYmdkYXRhL01ha2VmaWxlLmFtOjMxOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLXNlcnZlcnMvZ29vZ2xlL2xpYmdkYXRhL01ha2VmaWxlLmFtOjM3OiB3YXJuaW5nOiBwa2djb25maWdfREFUQTotJChBUElfVkVSU0lPTjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLXNlcnZlcnMvZ3JvdXB3aXNlL01ha2VmaWxlLmFtOjg1OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLXNlcnZlcnMvZ3JvdXB3aXNlL01ha2VmaWxlLmFtOjkxOiB3YXJuaW5nOiBwa2djb25maWdfREFUQTotJChBUElfVkVSU0lPTjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLWF1dG9yZWNvbmY6IGF1dG9tYWtlIGZhaWxlZCB3aXRoIGV4aXQgc3RhdHVzOiAxCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCi0KLVNpZ25lZC1PZmYtQnk6IE5pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+Ci0KLUNvbmZsaWN0czoKLQljb25maWd1cmUuYWMKLS0tLQotIGNvbmZpZ3VyZS5hYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggNDlkNzUwNi4uMWM4MDJmZiAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMjEsNyArMjEsNyBAQCBtNF9kZWZpbmUoW2FwaV92ZXJzaW9uXSwgWzEuMl0pCi0gZG5sIEF1dG9jb25mIC8gQXV0b21ha2UgSW5pdGlhbGl6YXRpb24KLSBBQ19QUkVSRVEoMi42MikKLSBBQ19JTklUKFtldm9sdXRpb24tZGF0YS1zZXJ2ZXJdLFtlZHNfdmVyc2lvbl0sW2h0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PUV2b2x1dGlvbi1EYXRhLVNlcnZlcl0pCi0tQU1fSU5JVF9BVVRPTUFLRShbZ251IDEuMTAgdGFyLXVzdGFyIGRpc3QteHogbm8tZGlzdC1nemlwIC1XYWxsIC1Xbm8tcG9ydGFiaWxpdHkgLVdlcnJvciBmb3JlaWduXSkKLStBTV9JTklUX0FVVE9NQUtFKFtnbnUgMS4xMCB0YXItdXN0YXIgZGlzdC14eiBuby1kaXN0LWd6aXAgLVdhbGwgLVduby1wb3J0YWJpbGl0eSBmb3JlaWduXSkKLSBBQ19DT05GSUdfTUFDUk9fRElSKFttNF0pCi0gQUNfQ09ORklHX1NSQ0RJUihSRUFETUUpCi0gQUNfQ09ORklHX0hFQURFUlMoY29uZmlnLmgpCi0tLSAKLTEuOC4zLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAzLWNvbnRhY3QtUmVwbGFjZS10aGUtTm92ZWxsLXNhbXBsZS1jb250YWN0LXdpdGgtc29tZXQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDMtY29udGFjdC1SZXBsYWNlLXRoZS1Ob3ZlbGwtc2FtcGxlLWNvbnRhY3Qtd2l0aC1zb21ldC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2RmYThiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAzLWNvbnRhY3QtUmVwbGFjZS10aGUtTm92ZWxsLXNhbXBsZS1jb250YWN0LXdpdGgtc29tZXQucGF0Y2gKQEAgLTAsMCArMSwyMDIgQEAKK0Zyb20gNGRmOGJkOGFlNDI1ODI4OTY2M2IyN2FmMTIwNzAyN2M3ZWUwNjM0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KK0RhdGU6IFN1biwgNCBBdWcgMjAxMyAwOToxMzoyNSArMDIwMAorU3ViamVjdDogW1BBVENIIDEvNV0gY29udGFjdDogUmVwbGFjZSB0aGUgTm92ZWxsIHNhbXBsZSBjb250YWN0IHdpdGggc29tZXRoaW5nCisgbW9yZSBhcHByb3ByaWF0ZQorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCitTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CistLS0KKyBzcmMvYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay94aW1pYW4tdmNhcmQuaCB8IDE3OSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay94aW1pYW4tdmNhcmQuaCBiL3NyYy9hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL3hpbWlhbi12Y2FyZC5oCitpbmRleCA3ODJkMzdiLi41YjBiMjUwIDEwMDY0NAorLS0tIGEvc3JjL2FkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2sveGltaWFuLXZjYXJkLmgKKysrKyBiL3NyYy9hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL3hpbWlhbi12Y2FyZC5oCitAQCAtMSw4MCArMSwxMDUgQEAKKyAjZGVmaW5lIFhJTUlBTl9WQ0FSRCBcCisgIkJFR0lOOlZDQVJEXG4iIFwKKy0iWC1FVk9MVVRJT04tRklMRS1BUzpOb3ZlbGwgWGltaWFuIEdyb3VwXG4iIFwKKy0iQURSO1RZUEU9V09SSzo7U3VpdGUgNTAwOzggQ2FtYnJpZGdlIENlbnRlcjtDYW1icmlkZ2U7TUE7MDIxNDI7VVNBXG4iIFwKKy0iTEFCRUw7VFlQRT1XT1JLOjggQ2FtYnJpZGdlIENlbnRlciwgU3VpdGUgNTAwXFxuQ2FtYnJpZGdlXFwsIE1BXFxuMDIxNDJcXG5VU0FcbiIgXAorLSJURUw7V09SSztWT0lDRTooNjE3KSA2MTMtMjAwMFxuIiBcCistIlRFTDtXT1JLO0ZBWDooNjE3KSA2MTMtMjAwMVxuIiBcCistIkVNQUlMO0lOVEVSTkVUOmhlbGxvQHhpbWlhbi5jb21cbiIgXAorLSJVUkw6aHR0cDovL3d3dy54aW1pYW4uY29tL1xuIiBcCistIk9SRzpOb3ZlbGw7WGltaWFuIEdyb3VwXG4iIFwKKy0iUEhPVE87RU5DT0RJTkc9YjtUWVBFPUpQRUc6LzlqLzRBQVFTa1pKUmdBQkFRRUFSd0JIQUFELy9nQVhRM0psWVhSbFpDQjNhWFJvXG4iIFwKKy0iIElGUm9aU0JIU1UxUS85c0FRd0FJQmdZSEJnVUlCd2NIQ1FrSUNnd1VEUXdMQ3d3WkVoTVBGQjBhSHg0ZEdod2NJQ1F1SnlBaUxDTVxuIiBcCistIiBjSENnM0tTd3dNVFEwTkI4bk9UMDRNand1TXpReS85c0FRd0VKQ1FrTUN3d1lEUTBZTWlFY0lUSXlNakl5TWpJeU1qSXlNakl5TWpcbiIgXAorLSIgSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeS84QUFFUWdBYmdCa0F3RWlBQUlSQVFNUkFmL0VBXG4iIFwKKy0iIEJ3QUFBSURBUUVCQVFBQUFBQUFBQUFBQUFBSEJRWUlCQU1CQXYvRUFFWVFBQUVEQXdFRkJnTUVCZ1FQQUFBQUFBRUNBd1FBQlJFR1xuIiBcCistIiBCeEloTVdFVElrRlJjWUVVa2FFSU1rTEJGU05Tc2JMUkZtSnlkUmdrTXpZM1EwUkdncEtUb3NMaDhQL0VBQnNCQVFBQ0F3RUJBQUFcbiIgXAorLSIgQUFBQUFBQUFBQUFBRUJRSURCZ0VILzhRQUxSRUFBUU1DQXdZR0FnTUFBQUFBQUFBQUFRQUNBd1FSRWlGUkJSTWlNVUZoTW5HQmtiXG4iIFwKKy0iIEhSQnNFVW9mRC8yZ0FNQXdFQUFoRURFUUEvQUgvUlJSUkVWd1hlOVcyd3dGemJwTlppeGtjMXVxd1BRZVo2Q29IWGV2TGZvbTFkc1xuIiBcCistIiA5aDZhNkQ4UEdDc0ZaSE1rK0NSNG44Nnl6ZGJycWZhWnFZQlNucDBoUlBaTW9HNjJ5bm9PU1IxUHVhOExnMFhQSmVnWDVKdjZrKzBcbiIgXAorLSIgYkJqcld4cDIyTGxrY0JJbEhzMEhxRWppUjY0cGVUOXVtdXBxeVdyaEhocFA0V0k2ZUh1cmVOVzdUbXcrREdhVEkxRkpWSmR4a3NNXG4iIFwKKy0iIHFLRzA5Q3JtZmJGTUNIcEN3MnhBVERzOEpySDRneWtxK1o0bXFpZmJNVVpzeHBkL1FVbGxLNTNNMlNDYjJ4YStiWHZmMGdjVjBVd1xuIiBcCistIiAwUi9EVmt0SDJoZFV3bHBGeGpRcmcxNDkwdExQdU9IMHB2djJxRTRqZGNoeDFwOGxOQWo5MVZhODdPdE0zUkN0KzJOeDNEeWNpL3FcbiIgXAorLSIgeVBZY0Q3ZzFFWitSUjRyU01JOWIvUzJtaGRiaEtzbWtkdFdtTlR1TnhuWFZXMmN2Z0daUkFTbytTVjhqNzRQU21PbFFVTXBPUldQXG4iIFwKKy0iIE5VN01yalkwcmxRRm1kRFR4T0U0Y1FPbzhSMUh5cWUyWjdaSjJtMzJiWGZIbkpWcEpDVXVxTzh1UDcrS2VuaDRlVlhrRlJGVU14eFxuIiBcCistIiBHNFVPU04wWnM0TFUxRmVFT1d4T2l0eVl6cUhXWEVoU0ZvT1FvSGtRYTk2M3JCRkZGRkVSVWRmcjFFMDlZNWQxbXIzWThac3JWNW5cbiIgXAorLSIgeUE2azRBNm1wR2tMOW9qVXltMFcvVHJMbUFzR1UrQWVZQndnZlBKLzRSUkVxcnJjYjF0SjFvVXBCWExtT2JxVVo3clNCeVQwU2taXG4iIFwKKy0iIEo4emsxcEhRbWlMWG8renBiYWJDM1NBcDU1UTd6eXZNOVBJVXVkaUdtVVJiUzdmcENNdnpGRnRvbjhMU1R4eDZxSDBGTTdWVjlWWVxuIiBcCistIiA5TXpaN2FRdDV0QVN3MysyNm9oS0IvekVWU1ZGVnZaekdNdzAydHFlL2twYkk4TE1SNi9DL1h4cTlRYWdmYmJQK0lXMVFRNFJ5Y2ZcbiIgXAorLSIgeG5jSFJBSUovckVmc211MmE5RmdzbDJYSVpqdGo4YnF3Z2ZNMSs5TDJWRmtzRVNBVjlvNmhHODg2ZWJqcWp2TFdlcFVTYXJ1dGRuXG4iIFwKKy0iIE1YVitvYlJjWmtzL0N3Q1E1REtNcGVCT1R4end6Z0E5S3dmVHRmeFBPU0I1R1FVWGM5cE9qb0MrelhlMkhWNXhpT0M2UG1rRWZXcFxuIiBcCistIiB4ZTZ0QVdnaFNWRElJT1FSWHhla05PeDRiMFdQWllMTFRyYW0xOW13bEpLU01IampOVXpRZDJkWk03U054Y3pjTE9zdHRxVnpkWXpcbiIgXAorLSIgM0Zld0k5aUtwSzJtak1aZEZlN2VkOU5mVDlxWkRJNE9BZDFWa2tvNTBuZG91aTIya3VYcTJOQk9POUpaU09IOXNEOS96ODZjOGdjXG4iIFwKKy0iIERVSk5RbGFGSlVrS1NvWUlJNEVWR29LcDlQSUh0OWU2bHlSTmxaaGNxbHNKMmd1UXB5ZEwzRjRtTzdrdzFLUDNGY3lqMFBFanJuelxuIiBcCistIiByU0FJSXlPVllmdnNKM1RHcWxDS3BUZll1SmZqTEhNRE9SOGp3OXEyRm95K28xRnBXQmNrWS9YTXBVb2VSeHhIc2NpdS9qZUpHQjdcbiIgXAorLSIgZVJYUHZhV3VMVDBVL1JSUldheFFlVlk4MngzQlZ3Mm9YYkp5aGdvWlIwQVFNL1VtdGhLKzZmU3NXYlJRVzlwVjczeC90WlB0d05FXG4iIFwKKy0iIFdqOU53MFd1d3dJS1FBR0k2Ry9jQVordFJXMGx4NW5URVc0TnRxZGF0OXhqeTVDRWpKTFNGWlA1SDJxYVlkQ2twVWs1QkdRYTdBcFxuIiBcCistIiBEclNtM0VwV2hZS1ZKVU1nZzh3Ulh6K2txeXlURzdWWFVzVjIyQ2xyZmM0OCtDek1pUEllanZJQzIzRUhJVURYTmU3OWI3SGJYYmhcbiIgXAorLSIgYzVTSThadm10WjVueUE1azlCUzdkMG5mZE1QdVNkRDNKdEVaYWl0ZG9tNVV6bngzRHpUNmNQV2t2cS9WMTYxMWZHVzVuWnRCQ2d5XG4iIFwKKy0iIHpGYlhodEN5Y0U1SnhrbnhQaFhSMDdSVWVCM0QxMUgrOWxBZndjeG1ycnFMYnhjSHBpa1dHQXcxRlNjQnlVa3FXdnJnRUJQcHhxaVxuIiBcCistIiB6dGRYV2RxbU5xSUlqeDdneWtKVXBoSkNYQU0vZUJKNWc0UFFDbUJaTmlES1dFdTM2NHVGMGpKWWg0QVQ2cVVEbjJGVnU2YlBJa1RcbiIgXAorLSIgYVRCMDh4S2VNT1UySDk5ZUN0S1J2WkdRTVo3aHdjZU5aeFZHenNibU16SUJ2NWRmTmVPam5zQ2RVd2JUdEtzVjhuSmdJY2Naa3F3XG4iIFwKKy0iIGxKY1RoRHF2Skp6OHM0elV0TFZ6cGMydlpaS3QrcUJJa3lVS3QwVjBPTktTZSs3ZzVTQ1BEcjlLdjB0em5YUDFjTk15UWZ4blhCQ1xuIiBcCistIiB0cVV5dUIzZ3NsZnRQakpMa0dXQjN1ODJvL0lqODZiZjJlN2lxUm94eUlwV2ZocEMwSkhRNFYvNUdsVnRKY0J0MFJQaVhpZiswMHdcbiIgXAorLSIgUHM1QlF0TnhQNFRKUDhLYTZyWlpKcFczNy9LcTY4QVRsUGVpaWlyQlEwSGxXUjl0OXFWYnRwRXAvZHdpWTBoNUo4TWdicC9oK3RhXG4iIFwKKy0iIDRwTTdmZEtMdW1uMnJ4R2JLbjRCS2w0SEV0bjczeXdEN0dpTDdvMjhKdXVsTGJLQ3NxTEtVTC90SjdwK29xeUllNGM2Ukd5elU0Z1xuIiBcCistIiBUSExOSmMzV3BDdDlnazhBNTRqM0dQY2RhWnVvb3N5ODJWMjNRcGFZcGtFSWRlSUpLVWVJQUhpZVhQa1RYQTExRHVhc3NKc0NlZllcbiIgXAorLSIgL1N2WVpONUZpR1pVOWVkUndMREFYSm55Mm1SdWtvU3RRQldRT1FIalNqZzdQWUU3Wm16Y1piN2NHNktLNUNaRDZ0eE9DY0pRdlBnXG4iIFwKKy0iIFFBUWZBbjJxNlJOT1dpMUQ5SjNSNWR3bFIyeG1aUFZ2OW1sSThCeVRqNTlhcjA5TG0walVJUWw1WTB6QVVNclFTUGlYZkhIcHl6NFxuIiBcCistIiBEMXFUUnZNUUlpZVFBUVhPdGxsZklEcmUvWDJXcVZtSThRejZEOXEwYlA5U08zN1NyU3BXOFpVVlh3N3ErWWNLZVNnZVJ5TVo2NXFcbiIgXAorLSIgcWFtbXZXVGFsRXYxeWpPSnRhV2ZoMjVDQnZCT1VrSFBseFVlSGx5cS9NaVBDaXR4b3JTR1dHMDdxRzBEQVNLNDV4Wmx4M0dKRGFIXG4iIFwKKy0iIFdsakNrTEdRUjZWR2luWTJvZklHOExyaTJnT2kzN2h4WUczekMrdVQySFk2WkRieUZNckFVbHdLN3BCNUhOUmNwN254cXB6ZE4zR1xuIiBcCistIiBDRlE3Tk9iVGEzbkFwY2FTTi9zdU9lNFNEdzZWSzNPNHN3b2pzcDlXR214azlmSURyVzRVeldrYnQySy92NjkxdmplYzhZdFpVVGFcbiIgXAorLSIgQkwrSXVNYUlqaVdXeXRYUW4vd0JENjA4dGd0clZDMFcyK3RPRlNGcWQ5aWNENkFWbm1GRmw2bjFBaG9BbVJQZHdjZmdSNG4ySDdxXG4iIFwKKy0iIDJQcGkxTjJleFJvamFRbEtFQklIa0FLN0dtaTNNVFdhTG42aVRlU0YrcW1hS0tLM3JTaXVlZEVhblEzSTdxUXBDMGtFRVp6WFJSUlxuIiBcCistIiBGam5hUm9TVm9xL0tjWVF2OUhPcjNtSEIvcXp6M1NlbmhWaTBmdEFibk5Od0xvNkc1aVFFb2RVY0pkOWZKWDc2MFpxTFRrSFVkc2RcbiIgXAorLSIgaFRXRU90dUp3UW9WbC9YR3lTN2Fha09Qd0duSmNET1J1akswRHFQSDJxSlYwY2RVekMvME9pM1FUdWhkZHFZODRJdUZ1a3duRkZLXG4iIFwKKy0iIEpEU21sRWN3RkRHUjg2SVNJMXRndFE0allhWWFUdW9TUC91ZEpTMWF6dkZvQVpMbmJzcDRkbS9rbFBRSG1LczBmYVZFV2tmRXczMlxuIiBcCistIiAxZjFDRmo4cTU2WFpOU3dZRzV0N2ZTdDQ2eUI1dWNpbU01TDRjNjQzcFhXcVU1dEN0ZU1wUktVZklJSDg2aXBtdm5uQVV3b1FTZjJcbiIgXAorLSIgM2xaK2cvbldFZXk1eWZDdHJxdUJvOFN1MCs0c1E0NnBFcDFMVFNlWlVmb1BPbG5mcjY3ZlpLUWxLMFFrSy9WdGZpY1Y1bnJYT2tYXG4iIFwKKy0iIFhVazlLUUhwMGduZ2hJN3FQeUFwMWJPZGtDbUgycm5lUUhIeHhRakhkYjlPdldyMmoyYzJEaWRtNzRWWlZWcGxHRnVRWFJzYzJmT1xuIiBcCistIiBRZ2IxY21zU1hRTjFKSCtUVDREK2RQRUFBQURrSzg0OGR1TXlscHBJU2tER0JYclZrb0NLS0tLSWlpcXJyYlg5bTBKQVJJdWExcmVcbiIgXAorLSIgZEpETWRvQXJjSTU4K0FBOHpWTHNPMjZScWlTOUdzdWtwY3Q1bEhhS2JUTGFTcmQ4d0ZFWjlzMFJONnZHUkdaa3RsRHFBb0h6RktxXG4iIFwKKy0iIEp0b216clBPdXpHalp2d0VCUlRKZmNrdHRwYlVPYWU5ako1Y0JrOFI1MTRXcmJvN2U0ODkrM2FUbHZ0UUdUSWtxRWxzZG0yTWtxNFxuIiBcCistIiA0enlQS2lLZjFIc2owOWZsS2RYRVFoNC9qUjNWZk1VdkovMmV0MVpNT2U4a2VTZ0ZmeXF6MkxiZkoxTTlJWnMya0pzeDJPMFhuRU5cbiIgXAorLSIgeUVBaEE0WndjWjU4aHhyN1pkdGt2VVM1U2JUbzJmSk1Sc3VQa1BvU0cwanpLc0RQUGh6NEh5b2lwRGV3QzQ3K0ZYRldPallINTFZXG4iIFwKKy0iIGJUc0FndHJTcWM4OC9qd1dyQStReFVsWXR1anVwWjZvTm8wbkxsU1V0cWRLRXlXMDRTTVpPVllIaUtqUDhBQ1V0NS93QjNwWC9YVFxuIiBcCistIiAvS2lKbldMUTFuc1RTVVJvcmFkMzlsSUZXWktVb1RoSUFIU2xOcURiTFAwc2lLdTk2TW5RMHlnU3lWeUd6dll4bmxuQjRqZ2E4N0ZcbiIgXAorLSIgdHRsYW1YSmJzMmo1MHhjWnZ0WFV0eUVaQ2ZQQjUrZ3lhSW05UlNldG0zSjY4UmJoSmdhU21QTTI1dnRaYXZpVzA5a25qeElPTThqXG4iIFwKKy0iIHk4cTdMSHR6c3R3di9BT2hybEJmdGtrdWRrRk9MUzQzdjV4Z3FTZUhIeDVkYUltclJYNVF0SzBoU1RrR2lpTE1QMmhvOHdhMWlTblxuIiBcCistIiBRb3hWUlEyMGZBS0NsRlE5ZUlxcTdMTEplN3ZyZUc3WlpDb1pocUQ4aVpqdXN0am5ud09Sa1k4YytXYTFacWJTdHQxUEJNYTRNSWRcbiIgXAorLSIgUno3d3pnK2RMOGJFYkExdnBhN1J0SytDa3BkV0FmWGpSRkI3VXBDTmU2S2RtNk5uSmZ0MXFsdUt1VUpsdmRLem5QYllIM2h6UFhKXG4iIFwKKy0iIFBNR3Fac2svemMyZ2YzRzUvQ3VtYzNzUnNUTzkyUmNiM3VCM1hWalAxcjRqWWZZR3dvTjc2UXNZVUV1ckdSNUhqUkV1ZGhVdDJCUFxuIiBcCistIiAxVE1ZSUQwZXl1dW9KR1J2SklJK29xOTZJMml3dFZ6N3JiN1paV2JhbHl6eUo5d0tVakxzcktFa2pINGNFOCtKejA0OWJldyt3TmJcbiIgXAorLSIgM1o3Nk40WU82NnNaSGx6b2IySDJCa2t0YjZDUmdsTHF4a2VYT2lKWmJBdjlJTWorN1gvd0I2YWc5bEduRWFqMTdDUkpBK0JoWm15XG4iIFwKKy0iIGxLKzZFSTQ0UFFxM1I2RTA2VzloOWdaVnZOYjZGWXhsTHF3Y2ZPaHZZaFlXdDdzOTlHOE1LM1hWakk2OGFJbzdVeGdiUjlJYWpoUVxuIiBcCistIiA3L0R1OXlpU0YzUzN0TU5yU3Rsa0FBdDk0RFBESTRlSkZVdllmTmV0cU5ZejR4QWZqV1p4NXNrWkFVbkpIRDFGTVZyWWhZV1ZieldcbiIgXAorLSIgKzJvakdVT3JCeDg2RWJEN0EwRkJ2ZlJ2REN0MTFZeVBJOGFJbzIzemRQNmkyZTYyMVRhVUppWENmYTFJdWNGUEp0NUtWbmZIUldTXG4iIFwKKy0iIGV1UFBOWjJZYWRma05zc3BVcDFhZ2xDVTh5VHlyVFNOaDlnYkNnamZTRmpDZ2wxWXlQSThhbDlQYkl0UDJXYW1VeXdrdUo1S09WRVxuIiBcCistIiBlbWVWRVZ3MDJaSDlINFlrRXFkRFlDaWZFNG9xWGJhUzAybENSaElHQlJSRi8vWlxuIiBcCisrIlZFUlNJT046My4wXG4iIFwKKysiRk46WW9jdG8gUHJvamVjdFxuIiBcCisrIlVSTDpodHRwOi8vd3d3LnlvY3RvcHJvamVjdC5vcmcvXG4iIFwKKysiRU1BSUw6eW9jdG9AeW9jdG9wcm9qZWN0Lm9yZ1xuIiBcCisrIlRFTDtUWVBFPVZPSUNFOiswMCAwMDAgMDAwIDAwMDBcbiIgXAorKyJBRFI7VFlQRT1IT01FOjsxNzIwIEJlYXZlciBDcmVlaztEYW0gIzQ7UGxhbmV0IEVhcnRoXG4iIFwKKysiTEFCRUw6MTcyMCBCZWF2ZXIgQ3JlZWtcXG5EYW0gIzRcXG5QbGFuZXQgRWFydGhcbiIgXAorKyJQSE9UTztFTkNPRElORz1iOmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHUUFBQUJrQ0FZQUFBQnc0cFZcbiIgXAorKyIgVUFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFBbHdTRmx6QUFBTEV3QUFDeE1CQUpxY0dBQUFGRTlKUkVGVWVKenRuWG1RSE5WOXh6XG4iIFwKKysiICt2ZTg2ZHZVL3RhblVpQ1Z3UlF1YUloU0VPTXNJaUVzYkdSdGlWR0Z5NEVzZFU0YklOT0lDUFV0a1FIT3hnWW9pRFRWSnhDQml3TVxuIiBcCisrIiBDQnhCakFsc0lVbEVReklTQWhaTjVKVzJsM3R2Yk56OUpVL2Z1L043Q3dnVnF1Vm1FcjE5NC90N2VudTk3cDczdmY5enZjYkNCRWlcbiIgXAorKyIgUklnUUlVS0VDREg1VUIvMERZd1h3WnYvTWg4QUszSVNnQnM0QXdBUjI5b0N3TndGZlFCS0xYWS9tRHVjSEZnZjlBMkVLRVhaTWlUXG4iIFwKKysiIFlkdGRVQURmZitRQ0E1US85QlFCK1hrN3c5YTI3dnB4UDhnMEFPOUo0SVlBNjQvcU9FM20vazRXUUlXV0dzbUpJL3EwZm4yUCt0NVxuIiBcCisrIiB6ZXJ3RllESzBBQ0FnQ0FNc1hSdUNMcVBEVFE3THZCZ29nU0RZOERPRFdMdmd1UU9Ma3Y5dDZRbTUra2hBeXBNd1FmaUZsaGttWnNcbiIgXAorKyIgdlkvOXJPekFYSzU5RWtBRWM4N0JERDljOTljQzZDVTh0N3R1bUQvUFEwQS91Q09Id0Y0Vm02cE9XYm5jMjBBbHZJRE9UblFGOG5VXG4iIFwKKysiIGhKT1QzWFEvQUs3anlKUldVU1hISXcxdkFRUVYwNzhCRUoxLzdmOU13cU1lZDRRTUtUTk1pQ0YvdVAvT05nQzdZL09EQUY1MllDRVxuIiBcCisrIiBBcmhjQndNSURpTVppTGtBc1ZYOGZ3Q2xmdmZPckFMbGRkNXdHWUdlNkhnUlFRZnBrQUJYeGkvZmpDS2tDWDZpaHRKNnJ0RkFQOGlcbiIgXAorKyIgTnkzbkFmQUo0ZGsvT2lDUUJzWlNuNXZMb1hJSithZXpWQXhmeHZQRENSWno1UkNCbFNacGdRUXpiZStxWHpBWUxjd0FNQWdSTTBBXG4iIFwKKysiIFVUUTA3MlNmNkpLbW84SFdRVmdOU2M3QVU2K1lHNEFFTGlaS1hJVElpYzhnc0w5Mko1dXl6WGl4ekJHYngxdElBNzN5SU1rSzJWclxuIiBcCisrIiB4L1I1Y2c5S2FYVTQwZ0NBSDIvL2xPa2pzbTNXa3dCOTdLb0V5T0hVQTJUVHc5SjVVME1Xd05tNXJ3OWczdGZ1ekIzbHF6cHFoQXdcbiIgXAorKyIgcE0wUW1jbEUwa25JQnZPeXdEK0FwQjRCQUcydTJFbW9Fbm53K3hFQUFzT0REN1MwQXVHTE1LWlJSbllSQlJwTUNmTU1NTFROVUlQXG4iIFwKKysiIHZLYzB1MldQb2FTeitLYmV1UFBRWGdlOEkrNVhlTERBcXNYNWsrT25LN2J3SndlNTBiQUhMWmZCV0FvOXYyRG5mSzNkbnh0UUN2M1xuIiBcCisrIiB2SDFXd0IyVFBub1dvRExMcnZzWGJYSFkwSElrRExEaEJoaXp6eDFKNEM3dFhjWVFBVk9DNEN0UllBVnlLaDIvRFFBODg2Wm9RQVNcbiIgXAorKyIgVlZHZ2FFcW9zVEpzRkVPVU44YUp5TmpCNkpkZVkrbXhGWlEycVN3dFF6dzUwYzRlU0poalVXL3dId0YyNzVPK1VwWDFJdHMwdzcyXG4iIFwKKysiIDg4ZVNQTEFad29pTWZBV2oxMTMxYUgzaU9TVWJJa0RMRGhCaHkybWUvdkI5Z3cyMVhQUVFRSDh6Y0FPQXJtZEFESjZNQXBwNVNCMFxuIiBcCisrIiBEMWxLcVM2d3RqT0RCR3VMWXQvRkd4SlNNN2ZETm1nbEYvUVJrZm8yYU9SZWw1Wmx2c3k5Tk1LZmJSMENMWEpQWklHNDRuNTFoS1BcbiIgXAorKyIgbmNMZmNwKzNza25BTHhNdW5ic081a3NoQXdwTTB5SUlRYUxycjNyUm9EMXQxNVpCNUFZNnZ4N2dHaEtSbHhOZTYxb09MWXRvMU5mXG4iIFwKKysiIEYyaG1LRS9MQlROcU5WTmdsUDNoeXZ5dUN0Zkl2bS9jWXlxcHQ3WStUMnQ4WTVsU3Vxc3ZFZjYwejRnRDhNYXJZdlZYMVdpYlJaL1xuIiBcCisrIiBzYUhubHFPUVdnRmpEekZmZSs2MGNHMEtHbEJrbU5VQzEvdDlYbmdmUTFuVGcxd0RUWjlqaXpTM00yM3A0K3FaejNYMUV4b1d5N0VcbiIgXAorKyIgSmJnWEh5YXUxSkcvMG9mMHhidW8zQTFaOTdwWlo5Z1gzdW1DMmdIUVJraHJJQXZMeGVMSFRiRW9ZWVpudFdiQmpBcjV0NkhjREhyXG4iIFwKKysiIDczOTUwZDREY2VFa0NGbGhtT1NJV094Nkx3cW1ZeXpOZFVBWHJhdjVMaXlwVHNWRTM5VHdZWXdFN3czeWc3Um1vN1J0Z2pNeURmWFxuIiBcCisrIiAySHJQN0JzbUdjMUlVOHBZOHJicHNpaW5ESXRpQ2ZFVTE5YUx6ZExaS1l4SlZOYnRBbkFxNjM4Q2NNRnhaSVpCeUpBeXc2VElrR0RcbiIgXAorKyIgdmM3TUJ2TTVuTmdDb1lLQUpJTkREMWRJZVZ4UExBTkdFS1BpckhOUFNxRWFOdkRITVVLVmJZNW5iaGltYUlmcTRyNEl4VndXNnVWXG4iIFwKKysiIEVXdnlmM1kybFowdE5yZFFGczNoYjdLWUNUYUg0VTRJSnJiMy9qL2Q3QlpDRmtTSmxoVW1SSUx1Y2tBR0tEMlNZQW5Bd0FGbUw1WlxuIiBcCisrIiBqS1pBQ0NURmdzK095ekhzM2tKTHpnNjJTMmZMeExXMDh5d3RXeUl4dVJZTENHM1hCR1hiVlYxQlFDcFNuMnRsaFdXSGRWUEtHSXRcbiIgXAorKyIgTUhaS2lTRWliZmlhYlRYTkVsUDV5Mm1OandHb2o5eHl3cGhoRURLa3pEQXBERW5NVy9ZbVFHN0REeVMyUHNCWEFGN2RzUE5pZ0RlXG4iIFwKKysiIDI3bXNEQ0l6ZnlaWlJhK21SR1RFeGpGRVN6Vkt4a2o2TTFWendlM25DTWlmZnI5dVE0dzNWMG5aenN6VFdXQzk5TkRiSzZFOVdKZ1xuIiBcCisrIiB0dHFtaEM3STdLYXZGaHhXcWJBZHhJNVpTamZRZVRoWkFoWllid0N5a3pUS3BoR0Y5MDR5Yjk3MVVBdjFsNWhRUFEzdVpkTFoxSnRcbiIgXAorKyIgS25nWE5UK0VFdVpnRlZ4ZlBnRmhkVUlZYXRrejF6ckcvVllxN001VHhTRnZRZGxmOU4yMlIvSlNEaTJycW80TDg2Y0pwckF3dmwyXG4iIFwKKysiIEwwQkZXNjM0VldLUkQyeU5TY2lRTXNPa01zUmc2N3JWVlFERDY5YWNCb0NxMXU3M1VvZWc3NWU2UTd4UnJoTy80SWZVenNQUkhnK1xuIiBcCisrIiBLTEROWCtKYWNrTlRxYmp3cVI2cXJkTEJKRzZYNVVRR3EvZjM2MnIyVjF3Rjh0TDcxZndGaW5UTStzSXo1a0NGbGh1UENrTnhiVzJcbiIgXAorKyIgWUFKT3hZRzBDdnR0WWVmV1VuQUdmT3FBZmc5RmJaNXJYajBMT0w4N3V2S2VJYUVWSEl1ZFl1a0RIbktXMzRZUnRub3p4YWp6WkNhXG4iIFwKKysiIDVLaTdsYU0wcWFyNG5vbjBab0JpQy85NXVhSlBPOWtJbVJJbWVHNE1DVGlaV1lEeEpPUmFRRFBicFRsZnZzbEs0aFVwNHphczJiS1xuIiBcCisrIiBmQjl4U21VTEZJMUVJenNLM25odmpMTlJsVExINE0yREF3QThzV2svQU9kOXFBMkFEMCtyTDU2a1U0eWk1Qy9Xbnp3NDdvYzhUZ2dcbiIgXAorKyIgWlVtWTRMZ3l4TFc4dWdCOTRjWUFEZzdtU2xGRVROSXBvR25nNmRCdFJ4ZkhoYW9lamp1N2lHUVlZZDNzcElRcGFtUWxvZFE4S0MxXG4iIFwKKysiIDB0Vy9iM3lmNkhXb3BhVmtWU1pJaWJIVDdsNkoveStDQmtTSmxoVWhueXA2ZWVpZ1BrOXY1MkZrQlVCNkMweDV6K3JJemUyWTJTT1xuIiBcCisrIiBLZkdXT3lqMDBCTndvTUphcG5BazlMNmxUVkc3Smdvc0dGS2JVcTBLcytYNVFvWlI2L2E5WW9HamE5NUZuaE9KVUFRQkRGOVAvbWpcbiIgXAorKyIgZmZiSlFzaVFNc09rTWlUYTJha0EwazVPZk9DT2hHYVh6VzhIb0NjdCs2ZTMxd0NRMGRwVlhzc0xOZHIvcnVWSm9CbGlaSXJKQjFLXG4iIFwKKysiIDJEdGtXQnJ6OFkzU3cyVTNDd25rNjZOU2lBMW14YUhFTUtsOENhSzRublcxLytqNlRpQjB5SklSZ1VobXlaK1pNRjZCeXk1WnVLT1xuIiBcCisrIiBha1RhdVMrWHg2ald6TnFEYm1oeGZJdU9qdU9seG9LMW1SQXFENXpMTUJtRHAvQVFBZEw2NEZZSERQZGdCYzdadUt4b1dVUml0TGFcbiIgXAorKyIgYXQvK2Z4cFFISGtHYzh5Z0d1cVF5amxBc3hiZHZuZ0JCNmJUWnMydEFOWUZmRTVBUFBuTFB5RE9hYVVHanFhdGtLR2xCa21sU0dMXG4iIFwKKysiIEYwdXRxZzAvdmU0RkFLV2lWd1BrQTZjS0lIQjhuYXFwU3VJaVJ2TnBiR2dvdEdWa1FWV3JSRk5ycGs0SDRHQzdiTDBka244UVQxU1xuIiBcCisrIiBVM29SeFpXa1pGTGVNYkZIdmNBZDRudndmajlkTWFLbjBzOC9mZnpIQWE1czJyZ0Y0Zk5VYUFCb2FHM2FiYzM1ODY4ckxBSzY1L25cbiIgXAorKyIgdmpTdEFPR1ZKbU9DN1ZnRllHSWhUTy8rZHI3Z0RJRFhkK0NTRGllVW1BU0NGenV2UXU3RkZ0Rk9aOGJVM2JLZEhNUmdZbFBUV3FsXG4iIFwKKysiIDVzWkpjdkVPNHlaa2ROWkViNWVoT1BwNHprVktkajRxcUx1QllEUGZ1L3VqeC9OOHozeDlIMmZrcmJkVlFCNzN6NFlBM2p1OGFjRFxuIiBcCisrIiBnUDd1bnNKN2JablNsZ0dZZmZLc0N3RnV2ZTN1M3g2cDdaQWhaWVlUVWk5cnpjMWYvaTVBOThHM3Z3OVFveGYzVnlWRmhNVUxEcXZcbiIgXAorKyIgUmxycDhaaFZTUXNkRUc4ZkUxTTNXSzBRRzVleXNGK1FBUE10K0hjQ0pWajVpK3ZpYlcvN3pObmp2NGpqdmVJNDF2MWdFNE9GTFRTXG4iIFwKKysiIDdzTmdCbGk5OWdvSDlRQVR5Mytxa0NDL2RzMjZrQW1xYzBEd0VzWFhyUkpRQlhYM2Y5OCsvV1I4aVFNc054OGZZYUdOL1F2WGRkZFxuIiBcCisrIiBUN0F6cjFpQU8vYXVRY0ExeEdwWWV2UlBtOW1NWWt0RVpOWVNUSXFXOXNzM0RGTWNPVWFOeWVEZXlBdCs0UGErTEYwNGtoZVcvLzFcbiIgXAorKyIgN1czYkFTSm5ULzlYMDhkNG1mSExYOTgxRnlEdnVxS05SV3lkK0llK0Y2RjJNaVVhMytLTExpeFEvWW4wNmdCZ3NLdXJDdUIzdjN2XG4iIFwKKysiIHVoL3JRR2UvV1Y4aVFNa1A0aFpRWmpvdFFmK1dYUDI4RWNCUCt6d0NHNHNHbkFRYjZoeTJBN2wxYkZjQ2lPZ212YnU4V2o4WGF0NFxuIiBcCisrIiB2RmRtcnJxZ0ZJSkhYMUIxTVZWbWM5WkxLNmpzcVFUSU5idHN2K25zT3kvY3haY24wa0lWcEJxcVZPQWJUSHB6MW0rdmpLZC82dFVcbiIgXAorKyIgQm5vM2ZEb293OU1BM0M5WVVrQWpGcDFVSFQxZURyRElnaE10UWg5NFNnbmFXNUVWbVA5NnIvdWxSWEptWHdId0EvdnV2TjBnSVVMXG4iIFwKKysiIHora2EzV2ZJa0RMRE1USGs5ZisrTmdVUVQwZWFBRWFjM0pVQXZWMkh2ZzZ3cjNlZ0dtRDNpSXpxczViL0ZRQ1JFVW5yUENzaUF5K1xuIiBcCisrIiBibDFGMHk3cUJRdHRWemJMVXBMSkNDL1dvS0FDT05naEhSb1FKKzNkMUE5Q3hSNWd5TkNMSC8zeU9GQjQ2YzM0ckFOczZEd1lBRmZcbiIgXAorKyIgM0ZSU2dOemUxdkFjU1RrUnNBYWxNdFVyWjhTbnNHd0crczNnaGdSVzBwNm15cTIyblhqNmV0VU04a1hoZ2FCNk1Xb1VURnk5blhJXG4iIFwKKysiIFVSNDV1SEhmZ1R3OUF2ci8rR2RielJrU05saFFtcnZsdi80OWd5QTZORHc3UUQ1Yk44bEFQNndlSnJOaUxlYVdnS0F6dGUzSzRDOFxuIiBcCisrIiAvdjQ3QjJVQVJkTlNOM0hKS2NLQ2w5NHFFbmE3VHVhMElpYlpRYTZKYTg5SGhUWVlHNGZrZUkxT2ZxaE55U085OGJhRWJyZDNTcjVcbiIgXAorKyIgb2RWUm1nem5Wc2NMb2pYWHZQd1VnbjBpc0JoaXBFcGJWVG0wR1FOdXRPTm9MYWxuV0VXZVVJQ2hsRUlDbjFmRG1sdGJWOE43TU1BXG4iIFwKKysiIGdaVW1ZWU4wTjJyLzFGb2M1VWRzdHIzd0lnMTM4SlFLQVRDTnhBaHJFS1pDUTVWbElCWExya1BBQ2FEdTBEWU9mbUhRQU1XNUk1RlxuIiBcCisrIiAzeFk1dm1WRnhiNysvNGEwYmptYXRuUnBqUG1EdWRsZ0wrbzVWS1Z6bXFvVHNqeFhwMUNHdEdHcGFrRTBaZVRlencwVkpRaGxRbHBcbiIgXAorKyIgTzZtckdGSGZxQUEyYkpUNDB2d3pUcGY3bnRxcVE3MjYzdU9ZRktSZ1RPWjNhV0s0OVJpQVcydDlnWEVnWkVpWllkd002ZDM4WmlFXG4iIFwKKysiIEhNNTRmT2dQQXo0dW1rOG5MTU0yN2twdnBPVEpFTnEyWG1FeFNqNXp6VzhTMVVOOGoybFRQZEFtN1psNFRPMlQrMW1JSTk1OHFwSVxuIiBcCisrIiAyV0thSnREYytlQVVEdDFsMEEvRzFDMktVQ0dmbU5ta2tIdFVQK3FSSFpmMTNIaVd0MEZRbDNPRjNvdzYvWE5YNHJFckphV0FlNzlcbiIgXAorKyIgdTRRKzJqWDlyMEFYSEw1WmRKM2t3VFFYTE8rUGlqWm9IU3VVaENvOWFZUDIvYS9DbkRGMGl1S0hSOEJJVVBLRE9QWHNwTEZVR2ttXG4iIFwKKysiIEkzT3VuNVhSbWRhak1LMFpNNUFWYmFWclVPVEFxb3lNcUZQckpDVW4xeW8yd3V0L0V0Mjh0VU9PVndjRk1VV3RrUy9hWXU4K1l4RVxuIiBcCisrIiBBVFh0RURqVnJtUkJUSWl0U01XSEViSjFnbDlkMWZkZjN5M2s5U050V3R1Z05tSzNsajYwMW9iZ2VuaFZWY3A5OTNhS3ByYjUzRlFcbiIgXAorKyIgQ1hYaWxpSUZrdENSaWVYbUZrR2RQY3NnNENwSkkxMTVzK1ZueHl4ZHNjQlVLR2xCbkd6WkRUVHpxdjRITjVxWGZWaXdCWlY1MEpNXG4iIFwKKysiIEp5Unl0V0RPV0hJN2w1SmJONmFrZTk3ZDgxc2tURTFMUXJnMmtzL0JzQ1Q5ejBOd09ZK3NiYVhucnVnME4rZGEzNFB3RVU3SkdRN1xuIiBcCisrIiBjNzk0dm5kb1A5S2QvUkxTbmFiWG9YOXhrU1RqUGZ1YWVBRWU3aGRac2xXWmVyNXlYcktZN01EMm5oRUZVRjhoc2l6V0k5YjhTWE9cbiIgXAorKyIgbUs0QlgrNlJ2TnlzT3RHZFdQNmtBUG5ISjhnQWdrVXBxSDVicUFyRHR4T2NCVm54eXhlL2U4MFcrRDBLR2xCbkd6UkMxdVBoemRDXG4iIFwKKysiIC8rOU5zL0FSZ2VHSmdHMERHVVhRTFFQVEI4QUdCenQ1U3VQaGh0T0IzQXIydElBR3c0Sk14NS9oV3hRN3B5MHYzNlBnbnBMcG96dFxuIiBcCisrIiA5RGY3bVlaNlZjZjBybHJHWk1ZWWNLK3dvQWZ6Skg5dEMreTVPNEQwbFpYWElKZGtaU01mcy84UkZJdVU3QkR0ZzFrMGdEVkthY1hcbiIgXAorKyIgZ003TjB3RG1uSGxtTDhDZkxad2ZBL2pqeTVzcUFib1BDSU5lZW5hdEFqaDM2WkpCZ0dnc2NUbkFGeTc5d2hFVEdNYURrQ0ZsaG1QXG4iIFwKKysiIHk5cjY5NnJZa3dNK2ZXZjk1Z0cyNzluOE9vTE0vUFJXZ0k4ZkpBSjJwS1ZHQWtYcEplaXZRVW50TG5SSFJxTTZlMTFab2U1dGVrdFxuIiBcCisrIiBhVEx5MHVZSXppdU9RdXNFVGNUZ3hwTC9EdmU2VDFJS0szK2duamZRY0JhQm9wMmpxdEZYWmVONW9HVUw1YkJ6QjlTdVBOQUJkLzhcbiIgXAorKyIgWXUvQVhqdDVaY2ZBWGp6ajMrc0IxQlcwQWZ3aWVVWFhRbnd0V3UrczJZY3IydGNDQmxTWmpnbWh0ejA3ZXRPQXRqODZzYU5BRTVtXG4iIFwKKysiIHBCWWdsM2N0QUUvbjZneGxaVW5iem54S0FmUTB6QUlnU0lodFlHcjBXbjdSU1JRb1BlZnJ5dGFCK1hVRW5TSnFLbG1iS2tBbUxjalxuIiBcCisrIiBUbjFzNkNUdlpLM2JMOUx5SWljWlV0TkNKcmJNcnpISzV2RjRFV2xGVkdRQzB6NXAxR3NBNTV5dytBT0E3MmNVQTZlendhd0RYWEhcbiIgXAorKyIgUGpycU40WGVOQ3lKQXl3ekV4NUlwUGZmd0pBQytmV3dhUTFkWnpvTnROWnlVdU1xTGozM2tkRCs5MFJmTTVWSzEvVGlRcWxxL3lpXG4iIFwKKysiIHBFMlc3bU9mT1ptQUd4TkVVOVhDQWdzS3duZ1d6cnJ6cEtOMG5IdTZOQkJCVEF6SXpaT295NllHbzBVeDJDaHJLUGV1dHBHc1hXOVxuIiBcCisrIiAzcWJXMXVjQlZqMzY1SktqZnpzVFE4aVFNc09FSW9iZitQSmZud3JRc1hmM3FRQzVqS2hDdnY2Vm01ejJhYmxCYWNWcVN5OE5hTElcbiIgXAorKyIga1VoanBrL205WHpQRWloZnJYaXo3Mk1kdUJWaXg1TnlIQUpZdFc5WUY4TUlMTHpRQi9PU0J4eThDMkxaMzMwVUFuUU5EQ3dHQzlFXG4iIFwKKysiIEFLb0NVdjJsUzlEdnRGRERQVWFJWVlRaGJjdHZJY091NlJUNCtjZTNSdjV0Z1JNcVRNRUg0aFpZWUpUVm1lRTlRQStMNVVxalNyYVxuIiBcCisrIiBBTkxWL1h4U2pQU2k5KzdXVzByYm81cVc4NVBlcEwxb0xMRmNrQ25wT3hmQVN4ZnZuekxtTzQ3OVhZendMcDE2eDRDK09iMU56NENcbiIgXAorKyIgTUpUdldRQ1FpcHJxUURwTFh0K1Rza2I5SklhcFlsNVlBMTlhTjhWeDgvSDNleGVUalpBaFpZWUpNU1RyY3hnZzcwdUJ3K0lhRFRuXG4iIFwKKysiIHVqZDJhV2xkYXJUU1Y1Rnk5VHR3UHhFQ3JiNmo5amVuaitwdHVlaFBnaHB0dlB1SzlaTHE2K2dIc3dCVWRXN1BROVdTczJWclZEbVxuIiBcCisrIiB6ekcwa2xZMUJTUVkyRFpVeGxvVmk4WWtLcmNvOEZJVVBLREJOaXlKZXV1cndENEk1YmJ0OElNSkx1YmdmSVpYTVdqS3FYYUtyQ21cbiIgXAorKyIgYTFadUs1TE50VFUxaDhHYUcrZnRoTGcvb2NldXN2MG9WUXhrSFFrWFBDWnovUUEzSFBQUFNzQW5uN3k4U3NCZXJvT253dGc0eThBXG4iIFwKKysiIHlPZXo4cU9Samx1UUMrWUhKSDFmbGwxRjdVZ09JSmxLN2dPWVBtdnViWExtcFA4NjNuc2laRWlaWVZLV0k2eGMrYTJGQUh2L3RQMVxuIiBcCisrIiBjZ003T3ptcUF3TGRhQVJ6UDZRQ29iYWpyQTVnemErNUxBTGZlZnVKK0JzS2d0N2QzeHRqUDZ1cnF4UDJ1MU9GM1huRmlFVElrUklcbiIgXAorKyIgZ1FJVUtFK0grQy93TUdYOElhczFzNkNRQUFBQUJKUlU1RXJrSmdnZz09XG4iIFwKKyAiRU5EOlZDQVJEIgorLS0gCisxLjguMy4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwNC1jb25maWd1cmUtRml4LWxpYmljYWwtcGtnLWNvbmZpZy10cnlpbmctdG8tdXNlLWhvc3QtLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDA0LWNvbmZpZ3VyZS1GaXgtbGliaWNhbC1wa2ctY29uZmlnLXRyeWluZy10by11c2UtaG9zdC0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzODMzNDcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDA0LWNvbmZpZ3VyZS1GaXgtbGliaWNhbC1wa2ctY29uZmlnLXRyeWluZy10by11c2UtaG9zdC0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi1Gcm9tIDJjNzNiNTg4YjkwMThjYjU5YzY2NmVhZTNhMTVmYTFhZjQyYzU2YmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+Ci1EYXRlOiBTdW4sIDQgQXVnIDIwMTMgMTA6NTc6MDggKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA0LzVdIGNvbmZpZ3VyZTogRml4IGxpYmljYWwgcGtnLWNvbmZpZyB0cnlpbmcgdG8gdXNlIGhvc3QKLSBwYXRocwotCi1TaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+Ci0tLS0KLSBjYWxlbmRhci9saWJlY2FsL2xpYmVjYWwucGMuaW4gfCAyICstCi0gY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgIHwgMyArKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NhbGVuZGFyL2xpYmVjYWwvbGliZWNhbC5wYy5pbiBiL2NhbGVuZGFyL2xpYmVjYWwvbGliZWNhbC5wYy5pbgotaW5kZXggZmM2YjM1OS4uZDM0MzViYiAxMDA2NDQKLS0tLSBhL2NhbGVuZGFyL2xpYmVjYWwvbGliZWNhbC5wYy5pbgotKysrIGIvY2FsZW5kYXIvbGliZWNhbC9saWJlY2FsLnBjLmluCi1AQCAtMTIsNCArMTIsNCBAQCBEZXNjcmlwdGlvbjogQ2xpZW50IGxpYnJhcnkgZm9yIGV2b2x1dGlvbiBjYWxlbmRhcnMKLSBWZXJzaW9uOiBAVkVSU0lPTkAKLSBSZXF1aXJlczogbGliaWNhbCA+PSBATElCSUNBTF9SRVFVSVJFREAgbGliZWRhdGFzZXJ2ZXItMS4yIGdpby0yLjAKLSBMaWJzOiAtTCR7bGliZGlyfSAtbGVjYWwtMS4yCi0tQ2ZsYWdzOiAtSSR7cHJpdmluY2x1ZGVkaXJ9IEBMSUJJQ0FMX0VYVFJBX0NGTEFHU0AKLStDZmxhZ3M6IC1JJHtwcml2aW5jbHVkZWRpcn0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDFjODAyZmYuLmYxZDRjZTggMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTEzNTEsNyArMTM1MSw4IEBAIGRubCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gPGxpYmljYWwvaWNhbC5oPiBhbmQgPGljYWwuaD4KLSBkbmwgV2UgaGF2ZSBmaXhlZCBhbGwgb3VyIGluc3RhbmNlcyB0byB1c2UgPGxpYmljYWwvaWNhbC5oPi4gVW50aWwgdGhlIC5wYyBmcm9tCi0gZG5sIGxpYmljYWwgaXMgZml4ZWQsIHdlIGhhdmUgdG8gd29yay1hcm91bmQgdGhlIGJ1Z2d5IENGbGFncy4KLSBkbmwgKioqKioKLS0JTElCSUNBTF9FWFRSQV9DRkxBR1M9IiAtSWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWluY2x1ZGVkaXIgbGliaWNhbGAgIgotKwltNF9wYXR0ZXJuX2FsbG93KFteUEtHX0NPTkZJR19TWVNST09UX0RJUiRdKQotKwlMSUJJQ0FMX0VYVFJBX0NGTEFHUz0iIC1JJFBLR19DT05GSUdfU1lTUk9PVF9ESVJgJFBLR19DT05GSUcgLS12YXJpYWJsZT1pbmNsdWRlZGlyIGxpYmljYWxgICIKLSAJTElCSUNBTF9FWFRSQV9MSUJTPSIiCi0gCUFDX1NVQlNUKExJQklDQUxfRVhUUkFfQ0ZMQUdTKQotIAlBQ19TVUJTVChMSUJJQ0FMX0VYVFJBX0xJQlMpCi0tLSAKLTEuOC4zLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDA1LXNvdXAtYWRhcHQtdG8tbmV3LWxpYnhtbDItQVBJLWZyb20tMi45LjAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDUtc291cC1hZGFwdC10by1uZXctbGlieG1sMi1BUEktZnJvbS0yLjkuMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRkZjJlZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDUtc291cC1hZGFwdC10by1uZXctbGlieG1sMi1BUEktZnJvbS0yLjkuMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLUZyb20gYWM5NWU4OTc0OWEwMTYxOGY5OGI1NTRhOThlNzhkN2M5ODhiZmMxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMjcgTm92IDIwMTIgMDg6NDY6NTEgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA1LzVdIHNvdXA6IGFkYXB0IHRvIG5ldyBsaWJ4bWwyIEFQSSBmcm9tIDIuOS4wCi0KLSogZm9yIG1vcmUgaW5mbyBzZWUKLSAgaHR0cHM6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvMjAxMi1BdWd1c3QvbXNnMDAwMDUuaHRtbAotCi1TaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+Ci0tLS0KLSBjYWxlbmRhci9iYWNrZW5kcy9jYWxkYXYvZS1jYWwtYmFja2VuZC1jYWxkYXYuYyB8IDIxICsrKysrKysrKysrKysrKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9jYWxlbmRhci9iYWNrZW5kcy9jYWxkYXYvZS1jYWwtYmFja2VuZC1jYWxkYXYuYyBiL2NhbGVuZGFyL2JhY2tlbmRzL2NhbGRhdi9lLWNhbC1iYWNrZW5kLWNhbGRhdi5jCi1pbmRleCAxMmY4ZjIyLi41NTU1YTNlIDEwMDY0NAotLS0tIGEvY2FsZW5kYXIvYmFja2VuZHMvY2FsZGF2L2UtY2FsLWJhY2tlbmQtY2FsZGF2LmMKLSsrKyBiL2NhbGVuZGFyL2JhY2tlbmRzL2NhbGRhdi9lLWNhbC1iYWNrZW5kLWNhbGRhdi5jCi1AQCAtMTE3Miw4ICsxMTcyLDEzIEBAIGNoZWNrX2NhbGVuZGFyX2NoYW5nZWRfb25fc2VydmVyIChFQ2FsQmFja2VuZENhbERBViAqY2JkYXYpCi0gCXNvdXBfbWVzc2FnZV9zZXRfcmVxdWVzdCAobWVzc2FnZSwKLSAJCQkJICAiYXBwbGljYXRpb24veG1sIiwKLSAJCQkJICBTT1VQX01FTU9SWV9DT1BZLAotKyNpZmRlZiBMSUJYTUwyX05FV19CVUZGRVIKLSsJCQkJICAoZ2NoYXIgKikgeG1sT3V0cHV0QnVmZmVyR2V0Q29udGVudChidWYpLAotKwkJCQkgIHhtbE91dHB1dEJ1ZmZlckdldFNpemUoYnVmKSk7Ci0rI2Vsc2UKLSAJCQkJICAoZ2NoYXIgKikgYnVmLT5idWZmZXItPmNvbnRlbnQsCi0gCQkJCSAgYnVmLT5idWZmZXItPnVzZSk7Ci0rI2VuZGlmCi0gCi0gCS8qIFNlbmQgdGhlIHJlcXVlc3Qgbm93ICovCi0gCXNlbmRfYW5kX2hhbmRsZV9yZWRpcmVjdGlvbiAocHJpdi0+c2Vzc2lvbiwgbWVzc2FnZSwgTlVMTCk7Ci1AQCAtMTMyMSw4ICsxMzI2LDEzIEBAIGNhbGRhdl9zZXJ2ZXJfbGlzdF9vYmplY3RzIChFQ2FsQmFja2VuZENhbERBViAqY2JkYXYsCi0gCXNvdXBfbWVzc2FnZV9zZXRfcmVxdWVzdCAobWVzc2FnZSwKLSAJCQkJICAiYXBwbGljYXRpb24veG1sIiwKLSAJCQkJICBTT1VQX01FTU9SWV9DT1BZLAotKyNpZmRlZiBMSUJYTUwyX05FV19CVUZGRVIKLSsJCQkJICAoZ2NoYXIgKikgeG1sT3V0cHV0QnVmZmVyR2V0Q29udGVudChidWYpLAotKwkJCQkgIHhtbE91dHB1dEJ1ZmZlckdldFNpemUoYnVmKSk7Ci0rI2Vsc2UKLSAJCQkJICAoZ2NoYXIgKikgYnVmLT5idWZmZXItPmNvbnRlbnQsCi0gCQkJCSAgYnVmLT5idWZmZXItPnVzZSk7Ci0rI2VuZGlmCi0gCi0gCS8qIFNlbmQgdGhlIHJlcXVlc3Qgbm93ICovCi0gCXNlbmRfYW5kX2hhbmRsZV9yZWRpcmVjdGlvbiAocHJpdi0+c2Vzc2lvbiwgbWVzc2FnZSwgTlVMTCk7Ci1AQCAtMTcxNSw4ICsxNzI1LDE0IEBAIGNhbGRhdl9yZWNlaXZlX3NjaGVkdWxlX291dGJveF91cmwgKEVDYWxCYWNrZW5kQ2FsREFWICpjYmRhdikKLSAJc291cF9tZXNzYWdlX3NldF9yZXF1ZXN0IChtZXNzYWdlLAotIAkJCQkgICJhcHBsaWNhdGlvbi94bWwiLAotIAkJCQkgIFNPVVBfTUVNT1JZX0NPUFksCi0rI2lmZGVmIExJQlhNTDJfTkVXX0JVRkZFUgotKwkJCQkgIChnY2hhciAqKSB4bWxPdXRwdXRCdWZmZXJHZXRDb250ZW50KGJ1ZiksCi0rCQkJCSAgeG1sT3V0cHV0QnVmZmVyR2V0U2l6ZShidWYpKTsKLSsjZWxzZQotIAkJCQkgIChnY2hhciAqKSBidWYtPmJ1ZmZlci0+Y29udGVudCwKLSAJCQkJICBidWYtPmJ1ZmZlci0+dXNlKTsKLSsjZW5kaWYKLSsKLSAKLSAJLyogU2VuZCB0aGUgcmVxdWVzdCBub3cgKi8KLSAJc2VuZF9hbmRfaGFuZGxlX3JlZGlyZWN0aW9uIChwcml2LT5zZXNzaW9uLCBtZXNzYWdlLCBOVUxMKTsKLUBAIC0xNzY1LDggKzE3ODEsMTMgQEAgY2FsZGF2X3JlY2VpdmVfc2NoZWR1bGVfb3V0Ym94X3VybCAoRUNhbEJhY2tlbmRDYWxEQVYgKmNiZGF2KQotIAkJc291cF9tZXNzYWdlX3NldF9yZXF1ZXN0IChtZXNzYWdlLAotIAkJCQkgICJhcHBsaWNhdGlvbi94bWwiLAotIAkJCQkgIFNPVVBfTUVNT1JZX0NPUFksCi0rI2lmZGVmIExJQlhNTDJfTkVXX0JVRkZFUgotKwkJCQkgIChnY2hhciAqKSB4bWxPdXRwdXRCdWZmZXJHZXRDb250ZW50KGJ1ZiksCi0rCQkJCSAgeG1sT3V0cHV0QnVmZmVyR2V0U2l6ZShidWYpKTsKLSsjZWxzZQotIAkJCQkgIChnY2hhciAqKSBidWYtPmJ1ZmZlci0+Y29udGVudCwKLSAJCQkJICBidWYtPmJ1ZmZlci0+dXNlKTsKLSsjZW5kaWYKLSAKLSAJCS8qIFNlbmQgdGhlIHJlcXVlc3Qgbm93ICovCi0gCQlzZW5kX2FuZF9oYW5kbGVfcmVkaXJlY3Rpb24gKHByaXYtPnNlc3Npb24sIG1lc3NhZ2UsIE5VTEwpOwotLS0gCi0xLjguMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwNi1jb25maWd1cmUuYWMtZG8tbm90LW92ZXJ3cml0ZS1sb2NhbGVkaXIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDYtY29uZmlndXJlLmFjLWRvLW5vdC1vdmVyd3JpdGUtbG9jYWxlZGlyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDFlNWU5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwNi1jb25maWd1cmUuYWMtZG8tbm90LW92ZXJ3cml0ZS1sb2NhbGVkaXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1Gcm9tIDNmZWFlYThlODRiM2FkOGRjMmQ1NTFlNDIyMjRmM2I0YTk0MTNlN2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDMgU2VwIDIwMTUgMTE6MTQ6MjQgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gY29uZmlndXJlLmFjOiBkbyBub3Qgb3ZlcndyaXRlIGxvY2FsZWRpcgotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFsxXQotCi1bMV0gaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdHJlZS9jb25maWd1cmUuYWMjbjI5OAotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0tLS0KLSBjb25maWd1cmUuYWMgfCAzIC0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBmMWQ0Y2U4Li5jZWU4NDdmIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC0yNTcsOSArMjU3LDYgQEAgR0VUVEVYVF9QQUNLQUdFPWV2b2x1dGlvbi1kYXRhLXNlcnZlci0kQkFTRV9WRVJTSU9OCi0gQUNfU1VCU1QoR0VUVEVYVF9QQUNLQUdFKQotIEFDX0RFRklORV9VTlFVT1RFRChHRVRURVhUX1BBQ0tBR0UsICIkR0VUVEVYVF9QQUNLQUdFIiwgW1BhY2thZ2UgbmFtZSBmb3IgZ2V0dGV4dF0pCi0gCi0tbG9jYWxlZGlyPSckKHByZWZpeCkvJChEQVRBRElSTkFNRSkvbG9jYWxlJwotLUFDX1NVQlNUKGxvY2FsZWRpcikKLS0KLSBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gZG5sIEluaXRpYWxpemUgbGlidG9vbAotIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLS0tIAotMi4xLjAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlcl8zLjI2LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyXzMuMjYuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzAzYjhmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlcl8zLjI2LjMuYmIKQEAgLTAsMCArMSwxMzAgQEAKK1NVTU1BUlkgPSAiRXZvbHV0aW9uIGRhdGFiYXNlIGJhY2tlbmQgc2VydmVyIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvcHJvamVjdHMvZXZvbHV0aW9uLyIKK0JVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvIgorCitMSUNFTlNFID0gIkxHUEx2MiAmIExHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT02YTZlNjg5ZDE5MjU1Y2YwNTU3ZjNmZTdkNzA2ODIxMiBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvY2FtZWwvY2FtZWwuaDtlbmRsaW5lPTI0O21kNT0zNDJmYzVlOTM1NzI1NGJjMzBjMjRlNDNhZTQ3ZDlhMSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvbGliZWRhdGFzZXJ2ZXIvZS1kYXRhLXNlcnZlci11dGlsLmg7ZW5kbGluZT0yMDttZDU9OGYyMWE5YzgwZWE4MmE0ZmI4MGI1Zjk1OWY2NzI1NDMgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL2NhbGVuZGFyL2xpYmVjYWwvZS1jYWwuaDtlbmRsaW5lPTI0O21kNT1lNjk5ZWMzODY2ZjczZjEyOWY3YTRmZmZmZGNmYzE5NiIKKworREVQRU5EUyA9ICIgXAorICAgIGludGx0b29sLW5hdGl2ZSBncGVyZi1uYXRpdmUgXAorICAgIGdsaWItMi4wIGd0ayszIGdjb25mIGxpYmdub21lLWtleXJpbmcgbGliZ2RhdGEgXAorICAgIGRidXMgZGIgdmlydHVhbC9saWJpY29udiB6bGliIGxpYnNvdXAtMi40IGxpYmljYWwgbnNzIGxpYnNlY3JldCBcCisiCisKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGdub21lYmFzZSBjbWFrZSBndGstZG9jIGdldHRleHQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHBlcmxuYXRpdmUgcHl0aG9ubmF0aXZlCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK1NSQ19VUkkgKz0gIiBcCisgICAgZmlsZTovLzAwMDEtQ01ha2VMaXN0cy50eHQtUmVtb3ZlLVRSWV9SVU4tZm9yLWljb252LnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMi1DTWFrZUxpc3RzLnR4dC1yZW1vdmUtQ0hFQ0tfQ19TT1VSQ0VfUlVOUy1jaGVjay5wYXRjaCBcCisgICAgZmlsZTovLzAwMDMtY29udGFjdC1SZXBsYWNlLXRoZS1Ob3ZlbGwtc2FtcGxlLWNvbnRhY3Qtd2l0aC1zb21ldC5wYXRjaCBcCisgICAgZmlsZTovL2ljb252LWRldGVjdC5oIFwKKyIKK1NSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gIjU2OGEyMWE0ZGY0ZTBlYzk4NWM4NDliMzhmYzY2OTA4IgorU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiNjNiMWFlNWY3NmJlODE4ODYyZjQ1NWJmODQxYjVlYmIxZWMzZTFmNGRmNmQzYTE2ZGMyYmUzNDhiN2UwYTFjNSIKKworTEtTVFJGVElNRSA9ICJIQVZFX0xLU1RSRlRJTUU9T04iCitMS1NUUkZUSU1FX2xpYmMtbXVzbCA9ICJIQVZFX0xLU1RSRlRJTUU9T0ZGIgorCitFWFRSQV9PRUNNQUtFID0gIiBcCisgICAgLURXSVRIX0tSQjU9T0ZGIFwKKyAgICAtREVOQUJMRV9HT0E9T0ZGIFwKKyAgICAtREVOQUJMRV9VT0E9T0ZGIFwKKyAgICAtREVOQUJMRV9HT09HTEVfQVVUSD1PRkYgXAorICAgIC1ERU5BQkxFX1dFQVRIRVI9T0ZGIFwKKyAgICAtRCR7TEtTVFJGVElNRX0gXAorIgorCitQQUNLQUdFQ09ORklHID8/PSAiIgorUEFDS0FHRUNPTkZJR1tvcGVubGRhcF0gPSAiLURXSVRIX09QRU5MREFQPU9OLC1EV0lUSF9PUEVOTERBUD1PRkYsb3BlbmxkYXAiCisKK0VYVFJBX09FQ09ORiA9ICItLXdpdGgtbGliZGI9JHtTVEFHSU5HX0RJUl9IT1NUfSR7cHJlZml4fSBcCisgICAgICAgICAgICAgICAgLS1kaXNhYmxlLW5udHAgLS1kaXNhYmxlLWd0ay1kb2MiCisKKyMgLWxkYiBuZWVkcyB0aGlzIG9uIHNvbWUgcGxhdGZvcm1zCitMREZMQUdTICs9ICItbHB0aHJlYWQgLWxnbW9kdWxlLTIuMCAtbGd0aHJlYWQtMi4wIgorCitkb19jb25maWd1cmVfYXBwZW5kICgpIHsKKyAgICBjcCAke1dPUktESVJ9L2ljb252LWRldGVjdC5oICR7U30vc3JjCisKKyAgICAjIGZpeCBuYXRpdmUgcGVybCBzaGViYW5nCisgICAgc2VkIC1pICdzOiR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9wZXJsLW5hdGl2ZToke2JpbmRpcn06JyAke0J9L3NyYy90b29scy9hZGRyZXNzYm9vay1leHBvcnQvY3N2MnZjYXJkCit9CisKK2RvX2NvbXBpbGVfcHJlcGVuZCgpIHsKKyAgICBleHBvcnQgR0lSX0VYVFJBX0xJQlNfUEFUSD0iJHtCfS9jYW1lbC8ubGliczoke0J9L2xpYmVkYXRhc2VydmVyLy5saWJzIgorfQorCisKK1BBQ0tBR0VTID0rICJsaWJjYW1lbCBsaWJjYW1lbC1kZXYgbGliZWJvb2sgbGliZWJvb2stZGV2IGxpYmVjYWwgbGliZWNhbC1kZXYgXAorICAgICAgICAgICAgIGxpYmVkYXRhLWJvb2sgbGliZWRhdGEtYm9vay1kZXYgbGliZWRhdGEtY2FsIGxpYmVkYXRhLWNhbC1kZXYgXAorICAgICAgICAgICAgIGxpYmVkYXRhc2VydmVyIGxpYmVkYXRhc2VydmVyLWRldiBcCisgICAgICAgICAgICAgbGliZWRhdGFzZXJ2ZXJ1aSBsaWJlZGF0YXNlcnZlcnVpLWRldiIKKworRklMRVNfJHtQTn0gPSsgIiR7c3lzdGVtZF91c2VyX3VuaXRkaXJ9IFwKKyAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2RidXMtMSBcCisgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi91aS8iCitSREVQRU5EU18ke1BOfSArPSAicGVybCIKKworRklMRVNfJHtQTn0tZGV2ID0rICIke2xpYmRpcn0vcGtnY29uZmlnL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qLnBjIgorRklMRVNfJHtQTn0tZGJnID0rICIke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyKi9jYW1lbC1wcm92aWRlcnMvLmRlYnVnIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovY2FsZW5kYXItYmFja2VuZHMvLmRlYnVnIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovYWRkcmVzc2Jvb2stYmFja2VuZHMvLmRlYnVnIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovZXh0ZW5zaW9ucy8uZGVidWcvIgorCitSUkVDT01NRU5EU18ke1BOfS1kZXYgKz0gImxpYmVjYWwtZGV2IGxpYmVib29rLWRldiIKKworRklMRVNfbGliY2FtZWwgPSAiJHtsaWJkaXJ9L2xpYmNhbWVsLSouc28uKiBcCisgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGliY2FtZWwtcHJvdmlkZXItKi5zby4qIFwKKyAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2NhbWVsLXByb3ZpZGVycy8qLnNvIFwKKyAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2NhbWVsLXByb3ZpZGVycy8qLnVybHMiCitGSUxFU19saWJjYW1lbC1kZXYgPSAiJHtsaWJkaXJ9L2xpYmNhbWVsLSouc28gJHtsaWJkaXJ9L2xpYmNhbWVsLXByb3ZpZGVyLSouc28gXAorICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9wa2djb25maWcvY2FtZWwqcGMgXAorICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2NhbWVsLXByb3ZpZGVycy8qLmxhIFwKKyAgICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovY2FtZWwiCisKK0ZJTEVTX2xpYmVib29rID0gIiR7bGliZGlyfS9saWJlYm9vay0qLnNvLioiCitGSUxFU19saWJlYm9vay1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVib29rLTEuMi5zbyBcCisgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3BrZ2NvbmZpZy9saWJlYm9vay0qLnBjIFwKKyAgICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovbGliZWJvb2svKi5oIgorUlJFQ09NTUVORFNfbGliZWJvb2sgPSAibGliZWRhdGEtYm9vayIKKworRklMRVNfbGliZWNhbCA9ICIke2xpYmRpcn0vbGliZWNhbC0qLnNvLiogXAorICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0xLjQvem9uZWluZm8iCitGSUxFU19saWJlY2FsLWRldiA9ICIke2xpYmRpcn0vbGliZWNhbC0qLnNvICR7bGliZGlyfS9wa2djb25maWcvbGliZWNhbC0qLnBjIFwKKyAgICAgICAgICAgICAgICAgICAgICR7aW5jbHVkZWRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyKi9saWJlY2FsLyouaCBcCisgICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovbGliaWNhbC8qLmgiCitSUkVDT01NRU5EU19saWJlY2FsID0gImxpYmVkYXRhLWNhbCB0emRhdGEiCisKK0ZJTEVTX2xpYmVkYXRhLWJvb2sgPSAiJHtsaWJleGVjZGlyfS9lLWFkZHJlc3Nib29rLWZhY3RvcnkgXAorICAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2RidXMtMS9zZXJ2aWNlcy8qLkFkZHJlc3NCb29rLnNlcnZpY2UgXAorICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGliZWRhdGEtYm9vay0qLnNvLiogXAorICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovZXh0ZW5zaW9ucy9saWJlYm9vayouc28gXAorICAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0xLjQvd2VhdGhlci9Mb2NhdGlvbnMueG1sIgorRklMRVNfbGliZWRhdGEtYm9vay1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhLWJvb2stKi5zbyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vcGtnY29uZmlnL2xpYmVkYXRhLWJvb2stKi5wYyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovZXh0ZW5zaW9ucy9saWJlYm9vayoubGEgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi9saWJlZGF0YS1ib29rIgorCitGSUxFU19saWJlZGF0YS1jYWwgPSAiJHtsaWJleGVjZGlyfS9lLWNhbGVuZGFyLWZhY3RvcnkgXAorICAgICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vZGJ1cy0xL3NlcnZpY2VzLyouQ2FsZW5kYXIuc2VydmljZSBcCisgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xpYmVkYXRhLWNhbC0qLnNvLiogXAorICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi9leHRlbnNpb25zL2xpYmVjYWwqLnNvIgorRklMRVNfbGliZWRhdGEtY2FsLWRldiA9ICIke2xpYmRpcn0vbGliZWRhdGEtY2FsLSouc28gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vcGtnY29uZmlnL2xpYmVkYXRhLWNhbC0qLnBjIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi9saWJlZGF0YS1jYWwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovZXh0ZW5zaW9ucy9saWJlY2FsKi5sYSIKKworRklMRVNfbGliZWRhdGFzZXJ2ZXIgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhc2VydmVyLSouc28uKiIKK0ZJTEVTX2xpYmVkYXRhc2VydmVyLWRldiA9ICIke2xpYmRpcn0vbGliZWRhdGFzZXJ2ZXItKi5zbyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3BrZ2NvbmZpZy9saWJlZGF0YXNlcnZlci0qLnBjIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL2xpYmVkYXRhc2VydmVyLyouaCIKKworRklMRVNfbGliZWRhdGFzZXJ2ZXJ1aSA9ICIke2xpYmRpcn0vbGliZWRhdGFzZXJ2ZXJ1aS0qLnNvLiogJHtkYXRhZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMS40L2dsYWRlLyouZ2xhZGUiCitGSUxFU19saWJlZGF0YXNlcnZlcnVpLWRldiA9ICIke2xpYmRpcn0vbGliZWRhdGFzZXJ2ZXJ1aS0qLnNvIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9wa2djb25maWcvbGliZWRhdGFzZXJ2ZXJ1aS0qLnBjIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aW5jbHVkZWRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovbGliZWRhdGFzZXJ2ZXJ1aS8qLmgiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXJfZ2l0LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWRjNGI1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXJfZ2l0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTE2ICswLDAgQEAKLVNVTU1BUlkgPSAiRXZvbHV0aW9uIGRhdGFiYXNlIGJhY2tlbmQgc2VydmVyIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvcHJvamVjdHMvZXZvbHV0aW9uLyIKLUJVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvIgotCi1MSUNFTlNFID0gIkxHUEx2MiAmIExHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT02YTZlNjg5ZDE5MjU1Y2YwNTU3ZjNmZTdkNzA2ODIxMiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9jYW1lbC9jYW1lbC5oO2VuZGxpbmU9MjQ7bWQ1PWIwMjE3NWM4OGY4MjEyMjQ3NDZiMzQ3YTg5NzMxYTJiIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2xpYmVkYXRhc2VydmVyL2UtZGF0YS1zZXJ2ZXItdXRpbC5oO2VuZGxpbmU9MjA7bWQ1PTkzNDUwMmYwM2M4NDUyM2FhMDU5ZDQ4MjU4ODdiMzgwIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2NhbGVuZGFyL2xpYmVjYWwvZS1jYWwuaDtlbmRsaW5lPTI0O21kNT01ZDQ5NmI5YjZmZDJhNGZkYmJmYzMxZWY5NDU1YzlkMCIKLQotREVQRU5EUyA9ICJpbnRsdG9vbC1uYXRpdmUgZ2xpYi0yLjAgZ3RrKzMgZ2NvbmYgZGJ1cyBkYiB2aXJ0dWFsL2xpYmljb252IHpsaWIgbGlic291cC0yLjQgbGliZ2xhZGUgbGliaWNhbCBsaWJnbm9tZS1rZXlyaW5nIGdwZXJmLW5hdGl2ZSBsaWJnZGF0YSBuc3MiCi0KLVNSQ1JFViA9ICJhOWU0ZTc0ZWM0NDczYTRmZDA5ZTU2YjY5MGJkNGZhNzJmNjg2Njg3IgotCi0jIDMuNCBzZXJpZXMgbmVlZHMgbGliZ2RhdGEtMC4xMCosIDMuOCBzZXJpZXMgbmVlZHMgYWxzbyBsaWJzZWNyZXQgaW5zdGVhZCBvZiBnbm9tZS1rZXlyaW5nCi1QViA9ICIzLjIuMytnaXQke1NSQ1BWfSIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXQuZ25vbWUub3JnL2V2b2x1dGlvbi1kYXRhLXNlcnZlcjticmFuY2g9Z25vbWUtMy0yIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtY29udGFjdC1SZXBsYWNlLXRoZS1Ob3ZlbGwtc2FtcGxlLWNvbnRhY3Qtd2l0aC1zb21ldC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAyLUZpeC1mb3ItYXV0b21ha2UtMS4xMi54LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDMtRGlzYWJsZS1XZXJyb3ItZm9yLWF1dG9tYWtlLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDQtY29uZmlndXJlLUZpeC1saWJpY2FsLXBrZy1jb25maWctdHJ5aW5nLXRvLXVzZS1ob3N0LS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA1LXNvdXAtYWRhcHQtdG8tbmV3LWxpYnhtbDItQVBJLWZyb20tMi45LjAucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwNi1jb25maWd1cmUuYWMtZG8tbm90LW92ZXJ3cml0ZS1sb2NhbGVkaXIucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vaWNvbnYtZGV0ZWN0LmggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1pbWFweC1GaXgtc2lnbmF0dXJlLWZvci1pbWFweF90b2tlbmlzZV9zdHJ1Y3QucGF0Y2ggXAotICAgICAgICAgICAiCi0KLVMgPSAiJHtXT1JLRElSfS9naXQiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIGd0ay1kb2MgcGtnY29uZmlnIGdldHRleHQgZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0KLSMgLWxkYiBuZWVkcyB0aGlzIG9uIHNvbWUgcGxhdGZvcm1zCi1MREZMQUdTICs9ICItbHB0aHJlYWQgLWxnbW9kdWxlLTIuMCAtbGd0aHJlYWQtMi4wIgotCi0jIFBhcmFsbGVsIG1ha2Ugc2hvd3MgbWFueSBpc3N1ZXMgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLgotIyBDdXJyZW50IHByb2JsZW1zIHNlZW0gdG8gYmUgZHVwbGljYXRlIGV4ZWN1dGlvbiBvZiB0aGUgY2FsYW5kZXIvYmFja2VuZHMKLSMgZGlyZWN0b3JpZXMgYnkgbWFrZSByZXN1bHRpbmcgaW4gdHJ1bmNhdGVkL2NvcnJ1cHQgLmxhIGZpbGVzCi0jUEFSQUxMRUxfTUFLRSA9ICIiCi0KLWRvX2NvbmZpZ3VyZV9hcHBlbmQgKCkgewotICAgIGNwICR7V09SS0RJUn0vaWNvbnYtZGV0ZWN0LmggJHtTfQotfQotCi1kb19jb21waWxlX3ByZXBlbmQoKSB7Ci0gICAgICAgIGV4cG9ydCBHSVJfRVhUUkFfTElCU19QQVRIPSIke0J9L2NhbWVsLy5saWJzOiR7Qn0vbGliZWRhdGFzZXJ2ZXIvLmxpYnMiCi19Ci0KLUVYVFJBX09FQ09ORiA9ICItLXdpdGhvdXQtb3BlbmxkYXAgXAotICAgICAgICAgICAgICAgIC0td2l0aC1saWJkYj0ke1NUQUdJTkdfRElSX0hPU1R9JHtwcmVmaXh9IFwKLSAgICAgICAgICAgICAgICAtLWRpc2FibGUtbm50cCAtLWRpc2FibGUtZ29hIC0tZGlzYWJsZS13ZWF0aGVyIC0tZGlzYWJsZS1ndGstZG9jIgotCi1QQUNLQUdFUyA9KyAibGliY2FtZWwgbGliY2FtZWwtZGV2IGxpYmVib29rIGxpYmVib29rLWRldiBsaWJlY2FsIGxpYmVjYWwtZGV2IFwKLSAgICAgICAgICAgICBsaWJlZGF0YS1ib29rIGxpYmVkYXRhLWJvb2stZGV2IGxpYmVkYXRhLWNhbCBsaWJlZGF0YS1jYWwtZGV2IFwKLSAgICAgICAgICAgICBsaWJlZGF0YXNlcnZlciBsaWJlZGF0YXNlcnZlci1kZXYgXAotICAgICAgICAgICAgIGxpYmVkYXRhc2VydmVydWkgbGliZWRhdGFzZXJ2ZXJ1aS1kZXYiCi0KLUZJTEVTXyR7UE59ID0rICIke2RhdGFkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL3VpLyIKLUZJTEVTXyR7UE59LWRldiA9KyAiJHtsaWJkaXJ9L3BrZ2NvbmZpZy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi5wYyIKLUZJTEVTXyR7UE59LWRiZyA9KyAiJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovY2FtZWwtcHJvdmlkZXJzLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2NhbGVuZGFyLWJhY2tlbmRzLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2FkZHJlc3Nib29rLWJhY2tlbmRzLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2V4dGVuc2lvbnMvLmRlYnVnLyIKLQotUlJFQ09NTUVORFNfJHtQTn0tZGV2ICs9ICJsaWJlY2FsLWRldiBsaWJlYm9vay1kZXYiCi0KLUZJTEVTX2xpYmNhbWVsID0gIiR7bGliZGlyfS9saWJjYW1lbC0qLnNvLiogXAotICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xpYmNhbWVsLXByb3ZpZGVyLSouc28uKiBcCi0gICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyKi9jYW1lbC1wcm92aWRlcnMvKi5zbyBcCi0gICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyKi9jYW1lbC1wcm92aWRlcnMvKi51cmxzIgotRklMRVNfbGliY2FtZWwtZGV2ID0gIiR7bGliZGlyfS9saWJjYW1lbC0qLnNvICR7bGliZGlyfS9saWJjYW1lbC1wcm92aWRlci0qLnNvIFwKLSAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vcGtnY29uZmlnL2NhbWVsKnBjIFwKLSAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyKi9jYW1lbC1wcm92aWRlcnMvKi5sYSBcCi0gICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2NhbWVsIgotCi1GSUxFU19saWJlYm9vayA9ICIke2xpYmRpcn0vbGliZWJvb2stKi5zby4qIgotRklMRVNfbGliZWJvb2stZGV2ID0gIiR7bGliZGlyfS9saWJlYm9vay0xLjIuc28gXAotICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9wa2djb25maWcvbGliZWJvb2stKi5wYyBcCi0gICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2xpYmVib29rLyouaCIKLVJSRUNPTU1FTkRTX2xpYmVib29rID0gImxpYmVkYXRhLWJvb2siCi0KLUZJTEVTX2xpYmVjYWwgPSAiJHtsaWJkaXJ9L2xpYmVjYWwtKi5zby4qIFwKLSAgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMS40L3pvbmVpbmZvIgotRklMRVNfbGliZWNhbC1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVjYWwtKi5zbyAke2xpYmRpcn0vcGtnY29uZmlnL2xpYmVjYWwtKi5wYyBcCi0gICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovbGliZWNhbC8qLmggXAotICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2xpYmljYWwvKi5oIgotUlJFQ09NTUVORFNfbGliZWNhbCA9ICJsaWJlZGF0YS1jYWwgdHpkYXRhIgotCi1GSUxFU19saWJlZGF0YS1ib29rID0gIiR7bGliZXhlY2Rpcn0vZS1hZGRyZXNzYm9vay1mYWN0b3J5IFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9kYnVzLTEvc2VydmljZXMvKi5BZGRyZXNzQm9vay5zZXJ2aWNlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xpYmVkYXRhLWJvb2stKi5zby4qIFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL2V4dGVuc2lvbnMvbGliZWJvb2sqLnNvIFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMS40L3dlYXRoZXIvTG9jYXRpb25zLnhtbCIKLUZJTEVTX2xpYmVkYXRhLWJvb2stZGV2ID0gIiR7bGliZGlyfS9saWJlZGF0YS1ib29rLSouc28gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3BrZ2NvbmZpZy9saWJlZGF0YS1ib29rLSoucGMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL2V4dGVuc2lvbnMvbGliZWJvb2sqLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aW5jbHVkZWRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovbGliZWRhdGEtYm9vayIKLQotRklMRVNfbGliZWRhdGEtY2FsID0gIiR7bGliZXhlY2Rpcn0vZS1jYWxlbmRhci1mYWN0b3J5IFwKLSAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2RidXMtMS9zZXJ2aWNlcy8qLkNhbGVuZGFyLnNlcnZpY2UgXAotICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9saWJlZGF0YS1jYWwtKi5zby4qIFwKLSAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovZXh0ZW5zaW9ucy9saWJlY2FsKi5zbyIKLUZJTEVTX2xpYmVkYXRhLWNhbC1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhLWNhbC0qLnNvIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3BrZ2NvbmZpZy9saWJlZGF0YS1jYWwtKi5wYyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICR7aW5jbHVkZWRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovbGliZWRhdGEtY2FsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL2V4dGVuc2lvbnMvbGliZWNhbCoubGEiCi0KLUZJTEVTX2xpYmVkYXRhc2VydmVyID0gIiR7bGliZGlyfS9saWJlZGF0YXNlcnZlci0qLnNvLioiCi1GSUxFU19saWJlZGF0YXNlcnZlci1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhc2VydmVyLSouc28gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9wa2djb25maWcvbGliZWRhdGFzZXJ2ZXItKi5wYyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi9saWJlZGF0YXNlcnZlci8qLmgiCi0KLUZJTEVTX2xpYmVkYXRhc2VydmVydWkgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhc2VydmVydWktKi5zby4qICR7ZGF0YWRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLTEuNC9nbGFkZS8qLmdsYWRlIgotRklMRVNfbGliZWRhdGFzZXJ2ZXJ1aS1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhc2VydmVydWktKi5zbyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vcGtnY29uZmlnL2xpYmVkYXRhc2VydmVydWktKi5wYyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL2xpYmVkYXRhc2VydmVydWkvKi5oIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZXZpbmNlL2V2aW5jZV8zLjI0LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ldmluY2UvZXZpbmNlXzMuMjQuMC5iYgppbmRleCA3OGE5NDk1Li5jN2VjZjJiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ldmluY2UvZXZpbmNlXzMuMjQuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ldmluY2UvZXZpbmNlXzMuMjQuMC5iYgpAQCAtNyw2ICs3LDggQEAKIAogaW5oZXJpdCBnbm9tZSBwa2djb25maWcgZ3RrLWljb24tY2FjaGUgZ3NldHRpbmdzIGdvYmplY3QtaW50cm9zcGVjdGlvbiBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgc3lzdGVtZAogCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCiBTUkNfVVJJID0gIiR7R05PTUVfTUlSUk9SfS8ke0dOT01FQk59LyR7QGdub21lX3ZlcmRpcigiJHtQVn0iKX0vJHtHTk9NRUJOfS0ke1BWfS50YXIuJHtHTk9NRV9DT01QUkVTU19UWVBFfTtuYW1lPWFyY2hpdmUgXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1oZWxwLXJlbW92ZS1ZRUxQLW1hY3JvLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtQWRkLWZvcm1hdC1hdHRyaWJ1dGUtdG8tX3N5bmN0ZXhfbWFsbG9jLnBhdGNoIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vJWdjb25mLXRyZWUueG1sIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS8lZ2NvbmYtdHJlZS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4YzJlOWMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS8lZ2NvbmYtdHJlZS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OTIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+Ci08Z2NvbmY+Ci0gICAgICAgIDxkaXIgbmFtZT0iZGVza3RvcCI+Ci0gICAgICAgICAgICAgICAgPGRpciBuYW1lPSJnbm9tZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9InVybC1oYW5kbGVycyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0ieW1zZ3IiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9InhtcHAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9IndlYmNhbCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0idXZveCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0idHJhc2giPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9InNpcCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0icnRzcCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0icnRwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJwbm0iPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Im5vdGUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Im5ldCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0ibXNuaW0iPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Im1tc2giPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Im1tcyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0ibWFuIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJtYWlsdG8iPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Imxhc3RmbSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iaXRwYyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iaXRtcyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iaXJjIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJpbmZvIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJpY3l4Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJpY3kiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImljcSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iaHR0cHMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Imh0dHAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImgzMjMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImdoZWxwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJnZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iZnRwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJmaWxlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJmZWVkIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJjZGRhIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJjYWxsdG8iPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImFpbSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iYWJvdXQiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImxvY2tkb3duIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImRpc2FibGVfdXJsX2hhbmRsZXJzIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0iYm9vbCIgdmFsdWU9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iZGlzYWJsZV9zYXZlX3RvX2Rpc2siIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJib29sIiB2YWx1ZT0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJkaXNhYmxlX3ByaW50X3NldHVwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0iYm9vbCIgdmFsdWU9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iZGlzYWJsZV9wcmludGluZyIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9ImJvb2wiIHZhbHVlPSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImRpc2FibGVfbG9ja19zY3JlZW4iIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJib29sIiB2YWx1ZT0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJkaXNhYmxlX2NvbW1hbmRfbGluZSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9ImJvb2wiIHZhbHVlPSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJhcHBsaWNhdGlvbnMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9InRlcm1pbmFsIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iZXhlYyIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJhY2Nlc3NpYmlsaXR5Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJrZXlib2FyZCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImVuYWJsZSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9ImJvb2wiIHZhbHVlPSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICA8L2Rpcj4KLSAgICAgICAgPGRpciBuYW1lPSJhcHBzIj4KLSAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Imdub21lX3NldHRpbmdzX2RhZW1vbiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImtleWJpbmRpbmdzIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9Ind3dyIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJzdG9wIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InNsZWVwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InNlYXJjaCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJzY3JlZW5zYXZlciIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJwcmV2aW91cyIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJwb3dlciIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJwbGF5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InBhdXNlIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9Im5leHQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT48L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ibWVkaWEiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT48L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iaG9tZSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJoZWxwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImVtYWlsIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNhbGN1bGF0b3IiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT48L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iZWplY3QiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT48L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPGRpciBuYW1lPSJtZXRhY2l0eSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImtleWJpbmRpbmdfY29tbWFuZHMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZF93aW5kb3dfc2NyZWVuc2hvdCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kX3NjcmVlbnNob3QiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5nZG0tc2NyZWVuc2hvdDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iZ2xvYmFsX2tleWJpbmRpbmdzIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InN3aXRjaF90b193b3Jrc3BhY2VfdXAiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5kaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJzd2l0Y2hfdG9fd29ya3NwYWNlX3JpZ2h0IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ic3dpdGNoX3RvX3dvcmtzcGFjZV9sZWZ0IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ic3dpdGNoX3RvX3dvcmtzcGFjZV9kb3duIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ic3dpdGNoX2dyb3VwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ic2hvd19kZXNrdG9wIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmRfd2luZG93X3NjcmVlbnNob3QiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5kaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZF9zY3JlZW5zaG90IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+UHJpbnQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icGFuZWxfcnVuX2RpYWxvZyIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPmRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InBhbmVsX21haW5fbWVudSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPmRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJnZW5lcmFsIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9Im51bV93b3Jrc3BhY2VzIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0iaW50IiB2YWx1ZT0iMSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImNvbXBpeiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImdlbmVyYWwiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImFsbHNjcmVlbnMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0ib3B0aW9ucyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQxMV9rZXkiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDExX2J1dHRvbiIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kMTBfa2V5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQxMF9idXR0b24iIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDhfa2V5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQ4X2J1dHRvbiIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kN19rZXkiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDdfYnV0dG9uIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQ2X2tleSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kNl9idXR0b24iIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDVfa2V5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQ1X2J1dHRvbiIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kNF9rZXkiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDRfYnV0dG9uIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQzX2tleSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kM19idXR0b24iIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDJfa2V5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQyX2J1dHRvbiIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kMV9rZXkiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDFfYnV0dG9uIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQwX2tleSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kMF9idXR0b24iIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fa2V5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2J1dHRvbiIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9Im1haW5fbWVudV9rZXkiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJtYWluX21lbnVfYnV0dG9uIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZF93aW5kb3dfc2NyZWVuc2hvdCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT48L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kMTEiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZDEwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ4IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ3IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ2IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ1IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ0IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQzIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQyIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQxIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmRfdGVybWluYWwiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZF9zY3JlZW5zaG90IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPmdkbS1zY3JlZW5zaG90PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iYWN0aXZlX3BsdWdpbnMiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJsaXN0IiBsdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPmN1YmU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGVjb3JhdGlvbjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5nY29uZjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5nbGliPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPm1vdmU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+cGxhY2U8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+cmVzaXplPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPnNjcmVlbnNob3Q8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+d29iYmx5PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPGRpciBuYW1lPSJnbm9tZS1wb3dlci1tYW5hZ2VyIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0idWkiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ic2hvd19jb250ZXh0X21lbnUiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJib29sIiB2YWx1ZT0iZmFsc2UiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPGRpciBuYW1lPSJnbm9tZS1zY3JlZW5zYXZlciI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icG93ZXJfbWFuYWdlbWVudF9kZWxheSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9ImludCIgdmFsdWU9IjMwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPGRpciBuYW1lPSJuYXV0aWx1cyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9InByZWZlcmVuY2VzIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InNob3dfZGVza3RvcCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9ImJvb2wiIHZhbHVlPSJmYWxzZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgPC9kaXI+Ci08L2djb25mPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9EZWZhdWx0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9EZWZhdWx0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBhN2E3ZmNmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vRGVmYXVsdAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLSMhL2Jpbi9zaAotIyBTdG9sZW4gZnJvbSB0aGUgZGViaWFuIGtkbSBzZXR1cCwgYXJlbid0IEkgc25lYWt5Ci0jIFBsdXMgYSBsb3Qgb2YgZnVuIHN0dWZmIGFkZGVkCi0jICAtR2VvcmdlCi0KLVBBVEg9Ii91c3IvYmluOiRQQVRIIgotT0xEX0lGUz0kSUZTCi0KLWdkbXdoaWNoICgpIHsKLSAgQ09NTUFORD0iJDEiCi0gIE9VVFBVVD0KLSAgSUZTPToKLSAgZm9yIGRpciBpbiAkUEFUSAotICBkbwotICAgIGlmIHRlc3QgLXggIiRkaXIvJENPTU1BTkQiIDsgdGhlbgotICAgICAgaWYgdGVzdCAieCRPVVRQVVQiID0gIngiIDsgdGhlbgotICAgICAgICBPVVRQVVQ9IiRkaXIvJENPTU1BTkQiCi0gICAgICBmaQotICAgIGZpCi0gIGRvbmUKLSAgSUZTPSRPTERfSUZTCi0gIGVjaG8gIiRPVVRQVVQiCi19Ci0KLXN5c3Jlc291cmNlcz0vZXRjL1gxMS9YcmVzb3VyY2VzCi0KLSMgbWVyZ2UgaW4gZGVmYXVsdHMKLWlmIFsgLWYgIiRzeXNyZXNvdXJjZXMiIF07IHRoZW4KLSAgICB4cmRiIC1tZXJnZSAiJHN5c3Jlc291cmNlcyIKLWZpCi0KLXN5c21vZG1hcD0vZXRjL1gxMS9YbW9kbWFwCi0KLVhNT0RNQVA9YGdkbXdoaWNoIHhtb2RtYXBgCi1pZiBbICJ4JFhNT0RNQVAiICE9ICJ4IiBdIDsgdGhlbgotICBpZiBbICJ4JEdETV9QQVJFTlRfRElTUExBWSIgPSAieCIgXTsgdGhlbgotICAgIGlmIFsgLWYgJHN5c21vZG1hcCBdOyB0aGVuCi0gICAgICAkWE1PRE1BUCAkc3lzbW9kbWFwCi0gICAgZmkKLSAgZWxzZQotICAgICggRElTUExBWT0kR0RNX1BBUkVOVF9ESVNQTEFZIFhBVVRIT1JJVFk9JEdETV9QQVJFTlRfWEFVVEhPUklUWSAkWE1PRE1BUCAtcGtlICkgfCAkWE1PRE1BUCAtCi0gIGZpCi0KLSAgIwotICAjIFN3aXRjaCBTdW4ncyBBbHQgYW5kIE1ldGEgbW9kIG1hcHBpbmdzCi0gICMKLQotICBVTkFNRT1gZ2Rtd2hpY2ggdW5hbWVgCi0gIFBST0NFU1NPUj1gJFVOQU1FIC1wYAotICBpZiBbICJ4JFBST0NFU1NPUiIgPSAieHNwYXJjIiBdOyB0aGVuCi0gICAgaWYgJFhNT0RNQVAgfCAvdXNyL2Jpbi9ncmVwIG1vZDQgfCAvdXNyL2Jpbi9ncmVwIEFsdCA+IC9kZXYvbnVsbCAyPi9kZXYvbnVsbAotICAgIHRoZW4KLSAgICAgICRYTU9ETUFQIC1lICJjbGVhciBNb2QxIiBcCi0gICAgICAgICAgICAgICAtZSAiY2xlYXIgTW9kNCIgXAotICAgICAgICAgICAgICAgLWUgImFkZCBNb2QxID0gQWx0X0wiIFwKLSAgICAgICAgICAgICAgIC1lICJhZGQgTW9kMSA9IEFsdF9SIiBcCi0gICAgICAgICAgICAgICAtZSAiYWRkIE1vZDQgPSBNZXRhX0wiIFwKLSAgICAgICAgICAgICAgIC1lICJhZGQgTW9kNCA9IE1ldGFfUiIKLSAgICBmaQotICBmaQotZmkKLQotU0VUWEtCTUFQPWBnZG13aGljaCBzZXR4a2JtYXBgCi1pZiBbICJ4JFNFVFhLQk1BUCIgIT0gIngiIF0gOyB0aGVuCi0gICMgRklYTUU6IGlzIHRoaXMgYWxsIHJpZ2h0PyAgSXMgdGhpcyBjb21wbGV0ZWx5IG9uIGNyYWNrPwotICAjIFdoYXQgdGhpcyBkb2VzIGlzIG1vdmUgdGhlIHhrYiBjb25maWd1cmF0aW9uIGZyb20gdGhlIEdETV9QQVJFTlRfRElTUExBWQotICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkb25lIGluIGNvZGUuICBPciB0aGVyZSBtdXN0IGJlIGFuIGVhc2llciB3YXkgLi4uCi0gIGlmIFsgLW4gIiRHRE1fUEFSRU5UX0RJU1BMQVkiIF07IHRoZW4KLSAgICBYS0JTRVRVUD1gKCBESVNQTEFZPSRHRE1fUEFSRU5UX0RJU1BMQVkgWEFVVEhPUklUWT0kR0RNX1BBUkVOVF9YQVVUSE9SSVRZICRTRVRYS0JNQVAgLXYgKWAKLSAgICBpZiBbIC1uICIkWEtCU0VUVVAiIF07IHRoZW4KLSAgICAgIFhLQktFWU1BUD1gZWNobyAiJFhLQlNFVFVQIiB8IGdyZXAgJ15rZXltYXAnIHwgYXdrICd7IHByaW50ICQyIH0nYAotICAgICAgWEtCVFlQRVM9YGVjaG8gIiRYS0JTRVRVUCIgfCBncmVwICdedHlwZXMnIHwgYXdrICd7IHByaW50ICQyIH0nYAotICAgICAgWEtCQ09NUEFUPWBlY2hvICIkWEtCU0VUVVAiIHwgZ3JlcCAnXmNvbXBhdCcgfCBhd2sgJ3sgcHJpbnQgJDIgfSdgCi0gICAgICBYS0JTWU1CT0xTPWBlY2hvICIkWEtCU0VUVVAiIHwgZ3JlcCAnXnN5bWJvbHMnIHwgYXdrICd7IHByaW50ICQyIH0nYAotICAgICAgWEtCR0VPTUVUUlk9YGVjaG8gIiRYS0JTRVRVUCIgfCBncmVwICdeZ2VvbWV0cnknIHwgYXdrICd7IHByaW50ICQyIH0nYAotICAgICAgaWYgWyAtbiAiJFhLQktFWU1BUCIgXTsgdGhlbgotICAgICAgICAkU0VUWEtCTUFQIC1rZXltYXAgIiRYS0JLRVlNQVAiCi0gICAgICBlbGlmIFsgLW4gIiRYS0JUWVBFUyIgLWEgLW4gIiRYS0JDT01QQVQiIC1hIC1uICIkWEtCU1lNQk9MUyIgLWEgLW4gIiRYS0JHRU9NRVRSWSIgXTsgdGhlbgotICAgICAgICAkU0VUWEtCTUFQIC10eXBlcyAiJFhLQlRZUEVTIiAtY29tcGF0ICIkWEtCQ09NUEFUIiAtc3ltYm9scyAiJFhLQlNZTUJPTFMiIC1nZW9tZXRyeSAiJFhLQkdFT01FVFJZIgotICAgICAgZWxpZiBbIC1uICIkWEtCVFlQRVMiIC1hIC1uICIkWEtCQ09NUEFUIiAtYSAtbiAiJFhLQlNZTUJPTFMiIF07IHRoZW4KLSAgICAgICAgJFNFVFhLQk1BUCAtdHlwZXMgIiRYS0JUWVBFUyIgLWNvbXBhdCAiJFhLQkNPTVBBVCIgLXN5bWJvbHMgIiRYS0JTWU1CT0xTIgotICAgICAgZWxpZiBbIC1uICIkWEtCU1lNQk9MUyIgXTsgdGhlbgotICAgICAgICAkU0VUWEtCTUFQIC1zeW1ib2xzICIkWEtCU1lNQk9MUyIKLSAgICAgIGZpCi0gICAgZmkKLSAgZmkKLWZpCi0KLSMgRklYTUU6IHRoZSBob3VzZWtlZXBpbmcgYmVsb3cgcmVhbGx5IHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgcG9zdGluc3Qgb2YgcGFja2FnZXMgdGhhdCByZXF1aXJlIGl0Ci0jIGJydXRlIGZvcmNlIGFwcHJvYWNoIGZvciBub3cKLXVwZGF0ZS1kZXNrdG9wLWRhdGFiYXNlCi1nbGliLWNvbXBpbGUtc2NoZW1hcyAvdXNyL3NoYXJlL2dsaWItMi4wL3NjaGVtYXMvCi0KLSN4MTF2bmMgIC1xIC1iZyAtZGlzcGxheSA6MCAtZm9yZXZlciAtYXZhaGkgLXhrYgotCi1leGl0IDAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vY3Jvc3MteGRldGVjdGlvbi5kaWZmIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9jcm9zcy14ZGV0ZWN0aW9uLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlZTM1MTEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9jcm9zcy14ZGV0ZWN0aW9uLmRpZmYKKysrIC9kZXYvbnVsbApAQCAtMSw5NiArMCwwIEBACi1Gcm9tIDYwMDg0ZTdlOTczNjM0OTcxYzk2NDNmMjQ1OWU1ZDNlMjQ4ZWUzZjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotRGF0ZTogVGh1LCA5IEp1biAyMDExIDE4OjEyOjQ1ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGJ1aWxkLXN5czogaGFyZGNvZGUgeCBwYXRocyB0byBmaXggY3Jvc3Njb21waWxpbmcKLQotU2lnbmVkLW9mZi1ieTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KLS0tLQotIGNvbmZpZ3VyZS5hYyB8ICAgNzIgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDY3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBlZWFmM2RjLi44NDFlZmUwIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC0xMTAxLDczICsxMTAxLDExIEBAIGRubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBkbmwgLSBDaGVjayBmb3IgWCBTZXJ2ZXIgbG9jYXRpb24KLSBkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gCi0tIyBGaXJzdCBjaGVjayB3aXRoICIhIC1oIiBmb3IgL3Vzci9YMTFSNiBhbmQgL3Vzci9YMTEgc2luY2UgdGhleSBvZnRlbgotLSMgc3ltbGluayB0byBlYWNoIG90aGVyLCBhbmQgY29uZmlndXJlIHNob3VsZCB1c2UgdGhlIG1vcmUgc3RhYmxlCi0tIyBsb2NhdGlvbiAodGhlIHJlYWwgZGlyZWN0b3J5KSBpZiBwb3NzaWJsZS4KLS0jCi0tIyBPbiBTb2xhcmlzLCB0aGUgL3Vzci9iaW4vWHNlcnZlciBzY3JpcHQgaXMgdXNlZCB0byBkZWNpZGUgd2hldGhlciB0bwotLSMgdXNlIFhzdW4gb3IgWG9yZywgc28gdGhpcyBpcyB1c2VkIG9uIFNvbGFyaXMuCi0tIwotLSMgV2hlbiB0ZXN0aW5nIGZvciAvdXNyL1gxMVI2LCBmaXJzdCBjaGVjayB3aXRoICIhIC1oIiBmb3IgL3Vzci9YMTFSNgotLSMgYW5kIC91c3IvWDExIHNpbmNlIHRoZXkgb2Z0ZW4gc3ltbGluayB0byBlYWNoIG90aGVyLCBhbmQgY29uZmlndXJlCi0tIyBzaG91bGQgdXNlIHRoZSBtb3JlIHN0YWJsZSBsb2NhdGlvbiAodGhlIHJlYWwgZGlyZWN0b3J5KSBpZiBwb3NzaWJsZS4KLS0jCi0taWYgdGVzdCAteCAvdXNyL1gxMS9iaW4vWHNlcnZlcjsgdGhlbgotLSAgIFhfUEFUSD0iL3Vzci9YMTEvYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii91c3IvWDExL2JpbiIKLS0gICBYX1NFUlZFUj0iL3Vzci9YMTEvYmluL1hzZXJ2ZXIiCi0tICAgWF9DT05GSUdfT1BUSU9OUz0iLWF1ZGl0IDAiCi0tZWxpZiB0ZXN0ICEgLWggL3Vzci9YMTFSNiAtYSAteCAvdXNyL1gxMVI2L2Jpbi9YOyB0aGVuCi0tICAgWF9QQVRIPSIvdXNyL1gxMVI2L2JpbiIKLS0gICBYX1NFUlZFUl9QQVRIPSIvdXNyL1gxMVI2L2JpbiIKLS0gICBYX1NFUlZFUj0iL3Vzci9YMTFSNi9iaW4vWCIKLS0gICBYX0NPTkZJR19PUFRJT05TPSItYXVkaXQgMCIKLS1lbGlmIHRlc3QgISAtaCAvdXNyL1gxMSAtYSAteCAvdXNyL1gxMS9iaW4vWDsgdGhlbgotLSAgIFhfUEFUSD0iL3Vzci9YMTEvYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii91c3IvWDExL2JpbiIKLS0gICBYX1NFUlZFUj0iL3Vzci9YMTEvYmluL1giCi0tICAgWF9DT05GSUdfT1BUSU9OUz0iLWF1ZGl0IDAiCi0tZWxpZiB0ZXN0IC14IC91c3IvWDExUjYvYmluL1g7IHRoZW4KLS0gICBYX1BBVEg9Ii91c3IvWDExUjYvYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii91c3IvWDExUjYvYmluIgotLSAgIFhfU0VSVkVSPSIvdXNyL1gxMVI2L2Jpbi9YIgotLSAgIFhfQ09ORklHX09QVElPTlM9Ii1hdWRpdCAwIgotLWVsaWYgdGVzdCAteCAvdXNyL2Jpbi9Yb3JnOyB0aGVuCi0tICAgWF9QQVRIPSIvdXNyL2JpbiIKLS0gICBYX1NFUlZFUl9QQVRIPSIvdXNyL2JpbiIKLS0gICBYX1NFUlZFUj0iL3Vzci9iaW4vWG9yZyIKLS0gICBYX0NPTkZJR19PUFRJT05TPSItYXVkaXQgMCIKLS1lbGlmIHRlc3QgLXggL3Vzci9YMTEvYmluL1g7IHRoZW4KLS0gICBYX1BBVEg9Ii91c3IvWDExL2JpbiIKLS0gICBYX1NFUlZFUl9QQVRIPSIvdXNyL1gxMS9iaW4iCi0tICAgWF9TRVJWRVI9Ii91c3IvWDExL2Jpbi9YIgotLSAgIFhfQ09ORklHX09QVElPTlM9Ii1hdWRpdCAwIgotLWVsaWYgdGVzdCAteCAvdXNyL29wZW53aW4vYmluL1hzdW47IHRoZW4KLS0gICAjIERvIG5vdCBhZGQgL3Vzci9vcGVud2luL2JpbiBoZXJlIGJlY2F1c2Ugb24gU29sYXJpcyB5b3UgbmVlZAotLSAgICMgL3Vzci9vcGVud2luL2JpbiBpbiB5b3VyIFBBVEggZXZlbiBpZiB5b3UgYXJlIHVzaW5nIHRoZSBYb3JnCi0tICAgIyBYc2VydmVyLiAgV2UgYWRkIHRoaXMgdG8gdGhlIHBhdGggYmVsb3cuCi0tICAgWF9QQVRIPSIvdXNyL29wZW53aW4vYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii91c3Ivb3Blbndpbi9iaW4iCi0tICAgWF9TRVJWRVI9Ii91c3Ivb3Blbndpbi9iaW4vWHN1biIKLS0gICBYX0NPTkZJR19PUFRJT05TPSItYXVkaXQgMCAtbm9iYW5uZXIiCi0tZWxpZiB0ZXN0IC14IC9vcHQvWDExUjYvYmluL1g7IHRoZW4KLS0gICBYX1BBVEg9Ii9vcHQvWDExUjYvYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii9vcHQvWDExUjYvYmluIgotLSAgIFhfU0VSVkVSPSIvb3B0L1gxMVI2L2Jpbi9YIgotLSAgIFhfQ09ORklHX09QVElPTlM9Ii1hdWRpdCAwIgotLWVsaWYgdGVzdCAteCAvdXNyL2Jpbi9YOyB0aGVuCi0tICAgWF9QQVRIPSIvdXNyL2JpbiIKLS0gICBYX1NFUlZFUl9QQVRIPSIvdXNyL2JpbiIKLS0gICBYX1NFUlZFUj0iL3Vzci9iaW4vWCIKLS0gICBYX0NPTkZJR19PUFRJT05TPSItYXVkaXQgMCIKLS1lbHNlCi0tICAgIyB3aGF0IHRvIGRvLCB3aGF0IHRvIGRvLCB0aGlzIGlzIHdyb25nLCBidXQgdGhpcyBqdXN0IHNldHMgdGhlCi0tICAgIyBkZWZhdWx0cywgcGVyaGFwcyB0aGlzIHVzZXIgaXMgY3Jvc3MgY29tcGlsaW5nIG9yIHNvbWUgc3VjaAotLSAgIFhfUEFUSD0iL3Vzci9iaW4vWDExOi91c3IvWDExUjYvYmluOi9vcHQvWDExUjYvYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii91c3IvYmluIgotLSAgIFhfU0VSVkVSPSIvdXNyL2Jpbi9YIgotLSAgIFhfQ09ORklHX09QVElPTlM9Ii1hdWRpdCAwIgotLWZpCi0rIyBXZSBoYXJkY29kZSB0aGUgWCBwYXRocyBzaW5jZSB3ZSBrbm93IHdoZXJlIGl0IHdpbGwgYmUgaW4gdGhlIE9FIHVuaXZlcnMKLStYX1BBVEg9Ii91c3IvYmluIgotK1hfU0VSVkVSX1BBVEg9Ii91c3IvYmluIgotK1hfU0VSVkVSPSIvdXNyL2Jpbi9YIgotK1hfQ09ORklHX09QVElPTlM9Ii1hdWRpdCAwIgotIAotIGRubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBkbmwgLSBDaGVjayBmb3IgWG5lc3QgLyBYZXBoeXIgc3VwcG9ydAotLS0gCi0xLjYuNi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vZ2RtIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9nZG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGJiNWI0MTguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9nZG0KKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0jISAvYmluL3NoCi0jIyMgQkVHSU4gSU5JVCBJTkZPCi0jIFByb3ZpZGVzOiAgICAgICAgICBnZG0KLSMgU2hvdWxkLVN0YXJ0OiAgICAgIGNvbnNvbGUtc2NyZWVuIGFjcGlkIGRidXMgaGFsIG5ldHdvcmstbWFuYWdlcgotIyBSZXF1aXJlZC1TdGFydDogICAgJGxvY2FsX2ZzICRyZW1vdGVfZnMKLSMgUmVxdWlyZWQtU3RvcDogICAgICRsb2NhbF9mcyAkcmVtb3RlX2ZzCi0jIERlZmF1bHQtU3RhcnQ6ICAgICA1Ci0jIERlZmF1bHQtU3RvcDogICAgICAwIDEgMiAzIDYKLSMgU2hvcnQtRGVzY3JpcHRpb246IEdOT01FIERpc3BsYXkgTWFuYWdlcgotIyBEZXNjcmlwdGlvbjogICAgICAgRGViaWFuIGluaXQgc2NyaXB0IGZvciB0aGUgR05PTUUgRGlzcGxheSBNYW5hZ2VyCi0jIyMgRU5EIElOSVQgSU5GTwotIwotIyBBdXRob3I6ICAgICAgIFJ5YW4gTXVycmF5IDxybXVycmF5QGRlYmlhbi5vcmc+Ci0jCi1zZXQgLWUKLQotUEFUSD0vc2JpbjovYmluOi91c3Ivc2JpbjovdXNyL2JpbgotREFFTU9OPS91c3Ivc2Jpbi9nZG0KLQotdGVzdCAteCAkREFFTU9OIHx8IGV4aXQgMAotCi1pZiBbIC1yIC9ldGMvZGVmYXVsdC9sb2NhbGUgXTsgdGhlbgotICAuIC9ldGMvZGVmYXVsdC9sb2NhbGUKLSAgZXhwb3J0IExBTkcgTEFOR1VBR0UKLWZpCi0KLSMgVG8gc3RhcnQgZ2RtIGV2ZW4gaWYgaXQgaXMgbm90IHRoZSBkZWZhdWx0IGRpc3BsYXkgbWFuYWdlciwgY2hhbmdlCi0jIEhFRURfREVGQVVMVF9ESVNQTEFZX01BTkFHRVIgdG8gImZhbHNlLiIKLUhFRURfREVGQVVMVF9ESVNQTEFZX01BTkFHRVI9dHJ1ZQotREVGQVVMVF9ESVNQTEFZX01BTkFHRVJfRklMRT0vZXRjL1gxMS9kZWZhdWx0LWRpc3BsYXktbWFuYWdlcgotCi1jYXNlICIkMSIgaW4KLSAgc3RhcnQpCi0JIyBtYWtlIG5lZWRlZCBkaXJlY3RvcmllcyBpbiB2b2xhdGlsZQotCi0JaWYgWyAtZSAvdmFyL2xvZy9nZG0gXSA7IHRoZW4gCi0JCXJtIC1yZiAvdmFyL2xvZy9nZG0KLQlmaQotCi0JbWtkaXIgLW0gMDE3NzAgL3Zhci9sb2cvZ2RtCi0JY2hvd24gZ2RtOmdkbSAvdmFyL2xvZy9nZG0KLQotCWlmIFsgLWUgL3RtcC8uSUNFLXVuaXggXSA7IHRoZW4gCi0JCXJtIC1yZiAvdG1wLy5JQ0UtdW5peAotCWZpCi0KLQlta2RpciAtbSAwMTc3NyAvdG1wLy5JQ0UtdW5peAotCWNob3duIHJvb3Q6cm9vdCAvdG1wLy5JQ0UtdW5peAotCi0gICAgICAgIENPTkZJR1VSRURfREFFTU9OPSQoYmFzZW5hbWUgIiQoY2F0ICRERUZBVUxUX0RJU1BMQVlfTUFOQUdFUl9GSUxFIDI+IC9kZXYvbnVsbCkiKQotICAgICAgICBpZiBncmVwIC13cXMgdGV4dCAvcHJvYy9jbWRsaW5lOyB0aGVuCi0gICAgICAgICAgICBlY2hvICJOb3Qgc3RhcnRpbmcgR05PTUUgRGlzcGxheSBNYW5hZ2VyIChnZG0pOyBmb3VuZCAndGV4dCcgaW4ga2VybmVsIGNvbW1hbmRsaW5lLiIKLSAgICAgICAgZWxpZiBbIC1lICIkREVGQVVMVF9ESVNQTEFZX01BTkFHRVJfRklMRSIgXSAmJiBcCi0gICAgICAgICAgIFsgIiRIRUVEX0RFRkFVTFRfRElTUExBWV9NQU5BR0VSIiA9ICJ0cnVlIiBdICYmIFwKLSAgICAgICAgICAgWyAiJENPTkZJR1VSRURfREFFTU9OIiAhPSBnZG0gXSA7IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICJOb3Qgc3RhcnRpbmcgR05PTUUgRGlzcGxheSBNYW5hZ2VyOyBpdCBpcyBub3QgdGhlIGRlZmF1bHQgZGlzcGxheSBtYW5hZ2VyIgotICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZWNobyAiU3RhcnRpbmcgR05PTUUgRGlzcGxheSBNYW5hZ2VyIiAiZ2RtIgotICAgICAgICAgICAgICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RhcnQgLWIgLS1leGVjICREQUVNT04gCi0gICAgICAgIGZpCi0gIDs7Ci0gIHN0b3ApCi0gICAgICAgIGVjaG8gIlN0b3BwaW5nIEdOT01FIERpc3BsYXkgTWFuYWdlciIgImdkbSIKLSAgICAgICAgc2V0ICtlCi0gICAgICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAtLXF1aWV0IC0tcGlkZmlsZSAvdmFyL3J1bi9nZG0ucGlkIFwKLSAgICAgICAgICAgICAgICAtLW5hbWUgZ2RtIC0tcmV0cnkgNQotICAgICAgICBzZXQgLWUKLSAgOzsKLSAgcmVsb2FkKQotICAgICAgICBlY2hvICJTY2hlZHVsaW5nIHJlbG9hZCBvZiBHTk9NRSBEaXNwbGF5IE1hbmFnZXIgY29uZmlndXJhdGlvbiIgImdkbSIKLSAgICAgICAgc2V0ICtlCi0gICAgICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAtLXNpZ25hbCBVU1IxIC0tcXVpZXQgLS1waWRmaWxlIFwKLSAgICAgICAgICAgICAgICAvdmFyL3J1bi9nZG0ucGlkIC0tbmFtZSBnZG0KLSAgICAgICAgc2V0IC1lCi0gIDs7Ci0gIHN0YXR1cykKLSAgICAgICAgc3RhdHVzX29mX3Byb2MgLXAgIiRQSURGSUxFIiAiJERBRU1PTiIgZ2RtICYmIGV4aXQgMCB8fCBleGl0ICQ/Ci0gIDs7Ci0gIHJlc3RhcnR8Zm9yY2UtcmVsb2FkKQotICAgICAgICAkMCBzdG9wCi0gICAgICAgICQwIHN0YXJ0Ci0gIDs7Ci0gICopCi0gICAgICAgIGVjaG8gIlVzYWdlOiAvZXRjL2luaXQuZC9nZG0ge3N0YXJ0fHN0b3B8cmVzdGFydHxyZWxvYWR8Zm9yY2UtcmVsb2FkfHN0YXR1c30iCi0gICAgICAgIGV4aXQgMQotICA7OwotZXNhYwotCi1leGl0IDAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vZ2RtLXBhbSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vZ2RtLXBhbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjlmYWZlZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nZG0vZ2RtL2dkbS1wYW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0jCi0jIGRlZmF1bHQ7IHN0YW5kYXJkIFVOKlggYWNjZXNzCi0jCi1hdXRoICAgICByZXF1aXJlZCAgICAgICBwYW1fdW5peC5zbwotYWNjb3VudCAgcmVxdWlyZWQgICAgICAgcGFtX3VuaXguc28KLXBhc3N3b3JkIHJlcXVpcmVkICAgICAgIHBhbV91bml4LnNvCi1zZXNzaW9uICByZXF1aXJlZCAgICAgICBwYW1fdW5peC5zbwotCi1hdXRoICAgICBvcHRpb25hbCAgICAgICBwYW1fZ25vbWVfa2V5cmluZy5zbwotc2Vzc2lvbiAgb3B0aW9uYWwgICAgICAgcGFtX2dub21lX2tleXJpbmcuc28gIGF1dG9fc3RhcnQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9nZG0uY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vZ2RtLmNvbmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1OTgyM2IuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9nZG0uY29uZgorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLSMgR0RNIEN1c3RvbSBDb25maWd1cmF0aW9uIGZpbGUuCi0jCi0jIFRoaXMgZmlsZSBpcyB0aGUgYXBwcm9wcmlhdGUgcGxhY2UgZm9yIHNwZWNpZnlpbmcgeW91ciBjdXN0b21pemF0aW9ucyB0byB0aGUKLSMgR0RNIGNvbmZpZ3VyYXRpb24uICAgSWYgeW91IHJ1biBnZG1zZXR1cCwgaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGVkaXQgdGhpcwotIyBmaWxlIGZvciB5b3UgYW5kIHdpbGwgY2F1c2UgdGhlIGRhZW1vbiBhbmQgYW55IHJ1bm5pbmcgR0RNIEdVSSBwcm9ncmFtcyB0bwotIyBhdXRvbWF0aWNhbGx5IHVwZGF0ZSB3aXRoIHRoZSBuZXcgY29uZmlndXJhdGlvbi4gIE5vdCBhbGwgY29uZmlndXJhdGlvbgotIyBvcHRpb25zIGFyZSBzdXBwb3J0ZWQgYnkgZ2Rtc2V0dXAsIHNvIHRvIG1vZGlmeSBzb21lIHZhbHVlcyBpdCBtYXkgYmUKLSMgbmVjZXNzYXJ5IHRvIG1vZGlmeSB0aGlzIGZpbGUgZGlyZWN0bHkgYnkgaGFuZC4KLSMKLSMgVGhpcyBmaWxlIG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNldHRpbmdzLiAgVGhlc2Ugc2V0dGluZ3MgCi0jIGFyZSBzdG9yZWQgaW4gdGhlIEdETSBTeXN0ZW0gRGVmYXVsdHMgY29uZmlndXJhdGlvbiBmaWxlLCB3aGljaCBpcyBmb3VuZAotIyBhdCB0aGUgZm9sbG93aW5nIGxvY2F0aW9uLgotIwotIyAvdXNyL3NoYXJlL2dkbS9kZWZhdWx0cy5jb25mLiAgCi0jCi0jIFRoaXMgZmlsZSBjb250YWlucyBjb21tZW50cyBhYm91dCB0aGUgbWVhbmluZyBvZiBlYWNoIGNvbmZpZ3VyYXRpb24gb3B0aW9uLAotIyBzbyBpcyBhbHNvIGEgdXNlZnVsIHJlZmVyZW5jZS4gIEFsc28gcmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gbGlua3MgYXQKLSMgdGhlIGVuZCBvZiB0aGlzIGNvbW1lbnQgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24uICBJbiBzaG9ydCwgdG8gaGFuZC1lZGl0Ci0jIHRoaXMgZmlsZSwgc2ltcGx5IGFkZCBvciBtb2RpZnkgdGhlIGtleT12YWx1ZSBjb21iaW5hdGlvbiBpbiB0aGUKLSMgYXBwcm9wcmlhdGUgc2VjdGlvbiBpbiB0aGUgdGVtcGxhdGUgYmVsb3cgdGhpcyBjb21tZW50IHNlY3Rpb24uCi0jCi0jIEZvciBleGFtcGxlLCBpZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGEgZGlmZmVyZW50IHZhbHVlIGZvciB0aGUgRW5hYmxlIGtleQotIyBpbiB0aGUgIltkZWJ1Z10iIHNlY3Rpb24gb2YgeW91ciBHRE0gU3lzdGVtIERlZmF1bHRzIGNvbmZpZ3VyYXRpb24gZmlsZSwKLSMgdGhlbiBhZGQgIkVuYWJsZT10cnVlIiBpbiB0aGUgIltkZWJ1Z10iIHNlY3Rpb24gb2YgdGhpcyBmaWxlLiAgSWYgdGhlCi0jIGtleSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIGZpbGUsIHRoZW4gc2ltcGx5IG1vZGlmeSBpdC4KLSMKLSMgT2xkZXIgdmVyc2lvbnMgb2YgR0RNIHVzZWQgdGhlICJnZG0uY29uZiIgZmlsZSBmb3IgY29uZmlndXJhdGlvbi4gIElmIHlvdXIKLSMgc3lzdGVtIGhhcyBhbiBvbGQgZ2RtLmNvbmYgZmlsZSBvbiB0aGUgc3lzdGVtLCBpdCB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZgotIyB0aGlzIGZpbGUgLSBzbyBjaGFuZ2VzIG1hZGUgdG8gdGhpcyBmaWxlIHdpbGwgbm90IHRha2UgZWZmZWN0LiAgQ29uc2lkZXIKLSMgbWlncmF0aW5nIHlvdXIgY29uZmlndXJhdGlvbiB0byB0aGlzIGZpbGUgYW5kIHJlbW92aW5nIHRoZSBnZG0uY29uZiBmaWxlLgotIwotIyBJZiB5b3UgaGFuZCBlZGl0IGEgR0RNIGNvbmZpZ3VyYXRpb24gZmlsZSwgeW91IGNhbiBydW4gdGhlIGZvbGxvd2luZwotIyBjb21tYW5kIGFuZCB0aGUgR0RNIGRhZW1vbiB3aWxsIGltbWVkaWF0ZWx5IHJlZmxlY3QgdGhlIGNoYW5nZS4gIEFueQotIyBydW5uaW5nIEdETSBHVUkgcHJvZ3JhbXMgd2lsbCBhbHNvIGJlIG5vdGlmaWVkIHRvIHVwZGF0ZSB3aXRoIHRoZSBuZXcKLSMgY29uZmlndXJhdGlvbi4KLSMKLSMgZ2RtZmxleGlzZXJ2ZXIgLS1jb21tYW5kPSJVUERBVEVfQ09ORklHIDxjb25maWd1cmF0aW9uIGtleT4iCi0jCi0jIGUuZywgdGhlICJFbmFibGUiIGtleSBpbiB0aGUgIltkZWJ1Z10iIHNlY3Rpb24gd291bGQgYmUgImRlYnVnL0VuYWJsZSIuCi0jCi0jIFlvdSBjYW4gYWxzbyBydW4gZ2RtLXJlc3RhcnQgb3IgZ2RtLXNhZmUtcmVzdGFydCB0byBjYXVzZSBHRE0gdG8gcmVzdGFydCBhbmQKLSMgcmUtcmVhZCB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuICBZb3UgY2FuIGFsc28gcmVzdGFydCBHRE0gYnkgc2VuZGluZwotIyBhIEhVUCBvciBVU1IxIHNpZ25hbCB0byB0aGUgZGFlbW9uLiAgSFVQIGJlaGF2ZXMgbGlrZSBnZG0tcmVzdGFydCBhbmQgY2F1c2VzCi0jIGFueSB1c2VyIHNlc3Npb24gc3RhcnRlZCBieSBHRE0gdG8gZXhpdCBpbW1lZGlhdGVseSB3aGlsZSBVU1IxIGJlaGF2ZXMgbGlrZQotIyBnZG0tc2FmZS1yZXN0YXJ0IGFuZCB3aWxsIHdhaXQgdW50aWwgYWxsIHVzZXJzIGxvZyBvdXQgYmVmb3JlIHJlc3RhcnRpbmcgR0RNLgotIwotIyBGb3IgZnVsbCByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbiBzZWUgdGhlIGdub21lIGhlbHAgYnJvd3NlciB1bmRlcgotIyBHTk9NRXxTeXN0ZW0gY2F0ZWdvcnkuICBZb3UgY2FuIGFsc28gZmluZCB0aGUgZG9jcyBpbiBIVE1MIGZvcm0gb24KLSMgaHR0cDovL3d3dy5nbm9tZS5vcmcvcHJvamVjdHMvZ2RtLwotIwotIyBOT1RFOiBMaW5lcyB0aGF0IGJlZ2luIHdpdGggIiMiIGFyZSBjb25zaWRlcmVkIGNvbW1lbnRzLgotIwotIyBIYXZlIGZ1biEKLQotW2RhZW1vbl0KLQotW3NlY3VyaXR5XQotCi1beGRtY3BdCi0KLVtndWldCi0KLVtncmVldGVyXQotCi1bY2hvb3Nlcl0KLQotW2RlYnVnXQotCi0jIE5vdGUgdGhhdCB0byBkaXNhYmxlIHNlcnZlcnMgZGVmaW5lZCBpbiB0aGUgR0RNIFN5c3RlbSBEZWZhdWx0cwotIyBjb25maWd1cmF0aW9uIGZpbGUgKHN1Y2ggYXMgMD1TdGFuZGFyZCwgeW91IG11c3QgcHV0IGEgbGluZSBpbiB0aGlzIGZpbGUKLSMgdGhhdCBzYXlzIDA9aW5hY3RpdmUsIGFzIGRlc2NyaWJlZCBpbiB0aGUgQ29uZmlndXJhdGlvbiBzZWN0aW9uIG9mIHRoZSBHRE0KLSMgZG9jdW1lbnRhdGlvbi4KLSMKLVtzZXJ2ZXJzXQotCi0jIEFsc28gbm90ZSwgdGhhdCBpZiB5b3UgcmVkZWZpbmUgYSBbc2VydmVyLWZvb10gc2VjdGlvbiwgdGhlbiBHRE0gd2lsbAotIyB1c2UgdGhlIGRlZmluaXRpb24gaW4gdGhpcyBmaWxlLCBub3QgdGhlIEdETSBTeXN0ZW0gRGVmYXVsdHMgY29uZmlndXJhdGlvbgotIyBmaWxlLiAgSXQgaXMgY3VycmVudGx5IG5vdCBwb3NzaWJsZSB0byBkaXNhYmxlIGEgW3NlcnZlci1mb29dIHNlY3Rpb24KLSMgZGVmaW5lZCBpbiB0aGUgR0RNIFN5c3RlbSBEZWZhdWx0cyBjb25maWd1cmF0aW9uIGZpbGUuCi0jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nZG0vZ2RtL2dkbS5zZXJ2aWNlLmluIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9nZG0uc2VydmljZS5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2UxNTU2YS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nZG0vZ2RtL2dkbS5zZXJ2aWNlLmluCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotW1VuaXRdCi1EZXNjcmlwdGlvbj1Hbm9tZSBEaXNwbGF5IE1hbmFnZXIKLUFmdGVyPXN5c3RlbWQtdXNlci1zZXNzaW9ucy5zZXJ2aWNlCi0KLVtTZXJ2aWNlXQotRXhlY1N0YXJ0PSVzYmluZGlyJS9nZG0gLW5vZGFlbW9uCi1TdGFuZGFyZE91dHB1dD1zeXNsb2cKLQotW0luc3RhbGxdCi1BbGlhcz1kaXNwbGF5LW1hbmFnZXIuc2VydmljZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2VkaXQvZ2VkaXRfMi4zMC40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2VkaXQvZ2VkaXRfMi4zMC40LmJiCmluZGV4IDVkMjQ0ZGUuLmJhNDI1YWQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dlZGl0L2dlZGl0XzIuMzAuNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nZWRpdC9nZWRpdF8yLjMwLjQuYmIKQEAgLTcsNyArNywxMCBAQAogCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKIAotaW5oZXJpdCBnbm9tZSBnZXR0ZXh0IHB5dGhvbm5hdGl2ZQoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgZ25vbWUgZ2V0dGV4dCBweXRob25uYXRpdmUKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKwogU1JDX1VSSSA9ICIke0dOT01FX01JUlJPUn0vJHtHTk9NRUJOfS8ke0Bnbm9tZV92ZXJkaXIoIiR7UFZ9Iil9LyR7R05PTUVCTn0tJHtQVn0udGFyLiR7R05PTUVfQ09NUFJFU1NfVFlQRX07bmFtZT1hcmNoaXZlIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtd29ya2Fyb3VuZC12b2lkLXBvaW50ZXItYXJpdGhtZXRpYy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLVJlbW92ZS1oZWxwLWRpcmVjdG9yeS1mcm9tLWJ1aWxkLnBhdGNoIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvZ25vbWUta2V5cmluZy9lZ2ctYXNuMXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1rZXlyaW5nL2dub21lLWtleXJpbmcvZWdnLWFzbjF4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDhhNDBjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvZ25vbWUta2V5cmluZy9lZ2ctYXNuMXgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi1GaXhlZCBidWlsZCBlcnJvciB3aXRoIGdjYyA0LjgKLQotRXJyb3JzIGxpa2UgYmVsb3cKLQotZWdnLWFzbjF4LmM6IEluIGZ1bmN0aW9uICdhbm9kZV9lbmNvZGVfYnVpbGQnOgotZWdnLWFzbjF4LmM6MTI4MDo3OiB3YXJuaW5nOiB2YXJpYWJsZSAndHlwZScgc2V0IGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KLWVnZy1hc24xeC5jOiBJbiBmdW5jdGlvbiAndHJhdmVyc2VfYW5kX3ByZXBhcmUnOgotZWdnLWFzbjF4LmM6MzM1NDozOiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ2VnZ19hc24xeF9jcmVhdGUnIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbZW5hYmxlZCBieSBkZWZhdWx0XQotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGVnZy1hc24xeC5jOjUwOjA6Ci1lZ2ctYXNuMXguaDozODo4OiBub3RlOiBleHBlY3RlZCAnY29uc3Qgc3RydWN0IHN0YXRpY19zdHJ1Y3RfYXNuIConIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlICdjb25zdCBzdHJ1Y3QgYXNuMV9zdGF0aWNfbm9kZSAqJwotZWdnLWFzbjF4LmM6IEF0IHRvcCBsZXZlbDoKLWVnZy1hc24xeC5jOjM1MDk6MTogZXJyb3I6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciAnZWdnX2FzbjF4X2NyZWF0ZScKLUluIGZpbGUgaW5jbHVkZWQgZnJvbSBlZ2ctYXNuMXguYzo1MDowOgotZWdnLWFzbjF4Lmg6Mzg6ODogbm90ZTogcHJldmlvdXMgZGVjbGFyYXRpb24gb2YgJ2VnZ19hc24xeF9jcmVhdGUnIHdhcyBoZXJlCi1lZ2ctYXNuMXguYzozNTcyOjE6IGVycm9yOiBjb25mbGljdGluZyB0eXBlcyBmb3IgJ2VnZ19hc24xeF9jcmVhdGVfcXVhcmsnCi1JbiBmaWxlIGluY2x1ZGVkIGZyb20gZWdnLWFzbjF4LmM6NTA6MDoKLWVnZy1hc24xeC5oOjQxOjg6IG5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdlZ2dfYXNuMXhfY3JlYXRlX3F1YXJrJyB3YXMgaGVyZQotZWdnLWFzbjF4LmM6MzU3OToxOiBlcnJvcjogY29uZmxpY3RpbmcgdHlwZXMgZm9yICdlZ2dfYXNuMXhfY3JlYXRlX2FuZF9kZWNvZGUnCi1JbiBmaWxlIGluY2x1ZGVkIGZyb20gZWdnLWFzbjF4LmM6NTA6MDoKLWVnZy1hc24xeC5oOjQ0Ojg6IG5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdlZ2dfYXNuMXhfY3JlYXRlX2FuZF9kZWNvZGUnIHdhcyBoZXJlCi1tYWtlWzRdOiAqKiogW2xpYmVnZ19sYS1lZ2ctYXNuMXgubG9dIEVycm9yIDEKLQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLUluZGV4OiBnbm9tZS1rZXlyaW5nLTIuMzIuMS9lZ2cvZWdnLWFzbjF4LmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnbm9tZS1rZXlyaW5nLTIuMzIuMS5vcmlnL2VnZy9lZ2ctYXNuMXguaAkyMDEwLTEwLTE4IDE5OjExOjM4LjAwMDAwMDAwMCAtMDcwMAotKysrIGdub21lLWtleXJpbmctMi4zMi4xL2VnZy9lZ2ctYXNuMXguaAkyMDEzLTA2LTExIDE1OjE1OjAwLjY3NTM5OTI2MyAtMDcwMAotQEAgLTI1LDYgKzI1LDcgQEAKLSAjZGVmaW5lIEVHR19BU04xWF9IXwotIAotICNpbmNsdWRlIDxnbGliLmg+Ci0rI2luY2x1ZGUgPGxpYnRhc24xLmg+Ci0gCi0gI2lmbmRlZiBIQVZFX0VHR19BTExPQ0FUT1IKLSB0eXBlZGVmIHZvaWQqICgqRWdnQWxsb2NhdG9yKSAodm9pZCogcCwgZ3NpemUpOwotQEAgLTM1LDEzICszNiwxMyBAQAotIAotIHN0cnVjdCBzdGF0aWNfc3RydWN0X2FzbjsKLSAKLS1HTm9kZSogICAgICAgICAgICAgIGVnZ19hc24xeF9jcmVhdGUgICAgICAgICAgICAgICAgIChjb25zdCBzdHJ1Y3Qgc3RhdGljX3N0cnVjdF9hc24gKmRlZnMsCi0rR05vZGUqICAgICAgICAgICAgICBlZ2dfYXNuMXhfY3JlYXRlICAgICAgICAgICAgICAgICAoY29uc3QgQVNOMV9BUlJBWV9UWVBFICpkZWZzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp0eXBlKTsKLSAKLS1HTm9kZSogICAgICAgICAgICAgIGVnZ19hc24xeF9jcmVhdGVfcXVhcmsgICAgICAgICAgIChjb25zdCBzdHJ1Y3Qgc3RhdGljX3N0cnVjdF9hc24gKmRlZnMsCi0rR05vZGUqICAgICAgICAgICAgICBlZ2dfYXNuMXhfY3JlYXRlX3F1YXJrICAgICAgICAgICAoY29uc3QgQVNOMV9BUlJBWV9UWVBFICpkZWZzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdRdWFyayB0eXBlKTsKLSAKLS1HTm9kZSogICAgICAgICAgICAgIGVnZ19hc24xeF9jcmVhdGVfYW5kX2RlY29kZSAgICAgIChjb25zdCBzdHJ1Y3Qgc3RhdGljX3N0cnVjdF9hc24gKmRlZnMsCi0rR05vZGUqICAgICAgICAgICAgICBlZ2dfYXNuMXhfY3JlYXRlX2FuZF9kZWNvZGUgICAgICAoY29uc3QgQVNOMV9BUlJBWV9UWVBFICpkZWZzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjb25zdHBvaW50ZXIgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSBuX2RhdGEpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9nbm9tZS1rZXlyaW5nXzIuMzIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvZ25vbWUta2V5cmluZ18yLjMyLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkNmNhNzMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9nbm9tZS1rZXlyaW5nXzIuMzIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLVNVTU1BUlkgPSAiUGFzc3dvcmQgYW5kIGtleXJpbmcgbWFuYWdpbmcgZGFlbW9uIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvIgotQlVHVFJBQ0tFUiA9ICJodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8iCi0KLUxJQ0VOU0UgPSAiR1BMdjIrICYgTEdQTHYyKyAmIExHUEx2Mi4xKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2djci9nY3IuaDtlbmRsaW5lPTIyO21kNT1hMjcyZGYxZTYzM2UyN2VjZjM1ZTc0ZmI1NTc2MjUwZSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9lZ2cvZWdnLWRidXMuaDtlbmRsaW5lPTI1O21kNT1lYjZmNTMxYWYzNzE2NWRjNTM0MjBjMDczZDc3NGU2MSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9ncDExL2dwMTEuaDtlbmRsaW5lPTI0O21kNT1iZDhjN2E4YTIxZDZjMjhkNDA1MzZkOTZhMzVlMzQ2OSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9wa2NzMTEvcGtjczExaS5oO2VuZGxpbmU9MjQ7bWQ1PWU3MmNmYmI3MTgzODliNzZhNGRhZTgzOGQxYzFmNDM5IgotCi1TRUNUSU9OID0gIngxMS9nbm9tZSIKLQotUFIgPSAicjEyIgotCi1pbmhlcml0IGF1dG90b29scyBnbm9tZSBndGstZG9jIHBrZ2NvbmZpZyBnc2V0dGluZ3MKLQotU1JDX1VSSSArPSAiZmlsZTovL2VnZy1hc24xeC5wYXRjaCBcCi0gICAgICAgICAgICBmaWxlOi8vbXVzbC5wYXRjaCBcCi0iCi0KLURFUEVORFMgPSAiZ3RrKyBsaWJnY3J5cHQgbGlidGFzbjEgbGlidGFzbjEtbmF0aXZlIGdjb25mICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJ2xpYnBhbScsICcnLCBkKX0gaW50bHRvb2wtbmF0aXZlIgotUkRFUEVORFNfJHtQTn0gPSAibGliZ25vbWUta2V5cmluZyBnbGliLTIuMC11dGlscyIKLQotTERGTEFHUyArPSAiLWxnbW9kdWxlLTIuMCIKLQotRVhUUkFfT0VDT05GID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJy0tZW5hYmxlLXBhbSAtLXdpdGgtcGFtLWRpcj0ke2Jhc2VfbGliZGlyfS9zZWN1cml0eScsICctLWRpc2FibGUtcGFtJywgZCl9IgotCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICI5YThhYTc0ZTAzMzYxNjc2ZjI5ZDZlNzMxNTU3ODZmYyIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjMxZmVjZWMxNDMwYTk3ZjU5YTYxNTlhNWEyZWE4ZDZhMWI0NDI4N2YxZTllNTk1YjM1OTRkZjQ2YmY3ZjE4ZjkiCi1HTk9NRV9DT01QUkVTU19UWVBFPSJiejIiCi0KLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2RidXMtMS9zZXJ2aWNlcyAke2RhdGFkaXJ9L2djciBcCi0gICAgICAgICAgICAgICAgJHtiYXNlX2xpYmRpcn0vc2VjdXJpdHkvKiR7U09MSUJTREVWfSBcCi0gICAgICAgICAgICAgICAiCi0KLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9LyR7QlBOfS9kZXZlbC8qLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9LyR7QlBOfS9kZXZlbC8qJHtTT0xJQlNERVZ9IFwKLSAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9LyR7QlBOfS9zdGFuZGFsb25lLyoubGEgXAotICAgICAgICAgICAgICAgICAgICAke2Jhc2VfbGliZGlyfS9zZWN1cml0eS8qLmxhIFwKLSAgICAgICAgICAgICAgICAgICAiCi0KLUlOU0FORV9TS0lQXyR7UE59LWRldiArPSAiZGV2LWVsZiIKLQotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vJHtCUE59L3N0YW5kYWxvbmUvLmRlYnVnLyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS8ke0JQTn0vZGV2ZWwvLmRlYnVnLyBcCi0gICAgICAgICAgICAgICAgICAgICR7YmFzZV9saWJkaXJ9L3NlY3VyaXR5Ly5kZWJ1Zy8iCi0KLSMgTWFrZSBjb21wYXRpYmxlIHdpdGggZ2NyIHZlcnNpb24gMyBvciBuZXdlciBieSByZW1vdmluZwotIyBvcmcuZ25vbWUuY3J5cHRvLnBncC4qLCB3aGljaCBpcyB0aGUgcHJvdmlkZXIgZm9yIHRoaXMgb3B0aW9uYWwKLSMgZnVuY3Rpb25hbGl0eS4KLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0Jcm0gJHtEfSR7ZGF0YWRpcn0vR0NvbmYvZ3NldHRpbmdzL29yZy5nbm9tZS5jcnlwdG8ucGdwLmNvbnZlcnQKLQlybSAke0R9JHtkYXRhZGlyfS9nbGliLTIuMC9zY2hlbWFzL29yZy5nbm9tZS5jcnlwdG8ucGdwLmdzY2hlbWEueG1sCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1rZXlyaW5nL2dub21lLWtleXJpbmdfMy4yMC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9nbm9tZS1rZXlyaW5nXzMuMjAuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTY0MDYyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9nbm9tZS1rZXlyaW5nXzMuMjAuMC5iYgpAQCAtMCwwICsxLDQyIEBACitTVU1NQVJZID0gIlBhc3N3b3JkIGFuZCBrZXlyaW5nIG1hbmFnaW5nIGRhZW1vbiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZ25vbWUub3JnLyIKK0JVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvIgorU0VDVElPTiA9ICJ4MTEvZ25vbWUiCisKK0xJQ0VOU0UgPSAiR1BMdjIrICYgTEdQTHYyKyAmIExHUEx2Mi4xKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiIFwKKyAgICBmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMgXAorICAgIGZpbGU6Ly9DT1BZSU5HLkxJQjttZDU9NGZiZDY1MzgwY2RkMjU1OTUxMDc5MDA4YjM2NDUxNmMgXAorIgorCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBnbm9tZWJhc2UgcmVtb3ZlLWxpYnRvb2wKKworREVQRU5EUyA9ICIgXAorICAgIGludGx0b29sLW5hdGl2ZSBcCisgICAgZ2xpYi0yLjAtbmF0aXZlIFwKKyAgICBndGsrMyBcCisgICAgZ2NyIFwKKyAgICBsaWJnY3J5cHQgXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJ2xpYnBhbScsICcnLCBkKX0gXAorIgorCitTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJlMDllZmU4MDIxOTQ0ZGFlNDA0NzM2YjVhMmFkYjk4ZSIKK1NSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gImJjMTdjZWNkNzQ4YTBlNDZlMzAyMTcxZDExYzNhZTNkNzZiYmE1MjU4YzQ0MWZhYmVjMzc4NmY0MThlN2VjOTkiCitTUkNfVVJJICs9ICJmaWxlOi8vbXVzbC5wYXRjaCIKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworUkRFUEVORFNfJHtQTn0gPSAibGliZ25vbWUta2V5cmluZyBnbGliLTIuMC11dGlscyIKKworRVhUUkFfT0VDT05GID0gIiBcCisgICAgLS1kaXNhYmxlLWRvYyBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdwYW0nLCAnLS1lbmFibGUtcGFtIC0td2l0aC1wYW0tZGlyPSR7YmFzZV9saWJkaXJ9L3NlY3VyaXR5JywgJy0tZGlzYWJsZS1wYW0nLCBkKX0gXAorIgorCisKK0ZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7ZGF0YWRpcn0vZGJ1cy0xL3NlcnZpY2VzIFwKKyAgICAke2RhdGFkaXJ9L3AxMS1raXQgXAorICAgICR7YmFzZV9saWJkaXJ9L3NlY3VyaXR5Lyoke1NPTElCU0RFVn0gXAorICAgICR7bGliZGlyfS9wa2NzMTEvZ25vbWUta2V5cmluZy1wa2NzMTEuc28gXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9saWJnbm9tZS1rZXlyaW5nXzIuMzIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvbGliZ25vbWUta2V5cmluZ18yLjMyLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyNDE4ODIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9saWJnbm9tZS1rZXlyaW5nXzIuMzIuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVNVTU1BUlkgPSAiQ29tcGF0aWJpbGl0eSBsaWJyYXJ5IGZvciBhY2Nlc3Npbmcgc2VjcmV0cyIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ25vbWUub3JnLyIKLUJVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvIgotCi1MSUNFTlNFID0gIkxHUEx2MiAmIExHUEx2MisgJiBMR1BMdjIuMSsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wOTE0YjlkM2ViYWJhNDFlZjJlM2UwYWUxNmYyOTZjZiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9saWJyYXJ5L2dub21lLWtleXJpbmcuaDtlbmRsaW5lPTI1O21kNT02OGVhNjRmODFjMTYwZDY3MGMzN2RhNWYxMzdiZTRmYiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9saWJyYXJ5L2dub21lLWtleXJpbmcuYztlbmRsaW5lPTI2O21kNT04ZDdhNGZiNjc0YWFhMDEyZWE1YTk4ZTdjMzY4YjRhNSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9lZ2cvZWdnLWRoLmg7ZW5kbGluZT0yMjttZDU9MTYyNmMxNmFmMmE4ZGExZjg4MzI0Y2YzY2VkMzNmMDgiCi0KLVNFQ1RJT04gPSAieDExL2dub21lL2xpYnMiCi1QUiA9ICJyMyIKLQotaW5oZXJpdCBnbm9tZWJhc2UgZ3RrLWRvYwotCi1ERVBFTkRTID0gImRidXMgbGliZ2NyeXB0IGdsaWItMi4wIGludGx0b29sLW5hdGl2ZSIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiYzQyYjJjYTY2MjA0ODM1ZDkwMWQzZGJmYzFmYTVhZTYiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICI1NjM4OGMwZDgxZGRmZGI1N2QzMGU0OTYzYzgzZWNjMWMxODQ5OGFhYjk5Mzk1NDIwZTBmZmY2OTkyOWEwZjBjIgotR05PTUVfQ09NUFJFU1NfVFlQRT0iYnoyIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9saWJnbm9tZS1rZXlyaW5nXzMuMTIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvbGliZ25vbWUta2V5cmluZ18zLjEyLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJhYmUzMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvbGliZ25vbWUta2V5cmluZ18zLjEyLjAuYmIKQEAgLTAsMCArMSwxNyBAQAorU1VNTUFSWSA9ICJDb21wYXRpYmlsaXR5IGxpYnJhcnkgZm9yIGFjY2Vzc2luZyBzZWNyZXRzIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvIgorQlVHVFJBQ0tFUiA9ICJodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8iCisKK0xJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gIiBcCisgICAgZmlsZTovL0NPUFlJTkc7bWQ1PTA5MTRiOWQzZWJhYmE0MWVmMmUzZTBhZTE2ZjI5NmNmIFwKKyAgICBmaWxlOi8vQ09QWUlORy5HUEw7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKKyIKK1NFQ1RJT04gPSAieDExL2dub21lL2xpYnMiCisKK2luaGVyaXQgZ25vbWViYXNlIGd0ay1kb2MgZ29iamVjdC1pbnRyb3NwZWN0aW9uCisKK0RFUEVORFMgPSAiZGJ1cyBsaWJnY3J5cHQgZ2xpYi0yLjAgZ2xpYi0yLjAtbmF0aXZlIGludGx0b29sLW5hdGl2ZSIKKworU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiNjY5NmU0ZjJlOWFlZDQ2MjVjZGMzYWYzMGJkOGMyMzgiCitTUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICJjNGMxNzhmYmIwNWY3MmFjYzQ4NGQyMmRkYjA1NjhmNzUzMmM0MDliMGExM2UwNjUxM2ZmNTRiOTFlOTQ3NzgzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtbWVudXMvZ25vbWUtbWVudXMzXzMuMTAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLW1lbnVzL2dub21lLW1lbnVzM18zLjEwLjEuYmIKaW5kZXggMDFkYTM0Ny4uNjQ3YWU5MSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtbWVudXMvZ25vbWUtbWVudXMzXzMuMTAuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1tZW51cy9nbm9tZS1tZW51czNfMy4xMC4xLmJiCkBAIC02LDcgKzYsOSBAQAogCiBERVBFTkRTID0gInB5dGhvbiBsaWJ4bWwyIGdjb25mIHBvcHQgZ3RrKzMgaW50bHRvb2wtbmF0aXZlIGdub21lLWNvbW1vbi1uYXRpdmUiCiAKLWluaGVyaXQgZ25vbWViYXNlIHBrZ2NvbmZpZyBweXRob24tZGlyIHB5dGhvbm5hdGl2ZSBnb2JqZWN0LWludHJvc3BlY3Rpb24KK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGdub21lYmFzZSBwa2djb25maWcgcHl0aG9uLWRpciBweXRob25uYXRpdmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIEJQTiA9ICJnbm9tZS1tZW51cyIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtbWltZS1kYXRhL2dub21lLW1pbWUtZGF0YS9wa2djb25maWcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1taW1lLWRhdGEvZ25vbWUtbWltZS1kYXRhL3BrZ2NvbmZpZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDkwMzQyNS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1taW1lLWRhdGEvZ25vbWUtbWltZS1kYXRhL3BrZ2NvbmZpZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotSW5kZXg6IGdub21lLW1pbWUtZGF0YS0yLjE4LjAvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnbm9tZS1taW1lLWRhdGEtMi4xOC4wLm9yaWcvTWFrZWZpbGUuYW0JMjAwOS0wNi0xMSAxNzoyNzo0OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnbm9tZS1taW1lLWRhdGEtMi4xOC4wL01ha2VmaWxlLmFtCTIwMDktMDYtMTEgMTc6Mjc6NTkuMDAwMDAwMDAwICswMTAwCi1AQCAtMSw2ICsxLDYgQEAKLSBTVUJESVJTID0gbWFuIHBvCi0gCi0tcGtnY29uZmlnZGlyID0gJChkYXRhZGlyKS9wa2djb25maWcKLStwa2djb25maWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCi0gcGtnY29uZmlnX0RBVEEgPSBnbm9tZS1taW1lLWRhdGEtMi4wLnBjCi0gCi0gTlVMTD0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLW1pbWUtZGF0YS9nbm9tZS1taW1lLWRhdGFfMi4xOC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtbWltZS1kYXRhL2dub21lLW1pbWUtZGF0YV8yLjE4LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlYWMxYmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtbWltZS1kYXRhL2dub21lLW1pbWUtZGF0YV8yLjE4LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1TVU1NQVJZID0gIkJhc2UgTUlNRSBhbmQgQXBwbGljYXRpb24gZGF0YWJhc2UgZm9yIEdOT01FIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvIgotQlVHVFJBQ0tFUiA9ICJodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8iCi0KLUxJQ0VOU0UgPSAiR1BMdjIgJiBHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT01OTUzMGJkZjMzNjU5YjI5ZTczZDRhZGI5ZjlmNjU1MiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9jaGVjay1taW1lLnBsO2VuZGxpbmU9MjY7bWQ1PWE5NWI2M2M5MmMzM2Q0Y2ExYWY2MWEzMTU4ODhmNDUwIgotCi1pbmhlcml0IGdub21lYmFzZSBtaW1lCi1QUiA9ICJyNCIKLQotU1JDX1VSSSArPSAiZmlsZTovL3BrZ2NvbmZpZy5wYXRjaCIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiNTQxODU4MTg4ZjgwMDkwZDEyYTMzYjVhN2MzNGQ0MmMiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICIzNzE5NmI1YjM3MDg1YmJjZDQ1YzMzOGMzNmUyNjg5OGZlMzVkZDU5NzUyOTVmNjlmNDgwMjhiMWU4NDM2ZmQ3IgotR05PTUVfQ09NUFJFU1NfVFlQRT0iYnoyIgotCi1ERVBFTkRTICs9ICJzaGFyZWQtbWltZS1pbmZvIGludGx0b29sLW5hdGl2ZSBnbGliLTIuMC1uYXRpdmUiCi1SREVQRU5EU18ke1BOfSA9ICJzaGFyZWQtbWltZS1pbmZvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtc3lzdGVtLW1vbml0b3IvZmlsZXMvMDAwMS1oZWxwLXJlbW92ZS1ZRUxQLW1hY3JvLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtc3lzdGVtLW1vbml0b3IvZmlsZXMvMDAwMS1oZWxwLXJlbW92ZS1ZRUxQLW1hY3JvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3YjYwYTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1zeXN0ZW0tbW9uaXRvci9maWxlcy8wMDAxLWhlbHAtcmVtb3ZlLVlFTFAtbWFjcm8ucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAorRnJvbSA0YTNlZThiNDZkMjViM2QzMTA0NDhiZmE0NDQ2ZTE1YTY4NmZjNjg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMjMgTWFyIDIwMTggMTM6NTA6MTggKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gaGVscDogcmVtb3ZlIFlFTFAgbWFjcm8KK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZC1zcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKy0tLQorIGhlbHAvTWFrZWZpbGUuYW0gfCAyIC0tCisgMSBmaWxlIGNoYW5nZWQsIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9oZWxwL01ha2VmaWxlLmFtIGIvaGVscC9NYWtlZmlsZS5hbQoraW5kZXggYzVjZDBkMy4uNGI4M2FkZiAxMDA2NDQKKy0tLSBhL2hlbHAvTWFrZWZpbGUuYW0KKysrKyBiL2hlbHAvTWFrZWZpbGUuYW0KK0BAIC0xLDUgKzEsMyBAQAorLUBZRUxQX0hFTFBfUlVMRVNACistCisgSEVMUF9JRCA9IGdub21lLXN5c3RlbS1tb25pdG9yCisgCisgSEVMUF9GSUxFUyA9IFwKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXN5c3RlbS1tb25pdG9yL2dub21lLXN5c3RlbS1tb25pdG9yXzMuMjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXN5c3RlbS1tb25pdG9yL2dub21lLXN5c3RlbS1tb25pdG9yXzMuMjYuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjZjZTE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtc3lzdGVtLW1vbml0b3IvZ25vbWUtc3lzdGVtLW1vbml0b3JfMy4yNi4wLmJiCkBAIC0wLDAgKzEsMzQgQEAKK1NVTU1BUlkgPSAiR25vbWUgc3lzdGVtIG1vbml0b3IiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCisKK0RFUEVORFMgPSAiIFwKKyAgICBpbnRsdG9vbC1uYXRpdmUgXAorICAgIGdub21lLWNvbW1vbi1uYXRpdmUgXAorICAgIGdsaWItMi4wLW5hdGl2ZSBcCisgICAgZ3RrbW0zIFwKKyAgICBsaWJndG9wIFwKKyAgICBsaWJyc3ZnIFwKKyAgICBsaWJ3bmNrMyBcCisiCisKK2luaGVyaXQgZ25vbWViYXNlIGRpc3Ryb19mZWF0dXJlc19jaGVjaworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJmY2Q1OTg2N2MwN2Y4YzQ4NTNiMWUyOGQ2MGNiYzAzNyIKK1NSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gImY4NDhhOGMyY2E1ZTE2NGNmMDlkM2EyMDVkZDQ5ZTRlNGJmNGI2MGQ0M2IwOTY5YzEwNDQzZWI1MTlkMGU2YjMiCitTUkNfVVJJICs9ICJmaWxlOi8vMDAwMS1oZWxwLXJlbW92ZS1ZRUxQLW1hY3JvLnBhdGNoIgorCitSUkVDT01NRU5EU18ke1BOfSA9ICJhZHdhaXRhLWljb24tdGhlbWUiCisKK0ZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7ZGF0YWRpcn0vaWNvbnMgXAorICAgICR7ZGF0YWRpcn0vZGJ1cy0xIFwKKyAgICAke2RhdGFkaXJ9L2dub21lL2F1dG9zdGFydCBcCisiCisKK0ZJTEVTXyR7UE59LWRvYyArPSAiIFwKKyAgICAke2RhdGFkaXJ9L29tZiBcCisgICAgJHtkYXRhZGlyfS9nbm9tZS9oZWxwIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40LzAwMDEtbXVsdGlwbGUtTWFrZWZpbGUuYW0tcmVtb3ZlLURHX0RJU0FCTEVfREVQUkVDQVRFRC10by5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40LzAwMDEtbXVsdGlwbGUtTWFrZWZpbGUuYW0tcmVtb3ZlLURHX0RJU0FCTEVfREVQUkVDQVRFRC10by5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgzMzI5OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS12ZnMvZ25vbWUtdmZzLTIuMjQuNC8wMDAxLW11bHRpcGxlLU1ha2VmaWxlLmFtLXJlbW92ZS1ER19ESVNBQkxFX0RFUFJFQ0FURUQtdG8ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi1Gcm9tIDUzNmU5YjU3Y2FkYTRhOWY5MmUwNzNmZGYwMWNkZjFkZWY0MzViNmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDcgTWF5IDIwMTMgMTQ6NTY6MDYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gbXVsdGlwbGUgTWFrZWZpbGUuYW06IHJlbW92ZSAtREdfRElTQUJMRV9ERVBSRUNBVEVEIHRvIGZpeAotIGJ1aWxkIHdpdGggZ2xpYi0yLjM2Ci1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLS0tLQotIGRhZW1vbi9NYWtlZmlsZS5hbSAgICAgIHwgICAgMSAtCi0gbGliZ25vbWV2ZnMvTWFrZWZpbGUuYW0gfCAgICAxIC0KLSAyIGZpbGVzIGNoYW5nZWQsIDAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotSW5kZXg6IGdub21lLXZmcy0yLjI0LjQvZGFlbW9uL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ25vbWUtdmZzLTIuMjQuNC5vcmlnL2RhZW1vbi9NYWtlZmlsZS5hbQkyMDEzLTEwLTE3IDE2OjM5OjM5LjA4MTAyNDc5OCAtMDcwMAotKysrIGdub21lLXZmcy0yLjI0LjQvZGFlbW9uL01ha2VmaWxlLmFtCTIwMTMtMTAtMTcgMTY6Mzk6MzkuMjEzMDI0Nzk0IC0wNzAwCi1AQCAtOCw3ICs4LDYgQEAKLSAJLURfTEFSR0VGSUxFNjRfU09VUkNFICAgICAgICAgICAgICAgICAgIFwKLSAJLURfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MJCVwKLSAJLURfUkVFTlRSQU5UCQkJCVwKLS0JLURHX0RJU0FCTEVfREVQUkVDQVRFRAkJCVwKLSAJLURHTk9NRV9WRlNfUFJFRklYPVwiJChwcmVmaXgpXCIJXAotIAktREdOT01FX1ZGU19EQVRBRElSPVwiJChkYXRhZGlyKVwiCVwKLSAJLURHTk9NRV9WRlNfTElCRElSPVwiJChsaWJkaXIpXCIJXAotSW5kZXg6IGdub21lLXZmcy0yLjI0LjQvbGliZ25vbWV2ZnMvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnbm9tZS12ZnMtMi4yNC40Lm9yaWcvbGliZ25vbWV2ZnMvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjozOTozOS4wODEwMjQ3OTggLTA3MDAKLSsrKyBnbm9tZS12ZnMtMi4yNC40L2xpYmdub21ldmZzL01ha2VmaWxlLmFtCTIwMTMtMTAtMTcgMTY6Mzk6MzkuMjEzMDI0Nzk0IC0wNzAwCi1AQCAtMTksNyArMTksNiBAQAotIAktRF9MQVJHRUZJTEU2NF9TT1VSQ0UgICAgICAgICAgICAgICAgICAgXAotIAktRF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUwkJXAotIAktRF9SRUVOVFJBTlQJCQkJXAotLQktREdfRElTQUJMRV9ERVBSRUNBVEVECQkJXAotIAktREdOT01FX1ZGU19QUkVGSVg9XCIkKHByZWZpeClcIglcCi0gCS1ER05PTUVfVkZTX0JJTkRJUj1cIiQoYmluZGlyKVwiCVwKLSAJLURHTk9NRV9WRlNfREFUQURJUj1cIiQoZGF0YWRpcilcIglcCi1JbmRleDogZ25vbWUtdmZzLTIuMjQuNC9tb2R1bGVzL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ25vbWUtdmZzLTIuMjQuNC5vcmlnL21vZHVsZXMvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjozOTozOS4wODEwMjQ3OTggLTA3MDAKLSsrKyBnbm9tZS12ZnMtMi4yNC40L21vZHVsZXMvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjozOTozOS4yMTMwMjQ3OTQgLTA3MDAKLUBAIC0xOCw3ICsxOCw2IEBACi0gCS1EX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTCQlcCi0gCS1EX1JFRU5UUkFOVAkJCQlcCi0gCS1EU1NIX1BST0dSQU09XCIkKFNTSF9QUk9HUkFNKVwiCVwKLS0JLURHX0RJU0FCTEVfREVQUkVDQVRFRAkJCVwKLSAJLURHTk9NRV9WRlNfUFJFRklYPVwiJChwcmVmaXgpXCIJXAotIAktREdOT01FX1ZGU19EQVRBRElSPVwiJChkYXRhZGlyKVwiCVwKLSAJLURHTk9NRV9WRlNfTElCRElSPVwiJChsaWJkaXIpXCIJXAotSW5kZXg6IGdub21lLXZmcy0yLjI0LjQvcHJvZ3JhbXMvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnbm9tZS12ZnMtMi4yNC40Lm9yaWcvcHJvZ3JhbXMvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjozOTozOS4wODEwMjQ3OTggLTA3MDAKLSsrKyBnbm9tZS12ZnMtMi4yNC40L3Byb2dyYW1zL01ha2VmaWxlLmFtCTIwMTMtMTAtMTcgMTY6Mzk6MzkuMjEzMDI0Nzk0IC0wNzAwCi1AQCAtNCw4ICs0LDcgQEAKLSAJLUkkKHRvcF9zcmNkaXIpCQkJCVwKLSAJLUkkKHRvcF9idWlsZGRpcikJCQlcCi0gCSQoVEVTVF9DRkxBR1MpCQkJCVwKLS0JJChWRlNfQ0ZMQUdTKQkJCQlcCi0tCS1ER19ESVNBQkxFX0RFUFJFQ0FURUQKLSsJJChWRlNfQ0ZMQUdTKQotIAotIGxpYnJhcmllcyA9CQkJCQkJXAotIAkkKHRvcF9idWlsZGRpcikvbGliZ25vbWV2ZnMvbGliZ25vbWV2ZnMtMi5sYQlcCi1JbmRleDogZ25vbWUtdmZzLTIuMjQuNC90ZXN0L01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ25vbWUtdmZzLTIuMjQuNC5vcmlnL3Rlc3QvTWFrZWZpbGUuYW0JMjAxMC0wMi0wOSAwNDoxNjoxNC4wMDAwMDAwMDAgLTA4MDAKLSsrKyBnbm9tZS12ZnMtMi4yNC40L3Rlc3QvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjo0Mjo0OS4xMDkwMTkxNzIgLTA3MDAKLUBAIC02LDcgKzYsNiBAQAotIAktSSQodG9wX2J1aWxkZGlyKS9saWJnbm9tZXZmcyAgICAgICAgICAgXAotIAkkKFRFU1RfQ0ZMQUdTKQkJCQlcCi0gCSQoVkZTX0NGTEFHUykJCQkJXAotLQktREdfRElTQUJMRV9ERVBSRUNBVEVECQkJXAotIAktRE1PRFVMRVNfUEFUSD1cIiQobGliZGlyKS92ZnMvbW9kdWxlc1wiCi0gCi0gaWYgT1NfV0lOMzIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40L2RvLW5vdC11c2Utc3JjZGlyLXZhcmlhYmxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmcy0yLjI0LjQvZG8tbm90LXVzZS1zcmNkaXItdmFyaWFibGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwY2EyOWIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmcy0yLjI0LjQvZG8tbm90LXVzZS1zcmNkaXItdmFyaWFibGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1GaXhlcyBlcnJvcnMgd2l0aCBuZXcgYXV0b3Rvb2xzCi0KLXwgYXV0b21ha2U6IGVycm9yOiB1c2luZyAnJChzcmNkaXIpJyBpbiBURVNUUyBpcyBjdXJyZW50bHkgYnJva2VuOiAnJChzcmNkaXIpL2F1dG8tdGVzdCcKLXwgYXV0b3JlY29uZjogYXV0b21ha2UgZmFpbGVkIHdpdGggZXhpdCBzdGF0dXM6IDEKLXwgRVJST1I6IGF1dG9yZWNvbmYgZXhlY3V0aW9uIGZhaWxlZC4KLQotVXBzdHJlYW0tU3RhdHVzOiBOb3QgU3VibWl0dGVkCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotCi1JbmRleDogZ25vbWUtdmZzLTIuMjQuNC90ZXN0L01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ25vbWUtdmZzLTIuMjQuNC5vcmlnL3Rlc3QvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjo0MzozNi42NzcwMTc3NjQgLTA3MDAKLSsrKyBnbm9tZS12ZnMtMi4yNC40L3Rlc3QvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjo0ODo0Ny4zNjkwMDg1NjYgLTA3MDAKLUBAIC02NCw3ICs2NCw3IEBACi0gCXRlc3QtYXN5bmMtY2FuY2VsIFwKLSAJdGVzdC1lc2NhcGUgICAgICAgXAotIAl0ZXN0LXVyaSAgICAgICAJICBcCi0tCSQoc3JjZGlyKS9hdXRvLXRlc3QJCi0rCWF1dG8tdGVzdAotIAotIGxpYnJhcmllcyA9CQkJCQkJXAotIAkkKHRvcF9idWlsZGRpcikvbGliZ25vbWV2ZnMvbGliZ25vbWV2ZnMtMi5sYQlcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS12ZnMvZ25vbWUtdmZzLTIuMjQuNC9nY29uZnRvb2wtbG9zc2FnZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40L2djb25mdG9vbC1sb3NzYWdlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjUyMTM2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40L2djb25mdG9vbC1sb3NzYWdlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQotCi0tLS0gZ25vbWUtdmZzLTIuNi4wL2NvbmZpZ3VyZS5pbn4JMjAwNC0wMy0yMiAxMjozNjoyMy4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnbm9tZS12ZnMtMi42LjAvY29uZmlndXJlLmluCTIwMDQtMDYtMDcgMTY6MDQ6MzQuMDAwMDAwMDAwICswMTAwCi1AQCAtMTU0LDcgKzE1NCw3IEBACi0gQUNfUEFUSF9QUk9HKEdDT05GVE9PTCwgZ2NvbmZ0b29sLTIsIG5vKQotIAotIGlmIHRlc3QgeCIkR0NPTkZUT09MIiA9IHhubzsgdGhlbgotLSAgQUNfTVNHX0VSUk9SKFtnY29uZnRvb2wtMiBleGVjdXRhYmxlIG5vdCBmb3VuZCBpbiB5b3VyIHBhdGggLSBzaG91bGQgYmUgaW5zdGFsbGVkIHdpdGggR0NvbmZdKQotKyAgQUNfTVNHX1dBUk4oW2djb25mdG9vbC0yIGV4ZWN1dGFibGUgbm90IGZvdW5kIGluIHlvdXIgcGF0aCAtIHNob3VsZCBiZSBpbnN0YWxsZWQgd2l0aCBHQ29uZl0pCi0gZmkKLSAKLSBBTV9HQ09ORl9TT1VSQ0VfMgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmcy0yLjI0LjQvZ25vbWUtdmZzLW5vLWtlcmJlcm9zLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmcy0yLjI0LjQvZ25vbWUtdmZzLW5vLWtlcmJlcm9zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYWJlYzMyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40L2dub21lLXZmcy1uby1rZXJiZXJvcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotcmVtb3ZlcyBrZXJiZXJvcyBjb21wbGV0ZWx5IHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIGluc3RhbGxlZCBrZXJiZXJvcwotLS0tIGNvbmZpZ3VyZS5pbi5vcmlnCTIwMDctMDEtMDUgMTk6NDI6MjYuNDE4NTQxNjEwICswMjAwCi0rKysgY29uZmlndXJlLmluCTIwMDctMDEtMDUgMTk6NDI6NTYuNjA0MjYxNzk3ICswMjAwCi1AQCAtNDM2LDQ3ICs0MzYsNiBAQAotIF0pCi0gQU1fQ09ORElUSU9OQUwoSEFWRV9DRERBLCB0ZXN0ICRoYXZlX2NkZGEgPSB5ZXMpCi0gQUNfU1VCU1QoQ0REQV9MSUJTKQotLQotLWRubCBHU1NBUEkKLS1kbmwgQ2hlY2sgZm9yIEtlcmJlcm9zIGluc3RhbGxhdGlvbgotLWhhdmVfZ3NzYXBpPW5vCi0tQUNfUEFUSF9QUk9HKFtLUkI1X0NPTkZJR10sIGtyYjUtY29uZmlnLCBub25lLCAkUEFUSDovdXNyL2tlcmJlcm9zL2JpbikKLS0JCQkJCSAgIAotLWlmIHRlc3QgIngkS1JCNV9DT05GSUciICE9ICJ4bm9uZSI7IHRoZW4KLS0gICBHU1NBUElfTElCUz0iYCR7S1JCNV9DT05GSUd9IC0tbGlicyBnc3NhcGlgIgotLSAgIEdTU0FQSV9DRkxBR1M9ImAke0tSQjVfQ09ORklHfSAtLWNmbGFncyBnc3NhcGlgIgotLSAgIAotLSAgIHNhdmVkX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0tICAgc2F2ZWRfTElCUz0iJExJQlMiCi0tICAgTElCUz0iJExJQlMgJEdTU0FQSV9MSUJTIgotLSAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgJEdTU0FQSV9DRkxBR1MiCi0tICAgIyBNSVQgYW5kIEhlaW1kYWwgcHV0IGdzc2FwaS5oIGluIGRpZmZlcmVudCBwbGFjZXMKLS0gICBBQ19DSEVDS19IRUFERVJTKGdzc2FwaS9nc3NhcGkuaCBnc3NhcGkuaCwgWwotLSAgICAgICBBQ19DSEVDS19GVU5DUyhnc3NfaW5pdF9zZWNfY29udGV4dCwgWwotLSAgICAgICAgICAgQUNfTVNHX05PVElDRShbR1NTQVBJIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQgZW5hYmxlZF0pCi0tICAgICAgICAgICBBQ19ERUZJTkUoSEFWRV9HU1NBUEksIDEsIFtEZWZpbmUgaWYgR1NTQVBJIHN1cHBvcnQgaXMgZW5hYmxlZF0pCi0tICAgICAgICAgICBBQ19DSEVDS19IRUFERVJTKGdzc2FwaS9nc3NhcGlfZ2VuZXJpYy5oKQotLQkJIGhhdmVfZ3NzYXBpPXllcwotLQkgCi0tICAgICAgICMgTUlUIEtlcmJlcm9zIGxhY2tzIEdTU19DX05UX0hPU1RCQVNFRF9TRVJWSUNFCi0tICAgICAgIEFDX0NIRUNLX0RFQ0woW0dTU19DX05UX0hPU1RCQVNFRF9TRVJWSUNFXSwsCi0tICAgICAgICAgIFtBQ19ERUZJTkUoW0dTU19DX05UX0hPU1RCQVNFRF9TRVJWSUNFXSwgZ3NzX250X3NlcnZpY2VfbmFtZSwgCi0tICAgICAgICAgICAgIFtEZWZpbmUgaWYgR1NTX0NfTlRfSE9TVEJBU0VEX1NFUlZJQ0UgaXMgbm90IGRlZmluZWQgb3RoZXJ3aXNlXSkKLS0JCV0sIFsKLS0JCSAgICAjaWZkZWYgSEFWRV9HU1NBUElfR1NTQVBJX0gKLS0JCSAgICAjaW5jbHVkZSA8Z3NzYXBpL2dzc2FwaS5oPgotLQkJICAgICNlbHNlCSAgIAotLQkJICAgICNpbmNsdWRlIDxnc3NhcGkuaD4KLS0JCSAgICAjZW5kaWYKLS0JCV0pCi0tCSAgXSkKLS0gICAgIGJyZWFrCi0tICAgXSkKLS0gICBMSUJTPSIkc2F2ZWRfTElCUyIgCi0tICAgQ1BQRkxBR1M9IiRzYXZlZF9DUFBGTEFHUyIgCi0tZmkgICAKLS1BQ19TVUJTVChHU1NBUElfTElCUykKLS1BQ19TVUJTVChHU1NBUElfQ0ZMQUdTKQotIAkgICAKLSBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gZG5sIGh0dHAtbWV0aG9kIChuZW9uIGNoZWNrcykKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnNfMi4yNC40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmc18yLjI0LjQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlYzY0NjYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmc18yLjI0LjQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi1TVU1NQVJZID0gImEgdXNlcnNwYWNlIHZpcnR1YWwgZmlsZXN5c3RlbSIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ25vbWUub3JnLyIKLUJVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvIgotCi1MSUNFTlNFID0gIkdQTHYyKyAmIExHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9saWJnbm9tZXZmcy9nbm9tZS12ZnMuaDtlbmRsaW5lPTI1O21kNT0xNzA3MWU2OTcwN2E4ZjQyODg3ZDg4NDEzZjI2MjNjYiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9wcm9ncmFtcy9nbm9tZXZmcy1scy5jO2VuZGxpbmU9MjM7bWQ1PTY3OGEyZThiZWRhZWY1ODE4Y2NhYmU2MzM4NDAxOTZiIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2RhZW1vbi92ZnMtZGFlbW9uLmM7ZW5kbGluZT0yMTttZDU9NWYyYzYxNTUzZmIxNmFiYjA3ZmM5NDk4Y2EwM2ZlMWYgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vbW9kdWxlcy9jZGRhLWNkZGIuaDtlbmRsaW5lPTIyO21kNT0yMGVkMzI0Y2E2NDkwN2MzNjZlY2Q3ZjIyYjhlMGM1NCIKLQotREVQRU5EUyA9ICJsaWJ4bWwyIGdjb25mIGRidXMgYnppcDIgZ25vbWUtbWltZS1kYXRhIHpsaWIgaW50bHRvb2wtbmF0aXZlIGdub21lLWNvbW1vbi1uYXRpdmUiCi1SUkVDT01NRU5EU18ke1BOfSA9ICJnbm9tZS12ZnMtcGx1Z2luLWZpbGUgc2hhcmVkLW1pbWUtaW5mbyIKLSMgU29tZSBsZWdhY3kgcGFja2FnZXMgd2lsbCByZXF1aXJlIGdub21lLW1pbWUtZGF0YSB0byBiZSBpbnN0YWxsZWQsIGJ1dCB1c2Ugb2YKLSMgaXQgaXMgZGVwcmVjYXRlZC4KLVBSID0gInIzIgotCi1pbmhlcml0IGdub21lCi0KLSMgVGhpcyBpcyB0byBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgZ25vbWUtdmZzIERCdXMgZm9yawotUlBST1ZJREVTXyR7UE59ID0gImdub21lLXZmcy1wbHVnaW4tZGJ1cyIKLQotU1JDX1VSSSArPSAiIFwKLSAgICBmaWxlOi8vZ2NvbmZ0b29sLWxvc3NhZ2UucGF0Y2ggXAotICAgIGZpbGU6Ly9nbm9tZS12ZnMtbm8ta2VyYmVyb3MucGF0Y2g7c3RyaXBsZXZlbD0wIFwKLSAgICBmaWxlOi8vMDAwMS1tdWx0aXBsZS1NYWtlZmlsZS5hbS1yZW1vdmUtREdfRElTQUJMRV9ERVBSRUNBVEVELXRvLnBhdGNoIFwKLSAgICBmaWxlOi8vZG8tbm90LXVzZS1zcmNkaXItdmFyaWFibGUucGF0Y2ggXAotIgotCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJhMDVmYWIwM2VlZWYxMGE0N2RkMTU2Yjc1ODk4MmYyZSIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjYyZGU2NGI1YjgwNGViMDQxMDRmZjk4ZmNkNmE4YjcyNzZkNTEwYTQ5ZmJkOWMwZmViNTY4Zjg5OTY0NDRmYWEiCi1HTk9NRV9DT01QUkVTU19UWVBFPSJiejIiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3plcm9jb25mJywgJ2F2YWhpJywgJycsIGQpfSIKLVBBQ0tBR0VDT05GSUdbYXZhaGldID0gIi0tZW5hYmxlLWF2YWhpLC0tZGlzYWJsZS1hdmFoaSxhdmFoaSIKLVBBQ0tBR0VDT05GSUdbZmFtXSA9ICItLWVuYWJsZS1mYW0sLS1kaXNhYmxlLWZhbSxnYW1pbiIKLQotRVhUUkFfT0VDT05GID0gIiAtLWRpc2FibGUtaGFsIFwKLSAgICAgICAgICAgICAgICAgLS1kaXNhYmxlLW9wZW5zc2wgXAotICAgICAgICAgICAgICAgICAtLWRpc2FibGUtc2FtYmEgXAotICAgICAgICAgICAgICAgICBhY19jdl9saWJfYWNsX2FjbF9nZXRfZmlsZT1ubyBcCi0gICAgICAgICAgICAgICAgIGFjX2N2X2xpYl9zZWNfYWNsPW5vIFwKLSAgICAgICAgICAgICAgICAgZ3Zmc19jdl9IQVZFX1NPTEFSSVNfQUNMUz1ubyBcCi0gICAgICAgICAgICAgICAgIGd2ZnNfY3ZfSEFWRV9QT1NJWF9BQ0xTPW5vIFwKLSIKLQotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS92ZnMgJHtkYXRhZGlyfS9kYnVzLTEvc2VydmljZXMiCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9nbm9tZS12ZnMtMi4wL21vZHVsZXMvLmRlYnVnIgotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vZ25vbWUtdmZzLTIuMC9pbmNsdWRlLyogJHtsaWJkaXJ9L2dub21lLXZmcy0yLjAvbW9kdWxlcy8qLmxhIgotRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vZ25vbWUtdmZzLTIuMC9tb2R1bGVzLyouYSIKLUZJTEVTXyR7UE59LWRvYyArPSAiJHtkYXRhZGlyfS9ndGstZG9jIgotCi1QQUNLQUdFU19EWU5BTUlDICs9ICJeZ25vbWUtdmZzLXBsdWdpbi0uKiIKLQotcHl0aG9uIHBvcHVsYXRlX3BhY2thZ2VzX3ByZXBlbmQgKCkgewotICAgIHBsdWdpbmRpciA9IGQuZXhwYW5kKCcke2xpYmRpcn0vZ25vbWUtdmZzLTIuMC9tb2R1bGVzLycpCi0gICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgcGx1Z2luZGlyLCAnXmxpYiguKilcLnNvJCcsICdnbm9tZS12ZnMtcGx1Z2luLSVzJywgJ0dOT01FIFZGUyBwbHVnaW4gZm9yICVzJykKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lL2xpYmdub21lY3Vwcy9saWJnbm9tZWN1cHMtMC4yLjMtY3Vwcy0xLjYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS9saWJnbm9tZWN1cHMvbGliZ25vbWVjdXBzLTAuMi4zLWN1cHMtMS42LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmE2MGNhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lL2xpYmdub21lY3Vwcy9saWJnbm9tZWN1cHMtMC4yLjMtY3Vwcy0xLjYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyODggKzAsMCBAQAotSW1wb3J0ZWQgZnJvbSBnZW50b286Ci1odHRwOi8vc291cmNlcy5nZW50b28ub3JnL2NnaS1iaW4vdmlld3ZjLmNnaS9nZW50b28teDg2L25ldC1wcmludC9saWJnbm9tZWN1cHMvZmlsZXMvbGliZ25vbWVjdXBzLTAuMi4zLWN1cHMtMS42LnBhdGNoCi0KLUZyb20gYWU3ODNlZmRlNGZhNjk1Nzg2NTE5OTQ1MDU0NjJmMDJiODYzOTIyMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFsZXhhbmRyZSBSb3N0b3Z0c2V2IDx0ZXRyb21pbm9AZ2VudG9vLm9yZz4KLURhdGU6IFR1ZSwgNyBBdWcgMjAxMiAwNjo1MzowOSAtMDQwMAotU3ViamVjdDogW1BBVENIXSBVc2UgQ1VQUy0xLjYgSVBQIEFQSSBnZXR0ZXIvc2V0dGVyIGZ1bmN0aW9ucwotCi1DVVBTIDEuNiBtYWtlcyB2YXJpb3VzIHN0cnVjdHVyZXMgcHJpdmF0ZSBhbmQgaW50cm9kdWNlcyB0aGVzZSBpcHBHZXQKLWFuZCBpcHBTZXQgZnVuY3Rpb25zIGZvciBhbGwgb2YgdGhlIGZpZWxkcyBpbiB0aGVzZSBzdHJ1Y3R1cmVzLgotaHR0cDovL3d3dy5jdXBzLm9yZy9zdHIucGhwP0wzOTI4Ci0KLVdlIGRlZmluZSBvdXIgb3duIGFjY2Vzc29ycyB3aGVuIGJ1aWxkaW5nIGFnYWluc3QgQ1VQUyA8IDEuNi4KLQotQmFzZWQgb24gd29yayBieSBKaXJpIFBvcGVsa2EgPGpwb3BlbGthQHJlZGhhdC5jb20+IGF0Ci1odHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzU5Ci0tLS0KLSBsaWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1wcmludGVyLmMgfCAgIDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQotIGxpYmdub21lY3Vwcy9nbm9tZS1jdXBzLXF1ZXVlLmMgICB8ICAgNDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCi0gbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcmVxdWVzdC5jIHwgICA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYmdub21lY3Vwcy9nbm9tZS1jdXBzLXByaW50ZXIuYyBiL2xpYmdub21lY3Vwcy9nbm9tZS1jdXBzLXByaW50ZXIuYwotaW5kZXggYzkyNGFmMC4uZjVlMWVmNyAxMDA2NDQKLS0tLSBhL2xpYmdub21lY3Vwcy9nbm9tZS1jdXBzLXByaW50ZXIuYwotKysrIGIvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcHJpbnRlci5jCi1AQCAtMzcsNiArMzcsMzQgQEAKLSAKLSAjZGVmaW5lIFVQREFURV9USU1FT1VUIDUwMDAKLSAKLSsjaWYgKENVUFNfVkVSU0lPTl9NQUpPUiA+IDEpIHx8IChDVVBTX1ZFUlNJT05fTUlOT1IgPiA1KQotKyNkZWZpbmUgSEFWRV9DVVBTXzFfNiAxCi0rI2VuZGlmCi0rCi0rI2lmbmRlZiBIQVZFX0NVUFNfMV82Ci0rI2RlZmluZSBpcHBHZXRDb3VudChhdHRyKSAgICAgYXR0ci0+bnVtX3ZhbHVlcwotKyNkZWZpbmUgaXBwR2V0TmFtZShhdHRyKSAgICAgIGF0dHItPm5hbWUKLSsjZGVmaW5lIGlwcEdldEludGVnZXIoYXR0ciwgZWxlbWVudCkgYXR0ci0+dmFsdWVzW2VsZW1lbnRdLmludGVnZXIKLSsjZGVmaW5lIGlwcEdldFN0cmluZyhhdHRyLCBlbGVtZW50LCBsYW5ndWFnZSkgYXR0ci0+dmFsdWVzW2VsZW1lbnRdLnN0cmluZy50ZXh0Ci0rCi0rc3RhdGljIGlwcF9hdHRyaWJ1dGVfdCAqCi0raXBwRmlyc3RBdHRyaWJ1dGUoaXBwX3QgKmlwcCkKLSt7Ci0rICBpZiAoIWlwcCkKLSsgICAgcmV0dXJuIChOVUxMKTsKLSsgIHJldHVybiAoaXBwLT5jdXJyZW50ID0gaXBwLT5hdHRycyk7Ci0rfQotKwotK3N0YXRpYyBpcHBfYXR0cmlidXRlX3QgKgotK2lwcE5leHRBdHRyaWJ1dGUoaXBwX3QgKmlwcCkKLSt7Ci0rICBpZiAoIWlwcCB8fCAhaXBwLT5jdXJyZW50KQotKyAgICByZXR1cm4gKE5VTEwpOwotKyAgcmV0dXJuIChpcHAtPmN1cnJlbnQgPSBpcHAtPmN1cnJlbnQtPm5leHQpOwotK30KLSsjZW5kaWYKLSsKLSsKLSBzdHJ1Y3QgX0dub21lQ3Vwc1BQREZpbGUgewotIAljaGFyIG5hbWVbMV07Ci0gfTsKLUBAIC0xNzMsOSArMjAxLDkgQEAgbWFwX3JlYXNvbnMgKEdub21lQ3Vwc1ByaW50ZXIgKnByaW50ZXIsCi0gCXByaW50ZXItPmRldGFpbHMtPnN0YXRlX3JlYXNvbnMgPSBOVUxMOwotIAotIAkvKiBjZi4gUkZDMjkxMSA0LjQuMTIgKi8KLS0JZm9yIChpID0gMDsgaSA8IGF0dHItPm51bV92YWx1ZXM7IGkrKykgewotKwlmb3IgKGkgPSAwOyBpIDwgaXBwR2V0Q291bnQgKGF0dHIpOyBpKyspIHsKLSAJCWNvbnN0IGNoYXIgKnA7Ci0tCQljb25zdCBjaGFyICprZXl3b3JkID0gYXR0ci0+dmFsdWVzIFtpXS5zdHJpbmcudGV4dDsKLSsJCWNvbnN0IGNoYXIgKmtleXdvcmQgPSBpcHBHZXRTdHJpbmcgKGF0dHIsIGksIE5VTEwpOwotIAotIAkJcmVhc29uID0gZ19uZXcgKEdub21lQ3Vwc1ByaW50ZXJSZWFzb24sIDEpOwotIAotQEAgLTIyNCw4ICsyNTIsOCBAQCBnbm9tZV9jdXBzX3ByaW50ZXJfZ2V0X2luZm8gKEdub21lQ3Vwc1ByaW50ZXIgKnByaW50ZXIpCi0gCXJldHVybiBwcmludGVyLT5kZXRhaWxzLT5pbmZvOwotIH0KLSAKLS0jZGVmaW5lIE1BUF9JTlQodixhKSB7aWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGF0dHItPm5hbWUsIChhKSkpIHsgaWYgKCh2KSAhPSBhdHRyLT52YWx1ZXNbMF0uaW50ZWdlcikgeyBjaGFuZ2VkID0gVFJVRTsgfSAodikgPSBhdHRyLT52YWx1ZXNbMF0uaW50ZWdlcjsgfX0KLS0jZGVmaW5lIE1BUF9TVFJJTkcodixhKSB7aWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGF0dHItPm5hbWUsIChhKSkpIHsgaWYgKCF2IHx8IHN0cmNtcCAodiwgYXR0ci0+dmFsdWVzWzBdLnN0cmluZy50ZXh0KSkgeyBnX2ZyZWUgKHYpOyBjaGFuZ2VkID0gVFJVRTsgKHYpID0gZ19zdHJkdXAgKGF0dHItPnZhbHVlc1swXS5zdHJpbmcudGV4dCk7IH19fQotKyNkZWZpbmUgTUFQX0lOVCh2LGEpIHtpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCAoaXBwR2V0TmFtZSAoYXR0ciksIChhKSkpIHsgaWYgKCh2KSAhPSBpcHBHZXRJbnRlZ2VyIChhdHRyLCAwKSkgeyBjaGFuZ2VkID0gVFJVRTsgfSAodikgPSBpcHBHZXRJbnRlZ2VyIChhdHRyLCAwKTsgfX0KLSsjZGVmaW5lIE1BUF9TVFJJTkcodixhKSB7aWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGlwcEdldE5hbWUgKGF0dHIpLCAoYSkpKSB7IGlmICghdiB8fCBzdHJjbXAgKHYsIGlwcEdldFN0cmluZyAoYXR0ciwgMCwgTlVMTCkpKSB7IGdfZnJlZSAodik7IGNoYW5nZWQgPSBUUlVFOyAodikgPSBnX3N0cmR1cCAoaXBwR2V0U3RyaW5nIChhdHRyLCAwLCBOVUxMKSk7IH19fQotIAotIHN0YXRpYyB2b2lkCi0gYXR0cmlidXRlc191cGRhdGVfY2IgKGd1aW50IGlkLAotQEAgLTI0MywxNCArMjcxLDE0IEBAIGF0dHJpYnV0ZXNfdXBkYXRlX2NiIChndWludCBpZCwKLSAJY2hhbmdlZCA9IEZBTFNFOwotIAotIAlpZiAoIWVycm9yICYmIHJlc3BvbnNlKSB7Ci0tCQlmb3IgKGF0dHIgPSByZXNwb25zZS0+YXR0cnM7IGF0dHIgIT0gTlVMTDsgYXR0ciA9IGF0dHItPm5leHQpIHsKLS0JCQlpZiAoIWF0dHItPm5hbWUpIHsKLSsJCWZvciAoYXR0ciA9IGlwcEZpcnN0QXR0cmlidXRlIChyZXNwb25zZSk7IGF0dHIgIT0gTlVMTDsgYXR0ciA9IGlwcE5leHRBdHRyaWJ1dGUgKHJlc3BvbnNlKSkgewotKwkJCWlmICghaXBwR2V0TmFtZSAoYXR0cikpIHsKLSAJCQkJY29udGludWU7Ci0gCQkJfSAKLS0JCQlpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCAoYXR0ci0+bmFtZSwgImF0dHJpYnV0ZXMtY2hhcnNldCIpIHx8ICFzdHJjbXAgKGF0dHItPm5hbWUsICJhdHRyaWJ1dGVzLWNoYXJzZXQiKSkgewotKwkJCWlmICghZ19hc2NpaV9zdHJjYXNlY21wIChpcHBHZXROYW1lIChhdHRyKSwgImF0dHJpYnV0ZXMtY2hhcnNldCIpIHx8ICFzdHJjbXAgKGlwcEdldE5hbWUgKGF0dHIpLCAiYXR0cmlidXRlcy1jaGFyc2V0IikpIHsKLSAJCQkJY29udGludWU7Ci0gCQkJfQotLQkJCWlmICghZ19hc2NpaV9zdHJjYXNlY21wIChhdHRyLT5uYW1lLCAicHJpbnRlci1zdGF0ZS1yZWFzb25zIikpIHsKLSsJCQlpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCAoaXBwR2V0TmFtZSAoYXR0ciksICJwcmludGVyLXN0YXRlLXJlYXNvbnMiKSkgewotIAkJCQltYXBfcmVhc29ucyAocHJpbnRlciwgYXR0cik7Ci0gCQkJfQotIAkJCU1BUF9JTlQgKHByaW50ZXItPmRldGFpbHMtPnN0YXRlLCAicHJpbnRlci1zdGF0ZSIpOwotQEAgLTU3MCw3ICs1OTgsNyBAQCBnZXRfZGVmYXVsdCAodm9pZCkKLSAJCi0gCWF0dHIgPSBpcHBGaW5kQXR0cmlidXRlIChyZXNwb25zZSwgInByaW50ZXItbmFtZSIsIElQUF9UQUdfTkFNRSk7Ci0gCWlmIChhdHRyKSB7Ci0tCQluYW1lID0gZ19zdHJkdXAgKGF0dHItPnZhbHVlc1swXS5zdHJpbmcudGV4dCk7Ci0rCQluYW1lID0gZ19zdHJkdXAgKGlwcEdldFN0cmluZyAoYXR0ciwgMCwgTlVMTCkpOwotIAl9IGVsc2UgewotIAkJbmFtZSA9IE5VTEw7Ci0gCX0KLUBAIC02OTgsNyArNzI2LDcgQEAgZ2V0X3ByaW50ZXJfbmFtZXMgKHZvaWQpCi0gCWF0dHIgPSBpcHBGaW5kQXR0cmlidXRlIChyZXNwb25zZSwgInByaW50ZXItbmFtZSIsIElQUF9UQUdfTkFNRSk7Ci0gCXdoaWxlIChhdHRyKSB7Ci0gCQlyZXQgPSBnX2xpc3RfcHJlcGVuZCAocmV0LCAKLS0JCQkJICAgICAgZ19zdHJkdXAgKGF0dHItPnZhbHVlc1swXS5zdHJpbmcudGV4dCkpOwotKwkJCQkgICAgICBnX3N0cmR1cCAoaXBwR2V0U3RyaW5nIChhdHRyLCAwLCBOVUxMKSkpOwotIAkJCi0gCQlhdHRyID0gaXBwRmluZE5leHRBdHRyaWJ1dGUgKHJlc3BvbnNlLCAKLSAJCQkJCSAgICAgInByaW50ZXItbmFtZSIsIAotZGlmZiAtLWdpdCBhL2xpYmdub21lY3Vwcy9nbm9tZS1jdXBzLXF1ZXVlLmMgYi9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1xdWV1ZS5jCi1pbmRleCA5Zjk4ZWQ5Li4yOThkYjQyIDEwMDY0NAotLS0tIGEvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcXVldWUuYwotKysrIGIvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcXVldWUuYwotQEAgLTE1LDYgKzE1LDMzIEBACi0gCi0gI2RlZmluZSBVUERBVEVfVElNRU9VVCAzMDAwCi0gCi0rI2lmIChDVVBTX1ZFUlNJT05fTUFKT1IgPiAxKSB8fCAoQ1VQU19WRVJTSU9OX01JTk9SID4gNSkKLSsjZGVmaW5lIEhBVkVfQ1VQU18xXzYgMQotKyNlbmRpZgotKwotKyNpZm5kZWYgSEFWRV9DVVBTXzFfNgotKyNkZWZpbmUgaXBwR2V0TmFtZShhdHRyKSAgICAgIGF0dHItPm5hbWUKLSsjZGVmaW5lIGlwcEdldEludGVnZXIoYXR0ciwgZWxlbWVudCkgYXR0ci0+dmFsdWVzW2VsZW1lbnRdLmludGVnZXIKLSsjZGVmaW5lIGlwcEdldFN0cmluZyhhdHRyLCBlbGVtZW50LCBsYW5ndWFnZSkgYXR0ci0+dmFsdWVzW2VsZW1lbnRdLnN0cmluZy50ZXh0Ci0rCi0rc3RhdGljIGlwcF9hdHRyaWJ1dGVfdCAqCi0raXBwRmlyc3RBdHRyaWJ1dGUoaXBwX3QgKmlwcCkKLSt7Ci0rICBpZiAoIWlwcCkKLSsgICAgcmV0dXJuIChOVUxMKTsKLSsgIHJldHVybiAoaXBwLT5jdXJyZW50ID0gaXBwLT5hdHRycyk7Ci0rfQotKwotK3N0YXRpYyBpcHBfYXR0cmlidXRlX3QgKgotK2lwcE5leHRBdHRyaWJ1dGUoaXBwX3QgKmlwcCkKLSt7Ci0rICBpZiAoIWlwcCB8fCAhaXBwLT5jdXJyZW50KQotKyAgICByZXR1cm4gKE5VTEwpOwotKyAgcmV0dXJuIChpcHAtPmN1cnJlbnQgPSBpcHAtPmN1cnJlbnQtPm5leHQpOwotK30KLSsjZW5kaWYKLSsKLSsKLSBzdHJ1Y3QgX0dub21lQ3Vwc1F1ZXVlRGV0YWlscyB7Ci0gCWNoYXIgKnF1ZXVlX25hbWU7Ci0gCUdMaXN0ICpqb2JzOwotQEAgLTE5OSw4ICsyMjYsOCBAQCBmaW5pc2hfam9iIChHbm9tZUN1cHNKb2IgKmpvYikKLSAJam9iLT5zaXplID0gam9iLT5zaXplICogMTAyNDsKLSB9Ci0gCi0tI2RlZmluZSBNQVBfU1RSKGRlc3QsIHNyYykgeyBpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCAoYXR0ci0+bmFtZSwgKHNyYykpKSB7IGlmICgoZGVzdCkgIT0gTlVMTCkgZ19mcmVlIChkZXN0KTsgKGRlc3QpID0gZ19zdHJkdXAgKGF0dHItPnZhbHVlc1swXS5zdHJpbmcudGV4dCk7fX0KLS0jZGVmaW5lIE1BUF9JTlQoZGVzdCwgc3JjKSB7IGlmICghZ19hc2NpaV9zdHJjYXNlY21wIChhdHRyLT5uYW1lLCAoc3JjKSkpIHsgKGRlc3QpID0gYXR0ci0+dmFsdWVzWzBdLmludGVnZXI7IH0gfQotKyNkZWZpbmUgTUFQX1NUUihkZXN0LCBzcmMpIHsgaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGlwcEdldE5hbWUgKGF0dHIpLCAoc3JjKSkpIHsgaWYgKChkZXN0KSAhPSBOVUxMKSBnX2ZyZWUgKGRlc3QpOyAoZGVzdCkgPSBnX3N0cmR1cCAoaXBwR2V0U3RyaW5nIChhdHRyLCAwLCBOVUxMKSk7fX0KLSsjZGVmaW5lIE1BUF9JTlQoZGVzdCwgc3JjKSB7IGlmICghZ19hc2NpaV9zdHJjYXNlY21wIChpcHBHZXROYW1lIChhdHRyKSwgKHNyYykpKSB7IChkZXN0KSA9IGlwcEdldEludGVnZXIgKGF0dHIsIDApOyB9IH0KLSAKLSBzdGF0aWMgdm9pZAotIGdldF9qb2JzX2NiIChndWludCBpZCwKLUBAIC0yMzEsOCArMjU4LDggQEAgZ2V0X2pvYnNfY2IgKGd1aW50IGlkLAotIAkKLSAJaWYgKHJlc3BvbnNlKSB7Ci0gCQlqb2IgPSBnX25ldzAgKEdub21lQ3Vwc0pvYiwgMSk7Ci0tCQlmb3IgKGF0dHIgPSByZXNwb25zZS0+YXR0cnM7IGF0dHIgIT0gTlVMTDsgYXR0ciA9IGF0dHItPm5leHQpIHsKLS0JCQlpZiAoYXR0ci0+bmFtZSA9PSBOVUxMKSB7Ci0rCQlmb3IgKGF0dHIgPSBpcHBGaXJzdEF0dHJpYnV0ZSAocmVzcG9uc2UpOyBhdHRyICE9IE5VTEw7IGF0dHIgPSBpcHBOZXh0QXR0cmlidXRlIChyZXNwb25zZSkpIHsKLSsJCQlpZiAoaXBwR2V0TmFtZSAoYXR0cikgPT0gTlVMTCkgewotIAkJCQlpZiAoam9iLT5uYW1lKSB7Ci0gCQkJCQlmaW5pc2hfam9iIChqb2IpOwotIAkJCQkJam9icyA9IGdfbGlzdF9wcmVwZW5kIChqb2JzLCBqb2IpOwkKLUBAIC0yNDQsNyArMjcxLDcgQEAgZ2V0X2pvYnNfY2IgKGd1aW50IGlkLAotIAkJCQljb250aW51ZTsKLSAJCQl9Ci0gCQkJCi0tCQkJaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGF0dHItPm5hbWUsICJhdHRyaWJ1dGVzLWNoYXJzZXQiKSB8fCAhZ19hc2NpaV9zdHJjYXNlY21wIChhdHRyLT5uYW1lLCAiYXR0cmlidXRlcy1jaGFyc2V0IikpIHsKLSsJCQlpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCAoaXBwR2V0TmFtZSAoYXR0ciksICJhdHRyaWJ1dGVzLWNoYXJzZXQiKSB8fCAhZ19hc2NpaV9zdHJjYXNlY21wIChpcHBHZXROYW1lIChhdHRyKSwgImF0dHJpYnV0ZXMtY2hhcnNldCIpKSB7Ci0gCQkJCWNvbnRpbnVlOwotIAkJCQkKLSAJCQl9Ci1AQCAtMzU1LDggKzM4Miw4IEBAIGdub21lX2N1cHNfcXVldWVfZ2V0X2pvYl9ub2NhY2hlIChHbm9tZUN1cHNRdWV1ZSAqcXVldWUsCi0gCi0gCWlmIChyZXNwb25zZSkgewotIAkJam9iID0gZ19uZXcwIChHbm9tZUN1cHNKb2IsIDEpOwotLQkJZm9yIChhdHRyID0gcmVzcG9uc2UtPmF0dHJzOyBhdHRyICE9IE5VTEw7IGF0dHIgPSBhdHRyLT5uZXh0KSB7Ci0tCQkJaWYgKGF0dHItPm5hbWUgPT0gTlVMTCkgewotKwkJZm9yIChhdHRyID0gaXBwRmlyc3RBdHRyaWJ1dGUgKHJlc3BvbnNlKTsgYXR0ciAhPSBOVUxMOyBhdHRyID0gaXBwTmV4dEF0dHJpYnV0ZSAocmVzcG9uc2UpKSB7Ci0rCQkJaWYgKGlwcEdldE5hbWUgKGF0dHIpID09IE5VTEwpIHsKLSAJCQkJaWYgKGpvYi0+bmFtZSkgewotIAkJCQkJZmluaXNoX2pvYiAoam9iKTsKLSAJCQkJfSBlbHNlIHsKLUBAIC0zNjYsNyArMzkzLDcgQEAgZ25vbWVfY3Vwc19xdWV1ZV9nZXRfam9iX25vY2FjaGUgKEdub21lQ3Vwc1F1ZXVlICpxdWV1ZSwKLSAJCQkJYnJlYWs7Ci0gCQkJfQotIAkJCQotLQkJCWlmICghZ19hc2NpaV9zdHJjYXNlY21wIChhdHRyLT5uYW1lLCAiYXR0cmlidXRlcy1jaGFyc2V0IikgfHwgIWdfYXNjaWlfc3RyY2FzZWNtcCAoYXR0ci0+bmFtZSwgImF0dHJpYnV0ZXMtY2hhcnNldCIpKSB7Ci0rCQkJaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGlwcEdldE5hbWUgKGF0dHIpLCAiYXR0cmlidXRlcy1jaGFyc2V0IikgfHwgIWdfYXNjaWlfc3RyY2FzZWNtcCAoaXBwR2V0TmFtZSAoYXR0ciksICJhdHRyaWJ1dGVzLWNoYXJzZXQiKSkgewotIAkJCQljb250aW51ZTsKLSAJCQl9Ci0gCQkJCi1kaWZmIC0tZ2l0IGEvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcmVxdWVzdC5jIGIvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcmVxdWVzdC5jCi1pbmRleCBjOTRmNjIzLi4xM2YwOTQ4IDEwMDY0NAotLS0tIGEvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcmVxdWVzdC5jCi0rKysgYi9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1yZXF1ZXN0LmMKLUBAIC0xOSw2ICsxOSwzNiBAQAotICNkZWZpbmUgU1RPUF9VTlVTRURfVEhSRUFEU19USU1FT1VUIDYwCi0gI2RlZmluZSBDTE9TRV9VTlVTRURfQ09OTkVDVElPTlNfVElNRU9VVCAzMAotIAotKyNpZiAoQ1VQU19WRVJTSU9OX01BSk9SID4gMSkgfHwgKENVUFNfVkVSU0lPTl9NSU5PUiA+IDUpCi0rI2RlZmluZSBIQVZFX0NVUFNfMV82IDEKLSsjZW5kaWYKLSsKLSsjaWZuZGVmIEhBVkVfQ1VQU18xXzYKLSsjZGVmaW5lIGlwcEdldENvdW50KGF0dHIpICAgICBhdHRyLT5udW1fdmFsdWVzCi0rI2RlZmluZSBpcHBHZXRWYWx1ZVRhZyhhdHRyKSAgYXR0ci0+dmFsdWVfdGFnCi0rI2RlZmluZSBpcHBHZXROYW1lKGF0dHIpICAgICAgYXR0ci0+bmFtZQotKyNkZWZpbmUgaXBwR2V0Qm9vbGVhbihhdHRyLCBlbGVtZW50KSBhdHRyLT52YWx1ZXNbZWxlbWVudF0uYm9vbGVhbgotKyNkZWZpbmUgaXBwR2V0SW50ZWdlcihhdHRyLCBlbGVtZW50KSBhdHRyLT52YWx1ZXNbZWxlbWVudF0uaW50ZWdlcgotKyNkZWZpbmUgaXBwR2V0U3RyaW5nKGF0dHIsIGVsZW1lbnQsIGxhbmd1YWdlKSBhdHRyLT52YWx1ZXNbZWxlbWVudF0uc3RyaW5nLnRleHQKLSsKLStzdGF0aWMgaXBwX2F0dHJpYnV0ZV90ICoKLStpcHBGaXJzdEF0dHJpYnV0ZShpcHBfdCAqaXBwKQotK3sKLSsgIGlmICghaXBwKQotKyAgICByZXR1cm4gKE5VTEwpOwotKyAgcmV0dXJuIChpcHAtPmN1cnJlbnQgPSBpcHAtPmF0dHJzKTsKLSt9Ci0rCi0rc3RhdGljIGlwcF9hdHRyaWJ1dGVfdCAqCi0raXBwTmV4dEF0dHJpYnV0ZShpcHBfdCAqaXBwKQotK3sKLSsgIGlmICghaXBwIHx8ICFpcHAtPmN1cnJlbnQpCi0rICAgIHJldHVybiAoTlVMTCk7Ci0rICByZXR1cm4gKGlwcC0+Y3VycmVudCA9IGlwcC0+Y3VycmVudC0+bmV4dCk7Ci0rfQotKyNlbmRpZgotKwotKwotIHR5cGVkZWYgc3RydWN0Ci0gewotIAlHTXV0ZXggKm11dGV4OwotQEAgLTI3NiwxNCArMzA2LDE0IEBAIGR1bXBfcmVxdWVzdCAoaXBwX3QgY29uc3QgKnJlcSkKLSAJdW5zaWduZWQgaTsKLSAJaXBwX2F0dHJpYnV0ZV90ICphdHRyOwotIAotLQlmb3IgKGF0dHIgPSByZXEtPmF0dHJzOyBhdHRyICE9IE5VTEw7IGF0dHIgPSBhdHRyLT5uZXh0KSB7Ci0tCQlnX3ByaW50ICgiJXMiLCBhdHRyLT5uYW1lKTsKLS0JCWZvciAoaSA9IDAgOyBpIDwgYXR0ci0+bnVtX3ZhbHVlcyA7IGkrKykgewotKwlmb3IgKGF0dHIgPSBpcHBGaXJzdEF0dHJpYnV0ZSAocmVxKTsgYXR0ciAhPSBOVUxMOyBhdHRyID0gaXBwTmV4dEF0dHJpYnV0ZSAocmVxKSkgewotKwkJZ19wcmludCAoIiVzIiwgaXBwR2V0TmFtZSAoYXR0cikpOwotKwkJZm9yIChpID0gMCA7IGkgPCBpcHBHZXRDb3VudCAoYXR0cikgOyBpKyspIHsKLSAJCQlnX3ByaW50ICgiXHRbJWRdID0gIiwgaSk7Ci0tCQkJc3dpdGNoIChhdHRyLT52YWx1ZV90YWcgJiB+SVBQX1RBR19DT1BZKSB7Ci0rCQkJc3dpdGNoIChpcHBHZXRWYWx1ZVRhZyAoYXR0cikgJiB+SVBQX1RBR19DT1BZKSB7Ci0gCQkJY2FzZSBJUFBfVEFHX0lOVEVHRVI6Ci0gCQkJY2FzZSBJUFBfVEFHX0VOVU06Ci0tCQkJCWdfcHJpbnQgKCIlZFxuIiwgYXR0ci0+dmFsdWVzW2ldLmludGVnZXIpOwotKwkJCQlnX3ByaW50ICgiJWRcbiIsIGlwcEdldEludGVnZXIgKGF0dHIsIGkpKTsKLSAJCQkJYnJlYWs7Ci0gCi0gCQkJY2FzZSBJUFBfVEFHX1NUUklORzoKLUBAIC0yOTQsMTEgKzMyNCwxMSBAQCBkdW1wX3JlcXVlc3QgKGlwcF90IGNvbnN0ICpyZXEpCi0gCQkJY2FzZSBJUFBfVEFHX0NIQVJTRVQ6Ci0gCQkJY2FzZSBJUFBfVEFHX0xBTkdVQUdFOgotIAkJCWNhc2UgSVBQX1RBR19NSU1FVFlQRToKLS0JCQkJZ19wcmludCAoIiclcydcbiIsIGF0dHItPnZhbHVlc1tpXS5zdHJpbmcudGV4dCk7Ci0rCQkJCWdfcHJpbnQgKCInJXMnXG4iLCBpcHBHZXRTdHJpbmcgKGF0dHIsIGksIE5VTEwpKTsKLSAJCQkJYnJlYWs7Ci0gCi0gCQkJY2FzZSBJUFBfVEFHX0JPT0xFQU46Ci0tCQkJCWdfcHJpbnQgKCIlc1xuIiwgKGludClhdHRyLT52YWx1ZXNbaV0uYm9vbGVhbiA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotKwkJCQlnX3ByaW50ICgiJXNcbiIsIChpbnQpaXBwR2V0Qm9vbGVhbiAoYXR0ciwgaSkgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLSAJCQkJYnJlYWs7Ci0gCi0gCQkJZGVmYXVsdDoKLS0tIAotMS43LjguNgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS9saWJnbm9tZWN1cHMvbGliZ25vbWVjdXBzLTAuMi4zLWdsaWIuaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lL2xpYmdub21lY3Vwcy9saWJnbm9tZWN1cHMtMC4yLjMtZ2xpYi5oLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2I2MTY1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lL2xpYmdub21lY3Vwcy9saWJnbm9tZWN1cHMtMC4yLjMtZ2xpYi5oLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotSW1wb3J0ZWQgZnJvbSBnZW50b286Ci0KLWh0dHA6Ly9zb3VyY2VzLmdlbnRvby5vcmcvY2dpLWJpbi92aWV3dmMuY2dpL2dlbnRvby14ODYvbmV0LXByaW50L2xpYmdub21lY3Vwcy9maWxlcy9saWJnbm9tZWN1cHMtMC4yLjMtZ2xpYi5oLnBhdGNoCi0KLUZyb20gZDg0ZWVlOTQ1MGIzYjZmNjE1NTA3NDkxNWVmYzYxYmVkY2M4ZDQ0NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERvbWluaXF1ZSBMZXVlbmJlcmdlciA8ZGltc3RhckBvcGVuc3VzZS5vcmc+Ci1EYXRlOiBTdW4sIDI3IE5vdiAyMDExIDIxOjM2OjQxICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeDogT25seSBnbGliLmggY2FuIGJlIGluY2x1ZGVkCi0KLS0tLQotIGxpYmdub21lY3Vwcy9nbm9tZS1jdXBzLWkxOG4uYyB8ICAgIDIgKy0KLSBsaWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1pbml0LmggfCAgICAzICstLQotIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtaTE4bi5jIGIvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtaTE4bi5jCi1pbmRleCA4OTg3YzVjLi4xMjc3NTZkIDEwMDY0NAotLS0tIGEvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtaTE4bi5jCi0rKysgYi9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1pMThuLmMKLUBAIC0xLDUgKzEsNSBAQAotICNpbmNsdWRlIDxjb25maWcuaD4KLS0jaW5jbHVkZSA8Z2xpYi9nbWFjcm9zLmg+Ci0rI2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSAiZ25vbWUtY3Vwcy1pMThuLmgiCi0gCi0gI2lmZGVmIEVOQUJMRV9OTFMKLWRpZmYgLS1naXQgYS9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1pbml0LmggYi9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1pbml0LmgKLWluZGV4IDIyYjY4MmEuLmM0NjAwZmMgMTAwNjQ0Ci0tLS0gYS9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1pbml0LmgKLSsrKyBiL2xpYmdub21lY3Vwcy9nbm9tZS1jdXBzLWluaXQuaAotQEAgLTEsOCArMSw3IEBACi0gI2lmbmRlZiBHTk9NRV9DVVBTX0lOSVQKLSAjZGVmaW5lIEdOT01FX0NVUFNfSU5JVAotIAotLSNpbmNsdWRlIDxnbGliL2d0eXBlcy5oPgotLSNpbmNsdWRlIDxnbGliL2dtYWNyb3MuaD4KLSsjaW5jbHVkZSA8Z2xpYi5oPgotIAotIEdfQkVHSU5fREVDTFMKLSAKLS0tIAotMS43LjcKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3RrLWVuZ2luZXMvZmlsZXMvZ2xpYi0yLjMyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3RrLWVuZ2luZXMvZmlsZXMvZ2xpYi0yLjMyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMGI4NzhkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d0ay1lbmdpbmVzL2ZpbGVzL2dsaWItMi4zMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLUZyb20gOGQ0OWEzODZmNDY3Y2JmOGUwODQyZDIyMTgxMjZmNjQzZTUwZjgzNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERvbWluaXF1ZSBMZXVlbmJlcmdlciA8ZGltc3RhckBvcGVuc3VzZS5vcmc+Ci1EYXRlOiBTdW4sIDI3IE5vdiAyMDExIDE0OjI0OjU3ICswMDAwCi1TdWJqZWN0OiBGaXggYnVpbGQgd2l0aCBnbGliIDIuMzE6IE9ubHkgZ2xpYi5oIGNhbiBiZSAjaW5jbHVkZSdkLiBGaXhlcyBidWcgIzY2NDkxNAotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci0KLS0tLQotZGlmZiAtLWdpdCBhL2VuZ2luZXMvY2xlYXJsb29rcy9zcmMvYW5pbWF0aW9uLmMgYi9lbmdpbmVzL2NsZWFybG9va3Mvc3JjL2FuaW1hdGlvbi5jCi1pbmRleCAxZjdhNDFmLi41NmE5Mjg2IDEwMDY0NAotLS0tIGEvZW5naW5lcy9jbGVhcmxvb2tzL3NyYy9hbmltYXRpb24uYwotKysrIGIvZW5naW5lcy9jbGVhcmxvb2tzL3NyYy9hbmltYXRpb24uYwotQEAgLTI4LDcgKzI4LDcgQEAKLSAjaW5jbHVkZSAiYW5pbWF0aW9uLmgiCi0gCi0gI2lmZGVmIEhBVkVfV09SS0lOR19BTklNQVRJT04KLS0jaW5jbHVkZSA8Z2xpYi9ndGltZXIuaD4KLSsjaW5jbHVkZSA8Z2xpYi5oPgotIAotIHN0cnVjdCBfQW5pbWF0aW9uSW5mbyB7Ci0gCUdUaW1lciAqdGltZXI7Ci0tLQotY2dpdCB2MC45LjAuMgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3RrLWVuZ2luZXMvZmlsZXMvc3Vic3RpdHV0ZS10ZXN0cy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d0ay1lbmdpbmVzL2ZpbGVzL3N1YnN0aXR1dGUtdGVzdHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjNTU3YmEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3RrLWVuZ2luZXMvZmlsZXMvc3Vic3RpdHV0ZS10ZXN0cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBNYXJrbyBMaW5kcXZpc3QgPGNhemZpNzRAZ21haWwuY29tPgotZGlmZiAtTnVyZCBndGstZW5naW5lcy0yLjIwLjIvY29uZmlndXJlLmFjIGd0ay1lbmdpbmVzLTIuMjAuMi9jb25maWd1cmUuYWMKLS0tLSBndGstZW5naW5lcy0yLjIwLjIvY29uZmlndXJlLmFjCTIwMTAtMTAtMDEgMTU6NDI6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgZ3RrLWVuZ2luZXMtMi4yMC4yL2NvbmZpZ3VyZS5hYwkyMDEzLTA4LTIwIDAyOjUwOjI3LjkzMDUxMDU2NSArMDMwMAotQEAgLTE2Niw2ICsxNjYsOSBAQAotCi0gQUNfU1VCU1QoREVWRUxPUE1FTlRfQ0ZMQUdTKQotCi0rQUNfU1VCU1QoW2V4cG9ydGVkX3N5bWJvbHNfdGVzdHNdLCBbWyQoRVhQT1JURURfU1lNQk9MU19URVNUUyldXSkKLStBQ19TVUJTVChbdG9ydHVyZV90ZXN0X3Rlc3RzXSwgW1skKFRPUlRVUkVfVEVTVF9URVNUUyldXSkKLSsKLSBBTV9DT05GSUdfSEVBREVSKFtlbmdpbmVzL3N1cHBvcnQvY29uZmlnLmhdKQotCi0gQUNfQ09ORklHX0ZJTEVTKFsKLWRpZmYgLU51cmQgZ3RrLWVuZ2luZXMtMi4yMC4yL3Rlc3QvTWFrZWZpbGUuYW0gZ3RrLWVuZ2luZXMtMi4yMC4yL3Rlc3QvTWFrZWZpbGUuYW0KLS0tLSBndGstZW5naW5lcy0yLjIwLjIvdGVzdC9NYWtlZmlsZS5hbQkyMDEwLTA5LTE5IDE4OjE4OjIxLjAwMDAwMDAwMCArMDMwMAotKysrIGd0ay1lbmdpbmVzLTIuMjAuMi90ZXN0L01ha2VmaWxlLmFtCTIwMTMtMDgtMjAgMDI6NTA6MzYuODQyNTEwODY1ICswMzAwCi1AQCAtNjYsNyArNjYsNyBAQAotICMgUHJlZml4IHdpdGggZXhwb3J0ZWRfCi0gRVhQT1JURURfU1lNQk9MU19URVNUUyA9ICQocGF0c3Vic3QgJSxleHBvcnRlZF8lLCQoQlVJTERfRU5HSU5FUykpCi0KLS1URVNUUyArPSAkKEVYUE9SVEVEX1NZTUJPTFNfVEVTVFMpCi0rVEVTVFMgKz0gQGV4cG9ydGVkX3N5bWJvbHNfdGVzdHNACi0KLQotICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLUBAIC04OCw3ICs4OCw3IEBACi0gVE9SVFVSRV9URVNUX1RFU1RTID0gdG9ydHVyZV9idWlsZGluICQocGF0c3Vic3QgJSx0b3J0dXJlXyUsJChUT1JUVVJFX1RFU1RfRU5HSU5FUykpCi0KLSAjIEFkZCBUT1JUVVJFX1RFU1RfRU5HSU5FUyB0byBsaXN0IG9mIHRlc3RzCi0tVEVTVFMgKz0gJChUT1JUVVJFX1RFU1RfVEVTVFMpCi0rVEVTVFMgKz0gQHRvcnR1cmVfdGVzdF90ZXN0c0AKLQotICMgUG9zc2libGUgb3RoZXIgdGVzdHM6Ci0gIyAgLSBBbiBleHRlbnNpdmUgdGhlbWUgc3dpdGNoIHRlc3RzIHRoYXQgbG9hZHMvdW5sb2FkcyB0aGUgZW5naW5lCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGstZW5naW5lcy9ndGstZW5naW5lc18yLjIwLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGstZW5naW5lcy9ndGstZW5naW5lc18yLjIwLjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzYWE3NDkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3RrLWVuZ2luZXMvZ3RrLWVuZ2luZXNfMi4yMC4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotU1VNTUFSWSA9ICJHVEsrIHRoZW1lIGVuZ2luZXMiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3Lmdub21lLm9yZy8iCi1CVUdUUkFDS0VSID0gImh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLyIKLQotTElDRU5TRSA9ICJMR1BMdjIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTJkNTAyNWQ0YWEzNDk1YmVmZWY4ZjE3MjA2YTViMGExIgotCi1TRUNUSU9OID0gIngxMS9iYXNlIgotREVQRU5EUyA9ICJpbnRsdG9vbC1uYXRpdmUgZ3RrKyBnZXR0ZXh0LW5hdGl2ZSBnbGliLTIuMC1uYXRpdmUiCi0KLVBSID0gInIzIgotCi1QQUNLQUdFUyArPSAiJHtQTn0tc2NoZW1hcyIKLVBBQ0tBR0VTX0RZTkFNSUMgKz0gIl5ndGstZW5naW5lLS4qIF5ndGstdGhlbWUtLioiCi0KLVJERVBFTkRTX2d0ay10aGVtZS1yZWRtb25kID0gImd0ay1lbmdpbmUtcmVkbW9uZDk1IgotUkRFUEVORFNfZ3RrLXRoZW1lLW1ldGFsID0gImd0ay1lbmdpbmUtbWV0YWwiCi1SREVQRU5EU19ndGstdGhlbWUtbWlzdCA9ICJndGstZW5naW5lLW1pc3QiCi1SREVQRU5EU19ndGstdGhlbWUtY3J1eCA9ICJndGstZW5naW5lLWNydXgtZW5naW5lIgotUkRFUEVORFNfZ3RrLXRoZW1lLWxpZ2h0aG91c2VibHVlID0gImd0ay1lbmdpbmUtbGlnaHRob3VzZWJsdWUiCi1SREVQRU5EU19ndGstdGhlbWUtdGhpbmljZSA9ICJndGstZW5naW5lLXRoaW5pY2UiCi1SREVQRU5EU19ndGstdGhlbWUtaW5kdXN0cmlhbCA9ICJndGstZW5naW5lLWluZHVzdHJpYWwiCi1SREVQRU5EU19ndGstdGhlbWUtY2xlYXJsb29rcyA9ICJndGstZW5naW5lLWNsZWFybG9va3MiCi0KLUZJTEVTXyR7UE59ID0gIiIKLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2d0ay0yLjAvKi9lbmdpbmVzLyoubGEiCi1GSUxFU18ke1BOfS1zY2hlbWFzID0gIiR7ZGF0YWRpcn0vZ3RrLWVuZ2luZXMvKi54bWwiCi0KLUNGTEFHU19wcmVwZW5kID0gIi1ESEFWRV9BTklNQVRJT04gIgotCi1SREVQRU5EU18ke1BOfS1kZXYgPSAiIgotCi1pbmhlcml0IGdub21lYmFzZQotR05PTUVfQ09NUFJFU1NfVFlQRT0iYnoyIgotCi1pbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjawotQU5ZX09GX0RJU1RST19GRUFUVVJFUyA9ICIke0dUSzJESVNUUk9GRUFUVVJFU30iCi0KLSMgVGhpcyBwaWNrcyBzdGFibGUgcmVsZWFzZXMgaW4gdGhlIDIueCBzZXJpZXMgKGJ1dCBub3QgMi45MCBvbndhcmRzLAotIyB3aGljaCB3ZXJlIEdOT01FIDMgYmV0YXMpLgotVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAiKD9QPHB2ZXI+MlwuKFswLThdKlswMjQ2OF0pKyhcLlxkKykrKSIKLQotcHl0aG9uIHBvcHVsYXRlX3BhY2thZ2VzX3ByZXBlbmQoKSB7Ci0gICAgZW5naW5lc19yb290ID0gb3MucGF0aC5qb2luKGQuZ2V0VmFyKCdsaWJkaXInKSwgImd0ay0yLjAvMi4xMC4wL2VuZ2luZXMiKQotICAgIHRoZW1lc19yb290ID0gb3MucGF0aC5qb2luKGQuZ2V0VmFyKCdkYXRhZGlyJyksICJ0aGVtZXMiKQotCi0gICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgZW5naW5lc19yb290LCAnXmxpYiguKilcLnNvJCcsICdndGstZW5naW5lLSVzJywgJ0dUSyAlcyB0aGVtZSBlbmdpbmUnLCBleHRyYV9kZXBlbmRzPScnKQotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIHRoZW1lc19yb290LCAnKC4qKScsICdndGstdGhlbWUtJXMnLCAnR1RLIHRoZW1lICVzJywgYWxsb3dfZGlycz1UcnVlLCBleHRyYV9kZXBlbmRzPScnKQotICAgICMgVE9ETzogbWFyayB0aGVtZSBwYWNrYWdlcyBhcyBhcmNoIGFsbAotfQotCi1TUkNfVVJJICs9ICJmaWxlOi8vZ2xpYi0yLjMyLnBhdGNoIFwKLSAgICAgICAgICAgIGZpbGU6Ly9zdWJzdGl0dXRlLXRlc3RzLnBhdGNoIgotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiNWRlYjI4N2JjNjA3NWRjMjE4MTIxMzA2MDRjN2RjNGYiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICIxNWI2ODBhYmNhNmM3NzNlY2I4NTI1MzUyMWZhMTAwZGQzYjg1NDliZWZlZWNjNzU5NWIxMDIwOWQ2MmQ2NmI1IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3Rrc291cmNldmlldy9ndGtzb3VyY2V2aWV3LWNsYXNzaWMtbGlnaHQvY2xhc3NpYy1saWdodC54bWwgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGtzb3VyY2V2aWV3L2d0a3NvdXJjZXZpZXctY2xhc3NpYy1saWdodC9jbGFzc2ljLWxpZ2h0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2I0YjlhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3Rrc291cmNldmlldy9ndGtzb3VyY2V2aWV3LWNsYXNzaWMtbGlnaHQvY2xhc3NpYy1saWdodC54bWwKQEAgLTAsMCArMSwxMzEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCisKKyBCYXNlZCBvbiBndGtzb3VyY2V2aWV3ICdjbGFzc2ljJworIAorIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEd0a1NvdXJjZVZpZXcKKworIENvcHlyaWdodCAoQykgMjAwNi0yMDA3IEd0a1NvdXJjZVZpZXcgdGVhbQorIEF1dGhvcjogWWV2Z2VuIE11bnR5YW4gPG11bnR5YW5AdGFtdS5lZHU+CisKKyBHdGtTb3VyY2VWaWV3IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIEd0a1NvdXJjZVZpZXcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKworLS0+Cis8c3R5bGUtc2NoZW1lIGlkPSJjbGFzc2ljLWxpZ2h0IiBfbmFtZT0iQ2xhc3NpYy1MaWdodCIgdmVyc2lvbj0iMS4wIj4KKyAgPGF1dGhvcj5HdGtTb3VyY2VWaWV3IHRlYW08L2F1dGhvcj4KKyAgPF9kZXNjcmlwdGlvbj5DbGFzc2ljIGNvbG9yIHNjaGVtZSBsaWdodDwvX2Rlc2NyaXB0aW9uPgorCisgIDwhLS0gVGhlIHNjaGVtZSB0cmllcyB0byBsb29rIGxpa2UgdGhlIGRlZmF1bHQgR1ZpbSBzY2hlbWUsCisgICAgICAgc2luY2UgaXQgaXMgYWxzbyB3aGF0IHRoZSBoYXJkd2lyZWQgR3RrU291cmNlVmlldyAxIGNvbG9yCisgICAgICAgc2NoZW1lIGRpZCAtLT4KKworICA8IS0tIFBhbGV0dGUgLS0+CisgIDxjb2xvciBuYW1lPSJibGFjayIgICAgICB2YWx1ZT0iIzAwMDAwMCIvPgorICA8Y29sb3IgbmFtZT0id2hpdGUiICAgICAgdmFsdWU9IiNGRkZGRkYiLz4KKyAgPGNvbG9yIG5hbWU9ImJsdWUiICAgICAgIHZhbHVlPSIjMDAwMEZGIi8+CisgIDxjb2xvciBuYW1lPSJtYWdlbnRhIiAgICB2YWx1ZT0iI0ZGMDBGRiIvPgorICA8Y29sb3IgbmFtZT0idmlvbGV0IiAgICAgdmFsdWU9IiM2QTVBQ0QiLz4KKyAgPGNvbG9yIG5hbWU9ImN5YW4iICAgICAgIHZhbHVlPSIjMDA4QThDIi8+CisgIDxjb2xvciBuYW1lPSJncmF5IiAgICAgICB2YWx1ZT0iI0JFQkVCRSIvPgorICA8Y29sb3IgbmFtZT0ibGlnaHRncmF5IiAgdmFsdWU9IiNFMEUwRTAiLz4KKyAgPGNvbG9yIG5hbWU9ImdyZWVuIiAgICAgIHZhbHVlPSIjMkU4QjU3Ii8+CisgIDxjb2xvciBuYW1lPSJib3JkZWF1eCIgICB2YWx1ZT0iI0E1MkEyQSIvPgorICA8Y29sb3IgbmFtZT0icmVkIiAgICAgICAgdmFsdWU9IiNGRjAwMDAiLz4KKyAgPGNvbG9yIG5hbWU9InllbGxvdyIgICAgIHZhbHVlPSIjRkZGRjAwIi8+CisgIDxjb2xvciBuYW1lPSJwdXJwbGUiICAgICB2YWx1ZT0iI0EwMjBGMCIvPgorCisgIDwhLS0gR2xvYmFsIFNldHRpbmdzIC0tPgorICA8c3R5bGUgbmFtZT0iY3VycmVudC1saW5lIiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPSIjZWVlZWVjIi8+CisgIDxzdHlsZSBuYW1lPSJjdXJyZW50LWxpbmUtbnVtYmVyIiAgICAgICAgIGJhY2tncm91bmQ9IiNlZWVlZWMiLz4KKyAgPHN0eWxlIG5hbWU9ImRyYXctc3BhY2VzIiAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iI2JhYmRiNiIvPgorICA8c3R5bGUgbmFtZT0iYmFja2dyb3VuZC1wYXR0ZXJuIiAgICAgICAgICBiYWNrZ3JvdW5kPSIjZjNmM2YzIi8+CisgIDxzdHlsZSBuYW1lPSJ0ZXh0IiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9ImJsYWNrIiBiYWNrZ3JvdW5kPSJ3aGl0ZSIvPgorICA8c3R5bGUgbmFtZT0ic2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPSJncmF5Ii8+CisgIDxzdHlsZSBuYW1lPSJjdXJzb3IiICAgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9ImJsYWNrIi8+CisgIDxzdHlsZSBuYW1lPSJsaW5lLW51bWJlcnMiICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9ImJsYWNrIiBiYWNrZ3JvdW5kPSJncmF5Ii8+CisKKyAgPCEtLSBCcmFja2V0IE1hdGNoaW5nIC0tPgorICA8c3R5bGUgbmFtZT0iYnJhY2tldC1tYXRjaCIgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSJ3aGl0ZSIgYmFja2dyb3VuZD0iZ3JheSIvPgorICA8c3R5bGUgbmFtZT0iYnJhY2tldC1taXNtYXRjaCIgICAgICAgICAgICBmb3JlZ3JvdW5kPSJ3aGl0ZSIgYmFja2dyb3VuZD0icmVkIi8+CisKKyAgPCEtLSBSaWdodCBNYXJnaW4gLS0+CisgIDxzdHlsZSBuYW1lPSJyaWdodC1tYXJnaW4iICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9IiMwMDAwMDAiIGJhY2tncm91bmQ9IiMwMDAwMDAiLz4KKworICA8IS0tIFNlYXJjaCBNYXRjaGluZyAtLT4KKyAgPHN0eWxlIG5hbWU9InNlYXJjaC1tYXRjaCIgICAgICAgICAgICAgICAgYmFja2dyb3VuZD0ieWVsbG93Ii8+CisKKyAgPCEtLSBDb21tZW50cyAtLT4KKyAgPHN0eWxlIG5hbWU9ImRlZjpjb21tZW50IiAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iYmx1ZSIvPgorICA8c3R5bGUgbmFtZT0iZGVmOnNoZWJhbmciICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSJibHVlIiBib2xkPSJ0cnVlIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6ZG9jLWNvbW1lbnQtZWxlbWVudCIgICAgIGl0YWxpYz0idHJ1ZSIvPgorCisgIDwhLS0gQ29uc3RhbnRzIC0tPgorICA8c3R5bGUgbmFtZT0iZGVmOmNvbnN0YW50IiAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSJtYWdlbnRhIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6c3BlY2lhbC1jaGFyIiAgICAgICAgICAgIGZvcmVncm91bmQ9InZpb2xldCIvPgorCisgIDwhLS0gSWRlbnRpZmllcnMgLS0+CisgIDxzdHlsZSBuYW1lPSJkZWY6aWRlbnRpZmllciIgICAgICAgICAgICAgIGZvcmVncm91bmQ9ImN5YW4iLz4KKworICA8IS0tIFN0YXRlbWVudHMgLS0+CisgIDxzdHlsZSBuYW1lPSJkZWY6c3RhdGVtZW50IiAgICAgICAgICAgICAgIGZvcmVncm91bmQ9ImJvcmRlYXV4IiBib2xkPSJ0cnVlIi8+CisKKyAgPCEtLSBUeXBlcyAtLT4KKyAgPHN0eWxlIG5hbWU9ImRlZjp0eXBlIiAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iZ3JlZW4iIGJvbGQ9InRydWUiLz4KKworICA8IS0tIE90aGVycyAtLT4KKyAgPHN0eWxlIG5hbWU9ImRlZjpwcmVwcm9jZXNzb3IiICAgICAgICAgICAgZm9yZWdyb3VuZD0icHVycGxlIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6ZXJyb3IiICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9InJlZCIgYm9sZD0idHJ1ZSIvPgorICA8c3R5bGUgbmFtZT0iZGVmOndhcm5pbmciICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPSJ5ZWxsb3ciLz4KKyAgPHN0eWxlIG5hbWU9ImRlZjpub3RlIiAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iYmx1ZSIgYmFja2dyb3VuZD0ieWVsbG93IiBib2xkPSJ0cnVlIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6dW5kZXJsaW5lZCIgICAgICAgICAgICAgIGl0YWxpYz0idHJ1ZSIgdW5kZXJsaW5lPSJzaW5nbGUiLz4KKworICA8IS0tIEhlYWRpbmcgc3R5bGVzLCB1bmNvbW1lbnQgdG8gZW5hYmxlIC0tPgorICA8IS0tCisgIDxzdHlsZSBuYW1lPSJkZWY6aGVhZGluZzAiICAgICAgICAgICAgICAgIHNjYWxlPSI1LjAiLz4KKyAgPHN0eWxlIG5hbWU9ImRlZjpoZWFkaW5nMSIgICAgICAgICAgICAgICAgc2NhbGU9IjIuNSIvPgorICA8c3R5bGUgbmFtZT0iZGVmOmhlYWRpbmcyIiAgICAgICAgICAgICAgICBzY2FsZT0iMi4wIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6aGVhZGluZzMiICAgICAgICAgICAgICAgIHNjYWxlPSIxLjciLz4KKyAgPHN0eWxlIG5hbWU9ImRlZjpoZWFkaW5nNCIgICAgICAgICAgICAgICAgc2NhbGU9IjEuNSIvPgorICA8c3R5bGUgbmFtZT0iZGVmOmhlYWRpbmc1IiAgICAgICAgICAgICAgICBzY2FsZT0iMS4zIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6aGVhZGluZzYiICAgICAgICAgICAgICAgIHNjYWxlPSIxLjIiLz4KKyAgLS0+CisKKyAgPCEtLSBMYW5ndWFnZSBzcGVjaWZpYyBzdHlsZXMgLS0+CisgIDxzdHlsZSBuYW1lPSJkaWZmOmFkZGVkLWxpbmUiICAgICAgICAgICAgIGZvcmVncm91bmQ9IiMwMDhCOEIiLz4KKyAgPHN0eWxlIG5hbWU9ImRpZmY6cmVtb3ZlZC1saW5lIiAgICAgICAgICAgZm9yZWdyb3VuZD0iIzZBNUFDRCIvPgorICA8c3R5bGUgbmFtZT0iZGlmZjpjaGFuZ2VkLWxpbmUiICAgICAgICAgICB1c2Utc3R5bGU9ImRlZjpwcmVwcm9jZXNzb3IiLz4KKyAgPHN0eWxlIG5hbWU9ImRpZmY6c3BlY2lhbC1jYXNlIiAgICAgICAgICAgdXNlLXN0eWxlPSJkZWY6Y29uc3RhbnQiLz4KKyAgPHN0eWxlIG5hbWU9ImRpZmY6bG9jYXRpb24iICAgICAgICAgICAgICAgdXNlLXN0eWxlPSJkZWY6c3RhdGVtZW50Ii8+CisgIDxzdHlsZSBuYW1lPSJkaWZmOmRpZmYtZmlsZSIgICAgICAgICAgICAgIHVzZS1zdHlsZT0iZGVmOnR5cGUiLz4KKworICA8c3R5bGUgbmFtZT0ieG1sOnRhZ3MiICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSJjeWFuIi8+CisgIDxzdHlsZSBuYW1lPSJ4bWw6YXR0cmlidXRlLW5hbWUiICAgICAgICAgIGZvcmVncm91bmQ9InZpb2xldCIvPgorICA8c3R5bGUgbmFtZT0ieG1sOm5hbWVzcGFjZSIgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSJncmVlbiIgYm9sZD0idHJ1ZSIvPgorCisgIDxzdHlsZSBuYW1lPSJqczpvYmplY3QiICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9IiMyRThCNTciIGJvbGQ9InRydWUiLz4KKyAgPHN0eWxlIG5hbWU9ImpzOmNvbnN0cnVjdG9ycyIgICAgICAgICAgICAgZm9yZWdyb3VuZD0iIzAwOEI4QiIvPgorCisgIDxzdHlsZSBuYW1lPSJsYXRleDpkaXNwbGF5LW1hdGgiICAgICAgICAgIGZvcmVncm91bmQ9IiM2QTVBQ0QiLz4KKyAgPHN0eWxlIG5hbWU9ImxhdGV4OmNvbW1hbmQiICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iIzJFOEI1NyIgYm9sZD0idHJ1ZSIvPgorICA8c3R5bGUgbmFtZT0ibGF0ZXg6aW5jbHVkZSIgICAgICAgICAgICAgICB1c2Utc3R5bGU9ImRlZjpwcmVwcm9jZXNzb3IiLz4KKworICA8c3R5bGUgbmFtZT0ic2g6dmFyaWFibGUiICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSIjNkE1QUNEIi8+CisKKyAgPCEtLSBsZWdhY3kgc3R5bGVzIGZvciBvbGQgbGFuZyBmaWxlcyAtLT4KKyAgPHN0eWxlIG5hbWU9Ik90aGVycyIgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iIzJFOEI1NyIgYm9sZD0idHJ1ZSIvPgorICA8c3R5bGUgbmFtZT0iT3RoZXJzIDIiICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSIjMDA4QjhCIi8+CisgIDxzdHlsZSBuYW1lPSJPdGhlcnMgMyIgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9IiM2QTVBQ0QiLz4KKworPC9zdHlsZS1zY2hlbWU+CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGtzb3VyY2V2aWV3L2d0a3NvdXJjZXZpZXctY2xhc3NpYy1saWdodF8xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGtzb3VyY2V2aWV3L2d0a3NvdXJjZXZpZXctY2xhc3NpYy1saWdodF8xLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdkYzBmOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d0a3NvdXJjZXZpZXcvZ3Rrc291cmNldmlldy1jbGFzc2ljLWxpZ2h0XzEuMC5iYgpAQCAtMCwwICsxLDIxIEBACitERVNDUklQVElPTiA9ICJHdGtzb3VyY2V2aWV3IENsYXNzaWMtTGlnaHQgdGhlbWUiCitMSUNFTlNFID0gIkxHUEx2Mi4xIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vY2xhc3NpYy1saWdodC54bWw7YmVnaW5saW5lPTY7ZW5kbGluZT0yMzttZDU9MmI0Zjc1MzY0ZmFkMDBhNGQ3NTIyMTRkY2JkN2Q3YzMiCisKK2luaGVyaXQgYWxsYXJjaAorCitTUkNfVVJJID0gImZpbGU6Ly9jbGFzc2ljLWxpZ2h0LnhtbCIKKworUyA9ICIke1dPUktESVJ9IgorCitkb19pbnN0YWxsKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vZ3Rrc291cmNldmlldy0yLjAvc3R5bGVzCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vY2xhc3NpYy1saWdodC54bWwgJHtEfSR7ZGF0YWRpcn0vZ3Rrc291cmNldmlldy0yLjAvc3R5bGVzLworICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vZ3Rrc291cmNldmlldy0zLjAvc3R5bGVzCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vY2xhc3NpYy1saWdodC54bWwgJHtEfSR7ZGF0YWRpcn0vZ3Rrc291cmNldmlldy0zLjAvc3R5bGVzLworfQorCitGSUxFU18ke1BOfSA9ICIgXAorICAgICR7ZGF0YWRpcn0vZ3Rrc291cmNldmlldy0yLjAvc3R5bGVzIFwKKyAgICAke2RhdGFkaXJ9L2d0a3NvdXJjZXZpZXctMy4wL3N0eWxlcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGtzb3VyY2V2aWV3L2d0a3NvdXJjZXZpZXczXzMuMjQuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d0a3NvdXJjZXZpZXcvZ3Rrc291cmNldmlldzNfMy4yNC42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3ZTQ4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGtzb3VyY2V2aWV3L2d0a3NvdXJjZXZpZXczXzMuMjQuNi5iYgpAQCAtMCwwICsxLDIxIEBACitTVU1NQVJZID0gIlBvcnRhYmxlIEMgbGlicmFyeSBmb3IgbXVsdGlsaW5lIHRleHQgZWRpdGluZyIKK0hPTUVQQUdFID0gImh0dHA6Ly9wcm9qZWN0cy5nbm9tZS5vcmcvZ3Rrc291cmNldmlldy8iCisKK0xJQ0VOU0UgPSAiTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1mYmMwOTM5MDE4NTdmY2QxMThmMDY1ZjkwMDk4MmMyNCIKKworREVQRU5EUyA9ICJndGsrMyBsaWJ4bWwyIGludGx0b29sLW5hdGl2ZSBnbm9tZS1jb21tb24tbmF0aXZlIGdsaWItMi4wLW5hdGl2ZSIKKworUE5BTUUgPSAiZ3Rrc291cmNldmlldyIKKworUyA9ICIke1dPUktESVJ9LyR7UE5BTUV9LSR7UFZ9IgorCitpbmhlcml0IGdub21lYmFzZSBsaWJfcGFja2FnZSBnZXR0ZXh0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBndGstZG9jIGdvYmplY3QtaW50cm9zcGVjdGlvbgorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJID0gImh0dHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9nbm9tZS9zb3VyY2VzL2d0a3NvdXJjZXZpZXcvMy4yNC8ke1BOQU1FfS0ke1BWfS50YXIueHoiCitTUkNfVVJJW21kNXN1bV0gPSAiYzA5Y2NmYzgwZjc4MDgzODQxZjhmZTI2NmMxYWM1MmEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2FhNmJkZmViY2RjNzNhNzYzZGRkZWFhNDJmMTkwYzQwODM1ZTZmODQ5NWJiOWViOGY3ODU4N2UyNTc3YzE4OCIKKworRklMRVNfJHtQTn0gKz0gIiAke2RhdGFkaXJ9L2d0a3NvdXJjZXZpZXctMy4wIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3Zmcy9ndmZzXzEuMzIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d2ZnMvZ3Zmc18xLjMyLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzODA2ODguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3Zmcy9ndmZzXzEuMzIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLURFU0NSSVBUSU9OID0gImd2ZnMgaXMgYSB1c2Vyc3BhY2UgdmlydHVhbCBmaWxlc3lzdGVtIgotTElDRU5TRSA9ICJMR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wNWRmMzhkZDc3YzM1ZWM4NDMxZjIxMjQxMGEzMzI5ZSIKLQotaW5oZXJpdCBnbm9tZSBiYXNoLWNvbXBsZXRpb24gZ2V0dGV4dAotCi1ERVBFTkRTICs9ICJsaWJzZWNyZXQgZ2xpYi0yLjAgZ2NvbmYgaW50bHRvb2wtbmF0aXZlIGxpYmd1ZGV2IHVkaXNrczIgcG9sa2l0IHNoYWRvdy1uYXRpdmUiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9kb3dubG9hZC5nbm9tZS5vcmcvc291cmNlcy8ke0JQTn0vJHtAZ25vbWVfdmVyZGlyKCIke1BWfSIpfS8ke0JQTn0tJHtQVn0udGFyLnh6O25hbWU9YXJjaGl2ZSIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiY2JlNzY2YjQ2ZjMyNGUxN2Q3YWJjZmI0YTg5YTE2ODQiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICJkMGI2YzllZGFiMDlkNTI0NzIzNTU2NTdhMmYwYTE0ODMxYjJlNmM1OGNhYmEzOTVmNzIxYWI2ODNmODM2YWRlIgotCi1FWFRSQV9PRUNPTkYgPSAiIFwKLSAgICAtLWRpc2FibGUtZ2R1IFwKLSAgICAtLWVuYWJsZS11ZGlza3MyIFwKLSAgICAtLWRpc2FibGUtZG9jdW1lbnRhdGlvbiBcCi0gICAgLS13aXRoLWFyY2hpdmUtaW5jbHVkZXM9JHtTVEFHSU5HX0lOQ0RJUn0gXAotICAgIC0td2l0aC1hcmNoaXZlLWxpYnM9JHtTVEFHSU5HX0xJQkRJUn0gXAotIgotCi1QQUNLQUdFUyA9KyAiZ3Zmc2QtZnRwIGd2ZnNkLXNmdHAgZ3Zmc2QtdHJhc2giCi0KLUZJTEVTXyR7UE59ICs9ICIgXAotICAgICR7ZGF0YWRpcn0vZ2xpYi0yLjAgXAotICAgICR7ZGF0YWRpcn0vR0NvbmYgXAotICAgICR7ZGF0YWRpcn0vZGJ1cy0xL3NlcnZpY2VzIFwKLSAgICAke2xpYmRpcn0vZ2lvL21vZHVsZXMvKi5zbyBcCi0gICAgJHtsaWJkaXJ9L3RtcGZpbGVzLmQgXAotICAgICR7c3lzdGVtZF91c2VyX3VuaXRkaXJ9IFwKLSIKLVJERVBFTkRTXyR7UE59ID0gInVkaXNrczIiCi0KLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2dpby9tb2R1bGVzLy5kZWJ1Zy8qIgotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vZ2lvL21vZHVsZXMvKi5sYSIKLQotRklMRVNfZ3Zmc2QtZnRwID0gIiR7bGliZXhlY2Rpcn0vZ3Zmc2QtZnRwICR7ZGF0YWRpcn0vZ3Zmcy9tb3VudHMvZnRwLm1vdW50IgotRklMRVNfZ3Zmc2Qtc2Z0cCA9ICIke2xpYmV4ZWNkaXJ9L2d2ZnNkLXNmdHAgJHtkYXRhZGlyfS9ndmZzL21vdW50cy9zZnRwLm1vdW50IgotRklMRVNfZ3Zmc2QtdHJhc2ggPSAiJHtsaWJleGVjZGlyfS9ndmZzZC10cmFzaCAke2RhdGFkaXJ9L2d2ZnMvbW91bnRzL3RyYXNoLm1vdW50IgotCi1SUkVDT01NRU5EU19ndmZzZC1mdHAgKz0gIm9wZW5zc2gtc2Z0cCBvcGVuc3NoLXNzaCIKLQotUEFDS0FHRUNPTkZJRyA/PSAibGliZ3Bob3RvMiAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IgotCi1QQUNLQUdFQ09ORklHW2FmY10gPSAiLS1lbmFibGUtYWZjLCAtLWRpc2FibGUtYWZjLCBsaWJpbW9iaWxlZGV2aWNlIGxpYnBsaXN0IgotUEFDS0FHRUNPTkZJR1thcmNoaXZlXSA9ICItLWVuYWJsZS1hcmNoaXZlLCAtLWRpc2FibGUtYXJjaGl2ZSwgbGliYXJjaGl2ZSIKLVBBQ0tBR0VDT05GSUdbYXZhaGldID0gIi0tZW5hYmxlLWF2YWhpLCAtLWRpc2FibGUtYXZhaGksIGF2YWhpIgotUEFDS0FHRUNPTkZJR1tnY3JdID0gIi0tZW5hYmxlLWdjciwgLS1kaXNhYmxlLWdjciwgZ2NyIgotUEFDS0FHRUNPTkZJR1tndGtdID0gIi0tZW5hYmxlLWd0aywgLS1kaXNhYmxlLWd0aywgZ3RrKzMiCi1QQUNLQUdFQ09ORklHW2h0dHBdID0gIi0tZW5hYmxlLWh0dHAsIC0tZGlzYWJsZS1odHRwLCBsaWJzb3VwLTIuNCIKLVBBQ0tBR0VDT05GSUdbbGlibXRwXSA9ICItLWVuYWJsZS1saWJtdHAsIC0tZGlzYWJsZS1saWJtdHAsIGxpYm10cCIKLVBBQ0tBR0VDT05GSUdbbGliZ3Bob3RvMl0gPSAiLS1lbmFibGUtZ3Bob3RvMiwgLS1kaXNhYmxlLWdwaG90bzIsIGxpYmdwaG90bzIiCi1QQUNLQUdFQ09ORklHW3NhbWJhXSA9ICItLWVuYWJsZS1zYW1iYSwgLS1kaXNhYmxlLXNhbWJhLCBzYW1iYSIKLVBBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiLS13aXRoLXN5c3RlbWR1c2VydW5pdGRpcj0ke3N5c3RlbWRfdXNlcl91bml0ZGlyfSwtLXdpdGhvdXQtc3lzdGVtZHVzZXJ1bml0ZGlyLHN5c3RlbWQiCi0KLSMgbmVlZHMgbWV0YS1maWxlc3lzdGVtcwotUEFDS0FHRUNPTkZJR1tmdXNlXSA9ICItLWVuYWJsZS1mdXNlLCAtLWRpc2FibGUtZnVzZSwgZnVzZSIKLQotIyBsaWJjZGlvLXBhcmFub2lhIHJlY2lwZSBkb2Vzbid0IGV4aXN0IHlldAotUEFDS0FHRUNPTkZJR1tjZGRhXSA9ICItLWVuYWJsZS1jZGRhLCAtLWRpc2FibGUtY2RkYSwgbGliY2Rpby1wYXJhbm9pYSIKLQotIyBGaXggdXAgcGVybWlzc2lvbnMgb24gcG9sa2l0IHJ1bGVzLmQgdG8gd29yayB3aXRoIHJwbTQgY29uc3RyYWludHMKLWRvX2luc3RhbGxfYXBwZW5kKCkgewotCWNobW9kIDcwMCAke0R9LyR7ZGF0YWRpcn0vcG9sa2l0LTEvcnVsZXMuZAotCWNob3duIHBvbGtpdGQ6cm9vdCAke0R9LyR7ZGF0YWRpcn0vcG9sa2l0LTEvcnVsZXMuZAotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3Zmcy9ndmZzXzEuMzYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d2ZnMvZ3Zmc18xLjM2LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY3MzkxMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d2ZnMvZ3Zmc18xLjM2LjAuYmIKQEAgLTAsMCArMSw2OCBAQAorREVTQ1JJUFRJT04gPSAiZ3ZmcyBpcyBhIHVzZXJzcGFjZSB2aXJ0dWFsIGZpbGVzeXN0ZW0iCitMSUNFTlNFID0gIkxHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTA1ZGYzOGRkNzdjMzVlYzg0MzFmMjEyNDEwYTMzMjllIgorCitpbmhlcml0IGdub21lIGJhc2gtY29tcGxldGlvbiBnZXR0ZXh0CisKK0RFUEVORFMgKz0gImxpYnNlY3JldCBnbGliLTIuMCBnY29uZiBpbnRsdG9vbC1uYXRpdmUgbGliZ3VkZXYgdWRpc2tzMiBwb2xraXQgc2hhZG93LW5hdGl2ZSIKKworU1JDX1VSSSA9ICJodHRwczovL2Rvd25sb2FkLmdub21lLm9yZy9zb3VyY2VzLyR7QlBOfS8ke0Bnbm9tZV92ZXJkaXIoIiR7UFZ9Iil9LyR7QlBOfS0ke1BWfS50YXIueHo7bmFtZT1hcmNoaXZlIgorCitTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICIyMTZkNDYxYzVlOTZlMmNlYTc0MjUzYmU0MDdhZjZkYyIKK1NSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjllYzM4OGFmZWIzNzNhMjEzZjJjYzQ4OTE4NGY3NmExN2FlMjczYTAwMGU4YTRlYzcyMGMxOTk1OTQzMjU2YmIiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworICAgICMgbWFrZSBhdXRvbWFrZSBoYXBweS4uCisgICAgdG91Y2ggJHtTfS9BQk9VVC1OTFMKK30KKworRVhUUkFfT0VDT05GID0gIiBcCisgICAgLS1kaXNhYmxlLWdkdSBcCisgICAgLS1lbmFibGUtdWRpc2tzMiBcCisgICAgLS1kaXNhYmxlLWRvY3VtZW50YXRpb24gXAorIgorCitQQUNLQUdFUyA9KyAiZ3Zmc2QtZnRwIGd2ZnNkLXNmdHAgZ3Zmc2QtdHJhc2giCisKK0ZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7ZGF0YWRpcn0vZ2xpYi0yLjAgXAorICAgICR7ZGF0YWRpcn0vR0NvbmYgXAorICAgICR7ZGF0YWRpcn0vZGJ1cy0xL3NlcnZpY2VzIFwKKyAgICAke2xpYmRpcn0vZ2lvL21vZHVsZXMvKi5zbyBcCisgICAgJHtsaWJkaXJ9L3RtcGZpbGVzLmQgXAorICAgICR7c3lzdGVtZF91c2VyX3VuaXRkaXJ9IFwKKyIKK1JERVBFTkRTXyR7UE59ID0gInVkaXNrczIiCisKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2dpby9tb2R1bGVzLy5kZWJ1Zy8qIgorRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vZ2lvL21vZHVsZXMvKi5sYSIKKworRklMRVNfZ3Zmc2QtZnRwID0gIiR7bGliZXhlY2Rpcn0vZ3Zmc2QtZnRwICR7ZGF0YWRpcn0vZ3Zmcy9tb3VudHMvZnRwLm1vdW50IgorRklMRVNfZ3Zmc2Qtc2Z0cCA9ICIke2xpYmV4ZWNkaXJ9L2d2ZnNkLXNmdHAgJHtkYXRhZGlyfS9ndmZzL21vdW50cy9zZnRwLm1vdW50IgorRklMRVNfZ3Zmc2QtdHJhc2ggPSAiJHtsaWJleGVjZGlyfS9ndmZzZC10cmFzaCAke2RhdGFkaXJ9L2d2ZnMvbW91bnRzL3RyYXNoLm1vdW50IgorCitSUkVDT01NRU5EU19ndmZzZC1mdHAgKz0gIm9wZW5zc2gtc2Z0cCBvcGVuc3NoLXNzaCIKKworUEFDS0FHRUNPTkZJRyA/PSAibGliZ3Bob3RvMiAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IgorCitQQUNLQUdFQ09ORklHW2FmY10gPSAiLS1lbmFibGUtYWZjLCAtLWRpc2FibGUtYWZjLCBsaWJpbW9iaWxlZGV2aWNlIGxpYnBsaXN0IgorUEFDS0FHRUNPTkZJR1thcmNoaXZlXSA9ICItLWVuYWJsZS1hcmNoaXZlLCAtLWRpc2FibGUtYXJjaGl2ZSwgbGliYXJjaGl2ZSIKK1BBQ0tBR0VDT05GSUdbYXZhaGldID0gIi0tZW5hYmxlLWF2YWhpLCAtLWRpc2FibGUtYXZhaGksIGF2YWhpIgorUEFDS0FHRUNPTkZJR1tnY3JdID0gIi0tZW5hYmxlLWdjciwgLS1kaXNhYmxlLWdjciwgZ2NyIgorUEFDS0FHRUNPTkZJR1todHRwXSA9ICItLWVuYWJsZS1odHRwLCAtLWRpc2FibGUtaHR0cCwgbGlic291cC0yLjQiCitQQUNLQUdFQ09ORklHW2xpYm10cF0gPSAiLS1lbmFibGUtbGlibXRwLCAtLWRpc2FibGUtbGlibXRwLCBsaWJtdHAiCitQQUNLQUdFQ09ORklHW2xpYmdwaG90bzJdID0gIi0tZW5hYmxlLWdwaG90bzIsIC0tZGlzYWJsZS1ncGhvdG8yLCBsaWJncGhvdG8yIgorUEFDS0FHRUNPTkZJR1tzYW1iYV0gPSAiLS1lbmFibGUtc2FtYmEsIC0tZGlzYWJsZS1zYW1iYSwgc2FtYmEiCitQQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0td2l0aC1zeXN0ZW1kdXNlcnVuaXRkaXI9JHtzeXN0ZW1kX3VzZXJfdW5pdGRpcn0sLS13aXRob3V0LXN5c3RlbWR1c2VydW5pdGRpcixzeXN0ZW1kIgorCisjIG5lZWRzIG1ldGEtZmlsZXN5c3RlbXMKK1BBQ0tBR0VDT05GSUdbZnVzZV0gPSAiLS1lbmFibGUtZnVzZSwgLS1kaXNhYmxlLWZ1c2UsIGZ1c2UiCisKKyMgbGliY2Rpby1wYXJhbm9pYSByZWNpcGUgZG9lc24ndCBleGlzdCB5ZXQKK1BBQ0tBR0VDT05GSUdbY2RkYV0gPSAiLS1lbmFibGUtY2RkYSwgLS1kaXNhYmxlLWNkZGEsIGxpYmNkaW8tcGFyYW5vaWEiCisKKyMgRml4IHVwIHBlcm1pc3Npb25zIG9uIHBvbGtpdCBydWxlcy5kIHRvIHdvcmsgd2l0aCBycG00IGNvbnN0cmFpbnRzCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKwljaG1vZCA3MDAgJHtEfS8ke2RhdGFkaXJ9L3BvbGtpdC0xL3J1bGVzLmQKKwljaG93biBwb2xraXRkOnJvb3QgJHtEfS8ke2RhdGFkaXJ9L3BvbGtpdC0xL3J1bGVzLmQKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdkYXRhL2xpYmdkYXRhXzAuMTYuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdkYXRhL2xpYmdkYXRhXzAuMTYuMS5iYgppbmRleCBjMjE1N2RmLi44MGNiYWUzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnZGF0YS9saWJnZGF0YV8wLjE2LjEuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ2RhdGEvbGliZ2RhdGFfMC4xNi4xLmJiCkBAIC05LDEyICs5LDE4IEBACiAKIERFUEVORFMgPSAiZ25vbWUtY29tbW9uLW5hdGl2ZSBsaWJ4bWwyIGdsaWItMi4wIGxpYnNvdXAtMi40IGludGx0b29sLW5hdGl2ZSBsaWJvYXV0aCBnY3IganNvbi1nbGliIgogCi1pbmhlcml0IGdub21lYmFzZSBwa2djb25maWcgYXV0b3Rvb2xzLWJyb2tlbnNlcCBnZXR0ZXh0IGd0ay1kb2MgdmFsYSBnb2JqZWN0LWludHJvc3BlY3Rpb24KK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGdub21lYmFzZSBwa2djb25maWcgYXV0b3Rvb2xzLWJyb2tlbnNlcCBnZXR0ZXh0IGd0ay1kb2MgdmFsYSBnb2JqZWN0LWludHJvc3BlY3Rpb24KKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogZG9fY29uZmlndXJlX3ByZXBlbmRfY2xhc3MtdGFyZ2V0ICgpIHsKICAgICAjIGludHJvc3BlY3Rpb24ubTQgcHJlLXBhY2thZ2VkIHdpdGggdXBzdHJlYW0gdGFyYmFsbHMgZG9lcyBub3QgeWV0CiAgICAgIyBoYXZlIG91ciBmaXhlcwogICAgIHJtIC1mICR7U30vaW50cm9zcGVjdGlvbi5tNAorICAgIAorICAgICMgcmVtb3ZlIHRoZSBwcmUtYnVpbHQgZ3RrLWRvYyBmaWxlcywgYXMgdGhleSdyZSBpbnN0YWxsZWQgKG9yIGF0dGVtcHRlZCB0byBiZSBpbnN0YWxsZWQpCisgICAgIyBldmVuIGlmIGd0ay1kb2MgaXMgZXhwbGljaXRseSBkaXNhYmxlZAorICAgIHJtIC1yZiAke1N9L2RvY3MvcmVmZXJlbmNlL2h0bWwKIH0KIAogZG9fY29tcGlsZV9wcmVwZW5kKCkgewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWUvMDAwMS1saWJnbm9tZS1NYWtlZmlsZS5hbS1hbGxvdy1kZXByZWNhdGVkLXN5bWJvbHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZS8wMDAxLWxpYmdub21lLU1ha2VmaWxlLmFtLWFsbG93LWRlcHJlY2F0ZWQtc3ltYm9scy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY1ODMwMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZS8wMDAxLWxpYmdub21lLU1ha2VmaWxlLmFtLWFsbG93LWRlcHJlY2F0ZWQtc3ltYm9scy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLUZyb20gY2UxY2QyMGZjZWVhN2RiY2M1Yjk4M2Q5NGRlNzcxNDYxZWNjZjdjZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IE1vbiwgMjkgQXByIDIwMTMgMTQ6MTc6MTMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gbGliZ25vbWUvTWFrZWZpbGUuYW06IGFsbG93IGRlcHJlY2F0ZWQgc3ltYm9scwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1maXhlczoKLQotfCBnbm9tZS1wcm9ncmFtLmM6IEluIGZ1bmN0aW9uICdnbm9tZV9wcm9ncmFtX2luaXRfY29tbW9uJzoKLXwgZ25vbWUtcHJvZ3JhbS5jOjIwNjc6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdnX2F0ZXhpdCcgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotLS0tCi0gbGliZ25vbWUvTWFrZWZpbGUuYW0gfCAgICAxIC0KLSAxIGZpbGVzIGNoYW5nZWQsIDAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYmdub21lL01ha2VmaWxlLmFtIGIvbGliZ25vbWUvTWFrZWZpbGUuYW0KLWluZGV4IDljOGNkM2UuLmFhMDFmNmMgMTAwNjQ0Ci0tLS0gYS9saWJnbm9tZS9NYWtlZmlsZS5hbQotKysrIGIvbGliZ25vbWUvTWFrZWZpbGUuYW0KLUBAIC0xNyw3ICsxNyw2IEBAIElOQ0xVREVTID0gXAotIAktSSQoc3JjZGlyKS8uLgkJCQkJCVwKLSAJJChXQVJOX0NGTEFHUykJCQkJCQlcCi0gCSQoTElCR05PTUVfQ0ZMQUdTKQkJCQkJXAotLQktREdfRElTQUJMRV9ERVBSRUNBVEVECQkJCQlcCi0gCS1ETElCR05PTUVfUFJFRklYPVwiIiQocHJlZml4KSJcIgkJCVwKLSAJLURMSUJHTk9NRV9MSUJESVI9XCIiJChsaWJkaXIpIlwiCQkJXAotIAktRExJQkdOT01FX0RBVEFESVI9XCIiJChkYXRhZGlyKSJcIgkJCVwKLS0tIAotMS43LjYuNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZV8yLjMyLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZV8yLjMyLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNTViYTQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWVfMi4zMi4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotU1VNTUFSWSA9ICJHbm9tZSBhcHBsaWNhdGlvbiBwcm9ncmFtbWluZyBsaWJyYXJpZXMiCi1MSUNFTlNFID0gIkxHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcuTElCO21kNT01NWNhODE3Y2NiN2Q1YjViNjYzNTU2OTBlOWFiYzYwNSIKLVNFQ1RJT04gPSAieDExL2dub21lL2xpYnMiCi0KLWluaGVyaXQgZ25vbWUgbGliX3BhY2thZ2UKLQotUFIgPSAicjIiCi0KLVNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gImE0MzQ1ZTYwODdhZTYxOTVkNjVhNDY3NGZmZGNhNTU5IgotU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiYjJjNjM5MTY4NjY0ODU3OTNiODczOTgyNjZkZDc3Nzg1NDhjMTczNDkyM2MyNzJhOTRkODRlZTAxMWI2ZjdhNCIKLVNSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLWxpYmdub21lLU1ha2VmaWxlLmFtLWFsbG93LWRlcHJlY2F0ZWQtc3ltYm9scy5wYXRjaCIKLUdOT01FX0NPTVBSRVNTX1RZUEU9ImJ6MiIKLQotREVQRU5EUyArPSAibGliY2FuYmVycmEgZ2NvbmYtbmF0aXZlIGdub21lLXZmcyBsaWJib25vYm8gZXNvdW5kIGludGx0b29sLW5hdGl2ZSBnbm9tZS1jb21tb24tbmF0aXZlIgotCi1FWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1ndGstZG9jIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICBzZWQgLWkgLWUgczpkb2NzOjpnICR7U30vTWFrZWZpbGUuYW0KLSAgICBlY2hvICJFWFRSQV9ESVNUID0gdmVyc2lvbi54bWwiID4gZ25vbWUtZG9jLXV0aWxzLm1ha2UKLSAgICBlY2hvICJFWFRSQV9ESVNUID0gdmVyc2lvbi54bWwiID4gZ3RrLWRvYy5tYWtlCi19Ci0KLUZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vYm9ub2JvL3NlcnZlcnMgJHtsaWJkaXJ9L2Jvbm9iby9tb25pa2Vycy8qLnNvIFwKLSAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2dub21lLWJhY2tncm91bmQtcHJvcGVydGllcyAke2RhdGFkaXJ9L3BpeG1hcHMiCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9ib25vYm8vbW9uaWtlcnMvKi5sYSIKLUZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtsaWJkaXJ9L2Jvbm9iby9tb25pa2Vycy8qLmEiCi0KLVBBQ0tBR0VTID0rICJnbm9tZS1jb21tb24tc2NoZW1hcyIKLQotRklMRVNfZ25vbWUtY29tbW9uLXNjaGVtYXMgPSAiJHtkYXRhZGlyfS9nbm9tZS1iYWNrZ3JvdW5kLXByb3BlcnRpZXMgJHtkYXRhZGlyfS9waXhtYXBzICR7c3lzY29uZmRpcn0iCi0KLVJERVBFTkRTXyR7UE59ID0gImdub21lLWNvbW1vbi1zY2hlbWFzIgotCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9ib25vYm8vbW9uaWtlcnMvLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWVjYW52YXNfMi4zMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWVjYW52YXNfMi4zMC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MWE4OWNlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21lY2FudmFzXzIuMzAuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVNVTU1BUlkgPSAiQSBwb3dlcmZ1bCBvYmplY3Qtb3JpZW50ZWQgZGlzcGxheSIKLUxJQ0VOU0UgPSAiTEdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy5MSUI7bWQ1PTU1Y2E4MTdjY2I3ZDViNWI2NjM1NTY5MGU5YWJjNjA1IgotU0VDVElPTiA9ICJ4MTEvZ25vbWUvbGlicyIKLQotaW5oZXJpdCBnbm9tZWJhc2UgZ3RrLWRvYwotCi0jIGludGx0b29sIHRvIHByb3ZpZGUgSVRfUFJPR19JTlRMVE9PTAotIyBjb25maWd1cmU6IGxpbmUgMTI2NTQ6IHN5bnRheCBlcnJvciBuZWFyIHVuZXhwZWN0ZWQgdG9rZW4gYDAuMzUuMCcKLSMgY29uZmlndXJlOiBsaW5lIDEyNjU0OiBgSVRfUFJPR19JTlRMVE9PTCgwLjM1LjApJwotREVQRU5EUyA9ICJndGsrIGxpYmdsYWRlIGxpYmFydC1sZ3BsIHhpbmVyYW1hcHJvdG8gaW50bHRvb2wtbmF0aXZlIGdub21lLWNvbW1vbi1uYXRpdmUiCi0KLVNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gImZmY2JiNzE5YzY3MWZmNWNkODZlNTlhZWJhOGQwYjkyIgotU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiODU5Yjc4ZTA4NDg5ZmNlNGQ1YzE1YzY3NmZlYzFjZDc5NzgyZjExNWY1MTZlOGFkOGJlZDZhYmNiOGRlZGQ0MCIKLUdOT01FX0NPTVBSRVNTX1RZUEU9ImJ6MiIKLQotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9saWJnbGFkZS8qL2xpYmNhbnZhcy5zbyIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2xpYmdsYWRlLyovLmRlYnVnLyIKLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2xpYmdsYWRlLyovbGliY2FudmFzKi5sYSIKLUZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtsaWJkaXJ9L2xpYmdsYWRlLyovbGliY2FudmFzKi5hIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWVrYmRfMy4yMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWVrYmRfMy4yMi4wLmJiCmluZGV4IDEyZWQ4MWQuLjQwMjQ5ZmQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21la2JkXzMuMjIuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZWtiZF8zLjIyLjAuYmIKQEAgLTYsNyArNiw5IEBACiAKIERFUEVORFMgPSAiZ2NvbmYgZ2xpYi0yLjAgbGlieGtsYXZpZXIgZ3RrKzMgaW50bHRvb2wtbmF0aXZlIgogCi1pbmhlcml0IGdub21lIGdvYmplY3QtaW50cm9zcGVjdGlvbiBnZXR0ZXh0Citpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBnbm9tZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gZ2V0dGV4dAorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBHTk9NRV9DT01QUkVTU19UWVBFID0gInh6IgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpLzAwMDEtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmctdG8tZml4LWJ1aWxkLS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21ldWkvMDAwMS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy10by1maXgtYnVpbGQtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmM5YmRmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21ldWkvMDAwMS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy10by1maXgtYnVpbGQtLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotRnJvbSA2Njk3ZmNmOWQ3ZjUzMTI2YjQ0MmJmMTk4OTA2NDBiNWY4OGM4YWE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotRGF0ZTogRnJpLCAyOSBKdWwgMjAxNiAyMToyNDoyMCArMDIwMAotU3ViamVjdDogW1BBVENIXSBzdXBwcmVzcyBzdHJpbmcgZm9ybWF0IGxpdGVyYWwgd2FybmluZyB0byBmaXggYnVpbGQgd2l0aCBnY2M2Ci1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLXdvcmtzIGFyb3VuZDoKLXwgLi4vLi4vbGliZ25vbWV1aS0yLjI0LjUvbGliZ25vbWV1aS9nbm9tZS1kYXRlZWRpdC5jOiBJbiBmdW5jdGlvbiAnZGF5X3NlbGVjdGVkJzoKLXwgLi4vLi4vbGliZ25vbWV1aS0yLjI0LjUvbGliZ25vbWV1aS9nbm9tZS1kYXRlZWRpdC5jOjE1Njo5OiBlcnJvcjogZm9ybWF0IG5vdCBhIHN0cmluZyBsaXRlcmFsLCBmb3JtYXQgc3RyaW5nIG5vdCBjaGVja2VkIFstV2Vycm9yPWZvcm1hdC1ub25saXRlcmFsXQotfCAgICAgICAgICBzdHJmdGltZV9kYXRlX2Zvcm1hdCwgJm10bSkgPT0gMCkKLXwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KLXwgLi4vLi4vbGliZ25vbWV1aS0yLjI0LjUvbGliZ25vbWV1aS9nbm9tZS1kYXRlZWRpdC5jOiBJbiBmdW5jdGlvbiAnZ25vbWVfZGF0ZV9lZGl0X3NldF90aW1lJzoKLXwgLi4vLi4vbGliZ25vbWV1aS0yLjI0LjUvbGliZ25vbWV1aS9nbm9tZS1kYXRlZWRpdC5jOjcwNDoyOiBlcnJvcjogZm9ybWF0IG5vdCBhIHN0cmluZyBsaXRlcmFsLCBmb3JtYXQgc3RyaW5nIG5vdCBjaGVja2VkIFstV2Vycm9yPWZvcm1hdC1ub25saXRlcmFsXQotfCAgIGlmIChzdHJmdGltZSAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZlciksIHN0cmZ0aW1lX2RhdGVfZm9ybWF0LCBteXRtKSA9PSAwKQotfCAgIF5+Ci0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0tLS0KLSBsaWJnbm9tZXVpL2dub21lLWRhdGVlZGl0LmMgfCA2ICsrKysrKwotIGxpYmdub21ldWkvZ25vbWUtZ2NvbmYtdWkuYyB8IDMgKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2xpYmdub21ldWkvZ25vbWUtZGF0ZWVkaXQuYyBiL2xpYmdub21ldWkvZ25vbWUtZGF0ZWVkaXQuYwotaW5kZXggNjlhYjY5OS4uNDE1NDFjMyAxMDA2NDQKLS0tLSBhL2xpYmdub21ldWkvZ25vbWUtZGF0ZWVkaXQuYwotKysrIGIvbGliZ25vbWV1aS9nbm9tZS1kYXRlZWRpdC5jCi1AQCAtMTUyLDkgKzE1MiwxMiBAQCBkYXlfc2VsZWN0ZWQgKEd0a0NhbGVuZGFyICpjYWxlbmRhciwgR25vbWVEYXRlRWRpdCAqZ2RlKQotIAllbHNlCi0gCQltdG0udG1feWVhciA9IHllYXI7Ci0gCi0rI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0rI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotIAlpZiAoc3RyZnRpbWUgKGJ1ZmZlciwgc2l6ZW9mIChidWZmZXIpLAotIAkJICAgICAgc3RyZnRpbWVfZGF0ZV9mb3JtYXQsICZtdG0pID09IDApCi0gCQlzdHJjcHkgKGJ1ZmZlciwgIj8/PyIpOwotKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0gCWJ1ZmZlcltzaXplb2YoYnVmZmVyKS0xXSA9ICdcMCc7Ci0gCi0gCS8qIEZJWE1FOiB3aGF0IGFib3V0IHNldCB0aW1lICovCi1AQCAtNzAxLDggKzcwNCwxMSBAQCBnbm9tZV9kYXRlX2VkaXRfc2V0X3RpbWUgKEdub21lRGF0ZUVkaXQgKmdkZSwgdGltZV90IHRoZV90aW1lKQotIAlteXRtID0gbG9jYWx0aW1lICgmdGhlX3RpbWUpOwotIAotIAkvKiBTZXQgdGhlIGRhdGUgKi8KLSsjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSsjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0gCWlmIChzdHJmdGltZSAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZlciksIHN0cmZ0aW1lX2RhdGVfZm9ybWF0LCBteXRtKSA9PSAwKQotIAkJc3RyY3B5IChidWZmZXIsICI/Pz8iKTsKLSsjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotIAlidWZmZXJbc2l6ZW9mKGJ1ZmZlciktMV0gPSAnXDAnOwotIAotIAlzdHJfdXRmOCA9IGdfbG9jYWxlX3RvX3V0ZjggKGJ1ZmZlciwgLTEsIE5VTEwsIE5VTEwsIE5VTEwpOwotZGlmZiAtLWdpdCBhL2xpYmdub21ldWkvZ25vbWUtZ2NvbmYtdWkuYyBiL2xpYmdub21ldWkvZ25vbWUtZ2NvbmYtdWkuYwotaW5kZXggNDNjMGY0NC4uYTg0YjJjMCAxMDA2NDQKLS0tLSBhL2xpYmdub21ldWkvZ25vbWUtZ2NvbmYtdWkuYwotKysrIGIvbGliZ25vbWV1aS9nbm9tZS1nY29uZi11aS5jCi1AQCAtMTgwLDEyICsxODAsMTUgQEAgZXJyb3JfaWRsZV9mdW5jIChncG9pbnRlciBkYXRhKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgbWF5IG5vdCB3b3JrIHByb3Blcmx5LiIpOwotICAgICAgICAgICAgICAgICB9Ci0gCi0rI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0rI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotICAgICAgICAgICAgICAgICBkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3IChOVUxMIC8qIHBhcmVudCAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAvKiBmbGFncyAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX01FU1NBR0VfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19CVVRUT05TX09LLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdub21lX3Byb2dyYW1fZ2V0X2h1bWFuX3JlYWRhYmxlX25hbWUoZ25vbWVfcHJvZ3JhbV9nZXQoKSkpOwotKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICAgICAgIGd0a19kaWFsb2dfc2V0X2RlZmF1bHRfcmVzcG9uc2UgKEdUS19ESUFMT0cgKGRpYWxvZyksIEdUS19SRVNQT05TRV9PSyk7Ci0gICAgICAgICAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QgKGRpYWxvZywgInJlc3BvbnNlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoZ3RrX3dpZGdldF9kZXN0cm95KSwKLS0tIAotMi41LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWV1aS9nbm9tZS1zdG9jay1waXhidWZzLmggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpL2dub21lLXN0b2NrLXBpeGJ1ZnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTUzYThhZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpL2dub21lLXN0b2NrLXBpeGJ1ZnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQwMzAgKzAsMCBAQAotLyogZ25vbWUgc3RvY2sgaWNvbnMgaW4gR2RtUGl4YnVmIHVzYWJsZSByZ2IgZGF0YQotICoKLSAqIENvcHlyaWdodCAoQykgMTk5NyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0gKgotICogdGhlIHBpeG1hcHMgZm9yIGJ1dHRvbl9jYW5jZWwsIHNhdmVfYXMsIHRyYXNoLCBtYWlsX3JlY2VpdmUsIHN0b3AKLSAqIHJpZ2h0X2Fycm93LCBob21lLCBzYXZlLCBib29rX2JsdWUsIHRyYXNoX2Z1bGwsIHVuZG8sIHNlYXJjaCwgbWFpbF9mb3J3YXJkCi0gKiByZXZlcnQsIG1haWxfY29tcG9zZSwgbWljLCBjb3B5LCBqdW1wX3RvLCBjb252ZXJ0LCBidXR0b25fYXBwbHksIHRpbWVyCi0gKiBtYWlsLCBib29rX3JlZCwgYm9va195ZWxsb3csIGhlbHAsIHJlZG8sIG5ldywgbWFpbF9zZW5kLCBidXR0b25feWVzLCBjdXQKLSAqIHByb3BlcnRpZXMsIHByaW50LCBtYWlsX3JlcGx5LCByZWZyZXNoLCBzZWFyY2hfcmVwbGFjZSwgb3BlbiwgcHJlZmVyZW5jZXMKLSAqIGxlZnRfYXJyb3csIHVuZGVsZXRlLCBjbG9zZSwgdm9sdW1lLCBidXR0b25fbm8sIGV4aXQsIGJvb2tfZ3JlZW4KLSAqIGJvb2tfb3BlbiwgcGFzdGUsIGxpbmVfaW4sIHNwZWxsY2hlY2ssIHRpbWVyX3N0b3BwZWQKLSAqIGFyZSBDb3B5cmlnaHQgKEMpIDE5OTggVHVvbWFzIEt1b3NtYW5lbgotICovCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfYXR0YWNoKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYXR0YWNoW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19hdHRhY2hbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBjXDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwyNlwwIgotICAiXDBcMFwiXDBcMFwwJFwwXDBcMCVcMFwwXDAlXDBcMFwwXDM3N1wwXDBcMGxcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwxMFwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwiXDBcMFwwXDIwXDAiCi0gICJcMFwwJFwwXDBcMH5cMVwxXDFcMzc3UVFRXDM3N1wyMzJcMjMyXDIzMlwzNzdcMzE3XDMxN1wzMTdcMzc3b29vXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMTZcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDBcMFwweFwwXDBcMCIKLSAgIlwzNzdGRkZcMzc3XDI0NVwyNDVcMjQ1XDM3N1wzNDJcMzQyXDM0MlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNjZcMzY2XDM2NlwzNzdcMjEyXDIxMlwyMTJcMzc3OTk5XDM3N1wwXDBcMChcMFwwXDBcMTBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM0XDBcMFwwIgotICAiQlwwXDBcMFwzNzdcMzRcMzRcMzRcMzc3XDIxM1wyMTNcMjEzXDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzU2XDM1NlwzNTYiCi0gICJcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzE0XDMxNFwzMTRcMzc3VlZWXDM3N1wwXDBcMF5cMFwwXDBcMTJcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBAXDBcMFwwXDM3Nz4+PlwzNzdcMjAxXDIwMVwyMDEiCi0gICJcMzc3XDMyNFwzMjRcMzI0XDM3N1wzNFwzNFwzNFwzNzdcMzQ3XDM0N1wzNDdcMzc3XDMyN1wzMjdcMzI3XDM3N1wzNzIiCi0gICJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3N1wzMDJcMzAyXDMwMlwzNzdcMzEzXDMxMyIKLSAgIlwzMTNcMzc3XDM2NVwzNjVcMzY1XDM3N1wzMzFcMzMxXDMzMVwzNzdcMjAxXDIwMVwyMDFcMzc3XDBcMFwwXDM3N1wwIgotICAiXDBcMFwyNVwwXDBcMFwzXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwOlwzXDNcM1wzNzdUVFRcMzc3XDM0NlwzNDYiCi0gICJcMzQ2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMzI3IgotICAiXDMyN1wzMjdcMzc3XDMzNlwzMzZcMzM2XDM3N1wyNjNcMjYzXDI2M1wzNzd5eXlcMzc3XDBcMFwwXDM3N1wzNDJcMzQyIgotICAiXDM0MlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjRcMzY0XDM2NFwzNzdcMjM1XDIzNVwyMzUiCi0gICJcMzc3KCgoXDM3N1wwXDBcMClcMFwwXDBcMTBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzJcMzcyXDM3MiIKLSAgIlwzNzdcMzczXDM3M1wzNzNcMzc3XDBcMFwwXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMzA1XDMwNVwzMDVcMzc3XDM2MFwzNjAiCi0gICJcMzYwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMFwwXDBcMzc3XDM0MlwzNDJcMzQyXDM3N1wzMDJcMzAyXDMwMlwzNzdcMzEyIgotICAiXDMxMlwzMTJcMzc3XDM2NFwzNjRcMzY0XDM3N1wzMDdcMzA3XDMwN1wzNzdWVlZcMzc3XDBcMFwwXlwwXDBcMFwxMlwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzE2XDMxNlwzMTZcMzc3XDMwNFwzMDRcMzA0XDM3N1wzMDVcMzA1XDMwNVwzNzdcMFwwXDBcMzc3IgotICAiXDMyNVwzMjVcMzI1XDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3N1wwXDAiCi0gICJcMFwzNzdcMjYzXDI2M1wyNjNcMzc3XDMzMlwzMzJcMzMyXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM2M1wzNjNcMzYzXDM3N3l5eVwzNzdcMFwwXDBcMzc3XDBcMFwwXDI1XDBcMFwwXDNcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwaFwyMDVcMjA1XDIwNVwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3MFwzNzBcMzcwXDM3N1wyNzZcMjc2XDI3NlwzNzciCi0gICJcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wwXDBcMFwzNzdcMzIzXDMyM1wzMjNcMzc3XDMzNFwzMzRcMzM0IgotICAiXDM3N1wzMDJcMzAyXDMwMlwzNzdcMzAyXDMwMlwzMDJcMzc3XDBcMFwwXDM3N1wzNDJcMzQyXDM0MlwzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYyXDM2MlwzNjJcMzc3XDIzNFwyMzRcMjM0IgotICAiXDM3NygoKFwzNzdcMFwwXDApXDBcMFwwXDEwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0MEhISFwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMjQ3XDI0N1wyNDdcMzc3XDMyNlwzMjZcMzI2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY2XDM2NlwzNjYiCi0gICJcMzc3XDBcMFwwXDM3N1wzNDJcMzQyXDM0MlwzNzdcMzY0XDM2NFwzNjRcMzc3XDMwNFwzMDRcMzA0XDM3N1wzMTBcMzEwIgotICAiXDMxMFwzNzdcMzYyXDM2MlwzNjJcMzc3XDMwNlwzMDZcMzA2XDM3N0xMTFwzNzdcMFwwXDBeXDBcMFwwXDEyXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N1wyNzZcMjc2XDI3NlwzNzdcMzAyXDMwMlwzMDJcMzc3XDBcMFwwXDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzMwIgotICAiXDMzMFwzMzBcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjVcMzY1XDM2NVwzNzdcMFwwXDBcMzc3XDI1NVwyNTVcMjU1XDM3NyIKLSAgIlwyNzRcMjc0XDI3NFwzNzdcMzUyXDM1MlwzNTJcMzc3XDM0MFwzNDBcMzQwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzUyIgotICAiXDM1MlwzNTJcMzc3XDIyMFwyMjBcMjIwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjVcMFwwXDBcM1wwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBpaGhoXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMjQyXDI0MlwyNDJcMzc3XDBcMFwwXDM3N1wzMDBcMzAwXDMwMFwzNzdcMzAxXDMwMVwzMDFcMzc3IgotICAiXDBcMFwwXDM3N3h4eFwzNzdcMzI2XDMyNlwzMjZcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYxIgotICAiXDM2MVwzNjFcMzc3XDM2MVwzNjFcMzYxXDM3N1wzMjVcMzI1XDMyNVwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1XDI1XDI1IgotICAiXDM3N1wwXDBcMClcMFwwXDBcMTBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDQiIjk5OVwzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDMzMlwzMzJcMzMyXDM3N1wyMzIiCi0gICJcMjMyXDIzMlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N3l5eVwzNzdcMzI2XDMyNlwzMjZcMzc3XDM2MlwzNjJcMzYyXDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDMyNlwzMjZcMzI2XDM3N1wzMjBcMzIwXDMyMFwzNzdcMjI3IgotICAiXDIyN1wyMjdcMzc3cnJyXDM3N0pKSlwzNzdcMFwwXDAuXDBcMFwwXDExXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NFwzNjRcMzY0XDM3N1wyNTRcMjU0XDI1NCIKLSAgIlwzNzdcMjcyXDI3MlwyNzJcMzc3XDMzNVwzMzVcMzM1XDM3N1wzNjNcMzYzXDM2M1wzNzdcMzE2XDMxNlwzMTZcMzc3IgotICAiXDMzM1wzMzNcMzMzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzI3XDMyN1wzMjdcMzc3XDMyNlwzMjZcMzI2XDM3N1wyNjEiCi0gICJcMjYxXDI2MVwzNzdcMjAxXDIwMVwyMDFcMzc3VlZWXDM3NyMjI1wzNzdcMFwwXDBcMzc3XDBcMFwwcVwwXDBcMClcMCIKLSAgIlwwXDBcMTBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBoaWlpXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2MlwzNjJcMzYyIgotICAiXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzI3XDMyN1wzMjdcMzc3XDI2N1wyNjdcMjY3XDM3N1wyMDJcMjAyXDIwMlwzNzciCi0gICJAQEBcMzc3IyMjXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjA0XDBcMFwwIiIyXDBcMFwwLlwwXDBcMClcMFwwXDBcMjVcMCIKLSAgIlwwXDBcM1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0KCgoXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzI3XDMyN1wzMjdcMzc3XDI3NlwyNzZcMjc2IgotICAiXDM3N1wyMjZcMjI2XDIyNlwzNzcyMjJcMzc3IyMjXDM3N1wwXDBcMFwzNzdcMFwwXDB1XDBcMFwwSFwwXDBcMC9cMFwwIgotICAiXDAqXDBcMFwwXDMxXDBcMFwwXDEzXDBcMFwwXDEwXDBcMFwwXDNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzUwXDM1MFwzNTBcMzc3XDMxNFwzMTRcMzE0XDM3NyIKLSAgIlwyMzJcMjMyXDIzMlwzNzdAQEBcMzc3IyMjXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjIxXDBcMFwwSVwwXDBcMC9cMFwwIgotICAiXDAqXDBcMFwwXDMwXDBcMFwwXDE2XDBcMFwwXDExXDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwOzk5OVwzNzdcMjAyXDIwMlwyMDJcMzc3OTk5XDM3NyIKLSAgIlwyMlwyMlwyMlwzNzdcMFwwXDBcMjA0XDBcMFwwSVwwXDBcMC9cMFwwXDAqXDBcMFwwXDMzXDBcMFwwXDE2XDBcMFwwIgotICAiXDExXDBcMFwwXDNcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMHVcMFwwIgotICAiXDAiIjFcMFwwXDAqXDBcMFwwXDMxXDBcMFwwXDE2XDBcMFwwXDExXDBcMFwwXDRcMFwwXDBcMVwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMTFcMFwwXDAmXDBcMFwwKVwwXDBcMFwyN1wwXDBcMCIKLSAgIlwxMlwwXDBcMFw0XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcN1wwXDBcMFwxMFwwXDBcMFwzXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19ib29rX2JsdWUpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19ib29rX2JsdWVbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX2Jvb2tfYmx1ZVtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwIiI5XDBcMFwwXDMwMlwwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNTdcMFwwXDBcMzU2XDBcMFwwXDM0NlwwXDBcMFwzNDJcMFwwXDB3XDBcMFwwXDEzXDBcMCIKLSAgIlwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDMyXDIxXDI2XDM1XDM3N1wyMjciCi0gICJcMjUwXDI3NlwzNzd9XDIyM1wyNTRcMzc3c1wyMTJcMjQzXDM3N2xcMjA0XDIzNFwzNzdkfFwyMjZcMzc3XnZcMjE3XDM3NyIKLSAgIldvXDIxMFwzNzdQaVwyMDJcMzc3UGlcMjAyXDM3N1BpXDIwMlwzNzdQaVwyMDJcMzc3UGlcMjAyXDM3N1ZuXDIwNlwzNzciCi0gICJJWGlcMzc3XDIxXDMwXCJcMzc2XDBcMFwwLlwwXDBcMFwxMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMjczdlwyMTNcMjQyXDM3N1wyMTZcMjQyXDI3MFwzNzd2XDIxNVwyNDdcMzc3VnJcMjIwXDM3NyIKLSAgIk5qXDIxMFwzNzdGYlwyMDBcMzc3PVp4XDM3NzVScFwzNzcxTmtcMzc3MU5rXDM3NzZSb1wzNzc2Um9cMzc3PFdzXDM3NyIKLSAgIjZSb1wzNzczQE9cMzc3XDI1XDM0JVwzNzJcMFwwXDBOXDBcMFwwXDIwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMjJcMTJcMTVcMjFcMzc3XDIzMVwyNTRcMzAwXDM3N1wyMDBcMjI2XDI1NlwzNzdbdlwyMjRcMzc3IgotICAiU29cMjE1XDM3N0pnXDIwNVwzNzdCX31cMzc3Old1XDM3NzJPbVwzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcxTmtcMzc3IgotICAiO1dyXDM3Ny1EXFxcMzc3Iy82XDM3N1wwXDBcMF5cMFwwXDBEXDBcMFwwXDE2XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMjU1W2l5XDM3N1wyMzFcMjU0XDMwMFwzNzd1XDIxNVwyNDZcMzc3V3NcMjIxXDM3N09rXDIxMCIKLSAgIlwzNzdHY1wyMDFcMzc3XDc3W3lcMzc3NlNxXDM3NzFOa1wzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzc0UG1cMzc3O1dyIgotICAiXDM3NylcNzdWXDM3NzU8QVwzNzVcMFwwXDBcMzc3XDBcMFwwJVwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDIxXDBcMFwwXDM3N1wyMzFcMjU0XDMwMFwzNzdcMjAwXDIyN1wyNjBcMzc3XFx4XDIyNlwzNzdUcFwyMTYiCi0gICJcMzc3S2hcMjA2XDM3N0NgflwzNzc7WHZcMzc3M1BuXDM3NzFOa1wzNzcxTmtcMzc3M1BrXDM3NzFOa1wzNzc5VXFcMzc3IgotICAiLURcXFwzNzdcMjdcIixcMzc3flwyMDJcMjA1XDM3NzU3OFwzNzdcMFwwXDBGXDBcMFwwXDE1XDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDIzMltpeVwzNzdcMjE3XDI0M1wyNzFcMzc3dVwyMTVcMjQ2XDM3N1h0XDIyMlwzNzdQbCIKLSAgIlwyMTJcMzc3SGRcMjAyXDM3N0BcXHpcMzc3OFRyXDM3NzFOa1wzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcyT2xcMzc3IgotICAiPVl0XDM3NylcNzdWXDM3NyEnLlwzNzZKTE1cMzc3XDIxNlwyMjBcMjIyXDM3N1wwXDBcMFFcMFwwXDBcMjBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDIwXDBcMFwwXDM3N1wyMzBcMjUzXDI3N1wzNzVcMTc3XDIyNlwyNTdcMzc3XXlcMjI3XDM3NyIKLSAgIlVxXDIxN1wzNzdNaVwyMDdcMzc3RGFcMTc3XDM3NzxZd1wzNzc0UW9cMzc3MU5rXDM3NzFOa1wzNzcxTmtcMzc3MU5rIgotICAiXDM3NzhUcFwzNzcvRl1cMzc3XDMwJC1cMzc3VFdZXDM2NmVpalwzNzczMzRcMzc3XDBcMFwwUVwwXDBcMFwyMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMzM1ZXVcMjAzXDM3N1wyMTVcMjQyXDI3MVwzNzd2XDIxNVwyNDdcMzc3WnVcMjIzXDM3NyIKLSAgIlFtXDIxM1wzNzdJZVwyMDNcMzc3QV17XDM3NzlVc1wzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcxTmtcMzc3MU5rXDM3NyIKLSAgIjxXc1wzNzcqQlpcMzc3IysyXDM3N0ZISlwzNzdcMjIwXDIyMlwyMjVcMzc3XDBcMFwwXDM3N1wwXDBcMGNcMFwwXDBcMjEiCi0gICJcMFwwXDBcMFwwXDBcMCFcMFwwXDBcMzc3XDIzM1wyNTRcMjczXDM3N1wyMDdcMjM0XDI2NFwzNzdjflwyMzNcMzc3ViIKLSAgInJcMjIwXDM3N05qXDIxMFwzNzdGYlwyMDBcMzc3PVp4XDM3NzVScFwzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcxTmtcMzc3IgotICAiNVJuXDM3NzRLYlwzNzdcMzEkLVwzNzdkaGtcMzc3bW9wXDM3NzBHXVwzNzdcMFwwXDBcMzczXDBcMFwwUlwwXDBcMFwyNSIKLSAgIlwwXDBcMFwwXDBcMFwwXDI0NWVwfVwzNzdcMjIxXDI0NVwyNzRcMzc3cVwyMTNcMjQ2XDM3N1xceFwyMjZcMzc3VHBcMjE2IgotICAiXDM3N0toXDIwNlwzNzdDYH5cMzc3O1h2XDM3NzNQblwzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcxTmtcMzc3PVl0XDM3NyIKLSAgIilcNzdWXDM3NyYuM1wzNzdXWFlcMzc3XDIxM1wyMTdcMjI1XDM3N1wxMVwxNVwyMVwzNzJcMFwwXDBcMjM0XDBcMFwwIgotICAiSVwwXDBcMFwxN1wwXDBcMFwxM1wwXDBcMFwzNzd+XDIxNlwyMzdcMzM3XDIxMlwyMzdcMjY2XDM3N2xcMjA1XDI0MVwzNzciCi0gICJYdFwyMjJcMzc3UGxcMjEyXDM3N0hkXDIwMlwzNzdAXFx6XDM3NzhUclwzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcxTiIKLSAgImtcMzc3MU5rXDM3NzVMY1wzNzdcMzIlMFwzNzdITE5cMzc3c3V2XDM3N0Nbc1wzNzBcMFwwXDBcMzY0XDBcMFwwVVwwIgotICAiXDBcMCtcMFwwXDBcN1wwXDBcMFwyMDZ1d3dcMzc3XDI3NVwzMDZcMzIzXDM3NVwyNTZcMjc2XDMxNFwzNzdcMjQ3XDI2NiIKLSAgIlwzMDZcMzc3XDI0M1wyNjJcMzAyXDM3N1wyMzZcMjU1XDI3NVwzNzdcMjMyXDI1MlwyNzFcMzc3XDIyMFwyNDBcMjYwIgotICAiXDM3N3tcMjE3XDI0MVwzNzd5XDIxNFwyMzdcMzc3eVwyMTRcMjM3XDM3N3lcMjE0XDIzN1wzNzd5XDIxNFwyMzdcMzc3IgotICAicFwyMDRcMjMxXDM3N1VmeVwzNzcyNTtcMzc3W15hXDM3N1wyMTZcMjIzXDIzMFwzNzdcMTJcMTZcMjFcMzcyXDBcMFwwIgotICAiXDIzM1wwXDBcMEdcMFwwXDBcMjFcMFwwXDBcMVwyXDdcMTFcMzMxXDI2MFwyNzJcMzA0XDM3Nyw+UVwzNzckNkpcMzc3IgotICAiJDZKXDM3NyQ2SlwzNzckNkpcMzc3JDZKXDM3NyQ2SlwzNzckNkpcMzc3JDZKXDM3NyQ2SlwzNzckNkpcMzc3JDZKXDM3NyIKLSAgIiQ2SlwzNzcrNVw3N1wzNzdeYmhcMzc3d3h6XDM3N0ZgelwzNzdcMFwwXDBcMzY1XDBcMFwwVVwwXDBcMCpcMFwwXDBcNiIKLSAgIlwwXDBcMFwwXDE1XDE3XDIxXDM3N1wyMDdcMjIzXDIzNVwzNzdAQUVcMzc3X2BgXDM3M3R0dFwzNzdcMjI2XDIyNlwyMjYiCi0gICJcMzc3XDI2MVwyNjFcMjYxXDM3N1wyNTdcMjU3XDI2MFwzNzdcMzA1XDMwNVwzMDZcMzc3XDMxNlwzMTZcMzE3XDM3NyIKLSAgIlwyNjRcMjczXDMwMVwzNzdcMjc0XDMwMlwzMTFcMzc3XDI3NVwzMDRcMzEyXDM3N1wzMDRcMzEzXDMyMlwzNzdcMzEzIgotICAiXDMyMlwzMzFcMzc3XDMyNlwzMzJcMzM2XDM3N1wyMjBcMjI2XDIzM1wzNzdcMjA1XDIxMlwyMTdcMzc3XDI0XDMzIVwzNzEiCi0gICJcMFwwXDBcMjM0XDBcMFwwSFwwXDBcMFwyMlwwXDBcMFwxXDBcMFwwXDBcMTRcMTZcMTdcMzc3a3tcMjEzXDM3N1dXVyIKLSAgIlwzNzd9flwyMDBcMzc3XDM0MlwzNDRcMzQ2XDM3N1wzNDJcMzQ0XDM0NlwzNzdcMzQxXDM0MVwzNDFcMzc3XDMzN1wzMzciCi0gICJcMzQwXDM3N1wzMzdcMzM3XDM0MFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM3NVwzNzVcMzc2XDM3N1wzNjFcMzYzXDM2NSIKLSAgIlwzNzdcMzYxXDM2M1wzNjVcMzc3XDM2MVwzNjNcMzY1XDM3N1wyNDdcMjUwXDI1MlwzNzdcMjYyXDI2NVwyNzFcMzc3IgotICAiaW1xXDM3N0ZgelwzNzdcMFwxXDJcMzcwXDBcMFwwVVwwXDBcMCpcMFwwXDBcNlwwXDBcMFwwXDBcMFwwXDAkJSdcMzc3IgotICAiY3JcMjAxXDM3N2l8XDIxNlwzNzdUa1wyMDNcMzc3RV14XDM3N1wzMjZcMzM0XDM0MVwzNzdcMzQ3XDM1MlwzNTVcMzc3IgotICAiXDM1NVwzNTdcMzYxXDM3N1wzNTVcMzU3XDM2MlwzNzdcMzQ1XDM0NlwzNDdcMzc3XDMzNlwzMzZcMzM3XDM3N1wzNDEiCi0gICJcMzQxXDM0MlwzNzdcMzQxXDM0MVwzNDJcMzc3XDMzN1wzMzdcMzQwXDM3N1wzNDFcMzQyXDM0M1wzNzdyelwyMDNcMzc3IgotICAiXDIxM1wyMTdcMjI0XDM3N1wyNVwzMyFcMzY3XDBcMFwwXDIzNFwwXDBcMElcMFwwXDBcMjJcMFwwXDBcMVwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDAiIjlcMFwwXDBcMzc3XDRcNlwxMlwzNTQ4Sl1cMzYzTWJ4XDM1MVRoXDE3N1wzNTdTalwyMDIiCi0gICJcMzc3V29cMjA2XDM3N1wyMDdcMjI3XDI0N1wzNzdcMzI3XDMzNVwzNDFcMzc3XDM0MlwzNDZcMzUxXDM3N1wzNTFcMzU0IgotICAiXDM1NlwzNzdcMzcwXDM3MVwzNzJcMzc3XDM3MFwzNzFcMzcyXDM3N1wyMDFcMjA1XDIxMlwzNzdcMjQ1XDI0N1wyNTAiCi0gICJcMzc3XDIzNFwyNDJcMjUwXDM3N1wxXDJcM1wzNzBcMFwwXDBVXDBcMFwwKlwwXDBcMFw3XDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDAmXDBcMFwwZVwwXDBcMFwyNzZcMFwwXDBcMzQ2XDBcMFwwXDM2MFwwXDBcMFwzNjMiCi0gICI7S15cMzcxRFZpXDM3MVRnfVwzNjdVa1wyMDBcMzY2VmxcMjAzXDM3N1wyNTRcMjcwXDMwM1wzNzdcMzM0XDM0MVwzNDUiCi0gICJcMzc3XDM1MFwzNTNcMzU1XDM3N1wyMzdcMjQzXDI0NlwzNzdcMjVcMzUkXDM3M1wwXDBcMFwyMzRcMFwwXDBIXDBcMCIKLSAgIlwwXDIyXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw2XDBcMFwwXDE3XDBcMFwwIgotICAiXDM0XDBcMFwwIiI0XDBcMFwwQ1wwXDBcMGdcMFwwXDBcMjUxXDBcMFwwXDM0NFwwXDBcMFwzNjFcMFwwXDBcMzU2MD4iCi0gICJNXDM2NT1OYFwzNzFPX3NcMzcyU2V7XDM2N0xjfFwzNTdcMVwzXDVcMzY3XDBcMFwwVVwwXDBcMCtcMFwwXDBcN1wwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMTIiCi0gICJcMFwwXDBcMTVcMFwwXDBcMjBcMFwwXDBcMzNcMFwwXDAiIjBcMFwwXDBDXDBcMFwwX1wwXDBcMFwyMzVcMFwwXDBcMzI3IgotICAiXDBcMFwwXDM1NlwwXDBcMFwzNTRcMFwwXDBcMzQ3XDBcMFwwe1wwXDBcMEZcMFwwXDBcMjFcMFwwXDBcMVwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwxMFwwXDBcMFwxNVwwXDBcMFwyMFwwXDBcMFwzMFwwXDBcMCxcMFwwXDAiCi0gICJcNzdcMFwwXDBIXDBcMFwwSFwwXDBcMEBcMFwwXDBcMzdcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcN1wwXDBcMFwxM1wwXDBcMFwxNlwwIgotICAiXDBcMFwxNlwwXDBcMFwxNFwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19ib29rX2dyZWVuKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYm9va19ncmVlbltdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYm9va19ncmVlbltdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwIiI5XDBcMFwwXDMwMlwwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNTdcMFwwXDBcMzU2XDBcMFwwXDM0NlwwXDBcMFwzNDJcMFwwXDB3XDBcMFwwXDEzXDBcMCIKLSAgIlwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDMyXDIxXDM0XDIxXDM3N1wyMjUiCi0gICJcMjc2XDIyNVwzNzd5XDI1NXlcMzc3blwyNDZuXDM3N2VcMjQxZVwzNzdeXDIzM15cMzc3WVwyMjJZXDM3N1NcMjEyUyIKLSAgIlwzNzdPXDIwMk9cMzc3T1wyMDJPXDM3N09cMjAyT1wzNzdPXDIwMk9cMzc3T1wyMDJPXDM3N1JcMjEwUlwzNzdDbkNcMzc3IgotICAiXDIyXDM2XDIyXDM3NlwwXDBcMC5cMFwwXDBcMTBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDI3M29cMjQ3b1wzNzdcMjE0XDI3MVwyMTRcMzc3clwyNTFyXDM3N1ZcMjE2VlwzNzdQXDIwNFBcMzc3SnoiCi0gICJKXDM3N0NvQ1wzNzc9ZT1cMzc3OmA6XDM3NzpgOlwzNzc9ZT1cMzc3PWU9XDM3N0FrQVwzNzc9ZT1cMzc3MFAwXDM3NyIKLSAgIlwyNiNcMjZcMzcyXDBcMFwwTlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDIyIgotICAiXDExXDE3XDExXDM3N1wyMjdcMjc3XDIyN1wzNzd9XDI2MH1cMzc3WVwyMjNZXDM3N1RcMjEzVFwzNzdNXDE3N01cMzc3IgotICAiR3VHXDM3N0FrQVwzNzc7YTtcMzc3OmA6XDM3NzpgOlwzNzc6YDpcMzc3OmA6XDM3N0BqQFwzNzczVDNcMzc3ITYhXDM3NyIKLSAgIlwwXDBcMF5cMFwwXDBEXDBcMFwwXDE2XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjU1T1wyMDMiCi0gICJPXDM3N1wyMjdcMjc3XDIyN1wzNzdxXDI1MHFcMzc3V1wyMTdXXDM3N1BcMjA0UFwzNzdLfEtcMzc3RXJFXDM3Nz5mPiIKLSAgIlwzNzc6YDpcMzc3OmA6XDM3NzpgOlwzNzc6YDpcMzc3PGM8XDM3N0BqQFwzNzcvTi9cMzc3LEksXDM3NVwwXDBcMFwzNzciCi0gICJcMFwwXDAlXDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjFcMFwwXDBcMzc3XDIyN1wyNzdcMjI3IgotICAiXDM3N35cMjYwflwzNzdbXDIyNltcMzc3VVwyMTRVXDM3N05cMjAxTlwzNzdId0hcMzc3Qm1CXDM3NzxjPFwzNzc6YDoiCi0gICJcMzc3OmA6XDM3NzthO1wzNzc6YDpcMzc3QGlAXDM3NzNUM1wzNzdcMzAoXDMwXDM3N1wyMDFcMjAxXDIwMVwzNzcoQiIKLSAgIihcMzc3XDBcMFwwRlwwXDBcMFwxNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMzJPXDIwM09cMzc3XDIxNSIKLSAgIlwyNzFcMjE1XDM3N3FcMjUwcVwzNzdYXDIyMVhcMzc3UlwyMDdSXDM3N0x9TFwzNzdGc0ZcMzc3QGlAXDM3NzpgOlwzNzciCi0gICI6YDpcMzc3OmA6XDM3NzpgOlwzNzc7YTtcMzc3Qm1CXDM3Ny9OL1wzNzdcMzUiIjBcMzVcMzc2S0tLXDM3N1wyMjBcMjIwIgotICAiXDIyMFwzNzdcMFwwXDBRXDBcMFwwXDIwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMFwwXDBcMFwzNzdcMjI2XDI3N1wyMjYiCi0gICJcMzc1fVwyNjB9XDM3N1xcXDIyN1xcXDM3N1ZcMjE1VlwzNzdPXDIwM09cMzc3SXhJXDM3N0NuQ1wzNzc9ZD1cMzc3OiIKLSAgImA6XDM3NzpgOlwzNzc6YDpcMzc3OmA6XDM3N1w3N2hcNzdcMzc3NFY0XDM3N1wzMSpcMzFcMzc3VlZWXDM2NmdnZ1wzNzciCi0gICIzMzNcMzc3XDBcMFwwUVwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzM1V1wyMTdXXDM3N1wyMTRcMjcxXDIxNCIKLSAgIlwzNzdyXDI1MXJcMzc3WVwyMjJZXDM3N1JcMjEwUlwzNzdMfkxcMzc3RnRGXDM3N0BqQFwzNzc6YDpcMzc3OmA6XDM3NyIKLSAgIjpgOlwzNzc6YDpcMzc3OmA6XDM3N0FrQVwzNzcxUTFcMzc3XDM3IiIzXDM3XDM3N0hISFwzNzd3XDI1NHdcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMGNcMFwwXDBcMjFcMFwwXDBcMFwwXDBcMCFcMFwwXDBcMzc3XDIyNlwyNzdcMjI2XDM3N1wyMDRcMjY0IgotICAiXDIwNFwzNzdfXDIzNV9cMzc3VlwyMTZWXDM3N1BcMjA0UFwzNzdKekpcMzc3Q29DXDM3Nz1lPVwzNzc6YDpcMzc3OmAiCi0gICI6XDM3NzpgOlwzNzc6YDpcMzc3PWQ9XDM3NzhdOFwzNzdcMzIrXDMyXDM3N2dnZ1wzNzdubm5cMzc3NFY0XDM3N1wwXDAiCi0gICJcMFwzNzNcMFwwXDBSXDBcMFwwXDI1XDBcMFwwXDBcMFwwXDBcMjQ1VVwyMTRVXDM3N1wyMjBcMjczXDIyMFwzNzduXDI0NiIKLSAgIm5cMzc3W1wyMjZbXDM3N1VcMjE0VVwzNzdOXDIwMU5cMzc3SHdIXDM3N0JtQlwzNzc8YzxcMzc3OmA6XDM3NzpgOlwzNzciCi0gICI6YDpcMzc3OmA6XDM3N0JtQlwzNzcvTi9cMzc3ITYhXDM3N1hYWFwzNzd0XDI1M3RcMzc3XDExXDE3XDExXDM3MlwwXDAiCi0gICJcMFwyMzRcMFwwXDBJXDBcMFwwXDE3XDBcMFwwXDEzXDBcMFwwXDM3N3RcMjQ3dFwzMzdcMjEwXDI2NlwyMTBcMzc3aCIKLSAgIlwyNDNoXDM3N1hcMjIxWFwzNzdSXDIwN1JcMzc3TH1MXDM3N0ZzRlwzNzdAaUBcMzc3OmA6XDM3NzpgOlwzNzc6YDpcMzc3IgotICAiOmA6XDM3NzpgOlwzNzc5XjlcMzc3XDMzLlwzM1wzNzdLS0tcMzc3dHR0XDM3N0VwRVwzNzBcMFwwXDBcMzY0XDBcMFwwIgotICAiVVwwXDBcMCtcMFwwXDBcN1wwXDBcMFwyMDZZXDIyMllcMzc3XDI3MlwzMjVcMjcyXDM3NVwyNTRcMzE0XDI1NFwzNzciCi0gICJcMjQzXDMwN1wyNDNcMzc3XDIzN1wzMDRcMjM3XDM3N1wyMzBcMzAwXDIzMFwzNzdcMjIzXDI3NVwyMjNcMzc3XDIxMCIKLSAgIlwyNjZcMjEwXDM3N3JcMjUxclwzNzdvXDI0N29cMzc3b1wyNDdvXDM3N29cMjQ3b1wzNzdvXDI0N29cMzc3ZVwyNDFlIgotICAiXDM3N01cMTc3TVwzNzcoQihcMzc3Xl5eXDM3N3hcMjU1eFwzNzdcMTFcMTdcMTFcMzcyXDBcMFwwXDIzM1wwXDBcMEciCi0gICJcMFwwXDBcMjFcMFwwXDBcMVwzXDVcM1wzMzFcMjUwXDMxMlwyNTBcMzc3LkwuXDM3NylEKVwzNzcpRClcMzc3KUQpXDM3NyIKLSAgIilEKVwzNzcpRClcMzc3KUQpXDM3NylEKVwzNzcpRClcMzc3KUQpXDM3NylEKVwzNzcpRClcMzc3KUQpXDM3NydBJ1wzNzciCi0gICJjY2NcMzc3eHh4XDM3N0h3SFwzNzdcMFwwXDBcMzY1XDBcMFwwVVwwXDBcMCpcMFwwXDBcNlwwXDBcMFwwXDEzXDIyXDEzIgotICAiXDM3N3dcMjU0d1wzNzcxUTFcMzc3X19fXDM3M3R0dFwzNzdcMjI2XDIyNlwyMjZcMzc3XDI2MVwyNjFcMjYxXDM3N1wyNTciCi0gICJcMjU3XDI1N1wzNzdcMzA1XDMwNVwzMDVcMzc3XDMxNlwzMTZcMzE2XDM3N1wyNzJcMjcyXDI3MlwzNzdcMzAyXDMwMiIKLSAgIlwzMDJcMzc3XDMwM1wzMDNcMzAzXDM3N1wzMTNcMzEzXDMxM1wzNzdcMzIyXDMyMlwzMjJcMzc3XDMzMlwzMzJcMzMyIgotICAiXDM3N1wyMjVcMjI1XDIyNVwzNzdtXDI0Nm1cMzc3XDIzXDM3XDIzXDM3MVwwXDBcMFwyMzRcMFwwXDBIXDBcMFwwXDIyIgotICAiXDBcMFwwXDFcMFwwXDBcMFwxMVwxN1wxMVwzNzdcXFwyMzBcXFwzNzdBa0FcMzc3fn5+XDM3N1wzNDRcMzQ0XDM0NFwzNzciCi0gICJcMzQ0XDM0NFwzNDRcMzc3XDM0MVwzNDFcMzQxXDM3N1wzMzdcMzM3XDMzN1wzNzdcMzM3XDMzN1wzMzdcMzc3XDM2MiIKLSAgIlwzNjJcMzYyXDM3N1wzNzVcMzc1XDM3NVwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMjUwXDI1MFwyNTBcMzc3XDI2NVwyNjVcMjY1XDM3N21tbVwzNzdId0hcMzc3XDBcMVwwXDM3MFwwXDAiCi0gICJcMFVcMFwwXDAqXDBcMFwwXDZcMFwwXDBcMFwwXDBcMFwwXDMzLlwzM1wzNzdWXDIxNVZcMzc3XFxcMjMwXFxcMzc3UCIKLSAgIlwyMDRQXDM3N0Z0RlwzNzdcMzMzXDMzM1wzMzNcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzMzZcMzM2XDMzNlwzNzdcMzQxXDM0MVwzNDFcMzc3XDM0MVwzNDEiCi0gICJcMzQxXDM3N1wzMzdcMzM3XDMzN1wzNzdcMzQyXDM0MlwzNDJcMzc3enp6XDM3N3NcMjUyc1wzNzdcMjRcNDBcMjRcMzY3IgotICAiXDBcMFwwXDIzNFwwXDBcMElcMFwwXDBcMjJcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiIjlcMFwwXDBcMzc3IgotICAiXDVcMTBcNVwzNTQ4WzhcMzYzTXhNXDM1MVFcMjAwUVwzNTdPXDIwM09cMzc3UlwyMTBSXDM3N1wyMjdcMjI3XDIyN1wzNzciCi0gICJcMzM0XDMzNFwzMzRcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNTNcMzUzXDM1M1wzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wyMDVcMjA1XDIwNVwzNzdcMjQ2XDI0NlwyNDZcMzc3XDIxM1wyNzBcMjEzXDM3N1wxXDJcMVwzNzAiCi0gICJcMFwwXDBVXDBcMFwwKlwwXDBcMFw3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAmXDBcMFwwZSIKLSAgIlwwXDBcMFwyNzZcMFwwXDBcMzQ2XDBcMFwwXDM2MFwwXDBcMFwzNjM5XTlcMzcxQWpBXDM3MU9cMjAwT1wzNjdRXDIwMyIKLSAgIlFcMzY2UVwyMDZRXDM3N1wyNDVcMzEwXDI0NVwzNzdcMzQwXDM0MFwzNDBcMzc3XDM1MlwzNTJcMzUyXDM3N1wyMTNcMjcwIgotICAiXDIxM1wzNzdcMjVcIlwyNVwzNzNcMFwwXDBcMjM0XDBcMFwwSFwwXDBcMFwyMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcNlwwXDBcMFwxN1wwXDBcMFwzNFwwXDBcMCIiNFwwXDBcMENcMFwwXDBnXDAiCi0gICJcMFwwXDI1MVwwXDBcMFwzNDRcMFwwXDBcMzYxXDBcMFwwXDM1Ni9ML1wzNjU7YTtcMzcxSHZIXDM3Mk19TVwzNjdMeiIKLSAgIkxcMzU3XDJcM1wyXDM2N1wwXDBcMFVcMFwwXDArXDBcMFwwXDdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwXDEyXDBcMFwwXDE1XDBcMFwwXDIwXDBcMFwwXDMzIgotICAiXDBcMFwwIiIwXDBcMFwwQ1wwXDBcMF9cMFwwXDBcMjM1XDBcMFwwXDMyN1wwXDBcMFwzNTZcMFwwXDBcMzU0XDBcMFwwIgotICAiXDM0N1wwXDBcMHtcMFwwXDBGXDBcMFwwXDIxXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDAiCi0gICJcMTBcMFwwXDBcMTVcMFwwXDBcMjBcMFwwXDBcMzBcMFwwXDAsXDBcMFwwXDc3XDBcMFwwSFwwXDBcMEhcMFwwXDBAXDAiCi0gICJcMFwwXDM3XDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwyXDBcMFwwXDdcMFwwXDBcMTNcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTRcMFwwXDBcNVwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfYm9va19vcGVuKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYm9va19vcGVuW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19ib29rX29wZW5bXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM09PT0RcMFwwXDBcMzc3XDRcNVw2IgotICAiXDM3N1wwXDBcMDtcMFwwXDBcMjBcMFwwXDBcNlwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNOTk5FXDEzXDE3XDIyXDM3N1wyMjVcMjM3XDI1MlwzNzdcMzAzXDMwNiIKLSAgIlwzMTJcMzU2XDBcMFwwXDM3N1wwXDBcMCZcMFwwXDBcMjJcMFwwXDBcNVwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMC5cMTNcMTdcMjJcMzc3XDIwMlwyMjBcMjM2XDM3N1wzNjFcMzYxIgotICAiXDM2MVwzNzdcMzI1XDMyN1wzMzBcMzc3XDEyXDE1XDIwXDM3N1wwXDBcMF9cMFwwXDBcNDBcMFwwXDBcMTNcMFwwXDAiCi0gICJcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwLlwyMVwyN1wzNFwzNzdcMjA2XDIyM1wyNDAiCi0gICJcMzc3XDM1N1wzNjBcMzYwXDM3N1wzMzZcMzM2XDMzNlwzNzdcMzI1XDMyNVwzMjVcMzc3XDIzM1wyMzdcMjQ0XDMyNCIKLSAgIlwwXDBcMFwzNzdcMFwwXDAvXDBcMFwwXDI0XDBcMFwwXDVcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDAiCi0gICIuXDE2XDIzXDI3XDM3N1wyMDVcMjIyXDIzN1wzNzdcMzU3XDM2MFwzNjBcMzc3XDMzM1wzMzNcMzMzXDM3N1wzMTJcMzEyIgotICAiXDMxMlwzNzdcMzEwXDMxMFwzMTBcMzc3XDMxMFwzMTFcMzEyXDM3N1wxNFwxN1wyM1wzNzdcMFwwXDBbXDBcMFwwXDQwIgotICAiXDBcMFwwXDEzXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMC5cMjRcMzJcNDBcMzc3eVwyMTBcMjI1XDM3MFwzNjFcMzYxIgotICAiXDM2MVwzNzdcMzI1XDMyNVwzMjVcMzc3XDMxMlwzMTJcMzEyXDM3N1wzMjJcMzIyXDMyMlwzNzdcMzAzXDMwM1wzMDMiCi0gICJcMzc3XDMxNVwzMTVcMzE1XDM3N3R5flwyNzVcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyNFwwXDBcMFw2XDBcMFwwXDIiCi0gICJcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwLVwyN1wzNyZcMzc3XDE3N1wyMTVcMjMyXDM2MVwzNTdcMzYwXDM2MFwzNzdcMzMyXDMzMlwzMzJcMzc3XDMyM1wzMjMiCi0gICJcMzIzXDM3N1wzMDRcMzA0XDMwNFwzNzdcMzE2XDMxNlwzMTZcMzc3XDMwMFwzMDBcMzAwXDM3N1wzMTJcMzEyXDMxMiIKLSAgIlwzNzdcMjYxXDI2MVwyNjFcMzM2XDE1XDIxXDI1XDM3N1wwXDBcMFlcMFwwXDAjXDBcMFwwXDIyXDBcMFwwXDE0XDBcMCIKLSAgIlwwXDEyXDBcMFwwXDEyXDBcMFwwXDEyXDBcMFwwXDExXDBcMFwwXDdcMFwwXDBcNFwwXDBcMFwxXDBcMFwwXDBcMFwwIgotICAiXDBcMzc3dlwyMDVcMjIyXDM1MFwzNTZcMzU3XDM1N1wzNzdcMzMxXDMzMVwzMzFcMzc3XDMyM1wzMjNcMzIzXDM3N1wzMjAiCi0gICJcMzIwXDMyMFwzNzdcMzAyXDMwMlwzMDJcMzc3XDMxM1wzMTNcMzEzXDM3N1wzMTFcMzExXDMxMVwzNzdcMjc0XDI3NCIKLSAgIlwyNzRcMzc3XDI0NFwyNDdcMjUxXDM0NGhrbFwzNTEzMzNcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzUyXDBcMFwwXDE3N1wwXDBcMD1cMFwwXDBcMjBcMFwwXDBcNlwwXDAiCi0gICJcMFwxQU9dXDM3N1wyNTVcMjY1XDI3NFwzNjNcMzUyXDM1MlwzNTJcMzc3XDMyMlwzMjJcMzIyXDM3N1wyNzdcMjc3XDI3NyIKLSAgIlwzNzdcMzE1XDMxNVwzMTVcMzc3XDMxM1wzMTNcMzEzXDM3N1wyNzVcMjc1XDI3NVwzNzdcMzA2XDMwNlwzMDZcMzc3IgotICAiXDI2NVwyNjZcMjY3XDM2NVwyMTFcMjIwXDIyNlwzNzBcMjcwXDI3MFwyNzBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N0BBQlwzNDJcMFwwXDBcMTc3XDBcMFwwJVwwXDBcMFwyMFwwXDBcMFw0XDBcMCIKLSAgIlwwXDM3N01gdFwzNDBcMzUzXDM1M1wzNTNcMzc3XDMyMVwzMjFcMzIxXDM3N1wzMDNcMzAzXDMwM1wzNzdcMzAxXDMwMSIKLSAgIlwzMDFcMzc3XDMxMFwzMTBcMzEwXDM3N1wyNjdcMjY3XDI2N1wzNzdcMzAzXDMwM1wzMDNcMzc3XDIyN1wyMzdcMjQ3IgotICAiXDM0N1wyNDFcMjQzXDI0NFwzNzZcMzc0XDM3NVwzNzVcMzc3XDM2M1wzNjRcMzY0XDM3N1wzNTNcMzU0XDM1NVwzNzciCi0gICJcMzUyXDM1M1wzNTRcMzc3XDM1MVwzNTJcMzUzXDM3N1wzNTZcMzU3XDM2MVwzNzdcMzY2XDM2N1wzNzBcMzc3XDM0NCIKLSAgIlwzNDVcMzQ2XDM3NlwyMjJcMjIzXDIyNVwzNzVcMFwwXDBcMzc3XDBcMFwwIiI5XDBcMFwwXDMzXDBcMFwwXDdcMFwwIgotICAiXDA9MkFPXDM3N1wyMTRcMjMwXDI0MlwzNjJcMzQ3XDM0N1wzNDdcMzc3XDMxMVwzMTFcMzExXDM3N1wyNzNcMjczXDI3MyIKLSAgIlwzNzdcMzA0XDMwNFwzMDRcMzc3XDMwMlwzMDJcMzAyXDM3N1wyNDRcMjQ3XDI1M1wzNDZcMjIzXDIyNlwyMzFcMzc1IgotICAiXDMyN1wzMzBcMzMwXDM3N1wzNzRcMzc1XDM3NVwzNzdcMzcyXDM3NFwzNzRcMzc3XDM3MVwzNzJcMzczXDM3N1wzNzAiCi0gICJcMzcxXDM3MlwzNzdcMzY3XDM3MFwzNzFcMzc3XDM2NVwzNjZcMzcwXDM3N1wzNjdcMzY3XDM3MVwzNzdcMzA2XDMwNyIKLSAgIlwzMDdcMzc3T15qXDM3NVwwXDBcMFwzNjBcMFwwXDBCXDBcMFwwXDM3XDBcMFwwXDExXDBcMFwwXDIzXDBcMFwwXDM3NyIKLSAgIkxfclwzNDBcMzUwXDM1MFwzNTBcMzc3XDMwNlwzMDZcMzA2XDM3N1wyNzZcMjc2XDI3NlwzNzdcMjcwXDI3MFwyNzBcMzc3IgotICAiXDI2NVwyNjVcMjY2XDM2MVwyMjdcMjM2XDI0NFwzNTZcMjUwXDI1MFwyNTBcMzc3XDM3NVwzNzZcMzc2XDM3N1wzNjUiCi0gICJcMzY2XDM2NlwzNzdcMzQ3XDM1MVwzNTFcMzc3XDM1M1wzNTRcMzU1XDM3N1wzNTJcMzUzXDM1NFwzNzdcMzYwXDM2MSIKLSAgIlwzNjJcMzc3XDM3MFwzNzFcMzcyXDM3N1wzNDBcMzQyXDM0M1wzNzdcMjE3XDIyNlwyMzVcMzc2XDI1XDM0XCJcMzc3IgotICAiXDBcMFwwXDIwMVwwXDBcMD5cMFwwXDBcMzRcMFwwXDBcMTBcMFwwXDBcMTNcMFwwXDBBNURTXDM3N1wyMTVcMjMxXDI0MiIKLSAgIlwzNjNcMzQzXDM0M1wzNDNcMzc3XDMwMVwzMDFcMzAxXDM3N1wyNzZcMjc2XDI3NlwzNzdcMjE2XDIyNFwyMzJcMzE2IgotICAiXDIzNVwyMzdcMjM3XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc1XDM3NlwzNzZcMzc3XDM3NFwzNzVcMzc1XDM3N1wzNzIiCi0gICJcMzc0XDM3NFwzNzdcMzYyXDM2M1wzNjRcMzc3XDM2MVwzNjJcMzYzXDM3N1wzNjdcMzcwXDM3MVwzNzdcMzY2XDM2NiIKLSAgIlwzNjdcMzc3XDI0NlwyNTBcMjUzXDM3N3NcMTc3XDIxMlwzNzZcNFw1XDZcMzc3XDBcMFwwUFwwXDBcMCIiMVwwXDBcMCIKLSAgIlwyNFwwXDBcMFw1XDBcMFwwXDVcMFwwXDBcMjRcMFwwXDBcMzc3S19xXDM0MFwzNDVcMzQ1XDM0NVwzNzdcMzAxXDMwMSIKLSAgIlwzMDFcMzc3XDIzNlwyMzdcMjQwXDMyNlwyMjdcMjMxXDIzM1wzNzVcMzMxXDMzMVwzMzFcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNDdcMzUwXDM1MFwzNzdcMzU2XDM1N1wzNTdcMzc3XDM2NFwzNjVcMzY1XDM3N1wzNzFcMzcyXDM3M1wzNzciCi0gICJcMzcwXDM3MVwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzMzBcMzMwXDMzMlwzNzdcMjIzXDIzM1wyNDNcMzc3XDE3XDI0IgotICAiXDMwXDM3N1wwXDBcMHRcMFwwXDBCXDBcMFwwXCJcMFwwXDBcMTRcMFwwXDBcM1wwXDBcMFwyXDBcMFwwXDEzXDBcMFwwIgotICAiQTlJV1wzNzdcMjAyXDIxN1wyMjdcMzYwXDMzM1wzMzNcMzMzXDM3MFwyMTJcMjE2XDIyMlwzNDdcMjY0XDI2NFwyNjQiCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc1XDM3NlwzNzZcMzc3XDM2NVwzNjZcMzY2XDM3NyIKLSAgIlwzNTRcMzU2XDM1NlwzNzdcMzQ2XDM0N1wzNTBcMzc3XDM3MlwzNzJcMzczXDM3N1wzNjVcMzY1XDM2N1wzNzdcMjU2IgotICAiXDI2MlwyNjZcMzc3XFxsfFwzNzdcMFwwXDBcMzc3XDBcMFwwUFwwXDBcMCIiMVwwXDBcMFwyNVwwXDBcMFw2XDBcMFwwIgotICAiXDFcMFwwXDBcMFwwXDBcMFw1XDBcMFwwXDI0XDBcMFwwXDM3N0pdcFwzMzZcMjczXDI3M1wyNzNcMzIxXDI1M1wyNTMiCi0gICJcMjUzXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNTdcMzYwXDM2MCIKLSAgIlwzNzdcMzc0XDM3NVwzNzVcMzc3XDM3MlwzNzNcMzczXDM3N1wzNzFcMzcyXDM3M1wzNzdcMzczXDM3NFwzNzRcMzc3IgotICAiXDMzNlwzNDFcMzQzXDM3N1wyMzVcMjQ2XDI1NlwzNzdcMTJcMTVcMjBcMzc3XDBcMFwwdFwwXDBcMEFcMFwwXDBcIlwwIgotICAiXDBcMFwxM1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDEzXDBcMFwwQSQvOlwzNzdpbXFcMzQ2IgotICAid3h5XDM3N1wzNjJcMzYzXDM2M1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzYwXDM2MFwzNjBcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNzNcMzc0XDM3NFwzNzdcMzcxXDM3MVwzNzJcMzc3XDI3MyIKLSAgIlwyNzdcMzA0XDM3N1ZneVwzNzdcMFwwXDBcMzc3XDBcMFwwUFwwXDBcMCIiMVwwXDBcMFwyNVwwXDBcMFw2XDBcMFwwIgotICAiXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcNVwwXDBcMFwyNFwwXDBcMFwzNzdKX3RcMzcwMT5LXDM3NlwyNjMiCi0gICJcMjc1XDMwNlwzNzVcMzIxXDMyN1wzMzVcMzc3XDMzMVwzMzZcMzQzXDM3N1wzNjZcMzY3XDM2N1wzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzIxXDMyMlwzMjRcMzc3XDIzMlwyNDNcMjU0IgotICAiXDM3N1w0XDVcNlwzNzdcMFwwXDB0XDBcMFwwQVwwXDBcMCFcMFwwXDBcMTNcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMTNcMFwwXDAiIjdcMFwwXDBcMjU2KzQ8XDM2NikyO1wzNzdPXyIKLSAgInBcMzc3XnFcMjA0XDM3NlwyMjFcMjM2XDI1M1wzNzVcMjM3XDI1M1wyNjZcMzc1XDI3N1wzMDdcMzIwXDM3N1wzNTBcMzU0IgotICAiXDM1NlwzNzdcMjYyXDI3MFwyNzZcMzc3cX1cMjEwXDM3NlwwXDBcMFwzNzdcMFwwXDBQXDBcMFwwIiIxXDBcMFwwXDI1IgotICAiXDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcNVwwXDAiCi0gICJcMFwyMlwwXDBcMCZcMFwwXDA6XDBcMFwwWVwwXDBcMFwyMDBcMFwwXDBcMzAxJS01XDM3N1FhclwzNzdWZ3lcMzc1eiIKLSAgIlwyMDZcMjI1XDM3NXZcMjA1XDIyNFwzNzRcMFwwXDBcMzc3XDBcMFwwclwwXDBcMFw3N1wwXDBcMCFcMFwwXDBcMTNcMCIKLSAgIlwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwIgotICAiXDZcMFwwXDBcMjBcMFwwXDBcMzRcMFwwXDAlXDBcMFwwLVwwXDBcMCIiOFwwXDBcMFhcMFwwXDBcMjAwXDBcMFwwXDI3NSIKLSAgIiw0PVwzNzchJy5cMzc3XDBcMFwwcFwwXDBcMERcMFwwXDAqXDBcMFwwXDIzXDBcMFwwXDVcMFwwXDBcMVwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNFwwXDAiCi0gICJcMFwxMFwwXDBcMFwxNFwwXDBcMFwyMVwwXDBcMFwzMVwwXDBcMFwiXDBcMFwwLFwwXDBcMCIiN1wwXDBcMEFcMFwwXDAiCi0gICJDXDBcMFwwO1wwXDBcMClcMFwwXDBcMjZcMFwwXDBcMTBcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMiIKLSAgIlwwXDBcMFw0XDBcMFwwXDZcMFwwXDBcMTNcMFwwXDBcMjBcMFwwXDBcMzBcMFwwXDBcMzdcMFwwXDBcNDBcMFwwXDBcMzMiCi0gICJcMFwwXDBcMjFcMFwwXDBcMTBcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDRcMFwwXDBcNlwwXDBcMFwxMFwwXDBcMFwxMVwwXDBcMFw3XDBcMFwwXDQiCi0gICJcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfYm9va19yZWQpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19ib29rX3JlZFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYm9va19yZWRbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMCIiOVwwXDBcMFwzMDJcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwIgotICAiXDBcMFwzNzdcMFwwXDBcMzU3XDBcMFwwXDM1NlwwXDBcMFwzNDZcMFwwXDBcMzQyXDBcMFwwd1wwXDBcMFwxM1wwXDAiCi0gICJcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzMlwzN1wyMVwxNlwzNzdcMzEwIgotICAiXDIyNVwyMTNcMzc3XDI3MnltXDM3N1wyNjRuYFwzNzdcMjYwZldcMzc3XDI1Ml5PXDM3N1wyNDBZS1wzNzdcMjI2U0YiCi0gICJcMzc3XDIxNk9DXDM3N1wyMTZPQ1wzNzdcMjE2T0NcMzc3XDIxNk9DXDM3N1wyMTZPQ1wzNzdcMjI1UkZcMzc3eEM4XDM3NyIKLSAgIiFcMjJcMTdcMzc2XDBcMFwwLlwwXDBcMFwxMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMjczXDI2NXBiXDM3N1wzMDNcMjE0XDIwMVwzNzdcMjY2cmVcMzc3XDIzNFdJXDM3N1wyMjFQRFwzNzdcMjA2IgotICAiSj5cMzc3ekQ5XDM3N28+NFwzNzdpOzFcMzc3aTsxXDM3N28+NFwzNzdvPjRcMzc3dkE3XDM3N28+NFwzNzdYMClcMzc3IgotICAiJ1wyNlwyMlwzNzJcMFwwXDBOXDBcMFwwXDIwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjIiCi0gICJcMjFcMTFcMTBcMzc3XDMxMVwyMjdcMjE1XDM3N1wyNzR9cVwzNzdcMjQxWktcMzc3XDIzMFRHXDM3N1wyMTRNQVwzNzciCi0gICJcMjAxRzxcMzc3dkE3XDM3N2s7MlwzNzdpOzFcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3dEE2XDM3N1xcMytcMzc3OyIKLSAgIiFcMzNcMzc3XDBcMFwwXlwwXDBcMERcMFwwXDBcMTZcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwyNTVcMjE3T0NcMzc3XDMxMVwyMjdcMjE1XDM3N1wyNjVxY1wzNzdcMjM1V0lcMzc3XDIyMVBEXDM3N1wyMTBLXDc3IgotICAiXDM3N3xFOlwzNzdwPjRcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N2w8M1wzNzd0QTZcMzc3VS8oXDM3N08iCi0gICIsJVwzNzVcMFwwXDBcMzc3XDBcMFwwJVwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDIxXDBcMCIKLSAgIlwwXDM3N1wzMTFcMjI3XDIxNVwzNzdcMjc1fnJcMzc3XDI0NFtMXDM3N1wyMzFVSFwzNzdcMjE1TkJcMzc3XDIwMkg8IgotICAiXDM3N3dCOFwzNzdsPDNcMzc3aTsxXDM3N2k7MVwzNzdrOzJcMzc3aTsxXDM3N3NANlwzNzdcXDMrXDM3NyxcMzBcMjQiCi0gICJcMzc3XDIwMVwyMDFcMjAxXDM3N0koXCJcMzc3XDBcMFwwRlwwXDBcMFwxNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwyMzJcMjE3T0NcMzc3XDMwNFwyMTVcMjAyXDM3N1wyNjVxY1wzNzdcMjM3WEpcMzc3XDIyM1JFXDM3N1wyMTEiCi0gICJMQFwzNzd+RjtcMzc3c0A2XDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N2k7MVwzNzdrOzJcMzc3d0I4XDM3N1UvKFwzNzciCi0gICI0XDM1XDMwXDM3NktLS1wzNzdcMjIwXDIyMFwyMjBcMzc3XDBcMFwwUVwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMjBcMFwwXDBcMzc3XDMxMFwyMjZcMjE0XDM3NVwyNzR9cVwzNzdcMjQ1XFxNXDM3N1wyMzJWSFwzNzdcMjE3IgotICAiT0NcMzc3XDIwM0k9XDM3N3hDOFwzNzdtPTNcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N3FcNzciIjVcMzc3IgotICAiXzQsXDM3Ny1cMzFcMjVcMzc3VlZWXDM2NmdnZ1wzNzczMzNcMzc3XDBcMFwwUVwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMzM1XDIzNVdJXDM3N1wzMDNcMjE0XDIwMVwzNzdcMjY2cmVcMzc3XDI0MFlLXDM3N1wyMjVSRlwzNzciCi0gICJcMjEyTEBcMzc3XDE3N0c7XDM3N3RBNlwzNzdpOzFcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N3ZBN1wzNzciCi0gICJZMSlcMzc3OFwzN1wzMlwzNzdISEhcMzc3XDI3MHdqXDM3N1wwXDBcMFwzNzdcMFwwXDBjXDBcMFwwXDIxXDBcMFwwXDAiCi0gICJcMFwwXDAhXDBcMFwwXDM3N1wzMTBcMjI2XDIxNFwzNzdcMzAwXDIwNXlcMzc3XDI1NGBQXDM3N1wyMzRXSVwzNzdcMjIxIgotICAiUERcMzc3XDIwNko+XDM3N3pEOVwzNzdvPjRcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N209M1wzNzdmOC8iCi0gICJcMzc3L1wzMlwyNlwzNzdnZ2dcMzc3bm5uXDM3N180LFwzNzdcMFwwXDBcMzczXDBcMFwwUlwwXDBcMFwyNVwwXDBcMCIKLSAgIlwwXDBcMFwwXDI0NVwyMzFVSFwzNzdcMzA1XDIyMFwyMDVcMzc3XDI2NG5gXDM3N1wyNDRbTFwzNzdcMjMxVUhcMzc3IgotICAiXDIxNU5CXDM3N1wyMDJIPFwzNzd3QjhcMzc3bDwzXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N2k7MVwzNzd3QjhcMzc3IgotICAiVS8oXDM3NzshXDMzXDM3N1hYWFwzNzdcMjY3dGdcMzc3XDIxXDExXDEwXDM3MlwwXDBcMFwyMzRcMFwwXDBJXDBcMFwwIgotICAiXDE3XDBcMFwwXDEzXDBcMFwwXDM3N1wyNjJ0aFwzMzdcMzAyXDIxMH1cMzc3XDI2MWhZXDM3N1wyMzdYSlwzNzdcMjIzIgotICAiUkVcMzc3XDIxMUxAXDM3N35GO1wzNzdzQDZcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N2k7MVwzNzdnOTAiCi0gICJcMzc3MlwzM1wyN1wzNzdLS0tcMzc3dHR0XDM3N3pFOlwzNzBcMFwwXDBcMzY0XDBcMFwwVVwwXDBcMCtcMFwwXDBcNyIKLSAgIlwwXDBcMFwyMDZcMjQwWUtcMzc3XDMzM1wyNzJcMjY0XDM3NVwzMjRcMjU0XDI0NFwzNzdcMzIwXDI0M1wyMzNcMzc3IgotICAiXDMxNVwyMzdcMjI2XDM3N1wzMTJcMjMxXDIxN1wzNzdcMzA3XDIyNFwyMTFcMzc3XDMwMlwyMTB9XDM3N1wyNjZyZVwzNzciCi0gICJcMjY1cGJcMzc3XDI2NXBiXDM3N1wyNjVwYlwzNzdcMjY1cGJcMzc3XDI2MGZXXDM3N1wyMTRNQVwzNzdJKFwiXDM3NyIKLSAgIl5eXlwzNzdcMjcxeGtcMzc3XDIxXDExXDEwXDM3MlwwXDBcMFwyMzNcMFwwXDBHXDBcMFwwXDIxXDBcMFwwXDFcNlwzIgotICAiXDNcMzMxXDMyMlwyNTBcMjQwXDM3N1QuJ1wzNzdKKSNcMzc3SikjXDM3N0opI1wzNzdKKSNcMzc3SikjXDM3N0opI1wzNzciCi0gICJKKSNcMzc3SikjXDM3N0opI1wzNzdKKSNcMzc3SikjXDM3N0opI1wzNzdHJyFcMzc3Y2NjXDM3N3h4eFwzNzdcMjAySCIKLSAgIjxcMzc3XDBcMFwwXDM2NVwwXDBcMFVcMFwwXDAqXDBcMFwwXDZcMFwwXDBcMFwyNFwxM1wxMVwzNzdcMjcwd2pcMzc3IgotICAiWTEpXDM3N19fX1wzNzN0dHRcMzc3XDIyNlwyMjZcMjI2XDM3N1wyNjFcMjYxXDI2MVwzNzdcMjU3XDI1N1wyNTdcMzc3IgotICAiXDMwNVwzMDVcMzA1XDM3N1wzMTZcMzE2XDMxNlwzNzdcMjcyXDI3MlwyNzJcMzc3XDMwMlwzMDJcMzAyXDM3N1wzMDMiCi0gICJcMzAzXDMwM1wzNzdcMzEzXDMxM1wzMTNcMzc3XDMyMlwzMjJcMzIyXDM3N1wzMzJcMzMyXDMzMlwzNzdcMjI1XDIyNSIKLSAgIlwyMjVcMzc3XDI2NG1fXDM3N1wiXDIzXDIwXDM3MVwwXDBcMFwyMzRcMFwwXDBIXDBcMFwwXDIyXDBcMFwwXDFcMFwwIgotICAiXDBcMFwyMVwxMVwxMFwzNzdcMjQ3XU5cMzc3dkE3XDM3N35+flwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0IgotICAiXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzM3XDMzN1wzMzdcMzc3XDMzN1wzMzdcMzM3XDM3N1wzNjJcMzYyXDM2MlwzNzciCi0gICJcMzc1XDM3NVwzNzVcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDI1MCIKLSAgIlwyNTBcMjUwXDM3N1wyNjVcMjY1XDI2NVwzNzdtbW1cMzc3XDIwMkg8XDM3N1wxXDBcMFwzNzBcMFwwXDBVXDBcMFwwIgotICAiKlwwXDBcMFw2XDBcMFwwXDBcMFwwXDBcMCIiMlwzM1wyN1wzNzdcMjMyVkhcMzc3XDI0N11OXDM3N1wyMjFQRFwzNzciCi0gICJcMTc3RztcMzc3XDMzM1wzMzNcMzMzXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1N1wzNTdcMzU3IgotICAiXDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzM2XDMzNlwzMzZcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNDFcMzQxXDM0MVwzNzciCi0gICJcMzM3XDMzN1wzMzdcMzc3XDM0MlwzNDJcMzQyXDM3N3p6elwzNzdcMjY3c2ZcMzc3JFwyNFwyMVwzNjdcMFwwXDBcMjM0IgotICAiXDBcMFwwSVwwXDBcMFwyMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIiOVwwXDBcMFwzNzdcMTFcNVw0XDM1NCIKLSAgImM4MFwzNjNcMjAzTUJcMzUxXDIxNFFFXDM1N1wyMTdPQ1wzNzdcMjI1UkZcMzc3XDIyN1wyMjdcMjI3XDM3N1wzMzRcMzM0IgotICAiXDMzNFwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzEiCi0gICJcMzc3XDIwNVwyMDVcMjA1XDM3N1wyNDZcMjQ2XDI0NlwzNzdcMzAzXDIxM1wyMDBcMzc3XDJcMVwxXDM3MFwwXDBcMCIKLSAgIlVcMFwwXDAqXDBcMFwwXDdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCZcMFwwXDBlXDBcMFwwIgotICAiXDI3NlwwXDBcMFwzNDZcMFwwXDBcMzYwXDBcMFwwXDM2M2Y6MVwzNzFzQTdcMzcxXDIxNE9DXDM2N1wyMTdRRVwzNjYiCi0gICJcMjIyUURcMzc3XDMyMFwyNDVcMjM0XDM3N1wzNDBcMzQwXDM0MFwzNzdcMzUyXDM1MlwzNTJcMzc3XDMwM1wyMTNcMjAwIgotICAiXDM3NyVcMjVcMjFcMzczXDBcMFwwXDIzNFwwXDBcMEhcMFwwXDBcMjJcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDZcMFwwXDBcMTdcMFwwXDBcMzRcMFwwXDAiIjRcMFwwXDBDXDBcMFwwZ1wwXDBcMFwyNTEiCi0gICJcMFwwXDBcMzQ0XDBcMFwwXDM2MVwwXDBcMFwzNTZTLyhcMzY1ajsyXDM3MVwyMDFJPVwzNzJcMjExTUJcMzY3XDIwNSIKLSAgIkxBXDM1N1wzXDJcMVwzNjdcMFwwXDBVXDBcMFwwK1wwXDBcMFw3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwxMlwwXDBcMFwxNVwwXDBcMFwyMFwwXDBcMFwzMyIKLSAgIlwwXDBcMCIiMFwwXDBcMENcMFwwXDBfXDBcMFwwXDIzNVwwXDBcMFwzMjdcMFwwXDBcMzU2XDBcMFwwXDM1NFwwXDBcMCIKLSAgIlwzNDdcMFwwXDB7XDBcMFwwRlwwXDBcMFwyMVwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwIgotICAiXDEwXDBcMFwwXDE1XDBcMFwwXDIwXDBcMFwwXDMwXDBcMFwwLFwwXDBcMFw3N1wwXDBcMEhcMFwwXDBIXDBcMFwwQFwwIgotICAiXDBcMFwzN1wwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMlwwXDBcMFw3XDBcMFwwXDEzXDBcMFwwXDE2XDBcMFwwXDE2XDBcMFwwXDE0XDBcMFwwXDVcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX2Jvb2tfeWVsbG93KQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYm9va195ZWxsb3dbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX2Jvb2tfeWVsbG93W10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoMjMwNCkgKi8KLSAgIlwwXDBcMTFcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoOTYpICovCi0gICJcMFwwXDBgIgotICAvKiB3aWR0aCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIGhlaWdodCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDAiIjlcMFwwXDBcMzAyXDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM1N1wwXDBcMFwzNTZcMFwwXDBcMzQ2XDBcMFwwXDM0MlwwXDBcMHdcMFwwXDBcMTNcMFwwIgotICAiXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzIoXDQwXDVcMzc3XDM1MlwzMTUiCi0gICJpXDM3N1wzNDRcMzAwQ1wzNzdcMzQyXDI3MzNcMzc3XDM0MVwyNjcmXDM3N1wzMzNcMjYxXDM2XDM3N1wzMTdcMjQ3XDM0IgotICAiXDM3N1wzMDNcMjM1XDMyXDM3N1wyNzBcMjI0XDMxXDM3N1wyNzBcMjI0XDMxXDM3N1wyNzBcMjI0XDMxXDM3N1wyNzAiCi0gICJcMjI0XDMxXDM3N1wyNzBcMjI0XDMxXDM3N1wzMDFcMjM0XDMyXDM3N1wyMzR+XDI1XDM3NypcIlw2XDM3NlwwXDBcMCIKLSAgIi5cMFwwXDBcMTBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDI3M1wzNDNcMjc0IgotICAiNFwzNzdcMzUwXDMxMV1cMzc3XDM0M1wyNzU4XDM3N1wzMTJcMjQzXDMzXDM3N1wyNzNcMjI3XDMyXDM3N1wyNTVcMjE0IgotICAiXDMwXDM3N1wyMzZcMTc3XDI1XDM3N1wyMjB0XDIzXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMjB0XDIzXDM3NyIKLSAgIlwyMjB0XDIzXDM3N1wyMzB7XDI1XDM3N1wyMjB0XDIzXDM3N3JcXFwxN1wzNzcxKFw3XDM3MlwwXDBcME5cMFwwXDBcMjAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMlwyNlwyMlwzXDM3N1wzNTJcMzE2bVwzNzdcMzQ1IgotICAiXDMwMkhcMzc3XDMyMVwyNTBcMzRcMzc3XDMwNFwyMzZcMzNcMzc3XDI2NFwyMjJcMzFcMzc3XDI0NlwyMDZcMjdcMzc3IgotICAiXDIzMHtcMjVcMzc3XDIxMnBcMjNcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjIiCi0gICJcMzc3XDIyN3lcMjRcMzc3d2BcMjBcMzc3TT5cMTJcMzc3XDBcMFwwXlwwXDBcMERcMFwwXDBcMTZcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyNTVcMjcyXDIyNlwzMVwzNzdcMzUyXDMxNm1cMzc3XDM0M1wyNzQ2XDM3NyIKLSAgIlwzMTNcMjQ0XDM0XDM3N1wyNzNcMjI3XDMyXDM3N1wyNTdcMjE1XDMwXDM3N1wyNDFcMjAyXDI2XDM3N1wyMjF1XDI0IgotICAiXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTRxXDIzXDM3N1wyMjciCi0gICJ5XDI0XDM3N25ZXDE3XDM3N2ZSXDE2XDM3NVwwXDBcMFwzNzdcMFwwXDAlXDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMjFcMFwwXDBcMzc3XDM1MlwzMTZtXDM3N1wzNDVcMzAzSlwzNzdcMzI0XDI1M1wzNVwzNzdcMzA2IgotICAiXDI0MFwzM1wzNzdcMjY2XDIyM1wzMVwzNzdcMjUwXDIxMFwyN1wzNzdcMjMyfFwyNVwzNzdcMjE0cVwyM1wzNzdcMjExIgotICAiblwyMlwzNzdcMjExblwyMlwzNzdcMjEycFwyM1wzNzdcMjExblwyMlwzNzdcMjI1eFwyNFwzNzd3YFwyMFwzNzc5LlwxMCIKLSAgIlwzNzdcMjAxXDIwMVwyMDFcMzc3XkxcMTVcMzc3XDBcMFwwRlwwXDBcMFwxNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwyMzJcMjcyXDIyNlwzMVwzNzdcMzUwXDMxMl9cMzc3XDM0M1wyNzQ2XDM3N1wzMTVcMjQ1XDM0XDM3N1wyNzciCi0gICJcMjMyXDMyXDM3N1wyNjFcMjE3XDMwXDM3N1wyNDNcMjAzXDI2XDM3N1wyMjV4XDI0XDM3N1wyMTFuXDIyXDM3N1wyMTEiCi0gICJuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTJwXDIzXDM3N1wyMzJ8XDI1XDM3N25ZXDE3XDM3N0M2XDExIgotICAiXDM3NktLS1wzNzdcMjIwXDIyMFwyMjBcMzc3XDBcMFwwUVwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjAiCi0gICJcMFwwXDBcMzc3XDM1MVwzMTVrXDM3NVwzNDVcMzAySFwzNzdcMzI2XDI1NVwzNVwzNzdcMzEwXDI0MVwzM1wzNzdcMjcyIgotICAiXDIyNlwzMVwzNzdcMjUyXDIxMVwyN1wzNzdcMjM0flwyNVwzNzdcMjE2clwyM1wzNzdcMjExblwyMlwzNzdcMjExblwyMiIKLSAgIlwzNzdcMjExblwyMlwzNzdcMjExblwyMlwzNzdcMjIzd1wyNFwzNzd6Y1wyMVwzNzc7MFwxMFwzNzdWVlZcMzY2Z2dnIgotICAiXDM3NzMzM1wzNzdcMFwwXDBRXDBcMFwwXDIwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzMzVcMzEzXDI0NFwzNFwzNzciCi0gICJcMzUwXDMxMV1cMzc3XDM0M1wyNzU4XDM3N1wzMTdcMjQ3XDM0XDM3N1wzMDFcMjM0XDMyXDM3N1wyNjNcMjIwXDMwXDM3NyIKLSAgIlwyNDVcMjA1XDI2XDM3N1wyMjd5XDI0XDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuIgotICAiXDIyXDM3N1wyMTFuXDIyXDM3N1wyMzB7XDI1XDM3N3NdXDIwXDM3N0k7XDEyXDM3N0hISFwzNzdcMzQ0XDI3N1w3N1wzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwY1wwXDBcMFwyMVwwXDBcMFwwXDBcMFwwIVwwXDBcMFwzNzdcMzUyXDMxNmtcMzc3XDM0NyIKLSAgIlwzMDZSXDM3N1wzMzdcMjY0XDM2XDM3N1wzMTJcMjQzXDMzXDM3N1wyNzNcMjI3XDMyXDM3N1wyNTVcMjE0XDMwXDM3NyIKLSAgIlwyMzZcMTc3XDI1XDM3N1wyMjB0XDIzXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuIgotICAiXDIyXDM3N1wyMTZyXDIzXDM3N1wyMDNqXDIyXDM3Nz0xXDEwXDM3N2dnZ1wzNzdubm5cMzc3emNcMjFcMzc3XDBcMFwwIgotICAiXDM3M1wwXDBcMFJcMFwwXDBcMjVcMFwwXDBcMFwwXDBcMFwyNDVcMzA2XDI0MFwzM1wzNzdcMzUxXDMxM2JcMzc3XDM0MiIKLSAgIlwyNzMzXDM3N1wzMjRcMjUzXDM1XDM3N1wzMDZcMjQwXDMzXDM3N1wyNjZcMjIzXDMxXDM3N1wyNTBcMjEwXDI3XDM3NyIKLSAgIlwyMzJ8XDI1XDM3N1wyMTRxXDIzXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyIgotICAiXDM3N1wyMzJ8XDI1XDM3N25ZXDE3XDM3N00+XDEyXDM3N1hYWFwzNzdcMzQ0XDI3NjtcMzc3XDI1XDIxXDNcMzcyXDAiCi0gICJcMFwwXDIzNFwwXDBcMElcMFwwXDBcMTdcMFwwXDBcMTNcMFwwXDBcMzc3XDMyNlwyNjZEXDMzN1wzNDdcMzA3WFwzNzciCi0gICJcMzQxXDI3MCpcMzc3XDMxNVwyNDVcMzRcMzc3XDI3N1wyMzJcMzJcMzc3XDI2MVwyMTdcMzBcMzc3XDI0M1wyMDNcMjYiCi0gICJcMzc3XDIyNXhcMjRcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjJcMzc3XDIxMSIKLSAgIm5cMjJcMzc3XDIwNWtcMjJcMzc3QTRcMTBcMzc3S0tLXDM3N3R0dFwzNzdcMjM0XDE3N1wzMFwzNzBcMFwwXDBcMzY0IgotICAiXDBcMFwwVVwwXDBcMCtcMFwwXDBcN1wwXDBcMFwyMDZcMzE3XDI0N1wzNFwzNzdcMzYwXDMzNlwyMzZcMzc1XDM1NlwzMzAiCi0gICJcMjEzXDM3N1wzNTVcMzI0flwzNzdcMzU0XDMyMndcMzc3XDM1M1wzMTduXDM3N1wzNTJcMzE0Z1wzNzdcMzQ3XDMwNyIKLSAgIlhcMzc3XDM0M1wyNzU4XDM3N1wzNDNcMjc0NFwzNzdcMzQzXDI3NDRcMzc3XDM0M1wyNzQ0XDM3N1wzNDNcMjc0NFwzNzciCi0gICJcMzQxXDI2NyZcMzc3XDI2NFwyMjJcMzFcMzc3XkxcMTVcMzc3Xl5eXDM3N1wzNDRcMzAwQVwzNzdcMjVcMjFcM1wzNzIiCi0gICJcMFwwXDBcMjMzXDBcMFwwR1wwXDBcMFwyMVwwXDBcMFwxXDdcNlwxXDMzMVwzNTZcMzI2XDIwNVwzNzdsV1wxN1wzNzciCi0gICJgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNSIKLSAgIlwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzddS1wxNFwzNzdjY2NcMzc3eHh4XDM3N1wyNTBcMjEwIgotICAiXDI3XDM3N1wwXDBcMFwzNjVcMFwwXDBVXDBcMFwwKlwwXDBcMFw2XDBcMFwwXDBcMzJcMjVcM1wzNzdcMzQ0XDI3N1w3NyIKLSAgIlwzNzdzXVwyMFwzNzdfX19cMzczdHR0XDM3N1wyMjZcMjI2XDIyNlwzNzdcMjYxXDI2MVwyNjFcMzc3XDI1N1wyNTdcMjU3IgotICAiXDM3N1wzMDVcMzA1XDMwNVwzNzdcMzE2XDMxNlwzMTZcMzc3XDI3MlwyNzJcMjcyXDM3N1wzMDJcMzAyXDMwMlwzNzciCi0gICJcMzAzXDMwM1wzMDNcMzc3XDMxM1wzMTNcMzEzXDM3N1wzMjJcMzIyXDMyMlwzNzdcMzMyXDMzMlwzMzJcMzc3XDIyNSIKLSAgIlwyMjVcMjI1XDM3N1wzNDJcMjcyMVwzNzcsI1w2XDM3MVwwXDBcMFwyMzRcMFwwXDBIXDBcMFwwXDIyXDBcMFwwXDFcMCIKLSAgIlwwXDBcMFwyNlwyMlwzXDM3N1wzMzBcMjU2XDM1XDM3N1wyMzB7XDI1XDM3N35+flwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzNDFcMzQxXDM0MVwzNzdcMzM3XDMzN1wzMzdcMzc3XDMzN1wzMzdcMzM3XDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzc1XDM3NVwzNzVcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDI1MFwyNTBcMjUwXDM3N1wyNjVcMjY1XDI2NVwzNzdtbW1cMzc3XDI1MFwyMTBcMjdcMzc3XDFcMVwwIgotICAiXDM3MFwwXDBcMFVcMFwwXDAqXDBcMFwwXDZcMFwwXDBcMFwwXDBcMFwwQTRcMTBcMzc3XDMxMFwyNDFcMzNcMzc3XDMzMCIKLSAgIlwyNTZcMzVcMzc3XDI3M1wyMjdcMzJcMzc3XDI0NVwyMDVcMjZcMzc3XDMzM1wzMzNcMzMzXDM3N1wzNTJcMzUyXDM1MiIKLSAgIlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzM2XDMzNlwzMzZcMzc3IgotICAiXDM0MVwzNDFcMzQxXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzM3XDMzN1wzMzdcMzc3XDM0MlwzNDJcMzQyXDM3N3p6elwzNzciCi0gICJcMzQzXDI3NTpcMzc3LSVcN1wzNjdcMFwwXDBcMjM0XDBcMFwwSVwwXDBcMFwyMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMCIiOVwwXDBcMFwzNzdcMTNcMTBcMVwzNTR+ZVwyNVwzNjNcMjQzXDIwNiFcMzUxXDI2MFwyMjBcNDBcMzU3IgotICAiXDI3MlwyMjZcMzFcMzc3XDMwMVwyMzRcMzJcMzc3XDIyN1wyMjdcMjI3XDM3N1wzMzRcMzM0XDMzNFwzNzdcMzQ1XDM0NSIKLSAgIlwzNDVcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDIwNVwyMDVcMjA1IgotICAiXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMzUwXDMxMFtcMzc3XDJcMlwwXDM3MFwwXDBcMFVcMFwwXDAqXDBcMFwwXDdcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCZcMFwwXDBlXDBcMFwwXDI3NlwwXDBcMFwzNDZcMFwwXDAiCi0gICJcMzYwXDBcMFwwXDM2M1wyMDJpXDI0XDM3MVwyMjR3XDI2XDM3MVwyNjJcMjIwXDM1XDM2N1wyNjZcMjI0XDM2XDM2NiIKLSAgIlwyNzVcMjMxXDMyXDM3N1wzNTVcMzI1XDIwMFwzNzdcMzQwXDM0MFwzNDBcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTBcMzEwIgotICAiW1wzNzcwJlw2XDM3M1wwXDBcMFwyMzRcMFwwXDBIXDBcMFwwXDIyXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFw2XDBcMFwwXDE3XDBcMFwwXDM0XDBcMFwwIiI0XDBcMFwwQ1wwXDBcMGdcMFwwXDBcMjUxIgotICAiXDBcMFwwXDM0NFwwXDBcMFwzNjFcMFwwXDBcMzU2aVVcMjFcMzY1XDIwN25cMjVcMzcxXDI0NVwyMDZcMzFcMzcyXDI1NyIKLSAgIlwyMTVcMzNcMzY3XDI1MFwyMTFcMzZcMzU3XDRcM1wwXDM2N1wwXDBcMFVcMFwwXDArXDBcMFwwXDdcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwXDEyXDBcMFwwIgotICAiXDE1XDBcMFwwXDIwXDBcMFwwXDMzXDBcMFwwIiIwXDBcMFwwQ1wwXDBcMF9cMFwwXDBcMjM1XDBcMFwwXDMyN1wwXDAiCi0gICJcMFwzNTZcMFwwXDBcMzU0XDBcMFwwXDM0N1wwXDBcMHtcMFwwXDBGXDBcMFwwXDIxXDBcMFwwXDFcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMTBcMFwwXDBcMTVcMFwwXDBcMjBcMFwwXDBcMzBcMFwwXDAsXDBcMFwwXDc3IgotICAiXDBcMFwwSFwwXDBcMEhcMFwwXDBAXDBcMFwwXDM3XDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDdcMFwwXDBcMTNcMFwwXDBcMTZcMFwwIgotICAiXDBcMTZcMFwwXDBcMTRcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfbGluZV9pbikKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX2xpbmVfaW5bXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX2xpbmVfaW5bXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwLS4uXDI1NyMjI1wzNzdcMTBcMTBcMTB4XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDI1XDI1XDI1XDM3N1wzNDVcMzQ1XDM0NlwzNzcjIyNcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwZmZmXDMxNVwzNTZcMzU2XDM1NlwzNzdNTU1cMjE3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDJcMlwyXDMzN1wyNzdcMjc3XDI3N1wzNzdcM1wzXDNcMzI1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzM1wwXDBcMGlcMFwwXDBzXDBcMFwwX1wwXDAiCi0gICJcMD1cMFwwXDAhXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjEiCi0gICJcMjFcMjJcMzc3XDM1NFwzNTRcMzU1XDM3N1wyMlwyMlwyMlwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMGBcMFwwXDBcMjYyXDIxNlwyMTZcMjE2XDI2MFwyMTBcMjEwXDIxMCIKLSAgIlwyMzNUVFRcMjEwJCQkdlwwXDBcMGJcMFwwXDBGXDBcMFwwJlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDAkJCVcMjQzXDI3M1wyNzNcMjczXDM3N1wwXDBcME9cMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjEybGxsXDMyNlwzMTZcMzE2XDMxNlwzMTFcMjQ1XDI0NVwyNDVcMjc0XDAiCi0gICJcMFwwXDI0MlwwXDBcMFwyMTRcMFwwXDB2XDBcMFwwVVwwXDBcMDtcMFwwXDArXDBcMFwwXCJcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzUyXDM1MlwzNTJcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjMwbW1tXDM0N1wzMTZcMzE2XDMxNlwzNDVcMTBcMTBcMTAiCi0gICJcMzEzXDEwXDEwXDEwXDIzMVwwXDBcMEdcMFwwXDA9XDBcMFwwIiIxXDBcMFwwOlwwXDBcMCIiMlwwXDBcMCNcMFwwXDAiCi0gICJcMzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3UlJSXDM3N1wzMzJcMzMyXDMzNFwzNzc9PT1cMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM0M1wyNjVcMjY1XDI2NVwzNjNLSyIKLSAgIktcMzUxXDBcMFwwTVwwXDBcMFwyMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzMiCi0gICJcMFwwXDBcMzVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMzczXDM3M1wzNzNcMzc3XDIzNFwyMzMiCi0gICJcMjM0XDM3N1wzMjRcMzI0XDMyNFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjMxIgotICAiR0dHXDM2MVwyNDRcMjQ0XDI0NFwzNjVcMFwwXDBcMjQyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwzMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDIyMVwyMjEiCi0gICJcMjIxXDM3Nz09PVwzNzc9PT1cMzc3XDM2XDM2XDM2XDM3N1w3N1w3N1w3N1wzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwzMzFfX19cMzY3IyMjXDM2MlwwXDBcMEJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wyMjEiCi0gICJcMjIxXDIyMVwzNzc9PT1cMzc3PT09XDM3N1wzNlwzNlwzNlwzNzdCQkJcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMzQyU1NTXDM1NVwwXDBcMFwzNTNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3IgotICAiXDIyMVwyMjFcMjIxXDM3Nz09PVwzNzc9PT1cMzc3XDM2XDM2XDM2XDM3N0JCQlwzNzdcMFwwXDBcMzc3XDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwzMzBTU1NcMzUzXDBcMFwwXDM1NVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwzNzdcMjIxXDIyMVwyMjFcMzc3PT09XDM3Nz09PVwzNzdcMzZcMzZcMzZcMzc3QkJCXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDI2MicnJ1wzMzJcIlwiXCJcMzY3XDBcMFwwPFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMzc3XDIyMVwyMjFcMjIxXDM3Nz09PVwzNzc9PT1cMzc3XDM2XDM2XDM2XDM3N0JCQlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMERcMFwwXDBcMzE1VVVVXDM2MlwwXDBcMFwzMTNcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDM3N1wyMjFcMjIxXDIyMVwzNzc9PT1cMzc3PT09XDM3N1wzNlwzNlwzNlwzNzdFRUVcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyNDFMTExcMzIyRkZGXDMzNlwwXDBcMFwyMzRcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwzNzdBQUFcMzc3ZGRkXDM3NyUlJVwzNzcsLCxcMzc3PDw8XDM3N1wwXDBcMFwzNzdcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzVcMFwwXDBcMjM2WFhYXDI1N0ZGRlwyNzNcMFwwXDBxXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMzc3XDI1XDI1XDI1XDM3N1w3XDdcN1wzNzcoKChcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiIjlcMFwwXDBcMjA1WlpaXDIzM1wwXDBcMFwyMzZcMFwwXDBiXDBcMCIKLSAgIlwwXCJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMzc3KysrXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMEBcMFwwXDBjWFhYe1wwXDBcMHtcMFwwXDAiIjNcMFwwXDAlXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzMjQiCi0gICIrKytcMzI0XDBcMFwwXDMyNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDAiIjdcMFwwXDBUXDBcMFwwX1wwXDBcMF5cMFwwXDAjXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyNTIrKytcMjUyXDBcMFwwXDI1MiIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMTNcMFwwXDBAXDBcMFwwRlwwXDBcMEpcMFwwXDAiIjJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDE3NysrK1wxNzdcMFwwXDBcMTc3XDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIiIxIgotICAiXDBcMFwwOlw3XDdcN0BcMFwwXDAsXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFUrKytVXDBcMFwwVVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjdcMFwwXDAvXDBcMFwwIiIyXDEwXDEwXDEwIiI1XDAiCi0gICJcMFwwK1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDAqKysrKlwwXDBcMCpcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwyM1wwXDBcMCIiMFwwXDBcMC1cMTRcMTRcMTQtXDBcMFwwK1wwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDAifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX21haWwpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsW10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoMjMwNCkgKi8KLSAgIlwwXDBcMTFcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoOTYpICovCi0gICJcMFwwXDBgIgotICAvKiB3aWR0aCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIGhlaWdodCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDIiCi0gICJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMCIKLSAgIlwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMVwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwZlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwbVwwIgotICAiXDBcMFwxMFwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDM3N1NTU1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NlwzNzZcMzc2XDM3NyIKLSAgIlwzNzVcMzc1XDM3NVwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcwIgotICAiXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NFwzNjQiCi0gICJcMzY0XDM3N1wzNDNcMzQzXDM0M1wzNzdTU1NcMzc3XDBcMFwwXDM3N1wwXDBcMFwzMVwwXDBcMFwxMFwwXDBcMFwxXDAiCi0gICJcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzU2XDM1NlwzNTZcMzc3T09PXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyIgotICAiXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzciCi0gICJcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNDNcMzQzXDM0M1wzNzdPT09cMzc3XDI1NlwyNTZcMjU2XDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDAoXDBcMFwwXDE3XDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzQ0XDM0NFwzNDRcMzc3Q0NDXDM3N1wzNzVcMzc1XDM3NVwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2MlwzNjIiCi0gICJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1NyIKLSAgIlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzQzXDM0M1wzNDNcMzc3IgotICAiT09PXDM3N1wyNTRcMjU0XDI1NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwIgotICAiXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NCIKLSAgIlwzNDRcMzc3T09PXDM3N1wzNzNcMzczXDM3M1wzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwIgotICAiXDM2MFwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU1XDM1NVwzNTUiCi0gICJcMzc3XDM0M1wzNDNcMzQzXDM3N0NDQ1wzNzdcMjQwXDI0MFwyNDBcMzc3XDMyNFwzMjRcMzI0XDM3N1wzMTBcMzEwXDMxMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3M1wzNzNcMzczXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3Q0NDXDM3N1wzNzAiCi0gICJcMzcwXDM3MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NSIKLSAgIlwzNTVcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNDNcMzQzXDM0M1wzNzdPT09cMzc3XDIyNVwyMjVcMjI1XDM3N1wzMjRcMzI0IgotICAiXDMyNFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDAiCi0gICJcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3Pj4+XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzU2IgotICAiXDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzQzXDM0M1wzNDNcMzc3TU1NXDM3N1wyMDEiCi0gICJcMjAxXDIwMVwzNzdcMzA2XDMwNlwzMDZcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMCIKLSAgIlwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzNcMzczXDM3M1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDQiCi0gICJcMzQ0XDM0NFwzNzdqampcMzc3Q0NDXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDNcMzQzIgotICAiXDM3N09PT1wzNzdqampcMzc3XDMwNlwzMDZcMzA2XDM3N1wzMDZcMzA2XDMwNlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NCIKLSAgIlwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwIgotICAiXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzciCi0gICJcMzQ0XDM0NFwzNDRcMzc3Y2NjXDM3N1wzNzdcMzc3XDM3N1wzNzdcMjcxXDI3MVwyNzFcMzc3T09PXDM3N1wzNjBcMzYwIgotICAiXDM2MFwzNzdPT09cMzc3XDIyNVwyMjVcMjI1XDM3N1wzMDZcMzA2XDMwNlwzNzdzc3NcMzc3XDMwNlwzMDZcMzA2XDM3NyIKLSAgIlwzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMCIKLSAgIlwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzczXDM3M1wzNzNcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N2NjY1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzciCi0gICJcMzI0XDMyNFwzMjRcMzc3T09PXDM3N1wyNTRcMjU0XDI1NFwzNzdcMzA2XDMwNlwzMDZcMzc3XDM0NFwzNDRcMzQ0XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzd8fHxcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNDRcMzQ0XDM0NFwzNzdzc3NcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzciCi0gICJ8fHxcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDAiCi0gICJcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3fHx8XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NCIKLSAgIlwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0IgotICAiXDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzd8fHxcMzc3XDMxMFwzMTAiCi0gICJcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3NyIKLSAgInNzc1wzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3IgotICAiXDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzQiCi0gICJcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NCIKLSAgIlwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdjY2NcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwIgotICAiXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBtXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMjA3XDBcMFwwKFwwXDBcMFwxN1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwxMFwwXDBcMFwzMSIKLSAgIlwwXDBcMChcMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMCIKLSAgIi1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAoXDBcMFwwXDMxXDBcMFwwXDEwIgotICAiXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMTBcMFwwXDBcMTZcMFwwXDBcMjFcMFwwXDBcMjEiCi0gICJcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDAiCi0gICJcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMTZcMFwwXDBcMTBcMCIKLSAgIlwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFwyXDBcMFwwIgotICAiXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDAiCi0gICJcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDFcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19tYWlsX2NvbXBvc2UpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsX2NvbXBvc2VbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21haWxfY29tcG9zZVtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wzMjFcMjU3IgotICAiYVwzNzdcMzYxXDM0M1wyNTRcMzc3XDM3M1wyNTFcMTdcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwVlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDI2NVwyNjUiCi0gICJcMjY1XDM3N1wyNDBrXDExXDM3N1wzNjFcMzQzXDI1NFwzNzdcMzczXDI1MVwxN1wzNzdcMjAxYFwwXDM3N1wwXDBcMCIKLSAgIlwzNzdcMzQwXDM0MFwzNDBcMzc3XDMwMVwzMDFcMzAxXDM3N1wwXDBcMFwzNzdcMFwwXDBEXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDBcMFwwXDM3N1wzNDZcMzAzcFwzNzdcMzYxXDMyM1wyMDdcMzc3IgotICAiXDMyNVwyMTdcMTRcMzc3XDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMzAzXDMwM1wzMDNcMzc3XDM3M1wzNzNcMzczIgotICAiXDM3N1wyNTBcMjUwXDI1MFwzNzdcMFwwXDBcMzc3XDBcMFwwVlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wyNjNcMjYzIgotICAiXDI2M1wzNzdcMjQwa1wxMVwzNzdcMzYxXDM0M1wyNTRcMzc3XDM3M1wyNTFcMTdcMzc3XDIwMWBcMFwzNzdcMFwwXDAiCi0gICJcMzc3XDM3MlwzNzJcMzcyXDM3N1wyNTVcMjU1XDI1NVwzNzd2dnZcMzc3XV1dXDM3N0BAQFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczIgotICAiXDM3M1wzNzdcMzcwXDM3MFwzNzBcMzc3XDBcMFwwXDM3N1wzNDZcMzAzcFwzNzdcMzYxXDMyMH5cMzc3XDMyNVwyMTciCi0gICJcMTRcMzc3XDBcMFwwXDM3N1wyNTRcMjU0XDI1NFwzNzdcMzcwXDM3MFwzNjZcMzc3XDM0MlwzNDJcMzQyXDM3N1wyMDUiCi0gICJcMjA1XDIwNVwzNzdLS0lcMzc3XDI2XDI2XDI2XDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1IgotICAiXDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3XDM3M1wzNzNcMzcyXDM3N319fVwzNzdcMjQwa1wxMVwzNzciCi0gICJcMzYxXDM0M1wyNTRcMzc3XDM3M1wyNTFcMTdcMzc3XDIwMWBcMFwzNzdcMFwwXDBcMzc3XDM2NFwzNjRcMzY0XDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzMjVcMzI1XDMyNVwzNzdcMjU1IgotICAiXDI1NVwyNTVcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3NyIKLSAgIlwzNjZcMzY2XDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDBcMFwwXDM3N1wzNDZcMzAzcFwzNzdcMzYxXDMyMH5cMzc3IgotICAiXDMyNVwyMTdcMTRcMzc3XDBcMFwwXDM3N1wyMDdcMjA3XDIwNlwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0MlwzNDJcMzQyIgotICAiXDM3N1wzMzdcMzM3XDMzN1wzNzdcMzUzXDM1M1wzNTNcMzc3XDM0MlwzNDJcMzQyXDM3N1wzMDFcMzAxXDMwMVwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MCIKLSAgIlwzNjBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzY2IgotICAiXDM3N1wyNTZcMjU2XDI1NlwzNzd7U1w3XDM3N1wzNjFcMzQzXDI1NFwzNzdcMzczXDI1MVwxN1wzNzdcMjAxYFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTNcMzUzXDM1MVwzNzdcMzUxXDM1MVwzNDciCi0gICJcMzc3XDM1MVwzNTFcMzQ3XDM3N1wzNDBcMzQwXDMzNlwzNzdcMjc3XDI3N1wyNzdcMzc3XDBcMFwwXDM3N1wwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMFwwXDBcMzc3XDM0NiIKLSAgIlwzMDNwXDM3N1wzNjFcMzIyXDIwNFwzNzdcMzEyXDIwN1wxM1wzNzdcMFwwXDBcMzc3XDIzNlwyMzZcMjM0XDM3N1wzMzQiCi0gICJcMzM0XDMzMVwzNzdcMzMxXDMzMVwzMzFcMzc3XDMzMVwzMzFcMzI2XDM3N1wzMjZcMzI2XDMyNFwzNzdcMzQ1XDM0NSIKLSAgIlwzNDRcMzc3XDMzMVwzMzFcMzI3XDM3N1wyNzJcMjcyXDI3MlwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzU1XDM1NVwzNTVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjQiCi0gICJcMzY0XDM2NFwzNzdcMzYyXDM2MlwzNjJcMzc3XDI1MlwyNTJcMjUyXDM3N1wyNDBrXDExXDM3N1wzNjFcMzQzXDI1NCIKLSAgIlwzNzdcMzczXDI1MVwxN1wzNzdcMjAxYFwwXDM3N1wwXDBcMFwzNzdcMzQ3XDM0N1wzNDVcMzc3XDM0NVwzNDVcMzQ0IgotICAiXDM3N1wzNDVcMzQ1XDM0NFwzNzdcMzQ0XDM0NFwzNDJcMzc3XDM0MFwzNDBcMzM2XDM3N1wzNDJcMzQyXDM0MFwzNzciCi0gICJcMzMxXDMzMVwzMjdcMzc3XDI3MlwyNzJcMjcyXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU2XDM1NlwzNTRcMzc3XDM0N1wzNDdcMzQ1IgotICAiXDM3N1wzNDVcMzQ1XDM0NVwzNzdcMFwwXDBcMzc3XDM0NlwzMDNwXDM3N1wzNjFcMzIyXDIwNFwzNzdcMzEyXDIwN1wxMyIKLSAgIlwzNzdcMFwwXDBcMzc3XDIyN1wyMjdcMjI2XDM3N1wzMjRcMzI0XDMyMVwzNzdcMzQyXDM0MlwzNDBcMzc3XDM0MFwzNDAiCi0gICJcMzM2XDM3N1wzMzZcMzM2XDMzNFwzNzdcMzM2XDMzNlwzMzNcMzc3XDMzNlwzMzZcMzM0XDM3N1wzMzFcMzMxXDMyNyIKLSAgIlwzNzdcMjc1XDI3NVwyNzRcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM0N1wzNDdcMzQ3XDM3N1wzNTdcMzU3XDM1NVwzNzdcMzUzXDM1M1wzNTNcMzc3XDI0NlwyNDYiCi0gICJcMjQ1XDM3N1wyNzJ8XDEyXDM3N1wzNzNcMjUxXDE3XDM3N1wzNzNcMjUxXDE3XDM3N3pbXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwzNDJcMzQyXDM0MFwzNzdcMzQwXDM0MFwzMzZcMzc3XDMzNlwzMzZcMzM0XDM3N1wzMzZcMzM2XDMzM1wzNzdcMzM0IgotICAiXDMzNFwzMzFcMzc3XDMzM1wzMzNcMzMxXDM3N1wzMzNcMzMzXDMzMVwzNzdcMzI1XDMyNVwzMjNcMzc3XDI3NFwyNzQiCi0gICJcMjc0XDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNDVcMzQ1XDM0NVwzNzdcMzQzXDM0M1wzNDNcMzc3XDMzMVwzMzFcMzMxXDM3N1wwXDBcMFwzNzdcMzYyXDM0NlwyNjYiCi0gICJcMzc3e3t7XDM3N3BLXDVcMzc3XDBcMFwwXDM3N2dnZFwzNzdcMzEzXDMxM1wzMDdcMzc3XDMxMVwzMTFcMzA3XDM3NyIKLSAgIlwzMzRcMzM0XDMzMVwzNzdcMzMzXDMzM1wzMjdcMzc3XDMzMVwzMzFcMzI3XDM3N1wzMjdcMzI3XDMyNVwzNzdcMzMxIgotICAiXDMzMVwzMjdcMzc3XDMyN1wzMjdcMzIzXDM3N1wyNjRcMjY0XDI2NFwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzQyXDM0MlwzNDBcMzc3XDM0NVwzNDVcMzQ0XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdcMFwwXDBcMzc3XDMzM1wzMjVcMzAxXDM3N35vV1wzNzd1WFwwXDM3N1wwXDBcMFwzNzdcMzM0IgotICAiXDMzNFwzMzFcMzc3XDMzM1wzMzNcMzMxXDM3N1wzMzNcMzMzXDMyN1wzNzdcMzMxXDMzMVwzMjVcMzc3XDMyN1wzMjciCi0gICJcMzIzXDM3N1wzMjVcMzI1XDMyM1wzNzdcMzI1XDMyNVwzMjFcMzc3XDMyN1wzMjdcMzIzXDM3N1wzMjBcMzIwXDMxNiIKLSAgIlwzNzdcMjcyXDI3MlwyNzBcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDMzNlwzMzZcMzM0XDM3N1wzMzVcMzM1XDMzM1wzNzdcMzIxXDMyMVwzMTdcMzc3XDE2XDE2XDE2IgotICAiXDM3N1NTU1wzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wyMTVcMjE1XDIxM1wzNzdcMzA0XDMwNFwzMDFcMzc3XDMwNFwzMDQiCi0gICJcMjc3XDM3N1wzMDFcMzAxXDI3NFwzNzdcMzI1XDMyNVwzMjFcMzc3XDMyNVwzMjVcMzIxXDM3N1wzMjNcMzIzXDMyMCIKLSAgIlwzNzdcMzIxXDMyMVwzMjBcMzc3XDMyM1wzMjNcMzIwXDM3N1wzMjBcMzIwXDMxNlwzNzdcMjcyXDI3MlwyNzBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDMzNFwzMzQiCi0gICJcMzMzXDM3N1wzNDBcMzQwXDMzNFwzNzdcMzM1XDMzNVwzMzNcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMjExXDIxMSIKLSAgIlwyMDdcMzc3XDMxMVwzMTFcMzA2XDM3N1wzMTVcMzE1XDMxMlwzNzdcMzIwXDMyMFwzMTVcMzc3XDMxNlwzMTZcMzEzIgotICAiXDM3N1wzMjBcMzIwXDMxNVwzNzdcMzIwXDMyMFwzMTVcMzc3XDMyMFwzMjBcMzE1XDM3N1wzMjBcMzIwXDMxNVwzNzciCi0gICJcMzE3XDMxN1wzMTRcMzc3XDMyMFwzMjBcMzE1XDM3N1wzMjBcMzIwXDMxNFwzNzdcMjY2XDI2NlwyNjZcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDMzM1wzMzNcMzMxIgotICAiXDM3N1wzMjRcMzI0XDMyMFwzNzdcMzAzXDMwM1wzMDBcMzc3W1tbXDM3N1wyMjFcMjIxXDIxNVwzNzdcMjIxXDIyMVwyMTciCi0gICJcMzc3XDIzN1wyMzdcMjM1XDM3N1wyNTdcMjU3XDI1NFwzNzdcMjcxXDI3MVwyNjZcMzc3XDI3NlwyNzZcMjczXDM3NyIKLSAgIlwzMDNcMzAzXDMwMFwzNzdcMzA1XDMwNVwzMDJcMzc3XDMxMFwzMTBcMzA1XDM3N1wzMTJcMzEyXDMwN1wzNzdcMzEzIgotICAiXDMxM1wzMTBcMzc3XDMxNFwzMTRcMzExXDM3N1wzMTRcMzE0XDMxMFwzNzdcMjYyXDI2MlwyNjJcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDMyMlwzMjJcMzIwXDM3N1wzMjIiCi0gICJcMzIyXDMxN1wzNzdcMzE3XDMxN1wzMTRcMzc3XDI3N1wyNzdcMjc1XDM3N1wyMzdcMjM3XDIzNFwzNzdcMjEwXDIxMCIKLSAgIlwyMDZcMzc3XDIwN1wyMDdcMjA1XDM3N1wyMTRcMjE0XDIxMlwzNzdcMjI1XDIyNVwyMjNcMzc3XDIzNFwyMzRcMjMyIgotICAiXDM3N1wyNTBcMjUwXDI0NVwzNzdcMjYxXDI2MVwyNTZcMzc3XDI2NVwyNjVcMjYzXDM3N1wyNzNcMjczXDI3MFwzNzciCi0gICJcMjc2XDI3NlwyNzNcMzc3XDI3N1wyNzdcMjc0XDM3N1wzMDJcMzAyXDI3NlwzNzdcMjYyXDI2MlwyNjJcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDMyMVwzMjFcMzE2IgotICAiXDM3N1wzMjBcMzIwXDMxNFwzNzdcMzE0XDMxNFwzMTFcMzc3XDMxN1wzMTdcMzE0XDM3N1wzMDNcMzAzXDMwMFwzNzciCi0gICJcMjU2XDI1NlwyNTNcMzc3XDIzNVwyMzVcMjMyXDM3N1wyMjdcMjI3XDIyNFwzNzdcMjI3XDIyN1wyMjRcMzc3XDIyNCIKLSAgIlwyMjRcMjIxXDM3N1wyMzJcMjMyXDIyN1wzNzdcMjM3XDIzN1wyMzRcMzc3XDI0M1wyNDNcMjQwXDM3N1wyNTBcMjUwIgotICAiXDI0NVwzNzdcMjUyXDI1MlwyNDdcMzc3XDI2MFwyNjBcMjU0XDM3N1wyNzBcMjcwXDI2NVwzNzdcMjYwXDI2MFwyNTYiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDMyMiIKLSAgIlwzMjJcMzE3XDM3N1wzMjFcMzIxXDMxNlwzNzdcMzIxXDMyMVwzMTZcMzc3XDMyMVwzMjFcMzE2XDM3N1wzMTdcMzE3IgotICAiXDMxNVwzNzdcMzEzXDMxM1wzMTBcMzc3XDI3NlwyNzZcMjc0XDM3N1wyNjRcMjY0XDI2MFwzNzdcMjU0XDI1NFwyNTAiCi0gICJcMzc3XDI0NFwyNDRcMjQyXDM3N1wyNDBcMjQwXDIzNFwzNzdcMjQwXDI0MFwyMzRcMzc3XDI0NFwyNDRcMjQwXDM3NyIKLSAgIlwyNDRcMjQ0XDI0MlwzNzdcMjUwXDI1MFwyNDZcMzc3XDI1M1wyNTNcMjQ3XDM3N1wyNjJcMjYyXDI1NlwzNzdcMjQ0IgotICAiXDI0NFwyNDRcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDMyMVwzMjFcMzIwXDM3N1wzMjFcMzIxXDMxNlwzNzdcMzIwXDMyMFwzMTZcMzc3XDMxNlwzMTZcMzE0XDM3NyIKLSAgIlwzMTZcMzE2XDMxMlwzNzdcMzE2XDMxNlwzMTJcMzc3XDMxNFwzMTRcMzEwXDM3N1wzMDZcMzA2XDMwMlwzNzdcMjc0IgotICAiXDI3NFwyNzFcMzc3XDI2M1wyNjNcMjU3XDM3N1wyNjRcMjY0XDI2MFwzNzdcMjUzXDI1M1wyNTFcMzc3XDI0NlwyNDYiCi0gICJcMjQzXDM3N1wyNDBcMjQwXDIzNVwzNzdcMjQ2XDI0NlwyNDNcMzc3XDI1MlwyNTJcMjQ3XDM3N1wyNTRcMjU0XDI1MSIKLSAgIlwzNzdcMjQxXDI0MVwyNDFcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDI2MVwyNjFcMjU3XDM3N1wyNjRcMjY0XDI2M1wzNzdcMjY0XDI2NFwyNjFcMzc3XDI2NFwyNjQiCi0gICJcMjYxXDM3N1wyNjRcMjY0XDI2MVwzNzdcMjYzXDI2M1wyNjFcMzc3XDI2M1wyNjNcMjYxXDM3N1wyNjJcMjYyXDI1NiIKLSAgIlwzNzdcMjU2XDI1NlwyNTJcMzc3XDI0N1wyNDdcMjQ0XDM3N1wyNDJcMjQyXDI0MFwzNzdcMjQ1XDI0NVwyNDFcMzc3IgotICAiXDI0NVwyNDVcMjQxXDM3N1wyMzFcMjMxXDIyN1wzNzdcMjIyXDIyMlwyMjBcMzc3XDIyNFwyMjRcMjIwXDM3N1wyMzUiCi0gICJcMjM1XDIzM1wzNzdcMjA1XDIwNVwyMDNcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwclwwXDAiCi0gICJcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19tYWlsX2ZvcndhcmQpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsX2ZvcndhcmRbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21haWxfZm9yd2FyZFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxIgotICAiXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDAiCi0gICJcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMiIKLSAgIlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBmXDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBtXDBcMFwwXDEwXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMzc3IgotICAiU1NTXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc2XDM3NlwzNzZcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzRcMzc0XDM3NFwzNzdcMzczXDM3M1wzNzNcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM0M1wzNDNcMzQzXDM3N1NTU1wzNzdcMFwwXDBcMzc3XDBcMFwwXDMxXDAiCi0gICJcMFwwXDEwXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNTZcMzU2XDM1NlwzNzdPT09cMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjJcMzYyIgotICAiXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM0M1wzNDNcMzQzXDM3NyIKLSAgIk9PT1wzNzdcMjU2XDI1NlwyNTZcMzc3XDBcMFwwXDM3N1wwXDBcMChcMFwwXDBcMTdcMFwwXDBcMlwwXDBcMFwwXDBcMCIKLSAgIlwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3XDM3NVwzNzVcMzc1XDM3NyIKLSAgIlwzNjNcMzYzXDM2M1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwIgotICAiXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTUiCi0gICJcMzU1XDM3N1wzNDNcMzQzXDM0M1wzNzdPT09cMzc3XDI1NFwyNTRcMjU0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdPT09cMzc3XDM3M1wzNzNcMzczXDM3N1wzNjFcMzYxXDM2MVwzNzciCi0gICJcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NSIKLSAgIlwzNTVcMzU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzQzXDM0M1wzNDNcMzc3Q0NDXDM3N1wyNDBcMjQwXDI0MFwzNzdcMzI0IgotICAiXDMyNFwzMjRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDAiCi0gICJcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzczXDM3M1wzNzNcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzU3XDM1N1wzNTdcMzc3IgotICAiXDM1NlwzNTZcMzU2XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzciCi0gICJcMjI1XDIyNVwyMjVcMzc3XDMyNFwzMjRcMzI0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzciCi0gICI+Pj5cMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NFwzNTRcMzU0XDM3NyIKLSAgIlwzNDNcMzQzXDM0M1wzNzdNTU1cMzc3XDIwMVwyMDFcMjAxXDM3N1wzMDZcMzA2XDMwNlwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDAiCi0gICJcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3M1wzNzNcMzczXDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N2pqalwzNzdDQ0NcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTQiCi0gICJcMzU0XDM1NFwzNzdcMzQzXDM0M1wzNDNcMzc3T09PXDM3N2pqalwzNzdcMzA2XDMwNlwzMDZcMzc3XDMwNlwzMDZcMzA2IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMFwwXDBcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwIgotICAiXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdjY2NcMzc3XDM3N1wzNzdcMzc3XDM3N1wyNzFcMjcxXDI3MVwzNzciCi0gICJPT09cMzc3XDM2MFwzNjBcMzYwXDM3N09PT1wzNzdcMjI1XDIyNVwyMjVcMzc3XDMwNlwzMDZcMzA2XDM3N3Nzc1wzNzciCi0gICJcMzA2XDMwNlwzMDZcMzc3XDM2NVwzNjVcMzY1XDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMCIKLSAgIi1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzNcMzczIgotICAiXDM3M1wzNzdcMzQ0XDM0NFwzNDRcMzc3Y2NjXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDQiCi0gICJcMzQ0XDM3N1wzMjRcMzI0XDMyNFwzNzdPT09cMzc3XDI1NFwyNTRcMjU0XDM3N1wzMDZcMzA2XDMwNlwzNzdcMzQ0XDM0NCIKLSAgIlwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N3x8fFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDBcMFwwXDM3N1tcMjEwXDI2MlwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM0NFwzNDRcMzQ0XDM3N3Nzc1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDIzNlwyNzBcMzIxIgotICAiXDM3N1BcMjAwXDI1NVwzNzdcMFwwXDBcMzc3XDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzd8fHxcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wwXDAiCi0gICJcMFwzNzdcMjY1XDMxMVwzMzRcMzc3XDI1N1wzMDVcMzMyXDM3N1wyNjJcMzA3XDMzM1wzNzdcMjY2XDMxMlwzMzVcMzc3IgotICAiXDI2NlwzMTJcMzM1XDM3N1wyNjZcMzEyXDMzNVwzNzdcMjQ0XDI3NVwzMjVcMzc3XDIzNFwyNjdcMzIxXDM3N1BcMjAwIgotICAiXDI1NVwzNzdcMTBcMTVcMjFcMzc3XDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N3Nzc1wzNzdcMjc0XDI3NCIKLSAgIlwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0IgotICAiXDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wwXDBcMFwzNzdcMjMzXDI2NiIKLSAgIlwzMjBcMzc3XDI0MFwyNzJcMzIzXDM3N1wyMzRcMjY3XDMyMVwzNzdcMjM0XDI2N1wzMjFcMzc3XDIzM1wyNjZcMzIwIgotICAiXDM3N1wyMzJcMjY1XDMxN1wzNzdcMjQwXDI3MlwzMjNcMzc3XDIzNFwyNjdcMzIxXDM3N1wyMjdcMjYzXDMxNlwzNzciCi0gICJfXDIxM1wyNjRcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDJcMFwwXDBtXDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wyMjFcMjYwXDMxNFwzNzdcMjM2XDI3MFwzMjFcMzc3XDIzMlwyNjVcMzE3XDM3N1wyMzJcMjY1XDMxNyIKLSAgIlwzNzdcMjMzXDI2NlwzMjBcMzc3XDIzNFwyNjdcMzIxXDM3N1wyMzRcMjY3XDMyMVwzNzdcMjM0XDI2N1wzMjFcMzc3IgotICAiXDI0MFwyNzJcMzIzXDM3N1wyMjVcMjYyXDMxNlwzNzdMeVwyNDNcMzc3XDBcMFwwXDM3N1wwXDBcMFwxXDBcMFwwXDEwIgotICAiXDBcMFwwXDMxXDBcMFwwKFwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwIgotICAiXDBcMzc3SXRcMjM0XDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2UiCi0gICJcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3NypDW1wzNzdcMFwwXDBcMzc3XDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDEwXDBcMFwwXDE2XDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxIgotICAiXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDM3N0VvXDIyNlwzNzc3WXhcMzc3N1l4XDM3NzdZeFwzNzciCi0gICI3WXhcMzc3N1l4XDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3NypDW1wzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMCIKLSAgIlwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDc3ZVwyMTBcMzc3KkNbXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDM3NypDW1wzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzciCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX21haWxfcmVjZWl2ZSkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21haWxfcmVjZWl2ZVtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfbWFpbF9yZWNlaXZlW10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoMjMwNCkgKi8KLSAgIlwwXDBcMTFcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoOTYpICovCi0gICJcMFwwXDBgIgotICAvKiB3aWR0aCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIGhlaWdodCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMzc3XDMxMVwzMzNcMzA3XDM3N1wzMTFcMzMyXDMwN1wzNzdcMzExXDMzMlwzMDdcMzc3XDIwMVwyMzJ5XDM3NyIKLSAgIlh1TVwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMjYyXDMxMVwyNjBcMzc3XDI1MVwzMDRcMjQ3XDM3N1wyNTVcMzEwXDI1MyIKLSAgIlwzNzdbeVBcMzc3TWdEXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wyNzNcMzIwXDI3MVwzNzdcMjU2XDMwN1wyNTRcMzc3IgotICAiXDI1NlwzMDdcMjU0XDM3N1t5UFwzNzdNZ0RcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzI0XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDI3MVwzMTZcMjY3IgotICAiXDM3N1wyNTZcMzA3XDI1NFwzNzdcMjUyXDMwN1wyNTBcMzc3W3lQXDM3N01nRFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzMTVcMzM2XDMxMyIKLSAgIlwzNzdcMjYxXDMxMVwyNjBcMzc3XDI2NVwzMTZcMjY1XDM3N1wyNjBcMzExXDI2MFwzNzdcMjU1XDMwNlwyNTNcMzc3IgotICAiW3lQXDM3N1t5UFwzNzdbeVBcMzc3TWhEXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMCIKLSAgIlwwXDBcMlwwXDBcMFwyXDBcMFwwXDM3N1wzMTVcMzM2XDMxM1wzNzdcMjY0XDMxM1wyNjJcMzc3XDI2M1wzMTJcMjYxIgotICAiXDM3N1wyNTVcMzA2XDI1M1wzNzdbeVBcMzc3W3lQXDM3N01oRFwzNzdcMFwwXDBcMzc3XDBcMFwwXDJcMFwwXDBcMlwwIgotICAiXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJmXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDMxNVwzMzYiCi0gICJcMzEzXDM3N1wyNTJcMzA3XDI1MFwzNzdcMjYwXDMwN1wyNTZcMzc3W3lQXDM3N01oRFwzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBtXDBcMFwwXDEwXDBcMFwwIgotICAiXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMzc3U1NTXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc2XDM3NlwzNzZcMzc3XDBcMFwwXDM3N1wzMTVcMzM2IgotICAiXDMxM1wzNzdcMjU1XDMxMFwyNTNcMzc3VHFKXDM3N1wwXDBcMFwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NlwzNjZcMzY2IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM0M1wzNDNcMzQzXDM3N1NTU1wzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDMxXDBcMFwwXDEwXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNTZcMzU2XDM1NlwzNzciCi0gICJPT09cMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjNcMzYzXDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMFwwXDBcMzc3XDMxN1wzMzdcMzE0XDM3N1wwXDBcMFwzNzdcMzYwXDM2MFwzNjBcMzc3IgotICAiXDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzciCi0gICJcMjU2XDI1NlwyNTZcMzc3XDBcMFwwXDM3N1wwXDBcMChcMFwwXDBcMTdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMCIKLSAgIlwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjFcMzYxXDM2MVwzNzctLS1cMzc3XDM1N1wzNTciCi0gICJcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNDNcMzQzXDM0MyIKLSAgIlwzNzdPT09cMzc3XDI1NFwyNTRcMjU0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMSIKLSAgIlwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDQiCi0gICJcMzQ0XDM0NFwzNzdPT09cMzc3XDM3M1wzNzNcMzczXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTVcMzU1IgotICAiXDM1NVwzNzdcMzQzXDM0M1wzNDNcMzc3Q0NDXDM3N1wyNDBcMjQwXDI0MFwzNzdcMzI0XDMyNFwzMjRcMzc3XDMxMFwzMTAiCi0gICJcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzczXDM3M1wzNzNcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3IgotICAiXDM3MFwzNzBcMzcwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTUiCi0gICJcMzU1XDM1NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzdcMjI1XDIyNVwyMjVcMzc3XDMyNCIKLSAgIlwzMjRcMzI0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjEiCi0gICJcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1IgotICAiXDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzc+Pj5cMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTYiCi0gICJcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNDNcMzQzXDM0M1wzNzdNTU1cMzc3XDIwMSIKLSAgIlwyMDFcMjAxXDM3N1wzMDZcMzA2XDMwNlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwIgotICAiXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3M1wzNzNcMzczXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NCIKLSAgIlwzNDRcMzQ0XDM3N2pqalwzNzdDQ0NcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzQzXDM0M1wzNDMiCi0gICJcMzc3T09PXDM3N2pqalwzNzdcMzA2XDMwNlwzMDZcMzc3XDMwNlwzMDZcMzA2XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0IgotICAiXDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDAiCi0gICJcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdjY2NcMzc3XDM3N1wzNzdcMzc3XDM3N1wyNzFcMjcxXDI3MVwzNzdPT09cMzc3XDM2MFwzNjAiCi0gICJcMzYwXDM3N09PT1wzNzdcMjI1XDIyNVwyMjVcMzc3XDMwNlwzMDZcMzA2XDM3N3Nzc1wzNzdcMzA2XDMwNlwzMDZcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwIgotICAiXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzNcMzczXDM3M1wzNzciCi0gICJcMzQ0XDM0NFwzNDRcMzc3Y2NjXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3NyIKLSAgIlwzMjRcMzI0XDMyNFwzNzdPT09cMzc3XDI1NFwyNTRcMjU0XDM3N1wzMDZcMzA2XDMwNlwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N3x8fFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM0NFwzNDRcMzQ0XDM3N3Nzc1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDQiCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3NyIKLSAgInx8fFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMCIKLSAgIlwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzd8fHxcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0IgotICAiXDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDQiCi0gICJcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N3x8fFwzNzdcMzEwXDMxMCIKLSAgIlwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3IgotICAic3NzXDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzciCi0gICJcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NCIKLSAgIlwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0IgotICAiXDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N2NjY1wzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDAiCi0gICJcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMG1cMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwyMDdcMFwwXDAoXDBcMFwwXDE3XDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDEwXDBcMFwwXDMxIgotICAiXDBcMFwwKFwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwIgotICAiLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMChcMFwwXDBcMzFcMFwwXDBcMTAiCi0gICJcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwxMFwwXDBcMFwxNlwwXDBcMFwyMVwwXDBcMFwyMSIKLSAgIlwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMCIKLSAgIlwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwxNlwwXDBcMFwxMFwwIgotICAiXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDJcMFwwXDAiCi0gICJcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMCIKLSAgIlwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMVwwXDBcMFwwXDBcMFwwIgotICAiXDAifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX21haWxfcmVwbHkpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsX3JlcGx5W10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsX3JlcGx5W10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoMjMwNCkgKi8KLSAgIlwwXDBcMTFcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoOTYpICovCi0gICJcMFwwXDBgIgotICAvKiB3aWR0aCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIGhlaWdodCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMCIKLSAgIlwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyIgotICAiXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBmXDBcMFwwIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBtXDBcMFwwXDEwXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDFcMFwwXDBcMzc3U1NTXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc2XDM3NlwzNzZcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzRcMzc0XDM3NFwzNzciCi0gICJcMzczXDM3M1wzNzNcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NiIKLSAgIlwzNjZcMzY2XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM0M1wzNDNcMzQzXDM3N1NTU1wzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDMxXDBcMFwwXDEwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNTZcMzU2IgotICAiXDM1NlwzNzdPT09cMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjBcMzYwXDM2MCIKLSAgIlwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3IgotICAiXDM0M1wzNDNcMzQzXDM3N09PT1wzNzdcMjU2XDI1NlwyNTZcMzc3XDBcMFwwXDM3N1wwXDBcMChcMFwwXDBcMTdcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3IgotICAiXDM3NVwzNzVcMzc1XDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjEiCi0gICJcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU2XDM1NiIKLSAgIlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNDNcMzQzXDM0M1wzNzdPT09cMzc3XDI1NFwyNTRcMjU0XDM3N1wzMTBcMzEwIgotICAiXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdPT09cMzc3XDM3M1wzNzNcMzczXDM3NyIKLSAgIlwzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU2IgotICAiXDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzQzXDM0M1wzNDNcMzc3Q0NDXDM3N1wyNDAiCi0gICJcMjQwXDI0MFwzNzdcMzI0XDMyNFwzMjRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzczXDM3M1wzNzNcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDMiCi0gICJcMzQzXDM3N09PT1wzNzdcMjI1XDIyNVwyMjVcMzc3XDMyNFwzMjRcMzI0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMCIKLSAgIlwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDQiCi0gICJcMzQ0XDM0NFwzNzc+Pj5cMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NCIKLSAgIlwzNTRcMzU0XDM3N1wzNDNcMzQzXDM0M1wzNzdNTU1cMzc3XDIwMVwyMDFcMjAxXDM3N1wzMDZcMzA2XDMwNlwzNzdcMzQ0IgotICAiXDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMSIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3M1wzNzNcMzczXDM3Nz1cMzIiCi0gICJcMjNcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdqampcMzc3Q0NDXDM3N1wzNjNcMzYzXDM2M1wzNzciCi0gICJcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzdqampcMzc3XDMwNlwzMDZcMzA2XDM3N1wzMDZcMzA2IgotICAiXDMwNlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwLVwwXDBcMFwyMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdcMzQ0XDM0NFwzNDRcMzc3Y2NjXDM3N1wzNzdcMzc3XDM3N1wzNzdcMjcxXDI3MVwyNzFcMzc3IgotICAiT09PXDM3N1wzNjBcMzYwXDM2MFwzNzdPT09cMzc3XDIyNVwyMjVcMjI1XDM3N1wzMDZcMzA2XDMwNlwzNzdzc3NcMzc3IgotICAiXDMwNlwzMDZcMzA2XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wwXDBcMFwzNzdcMzUyIgotICAiXDMwMFwyNzJcMzc3XDBcMFwwXDM3N2NjY1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0IgotICAiXDM0NFwzNzdcMzI0XDMyNFwzMjRcMzc3T09PXDM3N1wyNTRcMjU0XDI1NFwzNzdcMzA2XDMwNlwzMDZcMzc3XDM0NFwzNDQiCi0gICJcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzd8fHxcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMCIKLSAgIlwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3IgotICAiXDM1MlwzMDBcMjcyXDM3N1wzMzdcMjM2XDIyNVwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1IgotICAiXDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzd8fHxcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTAiCi0gICJcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM1MiIKLSAgIlwzMDBcMjcyXDM3N1wzNDBcMjQxXDIzMFwzNzdcMzQxXDI0NVwyMzVcMzc3XDM0MlwyNDdcMjM2XDM3N1wzNDNcMjUzIgotICAiXDI0M1wzNzdcMzQyXDI0N1wyMzZcMzc3XDM0M1wyNTJcMjQyXDM3N1wzMzdcMjM2XDIyNVwzNzdcMzE0YlNcMzc3XDAiCi0gICJcMFwwXDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NCIKLSAgIlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N3x8fFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMFwwXDBcMFwzNzdcMzUyXDMwMFwyNzJcMzc3XDMzNVwyMjdcMjE1XDM3N1wzMzciCi0gICJcMjM3XDIyN1wzNzdcMzM3XDIzNlwyMjVcMzc3XDMzNlwyMzJcMjIwXDM3N1wzMzVcMjI2XDIxNFwzNzdcMzM1XDIyNiIKLSAgIlwyMTRcMzc3XDMzNlwyMzJcMjIwXDM3N1wzMzVcMjI0XDIxMlwzNzdcMjYxQzRcMzc3XDBcMFwwXDM3N1wyNzRcMjc0IgotICAiXDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzQiCi0gICJcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdjY2NcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjEiCi0gICJDXDMxXDIzXDM3N1wzNTJcMzAyXDI3NFwzNzdcMzM2XDIzMlwyMjBcMzc3XDMzN1wyMzRcMjIyXDM3N1wzMzVcMjMxXDIxNyIKLSAgIlwzNzdcMzM1XDIzMVwyMTdcMzc3XDMzNVwyMjdcMjE1XDM3N1wzMzZcMjMyXDIyMFwzNzdcMzM2XDIzMlwyMjBcMzc3IgotICAiXDMzNlwyMzJcMjIwXDM3N1wzMzZcMjMyXDIyMFwzNzdcMjY1RTVcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDIwN1wwXDBcMChcMFwwXDBcMTdcMFwwXDBcMFwwXDBcMFwzNzdlJlwzNVwzNzdcMjMwOixcMzc3XDIzMDosXDM3NyIKLSAgIlwyMzA6LFwzNzdcMjMwOixcMzc3XDIzMDosXDM3N1wyMzA6LFwzNzdcMjMwOixcMzc3XDIzMDosXDM3N3wvJFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwIgotICAiXDAoXDBcMFwwXDMxXDBcMFwwXDEwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdlJlwzNVwzNzdcMjMwOixcMzc3XDIzMCIKLSAgIjosXDM3N2MlXDM1XDM3N2MlXDM1XDM3N2MlXDM1XDM3N2MlXDM1XDM3N2MlXDM1XDM3N2wpXDM3XDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDAiCi0gICJcMjFcMFwwXDBcMTZcMFwwXDBcMTBcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdlJlwzNSIKLSAgIlwzNzdcMjMwOixcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDAiCi0gICJcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwzNzdlJlwzNVwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfbWFpbF9zZW5kKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfbWFpbF9zZW5kW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsX3NlbmRbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBPXDc3XDEyXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3NyIKLSAgIlwzNjRcMzQ2XDI2NVwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzY0XDM0NSIKLSAgIlwyNjNcMzc3XDM1NVwzMjZcMjA0XDM3N3VfXDIwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM2NFwzNDUiCi0gICJcMjYzXDM3N1wzNTVcMzI1XDIwMFwzNzdcMzU2XDMyNlwyMDVcMzc3XDI1N1wyMTVcMzBcMzc3dV9cMjBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDM3N1wzNjRcMzQ1XDI2M1wzNzdcMzU3XDMzMVwyMTRcMzc3XDM1NlwzMzBcMjEzXDM3N1wzNTVcMzI1XDIwMiIKLSAgIlwzNzdcMjU3XDIxNVwzMFwzNzdcMjU3XDIxNVwzMFwzNzd1X1wyMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwzNzdcMzY0XDM0NVwyNjNcMzc3XDM1NlwzMzBcMjExXDM3NyIKLSAgIlwzNTdcMzMyXDIyMlwzNzdcMzU2XDMzMFwyMTFcMzc3XDM1NVwzMjVcMjAyXDM3N1wyNTdcMjE1XDMwXDM3N1wyNTdcMjE1IgotICAiXDMwXDM3N1wyNTdcMjE1XDMwXDM3N3VfXDIwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwIgotICAiXDBcMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBmXDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM2MFwzMzNcMjIzXDM3N1wzNTVcMzI2XDIwNCIKLSAgIlwzNzdcMzU1XDMyNVwyMDBcMzc3XDI1N1wyMTVcMzBcMzc3c11cMjBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwbVwwXDBcMFwxMFwwXDBcMFwyXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDM3N1NTU1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM3N1wzNjBcMzM0XDIyN1wzNzdcMzU1XDMyNlwyMDRcMzc3IgotICAiXDM1NVwzMjZcMjA0XDM3N1wyNTdcMjE1XDMwXDM3N3NdXDIwXDM3N1wwXDBcMFwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzQzXDM0M1wzNDNcMzc3U1NTXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzEiCi0gICJcMFwwXDBcMTBcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM1NlwzNTZcMzU2XDM3N09PT1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjRcMzY0XDM2NFwzNzdcMFwwXDBcMzc3XDM1NlwzMzBcMjExXDM3NyIKLSAgIlwzNTVcMzIzfFwzNzdcMzU1XDMyNlwyMDRcMzc3XDI1N1wyMTVcMzBcMzc3c11cMjBcMzc3XDBcMFwwXDM3N1wzNTZcMzU2IgotICAiXDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzdcMjU2XDI1NlwyNTZcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMChcMFwwXDBcMTdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNjNcMzYzXDM2M1wzNzdcMFwwXDBcMzc3XDM0NCIKLSAgIlwyNzc9XDM3N1wzMTNcMjQ0XDM0XDM3N1wzMjFcMjUwXDM0XDM3N1wyMjB0XDIzXDM3N3xkXDIxXDM3N1wwXDBcMFwzNzciCi0gICJcMzU1XDM1NVwzNTVcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzdcMjU0XDI1NFwyNTRcMzc3XDMxMFwzMTBcMzEwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N09PT1wzNzdcMzczXDM3M1wzNzNcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wzNDMiCi0gICJcMzQzXDM0M1wzNzdDQ0NcMzc3XDI0MFwyNDBcMjQwXDM3N1wzMjRcMzI0XDMyNFwzNzdcMzEwXDMxMFwzMTBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzNcMzczXDM3M1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N0NDQ1wzNzdcMzcwXDM3MFwzNzAiCi0gICJcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3NyIKLSAgIlwzNTRcMzU0XDM1NFwzNzdcMzQzXDM0M1wzNDNcMzc3T09PXDM3N1wyMjVcMjI1XDIyNVwzNzdcMzI0XDMyNFwzMjRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDAiCi0gICJcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3Nz4+PlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM1NlwzNTZcMzU2IgotICAiXDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDNcMzQzXDM3N01NTVwzNzdcMjAxXDIwMVwyMDEiCi0gICJcMzc3XDMwNlwzMDZcMzA2XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzczXDM3M1wzNzNcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDQiCi0gICJcMzc3ampqXDM3N0NDQ1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNDNcMzQzXDM0M1wzNzdPTyIKLSAgIk9cMzc3ampqXDM3N1wzMDZcMzA2XDMwNlwzNzdcMzA2XDMwNlwzMDZcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0IgotICAiXDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDAiCi0gICJcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NCIKLSAgIlwzNDRcMzQ0XDM3N2NjY1wzNzdcMzc3XDM3N1wzNzdcMzc3XDI3MVwyNzFcMjcxXDM3N09PT1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3T09PXDM3N1wyMjVcMjI1XDIyNVwzNzdcMzA2XDMwNlwzMDZcMzc3c3NzXDM3N1wzMDZcMzA2XDMwNlwzNzdcMzY1IgotICAiXDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMSIKLSAgIlwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3M1wzNzNcMzczXDM3N1wzNDQiCi0gICJcMzQ0XDM0NFwzNzdjY2NcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMyNCIKLSAgIlwzMjRcMzI0XDM3N09PT1wzNzdcMjU0XDI1NFwyNTRcMzc3XDMwNlwzMDZcMzA2XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0IgotICAiXDM0NFwzNDRcMzc3fHx8XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwIgotICAiXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzQ0XDM0NFwzNDRcMzc3c3NzXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzciCi0gICJcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3fHx8XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwIgotICAiXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N3x8fFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM0NFwzNDQiCi0gICJcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NCIKLSAgIlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3fHx8XDM3N1wzMTBcMzEwXDMxMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdzc3NcMzc3XDI3NCIKLSAgIlwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0IgotICAiXDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzQiCi0gICJcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3NyIKLSAgIlwyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3Y2NjXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMCIKLSAgIlwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwbVwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDIwNyIKLSAgIlwwXDBcMChcMFwwXDBcMTdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMTBcMFwwXDBcMzFcMFwwXDAoXDBcMCIKLSAgIlwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwIgotICAiXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwKFwwXDBcMFwzMVwwXDBcMFwxMFwwXDBcMFwxXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDEwXDBcMFwwXDE2XDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDAiCi0gICJcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxIgotICAiXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDE2XDBcMFwwXDEwXDBcMFwwXDJcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMCIKLSAgIlwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwIgotICAiXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfbWVudV9hYm91dCkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21lbnVfYWJvdXRbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21lbnVfYWJvdXRbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgxMDI0KSAqLwotICAiXDBcMFw0XDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDY0KSAqLwotICAiXDBcMFwwQCIKLSAgLyogd2lkdGggKDE2KSAqLwotICAiXDBcMFwwXDIwIgotICAvKiBoZWlnaHQgKDE2KSAqLwotICAiXDBcMFwwXDIwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCFcIlwxMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMExOXDIzbFwwXDBcMFwzNzdcMjVcMjZcNiNcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMTFcMFwwXDBcMzc3XDM1NlwzNjY+XDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjBcMjFcNFw3ZGdcMzIiCi0gICJ4XDBcMFwwXDM3N1wwXDBcMFwzNzdcMzUyXDM2MT1cMzc3XDM2MFwzNzBcNzdcMzc3XDMxM1wzMjI1XDM3MFwwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3SkxcMjNrXDBcMFwwXDBcMjBcMjFcNFwwZGdcMzJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwzNFwzNVw3XDBcMFwwXDBcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MCIKLSAgIlwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM1MVwzNjA9XDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzN1wzN1wxMCVcMFwwXDAiCi0gICJcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM0NSIKLSAgIlwzNTQ8XDM3N1wwXDBcMFwzNzdcNVw1XDFcN1wwXDBcMFwwXDBcMFwwXDBcMzdcMzdcMTBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM1MFwzNjA9XDM3N1wzNjBcMzcwXDc3XDM3N1wzNjAiCi0gICJcMzcwXDc3XDM3N1wzNjBcMzcwXDc3XDM3N1wyNTNcMjYwLVwzNzJcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNjBcMzcwIgotICAiXDc3XDM3N1wzNTRcMzYzPlwzNzdcMFwwXDBcMzc3XDM1N1wzNjdcNzdcMzc3XDMxNlwzMjY2XDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMzc3XDI2NFwyNzIvXDM2M1wwXDBcMFwzNzdcMzBcMzBcNlw3N1wwXDBcMFwzNzdcMzE1XDMyNDVcMzc1IgotICAiXDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwzNlwzN1wxMGdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3NyIKLSAgIlwyNlwyN1w1RlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19tZW51X2JsYW5rKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfbWVudV9ibGFua1tdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfbWVudV9ibGFua1tdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDEwMjQpICovCi0gICJcMFwwXDRcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoNjQpICovCi0gICJcMFwwXDBAIgotICAvKiB3aWR0aCAoMTYpICovCi0gICJcMFwwXDBcMjAiCi0gIC8qIGhlaWdodCAoMTYpICovCi0gICJcMFwwXDBcMjAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfc2NvcmVzKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfc2NvcmVzW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19zY29yZXNbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDNcMFwwXDBcNFwwXDBcMFw0XDBcMFwwXDRcMFwwIgotICAiXDBcM1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMjE1XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMjI3XDBcMFwwXDIyXDBcMFwwXDZcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNDFcMzQxXDM0MVwzNzdcMFwwXDBcMzc3XDBcMFwwIiIyXDBcMFwwXDIyXDBcMFwwXDJcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzUzIgotICAiXDM1M1wzNTNcMzc3XDBcMFwwXDM3N1wzNTVcMzU1XDM1NVwzNzdcMzIyXDMyMlwzMjJcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMExcMFwwXDBcMzRcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwIgotICAiXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM1NlwzNTZcMzU2XDM3N1wzMjJcMzIyXDMyMiIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwVFwwXDBcMFw0MFwwXDBcMFw0XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzXDAiCi0gICJcMFwwXDRcMFwwXDBcMTBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTVcMzU1XDM1NVwzNzdcMFwwXDBcMzc3XDM1NyIKLSAgIlwzNTdcMzU3XDM3N1wzMjNcMzIzXDMyM1wzNzdcMFwwXDBcMzc3XDBcMFwwVVwwXDBcMFw0MFwwXDBcMFw0XDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDIxNVwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwXDBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzMjRcMzI0XDMyNFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwV1wwXDBcMCRcMFwwXDBcMTBcMFwwXDBcNFwwXDBcMFwzXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDMyNVwzMjVcMzI1XDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDIwNVwwXDBcMFwyMFwwXDBcMFw1XDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM3N1wwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MVwzNjEiCi0gICJcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiMVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwXDBcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDBcMFwwXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjQiCi0gICJcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMzMzXDMzM1wzMzNcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMEtcMFwwXDBcMzRcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0XDAiCi0gICJcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMzU3XDM1N1wzNTdcMzc3IgotICAiXDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjUiCi0gICJcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMFwwXDBcMzc3IgotICAiXDMzNFwzMzRcMzM0XDM3N1wwXDBcMFwzNzdcMFwwXDBUXDBcMFwwXDQwXDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcNFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wzMzVcMzM1XDMzNVwzNzdcMFwwXDBcMzc3XDBcMFwwVVwwXDBcMFw0MFwwIgotICAiXDBcMFw0XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzIgotICAiXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzciCi0gICJcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wwXDBcMFwzNzdcMzM2XDMzNlwzMzZcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFVcMFwwXDBcNDBcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0XDBcMFwwXDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MiIKLSAgIlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2IgotICAiXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDMzNyIKLSAgIlwzMzdcMzM3XDM3N1wwXDBcMFwzNzdcMFwwXDBVXDBcMFwwXDQwXDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcNFwwXDBcMFwzNzdcMzQxXDM0MVwzNDFcMzc3XDMyM1wzMjNcMzIzXDM3N1wzMjRcMzI0XDMyNFwzNzciCi0gICJcMzI1XDMyNVwzMjVcMzc3XDMyNlwzMjZcMzI2XDM3N1wzMjdcMzI3XDMyN1wzNzdcMzMwXDMzMFwzMzBcMzc3XDMzMSIKLSAgIlwzMzFcMzMxXDM3N1wzMzFcMzMxXDMzMVwzNzdcMzMyXDMzMlwzMzJcMzc3XDMzM1wzMzNcMzMzXDM3N1wzMzRcMzM0IgotICAiXDMzNFwzNzdcMzM1XDMzNVwzMzVcMzc3XDMzN1wzMzdcMzM3XDM3N1wzNDBcMzQwXDM0MFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwVFwwXDBcMFw0MFwwXDBcMFw0XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwXDBcMjU0XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwIgotICAiXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDI3M1wwXDBcMExcMFwwXDBcMzRcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwyXDBcMFwwXDIzXDBcMFwwIiI1XDBcMFwwTVwwXDBcMFRcMFwwXDBVXDBcMFwwVVwwXDBcMFVcMFwwXDBVIgotICAiXDBcMFwwVVwwXDBcMFVcMFwwXDBVXDBcMFwwVVwwXDBcMFVcMFwwXDBVXDBcMFwwVVwwXDBcMFRcMFwwXDBMXDBcMFwwIgotICAiMlwwXDBcMFwyMlwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcNlwwXDBcMFwyM1wwIgotICAiXDBcMFwzNVwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MCIKLSAgIlwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFwzN1wwXDBcMFwzNFwwXDBcMCIKLSAgIlwyMlwwXDBcMFw2XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMCIKLSAgIlwwXDBcM1wwXDBcMFw0XDBcMFwwXDRcMFwwXDBcNFwwXDBcMFw0XDBcMFwwXDRcMFwwXDBcNFwwXDBcMFw0XDBcMFwwIgotICAiXDRcMFwwXDBcNFwwXDBcMFw0XDBcMFwwXDRcMFwwXDBcNFwwXDBcMFw0XDBcMFwwXDNcMFwwXDBcMlwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfbWljKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfbWljW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19taWNbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDA8XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDA8XDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDA8UlJSXDM3N1wzMzIiCi0gICJcMzMyXDMzM1wzNzdcMzcyXDM3MlwzNzNcMzc3XDM2MVwzNjFcMzYzXDM3N1wzNzBcMzcwXDM3MVwzNzdcMzM1XDMzNCIKLSAgIlwzMzVcMzc3XDBcMFwwXDM3N1wwXDBcMEVcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMzc3XDMzMlwzMzFcMzMyXDM3N1wzNjNcMzYyXDM2NVwzNzdcMzI2XDMyNVwzMzRcMzc3XDM1MCIKLSAgIlwzNTBcMzUzXDM3N1wyNjdcMjY1XDI3NVwzNzdcMzI0XDMyMlwzMjdcMzc3aWZsXDM3N1wwXDBcMFwzNzdcMFwwXDBcMTMiCi0gICJcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzJcMzcyXDM3M1wzNzciCi0gICJcMzM0XDMzNFwzNDJcMzc3XDM1NFwzNTNcMzU2XDM3N1wzMDFcMjc3XDMwN1wzNzdcMzMwXDMyNlwzMzNcMzc3XDIyMCIKLSAgIlwyMTdcMjI2XDM3N1wyMTRcMjEyXDIxN1wzNzdcMFwwXDBcMzc3XDBcMFwwXDI2XDBcMFwwXDRcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzYzXDM2MVwzNjRcMzc3XDM1N1wzNTdcMzYyXDM3N1wzMTIiCi0gICJcMzA3XDMyMVwzNzdcMzM3XDMzNlwzNDNcMzc3XDIzNVwyMzRcMjQ0XDM3N1wyNzVcMjczXDMwMVwzNzdDQkZcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzMVwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBJXDBcMFwwXVwwXDBcMFwxXDBcMFwwXDM3NyIKLSAgIlwzNzJcMzcyXDM3MlwzNzdcMzI0XDMyMlwzMzFcMzc3XDM1MFwzNDZcMzUzXDM3N1wyNjFcMjYwXDI3MlwzNzdcMzExIgotICAiXDMwN1wzMTZcMzc3dHF6XDM3N3FwdlwzNzdcMFwwXDBcMzc3XDBcMFwwXDMxXDBcMFwwX1wwXDBcMEpcMFwwXDBcMVwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJdXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM2MVwzNjBcMzYzXDM3N1wzNTVcMzU0XDM2MFwzNzdcMzAzXDMwMSIKLSAgIlwzMTJcMzc3XDMzMFwzMjZcMzM1XDM3N1wyMTRcMjExXDIyNVwzNzdcMjUwXDI0NlwyNTdcMzc3MjI2XDM3N1wwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMGJcMFwwXDBcN1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwzNzdcMFwwXDBcMjZcMFwwXDBcMzc3IgotICAiXDM3MVwzNzFcMzcyXDM3N1wzMTdcMzE2XDMyNlwzNzdcMzQ0XDM0MlwzNDdcMzc3XDI1MFwyNDdcMjYxXDM3N1wzMDMiCi0gICJcMzAxXDMxMFwzNzdlYmxcMzc3YWFlXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzRcMFwwXDBcMzc3XDBcMFwwXDI3XDBcMCIKLSAgIlwwXDEyXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwyNVwwXDBcMFwzNzdcMzYwXDM1NlwzNjFcMzc3XDM1M1wzNTJcMzU2XDM3NyIKLSAgIlwyNzZcMjczXDMwNlwzNzdcMzI1XDMyNFwzMzJcMzc3XDIwNFwyMDBcMjE0XDM3N1wyMzZcMjM1XDI0NlwzNzctLDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzMlwwXDBcMFwzNzdcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMFwwXDBcMjQiCi0gICJcMFwwXDBcMzc3XDM3MFwzNzBcMzcxXDM3N1wzMTJcMzA3XDMyMVwzNzdcMzM3XDMzNlwzNDJcMzc3XDIzNFwyMzJcMjQ0IgotICAiXDM3N1wyNzBcMjY2XDI3NlwzNzdZV19cMzc3XVthXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzFcMFwwXDBcMzc3XDBcMFwwIgotICAiXDI0XDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDBcMFwwXDI0XDBcMFwwXDM3N1wzNTRcMzUyXDM1NVwzNzdcMzQzXDM0MlwzNDYiCi0gICJcMzc3XDI1MFwyNDdcMjYwXDM3N1wzMDdcMzA1XDMxNFwzNzdycXhcMzc3XDIyMlwyMjBcMjMxXDM3NygmKlwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDMxXDBcMFwwXDM3N1wwXDBcMFwyNFwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwyNFwwIgotICAiXDBcMFwzNzdcMzUwXDM0N1wzNTJcMzc3XDI2NVwyNjNcMjcyXDM3N1wzMTRcMzE0XDMyMlwzNzdcMjA1XDIwNFwyMTIiCi0gICJcMzc3XDI0NVwyNDRcMjUzXDM3N0pJT1wzNzdNTFFcMzc3XDBcMFwwXDM3N1wwXDBcMFwzMVwwXDBcMFwzNzdcMFwwXDAiCi0gICJcMjRcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMFwwXDBcMjRcMFwwXDBDXDBcMFwwXDM3N1wyMDZcMjA0XDIxMFwzNzc3NiIKLSAgIjpcMzc3YWFjXDM3NyQjJlwzNzdERElcMzc3XDBcMFwwXDM3N1wwXDBcMFwyMzJcMFwwXDBcMzBcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDI0XDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDBcMFwwXDI0XDBcMFwwXDZcMFwwXDBEXDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjMyXDBcMFwwXDMyXDBcMFwwXDE3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwyNFwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwa1wwXDBcMFwyMDZcMFwwXDBcNlwwXDBcMFwzXDBcMFwwXDEzXDBcMFwwIgotICAiXDI2XDBcMFwwe1wwXDBcMFwzMlwwXDBcMFwzMVwwXDBcMFwyN1wwXDBcMFwxN1wwXDBcMFwyMDBcMFwwXDBtXDBcMFwwIgotICAiXDIyXDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMG9cMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBtXDBcMFwwXDEzXDAiCi0gICJcMFwwXDEzXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwXDEzXDBcMFwwXDIyXDBcMFwwXDI0S0tLXDM3NyIKLSAgImFhYVwzNzdcMFwwXDBcMzc3XDBcMFwwXDMwXDBcMFwwXDI1XDBcMFwwXDI0XDBcMFwwXDIyXDBcMFwwXDEzXDBcMFwwIgotICAiXDNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFw0XDBcMFwwXDVLS0tcMzc3XDE3N1wxNzciCi0gICJcMTc3XDM3N1wwXDBcMFwzNzdcMFwwXDBtXDBcMFwwO1wwXDBcMFw2XDBcMFwwXDVcMFwwXDBcMlwwXDBcMFwzM1wwXDAiCi0gICJcMF1cMFwwXDBcMzRcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMEtLS1wzNzdcMTc3XDE3N1wxNzdcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzMlwwXDBcMFwxMlwwXDBcMExcMFwwXDBcMlwwXDBcMFwwXDBcMFwwSVwwXDBcMFw0XDAiCi0gICJcMFwwTVwwXDBcMFwzN1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiIjNcNDBcNDBcNDBcMzc3aGhoXDM3N1wwXDBcMCIKLSAgIlwzNzdcMFwwXDBHXDBcMFwwXDdcMFwwXDBcMlwwXDBcMGtcMFwwXDBdXDBcMFwwXDJcMFwwXDBcNVwwXDBcMFwzXDBcMCIKLSAgIlwwbFwwXDBcMFw0XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcXFwwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N2dkW1wzNzdcMFwwXDBcMzc3VlJIXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMGBcMFwwXDAiCi0gICJcMlwwXDBcMG9cMFwwXDBcN1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDMzXDMzXDMzXDM3N1wyNTdcMjU1IgotICAiXDI1MVwzNzdcMjA1XDIwMntcMzc3d3RsXDM3N1ZSSFwzNzdWUkhcMzc3VlJIXDM3N1ZSSFwzNzdWUkhcMzc3VlJIXDM3NyIKLSAgIlZSSFwzNzdWUkhcMzc3VlJIXDM3N0xJQFwzNzc7OjJcMzc3XDQwXDM3XDMyXDM3N1wwXDBcMFwzNzdcMFwwXDBcMTRcMCIKLSAgIlwwXDBcMzdcMFwwXDBcN1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMjdcMFwwXDBcNVwwXDBcMEtcMFwwXDBXXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDRcMFwwXDBcMjVcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMCIKLSAgIlwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzEiCi0gICJcMFwwXDBcMzFcMFwwXDBcMjVcMFwwXDBcNFwwXDBcMFwxXDBcMFwwXDUifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX211bHRpcGxlX2ZpbGUpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tdWx0aXBsZV9maWxlW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tdWx0aXBsZV9maWxlW10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoNDA5NikgKi8KLSAgIlwwXDBcMjBcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoMTI4KSAqLwotICAiXDBcMFwwXDIwMCIKLSAgLyogd2lkdGggKDMyKSAqLwotICAiXDBcMFwwXDQwIgotICAvKiBoZWlnaHQgKDMyKSAqLwotICAiXDBcMFwwXDQwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDMzXDBcMFwwXDE0XDBcMFwwXDJcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDBcMzQwXDM0MFwzNzciCi0gICJcMzAxXDMwMVwzMDFcMzc3XDBcMFwwXDM3N1wwXDBcMCtcMFwwXDBcMTZcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDAiCi0gICJcMFwwXDE2XDBcMFwwXDNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzQwXDM0MFwzNDBcMzc3XDMwMVwzMDFcMzAxXDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICItXDBcMFwwXDE2XDBcMFwwXDNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzNcMzczXDM3M1wzNzciCi0gICJcMzcyXDM3MlwzNzFcMzc3XDMwM1wzMDNcMzAzXDM3N1wzNzNcMzczXDM3M1wzNzdcMjUwXDI1MFwyNTBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMC1cMFwwXDBcMjBcMFwwXDBcNlwwXDBcMFw0XDBcMFwwXDNcMFwwXDBcMVwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzNcMFwwXDBcMTRcMFwwXDBcMlwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDBcMzQwXDM0MFwzNzdcMzAxXDMwMSIKLSAgIlwzMDFcMzc3XDBcMFwwXDM3N1wwXDBcMCtcMFwwXDBcMTZcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc1XDM3NVwzNzVcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzIiCi0gICJcMzcyXDM3MVwzNzdcMzAzXDMwM1wzMDNcMzc3XDM3M1wzNzNcMzczXDM3N1wyNTBcMjUwXDI1MFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwLVwwXDBcMFwxNlwwXDBcMFwzXDBcMFwwXDBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMjFcMzIxXDMyMVwzNzciCi0gICJcMjUyXDI1MlwyNTJcMzc3XDMyM1wzMjNcMzIzXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzIzXDMyM1wzMjNcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wyNTJcMjUyXDI1MlwzNzdcMjUyXDI1MlwyNTJcMzc3XDM3NVwzNzVcMzc1XDM3N1wzMjBcMzIwIgotICAiXDMyMFwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MVwzNzFcMzcwXDM3N1wzNjdcMzY3XDM2NlwzNzdcMjU1XDI1NVwyNTUiCi0gICJcMzc3dnZ2XDM3N11dXVwzNzdAQEBcMzc3XDBcMFwwXDM3N1wwXDBcMCtcMFwwXDBcMTRcMFwwXDBcMFwwXDBcMFwzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc0XDM3NFwzNzRcMzc3XDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzRcMzc0XDM3NFwzNzciCi0gICJcMzczXDM3M1wzNzJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY2XDM2NlwzNjVcMzc3XDM2NCIKLSAgIlwzNjRcMzY0XDM3N1wzNDJcMzQyXDM0MlwzNzdcMjA1XDIwNVwyMDVcMzc3S0tJXDM3N1wyNlwyNlwyNlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwTlwwXDBcMFwzM1wwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3M1wzNzNcMzcyXDM3N1wzNzFcMzcxIgotICAiXDM3MVwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMjUyXDI1MlwyNTJcMzc3XDI3MSIKLSAgIlwyNzFcMjcxXDM3N1wzMjNcMzIzXDMyM1wzNzdcMzIzXDMyM1wzMjNcMzc3XDM3NlwzNzZcMzc2XDM3N1wyNTBcMjUwIgotICAiXDI1MFwzNzdcMjM2XDIzNlwyMzZcMzc3XDIzNVwyMzVcMjM1XDM3N1wyNDVcMjQ1XDI0NFwzNzdcMzY2XDM2NlwzNjYiCi0gICJcMzc3XDI0M1wyNDNcMjQyXDM3N1wzMTFcMzExXDMxMFwzNzdcMzYyXDM2MlwzNjFcMzc3XDM2MFwzNjBcMzU3XDM3NyIKLSAgIlwzNTZcMzU2XDM1NVwzNzdcMzU1XDM1NVwzNTNcMzc3XDIzNVwyMzVcMjM1XDM3N1wwXDBcMFwzNzdcMFwwXDBdXDBcMCIKLSAgIlwwI1wwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzNcMzczIgotICAiXDM3M1wzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzY3XDM3N1wzNjZcMzY2XDM2NlwzNzdcMFwwXDBcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc1XDM3NVwzNzVcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzJcMzcyXDM3MVwzNzdcMzcwXDM3MFwzNzAiCi0gICJcMzc3XDM2N1wzNjdcMzY2XDM3N1wzNjVcMzY1XDM2NFwzNzdcMzY0XDM2NFwzNjNcMzc3XDM2MlwzNjJcMzYxXDM3NyIKLSAgIlwzNjBcMzYwXDM1N1wzNzdcMzU3XDM1N1wzNTZcMzc3XDM1NVwzNTVcMzU0XDM3N1wzNTRcMzU0XDM1MlwzNzdcMzUyIgotICAiXDM1MlwzNTBcMzc3XDI0NFwyNDRcMjQzXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjYiCi0gICJcMzc3XDM2NVwzNjVcMzY0XDM3N1wzNjRcMzY0XDM2M1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMjUyXDI1MlwyNTJcMzc3XDMyMVwzMjFcMzIxXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzE2XDMxNlwzMTYiCi0gICJcMzc3XDM3MVwzNzFcMzcwXDM3N1wyNDRcMjQ0XDI0NFwzNzdcMjQzXDI0M1wyNDNcMzc3XDIzMlwyMzJcMjMxXDM3NyIKLSAgIlwyNTdcMjU3XDI1NlwzNzdcMzYxXDM2MVwzNjBcMzc3XDIzN1wyMzdcMjM2XDM3N3JycVwzNzdcMjI1XDIyNVwyMjRcMzc3IgotICAiXDIyM1wyMjNcMjIzXDM3N1wzNTFcMzUxXDM0N1wzNzdcMzQ3XDM0N1wzNDZcMzc3XDI0NFwyNDRcMjQ0XDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjNcMzc3XDM2MlwzNjJcMzYxXDM3N1wzNjFcMzYxIgotICAiXDM2MFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3MyIKLSAgIlwzNzNcMzcyXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NlwzNjZcMzY1XDM3N1wzNjRcMzY0IgotICAiXDM2NFwzNzdcMzYzXDM2M1wzNjJcMzc3XDM2MVwzNjFcMzYwXDM3N1wzNjBcMzYwXDM1NlwzNzdcMzU2XDM1NlwzNTUiCi0gICJcMzc3XDM1NFwzNTRcMzUzXDM3N1wzNTNcMzUzXDM1MVwzNzdcMzUxXDM1MVwzNTBcMzc3XDM1MFwzNTBcMzQ2XDM3NyIKLSAgIlwzNDZcMzQ2XDM0NFwzNzdcMzQ1XDM0NVwzNDNcMzc3XDI0MlwyNDJcMjQyXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMCIKLSAgIlwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjNcMzYzIgotICAiXDM2MlwzNzdcMzYxXDM2MVwzNjBcMzc3XDM2MFwzNjBcMzU2XDM3N1wzNTZcMzU2XDM1NVwzNzdcMFwwXDBcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzNcMzczXDM3M1wzNzdcMjY0XDI2NFwyNjRcMzc3XDI2M1wyNjNcMjYzXDM3N1wzNjZcMzY2IgotICAiXDM2NlwzNzdcMjYxXDI2MVwyNjFcMzc3XDI2MFwyNjBcMjU3XDM3N1wyMzBcMjMwXDIzMFwzNzdcMjI3XDIyN1wyMjYiCi0gICJcMzc3XDM1NlwzNTZcMzU1XDM3N29vblwzNzdubm5cMzc3bm5tXDM3N21tbFwzNzdsbGtcMzc3a2tqXDM3N1wzNDNcMzQzIgotICAiXDM0MVwzNzdcMzQyXDM0MlwzNDBcMzc3XDI0MlwyNDJcMjQyXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDAiCi0gICJcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjBcMzYwXDM1NyIKLSAgIlwzNzdcMzU2XDM1NlwzNTVcMzc3XDM1NVwzNTVcMzUzXDM3N1wzNTNcMzUzXDM1MlwzNzdcMFwwXDBcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjZcMzc3XDM2NVwzNjVcMzY0XDM3N1wzNjRcMzY0XDM2MyIKLSAgIlwzNzdcMzYyXDM2MlwzNjFcMzc3XDM2MFwzNjBcMzU3XDM3N1wzNTdcMzU3XDM1NlwzNzdcMzU1XDM1NVwzNTRcMzc3IgotICAiXDM1NFwzNTRcMzUyXDM3N25ubVwzNzdcMjA3XDIyNlwyNDVcMzc3XDIwNlwyMjZcMjQ0XDM3N1wyMDVcMjI1XDI0M1wzNzciCi0gICJcMjA1XDIyNFwyNDNcMzc3amppXDM3N1wzNDFcMzQxXDMzNlwzNzdcMzM3XDMzN1wzMzVcMzc3XDI0M1wyNDNcMjQyXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNTVcMzU1XDM1NFwzNzdcMzU0XDM1NFwzNTJcMzc3XDM1MlwzNTJcMzUwXDM3N1wzNTEiCi0gICJcMzUxXDM0N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMjYxXDI2MVwyNjBcMzc3IgotICAiXDIzMFwyMzBcMjMwXDM3N1wzMDdcMzA3XDMwNlwzNzdcMzA1XDMwNVwzMDRcMzc3XDM1NlwzNTZcMzU0XDM3N1wzMDMiCi0gICJcMzAzXDMwMlwzNzdcMzAxXDMwMVwzMDBcMzc3XDM1MVwzNTFcMzQ3XDM3N2xsbFwzNzdcMjE3XDIzNlwyNTRcMzc3XDI3NSIKLSAgIlwyNzBcMjI1XDM3N3B8aVwzNzdcMjE0XDIzM1wyNTJcMzc3aWloXDM3N1wzMzZcMzM2XDMzM1wzNzdcMzM0XDMzNFwzMzIiCi0gICJcMzc3XDI0M1wyNDNcMjQyXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTJcMzUyXDM1MVwzNzdcMzUxXDM1MVwzNDdcMzc3XDM0NyIKLSAgIlwzNDdcMzQ2XDM3N1wzNDZcMzQ2XDM0NFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjNcMzYzXDM2MlwzNzciCi0gICJcMzYxXDM2MVwzNjBcMzc3XDM2MFwzNjBcMzU2XDM3N1wzNTZcMzU2XDM1NVwzNzdcMzU0XDM1NFwzNTNcMzc3XDM1MyIKLSAgIlwzNTNcMzUxXDM3N1wzNTFcMzUxXDM1MFwzNzdcMzUwXDM1MFwzNDZcMzc3XDM0NlwzNDZcMzQ0XDM3N2tralwzNzdcMjI2IgotICAiXDI0NVwyNjRcMzc3XDMyM1wzMDdcMjE1XDM3N1wyMzdcMjM0ZFwzNzdvXDE3N3dcMzc3aGhmXDM3N1wzMzNcMzMzXDMzMCIKLSAgIlwzNzdcMzMyXDMzMlwzMjdcMzc3XDI0MFwyNDBcMjM3XDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwIgotICAiXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTBcMzUwXDM0NlwzNzciCi0gICJcMzQ2XDM0NlwzNDRcMzc3XDM0NVwzNDVcMzQzXDM3N1wzNDNcMzQzXDM0MVwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNjBcMzYwXDM1N1wzNzdcMjQzXDI0M1wyNDJcMzc3XDIyNVwyMjVcMjI0XDM3N1wyMjRcMjI0XDIyM1wzNzciCi0gICJcMjUxXDI1MVwyNTBcMzc3XDIzMlwyMzJcMjMxXDM3N1wyNDdcMjQ3XDI0NlwzNzdcMjc1XDI3NVwyNzNcMzc3XDM0MyIKLSAgIlwzNDNcMzQxXDM3N2pqaVwzNzdcMjM1XDI1NFwyNzNcMzc3XDMxNVwzMDRcMjI2XDM3N2ZzV1wzNzdcMjMzXDI1MlwyNzEiCi0gICJcMzc3ZmZlXDM3N1wzMzBcMzMwXDMyNVwzNzdcMzI3XDMyN1wzMjRcMzc3XDI0MlwyNDJcMjQxXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNDVcMzQ1XDM0M1wzNzdcMzQzXDM0M1wzNDFcMzc3XDM0MlwzNDJcMzQwXDM3N1wzNDBcMzQwXDMzNlwzNzciCi0gICJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTVcMzU1XDM1NFwzNzdcMzU0XDM1NFwzNTJcMzc3XDM1MlwzNTJcMzUwIgotICAiXDM3N1wzNTFcMzUxXDM0N1wzNzdcMzQ3XDM0N1wzNDVcMzc3XDM0NVwzNDVcMzQzXDM3N1wzNDRcMzQ0XDM0MlwzNzciCi0gICJcMzQyXDM0MlwzNDBcMzc3XDM0MVwzNDFcMzM2XDM3N2hoaFwzNzdcMjQ1XDI2NFwzMDNcMzc3XDMxM1wzMDVcMjM1XDM3NyIKLSAgImx9b1wzNzdvXDIwMHNcMzc3ZWVjXDM3N1wzMjZcMzI2XDMyMlwzNzdcMzI0XDMyNFwzMjFcMzc3XDI0MlwyNDJcMjQxIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDAiCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDJcMzQyXDM0MFwzNzdcMzQxXDM0MVwzMzZcMzc3XDMzN1wzMzdcMzM1XDM3NyIKLSAgIlwzMzZcMzM2XDMzM1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTJcMzUyXDM1MVwzNzdcMjMzXDIzM1wyMzIiCi0gICJcMzc3XDIxNVwyMTVcMjE0XDM3N1wzNDZcMzQ2XDM0NFwzNzdcMjc0XDI3NFwyNzNcMzc3XDIxN1wyMTdcMjE1XDM3NyIKLSAgIlwyMTZcMjE2XDIxNFwzNzdcMjcxXDI3MVwyNjZcMzc3XDMzNlwzMzZcMzMzXDM3N2dnZlwzNzdnZ2VcMzc3ZmZkXDM3NyIKLSAgImVlZFwzNzdkZGNcMzc3ZGRiXDM3N1wzMjNcMzIzXDMyMFwzNzdcMzIxXDMyMVwzMTZcMzc3XDI0MVwyNDFcMjQwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzMjBcMzIwXDMyMFwzNzdcMFwwXDBcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNDBcMzQwXDMzNVwzNzdcMzM2XDMzNlwzMzNcMzc3XDMzNFwzMzRcMzMyXDM3N1wzMzMiCi0gICJcMzMzXDMzMFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTBcMzUwXDM0NlwzNzdcMzQ2XDM0NlwzNDRcMzc3IgotICAiXDM0NVwzNDVcMzQzXDM3N1wzNDNcMzQzXDM0MVwzNzdcMzQxXDM0MVwzMzdcMzc3XDM0MFwzNDBcMzM2XDM3N1wzMzYiCi0gICJcMzM2XDMzNFwzNzdcMzM1XDMzNVwzMzJcMzc3XDMzM1wzMzNcMzMwXDM3N1wzMzJcMzMyXDMyN1wzNzdcMzMwXDMzMCIKLSAgIlwzMjVcMzc3XDMyNlwzMjZcMzIzXDM3N1wzMjVcMzI1XDMyMlwzNzdcMzIzXDMyM1wzMjBcMzc3XDMyMlwzMjJcMzE2IgotICAiXDM3N1wzMjBcMzIwXDMxNVwzNzdcMzE3XDMxN1wzMTNcMzc3XDI0MFwyNDBcMjM3XDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICJfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMzVcMzM1IgotICAiXDMzMlwzNzdcMzMzXDMzM1wzMzBcMzc3XDMzMlwzMzJcMzI3XDM3N1wzMzBcMzMwXDMyNVwzNzdcMFwwXDBcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNDVcMzQ1XDM0M1wzNzdcMjI3XDIyN1wyMjZcMzc3XDIxNlwyMTZcMjE1XDM3N1wyMTVcMjE1IgotICAiXDIxNFwzNzdcMjE0XDIxNFwyMTJcMzc3XDMzNVwzMzVcMzMzXDM3N1wyMjJcMjIyXDIyMFwzNzdcMjM2XDIzNlwyMzMiCi0gICJcMzc3XDIzNFwyMzRcMjMyXDM3N1wyMDdcMjA3XDIwNVwzNzdcMzI1XDMyNVwzMjJcMzc3XDI1N1wyNTdcMjU0XDM3NyIKLSAgIlwyMzBcMjMwXDIyNlwzNzdcMjEzXDIxM1wyMTBcMzc3XDI1M1wyNTNcMjQ3XDM3N1wzMTVcMzE1XDMxMlwzNzdcMzE0IgotICAiXDMxNFwzMTBcMzc3XDI0MlwyNDJcMjQxXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDQwIgotICAiXDBcMFwwVFwwXDBcMFwzNzdcMzIwXDMyMFwzMjBcMzc3XDI2MVwyNjFcMjU3XDM3N1wyNjRcMjY0XDI2M1wzNzdcMjY0IgotICAiXDI2NFwyNjFcMzc3XDI0MFwyNDBcMjM1XDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM0MlwzNDJcMzQwXDM3NyIKLSAgIlwzNDFcMzQxXDMzNlwzNzdcMzM3XDMzN1wzMzVcMzc3XDMzNlwzMzZcMzMzXDM3N1wzMzRcMzM0XDMzMVwzNzdcMzMyIgotICAiXDMzMlwzMzBcMzc3XDMzMVwzMzFcMzI2XDM3N1wzMjdcMzI3XDMyNFwzNzdcMzI2XDMyNlwzMjJcMzc3XDMyNFwzMjQiCi0gICJcMzIxXDM3N1wzMjNcMzIzXDMxN1wzNzdcMzIxXDMyMVwzMTVcMzc3XDMxN1wzMTdcMzE0XDM3N1wzMTZcMzE2XDMxMiIKLSAgIlwzNzdcMzE0XDMxNFwzMTBcMzc3XDMxNFwzMTRcMzA3XDM3N1wzMTRcMzE0XDMwN1wzNzdcMjQyXDI0MlwyNDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMF9cMFwwXDAkXDBcMFwwXDBcMFwwXDBcMTJcMFwwXDBcMzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDAiCi0gICJcMzQwXDMzNVwzNzdcMjI0XDIyNFwyMjJcMzc3XDI2NlwyNjZcMjY0XDM3N1wzMzNcMzMzXDMzMFwzNzdcMjM1XDIzNSIKLSAgIlwyMzNcMzc3XDIxMFwyMTBcMjA2XDM3N1wzMjZcMzI2XDMyM1wzNzdcMzI1XDMyNVwzMjFcMzc3XDIxNFwyMTRcMjEyIgotICAiXDM3N1wyMTdcMjE3XDIxNVwzNzdcMjAzXDIwM1wyMDBcMzc3XDMxNlwzMTZcMzEyXDM3N1wyMjRcMjI0XDIyMVwzNzciCi0gICJcMjI0XDIyNFwyMjBcMzc3XDMxNFwzMTRcMzA3XDM3N1wzMTRcMzE0XDMwN1wzNzdcMzE0XDMxNFwzMDdcMzc3XDIzNyIKLSAgIlwyMzdcMjM3XDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMTBcMFwwXDAlIgotICAiXDBcMFwwVFwwXDBcMGpcMFwwXDBtXDBcMFwwbVwwXDBcMG9cMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMzVcMzM1IgotICAiXDMzMlwzNzdcMzMzXDMzM1wzMzBcMzc3XDMzMlwzMzJcMzI3XDM3N1wzMzBcMzMwXDMyNVwzNzdcMzI2XDMyNlwzMjMiCi0gICJcMzc3XDMyNVwzMjVcMzIyXDM3N1wzMjNcMzIzXDMyMFwzNzdcMzIyXDMyMlwzMTZcMzc3XDMyMFwzMjBcMzE1XDM3NyIKLSAgIlwzMTdcMzE3XDMxM1wzNzdcMzE1XDMxNVwzMTFcMzc3XDMxNFwzMTRcMzA3XDM3N1wzMTRcMzE0XDMwN1wzNzdcMzE0IgotICAiXDMxNFwzMDdcMzc3XDMxNFwzMTRcMzA3XDM3N1wzMTRcMzE0XDMwN1wzNzdcMzE0XDMxNFwzMDdcMzc3XDI0MFwyNDAiCi0gICJcMjM3XDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwxM1wwXDAiCi0gICJcMFwzNFwwXDBcMCZcMFwwXDAoXDBcMFwwKFwwXDBcMCxcMFwwXDBcMzc3XDMyMFwzMjBcMzIwXDM3N1wyNjFcMjYxXDI1NyIKLSAgIlwzNzdcMjY0XDI2NFwyNjNcMzc3XDI2NFwyNjRcMjYxXDM3N1wyNDBcMjQwXDIzNVwzNzdcMjQwXDI0MFwyMzVcMzc3IgotICAiXDIzN1wyMzdcMjM1XDM3N1wyMzdcMjM3XDIzNVwzNzdcMjM3XDIzN1wyMzNcMzc3XDIzMVwyMzFcMjI1XDM3N1wyMTUiCi0gICJcMjE1XDIxMVwzNzdcMjEzXDIxM1wyMTFcMzc3XDIxM1wyMTNcMjExXDM3N1wyMTNcMjEzXDIxMVwzNzdcMjExXDIxMSIKLSAgIlwyMTFcMzc3XDIxMVwyMTFcMjExXDM3N1wyMDNcMjAzXDE3N1wzNzdcMjA0XDIwNFwyMDJcMzc3XV1cXFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXlwwXDBcMCRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFw0XDBcMFwwXDYiCi0gICJcMFwwXDBcN1wwXDBcMFw3XDBcMFwwXDEzXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjYzXDBcMFwwVFwwXDBcMFwzN1wwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcNFwwXDBcMCFcMFwwXDBTXDBcMCIKLSAgIlwwaVwwXDBcMG1cMFwwXDBtXDBcMFwwbVwwXDBcMG5cMFwwXDBuXDBcMFwwblwwXDBcMG5cMFwwXDBuXDBcMFwwblwwIgotICAiXDBcMG5cMFwwXDBuXDBcMFwwblwwXDBcMG5cMFwwXDBuXDBcMFwwblwwXDBcMG5cMFwwXDBsXDBcMFwwYFwwXDBcMDoiCi0gICJcMFwwXDBcMjNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDFcMFwwXDBcMTJcMFwwXDBcMzRcMFwwXDAmXDBcMFwwKFwwXDBcMChcMFwwXDAoXDBcMFwwKVwwXDAiCi0gICJcMClcMFwwXDApXDBcMFwwKVwwXDBcMClcMFwwXDApXDBcMFwwKVwwXDBcMClcMFwwXDApXDBcMFwwKVwwXDBcMClcMCIKLSAgIlwwXDApXDBcMFwwKVwwXDBcMChcMFwwXDAjXDBcMFwwXDI1XDBcMFwwXDdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFw0XDBcMFwwIgotICAiXDZcMFwwXDBcN1wwXDBcMFw3XDBcMFwwXDdcMFwwXDBcN1wwXDBcMFw3XDBcMFwwXDdcMFwwXDBcN1wwXDBcMFw3XDAiCi0gICJcMFwwXDdcMFwwXDBcN1wwXDBcMFw3XDBcMFwwXDdcMFwwXDBcN1wwXDBcMFw3XDBcMFwwXDdcMFwwXDBcN1wwXDBcMCIKLSAgIlw3XDBcMFwwXDZcMFwwXDBcNFwwXDBcMFwxIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19ub3QpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19ub3RbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX25vdFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBiXDBcMFwwXDI2MFwwXDBcMFwzNDIiCi0gICJcMFwwXDBcMzczXDBcMFwwXDM3M1wwXDBcMFwzNDNcMFwwXDBcMjYzXDBcMFwwalwwXDBcMFwxM1wwXDBcMFw1XDBcMCIKLSAgIlwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwYlwwXDBcMFwzNDFuXDM1XDE1XDM3N1wyNjcwXDI1XDM3N1wzMTUiCi0gICI0XDI3XDM3N1wzMTczXDI3XDM3N1wzMTUyXDI2XDM3N1wzMTAvXDI1XDM3N1wyNjAoXDIyXDM3N2hcMjdcMTJcMzc3XDAiCi0gICJcMFwwXDM0NVwwXDBcMG9cMFwwXDBcMTRcMFwwXDBcNFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyMjVLXDI0XDExXDM3N1wzMTA1XDI3XDM3NyIKLSAgIlwzMjM3XDMxXDM3N1wzMjE1XDMwXDM3N1wzMTczXDI3XDM3N1wzMTUxXDI2XDM3N1wzMTQwXDI1XDM3N1wzMTIuXDI1IgotICAiXDM3N1wzMTAsXDI0XDM3N1wzMDYrXDIzXDM3N1wyNzAnXDIxXDM3N0RcMTZcNVwzNzdcMFwwXDBcMjQzXDBcMFwwXDI0IgotICAiXDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDAiCi0gICJcMFwyMjVvXDM2XDE1XDM3N1wzMjM4XDMxXDM3N1wzMjM2XDMwXDM3N1wzMzFfSFwzNzdcMzYxXDMxN1wzMTFcMzc3XDM3MSIKLSAgIlwzNjRcMzYzXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzY0XDM1M1wzNTJcMzc3XDM1MFwyNzNcMjY1XDM3N1wzMjV2alwzNzciCi0gICJcMzA3XDc3LVwzNzdcMzAyJ1wyMVwzNzdcMzAwJVwyMVwzNzdjXDIyXDEwXDM3N1wwXDBcMFwyNDZcMFwwXDBcMjZcMCIKLSAgIlwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBiS1wyNFwxMVwzNzdcMzIzIgotICAiOFwzMVwzNzdcMzIyNlwzMFwzNzdcMzUzXDI2MVwyNDZcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzJcMzcyXDM3MlwzNzciCi0gICJcMzcyXDM3MlwzNzJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM1NSIKLSAgIlwzMjRcMzIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzYjXDIwXDM3N1wyNzQhXDE3XDM3N0JcMTNcNVwzNzciCi0gICJcMFwwXDB8XDBcMFwwXDI0XDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwzNDFcMzA3IgotICAiNFwyN1wzNzdcMzIyNlwzMFwzNzdcMzUzXDI2MVwyNDZcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzJcMzcyXDM3MlwzNzciCi0gICJcMzcyXDM3MlwzNzJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM1NSIKLSAgIlwzMjRcMzIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzJcMzdcMTYiCi0gICJcMzc3XDI1NVwzNFwxNFwzNzdcMFwwXDBcMzUxXDBcMFwwKFwwXDBcMFwxNFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMGJtXDM0XDE0XDM3N1wzMjI1XDMwXDM3N1wzMjZXQVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyIgotICAiXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzBcMzcwXDM3MFwzNzciCi0gICJcMzU1XDMyNFwzMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyIKLSAgIiNcMjBcMzc3XDMwM0M2XDM3N1wyNjZcMzRcMTRcMzc3XlwxNlw1XDM3N1wwXDBcMFwyMDRcMFwwXDBcMzFcMFwwXDBcNSIKLSAgIlwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMjYwXDI2Ni5cMjRcMzc3XDMxNzNcMjdcMzc3XDM0MVwyMzJcMjIwXDM3N1wzNzIiCi0gICJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MCIKLSAgIlwzNzBcMzc3XDM1NVwzMjRcMzIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwIgotICAiXDM3N1wyNzcjXDIwXDM3N1wzNDdcMzA2XDMwMlwzNzdcMzM1XDI0N1wyNDJcMzc3XDI2NFwzMlwxM1wzNzdcMjMzXDI1IgotICAiXDExXDM3N1wwXDBcMFwzMDRcMFwwXDAnXDBcMFwwXDEzXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFwzNDJcMzEzMlwyNlwzNzciCi0gICJcMzE1MVwyNlwzNzdcMzUzXDMwNlwzMDJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcwXDM3MCIKLSAgIlwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTVcMzI0XDMyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3IgotICAiI1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMzQ3XDMwNlwzMDJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNDciCi0gICJcMzEyXDMwNlwzNzdcMjYyXDMwXDEyXDM3N1wyNTVcMjZcMTJcMzc3XDBcMFwwXDM1MlwwXDBcMCIiNFwwXDBcMFwyMiIKLSAgIlwwXDBcMFwyXDBcMFwwXDNcMFwwXDBcMzczXDMxNDFcMjZcMzc3XDMxMy9cMjVcMzc3XDM2MVwzMzdcMzM1XDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTVcMzI0XDMyMFwzNzdcMjc3I1wyMCIKLSAgIlwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMzQ3XDMwNlwzMDJcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzU1XDM0M1wzNDJcMzc3XDI2MFwyNlwxMlwzNzdcMjU2XDI0IgotICAiXDExXDM3N1wwXDBcMFwzNzRcMFwwXDA8XDBcMFwwXDI2XDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzNzNcMzEyL1wyNVwzNzciCi0gICJcMzExLVwyNFwzNzdcMzYxXDMzN1wzMzVcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzU1XDMyNCIKLSAgIlwzMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3IgotICAiXDM0N1wzMDZcMzAyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNTEiCi0gICJcMzI3XDMyNVwzNzdcMjU2XDI0XDExXDM3N1wyNTRcMjJcMTBcMzc3XDBcMFwwXDM3NFwwXDBcMEFcMFwwXDBcMzBcMCIKLSAgIlwwXDBcM1wwXDBcMFwzXDBcMFwwXDM0M1wzMDUsXDIzXDM3N1wzMDcrXDIzXDM3N1wzNDdcMjcyXDI2NVwzNzdcMzY3IgotICAiXDM2N1wzNjdcMzc3XDM1NVwzMjRcMzIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzciCi0gICIjXDIwXDM3N1wyNzcjXDIwXDM3N1wzNDdcMzA2XDMwMlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MVwzNjFcMzYxXDM3NyIKLSAgIlwzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM0NlwzMjFcMzE2XDM3N1wyNTVcMjJcMTBcMzc3XDI0N1wyMCIKLSAgIlw3XDM3N1wwXDBcMFwzNTNcMFwwXDBBXDBcMFwwXDMwXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwyNjNcMjU1JVwyMFwzNzciCi0gICJcMzA1KVwyMlwzNzdcMzM1XDIyNlwyMTVcMzc3XDM1MlwzMTBcMzA0XDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3NyIKLSAgIlwyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wzNDdcMzA2XDMwMlwzNzdcMzYyXDM2MlwzNjJcMzc3IgotICAiXDM2MVwzNjFcMzYxXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzMzMiCi0gICJcMjU0XDI1MFwzNzdcMjUzXDIwXDdcMzc3XDIyM1wxNFw1XDM3N1wwXDBcMFwzMTBcMFwwXDA9XDBcMFwwXDI2XDBcMCIKLSAgIlwwXDNcMFwwXDBcMlwwXDBcMGpmXDI1XDExXDM3N1wzMDInXDIxXDM3N1wzMDdBMVwzNzdcMjc3I1wyMFwzNzdcMjc3IgotICAiI1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMzQ3XDMwNVwzMDFcMzc3XDM2MlwzNjIiCi0gICJcMzYyXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1NyIKLSAgIlwzNzdcMzU2XDM1NlwzNTZcMzc3XDI2NzozXDM3N1wyNTBcMTZcNlwzNzdWXDZcMlwzNzdcMFwwXDBcMjIyXDBcMFwwIgotICAiNFwwXDBcMFwyMlwwXDBcMFwyXDBcMFwwXDFcMFwwXDBcMTNcMFwwXDBcMzQ1XDI2NCNcMjBcMzc3XDI3NyNcMjBcMzc3IgotICAiXDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDM0N1wzMDVcMzAxXDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzU3XDM1NyIKLSAgIlwzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzMjFcMjIzXDIxN1wzNzdcMjUwXDE2XDZcMzc3XDIzM1wxM1w1XDM3N1wwIgotICAiXDBcMFwzNTNcMFwwXDBJXDBcMFwwJ1wwXDBcMFwxM1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcNVwwXDBcMG9DXDE0XDUiCi0gICJcMzc3XDI3NCFcMTdcMzc3XDI3M1w0MFwxNlwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMzQ0XDI3M1wyNjZcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTciCi0gICJcMzU3XDM1N1wzNzdcMzU1XDM1NVwzNTVcMzc3XDMyMVwyMjNcMjE3XDM3N1wyNDdcMTVcNlwzNzdcMjQ1XDEzXDVcMzc3IgotICAiOVwzXDFcMzc3XDBcMFwwXDIyNFwwXDBcMDtcMFwwXDBcMzFcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwIgotICAiXDBcMFwxNFwwXDBcMFwyNDNhXDIwXDdcMzc3XDI3MFwzNlwxNVwzNzdcMjY3XDM0XDE0XDM3N1wzMDA9MVwzNzdcMzI2IgotICAiXDIxMlwyMDFcMzc3XDMzN1wyNTVcMjQ2XDM3N1wzNDRcMzAzXDI3NlwzNzdcMzU0XDM0M1wzNDFcMzc3XDM0NlwzMjEiCi0gICJcMzE2XDM3N1wzMzJcMjUzXDI0N1wzNzdcMjY3ODBcMzc3XDI0N1wxNVw1XDM3N1wyNDRcMTNcNVwzNzdVXDVcMVwzNzciCi0gICJcMFwwXDBcMjY3XDBcMFwwRlwwXDBcMChcMFwwXDBcMTRcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFw0XDBcMFwwXDI0XDBcMFwwXDI0NkBcMTJcM1wzNzdcMjUxXDMxXDEyXDM3N1wyNjNcMzBcMTNcMzc3XDI2MVwyNiIKLSAgIlwxMlwzNzdcMjU3XDI1XDExXDM3N1wyNTVcMjNcMTBcMzc3XDI1M1wyMVwxMFwzNzdcMjUyXDIwXDdcMzc3XDI1MFwxNiIKLSAgIlw2XDM3N1wyNDZcMTRcNVwzNzdcMjMyXDEyXDRcMzc3OVwzXDFcMzc3XDBcMFwwXDI2N1wwXDBcMElcMFwwXDAvXDBcMCIKLSAgIlwwXDI0XDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDZcMFwwXDBcMjYiCi0gICJcMFwwXDB8XDBcMFwwXDM1MVxcXDEzXDVcMzc3XDIzMFwyMlwxMFwzNzdcMjUyXDIzXDEwXDM3N1wyNTNcMjFcN1wzNzciCi0gICJcMjUxXDE3XDdcMzc3XDI0NFwxNlw2XDM3N1wyMjFcMTNcNFwzNzdVXDVcMlwzNzdcMFwwXDBcMzUzXDBcMFwwXDIyNCIKLSAgIlwwXDBcMEZcMFwwXDAvXDBcMFwwXDI2XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw2XDBcMFwwXDI0XDBcMFwwKFwwXDBcMFwyMDRcMFwwXDBcMzA0XDBcMFwwIgotICAiXDM1MlwwXDBcMFwzNzRcMFwwXDBcMzc0XDBcMFwwXDM1M1wwXDBcMFwzMTBcMFwwXDBcMjIyXDBcMFwwSVwwXDBcMDsiCi0gICJcMFwwXDAoXDBcMFwwXDI0XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNFwwXDBcMFwxNFwwXDBcMFwzMVwwXDBcMCdcMFwwXDAiIjQiCi0gICJcMFwwXDA8XDBcMFwwQVwwXDBcMEFcMFwwXDA8XDBcMFwwIiI0XDBcMFwwJ1wwXDBcMFwzMVwwXDBcMFwxNFwwXDBcMCIKLSAgIlw0XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMTNcMFwwXDBcMjJcMFwwXDBcMjZcMFwwIgotICAiXDBcMzBcMFwwXDBcMzBcMFwwXDBcMjZcMFwwXDBcMjJcMFwwXDBcMTNcMFwwXDBcNVwwXDBcMFwxXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcM1wwXDBcMFwzXDBcMCIKLSAgIlwwXDNcMFwwXDBcM1wwXDBcMFwyXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190YWJsZV9ib3JkZXJzKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGFibGVfYm9yZGVyc1tdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGFibGVfYm9yZGVyc1tdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMTZcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMzZcMzM2XDMzNlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwRVwwXDBcMFwxNlwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3NyIKLSAgIlwzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MlwzNjJcMzYyXDM3N25ublwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwIgotICAiXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjMiCi0gICJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3NyIKLSAgIlwzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N2pqalwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxIgotICAiXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjQiCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N2tra1wzNzdcMzY1XDM2NVwzNjVcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjciCi0gICJcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyIgotICAiXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjUiCi0gICJcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3NyIKLSAgIlwzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNTFcMzUxXDM1MVwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3NyIKLSAgIlwzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NVwzNjVcMzY1XDM3N2tra1wzNzdcMzY2XDM2NlwzNjZcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNTFcMzUxXDM1MVwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MSIKLSAgIlwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjYiCi0gICJcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3NyIKLSAgIlwzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNTJcMzUyXDM1MlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzZcMzc2XDM3NlwzNzdra2tcMzc3XDM2MlwzNjIiCi0gICJcMzYyXDM3N2pqalwzNzdcMzYzXDM2M1wzNjNcMzc3ampqXDM3N1wzNjRcMzY0XDM2NFwzNzdra2tcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N2xsbFwzNzdcMzY3XDM2N1wzNjdcMzc3bGxsXDM3N1wzNzBcMzcwXDM3MFwzNzdtbW1cMzc3XDM3MVwzNzEiCi0gICJcMzcxXDM3N21tbVwzNzdcMzcyXDM3MlwzNzJcMzc3bm5uXDM3N1wzNTNcMzUzXDM1M1wzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjIiCi0gICJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3IgotICAiXDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzIiCi0gICJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNTNcMzUzXDM1M1wzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2MyIKLSAgIlwzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N2xsbFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzEiCi0gICJcMzcxXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3MyIKLSAgIlwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNTRcMzU0XDM1NFwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NiIKLSAgIlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3IgotICAiXDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzQiCi0gICJcMzc0XDM3NFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNTRcMzU0XDM1NFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NCIKLSAgIlwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2IgotICAiXDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N21tbVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzIiCi0gICJcMzcyXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0XDM3NCIKLSAgIlwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjUiCi0gICJcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2NyIKLSAgIlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3IgotICAiXDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzUiCi0gICJcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3IgotICAiXDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N21tbVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3M1wzNzMiCi0gICJcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzVcMzc1XDM3NSIKLSAgIlwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3IgotICAiXDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzYiCi0gICJcMzc2XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NiIKLSAgIlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxIgotICAiXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N25ublwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzQiCi0gICJcMzc0XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwIgotICAiXDBcMFwwXDBcMFwwXDE1XDBcMFwwRFwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDAiCi0gICJcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMCIKLSAgIlwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBFXDBcMFwwXDE2XDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwxNVwwXDBcMFwyMCIKLSAgIlwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMCIKLSAgIlwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwIgotICAiXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwxNlwwXDBcMFwzIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190YWJsZV9maWxsKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGFibGVfZmlsbFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGFibGVfZmlsbFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMTZcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjYyXDI2MlwyNjJcMzc3XDI2MiIKLSAgIlwyNjJcMjYyXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjYyXDI2MlwyNjJcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNjJcMjYyIgotICAiXDI2MlwzNzdcMjYyXDI2MlwyNjJcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNjBcMjYwXDI2MFwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMzZcMzM2XDMzNlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwRVwwXDBcMFwxNlwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDciCi0gICJcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0N1wyNDdcMjQ3XDM3NyIKLSAgIlwyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI1MFwyNTBcMjUwXDM3N0xMTFwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0NyIKLSAgIlwyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNDdcMjQ3IgotICAiXDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI1MFwyNTBcMjUwXDM3N1wyNTBcMjUwXDI1MFwzNzdcMzYzXDM2M1wzNjMiCi0gICJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDciCi0gICJcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0N1wyNDdcMjQ3XDM3NyIKLSAgIlwyNDdcMjQ3XDI0N1wzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MFwyNTBcMjUwXDM3N0lJSVwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0NyIKLSAgIlwyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNTBcMjUwIgotICAiXDI1MFwzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MVwyNTFcMjUxXDM3N1wyNTFcMjUxXDI1MVwzNzdcMzY0XDM2NFwzNjQiCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDciCi0gICJcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI1MFwyNTBcMjUwXDM3NyIKLSAgIlwyNTBcMjUwXDI1MFwzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MVwyNTFcMjUxXDM3N0pKSlwzNzdcMzY1XDM2NVwzNjVcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjciCi0gICJcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0NyIKLSAgIlwyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MFwyNTBcMjUwXDM3N1wyNTBcMjUwIgotICAiXDI1MFwzNzdcMjUxXDI1MVwyNTFcMzc3XDI1MlwyNTJcMjUyXDM3N1wyNTNcMjUzXDI1M1wzNzdcMzY1XDM2NVwzNjUiCi0gICJcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3NyIKLSAgIlwzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNTFcMzUxXDM1MVwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDciCi0gICJcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNTBcMjUwXDI1MFwzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MFwyNTBcMjUwXDM3NyIKLSAgIlwyNTFcMjUxXDI1MVwzNzdcMjUxXDI1MVwyNTFcMzc3XDI1M1wyNTNcMjUzXDM3N0pKSlwzNzdcMzY2XDM2NlwzNjZcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNTFcMzUxXDM1MVwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MCIKLSAgIlwyNTBcMjUwXDM3N1wyNTBcMjUwXDI1MFwzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MVwyNTFcMjUxXDM3N1wyNTFcMjUxIgotICAiXDI1MVwzNzdcMjUyXDI1MlwyNTJcMzc3XDI1M1wyNTNcMjUzXDM3N1wyNTNcMjUzXDI1M1wzNzdcMzY2XDM2NlwzNjYiCi0gICJcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3NyIKLSAgIlwzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNTJcMzUyXDM1MlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjFcMjYxXDI2MVwzNzdKSkpcMzc3XDI1MFwyNTAiCi0gICJcMjUwXDM3N0lJSVwzNzdcMjUxXDI1MVwyNTFcMzc3SUlJXDM3N1wyNTJcMjUyXDI1MlwzNzdKSkpcMzc3XDI1M1wyNTMiCi0gICJcMjUzXDM3N0tLS1wzNzdcMjU0XDI1NFwyNTRcMzc3S0tLXDM3N1wyNTVcMjU1XDI1NVwzNzdMTExcMzc3XDI1NVwyNTUiCi0gICJcMjU1XDM3N0xMTFwzNzdcMjU2XDI1NlwyNTZcMzc3TExMXDM3N1wyNDRcMjQ0XDI0NFwzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjIiCi0gICJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wyNTRcMjU0XDI1NFwzNzdcMjU0XDI1NFwyNTRcMzc3IgotICAiXDI1NVwyNTVcMjU1XDM3N1wyNTVcMjU1XDI1NVwzNzdcMjU1XDI1NVwyNTVcMzc3XDI1NlwyNTZcMjU2XDM3N1wyNTYiCi0gICJcMjU2XDI1NlwzNzdcMjU3XDI1N1wyNTdcMzc3XDI1N1wyNTdcMjU3XDM3N1wyNDRcMjQ0XDI0NFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2MyIKLSAgIlwzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N0tLS1wzNzdcMjU1XDI1NVwyNTVcMzc3XDI1NVwyNTUiCi0gICJcMjU1XDM3N1wyNTVcMjU1XDI1NVwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1NlwyNTZcMjU2XDM3N1wyNTdcMjU3XDI1NyIKLSAgIlwzNzdcMjU3XDI1N1wyNTdcMzc3XDI1N1wyNTdcMjU3XDM3N1wyNDRcMjQ0XDI0NFwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NiIKLSAgIlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wyNTVcMjU1XDI1NVwzNzdcMjU1XDI1NVwyNTVcMzc3IgotICAiXDI1NVwyNTVcMjU1XDM3N1wyNTZcMjU2XDI1NlwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1N1wyNTdcMjU3XDM3N1wyNTciCi0gICJcMjU3XDI1N1wzNzdcMjU3XDI1N1wyNTdcMzc3XDI2MFwyNjBcMjYwXDM3N1wyNDRcMjQ0XDI0NFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NCIKLSAgIlwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2IgotICAiXDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N0xMTFwzNzdcMjU1XDI1NVwyNTVcMzc3XDI1NlwyNTYiCi0gICJcMjU2XDM3N1wyNTZcMjU2XDI1NlwzNzdcMjU3XDI1N1wyNTdcMzc3XDI1N1wyNTdcMjU3XDM3N1wyNTdcMjU3XDI1NyIKLSAgIlwzNzdcMjYwXDI2MFwyNjBcMzc3XDI2MFwyNjBcMjYwXDM3N1wyNDVcMjQ1XDI0NVwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjUiCi0gICJcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2NyIKLSAgIlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MVwzNzFcMzcxXDM3N1wyNTVcMjU1XDI1NVwzNzdcMjU2XDI1NlwyNTZcMzc3IgotICAiXDI1NlwyNTZcMjU2XDM3N1wyNTdcMjU3XDI1N1wzNzdcMjU3XDI1N1wyNTdcMzc3XDI1N1wyNTdcMjU3XDM3N1wyNjAiCi0gICJcMjYwXDI2MFwzNzdcMjYwXDI2MFwyNjBcMzc3XDI2MVwyNjFcMjYxXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3IgotICAiXDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N0xMTFwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1N1wyNTciCi0gICJcMjU3XDM3N1wyNTdcMjU3XDI1N1wzNzdcMjU3XDI1N1wyNTdcMzc3XDI2MFwyNjBcMjYwXDM3N1wyNjBcMjYwXDI2MCIKLSAgIlwzNzdcMjYxXDI2MVwyNjFcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wyNTZcMjU2XDI1NlwzNzdcMjU3XDI1N1wyNTdcMzc3IgotICAiXDI1N1wyNTdcMjU3XDM3N1wyNTdcMjU3XDI1N1wzNzdcMjYwXDI2MFwyNjBcMzc3XDI2MFwyNjBcMjYwXDM3N1wyNjEiCi0gICJcMjYxXDI2MVwzNzdcMjYyXDI2MlwyNjJcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NiIKLSAgIlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxIgotICAiXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N0xMTFwzNzdcMjU3XDI1N1wyNTdcMzc3XDI1N1wyNTciCi0gICJcMjU3XDM3N1wyNjBcMjYwXDI2MFwzNzdcMjYwXDI2MFwyNjBcMzc3XDI2MVwyNjFcMjYxXDM3N1wyNjJcMjYyXDI2MiIKLSAgIlwzNzdcMjYyXDI2MlwyNjJcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0NlwzNDYiCi0gICJcMzQ2XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTBcMzUwXDM1MCIKLSAgIlwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wyNDRcMjQ0XDI0NFwzNzdcMjQ0XDI0NFwyNDRcMzc3IgotICAiXDI0NFwyNDRcMjQ0XDM3N1wyNDRcMjQ0XDI0NFwzNzdcMjQ1XDI0NVwyNDVcMzc3XDI0NlwyNDZcMjQ2XDM3N1wyNDYiCi0gICJcMjQ2XDI0NlwzNzdcMjQ2XDI0NlwyNDZcMzc3XDI0NlwyNDZcMjQ2XDM3N1wyMzJcMjMyXDIzMlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDE1XDBcMFwwIgotICAiRFwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDAiCi0gICJcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMCIKLSAgIlwwXDBFXDBcMFwwXDE2XDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwxNVwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwIgotICAiXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMCIKLSAgIlwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMCIKLSAgIlwyMFwwXDBcMFwxNlwwXDBcMFwzIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190ZXh0X2J1bGxldGVkX2xpc3QpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja190ZXh0X2J1bGxldGVkX2xpc3RbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3RleHRfYnVsbGV0ZWRfbGlzdFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDI3XDBcMFwwXDIyNFwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwyMzIiCi0gICJcMFwwXDAnXDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwyMjRcMzQyXDM0MlwzNDJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY0XDM2NFwzNjRcMzc3XDMzMyIKLSAgIlwzMzNcMzMzXDM3N1wwXDBcMFwyNDNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM0MCIKLSAgIlwzNDBcMzQwXDM3N1wzNDBcMzQwXDM0MFwzNzdcMzQxXDM0MVwzNDFcMzc3XDM0MlwzNDJcMzQyXDM3N1wzNDNcMzQzIgotICAiXDM0M1wzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDciCi0gICJcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3NyIKLSAgIlwzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM1NVwzNTVcMzU1XDM3N1wwXDBcMFwzNzdcMFwwXDApXDBcMFwwXDE2XDBcMFwwXDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzQxXDM0MVwzNDFcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNDJcMzQyXDM0MlwzNzdcMzQzXDM0MyIKLSAgIlwzNDNcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3IgotICAiXDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTJcMzUyXDM1MlwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NyIKLSAgIlwzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDBcMFwwXDM3N1wwXDBcMCIiOFwwXDBcMCIKLSAgIlwyNVwwXDBcMFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM0MlwzNDJcMzQyXDM3N1wzNDNcMzQzXDM0M1wzNzdcMjM2XDIzNiIKLSAgIlwyMzZcMzc3bW1tXDM3N1wyMzdcMjM3XDIzN1wzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3XDM3N29vb1wzNzciCi0gICJwcHBcMzc3cHBwXDM3N3FxcVwzNzdxcXFcMzc3cXFxXDM3N3JyclwzNzdycnJcMzc3c3NzXDM3N1wzNjBcMzYwXDM2MCIKLSAgIlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwIgotICAiXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzQzXDM0M1wzNDNcMzc3XDM0NFwzNDRcMzQ0XDM3N25ublwzNzdubm5cMzc3bm4iCi0gICJuXDM3N1wzNDdcMzQ3XDM0N1wzNzdcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NiIKLSAgIlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyIgotICAiXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ1XDM0NVwzNDVcMzc3XDI0MFwyNDBcMjQwXDM3N29vb1wzNzdcMjQxXDI0MSIKLSAgIlwyNDFcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdwcHBcMzc3cXFxXDM3N3FxcVwzNzdycnJcMzc3IgotICAicnJyXDM3N3Nzc1wzNzdzc3NcMzc3c3NzXDM3N3R0dFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjQiCi0gICJcMzY0XDM2NFwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzYzXDM2M1wzNjNcMzc3XDM0NSIKLSAgIlwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxIgotICAiXDM1MVwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTQiCi0gICJcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3NyIKLSAgIlwzNTZcMzU2XDM1NlwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0IgotICAiXDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjQiCi0gICJcMzY0XDM2NFwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3XDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MSIKLSAgIlwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3cXFxXDM3N3JyclwzNzciCi0gICJycnJcMzc3c3NzXDM3N3Nzc1wzNzd0dHRcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDBcMFwwXDM3N1wwIgotICAiXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMzUwXDM1MFwzNTAiCi0gICJcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3NyIKLSAgIlwzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwIgotICAiXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjQiCi0gICJcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2NyIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM1MFwzNTBcMzUwIgotICAiXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzciCi0gICJcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0IgotICAiXDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjciCi0gICJcMzc3XDM3MFwzNzBcMzcwXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3IgotICAiXDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjAiCi0gICJcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NCIKLSAgIlwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwIgotICAiXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDAiCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3NyIKLSAgIlwzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxIgotICAiXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjQiCi0gICJcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzJcMzcyXDM3MlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY2XDM2NlwzNjZcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzciCi0gICJcMzAzXDMwM1wzMDNcMzc3cnJyXDM3N1wzMDRcMzA0XDMwNFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3NyIKLSAgInR0dFwzNzd1dXVcMzc3XDIwM1wyMDNcMjAzXDM3N3V1dVwzNzd2dnZcMzc3dnZ2XDM3N3d3d1wzNzd3d3dcMzc3eHh4IgotICAiXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICI9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NVwzNTVcMzU1XDM3NyIKLSAgInJyclwzNzdzc3NcMzc3c3NzXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3NyIKLSAgIlwzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3IgotICAiXDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3M1wzNzMiCi0gICJcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMCIKLSAgIlwwXDBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDMwNFwzMDRcMzA0IgotICAiXDM3N3Nzc1wzNzdcMzA2XDMwNlwzMDZcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzd1dXVcMzc3dnYiCi0gICJ2XDM3N3Z2dlwzNzd3d3dcMzc3d3d3XDM3N3d3d1wzNzd4eHhcMzc3eHh4XDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NCIKLSAgIlwzNzRcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwIgotICAiXDBcMFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjIiCi0gICJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyIgotICAiXDM3MlwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzUiCi0gICJcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyIgotICAiXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MiIKLSAgIlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MiIKLSAgIlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzIiCi0gICJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc2XDM3NiIKLSAgIlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNTRcMzU0XDM1NFwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwyMzJcMzExXDMxMVwzMTEiCi0gICJcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyIgotICAiXDM3MlwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzYiCi0gICJcMzc2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzU2XDM1NlwzNTZcMzc3XDI3NVwyNzVcMjc1XDM3N1wwXDBcMFwzMjRcMFwwXDA6XDBcMFwwXDI2XDBcMFwwIgotICAiXDM0XDBcMFwwXDI0M1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzMjRcMCIKLSAgIlwwXDBZXDBcMFwwLVwwXDBcMFwyMFwwXDBcMFw2XDBcMFwwXDI0XDBcMFwwKVwwXDBcMCIiOFwwXDBcMDxcMFwwXDA9IgotICAiXDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwIgotICAiPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDAiIjlcMFwwXDAtXDBcMFwwXDMxXDBcMFwwXDdcMFwwXDAiCi0gICJcMVwwXDBcMFw2XDBcMFwwXDE2XDBcMFwwXDI0XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMCIKLSAgIlwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3IgotICAiXDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI1XDBcMFwwXDIwXDBcMFwwXDdcMFwwXDAiCi0gICJcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMCIKLSAgIlwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwIgotICAiXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwyXDBcMFwwXDFcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfdGV4dF9pbmRlbnQpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja190ZXh0X2luZGVudFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGV4dF9pbmRlbnRbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwyN1wwXDBcMFwyMjRcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjMyIgotICAiXDBcMFwwJ1wwXDBcMFw2XDBcMFwwXDFcMFwwXDBcMjI0XDM0MlwzNDJcMzQyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyIgotICAiXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjRcMzY0XDM2NCIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NFwzNjRcMzY0XDM3N1wzMzMiCi0gICJcMzMzXDMzM1wzNzdcMFwwXDBcMjQzXDBcMFwwXDI1XDBcMFwwXDZcMFwwXDBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNDAiCi0gICJcMzQwXDM0MFwzNzdcMzQwXDM0MFwzNDBcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNDJcMzQyXDM0MlwzNzdcMzQzXDM0MyIKLSAgIlwzNDNcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDVcMzQ1XDM0NVwzNzdcMjU2XDI1NlwyNTZcMzc3XDM0N1wzNDdcMzQ3IgotICAiXDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NyIKLSAgIlwzNTdcMzU3XDM3N1wzNDNcMzQzXDM0M1wzNzdcMFwwXDBcMzc3XDBcMFwwKVwwXDBcMFwxNlwwXDBcMFwzNzdcMzYyIgotICAiXDM2MlwzNjJcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzQyXDM0MlwzNDJcMzc3XDM0M1wzNDMiCi0gICJcMzQzXDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0NyIKLSAgIlwzNzdcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUyXDM1MlwzNTJcMzc3IgotICAiXDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTciCi0gICJcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM0N1wzNDdcMzQ3XDM3N1wwXDBcMFwzNzdcMFwwXDAiIjhcMFwwXDAiCi0gICJcMjVcMFwwXDBcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNDJcMzQyXDM0MlwzNzdcMjU0XDI1NFwyNTRcMzc3XDI1NFwyNTQiCi0gICJcMjU0XDM3N1wyNTVcMjU1XDI1NVwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1NlwyNTZcMjU2XDM3N1wyNTdcMjU3XDI1NyIKLSAgIlwzNzdcMjYwXDI2MFwyNjBcMzc3XDI2MVwyNjFcMjYxXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjYyXDI2MlwyNjJcMzc3IgotICAiXDI2M1wyNjNcMjYzXDM3N1wyNjNcMjYzXDI2M1wzNzdcMjY0XDI2NFwyNjRcMzc3XDI2NVwyNjVcMjY1XDM3N1wyNjUiCi0gICJcMjY1XDI2NVwzNzdcMjY2XDI2NlwyNjZcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzYzXDM2M1wzNjNcMzc3XDM0M1wzNDNcMzQzXDM3N1wzNDRcMzQ0XDM0NCIKLSAgIlwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3IgotICAiXDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTQiCi0gICJcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1NyIKLSAgIlwzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM1MVwzNTFcMzUxIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzQ0XDM0NFwzNDQiCi0gICJcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM0N1wzNDdcMzQ3XDM3NyIKLSAgIlwzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0IgotICAiXDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1N1wzNTciCi0gICJcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2MyIKLSAgIlwzNzdcMzUyXDM1MlwzNTJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2M1wzNjNcMzYzIgotICAiXDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3XDM3N1wzNTBcMzUwXDM1MFwzNzciCi0gICJcMzUxXDM1MVwzNTFcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzd1dXVcMzc3dnZ2XDM3N3Z2dlwzNzciCi0gICJ3d3dcMzc3d3d3XDM3N3h4eFwzNzd4eHhcMzc3eHh4XDM3N3l5eVwzNzd5eXlcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNTMiCi0gICJcMzUzXDM1M1wzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY0XDM2NFwzNjRcMzc3XDM0NiIKLSAgIlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMzUwXDM1MFwzNTBcMzc3XDI1MlwyNTJcMjUyXDM3N1wzNTJcMzUyIgotICAiXDM1MlwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTUiCi0gICJcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1IgotICAiXDM2NVwzNjVcMzc3XDM1NFwzNTRcMzU0XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjQiCi0gICJcMzY0XDM2NFwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMFwwXDBcMzc3IgotICAiXDI1NFwyNTRcMjU0XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU0XDM1NFwzNTRcMzc3dnZ2XDM3N3d3d1wzNzd3d3dcMzc3IgotICAieHh4XDM3N3h4eFwzNzd5eXlcMzc3eXl5XDM3N3p6elwzNzd6enpcMzc3enp6XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzU1IgotICAiXDM1NVwzNTVcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NVwzNjVcMzY1XDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDI1NVwyNTVcMjU1XDM3N1wzNTZcMzU2IgotICAiXDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjEiCi0gICJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTIiCi0gICJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDBcMFwwXDM3N1wyNTVcMjU1XDI1NVwzNzdcMzU2XDM1NlwzNTZcMzc3IgotICAiXDM1N1wzNTdcMzU3XDM3N3h4eFwzNzd4eHhcMzc3eHh4XDM3N3l5eVwzNzd5eXlcMzc3enp6XDM3N3p6elwzNzd7e3siCi0gICJcMzc3e3t7XDM3N3x8fFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM1N1wzNTdcMzU3XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDAiCi0gICJcMFwwXDI3XDBcMFwwXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTQiCi0gICJcMzU0XDM1NFwzNzdcMjU1XDI1NVwyNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MCIKLSAgIlwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzIgotICAiXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzciCi0gICJcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzYwXDM2MFwzNjBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0IgotICAiXDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjAiCi0gICJcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzd5eXlcMzc3eXl5XDM3N3p6elwzNzd6enpcMzc3enp6XDM3N1wzNjZcMzY2XDM2NiIKLSAgIlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3IgotICAiXDM3M1wzNzNcMzczXDM3N1wzNjJcMzYyXDM2MlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzciCi0gICJcMzY3XDM2N1wzNjdcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NyIKLSAgIlwzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjYiCi0gICJcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3NyIKLSAgIlwzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM2M1wzNjNcMzYzXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMCIKLSAgIlwwXDI3XDBcMFwwXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTdcMzU3IgotICAiXDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjMiCi0gICJcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczIgotICAiXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMjY3XDI2N1wyNjciCi0gICJcMzc3XDI3MFwyNzBcMjcwXDM3N1wyNzBcMjcwXDI3MFwzNzdcMjcwXDI3MFwyNzBcMzc3XDI3MVwyNzFcMjcxXDM3NyIKLSAgIlwyNzJcMjcyXDI3MlwzNzdcMjczXDI3M1wyNzNcMzc3XDI3M1wyNzNcMjczXDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc1IgotICAiXDI3NVwyNzVcMzc3XDI3NlwyNzZcMjc2XDM3N1wyNzZcMjc2XDI3NlwzNzdcMjc2XDI3NlwyNzZcMzc3XDI3N1wyNzciCi0gICJcMjc3XDM3N1wzMDBcMzAwXDMwMFwzNzdcMzAxXDMwMVwzMDFcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2MVwzNjFcMzYxIgotICAiXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjRcMzY0XDM2NFwzNzciCi0gICJcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjJcMzYyXDM2MiIKLSAgIlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDI3NFwyNzRcMjc0XDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NSIKLSAgIlwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzMxXDMzMVwzMzFcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDAiCi0gICJcMjMyXDMxMVwzMTFcMzExXDM3N1wzMzJcMzMyXDMzMlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1M1wzNTNcMzUzXDM3NyIKLSAgIlwzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N1wyNzVcMjc1XDI3NVwzNzdcMFwwXDBcMzI0XDBcMFwwIgotICAiOlwwXDBcMFwyNlwwXDBcMFwzNFwwXDBcMFwyNDNcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzI0XDBcMFwwWVwwXDBcMC1cMFwwXDBcMjBcMFwwXDBcNlwwXDBcMFwyNFwwXDBcMClcMFwwXDAiIjhcMCIKLSAgIlwwXDA8XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9IgotICAiXDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwIiI5XDBcMFwwLVwwXDBcMFwzMVwwIgotICAiXDBcMFw3XDBcMFwwXDFcMFwwXDBcNlwwXDBcMFwxNlwwXDBcMFwyNFwwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwIgotICAiXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyNyIKLSAgIlwwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyNVwwXDBcMFwyMFwwXDBcMCIKLSAgIlw3XDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwIgotICAiXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDAiCi0gICJcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDAifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX3RleHRfbnVtYmVyZWRfbGlzdCkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3RleHRfbnVtYmVyZWRfbGlzdFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGV4dF9udW1iZXJlZF9saXN0W10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoMjMwNCkgKi8KLSAgIlwwXDBcMTFcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoOTYpICovCi0gICJcMFwwXDBgIgotICAvKiB3aWR0aCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIGhlaWdodCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMjdcMFwwXDBcMjI0XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDIzMiIKLSAgIlwwXDBcMCdcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDIyNFwzNDJcMzQyXDM0MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MiIKLSAgIlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY0XDM2NFwzNjQiCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzMzIgotICAiXDMzM1wzMzNcMzc3XDBcMFwwXDI0M1wwXDBcMFwyNVwwXDBcMFw2XDBcMFwwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzQwIgotICAiXDM0MFwzNDBcMzc3XDM0MFwzNDBcMzQwXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzQyXDM0MlwzNDJcMzc3XDM0M1wzNDMiCi0gICJcMzQzXDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0NyIKLSAgIlwzNzdcMzUwXDM1MFwzNTBcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTJcMzc3IgotICAiXDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTciCi0gICJcMzU3XDM1N1wzNzdcMzU1XDM1NVwzNTVcMzc3XDBcMFwwXDM3N1wwXDBcMClcMFwwXDBcMTZcMFwwXDBcMzc3XDM2MiIKLSAgIlwzNjJcMzYyXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzQxXDM0MVwzNDFcMzc3XDMxNFwzMTRcMzE0XDM3N21tbVwzNzdcMzQ0IgotICAiXDM0NFwzNDRcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTAiCi0gICJcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1MyIKLSAgIlwzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3IgotICAiXDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMFwwXDBcMzc3XDBcMFwwIiI4XDBcMFwwXDI1XDBcMFwwXDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzQyXDM0MlwzNDJcMzc3XDMxNVwzMTVcMzE1XDM3N21tbVwzNzdtbW1cMzc3XDM0NVwzNDUiCi0gICJcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3b29vXDM3N3BwcFwzNzdwcHBcMzc3cXFxXDM3NyIKLSAgInFxcVwzNzdxcXFcMzc3cnJyXDM3N3JyclwzNzdzc3NcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyIgotICAiXDM2MlwzNjJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNDMiCi0gICJcMzQzXDM0M1wzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NVwzNDVcMzQ1XDM3N25ublwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0NyIKLSAgIlwzNDdcMzQ3XDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzIgotICAiXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTYiCi0gICJcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3NyIKLSAgIlwzNjNcMzYzXDM2M1wzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzQ2XDM0NlwzNDZcMzc3b29vXDM3N1wzNDdcMzQ3XDM0N1wzNzciCi0gICJcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxXDM3N3BwcFwzNzdxcXFcMzc3cXFxXDM3N3JyclwzNzdycnJcMzc3cyIKLSAgInNzXDM3N3Nzc1wzNzdzc3NcMzc3dHR0XDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzQ1XDM0NVwzNDUiCi0gICJcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0N1wzNzdvb29cMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTFcMzUxXDM1MSIKLSAgIlwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3IgotICAiXDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNjAiCi0gICJcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNDZcMzQ2IgotICAiXDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTIiCi0gICJcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMjA2XDIwNlwyMDZcMzc3cnJyXDM3N3JyclwzNzdzcyIKLSAgInNcMzc3c3NzXDM3N3R0dFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0IgotICAiXDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyNyIKLSAgIlwwXDBcMFwzNzdcMzY0XDM2NFwzNjRcMzc3XDM0N1wzNDdcMzQ3XDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTEiCi0gICJcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NFwzNTRcMzU0XDM3NyIKLSAgIlwzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxIgotICAiXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjUiCi0gICJcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxIgotICAiXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzciCi0gICJcMzU2XDM1NlwzNTZcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MSIKLSAgIlwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzAiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTFcMzUxXDM1MSIKLSAgIlwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3IgotICAiXDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjEiCi0gICJcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwIgotICAiXDM3N1wzNzFcMzcxXDM3MVwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY1XDM2NVwzNjUiCi0gICJcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzAzXDMwM1wzMDNcMzc3cnJyXDM3N1wzMjdcMzI3XDMyNyIKLSAgIlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MiIKLSAgIlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjZcMzY2IgotICAiXDM2NlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N3JyclwzNzdcMzU2XDM1NlwzNTZcMzc3c3NzXDM3NyIKLSAgIlwzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3dHR0XDM3N3V1dVwzNzdcMjAzXDIwM1wyMDNcMzc3dXV1XDM3NyIKLSAgInZ2dlwzNzd2dnZcMzc3d3d3XDM3N3d3d1wzNzd4eHhcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0IgotICAiXDM3NFwzNzRcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTUiCi0gICJcMzU1XDM1NVwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzMzBcMzMwXDMzMFwzNzdzc3NcMzc3XDM2MSIKLSAgIlwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzAiCi0gICJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3NyIKLSAgIlwzNzVcMzc1XDM3NVwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY3XDM2N1wzNjdcMzc3IgotICAiXDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzMwXDMzMFwzMzBcMzc3c3NzXDM3N1wzMzJcMzMyXDMzMlwzNzciCi0gICJcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N3V1dVwzNzd2dnZcMzc3dnZ2XDM3N3d3d1wzNzd3d3dcMzc3dyIKLSAgInd3XDM3N3h4eFwzNzd4eHhcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3IgotICAiXDM3NlwzNzZcMzc2XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNzBcMzcwXDM3MFwzNzciCi0gICJcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N3R0dFwzNzd0dHRcMzc3dXV1XDM3N1wzNjRcMzY0XDM2NFwzNzciCi0gICJcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0IgotICAiXDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjFcMzYxXDM2MSIKLSAgIlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY0XDM2NFwzNjRcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NSIKLSAgIlwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzYyXDM2MlwzNjIiCi0gICJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxIgotICAiXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzUiCi0gICJcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM1NFwzNTRcMzU0XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwIgotICAiXDIzMlwzMTFcMzExXDMxMVwzNzdcMzU1XDM1NVwzNTVcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjVcMzY1XDM2NVwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMjc1XDI3NVwyNzVcMzc3XDBcMFwwXDMyNFwwXDBcMCIKLSAgIjpcMFwwXDBcMjZcMFwwXDBcMzRcMFwwXDBcMjQzXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDMyNFwwXDBcMFlcMFwwXDAtXDBcMFwwXDIwXDBcMFwwXDZcMFwwXDBcMjRcMFwwXDApXDBcMFwwIiI4XDAiCi0gICJcMFwwPFwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPSIKLSAgIlwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMCIiOVwwXDBcMC1cMFwwXDBcMzFcMCIKLSAgIlwwXDBcN1wwXDBcMFwxXDBcMFwwXDZcMFwwXDBcMTZcMFwwXDBcMjRcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMCIKLSAgIlwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjciCi0gICJcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjVcMFwwXDBcMjBcMFwwXDAiCi0gICJcN1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMCIKLSAgIlwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwIgotICAiXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDJcMFwwXDBcMVwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190ZXh0X3VuaW5kZW50KQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGV4dF91bmluZGVudFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGV4dF91bmluZGVudFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDI3XDBcMFwwXDIyNFwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwyMzIiCi0gICJcMFwwXDAnXDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwyMjRcMzQyXDM0MlwzNDJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY0XDM2NFwzNjRcMzc3XDMzMyIKLSAgIlwzMzNcMzMzXDM3N1wwXDBcMFwyNDNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM0MCIKLSAgIlwzNDBcMzQwXDM3N1wzNDBcMzQwXDM0MFwzNzdcMzQxXDM0MVwzNDFcMzc3XDM0MlwzNDJcMzQyXDM3N1wzNDNcMzQzIgotICAiXDM0M1wzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NVwzNDVcMzQ1XDM3N1wyNTZcMjU2XDI1NlwzNzdcMzQ3XDM0N1wzNDciCi0gICJcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3NyIKLSAgIlwzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM0M1wzNDNcMzQzXDM3N1wwXDBcMFwzNzdcMFwwXDApXDBcMFwwXDE2XDBcMFwwXDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzQxXDM0MVwzNDFcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNDJcMzQyXDM0MlwzNzdcMzQzXDM0MyIKLSAgIlwzNDNcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3IgotICAiXDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTJcMzUyXDM1MlwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NyIKLSAgIlwzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzQ3XDM0N1wzNDdcMzc3XDBcMFwwXDM3N1wwXDBcMCIiOFwwXDBcMCIKLSAgIlwyNVwwXDBcMFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM0MlwzNDJcMzQyXDM3N1wyNTRcMjU0XDI1NFwzNzdcMjU0XDI1NCIKLSAgIlwyNTRcMzc3XDI1NVwyNTVcMjU1XDM3N1wyNTZcMjU2XDI1NlwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1N1wyNTdcMjU3IgotICAiXDM3N1wyNjBcMjYwXDI2MFwzNzdcMjYxXDI2MVwyNjFcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNjJcMjYyXDI2MlwzNzciCi0gICJcMjYzXDI2M1wyNjNcMzc3XDI2M1wyNjNcMjYzXDM3N1wyNjRcMjY0XDI2NFwzNzdcMjY1XDI2NVwyNjVcMzc3XDI2NSIKLSAgIlwyNjVcMjY1XDM3N1wyNjZcMjY2XDI2NlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM1MFwzNTBcMzUwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzQzXDM0M1wzNDNcMzc3XDM0NFwzNDRcMzQ0IgotICAiXDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0N1wzNzciCi0gICJcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NCIKLSAgIlwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3IgotICAiXDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzUxXDM1MVwzNTEiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNDRcMzQ0XDM0NCIKLSAgIlwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMzQ3XDM0N1wzNDdcMzc3IgotICAiXDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTQiCi0gICJcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU3XDM1NyIKLSAgIlwzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzIgotICAiXDM3N1wzNTJcMzUyXDM1MlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzYzXDM2M1wzNjMiCi0gICJcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTBcMzUwXDM3NyIKLSAgIlwzNTFcMzUxXDM1MVwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N3V1dVwzNzd2dnZcMzc3dnZ2XDM3NyIKLSAgInd3d1wzNzd3d3dcMzc3eHh4XDM3N3h4eFwzNzd4eHhcMzc3eXl5XDM3N3l5eVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM1MyIKLSAgIlwzNTNcMzUzXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzQ2IgotICAiXDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3XDM3N1wyNTJcMjUyXDI1MlwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTIiCi0gICJcMzUyXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NSIKLSAgIlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjUiCi0gICJcMzY1XDM2NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NCIKLSAgIlwzNjRcMzY0XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMjUyXDI1MlwyNTJcMzc3XDBcMFwwXDM3N1wzNTJcMzUyXDM1MlwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTRcMzU0XDM1NFwzNzd2dnZcMzc3d3d3XDM3N3d3d1wzNzciCi0gICJ4eHhcMzc3eHh4XDM3N3l5eVwzNzd5eXlcMzc3enp6XDM3N3p6elwzNzd6enpcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNTUiCi0gICJcMzU1XDM1NVwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY1XDM2NVwzNjVcMzc3XDI1MiIKLSAgIlwyNTJcMjUyXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM1NlwzNTYiCi0gICJcMzU2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MSIKLSAgIlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM1NlwzNTZcMzU2XDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzUxXDM1MVwzNTFcMzc3XDI1MyIKLSAgIlwyNTNcMjUzXDM3N1wwXDBcMFwzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzciCi0gICJcMzU3XDM1N1wzNTdcMzc3eHh4XDM3N3h4eFwzNzd4eHhcMzc3eXl5XDM3N3l5eVwzNzd6enpcMzc3enp6XDM3N3t7eyIKLSAgIlwzNzd7e3tcMzc3fHx8XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzU3XDM1N1wzNTdcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMCIKLSAgIlwwXDBcMjdcMFwwXDBcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDI1NSIKLSAgIlwyNTVcMjU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwIgotICAiXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjMiCi0gICJcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3NyIKLSAgIlwzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNjBcMzYwXDM2MFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY2XDM2NlwzNjZcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTQiCi0gICJcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MCIKLSAgIlwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N3l5eVwzNzd5eXlcMzc3enp6XDM3N3p6elwzNzd6enpcMzc3XDM2NlwzNjZcMzY2IgotICAiXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzciCi0gICJcMzczXDM3M1wzNzNcMzc3XDM2MlwzNjJcMzYyXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NiIKLSAgIlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3IgotICAiXDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzYzXDM2M1wzNjNcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwIgotICAiXDBcMjdcMFwwXDBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1N1wzNTciCi0gICJcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2MyIKLSAgIlwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3IgotICAiXDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzMiCi0gICJcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNjRcMzY0XDM2NFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2MFwzNjBcMzYwXDM3N1wyNjdcMjY3XDI2NyIKLSAgIlwzNzdcMjcwXDI3MFwyNzBcMzc3XDI3MFwyNzBcMjcwXDM3N1wyNzBcMjcwXDI3MFwzNzdcMjcxXDI3MVwyNzFcMzc3IgotICAiXDI3MlwyNzJcMjcyXDM3N1wyNzNcMjczXDI3M1wzNzdcMjczXDI3M1wyNzNcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzUiCi0gICJcMjc1XDI3NVwzNzdcMjc2XDI3NlwyNzZcMzc3XDI3NlwyNzZcMjc2XDM3N1wyNzZcMjc2XDI3NlwzNzdcMjc3XDI3NyIKLSAgIlwyNzdcMzc3XDMwMFwzMDBcMzAwXDM3N1wzMDFcMzAxXDMwMVwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1IgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzYxXDM2MVwzNjEiCi0gICJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0XDM3NyIKLSAgIlwzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxIgotICAiXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzUiCi0gICJcMzc1XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2MlwzNjJcMzYyIgotICAiXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMjc0XDI3NFwyNzRcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMzFcMzMxXDMzMVwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMCIKLSAgIlwyMzJcMzExXDMxMVwzMTFcMzc3XDMzMlwzMzJcMzMyXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzUzXDM1M1wzNTNcMzc3IgotICAiXDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTciCi0gICJcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3XDI3NVwyNzVcMjc1XDM3N1wwXDBcMFwzMjRcMFwwXDAiCi0gICI6XDBcMFwwXDI2XDBcMFwwXDM0XDBcMFwwXDI0M1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzMjRcMFwwXDBZXDBcMFwwLVwwXDBcMFwyMFwwXDBcMFw2XDBcMFwwXDI0XDBcMFwwKVwwXDBcMCIiOFwwIgotICAiXDBcMDxcMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD0iCi0gICJcMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDAiIjlcMFwwXDAtXDBcMFwwXDMxXDAiCi0gICJcMFwwXDdcMFwwXDBcMVwwXDBcMFw2XDBcMFwwXDE2XDBcMFwwXDI0XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDAiCi0gICJcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3IgotICAiXDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI1XDBcMFwwXDIwXDBcMFwwIgotICAiXDdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDAiCi0gICJcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMCIKLSAgIlwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwyXDBcMFwwXDFcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfdGltZXIpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja190aW1lcltdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGltZXJbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjNcMCIKLSAgIlwwXDBvXDBcMFwwXDI2NlwwXDBcMFwzNDRcMFwwXDBcMzczXDBcMFwwXDM3M1wwXDBcMFwzNDVcMFwwXDBcMjcwXDBcMCIKLSAgIlwwdFwwXDBcMFwzMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwyMDVcMFwwXDAiCi0gICJcMzczXDIwN1wyMDdcMjA3XDM3N1wzMDBcMzAwXDMwMFwzNzdcMzIzXDMyM1wzMjNcMzc3XDMyNlwzMjZcMzI2XDM3NyIKLSAgIlwzMjVcMzI1XDMyNVwzNzdcMzIyXDMyMlwzMjJcMzc3XDI3NVwyNzVcMjc1XDM3N1wyMDRcMjA0XDIwNFwzNzdcMFwwIgotICAiXDBcMzc0XDBcMFwwXDIxN1wwXDBcMFwxMFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdbXDIxMFwyNjJcMzc3XDBcMFwwXDM3N1wzMjRcMzI0IgotICAiXDMyNFwzNzdcMzQyXDM0MlwzNDJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc0XDM3NFwzNzQiCi0gICJcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzNcMzczXDM3M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM1NFwzNTRcMzU0XDM3NyIKLSAgIlwzNDFcMzQxXDM0MVwzNzdcMjIwXDIyMFwyMjBcMzc3XDBcMFwwXDMyNFwwXDBcMCIiNlwwXDBcMFwzXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMjM2IgotICAiXDI3MFwzMjFcMzc3UFwyMDBcMjU1XDM3N1wwXDBcMFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzUiCi0gICJcMzc1XDM3NVwzNzdcMzE2XDMxNlwzMTZcMzc3XDMxMFwzMTBcMzEwXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzczXDM3MyIKLSAgIlwzNzNcMzc3XDM3M1wzNzNcMzczXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzUwXDM1MFwzNTBcMzc3XDI3MlwyNzJcMjcyIgotICAiXDM3N1wwXDBcMFwzNTJcMFwwXDBcNzdcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDI3N1wzMjFcMzQxIgotICAiXDM3N1wyNTdcMzA1XDMzMlwzNzdcMjYyXDMwN1wzMzNcMzc3XDI2NlwzMTJcMzM1XDM3N1wyNDRcMjc1XDMyNVwzNzciCi0gICJcMjM0XDI2N1wzMjFcMzc3UFwyMDBcMjU1XDM3N1wxMFwxNVwyMVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1IgotICAiXDM3N1wyNzdcMjc3XDI3N1wzNzdcMjcwXDI3MFwyNzBcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzciCi0gICJcMzcyXDM3MlwzNzJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzUwXDM1MFwzNTBcMzc3XDMwMSIKLSAgIlwzMDFcMzAxXDM3N1wwXDBcMFwzMzBcMFwwXDBcMzJcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDM3N1wzMDJcMzIyXDM0MSIKLSAgIlwzNzdcMjQwXDI3MlwzMjNcMzc3XDIzNFwyNjdcMzIxXDM3N1wyMzJcMjY1XDMxN1wzNzdcMjQwXDI3MlwzMjNcMzc3IgotICAiXDIzNFwyNjdcMzIxXDM3N1wyMjdcMjYzXDMxNlwzNzdfXDIxM1wyNjRcMzc3XDBcMFwwXDM3N1wzNzVcMzc1XDM3NVwzNzciCi0gICJcMjYwXDI2MFwyNjBcMzc3XDI1MVwyNTFcMjUxXDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNDVcMzQ1IgotICAiXDM0NVwzNzdcMjE3XDIxN1wyMTdcMzc3XDBcMFwwXDI0MlwwXDBcMFwyMFwwXDBcMFwxXDBcMFwwXDM3N1wzMTBcMzI2IgotICAiXDM0NFwzNzdcMjM2XDI3MFwzMjFcMzc3XDIzMlwyNjVcMzE3XDM3N1wyMzRcMjY3XDMyMVwzNzdcMjM0XDI2N1wzMjEiCi0gICJcMzc3XDIzNFwyNjdcMzIxXDM3N1wyNDBcMjcyXDMyM1wzNzdcMjI1XDI2MlwzMTZcMzc3THlcMjQzXDM3N1wwXDBcMCIKLSAgIlwzNzdcMjQxXDI0MVwyNDFcMzc3XDIzMVwyMzFcMjMxXDM3N1wzNzNcMzczXDM3M1wzNzdcMzcyXDM3MlwzNzJcMzc3IgotICAiXDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjMiCi0gICJcMzYzXDM2M1wzNzdcMzUwXDM1MFwzNTBcMzc3XDBcMFwwXDM3NFwwXDBcMD5cMFwwXDBcMTFcMFwwXDBcMzc3Z1wyMTMiCi0gICJcMjU0XDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3NyIKLSAgIlw3N2VcMjEwXDM3NypDW1wzNzdcMFwwXDBcMzc3XDM3NVwzNzVcMzc1XDM3N1wyMjFcMjIxXDIyMVwzNzdcMjEyXDIxMiIKLSAgIlwyMTJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwIgotICAiXDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTVcMzU1XDM1NVwzNzciCi0gICJcMjE2XDIxNlwyMTZcMzc3XDBcMFwwXDIyN1wwXDBcMFwyNVwwXDBcMFwzNzdkXDIwN1wyNDdcMzc3N1l4XDM3NzdZeCIKLSAgIlwzNzc3WXhcMzc3XDc3ZVwyMTBcMzc3XDc3ZVwyMTBcMzc3KkNbXDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3NlwzNzZcMzc2XDM3N1wyMDFcMjAxXDIwMVwzNzd6enpcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzFcMzcxXDM3MVwzNzciCi0gICJcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2MiIKLSAgIlwzNjJcMzYyXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzIzXDMyM1wzMjNcMzc3XDBcMFwwXDMxNFwwXDBcMChcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1w3N2VcMjEwXDM3NypDW1wzNzdcMFwwXDBcMzc3IgotICAiXDM3NVwzNzVcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc1XDM3NVwzNzVcMzc3cnJyXDM3N2tra1wzNzdcMzU2XDM1NiIKLSAgIlwzNTZcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYxXDM2MVwzNjFcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjdcMzY3XDM2N1wzNzciCi0gICJcMFwwXDBcMzU0XDBcMFwwIiI5XDBcMFwwXDBcMFwwXDBcMzczXDM1MFwzNTBcMzUwXDM3N1wzNzJcMzcyXDM3MlwzNzciCi0gICJcMFwwXDBcMzc3KkNbXDM3N1wwXDBcMFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0XDM3NCIKLSAgIlwzNzdcMzc0XDM3NFwzNzRcMzc3Y2NjXDM3N1tbW1wzNzdcMzEzXDMxM1wzMTNcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNjciCi0gICJcMzY3XDM2N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjJcMzYyXDM2MlwzNzdcMjczXDI3MyIKLSAgIlwyNzNcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNzBcMzcwXDM3MFwzNzdcMFwwXDBcMzc0XDBcMFwwRFwwXDBcMFwwXDBcMCIKLSAgIlwwXDM3M1wzMzZcMzM2XDMzNlwzNzdcMzcxXDM3MVwzNzFcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMzczXDM3M1wzNzMiCi0gICJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3XDM3M1wzNzNcMzczXDM3NyIKLSAgIlwyMjFcMjIxXDIyMVwzNzdMTExcMzc3RUVFXDM3N2JiYlwzNzdcMzAwXDMwMFwzMDBcMzc3XDMzNVwzMzVcMzM1XDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDI2NVwyNjVcMjY1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzcwIgotICAiXDM3MFwzNzBcMzc3XDBcMFwwXDM3NFwwXDBcMEpcMFwwXDBcMFwwXDBcMFwzNDZcMzMyXDMzMlwzMzJcMzc3XDM3MFwzNzAiCi0gICJcMzcwXDM3N1wwXDBcMFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyIgotICAiXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzUyXDM1MlwzNTJcMzc3XDI3NlwyNzYiCi0gICJcMjc2XDM3N2RkZFwzNzcuLi5cMzc3JycnXDM3N0lJSVwzNzdcMzYxXDM2MVwzNjFcMzc3XDM1N1wzNTdcMzU3XDM3NyIKLSAgIlwzNTVcMzU1XDM1NVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM2N1wzNjdcMzY3XDM3N1wwXDBcMFwzNTVcMFwwXDBKXDBcMCIKLSAgIlwwXDBcMFwwXDBcMjczXDI3NVwyNzVcMjc1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzAiCi0gICJcMzcwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzM1XDMzNVwzMzVcMzc3IgotICAiXDI3NlwyNzZcMjc2XDM3N1dXV1wzNzd4eHhcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU0XDM1NCIKLSAgIlwzNTRcMzc3XDM3MVwzNzFcMzcxXDM3N1wzMjNcMzIzXDMyM1wzNzdcMFwwXDBcMzE2XDBcMFwwRFwwXDBcMFwwXDBcMCIKLSAgIlwwdFwxNzdcMTc3XDE3N1wzNzdcMzQxXDM0MVwzNDFcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2IgotICAiXDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjJcMzYyXDM2MiIKLSAgIlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3IgotICAiXDM2NFwzNjRcMzY0XDM3N1wzNzBcMzcwXDM3MFwzNzdcMjE0XDIxNFwyMTRcMzc3XDBcMFwwXDIzN1wwXDBcMCIiOVwwIgotICAiXDBcMFwwXDBcMFwwXDMxXDBcMFwwXDM3NFwzMjBcMzIwXDMyMFwzNzdcMzUzXDM1M1wzNTNcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjRcMzY0XDM2NFwzNzciCi0gICJcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTRcMzU0IgotICAiXDM1NFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2MVwzNjFcMzYxXDM3N1wwXDBcMFwzNzRcMFwwXDBfXDBcMFwwKFwwXDAiCi0gICJcMFwwXDBcMFwwXDJcMFwwXDBcMjE3XDIxMVwyMTFcMjExXDM3N1wzMjRcMzI0XDMyNFwzNzdcMzYyXDM2MlwzNjJcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjEiCi0gICJcMzYxXDM2MVwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzU3XDM1NyIKLSAgIlwzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDM3MVwzNzFcMzcxIgotICAiXDM3N1wzNzBcMzcwXDM3MFwzNzdcMjMwXDIzMFwyMzBcMzc3XDBcMFwwXDI2MFwwXDBcMEhcMFwwXDBcMjVcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDEwXDBcMFwwXDMyNFwyNTNcMjUzXDI1M1wzNzdcMzIzXDMyM1wzMjNcMzc3XDM2MFwzNjAiCi0gICJcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MCIKLSAgIlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3IgotICAiXDM1NVwzNTVcMzU1XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3N1wzMDQiCi0gICJcMzA0XDMwNFwzNzdcMFwwXDBcMzM1XDBcMFwwUVwwXDBcMC5cMFwwXDBcMTFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEiCi0gICJcMFwwXDAiIjZcMFwwXDBcMzUyXDI1M1wyNTNcMjUzXDM3N1wzMjJcMzIyXDMyMlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM1NiIKLSAgIlwzNTZcMzU2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3XDI1NlwyNTZcMjU2XDM3N1wyNTVcMjU1IgotICAiXDI1NVwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTNcMzUzXDM1M1wzNzdcMzcwXDM3MFwzNzAiCi0gICJcMzc3XDM3MFwzNzBcMzcwXDM3N1wzMDJcMzAyXDMwMlwzNzdcMFwwXDBcMzU1XDBcMFwwcFwwXDBcMDxcMFwwXDBcMjAiCi0gICJcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0XDBcMFwwXDc3XDBcMFwwXDMzMFwyMDJcMjAyXDIwMiIKLSAgIlwzNzdcMzE1XDMxNVwzMTVcMzc3XDMzMVwzMzFcMzMxXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU0XDM1NFwzNTRcMzc3IgotICAiXDM1NFwzNTRcMzU0XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzUzXDM1M1wzNTNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNzAiCi0gICJcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjdcMzc3XDIxNFwyMTRcMjE0XDM3N1wwXDBcMFwzMzVcMFwwXDBxXDBcMFwwQiIKLSAgIlwwXDBcMFwzMlwwXDBcMFw0XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw1XDBcMCIKLSAgIlwwXDMyXDBcMFwwXDI0MlwwXDBcMFwzNzRcMjEwXDIxMFwyMTBcMzc3XDMxMFwzMTBcMzEwXDM3N1wzMzVcMzM1XDMzNSIKLSAgIlwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzYxXDM2MVwzNjFcMzc3IgotICAiXDMwMFwzMDBcMzAwXDM3N1wwXDBcMFwzNzRcMFwwXDBcMjYwXDBcMFwwUVwwXDBcMDxcMFwwXDBcMzJcMFwwXDBcNVwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwXDAiCi0gICJcMjBcMFwwXDA+XDBcMFwwXDIyN1wwXDBcMFwzMTRcMFwwXDBcMzU0XDBcMFwwXDM3NFwwXDBcMFwzNzRcMFwwXDBcMzU1IgotICAiXDBcMFwwXDMxNlwwXDBcMFwyMzdcMFwwXDBfXDBcMFwwSFwwXDBcMC5cMFwwXDBcMjBcMFwwXDBcNFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwxXDBcMFwwXDEwXDBcMFwwXDI1XDBcMFwwKFwwXDBcMCIiOVwwXDBcMERcMFwwXDBKXDBcMFwwSlwwXDBcMERcMFwwIgotICAiXDAiIjlcMFwwXDAoXDBcMFwwXDI1XDBcMFwwXDEwXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMVwwXDBcMFw2XDBcMFwwXDEyXDBcMFwwXDE1XDBcMFwwXDE3XDBcMFwwXDE3XDBcMFwwXDE1XDBcMFwwXDEyIgotICAiXDBcMFwwXDZcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfdGltZXJfc3RvcHBlZCkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3RpbWVyX3N0b3BwZWRbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3RpbWVyX3N0b3BwZWRbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDIzXDBcMCIKLSAgIlwwb1wwXDBcMFwyNjZcMFwwXDBcMzQ0XDBcMFwwXDM3M1wwXDBcMFwzNzNcMFwwXDBcMzQ1XDBcMFwwXDI3MFwwXDBcMCIKLSAgInRcMFwwXDBcMzFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMDVcMFwwXDBcMzczXDIwNyIKLSAgIlwyMDdcMjA3XDM3N1wzMDBcMzAwXDMwMFwzNzdcMzIzXDMyM1wzMjNcMzc3XDMyNlwzMjZcMzI2XDM3N1wzMjVcMzI1IgotICAiXDMyNVwzNzdcMzIyXDMyMlwzMjJcMzc3XDI3NVwyNzVcMjc1XDM3N1wyMDRcMjA0XDIwNFwzNzdcMFwwXDBcMzc0XDAiCi0gICJcMFwwXDIxN1wwXDBcMFwxMFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMClcMFwwXDBcMzE0XDIyM1wyMjNcMjIzXDM3N1wzMjRcMzI0XDMyNFwzNzciCi0gICJcMzQyXDM0MlwzNDJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NCIKLSAgIlwzNzRcMzc0XDM3N1wzNzNcMzczXDM3M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNDFcMzQxIgotICAiXDM0MVwzNzdcMjIwXDIyMFwyMjBcMzc3XDBcMFwwXDMyNFwwXDBcMCIiNlwwXDBcMFwzXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwKVwwXDBcMFwzNDRcMjc3XDI3N1wyNzdcMzc3XDMzNlwzMzYiCi0gICJcMzM2XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzVcMzc1XDM3NSIKLSAgIlwzNzdcMzE2XDMxNlwzMTZcMzc3XDMxMFwzMTBcMzEwXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzczXDM3M1wzNzNcMzc3IgotICAiXDM3M1wzNzNcMzczXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzUwXDM1MFwzNTBcMzc3XDI3MlwyNzJcMjcyXDM3N1wwXDAiCi0gICJcMFwzNTJcMFwwXDBcNzdcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMzE0XDI2N1wyNjdcMjY3XDM3N1wzNDJcMzQyXDM0MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NVwzNzVcMzc1XDM3NyIKLSAgIlwzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wyNzdcMjc3XDI3N1wzNzdcMjcwIgotICAiXDI3MFwyNzBcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MVwzNzEiCi0gICJcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzUwXDM1MFwzNTBcMzc3XDMwMVwzMDFcMzAxXDM3N1wwXDBcMFwzMzBcMCIKLSAgIlwwXDBcMzJcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMDVcMjA3XDIwN1wyMDdcMzc3XDMzNiIKLSAgIlwzMzZcMzM2XDM3N1wzNzNcMzczXDM3M1wzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wyNjBcMjYwXDI2MFwzNzdcMjUxXDI1MVwyNTEiCi0gICJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM0NVwzNDVcMzQ1XDM3N1wyMTdcMjE3XDIxN1wzNzdcMFwwIgotICAiXDBcMjQyXDBcMFwwXDIwXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwyM1wwXDBcMFwzNzNcMzI0XDMyNFwzMjRcMzc3XDM2NyIKLSAgIlwzNjdcMzY3XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wyNDFcMjQxXDI0MVwzNzdcMjMxXDIzMVwyMzEiCi0gICJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwIgotICAiXDBcMzc0XDBcMFwwPlwwXDBcMFwxMVwwXDBcMFwwXDBcMFwwb1wyMDdcMjA3XDIwN1wzNzdcMzQyXDM0MlwzNDJcMzc3IgotICAiXDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzUiCi0gICJcMzc1XDM3NVwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3NVwzNzVcMzc1XDM3N1wyMjFcMjIxXDIyMVwzNzdcMjEyXDIxMiIKLSAgIlwyMTJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwIgotICAiXDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTVcMzU1XDM1NVwzNzciCi0gICJcMjE2XDIxNlwyMTZcMzc3XDBcMFwwXDIyN1wwXDBcMFwyNVwwXDBcMFwwXDBcMFwwXDI2NlwzMDBcMzAwXDMwMFwzNzciCi0gICJcMzY0XDM2NFwzNjRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NSIKLSAgIlwzNzVcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NlwzNzZcMzc2XDM3N1wyMDFcMjAxIgotICAiXDIwMVwzNzd6enpcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjciCi0gICJcMzY3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNTdcMzU3XDM1NyIKLSAgIlwzNzdcMzIzXDMyM1wzMjNcMzc3XDBcMFwwXDMxNFwwXDBcMChcMFwwXDBcMFwwXDBcMFwzNDZcMzIzXDMyM1wzMjNcMzc3IgotICAiXDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzUiCi0gICJcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzVcMzc1XDM3NVwzNzdycnJcMzc3ayIKLSAgImtrXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjZcMzY2XDM2NlwzNzciCi0gICJcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2NyIKLSAgIlwzNjdcMzY3XDM3N1wwXDBcMFwzNTRcMFwwXDAiIjlcMFwwXDBcMFwwXDBcMFwzNzNcMzUwXDM1MFwzNTBcMzc3XDM3MiIKLSAgIlwzNzJcMzcyXDM3N1wzMzdcMzM3XDMzN1wzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0IgotICAiXDM3NFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0XDM3NFwzNzdjY2NcMzc3W1tbXDM3NyIKLSAgIlwzMTNcMzEzXDMxM1wzNzdcMzQ1XDM0NVwzNDVcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0IgotICAiXDM2NFwzNjRcMzc3XDM2MlwzNjJcMzYyXDM3N1wyNzNcMjczXDI3M1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM3MFwzNzAiCi0gICJcMzcwXDM3N1wwXDBcMFwzNzRcMFwwXDBEXDBcMFwwXDBcMFwwXDBcMzczXDMzNlwzMzZcMzM2XDM3N1wzNzFcMzcxXDM3MSIKLSAgIlwzNzdcMzMyXDMzMlwzMzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3IgotICAiXDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3XDIyMVwyMjFcMjIxXDM3N0xMTFwzNzciCi0gICJFRUVcMzc3YmJiXDM3N1wzMDBcMzAwXDMwMFwzNzdcMzM1XDMzNVwzMzVcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjFcMzYxIgotICAiXDM2MVwzNzdcMjY1XDI2NVwyNjVcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNzBcMzcwXDM3MFwzNzdcMFwwXDBcMzc0XDAiCi0gICJcMFwwSlwwXDBcMFwwXDBcMFwwXDM0NlwzMzJcMzMyXDMzMlwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3NyIKLSAgIlwzNzFcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcyIgotICAiXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNTJcMzUyXDM1MlwzNzdcMjc2XDI3NlwyNzZcMzc3ZGRkXDM3Ny4iCi0gICIuLlwzNzcnJydcMzc3SUlJXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1NVwzNTVcMzU1XDM3NyIKLSAgIlwzNzFcMzcxXDM3MVwzNzdcMzY3XDM2N1wzNjdcMzc3XDBcMFwwXDM1NVwwXDBcMEpcMFwwXDBcMFwwXDBcMFwyNzNcMjc1IgotICAiXDI3NVwyNzVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzAiCi0gICJcMzcwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NlwzNjZcMzY2XDM3N1wzMzVcMzM1XDMzNVwzNzdcMjc2XDI3NlwyNzZcMzc3IgotICAiV1dXXDM3N3h4eFwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzcxXDM3MSIKLSAgIlwzNzFcMzc3XDMyM1wzMjNcMzIzXDM3N1wwXDBcMFwzMTZcMFwwXDBEXDBcMFwwXDBcMFwwXDB0XDE3N1wxNzdcMTc3IgotICAiXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY0XDM2NFwzNjRcMzc3eXl5XDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDIzNCIKLSAgIlwwXDBcMFwwXDBcMFwwXDMxXDBcMFwwXDM3NFwzMjBcMzIwXDMyMFwzNzdcMzUzXDM1M1wzNTNcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjRcMzY0XDM2NFwzNzciCi0gICJcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDBcMCIKLSAgIlwwXDM3N1wzNTFcXFwyM1wzNzdcMzYyZ1wzN1wzNzdcMzU2YlwzMlwzNzdcMzQ1WVwyM1wzNzdcMzMzVFwyMlwzNzdcMzIyIgotICAiU1wyN1wzNzdcMzEyUlwzM1wzNzdcMjc2RFwxN1wzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwyMTciCi0gICJcMjExXDIxMVwyMTFcMzc3XDMyNFwzMjRcMzI0XDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MiIKLSAgIlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjFcMzYxIgotICAiXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wwXDBcMFwzNzdcMzUzYVwzM1wzNzdcMzc2XDM2MiIKLSAgIlwzNTNcMzc3XDM3NFwzNDZcMzMzXDM3N1wzNTBrLFwzNzdcMzM3ZSlcMzc3XDM3MFwzNDJcMzMwXDM3N1wzNzNcMzYxIgotICAiXDM1NVwzNzdcMzAwS1wzMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxMFwwXDBcMFwzMjRcMjUzIgotICAiXDI1M1wyNTNcMzc3XDMyM1wzMjNcMzIzXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjAiCi0gICJcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTdcMzU3XDM1NyIKLSAgIlwzNzdcMzU2XDM1NlwzNTZcMzc3XDBcMFwwXDM3N1wzNDVbXDI2XDM3N1wzNzJcMzM3XDMyMlwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3MlwzNDZcMzM0XDM3N1wzNzJcMzQ0XDMzMVwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NFwzMzRcMzIyXDM3NyIKLSAgIlwyNzVHXDIzXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDAiIjZcMFwwXDBcMzUyXDI1MyIKLSAgIlwyNTNcMjUzXDM3N1wzMjJcMzIyXDMyMlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTZcMzU2IgotICAiXDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3XDI1NlwyNTZcMjU2XDM3N1wyNTVcMjU1XDI1NVwzNzdcMzU1XDM1NVwzNTUiCi0gICJcMzc3XDBcMFwwXDM3N1wzMzVVXDIyXDM3N1wzNDJkJVwzNzdcMzcxXDM0MFwzMjRcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzY1XDMzNlwzMjNcMzc3XDMwN1VcIlwzNzdcMjcxQlwxNlwzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwXDBcNzdcMFwwXDBcMzMwXDIwMlwyMDJcMjAyXDM3N1wzMTVcMzE1IgotICAiXDMxNVwzNzdcMzMxXDMzMVwzMzFcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU0XDM1NFwzNTQiCi0gICJcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTNcMzUzXDM1M1wzNzdcMFwwXDBcMzc3XDMyM09cMjFcMzc3XDMzMmEpXDM3NyIKLSAgIlwzNzFcMzQzXDMzMVwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjZcMzQ0XDMzM1wzNzdcMzA0IgotICAiVyhcMzc3XDI2NUBcMTZcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDUiCi0gICJcMFwwXDBcMzJcMFwwXDBcMjQyXDBcMFwwXDM3NFwyMTBcMjEwXDIxMFwzNzdcMzEwXDMxMFwzMTBcMzc3XDMzNVwzMzUiCi0gICJcMzM1XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wwXDBcMFwzNzdcMzEyIgotICAiTlwyM1wzNzdcMzY3XDM0MVwzMjdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjRcMzM1XDMyM1wzNzdcMzY0XDMzNVwzMjMiCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjRcMzQyXDMzMlwzNzdcMjYyQlwyM1wzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0XDBcMFwwXDIwXDBcMFwwPlwwXDBcMFwyMjdcMFwwIgotICAiXDBcMzE0XDBcMFwwXDM1NFwwXDBcMFwzNzRcMFwwXDBcMzc0XDBcMFwwXDM1NVwwXDBcMFwzNzdcMzAyS1wyNlwzNzciCi0gICJcMzcwXDM1M1wzNDVcMzc3XDM2M1wzMzNcMzIxXDM3N1wzMDRTXCJcMzc3XDMwMFJcIlwzNzdcMzYxXDMzMlwzMjBcMzc3IgotICAiXDM2N1wzNTNcMzQ3XDM3N1wyNTVBXDI1XDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwxMFwwXDBcMFwyNVwwXDBcMChcMFwwXDAiIjlcMFwwXDBEXDAiCi0gICJcMFwwSlwwXDBcMEpcMFwwXDBcMzc3XDI2N0BcMTZcMzc3XDI3MkVcMjNcMzc3XDI3MENcMjFcMzc3XDI2NkBcMTZcMzc3IgotICAiXDI2Mz5cMTVcMzc3XDI2MD5cMjBcMzc3XDI1M1w3N1wyM1wzNzdcMjQ0N1wxNFwzNzdcMFwwXDBcMzc3XDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMCIKLSAgIlwwXDZcMFwwXDBcMTJcMFwwXDBcMTVcMFwwXDBcMTdcMFwwXDBcMTdcMFwwXDBcMjA2XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMTc3In07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190cmFzaCkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3RyYXNoW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja190cmFzaFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICJYXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw1XDBcMFwwXDIyMFwzNFwzNCIKLSAgIlwzNFwzNzd2dnZcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzMjNcMzIzXDMyM1wzNzdcMzAzXDMwM1wzMDNcMzc3XDIyMFwyMjAiCi0gICJcMjIwXDM3N0lJSVwzNzdcMFwwXDBcMzc3XDBcMFwwXDI3NlwwXDBcMCxcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBFXDBcMFwwXDI0MFwwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3SEc9XDM3N1wyNzJcMjcwXDI0NlwzNzdcMzQyXDM0MlwzMzdcMzc3XDM2MVwzNjFcMzYwXDM3NyIKLSAgIlwzNTJcMzUxXDM0NlwzNzdcMzYyXDM2MlwzNTZcMzc3XDM1M1wzNTJcMzQ1XDM3N1wzMDFcMzAwXDI2NVwzNzdXVkpcMzc3IgotICAiUlFGXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDIyN1wwXDBcMCIiM1wwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBUXDBcMFwwXDM3N1wyNTBcMjQ2XDIxN1wzNzdcMjc1XDI3M1wyNDFcMzc3XDMwMCIKLSAgIlwyNzZcMjQzXDM3N1wyNDNcMjQxXDIxMlwzNzdtbFxcXDM3N3x8clwzNzdMTElcMzc3RUVcNzdcMzc3REM6XDM3N29vIgotICAiZ1wzNzdcMzA2XDMwNVwyNzFcMzc3XDI2NlwyNjVcMjMzXDM3N21sXVwzNzdcMjYzXDI2MVwyMzNcMzc3XDI0N1wyNDYiCi0gICJcMjE2XDM3N1wyMjBcMjE3elwzNzdcMFwwXDBcMzc3XDBcMFwwRVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDM3N1wyNTJcMjUxXDIyM1wzNzdcMzE0XDMxM1wyNjVcMzc3XDMyMFwzMTZcMjcyXDM3N1wzMjVcMzIzIgotICAiXDMwMVwzNzdcMjU2XDI1NVwyNDNcMzc3XDIyNFwyMjNcMjEyXDM3N0VEQlwzNzcjIyFcMzc3NTQxXDM3NykoI1wzNzciCi0gICJcMzZcMzZcMzJcMzc3U1JGXDM3N1wyNTVcMjU0XDIyM1wzNzdcMjIyXDIyMVwyMTFcMzc3XDMwMlwzMDFcMjU3XDM3NyIKLSAgIlwyNjFcMjU3XDIyNlwzNzdcMjU0XDI1MlwyMjJcMzc3XDIyM1wyMjJ9XDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwxMFwxMFwxMFwzNzdcMzIxXDMyMFwzMDFcMzc3XDMxNFwzMTNcMjY1XDM3N1wzMjZcMzI1IgotICAiXDMwNFwzNzdcMzM3XDMzNlwzMjFcMzc3XDMxNlwzMTVcMzAwXDM3N1wyNTRcMjU0XDI0NlwzNzdcMjIwXDIxN1wyMTIiCi0gICJcMzc3fn13XDM3N1xcXFxVXDM3N0dGPlwzNzdlZFZcMzc3d3ZlXDM3N1wyMDB+b1wzNzdcMjc2XDI3NVwyNDdcMzc3XDI2NSIKLSAgIlwyNjNcMjMyXDM3N1wyNjZcMjY1XDIzM1wzNzdcMjY1XDI2M1wyMzJcMzc3XDI0MVwyMzdcMjEwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzMxXDMzMFwzMTRcMzc3XDM2NlwzNjVcMzYyIgotICAiXDM3N1wzMzNcMzMyXDMyMVwzNzdcMzMyXDMzMVwzMTZcMzc3XDM0NVwzNDRcMzMxXDM3N1wzMjBcMzE3XDMwM1wzNzciCi0gICJcMzIzXDMyM1wzMTFcMzc3XDMxMlwzMTFcMjc0XDM3N1wyNjdcMjY2XDI0NlwzNzdcMjcwXDI2NlwyNDFcMzc3XDI2MCIKLSAgIlwyNTdcMjI2XDM3N1wyNDFcMjM3XDIxMFwzNzdcMjcxXDI3MFwyMzVcMzc3XDI3MVwyNjdcMjM1XDM3N1wyNzBcMjY2IgotICAiXDIzNFwzNzdcMzA0XDMwMlwyNTFcMzc3XDI1N1wyNTVcMjI3XDM3N1wyMTNcMjExdlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDI1MlwyNTFcMjMwXDM3N1wyNjZcMjY2XDI2MlwzNzciCi0gICJcMzcxXDM3MVwzNjdcMzc3XDM3MlwzNzJcMzcwXDM3N1wzNjRcMzY0XDM2MFwzNzdcMzQyXDM0MVwzMzJcMzc3XDMzMSIKLSAgIlwzMzFcMzE2XDM3N1wzMzNcMzMyXDMxN1wzNzdcMzI1XDMyM1wzMDFcMzc3XDMyM1wzMjFcMjc2XDM3N1wzMDRcMzAyIgotICAiXDI1MVwzNzdcMzAwXDI3NlwyNDNcMzc3XDMwNVwzMDRcMjU0XDM3N1wzMjZcMzI1XDMwM1wzNzdcMzE1XDMxNFwyNzciCi0gICJcMzc3XDI3M1wyNzJcMjU1XDM3N3x6aVwzNzdxcGBcMzc3XDBcMFwwXDMzNlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDIzXDIzXDIzXDMxNlwyMzFcMjMwXDIwMlwzNzdcMjU3XDI1NlwyMzVcMzc3XDMwM1wzMDNcMjc2XDM3NyIKLSAgIlwzMzZcMzM2XDMzNFwzNzdcMzUxXDM1MVwzNTBcMzc3XDM3M1wzNzNcMzcyXDM3N1wzNzVcMzc1XDM3NFwzNzdcMzc1IgotICAiXDM3NVwzNzVcMzc3XDM3NFwzNzNcMzcyXDM3N1wzNzFcMzcxXDM2N1wzNzdcMzYyXDM2MlwzNTdcMzc3XDM1MlwzNTEiCi0gICJcMzQzXDM3N1wzMzNcMzMyXDMyMVwzNzdcMzAwXDI3N1wyNjFcMzc3XDIyNVwyMjRcMjA0XDM3N3h3ZlwzNzdubV1cMzc3IgotICAiW1tNXDM3N1wwXDBcMFwzMTVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMjJdXFxPXDM3N1wyMjMiCi0gICJcMjIyfVwzNzdcMjQzXDI0MlwyMjNcMzc3XDI3MFwyNjdcMjQ2XDM3N1wzMzBcMzI3XDMyMFwzNzdcMzMzXDMzM1wzMjQiCi0gICJcMzc3XDMyM1wzMjJcMzEyXDM3N1wzMTBcMzEwXDMwM1wzNzdcMzA2XDMwNVwyNzVcMzc3XDI3NVwyNzRcMjU1XDM3NyIKLSAgIlwyNzJcMjcwXDI1MFwzNzdcMjM3XDIzNlwyMTNcMzc3XDIxNlwyMTR4XDM3N1wyMTRcMjEzd1wzNzdcMjE2XDIxNHhcMzc3IgotICAienloXDM3N2xrXVwzNzdOTUVcMzc3XDBcMFwweVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIiIyIgotICAiXDBcMFwwXDM3N0JCQlwzNzd7e3NcMzc3XDIzN1wyMzdcMjI2XDM3N1wzMjJcMzIxXDMwN1wzNzdcMzM0XDMzM1wzMjIiCi0gICJcMzc3XDMxNFwzMTNcMjc2XDM3N1wzMjFcMzIwXDMwMlwzNzdcMzA0XDMwM1wyNjZcMzc3XDI2MVwyNTdcMjI2XDM3NyIKLSAgIlwyNjFcMjU3XDIyNlwzNzdcMjYxXDI1N1wyMjZcMzc3XDIzMlwyMzBcMjAzXDM3N1wyMDBcMTc3bVwzNzd9fGtcMzc3IgotICAiamleXDM3N0BAPlwzNzdcMFwwXDBcMzc3XDBcMFwwIiIzXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwzNzc3Ny1cMzc3XDE3XDE3XDE3XDM3Nzg3NFwzNzd4eHVcMzc3XDIzMVwyMzBcMjIzXDM3N1wyMTIiCi0gICJcMjExflwzNzdcMjYzXDI2MlwyNDRcMzc3XDI1MlwyNTJcMjM2XDM3N1wyNDNcMjQxXDIxMlwzNzdcMjA3XDIwNnNcMzc3IgotICAiXDIxN1wyMTV5XDM3N2JhVVwzNzdUVFFcMzc3MTEuXDM3N1wwXDBcMFwzNzcrKyNcMzc3XDBcMFwwXDM3N1wwXDBcMFwxNyIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3cXFdXDM3N1dXS1wzNzdCQjpcMzc3IgotICAiJiZcNDBcMzc3ISEhXDM3N1wzM1wzM1wzM1wzNzdcMFwwXDBcMzc3JCQkXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMjZcMjZcMjNcMzc3KipcIlwzNzcwMCdcMzc3XDc3XDc3IiI0XDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3enplXDM3N1tbUSIKLSAgIlwzNzdcMjA1XDIwNXZcMzc3dnZrXDM3N1wyMzBcMjMwXDIxNlwzNzd1dWtcMzc3UVFGXDM3N1wxNzdcMTc3dFwzNzdqIgotICAialhcMzc3QEA1XDM3N2JiUVwzNzdUVEVcMzc3Pj4zXDM3N1VVRlwzNzc0NCtcMzc3UVFDXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDIwNVwyMDVuXDM3N10iCi0gICJdVFwzNzdcMjIxXDIyMVwyMDJcMzc3XDIwMlwyMDJ4XDM3N1wyNTJcMjUyXDI0M1wzNzd6enFcMzc3Tk5FXDM3N1wyMTIiCi0gICJcMjEyXDIwMFwzNzd8fG1cMzc3QkI3XDM3N2BgUlwzNzdaWkpcMzc3PDwyXDM3N05OQVwzNzc1NSxcMzc3VFRFXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDNcMFwwXDBcMzc3IgotICAiXDIwNVwyMDVuXDM3N1tbUVwzNzdcMjU0XDI1NFwyMzRcMzc3XDIwNVwyMDV7XDM3N1wyNzNcMjczXDI2M1wzNzdcMjQzIgotICAiXDI0M1wyMzJcMzc3VFRLXDM3N1wyMjNcMjIzXDIxMlwzNzdcMjIxXDIyMVwyMDVcMzc3QkI3XDM3N2BgUlwzNzdoaFYiCi0gICJcMzc3QUE2XDM3N2pqWFwzNzdDQzdcMzc3ampYXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMVwwXDBcMFw1XDBcMFwwXDEwXDBcMFwwXDM3N1wyMDVcMjA1blwzNzdbW1FcMzc3XDI0NFwyNDRcMjIzXDM3NyIKLSAgIlwyMDVcMjA1e1wzNzdcMzAxXDMwMVwyNjZcMzc3XDI2MVwyNjFcMjQyXDM3N2trX1wzNzdcMjYxXDI2MVwyNDJcMzc3IgotICAiXDIzNVwyMzVcMjEzXDM3N1RURVwzNzdcMjA0XDIwNHBcMzc3cXFeXDM3N0NDN1wzNzdqalhcMzc3Q0M3XDM3N2pqWFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDZcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMTJcMFwwXDBcMjRcMFwwXDBcMzc3IgotICAiXDIwNVwyMDVuXDM3N1tbUVwzNzdcMjQ1XDI0NVwyMjRcMzc3XDIwNVwyMDV7XDM3N1wzMDJcMzAyXDI2N1wzNzdcMjYxIgotICAiXDI2MVwyNDJcMzc3a2tfXDM3N1wyNjFcMjYxXDI0MlwzNzdcMjM1XDIzNVwyMTNcMzc3VFRFXDM3N1wyMDRcMjA0cFwzNzciCi0gICJxcV5cMzc3Q0M3XDM3N2pqWFwzNzdDQzdcMzc3ampYXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjZcMFwwXDBcMTNcMFwwXDAiCi0gICJcMlwwXDBcMFwzXDBcMFwwXDI2XDBcMFwwK1wwXDBcMFwzNzdcMjA1XDIwNW5cMzc3W1tRXDM3N1wyMzVcMjM1XDIxMyIKLSAgIlwzNzdcMjA1XDIwNXtcMzc3XDMwMVwzMDFcMjY2XDM3N1wyNjFcMjYxXDI0MlwzNzdra19cMzc3XDI2MVwyNjFcMjQyIgotICAiXDM3N1wyMzVcMjM1XDIxM1wzNzdUVEVcMzc3XDIwNFwyMDRwXDM3N3FxXlwzNzdDQzdcMzc3ampYXDM3N0NDN1wzNzciCi0gICJqalhcMzc3XDBcMFwwXDM3N1wwXDBcMCIiMVwwXDBcMFwzMlwwXDBcMFw0XDBcMFwwXDdcMFwwXDAjXDBcMFwwSVwwXDAiCi0gICJcMFwzNzd7e2VcMzc3W1tRXDM3N1wyNDRcMjQ0XDIyM1wzNzdcMjA1XDIwNXtcMzc3XDMwMVwzMDFcMjY2XDM3N1wyNjEiCi0gICJcMjYxXDI0MlwzNzdra19cMzc3XDI2MVwyNjFcMjQyXDM3N1wyMzVcMjM1XDIxM1wzNzdUVEVcMzc3XDIwNFwyMDRwXDM3NyIKLSAgInFxXlwzNzdDQzdcMzc3ampYXDM3N0NDN1wzNzdfX09cMzc3XDBcMFwwXDM3N1wwXDBcMEhcMFwwXDAqXDBcMFwwXDdcMCIKLSAgIlwwXDBcMTJcMFwwXDAsXDBcMFwwWFwwXDBcMFwzNzdmZlRcMzc3W1tRXDM3N1wyNDRcMjQ0XDIyM1wzNzdcMjAyXDIwMiIKLSAgInhcMzc3XDMwMVwzMDFcMjY2XDM3N1wyNjFcMjYxXDI0MlwzNzdra19cMzc3XDI2MVwyNjFcMjQyXDM3N1wyMzVcMjM1IgotICAiXDIxM1wzNzdUVEVcMzc3XDIwNFwyMDRwXDM3N3FxXlwzNzdDQzdcMzc3ampYXDM3N0lJPFwzNzdXV0hcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMFBcMFwwXDAqXDBcMFwwXDdcMFwwXDBcNlwwXDBcMFwzNVwwXDBcMENcMFwwXDByXDBcMFwwXDM3N1ciCi0gICJXSlwzNzd9fW1cMzc3dnZpXDM3N1wyNjNcMjYzXDI1MFwzNzdcMjQxXDI0MVwyMjRcMzc3bW1hXDM3N1wyNjNcMjYzXDI0NSIKLSAgIlwzNzdcMjM1XDIzNVwyMTNcMzc3VFRFXDM3N1wyMDRcMjA0cFwzNzdpaVdcMzc3QUE1XDM3N1ZWR1wzNzdERDhcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwxNzdcMFwwXDBDXDBcMFwwXDM1XDBcMFwwXDRcMFwwXDBcMVwwXDBcMFwxM1wwXDBcMFwzNCIKLSAgIlwwXDBcMCIiMlwwXDBcMGdcMFwwXDBcMzIwXDBcMFwwXDM3N1wwXDBcMFwzNzdZWVFcMzc3WFhJXDM3N05OQFwzNzd0IgotICAidGdcMzc3YWFTXDM3N05OQVwzNzdJSTxcMzc3SUk8XDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDMwNFwwXDAiCi0gICJcMHRcMFwwXDA+XDBcMFwwJVwwXDBcMFwxMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw2XDBcMFwwXDE3XDAiCi0gICJcMFwwXDMxXDBcMFwwXDM3XDBcMFwwclwwXDBcMFwyNjRcMFwwXDBcMzAyXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDI3MVwwXDBcMFwyMTdcMFwwXDBTXDBcMFwwLCIKLSAgIlwwXDBcMCpcMFwwXDBcMzNcMFwwXDBcMTBcMFwwXDBcMVwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190cmFzaF9mdWxsKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdHJhc2hfZnVsbFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdHJhc2hfZnVsbFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEwXDEwIgotICAiXDEwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFw2XDZcNlwyMVw2XDZcNktcMTZcMTZcMTZcMzc3QkJCXDM3N0pKSlwzNzc+Pj5cMzc3LCwsXDM3N1wwIgotICAiXDBcMFwzNzdcNlw2XDY+XDZcNlw2IVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxMFwxMFwxMFwzNzdcMTBcMTBcMTAiCi0gICJcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlw2XDZcNjpcMFwwXDBcMzc3XDBcMFwwXDM3N1wyMDVcMjAzcVwzNzdcMzYwXDM1NVwzMzBcMzc3XDM2MlwzNjFcMzUxIgotICAiXDM3N1wzNTZcMzU1XDM0NFwzNzdcMzA3XDMwNlwyNzJcMzc3U1JGXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDZcNlw2IgotICAiS1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcNlw2XDY+XDIwXDIwXDIwXDM3N1wzMDJcMzAwXDI0NVwzNzdcMzAxXDI3N1wyNDUiCi0gICJcMzc3enlnXDM3N0hHQFwzNzcnJyVcMzc3NjUuXDM3N1wyMDdcMjA1clwzNzdcMjQwXDIzNlwyMTBcMzc3XDI0M1wyNDEiCi0gICJcMjEyXDM3N1wyNDVcMjQzXDIxNFwzNzdcMFwwXDBcMzc3XDZcNlw2IVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwKysrXDM3N1wzMjNcMzIxXDI3NCIKLSAgIlwzNzdcMzM0XDMzMlwzMDRcMzc3XDM0MlwzNDBcMzE3XDM3N1wyNzFcMjY3XDI0MlwzNzdkYltcMzc3OTg2XDM3Nzw8IgotICAiM1wzNzdhYFNcMzc3XDIzMlwyMzBcMjAzXDM3N1wyNjdcMjY1XDIzM1wzNzdcMjYzXDI2MlwyMzBcMzc3XDI0NFwyNDIiCi0gICJcMjEzXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEwXDEwXDEwXDM3NyIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNTBcMzQ0XDMyM1wzNzdcMzY0XDM2MVwzNTEiCi0gICJcMzc3XDM2MlwzNjFcMzQ0XDM3N1wzNTJcMzUxXDMzMlwzNzdcMzQ1XDM0MlwzMjJcMzc3XDMyNVwzMjJcMjc2XDM3NyIKLSAgIlwzMDNcMzAxXDI0N1wzNzdcMjU3XDI1NVwyMjRcMzc3XDMwMFwyNzZcMjQ0XDM3N1wzMDZcMzA0XDI1NFwzNzdcMjcwIgotICAiXDI2NlwyMzRcMzc3eXdmXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDEwXDEwXDEwXDM3N1wxMFwxMFwxMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDIxMlwyMTEiCi0gICJ1XDM3N1wzNjFcMzU1XDMyMlwzNzdcMzczXDM3MFwzNTFcMzc3XDM3MVwzNjVcMzU1XDM3N1wzNzBcMzY3XDM1NlwzNzciCi0gICJcMzcwXDM2N1wzNTRcMzc3XDM2NVwzNjNcMzQ2XDM3N1wzNTRcMzUyXDMzMVwzNzdcMzM2XDMzNVwzMTNcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdCQThcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwPlwwXDBcMFwzNzdcMFwwXDBXXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDIwMlJRRlwzNzdzcWVcMzc3IgotICAiXDIzN1wyMzVcMjIxXDM3N1wzNDRcMzQxXDMxMFwzNzdcMzUxXDM0NVwzMTdcMzc3XDM0MlwzNDBcMzEzXDM3N1wzMjEiCi0gICJcMzIxXDMxM1wzNzdcMjE2XDIxNVwxNzdcMzc3XDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzAxXDMwMVwzMDFcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwyNDBcMFwwXDBMXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzdcMzdcMzNcMzc3NDQwXDM3NyIKLSAgIktJRFwzNzdoZ2JcMzc3cG9mXDM3N2trZFwzNzdubF1cMzc3WFdLXDM3NysrJVwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wyMjJcMjIyXDIyMlwzNzdcMlwyXDJcMzc3XDBcMFwwXDM3N1wzNDZcMzQ2XDM0NlwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwPlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwKiojXDM3NyIKLSAgIlwyNDBcMjQwXDIyNVwzNzdNTUBcMzc3NjYwXDM3NyoqJlwzNzcvLypcMzc3XDE3XDE3XDE1XDM3N1wxM1wxM1wxMVwzNzciCi0gICJcMjBcMjBcMTVcMzc3KCgkXDM3N1wwXDBcMFwzNzdcMjc0XDI3NFwyNzRcMzc3bm5uXDM3N1wzNTVcMzU1XDM1NVwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwTFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDArKyRcMzc3XDI0NVwyNDRcMjMxXDM3N1wyNjdcMjY2XDI1NlwzNzdxcGdcMzc3XDI0MVwyNDFcMjIyIgotICAiXDM3N3RzY1wzNzdAQDVcMzc3aWlbXDM3NyUlXDM2XDM3N1wzNFwzNFwzNFwzNzdcMzU0XDM1NFwzNTRcMzc3XDMxN1wzMTciCi0gICJcMzE3XDM3N29vb1wzNzdcMjU3XDI1N1wyNTdcMzc3XDBcMFwwXDM3N1wwXDBcMCFcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwLCwlXDM3N1wyNTVcMjU1XDI0M1wzNzdcMzMxIgotICAiXDMzMVwzMjJcMzc3XDIxM1wyMTNcMTc3XDM3N1wzMjZcMzI1XDMxNlwzNzdcMjEwXDIxMHtcMzc3WFdPXDM3N1wxNzciCi0gICJcMTc3dVwzNzdcMFwwXDBcMzc3XDMzNlwzMzZcMzM2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzM2XDMzNlwzMzZcMzc3XDMzNiIKLSAgIlwzMzZcMzM2XDM3N1wzMTFcMzExXDMxMVwzNzdcMFwwXDBcMzc3XDBcMFwwXDc3XDBcMFwwXDFcMFwwXDBcMVwwXDBcMCIKLSAgIlwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNiwsJVwzNzdcMjU1XDI1NVwyNDNcMzc3XDMzMiIKLSAgIlwzMzJcMzIzXDM3N1wyMTdcMjE2XDIwMVwzNzdcMzM1XDMzNVwzMjRcMzc3XDI1NFwyNTNcMjMxXDM3N11dUlwzNzdpIgotICAiaWBcMzc3bW1tXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzQ3XDM0N1wzNDdcMzc3XDIyM1wyMjNcMjIzXDM3N1wwXDBcMFwzNzdcMFwwXDArXDBcMFwwXDEzXDAiCi0gICJcMFwwXDdcMFwwXDBcM1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcNVwwXDBcMFwyMSsrJFwzNzd+fnVcMzc3XDMzMFwzMzAiCi0gICJcMzIxXDM3N1wyMTVcMjE1XDIwMFwzNzdcMzM1XDMzNVwzMjNcMzc3XDI1NFwyNTNcMjMxXDM3N1BQR1wzNzdcMzBcMzAiCi0gICJcMzBcMzc3XDMxMVwzMTFcMzExXDM3N1wzMDdcMzQwXDMwN1wzNzd4XDI2NXhcMzc3XDIzM1wzMTBcMjMzXDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzQ3XDM0N1wzNDdcMzc3XDMwNlwzMDZcMzA2XDM3N1wwXDBcMFwzNzdcMFwwXDBVXDBcMFwwXDM1IgotICAiXDBcMFwwXDI3XDBcMFwwXDE1XDBcMFwwXDNcMFwwXDBcMVwwXDBcMFwxMVwwXDBcMFwzNCcnIVwzNzdDQz1cMzc3XDIxNiIKLSAgIlwyMTZcMjA2XDM3N15eVVwzNzdcMzMyXDMzMlwzMjBcMzc3XDI1NFwyNTNcMjMxXDM3NzU1LlwzNzddXV1cMzc3XDMyNCIKLSAgIlwzNDdcMzI0XDM3N11cMjQ2XVwzNzdcMzA3XDM0MFwzMDdcMzc3XDM3N1wzNzdcMzc3XDM3N11cMjQ2XVwzNzdcMjE1IgotICAiXDI3MlwyMTVcMzc3XDM0NVwzNDVcMzQ1XDM3N1wyMDZcMjA2XDIwNlwzNzdcMFwwXDBcMzc3XDBcMFwwR1wwXDBcMCciCi0gICJcMFwwXDBcMzFcMFwwXDBcMTBcMFwwXDBcMVwwXDBcMFwxMVwwXDBcMFwzNFw0XDRcNGtcNlw2XDZcMzc3XDZcNlw2XDM3NyIKLSAgIkJBOlwzNzdcMjE3XDIxN3tcMzc3enpsXDM3N1wwXDBcMFwzNzdcMzA0XDMwNFwzMDRcMzc3c1wyNjJzXDM3N1wzMDdcMzQwIgotICAiXDMwN1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N3hcMjY1eFwzNzduXDI1M25cMzc3XDM0NVwzNDUiCi0gICJcMzQ1XDM3N1wyMjBcMjIwXDIyMFwzNzdcMFwwXDBcMzc3XDBcMFwwd1wwXDBcMC5cMFwwXDBcIlwwXDBcMFwxNlwwXDAiCi0gICJcMFwxXDBcMFwwXDVcMFwwXDBcMjNcMFwwXDAmXDBcMFwwIiIwXDRcNFw0eVw2XDZcNlwzNzdcMFwwXDBcMzc3XDE3XDE3IgotICAiXDE3XDM3N1wwXDBcMFwzNzdcMzI3XDMyN1wzMjdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY0XDM2NFwzNjRcMzc3U1wyMzVTXDM3NyIKLSAgIlwyNzdcMjc3XDI3N1wzNzdKSkpcMzc3XDBcMFwwXDM3N1wwXDBcMCIiMVwwXDBcMChcMFwwXDBcMjNcMFwwXDBcMFwwIgotICAiXDBcMFwxXDBcMFwwXDZcMFwwXDBcMjNcMFwwXDBcNDBcMFwwXDApXDBcMFwwLVwwXDBcMC5cMFwwXDAiIjBcMFwwXDAiCi0gICJcMzc3XDM1NFwzNTRcMzU0XDM3N3hcMjY1eFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMDdcMzQwIgotICAiXDMwN1wzNzdcMzc3XDM3N1wzNzdcMzc3XDI3MlwzMjNcMjcyXDM3N1wyMTJcMjcwXDIxMlwzNzdcMjEyXDI2N1wyMTIiCi0gICJcMzc3cXFxXDM3N1wwXDBcMFwzNzdcMFwwXDAiIjJcMFwwXDAqXDBcMFwwXDI3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwxXDBcMFwwXDNcMFwwXDBcMTJcMFwwXDBcMjFcMFwwXDBcMjZcMFwwXDBcMzNcMFwwXDBcIlwwXDBcMFwzNzdcMjU0IgotICAiXDI1NFwyNTRcMzc3XDM1NFwzNTRcMzU0XDM3N29cMjU0b1wzNzdvXDI1NG9cMzc3blwyNTNuXDM3N1RcMjM1VFwzNzciCi0gICJcMjYyXDMxNFwyNjJcMzc3XDIxMlwyNzBcMjEyXDM3N1wyMjJcMjIyXDIyMlwzNzdhYWFcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMCIiMVwwXDBcMCdcMFwwXDBcMjNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEiCi0gICJcMFwwXDBcMlwwXDBcMFwxMFwwXDBcMFwyMlwwXDBcMFVcMFwwXDBcMzc3XDBcMFwwXDM3N2lpaVwzNzdcMjAwXDIwMCIKLSAgIlwyMDBcMzc3fVwyMjB9XDM3N1wyNDFcMjQxXDI0MVwzNzdcMjAzXDIwM1wyMDNcMzc3enp6XDM3N0NDQ1wzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwd1wwXDBcMCpcMFwwXDBcMzRcMFwwXDBcMTJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDdcMFwwXDBcMjFcMFwwXDAiIjlcMFwwXDBwXDAiCi0gICJcMFwwXDIzNFwwXDBcMFwzMDRcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzcoKChcMzc3NDQ0XDI2Mzg4OHFcMCIKLSAgIlwwXDAjXDBcMFwwXDMyXDBcMFwwXDEzXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNlwwXDBcMFwxNFwwXDBcMFwyMVwwXDBcMFwyMyIKLSAgIlwwXDBcMFwyNFwwXDBcMFwyNlwwXDBcMFwyNlwwXDBcMFwyNlwwXDBcMFwyNVwwXDBcMFwyNVwwXDBcMFwyNFwwXDBcMCIKLSAgIlwxN1wwXDBcMFwxMFwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDRcMFwwXDBcNlwwXDAiCi0gICJcMFw2XDBcMFwwXDdcMFwwXDBcMTBcMFwwXDBcN1wwXDBcMFw2XDBcMFwwXDZcMFwwXDBcNFwwXDBcMFwyXDBcMFwwXDEiCi0gICJcMFwwXDBcMFwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja192b2x1bWUpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja192b2x1bWVbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3ZvbHVtZVtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwLFwwXDBcMFwzNzdcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMElAZlwzMjBJQGYrXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwLVwwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBJQGZcMzc3SUBmK1wwXDBcMFwwSUBmK0lAZiIKLSAgIlwyNTJJQGYrXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAtXDBcMFwwXDM3N1wyNTZcMjUzXDIzN1wzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwSUBmK0lAZlwzNzdJQGYrXDBcMFwwXDBJQGZcMjEzSUBmT1wwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMG9cMFwwXDBcMzc3XDI1NlwyNTNcMjM3XDM3N1wzMzRcMzMxXDMyM1wzNzdcMFwwXDBcMzc3XDBcMFwwXDIyMSIKLSAgIlwwXDBcMFw0SUBmXDM3N0lAZitcMFwwXDBcMElAZlwyNTJJQGZPXDBcMFwwXDBJQGZjSUBmXDIxM1wwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcN1wwXDBcMFwzNzdcMjMzXDIzMFwyMTJcMzc3XDIwMH5yIgotICAiXDM3N1wwXDBcMFwzNzdcMjU2XDI1M1wyMzdcMzc3XDM0MlwzNDFcMzM0XDM3N1wzNjJcMzYyXDM2MFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwXDM0N1wwXDBcMFwxMklAZitJQGZcMzc3XDBcMFwwXDBJQGZPSUBmXDI1MlwwXDBcMFwwSUBmQElAZiIKLSAgIlwyNTJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDIyXDBcMFwwXDM3N1wzNDNcMzQyIgotICAiXDMzNVwzNzdcMjY2XDI2NlwyNjFcMzc3XDBcMFwwXDM3N1wzNTZcMzU1XDM1MlwzNzdcMzUyXDM1MlwzNDZcMzc3XDMwNSIKLSAgIlwzMDFcMjY3XDM3N1wwXDBcMFwzNzdJSUlcMzc3XDBcMFwwXDI0XDBcMFwwXDBJQGZcMzc3XDBcMFwwXDBJQGYrSUBmIgotICAiXDMyMFwwXDBcMFwwSUBmI0lAZlwzMjBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwIgotICAiXDMwXDBcMFwwXDM3N1wyNjBcMjU0XDIzNFwzNzdcMjIyXDIxNlwyMDFcMzc3XDBcMFwwXDM3N1wzMTVcMzEyXDMwMVwzNzciCi0gICJcMjcwXDI2NFwyNDZcMzc3XDI3N1wyNzNcMjU3XDM3N1wwXDBcMFwzNzdcMTFcMTFcMTFcMzc3XDBcMFwwXDMwXDBcMCIKLSAgIlwwXDBJQGZcMzc3XDBcMFwwXDBcMFwwXDBcMElAZlwzNzdcMFwwXDBcMFwwXDBcMFwwSUBmXDM3N1wwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMzFcMFwwXDBcMzc3XDIzM1wyMzBcMjEyXDM3N1wyMDB+IgotICAiclwzNzdcMFwwXDBcMzc3XDIzNlwyMzJcMjE0XDM3N1wyNjBcMjU0XDIzNFwzNzdcMjYwXDI1NFwyMzRcMzc3XDBcMFwwIgotICAiXDM3NysrK1wzNzdcMFwwXDBcMjdcMFwwXDBcMElAZlwzNzdcMFwwXDBcMElAZitJQGZcMzIwXDBcMFwwXDBJQGYjSUAiCi0gICJmXDMyMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMzFcMFwwXDBcMzc3eXZsXDM3NyIKLSAgImRiWVwzNzdcMFwwXDBcMzc3XDIzNlwyMzJcMjE0XDM3N1wyMzZcMjMyXDIxNFwzNzdcMjM2XDIzMlwyMTRcMzc3XDBcMCIKLSAgIlwwXDM3N1wxMFwxMFwxMFwzNzZcMFwwXDBcMjdJQGYrSUBmXDM3N1wwXDBcMFwwSUBmT0lAZlwyNTJcMFwwXDBcMElAIgotICAiZkBJQGZcMjUyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwzMVwwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwyNDBcMFwwXDBcMzc3XDIxNVwyMTJ9XDM3N1wyMzZcMjMyXDIxNFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDMwMFwwXDBcMFwzMElAZlwzNzdJQGYrXDBcMFwwXDBJQGZcMjUySUBmT1wwXDBcMFwwSSIKLSAgIkBmWUlAZlwyMTNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwXDMwXDBcMFwwPlwwIgotICAiXDBcMFNcMFwwXDBTXDBcMFwwUVwwXDBcMHJcMFwwXDBcMzc3fntwXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDMyIgotICAiXDBcMFwwXDBcMFwwXDBcMElAZitJQGZcMzIwSUBmK1wwXDBcMFwwSUBmXDIxM0lAZk9cMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDIyXDBcMFwwL1wwXDBcMD1cMFwwXDA7XDBcMFwwIiI4XDBcMFwwQyIKLSAgIlwwXDBcMG9cMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMCIiMVwwXDBcMFwyNlwwXDBcMFwwXDBcMFwwXDBJQGZcMzc3IgotICAiSUBmK1wwXDBcMFwwSUBmK0lAZlwyMTNJQGYrXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwIgotICAiXDBcMFw3XDBcMFwwXDIyXDBcMFwwXDI3XDBcMFwwXDI2XDBcMFwwXDI2XDBcMFwwJVwwXDBcMD5cMFwwXDBsXDBcMFwwIgotICAiXDM3N1wwXDBcMFwiXDBcMFwwXDEzXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMElAZlwzMjAiCi0gICJJQGYrXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMiIKLSAgIlwwXDBcMFwzXDBcMFwwXDNcMFwwXDBcNFwwXDBcMFwxNVwwXDBcMCNcMFwwXDA7XDBcMFwwIiI4XDBcMFwwXDMwXDBcMCIKLSAgIlwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwxNVwwXDBcMFwzN1wwXDBcMCVcMFwwXDBcMjFcMFwwXDBcMlwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMTFcMFwwXDBcMTVcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfbWlkaSkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21pZGlbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21pZGlbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwyNFwwXDBcMG5cMFwwXDBcMjRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM2XDBcMCIKLSAgIlwwXDIwNlwwXDBcMCRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwJFwwXDBcMF5cMFwwXDB1XDBcMFwwXDIzMVwwXDBcMFwyMzFcMFwwXDBRXDBcMFwwPFwwXDBcMCIKLSAgIihcMFwwXDBcMTdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAuXDBcMFwwXDI3NlwwXDBcMFhcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJeXDBcMFwwQ1wwXDBcMHVcMFwwXDAkXDBcMFwwXDI0XDBcMFwwRVwwXDBcMHdcMFwwXDB9XDBcMFwwWFwwXDBcMCIiNyIKLSAgIlwwXDBcMFwxNVwwXDBcMEFcMFwwXDBcMjI1XDBcMFwwIiI4XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjcxXDBcMFwwJFwwXDBcMCIKLSAgIlwxNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCFcMFwwXDA+XDBcMFwwXDIwMVwwXDBcMFwzMTEiCi0gICJcMFwwXDBcMjAwXDBcMFwwR1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwRVwwXDBcMFwzNjRcMFwwXDBiXDBcMFwwXDM2MlwwXDBcMCIKLSAgIlVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNTVcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM1NVwzNzdcMzc3XDM3N1wzNzciCi0gICJcMFwwXDBcMzU2XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc2XDI1MFwyNTBcMjUwXDM3N1wwXDBcMFwzNTVcMjY3XDI2NyIKLSAgIlwyNjdcMzc3XDBcMFwwXDM1NlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwe1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwelwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDMyM1wzMjFcMzE2XDM3N1wyNzRcMjcyXDI2NSIKLSAgIlwzNzdcMjU0XDI1MlwyNDRcMzc3XDIzMFwyMjZcMjE3XDM3N1wyMzBcMjI2XDIxN1wzNzdcMjMwXDIyNlwyMTdcMzc3IgotICAiXDIzMFwyMjZcMjE3XDM3N1wyMzBcMjI2XDIxN1wzNzdcMjMwXDIyNlwyMTdcMzc3XDIzMFwyMjZcMjE3XDM3N1wyMzAiCi0gICJcMjI2XDIxN1wzNzdcMjMwXDIyNlwyMTdcMzc3XDIzMFwyMjZcMjE3XDM3N1wyMzBcMjI2XDIxN1wzNzdcMjMwXDIyNiIKLSAgIlwyMTdcMzc3XDIzMFwyMjZcMjE3XDM3N1wyMzBcMjI2XDIxN1wzNzd6eHJcMzc3YmBbXDM3N1VTT1wzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDIzXDBcMFwwXDBcMFwwXDBcMzc3XDI1N1wyNTVcMjUxXDM3N1wyMzRcMjMyXDIyNVwzNzdcMjA0XDIwMnwiCi0gICJcMzc3ZmRdXDM3N2ZkXVwzNzdmZF1cMzc3ZmRdXDM3N2ZkXVwzNzdmZF1cMzc3ZmRdXDM3N2ZkXVwzNzdmZF1cMzc3ZiIKLSAgImRdXDM3N2ZkXVwzNzdmZF1cMzc3ZmRdXDM3N2ZkXVwzNzdSUEpcMzc3UlBKXDM3N0FAO1wzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwLFwwXDBcMFwzXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMCIiNlwwXDBcMFw3XDBcMFwwXDM3N1wzMTVcMzE1XDMxNVwzNzdWVlZcMzc3IgotICAiXDBcMFwwXDM3N1wzMTJcMzEyXDMxMlwzNzdWVlZcMzc3XDBcMFwwXDM3N1wzMTBcMzEwXDMxMFwzNzdWVlZcMzc3XDAiCi0gICJcMFwwXDM3N1wzMDVcMzA1XDMwNVwzNzdcMzAyXDMwMlwzMDJcMzc3XDI3MVwyNzFcMjcxXDM3N1wzMDNcMzAzXDMwMyIKLSAgIlwzNzdWVlZcMzc3XDBcMFwwXDM3N1wzMDBcMzAwXDMwMFwzNzdWVlZcMzc3XDBcMFwwXDM3N1wyNzZcMjc2XDI3NlwzNzciCi0gICJcMjcwXDI3MFwyNzBcMzc3XDBcMFwwXDM3N1wwXDBcMFw3N1wwXDBcMFwxNFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAia2trXDM3N1wwXDBcMFwzNzdcMzc0XDM3NFwzNzRcMzc3a2trXDM3N1wwXDBcMFwzNzdcMzcwXDM3MFwzNzBcMzc3a2siCi0gICJrXDM3N1wwXDBcMFwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzYyXDM2MiIKLSAgIlwzNjJcMzc3a2trXDM3N1wwXDBcMFwzNzdcMzYwXDM2MFwzNjBcMzc3a2trXDM3N1wwXDBcMFwzNzdcMzU1XDM1NVwzNTUiCi0gICJcMzc3XDM0NlwzNDZcMzQ2XDM3N1wwXDBcMFwzNzdcMFwwXDBFXDBcMFwwXDIyXDBcMFwwXDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdra2tcMzc3XDBcMFwwXDM3N1wzNzNcMzczXDM3M1wzNzdra2tcMzc3XDBcMFwwXDM3N1wzNjdcMzY3XDM2N1wzNzciCi0gICJra2tcMzc3XDBcMFwwXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzYxXDM2MVwzNjFcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdra2tcMzc3XDBcMFwwXDM3N1wzNTdcMzU3XDM1N1wzNzdra2tcMzc3XDBcMFwwXDM3N1wzNTRcMzU0IgotICAiXDM1NFwzNzdcMzQ1XDM0NVwzNDVcMzc3XDBcMFwwXDM3N1wwXDBcMERcMFwwXDBcMjNcMFwwXDBcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N2tra1wzNzdcMFwwXDBcMzc3XDM3MlwzNzJcMzcyXDM3N2tra1wzNzdcMFwwXDBcMzc3XDM2N1wzNjdcMzY3IgotICAiXDM3N2tra1wzNzdcMFwwXDBcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N2tra1wzNzdcMFwwXDBcMzc3XDM1NlwzNTZcMzU2XDM3N2tra1wzNzdcMFwwXDBcMzc3XDM1MyIKLSAgIlwzNTNcMzUzXDM3N1wzNDRcMzQ0XDM0NFwzNzdcMFwwXDBcMzc3XDBcMFwwRFwwXDBcMFwyMFwwXDBcMFwzNzdcMzc2IgotICAiXDM3NlwzNzZcMzc3Tk5OXDM3N1wwXDBcMFwzNzdcMzcyXDM3MlwzNzJcMzc3Tk5OXDM3N1wwXDBcMFwzNzdcMzY2XDM2NiIKLSAgIlwzNjZcMzc3Tk5OXDM3N1wwXDBcMFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNDRcMzQ0XDM0NCIKLSAgIlwzNzdcMzYxXDM2MVwzNjFcMzc3Tk5OXDM3N1wwXDBcMFwzNzdcMzU2XDM1NlwzNTZcMzc3Tk5OXDM3N1wwXDBcMFwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM0M1wzNDNcMzQzXDM3N1wwXDBcMFwzNzdcMFwwXDBEXDBcMFwwXDE2XDBcMFwwXDM3NyIKLSAgIlwzNzVcMzc1XDM3NVwzNzdcMzc0XDM3NFwzNzRcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzY3IgotICAiXDM2N1wzNjdcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM0N1wzNDciCi0gICJcMzQ3XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzU2XDM1NlwzNTZcMzc3XDM0M1wzNDNcMzQzXDM3N1wzNjBcMzYwXDM2MCIKLSAgIlwzNzdcMzUyXDM1MlwzNTJcMzc3XDMzNlwzMzZcMzM2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzQ2XDM0NlwzNDZcMzc3IgotICAiXDMzMlwzMzJcMzMyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzQzXDM0M1wzNDNcMzc3XDBcMFwwXDM3N1wwXDBcMERcMFwwIgotICAiXDBcMTZcMFwwXDBcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzNcMzczXDM3M1wzNzdcMzU3XDM1N1wzNTdcMzc3XDM3MlwzNzIiCi0gICJcMzcyXDM3N1wzNjZcMzY2XDM2NlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjJcMzYyXDM2MiIKLSAgIlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzQyXDM0MlwzNDJcMzc3IgotICAiXDM2MFwzNjBcMzYwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzM2XDMzNlwzMzZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNDUiCi0gICJcMzQ1XDM0NVwzNzdcMzMxXDMzMVwzMzFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNDJcMzQyXDM0MlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwRFwwXDBcMFwxNlwwXDBcMFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3M1wzNzNcMzczXDM3N1wzNjZcMzY2XDM2NlwzNzdcMzczXDM3M1wzNzNcMzc3IgotICAiXDM3MVwzNzFcMzcxXDM3N1wzNjZcMzY2XDM2NlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjMiCi0gICJcMzYzXDM2M1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjFcMzYxXDM2MVwzNzdcMzcwXDM3MCIKLSAgIlwzNzBcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM0MVwzNDFcMzQxIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBEXDBcMFwwXDE2XDBcMFwwXDM3N1wzMDFcMzAxXDMwMVwzNzdcMzAwXDMwMFwzMDAiCi0gICJcMzc3XDI2N1wyNjdcMjY3XDM3N1wzMDFcMzAxXDMwMVwzNzdcMjc1XDI3NVwyNzVcMzc3XDI3MFwyNzBcMjcwXDM3NyIKLSAgIlwyNzVcMjc1XDI3NVwzNzdcMjcyXDI3MlwyNzJcMzc3XDI2NFwyNjRcMjY0XDM3N1wyNzJcMjcyXDI3MlwzNzdcMjcwIgotICAiXDI3MFwyNzBcMzc3XDI1MVwyNTFcMjUxXDM3N1wyNzJcMjcyXDI3MlwzNzdcMjYzXDI2M1wyNjNcMzc3XDI1MVwyNTEiCi0gICJcMjUxXDM3N1wyNjZcMjY2XDI2NlwzNzdcMjU3XDI1N1wyNTdcMzc3XDI0NlwyNDZcMjQ2XDM3N1wyNjRcMjY0XDI2NCIKLSAgIlwzNzdcMjU1XDI1NVwyNTVcMzc3XDBcMFwwXDM3N1wwXDBcMERcMFwwXDBcMTZcMFwwXDBuXDBcMFwwXDM3N1wwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjI3XDBcMFwwXDc3XDAiCi0gICJcMFwwXDE0XDBcMFwwXDZcMFwwXDAjXDBcMFwwPlwwXDBcMERcMFwwXDBEXDBcMFwwRFwwXDBcMERcMFwwXDBEXDBcMCIKLSAgIlwwRFwwXDBcMERcMFwwXDBEXDBcMFwwRFwwXDBcMERcMFwwXDBEXDBcMFwwRFwwXDBcMERcMFwwXDBEXDBcMFwwRFwwIgotICAiXDBcMERcMFwwXDBEXDBcMFwwRFwwXDBcMFw3N1wwXDBcMCNcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDZcMFwwXDBcMTQiCi0gICJcMFwwXDBcMTVcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDAiCi0gICJcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMCIKLSAgIlwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTRcMFwwXDBcNlwwXDBcMFwxIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19hdXRoZW50aWNhdGlvbikKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX2F1dGhlbnRpY2F0aW9uW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19hdXRoZW50aWNhdGlvbltdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDkyMTYpICovCi0gICJcMFwwJFwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICgxOTIpICovCi0gICJcMFwwXDBcMzAwIgotICAvKiB3aWR0aCAoNDgpICovCi0gICJcMFwwXDAiIjAiCi0gIC8qIGhlaWdodCAoNDgpICovCi0gICJcMFwwXDAiIjAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFwzIgotICAiXDBcMFwwXDRcMFwwXDBcNVwwXDBcMFw1XDBcMFwwXDVcMFwwXDBcNFwwXDBcMFwzXDBcMFwwXDJcMFwwXDBcMVwwXDAiCi0gICJcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDFcMFwwXDBcMlwwXDBcMFw0XDBcMFwwXDdcMFwwXDBcMTJcMFwwXDBcMTZcMFwwXDBcMjFcMFwwXDBcMjNcMFwwIgotICAiXDBcMjNcMFwwXDBcMjNcMFwwXDBcMjFcMFwwXDBcMTZcMFwwXDBcMTJcMFwwXDBcN1wwXDBcMFw0XDBcMFwwXDJcMFwwIgotICAiXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDRcMFwwXDBcMTBcMFwwIgotICAiXDBcMTZcMFwwXDBnXDBcMFwwXDI1M1wwXDBcMFwzMzJcMFwwXDBcMzY2XDFcMVwxXDM3N1wwXDBcMFwzNjZcMFwwXDAiCi0gICJcMzM0XDBcMFwwXDI2MFwwXDBcMHFcMFwwXDBcMzZcMFwwXDBcMjVcMFwwXDBcMTZcMFwwXDBcMTBcMFwwXDBcNFwwXDAiCi0gICJcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFw1XDBcMFwwXDE0XDBcMFwwXDIwM1wwXDBcMFwzNTQiCi0gICJcMVwxXDFcMzc3XDIzM1wyMzNcMjMzXDM3N1wzMjBcMzIwXDMyMFwzNzdcMzQzXDM0M1wzNDNcMzc3XDM1MVwzNTFcMzUxIgotICAiXDM3N1wzMzVcMzM1XDMzNVwzNzdcMzA2XDMwNlwzMDZcMzc3XDIyMVwyMjFcMjIxXDM3N1wxXDFcMVwzNzdcMFwwXDAiCi0gICJcMzU2XDBcMFwwXDIyMVwwXDBcMCNcMFwwXDBcMjdcMFwwXDBcMTVcMFwwXDBcNVwwXDBcMFwyXDBcMFwwXDFcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDAiCi0gICJcMFwwXDdcMFwwXDA+XDBcMFwwXDMyMFwxXDFcMVwzNzdcMjc2XDI3NlwyNzZcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNjEiCi0gICJcMzYxXDM2MVwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNTVcMzU1XDM1NVwzNzdcMzUyXDM1MiIKLSAgIlwzNTJcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDJcMzQyXDM0MlwzNzdcMzMwXDMzMFwzMzBcMzc3XDIzNFwyMzRcMjM0IgotICAiXDM3N1wxXDFcMVwzNzdcMFwwXDBcMzMwXDBcMFwwV1wwXDBcMFwzNlwwXDBcMFwyMFwwXDBcMFw3XDBcMFwwXDJcMFwwIgotICAiXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFw3IgotICAiXDBcMFwwUlwwXDBcMFwzNjZgYGBcMzc3XDM0M1wzNDNcMzQzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0M1wzNDNcMzQzXDM3NyIKLSAgIlwzNDJcMzQyXDM0MlwzNzdcMzQyXDM0MlwzNDJcMzc3XDM0MlwzNDJcMzQyXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzI2IgotICAiXDMyNlwzMjZcMzc3XDI2N1wyNjdcMjY3XDM3N0VFRVwzNzdcMFwwXDBcMzY3XDBcMFwwbVwwXDBcMFwiXDBcMFwwXDIyIgotICAiXDBcMFwwXDdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwIgotICAiXDBcNVwwXDBcMD5cMFwwXDBcMzY2XDIwNVwyMDVcMjA1XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM1MlwzNTJcMzUyXDM3N1wzNDNcMzQzXDM0M1wzNzdcMzMxXDMzMVwzMzFcMzc3XDMxNlwzMTZcMzE2XDM3N1wzMDIiCi0gICJcMzAyXDMwMlwzNzdcMzAyXDMwMlwzMDJcMzc3XDMxNFwzMTRcMzE0XDM3N1wzMjVcMzI1XDMyNVwzNzdcMzM0XDMzNCIKLSAgIlwzMzRcMzc3XDM0MFwzNDBcMzQwXDM3N1wzMzVcMzM1XDMzNVwzNzdcMzEwXDMxMFwzMTBcMzc3XDI3MVwyNzFcMjcxIgotICAiXDM3N2JiYlwzNzdcMFwwXDBcMzcwXDBcMFwwWVwwXDBcMCFcMFwwXDBcMTdcMFwwXDBcNVwwXDBcMFwxXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDRcMFwwXDBcMTVcMFwwXDBcMzIwXl5eXDM3N1wzNTRcMzU0XDM1NCIKLSAgIlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM1MFwzNTBcMzUwXDM3N1wzMzRcMzM0XDMzNFwzNzdcMjc0XDI3NFwyNzRcMzcwIgotICAiWFhYXDM2MFwyNFwyNFwyNFwzNDFcMFwwXDBcMzMzXDBcMFwwXDMyNlwwXDBcMFwzMjR7e3tcMzUyXDI3NlwyNzZcMjc2IgotICAiXDM2NlwzNDBcMzQwXDM0MFwzNzdcMzM3XDMzN1wzMzdcMzc3XDMzNFwzMzRcMzM0XDM3N1wzMDNcMzAzXDMwM1wzNzciCi0gICJcMjczXDI3M1wyNzNcMzc3TExMXDM3N1wwXDBcMFwyNzNcMFwwXDAiIjVcMFwwXDBcMzNcMFwwXDBcMTNcMFwwXDBcMyIKLSAgIlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwxMFwwXDBcMFwyMDNcMVwxXDFcMzc3XDM0MlwzNDIiCi0gICJcMzQyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzUxXDM1MVwzNTFcMzc3XDMzMFwzMzBcMzMwXDM3N1wyMjdcMjI3XDIyNyIKLSAgIlwzNTRcMFwwXDBcMzUyXDBcMFwwXDI3NFwwXDBcMGdcMFwwXDBZXDBcMFwwU1wwXDBcMFFcMFwwXDBZXDBcMFwwXDMwNSIKLSAgIlwyMzRcMjM0XDIzNFwzNTFcMzM1XDMzNVwzMzVcMzcxXDM0MFwzNDBcMzQwXDM3N1wzMzBcMzMwXDMzMFwzNzdcMjczIgotICAiXDI3M1wyNzNcMzc3XDI2NlwyNjZcMjY2XDM3N1wxXDFcMVwzNzdcMFwwXDB4XDBcMFwwKlwwXDBcMFwyM1wwXDBcMFw3IgotICAiXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwzXDBcMFwwXDE1XDBcMFwwXDM1NFwyNzFcMjcxXDI3MVwzNzdcMzYzIgotICAiXDM2M1wzNjNcMzc3XDM1M1wzNTNcMzUzXDM3N1wzMzBcMzMwXDMzMFwzNzdcMjEyXDIxMlwyMTJcMzU2XDBcMFwwXDM0MiIKLSAgIlwwXDBcMH1cMFwwXDBXXDBcMFwwRlwwXDBcMCIiOVwwXDBcMCIiMFwwXDBcMC5cMFwwXDAiIjFcMFwwXDA7XDBcMFwwIgotICAiXDIyNFwyMjJcMjIyXDIyMlwzMzdcMzMzXDMzM1wzMzNcMzY3XDMzN1wzMzdcMzM3XDM3N1wzMTZcMzE2XDMxNlwzNzciCi0gICJcMjYzXDI2M1wyNjNcMzc3XDIyM1wyMjNcMjIzXDM3N1wwXDBcMFwzMTNcMFwwXDA6XDBcMFwwXDM2XDBcMFwwXDEzXDAiCi0gICJcMFwwXDNcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw2XDBcMFwwRVwxXDFcMVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM2MVwzNjEiCi0gICJcMzYxXDM3N1wzMzVcMzM1XDMzNVwzNzdcMzAwXDMwMFwzMDBcMzc3XDJcMlwyXDM1MFwwXDBcMFwyMTRcMFwwXDBUXDAiCi0gICJcMFwwPFwwXDBcMClcMFwwXDBcMzRcMFwwXDBcMjVcMFwwXDBcMjNcMFwwXDBcMjZcMFwwXDBcMzdcMFwwXDAuXDBcMCIKLSAgIlwwXDI0MFwyNDJcMjQyXDI0MlwzMzdcMzQ1XDM0NVwzNDVcMzc3XDMzNVwzMzVcMzM1XDM3N1wzMDBcMzAwXDMwMFwzNzciCi0gICJcMjY2XDI2NlwyNjZcMzc3XDFcMVwxXDM3N1wwXDBcMGFcMFwwXDApXDBcMFwwXDIyXDBcMFwwXDVcMFwwXDBcMVwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMlwwXDBcMFwxMVwwXDBcMHBcMjQwXDI0MFwyNDBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNTBcMzUwXDM1MFwzNzciCi0gICJcMzA2XDMwNlwzMDZcMzc3XDIwMVwyMDFcMjAxXDM1NFwwXDBcMFwzMjJcMFwwXDBaXDBcMFwwPlwwXDBcMCVcMFwwXDAiCi0gICJcMjRcMFwwXDBcMTNcMFwwXDBcN1wwXDBcMFw1XDBcMFwwXDdcMFwwXDBcMTVcMFwwXDBcMzBcMFwwXDAiIjBcMlwyXDIiCi0gICJcMzEzXDMzNFwzMzRcMzM0XDM1N1wzNTJcMzUyXDM1MlwzNzdcMzIxXDMyMVwzMjFcMzc3XDI1NlwyNTZcMjU2XDM3NyIKLSAgInZ2dlwzNzdcMFwwXDBcMjIwXDBcMFwwIiI0XDBcMFwwXDMwXDBcMFwwXDEwXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMTQiCi0gICJcMFwwXDBcMjIzXDMyMFwzMjBcMzIwXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzMxXDMzMVwzMzFcMzc3XDMwMFwzMDBcMzAwIgotICAiXDM3Ny8vL1wzNDVcMFwwXDBcMjEzXDBcMFwwSlwwXDBcMCxcMFwwXDBcMjVcMFwwXDBcMTFcMFwwXDBcM1wwXDBcMFwxIgotICAiXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFw0XDBcMFwwXDEzXDBcMFwwXDMxXDBcMFwwblwyMDJcMjAyXDIwMlwzNDBcMzU2IgotICAiXDM1NlwzNTZcMzc3XDMzNFwzMzRcMzM0XDM3N1wyNjVcMjY1XDI2NVwzNzdcMjM3XDIzN1wyMzdcMzc3XDBcMFwwXDI3NCIKLSAgIlwwXDBcMD5cMFwwXDBcMzdcMFwwXDBcMTNcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNFwwXDBcMFwxNlwwXDBcMFwzMjVcMzQxXDM0MVwzNDEiCi0gICJcMzc3XDM2MVwzNjFcMzYxXDM3N1wzMTRcMzE0XDMxNFwzNzdcMzAwXDMwMFwzMDBcMzc3XDE3XDE3XDE3XDMzMVwwXDAiCi0gICJcMGVcMFwwXDA9XDBcMFwwXDQwXDBcMFwwXDE2XDBcMFwwXDVcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMSIKLSAgIlwwXDBcMFwyXDBcMFwwXDVcMFwwXDBcMTdcMFwwXDAjXDM3XDM3XDM3XDMyM1wzNTRcMzU0XDM1NFwzNzdcMzQyXDM0MiIKLSAgIlwzNDJcMzc3XDMwMFwzMDBcMzAwXDM3N1wyNTBcMjUwXDI1MFwzNzdcMFwwXDBcMzI1XDBcMFwwR1wwXDBcMCVcMFwwIgotICAiXDBcMTZcMFwwXDBcNFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDJcMFwwXDBcN1wwXDBcMFwyNFwwXDBcMFwzMzZcMzQ2XDM0NlwzNDZcMzc3XDM1N1wzNTdcMzU3XDM3NyIKLSAgIlwzMTNcMzEzXDMxM1wzNzdcMjY3XDI2N1wyNjdcMzc3XDBcMFwwXDMyMlwwXDBcMFdcMFwwXDAiIjZcMFwwXDBcMzRcMCIKLSAgIlwwXDBcMTVcMFwwXDBcMTBcMFwwXDBcNVwwXDBcMFw1XDBcMFwwXDVcMFwwXDBcNVwwXDBcMFw1XDBcMFwwXDEwXDBcMCIKLSAgIlwwXDE2XDBcMFwwXDM1XDBcMFwwXDMwMVwzNTFcMzUxXDM1MVwzNzdcMzQ1XDM0NVwzNDVcMzc3XDMwNVwzMDVcMzA1IgotICAiXDM3N1wyNTZcMjU2XDI1NlwzNzdcMFwwXDBcMzYwXDBcMFwwT1wwXDBcMC5cMFwwXDBcMjVcMFwwXDBcMTBcMFwwXDAiCi0gICJcM1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFw2XDBcMFwwIgotICAiXDE3XDBcMFwwXDM3XDBcMFwwXDM1NFwzMzJcMzMyXDMzMlwzNzdcMzUzXDM1M1wzNTNcMzc3XDMxMlwzMTJcMzEyXDM3NyIKLSAgIlwyNTNcMjUzXDI1M1wzNzdcMFwwXDBcMzIyXDBcMFwwWVwwXDBcMDxcMFwwXDAlXDBcMFwwXDMyXDBcMFwwXDI2XDBcMCIKLSAgIlwwXDI1XDBcMFwwXDI1XDBcMFwwXDI1XDBcMFwwXDI1XDBcMFwwXDI1XDBcMFwwXDI2XDBcMFwwXDMyXDBcMFwwJlwwIgotICAiXDBcMFwzMDBcMzQ0XDM0NFwzNDRcMzc3XDM0M1wzNDNcMzQzXDM3N1wzMTJcMzEyXDMxMlwzNzdcMjU1XDI1NFwyNTIiCi0gICJcMzc3XDBcMFwwXDM3MVwwXDBcMFlcMFwwXDA7XDBcMFwwXCJcMFwwXDBcMjNcMFwwXDBcMTJcMFwwXDBcNVwwXDBcMCIKLSAgIlwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDUiIjFcMjZcN2Y3XDMxXDEwXDM3NzdcMzFcMTBcMzc3IgotICAiN1wzMVwxMFwzNzdcMjM0UlwyN1wzNzdcMjcwbiVcMzc3XDI3MWsmXDM3N1wyNDdaXDM0XDM3NzdcMzFcMTBcMzc3N1wzMSIKLSAgIlwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMCIKLSAgIlwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzciCi0gICI3XDMxXDEwXDM3N1wyNDVeXDM3XDM3N1wyNzRzKlwzNzdcMjcwbydcMzc3XDIyN1VcMzJcMzc3N1wzMVwxMFwzNzc3XDMxIgotICAiXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzclXDIwXDVfXDBcMFwwXDMzXDBcMFwwXDE2XDBcMFwwXDVcMFwwXDAiCi0gICJcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMTIiIjdcMzFcMTBcMzc3XDMxMVwyMzRiXDM3N1wzNjRcMzQxXDMxMyIKLSAgIlwzNzdcMzY0XDM0MFwzMTFcMzc3XDM1N1wzMzNcMjc2XDM3N1wzNTRcMzI1XDI2N1wzNzdcMzUzXDMyMlwyNjRcMzc3IgotICAiXDM1MlwzMjJcMjYzXDM3N1wzNTNcMzE3XDI2MFwzNzdcMzUxXDMxNlwyNTZcMzc3XDM1MFwzMTRcMjUzXDM3N1wzNDciCi0gICJcMzE0XDI1MFwzNzdcMzUwXDMwN1wyNDFcMzc3XDM0NlwzMDZcMjQxXDM3N1wzNDZcMzA2XDI0MVwzNzdcMzQ2XDMwNiIKLSAgIlwyNDFcMzc3XDM0NlwzMDZcMjQxXDM3N1wzNDZcMzA2XDI0MVwzNzdcMzUwXDMwN1wyNDFcMzc3XDM1MFwzMDdcMjQxIgotICAiXDM3N1wzNDZcMzA2XDI0MVwzNzdcMzQ1XDMwNVwyNDBcMzc3XDM0NVwzMDVcMjQwXDM3N1wzNDNcMzAyXDIzMlwzNzciCi0gICJcMzQwXDMwMFwyMzNcMzc3XDM0MFwyNzVcMjIzXDM3N1wzMzdcMjcyXDIyMlwzNzdcMzM3XDI3MlwyMTZcMzc3XDMzNSIKLSAgIlwyNjNcMjA2XDM3N1wzMjVcMjU0fFwzNzdcMjQyYVwzM1wzNzc3XDMxXDEwXDM3N1wwXDBcMCIiMVwwXDBcMFwzMlwwIgotICAiXDBcMFwxMlwwXDBcMFwzXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNFwwXDBcMFwyMCIiN1wzMVwxMFwzNzdcMzY1XDM0NlwzMjAiCi0gICJcMzc3XDM1MlwzMjNcMjU3XDM3N1wzNTJcMzE3XDI1N1wzNzdcMzQzXDMwMlwyMzJcMzc3XDMzMlwyNzBcMjEzXDM3NyIKLSAgIlwzMzJcMjY2XDIwN1wzNzdcMzMwXDI2MFwyMDFcMzc3XDMyNlwyNTZcMTc3XDM3N1wzMjNcMjUzfFwzNzdcMzIxXDI1MSIKLSAgInRcMzc3XDMxN1wyNDVuXDM3N1wzMTRcMjQzbVwzNzdcMzEyXDIzN2dcMzc3XDMxMlwyMzdnXDM3N1wzMTJcMjM3Z1wzNzciCi0gICJcMzEyXDIzN2dcMzc3XDMxMlwyMzdnXDM3N1wzMTJcMjM3Z1wzNzdcMzEyXDIzN2dcMzc3XDMxMFwyMzZnXDM3N1wzMDYiCi0gICJcMjMzY1wzNzdcMzAyXDIzMGFcMzc3XDMwMlwyMjNbXDM3N1wyNzdcMjIwUlwzNzdcMjc0XDIxMEtcMzc3XDI3NVwyMDQiCi0gICJAXDM3N1wyNzJ+PVwzNzdcMjYzdjRcMzc3XDI0N2pcIlwzNzdcMjE1U1wyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMEVcMCIKLSAgIlwwXDAmXDBcMFwwXDE3XDBcMFwwXDRcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw1XDBcMFwwXDIzIiI3XDMxXDEwXDM3N1wzNjUiCi0gICJcMzQ0XDMxNlwzNzdcMzUxXDMxNlwyNTZcMzc3XDM0N1wzMTVcMjUwXDM3N1wzMzdcMjc1XDIyMFwzNzdcMzMwXDI2MSIKLSAgIlwyMDNcMzc3XDMyNVwyNTV+XDM3N1wzMjJcMjUye1wzNzdcMzIyXDI0NndcMzc3XDMyMFwyNDdxXDM3N1wzMTVcMjQzIgotICAibFwzNzdcMzEwXDIzN2hcMzc3XDMwNVwyMzNkXDM3N1wzMDRcMjMxYVwzNzdcMzA0XDIzMWFcMzc3XDMwNFwyMzFhXDM3NyIKLSAgIlwzMDVcMjMyYlwzNzdcMzA1XDIzMmJcMzc3XDMwNVwyMzJiXDM3N1wzMDVcMjMyYlwzNzdcMzA0XDIzMWFcMzc3XDMwMiIKLSAgIlwyMzBdXDM3N1wzMDFcMjI0WlwzNzdcMjc3XDIyMFRcMzc3XDI3NlwyMTZPXDM3N1wyNzRcMjA3SVwzNzdcMjcyXDIwMiIKLSAgIlw3N1wzNzdcMjcyfj1cMzc3XDI2MXQyXDM3N1wyNDdqXCJcMzc3XDIxM1JcMjRcMzc3N1wzMVwxMFwzNzdcMFwwXDBRIgotICAiXDBcMFwwLlwwXDBcMFwyM1wwXDBcMFw1XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNVwwXDBcMFwyNCIiN1wzMVwxMFwzNzdcMzY1IgotICAiXDM0NlwzMjBcMzc3XDM1M1wzMTdcMjYwXDM3N1wzNTFcMzE2XDI1NlwzNzdcMzQwXDI3N1wyMjdcMzc3XDMzM1wyNjQiCi0gICJcMjA2XDM3N1wzMzBcMjYwXDIwMVwzNzdcMzI3XDI1N1wyMDBcMzc3XDMyMlwyNTR7XDM3N1wzMjJcMjQ2d1wzNzdcMzIwIgotICAiXDI0Nm9cMzc3XDMxNFwyNDNtXDM3N1wyNjVcMjE2XFxcMzc3XDI0MH5QXDM3N1wyMzJ5TVwzNzdcMjMyeU1cMzc3XDI2MiIKLSAgIlwyMTRZXDM3N1wzMDdcMjM0ZFwzNzdcMzA3XDIzNGRcMzc3XDMwN1wyMzRkXDM3N1wzMDVcMjMyYlwzNzdcMzAyXDIyNyIKLSAgIl9cMzc3XDMwMlwyMjNbXDM3N1wyNzdcMjIwVFwzNzdcMjc2XDIxNk9cMzc3XDI3NFwyMDRBXDM3N1wyNzJcMjAyXDc3IgotICAiXDM3N1wyNjV8OFwzNzdcMjU3cyxcMzc3XDI0M2ZcMzZcMzc3XDIwN1BcMjRcMzc3N1wzMVwxMFwzNzdcMFwwXDBXXDAiCi0gICJcMFwwIiIyXDBcMFwwXDI1XDBcMFwwXDVcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw1XDBcMFwwXDI1IiI3XDMxXDEwXDM3N1wzNjUiCi0gICJcMzQ0XDMxNlwzNzdcMzUyXDMxN1wyNTdcMzc3XDM1MFwzMTVcMjUxXDM3N1wzMzdcMjc0XDIyMlwzNzdcMzI1XDI1NSIKLSAgIn5cMzc3XDMyMlwyNTN9XDM3N1wzMjJcMjUye1wzNzdcMzIwXDI1M3VcMzc3XDMyMFwyNDZvXDM3N1wzMTVcMjQzbFwzNzciCi0gICJcMjYzXDIxNl1cMzc3XDIyNHRKXDM3N3dePFwzNzdcNDBcMzFcMjBcMzc3XDBcMFwwXDM3N1w0MFwzMVwyMFwzNzd5YCIKLSAgIj5cMzc3XDMxMFwyMzdoXDM3N1wzMTJcMjM3Z1wzNzdcMzA3XDIzNWZcMzc3XDMwNVwyMzNkXDM3N1wzMDRcMjMxYVwzNzciCi0gICJcMzAyXDIzMF1cMzc3XDI3N1wyMjFWXDM3N1wyNzZcMjE2T1wzNzdcMjc2XDIwNkVcMzc3XDI3NFwyMDNcNzdcMzc3XDI2NiIKLSAgInw3XDM3N1wyNTJsI1wzNzdcMjE1VVwyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMFhcMFwwXDAiIjNcMFwwXDBcMjVcMFwwIgotICAiXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMjUiIjdcMzFcMTBcMzc3XDM2NVwzNDRcMzE2XDM3N1wzNTFcMzE2IgotICAiXDI1NlwzNzdcMzUwXDMxNlwyNTFcMzc3XDM0MVwyNzRcMjI0XDM3N1wzMzJcMjY0XDIwN1wzNzdcMzMwXDI2MlwyMDEiCi0gICJcMzc3XDMyN1wyNTdcMjAwXDM3N1wzMjJcMjUye1wzNzdcMzIwXDI1MHNcMzc3XDMxN1wyNDVuXDM3N1wyMjJ0TVwzNzciCi0gICJ6YD5cMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzd5YFw3N1wzNzdcMzEyIgotICAiXDIzN2dcMzc3XDMwNVwyMzNkXDM3N1wzMDVcMjMyYlwzNzdcMzAyXDIyN19cMzc3XDMwMVwyMjRaXDM3N1wyNzZcMjE3IgotICAiUVwzNzdcMjc0XDIwN0lcMzc3XDI3MlwyMDE9XDM3N1wyNjd+OlwzNzdcMjYzeTRcMzc3XDI0NmkhXDM3N1wyMTNSXDI0IgotICAiXDM3NzdcMzFcMTBcMzc3XDBcMFwwWFwwXDBcMCIiM1wwXDBcMFwyNVwwXDBcMFw2XDBcMFwwXDFcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNSIKLSAgIlwwXDBcMFwyNSIiN1wzMVwxMFwzNzdcMzY0XDM0MVwzMTNcMzc3XDM1MFwzMTVcMjUxXDM3N1wzNDVcMzExXDI0NFwzNzciCi0gICJcMzM1XDI3MlwyMjBcMzc3XDMyNVwyNTV+XDM3N1wzMjJcMjUye1wzNzdcMzIyXDI1MntcMzc3XDMyMlwyNDV1XDM3NyIKLSAgIlwzMjFcMjQ3cFwzNzdcMzE0XDI0M21cMzc3XDIyNXVMXDM3N1w0MFwzMlwyMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyFcMzJcMjBcMzc3XDMyN1wyNjdcMjE2XDM3N1wzMTBcMjM2Z1wzNzciCi0gICJcMzA2XDIzM2NcMzc3XDMwNFwyMzFhXDM3N1wzMDJcMjI3X1wzNzdcMjc3XDIyMVZcMzc3XDI3NVwyMTRMXDM3N1wyNzQiCi0gICJcMjEwRVwzNzdcMjczXDIwMj5cMzc3XDI2Nnw3XDM3N1wyNTFrXCJcMzc3XDIxNVNcMjRcMzc3N1wzMVwxMFwzNzdcMCIKLSAgIlwwXDBYXDBcMFwwIiIzXDBcMFwwXDI1XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw1XDBcMFwwXDI1IiI3XDMxXDEwIgotICAiXDM3N1wzNjVcMzQ0XDMxNlwzNzdcMzUxXDMxNVwyNTRcMzc3XDM0N1wzMTNcMjQ2XDM3N1wzMzdcMjc0XDIyMlwzNzciCi0gICJcMzMwXDI2MFwyMDFcMzc3XDMyNlwyNTZcMTc3XDM3N1wzMjJcMjUzfVwzNzdcMzIyXDI1MntcMzc3XDMyMVwyNDVyXDM3NyIKLSAgIlwzMTVcMjQzbFwzNzdcMjI2d05cMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wzNDFcMzEzXDI1NVwzNzdcMzA3XDIzNWZcMzc3XDMwNFwyMzFhXDM3N1wzMDIiCi0gICJcMjI3X1wzNzdcMzAwXDIyM1lcMzc3XDI3NlwyMTdRXDM3N1wyNzVcMjE0TFwzNzdcMjc0XDIwNUNcMzc3XDI3Mn49XDM3NyIKLSAgIlwyNjN4MlwzNzdcMjQ3alwiXDM3N1wyMTNSXDI0XDM3NzdcMzFcMTBcMzc3XDBcMFwwWFwwXDBcMCIiM1wwXDBcMFwyNSIKLSAgIlwwXDBcMFw2XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNVwwXDBcMFwyNSIiN1wzMVwxMFwzNzdcMzY0XDM0MVwzMTNcMzc3XDM1MCIKLSAgIlwzMTRcMjQ3XDM3N1wzNDVcMzEyXDI0NFwzNzdcMzM0XDI3MVwyMTdcMzc3XDMyNlwyNTZcMTc3XDM3N1wzMjNcMjUzIgotICAifFwzNzdcMzIyXDI1MntcMzc3XDMyMlwyNDV1XDM3N1wzMTdcMjQ1blwzNzdcMzEyXDI0MWtcMzc3XDIyNXVMXDM3N1w0MCIKLSAgIlwzMVwyMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1w0MFwzMVwxNyIKLSAgIlwzNzdcMzM2XDMwNlwyNDdcMzc3XDMwMlwyMzBhXDM3N1wzMDFcMjIyVlwzNzdcMjc3XDIyMFRcMzc3XDI3NVwyMTVOIgotICAiXDM3N1wyNzRcMjA3SVwzNzdcMjcyXDIwMlw3N1wzNzdcMjY1fTpcMzc3XDI2NXg2XDM3N1wyNTVyLFwzNzdcMjQ0ZlwzNSIKLSAgIlwzNzdcMjA3UFwyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMFhcMFwwXDAiIjNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwxIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwxXDBcMFwwXDVcMFwwXDBcMjUiIjdcMzFcMTBcMzc3XDM2NVwzNDRcMzE2XDM3N1wzNTFcMzE1XDI1NFwzNzdcMzQ3IgotICAiXDMxM1wyNDZcMzc3XDMzNVwyNzJcMjIwXDM3N1wzMjVcMjU1flwzNzdcMzIyXDI1M3lcMzc3XDMyMVwyNTByXDM3N1wzMTciCi0gICJcMjQ1blwzNzdcMzEyXDI0MWtcMzc3XDMxMFwyMzdoXDM3N1wzMDVcMjMyYlwzNzd1XFw4XDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3dVs3XDM3N1wzMzVcMzA3XDI0N1wzNzdcMzAyXDIyMyIKLSAgIltcMzc3XDMwMVwyMjJWXDM3N1wyNzdcMjIwUlwzNzdcMjc2XDIxNk9cMzc3XDI3NFwyMTBLXDM3N1wyNzRcMjAzXDc3IgotICAiXDM3N1wyNjdcMTc3PFwzNzdcMjY2fDdcMzc3XDI2MHUvXDM3N1wyNDRoIVwzNzdcMjExUVwyNFwzNzc3XDMxXDEwXDM3NyIKLSAgIlwwXDBcMFhcMFwwXDAiIjNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMjUiIjdcMzFcMTAiCi0gICJcMzc3XDM2NVwzNDZcMzIwXDM3N1wzNTJcMzE3XDI1N1wzNzdcMzUxXDMxNlwyNTJcMzc3XDM0MVwyNzRcMjI0XDM3NyIKLSAgIlwzMzNcMjY0XDIwNlwzNzdcMzMyXDI2M1wyMDVcMzc3XDMzMlwyNjNcMjA1XDM3N1wzMjZcMjU2XDE3N1wzNzdcMzIyIgotICAiXDI1M3lcMzc3XDMyMFwyNTBzXDM3N1wzMTdcMjQ1blwzNzdcMzE0XDI0M21cMzc3emA+XDM3NyFcMzJcMjBcMzc3XDAiCi0gICJcMFwwXDM3N1w0MFwzMlwyMVwzNzdcMjIyfmNcMzc3XDM0M1wzMTdcMjYzXDM3N1wzMjRcMjYzXDIxMFwzNzdcMzA2XDIzMyIKLSAgImNcMzc3XDMwMlwyMzBdXDM3N1wzMDFcMjI0WlwzNzdcMjc3XDIyMFRcMzc3XDI3NVwyMTRMXDM3N1wyNzNcMjA0RFwzNzciCi0gICJcMjY3XDE3NzxcMzc3XDI2Nno5XDM3N1wyNjF2MFwzNzdcMjQ0aCFcMzc3XDIxM1JcMjRcMzc3N1wzMVwxMFwzNzdcMCIKLSAgIlwwXDBYXDBcMFwwIiIzXDBcMFwwXDI1XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw1XDBcMFwwXDI1IiI3XDMxXDEwIgotICAiXDM3N1wzNjRcMzQxXDMxM1wzNzdcMzUxXDMxNlwyNTJcMzc3XDM0NVwzMTFcMjQ0XDM3N1wzMzJcMjcwXDIxM1wzNzciCi0gICJcMzIyXDI1NHdcMzc3XDMyMlwyNDV1XDM3N1wzMjFcMjUwclwzNzdcMzE1XDI0NG5cMzc3XDMxMlwyNDFrXDM3N1wzMTAiCi0gICJcMjM2Z1wzNzdcMzA0XDIzMWFcMzc3XDMwMlwyMzBdXDM3N1wyNDV9TVwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMzMxXDI3N1wyMzZcMzc3XDMxMlwyNDNxXDM3N1wzMDRcMjMxYVwzNzdcMzAyXDIzMGFcMzc3XDMwMlwyMjMiCi0gICJbXDM3N1wyNzdcMjIxVlwzNzdcMjc3XDIyMFRcMzc3XDI3NVwyMTRMXDM3N1wyNzRcMjEwRVwzNzdcMjcyXDIwMlw3NyIKLSAgIlwzNzdcMjY3fThcMzc3XDI2M3gyXDM3N1wyNTVvJlwzNzdcMjExUVwyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMFhcMFwwIgotICAiXDAiIjNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMjUiIjdcMzFcMTBcMzc3XDM2NSIKLSAgIlwzNDRcMzE2XDM3N1wzNTFcMzE2XDI1MlwzNzdcMzQ3XDMxM1wyNDZcMzc3XDMzNFwyNzFcMjE3XDM3N1wzMjZcMjU2IgotICAiXDE3N1wzNzdcMzIzXDI1M3xcMzc3XDMyMlwyNTJ7XDM3N1wzMjJcMjQ1dVwzNzdcMzIwXDI0Nm9cMzc3XDMxMlwyNDEiCi0gICJrXDM3N1wzMTBcMjM2Z1wzNzdcMjcyXDIyM15cMzc3XDIyNXRKXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwzMDVcMjYzXDIzM1wzNzdcMzA0XDIzMWFcMzc3XDMwNFwyMzFhXDM3N1wzMDJcMjMwYVwzNzdcMzAxXDIyMlZcMzc3IgotICAiXDI3N1wyMjFWXDM3N1wyNzZcMjE2T1wzNzdcMjc0XDIwN0lcMzc3XDI3NFwyMDNcNzdcMzc3XDI2N346XDM3N1wyNjUiCi0gICJ5OFwzNzdcMjU1di5cMzc3XDI1N3IqXDM3N1wyMDdQXDI0XDM3NzdcMzFcMTBcMzc3XDBcMFwwWFwwXDBcMCIiM1wwXDAiCi0gICJcMFwyNVwwXDBcMFw2XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNVwwXDBcMFwyNSIiN1wzMVwxMFwzNzdcMzY1XDM0NlwzMjBcMzc3IgotICAiXDM1MlwzMTdcMjU3XDM3N1wzNTFcMzE2XDI1MlwzNzdcMzQxXDI3NVwyMjZcMzc3XDMzM1wyNjRcMjA2XDM3N1wzMzAiCi0gICJcMjYwXDIwMVwzNzdcMzI2XDI1NlwxNzdcMzc3XDMyMlwyNTR7XDM3N1wzMjBcMjUwc1wzNzdcMzE1XDI0M2xcMzc3XDMxMiIKLSAgIlwyNDBpXDM3N1wyNjVcMjE3XVwzNzdcMjAzZkFcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDIxN3VUIgotICAiXDM3N1wzMzZcMzA2XDI0N1wzNzdcMzA0XDIzMWFcMzc3XDMwMlwyMzBdXDM3N1wzMDFcMjIyVlwzNzdcMjc3XDIyMFQiCi0gICJcMzc3XDI3NVwyMTVOXDM3N1wyNzRcMjExR1wzNzdcMjc0XDIwM1w3N1wzNzdcMjY3fjpcMzc3XDI2NXk4XDM3N1wyNTciCi0gICJzLFwzNzdcMjc1XDIwMkJcMzc3XDIwN1BcMjRcMzc3N1wzMVwxMFwzNzdcMFwwXDBYXDBcMFwwIiIzXDBcMFwwXDI1XDAiCi0gICJcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw1XDBcMFwwXDI1IiI3XDMxXDEwXDM3N1wzNjRcMzQxXDMxM1wzNzdcMzQ3IgotICAiXDMxNFwyNTBcMzc3XDM0NlwzMDZcMjQxXDM3N1wzMzNcMjcwXDIxNlwzNzdcMzIzXDI1M3xcMzc3XDMyMlwyNTN5XDM3NyIKLSAgIlwzMjFcMjQ3dlwzNzdcMzIwXDI0Nm9cMzc3XDMxNFwyNDJrXDM3N1wzMTJcMjM3Z1wzNzdcMzA1XDIzMmJcMzc3XDI2NCIKLSAgIlwyMTVZXDM3N2xUM1wzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdtVTZcMzc3XDMzNlwzMDZcMjQ3XDM3NyIKLSAgIlwzMDRcMjMxYVwzNzdcMzAyXDIzMGFcMzc3XDMwMlwyMjNbXDM3N1wzMDFcMjIyVlwzNzdcMjc3XDIyMFJcMzc3XDI3NCIKLSAgIlwyMTBLXDM3N1wyNzNcMjA0RFwzNzdcMjcyfj1cMzc3XDI2NHs3XDM3N1wyNjF2MFwzNzdcMzAwXDIxNVFcMzc3XDIxMSIKLSAgIk5cMjRcMzc3N1wzMVwxMFwzNzdcMFwwXDBYXDBcMFwwIiIzXDBcMFwwXDI1XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDAiCi0gICJcMFw1XDBcMFwwXDI1IiI3XDMxXDEwXDM3N1wzNjRcMzQwXDMxMVwzNzdcMzQ3XDMxM1wyNDZcMzc3XDM0NlwzMDZcMjQxIgotICAiXDM3N1wzMzRcMjYzXDIwN1wzNzdcMzIxXDI1M3ZcMzc3XDMyMVwyNDVyXDM3N1wzMjBcMjQ2b1wzNzdcMzE1XDI0M2wiCi0gICJcMzc3XDMxMFwyMzdoXDM3N1wzMDRcMjMxYVwzNzdcMjYyXDIxM1dcMzc3XDI1NFwyMDNOXDM3N1w3NyIiMFwzNFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdAMlwzNlwzNzdcMzIyXDI3NVwyMzdcMzc3XDMxMFwyNDJxXDM3NyIKLSAgIlwzMDJcMjIzW1wzNzdcMjc3XDIyMVZcMzc3XDI3N1wyMjBUXDM3N1wyNzVcMjE1TlwzNzdcMjc0XDIxMUdcMzc3XDI3MCIKLSAgIlwyMDA9XDM3N1wyNjV8OFwzNzdcMjY1eDZcMzc3XDI1N3QuXDM3N1wzMDBcMjE1UVwzNzdcMjA2TFwyM1wzNzc3XDMxIgotICAiXDEwXDM3N1wwXDBcMFhcMFwwXDAiIjNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMjUiCi0gICI3XDMxXDEwXDM3N1wzNjRcMzQxXDMxM1wzNzdcMzQ2XDMxMlwyNDVcMzc3XDM0NlwzMDZcMjQxXDM3N1wzMzNcMjY0XDIwNiIKLSAgIlwzNzdcMzIxXDI1M3ZcMzc3XDMyMFwyNDdxXDM3N1wzMTdcMjQ1blwzNzdcMzEyXDI0MWtcMzc3XDMxMFwyMzZnXDM3NyIKLSAgIlwzMDRcMjMxYVwzNzdcMjYyXDIwN1NcMzc3XDIzMnVFXDM3N1w3NyIiMFwzNFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcNzciIjBcMzRcMzc3XDIxMWg+XDM3N1wzMzJcMzAxXDI0MFwzNzdcMjc1XDIxNlBcMzc3XDI3NVwyMTUiCi0gICJOXDM3N1wyNzRcMjEwS1wzNzdcMjczXDIwNERcMzc3XDI3MlwyMDJcNzdcMzc3XDI2N346XDM3N1wyNjR7N1wzNzdcMjYxIgotICAidzJcMzc3XDI1NXEqXDM3N1wzMTJcMjM1Y1wzNzdcMjA3TVwyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMFhcMFwwXDAiIjMiCi0gICJcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMjUiIjdcMzFcMTBcMzc3XDM2NFwzNDFcMzEzIgotICAiXDM3N1wzNTBcMzE0XDI0N1wzNzdcMzQ0XDMxMFwyNDNcMzc3XDMzMlwyNzBcMjE1XDM3N1wzMjNcMjUzfFwzNzdcMzIyIgotICAiXDI0NndcMzc3XDMyMFwyNTN1XDM3N1wzMjBcMjQ2b1wzNzdcMzEzXDI0MmxcMzc3XDMxMFwyMzdoXDM3N1wyNjdcMjE3IgotICAiW1wzNzdcMTc3Y1w3N1wzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N3IiCi0gICJZOFwzNzdcMzIzXDI2M1wyMTFcMzc3XDMwMlwyMzBhXDM3N1wzMDFcMjIyVlwzNzdcMjc3XDIyMVZcMzc3XDI3NlwyMTciCi0gICJRXDM3N1wyNzRcMjEwS1wzNzdcMjc0XDIwNEFcMzc3XDI2NX06XDM3N1wyNjV8OFwzNzdcMjYxdjBcMzc3XDMxNFwyMzciCi0gICJpXDM3N1wyMTFRXDI0XDM3NzdcMzFcMTBcMzc3XDBcMFwwWFwwXDBcMCIiM1wwXDBcMFwyNVwwXDBcMFw2XDBcMFwwXDEiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDFcMFwwXDBcNVwwXDBcMFwyNSIiN1wzMVwxMFwzNzdcMzY1XDM0NFwzMTZcMzc3XDM1MFwzMTVcMjUxXDM3N1wzNDUiCi0gICJcMzExXDI0NFwzNzdcMzM0XDI3MVwyMTdcMzc3XDMyNVwyNTV+XDM3N1wzMjJcMjUye1wzNzdcMzIyXDI1M3lcMzc3XDMyMSIKLSAgIlwyNDdwXDM3N1wzMTdcMjQ1blwzNzdcMzEyXDI0MWtcMzc3XDMxMFwyMzdoXDM3N1wzMDVcMjMyYlwzNzdcMzA1XDIzMiIKLSAgImJcMzc3XDMwNVwyMzJiXDM3N1wzMDVcMjMyYlwzNzdcMzA1XDIzMmJcMzc3XDMwNVwyMzJiXDM3N1wzMDVcMjMyYlwzNzciCi0gICJcMzA1XDIzMmJcMzc3XDMwNFwyMzFhXDM3N1wzMDJcMjIzW1wzNzdcMjc3XDIyMVZcMzc3XDI3N1wyMjBSXDM3N1wyNzQiCi0gICJcMjA3SVwzNzdcMjc0XDIwM1w3N1wzNzdcMjY3fjpcMzc3XDI3MFwxNzc7XDM3N1wyNzRcMjAyPVwzNzdcMzE2XDI0MSIKLSAgImtcMzc3XDIxMU5cMjRcMzc3N1wzMVwxMFwzNzdcMFwwXDBYXDBcMFwwIiIzXDBcMFwwXDI1XDBcMFwwXDZcMFwwXDBcMSIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMVwwXDBcMFw1XDBcMFwwXDI1IiI3XDMxXDEwXDM3N1wzNjRcMzQxXDMxM1wzNzdcMzUwXDMxM1wyNDVcMzc3XDM0NSIKLSAgIlwzMTFcMjQ0XDM3N1wzMzJcMjcwXDIxM1wzNzdcMzIyXDI1MntcMzc3XDMyMlwyNDV1XDM3N1wzMjFcMjQ3cFwzNzdcMzE1IgotICAiXDI0NG5cMzc3XDMxMlwyMzdnXDM3N1wzMDdcMjM0ZFwzNzdcMzA0XDIzMWFcMzc3XDMwMVwyMjdcXFwzNzdcMzAwXDIyMyIKLSAgIllcMzc3XDMwMFwyMjJXXDM3N1wzMDBcMjIyV1wzNzdcMzAwXDIyMldcMzc3XDMwMFwyMjJXXDM3N1wzMDBcMjIyV1wzNzciCi0gICJcMzAwXDIyMldcMzc3XDI3N1wyMjFWXDM3N1wyNzdcMjIwUlwzNzdcMjc2XDIxNk9cMzc3XDI3NFwyMTFHXDM3N1wyNzMiCi0gICJcMjA0RFwzNzdcMjcxXDIwMT5cMzc3XDI2NXw4XDM3N1wyNzBcMTc3O1wzNzdcMjc0XDIwNUVcMzc3XDMxNVwyNDBqXDM3NyIKLSAgIlwyMDdQXDI0XDM3NzdcMzFcMTBcMzc3XDBcMFwwWFwwXDBcMCIiM1wwXDBcMFwyNVwwXDBcMFw2XDBcMFwwXDFcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEiCi0gICJcMFwwXDBcNVwwXDBcMFwyNSIiN1wzMVwxMFwzNzdcMzY0XDM0MFwzMTFcMzc3XDM0NlwzMTFcMjQzXDM3N1wzNDVcMzA1IgotICAiXDI0MFwzNzdcMzMxXDI3MFwyMTBcMzc3XDMyM1wyNDZ2XDM3N1wzMjBcMjQ3cVwzNzdcMzE3XDI0NW5cMzc3XDMxM1wyNDIiCi0gICJsXDM3N1wzMTJcMjM3Z1wzNzdcMzA2XDIzM2NcMzc3XDMwNVwyMzJiXDM3N1wzMDRcMjMxYVwzNzdcMzAyXDIzMF1cMzc3IgotICAiXDMwMlwyMzBhXDM3N1wzMDJcMjMwYVwzNzdcMzA0XDIzMWFcMzc3XDMwNFwyMzFhXDM3N1wzMDVcMjMyYlwzNzdcMzA1IgotICAiXDIzMmJcMzc3XDMwNFwyMzFhXDM3N1wzMDFcMjI0WlwzNzdcMzAwXDIyM1lcMzc3XDI3N1wyMjBUXDM3N1wyNzRcMjE0IgotICAiTVwzNzdcMjc0XDIxMUdcMzc3XDI3NlwyMTJNXDM3N1wzMDRcMjMxYVwzNzdcMjc2XDIxM09cMzc3XDMwN1wyMzVgXDM3NyIKLSAgIlwyMTFOXDI0XDM3NzdcMzFcMTBcMzc3XDBcMFwwV1wwXDBcMCIiM1wwXDBcMFwyNVwwXDBcMFw1XDBcMFwwXDFcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEiCi0gICJcMFwwXDBcNVwwXDBcMFwyNCIiN1wzMVwxMFwzNzdcMzY0XDM0MFwzMTFcMzc3XDM0NlwzMTBcMjQxXDM3N1wzNDFcMzAzIgotICAiXDIzNFwzNzdcMzMyXDI2M1wyMDVcMzc3XDMyMVwyNDVyXDM3N1wzMTdcMjQ1blwzNzdcMzE1XDI0M2xcMzc3XDMxMFwyMzciCi0gICJoXDM3N1wzMDVcMjMzZFwzNzdcMzAyXDIzMV9cMzc3XDMwMlwyMjNbXDM3N1wzMDBcMjIyV1wzNzdcMjc3XDIyMVZcMzc3IgotICAiXDI3N1wyMjFWXDM3N1wzMDBcMjIyV1wzNzdcMzAyXDIyM1tcMzc3XDMwMVwyMjdcXFwzNzdcMzA1XDIzMmJcMzc3XDMxMCIKLSAgIlwyMzZnXDM3N1wzMTVcMjQzbFwzNzdcMzE1XDI0M2xcMzc3XDMxNlwyNDFrXDM3N1wzMTZcMjQxa1wzNzdcMzIyXDI1MyIKLSAgInlcMzc3XDMyMlwyNTJ3XDM3N1wzMjFcMjQ1clwzNzdcMzI0XDI0N3NcMzc3XDI3N1wyMTJMXDM3N1wyNjFzMFwzNzdcMjA3IgotICAiTVwyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMFRcMFwwXDAiIjBcMFwwXDBcMjRcMFwwXDBcNVwwXDBcMFwxXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMCIKLSAgIlwwXDVcMFwwXDBcMjIiIjNcMjdcN1wzMDFcMjYydS1cMzc3XDMwN1wyMzVgXDM3N1wzMDRcMjMyXVwzNzdcMjc1XDIxNCIKLSAgIkxcMzc3XDI3Mn49XDM3N1wyNzB+OVwzNzdcMjY2ejlcMzc3XDI2NXg2XDM3N1wyNjN1MlwzNzdcMjU3dy5cMzc3XDI1NSIKLSAgInIsXDM3N1wyNTR0K1wzNzdcMjUycilcMzc3XDI1MnIpXDM3N1wyNTJyKVwzNzdcMjU2cSlcMzc3XDI1NnEpXDM3N1wyNTYiCi0gICJxKVwzNzdcMjU2cSlcMzc3XDI1MnIpXDM3N1wyNTFtJlwzNzdcMjUybCNcMzc3XDI0NWlcIlwzNzdcMjQzZ1w0MFwzNzciCi0gICJcMjQyZVwzNVwzNzdcMjM2YVwzMVwzNzdcMjMzX1wzMFwzNzdcMjMxXVwyNlwzNzdcMjIyVlwyNVwzNzdYMFwxNVwzNzciCi0gICImXDIxXDVcMjY0XDBcMFwwS1wwXDBcMCpcMFwwXDBcMjFcMFwwXDBcNFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDRcMFwwXDBcMTYiCi0gICIrXDIzXDZxMVwyNlw3XDMwNzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMCIKLSAgIlwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzciCi0gICI3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxIgotICAiXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwIgotICAiXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3JlwyMVw1XDI2NFwxNFw1XDFlXDAiCi0gICJcMFwwO1wwXDBcMFw0MFwwXDBcMFwxNFwwXDBcMFwzXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwxMVwwXDBcMFwzMCIKLSAgIlwwXDBcMCxcMFwwXDBBXDBcMFwwT1wwXDBcMFVcMFwwXDBXXDBcMFwwWFwwXDBcMFhcMFwwXDBYXDBcMFwwWFwwXDBcMCIKLSAgIlhcMFwwXDBYXDBcMFwwWFwwXDBcMFhcMFwwXDBYXDBcMFwwWFwwXDBcMFhcMFwwXDBYXDBcMFwwWFwwXDBcMFhcMFwwIgotICAiXDBYXDBcMFwwWFwwXDBcMFhcMFwwXDBYXDBcMFwwWFwwXDBcMFhcMFwwXDBYXDBcMFwwWFwwXDBcMFdcMFwwXDBTXDAiCi0gICJcMFwwS1wwXDBcMDtcMFwwXDAnXDBcMFwwXDI0XDBcMFwwXDdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwIgotICAiXDBcNFwwXDBcMFwxNVwwXDBcMFwzMFwwXDBcMCRcMFwwXDAsXDBcMFwwIiIwXDBcMFwwIiIzXDBcMFwwIiIzXDBcMFwwIgotICAiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDAiCi0gICJcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiMyIKLSAgIlwwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiMlwwXDBcMCIiMFwwXDBcMCIKLSAgIipcMFwwXDBcNDBcMFwwXDBcMjRcMFwwXDBcMTFcMFwwXDBcM1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwyXDBcMFwwXDRcMFwwXDBcMTFcMFwwXDBcMTZcMFwwXDBcMjJcMFwwXDBcMjRcMFwwXDBcMjVcMFwwXDBcMjVcMCIKLSAgIlwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjUiCi0gICJcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDAiCi0gICJcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjRcMCIKLSAgIlwwXDBcMjFcMFwwXDBcMTRcMFwwXDBcN1wwXDBcMFwzXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcNFwwXDBcMFw1XDBcMFwwXDVcMFwwXDBcNVwwXDBcMFw1XDBcMCIKLSAgIlwwXDVcMFwwXDBcNlwwXDBcMFw2XDBcMFwwXDZcMFwwXDBcNlwwXDBcMFw2XDBcMFwwXDZcMFwwXDBcNlwwXDBcMFw2IgotICAiXDBcMFwwXDZcMFwwXDBcNlwwXDBcMFw2XDBcMFwwXDZcMFwwXDBcNlwwXDBcMFw2XDBcMFwwXDZcMFwwXDBcNlwwXDAiCi0gICJcMFw2XDBcMFwwXDZcMFwwXDBcNlwwXDBcMFw1XDBcMFwwXDVcMFwwXDBcNVwwXDBcMFw0XDBcMFwwXDNcMFwwXDBcMiIKLSAgIlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMCIKLSAgIlwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxIgotICAiXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDAiCi0gICJcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21ldWkvbm8tcGl4YnVmLWNzb3VyY2UucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpL25vLXBpeGJ1Zi1jc291cmNlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDc2NWJhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21ldWkvbm8tcGl4YnVmLWNzb3VyY2UucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gbGliZ25vbWV1aS0yLjYuMS4xL2NvbmZpZ3VyZS5pbi5vbGQJMjAwNC0wOC0wNCAwMDoyODo0My41ODIyNjY2NjQgKzAxMDAKLSsrKyBsaWJnbm9tZXVpLTIuNi4xLjEvY29uZmlndXJlLmluCTIwMDQtMDgtMDQgMDA6Mjk6MjcuNDk2NTkwNjcyICswMTAwCi1AQCAtMjM1LDcgKzIzNSw3IEBACi0gCi0gZG5sIFRoaXMgaXMgaW5zdGFsbGVkIGZyb20gR1RLKyAyLjAncyBnZGstcGl4YnVmCi0gQUNfUEFUSF9QUk9HKEdES19QSVhCVUZfQ1NPVVJDRSwgZ2RrLXBpeGJ1Zi1jc291cmNlKQotLXRlc3QgLXogIiRHREtfUElYQlVGX0NTT1VSQ0UiICYmIEFDX01TR19FUlJPUihbCi0rdGVzdCAteiAiJEdES19QSVhCVUZfQ1NPVVJDRSIgJiYgQUNfTVNHX1dBUk4oWwotICoqKiBZb3UgbmVlZCB0aGUgZ2RrLXBpeGJ1Zi1jc291cmNlIHRvb2wgd2hpY2ggaXMgaW5zdGFsbGVkCi0gKioqIGZyb20gR1RLKyAyLjAncyBnZGstcGl4YnVmLgotICoqKgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWV1aV8yLjI0LjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpXzIuMjQuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDUyMTlkNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpXzIuMjQuNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLURFU0NSSVBUSU9OID0gIkdOT01FIFVzZXIgSW50ZXJmYWNlIExpYnJhcnkiCi1MSUNFTlNFID0gIkxHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcuTElCO21kNT01NWNhODE3Y2NiN2Q1YjViNjYzNTU2OTBlOWFiYzYwNSIKLQotU0VDVElPTiA9ICJ4MTEvZ25vbWUvbGlicyIKLURFUEVORFMgPSAibGliZ25vbWUgbGliZ25vbWVjYW52YXMgbGliYm9ub2JvdWkgbGliZ25vbWUta2V5cmluZyBpbnRsdG9vbC1uYXRpdmUgZ25vbWUtY29tbW9uLW5hdGl2ZSIKLQotaW5oZXJpdCBnbm9tZQotCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L2d0ay0yLjAvKi9maWxlc3lzdGVtcy9saWIqLnNvIFwKLSAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGliZ2xhZGUvKi9saWIqLnNvIFwKLSAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3BpeG1hcHMvZ25vbWUtYWJvdXQtbG9nby5wbmciCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9ndGstMi4wLyovZmlsZXN5c3RlbXMvKi5sYSAke2xpYmRpcn0vZ3RrLTIuMC8qL2ZpbGVzeXN0ZW1zLyouYSAke2xpYmRpcn0vbGliZ2xhZGUvKi8qLmxhIgotRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vbGliZ2xhZGUvKi8qLmEiCi0KLVNSQ19VUkkgKz0gIiBcCi0gICAgZmlsZTovLzAwMDEtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmctdG8tZml4LWJ1aWxkLS5wYXRjaCBcCi0gICAgZmlsZTovL2dub21lLXN0b2NrLXBpeGJ1ZnMuaCBcCi0gICAgZmlsZTovL25vLXBpeGJ1Zi1jc291cmNlLnBhdGNoIFwKLSIKLVNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gImQ0YmI1MDZiMTkxNjAxNTMyMzkyOGZhYWI1YWE3MDhiIgotU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiYWUzNTJmMjQ5NTg4OWU2NTUyNGM5Nzk5MzJjOTA5ZjQ2MjlhNThlNjQyOTBmYjBjOTUzMzMzNzMyMjVkM2MwZiIKLUdOT01FX0NPTVBSRVNTX1RZUEU9ImJ6MiIKLQotRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1ndGstZG9jIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9nbm9tZS1zdG9jay1waXhidWZzLmggJHtTfS9saWJnbm9tZXVpL3BpeG1hcHMvZ25vbWUtc3RvY2stcGl4YnVmcy5oCi19Ci0KLUxERkxBR1MgKz0gIi1sbSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmd0a3N0eWx1cy9saWJndGtzdHlsdXNfMC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ3Rrc3R5bHVzL2xpYmd0a3N0eWx1c18wLjUuYmIKaW5kZXggM2NkNzkxMC4uYTdjOGE2ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ3Rrc3R5bHVzL2xpYmd0a3N0eWx1c18wLjUuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ3Rrc3R5bHVzL2xpYmd0a3N0eWx1c18wLjUuYmIKQEAgLTUsNyArNSw5IEBACiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly90YXAuYztiZWdpbmxpbmU9MTtlbmRsaW5lPTIwO21kNT03MTc1NmVlYjE0NGU5ZWViMTc3YzY5YWE2NzJiMTYzNSIKIFBSID0gInI0IgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogU1JDX1VSSSA9ICJodHRwOi8vYnVydG9uaW5pLmNvbS90ZW1wLyR7QlB9LnRhci5neiBcCiAgICAgZmlsZTovL2d0a3N0eWx1cy5zaCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmd0b3AvbGliZ3RvcF8yLjMwLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJndG9wL2xpYmd0b3BfMi4zMC4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NDZkMTE4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmd0b3AvbGliZ3RvcF8yLjMwLjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1TVU1NQVJZID0gIkxpYkdUb3AyIgotTElDRU5TRSA9ICJHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9jb3B5cmlnaHQudHh0O21kNT1kYmM4MzliZjE1OGQxOWEyMGU2NjFkYjE0ZGI3YTU4YyIKLQotaW5oZXJpdCBnbm9tZWJhc2UgbGliX3BhY2thZ2UgZ3RrLWRvYyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0jIGRlcGVuZHMgb24gbGlieGF1Ci1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgotCi1TUkNfVVJJID0gIiR7R05PTUVfTUlSUk9SfS8ke0dOT01FQk59LyR7QGdub21lX3ZlcmRpcigiJHtQVn0iKX0vJHtHTk9NRUJOfS0ke1BWfS50YXIuJHtHTk9NRV9DT01QUkVTU19UWVBFfTtuYW1lPWFyY2hpdmUgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1uZXRsb2FkLUluY2x1ZGUtbGliYy1uZXQtaGVhZGVycy11bmNvbmRpdGlvbmFsbHkucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJlZTI5YTllZjYwNjU5ZWJmNGIwNzVhYzI4MWY3MWNiMiIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjQ2M2JjYmU1NzM3YjFiOTNmMzM0NWVlMzRhYmY2MDFlOGViODY0ZjUwN2M0OWZmMTkyMWMyNzM3YWJhZmMxZTUiCi0KLURFUEVORFMgPSAiZ2xpYi0yLjAgaW50bHRvb2wtbmF0aXZlIGxpYnhhdSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmd0b3AvbGliZ3RvcF8yLjM4LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJndG9wL2xpYmd0b3BfMi4zOC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NDkzNGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJndG9wL2xpYmd0b3BfMi4zOC4wLmJiCkBAIC0wLDAgKzEsMTMgQEAKK1NVTU1BUlkgPSAiTGliR1RvcDIiCitMSUNFTlNFID0gIkdQTHYyKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgorCitpbmhlcml0IGdub21lYmFzZSBsaWJfcGFja2FnZSBndGstZG9jIGRpc3Ryb19mZWF0dXJlc19jaGVjayBnb2JqZWN0LWludHJvc3BlY3Rpb24gZ2V0dGV4dAorCisjIGRlcGVuZHMgb24gbGlieGF1CitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJiYjBjZTdkZTZiMjg2OTRiNDA0MDVlZWRhYzhhMzFiNSIKK1NSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjRmNmMwZTYyYmI0MzhhYmZkMTZiNDU1OWNkMmVjYTAyNTFkZTE5ZTI5MWM4ODhjZGM0ZGM4OGU1ZmZlYmI2MTIiCisKK0RFUEVORFMgPSAiZ2xpYi0yLjAgbGlieGF1IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliaWRsL2xpYmlkbC1uYXRpdmVfMC44LjE0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliaWRsL2xpYmlkbC1uYXRpdmVfMC44LjE0LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjUyYzQ0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmlkbC9saWJpZGwtbmF0aXZlXzAuOC4xNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVNFQ1RJT04gPSAibGlicyIKLXJlcXVpcmUgbGliaWRsXyR7UFZ9LmJiCi1pbmhlcml0IG5hdGl2ZQotCi1QUiA9ICJyMSIKLQotREVQRU5EUyA9ICJiaXNvbi1uYXRpdmUgZ2xpYi0yLjAtbmF0aXZlIGZsZXgtbmF0aXZlIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiYmI4ZTEwYTIxOGZhYzc5M2E1MmQ0MDRkMTRhZGVkY2IiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzVkMjRkOGMwOTY1NDYzNTNmYmM3Y2VkZjIwODM5MmQ1YTAyYWZlOWQ1NmViY2MxY2NjYjI1OGQ3YzRkMjIyMCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmlkbC9saWJpZGwuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliaWRsL2xpYmlkbC5pbmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNWM4MTUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliaWRsL2xpYmlkbC5pbmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1ERVNDUklQVElPTiA9ICJMaWJyYXJ5IGZvciBwYXJzaW5nIENPUkJBIElETCBmaWxlcyIKLUhPTUVQQUdFID0gImh0dHA6Ly9hbmRyZXd0di5vcmcvbGliSURMLyIKLVNFQ1RJT04gPSAieDExL2dub21lL2xpYnMiCi1MSUNFTlNFID0gIkxHUEx2MisiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1TUkNfVVJJID0gImh0dHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9HTk9NRS9zb3VyY2VzL2xpYklETC8wLjgvbGliSURMLSR7UFZ9LnRhci5iejIiCi0KLVMgPSAiJHtXT1JLRElSfS9saWJJREwtJHtQVn0iCi0KLUZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS8qLnNvLioiCi1GSUxFU18ke1BOfS1kZXYgKz0gIiAke2JpbmRpcn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJpZGwvbGliaWRsXzAuOC4xNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmlkbC9saWJpZGxfMC44LjE0LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmRmY2YyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmlkbC9saWJpZGxfMC44LjE0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotcmVxdWlyZSBsaWJpZGwuaW5jCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU1Y2E4MTdjY2I3ZDViNWI2NjM1NTY5MGU5YWJjNjA1IgotCi1ERVBFTkRTID0gImdsaWItMi4wIGZsZXgtbmF0aXZlIGxpYmlkbC1uYXRpdmUiCi0KLVBSID0gInIxIgotCi1CSU5DT05GSUdfR0xPQiA9ICIqLWNvbmZpZy0yIgotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGJpbmNvbmZpZwotCi1TUkNfVVJJW21kNXN1bV0gPSAiYmI4ZTEwYTIxOGZhYzc5M2E1MmQ0MDRkMTRhZGVkY2IiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzVkMjRkOGMwOTY1NDYzNTNmYmM3Y2VkZjIwODM5MmQ1YTAyYWZlOWQ1NmViY2MxY2NjYjI1OGQ3YzRkMjIyMCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYnRpbWV6b25lbWFwL2xpYnRpbWV6b25lbWFwXzAuNC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGlidGltZXpvbmVtYXAvbGlidGltZXpvbmVtYXBfMC40LjUuYmIKaW5kZXggZDZhZWVkMy4uOTU3ZDdkMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGlidGltZXpvbmVtYXAvbGlidGltZXpvbmVtYXBfMC40LjUuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGlidGltZXpvbmVtYXAvbGlidGltZXpvbmVtYXBfMC40LjUuYmIKQEAgLTE1LDcgKzE1LDkgQEAKIAogQiA9ICIke1N9IgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ29iamVjdC1pbnRyb3NwZWN0aW9uCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBhdXRvdG9vbHMgcGtnY29uZmlnIGdvYmplY3QtaW50cm9zcGVjdGlvbgorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKIAkoY2QgJHtTfTsgTk9DT05GSUdVUkU9InllcyIgLiAke1N9L2F1dG9nZW4uc2gpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9tZXRhY2l0eS9tZXRhY2l0eS8wMDAxLWRyb3AtemVuaXR5LWRldGVjdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5LzAwMDEtZHJvcC16ZW5pdHktZGV0ZWN0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0OTNlNTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9tZXRhY2l0eS9tZXRhY2l0eS8wMDAxLWRyb3AtemVuaXR5LWRldGVjdGlvbi5wYXRjaApAQCAtMCwwICsxLDMzIEBACitGcm9tIGVjMGU1MmI0OWM5YjY4Njk0MTNjOTU0NGMyZWQ0NDcxMGFiOTExNDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+CitEYXRlOiBTYXQsIDE0IEFwciAyMDE4IDE2OjE1OjU5ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIGRyb3AgemVuaXR5IGRldGVjdGlvbgorCitPRSBkb2VzIG5vdCBzdXBwb3J0IHplbml0eQorCitVcHN0cmVhbS1TdGF0dXM6IGluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+CistLS0KKyBjb25maWd1cmUuYWMgfCA1IC0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDVmOWU3ZTkuLjgwYjMyYzcgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTM1OSwxMSArMzU5LDYgQEAgZmkKKyAKKyBBTV9DT05ESVRJT05BTChIQVZFX1NNLCB0ZXN0ICIkZm91bmRfc20iID0gInllcyIpIAorIAorLUFDX1BBVEhfUFJPRyhaRU5JVFksIHplbml0eSwgbm8pCistaWYgdGVzdCB4IiRaRU5JVFkiID0geG5vOyB0aGVuCistICBBQ19NU0dfRVJST1IoW3plbml0eSBub3QgZm91bmQgaW4geW91ciBwYXRoIC0gbmVlZGVkIGZvciBkaWFsb2dzXSkKKy1maQorLQorIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIGRubCBDaGVjayBmb3IgVnVsa2FuIHN1cHBvcnQKKyBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy0tIAorMS44LjMuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9tZXRhY2l0eS9tZXRhY2l0eS8wMDAxLXVpLURlZmluZS1fR05VX1NPVVJDRS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5LzAwMDEtdWktRGVmaW5lLV9HTlVfU09VUkNFLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MzlkNzU2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5LzAwMDEtdWktRGVmaW5lLV9HTlVfU09VUkNFLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotRnJvbSBlN2ZkMDcyZjBkZjk2OGYzNDI4NzhiNzcwOThlOTdmZjA3ZWQyOGQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMTQgSnVsIDIwMTcgMTA6MjY6MzEgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gdWk6IERlZmluZSBfR05VX1NPVVJDRQotCi1pdCBiZWNvbWVzIHBvcnRhYmxlIGFjcm9zcyBtdXNsIGFuZCBnbGliYwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gc3JjL3VpL3RoZW1lLmMgfCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL3NyYy91aS90aGVtZS5jIGIvc3JjL3VpL3RoZW1lLmMKLWluZGV4IDg0YjU3YTAuLmM3ZWFmYzggMTAwNjQ0Ci0tLS0gYS9zcmMvdWkvdGhlbWUuYwotKysrIGIvc3JjL3VpL3RoZW1lLmMKLUBAIC02MCw2ICs2MCw3IEBACi0gI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNkZWZpbmUgX0dOVV9TT1VSQ0UKLSAjZGVmaW5lIF9fVVNFX1hPUEVOCi0gI2luY2x1ZGUgPG1hdGguaD4KLSAKLS0tIAotMi4xMy4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5L3JlbW92ZS15ZWxwLWhlbHAtcnVsZXMtdmFyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbWV0YWNpdHkvbWV0YWNpdHkvcmVtb3ZlLXllbHAtaGVscC1ydWxlcy12YXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5NzBlOWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbWV0YWNpdHkvbWV0YWNpdHkvcmVtb3ZlLXllbHAtaGVscC1ydWxlcy12YXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1SZW1vdmUgdW51c2VkIHZhcmlhYmxlIChZRUxQX0hFTFBfUlVMRVMpCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotU2lnbmVkLW9mZi1ieTogQ29uc3RhbnRpbiBNdXNjYSA8Y29uc3RhbnRpbngubXVzY2FAaW50ZWwuY29tPgotCi1JbmRleDogbWV0YWNpdHktMi4zNC4xMy9kb2MvY3JlYXRpbmdfdGhlbWVzL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbWV0YWNpdHktMi4zNC4xMy5vcmlnL2RvYy9jcmVhdGluZ190aGVtZXMvTWFrZWZpbGUuYW0KLSsrKyBtZXRhY2l0eS0yLjM0LjEzL2RvYy9jcmVhdGluZ190aGVtZXMvTWFrZWZpbGUuYW0KLUBAIC0xLDYgKzEsNSBAQAotICMjIyBUaGlzIHBhcnQgb2YgTWFrZWZpbGUuYW0gY2FuIGJlIGN1c3RvbWl6ZWQgYnkgeW91LgotIAotLUBZRUxQX0hFTFBfUlVMRVNACi0gCi0gIyBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IGluIC91c3Ivc2hhcmUvZ25vbWUvaGVscC8sIAotICMgYW5kIHRoZSBuYW1lIG9mIHRoZSBtYWluIC54bWwgZmlsZToKLUluZGV4OiBtZXRhY2l0eS0yLjM0LjEzL2RvYy9jcmVhdGluZ190aGVtZXMvTWFrZWZpbGUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBtZXRhY2l0eS0yLjM0LjEzLm9yaWcvZG9jL2NyZWF0aW5nX3RoZW1lcy9NYWtlZmlsZS5pbgotKysrIG1ldGFjaXR5LTIuMzQuMTMvZG9jL2NyZWF0aW5nX3RoZW1lcy9NYWtlZmlsZS5pbgotQEAgLTQ1NSw3ICs0NTUsNiBAQCB1bmluc3RhbGwtYW06Ci0gCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0gCi0gCi0tQFlFTFBfSEVMUF9SVUxFU0AKLSAKLSAjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotICMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbWV0YWNpdHkvbWV0YWNpdHlfMi4zNC4xMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5XzIuMzQuMTMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3MGRlNzAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbWV0YWNpdHkvbWV0YWNpdHlfMi4zNC4xMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLVNFQ1RJT04gPSAieDExL3dtIgotU1VNTUFSWSA9ICJNZXRhY2l0eSBpcyB0aGUgYm9yaW5nIHdpbmRvdyBtYW5hZ2VyIGZvciB0aGUgYWR1bHQgaW4geW91IgotTElDRU5TRSA9ICJHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvaW5jbHVkZS9tYWluLmg7ZW5kbGluZT0yNDttZDU9YzIyNDJkZjU1MmM4ODAyODAzMTU5ODliYWI2MjZiOTAiCi0KLURFUEVORFMgPSAiZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBzdGFydHVwLW5vdGlmaWNhdGlvbiBndGsrIGdjb25mIGdkay1waXhidWYtbmF0aXZlIGxpYmNhbmJlcnJhIGdub21lLWRvYy11dGlscyBsaWJndG9wIGludGx0b29sLW5hdGl2ZSIKLVBSID0gInIxIgotCi1pbmhlcml0IGdub21lYmFzZSB1cGRhdGUtYWx0ZXJuYXRpdmVzIGRpc3Ryb19mZWF0dXJlc19jaGVjawotIyBkZXBlbmRzIG9uIHN0YXJ0dXAtbm90aWZpY2F0aW9uIHdoaWNoIGRlcGVuZHMgb24gdmlydHVhbC9saWJ4MTEKLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCi0KLUdOT01FX0NPTVBSRVNTX1RZUEUgPSAieHoiCi0KLVNSQ19VUkkgPSAiJHtHTk9NRV9NSVJST1J9LyR7R05PTUVCTn0vJHtAZ25vbWVfdmVyZGlyKCIke1BWfSIpfS8ke0dOT01FQk59LSR7UFZ9LnRhci4ke0dOT01FX0NPTVBSRVNTX1RZUEV9O25hbWU9YXJjaGl2ZSBcCi0gICAgICAgICAgIGZpbGU6Ly9yZW1vdmUteWVscC1oZWxwLXJ1bGVzLXZhci5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLXVpLURlZmluZS1fR05VX1NPVVJDRS5wYXRjaCBcCi0gICAgICAgICAgICIKLVNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gIjZkODliNzE2NzJkNGZhNDlmYzg3ZjgzZDYxMGQwZWY2IgotU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiOGNmNGRiZjBkYTBhNmYzNjM1N2NlN2RiN2Y4MjllYzY4NTkwOGE3NzkyNDUzYzY2MmZiODE4NDU3MmI5MTA3NSIKLQotQUxURVJOQVRJVkVfJHtQTn0gPSAieC13aW5kb3ctbWFuYWdlciIKLUFMVEVSTkFUSVZFX1RBUkdFVFt4LXdpbmRvdy1tYW5hZ2VyXSA9ICIke2JpbmRpcn0vbWV0YWNpdHkiCi1BTFRFUk5BVElWRV9QUklPUklUWSA9ICIxMCIKLQotRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUteGluZXJhbWEiCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgewotICAgIHNlZCAtaSAtZSAnczokWkVOSVRZOiROT1pFTklUWTpnJyAtZSAnczotV2Vycm9yOjpnJyAke1N9L2NvbmZpZ3VyZS5pbgotfQotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS90aGVtZXMgJHtkYXRhZGlyfS9nbm9tZS1jb250cm9sLWNlbnRlciAke2RhdGFkaXJ9L2dub21lIgotUkRFUEVORFNfJHtQTn0gKz0gImdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMiCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5XzMuMzguMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5XzMuMzguMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGZjOTE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbWV0YWNpdHkvbWV0YWNpdHlfMy4zOC4wLmJiCkBAIC0wLDAgKzEsMzQgQEAKK1NFQ1RJT04gPSAieDExL3dtIgorU1VNTUFSWSA9ICJNZXRhY2l0eSBpcyB0aGUgYm9yaW5nIHdpbmRvdyBtYW5hZ2VyIGZvciB0aGUgYWR1bHQgaW4geW91IgorTElDRU5TRSA9ICJHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iNGNjZTUzNTYwYjhlNjE5ZmZhN2M4MzBmYjg3NjFhYSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvaW5jbHVkZS9tYWluLmg7ZW5kbGluZT0yNDttZDU9NzIxNDhlZGUwN2E2ZGFkZDAxZGU2YTg4MmQyMGE5YWQiCisKK0RFUEVORFMgPSAiZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBzdGFydHVwLW5vdGlmaWNhdGlvbiBcCisgICAgICAgICAgIGdub21lLWRvYy11dGlscyBnZGstcGl4YnVmLW5hdGl2ZSBcCisgICAgICAgICAgIGd0ayszIGdsaWItMi4wIGxpYmNhbmJlcnJhIGxpYmd0b3AgaW50bHRvb2wtbmF0aXZlIgorCitpbmhlcml0IGF1dG90b29scyBnZXR0ZXh0IGdub21lYmFzZSBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKyMgZGVwZW5kcyBvbiBzdGFydHVwLW5vdGlmaWNhdGlvbiB3aGljaCBkZXBlbmRzIG9uIHZpcnR1YWwvbGlieDExCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vR05PTUUvbWV0YWNpdHkuZ2l0O2JyYW5jaD1tYXN0ZXIgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1kcm9wLXplbml0eS1kZXRlY3Rpb24ucGF0Y2ggXAorIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorU1JDUkVWID0gImMwZDRiMmZjMGZjZDZmMmQzYzM3ZGE5MzU5MjNmOWU5ZWQ1ZWI5OWYiCisKK0VYVFJBX09FQ09ORiArPSAiLS1kaXNhYmxlLXhpbmVyYW1hIgorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKyAgICBjZCAke1N9CisgICAgYWNsb2NhbCAtLWluc3RhbGwgfHwgZXhpdCAxCisgICAgYXV0b3JlY29uZiAtLXZlcmJvc2UgLS1mb3JjZSAtLWluc3RhbGwgLVduby1wb3J0YWJpbGl0eSB8fCBleGl0IDEKKyAgICBjZCAtCisKK30KKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vdGhlbWVzICR7ZGF0YWRpcn0vZ25vbWUtY29udHJvbC1jZW50ZXIgJHtkYXRhZGlyfS9nbm9tZSIKK1JERVBFTkRTXyR7UE59ICs9ICJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9uYXV0aWx1cy9uYXV0aWx1cy9uby10cnktcnVuLXN0cmZ0aW1lLmRpZmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9uYXV0aWx1cy9uYXV0aWx1cy9uby10cnktcnVuLXN0cmZ0aW1lLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjZDI5MzQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbmF1dGlsdXMvbmF1dGlsdXMvbm8tdHJ5LXJ1bi1zdHJmdGltZS5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotLS0tIC90bXAvY29uZmlndXJlLmluCTIwMDktMDQtMTMgMTE6MjY6NDMuMDAwMDAwMDAwICswMjAwCi0rKysgbmF1dGlsdXMtMi4yNi4xL2NvbmZpZ3VyZS5pbgkyMDA5LTA0LTEzIDExOjI4OjM3LjAwMDAwMDAwMCArMDIwMAotQEAgLTM3NSwyNSArMzc1LDYgQEAKLSAKLSBkbmwgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gCi0tZG5sIHN0cmZ0aW1lIGNoZWNrcwotLQotLUFDX1RSWV9SVU4oWyNpbmNsdWRlIDx0aW1lLmg+Ci0tICAgICAgICAgICAgICAgIGludCBtYWluICgpCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICBjaGFyIGJ1ZlsxMDBdOwotLSAgICAgICAgICAgICAgICAgIHN0cnVjdCB0bSB0bSA9IHswfTsKLS0gICAgICAgICAgICAgICAgICB0bS50bV95ZWFyID0gOTk7Ci0tICAgICAgICAgICAgICAgICAgaWYgKHN0cmZ0aW1lKGJ1ZiwgMTAwLCAiJUVZIiwgJnRtKSA9PSA0ICYmCi0tCQkgICAgICBzdHJjbXAgKGJ1ZiwgIjE5OTkiKT09MCkKLS0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotLSAgICAgICAgICAgICAgICAgIHJldHVybiAxOwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgXSwKLS0JICAgIEFDX0RFRklORShIQVZFX1NUUkZUSU1FX0VYVEVOU0lPTiwgMSwgW0RlZmluZSBpZiBzdHJmdGltZSBzdXBwb3J0cyAlRSBhbmQgJU8gbW9kaWZpZXJzLl0pCi0tICAgICAgICAgICAgKQotLQotLWRubCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0KLSAjCi0gIyBDaGVja3MgZm9yIFhmdC9YUmVuZGVyCi0gIwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbmF1dGlsdXMvbmF1dGlsdXMzL25vLXRyeS1ydW4tc3RyZnRpbWUuZGlmZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL25hdXRpbHVzL25hdXRpbHVzMy9uby10cnktcnVuLXN0cmZ0aW1lLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2ZDJlMTUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbmF1dGlsdXMvbmF1dGlsdXMzL25vLXRyeS1ydW4tc3RyZnRpbWUuZGlmZgorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLUZyb20gZGM5YzhjZjI2NzZjOGM5MWVhMGFlMjUwY2ZlZGY4NjMzNTJmM2NjZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+Ci1EYXRlOiBGcmksIDI0IEp1biAyMDExIDIwOjI0OjA4ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGhhY2sgb3V0IGNoZWNrIHRoYXQgdHJpZXMgdG8gcnVuIGdlbmVyYXRlZCBiaW5hcmllcwotCi1TaWduZWQtb2ZmLWJ5OiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotLS0tCi0gY29uZmlndXJlLmluIHwgICAxNyArLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgotaW5kZXggYzNhYTM3MS4uMWQzZWNkYyAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5pbgotKysrIGIvY29uZmlndXJlLmluCi1AQCAtMjUxLDIyICsyNTEsNyBAQCBBQ19TVUJTVChXQVJOSU5HX0NGTEFHUykKLSAKLSBkbmwgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gCi0tZG5sIHN0cmZ0aW1lIGNoZWNrcwotLQotLUFDX1RSWV9SVU4oWyNpbmNsdWRlIDx0aW1lLmg+Ci0tICAgICAgICAgICAgICAgIGludCBtYWluICgpCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICBjaGFyIGJ1ZlsxMDBdOwotLSAgICAgICAgICAgICAgICAgIHN0cnVjdCB0bSB0bSA9IHswfTsKLS0gICAgICAgICAgICAgICAgICB0bS50bV95ZWFyID0gOTk7Ci0tICAgICAgICAgICAgICAgICAgaWYgKHN0cmZ0aW1lKGJ1ZiwgMTAwLCAiJUVZIiwgJnRtKSA9PSA0ICYmCi0tCQkgICAgICBzdHJjbXAgKGJ1ZiwgIjE5OTkiKT09MCkKLS0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotLSAgICAgICAgICAgICAgICAgIHJldHVybiAxOwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgXSwKLS0JICAgIEFDX0RFRklORShIQVZFX1NUUkZUSU1FX0VYVEVOU0lPTiwgMSwgW0RlZmluZSBpZiBzdHJmdGltZSBzdXBwb3J0cyAlRSBhbmQgJU8gbW9kaWZpZXJzLl0pCi0tICAgICAgICAgICAgKQotK0FDX0RFRklORShIQVZFX1NUUkZUSU1FX0VYVEVOU0lPTiwgMSwgW0RlZmluZSBpZiBzdHJmdGltZSBzdXBwb3J0cyAlRSBhbmQgJU8gbW9kaWZpZXJzLl0pCi0gCi0gZG5sID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gCQotLS0gCi0xLjYuNi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL25hdXRpbHVzL25hdXRpbHVzXzMuMTguNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL25hdXRpbHVzL25hdXRpbHVzXzMuMTguNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmRiZjZhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbmF1dGlsdXMvbmF1dGlsdXNfMy4xOC41LmJiCkBAIC0wLDAgKzEsMjkgQEAKK1NVTU1BUlkgPSAiRmlsZSBtYW5hZ2VyIGZvciBHTk9NRSIKK1NFQ1RJT04gPSAieDExL2dub21lIgorCitMSUNFTlNFPSJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTM2Y2Y2NjBhZWEyYjhiZWZmYmE3OTQ1ZjQ0YTdlNzQ4IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuRVhURU5TSU9OUzttZDU9NzU3OWQ2Njc4NDAyYTE4Njg2MzFiZjgyYzkzZmYwZDQgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5MSUI7bWQ1PWYzMGE5NzE2ZWYzNzYyZTM0NjdhMmY2MmJmNzkwZjBhIgorCitTUkNfVVJJID0gImh0dHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9HTk9NRS9zb3VyY2VzL25hdXRpbHVzLzMuMTgvbmF1dGlsdXMtJHtQVn0udGFyLnh6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMGY1NzhiZGE1NjU1YzBjZTIwNGJlZmFmY2E1ODAzZDciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjBhOTI3YzA1MjJiNGNjZWQ5ZDhmNjJiYWVkMmVlNWUyZmQ0MzA1YmU0NTIzZWI1YmM0NDgwNTk3MWE2Y2MxNSIKKworREVQRU5EUyA9ICJndGsrMyBnbm9tZS1kZXNrdG9wMyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGdsaWItMi4wLW5hdGl2ZSBpbnRsdG9vbC1uYXRpdmUgcGFuZ28iCisKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcgZ29iamVjdC1pbnRyb3NwZWN0aW9uCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitFWFRSQV9PRUNPTkYgPSAiIFwKKyAgICAtLWRpc2FibGUtZ3RrLWRvYyBcCisgICAgLS1kaXNhYmxlLXVwZGF0ZS1taW1lZGIgXAorICAgIC0tZGlzYWJsZS1uc3QtZXh0ZW5zaW9uIFwKKyAgICAtLWVuYWJsZS10cmFja2VyPW5vIFwKKyAgICAtLWRpc2FibGUtc2NoZW1hcy1jb21waWxlIFwKKyAgICAtLWVuYWJsZS14bXA9bm8gXAorICAgIC0tZW5hYmxlLWxpYmV4aWY9bm8gXCAKKyIKKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vKiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDIvMDAwMS1saW5jMi1zcmMtTWFrZWZpbGUuYW0tZml4LWJ1aWxkLXdpdGgtZ2xpYi0yLjM2LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi8wMDAxLWxpbmMyLXNyYy1NYWtlZmlsZS5hbS1maXgtYnVpbGQtd2l0aC1nbGliLTIuMzYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhZjc0NjQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi8wMDAxLWxpbmMyLXNyYy1NYWtlZmlsZS5hbS1maXgtYnVpbGQtd2l0aC1nbGliLTIuMzYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1Gcm9tIDEwYmQ4MDk0ZTFkOTRlNWM3Mzc3OTFjN2Y0YjZiODQ0ZjUzNWMxMjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBGcmksIDMgTWF5IDIwMTMgMTA6MDA6MTYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gbGluYzIvc3JjL01ha2VmaWxlLmFtOiBmaXggYnVpbGQgd2l0aCBnbGliIDIuMzYKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgWzFdCi0KLVsxXSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2OTAwCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLS0tLQotIGxpbmMyL3NyYy9NYWtlZmlsZS5hbSB8ICAgIDMgKy0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saW5jMi9zcmMvTWFrZWZpbGUuYW0gYi9saW5jMi9zcmMvTWFrZWZpbGUuYW0KLWluZGV4IDM1N2EyZGQuLmJhMGUzNDcgMTAwNjQ0Ci0tLS0gYS9saW5jMi9zcmMvTWFrZWZpbGUuYW0KLSsrKyBiL2xpbmMyL3NyYy9NYWtlZmlsZS5hbQotQEAgLTEyLDggKzEyLDcgQEAgSU5DTFVERVMgPSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gCS1JJCh0b3BfYnVpbGRkaXIpL2xpbmMyL2luY2x1ZGUgIFwKLSAJLUkkKHRvcF9zcmNkaXIpL2xpbmMyL2luY2x1ZGUgICAgXAotIAkkKExJTkNfQ0ZMQUdTKSAgICAgICAgICAgICBcCi0tCSQoV0FSTl9DRkxBR1MpICAgICAgICAgICAgIFwKLS0JLURHX0RJU0FCTEVfREVQUkVDQVRFRAotKwkkKFdBUk5fQ0ZMQUdTKQotIAotIGlmIE9TX1dJTjMyCi0gZWxzZQotLS0gCi0xLjcuNi41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDIvMDAwMi1Vc2UtQU1fQ1BQRkxBR1MtaW5zdGVhZC1vZi1JTkNMVURFUy1hbmQtZml4LXByb2JsZW0tLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi8wMDAyLVVzZS1BTV9DUFBGTEFHUy1pbnN0ZWFkLW9mLUlOQ0xVREVTLWFuZC1maXgtcHJvYmxlbS0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5OTNhYmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi8wMDAyLVVzZS1BTV9DUFBGTEFHUy1pbnN0ZWFkLW9mLUlOQ0xVREVTLWFuZC1maXgtcHJvYmxlbS0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi1Gcm9tIGQ5MWRiYjQyZGMzYjYwNzM3MjAwMjdmNjg4MjdhY2QwYWJlZTZkNzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLamFydGFuIE1hcmFhcyA8a21hcmFhc0Bnbm9tZS5vcmc+Ci1EYXRlOiBUdWUsIDE0IE1heSAyMDEzIDEzOjI5OjUzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVzZSBBTV9DUFBGTEFHUyBpbnN0ZWFkIG9mIElOQ0xVREVTIGFuZCBmaXggcHJvYmxlbSB1c2luZwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFsxXQotCi1bMV0gaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9PUkJpdDIvY29tbWl0L3Rlc3QvZXZlcnl0aGluZy9NYWtlZmlsZS5hbT9pZD1kOTFkYmI0MmRjM2I2MDczNzIwMDI3ZjY4ODI3YWNkMGFiZWU2ZDc1Ci0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLS0tLQotIHRlc3QvZXZlcnl0aGluZy9NYWtlZmlsZS5hbSB8IDQgKystLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS90ZXN0L2V2ZXJ5dGhpbmcvTWFrZWZpbGUuYW0gYi90ZXN0L2V2ZXJ5dGhpbmcvTWFrZWZpbGUuYW0KLWluZGV4IDMyYmViMzYuLmNiNGIxZDYgMTAwNjQ0Ci0tLS0gYS90ZXN0L2V2ZXJ5dGhpbmcvTWFrZWZpbGUuYW0KLSsrKyBiL3Rlc3QvZXZlcnl0aGluZy9NYWtlZmlsZS5hbQotQEAgLTEwLDcgKzEwLDcgQEAgRVZFUllUSElOR19JRExPVVQgPSAgICAgICAgICBcCi0gCSQoRVZFUllUSElOR19CVUlMVCkgIFwKLSAJZXZlcnl0aGluZy1pbW9kdWxlLmMKLSAKLS1JTkNMVURFUyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotK0FNX0NQUEZMQUdTID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gCS1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlICAgICAgICAgICAgXAotIAktSSQodG9wX2J1aWxkZGlyKS9pbmNsdWRlICAgICAgICAgIFwKLSAJLUkkKHRvcF9idWlsZGRpcikvc3JjICAgICAgICAgICAgICBcCi1AQCAtNzgsNyArNzgsNyBAQCBpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuc2hhcmVkCi0gQlVJTFRfU09VUkNFUyA9ICR7RVZFUllUSElOR19CVUlMVH0gZXZlcnl0aGluZy1pbW9kdWxlLmMKLSBDTEVBTkZJTEVTID0gJHtCVUlMVF9TT1VSQ0VTfSBpb3JmaWxlCi0gCi0tVEVTVFMgPSAkKHNyY2RpcikvdGVzdC5zaAotK1RFU1RTID0gJCh0b3BfYnVpbGRkaXIpL3Rlc3QvZXZlcnl0aGluZy90ZXN0LnNoCi0gCi0gRVhUUkFfRElTVCA9ICQoSURMX0ZJTEVTKSB0ZXN0LnNoICQoaW5jbHVkZWRfc3JjKQotIAotLS0gCi0xLjguMy4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDIvY29uZmlndXJlLWxvc3NhZ2UucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9vcmJpdDIvb3JiaXQyL2NvbmZpZ3VyZS1sb3NzYWdlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZmMxZGU1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDIvY29uZmlndXJlLWxvc3NhZ2UucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0tLS0gT1JCaXQyLTIuMTQuMTcvY29uZmlndXJlLmluLW9yaWcJMjAwOS0wMS0xMCAwOTozNjoxOC4wMDAwMDAwMDAgLTA4MDAKLSsrKyBPUkJpdDItMi4xNC4xNy9jb25maWd1cmUuaW4JMjAwOS0wNi0xNyAxNToxMDo1OS4wMDAwMDAwMDAgLTA3MDAKLUBAIC0yMTcsMjAgKzIxNywyMCBAQCBkbmwKLSBkbmwgICBTbyBtYW55IHBlb3BsZSB3aXRoIGJyb2tlbiBsaW5raW5nIHNldHVwcyBhc2tlZCBhYm91dCB0aGlzCi0gZG5sIGl0IHR1cm5lZCBvdXQgdG8gYmUgbmVjZXNzYXJ5IHRvIGNoZWNrIGZvciB0aGlzLgotIGRubAotLWRvZnVzX3NhdmVfbGlicz0iJExJQlMiCi0tTElCUz0iJE9SQklUX0xJQlMgJExJQlMiCi0tQUNfVFJZX1JVTihbICNpbmNsdWRlIDxzdGRpby5oPgotLSAgICAgICAgICAgICBtYWluICgpCi0tICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICByZXR1cm4gMDsKLS0gICAgICAgICAgICAgfSBdLCwKLS0gICAgICAgICAgIEFDX01TR19FUlJPUihbCi0tTGlua2luZyBpcyBiYWRseSBib3JrZWQgb24geW91ciBzeXN0ZW0uIFBsZWFzZSBlbnN1cmUgeW91ciBsaWJyYXJ5IHBhdGggaXMgY29ycmVjdAotLUNoZWNrIGNvbmZpZy5sb2cgZm9yIGRldGFpbHMgLSBjaGVjayBuZWFyIHRoZSBlbmQgb2YgdGhlIGxvZyBhYm92ZSAnZmFpbGVkIHByb2dyYW0gd2FzJwotLUFsdGVybmF0aXZlbHkgZW5zdXJlIHRoYXQgeW91ciAvZXRjL2xkLnNvLmNvbmYgKGFuZC9vciBMRF9MSUJSQVJZX1BBVEgpIGluY2x1ZGVzIHRoZQotLXByZWZpeCB5b3UncmUgY29tcGlsaW5nIG9uOiAnJHtwcmVmaXh9JyBdKSwgCi0tQUNfTVNHX1dBUk4oW0NvdWxkIG5vdCBjaGVjayBmb3IgYm9ya2VkIGxpbmtpbmcgd2hpbGUgY3Jvc3MtY29tcGlsaW5nXSkpCi0tTElCUz0iJGRvZnVzX3NhdmVfbGlicyIKLStkbmwgZG9mdXNfc2F2ZV9saWJzPSIkTElCUyIKLStkbmwgTElCUz0iJE9SQklUX0xJQlMgJExJQlMiCi0rZG5sIEFDX1RSWV9SVU4oWyAjaW5jbHVkZSA8c3RkaW8uaD4KLStkbmwgICAgICAgICAgICAgbWFpbiAoKQotK2RubCAgICAgICAgICAgICAgewotK2RubCAgICAgICAgICAgICAgICByZXR1cm4gMDsKLStkbmwgICAgICAgICAgICAgIH0gXSwsCi0rZG5sICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFsKLStkbmwgTGlua2luZyBpcyBiYWRseSBib3JrZWQgb24geW91ciBzeXN0ZW0uIFBsZWFzZSBlbnN1cmUgeW91ciBsaWJyYXJ5IHBhdGggaXMgY29ycmVjdAotK2RubCBDaGVjayBjb25maWcubG9nIGZvciBkZXRhaWxzIC0gY2hlY2sgbmVhciB0aGUgZW5kIG9mIHRoZSBsb2cgYWJvdmUgJ2ZhaWxlZCBwcm9ncmFtIHdhcycKLStkbmwgQWx0ZXJuYXRpdmVseSBlbnN1cmUgdGhhdCB5b3VyIC9ldGMvbGQuc28uY29uZiAoYW5kL29yIExEX0xJQlJBUllfUEFUSCkgaW5jbHVkZXMgdGhlCi0rZG5sIHByZWZpeCB5b3UncmUgY29tcGlsaW5nIG9uOiAnJHtwcmVmaXh9JyBdKSwgCi0rZG5sIEFDX01TR19XQVJOKFtDb3VsZCBub3QgY2hlY2sgZm9yIGJvcmtlZCBsaW5raW5nIHdoaWxlIGNyb3NzLWNvbXBpbGluZ10pKQotK2RubCBMSUJTPSIkZG9mdXNfc2F2ZV9saWJzIgotIAotIG9yaWdfQ1BQRkxBR1M9JENQUEZMQUdTCi0gQ1BQRkxBR1M9IiRDUFBGTEFHUyAkT1JCSVRfQ0ZMQUdTIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi9wa2djb25maWctZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi9wa2djb25maWctZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNjI5ZTUwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDIvcGtnY29uZmlnLWZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLWRpZmYgLXVyTiBPUkJpdDItMi4xNC4xMi5vcmlnL09SQml0LTIuMC5wYy5pbiBPUkJpdDItMi4xNC4xMi9PUkJpdC0yLjAucGMuaW4KLS0tLSBPUkJpdDItMi4xNC4xMi5vcmlnL09SQml0LTIuMC5wYy5pbgkyMDA4LTAxLTI5IDEzOjQ1OjIyLjAwMDAwMDAwMCArMDEwMAotKysrIE9SQml0Mi0yLjE0LjEyL09SQml0LTIuMC5wYy5pbgkyMDA4LTA5LTIzIDIwOjEzOjA3LjAwMDAwMDAwMCArMDIwMAotQEAgLTIsNyArMiw3IEBACi0gZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAotIGxpYmRpcj1AbGliZGlyQAotIGluY2x1ZGVkaXI9QGluY2x1ZGVkaXJACi0tb3JiaXRfaWRsPUBiaW5kaXJAL29yYml0LWlkbC0yQEVYRUVYVEAKLStvcmJpdF9pZGw9QGV4ZWNfcHJlZml4QC9iaW4vb3JiaXQtaWRsLTJARVhFRVhUQAotIAotIAotIE5hbWU6IE9SQml0LTIuMApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Ml8yLjE0LjE5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Ml8yLjE0LjE5LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYjQzOTcyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDJfMi4xNC4xOS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLVNVTU1BUlkgPSAiQ09SQkEgT1JCIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvcHJvamVjdHMvT1JCaXQyIgotU0VDVElPTiA9ICJ4MTEvZ25vbWUvbGlicyIKLUxJQ0VOU0UgPSAiR1BMLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgotU1JDX05BTUUgPSAiT1JCaXQyIgotU0hSVF9WRVIgPSAiJHtAZC5nZXRWYXIoJ1BWJykuc3BsaXQoJy4nKVswXX0uJHtAZC5nZXRWYXIoJ1BWJykuc3BsaXQoJy4nKVsxXX0iCi1TUkNfVVJJID0gIiBcCi0gICAgJHtHTk9NRV9NSVJST1J9LyR7U1JDX05BTUV9LyR7U0hSVF9WRVJ9LyR7U1JDX05BTUV9LSR7UFZ9LnRhci5iejIgXAotICAgIGZpbGU6Ly9jb25maWd1cmUtbG9zc2FnZS5wYXRjaCBcCi0gICAgZmlsZTovL3BrZ2NvbmZpZy1maXgucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAxLWxpbmMyLXNyYy1NYWtlZmlsZS5hbS1maXgtYnVpbGQtd2l0aC1nbGliLTIuMzYucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAyLVVzZS1BTV9DUFBGTEFHUy1pbnN0ZWFkLW9mLUlOQ0xVREVTLWFuZC1maXgtcHJvYmxlbS0ucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gIjcwODJkMzE3YTk1NzNhYjMzODMwMjI0MzA4MmQxMGQxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU1YzkwMGE5MDU0ODI5OTI3MzBmNTc1ZjNlZWYzNGQ1MGJkYTcxN2MxOTdjOTdjMDhmYTVhNmVhZmQ4NTc1NTAiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgotCi1JRExfQ09NUElMRVJfREVQRU5EUyA9ICJvcmJpdDItbmF0aXZlIgotSURMX0NPTVBJTEVSX0RFUEVORFNfY2xhc3MtbmF0aXZlID0gIiAiCi1ERVBFTkRTID0gImxpYmlkbCBwb3B0ICR7SURMX0NPTVBJTEVSX0RFUEVORFN9IgotCi0jIElETF9DT01QSUxFUl9ERVBFTkRTX2NsYXNzLW5hdGl2ZSBmb3Igc29tZSByZWFzb24gZGlkbid0IHdvcmsgYW5kIG9yYml0Mi1uYXRpdmUKLSMgd2FzIHN0aWxsIGluIG9yYml0Mi1uYXRpdmUgREVQRU5EUyBjYXVzaW5nIGNpcmN1bGFyIGRlcGVuZGVuY3kKLURFUEVORFNfY2xhc3MtbmF0aXZlID0gImxpYmlkbC1uYXRpdmUgcG9wdC1uYXRpdmUiCi1QQVJBTExFTF9NQUtFID0gIiIKLQotCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L29yYml0LTIuMC8qLnNvIgotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vb3JiaXQtMi4wLyoubGEiCi1GSUxFU18ke1BOfS1zdGF0aWNkZXYgKz0gIiR7bGliZGlyfS9vcmJpdC0yLjAvKi5hIgotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vb3JiaXQtMi4wLy5kZWJ1ZyIKLQotUyA9ICIke1dPUktESVJ9LyR7U1JDX05BTUV9LSR7UFZ9IgotCi1MRUFEX1NPTkFNRSA9ICJsaWJPUkJpdC0yLnNvIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ3RrLWRvYwotCi1FWFRSQV9PRU1BS0UgPSAiSURMX0NPTVBJTEVSPScke1NUQUdJTkdfQklORElSX05BVElWRX0vb3JiaXQtaWRsLTInIgotRVhUUkFfT0VNQUtFX2NsYXNzLW5hdGl2ZSA9ICIgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9jb250YWN0cy9zdG9ja19jb250YWN0LnBuZyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vY29udGFjdHMvc3RvY2tfY29udGFjdC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyM2I0NDguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9jb250YWN0cy9zdG9ja19jb250YWN0LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vY29udGFjdHMvc3RvY2tfcGVyc29uLnBuZyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vY29udGFjdHMvc3RvY2tfcGVyc29uLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmIxMzI4Yi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2NvbnRhY3RzL3N0b2NrX3BlcnNvbi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vZGF0ZXMuaW5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMmQyZjgzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vZGF0ZXMuaW5jCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiRGF0ZXMgaXMgYSBjYWxlbmRhciBhcHBsaWNhdGlvbi4iCi1IT01FUEFHRSA9ICJodHRwOi8vcGltbGljby1wcm9qZWN0Lm9yZy9kYXRlcy5odG1sIgotQlVHVFJBQ0tFUiA9ICJodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8iCi0KLUxJQ0VOU0UgPSAiR1BMdjIgJiBHUEx2MisgJiBMR1BMdjIrIgotCi1TRUNUSU9OID0gIngxMSIKLURFUEVORFMgPSAiZ2xpYi0yLjAgZ3RrKyBsaWJnbGFkZSBldm9sdXRpb24tZGF0YS1zZXJ2ZXIgaW50bHRvb2wtbmF0aXZlIgotUkRFUEVORFNfJHtQTn0gPSAibGliZWRhdGEtY2FsIgotCi1pbmhlcml0IGF1dG90b29scyBnZXR0ZXh0IHBrZ2NvbmZpZyBndGstaWNvbi1jYWNoZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9kYXRlcy8wMDAxLUZpeC1mb3JtYXQtc2VjdXJpdHktd2FybmluZ3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzLzAwMDEtRml4LWZvcm1hdC1zZWN1cml0eS13YXJuaW5ncy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY1NTFhNy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzLzAwMDEtRml4LWZvcm1hdC1zZWN1cml0eS13YXJuaW5ncy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLUZyb20gNjg3ODgxYzVmYTM0MjY4NmM4NzI0YWRjZGFjMGY5ZDU1NWEzNTFjMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDUgQXByIDIwMTcgMTg6MTA6NTcgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IGZvcm1hdCBzZWN1cml0eSB3YXJuaW5ncwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gc3JjL2RhdGVzX2NhbGxiYWNrcy5jIHwgMiArLQotIHNyYy9kYXRlc19ndGsuYyAgICAgICB8IDIgKy0KLSBzcmMvZ2NvbmYtYnJpZGdlLmMgICAgfCAyICstCi0gMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvZGF0ZXNfY2FsbGJhY2tzLmMgYi9zcmMvZGF0ZXNfY2FsbGJhY2tzLmMKLWluZGV4IGQ3MDRjOGYuLjQ2YjhjYjEgMTAwNjQ0Ci0tLS0gYS9zcmMvZGF0ZXNfY2FsbGJhY2tzLmMKLSsrKyBiL3NyYy9kYXRlc19jYWxsYmFja3MuYwotQEAgLTM2NSw3ICszNjUsNyBAQCBkYXRlc19hYm91dF9jYiAoR3RrV2lkZ2V0ICp3aWRnZXQsIERhdGVzRGF0YSAqZCkKLSAKLSAJaWYgKCFwaXhiKSB7Ci0gCQlnX2Fzc2VydCAoZXJyb3IpOwotLQkJZ193YXJuaW5nIChlcnJvci0+bWVzc2FnZSk7Ci0rCQlnX3dhcm5pbmcgKCIlcyIsIGVycm9yLT5tZXNzYWdlKTsKLSAJCWdfY2xlYXJfZXJyb3IgKCZlcnJvcik7Ci0gCX0KLSAKLWRpZmYgLS1naXQgYS9zcmMvZGF0ZXNfZ3RrLmMgYi9zcmMvZGF0ZXNfZ3RrLmMKLWluZGV4IDQwM2JjMjUuLmZkNjkxZDIgMTAwNjQ0Ci0tLS0gYS9zcmMvZGF0ZXNfZ3RrLmMKLSsrKyBiL3NyYy9kYXRlc19ndGsuYwotQEAgLTExMTQsNyArMTExNCw3IEBAIGNhbGVuZGFyX2RvX2VkaXRfZGlhbG9nX3Jlc3BvbnNlX2NiIChHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCByZXNwb25zZV9pZCwgZ3BvaW50Ci0gCQkJCUdUS19ESUFMT0dfTU9EQUwgfCBHVEtfRElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsCi0gCQkJCUdUS19NRVNTQUdFX1dBUk5JTkcsCi0gCQkJCUdUS19CVVRUT05TX05PTkUsCi0tCQkJCXByb21wdCk7Ci0rCQkJCSIlcyIsIHByb21wdCk7Ci0gCi0gCQlnX2ZyZWUgKHByb21wdCk7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2djb25mLWJyaWRnZS5jIGIvc3JjL2djb25mLWJyaWRnZS5jCi1pbmRleCA0OTc1NGNmLi42N2QzNzU3IDEwMDY0NAotLS0tIGEvc3JjL2djb25mLWJyaWRnZS5jCi0rKysgYi9zcmMvZ2NvbmYtYnJpZGdlLmMKLUBAIC0xMjIwLDcgKzEyMjAsNyBAQCBlcnJvcl9oYW5kbGVyIChHQ29uZkNsaWVudCAqY2xpZW50LAotICAgICAgICAgICAgICAgICBkbGcgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3IChOVUxMLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfTUVTU0FHRV9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0JVVFRPTlNfT0ssCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLCBtZXNzYWdlKTsKLSAgICAgICAgICAgICAgICAgZ19mcmVlIChtZXNzYWdlKTsKLSAKLSAgICAgICAgICAgICAgICAgZ3RrX21lc3NhZ2VfZGlhbG9nX2Zvcm1hdF9zZWNvbmRhcnlfdGV4dAotLS0gCi0yLjEyLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9kYXRlcy9kc29fbGlua2luZ19jaGFuZ2VfYnVpbGRfZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9kYXRlcy9kc29fbGlua2luZ19jaGFuZ2VfYnVpbGRfZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDlkNTlkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vZGF0ZXMvZHNvX2xpbmtpbmdfY2hhbmdlX2J1aWxkX2ZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLWFmdGVyIGdjYyBsaW5raW5nIGhhcyBjaGFuZ2VkLCBhbGwgdGhlIGxpYnJhcmllcyBtdXN0IGJlIGV4cGxpY2l0ZWx5IHNwZWNpZmllZCAKLVRoaXMgcGF0Y2ggYXZvaWRzIHRoZXNlIGxpbmtpbmcgZXJyb3JzOgotCi0KLXwgbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvZGlzazAvcG9reWJ1aWxkL2J1aWxkMS90bXAvd29yay9pNTg2LXBva3ktbGludXgvZGF0ZXMtMC40LjExK2dpdDArNTE0MTg1ZGMxZjY1ODgwODVmZGE0MWViNTk4OThiOTNkMDQ4N2RkNC1yMi9naXQvc3JjJ15NCi0uLi4KLXwgL2Rpc2swL3Bva3lidWlsZC9idWlsZDEvdG1wL3N5c3Jvb3RzL3g4Nl82NC1saW51eC91c3IvbGliZXhlYy9pNTg2LXBva3ktbGludXgvZ2NjL2k1ODYtcG9reS1saW51eC80LjUuMS9sZDogZTogaW52YWxpZCBEU08gZm9yIHN5bWJvbCBgcG93QEBHTElCQ18yLjAnIGRlZmluaXRpb25eTQotfCAvZGlzazAvcG9reWJ1aWxkL2J1aWxkMS90bXAvc3lzcm9vdHMvaTU4Ni1wb2t5LWxpbnV4L3Vzci9saWIvbGlibS5zbzogY291bGQgbm90IHJlYWQgc3ltYm9sczogQmFkIHZhbHVlXk0KLXwgY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXNeTQotfCBtYWtlWzJdOiAqKiogW2RhdGVzXSBFcnJvciAxCi0KLQotCi18IC9kaXNrMC9wb2t5YnVpbGQvYnVpbGQxL3RtcC9zeXNyb290cy94ODZfNjQtbGludXgvdXNyL2xpYmV4ZWMvaTU4Ni1wb2t5LWxpbnV4L2djYy9pNTg2LXBva3ktbGludXgvNC41LjEvbGQ6IHo6IGludmFsaWQgRFNPIGZvciBzeW1ib2wgYHBhbmdvX2xheW91dF9nZXRfZXh0ZW50cycgZGVmaW5pdGlvbgotfCAvZGlzazAvcG9reWJ1aWxkL2J1aWxkMS90bXAvc3lzcm9vdHMvaTU4Ni1wb2t5LWxpbnV4L3Vzci9saWIvbGlicGFuZ28tMS4wLnNvOiBjb3VsZCBub3QgcmVhZCBzeW1ib2xzOiBCYWQgdmFsdWUKLXwgY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKLXwgbWFrZVsyXTogKioqIFtkYXRlc10gRXJyb3IgMQotCi0KLU5pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+Ci1EYXRlOiAyMDExLzAxLzExCi0KLVVwZGF0ZToKLVRoaXMgaXMgaWRlbnRpZmllZCBhcyBhIGxpYnRvb2wgaXNzdWUuIFdoaWxlIGNyZWF0aW5nIHRoZSBsaWJndGtkYXRlc3ZpZXcubGEgCi1maWxlLCBsaWJ0b29sIHNob3VsZCBoYXZlIGFkZGVkIHRoZXNlIG5lZWRlZCBsaWJyYXJpZXMgaW4gdGhlcmUuCi0gQSBidWcgaGFzIGJlZW4gY3JlYXRlZCBmb3IgdGhpcyBpc3N1ZTogCi0gICBodHRwOi8vYnVnemlsbGEucG9reWxpbnV4Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0Ci1OaXRpbiBBIEthbWJsZSA8bml0aW4uYS5rYW1ibGVAaW50ZWwuY29tPgotRGF0ZTogMjAxMS8wMS8xOQotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotSW5kZXg6IGdpdC9zcmMvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnaXQub3JpZy9zcmMvTWFrZWZpbGUuYW0KLSsrKyBnaXQvc3JjL01ha2VmaWxlLmFtCi1AQCAtMzQsNiArMzQsNiBAQCBkYXRlc19TT1VSQ0VTID0gJChwbGF0Zm9ybSkgCVwKLSAJZ2NvbmYtYnJpZGdlLmgJCVwKLSAJZ2NvbmYtYnJpZGdlLmMKLSAKLS1kYXRlc19MREFERCA9ICQoREFURVNfTElCUykgJChPV0xfTElCUykgbGliZ3RrZGF0ZXN2aWV3LmxhCi0rZGF0ZXNfTERBREQgPSAkKERBVEVTX0xJQlMpICQoT1dMX0xJQlMpIGxpYmd0a2RhdGVzdmlldy5sYSAtbG0gLWxwYW5nby0xLjAKLSAKLSBNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IGNvbmZpZy5oLmluIE1ha2VmaWxlLmluCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzL3VjbGliYy1OTF9USU1FX0ZJUlNUX1dFRUtEQVktYWJzZW50LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9kYXRlcy91Y2xpYmMtTkxfVElNRV9GSVJTVF9XRUVLREFZLWFic2VudC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFkZTQ3MC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzL3VjbGliYy1OTF9USU1FX0ZJUlNUX1dFRUtEQVktYWJzZW50LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotdWNsaWJjIGhhcyBsYW5naW5mby5oIGJ1dCBpdCBkb2VzIG5vdCBkZWZpbmUgX05MX1RJTUVfRklSU1RfV0VFS0RBWQotdGhlcmVmb3JlIHdlIGludHJvZHVjZSBhIGNoZWNrIGluIGNvbmZpZ3VyZSBmb3IgdGhlIHRoaXMgZGVmaW5lCi1hbmQgdGhlbiB3ZSBtYWtlIHN1cmUgdGhhdCB3ZSB1c2UgaXQgd2hlbiBpdCByZWFsbHkgZXhpc3RzCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1JbmRleDogZ2l0L2NvbmZpZ3VyZS5hYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL2NvbmZpZ3VyZS5hYwkyMDExLTA3LTE4IDEwOjM0OjE1LjAwMDAwMDAwMCAtMDcwMAotKysrIGdpdC9jb25maWd1cmUuYWMJMjAxMS0wNy0xOCAxMDo1NDoyNi40MDM3OTgxODggLTA3MDAKLUBAIC05OCw2ICs5OCw4IEBACi0gCQlzcmMvbGliZ3RrZGF0ZXN2aWV3LnBjCi0gXSkKLSAKLStBQ19DSEVDS19ERUNMUyhbX05MX1RJTUVfRklSU1RfV0VFS0RBWV0sW10sW10sW1sjaW5jbHVkZSA8bGFuZ2luZm8uaD5dXSkKLSsKLSBBQ19PVVRQVVQKLSAKLSBlY2hvICIgIgotSW5kZXg6IGdpdC9zcmMvZGF0ZXNfdmlldy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2l0Lm9yaWcvc3JjL2RhdGVzX3ZpZXcuYwkyMDExLTA3LTE4IDEwOjM0OjE1LjAwMDAwMDAwMCAtMDcwMAotKysrIGdpdC9zcmMvZGF0ZXNfdmlldy5jCTIwMTEtMDctMTggMTA6NTg6NDYuMDkzNzk4MTM2IC0wNzAwCi1AQCAtMTUwNSw3ICsxNTA1LDExIEBACi0gCXByaXYtPmRheXMgPSAxOwotIAlwcml2LT5tb250aHMgPSAwOwotIAlwcml2LT5tb250aHNfaW5fcm93ID0gNDsKLSsjaWYgSEFWRV9ERUNMX19OTF9USU1FX0ZJUlNUX1dFRUtEQVkKLSAJcHJpdi0+d2Vla19zdGFydCA9ICpubF9sYW5naW5mbyAoX05MX1RJTUVfRklSU1RfV0VFS0RBWSkgLSAxOwotKyNlbHNlCi0rCXByaXYtPndlZWtfc3RhcnQgPSAwOwotKyNlbmRpZgotIAlwcml2LT5kcmFnYm94ID0gVFJVRTsKLSAJcHJpdi0+c2luZ2xlX2NsaWNrID0gVFJVRTsKLSAJcHJpdi0+ZG91YmxlX2NsaWNrID0gRkFMU0U7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vZGF0ZXNfZ2l0LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNDk2NWU5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vZGF0ZXNfZ2l0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotcmVxdWlyZSBkYXRlcy5pbmMKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL2RhdGVzX3ZpZXcuaDtlbmRsaW5lPTIyO21kNT0yOWY5MzRmMzU2ZWI5NzAzMDljZGViNjY5M2IzMTIzYSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvZGF0ZXNfaGlsZG9uLmM7ZW5kbGluZT0xOTttZDU9NjM5Mzg5MDQxOThiMjVkZTQyOWFiYjY1ZmJkYmRiOGEgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL2djb25mLWJyaWRnZS5jO2VuZGxpbmU9MjI7bWQ1PWFkNzYyNmM2ZGFmNGFlYzU5MDQ3NGEyNDNmNDkxMmZhIgotCi1TUkNSRVYgPSAiYzhlMzBmYTMyMTFkY2RmY2RhNDgxODRmNGM1Nzc0NmE1NTJiOWM3YSIKLVBWID0gIjAuNC4xMStnaXQke1NSQ1BWfSIKLVBSID0gInI5IgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1TUkNfVVJJID0gImdpdDovL2dpdC5nbm9tZS5vcmcvJHtCUE59IFwKLSAgICAgICAgICAgZmlsZTovL2Rzb19saW5raW5nX2NoYW5nZV9idWlsZF9maXgucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vdWNsaWJjLU5MX1RJTUVfRklSU1RfV0VFS0RBWS1hYnNlbnQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1GaXgtZm9ybWF0LXNlY3VyaXR5LXdhcm5pbmdzLnBhdGNoIFwKLSAgICAgICAgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvc3lzdGVtLXRvb2xzL3N5c3RlbS10b29scy1iYWNrZW5kcy0yLjEwLjIvc3lzdGVtLXRvb2xzLWJhY2tlbmRzIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvc3lzdGVtLXRvb2xzL3N5c3RlbS10b29scy1iYWNrZW5kcy0yLjEwLjIvc3lzdGVtLXRvb2xzLWJhY2tlbmRzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDRjMzZkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3N5c3RlbS10b29scy9zeXN0ZW0tdG9vbHMtYmFja2VuZHMtMi4xMC4yL3N5c3RlbS10b29scy1iYWNrZW5kcworKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLSMhIC9iaW4vc2gKLSMjIyBCRUdJTiBJTklUIElORk8KLSMgUHJvdmlkZXM6ICAgICAgICAgIHN5c3RlbS10b29scy1iYWNrZW5kcwotIyBSZXF1aXJlZC1TdGFydDogICAgJGxvY2FsX2ZzIGRidXMKLSMgUmVxdWlyZWQtU3RvcDogICAgICRsb2NhbF9mcyBkYnVzCi0jIFNob3VsZC1TdGFydDoJICAgICAkc3lzbG9nCi0jIFNob3VsZC1TdG9wOiAgICAgICAkc3lzbG9nCi0jIERlZmF1bHQtU3RhcnQ6ICAgICAyIDMgNCA1Ci0jIERlZmF1bHQtU3RvcDogICAgICAxCi0jIFNob3J0LURlc2NyaXB0aW9uOiBHbm9tZSBTeXN0ZW0gVG9vbHMgQmFja2VuZHMKLSMgRGVzY3JpcHRpb246ICAgICAgIFRoZSBHbm9tZSBTeXN0ZW0gVG9vbHMgQmFja2VuZHMgZGFlbW9uIGhhbmRsZXMgcm9vdC1uZWVkZWQKLSMgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnMgdG8gY29uZmlndXJlIHlvdXIgbWFjaGluZSB3aXRoIHRoZSBHbm9tZSBTeXN0ZW0KLSMJCSAgICAgVG9vbHMuCi0jIyMgRU5EIElOSVQgSU5GTwotCi1QQVRIPS91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2Jpbjovc2JpbjovYmluOi91c3Ivc2JpbjovdXNyL2JpbgotREFFTU9OPS91c3IvYmluL3N5c3RlbS10b29scy1iYWNrZW5kcwotUElERElSPS92YXIvcnVuCi1QSURGSUxFPSRQSURESVIvc3lzdGVtLXRvb2xzLWJhY2tlbmRzLnBpZAotTkFNRT1zeXN0ZW0tdG9vbHMtYmFja2VuZHMKLURFU0M9IlN5c3RlbSBUb29scyBCYWNrZW5kcyIKLQotdGVzdCAteCAkREFFTU9OIHx8IGV4aXQgMAotCi1zZXQgLWUKLQotZG9fc3RhcnQoKSB7Ci0gICAgZWNobyAiU3RhcnRpbmcgJERFU0MiCi0gICAgc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAtLXN0YXJ0YXMgJERBRU1PTiAtLXF1aWV0IC0tcGlkZmlsZSAkUElERklMRQotfQotCi1kb19zdG9wKCkgewotICAgIGVjaG8gIlN0b3BwaW5nICRERVNDIgotICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAtLW9rbm9kbyAtLXF1aWV0IC0tcGlkZmlsZSAkUElERklMRSAtLXN0YXJ0YXMgJERBRU1PTgotfQotCi1jYXNlICIkMSIgaW4KLSAgc3RhcnQpCi0gICAgZG9fc3RhcnQKLSAgICA7OwotICBzdG9wKQotICAgIGRvX3N0b3AKLSAgICA7OwotICAjcmVsb2FkKQotICAgICMKLSAgICAjIElmIHRoZSBkYWVtb24gY2FuIHJlbG9hZCBpdHMgY29uZmlnIGZpbGVzIG9uIHRoZSBmbHkKLSAgICAjIGZvciBleGFtcGxlIGJ5IHNlbmRpbmcgaXQgU0lHSFVQLCBkbyBpdCBoZXJlLgotICAgICMKLSAgICAjIElmIHRoZSBkYWVtb24gcmVzcG9uZHMgdG8gY2hhbmdlcyBpbiBpdHMgY29uZmlnIGZpbGUKLSAgICAjIGRpcmVjdGx5IGFueXdheSwgbWFrZSB0aGlzIGEgZG8tbm90aGluZyBlbnRyeS4KLSAgICAjCi0gICAgIyBlY2hvICJSZWxvYWRpbmcgJERFU0MgY29uZmlndXJhdGlvbiBmaWxlcy4iCi0gICAgIyBzdGFydC1zdG9wLWRhZW1vbiAtLXN0b3AgLS1zaWduYWwgMSAtLXF1aWV0IC0tcGlkZmlsZSBcCi0gICAgIyAgIC92YXIvcnVuLyROQU1FLnBpZCAtLWV4ZWMgJERBRU1PTgotICAjOzsKLSAgcmVzdGFydHxmb3JjZS1yZWxvYWQpCi0gICAgIwotICAgICMgICBJZiB0aGUgInJlbG9hZCIgb3B0aW9uIGlzIGltcGxlbWVudGVkLCBtb3ZlIHRoZSAiZm9yY2UtcmVsb2FkIgotICAgICMgICBvcHRpb24gdG8gdGhlICJyZWxvYWQiIGVudHJ5IGFib3ZlLiBJZiBub3QsICJmb3JjZS1yZWxvYWQiIGlzCi0gICAgIyAgIGp1c3QgdGhlIHNhbWUgYXMgInJlc3RhcnQiLgotICAgICMKLSAgICBkb19zdG9wCi0gICAgc2xlZXAgNQotICAgIGRvX3N0YXJ0Ci0gICAgOzsKLSAgKikKLSAgICBOPS9ldGMvaW5pdC5kLyROQU1FCi0gICAgZWNobyAiVXNhZ2U6ICROIHtzdGFydHxzdG9wfHJlc3RhcnR8cmVsb2FkfGZvcmNlLXJlbG9hZHxzdGF0dXN9IiA+JjIKLSAgICBleGl0IDEKLSAgICA7OwotZXNhYwotCi1leGl0IDAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvdGhlbWVzL2dub21lLXRoZW1lcy9kcm9wLWxvY2FsZWRpci1vdmVycmlkZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3RoZW1lcy9nbm9tZS10aGVtZXMvZHJvcC1sb2NhbGVkaXItb3ZlcnJpZGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzNzQ4MmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvdGhlbWVzL2dub21lLXRoZW1lcy9kcm9wLWxvY2FsZWRpci1vdmVycmlkZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLUNhdXNlcyBsb2NhbGUgZmlsZSB0byBiZSBpbnN0YWxsZWQgaW4gL3Vzci9sb2NhbGUgaW5zdGVhZCBvZiAvdXNyL3NoYXJlL2xvY2FsZQotCi1BcHBseSB0aGUgc2FtZSBmaXggYXMgaW4gZXZvbHV0aW9uLWRhdGEtc2VydmVyOgotaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvY29tbWl0L2NvbmZpZ3VyZS5hYz9pZD1lYzQ2Yzc2M2U5MzQyZjYwNGI3MjI4YzY2MDYyM2QyNzFkZmViMTAxCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1kaWZmIC11TnIgZ25vbWUtdGhlbWVzLTIuMzIuMS5vcmlnL2NvbmZpZ3VyZS5pbiBnbm9tZS10aGVtZXMtMi4zMi4xL2NvbmZpZ3VyZS5pbgotLS0tIGdub21lLXRoZW1lcy0yLjMyLjEub3JpZy9jb25maWd1cmUuaW4JMjAxNS0wOS0xOCAxNTowMToyNS4xNTIwNTU3MjkgKzAyMDAKLSsrKyBnbm9tZS10aGVtZXMtMi4zMi4xL2NvbmZpZ3VyZS5pbgkyMDE1LTA5LTE4IDE1OjA5OjAzLjMxMjA3MjE1NiArMDIwMAotQEAgLTE5LDExICsxOSw2IEBACi0gCi0gQU1fR0xJQl9HTlVfR0VUVEVYVAotIAotLSMgQU1fR0xJQl9HTlVfR0VUVEVYVCBhYm92ZSBzdWJzdC4gJERBVEFESVJOQU1FCi0tIyB0aGlzIGlzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlICoue21vLGdtb30gZmlsZXMgYXJlIGluc3RhbGxlZAotLWxvY2FsZWRpcj0nJHtwcmVmaXh9LyR7REFUQURJUk5BTUV9L2xvY2FsZScKLS1BQ19TVUJTVChsb2NhbGVkaXIpCi0tCi0gIyBXb3JrYXJvdW5kIHRvIG1ha2UgYWNsb2NhbCBnZXQgdGhlIHJpZ2h0IGZsYWdzCi0gQUNfU1VCU1QoQUNMT0NBTF9BTUZMQUdTLCAiXCR7QUNMT0NBTF9GTEFHU30iKQotIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvdGhlbWVzL2dub21lLXRoZW1lcy9pY29ucGF0aC1vcHRpb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS90aGVtZXMvZ25vbWUtdGhlbWVzL2ljb25wYXRoLW9wdGlvbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWI0MDk2ZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS90aGVtZXMvZ25vbWUtdGhlbWVzL2ljb25wYXRoLW9wdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLQotVGhlIHBhdGNoIGlzIHBvcnRlZCBmcm9tIHNhdG8taWNvbi10aGVtZS4KLQotcGtnLWNvbmZpZyB3aWxsIG9ubHkgc2VhcmNoIHRoZSB0YXJnZXQgc3lzcm9vdCBhbmQgd2Ugd2FudCB0aGUgbmF0aXZlIHNjcmlwdC4gVGhpcyAKLXBhdGNoIGFkZHMgYW4gb3B0aW9uIHRvIGFsbG93IHRoZSBwYXRoIHRvIHRoZSB0b29sIHRvIGJlIHNwZWNpZmllZC4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi1TaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi0gY29uZmlndXJlLmluIHwgICAyNiArKysrKysrKysrKysrKysrLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgotaW5kZXggNWY3YTE4Yy4uZThmYzMxZSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5pbgotKysrIGIvY29uZmlndXJlLmluCi1AQCAtNzQsMTYgKzc0LDIyIEBAIEFDX0FSR19FTkFCTEUoW2ljb24tbWFwcGluZ10sCi0gSUNPTk1BUD0idHJ1ZSIKLSBpZiB0ZXN0ICJ4JGVuYWJsZV9tYXBwaW5nIiAhPSAieG5vIjsgdGhlbgotICAgIFVUSUxTX1JFUVVJUkVEPTAuOC43Ci0tCi0tICAgQUNfTVNHX0NIRUNLSU5HKFtpY29uLW5hbWluZy11dGlscyA+PSAkVVRJTFNfUkVRVUlSRURdKQotLSAgIFBLR19DSEVDS19FWElTVFMoaWNvbi1uYW1pbmctdXRpbHMgPj0gJFVUSUxTX1JFUVVJUkVELCBoYXZlX3V0aWxzPXllcywgaGF2ZV91dGlscz1ubykKLS0gICBpZiB0ZXN0ICJ4JGhhdmVfdXRpbHMiID0gInh5ZXMiOyB0aGVuCi0tICAgICAgVVRJTFNfUEFUSD0iYCRQS0dfQ09ORklHIC0tdmFyaWFibGU9cHJvZ3JhbV9wYXRoIGljb24tbmFtaW5nLXV0aWxzYCIKLS0gICAgICBJQ09OTUFQPSIkVVRJTFNfUEFUSC9pY29uLW5hbWUtbWFwcGluZyIKLS0gICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotLSAgIGVsc2UKLS0JQUNfTVNHX1JFU1VMVChbbm9dKQotLSAgIAlBQ19NU0dfRVJST1IoW2ljb24tbmFtaW5nLXV0aWxzID49ICRVVElMU19SRVFVSVJFRCBpcyByZXF1aXJlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBnbm9tZS10aGVtZXNdKQotKyAgIFBLR19QUk9HX1BLR19DT05GSUcoKQotKyAgIEFDX0FSR19XSVRIKGljb25tYXAsCi0rICAgCSAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLWljb25tYXA9PGRpcj5dLCBbVGhlIGxvY2F0aW9uIG9mIHRoZSBpY29uLW5hbWUtbWFwcGluZyBzY3JpcHQgdG8gdXNlXSksCi0rICAgCSAgICBJQ09OTUFQPSR3aXRodmFsLCBJQ09OTUFQPSIiKQotKyAgIGlmIHRlc3QgIngkSUNPTk1BUCIgPSAieCI7IHRoZW4KLSsgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ljb24tbmFtaW5nLXV0aWxzID49ICRVVElMU19SRVFVSVJFRF0pCi0rICAgICAgUEtHX0NIRUNLX0VYSVNUUyhpY29uLW5hbWluZy11dGlscyA+PSAkVVRJTFNfUkVRVUlSRUQsIGhhdmVfdXRpbHM9eWVzLCBoYXZlX3V0aWxzPW5vKQotKyAgICAgIGlmIHRlc3QgIngkaGF2ZV91dGlscyIgPSAieHllcyI7IHRoZW4KLSsgICAgICAgICBVVElMU19QQVRIPSJgJFBLR19DT05GSUcgLS12YXJpYWJsZT1wcm9ncmFtX3BhdGggaWNvbi1uYW1pbmctdXRpbHNgIgotKyAgICAgICAgIElDT05NQVA9IiRVVElMU19QQVRIL2ljb24tbmFtZS1tYXBwaW5nIgotKwotKyAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0rICAgICAgZWxzZQotKyAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgICBBQ19NU0dfRVJST1IoW2ljb24tbmFtaW5nLXV0aWxzID49ICRVVElMU19SRVFVSVJFRCBpcyByZXF1aXJlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBnbm9tZS10aGVtZXMiXSkKLSsgICAgICBmaQotICAgIGZpCi0gZmkKLSBBQ19TVUJTVChJQ09OTUFQKQotLS0gCi0xLjcuOS41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3RoZW1lcy9nbm9tZS10aGVtZXNfMi4zMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvdGhlbWVzL2dub21lLXRoZW1lc18yLjMyLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhODlmNDguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvdGhlbWVzL2dub21lLXRoZW1lc18yLjMyLjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1TVU1NQVJZID0gIkdOT01FIHRoZW1lcyIKLUxJQ0VOU0UgPSAiTEdQTHYyLjEiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0yYjU0M2RjOTdlYjc1OTRkMDI2YWYzOWQ5YjU0MjA0YiIKLQotUFIgPSAicjMiCi0KLVNFQ1RJT04gPSAieDExL2dub21lIgotREVQRU5EUyA9ICJndGstZW5naW5lcyBpY29uLW5hbWluZy11dGlscyBpY29uLW5hbWluZy11dGlscy1uYXRpdmUgXAotICAgICAgICAgICBnbGliLTIuMCBpbnRsdG9vbC1uYXRpdmUgbGlieG1sLXNpbXBsZS1wZXJsLW5hdGl2ZSBcCi0gICAgICAgICAgIGdsaWItMi4wLW5hdGl2ZSBcCi0iCi1SREVQRU5EU18ke1BOfSA9ICJhZHdhaXRhLWljb24tdGhlbWUiCi0KLUVYVFJBX09FQ09ORiArPSAiLS1lbmFibGUtYWxsLXRoZW1lcyBcCi0gICAgLS13aXRoLWljb25tYXA9JHtTVEFHSU5HX0xJQkVYRUNESVJfTkFUSVZFfS9pY29uLW5hbWUtbWFwcGluZyBcCi0iCi0KLWluaGVyaXQgZ25vbWViYXNlIHBlcmxuYXRpdmUKLQotUEFDS0FHRVMgPSsgIiBnbm9tZS10aGVtZS1jcnV4IGdub21lLXRoZW1lLWhpZ2hjb250cmFzdCBnbm9tZS10aGVtZS1oaWdoY29udHJhc3RpbnZlcnNlIGdub21lLXRoZW1lLWhpZ2hjb250cmFzdGxhcmdlcHJpbnQgZ25vbWUtdGhlbWUtaGlnaGNvbnRyYXN0bGFyZ2VwcmludGludmVyc2UgZ25vbWUtdGhlbWUtbGFyZ2VwcmludCBnbm9tZS10aGVtZS1taXN0IgotRklMRVNfZ25vbWUtdGhlbWUtY3J1eCA9ICIke2RhdGFkaXJ9L3RoZW1lcy9DcnV4ICR7ZGF0YWRpcn0vaWNvbnMvQ3J1eCIKLUZJTEVTX2dub21lLXRoZW1lLWhpZ2hjb250cmFzdCA9ICIke2RhdGFkaXJ9L3RoZW1lcy9IaWdoQ29udHJhc3QgJHtkYXRhZGlyfS9pY29ucy9IaWdoQ29udHJhc3QiCi1GSUxFU19nbm9tZS10aGVtZS1oaWdoY29udHJhc3RpbnZlcnNlID0gIiR7ZGF0YWRpcn0vdGhlbWVzL0hpZ2hDb250cmFzdEludmVyc2UgJHtkYXRhZGlyfS9pY29ucy9IaWdoQ29udHJhc3RJbnZlcnNlIgotRklMRVNfZ25vbWUtdGhlbWUtaGlnaGNvbnRyYXN0bGFyZ2VwcmludCA9ICIke2RhdGFkaXJ9L3RoZW1lcy9IaWdoQ29udHJhc3RMYXJnZVByaW50ICR7ZGF0YWRpcn0vaWNvbnMvSGlnaENvbnRyYXN0TGFyZ2VQcmludCIKLUZJTEVTX2dub21lLXRoZW1lLWhpZ2hjb250cmFzdGxhcmdlcHJpbnRpbnZlcnNlID0gIiR7ZGF0YWRpcn0vdGhlbWVzL0hpZ2hDb250cmFzdExhcmdlUHJpbnRJbnZlcnNlICR7ZGF0YWRpcn0vaWNvbnMvSGlnaENvbnRyYXN0TGFyZ2VQcmludEludmVyc2UiCi1GSUxFU19nbm9tZS10aGVtZS1sYXJnZXByaW50ID0gIiR7ZGF0YWRpcn0vdGhlbWVzL0xhcmdlUHJpbnQgJHtkYXRhZGlyfS9pY29ucy9MYXJnZVByaW50IgotRklMRVNfZ25vbWUtdGhlbWUtbWlzdCA9ICIke2RhdGFkaXJ9L3RoZW1lcy9NaXN0ICR7ZGF0YWRpcn0vaWNvbnMvTWlzdCIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vdGhlbWVzICR7ZGF0YWRpcn0vaWNvbnMiCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly9pY29ucGF0aC1vcHRpb24ucGF0Y2ggXAotICAgIGZpbGU6Ly9kcm9wLWxvY2FsZWRpci1vdmVycmlkZS5wYXRjaCBcCi0iCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICI0MWRiOWUzY2IyNWQzNWFmMjY3NWM1OTllNjc5NDRkMSIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjg2MDFlZTI0YzJlMDk2NTkzMjIxY2JkNmViZGI2Njg2MDQyMjI1YTAzYzAyYTAxYzBkNjdjMTYzZjlmZWJkMWEiCi1HTk9NRV9DT01QUkVTU19UWVBFPSJiejIiCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLXN1cHBvcnQvZmxvcmVuY2UvZmxvcmVuY2VfMC42LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L2Zsb3JlbmNlL2Zsb3JlbmNlXzAuNi4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOWI3ZDBjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLXN1cHBvcnQvZmxvcmVuY2UvZmxvcmVuY2VfMC42LjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1TVU1NQVJZID0gIkZsb3JlbmNlIGlzIGEgdmlydHVhbCBrZXlib2FyZCBmb3IgdG91Y2ggc2NyZWVucyIKLUhPTUVQQUdFID0gImh0dHA6Ly9mbG9yZW5jZS5zb3VyY2Vmb3JnZS5uZXQvZW5nbGlzaC5odG1sIgotCi0jTk9USUNFOiBJZiBmbG9yZW5jZSBjYW4ndCBmaW5kIGl0cyBnY29uZiBzZXR0aW5ncywgeW91IG5lZWQgdG8gc3RhcnQgZmxvcmVuY2Ugd2l0aCAtLWNvbmZpZyBmb3Igb25lIHRpbWUgYW5kIHNhdmUgdGhlIGNvbmZpZ3VyYXRpb24gb25jZS4KLQotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgotCi1ERVBFTkRTID0gImd0ayszIGxpYnhtbDIgbGliZ2xhZGUgbGlicnN2ZyBsaWJ4dHN0IGdjb25mIGdjb25mLW5hdGl2ZSBjYWlybyBpbnRsdG9vbC1uYXRpdmUgZ25vbWUtZG9jLXV0aWxzIGxpYm5vdGlmeSBnc3RyZWFtZXIxLjAiCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3Byb2plY3QvJHtQTn0vJHtQTn0vJHtQVn0vJHtQTn0tJHtQVn0udGFyLmJ6MiIKLVNSQ19VUklbbWQ1c3VtXSA9ICI4Nzc1MDUxZDczNTJmNzVkZWM1YTg2ZGM5OTY0ZThlMCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI0MjI5OTJmZDA3ZDI4NWJlNzNjY2U3MjFhMjAzZTIyY2VlMjEzMjBkNjliMGZkYTE1NzljZTYyOTQ0YzUwOTFlIgotCi1pbmhlcml0IGdldHRleHQgYXV0b3Rvb2xzIGdjb25mIHBrZ2NvbmZpZwotCi1FWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLXNjcm9sbGtlZXBlciAtLXdpdGhvdXQtZG9jcyAtLXdpdGhvdXQtYXQtc3BpIC0td2l0aG91dC1wYW5lbGFwcGxldCAtLXdpdGhvdXQteHJlY29yZCIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vZ2xpYi0yLjAvc2NoZW1hcyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLXN1cHBvcnQva2V5YmluZGVyL2tleWJpbmRlcl8zLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L2tleWJpbmRlci9rZXliaW5kZXJfMy4wLmJiCmluZGV4IGQ2NzQ0YTMuLjBhMGEzZTYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLXN1cHBvcnQva2V5YmluZGVyL2tleWJpbmRlcl8zLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC9rZXliaW5kZXIva2V5YmluZGVyXzMuMC5iYgpAQCAtMTgsNyArMTgsOSBAQAogCiBSREVQRU5EU18ke1BOfSA9ICJndGsrIgogCi1pbmhlcml0IGF1dG90b29scyBndGstZG9jIGdvYmplY3QtaW50cm9zcGVjdGlvbgoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIGd0ay1kb2MgZ29iamVjdC1pbnRyb3NwZWN0aW9uCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiBkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKIAl0b3VjaCAke1N9L0NoYW5nZUxvZwogfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC9vbmJvYXJkL29uYm9hcmRfMS40LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L29uYm9hcmQvb25ib2FyZF8xLjQuMS5iYgppbmRleCAxMDc2NWVlLi40ZTQ5YmVjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L29uYm9hcmQvb25ib2FyZF8xLjQuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L29uYm9hcmQvb25ib2FyZF8xLjQuMS5iYgpAQCAtMTAsNyArMTAsOSBAQAogU1JDX1VSSVttZDVzdW1dID0gIjFhMmZiZTgyZTkzNGY1YjM3ODQxZDE3ZmY1MWU4MGU4IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjAxY2FlMWFjNWIxZWYxYWI5ODViZDJkMmQ3OWRlZDZmYzk5ZWUwNGIxNTM1Y2MxYmIxOTFlNDNhMjMxYTM4NjUiCiAKLWluaGVyaXQgc2V0dXB0b29sczMgcGtnY29uZmlnIGd0ay1pY29uLWNhY2hlIGdzZXR0aW5ncworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgc2V0dXB0b29sczMgcGtnY29uZmlnIGd0ay1pY29uLWNhY2hlIGdzZXR0aW5ncworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBGSUxFU18ke1BOfSArPSAiIFwKICAgICAke2RhdGFkaXJ9L2RidXMtMSBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvOTB0cmFja2VyIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC90cmFja2VyL2ZpbGVzLzkwdHJhY2tlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTU5NGI5MS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvOTB0cmFja2VyCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0jIS9iaW4vc2gKLQotL3Vzci9iaW4vdHJhY2tlcmQgLW0gJgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1kYnVzLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1kYnVzLnNlcnZpY2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5N2Y0OWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC90cmFja2VyL2ZpbGVzL3RyYWNrZXItZGJ1cy5zZXJ2aWNlCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotW1VuaXRdCi1EZXNjcmlwdGlvbj10cmFja2VyIERCdXMgc2Vzc2lvbiBidXMgaGFuZGxlcgotQmVmb3JlPXRyYWNrZXItc3RvcmUuc2VydmljZQotQWZ0ZXI9ZGJ1cy5zZXJ2aWNlCi1SZXF1aXJlcz1kYnVzLnNlcnZpY2UKLUJpbmRUbz10cmFja2VyLXN0b3JlLnNlcnZpY2UKLQotW1NlcnZpY2VdCi1UeXBlPWZvcmtpbmcKLUVudmlyb25tZW50RmlsZT0tL3RtcC90cmFja2VyLmVudgotRXhlY1N0YXJ0UHJlPUBCQVNFX0JJTkRJUkAvcm0gLXJmIC90bXAvdHJhY2tlci5lbnYKLUV4ZWNTdGFydD0vYmluL3NoIC1jICdlY2hvICJEQlVTX1NFU1NJT05fQlVTX0FERFJFU1M9YGRidXMtZGFlbW9uIC0tZm9yayAtLXNlc3Npb24gLS1wcmludC1hZGRyZXNzYCIgPiAvdG1wL3RyYWNrZXIuZW52JwotCi1bSW5zdGFsbF0KLVdhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1taW5lci1mcy5zZXJ2aWNlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC90cmFja2VyL2ZpbGVzL3RyYWNrZXItbWluZXItZnMuc2VydmljZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzRkOWExZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1taW5lci1mcy5zZXJ2aWNlCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotW1VuaXRdCi1EZXNjcmlwdGlvbj10cmFja2VyLW1pbmVyLWZzCi1BZnRlcj1zeXNsb2cudGFyZ2V0IGxvY2FsLWZzLnRhcmdldCB1ZGV2LnNlcnZpY2UgZGJ1cy5zZXJ2aWNlIHRyYWNrZXItc3RvcmUuc2VydmljZQotUmVxdWlyZXM9dHJhY2tlci1zdG9yZS5zZXJ2aWNlCi0KLVtTZXJ2aWNlXQotRW52aXJvbm1lbnQ9SE9NRT0vaG9tZS9yb290Ci1FbnZpcm9ubWVudEZpbGU9LS90bXAvdHJhY2tlci5lbnYKLUV4ZWNTdGFydD1ATElCRVhFQ0RJUkAvdHJhY2tlci1taW5lci1mcwotCi1bSW5zdGFsbF0KLVdhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1zdG9yZS5zZXJ2aWNlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC90cmFja2VyL2ZpbGVzL3RyYWNrZXItc3RvcmUuc2VydmljZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzUwMzdmMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1zdG9yZS5zZXJ2aWNlCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotW1VuaXRdCi1EZXNjcmlwdGlvbj10cmFja2VyLXN0b3JlCi1BZnRlcj1zeXNsb2cudGFyZ2V0IGxvY2FsLWZzLnRhcmdldCBkYnVzLnNlcnZpY2UKLVJlcXVpcmVzPWRidXMuc2VydmljZSB0cmFja2VyLWRidXMuc2VydmljZQotQmluZFRvPXRyYWNrZXItZGJ1cy5zZXJ2aWNlCi0KLVtTZXJ2aWNlXQotRW52aXJvbm1lbnRGaWxlPS0vdG1wL3RyYWNrZXIuZW52Ci1FeGVjU3RhcnQ9QExJQkVYRUNESVJAL3RyYWNrZXItc3RvcmUKLQotW0luc3RhbGxdCi1XYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC91c2VybW9kZS91c2VybW9kZV8xLjExMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLXN1cHBvcnQvdXNlcm1vZGUvdXNlcm1vZGVfMS4xMTEuYmIKaW5kZXggYzJkNzMyOC4uM2FlYTJlNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC91c2VybW9kZS91c2VybW9kZV8xLjExMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3VzZXJtb2RlL3VzZXJtb2RlXzEuMTExLmJiCkBAIC0yMyw3ICsyMyw4IEBACiAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgogCi1pbmhlcml0IGF1dG90b29scyBnZXR0ZXh0IHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIGdldHRleHQgcGtnY29uZmlnCiAKIEVYVFJBX09FTUFLRSArPSAiSU5TVEFMTD0naW5zdGFsbCAtcCciCiAKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEgcGFtIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3NpdGUvcmlzY3Y2NC1saW51eCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9zaXRlL3Jpc2N2NjQtbGludXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNhNDFlYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9zaXRlL3Jpc2N2NjQtbGludXgKQEAgLTAsMCArMSwxNiBAQAorIyBsaWJpZGwKK2xpYklETF9jdl9sb25nX2xvbmdfZm9ybWF0PSR7bGliSURMX2N2X2xvbmdfbG9uZ19mb3JtYXQ9bGx9CisKKyMgT1JCaXQyCithY19jdl9hbGlnbm9mX0NPUkJBX2Jvb2xlYW49MQorYWNfY3ZfYWxpZ25vZl9DT1JCQV9jaGFyPTEKK2FjX2N2X2FsaWdub2ZfQ09SQkFfZG91YmxlPTgKK2FjX2N2X2FsaWdub2ZfQ09SQkFfZmxvYXQ9NAorYWNfY3ZfYWxpZ25vZl9DT1JCQV9sb25nPTQKK2FjX2N2X2FsaWdub2ZfQ09SQkFfbG9uZ19kb3VibGU9OAorYWNfY3ZfYWxpZ25vZl9DT1JCQV9sb25nX2xvbmc9OAorYWNfY3ZfYWxpZ25vZl9DT1JCQV9vY3RldD0xCithY19jdl9hbGlnbm9mX0NPUkJBX3BvaW50ZXI9NAorYWNfY3ZfYWxpZ25vZl9DT1JCQV9zaG9ydD0yCithY19jdl9hbGlnbm9mX0NPUkJBX3N0cnVjdD0xCithY19jdl9hbGlnbm9mX0NPUkJBX3djaGFyPTIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvUkVBRE1FIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9SRUFETUUKaW5kZXggYjdkYmZlZi4uNzE4NTM4MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9SRUFETUUKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9SRUFETUUKQEAgLTEyLDcgKzEyLDcgQEAKIFRoaXMgbGF5ZXIgZGVwZW5kcyBvbjoKIAogVVJJOiBnaXQ6Ly9naXRodWIuY29tL29wZW5lbWJlZGRlZC9vZS1jb3JlLmdpdAotYnJhbmNoOiByb2NrbworYnJhbmNoOiBtYXN0ZXIKIHJldmlzaW9uOiBIRUFECiAKIApAQCAtMjAsMTMgKzIwLDEyIEBACiAtLS0tLS0tLS0tLQogCiBTZW5kIHBhdGNoZXMgLyBwdWxsIHJlcXVlc3RzIHRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnCi13aXRoICdbbWV0YS1pbml0cmFtZnNdW3JvY2tvXScgaW4gdGhlIHN1YmplY3QuCit3aXRoICdbbWV0YS1pbml0cmFtZnNdJyBpbiB0aGUgc3ViamVjdC4KIAogV2hlbiBzZW5kaW5nIHNpbmdsZSBwYXRjaGVzLCBwbGVhc2UgdXNpbmcgc29tZXRoaW5nIGxpa2U6Ci0nZ2l0IHNlbmQtZW1haWwgLU0gLTEgLS10byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyAtLXN1YmplY3QtcHJlZml4PW1ldGEtaW5pdHJhbWZzXVtyb2Nrb11bUEFUQ0gnCisnZ2l0IHNlbmQtZW1haWwgLU0gLTEgLS10byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyAtLXN1YmplY3QtcHJlZml4PW1ldGEtaW5pdHJhbWZzXVtQQVRDSCcKIAotcm9ja28gQnJhbmNoIE1haW50YWluZXI6Ci1Bcm1pbiBLdXN0ZXIgPGFrdXN0ZXI4MDhAZ21haWwuY29tPgorSW50ZXJtIGxheWVyIG1haW50YWluZXI6IEFybWluIEt1c3RlciA8YWt1c3RlcjgwOEBnbWFpbC5jb20+CiAKIAogTGljZW5zZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9jb25mL2xheWVyLmNvbmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL2NvbmYvbGF5ZXIuY29uZgppbmRleCBkOWI3YzRjLi45N2FmYzkzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL2NvbmYvbGF5ZXIuY29uZgpAQCAtMTYsNiArMTYsOCBAQAogQkJGSUxFX1BSSU9SSVRZX21ldGEtaW5pdHJhbWZzID0gIjgiCiBMQVlFUkRFUEVORFNfbWV0YS1pbml0cmFtZnMgPSAiY29yZSIKIAorTEFZRVJTRVJJRVNfQ09NUEFUX21ldGEtaW5pdHJhbWZzID0gInN1bW8iCisKIFNJR0dFTl9FWENMVURFX1NBRkVfUkVDSVBFX0RFUFMgKz0gIiBcCiAgIGRyYWN1dC0+dmlydHVhbC9rZXJuZWwgXAogIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWJzcC9pbWFnZXMvaW5pdHJhbWZzLWtleGVjYm9vdC1rbGliYy1pbWFnZS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1ic3AvaW1hZ2VzL2luaXRyYW1mcy1rZXhlY2Jvb3Qta2xpYmMtaW1hZ2UuYmIKaW5kZXggNmI4NDViZC4uM2E4ZDlmNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWJzcC9pbWFnZXMvaW5pdHJhbWZzLWtleGVjYm9vdC1rbGliYy1pbWFnZS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtYnNwL2ltYWdlcy9pbml0cmFtZnMta2V4ZWNib290LWtsaWJjLWltYWdlLmJiCkBAIC04LDUgKzgsNSBAQAogCiBweXRob24gKCkgewogICAgIGlmIGQuZ2V0VmFyKCdUQVJHRVRfQVJDSCcpID09ICJuaW9zMiI6Ci0gICAgICAgIHJhaXNlIGJiLnBhcnNlLlNraXBQYWNrYWdlKCInbmlvczInIG5vdCBzdXBwb3J0ZWQgYXJjaCIpCisgICAgICAgIHJhaXNlIGJiLnBhcnNlLlNraXBSZWNpcGUoIiduaW9zMicgbm90IHN1cHBvcnRlZCBhcmNoIikKIH0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9kcmFjdXQvZHJhY3V0X2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9kcmFjdXQvZHJhY3V0X2dpdC5iYgppbmRleCBlMTg0MDlkLi5jY2Y5ZjZhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvZHJhY3V0L2RyYWN1dF9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2RyYWN1dC9kcmFjdXRfZ2l0LmJiCkBAIC02LDEwICs2LDEwIEBACiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKIAogUEUgPSAiMSIKLVBWID0gIjA0NStnaXQke1NSQ1JFVn0iCitQViA9ICIwNDYrZ2l0JHtTUkNSRVZ9IgogCi0jIHYwNDUgdGFnCi1TUkNSRVYgPSAiMzljOWI2N2Y4NjE0NTk1M2FhMzBkZWY5ZDc3YzY4NTk3YTRjY2ZlOCIKKyMgdjA0NiB0YWcKK1NSQ1JFViA9ICJhMDc5OWZmYjU1NDQ4N2EzNzBjMmExYWRhZmFlZGQyMDIxYjZkYzhjIgogU1JDX1VSSSA9ICJnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2Jvb3QvZHJhY3V0L2RyYWN1dC5naXQ7cHJvdG9jb2w9aHR0cCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLXV0aWwuaC1pbmNsdWRlLXN5cy1yZWcuaC13aGVuLWxpYmMtZ2xpYmMucGF0Y2ggXAogICAgICAgICAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvZ3J1YmJ5L2dydWJieV84LjQwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2dydWJieS9ncnViYnlfOC40MC5iYgppbmRleCA1YTk5ODI0Li5kYzNhNzBiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvZ3J1YmJ5L2dydWJieV84LjQwLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9ncnViYnkvZ3J1YmJ5XzguNDAuYmIKQEAgLTQsNiArNCw3IEBACiB6aXBsIChzMzkwKSBib290IGxvYWRlcnMuIEl0IGlzIHByaW1hcmlseSBkZXNpZ25lZCB0byBiZSB1c2VkIGZyb20gc2NyaXB0cyB3aGljaCBpbnN0YWxsIFwKIG5ldyBrZXJuZWxzIGFuZCBuZWVkIHRvIGZpbmQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgYm9vdCBlbnZpcm9ubWVudC4gXAogIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3JoYm9vdC9ncnViYnkiCiBMSUNFTlNFID0gIkdQTHYyKyIKIAogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ODkyZjU2OWE1NTViYTljMDdhNTY4YTdjMGM0ZmE2M2EiCkBAIC0xMSwxOCArMTIsMTUgQEAKIERFUEVORFMgPSAicG9wdCB1dGlsLWxpbnV4IgogREVQRU5EU19hcHBlbmRfbGliYy1tdXNsID0gIiBsaWJleGVjaW5mbyIKIAotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vcmhpbnN0YWxsZXIvJHtCUE59L2FyY2hpdmUvJHtQVn0tMS50YXIuZ3o7ZG93bmxvYWRmaWxlbmFtZT0ke0JQTn0tJHtQVn0tMS50YXIuZ3ogXAorUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICI3OWM1Y2ZhMDJjNTY3ZWZkYzViYjE4Y2RkNTg0Nzg5ZTJlMzVhYTIzIgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3JoYm9vdC9ncnViYnkuZ2l0O3Byb3RvY29sPWh0dHBzOyBcCiAgICAgICAgICAgIGZpbGU6Ly9ncnViYnktcmVuYW1lLWdydWIyLWVkaXRlbnYtdG8tZ3J1Yi1lZGl0ZW52LnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLUFkZC1hbm90aGVyLXZhcmlhYmxlLUxJQlMtdG8tcHJvdmlkZXMtbGlicmFyaWVzLWZyb20ucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMi1pbmNsdWRlLXBhdGhzLmgtZm9yLV9QQVRIX01PVU5URUQucGF0Y2ggXAogICAgICAgICAgICAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIxMDA1OTA3YjI3NWQ2ZDkzMzY4ZDA0NTI3NDUzN2Q4NiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4NWYxYzY3ODQ4NGY3NGM4OTc4ZTg2NDM0NTE1OTQ5NjdkZWZjZTQ2M2E4NmMzNWNiMWVlNTZkMTI3NjdhOWRmIgotCi1TID0gIiR7V09SS0RJUn0vJHtCUE59LSR7UFZ9LTEiCi0KIFJERVBFTkRTXyR7UE59ICs9ICJkcmFjdXQiCiAKIGluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwdGVzdApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtRGVmaW5lLWluXy1zdHJ1Y3RzLWZvci1ub24tZ2xpYmMtc3lzdGVtLWxpYnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1EZWZpbmUtaW5fLXN0cnVjdHMtZm9yLW5vbi1nbGliYy1zeXN0ZW0tbGlicy5wYXRjaAppbmRleCA4ZDFlYzY5Li5lN2EwY2NlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1EZWZpbmUtaW5fLXN0cnVjdHMtZm9yLW5vbi1nbGliYy1zeXN0ZW0tbGlicy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1EZWZpbmUtaW5fLXN0cnVjdHMtZm9yLW5vbi1nbGliYy1zeXN0ZW0tbGlicy5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gZjQxNGRlYTEzMTZhNDhhYmEzZThlMjkzMjAxZWJkNTE2NTJkM2VmNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNTdlM2E2MGIyMzg5MTkwNTczM2JmZWE3YTFjYjc4YzIzNzdjYzUyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBTdW4sIDkgSnVsIDIwMTcgMTU6MTc6MjkgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gRGVmaW5lIGluXyogc3RydWN0cyBmb3Igbm9uLWdsaWJjIHN5c3RlbSBsaWJzCkBAIC0xMCwxNCArMTAsMzggQEAKIHRvIGluZmVyIHRoYXQgdGhlc2Ugc3RydWN0cyBzaG91bGQgYmUgZGVmaW5lZCBpbiBsaW51eC9pbi5oCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSB1c3IvaW5jbHVkZS9uZXRpbmV0L2luLmggfCAzMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKQogCi1JbmRleDogZ2l0L3Vzci9pbmNsdWRlL25ldGluZXQvaW4uaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL3Vzci9pbmNsdWRlL25ldGluZXQvaW4uaAotKysrIGdpdC91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgKKy0tLQorIHVzci9pbmNsdWRlL25ldC9pZi5oICAgICB8IDExICsrKysrKysrKysrCisgdXNyL2luY2x1ZGUvbmV0aW5ldC9pbi5oIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS91c3IvaW5jbHVkZS9uZXQvaWYuaCBiL3Vzci9pbmNsdWRlL25ldC9pZi5oCitpbmRleCAxMTZhMTc2Li42MjQ2YjEyIDEwMDY0NAorLS0tIGEvdXNyL2luY2x1ZGUvbmV0L2lmLmgKKysrKyBiL3Vzci9pbmNsdWRlL25ldC9pZi5oCitAQCAtMSw2ICsxLDE3IEBACisgI2lmbmRlZiBfTkVUX0lGX0gKKyAjZGVmaW5lIF9ORVRfSUZfSAorIAorKyNpZm5kZWYgX19HTElCQ19fCisrI2luY2x1ZGUgPGxpbnV4L2xpYmMtY29tcGF0Lmg+CisrI3VuZGVmIF9fVUFQSV9ERUZfSUZfSUZSRVEKKysjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZSRVEgICAgICAgICAgICAxCisrI3VuZGVmIF9fVUFQSV9ERUZfSUZfSUZOQU1TSVoKKysjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZOQU1TSVogICAgICAgICAxCisrI3VuZGVmIF9fVUFQSV9ERUZfSUZfSUZNQVAKKysjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZNQVAgICAgICAgICAgICAxCisrI3VuZGVmIF9fVUFQSV9ERUZfSUZfTkVUX0RFVklDRV9GTEFHUworKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9ORVRfREVWSUNFX0ZMQUdTIDEKKysjZW5kaWYKKyAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAjaW5jbHVkZSA8bGludXgvaWYuaD4KK2RpZmYgLS1naXQgYS91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmggYi91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgKK2luZGV4IDI5NTJiYjIuLjBjOTViYzkgMTAwNjQ0CistLS0gYS91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgKKysrKyBiL3Vzci9pbmNsdWRlL25ldGluZXQvaW4uaAogQEAgLTUsNiArNSw0MiBAQAogICNpZm5kZWYgX05FVElORVRfSU5fSAogICNkZWZpbmUgX05FVElORVRfSU5fSApAQCAtNjEsMjUgKzg1LDMgQEAKICAjaW5jbHVkZSA8a2xpYmMvZXh0ZXJuLmg+CiAgI2luY2x1ZGUgPHN0ZGludC5oPgogICNpbmNsdWRlIDxlbmRpYW4uaD4JCS8qIE11c3QgYmUgaW5jbHVkZWQgKmJlZm9yZSogPGxpbnV4L2luLmg+ICovCi1JbmRleDogZ2l0L3Vzci9pbmNsdWRlL25ldC9pZi5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2l0Lm9yaWcvdXNyL2luY2x1ZGUvbmV0L2lmLmgKLSsrKyBnaXQvdXNyL2luY2x1ZGUvbmV0L2lmLmgKLUBAIC0xLDYgKzEsMTcgQEAKLSAjaWZuZGVmIF9ORVRfSUZfSAotICNkZWZpbmUgX05FVF9JRl9ICi0gCi0rI2lmbmRlZiBfX0dMSUJDX18KLSsjaW5jbHVkZSA8bGludXgvbGliYy1jb21wYXQuaD4KLSsjdW5kZWYgX19VQVBJX0RFRl9JRl9JRlJFUQotKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9JRlJFUSAgICAgICAgICAgIDEKLSsjdW5kZWYgX19VQVBJX0RFRl9JRl9JRk5BTVNJWgotKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9JRk5BTVNJWiAgICAgICAgIDEKLSsjdW5kZWYgX19VQVBJX0RFRl9JRl9JRk1BUAotKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9JRk1BUCAgICAgICAgICAgIDEKLSsjdW5kZWYgX19VQVBJX0RFRl9JRl9ORVRfREVWSUNFX0ZMQUdTCi0rI2RlZmluZSBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0VfRkxBR1MgMQotKyNlbmRpZgotICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0gI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotICNpbmNsdWRlIDxsaW51eC9pZi5oPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtS2J1aWxkLmtsaWJjLUFkZC1wYXRoLXRvLWNvbXBpbGVyLWhlYWRlcnMtdmlhLWlzeXN0ZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLUtidWlsZC5rbGliYy1BZGQtcGF0aC10by1jb21waWxlci1oZWFkZXJzLXZpYS1pc3lzdGUucGF0Y2gKaW5kZXggN2NkNGMwZS4uMTgxZGNmYiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtS2J1aWxkLmtsaWJjLUFkZC1wYXRoLXRvLWNvbXBpbGVyLWhlYWRlcnMtdmlhLWlzeXN0ZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1LYnVpbGQua2xpYmMtQWRkLXBhdGgtdG8tY29tcGlsZXItaGVhZGVycy12aWEtaXN5c3RlLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAxMGZiNDQwNzk1YTc3OTYxNDBiZDY1N2VlMDI4ODQ3ZWM3YzM0NDQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA0YjQxNDdiNzY1MThkMzFhODhmYjJjNThjZGJmMjIzNmUxNTlhMjVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IEZyaSwgOCBTZXAgMjAxNyAyMzoxMDo1NCAtMDcwMAogU3ViamVjdDogW1BBVENIXSBLYnVpbGQua2xpYmM6IEFkZCBwYXRoIHRvIGNvbXBpbGVyIGhlYWRlcnMgdmlhIC1pc3lzdGVtCkBAIC03LDEyICs3LDEzIEBACiBzdGRhcmcuaCB3aGljaCBpcyBjYWxsZWQgZnJvbSB3cmFwcGVyIHN0ZGFyZy5oIHVzaW5nIGluY2x1ZGVfbmV4dAogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KLSBzY3JpcHRzL0tidWlsZC5rbGliYyB8IDUgKysrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorIHNjcmlwdHMvS2J1aWxkLmtsaWJjIHwgMyArKy0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9zY3JpcHRzL0tidWlsZC5rbGliYyBiL3NjcmlwdHMvS2J1aWxkLmtsaWJjCi1pbmRleCBmNTAwZDUzNS4uMWQ1Y2RjNDMgMTAwNjQ0CitpbmRleCAxMDFmODZmLi4xZDVjZGM0IDEwMDY0NAogLS0tIGEvc2NyaXB0cy9LYnVpbGQua2xpYmMKICsrKyBiL3NjcmlwdHMvS2J1aWxkLmtsaWJjCiBAQCAtMTA1LDcgKzEwNSw4IEBAIEtMSUJDT0JKQ09QWSAgICAgOj0gJChPQkpDT1BZKQpAQCAtMjUsNiArMjYsMyBAQAogIAkJICAgIC1JJChLTElCQ0lOQykvYXJjaC8kKEtMSUJDQVJDSERJUikJXAogICAgICAgICAgICAgICAgICAgICAgLUkkKEtMSUJDSU5DKS9iaXRzJChLTElCQ0JJVFNJWkUpCVwKICAJCSAgICAtSSQoS0xJQkNPQkopLy4uL2luY2x1ZGUJCVwKLS0tIAotMi4xNC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLUtidWlsZC5rbGliYy1Vc2UtcHJpbnQtbGliZ2NjLWZpbGUtbmFtZS1pbnN0ZWFkLW9mLXAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1LYnVpbGQua2xpYmMtVXNlLXByaW50LWxpYmdjYy1maWxlLW5hbWUtaW5zdGVhZC1vZi1wLnBhdGNoCmluZGV4IDQxY2MxNDIuLjFiYTA1YTggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLUtidWlsZC5rbGliYy1Vc2UtcHJpbnQtbGliZ2NjLWZpbGUtbmFtZS1pbnN0ZWFkLW9mLXAucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtS2J1aWxkLmtsaWJjLVVzZS1wcmludC1saWJnY2MtZmlsZS1uYW1lLWluc3RlYWQtb2YtcC5wYXRjaApAQCAtMSwxOSArMSwyMCBAQAotRnJvbSBmNjZlZGRlOGE3MDQxMzFkOThlODc4M2VhOGQ0Yzg0OGU4MTE5YjIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBiNjE4NTQwMWZjM2RhYTdmYThiYTJiODRkYjNlNGRhM2I5NGE5ODY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFdlZCwgMjYgSnVsIDIwMTcgMTY6MTM6MTYgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzNdIEtidWlsZC5rbGliYzogVXNlIC1wcmludC1saWJnY2MtZmlsZS1uYW1lIGluc3RlYWQgb2YKK1N1YmplY3Q6IFtQQVRDSF0gS2J1aWxkLmtsaWJjOiBVc2UgLXByaW50LWxpYmdjYy1maWxlLW5hbWUgaW5zdGVhZCBvZgogIC0tcHJpbnQtbGliZ2NjCiAKIC1wcmludC1saWJnY2MtZmlsZS1uYW1lIHdvcmtzIHdpdGggY2xhbmcgYW5kIGdjYyB1bmxpa2UgLS1wcmludC1saWJnY2MKIHdoaWNoIGlzIGdjYyBzcGVjaWZpYwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBzY3JpcHRzL0tidWlsZC5rbGliYyB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL3NjcmlwdHMvS2J1aWxkLmtsaWJjIGIvc2NyaXB0cy9LYnVpbGQua2xpYmMKLWluZGV4IGY1MDBkNTM1Li4xMDFmODZmNSAxMDA2NDQKK2luZGV4IGY1MDBkNTMuLjEwMWY4NmYgMTAwNjQ0CiAtLS0gYS9zY3JpcHRzL0tidWlsZC5rbGliYwogKysrIGIvc2NyaXB0cy9LYnVpbGQua2xpYmMKIEBAIC0xMjgsNyArMTI4LDcgQEAgS0xJQkNDRkxBR1MgICAgICArPSAkKEtMSUJDQ1BQRkxBR1MpICQoS0xJQkNSRVFGTEFHUykgJChLTElCQ0FSQ0hSRVFGTEFHUykgIFwKQEAgLTI1LDYgKzI2LDMgQEAKICBLTElCQ0xJQkdDQwkgPz0gJChLTElCQ0xJQkdDQ19ERUYpCiAgS0xJQkNDUlQwICAgICAgICA6PSAkKEtMSUJDT0JKKS9hcmNoLyQoS0xJQkNBUkNIRElSKS9jcnQwLm8KICBLTElCQ0xJQkMgICAgICAgIDo9ICQoS0xJQkNPQkopL2xpYmMuYQotLS0gCi0yLjEzLjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtYWx3YXlzLXVzZS1iZmQtbGlua2VyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtYWx3YXlzLXVzZS1iZmQtbGlua2VyLnBhdGNoCmluZGV4IDQxYTZiOWUuLmRlMDRkNjkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWFsd2F5cy11c2UtYmZkLWxpbmtlci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1hbHdheXMtdXNlLWJmZC1saW5rZXIucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDllYTE5YmQ5NjM2ODA2YTczYmNmMjljZmNlZTQwYTI2OGY5MWViNGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDYzYWI1MTAyZDZlZjM2MmE1OTc5NDFlNjI0NzBiZjE5ZTZmMTY1MmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogVHVlLCAxMSBKdWwgMjAxNyAwODowOTo1MiAtMDcwMAogU3ViamVjdDogW1BBVENIXSBhbHdheXMgdXNlIGJmZCBsaW5rZXIKQEAgLTgsMTIgKzgsMTMgQEAKIGxpbmtpbmcgaXNzdWVzIG9uIHN1Y2ggZGlzdHJvcwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBNYWtlZmlsZSB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKLWluZGV4IGRjMTBmYzVkLi40MDY0N2JlNCAxMDA2NDQKK2luZGV4IGRjMTBmYzUuLjQwNjQ3YmUgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZQogKysrIGIvTWFrZWZpbGUKIEBAIC0yMCw3ICsyMCw3IEBAIGluY2x1ZGUgJChzcmN0cmVlKS9zY3JpcHRzL0tidWlsZC5pbmNsdWRlCkBAIC0yNSw2ICsyNiwzIEBACiAgZXhwb3J0IEFSCTo9ICQoS0xJQkNST1NTKWFyCiAgZXhwb3J0IFJBTkxJQgk6PSAkKEtMSUJDUk9TUylyYW5saWIKICBleHBvcnQgU1RSSVAJOj0gJChLTElCQ1JPU1Mpc3RyaXAKLS0tIAotMi4xMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWFybS1Eby1ub3Qtc2V0LWEtZmFsbGJhY2stbWFyY2gtYW5kLW10dW5lLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtYXJtLURvLW5vdC1zZXQtYS1mYWxsYmFjay1tYXJjaC1hbmQtbXR1bmUucGF0Y2gKaW5kZXggOWMwZWE2My4uZmNmNGY4OSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtYXJtLURvLW5vdC1zZXQtYS1mYWxsYmFjay1tYXJjaC1hbmQtbXR1bmUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtYXJtLURvLW5vdC1zZXQtYS1mYWxsYmFjay1tYXJjaC1hbmQtbXR1bmUucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIGE0NmExNDRhYzg4Mzg5OGQ5Y2VkZjdhMGIxM2FlYzZkMTAxMTYxMjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGViZDJiMGU0MTRjOTg0NjcxNTZiOTYxYWJiNDcwYjVkMDdmMzdlYTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogRnJpLCAyOSBTZXAgMjAxNyAyMzoxMTo1MyAtMDcwMAogU3ViamVjdDogW1BBVENIXSBhcm06IERvIG5vdCBzZXQgYSBmYWxsYmFjayBtYXJjaCBhbmQgbXR1bmUKQEAgLTksMTQgKzksMTMgQEAKIHdoaWNoIGlzIGEgYml0IGhhcmRlciBpbiBPRQogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAorLS0tCiAgdXNyL2tsaWJjL2FyY2gvYXJtL01DT05GSUcgfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS91c3Iva2xpYmMvYXJjaC9hcm0vTUNPTkZJRyBiL3Vzci9rbGliYy9hcmNoL2FybS9NQ09ORklHCi1pbmRleCA1M2JjMWRjMy4uODU3ZTJmMmQgMTAwNjQ0CitpbmRleCAzMDNjNmFjLi40OGQyNjg1IDEwMDY0NAogLS0tIGEvdXNyL2tsaWJjL2FyY2gvYXJtL01DT05GSUcKICsrKyBiL3Vzci9rbGliYy9hcmNoL2FybS9NQ09ORklHCiBAQCAtMTAsNyArMTAsNyBAQApAQCAtMjgsNiArMjcsMyBAQAogIEtMSUJDQklUU0laRSAgPSAzMgogIEtMSUJDUkVRRkxBR1MgKz0gLWZuby1leGNlcHRpb25zCiAgS0xJQkNTVFJJUEZMQUdTICs9IC1SIC5BUk0uZXhpZHgKLS0tIAotMi4xNC4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWRhc2gtU3BlY2lmeS1mb3JtYXQtc3RyaW5nLWluLWZtdHN0ci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWRhc2gtU3BlY2lmeS1mb3JtYXQtc3RyaW5nLWluLWZtdHN0ci5wYXRjaAppbmRleCBhZThjMWYxLi40NmEyMzk4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1kYXNoLVNwZWNpZnktZm9ybWF0LXN0cmluZy1pbi1mbXRzdHIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtZGFzaC1TcGVjaWZ5LWZvcm1hdC1zdHJpbmctaW4tZm10c3RyLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAyZmZmNjA3ZmQwYjU1NTBlNTA3MmE2ZmZmY2JiMDFjMjlkNTIwN2QyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA4YmVmZmU1MDFjMWFjNWIzNWQ2MjAwNDczNWM0MTU3Yzc0MTgzOTAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFN1biwgOSBKdWwgMjAxNyAxMzo1MToyNSAtMDcwMAogU3ViamVjdDogW1BBVENIXSBkYXNoOiBTcGVjaWZ5IGZvcm1hdCBzdHJpbmcgaW4gZm10c3RyKCkKQEAgLTksMTIgKzksMTMgQEAKICAgIGNvbCA9IGZtdHN0cihzLCAzMiwgc3Ryc2lnbmFsKHN0KSk7CiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIHVzci9kYXNoL2pvYnMuYyB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL3Vzci9kYXNoL2pvYnMuYyBiL3Vzci9kYXNoL2pvYnMuYwotaW5kZXggMDA5YmJmZWUuLjI5OWJjYWNjIDEwMDY0NAoraW5kZXggMDA5YmJmZS4uMjk5YmNhYyAxMDA2NDQKIC0tLSBhL3Vzci9kYXNoL2pvYnMuYwogKysrIGIvdXNyL2Rhc2gvam9icy5jCiBAQCAtNDI2LDcgKzQyNiw3IEBAIHNwcmludF9zdGF0dXMoY2hhciAqcywgaW50IHN0YXR1cywgaW50IHNpZ29ubHkpCkBAIC0yNiw2ICsyNywzIEBACiAgI2lmZGVmIFdDT1JFRFVNUAogIAkJaWYgKFdDT1JFRFVNUChzdGF0dXMpKSB7CiAgCQkJY29sICs9IGZtdHN0cihzICsgY29sLCAxNiwgIiAoY29yZSBkdW1wZWQpIik7Ci0tLSAKLTIuMTMuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1pbmNsdWRlLWxpbnV4LXN5c2luZm8uaC1kaXJlY3RseS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWluY2x1ZGUtbGludXgtc3lzaW5mby5oLWRpcmVjdGx5LnBhdGNoCmluZGV4IDFiMDMzYWMuLjA0Yzk3ZmMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWluY2x1ZGUtbGludXgtc3lzaW5mby5oLWRpcmVjdGx5LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWluY2x1ZGUtbGludXgtc3lzaW5mby5oLWRpcmVjdGx5LnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBhYjA2MGE1N2I0MWY5ODk2NjVhZGUyMGU4MTNiYmNiNjdmOTFmMWYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBkOTY2ZDUyZDFlNTY5Y2JjMjI5M2Q4NDEyODVlMmI4OTQxZjI4YzYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFN1biwgOSBKdWwgMjAxNyAxNTo1NjoyOCAtMDcwMAogU3ViamVjdDogW1BBVENIXSBpbmNsdWRlIGxpbnV4L3N5c2luZm8uaCBkaXJlY3RseQpAQCAtMTAsMTIgKzEwLDEzIEBACiBvdmVycmlkZSB0byBhdm9pZCB0aGlzIGFzc3VtcHRpb24KIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgdXNyL2luY2x1ZGUvc3lzL3N5c2luZm8uaCB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL3Vzci9pbmNsdWRlL3N5cy9zeXNpbmZvLmggYi91c3IvaW5jbHVkZS9zeXMvc3lzaW5mby5oCi1pbmRleCBkYmE2OGRjNi4uZDE0NWMwYjEgMTAwNjQ0CitpbmRleCBkYmE2OGRjLi5kMTQ1YzBiIDEwMDY0NAogLS0tIGEvdXNyL2luY2x1ZGUvc3lzL3N5c2luZm8uaAogKysrIGIvdXNyL2luY2x1ZGUvc3lzL3N5c2luZm8uaAogQEAgLTUsNyArNSw3IEBACkBAIC0yNyw2ICsyOCwzIEBACiAgCiAgZXh0ZXJuIGludCBzeXNpbmZvKHN0cnVjdCBzeXNpbmZvICppbmZvKTsKICAKLS0tIAotMi4xMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLW1rZmlmby1JbXBsZW1lbnQtbWtmaWZvLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtbWtmaWZvLUltcGxlbWVudC1ta2ZpZm8ucGF0Y2gKaW5kZXggOTc5MTQxMi4uM2JjMDgxZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtbWtmaWZvLUltcGxlbWVudC1ta2ZpZm8ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtbWtmaWZvLUltcGxlbWVudC1ta2ZpZm8ucGF0Y2gKQEAgLTEsMTUgKzEsMTYgQEAKLUZyb20gYjRlMTIwZjVlZGYwNmU2ZGYxMzhiMTgwNGE4YjUxODA1ODRjZWE2YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gY2Y5NzA3OTAwOWJhNDhkMTBlNTIwNTJiMmVhYjc0NjFlYTRkZDA5YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBNb24sIDEwIEp1bCAyMDE3IDIwOjQyOjUwIC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIG1rZmlmbzogSW1wbGVtZW50IG1rZmlmbwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICB1c3IvdXRpbHMvbWtmaWZvLmMgfCA1ICsrKysrCiAgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQogCiBkaWZmIC0tZ2l0IGEvdXNyL3V0aWxzL21rZmlmby5jIGIvdXNyL3V0aWxzL21rZmlmby5jCi1pbmRleCA1YTc1OGIyYS4uZjFmNTc3ZTYgMTAwNjQ0CitpbmRleCA1YTc1OGIyLi5mMWY1NzdlIDEwMDY0NAogLS0tIGEvdXNyL3V0aWxzL21rZmlmby5jCiArKysgYi91c3IvdXRpbHMvbWtmaWZvLmMKIEBAIC0yNiw2ICsyNiwxMSBAQCBzdGF0aWMgaW50IG1ha2VfZmlmbyhjaGFyICpkaXIpCkBAIC0yNCw2ICsyNSwzIEBACiAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICB7CiAgCWludCBjLCByZXQgPSAwOwotLS0gCi0yLjEzLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L2FybXY0LWZpeC12NGJ4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L2FybXY0LWZpeC12NGJ4LnBhdGNoCmluZGV4IDZiYjM4NGIuLmU4NDIzNTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC9hcm12NC1maXgtdjRieC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvYXJtdjQtZml4LXY0YngucGF0Y2gKQEAgLTEsMTEgKzEsMjIgQEAKK0Zyb20gZDJmYjQ4NGQ5OTUyMjEyNzdjY2U3YWJkZGNkN2RmYTBlOGJjZWVjMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMTEgSmFuIDIwMTMgMTc6MjY6NDAgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0ga2xpYmNfMi4wLjI6IGFwcGx5IEZJWF9WNEJYIHBhdGNoIGZvciBhcm12NCB0YXJnZXRzIG9ubHkKKwogU3RhdHVzOiBub3QgYXBwbGljYWJsZSB1cHN0cmVhbSwgaW4gT0UvWW9jdG8gd2UgdXNlICQoRklYX1Y0QlgpCiB3aGljaCBpcyAiIiBpbiBjYXNlIG9mIGFybXY1IG9yIHRodW1icy4KIAogU2lnbmVkLW9mZi1ieTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgogCi0tLS0gYS91c3Iva2xpYmMvYXJjaC9hcm0vTUNPTkZJRwkyMDEzLTAxLTA5IDAxOjEyOjAyLjAwMDAwMDAwMCArMDEwMAotKysrIGIvdXNyL2tsaWJjL2FyY2gvYXJtL01DT05GSUcJMjAxMy0wMS0wOCAyMzo0NTo1OS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0yOSw2ICsyOSw3IEBACistLS0KKyB1c3Iva2xpYmMvYXJjaC9hcm0vTUNPTkZJRyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvdXNyL2tsaWJjL2FyY2gvYXJtL01DT05GSUcgYi91c3Iva2xpYmMvYXJjaC9hcm0vTUNPTkZJRworaW5kZXggNTNiYzFkYy4uMzAzYzZhYyAxMDA2NDQKKy0tLSBhL3Vzci9rbGliYy9hcmNoL2FybS9NQ09ORklHCisrKysgYi91c3Iva2xpYmMvYXJjaC9hcm0vTUNPTkZJRworQEAgLTI5LDYgKzI5LDcgQEAgZWxzZQogIEtMSUJDU0hBUkVERkxBR1MgPSAtVHRleHQgMHgwMTgwMDIwMAogIGlmZXEgKCQoQ09ORklHX0FFQUJJKSx5KQogIEtMSUJDUkVRRkxBR1MgKz0gLW1hYmk9YWFwY3MtbGludXggLW1uby10aHVtYi1pbnRlcndvcmsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC9rbGNjLWNvbnNpZGVyLXN5c3Jvb3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQva2xjYy1jb25zaWRlci1zeXNyb290LnBhdGNoCmluZGV4IDliYzQ4MzUuLjVmNDdkM2YgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC9rbGNjLWNvbnNpZGVyLXN5c3Jvb3QucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L2tsY2MtY29uc2lkZXItc3lzcm9vdC5wYXRjaApAQCAtMSwzICsxLDExIEBACitGcm9tIDBjYjI2Y2YyZDI1ZDM2YzFmZGNjNGYxNjM1ZTQzMjk0MzZlZDg2NmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDE5IFNlcCAyMDE0IDIzOjA5OjI5ICswMjAwCisKKy0tLQorIGtsY2Mva2xjYy5pbiB8IDMgKysrCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQorCiBkaWZmIC0tZ2l0IGEva2xjYy9rbGNjLmluIGIva2xjYy9rbGNjLmluCiBpbmRleCA0M2QwOTg0Li42MWU5Mzg1IDEwMDY0NAogLS0tIGEva2xjYy9rbGNjLmluCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQva2xpYmMtY29uZmlnLWVhYmkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQva2xpYmMtY29uZmlnLWVhYmkucGF0Y2gKaW5kZXggMzE2YzgwYS4uZjI4Y2Q1NCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L2tsaWJjLWNvbmZpZy1lYWJpLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC9rbGliYy1jb25maWctZWFiaS5wYXRjaApAQCAtMSwxMiArMSwyMiBAQAorRnJvbSAxMTE4Y2M5NzE5MTdhYmUxOWRkYjAyOWFhODA0MTdmNmZkNmJiMzQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVGhvbWFzIEt1bnplIDx0aG9tbXljaGVja0BnbXguZGU+CitEYXRlOiBTYXQsIDYgQXVnIDIwMTEgMDU6MzA6MTQgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0ga2xpYmM6IGluaXRpYWwgY29tbWl0IG9mIHZlcnNpb24gMS41LjI0CisKIFBhdGNoIHdhcyBpbXBvcnRlZCBmcm9tIHRoZSBPcGVuRW1iZWRkZWQgZ2l0IHNlcnZlcgogKGdpdDovL2dpdC5vcGVuZW1iZWRkZWQub3JnL29wZW5lbWJlZGRlZCkKIGFzIG9mIGNvbW1pdCBpZCBiNjc2NGNmMzJlYzkzNTQ3NTMxMTMwZGNhMzY0ZmI5NWUxYzQ5NWY0CiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgS3VuemUgPHRob21teWNoZWNrQGdteC5kZT4KIAotZGlmZiAtTnVyIGtsaWJjLTEuNS9kZWZjb25maWcga2xpYmMtMS41cC9kZWZjb25maWcKLS0tLSBrbGliYy0xLjUvZGVmY29uZmlnCTIwMDctMDMtMDQgMDI6NTI6MTAuMDAwMDAwMDAwICswMTAwCi0rKysga2xpYmMtMS41cC9kZWZjb25maWcJMjAwOC0wMi0wOCAxOToyNDoyMi4zMzcxMjc3NTYgKzAxMDAKLUBAIC01LDQgKzUsNCBAQAorLS0tCisgZGVmY29uZmlnIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZGVmY29uZmlnIGIvZGVmY29uZmlnCitpbmRleCAwNGI5OGU5Li4wY2IyM2QwIDEwMDY0NAorLS0tIGEvZGVmY29uZmlnCisrKysgYi9kZWZjb25maWcKK0BAIC02LDQgKzYsNCBAQCBDT05GSUdfS0xJQkNfWkxJQj15CiAgQ09ORklHX1JFR1BBUk09eQogICMgQVJNIG9wdGlvbnMKICAjIENPTkZJR19LTElCQ19USFVNQiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQva2xpYmMtbGludXgtbGliYy1kZXYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQva2xpYmMtbGludXgtbGliYy1kZXYucGF0Y2gKaW5kZXggMjA0MzA2NC4uYTU1NjNiNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L2tsaWJjLWxpbnV4LWxpYmMtZGV2LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC9rbGliYy1saW51eC1saWJjLWRldi5wYXRjaApAQCAtMSwxNSArMSwyMiBAQAorRnJvbSAxYmUyYmM0MWY5MTU5MjIxMDJhM2JhNjcxYjU0YzJkZjZmMDA1MmU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KK0RhdGU6IFN1biwgMTQgTWFyIDIwMTAgMTg6NDE6NTYgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0ga2xpYmNfMS41LjI2OiBub3cgYnVpbGQgYWdhaW5zdCBsaW51eC1saWJjLWhlYWRlcnMKKwogY29tbWl0IDQzYWRmNjkwNjIyNTRmYjRmOGQ0ZDExZmI1ZmUzNmE2MGFlMjVkNWEKLUF1dGhvcjogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KLURhdGU6ICAgU3VuIE1hciAxNCAxODo0MTo1NiAyMDEwICswMDAwCiAKICAgICBUYWtlbiBmcm9tIGRlYmlhbiAiRml4IGtsaWJjIERlYmlhbiBzcGVjaWZpYyBidWlsZCB0cm91YmxlIgogICAgIEFkYXB0ZWQgZm9yIGtsaWJjXzIuMC4yCiAKLUluZGV4OiBrbGliYy0yLjB+cmMyL3NjcmlwdHMvS2J1aWxkLmluc3RhbGwKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBrbGliYy0yLjB+cmMyLm9yaWcvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAkyMDEyLTAyLTExIDE4OjUwOjIxLjAwMDAwMDAwMCArMDAwMAotKysrIGtsaWJjLTIuMH5yYzIvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAkyMDEyLTAyLTExIDE5OjA0OjUyLjAwMDAwMDAwMCArMDAwMAotQEAgLTk1LDcgKzk1LDkgQEAKKy0tLQorIHNjcmlwdHMvS2J1aWxkLmluc3RhbGwgfCA0ICsrKy0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpcHRzL0tidWlsZC5pbnN0YWxsIGIvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAoraW5kZXggOGFmNTY5Ny4uZDMyYThhNSAxMDA2NDQKKy0tLSBhL3NjcmlwdHMvS2J1aWxkLmluc3RhbGwKKysrKyBiL3NjcmlwdHMvS2J1aWxkLmluc3RhbGwKK0BAIC05NSw3ICs5NSw5IEBAIGhlYWRlcjoKICAJJChRKW1rZGlyIC1wICQoSU5TVEFMTFJPT1QpJChJTlNUQUxMRElSKS8kKEtDUk9TUylpbmNsdWRlCiAgCSQoUSlta2RpciAtcCAkKElOU1RBTExST09UKSQoSU5TVEFMTERJUikvJChLQ1JPU1MpbGliCiAgCSQoUSlta2RpciAtcCAkKElOU1RBTExST09UKSQoSU5TVEFMTERJUikvJChLQ1JPU1MpYmluCkBAIC0xOCw1ICsyNSw1IEBACiArCQlsbiAtc2YgJCR7eH0gJChJTlNUQUxMUk9PVCkkKElOU1RBTExESVIpLyQoS0NST1NTKWluY2x1ZGUvIHx8IGV4aXQ7IFwKICsJZG9uZQogIAkkKFEpY3AgLXJmIHVzci9pbmNsdWRlLy4gJChJTlNUQUxMUk9PVCkkKElOU1RBTExESVIpLyQoS0NST1NTKWluY2x1ZGUvLgotIAkkKFEpY2htb2QgLVIgYStyWCAkKElOU1RBTExST09UKSQoSU5TVEFMTERJUikvJChLQ1JPU1MpaW5jbHVkZQorIAkkKFEpY2htb2QgLVIgYStyWCxnby13ICQoSU5TVEFMTFJPT1QpJChJTlNUQUxMRElSKS8kKEtDUk9TUylpbmNsdWRlCiAgCSQoUSkkKGluc3RhbGwtZGF0YSkgJChzcmN0cmVlKS9rbGNjL2tsY2MuMSAkKElOU1RBTExST09UKSQobWFuZGlyKS9tYW4xLyQoS0NST1NTKWtsY2MuMQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L3N0YWdpbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvc3RhZ2luZy5wYXRjaAppbmRleCBjMDFjNzEyLi41YzdhNjYyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvc3RhZ2luZy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvc3RhZ2luZy5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gMTg5MjA3OWI4MjdjZjhmODMxNjMwNWI2ZDZlMDk4NWRiODI0NDFhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRob21hcyBLdW56ZSA8dGhvbW15Y2hlY2tAZ214LmRlPgorRGF0ZTogU2F0LCA2IEF1ZyAyMDExIDA1OjMwOjE0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIGtsaWJjOiBpbml0aWFsIGNvbW1pdCBvZiB2ZXJzaW9uIDEuNS4yNAorCiBQYXRjaCB3YXMgaW1wb3J0ZWQgZnJvbSB0aGUgT3BlbkVtYmVkZGVkIGdpdCBzZXJ2ZXIKIChnaXQ6Ly9naXQub3BlbmVtYmVkZGVkLm9yZy9vcGVuZW1iZWRkZWQpCiBhcyBvZiBjb21taXQgaWQgZWVmYjk5YTMxM2JiY2M4ZjM0YzhiMzJiZjBjNWFhMmRkMjU4MDczNQpAQCAtNiwxMSArMTEsMjUgQEAKIE1pbm9yIGVkaXRzIGZvbGxvd2luZyB1cHN0cmVhbSBjaGFuZ2VzCiBTaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CiAKLUluZGV4OiBrbGliYy0xLjUuMjQvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAkyMDExLTA3LTI3IDE1OjUwOjUzLjAwMDAwMDAwMCArMDIwMAotKysrIGIvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAkyMDExLTA4LTAxIDAwOjAzOjAzLjAwMDAwMDAwMCArMDIwMAotQEAgLTg4LDEzICs4OCwxMCBAQAorLS0tCisgc2NyaXB0cy9LYnVpbGQuaW5zdGFsbCAgICB8IDQgLS0tLQorIHVzci9kYXNoL0tidWlsZCAgICAgICAgICAgfCAyIC0tCisgdXNyL2d6aXAvS2J1aWxkICAgICAgICAgICB8IDIgLS0KKyB1c3Iva2luaXQvS2J1aWxkICAgICAgICAgIHwgMiAtLQorIHVzci9raW5pdC9mc3R5cGUvS2J1aWxkICAgfCAyIC0tCisgdXNyL2tpbml0L2lwY29uZmlnL0tidWlsZCB8IDIgLS0KKyB1c3Iva2luaXQvbmZzbW91bnQvS2J1aWxkIHwgMiAtLQorIHVzci9raW5pdC9yZXN1bWUvS2J1aWxkICAgfCAyIC0tCisgdXNyL2tpbml0L3J1bi1pbml0L0tidWlsZCB8IDIgLS0KKyB1c3Iva2xpYmMvS2J1aWxkICAgICAgICAgIHwgMiAtLQorIHVzci91dGlscy9LYnVpbGQgICAgICAgICAgfCAyIC0tCisgMTEgZmlsZXMgY2hhbmdlZCwgMjQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpcHRzL0tidWlsZC5pbnN0YWxsIGIvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAoraW5kZXggZDMyYThhNS4uZmRhNjk5ZCAxMDA2NDQKKy0tLSBhL3NjcmlwdHMvS2J1aWxkLmluc3RhbGwKKysrKyBiL3NjcmlwdHMvS2J1aWxkLmluc3RhbGwKK0BAIC04OCwxOSArODgsMTUgQEAgZWxzZQogIGhlYWRlcjoKICAJJChRKWVjaG8gIiAgSU5TVEFMTCBoZWFkZXJzICsgbWFuIHBhZ2VzIHRvICQoSU5TVEFMTFJPT1QpJChJTlNUQUxMRElSKSIKICAJJChRKW1rZGlyIC1wICQoSU5TVEFMTFJPT1QpJChiaW5kaXIpCkBAIC0yNCwxMTkgKzQzLDEwNyBAQAogIAkkKFEpZm9yIHggaW4gLi4vLi4vLi4vaW5jbHVkZS9hc20gLi4vLi4vLi4vaW5jbHVkZS9hc20tZ2VuZXJpYyAuLi8uLi8uLi9pbmNsdWRlL2xpbnV4IC4uLy4uLy4uL2luY2x1ZGUvbXRkOyBkbyBcCiAgCQlsbiAtc2YgJCR7eH0gJChJTlNUQUxMUk9PVCkkKElOU1RBTExESVIpLyQoS0NST1NTKWluY2x1ZGUvIHx8IGV4aXQ7IFwKICAJZG9uZQotQEAgLTEwMyw3ICsxMDAsNiBAQAotIAlkb25lCiAgCSQoUSljcCAtcmYgdXNyL2luY2x1ZGUvLiAkKElOU1RBTExST09UKSQoSU5TVEFMTERJUikvJChLQ1JPU1MpaW5jbHVkZS8uCiAgCSQoUSljaG1vZCAtUiBhK3JYLGdvLXcgJChJTlNUQUxMUk9PVCkkKElOU1RBTExESVIpLyQoS0NST1NTKWluY2x1ZGUKIC0JJChRKSQoaW5zdGFsbC1kYXRhKSAkKHNyY3RyZWUpL2tsY2Mva2xjYy4xICQoSU5TVEFMTFJPT1QpJChtYW5kaXIpL21hbjEvJChLQ1JPU1Mpa2xjYy4xCiAgCSQoUSkkKGluc3RhbGwtYmluKSAkKG9ianRyZWUpL2tsY2MvJChLQ1JPU1Mpa2xjYyAkKElOU1RBTExST09UKSQoYmluZGlyKQogIAogIGZvb3RlcjogaGVhZGVyCi0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL2Rhc2gvS2J1aWxkCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gYS91c3IvZGFzaC9LYnVpbGQJMjAxMS0wNy0yNyAxNTo1MDo1My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3Vzci9kYXNoL0tidWlsZAkyMDExLTA4LTAxIDAwOjA3OjU2LjAwMDAwMDAwMCArMDIwMAotQEAgLTkyLDUgKzkyLDMgQEAKK2RpZmYgLS1naXQgYS91c3IvZGFzaC9LYnVpbGQgYi91c3IvZGFzaC9LYnVpbGQKK2luZGV4IDNhOThjMWYuLjFhNjkyMGEgMTAwNjQ0CistLS0gYS91c3IvZGFzaC9LYnVpbGQKKysrKyBiL3Vzci9kYXNoL0tidWlsZAorQEAgLTkyLDUgKzkyLDMgQEAgJChvYmopL3N5bnRheC5jOiAkKG9iaikvbWtzeW50YXgKICAkKG9iaikvc3ludGF4Lmg6ICQob2JqKS9zeW50YXguYwogIAkkKFEpOgogIAogLSMgVGFyZ2V0cyB0byBpbnN0YWxsCiAtaW5zdGFsbC15IDo9IHNoLnNoYXJlZAotCi1JbmRleDoga2xpYmMtMS41LjI0L3Vzci9nemlwL0tidWlsZAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvdXNyL2d6aXAvS2J1aWxkCTIwMTEtMDctMjcgMTU6NTA6NTMuMDAwMDAwMDAwICswMjAwCi0rKysgYi91c3IvZ3ppcC9LYnVpbGQJMjAxMS0wOC0wMSAwMDowNjozOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yMSw1ICsyMSwzIEBACitkaWZmIC0tZ2l0IGEvdXNyL2d6aXAvS2J1aWxkIGIvdXNyL2d6aXAvS2J1aWxkCitpbmRleCA5YmJmMGE0Li5jNDk3ZDAyIDEwMDY0NAorLS0tIGEvdXNyL2d6aXAvS2J1aWxkCisrKysgYi91c3IvZ3ppcC9LYnVpbGQKK0BAIC0yMSw1ICsyMSwzIEBAICQob2JqKS9ndW56aXAgJChvYmopL3pjYXQ6ICQob2JqKS9nemlwCiAgIyBDbGVhbmluZwogIHRhcmdldHMgOj0gZ3ppcCBnemlwLmcgZ3VuemlwIHpjYXQKICAKIC0jIFRhcmdldHMgdG8gaW5zdGFsbAogLWluc3RhbGwteSA6PSBnemlwIGd1bnppcCB6Y2F0Ci0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL2tpbml0L2ZzdHlwZS9LYnVpbGQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhL3Vzci9raW5pdC9mc3R5cGUvS2J1aWxkCTIwMTEtMDctMjcgMTU6NTA6NTMuMDAwMDAwMDAwICswMjAwCi0rKysgYi91c3Iva2luaXQvZnN0eXBlL0tidWlsZAkyMDExLTA4LTAxIDAwOjA5OjEyLjAwMDAwMDAwMCArMDIwMAotQEAgLTIxLDUgKzIxLDMgQEAKLSAjIENsZWFuaW5nCi0gY2xlYW4tZGlycyA6PSBzdGF0aWMgc2hhcmVkCi0gCi0tIyBpbnN0YWxsIGJpbmFyeQotLWluc3RhbGwteSA6PSAkKHNoYXJlZC15KQotCi1JbmRleDoga2xpYmMtMS41LjI0L3Vzci9raW5pdC9pcGNvbmZpZy9LYnVpbGQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhL3Vzci9raW5pdC9pcGNvbmZpZy9LYnVpbGQJMjAxMS0wNy0yNyAxNTo1MDo1My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3Vzci9raW5pdC9pcGNvbmZpZy9LYnVpbGQJMjAxMS0wOC0wMSAwMDoxMDo1Mi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yNyw1ICsyNywzIEBACi0gIyBDbGVhbmluZwotIGNsZWFuLWRpcnMgOj0gc3RhdGljIHNoYXJlZAotIAotLSMgaW5zdGFsbCBiaW5hcnkKLS1pbnN0YWxsLXkgOj0gJChzaGFyZWQteSkKLQotSW5kZXg6IGtsaWJjLTEuNS4yNC91c3Iva2luaXQvS2J1aWxkCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gYS91c3Iva2luaXQvS2J1aWxkCTIwMTEtMDctMjcgMTU6NTA6NTMuMDAwMDAwMDAwICswMjAwCi0rKysgYi91c3Iva2luaXQvS2J1aWxkCTIwMTEtMDgtMDEgMDA6MjA6MTguMDAwMDAwMDAwICswMjAwCi1AQCAtMzMsNSArMzMsMyBAQAorZGlmZiAtLWdpdCBhL3Vzci9raW5pdC9LYnVpbGQgYi91c3Iva2luaXQvS2J1aWxkCitpbmRleCA1MzIwMTI3Li5mN2ZkY2NkIDEwMDY0NAorLS0tIGEvdXNyL2tpbml0L0tidWlsZAorKysrIGIvdXNyL2tpbml0L0tidWlsZAorQEAgLTMzLDUgKzMzLDMgQEAgdGFyZ2V0cyArPSBraW5pdCBraW5pdC5nIGtpbml0LnNoYXJlZCBraW5pdC5zaGFyZWQuZwogIHN1YmRpci0gOj0gZnN0eXBlIGlwY29uZmlnIG5mc21vdW50IHJlc3VtZSBydW4taW5pdAogIAogIAogLSMgaW5zdGFsbCBiaW5hcnkKIC1pbnN0YWxsLXkgOj0ga2luaXQga2luaXQuc2hhcmVkCi0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL2tpbml0L25mc21vdW50L0tidWlsZAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvdXNyL2tpbml0L25mc21vdW50L0tidWlsZAkyMDExLTA3LTI3IDE1OjUwOjUzLjAwMDAwMDAwMCArMDIwMAotKysrIGIvdXNyL2tpbml0L25mc21vdW50L0tidWlsZAkyMDExLTA4LTAxIDAwOjEyOjUyLjAwMDAwMDAwMCArMDIwMAotQEAgLTIzLDUgKzIzLDMgQEAKK2RpZmYgLS1naXQgYS91c3Iva2luaXQvZnN0eXBlL0tidWlsZCBiL3Vzci9raW5pdC9mc3R5cGUvS2J1aWxkCitpbmRleCA5YjIwZGIxLi4zNjc2MTFkIDEwMDY0NAorLS0tIGEvdXNyL2tpbml0L2ZzdHlwZS9LYnVpbGQKKysrKyBiL3Vzci9raW5pdC9mc3R5cGUvS2J1aWxkCitAQCAtMjEsNSArMjEsMyBAQCBzaGFyZWQvZnN0eXBlLXkgOj0gJChvYmpzKQorICMgQ2xlYW5pbmcKKyBjbGVhbi1kaXJzIDo9IHN0YXRpYyBzaGFyZWQKKyAKKy0jIGluc3RhbGwgYmluYXJ5CistaW5zdGFsbC15IDo9ICQoc2hhcmVkLXkpCitkaWZmIC0tZ2l0IGEvdXNyL2tpbml0L2lwY29uZmlnL0tidWlsZCBiL3Vzci9raW5pdC9pcGNvbmZpZy9LYnVpbGQKK2luZGV4IDdmOGQxODEuLmViMWQ0NzIgMTAwNjQ0CistLS0gYS91c3Iva2luaXQvaXBjb25maWcvS2J1aWxkCisrKysgYi91c3Iva2luaXQvaXBjb25maWcvS2J1aWxkCitAQCAtMjcsNSArMjcsMyBAQCBzaGFyZWQvaXBjb25maWcteSA6PSAkKG9ianMpCisgIyBDbGVhbmluZworIGNsZWFuLWRpcnMgOj0gc3RhdGljIHNoYXJlZAorIAorLSMgaW5zdGFsbCBiaW5hcnkKKy1pbnN0YWxsLXkgOj0gJChzaGFyZWQteSkKK2RpZmYgLS1naXQgYS91c3Iva2luaXQvbmZzbW91bnQvS2J1aWxkIGIvdXNyL2tpbml0L25mc21vdW50L0tidWlsZAoraW5kZXggNDYxZTZmMy4uYmEzMTcwOCAxMDA2NDQKKy0tLSBhL3Vzci9raW5pdC9uZnNtb3VudC9LYnVpbGQKKysrKyBiL3Vzci9raW5pdC9uZnNtb3VudC9LYnVpbGQKK0BAIC0yMyw1ICsyMywzIEBAIGR1bW15cG1hcC15IDo9IGR1bW15cG1hcF90ZXN0Lm8KICAKICBjbGVhbi1kaXJzIDo9IHN0YXRpYyBzaGFyZWQKICAKIC0jIEluc3RhbGwgYmluYXJ5CiAtaW5zdGFsbC15IDo9ICQoc2hhcmVkLXkpCi0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL2tpbml0L3Jlc3VtZS9LYnVpbGQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhL3Vzci9raW5pdC9yZXN1bWUvS2J1aWxkCTIwMTEtMDctMjcgMTU6NTA6NTMuMDAwMDAwMDAwICswMjAwCi0rKysgYi91c3Iva2luaXQvcmVzdW1lL0tidWlsZAkyMDExLTA4LTAxIDAwOjEzOjUxLjAwMDAwMDAwMCArMDIwMAotQEAgLTI2LDUgKzI2LDMgQEAKK2RpZmYgLS1naXQgYS91c3Iva2luaXQvcmVzdW1lL0tidWlsZCBiL3Vzci9raW5pdC9yZXN1bWUvS2J1aWxkCitpbmRleCAwMzQxOTVkLi5jMTM0MmUxIDEwMDY0NAorLS0tIGEvdXNyL2tpbml0L3Jlc3VtZS9LYnVpbGQKKysrKyBiL3Vzci9raW5pdC9yZXN1bWUvS2J1aWxkCitAQCAtMjYsNSArMjYsMyBAQCBzaGFyZWQvcmVzdW1lLWxpYiA6PSAuLi9saWIuYQogICMgQ2xlYW5pbmcKICBjbGVhbi1kaXJzIDo9IHN0YXRpYyBzaGFyZWQKICAKIC0jIGluc3RhbGwgYmluYXJ5CiAtaW5zdGFsbC15IDo9ICQoc2hhcmVkLXkpCi0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL2tpbml0L3J1bi1pbml0L0tidWlsZAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvdXNyL2tpbml0L3J1bi1pbml0L0tidWlsZAkyMDExLTA3LTI3IDE1OjUwOjUzLjAwMDAwMDAwMCArMDIwMAotKysrIGIvdXNyL2tpbml0L3J1bi1pbml0L0tidWlsZAkyMDExLTA4LTAxIDAwOjE0OjQxLjAwMDAwMDAwMCArMDIwMAotQEAgLTI1LDUgKzI1LDMgQEAKK2RpZmYgLS1naXQgYS91c3Iva2luaXQvcnVuLWluaXQvS2J1aWxkIGIvdXNyL2tpbml0L3J1bi1pbml0L0tidWlsZAoraW5kZXggZjc4MzJiNy4uYzE1M2IwYSAxMDA2NDQKKy0tLSBhL3Vzci9raW5pdC9ydW4taW5pdC9LYnVpbGQKKysrKyBiL3Vzci9raW5pdC9ydW4taW5pdC9LYnVpbGQKK0BAIC0zMCw1ICszMCwzIEBAIHNoYXJlZC9ydW4taW5pdC1saWIgOj0gLi4vbGliLmEKICAjIENsZWFuaW5nCiAgY2xlYW4tZGlycyA6PSBzdGF0aWMgc2hhcmVkCiAgCiAtIyBpbnN0YWxsIGJpbmFyeQogLWluc3RhbGwteSA6PSAkKHNoYXJlZC15KQotCi1JbmRleDoga2xpYmMtMS41LjI0L3Vzci9rbGliYy9LYnVpbGQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhL3Vzci9rbGliYy9LYnVpbGQJMjAxMS0wNy0yNyAxNTo1MDo1My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3Vzci9rbGliYy9LYnVpbGQJMjAxMS0wOC0wMSAwMDoxODoxMS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xNzcsNSArMTc3LDMgQEAKK2RpZmYgLS1naXQgYS91c3Iva2xpYmMvS2J1aWxkIGIvdXNyL2tsaWJjL0tidWlsZAoraW5kZXggZWJhNmFkZC4uOThjYWYyZSAxMDA2NDQKKy0tLSBhL3Vzci9rbGliYy9LYnVpbGQKKysrKyBiL3Vzci9rbGliYy9LYnVpbGQKK0BAIC0xODUsNSArMTg1LDMgQEAgaW5zdGFsbC1ydWxlOgogIAkgICAgICAgICAgJChJTlNUQUxMUk9PVCkkKElOU1RBTExESVIpLyQoS0xJQkNDUk9TUylsaWIpKQogIAkkKFEpJChpbnN0YWxsLWxpYikgJChvYmopL2tsaWJjLSQoU09MSUJIQVNIKS5zbyBcCiAgCSAgICAgICAgICAgICAgICAgICAgICAkKElOU1RBTExST09UKSQoSU5TVEFMTERJUikvJChLTElCQ0NST1NTKWxpYgogLQkkKFEpJChpbnN0YWxsLWxpYikgJChvYmopL2tsaWJjLSQoU09MSUJIQVNIKS5zbyBcCiAtCSAgICAgICAgICAgICAgICAgICAgICAkKElOU1RBTExST09UKSQoU0hMSUJESVIpCi0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL3V0aWxzL0tidWlsZAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvdXNyL3V0aWxzL0tidWlsZAkyMDExLTA3LTI3IDE1OjUwOjUzLjAwMDAwMDAwMCArMDIwMAotKysrIGIvdXNyL3V0aWxzL0tidWlsZAkyMDExLTA4LTAxIDAwOjE5OjEzLjAwMDAwMDAwMCArMDIwMAotQEAgLTcyLDUgKzcyLDMgQEAKK2RpZmYgLS1naXQgYS91c3IvdXRpbHMvS2J1aWxkIGIvdXNyL3V0aWxzL0tidWlsZAoraW5kZXggMDVhYTc5NC4uNjdkOTQ4NiAxMDA2NDQKKy0tLSBhL3Vzci91dGlscy9LYnVpbGQKKysrKyBiL3Vzci91dGlscy9LYnVpbGQKK0BAIC03Miw1ICs3MiwzIEBAICQob2JqKS9zaGFyZWQvcmVib290ICQob2JqKS9zaGFyZWQvcG93ZXJvZmY6ICQob2JqKS9zaGFyZWQvaGFsdAogICMgQ2xlYW4gZGVsZXRlcyB0aGUgc3RhdGljIGFuZCBzaGFyZWQgZGlyCiAgY2xlYW4tZGlycyA6PSBzdGF0aWMgc2hhcmVkCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtdXRpbHMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLXV0aWxzLmluYwppbmRleCA5MDE0ZjUyLi43ZGYzM2Q2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtdXRpbHMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy11dGlscy5pbmMKQEAgLTQ4LDcgKzQ4LDcgQEAKICAgICBsbiAtcyBnemlwICR7RH0ke2Jhc2VfYmluZGlyfS96Y2F0CiB9CiAKLUVYVFJBX0tMSUJDX0RFUFMgPSAiJHtAYmFzZV9jb25kaXRpb25hbCgnS0xJQkNfVVRJTFNfVkFSSUFOVCcsICdzaGFyZWQnLCAnJHtUSElTX0xJQktMSUJDfScsICcnLCBkKX0iCitFWFRSQV9LTElCQ19ERVBTID0gIiR7QG9lLnV0aWxzLmNvbmRpdGlvbmFsKCdLTElCQ19VVElMU19WQVJJQU5UJywgJ3NoYXJlZCcsICcke1RISVNfTElCS0xJQkN9JywgJycsIGQpfSIKIAogUEFDS0FHRVNfRFlOQU1JQyArPSAiXiR7S0xJQkNfVVRJTFNfUEtHTkFNRX0tLioiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDEtTWFrZWZpbGUtYnVpbGQtdWJpLXV0aWxzLW9ubHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDAxLU1ha2VmaWxlLWJ1aWxkLXViaS11dGlscy1vbmx5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhYzJjY2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDAxLU1ha2VmaWxlLWJ1aWxkLXViaS11dGlscy1vbmx5LnBhdGNoCkBAIC0wLDAgKzEsODcgQEAKK0Zyb20gMWM5ODllNGMzNmQwYmY3NmFiNDQ0Zjk4NGJjNzNiOThlZWFjZDAzZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KK0RhdGU6IFN1biwgMjkgSnVuIDIwMTQgMDA6MzI6MjkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzldIE1ha2VmaWxlOiBidWlsZCB1YmktdXRpbHMgb25seQorCitXZSBidWlsZCBhbGwgdGhlIHN0YXRpYyB1YmktdXRpbHMgYnV0IGFjdHVhbGx5IG9ubHkgdWJpYXR0YWNoIGlzIG5lZWRlZCBpbgorYSBtaW5pbWFsaXN0aWMgaW5pdHJhbWZzIGZvciB0aGUgbW91bnQgb2YgdWJpIHZvbHVtZXMuCisKK01vcmUgZml4ZXMgYXJlIG5lZWRlZCBpbiBvcmRlciB0byBidWlsZCB0aGUgZnVsbCBtdGQtdXRpbHMuCitUaGUgZmlyc3QgaXNzdWUgaXM6CisKK3wgbWtmcy5qZmZzMi5jOjY0OjIwOiBmYXRhbCBlcnJvcjogbGliZ2VuLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK3wgICNpbmNsdWRlIDxsaWJnZW4uaD4KKworUmVtb3ZpbmcgdGhlIGluY2x1ZGUgdGhlbiB0aGUgc2Vjb25kIGVycm9yIGlzOgorCit8IG1rZnMuamZmczIuYzoxNTcwOjIyOiBlcnJvcjogJ19TQ19QQUdFU0laRScgdW5kZWNsYXJlZAorfCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCit8ICAgcGFnZV9zaXplID0gc3lzY29uZihfU0NfUEFHRVNJWkUpOworCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CistLS0KKyBNYWtlZmlsZSB8IDI2ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCitpbmRleCAzY2U4NTg3Li44Yjc5ZjcxIDEwMDY0NAorLS0tIGEvTWFrZWZpbGUKKysrKyBiL01ha2VmaWxlCitAQCAtMTYsMjggKzE2LDExIEBAIGVuZGlmCisgCisgVEVTVFMgPSB0ZXN0cworIAorLU1URF9CSU5TID0gXAorLQlmdGxfZm9ybWF0IGZsYXNoX2VyYXNlIG5hbmRkdW1wIGRvY19sb2FkYmlvcyBcCistCWZ0bF9jaGVjayBta2ZzLmpmZnMyIGZsYXNoX2xvY2sgZmxhc2hfdW5sb2NrIFwKKy0JZmxhc2hfb3RwX2luZm8gZmxhc2hfb3RwX2R1bXAgZmxhc2hfb3RwX2xvY2sgZmxhc2hfb3RwX3dyaXRlIFwKKy0JbXRkX2RlYnVnIGZsYXNoY3AgbmFuZHdyaXRlIG5hbmR0ZXN0IG10ZHBhcnQgXAorLQlqZmZzMmR1bXAgXAorLQluZnRsZHVtcCBuZnRsX2Zvcm1hdCBkb2NmZGlzayBcCistCXJmZGR1bXAgcmZkZm9ybWF0IFwKKy0Jc2VydmVfaW1hZ2UgcmVjdl9pbWFnZSBcCistCXN1bXRvb2wgamZmczJyZWFkZXIKKyBVQklfQklOUyA9IFwKKyAJdWJpdXBkYXRldm9sIHViaW1rdm9sIHViaXJtdm9sIHViaWNyYzMyIHViaW5mbyB1YmlhdHRhY2ggXAorIAl1YmlkZXRhY2ggdWJpbml6ZSB1Ymlmb3JtYXQgdWJpcmVuYW1lIG10ZGluZm8gdWJpcnN2b2wgdWJpYmxvY2sKKyAKKy1CSU5TID0gJChNVERfQklOUykKKy1CSU5TICs9IG1rZnMudWJpZnMvbWtmcy51YmlmcworLUJJTlMgKz0gJChhZGRwcmVmaXggdWJpLXV0aWxzLywkKFVCSV9CSU5TKSkKKy1TQ1JJUFRTID0gZmxhc2hfZXJhc2VhbGwKKy0KKy1UQVJHRVRTID0gJChCSU5TKQorLVRBUkdFVFMgKz0gbGliL2xpYm10ZC5hCistVEFSR0VUUyArPSB1YmktdXRpbHMvbGlidWJpLmEKKytCSU5TID0gJChhZGRwcmVmaXggdWJpLXV0aWxzLywkKFVCSV9CSU5TKSkKKyAKKyBPQkpERVBTID0gJChCVUlMRERJUikvaW5jbHVkZS92ZXJzaW9uLmgKKyAKK0BAIC02MSwxMiArNDQsOSBAQCBlbmRpZgorIAlybSAtZiAkKEJVSUxERElSKS9pbmNsdWRlL3ZlcnNpb24uaAorIAkkKE1BS0UpIC1DICQoVEVTVFMpIGNsZWFuCisgCistaW5zdGFsbDo6ICQoYWRkcHJlZml4ICQoQlVJTERESVIpLywke0JJTlN9KSAke1NDUklQVFN9CisraW5zdGFsbDo6ICQoYWRkcHJlZml4ICQoQlVJTERESVIpLywke0JJTlN9KQorIAlta2RpciAtcCAke0RFU1RESVJ9LyR7U0JJTkRJUn0KKyAJaW5zdGFsbCAtbSAwNzU1ICReICR7REVTVERJUn0vJHtTQklORElSfS8KKy0JbWtkaXIgLXAgJHtERVNURElSfS8ke01BTkRJUn0vbWFuMQorLQlpbnN0YWxsIC1tIDA2NDQgbWtmcy5qZmZzMi4xICR7REVTVERJUn0vJHtNQU5ESVJ9L21hbjEvCistCS1nemlwIC05ZiAke0RFU1RESVJ9LyR7TUFORElSfS9tYW4xLyouMQorIAorIHRlc3RzOjoKKyAJJChNQUtFKSAtQyAkKFRFU1RTKQorQEAgLTkxLDggKzcxLDYgQEAgTERMSUJTX21rZnMuamZmczIgID0gLWx6ICQoTFpPTERMSUJTKQorIExERkxBR1NfamZmczJyZWFkZXIgPSAkKFpMSUJMREZMQUdTKSAkKExaT0xERkxBR1MpCisgTERMSUJTX2pmZnMycmVhZGVyICA9IC1seiAkKExaT0xETElCUykKKyAKKy0kKGZvcmVhY2ggdiwkKE1URF9CSU5TKSwkKGV2YWwgJChjYWxsIG1rZGVwLCwkKHYpKSkpCistCisgIworICMgQ29tbW9uIGxpYm10ZAorICMKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwMi1jb21tb24ubWstZm9yLWtsaWJjLUNDLWlzLWtsY2MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDAyLWNvbW1vbi5tay1mb3Ita2xpYmMtQ0MtaXMta2xjYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjNkMTFmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwMi1jb21tb24ubWstZm9yLWtsaWJjLUNDLWlzLWtsY2MucGF0Y2gKQEAgLTAsMCArMSwyNyBAQAorRnJvbSA4OWM3NmJiZTgyYTIwMjlhMjViMDY1NGViMGExZDBiMjJkNmU2ODc3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorRGF0ZTogU3VuLCAyOSBKdW4gMjAxNCAwMDozNzoyOCArMDIwMAorU3ViamVjdDogW1BBVENIIDIvOV0gY29tbW9uLm1rOiBmb3Iga2xpYmMgJChDQykgaXMga2xjYworCitEbyBub3QgaGFyZGNvZGU6IGFzc2lnbiB0aGUgdmFsdWUgdG8gdGhlIHZhcmlhYmxlIGlmIGl0IGlzIG5vdCBhbHJlYWR5IGRlZmluZWQuCisKK1Vwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KKy0tLQorIGNvbW1vbi5tayB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2NvbW1vbi5tayBiL2NvbW1vbi5taworaW5kZXggYmE4NzM3Ny4uMTI2ZDExYSAxMDA2NDQKKy0tLSBhL2NvbW1vbi5taworKysrIGIvY29tbW9uLm1rCitAQCAtMSw0ICsxLDQgQEAKKy1DQyA6PSAkKENST1NTKWdjYworK0NDID89ICQoQ1JPU1MpZ2NjCisgQVIgOj0gJChDUk9TUylhcgorIFJBTkxJQiA6PSAkKENST1NTKXJhbmxpYgorIAorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDAzLWxpYnViaS5jLWFkZC1rbGliYy1zcGVjaWZpYy1maXhlcy1mb3ItaW9jdGwucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDAzLWxpYnViaS5jLWFkZC1rbGliYy1zcGVjaWZpYy1maXhlcy1mb3ItaW9jdGwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFkNGE1YgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDMtbGlidWJpLmMtYWRkLWtsaWJjLXNwZWNpZmljLWZpeGVzLWZvci1pb2N0bC5wYXRjaApAQCAtMCwwICsxLDc2IEBACitGcm9tIGZlY2JiNzA1NmQ2MjFhMzBmNzEwNmU2N2Y1ZmUyMDk3NjM1NzFiNzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CitEYXRlOiBTdW4sIDI5IEp1biAyMDE0IDAwOjQwOjE1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMy85XSBsaWJ1YmkuYzogYWRkIGtsaWJjIHNwZWNpZmljIGZpeGVzIGZvciBpb2N0bAorCitGaXJzdCBpc3N1ZSBpcyB0aGF0IGlvY3RsKCkgaW4ga2xpYmMgZG9lc24ndCBleHBlY3QgYSBjb25zdGFudCBhcyBhcmczLgorU2Vjb25kIGlzc3VlIGlzIHRoYXQgYXJnMyBpbiBrbGliYyBpb2N0bCgpIGltcGxlbWVudGF0aW9uIGlzIG5vdCBvcHRpb25hbC4KKworRml4ZXM6CisKK3wgdWJpLXV0aWxzL2xpYnViaS5jOiBJbiBmdW5jdGlvbiAnZG9fYXR0YWNoJzoKK3wgdWJpLXV0aWxzL2xpYnViaS5jOjY5ODo4OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDMgb2YgJ2lvY3RsJyBkaXNjYXJkcworfCAnY29uc3QnIHF1YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKK3wgICByZXQgPSBpb2N0bChmZCwgVUJJX0lPQ0FUVCwgcik7Cit8ICAgICAgICAgXgorfCBJbiBmaWxlIGluY2x1ZGVkIGZyb20gdWJpLXV0aWxzL2xpYnViaS5jOjMyOjA6Cit8IC4uLi9saWIva2xpYmMvaW5jbHVkZS9zeXMvaW9jdGwuaDoxNToxNDogbm90ZTogZXhwZWN0ZWQgJ3ZvaWQgKicgYnV0IGFyZ3VtZW50Cit8IGlzIG9mIHR5cGUgJ2NvbnN0IHN0cnVjdCB1YmlfYXR0YWNoX3JlcSAqJworfCAgX19leHRlcm4gaW50IGlvY3RsKGludCwgaW50LCB2b2lkICopOworfCAgICAgICAgICAgICAgIF4KKworfCB1YmktdXRpbHMvbGlidWJpLmM6IEluIGZ1bmN0aW9uICd1Ymlfdm9sX2Jsb2NrX2NyZWF0ZSc6Cit8IHViaS11dGlscy9saWJ1YmkuYzoxMTE4Ojk6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiAnaW9jdGwnCit8ICAgcmV0dXJuIGlvY3RsKGZkLCBVQklfSU9DVk9MQ1JCTEspOworfCAgICAgICAgICBeCit8IEluIGZpbGUgaW5jbHVkZWQgZnJvbSB1YmktdXRpbHMvbGlidWJpLmM6MzI6MDoKK3wgLi4uL2xpYi9rbGliYy9pbmNsdWRlL3N5cy9pb2N0bC5oOjE1OjE0OiBub3RlOiBkZWNsYXJlZCBoZXJlCit8ICBfX2V4dGVybiBpbnQgaW9jdGwoaW50LCBpbnQsIHZvaWQgKik7Cit8ICAgICAgICAgICAgICAgXgorfCB1YmktdXRpbHMvbGlidWJpLmM6IEluIGZ1bmN0aW9uICd1Ymlfdm9sX2Jsb2NrX3JlbW92ZSc6Cit8IHViaS11dGlscy9saWJ1YmkuYzoxMTIzOjk6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiAnaW9jdGwnCit8ICAgcmV0dXJuIGlvY3RsKGZkLCBVQklfSU9DVk9MUk1CTEspOworfCAgICAgICAgICBeCit8IEluIGZpbGUgaW5jbHVkZWQgZnJvbSB1YmktdXRpbHMvbGlidWJpLmM6MzI6MDoKK3wgLi4uL3Vzci9saWIva2xpYmMvaW5jbHVkZS9zeXMvaW9jdGwuaDoxNToxNDogbm90ZTogZGVjbGFyZWQgaGVyZQorfCAgX19leHRlcm4gaW50IGlvY3RsKGludCwgaW50LCB2b2lkICopOworfCAgICAgICAgICAgICAgIF4KKworVXBzdHJlYW0tU3RhdHVzOiBBY2NlcHRlZAorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CistLS0KKyB1YmktdXRpbHMvbGlidWJpLmMgfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS91YmktdXRpbHMvbGlidWJpLmMgYi91YmktdXRpbHMvbGlidWJpLmMKK2luZGV4IDk3YzA0MzQuLjJiNDk4MzMgMTAwNjQ0CistLS0gYS91YmktdXRpbHMvbGlidWJpLmMKKysrKyBiL3ViaS11dGlscy9saWJ1YmkuYworQEAgLTY4Nyw3ICs2ODcsNyBAQCB2b2lkIGxpYnViaV9jbG9zZShsaWJ1YmlfdCBkZXNjKQorICAqIHN1Y2Nlc3MgYW5kICUtMSBpbiBjYXNlIG9mIGZhaWx1cmUuIEByLT51YmlfbnVtIGNvbnRhaW5zIG5ld2x5IGNyZWF0ZWQgVUJJCisgICogZGV2aWNlIG51bWJlci4KKyAgKi8KKy1zdGF0aWMgaW50IGRvX2F0dGFjaChjb25zdCBjaGFyICpub2RlLCBjb25zdCBzdHJ1Y3QgdWJpX2F0dGFjaF9yZXEgKnIpCisrc3RhdGljIGludCBkb19hdHRhY2goY29uc3QgY2hhciAqbm9kZSwgc3RydWN0IHViaV9hdHRhY2hfcmVxICpyKQorIHsKKyAJaW50IGZkLCByZXQ7CisgCitAQCAtMTExNSwxMiArMTExNSwxMiBAQCBpbnQgdWJpX3Jzdm9sKGxpYnViaV90IGRlc2MsIGNvbnN0IGNoYXIgKm5vZGUsIGludCB2b2xfaWQsIGxvbmcgbG9uZyBieXRlcykKKyAKKyBpbnQgdWJpX3ZvbF9ibG9ja19jcmVhdGUoaW50IGZkKQorIHsKKy0JcmV0dXJuIGlvY3RsKGZkLCBVQklfSU9DVk9MQ1JCTEspOworKwlyZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xDUkJMSywgTlVMTCk7CisgfQorIAorIGludCB1Ymlfdm9sX2Jsb2NrX3JlbW92ZShpbnQgZmQpCisgeworLQlyZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xSTUJMSyk7CisrCXJldHVybiBpb2N0bChmZCwgVUJJX0lPQ1ZPTFJNQkxLLCBOVUxMKTsKKyB9CisgCisgaW50IHViaV91cGRhdGVfc3RhcnQobGlidWJpX3QgZGVzYywgaW50IGZkLCBsb25nIGxvbmcgYnl0ZXMpCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDQtUmVzdG9yZS1jb21wYXRpYmlsaXR5LXRvLWRpZXRsaWJjLWtsaWJjLW11c2wtbGliYy1hZi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDQtUmVzdG9yZS1jb21wYXRpYmlsaXR5LXRvLWRpZXRsaWJjLWtsaWJjLW11c2wtbGliYy1hZi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjMxZmI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNC1SZXN0b3JlLWNvbXBhdGliaWxpdHktdG8tZGlldGxpYmMta2xpYmMtbXVzbC1saWJjLWFmLnBhdGNoCkBAIC0wLDAgKzEsODggQEAKK0Zyb20gYjY2OGNiNzVjYjdlNzJmZjkyMDU1MjA5MTMwZDRjZDRiM2NhY2JkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRob3JzdGVuIEdsYXNlciA8dGdAbWlyYnNkLm9yZz4KK0RhdGU6IEZyaSwgMjAgSnVuIDIwMTQgMTA6NTY6MjcgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCA0LzldIFJlc3RvcmUgY29tcGF0aWJpbGl0eSB0byBkaWV0bGliYywga2xpYmMsIG11c2wgbGliYyBhZnRlcgorIGNvbW1pdCA0ZjFiMTA4CitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0VhY2ggQyBsaWJyYXJ5IGhhcyB0aGVpciBvd24gd2F5IHRvIGRlZmluZSBvZmZfdCwgYW5kIHRoZSA8ZmVhdHVyZXMuaD4KK2hlYWRlciBpcyBub25zdGFuZGFyZCBhbmQgc3BlY2lmaWMgdG8gdGhlIEdOVSBsaWJjIGFuZCB0aG9zZSB0aGF0IGNsb25lCitpdCAodUNsaWJjKS4gRmVmZeKAmXMgZGlldGxpYmMgdXNlcyBkaWZmZXJlbnQgZmxhZ3MsIGFuZCBrbGliYyBhbHdheXMgdXNlcworYSA2NC1iaXQgb2ZmX3QgKGxpa2UgdGhlIEJTRHMpOyBtdXNsIGxpYmMgY2Fubm90IGJlIHJlY29nbmlzZWQgdXNpbmcgY3BwCitpbnN0cnVjdGlvbnMsIHNvIHdlIGFzc3VtZSA2NCBiaXQgdGhlcmUgKGFuZCBvbiB1bmtub3duIEMgbGlicmFyaWVzKSBhbmQKK2xlYXZlIGl0IHRvIHRoZSB1c2VyIHRvIHN1Ym1pdCBhIGZvbGxvdy11cCBmaXggaWYgd2UgZ3Vlc3Mgd3JvbmcuIEkgYWxzbworYWRkZWQgYSBzdGF0aWMgYXNzZXJ0aW9uIHRvIHZlcmlmeSB0aGUgNjQgYml0IGd1ZXNzIGlzIGNvcnJlY3QuCisKK0l0IHdvdWxkIGJlIHJlYWxseSBiZXR0ZXIgdXNpbmcgYSBjb25maWd1cmUgc2NyaXB0IGZvciB0aGlzIGluc3RlYWQuCisKK0ZpeGVzOgorfCAgIENDICAgICAgbGliL2xpYm10ZC5vCit8IEluIGZpbGUgaW5jbHVkZWQgZnJvbSB1YmktdXRpbHMvdWJpdXRpbHMtY29tbW9uLmM6MzU6MDoKK3wgLi9pbmNsdWRlL2NvbW1vbi5oOjI5OjIyOiBmYXRhbCBlcnJvcjogZmVhdHVyZXMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorfCAgI2luY2x1ZGUgPGZlYXR1cmVzLmg+Cit8ICAgICAgICAgICAgICAgICAgICAgICBeCit8IGNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCisKK1Vwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkCisKK1NpZ25lZC1vZmYtYnk6IFRob3JzdGVuIEdsYXNlciA8dGdAbWlyYnNkLm9yZz4KK1NpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KKy0tLQorIGluY2x1ZGUvY29tbW9uLmggfCAyNCArKysrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tb24uaCBiL2luY2x1ZGUvY29tbW9uLmgKK2luZGV4IGZiMGNhODMuLjVhMjA5NjQgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2NvbW1vbi5oCisrKysgYi9pbmNsdWRlL2NvbW1vbi5oCitAQCAtMjYsNyArMjYsOSBAQAorICNpbmNsdWRlIDxzdHJpbmcuaD4KKyAjaW5jbHVkZSA8ZmNudGwuaD4KKyAjaW5jbHVkZSA8ZXJybm8uaD4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KKysjZW5kaWYKKyAjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyAjaW5jbHVkZSAidmVyc2lvbi5oIgorIAorQEAgLTY3LDYgKzY5LDIxIEBAIGV4dGVybiAiQyIgeworICNlbmRpZgorIAorIC8qIGRlZmluZSBhIHByaW50IGZvcm1hdCBzcGVjaWZpZXIgZm9yIG9mZl90ICovCisrI2lmIGRlZmluZWQoX19LTElCQ19fKQorKy8qIGFsd2F5cyA2NCBiaXQgb24ga2xpYmMgKi8KKysjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKKysjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKKysjZWxpZiBkZWZpbmVkKF9fZGlldGxpYmNfXykKKysvKiBkZXBlbmRzIG9uIGNvbXBpbGVyIGZsYWdzIG9uIGRpZXRsaWJjICovCisrI2lmIGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIChfRklMRV9PRkZTRVRfQklUUyA9PSA2NCkKKysjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKKysjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKKysjZWxzZQorKyNkZWZpbmUgUFJJeG9mZl90ICJsIlBSSXgzMgorKyNkZWZpbmUgUFJJZG9mZl90ICJsIlBSSWQzMgorKyNlbmRpZgorKyNlbGlmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisrLyogZGVwZW5kcyBvbiBjb21waWxlciBmbGFncyBvbiBnbGliYyBhbmQgdUNsaWJjICovCisgI2lmZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKyAjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKKyAjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKK0BAIC03NCw2ICs5MSwxMyBAQCBleHRlcm4gIkMiIHsKKyAjZGVmaW5lIFBSSXhvZmZfdCAibCJQUkl4MzIKKyAjZGVmaW5lIFBSSWRvZmZfdCAibCJQUklkMzIKKyAjZW5kaWYKKysjZWxzZQorKy8qIHVua25vd24gbGliYyBvciBtdXNsICovCisrI2RlZmluZSBQUkl4b2ZmX3QgUFJJeDY0CisrI2RlZmluZSBQUklkb2ZmX3QgUFJJZDY0CisrLyogdmVyaWZ5IG91ciBndWVzcyBvZiA2NCBiaXQgaXMgY29ycmVjdCAqLworK3N0YXRpYyBjaGFyIF9fUFJJeG9mZl90X3N0YXRpY19hc3NlcnRbc2l6ZW9mKG9mZl90KSA9PSA4ID8gMSA6IC0xXTsKKysjZW5kaWYKKyAKKyAvKiBWZXJib3NlIG1lc3NhZ2VzICovCisgI2RlZmluZSBiYXJldmVyYm9zZSh2ZXJib3NlLCBmbXQsIC4uLikgZG8geyAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNS1jb21tb24uaC1tb3JlLXdvcmthcm91bmRzLWZvci1rbGliYy1jb21wYXRpYmlsaXR5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNS1jb21tb24uaC1tb3JlLXdvcmthcm91bmRzLWZvci1rbGliYy1jb21wYXRpYmlsaXR5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMDlhNzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDA1LWNvbW1vbi5oLW1vcmUtd29ya2Fyb3VuZHMtZm9yLWtsaWJjLWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAsMCArMSw1MiBAQAorRnJvbSA1ZDRhNjZiNTAyMDAzZWYzODVkYWIzMWExNzAxMjI0NjQwN2U3MzY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorRGF0ZTogU3VuLCAyOSBKdW4gMjAxNCAwMDo0NDowMyArMDIwMAorU3ViamVjdDogW1BBVENIIDUvOV0gY29tbW9uLmg6IG1vcmUgd29ya2Fyb3VuZHMgZm9yIGtsaWJjIGNvbXBhdGliaWxpdHkKKworUGF0Y2ggaXMgYWRkcmVzc2luZyB0d28gaXNzdWVzOgorKiBGaXJzdCwgIEtsaWJjIGRvZXNuJ3QgaGF2ZSBycG1hdGNoKCkuCisqIFNlY29uZCwgS2xpYmMgbGFja3MgZ2V0bGluZSgpCisKK0ZpeGVzOgorfCAgIExEICAgICAgdWJpLXV0aWxzL3ViaWZvcm1hdAorfCAuLi4vZ2l0L3ViaS11dGlscy91Ymlmb3JtYXQubzogSW4gZnVuY3Rpb24gYHByb21wdCc6Cit8IC4uLi9naXQvLi9pbmNsdWRlL2NvbW1vbi5oOjE1NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZ2V0bGluZScKK3wgLi4uL2dpdC8uL2luY2x1ZGUvY29tbW9uLmg6MTY0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBycG1hdGNoJworfCAuLi4vZ2l0Ly4vaW5jbHVkZS9jb21tb24uaDoxNTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdldGxpbmUnCit8IC4uLi9naXQvLi9pbmNsdWRlL2NvbW1vbi5oOjE2NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgcnBtYXRjaCcKKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQKKworU2lnbmVkLW9mZi1ieTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorLS0tCisgaW5jbHVkZS9jb21tb24uaCB8IDggKysrKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tb24uaCBiL2luY2x1ZGUvY29tbW9uLmgKK2luZGV4IDVhMjA5NjQuLjJmNTFlMWMgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2NvbW1vbi5oCisrKysgYi9pbmNsdWRlL2NvbW1vbi5oCitAQCAtMTYxLDE1ICsxNjEsMTcgQEAgc3RhdGljIGlubGluZSBpbnQgX19ycG1hdGNoKGNvbnN0IGNoYXIgKnJlc3ApCisgICovCisgc3RhdGljIGlubGluZSBib29sIHByb21wdChjb25zdCBjaGFyICptc2csIGJvb2wgZGVmKQorIHsKKy0JY2hhciAqbGluZSA9IE5VTEw7CistCXNpemVfdCBsZW47CisrCWNoYXIgKmxpbmU7CisgCWJvb2wgcmV0ID0gZGVmOworIAorKwljb25zdCBpbnQgc2l6ZW9mX2xpbmUgPSAyOworKwlsaW5lID0gbWFsbG9jKHNpemVvZl9saW5lKTsKKysKKyAJZG8geworIAkJbm9ybXNnX2NvbnQoIiVzICglYy8lYykgIiwgbXNnLCBkZWYgPyAnWScgOiAneScsIGRlZiA/ICduJyA6ICdOJyk7CisgCQlmZmx1c2goc3Rkb3V0KTsKKyAKKy0JCXdoaWxlIChnZXRsaW5lKCZsaW5lLCAmbGVuLCBzdGRpbikgPT0gLTEpIHsKKysJCXdoaWxlIChmZ2V0cyhsaW5lLCBzaXplb2ZfbGluZSwgc3RkaW4pID09IE5VTEwpIHsKKyAJCQlwcmludGYoImZhaWxlZCB0byByZWFkIHByb21wdDsgYXNzdW1pbmcgJyVzJ1xuIiwKKyAJCQkJZGVmID8gInllcyIgOiAibm8iKTsKKyAJCQlicmVhazsKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNi1saWJpbmlwYXJzZXItcmVtb3ZlLXVudXNlZC1mdW5jdGlvbi1uZWVkaW5nLWZsb2F0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNi1saWJpbmlwYXJzZXItcmVtb3ZlLXVudXNlZC1mdW5jdGlvbi1uZWVkaW5nLWZsb2F0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwNDZmOTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDA2LWxpYmluaXBhcnNlci1yZW1vdmUtdW51c2VkLWZ1bmN0aW9uLW5lZWRpbmctZmxvYXQucGF0Y2gKQEAgLTAsMCArMSw4NSBAQAorRnJvbSAyYWYzMGU5YjI5ODgxMTFlNDVlZDZlYTZhZjU1ZTQ5ZWM3Y2IxY2IxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorRGF0ZTogU3VuLCAyOSBKdW4gMjAxNCAwMDo0NDo1NyArMDIwMAorU3ViamVjdDogW1BBVENIIDYvOV0gbGliaW5pcGFyc2VyOiByZW1vdmUgdW51c2VkIGZ1bmN0aW9uIG5lZWRpbmcgZmxvYXQKKworRml4ZXM6Cit8ICAgTEQgICAgICB1YmktdXRpbHMvdWJpZm9ybWF0Cit8IC4uLi9naXQvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5hKGxpYmluaXBhcnNlci5vKTogSW4gZnVuY3Rpb24KK3wgYCAgTEQgICAgICB1YmktdXRpbHMvdWJpcmVuYW1lCit8IGluaXBhcnNlcl9nZXRkb3VibGUnOgorfCAuLi4vZ2l0L3ViaS11dGlscy9saWJpbmlwYXJzZXIuYzozMzY6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGF0b2YnCisKK0dyZXAgZG9lc24ndCByZXZlYWwgYW55IG9jY3VycmVuY2Ugb2YgaW5pcGFyc2VyX2dldGRvdWJsZSgpLCB1c2luZyBhdG9mKCkgc28KK3JlbW92ZSBpdDogZmxvYXRpbmctcG9pbnQgaXMgbm90IHN1cHBvcnRlZCBpbiBrbGliYworCitVcHN0cmVhbS1TdGF0dXM6IEFjY2VwdGVkCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KKy0tLQorIHViaS11dGlscy9pbmNsdWRlL2xpYmluaXBhcnNlci5oIHwgMTUgLS0tLS0tLS0tLS0tLS0tCisgdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jICAgICAgICAgfCAyMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAzNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3ViaS11dGlscy9pbmNsdWRlL2xpYmluaXBhcnNlci5oIGIvdWJpLXV0aWxzL2luY2x1ZGUvbGliaW5pcGFyc2VyLmgKK2luZGV4IGJlM2M2NjcuLmFiZDc3YWEgMTAwNjQ0CistLS0gYS91YmktdXRpbHMvaW5jbHVkZS9saWJpbmlwYXJzZXIuaAorKysrIGIvdWJpLXV0aWxzL2luY2x1ZGUvbGliaW5pcGFyc2VyLmgKK0BAIC0xNTgsMjEgKzE1OCw2IEBAIGludCBpbmlwYXJzZXJfZ2V0aW50KGRpY3Rpb25hcnkgKiBkLCBjb25zdCBjaGFyICoga2V5LCBpbnQgbm90Zm91bmQpOworIAorIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgLyoqCistICBAYnJpZWYgICAgR2V0IHRoZSBzdHJpbmcgYXNzb2NpYXRlZCB0byBhIGtleSwgY29udmVydCB0byBhIGRvdWJsZQorLSAgQHBhcmFtICAgIGQgRGljdGlvbmFyeSB0byBzZWFyY2gKKy0gIEBwYXJhbSAgICBrZXkgS2V5IHN0cmluZyB0byBsb29rIGZvcgorLSAgQHBhcmFtICAgIG5vdGZvdW5kIFZhbHVlIHRvIHJldHVybiBpbiBjYXNlIG9mIGVycm9yCistICBAcmV0dXJuICAgZG91YmxlCistCistICBUaGlzIGZ1bmN0aW9uIHF1ZXJpZXMgYSBkaWN0aW9uYXJ5IGZvciBhIGtleS4gQSBrZXkgYXMgcmVhZCBmcm9tIGFuCistICBpbmkgZmlsZSBpcyBnaXZlbiBhcyAic2VjdGlvbjprZXkiLiBJZiB0aGUga2V5IGNhbm5vdCBiZSBmb3VuZCwKKy0gIHRoZSBub3Rmb3VuZCB2YWx1ZSBpcyByZXR1cm5lZC4KKy0gKi8KKy0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy1kb3VibGUgaW5pcGFyc2VyX2dldGRvdWJsZShkaWN0aW9uYXJ5ICogZCwgY2hhciAqIGtleSwgZG91YmxlIG5vdGZvdW5kKTsKKy0KKy0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLS8qKgorICAgQGJyaWVmICAgIEdldCB0aGUgc3RyaW5nIGFzc29jaWF0ZWQgdG8gYSBrZXksIGNvbnZlcnQgdG8gYSBib29sZWFuCisgICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAorICAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCitkaWZmIC0tZ2l0IGEvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jIGIvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jCitpbmRleCA4OThmNTdmLi5iYTcwYzA4IDEwMDY0NAorLS0tIGEvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jCisrKysgYi91YmktdXRpbHMvbGliaW5pcGFyc2VyLmMKK0BAIC0zMTYsMjggKzMxNiw2IEBAIGludCBpbmlwYXJzZXJfZ2V0aW50KGRpY3Rpb25hcnkgKiBkLCBjb25zdCBjaGFyICoga2V5LCBpbnQgbm90Zm91bmQpCisgCisgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAvKioKKy0gIEBicmllZiAgICBHZXQgdGhlIHN0cmluZyBhc3NvY2lhdGVkIHRvIGEga2V5LCBjb252ZXJ0IHRvIGEgZG91YmxlCistICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAorLSAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCistICBAcGFyYW0gICAgbm90Zm91bmQgVmFsdWUgdG8gcmV0dXJuIGluIGNhc2Ugb2YgZXJyb3IKKy0gIEByZXR1cm4gICBkb3VibGUKKy0KKy0gIFRoaXMgZnVuY3Rpb24gcXVlcmllcyBhIGRpY3Rpb25hcnkgZm9yIGEga2V5LiBBIGtleSBhcyByZWFkIGZyb20gYW4KKy0gIGluaSBmaWxlIGlzIGdpdmVuIGFzICJzZWN0aW9uOmtleSIuIElmIHRoZSBrZXkgY2Fubm90IGJlIGZvdW5kLAorLSAgdGhlIG5vdGZvdW5kIHZhbHVlIGlzIHJldHVybmVkLgorLSAqLworLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLWRvdWJsZSBpbmlwYXJzZXJfZ2V0ZG91YmxlKGRpY3Rpb25hcnkgKiBkLCBjaGFyICoga2V5LCBkb3VibGUgbm90Zm91bmQpCisteworLSAgICBjaGFyICAgICogICBzdHIgOworLQorLSAgICBzdHIgPSBpbmlwYXJzZXJfZ2V0c3RyaW5nKGQsIGtleSwgSU5JX0lOVkFMSURfS0VZKTsKKy0gICAgaWYgKHN0cj09SU5JX0lOVkFMSURfS0VZKSByZXR1cm4gbm90Zm91bmQgOworLSAgICByZXR1cm4gYXRvZihzdHIpOworLX0KKy0KKy0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLS8qKgorICAgQGJyaWVmICAgIEdldCB0aGUgc3RyaW5nIGFzc29jaWF0ZWQgdG8gYSBrZXksIGNvbnZlcnQgdG8gYSBib29sZWFuCisgICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAorICAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDctbXRkLXV0aWxzLWNvbW1vbi5jLWNvbnZlcnQtdG8taW50ZWdlci1hcml0aG1ldGljLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNy1tdGQtdXRpbHMtY29tbW9uLmMtY29udmVydC10by1pbnRlZ2VyLWFyaXRobWV0aWMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZiMDEyZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDctbXRkLXV0aWxzLWNvbW1vbi5jLWNvbnZlcnQtdG8taW50ZWdlci1hcml0aG1ldGljLnBhdGNoCkBAIC0wLDAgKzEsNjQgQEAKK0Zyb20gNDFlN2M3NmIwODUzYmY1MjQxYjM4YjgxNjdkZmQ1N2MyN2ZlZjFlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KK0RhdGU6IFN1biwgMjggSmFuIDIwMTggMjE6NDc6NTkgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCA3LzldIG10ZC11dGlsczogY29tbW9uLmM6IGNvbnZlcnQgdG8gaW50ZWdlciBhcml0aG1ldGljCisKK1dlIHVzZSBmbG9hdGluZyBwb2ludCBqdXN0IHRvIHByaW50IG91dCBLaUIsIE1pQiwgR2lCLgorQXZvaWQgdGhhdCB0byBiZSBrbGliYyBmcmllbmRseS4KKworRml4ZXMgY29tcGlsYXRpb24gZm9yIGFhcmNoNjQgYWdhaW5zdCBrbGliYzoKKworZXJyb3I6ICctbWdlbmVyYWwtcmVncy1vbmx5JyBpcyBpbmNvbXBhdGlibGUgd2l0aCBmbG9hdGluZy1wb2ludCBhcmd1bWVudAorfCAgICBwcmludGYoIiVzJS4xZiBHaUIiLCBwLCAoZG91YmxlKWJ5dGVzIC8gKDEwMjQgKiAxMDI0ICogMTAyNCkpOworZXRjLgorCitOb3RlOgorKiBJbiB0aGUgS2lCIGNhc2UsIHdlIGNvdWxkIGFwcGFyZW50bHkgbXVsdGlwbHkgYnkgMTAwIGJlZm9yZSBkaXZpZGluZworICB3aXRob3V0IHJpc2tpbmcgb3ZlcmZsb3cuIFRoaXMgY29kZSBzaW1wbHkgYXZvaWRzIG11bHRpcGxpY2F0aW9ucy4KKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQKKworU2lnbmVkLW9mZi1ieTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorLS0tCisgdWJpLXV0aWxzL3ViaXV0aWxzLWNvbW1vbi5jIHwgMTggKysrKysrKysrKysrLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS91YmktdXRpbHMvdWJpdXRpbHMtY29tbW9uLmMgYi91YmktdXRpbHMvdWJpdXRpbHMtY29tbW9uLmMKK2luZGV4IDY2MDlhNmIuLjBkZWQyYTQgMTAwNjQ0CistLS0gYS91YmktdXRpbHMvdWJpdXRpbHMtY29tbW9uLmMKKysrKyBiL3ViaS11dGlscy91Yml1dGlscy1jb21tb24uYworQEAgLTEwNyw2ICsxMDcsOSBAQCBsb25nIGxvbmcgdWJpdXRpbHNfZ2V0X2J5dGVzKGNvbnN0IGNoYXIgKnN0cikKKyB2b2lkIHViaXV0aWxzX3ByaW50X2J5dGVzKGxvbmcgbG9uZyBieXRlcywgaW50IGJyYWNrZXQpCisgeworIAljb25zdCBjaGFyICpwOworKwlpbnQgR2lCID0gMTAyNCAqIDEwMjQgKiAxMDI0OworKwlpbnQgTWlCID0gMTAyNCAqIDEwMjQ7CisrCWludCBLaUIgPSAxMDI0OworIAorIAlpZiAoYnJhY2tldCkKKyAJCXAgPSAiICgiOworQEAgLTExNSwxMiArMTE4LDE1IEBAIHZvaWQgdWJpdXRpbHNfcHJpbnRfYnl0ZXMobG9uZyBsb25nIGJ5dGVzLCBpbnQgYnJhY2tldCkKKyAKKyAJcHJpbnRmKCIlbGxkIGJ5dGVzIiwgYnl0ZXMpOworIAorLQlpZiAoYnl0ZXMgPiAxMDI0ICogMTAyNCAqIDEwMjQpCistCQlwcmludGYoIiVzJS4xZiBHaUIiLCBwLCAoZG91YmxlKWJ5dGVzIC8gKDEwMjQgKiAxMDI0ICogMTAyNCkpOworLQllbHNlIGlmIChieXRlcyA+IDEwMjQgKiAxMDI0KQorLQkJcHJpbnRmKCIlcyUuMWYgTWlCIiwgcCwgKGRvdWJsZSlieXRlcyAvICgxMDI0ICogMTAyNCkpOworLQllbHNlIGlmIChieXRlcyA+IDEwMjQgJiYgYnl0ZXMgIT0gMCkKKy0JCXByaW50ZigiJXMlLjFmIEtpQiIsIHAsIChkb3VibGUpYnl0ZXMgLyAxMDI0KTsKKysJaWYgKGJ5dGVzID4gR2lCKQorKwkJcHJpbnRmKCIlcyVsbGQuJWxsZCBHaUIiLCBwLAorKwkJICAgICAgIGJ5dGVzIC8gR2lCLCBieXRlcyAlIEdpQiAvIChHaUIgLyAxMCkpOworKwllbHNlIGlmIChieXRlcyA+IE1pQikKKysJCXByaW50ZigiJXMlbGxkLiVsbGQgTWlCIiwgcCwKKysJCSAgICAgICBieXRlcyAvIE1pQiwgYnl0ZXMgJSBNaUIgLyAoTWlCIC8gMTApKTsKKysJZWxzZSBpZiAoYnl0ZXMgPiBLaUIgJiYgYnl0ZXMgIT0gMCkKKysJCXByaW50ZigiJXMlbGxkLiVsbGQgS2lCIiwgcCwKKysJCSAgICAgICBieXRlcyAvIEtpQiwgYnl0ZXMgJSBLaUIgLyAoS2lCIC8gMTApKTsKKyAJZWxzZQorIAkJcmV0dXJuOworIAorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDA4LXViaS11dGlscy11Ymlmb3JtYXQuYy1jb252ZXJ0LXRvLWludGVnZXItYXJpdGhtZXRpYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDgtdWJpLXV0aWxzLXViaWZvcm1hdC5jLWNvbnZlcnQtdG8taW50ZWdlci1hcml0aG1ldGljLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViZDA1NzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDA4LXViaS11dGlscy11Ymlmb3JtYXQuYy1jb252ZXJ0LXRvLWludGVnZXItYXJpdGhtZXRpYy5wYXRjaApAQCAtMCwwICsxLDQ0IEBACitGcm9tIGU2ZjFhODVjMGEzZGYyNGZlM2NhOWE1MjBkYzY5NzEwNWU3NWE4MGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDI3IEphbiAyMDE4IDA5OjM5OjI2ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggOC85XSB1YmktdXRpbHM6IHViaWZvcm1hdC5jOiBjb252ZXJ0IHRvIGludGVnZXIgYXJpdGhtZXRpYworCitEbyBub3QgY2FzdCBwZXJjZW50IHRvIGRvdWJsZSwgaXQgaXMganVzdCB1c2VkIGFzIHVwcGVyIGxpbWl0LgorQXZvaWQgZmxvYXRpbmcgcG9pbnQgdG8gZml4IGNvbXBpbGF0aW9uIGZvciBhYXJjaDY0IGFnYWluc3Qga2xpYmM6CisKK2Vycm9yOiAnLW1nZW5lcmFsLXJlZ3Mtb25seScgaXMgaW5jb21wYXRpYmxlIHdpdGggZmxvYXRpbmctcG9pbnQgY29kZQorfCAgICBpbnQgcGVyY2VudCA9ICgoZG91YmxlKXNpLT5va19jbnQpL3NpLT5nb29kX2NudCAqIDEwMDsKK3wgICAgICAgIF5+fn5+fn4KKworTm90ZXM6CisqIFRoZSBjaGVja3MgaW4gdGhlIGNvZGUgYWJvdmUgdGhpcyBsaW5lIGVuc3VyZSB0aGF0IHNpLT5nb29kX2NudCBpcyBub3QgMC4KKworKiBUaGUgY29kZSBhc3N1bWVzICBzaS0+Z29vZF9jbnQgKiAxMDAgIHdpbGwgbm90IG92ZXJmbG93LCB0aGVuIHdlIGNhbiB1c2UKKyAgKHNpLT5va19jbnQgKiAxMDApIHNhZmVseSBiZWNhdXNlIHRoZSBmb3JtZXIgaXMgYmlnZ2VyLgorCisqIFRoZSB0cnVuY2F0ZWQgcmVzdWx0IGRvZXMgbm90IGFmZmVjdCB0aGUgbG9naWM6CisgIGkuZS4gYSB2YWx1ZSBvZiA0OS45IGlzIHRydW5jYXRlZCB0byA0OSBhbmQgaXMgc3RpbGwgPDUwLgorCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZAorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CistLS0KKyB1YmktdXRpbHMvdWJpZm9ybWF0LmMgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS91YmktdXRpbHMvdWJpZm9ybWF0LmMgYi91YmktdXRpbHMvdWJpZm9ybWF0LmMKK2luZGV4IDIxNDA5Y2EuLmQ5MzE2NGEgMTAwNjQ0CistLS0gYS91YmktdXRpbHMvdWJpZm9ybWF0LmMKKysrKyBiL3ViaS11dGlscy91Ymlmb3JtYXQuYworQEAgLTg0Myw3ICs4NDMsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqIGNvbnN0IGFyZ3ZbXSkKKyAJfQorIAorIAlpZiAoIWFyZ3Mub3ZlcnJpZGVfZWMgJiYgc2ktPmVtcHR5X2NudCA8IHNpLT5nb29kX2NudCkgeworLQkJaW50IHBlcmNlbnQgPSAoKGRvdWJsZSlzaS0+b2tfY250KS9zaS0+Z29vZF9jbnQgKiAxMDA7CisrCQlpbnQgcGVyY2VudCA9IChzaS0+b2tfY250ICogMTAwKSAvIHNpLT5nb29kX2NudDsKKyAKKyAJCS8qCisgCQkgKiBNYWtlIHN1cmUgdGhlIG1ham9yaXR5IG9mIGVyYXNlYmxvY2tzIGhhdmUgdmFsaWQKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwOS1FbGltaW5hdGUtd2FybmluZ3MtYWJvdXQtaW1wbGljaXQtbm9uLWNvbnN0LWNhc3RpbmctLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwOS1FbGltaW5hdGUtd2FybmluZ3MtYWJvdXQtaW1wbGljaXQtbm9uLWNvbnN0LWNhc3RpbmctLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ODI0NmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDA5LUVsaW1pbmF0ZS13YXJuaW5ncy1hYm91dC1pbXBsaWNpdC1ub24tY29uc3QtY2FzdGluZy0ucGF0Y2gKQEAgLTAsMCArMSw0OCBAQAorRnJvbSAyMjI5ZjNiOWZkNGJhZDQ3Nzk0YzI4ZTU1OGFkMjczMTczY2VhNzNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorRGF0ZTogU2F0LCAyNyBKYW4gMjAxOCAwOTo1Mjo0NiArMDEwMAorU3ViamVjdDogW1BBVENIIDkvOV0gRWxpbWluYXRlIHdhcm5pbmdzIGFib3V0IGltcGxpY2l0IG5vbi1jb25zdCBjYXN0aW5nIGluCisgbGlibXRkCisKK1RoZSBtdGRfZ2V0X2Rldl9pbmZvMSBmdW5jdGlvbiByZWFkcyAoYW1vbmcgb3RoZXIgdGhpbmdzKSBuYW1lIGFuZCB0eXBlCitzdHJpbmcgaW50byBjb3Jlc3BvbmRpbmcgc3RydWN0IG10ZF9kZXZfaW5mbyBmaWVsZHMuCisKK1RoZSBzdHJ1Y3QgbXRkX2Rldl9pbmZvIGhhcyB0aGUgc3RyaW5nIGZpZWxkcyBtYXJrZWQgY29uc3QsIHJlcXVpcmluZwordGhlbSB0byBiZSBjYXN0IHRvIG5vbi1jb25zdCB2ZXJzaW9uIGR1cmluZyBpbml0aWFsaXphdGlvbi4KKworVGhpcyBjYXN0IHdhcyBwcmV2aW91c2x5IG9taXR0ZWQgZnJvbSB0aGUgZGV2X3JlYWRfZGF0YSBjYWxscywKK3RyaWdnZXJpbmcgd2FybmluZ3MgZHVyaW5nIGNvbXBpbGF0aW9uLgorCitTaWduZWQtb2ZmLWJ5OiBEYXZpZCBPYmVyaG9sbGVuemVyIDxkYXZpZC5vYmVyaG9sbGVuemVyQHNpZ21hLXN0YXIuYXQ+CitTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFdlaW5iZXJnZXIgPHJpY2hhcmRAbm9kLmF0PgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KKy0tLQorIGxpYi9saWJtdGQuYyB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvbGlibXRkLmMgYi9saWIvbGlibXRkLmMKK2luZGV4IDYwYjQ3ODIuLjVmMGJjYmMgMTAwNjQ0CistLS0gYS9saWIvbGlibXRkLmMKKysrKyBiL2xpYi9saWJtdGQuYworQEAgLTc0NiwxMyArNzQ2LDEzIEBAIGludCBtdGRfZ2V0X2Rldl9pbmZvMShsaWJtdGRfdCBkZXNjLCBpbnQgbXRkX251bSwgc3RydWN0IG10ZF9kZXZfaW5mbyAqbXRkKQorIAlpZiAoZGV2X2dldF9tYWpvcihsaWIsIG10ZF9udW0sICZtdGQtPm1ham9yLCAmbXRkLT5taW5vcikpCisgCQlyZXR1cm4gLTE7CisgCistCXJldCA9IGRldl9yZWFkX2RhdGEobGliLT5tdGRfbmFtZSwgbXRkX251bSwgJm10ZC0+bmFtZSwKKysJcmV0ID0gZGV2X3JlYWRfZGF0YShsaWItPm10ZF9uYW1lLCBtdGRfbnVtLCAoY2hhciAqKSZtdGQtPm5hbWUsCisgCQkJICAgIE1URF9OQU1FX01BWCArIDEpOworIAlpZiAocmV0IDwgMCkKKyAJCXJldHVybiAtMTsKKyAJKChjaGFyICopbXRkLT5uYW1lKVtyZXQgLSAxXSA9ICdcMCc7CisgCistCXJldCA9IGRldl9yZWFkX2RhdGEobGliLT5tdGRfdHlwZSwgbXRkX251bSwgJm10ZC0+dHlwZV9zdHIsCisrCXJldCA9IGRldl9yZWFkX2RhdGEobGliLT5tdGRfdHlwZSwgbXRkX251bSwgKGNoYXIgKikmbXRkLT50eXBlX3N0ciwKKyAJCQkgICAgTVREX1RZUEVfTUFYICsgMSk7CisgCWlmIChyZXQgPCAwKQorIAkJcmV0dXJuIC0xOworLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDAxLU1ha2VmaWxlLW9ubHktYnVpbGQtdWJpLXV0aWxzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwMS1NYWtlZmlsZS1vbmx5LWJ1aWxkLXViaS11dGlscy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmUxYjlmZi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDAxLU1ha2VmaWxlLW9ubHktYnVpbGQtdWJpLXV0aWxzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotRnJvbSBjNGU2YmQ5Mzc4NjQ1ZDU3N2U5ZDlmODVkYTg1ZjE0MzhhZmU3YzUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgotRGF0ZTogU3VuLCAyOSBKdW4gMjAxNCAwMDozMjoyOSArMDIwMAotU3ViamVjdDogW1BBVENIIDEvNl0gTWFrZWZpbGU6IGJ1aWxkIHViaS11dGlscyBvbmx5Ci0KLVdlIGJ1aWxkIGFsbCB0aGUgc3RhdGljIHViaS11dGlscyBidXQgYWN0dWFsbHkgb25seSB1YmlhdHRhY2ggaXMgbmVlZGVkIGluCi1hIG1pbmltYWxpc3RpYyBpbml0cmFtZnMgZm9yIHRoZSBtb3VudCBvZiB1Ymkgdm9sdW1lcy4KLQotTW9yZSBmaXhlcyBhcmUgbmVlZGVkIGluIG9yZGVyIHRvIGJ1aWxkIHRoZSBmdWxsIG10ZC11dGlscy4KLVRoZSBmaXJzdCBpc3N1ZSBpczoKLQotfCBta2ZzLmpmZnMyLmM6NjQ6MjA6IGZhdGFsIGVycm9yOiBsaWJnZW4uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotfCAgI2luY2x1ZGUgPGxpYmdlbi5oPgotCi1SZW1vdmluZyB0aGUgaW5jbHVkZSB0aGVuIHRoZSBzZWNvbmQgZXJyb3IgaXM6Ci0KLXwgbWtmcy5qZmZzMi5jOjE1NzA6MjI6IGVycm9yOiAnX1NDX1BBR0VTSVpFJyB1bmRlY2xhcmVkCi18IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKLXwgICBwYWdlX3NpemUgPSBzeXNjb25mKF9TQ19QQUdFU0laRSk7Ci0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLS0tLQotIE1ha2VmaWxlIHwgMjQgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCi0KLUluZGV4OiBnaXQvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnaXQub3JpZy9NYWtlZmlsZQotKysrIGdpdC9NYWtlZmlsZQotQEAgLTE2LDI4ICsxNiwxMSBAQCBlbmRpZgotIAotIFRFU1RTID0gdGVzdHMKLSAKLS1NVERfQklOUyA9IFwKLS0JZnRsX2Zvcm1hdCBmbGFzaF9lcmFzZSBuYW5kZHVtcCBkb2NfbG9hZGJpb3MgXAotLQlmdGxfY2hlY2sgbWtmcy5qZmZzMiBmbGFzaF9sb2NrIGZsYXNoX3VubG9jayBcCi0tCWZsYXNoX290cF9pbmZvIGZsYXNoX290cF9kdW1wIGZsYXNoX290cF9sb2NrIGZsYXNoX290cF93cml0ZSBcCi0tCW10ZF9kZWJ1ZyBmbGFzaGNwIG5hbmR3cml0ZSBuYW5kdGVzdCBtdGRwYXJ0IFwKLS0JamZmczJkdW1wIFwKLS0JbmZ0bGR1bXAgbmZ0bF9mb3JtYXQgZG9jZmRpc2sgXAotLQlyZmRkdW1wIHJmZGZvcm1hdCBcCi0tCXNlcnZlX2ltYWdlIHJlY3ZfaW1hZ2UgXAotLQlzdW10b29sIGpmZnMycmVhZGVyCi0gVUJJX0JJTlMgPSBcCi0gCXViaXVwZGF0ZXZvbCB1Ymlta3ZvbCB1YmlybXZvbCB1YmljcmMzMiB1YmluZm8gdWJpYXR0YWNoIFwKLSAJdWJpZGV0YWNoIHViaW5pemUgdWJpZm9ybWF0IHViaXJlbmFtZSBtdGRpbmZvIHViaXJzdm9sIHViaWJsb2NrCi0gCi0tQklOUyA9ICQoTVREX0JJTlMpCi0tQklOUyArPSBta2ZzLnViaWZzL21rZnMudWJpZnMKLS1CSU5TICs9ICQoYWRkcHJlZml4IHViaS11dGlscy8sJChVQklfQklOUykpCi0tU0NSSVBUUyA9IGZsYXNoX2VyYXNlYWxsCi0tCi0tVEFSR0VUUyA9ICQoQklOUykKLS1UQVJHRVRTICs9IGxpYi9saWJtdGQuYQotLVRBUkdFVFMgKz0gdWJpLXV0aWxzL2xpYnViaS5hCi0rQklOUyA9ICQoYWRkcHJlZml4IHViaS11dGlscy8sJChVQklfQklOUykpCi0gCi0gT0JKREVQUyA9ICQoQlVJTERESVIpL2luY2x1ZGUvdmVyc2lvbi5oCi0gCi1AQCAtNjEsMTIgKzQ0LDkgQEAgZW5kaWYKLSAJcm0gLWYgJChCVUlMRERJUikvaW5jbHVkZS92ZXJzaW9uLmgKLSAJJChNQUtFKSAtQyAkKFRFU1RTKSBjbGVhbgotIAotLWluc3RhbGw6OiAkKGFkZHByZWZpeCAkKEJVSUxERElSKS8sJHtCSU5TfSkgJHtTQ1JJUFRTfQotK2luc3RhbGw6OiAkKGFkZHByZWZpeCAkKEJVSUxERElSKS8sJHtCSU5TfSkKLSAJbWtkaXIgLXAgJHtERVNURElSfS8ke1NCSU5ESVJ9Ci0gCWluc3RhbGwgLW0gMDc1NSAkXiAke0RFU1RESVJ9LyR7U0JJTkRJUn0vCi0tCW1rZGlyIC1wICR7REVTVERJUn0vJHtNQU5ESVJ9L21hbjEKLS0JaW5zdGFsbCAtbSAwNjQ0IG1rZnMuamZmczIuMSAke0RFU1RESVJ9LyR7TUFORElSfS9tYW4xLwotLQktZ3ppcCAtOWYgJHtERVNURElSfS8ke01BTkRJUn0vbWFuMS8qLjEKLSAKLSB0ZXN0czo6Ci0gCSQoTUFLRSkgLUMgJChURVNUUykKLUBAIC05MSw4ICs3MSw2IEBAIExETElCU19ta2ZzLmpmZnMyICA9IC1seiAkKExaT0xETElCUykKLSBMREZMQUdTX2pmZnMycmVhZGVyID0gJChaTElCTERGTEFHUykgJChMWk9MREZMQUdTKQotIExETElCU19qZmZzMnJlYWRlciAgPSAtbHogJChMWk9MRExJQlMpCi0gCi0tJChmb3JlYWNoIHYsJChNVERfQklOUyksJChldmFsICQoY2FsbCBta2RlcCwsJCh2KSkpKQotLQotICMKLSAjIENvbW1vbiBsaWJtdGQKLSAjCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDAyLWNvbW1vbi5tay1mb3Ita2xpYmMtQ0MtaXMta2xjYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDItY29tbW9uLm1rLWZvci1rbGliYy1DQy1pcy1rbGNjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDY4MjRiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDItY29tbW9uLm1rLWZvci1rbGliYy1DQy1pcy1rbGNjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotRnJvbSBmMzYwOWM3YzA0NTBiNGMzMWUxZDQ2MDNmY2YyY2ZiMWJhNDZmOTk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgotRGF0ZTogU3VuLCAyOSBKdW4gMjAxNCAwMDozNzoyOCArMDIwMAotU3ViamVjdDogW1BBVENIIDIvNl0gY29tbW9uLm1rOiBmb3Iga2xpYmMgJChDQykgaXMga2xjYwotCi1EbyBub3QgaGFyZGNvZGU6IGFzc2lnbiB0aGUgdmFsdWUgdG8gdGhlIHZhcmlhYmxlIGlmIGl0IGlzIG5vdCBhbHJlYWR5IGRlZmluZWQuCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+Ci0tLS0KLSBjb21tb24ubWsgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9jb21tb24ubWsgYi9jb21tb24ubWsKLWluZGV4IGJhODczNzcuLjU5YzU2ZGYgMTAwNjQ0Ci0tLS0gYS9jb21tb24ubWsKLSsrKyBiL2NvbW1vbi5tawotQEAgLTEsNCArMSw0IEBACi0tQ0MgOj0gJChDUk9TUylnY2MKLStDQyA/PSAkKENST1NTKWdjYwotIEFSIDo9ICQoQ1JPU1MpYXIKLSBSQU5MSUIgOj0gJChDUk9TUylyYW5saWIKLSAKLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwMy1saWJ1YmkuYy1hZGQta2xpYmMtc3BlY2lmaWMtZml4ZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDAzLWxpYnViaS5jLWFkZC1rbGliYy1zcGVjaWZpYy1maXhlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTYyYjM2OC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDAzLWxpYnViaS5jLWFkZC1rbGliYy1zcGVjaWZpYy1maXhlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc2ICswLDAgQEAKLUZyb20gNzJhMzliYjMyOTBhNzllNzZiMGRiZjU5ZWVmODNlYTJkOWI1NzdhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMjkgSnVuIDIwMTQgMDA6NDA6MTUgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAzLzZdIGxpYnViaS5jOiBhZGQga2xpYmMgc3BlY2lmaWMgZml4ZXMgZm9yIGlvY3RsCi0KLUZpcnN0IGlzc3VlIGlzIHRoYXQgaW9jdGwoKSBpbiBrbGliYyBkb2Vzbid0IGV4cGVjdCBhIGNvbnN0YW50IGFzIGFyZzMuCi1TZWNvbmQgaXNzdWUgaXMgdGhhdCBhcmczIGluIGtsaWJjIGlvY3RsKCkgaW1wbGVtZW50YXRpb24gaXMgbm90IG9wdGlvbmFsLgotCi1GaXhlczoKLQotfCB1YmktdXRpbHMvbGlidWJpLmM6IEluIGZ1bmN0aW9uICdkb19hdHRhY2gnOgotfCB1YmktdXRpbHMvbGlidWJpLmM6Njk4Ojg6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMyBvZiAnaW9jdGwnIGRpc2NhcmRzCi18ICdjb25zdCcgcXVhbGlmaWVyIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQotfCAgIHJldCA9IGlvY3RsKGZkLCBVQklfSU9DQVRULCByKTsKLXwgICAgICAgICBeCi18IEluIGZpbGUgaW5jbHVkZWQgZnJvbSB1YmktdXRpbHMvbGlidWJpLmM6MzI6MDoKLXwgLi4uL2xpYi9rbGliYy9pbmNsdWRlL3N5cy9pb2N0bC5oOjE1OjE0OiBub3RlOiBleHBlY3RlZCAndm9pZCAqJyBidXQgYXJndW1lbnQKLXwgaXMgb2YgdHlwZSAnY29uc3Qgc3RydWN0IHViaV9hdHRhY2hfcmVxIConCi18ICBfX2V4dGVybiBpbnQgaW9jdGwoaW50LCBpbnQsIHZvaWQgKik7Ci18ICAgICAgICAgICAgICAgXgotCi18IHViaS11dGlscy9saWJ1YmkuYzogSW4gZnVuY3Rpb24gJ3ViaV92b2xfYmxvY2tfY3JlYXRlJzoKLXwgdWJpLXV0aWxzL2xpYnViaS5jOjExMTg6OTogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uICdpb2N0bCcKLXwgICByZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xDUkJMSyk7Ci18ICAgICAgICAgIF4KLXwgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHViaS11dGlscy9saWJ1YmkuYzozMjowOgotfCAuLi4vbGliL2tsaWJjL2luY2x1ZGUvc3lzL2lvY3RsLmg6MTU6MTQ6IG5vdGU6IGRlY2xhcmVkIGhlcmUKLXwgIF9fZXh0ZXJuIGludCBpb2N0bChpbnQsIGludCwgdm9pZCAqKTsKLXwgICAgICAgICAgICAgICBeCi18IHViaS11dGlscy9saWJ1YmkuYzogSW4gZnVuY3Rpb24gJ3ViaV92b2xfYmxvY2tfcmVtb3ZlJzoKLXwgdWJpLXV0aWxzL2xpYnViaS5jOjExMjM6OTogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uICdpb2N0bCcKLXwgICByZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xSTUJMSyk7Ci18ICAgICAgICAgIF4KLXwgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHViaS11dGlscy9saWJ1YmkuYzozMjowOgotfCAuLi4vdXNyL2xpYi9rbGliYy9pbmNsdWRlL3N5cy9pb2N0bC5oOjE1OjE0OiBub3RlOiBkZWNsYXJlZCBoZXJlCi18ICBfX2V4dGVybiBpbnQgaW9jdGwoaW50LCBpbnQsIHZvaWQgKik7Ci18ICAgICAgICAgICAgICAgXgotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2tsaWJjIHNwZWNpZmljXQotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+Ci0tLS0KLSB1YmktdXRpbHMvbGlidWJpLmMgfCA2ICsrKy0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS91YmktdXRpbHMvbGlidWJpLmMgYi91YmktdXRpbHMvbGlidWJpLmMKLWluZGV4IDFlMDhiN2QuLjQ5MWU1MjUgMTAwNjQ0Ci0tLS0gYS91YmktdXRpbHMvbGlidWJpLmMKLSsrKyBiL3ViaS11dGlscy9saWJ1YmkuYwotQEAgLTY4Nyw3ICs2ODcsNyBAQCB2b2lkIGxpYnViaV9jbG9zZShsaWJ1YmlfdCBkZXNjKQotICAqIHN1Y2Nlc3MgYW5kICUtMSBpbiBjYXNlIG9mIGZhaWx1cmUuIEByLT51YmlfbnVtIGNvbnRhaW5zIG5ld2x5IGNyZWF0ZWQgVUJJCi0gICogZGV2aWNlIG51bWJlci4KLSAgKi8KLS1zdGF0aWMgaW50IGRvX2F0dGFjaChjb25zdCBjaGFyICpub2RlLCBjb25zdCBzdHJ1Y3QgdWJpX2F0dGFjaF9yZXEgKnIpCi0rc3RhdGljIGludCBkb19hdHRhY2goY29uc3QgY2hhciAqbm9kZSwgc3RydWN0IHViaV9hdHRhY2hfcmVxICpyKQotIHsKLSAJaW50IGZkLCByZXQ7Ci0gCi1AQCAtMTExNSwxMiArMTExNSwxMiBAQCBpbnQgdWJpX3Jzdm9sKGxpYnViaV90IGRlc2MsIGNvbnN0IGNoYXIgKm5vZGUsIGludCB2b2xfaWQsIGxvbmcgbG9uZyBieXRlcykKLSAKLSBpbnQgdWJpX3ZvbF9ibG9ja19jcmVhdGUoaW50IGZkKQotIHsKLS0JcmV0dXJuIGlvY3RsKGZkLCBVQklfSU9DVk9MQ1JCTEspOwotKwlyZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xDUkJMSywgTlVMTCk7Ci0gfQotIAotIGludCB1Ymlfdm9sX2Jsb2NrX3JlbW92ZShpbnQgZmQpCi0gewotLQlyZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xSTUJMSyk7Ci0rCXJldHVybiBpb2N0bChmZCwgVUJJX0lPQ1ZPTFJNQkxLLCBOVUxMKTsKLSB9Ci0gCi0gaW50IHViaV91cGRhdGVfc3RhcnQobGlidWJpX3QgZGVzYywgaW50IGZkLCBsb25nIGxvbmcgYnl0ZXMpCi0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDQtY29tbW9uLmgta2xpYmMtZml4ZXMtMS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDQtY29tbW9uLmgta2xpYmMtZml4ZXMtMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVlMWNiYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDA0LWNvbW1vbi5oLWtsaWJjLWZpeGVzLTEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi1Gcm9tIGU1Njc2N2I5Y2FhMDJlN2M0MTgwMzQ5OWM3N2RjOTM5ZDVhN2Y2NGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBUaG9yc3RlbiBHbGFzZXIgPHRnQG1pcmJzZC5vcmc+Ci1EYXRlOiBGcmksIDIwIEp1biAyMDE0IDEwOjU2OjI3ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggNC82XSBSZXN0b3JlIGNvbXBhdGliaWxpdHkgdG8gZGlldGxpYmMsIGtsaWJjLCBtdXNsIGxpYmMgYWZ0ZXIgY29tbWl0IDRmMWIxMDgKLQotRWFjaCBDIGxpYnJhcnkgaGFzIHRoZWlyIG93biB3YXkgdG8gZGVmaW5lIG9mZl90LCBhbmQgdGhlIDxmZWF0dXJlcy5oPgotaGVhZGVyIGlzIG5vbnN0YW5kYXJkIGFuZCBzcGVjaWZpYyB0byB0aGUgR05VIGxpYmMgYW5kIHRob3NlIHRoYXQgY2xvbmUKLWl0ICh1Q2xpYmMpLiBGZWZl4oCZcyBkaWV0bGliYyB1c2VzIGRpZmZlcmVudCBmbGFncywgYW5kIGtsaWJjIGFsd2F5cyB1c2VzCi1hIDY0LWJpdCBvZmZfdCAobGlrZSB0aGUgQlNEcyk7IG11c2wgbGliYyBjYW5ub3QgYmUgcmVjb2duaXNlZCB1c2luZyBjcHAKLWluc3RydWN0aW9ucywgc28gd2UgYXNzdW1lIDY0IGJpdCB0aGVyZSAoYW5kIG9uIHVua25vd24gQyBsaWJyYXJpZXMpIGFuZAotbGVhdmUgaXQgdG8gdGhlIHVzZXIgdG8gc3VibWl0IGEgZm9sbG93LXVwIGZpeCBpZiB3ZSBndWVzcyB3cm9uZy4gSSBhbHNvCi1hZGRlZCBhIHN0YXRpYyBhc3NlcnRpb24gdG8gdmVyaWZ5IHRoZSA2NCBiaXQgZ3Vlc3MgaXMgY29ycmVjdC4KLQotSXQgd291bGQgYmUgcmVhbGx5IGJldHRlciB1c2luZyBhIGNvbmZpZ3VyZSBzY3JpcHQgZm9yIHRoaXMgaW5zdGVhZC4KLQotRml4ZXM6Ci18ICAgQ0MgICAgICBsaWIvbGlibXRkLm8KLXwgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHViaS11dGlscy91Yml1dGlscy1jb21tb24uYzozNTowOgotfCAuL2luY2x1ZGUvY29tbW9uLmg6Mjk6MjI6IGZhdGFsIGVycm9yOiBmZWF0dXJlcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci18ICAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLXwgICAgICAgICAgICAgICAgICAgICAgIF4KLXwgY29tcGlsYXRpb24gdGVybWluYXRlZC4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFRob3JzdGVuIEdsYXNlciA8dGdAbWlyYnNkLm9yZz4KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLS0tLQotIGluY2x1ZGUvY29tbW9uLmggfCAyNCArKysrKysrKysrKysrKysrKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tb24uaCBiL2luY2x1ZGUvY29tbW9uLmgKLWluZGV4IDY4OTVlNWMuLjc3ZjNmN2QgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL2NvbW1vbi5oCi0rKysgYi9pbmNsdWRlL2NvbW1vbi5oCi1AQCAtMjYsNyArMjYsOSBAQAotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSAjaW5jbHVkZSA8ZmNudGwuaD4KLSAjaW5jbHVkZSA8ZXJybm8uaD4KLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKLSAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLSsjZW5kaWYKLSAjaW5jbHVkZSA8aW50dHlwZXMuaD4KLSAjaW5jbHVkZSAidmVyc2lvbi5oIgotIAotQEAgLTUyLDYgKzU0LDIxIEBAIGV4dGVybiAiQyIgewotICNlbmRpZgotIAotIC8qIGRlZmluZSBhIHByaW50IGZvcm1hdCBzcGVjaWZpZXIgZm9yIG9mZl90ICovCi0rI2lmIGRlZmluZWQoX19LTElCQ19fKQotKy8qIGFsd2F5cyA2NCBiaXQgb24ga2xpYmMgKi8KLSsjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKLSsjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKLSsjZWxpZiBkZWZpbmVkKF9fZGlldGxpYmNfXykKLSsvKiBkZXBlbmRzIG9uIGNvbXBpbGVyIGZsYWdzIG9uIGRpZXRsaWJjICovCi0rI2lmIGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIChfRklMRV9PRkZTRVRfQklUUyA9PSA2NCkKLSsjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKLSsjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKLSsjZWxzZQotKyNkZWZpbmUgUFJJeG9mZl90ICJsIlBSSXgzMgotKyNkZWZpbmUgUFJJZG9mZl90ICJsIlBSSWQzMgotKyNlbmRpZgotKyNlbGlmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCi0rLyogZGVwZW5kcyBvbiBjb21waWxlciBmbGFncyBvbiBnbGliYyBhbmQgdUNsaWJjICovCi0gI2lmZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKLSAjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKLSAjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKLUBAIC01OSw2ICs3NiwxMyBAQCBleHRlcm4gIkMiIHsKLSAjZGVmaW5lIFBSSXhvZmZfdCAibCJQUkl4MzIKLSAjZGVmaW5lIFBSSWRvZmZfdCAibCJQUklkMzIKLSAjZW5kaWYKLSsjZWxzZQotKy8qIHVua25vd24gbGliYyBvciBtdXNsICovCi0rI2RlZmluZSBQUkl4b2ZmX3QgUFJJeDY0Ci0rI2RlZmluZSBQUklkb2ZmX3QgUFJJZDY0Ci0rLyogdmVyaWZ5IG91ciBndWVzcyBvZiA2NCBiaXQgaXMgY29ycmVjdCAqLwotK3N0YXRpYyBjaGFyIF9fUFJJeG9mZl90X3N0YXRpY19hc3NlcnRbc2l6ZW9mKG9mZl90KSA9PSA4ID8gMSA6IC0xXTsKLSsjZW5kaWYKLSAKLSAvKiBWZXJib3NlIG1lc3NhZ2VzICovCi0gI2RlZmluZSBiYXJldmVyYm9zZSh2ZXJib3NlLCBmbXQsIC4uLikgZG8geyAgICAgICAgICAgICAgICAgICAgICAgIFwKLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwNS1jb21tb24uaC1rbGliYy1maXhlcy0yLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwNS1jb21tb24uaC1rbGliYy1maXhlcy0yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YjA5YzE0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDUtY29tbW9uLmgta2xpYmMtZml4ZXMtMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLUZyb20gODMxODg1MmVmNGY3NjhiZWQzMTA3MmFhN2I1N2UxMWFkYzFmNjM5YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMjkgSnVuIDIwMTQgMDA6NDQ6MDMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA1LzZdIGNvbW1vbi5oOiBtb3JlIHdvcmthcm91bmRzIGZvciBrbGliYyBjb21wYXRpYmlsaXR5Ci0KLVBhdGNoIGlzIGFkZHJlc3NpbmcgdHdvIGlzc3VlczoKLSogRmlyc3QsICBLbGliYyBkb2Vzbid0IGhhdmUgcnBtYXRjaCgpLgotKiBTZWNvbmQsIEtsaWJjIGxhY2tzIGdldGxpbmUoKQotCi1GaXhlczoKLXwgICBMRCAgICAgIHViaS11dGlscy91Ymlmb3JtYXQKLXwgLi4uL2dpdC91YmktdXRpbHMvdWJpZm9ybWF0Lm86IEluIGZ1bmN0aW9uIGBwcm9tcHQnOgotfCAuLi4vZ2l0Ly4vaW5jbHVkZS9jb21tb24uaDoxNTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdldGxpbmUnCi18IC4uLi9naXQvLi9pbmNsdWRlL2NvbW1vbi5oOjE2NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgcnBtYXRjaCcKLXwgLi4uL2dpdC8uL2luY2x1ZGUvY29tbW9uLmg6MTU3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBnZXRsaW5lJwotfCAuLi4vZ2l0Ly4vaW5jbHVkZS9jb21tb24uaDoxNjQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHJwbWF0Y2gnCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+Ci0tLS0KLSBpbmNsdWRlL2NvbW1vbi5oIHwgMTAgKysrKysrLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLUluZGV4OiBnaXQvaW5jbHVkZS9jb21tb24uaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL2luY2x1ZGUvY29tbW9uLmgKLSsrKyBnaXQvaW5jbHVkZS9jb21tb24uaAotQEAgLTE2MSwxNSArMTYxLDE3IEBAIHN0YXRpYyBpbmxpbmUgaW50IF9fcnBtYXRjaChjb25zdCBjaGFyICoKLSAgKi8KLSBzdGF0aWMgaW5saW5lIGJvb2wgcHJvbXB0KGNvbnN0IGNoYXIgKm1zZywgYm9vbCBkZWYpCi0gewotLQljaGFyICpsaW5lID0gTlVMTDsKLS0Jc2l6ZV90IGxlbjsKLSsJY2hhciAqbGluZTsKLSAJYm9vbCByZXQgPSBkZWY7Ci0gCi0rCWNvbnN0IGludCBzaXplb2ZfbGluZSA9IDI7Ci0rCWxpbmUgPSBtYWxsb2Moc2l6ZW9mX2xpbmUpOwotKwotIAlkbyB7Ci0gCQlub3Jtc2dfY29udCgiJXMgKCVjLyVjKSAiLCBtc2csIGRlZiA/ICdZJyA6ICd5JywgZGVmID8gJ24nIDogJ04nKTsKLSAJCWZmbHVzaChzdGRvdXQpOwotIAotLQkJd2hpbGUgKGdldGxpbmUoJmxpbmUsICZsZW4sIHN0ZGluKSA9PSAtMSkgewotKwkJd2hpbGUgKGZnZXRzKGxpbmUsIHNpemVvZl9saW5lLCBzdGRpbikgPT0gTlVMTCkgewotIAkJCXByaW50ZigiZmFpbGVkIHRvIHJlYWQgcHJvbXB0OyBhc3N1bWluZyAnJXMnXG4iLAotIAkJCQlkZWYgPyAieWVzIiA6ICJubyIpOwotIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwNi1saWJpbmlwYXJzZXItcmVtb3ZlLXVudXNlZC1mdW5jdGlvbi1uZWVkaW5nLWZsb2F0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwNi1saWJpbmlwYXJzZXItcmVtb3ZlLXVudXNlZC1mdW5jdGlvbi1uZWVkaW5nLWZsb2F0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDNhODlkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDYtbGliaW5pcGFyc2VyLXJlbW92ZS11bnVzZWQtZnVuY3Rpb24tbmVlZGluZy1mbG9hdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLUZyb20gNzJhMDRhOWI5ZWQzM2M4ODlkMmUyYjg2ZjMwNmM1YmU5ZjZjZGUzNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMjkgSnVuIDIwMTQgMDA6NDQ6NTcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA2LzZdIGxpYmluaXBhcnNlcjogcmVtb3ZlIHVudXNlZCBmdW5jdGlvbiBuZWVkaW5nIGZsb2F0Ci0KLUZpeGVzOgotfCAgIExEICAgICAgdWJpLXV0aWxzL3ViaWZvcm1hdAotfCAuLi4vZ2l0L3ViaS11dGlscy9saWJpbmlwYXJzZXIuYShsaWJpbmlwYXJzZXIubyk6IEluIGZ1bmN0aW9uCi18IGAgIExEICAgICAgdWJpLXV0aWxzL3ViaXJlbmFtZQotfCBpbmlwYXJzZXJfZ2V0ZG91YmxlJzoKLXwgLi4uL2dpdC91YmktdXRpbHMvbGliaW5pcGFyc2VyLmM6MzM2OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBhdG9mJwotCi1HcmVwIGRvZXNuJ3QgcmV2ZWFsIGFueSBvY2N1cnJlbmNlIG9mIGluaXBhcnNlcl9nZXRkb3VibGUoKSwgdXNpbmcgYXRvZigpIHNvCi1yZW1vdmUgaXQ6IGZsb2F0aW5nLXBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgaW4ga2xpYmMKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLS0tLQotIHViaS11dGlscy9pbmNsdWRlL2xpYmluaXBhcnNlci5oIHwgMTUgLS0tLS0tLS0tLS0tLS0tCi0gdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jICAgICAgICAgfCAyMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAzNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3ViaS11dGlscy9pbmNsdWRlL2xpYmluaXBhcnNlci5oIGIvdWJpLXV0aWxzL2luY2x1ZGUvbGliaW5pcGFyc2VyLmgKLWluZGV4IGJlM2M2NjcuLmFiZDc3YWEgMTAwNjQ0Ci0tLS0gYS91YmktdXRpbHMvaW5jbHVkZS9saWJpbmlwYXJzZXIuaAotKysrIGIvdWJpLXV0aWxzL2luY2x1ZGUvbGliaW5pcGFyc2VyLmgKLUBAIC0xNTgsMjEgKzE1OCw2IEBAIGludCBpbmlwYXJzZXJfZ2V0aW50KGRpY3Rpb25hcnkgKiBkLCBjb25zdCBjaGFyICoga2V5LCBpbnQgbm90Zm91bmQpOwotIAotIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0gLyoqCi0tICBAYnJpZWYgICAgR2V0IHRoZSBzdHJpbmcgYXNzb2NpYXRlZCB0byBhIGtleSwgY29udmVydCB0byBhIGRvdWJsZQotLSAgQHBhcmFtICAgIGQgRGljdGlvbmFyeSB0byBzZWFyY2gKLS0gIEBwYXJhbSAgICBrZXkgS2V5IHN0cmluZyB0byBsb29rIGZvcgotLSAgQHBhcmFtICAgIG5vdGZvdW5kIFZhbHVlIHRvIHJldHVybiBpbiBjYXNlIG9mIGVycm9yCi0tICBAcmV0dXJuICAgZG91YmxlCi0tCi0tICBUaGlzIGZ1bmN0aW9uIHF1ZXJpZXMgYSBkaWN0aW9uYXJ5IGZvciBhIGtleS4gQSBrZXkgYXMgcmVhZCBmcm9tIGFuCi0tICBpbmkgZmlsZSBpcyBnaXZlbiBhcyAic2VjdGlvbjprZXkiLiBJZiB0aGUga2V5IGNhbm5vdCBiZSBmb3VuZCwKLS0gIHRoZSBub3Rmb3VuZCB2YWx1ZSBpcyByZXR1cm5lZC4KLS0gKi8KLS0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLS1kb3VibGUgaW5pcGFyc2VyX2dldGRvdWJsZShkaWN0aW9uYXJ5ICogZCwgY2hhciAqIGtleSwgZG91YmxlIG5vdGZvdW5kKTsKLS0KLS0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotLS8qKgotICAgQGJyaWVmICAgIEdldCB0aGUgc3RyaW5nIGFzc29jaWF0ZWQgdG8gYSBrZXksIGNvbnZlcnQgdG8gYSBib29sZWFuCi0gICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAotICAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCi1kaWZmIC0tZ2l0IGEvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jIGIvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jCi1pbmRleCA4OThmNTdmLi5iYTcwYzA4IDEwMDY0NAotLS0tIGEvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jCi0rKysgYi91YmktdXRpbHMvbGliaW5pcGFyc2VyLmMKLUBAIC0zMTYsMjggKzMxNiw2IEBAIGludCBpbmlwYXJzZXJfZ2V0aW50KGRpY3Rpb25hcnkgKiBkLCBjb25zdCBjaGFyICoga2V5LCBpbnQgbm90Zm91bmQpCi0gCi0gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSAvKioKLS0gIEBicmllZiAgICBHZXQgdGhlIHN0cmluZyBhc3NvY2lhdGVkIHRvIGEga2V5LCBjb252ZXJ0IHRvIGEgZG91YmxlCi0tICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAotLSAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCi0tICBAcGFyYW0gICAgbm90Zm91bmQgVmFsdWUgdG8gcmV0dXJuIGluIGNhc2Ugb2YgZXJyb3IKLS0gIEByZXR1cm4gICBkb3VibGUKLS0KLS0gIFRoaXMgZnVuY3Rpb24gcXVlcmllcyBhIGRpY3Rpb25hcnkgZm9yIGEga2V5LiBBIGtleSBhcyByZWFkIGZyb20gYW4KLS0gIGluaSBmaWxlIGlzIGdpdmVuIGFzICJzZWN0aW9uOmtleSIuIElmIHRoZSBrZXkgY2Fubm90IGJlIGZvdW5kLAotLSAgdGhlIG5vdGZvdW5kIHZhbHVlIGlzIHJldHVybmVkLgotLSAqLwotLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotLWRvdWJsZSBpbmlwYXJzZXJfZ2V0ZG91YmxlKGRpY3Rpb25hcnkgKiBkLCBjaGFyICoga2V5LCBkb3VibGUgbm90Zm91bmQpCi0tewotLSAgICBjaGFyICAgICogICBzdHIgOwotLQotLSAgICBzdHIgPSBpbmlwYXJzZXJfZ2V0c3RyaW5nKGQsIGtleSwgSU5JX0lOVkFMSURfS0VZKTsKLS0gICAgaWYgKHN0cj09SU5JX0lOVkFMSURfS0VZKSByZXR1cm4gbm90Zm91bmQgOwotLSAgICByZXR1cm4gYXRvZihzdHIpOwotLX0KLS0KLS0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotLS8qKgotICAgQGJyaWVmICAgIEdldCB0aGUgc3RyaW5nIGFzc29jaWF0ZWQgdG8gYSBrZXksIGNvbnZlcnQgdG8gYSBib29sZWFuCi0gICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAotICAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCi0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjXzEuNS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmNfMS41LjIuYmIKaW5kZXggNTE4YzAyZi4uYWJiMGQ0YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmNfMS41LjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmNfMS41LjIuYmIKQEAgLTExLDEyICsxMSwxNSBAQAogCiBTUkNSRVYgPSAiYWVhMzY0MTcwNjdkYWRlNzUxOTJiYWZhMDNhZjcwYjZlYjI2NzdiMSIKIFNSQ19VUkkgPSAiZ2l0Oi8vZ2l0LmluZnJhZGVhZC5vcmcvbXRkLXV0aWxzLmdpdCBcCi0gICAgICAgICAgICAgZmlsZTovLzAwMDEtTWFrZWZpbGUtb25seS1idWlsZC11YmktdXRpbHMucGF0Y2ggXAorICAgICAgICAgICAgIGZpbGU6Ly8wMDAxLU1ha2VmaWxlLWJ1aWxkLXViaS11dGlscy1vbmx5LnBhdGNoIFwKICAgICAgICAgICAgICBmaWxlOi8vMDAwMi1jb21tb24ubWstZm9yLWtsaWJjLUNDLWlzLWtsY2MucGF0Y2ggXAotICAgICAgICAgICAgIGZpbGU6Ly8wMDAzLWxpYnViaS5jLWFkZC1rbGliYy1zcGVjaWZpYy1maXhlcy5wYXRjaCBcCi0gICAgICAgICAgICAgZmlsZTovLzAwMDQtY29tbW9uLmgta2xpYmMtZml4ZXMtMS5wYXRjaCBcCi0gICAgICAgICAgICAgZmlsZTovLzAwMDUtY29tbW9uLmgta2xpYmMtZml4ZXMtMi5wYXRjaCBcCisgICAgICAgICAgICAgZmlsZTovLzAwMDMtbGlidWJpLmMtYWRkLWtsaWJjLXNwZWNpZmljLWZpeGVzLWZvci1pb2N0bC5wYXRjaCBcCisgICAgICAgICAgICAgZmlsZTovLzAwMDQtUmVzdG9yZS1jb21wYXRpYmlsaXR5LXRvLWRpZXRsaWJjLWtsaWJjLW11c2wtbGliYy1hZi5wYXRjaCBcCisgICAgICAgICAgICAgZmlsZTovLzAwMDUtY29tbW9uLmgtbW9yZS13b3JrYXJvdW5kcy1mb3Ita2xpYmMtY29tcGF0aWJpbGl0eS5wYXRjaCBcCiAgICAgICAgICAgICAgZmlsZTovLzAwMDYtbGliaW5pcGFyc2VyLXJlbW92ZS11bnVzZWQtZnVuY3Rpb24tbmVlZGluZy1mbG9hdC5wYXRjaCBcCisgICAgICAgICAgICAgZmlsZTovLzAwMDctbXRkLXV0aWxzLWNvbW1vbi5jLWNvbnZlcnQtdG8taW50ZWdlci1hcml0aG1ldGljLnBhdGNoIFwKKyAgICAgICAgICAgICBmaWxlOi8vMDAwOC11YmktdXRpbHMtdWJpZm9ybWF0LmMtY29udmVydC10by1pbnRlZ2VyLWFyaXRobWV0aWMucGF0Y2ggXAorICAgICAgICAgICAgIGZpbGU6Ly8wMDA5LUVsaW1pbmF0ZS13YXJuaW5ncy1hYm91dC1pbXBsaWNpdC1ub24tY29uc3QtY2FzdGluZy0ucGF0Y2ggXAogICAgICAgICAgICAgICIKIAogUyA9ICIke1dPUktESVJ9L2dpdC8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMta2VybmVsL2tleGVjL2tleGVjLXRvb2xzLWtsaWJjXzIuMC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWtlcm5lbC9rZXhlYy9rZXhlYy10b29scy1rbGliY18yLjAuMi5iYgppbmRleCA0OWM1M2EzLi4yZTI3MDMzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMta2VybmVsL2tleGVjL2tleGVjLXRvb2xzLWtsaWJjXzIuMC4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1rZXJuZWwva2V4ZWMva2V4ZWMtdG9vbHMta2xpYmNfMi4wLjIuYmIKQEAgLTEsMTAgKzEsMTYgQEAKICMgdGhlIGJpbmFyaWVzIGFyZSBzdGF0aWNhbGx5IGxpbmtlZCBhZ2FpbnN0IGtsaWJjCi1yZXF1aXJlIHJlY2lwZXMta2VybmVsL2tleGVjL2tleGVjLXRvb2xzLmluYwogU1VNTUFSWSA9ICJLZXhlYyB0b29scywgc3RhdGljYWxseSBjb21waWxlZCBhZ2FpbnN0IGtsaWJjIgotU1JDX1VSSVttZDVzdW1dID0gIjkyZWZmOTNiMDk3NDc1Yjc3NjdmOGM5OGRmODQ0MDhhIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjA5ZTE4MGZmMzZkZWUwODcxODJjZGM5MzliYTZjNjkxN2I2YWRiYjVmYzEyZDU4OWYzMWZkMzY1OWI2NDcxZjIiCitBVVRIT1IgPSAiRXJpYyBCaWVkZXJtYW4iCitIT01FUEFHRSA9ICJodHRwOi8va2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMva2VybmVsL2tleGVjLyIKK1NFQ1RJT04gPSAia2VybmVsL3VzZXJsYW5kIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWVhNWJlZDJmNjBkMzU3NjE4Y2ExNjFhZDUzOWY3YzBhIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2tleGVjL2tleGVjLmM7YmVnaW5saW5lPTE7ZW5kbGluZT0yMDttZDU9YWYxMGY2YWU0YTg3MTU5NjVlNjQ4YWE2ODdhZDNlMDkiCitERVBFTkRTID0gInpsaWIgeHoiCiAKLWluaGVyaXQga2xpYmMKK1BSID0gInIxIgorCitpbmhlcml0IGtsaWJjIGF1dG90b29scwogCiBGSUxFU1BBVEggPS4gIiR7RklMRV9ESVJOQU1FfS9rZXhlYy10b29scy0ke1BWfToiCiAKQEAgLTIzLDYgKzI5LDkgQEAKICAgICAgICAgICAgIGZpbGU6Ly8wMDAxLUFkanVzdC10aGUtb3JkZXItb2YtaGVhZGVycy10by1maXgtYnVpbGQtZm9yLW11c2wucGF0Y2ggXAogICAgICAgICAgICAgIgogCitTUkNfVVJJW21kNXN1bV0gPSAiOTJlZmY5M2IwOTc0NzViNzc2N2Y4Yzk4ZGY4NDQwOGEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDllMTgwZmYzNmRlZTA4NzE4MmNkYzkzOWJhNmM2OTE3YjZhZGJiNWZjMTJkNTg5ZjMxZmQzNjU5YjY0NzFmMiIKKwogU1JDX1VSSV9hcHBlbmRfYXJtID0gIiBmaWxlOi8vYXJtX2NyYXNoZHVtcC5wYXRjaCIKIFNSQ19VUklfYXBwZW5kX3Bvd2VycGMgPSAiIGZpbGU6Ly9wcGNfX2xzaHJkaTMucGF0Y2giCiBTUkNfVVJJX2FwcGVuZF94ODYgPSAiIGZpbGU6Ly94ODZfc3lzX2lvLnBhdGNoIGZpbGU6Ly94ODZfYmFzZW5hbWUucGF0Y2ggZmlsZTovL3g4Nl92ZnNjYW5mLnBhdGNoIGZpbGU6Ly94ODZfa2V4ZWNfdGVzdC5wYXRjaCIKQEAgLTM1LDcgKzQ0LDI2IEBACiBDRkxBR1MgKz0gIi1JJHtTVEFHSU5HX0RJUl9IT1NUfSR7bGliZGlyfS9rbGliYy9pbmNsdWRlIC1JJHtTVEFHSU5HX0RJUl9IT1NUfSR7bGliZGlyfS9rbGliYy9pbmNsdWRlL2JpdHMzMiIKIENGTEFHU194ODYtNjQgKz0gIi1JJHtTVEFHSU5HX0RJUl9IT1NUfSR7bGliZGlyfS9rbGliYy9pbmNsdWRlIC1JJHtTVEFHSU5HX0RJUl9IT1NUfSR7bGliZGlyfS9rbGliYy9pbmNsdWRlL2JpdHM2NCIKIAorZG9fY29tcGlsZV9wcmVwZW5kKCkgeworICAgICMgUmVtb3ZlIHRoZSBwcmVwYWNrYWdlZCBjb25maWcuaCBmcm9tIHRoZSBzb3VyY2UgdHJlZSBhcyBpdCBvdmVycmlkZXMKKyAgICAjIHRoZSBzYW1lIGZpbGUgZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZSBhbmQgcGxhY2VkIGluIHRoZSBidWlsZCB0cmVlCisgICAgcm0gLWYgJHtTfS9pbmNsdWRlL2NvbmZpZy5oCisKKyAgICAjIFJlbW92ZSB0aGUgJyouZCcgZmlsZSB0byBtYWtlIHN1cmUgdGhlIHJlY29tcGlsZSBpcyBPSworICAgIGZvciBkZXAgaW4gYGZpbmQgJHtCfSAtdHlwZSBmIC1uYW1lICcqLmQnYDsgZG8KKyAgICAgICAgZGVwX25vX2Q9ImBlY2hvICRkZXAgfCBzZWQgJ3MjLmQkIyMnYCIKKyAgICAgICAgIyBSZW1vdmUgZmlsZS5kIHdoZW4gdGhlcmUgaXMgYSBmaWxlLm8KKyAgICAgICAgaWYgWyAtZiAiJGRlcF9ub19kLm8iIF07IHRoZW4KKyAgICAgICAgICAgIHJtIC1mICRkZXAKKyAgICAgICAgZmkKKyAgICBkb25lCit9CisKIFBBQ0tBR0VTID0rICJrZXhlYy1rbGliYyBrZHVtcC1rbGliYyIKIAogRklMRVNfa2V4ZWMta2xpYmMgPSAiJHtzYmluZGlyfS9rZXhlYyIKIEZJTEVTX2tkdW1wLWtsaWJjID0gIiR7c2JpbmRpcn0va2R1bXAiCisKK0lOU0FORV9TS0lQXyR7UE59ID0gImFyY2giCisKK0NPTVBBVElCTEVfSE9TVCA9ICcoeDg2XzY0Lip8aS44Ni4qfGFybS4qfGFhcmNoNjQuKnxwb3dlcnBjLip8bWlwcy4qKS0obGludXh8ZnJlZWJzZC4qKScKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL1JFQURNRSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL1JFQURNRQppbmRleCBiNTlkZmUwLi4yMGY0ZmI4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9SRUFETUUKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvUkVBRE1FCkBAIC0xLDIwICsxLDE5IEBACiBUaGlzIGxheWVyIGRlcGVuZHMgb246CiAKIFVSSTogZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuZW1iZWRkZWQvb2UtY29yZS5naXQKLWJyYW5jaDogcm9ja28KK2JyYW5jaDogbWFzdGVyCiByZXZpc2lvbjogSEVBRAogCiBVUkk6IGdpdDovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL21ldGEtb2UuZ2l0CiBsYXllcnM6IG1ldGEtb2UKLWJyYW5jaDogcm9ja28KK2JyYW5jaDogbWFzdGVyCiByZXZpc2lvbjogSEVBRAogCi1TZW5kIHB1bGwgcmVxdWVzdHMgdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgd2l0aCAnW21ldGEtbXVsdGltZWRpYV1bcm9ja29dJyBpbiB0aGUgc3ViamVjdCcKK1NlbmQgcHVsbCByZXF1ZXN0cyB0byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyB3aXRoICdbbWV0YS1tdWx0aW1lZGlhXScgaW4gdGhlIHN1YmplY3QnCiAKIFdoZW4gc2VuZGluZyBzaW5nbGUgcGF0Y2hlcywgcGxlYXNlIHVzZSBzb21ldGhpbmcgbGlrZToKLSdnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1tdWx0aW1lZGlhXVtyb2Nrb11bUEFUQ0gKKydnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1tdWx0aW1lZGlhXVtQQVRDSAogCiBZb3UgYXJlIGVuY291cmFnZWQgdG8gZm9yayB0aGUgbWlycm9yIG9uIGdpdGh1YiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL21ldGEtb2UvIHRvIHNoYXJlIHlvdXIgcGF0Y2hlcywgdGhpcyBpcyBwcmVmZXJyZWQgZm9yIHBhdGNoIHNldHMgY29uc2lzdGluZyBvZiBtb3JlIHRoYW4gb25lIHBhdGNoLiBPdGhlciBzZXJ2aWNlcyBsaWtlIGdpdG9yaW91cywgcmVwby5vci5jeiBvciBzZWxmIGhvc3RlZCBzZXR1cHMgYXJlIG9mIGNvdXJzZSBhY2NlcHRlZCBhcyB3ZWxsLCAnZ2l0IGZldGNoIDxyZW1vdGU+JyB3b3JrcyB0aGUgc2FtZSBvbiBhbGwgb2YgdGhlbS4gV2UgcmVjb21tZW5kIGdpdGh1YiBiZWNhdXNlIGl0IGlzIGZyZWUsIGVhc3kgdG8gdXNlLCBoYXMgYmVlbiBwcm92ZW4gdG8gYmUgcmVsaWFibGUgYW5kIGhhcyBhIHJlYWxseSBnb29kIHdlYiBHVUkuCiAKLXJvY2tvIEJyYW5jaCBNYWludGFpbmVyOgotQXJtaW4gS3VzdGVyIDxha3VzdGVyODA4QGdtYWlsLmNvbT4KK0xheWVyIG1haW50YWluZXI6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL2NvbmYvbGF5ZXIuY29uZgppbmRleCBkNjhiMTNmLi5jZmVkZjJmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9jb25mL2xheWVyLmNvbmYKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvY29uZi9sYXllci5jb25mCkBAIC0yOSwzICsyOSw0IEBACiAKIExBWUVSREVQRU5EU19tdWx0aW1lZGlhLWxheWVyID0gImNvcmUiCiAKK0xBWUVSU0VSSUVTX0NPTVBBVF9tdWx0aW1lZGlhLWxheWVyID0gInN1bW8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ndXBucC9ndXBucC10b29sc18wLjguMTMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ndXBucC9ndXBucC10b29sc18wLjguMTMuYmIKaW5kZXggOTM2MGQ2NS4uM2RkYjgxOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvZ3VwbnAvZ3VwbnAtdG9vbHNfMC44LjEzLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2d1cG5wL2d1cG5wLXRvb2xzXzAuOC4xMy5iYgpAQCAtOCw0ICs4LDYgQEAKIFNSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2FkLmdub21lLm9yZy9zb3VyY2VzLyR7QlBOfS8wLjgvJHtCUE59LSR7UFZ9LnRhci54eiIKIFNSQ19VUklbbWQ1c3VtXSA9ICIyMTJkODVlYmNlODliMzI0NjhiNTllMTE2NDA1MGQ0MCIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICJhYTNkZWNiOWQ1MzJjMGUyZTUwNWFkYzU5MmY0MzFmZDgxYzAyMzFkZWQyOTgxMTI5ZTg3ZGExMzcxMjQ3OWVkIgotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcgZ2V0dGV4dAorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlidXBucC9saWJ1cG5wMS42L3NlcGJ1aWxkZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlidXBucC9saWJ1cG5wMS42L3NlcGJ1aWxkZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDkzY2VhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYnVwbnAvbGlidXBucDEuNi9zZXBidWlsZGZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLUZyb20gZTE5OGYwYTg3NjYwYTA0ODE2NGNhMGUxNmQxODUxN2QwYWVlODQ2ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlIE1jQ3VyZHkgPGFybWNjdXJkeUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDkgSnVuIDIwMTUgMTI6MjA6NDUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IGJ1aWxkcyB3aGVuIHVzaW5nIHNlcGFyYXRlIHNvdXJjZSBhbmQgYnVpbGQgZGlyZWN0b3JpZXMuCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZSBNY0N1cmR5IDxhcm1jY3VyZHlAZ21haWwuY29tPgotLS0tCi0gY29uZmlndXJlLmFjICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggYTg3MzFiNS4uNTRhM2MzZCAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNzQ0LDkgKzc0NCw5IEBAIEFDX09VVFBVVAotICMKLSAjIEZpbGVzIGNvcGllZCBmb3Igd2luZG93cyBjb21waWxhdGlvbi4KLSAjCi0tZWNobyAiY29uZmlndXJlOiBjb3B5aW5nIFwiYXV0b2NvbmZpZy5oXCIgICAgICAgICAgdG8gXCJidWlsZC9pbmMvYXV0b2NvbmZpZy5oXCIiCi0tdGVzdCAtZCBidWlsZC9pbmMgfHwgbWtkaXIgLXAgYnVpbGQvaW5jCi0tY3AgYXV0b2NvbmZpZy5oIGJ1aWxkL2luYy9hdXRvY29uZmlnLmgKLS1lY2hvICJjb25maWd1cmU6IGNvcHlpbmcgXCJ1cG5wL2luYy91cG5wY29uZmlnLmhcIiB0byBcImJ1aWxkL2luYy91cG5wY29uZmlnLmhcIiIKLS1jcCB1cG5wL2luYy91cG5wY29uZmlnLmggYnVpbGQvaW5jL3VwbnBjb25maWcuaAotK2VjaG8gImNvbmZpZ3VyZTogY29weWluZyBcImF1dG9jb25maWcuaFwiICAgICAgICAgIHRvIFwiXCRzcmNkaXIvYnVpbGQvaW5jL2F1dG9jb25maWcuaFwiIgotK3Rlc3QgLWQgJHNyY2Rpci9idWlsZC9pbmMgfHwgbWtkaXIgLXAgJHNyY2Rpci9idWlsZC9pbmMKLStjcCBhdXRvY29uZmlnLmggJHNyY2Rpci9idWlsZC9pbmMvYXV0b2NvbmZpZy5oCi0rZWNobyAiY29uZmlndXJlOiBjb3B5aW5nIFwidXBucC9pbmMvdXBucGNvbmZpZy5oXCIgdG8gXCJcJHNyY2Rpci9idWlsZC9pbmMvdXBucGNvbmZpZy5oXCIiCi0rY3AgdXBucC9pbmMvdXBucGNvbmZpZy5oICRzcmNkaXIvYnVpbGQvaW5jL3VwbnBjb25maWcuaAotIAotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJ1cG5wL2xpYnVwbnAxLjZfMS42LjIxLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlidXBucC9saWJ1cG5wMS42XzEuNi4yMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFiMDQyOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJ1cG5wL2xpYnVwbnAxLjZfMS42LjIxLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotU1VNTUFSWSA9ICJQb3J0YWJsZSBTREsgZm9yIFVQblAqIERldmljZXMiCi1ERVNDUklQVElPTiA9ICJUaGUgUG9ydGFibGUgU0RLIGZvciBVUG5QIERldmljZXMgaXMgYW4gU0RLIGZvciBkZXZlbG9wbWVudCBvZiBcCi1VUG5QIGRldmljZSBhbmQgY29udHJvbCBwb2ludCBhcHBsaWNhdGlvbnMuIEl0IGNvbnNpc3RzIG9mIHRoZSBjb3JlIFVQblAgXAotcHJvdG9jb2xzIGFsb25nIHdpdGggYSBVUG5QLXNwZWNpZmljIGVYdGVuc2libGUgTWFya3VwIExhbmd1YWdlIChYTUwpIHBhcnNlciBcCi1zdXBwb3J0aW5nIHRoZSBEb2N1bWVudCBPYmplY3QgTW9kZWwgKERPTSkgTGV2ZWwgMiBBUEkgYW5kIGFuIG9wdGlvbmFsLCBcCi1pbnRlZ3JhdGVkIG1pbmkgd2ViIHNlcnZlciBmb3Igc2VydmluZyBVUG5QIHJlbGF0ZWQgZG9jdW1lbnRzLiIKLUhPTUVQQUdFID0gImh0dHA6Ly9wdXBucC5zb3VyY2Vmb3JnZS5uZXQvIgotTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iMzE5MGQ1MjQ0ZTA4ZTc4ZTRjOGVlNzg1NDRmNDg2MyIKLQotU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vcHVwbnAvbGlidXBucC0ke1BWfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovL3NlcGJ1aWxkZml4LnBhdGNoIFwKLSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjUxM2FkYWRiMDdmYTAzOWE4YWViMGNlYjdiN2IwZjZlIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImFmM2YzYzA4NDZhMWQ3NWJhZWFkYWU0YWE1YTJiZGE0Mjc1NjdlMmExZmI0NTU5YmY3M2NjZmYwYTRmOWEzOWIiCi0KLVMgPSAiJHtXT1JLRElSfS9saWJ1cG5wLSR7UFZ9IgotCi1pbmhlcml0IGF1dG90b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvcnlnZWwvcnlnZWxfMC4zNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvcnlnZWwvcnlnZWxfMC4zNC4wLmJiCmluZGV4IGQyZWRhNmIuLmU5NGM5ZmYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtY29ubmVjdGl2aXR5L3J5Z2VsL3J5Z2VsXzAuMzQuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9yeWdlbC9yeWdlbF8wLjM0LjAuYmIKQEAgLTMwLDYgKzMwLDcgQEAKIFBBQ0tBR0VDT05GSUdbbWVkaWEtZXhwb3J0XSA9ICItLWVuYWJsZS1tZWRpYS1leHBvcnQtcGx1Z2luLC0tZGlzYWJsZS1tZWRpYS1leHBvcnQtcGx1Z2luIgogUEFDS0FHRUNPTkZJR1tnc3QtbGF1bmNoXSA9ICItLWVuYWJsZS1nc3QtbGF1bmNoLXBsdWdpbiwtLWRpc2FibGUtZ3N0LWxhdW5jaC1wbHVnaW4iCiBQQUNLQUdFQ09ORklHW2d0ayszXSA9ICIsLS13aXRob3V0LXVpLGd0ayszIgorUEFDS0FHRUNPTkZJR1tsbXNdID0gIi0tZW5hYmxlLWxtcy1wbHVnaW4sLS1kaXNhYmxlLWxtcy1wbHVnaW4iCiAKIExJQlYgPSAiMi42IgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW1lZGlhY2VudGVyL2tvZGkva29kaV8xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbWVkaWFjZW50ZXIva29kaS9rb2RpXzE3LmJiCmluZGV4IDUxNThmMDUuLjI5NTYxODkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbWVkaWFjZW50ZXIva29kaS9rb2RpXzE3LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbWVkaWFjZW50ZXIva29kaS9rb2RpXzE3LmJiCkBAIC02LDYwICs2LDU5IEBACiBGSUxFU1BBVEggPS4gIiR7RklMRV9ESVJOQU1FfS9rb2RpLTE3OiIKIAogREVQRU5EUyA9ICIgXAotICAgICAgICAgICAgY21ha2UtbmF0aXZlIFwKLSAgICAgICAgICAgIGN1cmwtbmF0aXZlIFwKLSAgICAgICAgICAgIGdwZXJmLW5hdGl2ZSBcCi0gICAgICAgICAgICBqc29uc2NoZW1hYnVpbGRlci1uYXRpdmUgXAotICAgICAgICAgICAgbmFzbS1uYXRpdmUgXAotICAgICAgICAgICAgc3dpZy1uYXRpdmUgXAotICAgICAgICAgICAgdW56aXAtbmF0aXZlIFwKLSAgICAgICAgICAgIHlhc20tbmF0aXZlIFwKLSAgICAgICAgICAgIHppcC1uYXRpdmUgXAotICAgICAgICAgICAgYXZhaGkgXAotICAgICAgICAgICAgYm9vc3QgXAotICAgICAgICAgICAgYnppcDIgXAotICAgICAgICAgICAgY3Jvc3NndWlkIFwKLSAgICAgICAgICAgIGN1cmwgXAotICAgICAgICAgICAgZGNhZGVjIFwKLSAgICAgICAgICAgIGVuY2EgXAotICAgICAgICAgICAgZXhwYXQgXAotICAgICAgICAgICAgZmFhZDIgXAotICAgICAgICAgICAgZmZtcGVnIFwKLSAgICAgICAgICAgIGZvbnRjb25maWcgXAotICAgICAgICAgICAgZnJpYmlkaSBcCi0gICAgICAgICAgICBnaWZsaWIgXAotICAgICAgICAgICAgamFzcGVyIFwKLSAgICAgICAgICAgIGxpYmFzcyBcCi0gICAgICAgICAgICBsaWJjZGlvIFwKLSAgICAgICAgICAgIGxpYmNlYyBcCi0gICAgICAgICAgICBsaWJtYWQgXAotICAgICAgICAgICAgbGlibWljcm9odHRwZCBcCi0gICAgICAgICAgICBsaWJtbXMgXAotICAgICAgICAgICAgbGlibW1zIFwKLSAgICAgICAgICAgIGxpYm1vZHBsdWcgXAotICAgICAgICAgICAgbGlicGNyZSBcCi0gICAgICAgICAgICBsaWJwbGlzdCBcCi0gICAgICAgICAgICBsaWJzYW1wbGVyYXRlMCBcCi0gICAgICAgICAgICBsaWJzZGwtaW1hZ2UgXAotICAgICAgICAgICAgbGlic2RsLW1peGVyIFwKLSAgICAgICAgICAgIGxpYnNxdWlzaCBcCi0gICAgICAgICAgICBsaWJzc2ggXAotICAgICAgICAgICAgbGlidGlueXhtbCBcCi0gICAgICAgICAgICBsaWJ1c2IxIFwKLSAgICAgICAgICAgIGxpYnhzbHQgXAotICAgICAgICAgICAgbHpvIFwKLSAgICAgICAgICAgIG1wZWcyZGVjIFwKLSAgICAgICAgICAgIHB5dGhvbiBcCi0gICAgICAgICAgICBzYW1iYSBcCi0gICAgICAgICAgICBzcWxpdGUzIFwKLSAgICAgICAgICAgIHRhZ2xpYiBcCi0gICAgICAgICAgICB2aXJ0dWFsL2VnbCBcCi0gICAgICAgICAgICB2aXJ0dWFsL2xpYnNkbCBcCi0gICAgICAgICAgICB3YXZwYWNrIFwKLSAgICAgICAgICAgIHlhamwgXAotICAgICAgICAgICAgemxpYiBcCi0gICAgICAgICAgICAke0BlbmFibGVfZ2xldyhiYiwgZCl9IFwKLSAgICAgICAgICAiCisgICAgY21ha2UtbmF0aXZlIFwKKyAgICBjdXJsLW5hdGl2ZSBcCisgICAgZ3BlcmYtbmF0aXZlIFwKKyAgICBqc29uc2NoZW1hYnVpbGRlci1uYXRpdmUgXAorICAgIG5hc20tbmF0aXZlIFwKKyAgICBzd2lnLW5hdGl2ZSBcCisgICAgdW56aXAtbmF0aXZlIFwKKyAgICB5YXNtLW5hdGl2ZSBcCisgICAgemlwLW5hdGl2ZSBcCisgICAgYXZhaGkgXAorICAgIGJvb3N0IFwKKyAgICBiemlwMiBcCisgICAgY3Jvc3NndWlkIFwKKyAgICBjdXJsIFwKKyAgICBkY2FkZWMgXAorICAgIGVuY2EgXAorICAgIGV4cGF0IFwKKyAgICBmYWFkMiBcCisgICAgZmZtcGVnIFwKKyAgICBmb250Y29uZmlnIFwKKyAgICBmcmliaWRpIFwKKyAgICBnaWZsaWIgXAorICAgIGphc3BlciBcCisgICAgbGliYXNzIFwKKyAgICBsaWJjZGlvIFwKKyAgICBsaWJjZWMgXAorICAgIGxpYm1hZCBcCisgICAgbGlibWljcm9odHRwZCBcCisgICAgbGlibW1zIFwKKyAgICBsaWJtbXMgXAorICAgIGxpYm1vZHBsdWcgXAorICAgIGxpYnBjcmUgXAorICAgIGxpYnBsaXN0IFwKKyAgICBsaWJzYW1wbGVyYXRlMCBcCisgICAgbGlic2RsLWltYWdlIFwKKyAgICBsaWJzZGwtbWl4ZXIgXAorICAgIGxpYnNxdWlzaCBcCisgICAgbGlic3NoIFwKKyAgICBsaWJ0aW55eG1sIFwKKyAgICBsaWJ1c2IxIFwKKyAgICBsaWJ4c2x0IFwKKyAgICBsem8gXAorICAgIG1wZWcyZGVjIFwKKyAgICBweXRob24gXAorICAgIHNxbGl0ZTMgXAorICAgIHRhZ2xpYiBcCisgICAgdmlydHVhbC9lZ2wgXAorICAgIHZpcnR1YWwvbGlic2RsIFwKKyAgICB3YXZwYWNrIFwKKyAgICB5YWpsIFwKKyAgICB6bGliIFwKKyAgICAke0BlbmFibGVfZ2xldyhiYiwgZCl9IFwKKyIKIAogUFJPVklERVMgPSAieGJtYyIKIApAQCAtNjcsMjQgKzY2LDI0IEBACiBQViA9ICIxNy4zK2dpdHIke1NSQ1BWfSIKIEFERE9OU1BWID0gIjE3LjEiCiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20veGJtYy94Ym1jLmdpdDticmFuY2g9S3J5cHRvbiBcCi0gICAgICAgICAgIGh0dHBzOi8vcmVwby52b2lkbGludXguZXUvZGlzdGZpbGVzLyR7QlBOfS0ke0FERE9OU1BWfS1nZW5lcmF0ZWQtYWRkb25zLnRhci54ejtuYW1lPWFkZG9uczt1bnBhY2s9MCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAzLWNvbmZpZ3VyZS1kb24tdC10cnktdG8tcnVuLXN0dWZmLXRvLWZpbmQtdGlueXhtbC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA0LWhhbmRsZS1TSUdURVJNLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDUtYWRkLXN1cHBvcnQtdG8tcmVhZC1mcmVxdWVuY3ktb3V0cHV0LWlmLXVzaW5nLWludGVsLS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA2LURpc2FibGUtRFZELXN1cHBvcnQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwNy1BbHdheXMtY29tcGlsZS1saWJjcGx1ZmYtYXMtUElDLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDgta29kaS1jb25maWcuY21ha2UtdXNlLUNNQUtFX0ZJTkRfUk9PVF9QQVRILXRvLWZpeC1jci5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA5LWJ1aWxkLUFkZC1zdXBwb3J0LWZvci1tdXNsLXRyaXBsZXRzLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMTAtUnNzUmVhZGVyLUZpeC1jb21waWxlci13YXJuaW5nLWNvbXBhcmluZy1wb2ludGVyLXRvLS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDExLUxldC1jb25maWd1cmUtcGFzcy1vbi11bmtub3duLWFyY2hpdGVjdHVyZXMtc2V0dGluZy0ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAxMi1SZXZlcnQtZHJvaWQtZml4LWJ1aWxkcy13aXRoLUFNTC1kaXNhYmxlZC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWNoYW5nZS1vcmRlci1vZi1kZXRlY3RpbmctbGliZWdsLWFuZC1saWJnbGVzMi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDEzLUZUUFBhcnNlLmNwcC11c2Utc3RkLXN0cmluZy5wYXRjaCBcCisgICAgaHR0cHM6Ly9yZXBvLnZvaWRsaW51eC5ldS9kaXN0ZmlsZXMvJHtCUE59LSR7QURET05TUFZ9LWdlbmVyYXRlZC1hZGRvbnMudGFyLnh6O25hbWU9YWRkb25zO3VucGFjaz0wIFwKKyAgICBmaWxlOi8vMDAwMy1jb25maWd1cmUtZG9uLXQtdHJ5LXRvLXJ1bi1zdHVmZi10by1maW5kLXRpbnl4bWwucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDA0LWhhbmRsZS1TSUdURVJNLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNS1hZGQtc3VwcG9ydC10by1yZWFkLWZyZXF1ZW5jeS1vdXRwdXQtaWYtdXNpbmctaW50ZWwtLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNi1EaXNhYmxlLURWRC1zdXBwb3J0LnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNy1BbHdheXMtY29tcGlsZS1saWJjcGx1ZmYtYXMtUElDLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwOC1rb2RpLWNvbmZpZy5jbWFrZS11c2UtQ01BS0VfRklORF9ST09UX1BBVEgtdG8tZml4LWNyLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwOS1idWlsZC1BZGQtc3VwcG9ydC1mb3ItbXVzbC10cmlwbGV0cy5wYXRjaCBcCisgICAgZmlsZTovLzAwMTAtUnNzUmVhZGVyLUZpeC1jb21waWxlci13YXJuaW5nLWNvbXBhcmluZy1wb2ludGVyLXRvLS5wYXRjaCBcCisgICAgZmlsZTovLzAwMTEtTGV0LWNvbmZpZ3VyZS1wYXNzLW9uLXVua25vd24tYXJjaGl0ZWN0dXJlcy1zZXR0aW5nLS5wYXRjaCBcCisgICAgZmlsZTovLzAwMTItUmV2ZXJ0LWRyb2lkLWZpeC1idWlsZHMtd2l0aC1BTUwtZGlzYWJsZWQucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAxLWNoYW5nZS1vcmRlci1vZi1kZXRlY3RpbmctbGliZWdsLWFuZC1saWJnbGVzMi5wYXRjaCBcCisgICAgZmlsZTovLzAwMTMtRlRQUGFyc2UuY3BwLXVzZS1zdGQtc3RyaW5nLnBhdGNoIFwKICIKIAogU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLUZpeC1maWxlX0VtdS1vbi1tdXNsLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDItUmVtb3ZlLUZJTEVXUkFQLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMS1GaXgtZmlsZV9FbXUtb24tbXVzbC5wYXRjaCBcCisgICAgZmlsZTovLzAwMDItUmVtb3ZlLUZJTEVXUkFQLnBhdGNoIFwKICIKIFNSQ19VUklbYWRkb25zLm1kNXN1bV0gPSAiNzE5NjE0ZmE3NjQwMTFhMTg2NjVkMDhhZjVjOGM5MmYiCiBTUkNfVVJJW2FkZG9ucy5zaGEyNTZzdW1dID0gIjM1MGRhNTc0MDhjMjc0NzNlYWY0MGU3ZjU0NGJjOTQ4NDFiZjEwMWRjNDM0NjA4NTI2MGM1YzRhZjBhZGFjOTciCkBAIC0xMDIsOCArMTAxLDEwIEBACiBBQ0NFTF94ODYgPSAidmFhcGkgdmRwYXUiCiBBQ0NFTF94ODYtNjQgPSAidmFhcGkgdmRwYXUiCiAKLVBBQ0tBR0VDT05GSUcgPz89ICIke0FDQ0VMfSBvcGVuZ2wiCi1QQUNLQUdFQ09ORklHX2FwcGVuZCA9ICIgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4MTEnLCAnIHgxMScsICcgb3BlbmdsZXN2MicsIGQpfSIKK1BBQ0tBR0VDT05GSUcgPz89ICIke0FDQ0VMfSBvcGVuZ2wgXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneDExJywgJ3gxMScsICdvcGVuZ2xlc3YyJywgZCl9IFwKKyAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3BhbScsICdzYW1iYScsICcnLCBkKX0gXAorIgogCiBQQUNLQUdFQ09ORklHW29wZW5nbF0gPSAiLS1lbmFibGUtZ2wsLS1lbmFibGUtZ2xlcywiCiBQQUNLQUdFQ09ORklHW29wZW5nbGVzdjJdID0gIi0tZW5hYmxlLWdsZXMsLS1lbmFibGUtZ2wsdmlydHVhbC9lZ2wiCkBAIC0xMTMsNiArMTE0LDcgQEAKIFBBQ0tBR0VDT05GSUdbeDExXSA9ICItLWVuYWJsZS14MTEsLS1kaXNhYmxlLXgxMSxsaWJ4aW5lcmFtYSBsaWJ4bXUgbGlieHJhbmRyIGxpYnh0c3QiCiBQQUNLQUdFQ09ORklHW3B1bHNlYXVkaW9dID0gIi0tZW5hYmxlLXB1bHNlLC0tZGlzYWJsZS1wdWxzZSxwdWxzZWF1ZGlvIgogUEFDS0FHRUNPTkZJR1tsY21zXSA9ICItLWVuYWJsZS1sY21zMiwtLWRpc2FibGUtbGNtczIsbGNtcyIKK1BBQ0tBR0VDT05GSUdbc2FtYmFdID0gIi0tZW5hYmxlLXNhbWJhLC0tZGlzYWJsZS1zYW1iYSxzYW1iYSIKIAogRVhUUkFfT0VDT05GID0gIiBcCiAgICAgLS1kaXNhYmxlLWRlYnVnIFwKQEAgLTE4MywyOSArMTg1LDMxIEBACiAKICMga29kaSB1c2VzIHNvbWUga2luZCBvZiBkbG9wZW4oKSBtZXRob2QgZm9yIGxpYmNlYyBzbyB3ZSBuZWVkIHRvIGFkZCBpdCBtYW51YWxseQogIyBPcGVuR0wgYnVpbGRzIG5lZWQgZ2x4aW5mbywgdGhhdCdzIGluIG1lc2EtZGVtb3MKLVJSRUNPTU1FTkRTXyR7UE59X2FwcGVuZCA9ICIgbGliY2VjIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLWN0eXBlcyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbi1sYW5nIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXJlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLW5ldGNsaWVudCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbi1odG1sIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLWRpZmZsaWIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tanNvbiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbi16bGliIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNxbGl0ZTMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tY29tcHJlc3Npb24gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJjdXJsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAneDExJywgJ3hyYW5kciB4ZHB5aW5mbycsICcnLCBkKX0gXAorUlJFQ09NTUVORFNfJHtQTn1fYXBwZW5kID0gIiBcCisgICAgbGliY2VjIFwKKyAgICBweXRob24gXAorICAgIHB5dGhvbi1jdHlwZXMgXAorICAgIHB5dGhvbi1sYW5nIFwKKyAgICBweXRob24tcmUgXAorICAgIHB5dGhvbi1uZXRjbGllbnQgXAorICAgIHB5dGhvbi1odG1sIFwKKyAgICBweXRob24tZGlmZmxpYiBcCisgICAgcHl0aG9uLWpzb24gXAorICAgIHB5dGhvbi16bGliIFwKKyAgICBweXRob24tc2hlbGwgXAorICAgIHB5dGhvbi1zcWxpdGUzIFwKKyAgICBweXRob24tY29tcHJlc3Npb24gXAorICAgIGxpYmN1cmwgXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3gxMScsICd4cmFuZHIgeGRweWluZm8nLCAnJywgZCl9IFwKICIKLVJSRUNPTU1FTkRTXyR7UE59X2FwcGVuZF9saWJjLWdsaWJjID0gIiBnbGliYy1jaGFybWFwLWlibTg1MCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xpYmMtZ2NvbnYtaWJtODUwIFwKLQkJCQkJZ2xpYmMtZ2NvbnYtdW5pY29kZSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xpYmMtZ2NvbnYtdXRmLTMyIFwKLQkJCQkJZ2xpYmMtY2hhcm1hcC11dGYtOCBcCi0JCQkJCWdsaWJjLWxvY2FsZWRhdGEtZW4tdXMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCitSUkVDT01NRU5EU18ke1BOfV9hcHBlbmRfbGliYy1nbGliYyA9ICIgXAorICAgIGdsaWJjLWNoYXJtYXAtaWJtODUwIFwKKyAgICBnbGliYy1nY29udi1pYm04NTAgXAorICAgIGdsaWJjLWdjb252LXVuaWNvZGUgXAorICAgIGdsaWJjLWdjb252LXV0Zi0zMiBcCisgICAgZ2xpYmMtY2hhcm1hcC11dGYtOCBcCisgICAgZ2xpYmMtbG9jYWxlZGF0YS1lbi11cyBcCisiCiAKIFJQUk9WSURFU18ke1BOfSArPSAieGJtYyIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2NhcHMvY2Fwcy8wMDAxLURvLW5vdC11c2Utb2Jzb2xldGUtcG93MTBmLWZ1bmN0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2NhcHMvY2Fwcy8wMDAxLURvLW5vdC11c2Utb2Jzb2xldGUtcG93MTBmLWZ1bmN0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkNWUxYjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvY2Fwcy9jYXBzLzAwMDEtRG8tbm90LXVzZS1vYnNvbGV0ZS1wb3cxMGYtZnVuY3Rpb24ucGF0Y2gKQEAgLTAsMCArMSw1MCBAQAorRnJvbSAwY2M3MzYyZTE3MTYxNmRjZmViOTNjNmUxNTc2MzYyNzYxYmYxNGU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFdlZCwgMzEgSmFuIDIwMTggMTg6Mzc6MTYgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gRG8gbm90IHVzZSBvYnNvbGV0ZSBwb3cxMGYoKSBmdW5jdGlvbgorCitleHAxMCBuYW1lIGlzIHN0YW5kYXJkaXplZCBpbiBUUyAxODY2MS00IGFuZCBpdHMKK2F2YWlsYWJsZSBpbiBnbGliYyBzaW5jZSB2ZXJzaW9uIDIuMQoraXQgaGFzIGJlZW4gbm93IHJlbW92ZWQgZnJvbSBnbGliYyAyLjI3KworCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIGRzcC92NGZfSUlSMi5oIHwgNiArKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZHNwL3Y0Zl9JSVIyLmggYi9kc3AvdjRmX0lJUjIuaAoraW5kZXggYTY4ZWNmNS4uZWJkMTIzNCAxMDA2NDQKKy0tLSBhL2RzcC92NGZfSUlSMi5oCisrKysgYi9kc3AvdjRmX0lJUjIuaAorQEAgLTMzLDcgKzMzLDcgQEAKKyBuYW1lc3BhY2UgRFNQIHsKKyAKKyAjaWZkZWYgX19BUFBMRV9fCistaW5saW5lIGZsb2F0IHBvdzEwZihmbG9hdCBmKSB7cmV0dXJuIHBvdygxMCxmKTt9CisraW5saW5lIGZsb2F0IGV4cDEwZihmbG9hdCBmKSB7cmV0dXJuIF9fZXhwMTBmKGYpO30KKyAjZW5kaWYKKyAKKyBjbGFzcyBSQkp2NAorQEAgLTE0Miw3ICsxNDIsNyBAQCBjbGFzcyBJSVIydjQKKyAJCQkJLyogQSA9IHBvdyAoMTAsIGdhaW4gLyA0MCkgKi8KKyAJCQkJdjRmX3QgQSA9ICh2NGZfdCkgey4wMjUsLjAyNSwuMDI1LC4wMjV9OworIAkJCQlBICo9IGdhaW47CistCQkJCUEgPSB2NGZfbWFwPHBvdzEwZj4gKEEpOworKwkJCQlBID0gdjRmX21hcDxleHAxMGY+IChBKTsKKyAKKyAJCQkJUkJKdjQgcCAoZiwgUSk7CisgCitAQCAtNDI5LDcgKzQyOSw3IEBAIGNsYXNzIElJUjJ2NEJhbmsKKyAJCQkJCS8qIEEgPSBwb3cgKDEwLCBnYWluIC8gNDApICovCisgCQkJCQl2NGZfdCBBID0gKHY0Zl90KSB7LjAyNSwuMDI1LC4wMjUsLjAyNX07CisgCQkJCQlBICo9IGdhaW5baV07CistCQkJCQlBID0gdjRmX21hcDxwb3cxMGY+IChBKTsKKysJCQkJCUEgPSB2NGZfbWFwPGV4cDEwZj4gKEEpOworIAorIAkJCQkJUkJKdjQgcCAoZltpXSwgUVtpXSk7CisgCistLSAKKzIuMTYuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvY2Fwcy9jYXBzXzAuOS4yNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9jYXBzL2NhcHNfMC45LjI0LmJiCmluZGV4IDI5MTY3ZDEuLmZlODY0YzQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9jYXBzL2NhcHNfMC45LjI0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9jYXBzL2NhcHNfMC45LjI0LmJiCkBAIC03LDYgKzcsNyBAQAogICAgICAgICAgICBmaWxlOi8vQXZvaWQtYW1iaWd1aXR5LWluLWRpdi1pbnZvY2F0aW9uLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtYmFzaWMuaC1Vc2UtYzk5LXN1cHBvcnRlZC1zdGRpbnQtdHlwZXMucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vYXBwZW5kX2xkZmxhZ3MucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1Eby1ub3QtdXNlLW9ic29sZXRlLXBvdzEwZi1mdW5jdGlvbi5wYXRjaCBcCiAgICAgICAgICAgICIKIAogU1JDX1VSSVttZDVzdW1dID0gImMxZDYzNDAzOGRjYjU0NzAyMzA2YzBlMzBjYjFjNjI2IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsdWlkc3ludGgvZmlsZXMvMDAwMS1Vc2UtQVJNLU5FT04tYWNjZWxhcmF0aW9uLWZvci1mbG9hdC1tdWx0aXRocmVhZGVkLXNlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsdWlkc3ludGgvZmlsZXMvMDAwMS1Vc2UtQVJNLU5FT04tYWNjZWxhcmF0aW9uLWZvci1mbG9hdC1tdWx0aXRocmVhZGVkLXNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlMTg0NmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZmx1aWRzeW50aC9maWxlcy8wMDAxLVVzZS1BUk0tTkVPTi1hY2NlbGFyYXRpb24tZm9yLWZsb2F0LW11bHRpdGhyZWFkZWQtc2UucGF0Y2gKQEAgLTAsMCArMSw3NiBAQAorRnJvbSAyZGU3ZTEyOGZiZGY1Mjg3MTZiNTAwY2YyN2VkOWE0MzU4YzkzMWM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMjQgTm92IDIwMTcgMDA6MDU6MzUgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzJdIFVzZSBBUk0tTkVPTiBhY2NlbGFyYXRpb24gZm9yIGZsb2F0LW11bHRpdGhyZWFkZWQgc2V0dXBzCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgc3JjL3J2b2ljZS9mbHVpZF9ydm9pY2VfbWl4ZXIuYyB8IDI2ICsrKysrKysrKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3NyYy9ydm9pY2UvZmx1aWRfcnZvaWNlX21peGVyLmMgYi9zcmMvcnZvaWNlL2ZsdWlkX3J2b2ljZV9taXhlci5jCitpbmRleCA5NjE2NTE4Li5kYmY4MDU3IDEwMDY0NAorLS0tIGEvc3JjL3J2b2ljZS9mbHVpZF9ydm9pY2VfbWl4ZXIuYworKysrIGIvc3JjL3J2b2ljZS9mbHVpZF9ydm9pY2VfbWl4ZXIuYworQEAgLTI3LDYgKzI3LDEwIEBACisgI2luY2x1ZGUgImZsdWlkX2xhZHNwYS5oIgorICNpbmNsdWRlICJmbHVpZF9zeW50aC5oIgorIAorKyNpZiBkZWZpbmVkKF9fQVJNX05FT05fXykKKysjaW5jbHVkZSAiYXJtX25lb24uaCIKKysjZW5kaWYKKysKKyAKKyAjZGVmaW5lIEVOQUJMRV9NSVhFUl9USFJFQURTIDEKKyAKK0BAIC03OTQsMjAgKzc5OCw0MiBAQCBmbHVpZF9taXhlcl9idWZmZXJzX21peChmbHVpZF9taXhlcl9idWZmZXJzX3QqIGRlc3QsIGZsdWlkX21peGVyX2J1ZmZlcnNfdCogc3JjKQorICAgaWYgKG1pbmJ1ZiA+IHNyYy0+YnVmX2NvdW50KQorICAgICBtaW5idWYgPSBzcmMtPmJ1Zl9jb3VudDsKKyAgIGZvciAoaT0wOyBpIDwgbWluYnVmOyBpKyspIHsKKysjaWYgZGVmaW5lZChfX0FSTV9ORU9OX18pICYmIGRlZmluZWQoV0lUSF9GTE9BVCkKKysgICAgZm9yIChqPTA7IGogPCBzY291bnQ7IGorPTQpIHsKKysgICAgICAgIGZsb2F0MzJ4NF90IHZsZWZ0ID0gdmxkMXFfZjMyKCZkZXN0LT5sZWZ0X2J1ZltpXVtqXSk7CisrICAgICAgICBmbG9hdDMyeDRfdCB2cmlnaHQgPSB2bGQxcV9mMzIoJmRlc3QtPnJpZ2h0X2J1ZltpXVtqXSk7CisrICAgICAgICB2bGVmdCA9IHZhZGRxX2YzMih2bGVmdCwgdmxkMXFfZjMyKCZzcmMtPmxlZnRfYnVmW2ldW2pdKSk7CisrICAgICAgICB2cmlnaHQgPSB2YWRkcV9mMzIodnJpZ2h0LCB2bGQxcV9mMzIoJnNyYy0+cmlnaHRfYnVmW2ldW2pdKSk7CisrICAgICAgICB2c3QxcV9mMzIoJmRlc3QtPmxlZnRfYnVmW2ldW2pdLCB2bGVmdCk7CisrICAgICAgICB2c3QxcV9mMzIoJmRlc3QtPnJpZ2h0X2J1ZltpXVtqXSwgdnJpZ2h0KTsKKysgICAgfQorKyNlbHNlCisgICAgIGZvciAoaj0wOyBqIDwgc2NvdW50OyBqKyspIHsKKyAgICAgICBkZXN0LT5sZWZ0X2J1ZltpXVtqXSArPSBzcmMtPmxlZnRfYnVmW2ldW2pdOworICAgICAgIGRlc3QtPnJpZ2h0X2J1ZltpXVtqXSArPSBzcmMtPnJpZ2h0X2J1ZltpXVtqXTsKKyAgICAgfQorKyNlbmRpZgorICAgfQorIAorICAgbWluYnVmID0gZGVzdC0+ZnhfYnVmX2NvdW50OworICAgaWYgKG1pbmJ1ZiA+IHNyYy0+ZnhfYnVmX2NvdW50KQorICAgICBtaW5idWYgPSBzcmMtPmZ4X2J1Zl9jb3VudDsKKyAgIGZvciAoaT0wOyBpIDwgbWluYnVmOyBpKyspIHsKKysjaWYgZGVmaW5lZChfX0FSTV9ORU9OX18pICYmIGRlZmluZWQoV0lUSF9GTE9BVCkKKysgICAgZm9yIChqPTA7IGogPCBzY291bnQ7IGorPTQpIHsKKysgICAgICAgIGZsb2F0MzJ4NF90IHZsZWZ0ID0gdmxkMXFfZjMyKCZkZXN0LT5meF9sZWZ0X2J1ZltpXVtqXSk7CisrICAgICAgICBmbG9hdDMyeDRfdCB2cmlnaHQgPSB2bGQxcV9mMzIoJmRlc3QtPmZ4X3JpZ2h0X2J1ZltpXVtqXSk7CisrICAgICAgICB2bGVmdCA9IHZhZGRxX2YzMih2bGVmdCwgdmxkMXFfZjMyKCZzcmMtPmZ4X2xlZnRfYnVmW2ldW2pdKSk7CisrICAgICAgICB2cmlnaHQgPSB2YWRkcV9mMzIodnJpZ2h0LCB2bGQxcV9mMzIoJnNyYy0+ZnhfcmlnaHRfYnVmW2ldW2pdKSk7CisrICAgICAgICB2c3QxcV9mMzIoJmRlc3QtPmZ4X2xlZnRfYnVmW2ldW2pdLCB2bGVmdCk7CisrICAgICAgICB2c3QxcV9mMzIoJmRlc3QtPmZ4X3JpZ2h0X2J1ZltpXVtqXSwgdnJpZ2h0KTsKKysgICAgfQorKyNlbHNlCisgICAgIGZvciAoaj0wOyBqIDwgc2NvdW50OyBqKyspIHsKKyAgICAgICBkZXN0LT5meF9sZWZ0X2J1ZltpXVtqXSArPSBzcmMtPmZ4X2xlZnRfYnVmW2ldW2pdOworICAgICAgIGRlc3QtPmZ4X3JpZ2h0X2J1ZltpXVtqXSArPSBzcmMtPmZ4X3JpZ2h0X2J1ZltpXVtqXTsKKyAgICAgfQorKyNlbmRpZgorICAgfQorIH0KKyAKKy0tIAorMi45LjUKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsdWlkc3ludGgvZmx1aWRzeW50aF8xLjEuMTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZmx1aWRzeW50aC9mbHVpZHN5bnRoXzEuMS4xMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWM0YzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsdWlkc3ludGgvZmx1aWRzeW50aF8xLjEuMTAuYmIKQEAgLTAsMCArMSwyNCBAQAorU1VNTUFSWSA9ICJGbHVpZHN5bnRoIGlzIGEgc29mdHdhcmUgc3ludGhlc2l6ZXIiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmZsdWlkc3ludGgub3JnLyIKK1NFQ1RJT04gPSAibGlicy9tdWx0aW1lZGlhIgorTElDRU5TRSA9ICJMR1BMLTIuMSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWZjMTc4YmNkNDI1MDkwOTM5YThiNjM0ZDFkNmE5NTk0IgorCitERVBFTkRTID0gImFsc2EtbGliIG5jdXJzZXMgZ2xpYi0yLjAiCisKK1NSQ19VUkkgPSAiIFwKKyAgICBnaXQ6Ly9naXRodWIuY29tL0ZsdWlkU3ludGgvZmx1aWRzeW50aC5naXQ7YnJhbmNoPTEuMS54IFwKKyAgICBmaWxlOi8vMDAwMS1Vc2UtQVJNLU5FT04tYWNjZWxhcmF0aW9uLWZvci1mbG9hdC1tdWx0aXRocmVhZGVkLXNlLnBhdGNoIFwKKyIKK1NSQ1JFViA9ICJmNWEwZmVlNmY3ZjJiMmFiNGM4NjZkZjFhY2I2NDkzMzM0NjRiM2ZkIgorUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBjbWFrZSBwa2djb25maWcgbGliX3BhY2thZ2UKKworRVhUUkFfT0VDTUFLRSA9ICItRGVuYWJsZS1mbG9hdHM9T04gLURMSUJfU1VGRklYPSR7QGQuZ2V0VmFyKCdiYXNlbGliJykucmVwbGFjZSgnbGliJywgJycpfSIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3B1bHNlYXVkaW8nLCBkKX0iCitQQUNLQUdFQ09ORklHW3NuZGZpbGVdID0gIi1EZW5hYmxlLWxpYnNuZGZpbGUtc3VwcG9ydD1PTiwtRGVuYWJsZS1saWJzbmRmaWxlLXN1cHBvcnQ9T0ZGLGxpYnNuZGZpbGUxIgorUEFDS0FHRUNPTkZJR1tqYWNrXSA9ICItRGVuYWJsZS1qYWNrLXN1cHBvcnQ9T04sLURlbmFibGUtamFjay1zdXBwb3J0PU9GRixqYWNrIgorUEFDS0FHRUNPTkZJR1twdWxzZWF1ZGlvXSA9ICItRGVuYWJsZS1wdWxzZWF1ZGlvPU9OLC0tRGVuYWJsZS1wdWxzZWF1ZGlvPU9GRixwdWxzZWF1ZGlvIgorUEFDS0FHRUNPTkZJR1twb3J0YXVkaW9dID0gIi1EZW5hYmxlLXBvcnRhdWRpbz1PTiwtRGVuYWJsZS1wb3J0YXVkaW89T0ZGLHBvcnRhdWRpby12MTkiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZmx1aWRzeW50aC9mbHVpZHN5bnRoXzEuMS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsdWlkc3ludGgvZmx1aWRzeW50aF8xLjEuNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODg5ODFlNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZmx1aWRzeW50aC9mbHVpZHN5bnRoXzEuMS42LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotU1VNTUFSWSA9ICJGbHVpZHN5bnRoIGlzIGEgc29mdHdhcmUgc3ludGhlc2l6ZXIiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmZsdWlkc3ludGgub3JnLyIKLVNFQ1RJT04gPSAibGlicy9tdWx0aW1lZGlhIgotTElDRU5TRSA9ICJMR1BMLTIuMCsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1lMTk4ZTlhYWM5NDk0M2QwZWMyOWE3ZGFlOGMyOTQxNiIKLQotREVQRU5EUyA9ICJhbHNhLWxpYiBuY3Vyc2VzIGdsaWItMi4wIgotCi1TUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9wcm9qZWN0LyR7QlBOfS8ke0JQfS8ke0JQfS50YXIuZ3oiCi1TUkNfVVJJW21kNXN1bV0gPSAiYWU1YWNhNmRlODI0YjQxNzM2NjdjYmQzYTMxMGIyNjMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTA4NTMzOTFkOWViZWRhOWI0ZGI3ODdlZmIyM2Y5OGIxZTI2YjcyOTZkZDJiYjVkMGQ5NmI1YmNjZWUyMTcxYyIKLQotaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZyBsaWJfcGFja2FnZQotCi1QQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAncHVsc2VhdWRpbycsIGQpfSIKLVBBQ0tBR0VDT05GSUdbc25kZmlsZV0gPSAiLS1lbmFibGUtbGlic25kZmlsZS1zdXBwb3J0LC0tZGlzYWJsZS1saWJzbmRmaWxlLXN1cHBvcnQsbGlic25kZmlsZTEiCi1QQUNLQUdFQ09ORklHW2phY2tdID0gIi0tZW5hYmxlLWphY2stc3VwcG9ydCwtLWRpc2FibGUtamFjay1zdXBwb3J0LGphY2siCi1QQUNLQUdFQ09ORklHW3B1bHNlYXVkaW9dID0gIi0tZW5hYmxlLXB1bHNlLXN1cHBvcnQsLS1kaXNhYmxlLXB1bHNlLXN1cHBvcnQscHVsc2VhdWRpbyIKLVBBQ0tBR0VDT05GSUdbcG9ydGF1ZGlvXSA9ICItLWVuYWJsZS1wb3J0YXVkaW8tc3VwcG9ydCwtLWRpc2FibGUtcG9ydGF1ZGlvLXN1cHBvcnQscG9ydGF1ZGlvLXYxOSIKLQotZG9fY29uZmlndXJlX3ByZXBlbmQgKCkgewotICAgIHJtIC1mICR7U30vbTQvKgotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0wLjEwL2dzdC1mZm1wZWctMC4xMC4xMy9sb3dlci1yYW5rLmRpZmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTAuMTAvZ3N0LWZmbXBlZy0wLjEwLjEzL2xvd2VyLXJhbmsuZGlmZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWYwOGFmZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTAuMTAvZ3N0LWZmbXBlZy0wLjEwLjEzL2xvd2VyLXJhbmsuZGlmZgorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLUxvd2VyIHRoZSByYW5rIG9mIGZmbXBlZyBwbHVnaW4gc28gY29kZWNzIHRoYXQgaG9vayBpbnRvIGFjY2VsZXJhdGVkIHBpZWNlcyAoZS5nLiBkc3Agb3IgaHcgZW5naW5lcykgY2FuIGdldCBwaWNrZWQgb3ZlciB0aGlzCi1EZXJpdmVkIGZyb20gT0UgYnkgRG9uZ3hpYW8gWHUgPGRvbmd4aWFvLnh1QGludGVsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KLQotLS0tIC90bXAvZ3N0ZmZtcGVnZGVjLmMJMjAwOS0wMy0wNSAwOTozMToxNS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnc3QtZmZtcGVnLTAuMTAuNi9leHQvZmZtcGVnL2dzdGZmbXBlZ2RlYy5jCTIwMDktMDMtMDUgMDk6MzM6MDkuMDAwMDAwMDAwICswMTAwCi1AQCAtMjU4OCw3ICsyNTg4LDcgQEAKLSAgICAgICBjYXNlIENPREVDX0lEX01TTVBFRzRWMzoKLSAgICAgICBjYXNlIENPREVDX0lEX0gyNjQ6Ci0gICAgICAgY2FzZSBDT0RFQ19JRF9DT09LOgotLSAgICAgICAgcmFuayA9IEdTVF9SQU5LX1BSSU1BUlk7Ci0rICAgICAgICByYW5rID0gR1NUX1JBTktfU0VDT05EQVJZOwotICAgICAgICAgYnJlYWs7Ci0gICAgICAgY2FzZSBDT0RFQ19JRF9EVlZJREVPOgotICAgICAgICAgLyogd2UgaGF2ZSBhIGdvb2QgZHYgZGVjb2RlciwgZmFzdCBvbiBib3RoIHBwYyBhcyB3ZWxsIGFzIHg4Ni4gdGhleSBzYXkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXItMC4xMC9nc3QtcGx1Z2lucy1iYXNlXzAuMTAuMzYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTAuMTAvZ3N0LXBsdWdpbnMtYmFzZV8wLjEwLjM2LmJiCmluZGV4IGEzYmZhNWYuLmYyMzU0NjQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXItMC4xMC9nc3QtcGx1Z2lucy1iYXNlXzAuMTAuMzYuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0wLjEwL2dzdC1wbHVnaW5zLWJhc2VfMC4xMC4zNi5iYgpAQCAtMjUsNyArMjUsNiBAQAogCiBQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAneDExJywgZCl9IgogCi1QQUNLQUdFQ09ORklHW2dub21ldmZzXSA9ICItLWVuYWJsZS1nbm9tZV92ZnMsLS1kaXNhYmxlLWdub21lX3Zmcyxnbm9tZS12ZnMiCiBQQUNLQUdFQ09ORklHW29yY10gPSAiLS1lbmFibGUtb3JjLC0tZGlzYWJsZS1vcmMsb3JjIgogUEFDS0FHRUNPTkZJR1twYW5nb10gPSAiLS1lbmFibGUtcGFuZ28sLS1kaXNhYmxlLXBhbmdvLHBhbmdvIgogUEFDS0FHRUNPTkZJR1t4MTFdID0gIi0tZW5hYmxlLXggLS1lbmFibGUteHZpZGVvLC0tZGlzYWJsZS14IC0tZGlzYWJsZS14dmlkZW8sdmlydHVhbC9saWJ4MTEgbGlieHYgbGlic20gbGliaWNlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0wLjEwL2dzdC1ydHNwLzAwMDEtY2hhbmdlLWRlcHJlY2F0ZWQtSU5DTFVERVMtdG8tQU1fQ1BQRkxBR1MtZm9yLWF1dG9tYS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXItMC4xMC9nc3QtcnRzcC8wMDAxLWNoYW5nZS1kZXByZWNhdGVkLUlOQ0xVREVTLXRvLUFNX0NQUEZMQUdTLWZvci1hdXRvbWEucGF0Y2gKaW5kZXggM2FmY2E0ZS4uNjliMjFkZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0wLjEwL2dzdC1ydHNwLzAwMDEtY2hhbmdlLWRlcHJlY2F0ZWQtSU5DTFVERVMtdG8tQU1fQ1BQRkxBR1MtZm9yLWF1dG9tYS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTAuMTAvZ3N0LXJ0c3AvMDAwMS1jaGFuZ2UtZGVwcmVjYXRlZC1JTkNMVURFUy10by1BTV9DUFBGTEFHUy1mb3ItYXV0b21hLnBhdGNoCkBAIC0xLDM0ICsxLDM4IEBACiBpbmRleCBnc3QtcnRzcF8wLjEwLjgvYmluZGluZ3MvcHl0aG9uL01ha2VmaWxlLmFtCi0tLS0gZ3N0LXJ0c3BfMC4xMC44Lm9yaWcvYmluZGluZ3MvcHl0aG9uL01ha2VmaWxlLmFtCi0rKysgZ3N0LXJ0c3BfMC4xMC44L2JpbmRpbmdzL3B5dGhvbi9NYWtlZmlsZS5hbQorSW5kZXg6IGdzdC1ydHNwLTAuMTAuOC9iaW5kaW5ncy9weXRob24vTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnc3QtcnRzcC0wLjEwLjgub3JpZy9iaW5kaW5ncy9weXRob24vTWFrZWZpbGUuYW0KKysrKyBnc3QtcnRzcC0wLjEwLjgvYmluZGluZ3MvcHl0aG9uL01ha2VmaWxlLmFtCiBAQCAtMTQsNyArMTQsNyBAQCBkZWZzX0RBVEEgPSAkKERFRlMpCiAgZGVmc2RpciA9ICQocGtnZGF0YWRpcikvJChHU1RfTUFKT1JNSU5PUikvZGVmcwogIE9WRVJSSURFUyA9IHJ0c3BzZXJ2ZXIub3ZlcnJpZGUKLQorIAogLUlOQ0xVREVTID0gLUkkKHRvcF9zcmNkaXIpIC1JJChzcmNkaXIpICQoUFlUSE9OX0lOQ0xVREVTKQogK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9zcmNkaXIpIC1JJChzcmNkaXIpICQoUFlUSE9OX0lOQ0xVREVTKQotCisgCiAgcnRzcHNlcnZlcl9sYV9DRkxBR1MgPSAtSSQodG9wX3NyY2Rpcikvc3JjIFwKLSAgICAgICAgICQoUFlHT0JKRUNUX0NGTEFHUykgJChHU1RfUExVR0lOU19CQVNFX0NGTEFHUykgJChHU1RfQ0ZMQUdTKQotaW5kZXggZ3N0LXJ0c3BfMC4xMC44L2V4YW1wbGVzL01ha2VmaWxlLmFtCi0tLS0gZ3N0LXJ0c3BfMC4xMC44Lm9yaWcvZXhhbXBsZXMvTWFrZWZpbGUuYW0KLSsrKyBnc3QtcnRzcF8wLjEwLjgvZXhhbXBsZXMvTWFrZWZpbGUuYW0KKyAJCSQoUFlHT0JKRUNUX0NGTEFHUykgJChHU1RfUExVR0lOU19CQVNFX0NGTEFHUykgJChHU1RfQ0ZMQUdTKQorSW5kZXg6IGdzdC1ydHNwLTAuMTAuOC9leGFtcGxlcy9NYWtlZmlsZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdzdC1ydHNwLTAuMTAuOC5vcmlnL2V4YW1wbGVzL01ha2VmaWxlLmFtCisrKysgZ3N0LXJ0c3AtMC4xMC44L2V4YW1wbGVzL01ha2VmaWxlLmFtCiBAQCAtMSw2ICsxLDYgQEAKICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0LXZpZGVvIHRlc3Qtb2dnIHRlc3QtbXA0IHRlc3QtcmVhZG1lIHRlc3QtbGF1bmNoIHRlc3Qtc2RwIHRlc3QtdXJpIHRlc3QtYXV0aAotCisgCiAtSU5DTFVERVMgPSAtSSQodG9wX3NyY2RpcikgLUkkKHNyY2RpcikKICtBTV9DUFBGTEFHUyA9IC1JJCh0b3Bfc3JjZGlyKSAtSSQoc3JjZGlyKQotCisgCiAgQU1fQ0ZMQUdTID0gJChHU1RfUExVR0lOU19CQVNFX0NGTEFHUykgJChHU1RfQ0ZMQUdTKQogIEFNX0xERkxBR1MgPSBcCi1pbmRleCBnc3QtcnRzcF8wLjEwLjgvdGVzdHMvTWFrZWZpbGUuYW0KLS0tLSBnc3QtcnRzcF8wLjEwLjgub3JpZy90ZXN0cy9NYWtlZmlsZS5hbQotKysrIGdzdC1ydHNwXzAuMTAuOC90ZXN0cy9NYWtlZmlsZS5hbQorSW5kZXg6IGdzdC1ydHNwLTAuMTAuOC90ZXN0cy9NYWtlZmlsZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdzdC1ydHNwLTAuMTAuOC5vcmlnL3Rlc3RzL01ha2VmaWxlLmFtCisrKysgZ3N0LXJ0c3AtMC4xMC44L3Rlc3RzL01ha2VmaWxlLmFtCiBAQCAtMSw2ICsxLDYgQEAKICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0LWNsZWFudXAKLQorIAogLUlOQ0xVREVTID0gLUkkKHRvcF9zcmNkaXIpIC1JJChzcmNkaXIpCiArQU1fQ1BQRkxBR1MgPSAtSSQodG9wX3NyY2RpcikgLUkkKHNyY2RpcikKLQorIAogIEFNX0NGTEFHUyA9ICQoR1NUX1BMVUdJTlNfQkFTRV9DRkxBR1MpICQoR1NUX0NGTEFHUykKICBBTV9MREZMQUdTID0gXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0xLjAvZ3N0ZC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTEuMC9nc3RkLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMGVlNWJjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0xLjAvZ3N0ZC5pbmMKQEAgLTAsMCArMSwyNSBAQAorREVTQ1JJUFRJT04gPSAiR3N0cmVhbWVyIERhZW1vbiAxLjAiCitTVU1NQVJZID0gIkdTdHJlYW1lciBmcmFtZXdvcmsgZm9yIGNvbnRyb2xsaW5nIGF1ZGlvIGFuZCB2aWRlbyBzdHJlYW1pbmcgdXNpbmcgVENQIGNvbm5lY3Rpb24gbWVzc2FnZXMiCitIT01FUEFHRSA9ICJodHRwczovL2RldmVsb3Blci5yaWRnZXJ1bi5jb20vd2lraS9pbmRleC5waHA/dGl0bGU9R3N0ZC0xLjAiCitTRUNUSU9OID0gIm11bHRpbWVkaWEiCitMSUNFTlNFID0gIkdQTHYyKyIKKworREVQRU5EUyA9ICJnc3RyZWFtZXIxLjAgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZSBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYWQgZ3N0cmVhbWVyMS4wLXJ0c3Atc2VydmVyIGpzb24tZ2xpYiBsaWJkYWVtb24iCisKK1NSQ0JSQU5DSCA/PSAibWFzdGVyIgorU1JDUkVWID0gIjA5N2EwODZhODYwNmRjYjM2OGM3ZDM4YzdlYzRmZWZjMjQ5NzQwMWIiCitTUkNfVVJJID0gImdpdDovL2dpdEBnaXRodWIuY29tL1JpZGdlUnVuL2dzdGQtMS54LmdpdDtwcm90b2NvbD1odHRwczticmFuY2g9JHtTUkNCUkFOQ0h9IFwKKwkgICBmaWxlOi8vMDAwMS1nc3RkLXlvY3RvLWNvbXBhdGliaWxpdHkucGF0Y2giCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK1BBQ0tBR0VDT05GSUdfQ09ORkFSR1MgPSAiIFwKKwktLWRpc2FibGUtZ3RrLWRvYyBcCisiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnZXR0ZXh0CisKK2RvX2NvbmZpZ3VyZSgpIHsKKyR7U30vYXV0b2dlbi5zaAorb2VfcnVuY29uZgorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0xLjAvZ3N0ZC8wMDAxLWdzdGQteW9jdG8tY29tcGF0aWJpbGl0eS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXItMS4wL2dzdGQvMDAwMS1nc3RkLXlvY3RvLWNvbXBhdGliaWxpdHkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRjMTgzMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXItMS4wL2dzdGQvMDAwMS1nc3RkLXlvY3RvLWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAsMCArMSw2MyBAQAorRnJvbSBlYWY1MWQ2NDIwYzYzNzEzZjYyMDI1NTgzNjgxMDA3YzM1MDJkMzg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQ2FybG9zIDxjYXJsb3Mucm9kcmlndWV6QHJpZGdlcnVuLmNvbT4KK0RhdGU6IEZyaSwgMTUgRGVjIDIwMTcgMTA6MTQ6MDUgLTA2MDAKK1N1YmplY3Q6IFtQQVRDSF0gZ3N0ZDp5b2N0byBjb21wYXRpYmlsaXR5CisKKy0tLQorIGF1dG9nZW4uc2ggICAgICAgICAgICAgICAgICAgICAgfCA4ICsrKysrKystCisgZG9jcy9yZWZlcmVuY2UvZ3N0ZC9NYWtlZmlsZS5hbSB8IDIgKy0KKyBnc3RkL01ha2VmaWxlLmFtICAgICAgICAgICAgICAgIHwgMiArLQorIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvYXV0b2dlbi5zaCBiL2F1dG9nZW4uc2gKK2luZGV4IDY2ZGJkNDIuLjc5M2VlMmYgMTAwNzU1CistLS0gYS9hdXRvZ2VuLnNoCisrKysgYi9hdXRvZ2VuLnNoCitAQCAtMjEsNyArMjEsMTEgQEAKKyAjIEFDTE9DQUwsIEFVVE9QT0lOVCBhbmQvb3IgTElCVE9PTElaRSB0byB0aGUgcmlnaHQgdmVyc2lvbnMsIG9yIGxlYXZlIHRoZW0KKyAjIHVuc2V0IGFuZCBnZXQgdGhlIGRlZmF1bHRzCisgCistZ3RrZG9jaXplIHx8IGV4aXQgMQorK3Rlc3QgLW4gIiRzcmNkaXIiIHx8IHNyY2Rpcj1gZGlybmFtZSAiJDAiYAorK3Rlc3QgLW4gIiRzcmNkaXIiIHx8IHNyY2Rpcj0uCisrCisrb2xkZGlyPWBwd2RgCisrY2QgIiRzcmNkaXIiCisgCisgYXV0b3JlY29uZiAtLXZlcmJvc2UgLS1mb3JjZSAtLWluc3RhbGwgfHwgeworICBlY2hvICdhdXRvZ2VuLnNoIGZhaWxlZCc7CitAQCAtMzEsMyArMzUsNSBAQCBhdXRvcmVjb25mIC0tdmVyYm9zZSAtLWZvcmNlIC0taW5zdGFsbCB8fCB7CisgZWNobworIGVjaG8gIk5vdyBydW4gJy4vY29uZmlndXJlJyB3aXRoIHlvdXIgc3lzdGVtIHNldHRpbmdzIGZvbGxvd2VkIGJ5ICdtYWtlJyB0byBjb21waWxlIHRoaXMgbW9kdWxlLiIKKyBlY2hvCisrCisrY2QgIiRvbGRkaXIiCitkaWZmIC0tZ2l0IGEvZG9jcy9yZWZlcmVuY2UvZ3N0ZC9NYWtlZmlsZS5hbSBiL2RvY3MvcmVmZXJlbmNlL2dzdGQvTWFrZWZpbGUuYW0KK2luZGV4IGY4NjBmYTEuLjE1M2ExM2IgMTAwNjQ0CistLS0gYS9kb2NzL3JlZmVyZW5jZS9nc3RkL01ha2VmaWxlLmFtCisrKysgYi9kb2NzL3JlZmVyZW5jZS9nc3RkL01ha2VmaWxlLmFtCitAQCAtNjYsNyArNjYsNyBAQCBHVEtET0NfTElCUz0kKHRvcF9idWlsZGRpcikvZ3N0ZC9saWJnc3RkLWNvcmUubGEKKyAKKyAKKyAjIFRoaXMgaW5jbHVkZXMgdGhlIHN0YW5kYXJkIGd0ay1kb2MgbWFrZSBydWxlcywgY29waWVkIGJ5IGd0a2RvY2l6ZS4KKy1pbmNsdWRlICQodG9wX3NyY2RpcikvZG9jcy9ndGstZG9jLm1ha2UKKysjIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9kb2NzL2d0ay1kb2MubWFrZQorIAorICMgQ29tbWVudCB0aGlzIG91dCBpZiB5b3Ugd2FudCAnbWFrZSBjaGVjaycgdG8gdGVzdCB5b3UgZG9jIHN0YXR1cworICMgYW5kIHJ1biBzb21lIHNhbml0eSBjaGVja3MKK2RpZmYgLS1naXQgYS9nc3RkL01ha2VmaWxlLmFtIGIvZ3N0ZC9NYWtlZmlsZS5hbQoraW5kZXggMTNjNTUxZC4uMTFmZTIwMiAxMDA2NDQKKy0tLSBhL2dzdGQvTWFrZWZpbGUuYW0KKysrKyBiL2dzdGQvTWFrZWZpbGUuYW0KK0BAIC00OSw3ICs0OSw3IEBAIGJpbl9QUk9HUkFNUyA9IGdzdGQKKyAKKyBnc3RkX1NPVVJDRVMgPSBnc3RkLmMKKyBnc3RkX0NGTEFHUyA9ICQoR1NUX0NGTEFHUykgJChHSU9fQ0ZMQUdTKSAkKEdKU09OX0NGTEFHUykKKy1nc3RkX0xERkxBR1MgPSAkKEdTVF9MSUJTKSAkKEdJT19MSUJTKSAkKEdKU09OX0xJQlMpIC1XbCwtcnBhdGggLVdsLCQobGliZGlyKQorK2dzdGRfTERGTEFHUyA9ICQoR1NUX0xJQlMpICQoR0lPX0xJQlMpICQoR0pTT05fTElCUykKKyBnc3RkX0xEQUREID0gbGliZ3N0ZC1jb3JlLmxhCisgCisgZ3N0ZGluY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL2dzdGQKKy0tIAorMS45LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0xLjAvZ3N0ZF8xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTEuMC9nc3RkXzEuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGY2YjU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0xLjAvZ3N0ZF8xLjAuYmIKQEAgLTAsMCArMSwzIEBACityZXF1aXJlIGdzdGQuaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmRjMTM5NC9maWxlcy9pbnN0YWxsX2V4YW1wbGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmRjMTM5NC9maWxlcy9pbnN0YWxsX2V4YW1wbGVzLnBhdGNoCmluZGV4IDg5MTMzYWQuLmRmMGMyMzUgMTAwNzU1Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJkYzEzOTQvZmlsZXMvaW5zdGFsbF9leGFtcGxlcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvbGliZGMxMzk0L2ZpbGVzL2luc3RhbGxfZXhhbXBsZXMucGF0Y2gKQEAgLTEsOSArMSw5IEBACiBJbmRleDogbGliZGMxMzk0L2V4YW1wbGVzL01ha2VmaWxlLmFtCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbGliZGMxMzk0Lm9yaWcvZXhhbXBsZXMvTWFrZWZpbGUuYW0JMjAxMi0wNi0zMCAxNzo1MDo0Ni4wMDAwMDAwMDAgLTA3MDAKLSsrKyBsaWJkYzEzOTQvZXhhbXBsZXMvTWFrZWZpbGUuYW0JMjAxMi0wNi0zMCAxOTowMjoxMy44MjI2NDY0MzAgLTA3MDAKLUBAIC0zNiw4ICszNiw3IEBACi0gQU1fTERGTEFHUyA9IC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDYXJib24KKy0tLSBsaWJkYzEzOTQub3JpZy9leGFtcGxlcy9NYWtlZmlsZS5hbQorKysrIGxpYmRjMTM5NC9leGFtcGxlcy9NYWtlZmlsZS5hbQorQEAgLTM2LDggKzM2LDcgQEAgaWYgSEFWRV9NQUNPU1gKKyBBTV9MREZMQUdTID0gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAkKEZSQU1FV09SS19JT0tJVCkKICBlbmRpZgogIAogLW5vaW5zdF9QUk9HUkFNUyA9ICQoQSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJkZTI2NS9saWJkZTI2NV8xLjAuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJkZTI2NS9saWJkZTI2NV8xLjAuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDA3NWZmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmRlMjY1L2xpYmRlMjY1XzEuMC4yLmJiCkBAIC0wLDAgKzEsMjAgQEAKK0RFU0NSSVBUSU9OID0gImxpYmRlMjY1IGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBoLjI2NSBcCit2aWRlbyBjb2RlYy4gSXQgaXMgd3JpdHRlbiBmcm9tIHNjcmF0Y2ggYW5kIGhhcyBhIHBsYWluIEMgQVBJIHRvIGVuYWJsZSBhIFwKK3NpbXBsZSBpbnRlZ3JhdGlvbiBpbnRvIG90aGVyIHNvZnR3YXJlLiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cubGliZGUyNjUub3JnLyIKK1NFQ1RJT04gPSAibGlicy9tdWx0aW1lZGlhIgorCitMSUNFTlNFID0gIkxHUEx2MyIKK0xJQ0VOU0VfRkxBR1MgPSAiY29tbWVyY2lhbCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTg1MmYzNDVjMWM1MmM5MTYwZjlhN2MzNmJiOTk3NTQ2IgorCitTUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9zdHJ1a3R1cmFnL2xpYmRlMjY1L3JlbGVhc2VzL2Rvd25sb2FkL3Yke1BWfS8ke0JQTn0tJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjkzNTIwYjM3OGRmMjVmM2E5NGU5NjJmMmI1NDg3MmNjIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImVhYTAzNDg4MzljMjkzNWRkOTA2NDdkNzJjNmRkNGEwNDNlMzYzNjFjYjNjMzNkMmIwNGRmMTBmYmNlYmQzY2IiCisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtc2hlcmxvY2syNjUgLS1kaXNhYmxlLWRlYzI2NSIKKworaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZworCitQQUNLQUdFUyA9KyAiJHtQTn0tdG9vbHMiCitGSUxFU18ke1BOfS10b29scyA9ICIke2JpbmRpcn0vKiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9tdXNpY2JyYWluei9maWxlcy9hbGxvdy1saWJkaXItb3ZlcnJpZGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvbXVzaWNicmFpbnovZmlsZXMvYWxsb3ctbGliZGlyLW92ZXJyaWRlLnBhdGNoCmluZGV4IGQ1OWQxMmUuLmRiNGQ2ZTggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9tdXNpY2JyYWluei9maWxlcy9hbGxvdy1saWJkaXItb3ZlcnJpZGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL211c2ljYnJhaW56L2ZpbGVzL2FsbG93LWxpYmRpci1vdmVycmlkZS5wYXRjaApAQCAtNiwxMSArNiwxMSBAQAogCiBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogCi1JbmRleDogbGlibXVzaWNicmFpbnotMy4wLjMvQ01ha2VMaXN0cy50eHQKK0luZGV4OiBnaXQvQ01ha2VMaXN0cy50eHQKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBsaWJtdXNpY2JyYWluei0zLjAuMy5vcmlnL0NNYWtlTGlzdHMudHh0Ci0rKysgbGlibXVzaWNicmFpbnotMy4wLjMvQ01ha2VMaXN0cy50eHQKLUBAIC0yNiw3ICsyNiw3IEBAIEZJTkRfUEFDS0FHRShEaXNjSWQpCistLS0gZ2l0Lm9yaWcvQ01ha2VMaXN0cy50eHQKKysrKyBnaXQvQ01ha2VMaXN0cy50eHQKK0BAIC0zNiw3ICszNiw3IEBAIEZJTkRfUEFDS0FHRShMaWJYbWwyIFJFUVVJUkVEKQogIFNFVChMSUJfU1VGRklYICIiIENBQ0hFIFNUUklORyAiRGVmaW5lIHN1ZmZpeCBvZiBkaXJlY3RvcnkgbmFtZSAoMzIvNjQpIikKICBTRVQoRVhFQ19JTlNUQUxMX1BSRUZJWCAke0NNQUtFX0lOU1RBTExfUFJFRklYfSBDQUNIRSBQQVRIICJJbnN0YWxsYXRpb24gcHJlZml4IGZvciBleGVjdXRhYmxlcyBhbmQgb2JqZWN0IGNvZGUgbGlicmFyaWVzIiBGT1JDRSkKICBTRVQoQklOX0lOU1RBTExfRElSICR7RVhFQ19JTlNUQUxMX1BSRUZJWH0vYmluIENBQ0hFIFBBVEggIkluc3RhbGxhdGlvbiBwcmVmaXggZm9yIHVzZXIgZXhlY3V0YWJsZXMiIEZPUkNFKQpAQCAtMTgsNCArMTgsNCBAQAogK1NFVChMSUJfSU5TVEFMTF9ESVIgJHtFWEVDX0lOU1RBTExfUFJFRklYfS9saWIke0xJQl9TVUZGSVh9IENBQ0hFIFBBVEggICJJbnN0YWxsYXRpb24gcHJlZml4IGZvciBvYmplY3QgY29kZSBsaWJyYXJpZXMiKQogIFNFVChJTkNMVURFX0lOU1RBTExfRElSICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L2luY2x1ZGUgQ0FDSEUgUEFUSCAiSW5zdGFsbGF0aW9uIHByZWZpeCBmb3IgQyBoZWFkZXIgZmlsZXMiIEZPUkNFKQogIAotIENPTkZJR1VSRV9GSUxFKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9saWJtdXNpY2JyYWluejMucGMuY21ha2UgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2xpYm11c2ljYnJhaW56My5wYykKKyBDT05GSUdVUkVfRklMRSgke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vbGlibXVzaWNicmFpbno1LnBjLmNtYWtlICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9saWJtdXNpY2JyYWluejUucGMpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvbXVzaWNwZC9tcGRfMC4xOS4yMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9tdXNpY3BkL21wZF8wLjE5LjIxLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWIyMWEzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9tdXNpY3BkL21wZF8wLjE5LjIxLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLVNVTU1BUlkgPSAiTXVzaWMgUGxheWVyIERhZW1vbiIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKLUhPTUVQQUdFID0iaHR0cDovL3d3dy5tdXNpY3BkLm9yZyIKLQotaW5oZXJpdCBhdXRvdG9vbHMgdXNlcmFkZCBzeXN0ZW1kIHBrZ2NvbmZpZwotCi1ERVBFTkRTICs9ICIgXAotICAgIGFsc2EtbGliIFwKLSAgICBsaWJzYW1wbGVyYXRlMCBcCi0gICAgbGlic25kZmlsZTEgXAotICAgIGxpYnZvcmJpcyBcCi0gICAgbGlib2dnIFwKLSAgICBmYWFkMiBcCi0gICAgZmZtcGVnIFwKLSAgICBjdXJsIFwKLSAgICBzcWxpdGUgXAotICAgIGJ6aXAyIFwKLSAgICBwdWxzZWF1ZGlvIFwKLSAgICB0Y3Atd3JhcHBlcnMgXAotICAgIG9wZW5hbC1zb2Z0IFwKLSAgICB5YWpsIFwKLSAgICBqYWNrIFwKLSAgICBmYWFkMiBcCi0gICAgZmxhYyBcCi0gICAgbGliYW8gXAotICAgIGZsdWlkc3ludGggXAotICAgIGxpYmNkaW8gXAotICAgIHdhdnBhY2sgXAotICAgIGxpYm9wdXMgXAotICAgIG1wZzEyMyBcCi0gICAgbGlibW1zIFwKLSAgICBsaWJtb2RwbHVnIFwKLSAgICBib29zdCBcCi0gICAgaWN1IFwKLSAgICBkYnVzIFwKLSAgICBleHBhdCBcCi0gICAgemxpYiBcCi0gICAgbGlidXBucDEuNiBcCi0iCi0KLSMgV2hpbGUgdGhpcyBpdGVtIGRvZXMgbm90IHJlcXVpcmUgaXQsIGl0IGRlcGVuZHMgb24gbXBnMTIzIHdoaWNoIGRvZXMKLUxJQ0VOU0VfRkxBR1MgPSAiY29tbWVyY2lhbCIKLQotU1JDX1VSSSA9ICIgXAotICAgIGh0dHA6Ly93d3cubXVzaWNwZC5vcmcvZG93bmxvYWQvJHtCUE59LzAuMTkvJHtCUH0udGFyLnh6IFwKLSAgICBmaWxlOi8vbXBkLmNvbmYuaW4gXAotIgotU1JDX1VSSVttZDVzdW1dID0gImZjMTlmNzZiNTEyYmQ0NzFiNmFmNTIxNDk2NWZmN2M1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjgzMDViOGJjMDI2ZjRiNmJkZTI4YjhkZDA5YmZkZGRiZTU1OTBhY2YzNjM1OGVlZDRkMDgzYTM5NmUzMDE3MzAiCi0KLUVYVFJBX09FQ09ORiA9ICJlbmFibGVfYnppcDI9eWVzIgotRVhUUkFfT0VDT05GICs9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAnLS13aXRoLXN5c3RlbWRzeXN0ZW11bml0ZGlyPSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vJywgJy0td2l0aG91dC1zeXN0ZW1kc3lzdGVtdW5pdGRpcicsIGQpfSIKLQotUEFDS0FHRUNPTkZJR1thdWRpb2ZpbGVdID0gIi0tZW5hYmxlLWF1ZGlvZmlsZSwtLWRpc2FibGUtYXVkaW9maWxlLGF1ZGlvZmlsZSIKLVBBQ0tBR0VDT05GSUdbY2Rpb3BhcmFub2lhXSA9ICItLWVuYWJsZS1jZGlvLXBhcmFub2lhLC0tZGlzYWJsZS1jZGlvLXBhcmFub2lhLGxpYmNkaW8tcGFyYW5vaWEiCi1QQUNLQUdFQ09ORklHW21hZF0gPSAiLS1lbmFibGUtbWFkLC0tZGlzYWJsZS1tYWQsbGlibWFkIgotUEFDS0FHRUNPTkZJR1tpZDN0YWddID0gIi0tZW5hYmxlLWlkMywtLWRpc2FibGUtaWQzLGxpYmlkM3RhZyIKLVBBQ0tBR0VDT05GSUdbbGFtZV0gPSAiLS1lbmFibGUtbGFtZS1lbmNvZGVyLC0tZGlzYWJsZS1sYW1lLWVuY29kZXIsbGFtZSIKLVBBQ0tBR0VDT05GSUdbc21iXSA9ICItLWVuYWJsZS1zbWJjbGllbnQsLS1kaXNhYmxlLXNtYmNsaWVudCxzYW1iYSIKLQotZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7Ci0gICAgc2VkIC1pIC1lICdzfGxpYnN5c3RlbWQtZGFlbW9ufGxpYnN5c3RlbWR8JyAke1N9L2NvbmZpZ3VyZS5hYwotfQotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCi0gICAgY2htb2QgNzc1ICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7bG9jYWxzdGF0ZWRpcn0vbGliL21wZC9wbGF5bGlzdHMKLSAgICBjaG93biAtUiBtcGQgJHtEfS8ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQKLSAgICBjaG93biBtcGQ6bXBkICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCi0KLSAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfQotICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vbXBkLmNvbmYuaW4gJHtEfS8ke3N5c2NvbmZkaXJ9L21wZC5jb25mCi0gICAgc2VkIC1pIFwKLSAgICAgICAgLWUgJ3N8JW11c2ljX2RpcmVjdG9yeSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljfCcgXAotICAgICAgICAtZSAnc3wlcGxheWxpc3RfZGlyZWN0b3J5JXwke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQvcGxheWxpc3RzfCcgXAotICAgICAgICAtZSAnc3wlZGJfZmlsZSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL21wZC5kYnwnIFwKLSAgICAgICAgLWUgJ3N8JWxvZ19maWxlJXwke2xvY2Fsc3RhdGVkaXJ9L2xvZy9tcGQubG9nfCcgXAotICAgICAgICAtZSAnc3wlc3RhdGVfZmlsZSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL3N0YXRlfCcgXAotICAgICAgICAke0R9LyR7c3lzY29uZmRpcn0vbXBkLmNvbmYKLQotICAgIGlmIFsgLWUgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL21wZC5zZXJ2aWNlIF0gOyB0aGVuCi0gICAgICAgIHNlZCAtaSBcCi0gICAgICAgICAgICAnc3xeRXhlY1N0YXJ0PS4qfEV4ZWNTdGFydD0ke2JpbmRpcn0vbXBkIC0tbm8tZGFlbW9ufCcgXAotICAgICAgICAgICAgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL21wZC5zZXJ2aWNlCi0gICAgZmkKLX0KLQotUlBST1ZJREVTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgotUlJFUExBQ0VTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgotUkNPTkZMSUNUU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJtcGQuc29ja2V0IgotCi1VU0VSQUREX1BBQ0tBR0VTID0gIiR7UE59IgotVVNFUkFERF9QQVJBTV8ke1BOfSA9ICIgXAotICAgIC0tc3lzdGVtIC0tbm8tY3JlYXRlLWhvbWUgXAotICAgIC0taG9tZSAke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQgXAotICAgIC0tZ3JvdXBzIGF1ZGlvIFwKLSAgICAtLXVzZXItZ3JvdXAgbXBkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL211c2ljcGQvbXBkXzAuMjAuMTguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvbXVzaWNwZC9tcGRfMC4yMC4xOC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzU0ZjM0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL211c2ljcGQvbXBkXzAuMjAuMTguYmIKQEAgLTAsMCArMSwxMDAgQEAKK1NVTU1BUlkgPSAiTXVzaWMgUGxheWVyIERhZW1vbiIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKK0hPTUVQQUdFID0iaHR0cDovL3d3dy5tdXNpY3BkLm9yZyIKKworaW5oZXJpdCBhdXRvdG9vbHMgdXNlcmFkZCBzeXN0ZW1kIHBrZ2NvbmZpZworCitERVBFTkRTICs9ICIgXAorICAgIGFsc2EtbGliIFwKKyAgICBsaWJzYW1wbGVyYXRlMCBcCisgICAgbGlic25kZmlsZTEgXAorICAgIGxpYnZvcmJpcyBcCisgICAgbGlib2dnIFwKKyAgICBmYWFkMiBcCisgICAgZmZtcGVnIFwKKyAgICBjdXJsIFwKKyAgICBzcWxpdGUgXAorICAgIGJ6aXAyIFwKKyAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdwdWxzZWF1ZGlvJywgZCl9IFwKKyAgICB0Y3Atd3JhcHBlcnMgXAorICAgIG9wZW5hbC1zb2Z0IFwKKyAgICB5YWpsIFwKKyAgICBqYWNrIFwKKyAgICBmYWFkMiBcCisgICAgZmxhYyBcCisgICAgbGliYW8gXAorICAgIGZsdWlkc3ludGggXAorICAgIGxpYmNkaW8gXAorICAgIHdhdnBhY2sgXAorICAgIGxpYm9wdXMgXAorICAgIG1wZzEyMyBcCisgICAgbGlibW1zIFwKKyAgICBsaWJtb2RwbHVnIFwKKyAgICBib29zdCBcCisgICAgaWN1IFwKKyAgICBkYnVzIFwKKyAgICBleHBhdCBcCisgICAgemxpYiBcCisgICAgbGlidXBucCBcCisiCisKKyMgV2hpbGUgdGhpcyBpdGVtIGRvZXMgbm90IHJlcXVpcmUgaXQsIGl0IGRlcGVuZHMgb24gbXBnMTIzIHdoaWNoIGRvZXMKK0xJQ0VOU0VfRkxBR1MgPSAiY29tbWVyY2lhbCIKKworU1JDX1VSSSA9ICIgXAorICAgIGh0dHA6Ly93d3cubXVzaWNwZC5vcmcvZG93bmxvYWQvJHtCUE59LzAuMjAvJHtCUH0udGFyLnh6IFwKKyAgICBmaWxlOi8vbXBkLmNvbmYuaW4gXAorIgorU1JDX1VSSVttZDVzdW1dID0gIjhkYzg3YmE5NTQ3M2ZkNzM4ZjJhZmY5YmQ2OWNjMjEyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjZhNTgyZGMyYWU5MGI5NGZmMzg1M2Y5ZmZkN2Q4MGIyYzJiNWZlMmUyYzM1Y2IxZGEwYjM2ZjNmM2RmYWQ0MzQiCisKK0VYVFJBX09FQ09ORiA9ICJlbmFibGVfYnppcDI9eWVzIgorRVhUUkFfT0VDT05GICs9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAnLS13aXRoLXN5c3RlbWRzeXN0ZW11bml0ZGlyPSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vJywgJy0td2l0aG91dC1zeXN0ZW1kc3lzdGVtdW5pdGRpcicsIGQpfSIKKworUEFDS0FHRUNPTkZJR1thdWRpb2ZpbGVdID0gIi0tZW5hYmxlLWF1ZGlvZmlsZSwtLWRpc2FibGUtYXVkaW9maWxlLGF1ZGlvZmlsZSIKK1BBQ0tBR0VDT05GSUdbY2Rpb3BhcmFub2lhXSA9ICItLWVuYWJsZS1jZGlvLXBhcmFub2lhLC0tZGlzYWJsZS1jZGlvLXBhcmFub2lhLGxpYmNkaW8tcGFyYW5vaWEiCitQQUNLQUdFQ09ORklHW21hZF0gPSAiLS1lbmFibGUtbWFkLC0tZGlzYWJsZS1tYWQsbGlibWFkIgorUEFDS0FHRUNPTkZJR1tpZDN0YWddID0gIi0tZW5hYmxlLWlkMywtLWRpc2FibGUtaWQzLGxpYmlkM3RhZyIKK1BBQ0tBR0VDT05GSUdbbGFtZV0gPSAiLS1lbmFibGUtbGFtZS1lbmNvZGVyLC0tZGlzYWJsZS1sYW1lLWVuY29kZXIsbGFtZSIKK1BBQ0tBR0VDT05GSUdbc21iXSA9ICItLWVuYWJsZS1zbWJjbGllbnQsLS1kaXNhYmxlLXNtYmNsaWVudCxzYW1iYSIKKworZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7CisgICAgc2VkIC1pIC1lICdzfGxpYnN5c3RlbWQtZGFlbW9ufGxpYnN5c3RlbWR8JyAke1N9L2NvbmZpZ3VyZS5hYworfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCisgICAgY2htb2QgNzc1ICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCisgICAgaW5zdGFsbCAtZCAke0R9LyR7bG9jYWxzdGF0ZWRpcn0vbGliL21wZC9wbGF5bGlzdHMKKyAgICBjaG93biAtUiBtcGQgJHtEfS8ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQKKyAgICBjaG93biBtcGQ6bXBkICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCisKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfQorICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vbXBkLmNvbmYuaW4gJHtEfS8ke3N5c2NvbmZkaXJ9L21wZC5jb25mCisgICAgc2VkIC1pIFwKKyAgICAgICAgLWUgJ3N8JW11c2ljX2RpcmVjdG9yeSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljfCcgXAorICAgICAgICAtZSAnc3wlcGxheWxpc3RfZGlyZWN0b3J5JXwke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQvcGxheWxpc3RzfCcgXAorICAgICAgICAtZSAnc3wlZGJfZmlsZSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL21wZC5kYnwnIFwKKyAgICAgICAgLWUgJ3N8JWxvZ19maWxlJXwke2xvY2Fsc3RhdGVkaXJ9L2xvZy9tcGQubG9nfCcgXAorICAgICAgICAtZSAnc3wlc3RhdGVfZmlsZSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL3N0YXRlfCcgXAorICAgICAgICAke0R9LyR7c3lzY29uZmRpcn0vbXBkLmNvbmYKKworICAgIGlmIFsgLWUgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL21wZC5zZXJ2aWNlIF0gOyB0aGVuCisgICAgICAgIHNlZCAtaSBcCisgICAgICAgICAgICAnc3xeRXhlY1N0YXJ0PS4qfEV4ZWNTdGFydD0ke2JpbmRpcn0vbXBkIC0tbm8tZGFlbW9ufCcgXAorICAgICAgICAgICAgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL21wZC5zZXJ2aWNlCisgICAgZmkKK30KKworUlBST1ZJREVTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUlJFUExBQ0VTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUkNPTkZMSUNUU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJtcGQuc29ja2V0IgorCitVU0VSQUREX1BBQ0tBR0VTID0gIiR7UE59IgorVVNFUkFERF9QQVJBTV8ke1BOfSA9ICIgXAorICAgIC0tc3lzdGVtIC0tbm8tY3JlYXRlLWhvbWUgXAorICAgIC0taG9tZSAke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQgXAorICAgIC0tZ3JvdXBzIGF1ZGlvIFwKKyAgICAtLXVzZXItZ3JvdXAgbXBkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL29wZW5oMjY0L29wZW5oMjY0XzEuNy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL29wZW5oMjY0L29wZW5oMjY0XzEuNy4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0YzQ2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvb3BlbmgyNjQvb3BlbmgyNjRfMS43LjAuYmIKQEAgLTAsMCArMSw0MiBAQAorREVTQ1JJUFRJT04gPSAiT3BlbkgyNjQgaXMgYSBjb2RlYyBsaWJyYXJ5IHdoaWNoIHN1cHBvcnRzIEguMjY0IGVuY29kaW5nIGFuZCBcCitkZWNvZGluZy4gSXQgaXMgc3VpdGFibGUgZm9yIHVzZSBpbiByZWFsIHRpbWUgYXBwbGljYXRpb25zIHN1Y2ggYXMgV2ViUlRDLiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cub3BlbmgyNjQub3JnLyIKK1NFQ1RJT04gPSAibGlicy9tdWx0aW1lZGlhIgorCitERVBFTkRTX3g4NiArPSAibmFzbS1uYXRpdmUiCitERVBFTkRTX3g4Ni02NCArPSAibmFzbS1uYXRpdmUiCisKK0xJQ0VOU0UgPSAiQlNELTItQ2xhdXNlIgorTElDRU5TRV9GTEFHUyA9ICJjb21tZXJjaWFsIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YmI2ZDM3NzFkYTZhMDdkMzNmZDUwZDRkOWFhNzNiY2YiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCitTUkNSRVYgPSAiYTE4MGM5ZDRkNmYxYTQ4MzBjYTllZWQ5ZDE1OWQ1NDk5NmJkNjNjYiIKK0JSQU5DSCA9ICJvcGVuaDI2NHYxLjciCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vY2lzY28vb3BlbmgyNjQuZ2l0O3Byb3RvY29sPWh0dHBzO2JyYW5jaD0ke0JSQU5DSH07IgorCitDT01QQVRJQkxFX01BQ0hJTkVfYXJtdjdhID0gIiguKikiCitDT01QQVRJQkxFX01BQ0hJTkVfYWFyY2g2NCA9ICIoLiopIgorQ09NUEFUSUJMRV9NQUNISU5FX3g4NiA9ICIoLiopIgorQ09NUEFUSUJMRV9NQUNISU5FX3g4Ni02NCA9ICIoLiopIgorQ09NUEFUSUJMRV9NQUNISU5FX21pcHMgPSAiKC4qKSIKK0NPTVBBVElCTEVfTUFDSElORV9taXBzNjQgPSAiKC4qKSIKKworRVhUUkFfT0VNQUtFX2FybXY3YSA9ICJBUkNIPWFybSIKK0VYVFJBX09FTUFLRV9hYXJjaDY0ID0gIkFSQ0g9YXJtNjQiCitFWFRSQV9PRU1BS0VfeDg2ID0gIkFSQ0g9aTM4NiIKK0VYVFJBX09FTUFLRV94ODYtNjQgPSAiQVJDSD14ODZfNjQiCitFWFRSQV9PRU1BS0VfbWlwcyA9ICJBUkNIPW1pcHMiCitFWFRSQV9PRU1BS0VfbWlwczY0ID0gIkFSQ0g9bWlwczY0IgorCitkb19jb25maWd1cmUoKSB7CisgICAgOgorfQorCitkb19jb21waWxlKCkgeworICAgIG9lX3J1bm1ha2UKK30KKworZG9faW5zdGFsbCgpIHsKKyAgICBvZV9ydW5tYWtlIGluc3RhbGwgREVTVERJUj0ke0R9IFBSRUZJWD0ke3ByZWZpeH0KK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9vcHVzZmlsZS9vcHVzZmlsZV8wLjEwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL29wdXNmaWxlL29wdXNmaWxlXzAuMTAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg5ZGM4NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9vcHVzZmlsZS9vcHVzZmlsZV8wLjEwLmJiCkBAIC0wLDAgKzEsMTQgQEAKK0RFU0NSSVBUSU9OID0gIkxpYnJhcnkgZm9yIG9wZW5pbmcsIHNlZWtpbmcsIGFuZCBkZWNvZGluZyBvcHVzIGF1ZGlvIGZpbGVzIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly93d3cub3B1cy1jb2RlYy5vcmcvIgorU0VDVElPTiA9ICJhdWRpbyIKKworREVQRU5EUyA9ICJsaWJvZ2cgb3BlbnNzbCBsaWJvcHVzIgorCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTZhYzIyYjk5MmRkZTZhODkxZjg5NDljM2UyZGE4NTc2IgorCitTUkNfVVJJID0gImh0dHBzOi8vZG93bmxvYWRzLnhpcGgub3JnL3JlbGVhc2VzL29wdXMvJHtQTn0tJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gImFiM2Y3ZDE1ZDc2NmY1YjM2YjA5NTFlZTQzNWY5ZWJmIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ4ZTAzNTI2YmE4N2VmOWNmNWYxYzQ3YjVlYmUzYWExOTViZDg5YjkxMmE1NzA2MGMzNjE4NGE2Y2QxOTQxMmYiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NjaHJvZWRpbmdlci9zY2hyb2VkaW5nZXIvY29uZmlndXJlLmFjLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NjaHJvZWRpbmdlci9zY2hyb2VkaW5nZXIvY29uZmlndXJlLmFjLnBhdGNoCmluZGV4IDJlZDhkMjIuLjgzODQwMGYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9zY2hyb2VkaW5nZXIvc2Nocm9lZGluZ2VyL2NvbmZpZ3VyZS5hYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvc2Nocm9lZGluZ2VyL3NjaHJvZWRpbmdlci9jb25maWd1cmUuYWMucGF0Y2gKQEAgLTUsMTAgKzUsMTAgQEAKIAogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQogCi1JbmRleDogc2Nocm9lZGluZ2VyLTEuMC45L2NvbmZpZ3VyZS5hYworSW5kZXg6IHNjaHJvZWRpbmdlci0xLjAuMTEvY29uZmlndXJlLmFjCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gc2Nocm9lZGluZ2VyLTEuMC45Lm9yaWcvY29uZmlndXJlLmFjCi0rKysgc2Nocm9lZGluZ2VyLTEuMC45L2NvbmZpZ3VyZS5hYworLS0tIHNjaHJvZWRpbmdlci0xLjAuMTEub3JpZy9jb25maWd1cmUuYWMKKysrKyBzY2hyb2VkaW5nZXItMS4wLjExL2NvbmZpZ3VyZS5hYwogQEAgLTU0LDcgKzU0LDcgQEAgaWYgdGVzdCAieCR7SEFWRV9PUkN9IiAhPSB4eWVzIDsgdGhlbgogICAgQUNfRVJST1IoW29yYy0wLjQgPj0gJE9SQ19WRVIgaXMgcmVxdWlyZWRdKQogIGZpCkBAIC0xNiw1ICsxNiw1IEBACiAtT1JDQz1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1vcmNjIG9yYy0wLjRgCiArT1JDQz0kU1RBR0lOR19ESVJgJFBLR19DT05GSUcgLS12YXJpYWJsZT1vcmNjIG9yYy0wLjRgCiAgQUNfU1VCU1QoT1JDQykKKyBBTV9DT05ESVRJT05BTChIQVZFX09SQ0MsIHRlc3QgIngkY3Jvc3NfY29tcGlsaW5nIiAhPSB4eWVzKQogIAotIEFDX0FSR19XSVRIKFt0aHJlYWRdLApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3gvMDAwMS1VcGRhdGUtZXhwb3J0ZWQtc3ltYm9sLWxpc3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvc294L3NveC8wMDAxLVVwZGF0ZS1leHBvcnRlZC1zeW1ib2wtbGlzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGM2YjE5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3gvMDAwMS1VcGRhdGUtZXhwb3J0ZWQtc3ltYm9sLWxpc3QucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAorRnJvbSBiMTgwOWQ4MjAzMWFhN2M1YmNhYWQ1OGJjYjRiNTllMDgyZTA0NDZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWFucyBSdWxsZ2FyZCA8bWFuc0BtYW5zci5jb20+CitEYXRlOiBTdW4sIDUgTm92IDIwMTcgMTU6NDA6MTYgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXBkYXRlIGV4cG9ydGVkIHN5bWJvbCBsaXN0CisKK2NvbW1pdCA1YzU4NDEzNTQ0ICgiRG9uJ3QgZXhwb3J0IChtb3N0KSBpbnRlcm5hbCBsaWJzb3ggc3ltYm9scyIpCiticmVha3MgZHluYW1pYyBmbGFjIGJ1aWxkcyBhcyBmbGFjLmMgcmVmZXJlbmNlcyBsc3guZXJyb3IsIHNvIGFkZCBpdAordG8gdGhlIGxpc3Qgb2YgZXhjZXB0aW9ucy4KKworfCAubGlicy9mbGFjLm86IEluIGZ1bmN0aW9uIGBkZWNvZGVyX3JlYWRfY2FsbGJhY2snOgorfCAvdXNyL3NyYy9kZWJ1Zy9zb3gvMTQuNC4yLXIwL3NveC0xNC40LjIvc3JjL2ZsYWMuYzo2MzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgbHN4X2Vycm9yJworCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtodHRwczovL2JvZ29taXBzLm9yZy9zb3guZ2l0ICgicHUiIGJyYW5jaCldCisKKy0tLQorIHNyYy9NYWtlZmlsZS5hbSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQoraW5kZXggN2NjZWFhZmQuLmEzYTA0ZWQxIDEwMDY0NAorLS0tIGEvc3JjL01ha2VmaWxlLmFtCisrKysgYi9zcmMvTWFrZWZpbGUuYW0KK0BAIC05NSw3ICs5NSw3IEBAIGxpYnNveF9sYV9MSUJBREQgKz0gQEdPTVBfTElCU0AKKyAKKyBsaWJzb3hfbGFfQ0ZMQUdTID0gQFdBUk5fQ0ZMQUdTQAorIGxpYnNveF9sYV9MREZMQUdTID0gQEFQUF9MREZMQUdTQCAtdmVyc2lvbi1pbmZvIEBTSExJQl9WRVJTSU9OQCBcCistICAtZXhwb3J0LXN5bWJvbHMtcmVnZXggJ14oc294Xy4qfGxzeF8oY2hlY2tfcmVhZF9wYXJhbXN8KGNsb3NlfG9wZW4pX2RsbGlicmFyeXwoZGVidWcoX21vcmV8X21vc3QpP3xmYWlsfHJlcG9ydHx3YXJuKV9pbXBsfGVvZnxmYWlsX2Vycm5vfGZpbGVsZW5ndGh8ZmluZF8oZW51bV8odGV4dHx2YWx1ZSl8ZmlsZV9leHRlbnNpb24pfGdldG9wdChfaW5pdCk/fGxwYzEwXyhjcmVhdGVfKGRlfGVuKWNvZGVyX3N0YXRlfChkZXxlbiljb2RlKXxyYXcocmVhZHx3cml0ZSl8cmVhZChfYl9idWZ8YnVmfGNoYXJzKXxyZWFsbG9jfHJld2luZHxzZWVraXxzaWdmaWdzM3A/fHN0cmNhc2VjbXB8dGVsbHx1bnJlYWRifHdyaXRlKGJ8X2JfYnVmfGJ1ZnxzKSkpJCQnCisrICAtZXhwb3J0LXN5bWJvbHMtcmVnZXggJ14oc294Xy4qfGxzeF8oKFtjbV18cmUpYWxsb2N8Y2hlY2tfcmVhZF9wYXJhbXN8KGNsb3NlfG9wZW4pX2RsbGlicmFyeXwoZGVidWcoX21vcmV8X21vc3QpP3xmYWlsfHJlcG9ydHx3YXJuKV9pbXBsfGVvZnxlcnJvcnxmYWlsX2Vycm5vfGZpbGVsZW5ndGh8ZmluZF8oZW51bV8odGV4dHx2YWx1ZSl8ZmlsZV9leHRlbnNpb24pfGZsdXNofGdldG9wdChfaW5pdCk/fGlkM19yZWFkX3RhZ3xscGMxMF8oY3JlYXRlXyhkZXxlbiljb2Rlcl9zdGF0ZXwoZGV8ZW4pY29kZSl8cmF3KHJlYWR8d3JpdGUpfHJlYWQoX2JfYnVmfGJ1ZnxjaGFycyl8cmV3aW5kfHNlZWtpfHNpZ2ZpZ3MzcD98c3RyY2FzZWNtcHxzdHJkdXB8dGVsbHx1bnJlYWRifHdyaXRlKGJ8X2JfYnVmfGJ1ZnxzKSkpJCQnCisgCisgaWYgSEFWRV9XSU4zMl9MVERMCisgICBsaWJzb3hfbGFfU09VUkNFUyArPSB3aW4zMi1sdGRsLmMgd2luMzItbHRkbC5oCistLSAKKzIuMTYuMgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvc294L3NveC8wMDAxLXJlbW92ZS10aGUtZXJyb3ItbGluZS1hbmQtbGl2ZS13aXRob3V0LWZpbGUtdHlwZS1kZXQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvc294L3NveC8wMDAxLXJlbW92ZS10aGUtZXJyb3ItbGluZS1hbmQtbGl2ZS13aXRob3V0LWZpbGUtdHlwZS1kZXQucGF0Y2gKaW5kZXggNjA1ODYzYS4uNGYwMmE2NiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3gvMDAwMS1yZW1vdmUtdGhlLWVycm9yLWxpbmUtYW5kLWxpdmUtd2l0aG91dC1maWxlLXR5cGUtZGV0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9zb3gvc294LzAwMDEtcmVtb3ZlLXRoZS1lcnJvci1saW5lLWFuZC1saXZlLXdpdGhvdXQtZmlsZS10eXBlLWRldC5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gYzJhZWQyOGUzZTE0MzI5YWQwYThjNDM3MWZkY2NlOTkzNDAxM2YyMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZDAzMTNiZTVmYjk0N2RmMzk5YTRkYjI0YTVmOTI0NDUxMGQyY2U4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBXZWQsIDEyIEp1bCAyMDE3IDE2OjM2OjA2IC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIHJlbW92ZSB0aGUgI2Vycm9yIGxpbmUgYW5kIGxpdmUgd2l0aG91dCBmaWxlLXR5cGUgZGV0ZWN0aW9uCkBAIC0xMiwxNyArMTIsMTcgQEAKICAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvc3JjL2Zvcm1hdHMuYyBiL3NyYy9mb3JtYXRzLmMKLWluZGV4IDdlMjMxY2EuLmIxM2YwZDUgMTAwNjQ0CitpbmRleCA3MjRhNGNkYS4uZjY4M2E5MjIgMTAwNjQ0CiAtLS0gYS9zcmMvZm9ybWF0cy5jCiArKysgYi9zcmMvZm9ybWF0cy5jCi1AQCAtNDE2LDcgKzQxNiw2IEBAIHN0YXRpYyB2b2lkIFVOVVNFRCByZXdpbmRfcGlwZShGSUxFICogZnApCitAQCAtNDIyLDcgKzQyMiw2IEBAIHN0YXRpYyB2b2lkIFVOVVNFRCByZXdpbmRfcGlwZShGSUxFICogZnApCiAgICAvKiBUbyBmaXggdGhpcyAjZXJyb3IsIGVpdGhlciBzaW1wbHkgcmVtb3ZlIHRoZSAjZXJyb3IgbGluZSBhbmQgbGl2ZSB3aXRob3V0CiAgICAgKiBmaWxlLXR5cGUgZGV0ZWN0aW9uIHdpdGggcGlwZXMsIG9yIGFkZCBzdXBwb3J0IGZvciB5b3VyIGNvbXBpbGVyIGluIHRoZQotICAgICogbGluZXMgYWJvdmUuICBUZXN0IHdpdGggY2F0IG1vbmtleS5hdSB8IC4vc294IC0taW5mbyAtICovCisgICAgKiBsaW5lcyBhYm92ZS4gIFRlc3Qgd2l0aCBjYXQgbW9ua2V5LndhdiB8IC4vc294IC0taW5mbyAtICovCiAtICAjZXJyb3IgRklYIE5FRURFRCBIRVJFCiAgICAjZGVmaW5lIE5PX1JFV0lORF9QSVBFCiAgICAodm9pZClmcDsKICAjZW5kaWYKIC0tIAotMi4xMy4yCisyLjE2LjIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3hfMTQuNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3hfMTQuNC4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZWIxODU2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9zb3gvc294XzE0LjQuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLURFU0NSSVBUSU9OPSJTb1ggaXMgdGhlIFN3aXNzIEFybXkga25pZmUgb2Ygc291bmQgcHJvY2Vzc2luZyB0b29scy4gXAotSXQgY29udmVydHMgYXVkaW8gZmlsZXMgYW1vbmcgdmFyaW91cyBzdGFuZGFyZCBhdWRpbyBmaWxlIGZvcm1hdHMgXAotYW5kIGNhbiBhcHBseSBkaWZmZXJlbnQgZWZmZWN0cyBhbmQgZmlsdGVycyB0byB0aGUgYXVkaW8gZGF0YS4iCi1IT01FUEFHRSA9ICJodHRwOi8vc294LnNvdXJjZWZvcmdlLm5ldCIKLVNFQ1RJT04gPSAiYXVkaW8iCi0KLURFUEVORFMgPSAibGlicG5nIGZmbXBlZyBsaWJzbmRmaWxlMSBsaWJ2b3JiaXMiCi0KLSMgV2hpbGUgdGhpcyBpdGVtIGRvZXMgbm90IHJlcXVpcmUgaXQsIGl0IGRlcGVuZHMgb24gZmZtcGVnIHdoaWNoIGRvZXMKLUxJQ0VOU0VfRkxBR1MgPSAiY29tbWVyY2lhbCIKLQotUFIgPSAicjIiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhbHNhIHB1bHNlYXVkaW8nLCBkKX0gXAotICAgICAgICAgICAgICAgICAgIG1hZ2ljIFwKLSIKLVBBQ0tBR0VDT05GSUdbcHVsc2VhdWRpb10gPSAiLS13aXRoLXB1bHNlYXVkaW89ZHluLC0td2l0aC1wdWxzZWF1ZGlvPW5vLHB1bHNlYXVkaW8sIgotUEFDS0FHRUNPTkZJR1thbHNhXSA9ICItLXdpdGgtYWxzYT1keW4sLS13aXRoLWFsc2E9bm8sYWxzYS1saWIsIgotUEFDS0FHRUNPTkZJR1t3YXZwYWNrXSA9ICItLXdpdGgtd2F2cGFjaz1keW4sLS13aXRoLXdhdnBhY2s9bm8sd2F2cGFjaywiCi1QQUNLQUdFQ09ORklHW2ZsYWNdID0gIi0td2l0aC1mbGFjPWR5biwtLXdpdGgtZmxhYz1ubyxmbGFjLCIKLVBBQ0tBR0VDT05GSUdbYW1yd2JdID0gIi0td2l0aC1hbXJ3Yj1keW4sLS13aXRoLWFtcndiPW5vLG9wZW5jb3JlLWFtciwiCi1QQUNLQUdFQ09ORklHW2Ftcm5iXSA9ICItLXdpdGgtYW1ybmI9ZHluLC0td2l0aC1hbXJuYj1ubyxvcGVuY29yZS1hbXIsIgotUEFDS0FHRUNPTkZJR1ttYWdpY10gPSAiLS13aXRoLW1hZ2ljLC0td2l0aG91dC1tYWdpYyxmaWxlLCIKLVBBQ0tBR0VDT05GSUdbbWFkXSA9ICItLXdpdGgtbWFkLC0td2l0aG91dC1tYWQsbGlibWFkLCIKLVBBQ0tBR0VDT05GSUdbaWQzdGFnXSA9ICItLXdpdGgtaWQzdGFnLC0td2l0aG91dC1pZDN0YWcsbGliaWQzdGFnLCIKLVBBQ0tBR0VDT05GSUdbbGFtZV0gPSAiLS13aXRoLWxhbWUsLS13aXRob3V0LWxhbWUsbGFtZSwiCi1QQUNLQUdFQ09ORklHW2FvXSA9ICItLXdpdGgtYW8sLS13aXRob3V0LWFvLGxpYmFvLCIKLQotTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2Mi4xIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS5HUEw7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0xJQ0VOU0UuTEdQTDttZDU9ZmJjMDkzOTAxODU3ZmNkMTE4ZjA2NWY5MDA5ODJjMjQiCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3NveC9zb3gtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtcmVtb3ZlLXRoZS1lcnJvci1saW5lLWFuZC1saXZlLXdpdGhvdXQtZmlsZS10eXBlLWRldC5wYXRjaCBcCi0gICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICJiMGMxNWNmZjdhNGJhMGVjMTdmZGM3NGU2YTFmOWNmMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIzZWUzNGIxNGRkMjY3ZGUzNzhlOGExMTdhYWU4MWVjNGNhZTMzMDc3MjM0MmU2YTU1YmJmNjUyMGEwYTg4YWEzIgotCi1pbmhlcml0IGF1dG90b29scwotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3hfMTQuNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3hfMTQuNC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxZmRkZDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvc294L3NveF8xNC40LjIuYmIKQEAgLTAsMCArMSw0MCBAQAorREVTQ1JJUFRJT049IlNvWCBpcyB0aGUgU3dpc3MgQXJteSBrbmlmZSBvZiBzb3VuZCBwcm9jZXNzaW5nIHRvb2xzLiBcCitJdCBjb252ZXJ0cyBhdWRpbyBmaWxlcyBhbW9uZyB2YXJpb3VzIHN0YW5kYXJkIGF1ZGlvIGZpbGUgZm9ybWF0cyBcCithbmQgY2FuIGFwcGx5IGRpZmZlcmVudCBlZmZlY3RzIGFuZCBmaWx0ZXJzIHRvIHRoZSBhdWRpbyBkYXRhLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9zb3guc291cmNlZm9yZ2UubmV0IgorU0VDVElPTiA9ICJhdWRpbyIKKworREVQRU5EUyA9ICJsaWJwbmcgZmZtcGVnIGxpYnNuZGZpbGUxIgorCisjIFdoaWxlIHRoaXMgaXRlbSBkb2VzIG5vdCByZXF1aXJlIGl0LCBpdCBkZXBlbmRzIG9uIGZmbXBlZyB3aGljaCBkb2VzCitMSUNFTlNFX0ZMQUdTID0gImNvbW1lcmNpYWwiCisKK1BBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhbHNhIHB1bHNlYXVkaW8nLCBkKX0gXAorICAgICAgICAgICAgICAgICAgIG1hZ2ljIFwKKyIKK1BBQ0tBR0VDT05GSUdbcHVsc2VhdWRpb10gPSAiLS13aXRoLXB1bHNlYXVkaW89ZHluLC0td2l0aC1wdWxzZWF1ZGlvPW5vLHB1bHNlYXVkaW8sIgorUEFDS0FHRUNPTkZJR1thbHNhXSA9ICItLXdpdGgtYWxzYT1keW4sLS13aXRoLWFsc2E9bm8sYWxzYS1saWIsIgorUEFDS0FHRUNPTkZJR1t3YXZwYWNrXSA9ICItLXdpdGgtd2F2cGFjaz1keW4sLS13aXRoLXdhdnBhY2s9bm8sd2F2cGFjaywiCitQQUNLQUdFQ09ORklHW2ZsYWNdID0gIi0td2l0aC1mbGFjPWR5biwtLXdpdGgtZmxhYz1ubyxmbGFjLCIKK1BBQ0tBR0VDT05GSUdbYW1yd2JdID0gIi0td2l0aC1hbXJ3Yj1keW4sLS13aXRoLWFtcndiPW5vLG9wZW5jb3JlLWFtciwiCitQQUNLQUdFQ09ORklHW2Ftcm5iXSA9ICItLXdpdGgtYW1ybmI9ZHluLC0td2l0aC1hbXJuYj1ubyxvcGVuY29yZS1hbXIsIgorUEFDS0FHRUNPTkZJR1tvZ2d2b3JiaXNdID0gIi0td2l0aC1vZ2d2b3JiaXM9ZHluLC0td2l0aC1vZ2d2b3JiaXM9bm8sbGlidm9yYmlzIgorUEFDS0FHRUNPTkZJR1tvcHVzXSA9ICItLXdpdGgtb3B1cz1keW4sLS13aXRoLW9wdXM9bm8sb3B1c2ZpbGUiCitQQUNLQUdFQ09ORklHW21hZ2ljXSA9ICItLXdpdGgtbWFnaWMsLS13aXRob3V0LW1hZ2ljLGZpbGUsIgorUEFDS0FHRUNPTkZJR1ttYWRdID0gIi0td2l0aC1tYWQsLS13aXRob3V0LW1hZCxsaWJtYWQsIgorUEFDS0FHRUNPTkZJR1tpZDN0YWddID0gIi0td2l0aC1pZDN0YWcsLS13aXRob3V0LWlkM3RhZyxsaWJpZDN0YWcsIgorUEFDS0FHRUNPTkZJR1tsYW1lXSA9ICItLXdpdGgtbGFtZSwtLXdpdGhvdXQtbGFtZSxsYW1lLCIKK1BBQ0tBR0VDT05GSUdbYW9dID0gIi0td2l0aC1hbywtLXdpdGhvdXQtYW8sbGliYW8sIgorCitMSUNFTlNFID0gIkdQTHYyICYgTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLkdQTDttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vTElDRU5TRS5MR1BMO21kNT1mYmMwOTM5MDE4NTdmY2QxMThmMDY1ZjkwMDk4MmMyNCIKKworU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vc294L3NveC0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1yZW1vdmUtdGhlLWVycm9yLWxpbmUtYW5kLWxpdmUtd2l0aG91dC1maWxlLXR5cGUtZGV0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtVXBkYXRlLWV4cG9ydGVkLXN5bWJvbC1saXN0LnBhdGNoIFwKKyAgICAgICAgICAgIgorU1JDX1VSSVttZDVzdW1dID0gImQwNGZiYTJkOTI0NWU2NjFmMjQ1ZGUwNTc3ZjQ4YTMzIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImI0NWY1OTg2NDNmZmJkOGUzNjNmZjI0ZDYxMTY2Y2NlYzQ4MzZmZWE2ZDM4ODg4ODFiOGRmNTNlM2JiNTVmNmMiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3RpbnlhbHNhL3RpbnlhbHNhXzEuMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3RpbnlhbHNhL3RpbnlhbHNhXzEuMS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2Yjk1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvdGlueWFsc2EvdGlueWFsc2FfMS4xLjEuYmIKQEAgLTAsMCArMSwyOCBAQAorREVTQ1JJUFRJT04gPSAiVGlueUFMU0EgaXMgYSBzbWFsbCBsaWJyYXJ5IHRvIGludGVyZmFjZSB3aXRoIEFMU0EgaW4gXAordGhlIExpbnV4IGtlcm5lbC4gSXQgaXMgYSBsaWdodHdlaWdodCBhbHRlcm5hdGl2ZSB0byBsaWJhc291bmQuIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3RpbnlhbHNhL3RpbnlhbHNhIgorU0VDVElPTiA9ICJsaWJzL211bHRpbWVkaWEiCisKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTk9USUNFO21kNT1kYmRlZmU0MDBkODk0YjUxMGE5ZGUxNDgxMzE4MWQwYiIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICJkZjExMDkxMDg2YjU2ZTVmYjcxODg3ZjJmYTMyMGUxZDJmZmVmZjU4IgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3RpbnlhbHNhL3RpbnlhbHNhLmdpdDtwcm90b2NvbD1odHRwczsiCisKK2RvX2NvbmZpZ3VyZSgpIHsKKyAgICA6Cit9CisKK2RvX2NvbXBpbGUoKSB7CisgICAgb2VfcnVubWFrZSBDQz0nJHtDQ30nIExEPScke0NDfScgQVI9JyR7QVJ9JworfQorCitkb19pbnN0YWxsKCkgeworICAgIG9lX3J1bm1ha2UgaW5zdGFsbCBcCisgICAgICAgIFBSRUZJWD0iJHtwcmVmaXh9IiBERVNURElSPSIke0R9IiBJTkNESVI9IiR7aW5jbHVkZWRpcn0vdGlueWFsc2EiIFwKKyAgICAgICAgTElCRElSPSIke2xpYmRpcn0iIEJJTkRJUj0iJHtiaW5kaXJ9IiBNQU5ESVI9IiR7bWFuZGlyfSIKK30KKworUEFDS0FHRVMgPSsgIiR7UE59LXRvb2xzIgorRklMRVNfJHtQTn0tdG9vbHMgPSAiJHtiaW5kaXJ9LyoiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvdmxjL3ZsYy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvdmxjL3ZsYy5pbmMKaW5kZXggYWNiM2NjZC4uOGU4MmIzYiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3ZsYy92bGMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS92bGMvdmxjLmluYwpAQCAtNTcsNyArNTcsNiBAQAogUEFDS0FHRUNPTkZJR1txdDRdID0gIi0tZW5hYmxlLXF0LC0tZGlzYWJsZS1xdCwgcXQ0LXgxMS1mcmVlIgogUEFDS0FHRUNPTkZJR1tmcmVlcmRwXSA9ICItLWVuYWJsZS1mcmVlcmRwLC0tZGlzYWJsZS1mcmVlcmRwLCBmcmVlcmRwIgogUEFDS0FHRUNPTkZJR1tkdmJwc2ldID0gIi0tZW5hYmxlLWR2YnBzaSwtLWRpc2FibGUtZHZicHNpLCBsaWJkdmJwc2kiCi1QQUNLQUdFQ09ORklHW2dub21lLXZmc10gPSAiLS1lbmFibGUtZ25vbWV2ZnMsLS1kaXNhYmxlLWdub21ldmZzLCBnbm9tZS12ZnMiCiBQQUNLQUdFQ09ORklHW3NhbWJhXSA9ICItLWVuYWJsZS1zbWJjbGllbnQsLS1kaXNhYmxlLXNtYmNsaWVudCwgc2FtYmEiCiBQQUNLQUdFQ09ORklHW3VwbnBdID0gIi0tZW5hYmxlLXVwbnAsLS1kaXNhYmxlLXVwbnAsbGlidXBucCIKIFBBQ0tBR0VDT05GSUdbZHZkbmF2XSA9ICItLWVuYWJsZS1kdmRuYXYsLS1kaXNhYmxlLWR2ZG5hdixsaWJkdmRuYXYgbGliZHZkY3NzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1zdXBwb3J0L2dzdC1pbnN0cnVtZW50cy9nc3QtaW5zdHJ1bWVudHNfMC4yLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLXN1cHBvcnQvZ3N0LWluc3RydW1lbnRzL2dzdC1pbnN0cnVtZW50c18wLjIuMy5iYgppbmRleCBiNmNkYzRmLi4wN2QwYzU1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLXN1cHBvcnQvZ3N0LWluc3RydW1lbnRzL2dzdC1pbnN0cnVtZW50c18wLjIuMy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLXN1cHBvcnQvZ3N0LWluc3RydW1lbnRzL2dzdC1pbnN0cnVtZW50c18wLjIuMy5iYgpAQCAtNSwxOCArNSwxNiBAQAogTElDRU5TRSA9ICJMR1BMLTMuMCIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWU2YTYwMGZkNWUxZDljYmRlMmQ5ODM2ODAyMzNhZDAyIgogCi1TUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9raXJ1c2h5ay9nc3QtaW5zdHJ1bWVudHMvYXJjaGl2ZS8ke1BWfS50YXIuZ3oiCitERVBFTkRTID0gImdzdHJlYW1lcjEuMCIKIAotU1JDX1VSSVttZDVzdW1dID0gIjE0YTM5NGRlYzI1NjQyODQ4YjE3Zjk5OTlmMWI0OTk5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU1NjU2NThhMzNmZjk1OTY5NDY1NDEzMDRmYmRkM2IzNjgzZGJiODIxNzFhMGU2Y2U1NmY0MmI2NGEwMWU1OGQiCitTID0gIiR7V09SS0RJUn0vZ2l0IgorU1JDUkVWID0gIjRjZTgwOTI2MzZlZTY1NzIxNDhiNWZhMDQ0MDgwNzM0Y2Y1YTZiOGQiCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20va2lydXNoeWsvZ3N0LWluc3RydW1lbnRzLmdpdDtwcm90b2NvbD1odHRwczsiCiAKLVMgPSAiJHtXT1JLRElSfS9nc3QtaW5zdHJ1bWVudHMtJHtQVn0iCi0KK0ZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtsaWJkaXJ9L2dzdHJlYW1lci0xLjAvKmEiCiBGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9LyoiCiAKIElOU0FORV9TS0lQXyR7UE59ID0gImRldi1zbyIKIAotREVQRU5EUyA9ICJnc3RyZWFtZXIxLjAiCi0KIGluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLXN1cHBvcnQvbGlic3J0cC9saWJzcnRwXzEuNS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1zdXBwb3J0L2xpYnNydHAvbGlic3J0cF8xLjUuMi5iYgppbmRleCA4YWJhYTEyLi5lZThjNjhiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLXN1cHBvcnQvbGlic3J0cC9saWJzcnRwXzEuNS4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtc3VwcG9ydC9saWJzcnRwL2xpYnNydHBfMS41LjIuYmIKQEAgLTUsMTEgKzUsMTEgQEAKIExJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MTViYzE2YjlkMmUzMDU5NzRkZGU0N2U3MzM4ODM3MTQiCiAKLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2Npc2NvL2xpYnNydHAvYXJjaGl2ZS92JHtQVn0udGFyLmd6O2Rvd25sb2FkZmlsZW5hbWU9JHtCUH0udGFyLmd6IFwKK1MgPSAiJHtXT1JLRElSfS9naXQiCitTUkNSRVYgPSAiZTgwNmE2NmJhZDM1ZjRiMjE1YjdhODI1YzI0ZWYwZWM0Y2MxOTU2OSIKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9jaXNjby9saWJzcnRwLmdpdDtwcm90b2NvbD1odHRwczsgXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1SZW5hbWUtY29uZmxpY3RpbmctdmFyaWFibGUtbWlwcy5wYXRjaCBcCiAgICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICIyMzA5YWE2MDI3OTkyODEwYTQyODViMDQyYzcxZTY0NCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4NmUxZWZlMzUzMzk3YzA3NTFmNmJkZDcwOTc5NDE0M2JkMWI3NjQ5NDQxMjg2MGYxNmZmMmI2ZDljMzA0ZWRhIgogCiBpbmhlcml0IGF1dG90b29scwogCkBAIC0xOCwzICsxOCw1IEBACiBybV91bnVzZWRfYmluZGlyKCkgewogICAgIHJtZGlyICR7RH0vJHtiaW5kaXJ9CiB9CisKK0FMTE9XX0VNUFRZXyR7UE59ID0gIjEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9NQUlOVEFJTkVSUyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL01BSU5UQUlORVJTCmluZGV4IDc3MWM3M2MuLmJiYjJkMWIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL01BSU5UQUlORVJTCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL01BSU5UQUlORVJTCkBAIC0yLDE2ICsyLDEzIEBACiAKIFBsZWFzZSBzdWJtaXQgYW55IHBhdGNoZXMgYWdhaW5zdCBtZXRhLW5ldHdvcmtpbmcgdG8gdGhlIE9wZW5FbWJlZGRlZAogZGV2ZWxvcG1lbnQgbWFpbGluZyBsaXN0IChvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZykgd2l0aAotJ1ttZXRhLW5ldHdvcmtpbmddW3JvY2tvXScgaW4gdGhlIHN1YmplY3QuCisnW21ldGEtbmV0d29ya2luZ10nIGluIHRoZSBzdWJqZWN0LgogCiBXaGVuIHNlbmRpbmcgc2luZ2xlIHBhdGNoZXMsIHBsZWFzZSB1c2Ugc29tZXRoaW5nIGxpa2U6CiAKICAgIGdpdCBzZW5kLWVtYWlsIC0xIC1NIFwKICAgICAgICAgLS10byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyBcCi0gICAgICAgIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1uZXR3b3JraW5nXVtyb2Nrb11bUEFUQ0gKLQotcm9ja28gQnJhbmNoIE1haW50YWluZXI6Ci1Bcm1pbiBLdXN0ZXIgPGFrdXN0ZXI4MDhAZ21haWwuY29tPgorICAgICAgICAtLXN1YmplY3QtcHJlZml4PW1ldGEtbmV0d29ya2luZ11bUEFUQ0gKIAogWW91IG1heSBhbHNvIGNvbnRhY3QgdGhlIG1haW50YWluZXJzIGRpcmVjdGx5LgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9jbGFzc2VzL3dhZi1zYW1iYS5iYmNsYXNzIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvY2xhc3Nlcy93YWYtc2FtYmEuYmJjbGFzcwppbmRleCBlNDkwMTc2Li4xNjMyYzNjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9jbGFzc2VzL3dhZi1zYW1iYS5iYmNsYXNzCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL2NsYXNzZXMvd2FmLXNhbWJhLmJiY2xhc3MKQEAgLTEsNyArMSw3IEBACiAjIHdhZiBpcyBhIGJ1aWxkIHN5c3RlbSB3aGljaCBpcyB1c2VkIGJ5IHNhbWJhIHJlbGF0ZWQgcHJvamVjdC4KICMgT2J0YWluIGRldGFpbHMgZnJvbSBodHRwczovL3dpa2kuc2FtYmEub3JnL2luZGV4LnBocC9XYWYKLSMgCi1pbmhlcml0IHFlbXUgcHl0aG9ubmF0aXZlIHdhZgorIworaW5oZXJpdCBxZW11IHB5dGhvbm5hdGl2ZQogCiBERVBFTkRTICs9ICJxZW11LW5hdGl2ZSBsaWJ4c2x0LW5hdGl2ZSBkb2Nib29rLXhzbC1zdHlsZXNoZWV0cy1uYXRpdmUgcHl0aG9uIgogCkBAIC0yMSw2ICsyMSwyOSBAQAogICAgICAgICAgICAgICAgICAgJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfSBcCiAgICAgICAgICAgICAgICAgIgogCisjIGF2b2lkcyBidWlsZCBicmVha3Mgd2hlbiB1c2luZyBuby1zdGF0aWMtbGlicy5pbmMKK0RJU0FCTEVfU1RBVElDID0gIiIKKworZGVmIGdldF93YWZfcGFyYWxsZWxfbWFrZShkKToKKyAgICBwbSA9IGQuZ2V0VmFyKCdQQVJBTExFTF9NQUtFJykKKyAgICBpZiBwbToKKyAgICAgICAgIyBsb29rIGZvciAnLWonIGFuZCB0aHJvdyBvdGhlciBvcHRpb25zIChlLmcuICctbCcpIGF3YXkKKyAgICAgICAgIyBiZWNhdXNlIHRoZXkgbWlnaHQgaGF2ZSBkaWZmZXJlbnQgbWVhbmluZyBpbiBiamFtCisgICAgICAgIHBtID0gcG0uc3BsaXQoKQorICAgICAgICB3aGlsZSBwbToKKyAgICAgICAgICAgIG9wdCA9IHBtLnBvcCgwKQorICAgICAgICAgICAgaWYgb3B0ID09ICctaic6CisgICAgICAgICAgICAgICAgdiA9IHBtLnBvcCgwKQorICAgICAgICAgICAgZWxpZiBvcHQuc3RhcnRzd2l0aCgnLWonKToKKyAgICAgICAgICAgICAgICB2ID0gb3B0WzI6XS5zdHJpcCgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIHYgPSBtaW4oNjQsIGludCh2KSkKKyAgICAgICAgICAgIHJldHVybiAnLWonICsgc3RyKHYpCisKKyAgICByZXR1cm4gIiIKKwogIyBUaHJlZSBtZXRob2RzIGZvciB3YWYgY3Jvc3MgY29tcGlsZToKICMgMS4gYW5zd2VyczoKICMgICAgT25seSAtLWNyb3NzLWFuc3dlcnMgLSB0cnkgdGhlIGNyb3NzLWFuc3dlcnMgZmlsZSwgYW5kIGlmCkBAIC04Niw4ICsxMDksOSBAQAogICAgIGZpCiB9CiAKK2RvX2NvbXBpbGVbcHJvZ3Jlc3NdID0gIm91dG9mOl5cW1xzKihcZCspL1xzKihcZCspXF1ccysiCiBkb19jb21waWxlICgpIHsKLSAgICBweXRob24gLi9idWlsZHRvb2xzL2Jpbi93YWYgJHtAZ2V0X3dhZl9wYXJhbGxlbF9tYWtlKGQpfQorICAgIHB5dGhvbiAuL2J1aWxkdG9vbHMvYmluL3dhZiAke0BvZS51dGlscy5wYXJhbGxlbF9tYWtlX2FyZ3VtZW50KGQsICctaiVkJywgbGltaXQ9NjQpfQogfQogCiBkb19pbnN0YWxsKCkgewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvY29uZi9sYXllci5jb25mIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvY29uZi9sYXllci5jb25mCmluZGV4IDJkZmRlNGIuLmU1OTRiN2IgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9jb25mL2xheWVyLmNvbmYKQEAgLTE3LDYgKzE3LDggQEAKIExBWUVSREVQRU5EU19uZXR3b3JraW5nLWxheWVyICs9ICJvcGVuZW1iZWRkZWQtbGF5ZXIiCiBMQVlFUkRFUEVORFNfbmV0d29ya2luZy1sYXllciArPSAibWV0YS1weXRob24iCiAKK0xBWUVSU0VSSUVTX0NPTVBBVF9uZXR3b3JraW5nLWxheWVyID0gInN1bW8iCisKIExJQ0VOU0VfUEFUSCArPSAiJHtMQVlFUkRJUn0vbGljZW5zZXMiCiAKIFNJR0dFTl9FWENMVURFX1NBRkVfUkVDSVBFX0RFUFMgKz0gIiBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9maWxlcy93YWYtY3Jvc3MtYW5zd2Vycy9jcm9zcy1hbnN3ZXJzLWFhcmNoNjRfYmUudHh0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvZmlsZXMvd2FmLWNyb3NzLWFuc3dlcnMvY3Jvc3MtYW5zd2Vycy1hYXJjaDY0X2JlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDIzZjZhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvZmlsZXMvd2FmLWNyb3NzLWFuc3dlcnMvY3Jvc3MtYW5zd2Vycy1hYXJjaDY0X2JlLnR4dApAQCAtMCwwICsxLDM5IEBACitDaGVja2luZyB1bmFtZSBzeXNuYW1lIHR5cGU6ICJMaW51eCIKK0NoZWNraW5nIHVuYW1lIHZlcnNpb24gdHlwZTogIiMgV2VkIE1heSAyMCAxMDozNDozOSBVVEMgMjAxNSIKK0NoZWNraW5nIHNpbXBsZSBDIHByb2dyYW06ICJoZWxsbyB3b3JsZCIKK3JwYXRoIGxpYnJhcnkgc3VwcG9ydDogT0sKKy1XbCwtLXZlcnNpb24tc2NyaXB0IHN1cHBvcnQ6IE9LCitDaGVja2luZyBnZXRjb25mIExGU19DRkxBR1M6IE5PCitDaGVja2luZyBjb3JyZWN0IGJlaGF2aW9yIG9mIHN0cnRvbGw6IE5PCitDaGVja2luZyBmb3Igd29ya2luZyBzdHJwdGltZTogT0sKK0NoZWNraW5nIGZvciBDOTkgdnNucHJpbnRmOiAiMSIKK0NoZWNraW5nIGZvciBIQVZFX1NIQVJFRF9NTUFQOiBPSworQ2hlY2tpbmcgZm9yIEhBVkVfTVJFTUFQOiBPSworQ2hlY2tpbmcgZm9yIEhBVkVfU0VDVVJFX01LU1RFTVA6IE9LCitDaGVja2luZyBmb3IgSEFWRV9JRkFDRV9HRVRJRkFERFJTOiBOTworQ2hlY2tpbmcgZm9yIEhBVkVfSUZBQ0VfSUZDT05GOiBOTworQ2hlY2tpbmcgZm9yIEhBVkVfSUZBQ0VfSUZSRVE6IE5PCitDaGVja2luZyBmb3IgbGFyZ2UgZmlsZSBzdXBwb3J0IHdpdGhvdXQgYWRkaXRpb25hbCBmbGFnczogT0sKK0NoZWNraW5nIGZvciBIQVZFX0lOQ09IRVJFTlRfTU1BUDogTk8KK0NoZWNraW5nIHZhbHVlIG9mIE5TSUc6ICI2NSIKK0NoZWNraW5nIHZhbHVlIG9mIF9OU0lHOiAiNjUiCitDaGVja2luZyB2YWx1ZSBvZiBTSUdSVE1BWDogIjY0IgorQ2hlY2tpbmcgdmFsdWUgb2YgU0lHUlRNSU46ICIzNCIKK0NoZWNraW5nIHdoZXRoZXIgdGhlIFdSRklMRSAta2V5dGFiIGlzIHN1cHBvcnRlZDogT0sKK0NoZWNraW5nIGZvciBrZXJuZWwgY2hhbmdlIG5vdGlmeSBzdXBwb3J0OiBPSworQ2hlY2tpbmcgZm9yIExpbnV4IGtlcm5lbCBvcGxvY2tzOiBPSworQ2hlY2tpbmcgZm9yIGtlcm5lbCBzaGFyZSBtb2RlczogT0sKK0NoZWNraW5nIHdoZXRoZXIgUE9TSVggY2FwYWJpbGl0aWVzIGFyZSBhdmFpbGFibGU6IE9LCitDaGVja2luZyBpZiBjYW4gd2UgY29udmVydCBmcm9tIENQODUwIHRvIFVDUy0yTEU6IE9LCitDaGVja2luZyBpZiBjYW4gd2UgY29udmVydCBmcm9tIFVURi04IHRvIFVDUy0yTEU6IE9LCit2ZnNfZmlsZWlkIGNoZWNraW5nIGZvciBzdGF0ZnMoKSBhbmQgc3RydWN0IHN0YXRmcy5mX2ZzaWQ6IE9LCitDaGVja2luZyB3aGV0aGVyIHdlIGNhbiB1c2UgTGludXggdGhyZWFkLXNwZWNpZmljIGNyZWRlbnRpYWxzOiBPSworQ2hlY2tpbmcgd2hldGhlciBmY250bCBsb2NraW5nIGlzIGF2YWlsYWJsZTogT0sKK0NoZWNraW5nIGZvciB0aGUgbWF4aW11bSB2YWx1ZSBvZiB0aGUgJ3RpbWVfdCcgdHlwZTogT0sKK0NoZWNraW5nIHdoZXRoZXIgdGhlIHJlYWxwYXRoIGZ1bmN0aW9uIGFsbG93cyBhIE5VTEwgYXJndW1lbnQ6IE9LCitDaGVja2luZyBmb3IgZnRydW5jYXRlIGV4dGVuZDogT0sKK2dldGN3ZCB0YWtlcyBhIE5VTEwgYXJndW1lbnQ6IE9LCitDaGVja2luZyBmb3Igc21hbGwgb2ZmX3Q6IE5PCitDaGVja2luZyB3aGV0aGVyIGJsa2NudF90IGlzIDMyIGJpdDogTk8KK0NoZWNraW5nIHdoZXRoZXIgYmxrY250X3QgaXMgNjQgYml0OiBPSworQ2hlY2tpbmcgd2hldGhlciBmY250bCBsb2NrIHN1cHBvcnRzIG9wZW4gZmlsZSBkZXNjcmlwdGlvbiBsb2NrczogT0sKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL2ZpbGVzL3dhZi1jcm9zcy1hbnN3ZXJzL2Nyb3NzLWFuc3dlcnMtcmlzY3Y2NC50eHQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9maWxlcy93YWYtY3Jvc3MtYW5zd2Vycy9jcm9zcy1hbnN3ZXJzLXJpc2N2NjQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwMjNmNmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9maWxlcy93YWYtY3Jvc3MtYW5zd2Vycy9jcm9zcy1hbnN3ZXJzLXJpc2N2NjQudHh0CkBAIC0wLDAgKzEsMzkgQEAKK0NoZWNraW5nIHVuYW1lIHN5c25hbWUgdHlwZTogIkxpbnV4IgorQ2hlY2tpbmcgdW5hbWUgdmVyc2lvbiB0eXBlOiAiIyBXZWQgTWF5IDIwIDEwOjM0OjM5IFVUQyAyMDE1IgorQ2hlY2tpbmcgc2ltcGxlIEMgcHJvZ3JhbTogImhlbGxvIHdvcmxkIgorcnBhdGggbGlicmFyeSBzdXBwb3J0OiBPSworLVdsLC0tdmVyc2lvbi1zY3JpcHQgc3VwcG9ydDogT0sKK0NoZWNraW5nIGdldGNvbmYgTEZTX0NGTEFHUzogTk8KK0NoZWNraW5nIGNvcnJlY3QgYmVoYXZpb3Igb2Ygc3RydG9sbDogTk8KK0NoZWNraW5nIGZvciB3b3JraW5nIHN0cnB0aW1lOiBPSworQ2hlY2tpbmcgZm9yIEM5OSB2c25wcmludGY6ICIxIgorQ2hlY2tpbmcgZm9yIEhBVkVfU0hBUkVEX01NQVA6IE9LCitDaGVja2luZyBmb3IgSEFWRV9NUkVNQVA6IE9LCitDaGVja2luZyBmb3IgSEFWRV9TRUNVUkVfTUtTVEVNUDogT0sKK0NoZWNraW5nIGZvciBIQVZFX0lGQUNFX0dFVElGQUREUlM6IE5PCitDaGVja2luZyBmb3IgSEFWRV9JRkFDRV9JRkNPTkY6IE5PCitDaGVja2luZyBmb3IgSEFWRV9JRkFDRV9JRlJFUTogTk8KK0NoZWNraW5nIGZvciBsYXJnZSBmaWxlIHN1cHBvcnQgd2l0aG91dCBhZGRpdGlvbmFsIGZsYWdzOiBPSworQ2hlY2tpbmcgZm9yIEhBVkVfSU5DT0hFUkVOVF9NTUFQOiBOTworQ2hlY2tpbmcgdmFsdWUgb2YgTlNJRzogIjY1IgorQ2hlY2tpbmcgdmFsdWUgb2YgX05TSUc6ICI2NSIKK0NoZWNraW5nIHZhbHVlIG9mIFNJR1JUTUFYOiAiNjQiCitDaGVja2luZyB2YWx1ZSBvZiBTSUdSVE1JTjogIjM0IgorQ2hlY2tpbmcgd2hldGhlciB0aGUgV1JGSUxFIC1rZXl0YWIgaXMgc3VwcG9ydGVkOiBPSworQ2hlY2tpbmcgZm9yIGtlcm5lbCBjaGFuZ2Ugbm90aWZ5IHN1cHBvcnQ6IE9LCitDaGVja2luZyBmb3IgTGludXgga2VybmVsIG9wbG9ja3M6IE9LCitDaGVja2luZyBmb3Iga2VybmVsIHNoYXJlIG1vZGVzOiBPSworQ2hlY2tpbmcgd2hldGhlciBQT1NJWCBjYXBhYmlsaXRpZXMgYXJlIGF2YWlsYWJsZTogT0sKK0NoZWNraW5nIGlmIGNhbiB3ZSBjb252ZXJ0IGZyb20gQ1A4NTAgdG8gVUNTLTJMRTogT0sKK0NoZWNraW5nIGlmIGNhbiB3ZSBjb252ZXJ0IGZyb20gVVRGLTggdG8gVUNTLTJMRTogT0sKK3Zmc19maWxlaWQgY2hlY2tpbmcgZm9yIHN0YXRmcygpIGFuZCBzdHJ1Y3Qgc3RhdGZzLmZfZnNpZDogT0sKK0NoZWNraW5nIHdoZXRoZXIgd2UgY2FuIHVzZSBMaW51eCB0aHJlYWQtc3BlY2lmaWMgY3JlZGVudGlhbHM6IE9LCitDaGVja2luZyB3aGV0aGVyIGZjbnRsIGxvY2tpbmcgaXMgYXZhaWxhYmxlOiBPSworQ2hlY2tpbmcgZm9yIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSAndGltZV90JyB0eXBlOiBPSworQ2hlY2tpbmcgd2hldGhlciB0aGUgcmVhbHBhdGggZnVuY3Rpb24gYWxsb3dzIGEgTlVMTCBhcmd1bWVudDogT0sKK0NoZWNraW5nIGZvciBmdHJ1bmNhdGUgZXh0ZW5kOiBPSworZ2V0Y3dkIHRha2VzIGEgTlVMTCBhcmd1bWVudDogT0sKK0NoZWNraW5nIGZvciBzbWFsbCBvZmZfdDogTk8KK0NoZWNraW5nIHdoZXRoZXIgYmxrY250X3QgaXMgMzIgYml0OiBOTworQ2hlY2tpbmcgd2hldGhlciBibGtjbnRfdCBpcyA2NCBiaXQ6IE9LCitDaGVja2luZyB3aGV0aGVyIGZjbnRsIGxvY2sgc3VwcG9ydHMgb3BlbiBmaWxlIGRlc2NyaXB0aW9uIGxvY2tzOiBPSwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvY3JkYS9jcmRhL2ZpeC1pc3N1ZXMtd2hlbi1VU0VfT1BFTlNTTC0xLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvY3JkYS9jcmRhL2ZpeC1pc3N1ZXMtd2hlbi1VU0VfT1BFTlNTTC0xLnBhdGNoCmluZGV4IDkzYzgzNmMuLjFiYjVjNjMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2NyZGEvY3JkYS9maXgtaXNzdWVzLXdoZW4tVVNFX09QRU5TU0wtMS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9jcmRhL2NyZGEvZml4LWlzc3Vlcy13aGVuLVVTRV9PUEVOU1NMLTEucGF0Y2gKQEAgLTE3LDcgKzE3LDcgQEAKICAgIHN0YXRpYyBzdHJ1Y3QgcHVia2V5IGtleXNbXSA9IHsKIAogU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgotVXBzdGVhbS1TdGF0dXM6IFBlbmRpbmcKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZwogU2lnbmVkLW9mZi1ieTogSGFpcWluZyBCYWkgPEhhaXFpbmcuQmFpQHdpbmRyaXZlci5jb20+CiAtLS0KICB1dGlscy9rZXkycHViLnB5IHwgNSArKystLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvY3JkYS9jcmRhL2ZpeC1saW5raW5nLW9mLWxpYnJhcmllcy11c2VkLWJ5LXJlZ2xpYi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2NyZGEvY3JkYS9maXgtbGlua2luZy1vZi1saWJyYXJpZXMtdXNlZC1ieS1yZWdsaWIucGF0Y2gKaW5kZXggYWNlYjU2ZC4uODEyZTk4MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvY3JkYS9jcmRhL2ZpeC1saW5raW5nLW9mLWxpYnJhcmllcy11c2VkLWJ5LXJlZ2xpYi5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9jcmRhL2NyZGEvZml4LWxpbmtpbmctb2YtbGlicmFyaWVzLXVzZWQtYnktcmVnbGliLnBhdGNoCkBAIC0xLDYgKzEsNyBAQAorRnJvbSA4OTBmNWJmMjY1NGI2OTVhODY2MjYyZDcyYmZhOTc1MGFmOTIxYTNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KIERhdGU6IFNhdCwgMjMgQXVnIDIwMTQgMTI6MjY6MzcgLTA3MDAKLVN1YmplY3Q6IEZpeCBsaW5raW5nIG9mIGxpYnJhcmllcyB1c2VkIGJ5IGxpYnJlZworU3ViamVjdDogW1BBVENIXSBGaXggbGlua2luZyBvZiBsaWJyYXJpZXMgdXNlZCBieSBsaWJyZWcKIAogVGhlIG1hdGggYW5kIGNyeXB0byBsaWJyYXJpZXMgYXJlIGNhbGxlZCBieSBhbmQgbmVlZCB0byBiZSBsaW5rZWQgdG8KIGxpYnJlZy5zbywgbm90IHRvIHRoZSBleGVjdXRhYmxlcy4KQEAgLTksMTAgKzEwLDE1IEBACiAKIFNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbkBkZWNhZGVudC5vcmcudWs+CiBTaWduZWQtb2ZmLWJ5OiBKb2UgTWFjRG9uYWxkIDxqb2VfbWFjZG9uYWxkQG1lbnRvci5jb20+CistLS0KKyBNYWtlZmlsZSB8IDggKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQoraW5kZXggYTNlYWQzMC4uZGEyZGNjMyAxMDA2NDQKIC0tLSBhL01ha2VmaWxlCiArKysgYi9NYWtlZmlsZQotQEAgLTMwLDcgKzMwLDcgQEAgQ0ZMQUdTICs9IC1zdGQ9Z251OTkgLVdhbGwgLVdlcnJvciAtcGVkYQorQEAgLTMwLDcgKzMwLDcgQEAgQ0ZMQUdTICs9IC1zdGQ9Z251OTkgLVdhbGwgLVdlcnJvciAtcGVkYW50aWMKICBDRkxBR1MgKz0gLVdhbGwgLWcKICBMRExJQlJFRyArPSAtbHJlZwogIExETElCUyArPSAkKExETElCUkVHKQpAQCAtMjEsMTYgKzI3LDE0IEBACiAgTElCUkVHICs9IGxpYnJlZy5zbwogIExERkxBR1MgKz0gLUwgLi8KICAKLUBAIC00MCw3ICs0MCw3IEBAIGFsbF9ub3ZlcmlmeTogJChMSUJSRUcpIGNyZGEgaW50ZXJzZWN0IHIKK0BAIC00MCwxMyArNDAsMTMgQEAgYWxsX25vdmVyaWZ5OiAkKExJQlJFRykgY3JkYSBpbnRlcnNlY3QgcmVnZGJkdW1wIGRiMnJkIG9wdGltaXplCiAgCiAgaWZlcSAoJChVU0VfT1BFTlNTTCksMSkKICBDRkxBR1MgKz0gLURVU0VfT1BFTlNTTCAtRFBVQktFWV9ESVI9XCIkKFJVTlRJTUVfUFVCS0VZX0RJUilcIiBgcGtnLWNvbmZpZyAtLWNmbGFncyBvcGVuc3NsYAogLUxETElCUyArPSBgcGtnLWNvbmZpZyAtLWxpYnMgb3BlbnNzbGAKICtMSUJSRUdMRExJQlMgKz0gYHBrZy1jb25maWcgLS1saWJzIG9wZW5zc2xgCiAgCi0gaWZlcSAoJChSVU5USU1FX1BVQktFWV9PTkxZKSwxKQotIENGTEFHUyArPSAtRFJVTlRJTUVfUFVCS0VZX09OTFkKLUBAIC01MSw3ICs1MSw3IEBAIGVuZGlmCisgJChMSUJSRUcpOiBrZXlzLXNzbC5jCiAgCiAgZWxzZQogIENGTEFHUyArPSAtRFVTRV9HQ1JZUFQKQEAgLTM5LDcgKzQzLDcgQEAKICAKICAkKExJQlJFRyk6IGtleXMtZ2NyeXB0LmMKICAKLUBAIC0xMjEsNyArMTIxLDcgQEAga2V5cy0lLmM6IHV0aWxzL2tleTJwdWIucHkgJCh3aWxkY2FyZCAkKAorQEAgLTExNiw3ICsxMTYsNyBAQCBrZXlzLSUuYzogdXRpbHMva2V5MnB1Yi5weSAkKHdpbGRjYXJkICQoUFVCS0VZX0RJUikvKi5wZW0pCiAgCiAgJChMSUJSRUcpOiByZWdkYi5oIHJlZ2xpYi5oIHJlZ2xpYi5jCiAgCSQoTlEpICcgIENDICAnICRACkBAIC00OCwzICs1Miw2IEBACiAgCiAgaW5zdGFsbC1saWJyZWctaGVhZGVyczoKICAJJChOUSkgJyAgSU5TVEFMTCAgbGlicmVnLWhlYWRlcnMnCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2RoY3BjZC9kaGNwY2RfNi4xMS4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvZGhjcGNkL2RoY3BjZF82LjExLjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiM2I1YzIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvZGhjcGNkL2RoY3BjZF82LjExLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1TRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKLVNVTU1BUlkgPSAiZGhjcGNkIC0gYSBESENQIGNsaWVudCIKLURFU0NSSVBUSU9OID0gImRoY3BjZCBydW5zIG9uIHlvdXIgbWFjaGluZSBhbmQgc2lsZW50bHkgY29uZmlndXJlcyB5b3VyIGNvbXB1dGVyIHRvIHdvcmsgb24gdGhlIGF0dGFjaGVkIG5ldHdvcmtzIHdpdGhvdXQgdHJvdWJsZSBhbmQgbW9zdGx5IHdpdGhvdXQgY29uZmlndXJhdGlvbi4iCi0KLUhPTUVQQUdFID0gImh0dHA6Ly9yb3kubWFycGxlcy5uYW1lL3Byb2plY3RzL2RoY3BjZC8iCi0KLUxJQ0VOU0UgPSAiQlNELTItQ2xhdXNlIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vZGhjcGNkLmM7ZW5kbGluZT0yNjttZDU9NzdjNDBkNjcxYWZmODA0Y2E5MWVhOTk1NTZkYThlOWIiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3JveS5tYXJwbGVzLm5hbWUvZG93bmxvYWRzLyR7QlBOfS8ke0JQTn0tJHtQVn0udGFyLnh6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZDRmMmYzZWQ0OTY0MTk3ZGVlNzc2NzIxOWMzM2E5ZGYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWFiZDEyYzRkZjI5NDdkNjA4ZjYwYTM1MjI3ZjliZjhhZThhYjlkZTA2Y2U5NzVjZGFiMTE0NGQ4ZjIyOWIwNiIKLQotaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwCi0KLVBBQ0tBR0VDT05GSUcgPz0gInVkZXYgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnaXB2NicsIGQpfSIKLQotUEFDS0FHRUNPTkZJR1t1ZGV2XSA9ICItLXdpdGgtdWRldiwtLXdpdGhvdXQtdWRldix1ZGV2LHVkZXYiCi1QQUNLQUdFQ09ORklHW2lwdjZdID0gIi0tZW5hYmxlLWlwdjYsLS1kaXNhYmxlLWlwdjYiCi0KLUVYVFJBX09FQ09ORiA9ICItLWVuYWJsZS1pcHY0IgotCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9kaGNwY2QvZGV2Ly5kZWJ1ZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2RoY3BjZC9kaGNwY2RfNi4xMS41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvZGhjcGNkL2RoY3BjZF82LjExLjUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODg1YzZjMAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2RoY3BjZC9kaGNwY2RfNi4xMS41LmJiCkBAIC0wLDAgKzEsMjQgQEAKK1NFQ1RJT04gPSAiY29uc29sZS9uZXR3b3JrIgorU1VNTUFSWSA9ICJkaGNwY2QgLSBhIERIQ1AgY2xpZW50IgorREVTQ1JJUFRJT04gPSAiZGhjcGNkIHJ1bnMgb24geW91ciBtYWNoaW5lIGFuZCBzaWxlbnRseSBjb25maWd1cmVzIHlvdXIgY29tcHV0ZXIgdG8gd29yayBvbiB0aGUgYXR0YWNoZWQgbmV0d29ya3Mgd2l0aG91dCB0cm91YmxlIGFuZCBtb3N0bHkgd2l0aG91dCBjb25maWd1cmF0aW9uLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL3JveS5tYXJwbGVzLm5hbWUvcHJvamVjdHMvZGhjcGNkLyIKKworTElDRU5TRSA9ICJCU0QtMi1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9kaGNwY2QuYztlbmRsaW5lPTI2O21kNT03N2M0MGQ2NzFhZmY4MDRjYTkxZWE5OTU1NmRhOGU5YiIKKworU1JDX1VSSSA9ICJodHRwOi8vcm95Lm1hcnBsZXMubmFtZS9kb3dubG9hZHMvJHtCUE59LyR7QlBOfS0ke1BWfS50YXIueHoiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIyNDY1NjI0YjYyYzExNTRmMGU4OWRjNjljNDJjODQ5YiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2Zjk2NzRkYzdlMjdlOTM2Y2M3ODcxNzU0MDRhNjE3MTYxODY3NWVjZmI2OTAzYWI5ODg3YjFiNjZhODdkNjllIgorCitpbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAKKworUEFDS0FHRUNPTkZJRyA/PSAidWRldiAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2JywgZCl9IgorCitQQUNLQUdFQ09ORklHW3VkZXZdID0gIi0td2l0aC11ZGV2LC0td2l0aG91dC11ZGV2LHVkZXYsdWRldiIKK1BBQ0tBR0VDT05GSUdbaXB2Nl0gPSAiLS1lbmFibGUtaXB2NiwtLWRpc2FibGUtaXB2NiIKKworRVhUUkFfT0VDT05GID0gIi0tZW5hYmxlLWlwdjQiCisKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2RoY3BjZC9kZXYvLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvaW5ldHV0aWxzL2luZXR1dGlsc18xLjkuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2luZXR1dGlscy9pbmV0dXRpbHNfMS45LjQuYmIKaW5kZXggNDY1NWJjNS4uMTkwY2Q1ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvaW5ldHV0aWxzL2luZXR1dGlsc18xLjkuNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9pbmV0dXRpbHMvaW5ldHV0aWxzXzEuOS40LmJiCkBAIC0xNjksNyArMTY5LDEwIEBACiBGSUxFU18ke1BOfS1pZmNvbmZpZyA9ICIke2Jhc2Vfc2JpbmRpcn0vaWZjb25maWcuJHtCUE59IgogRklMRVNfJHtQTn0tdHJhY2Vyb3V0ZSA9ICIke2JpbmRpcn0vdHJhY2Vyb3V0ZS4ke0JQTn0iCiBGSUxFU18ke1BOfS1sb2dnZXIgPSAiJHtiaW5kaXJ9L2xvZ2dlci4ke0JQTn0iCisKIEZJTEVTXyR7UE59LXN5c2xvZ2QgPSAiJHtiYXNlX3NiaW5kaXJ9L3N5c2xvZ2QuJHtCUE59IgorUkNPTkZMSUNUU18ke1BOfS1zeXNsb2dkID0gInJzeXNsb2cgYnVzeWJveC1zeXNsb2cgc3lza2xvZ2Qgc3lzbG9nLW5nIgorCiBGSUxFU18ke1BOfS1mdHAgPSAiJHtiaW5kaXJ9L2Z0cC4ke0JQTn0iCiAKIEZJTEVTXyR7UE59LXRmdHAgPSAiJHtiaW5kaXJ9L3RmdHAuJHtCUE59IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbWJlZHRscy9tYmVkdGxzXzEuMy4xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L21iZWR0bHMvbWJlZHRsc18xLjMuMTcuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjZmVjNjkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbWJlZHRscy9tYmVkdGxzXzEuMy4xNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVNVTU1BUlkgPSAiTGlnaHR3ZWlnaHQgY3J5cHRvIGFuZCBTU0wvVExTIGxpYnJhcnkiCi1ERVNDUklQVElPTiA9ICJtYmVkdGxzIGlzIGEgbGVhbiBvcGVuIHNvdXJjZSBjcnlwdG8gbGlicmFyeSAgICAgICAgICBcCi1mb3IgcHJvdmlkaW5nIFNTTCBhbmQgVExTIHN1cHBvcnQgaW4geW91ciBwcm9ncmFtcy4gSXQgb2ZmZXJzICAgICAgICBcCi1hbiBpbnR1aXRpdmUgQVBJIGFuZCBkb2N1bWVudGVkIGhlYWRlciBmaWxlcywgc28geW91IGNhbiBhY3R1YWxseSAgICBcCi11bmRlcnN0YW5kIHdoYXQgdGhlIGNvZGUgZG9lcy4gSXQgZmVhdHVyZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gLSBTeW1tZXRyaWMgYWxnb3JpdGhtcywgbGlrZSBBRVMsIEJsb3dmaXNoLCBUcmlwbGUtREVTLCBERVMsIEFSQzQsICBcCi0gICBDYW1lbGxpYSBhbmQgWFRFQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gLSBIYXNoIGFsZ29yaXRobXMsIGxpa2UgU0hBLTEsIFNIQS0yLCBSSVBFTUQtMTYwIGFuZCBNRDUgICAgICAgICAgICBcCi0gLSBFbnRyb3B5IHBvb2wgYW5kIHJhbmRvbSBnZW5lcmF0b3JzLCBsaWtlIENUUi1EUkJHIGFuZCBITUFDLURSQkcgICBcCi0gLSBQdWJsaWMga2V5IGFsZ29yaXRobXMsIGxpa2UgUlNBLCBFbGxpcHRpYyBDdXJ2ZXMsIERpZmZpZS1IZWxsbWFuLCBcCi0gICBFQ0RTQSBhbmQgRUNESCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gLSBTU0wgdjMgYW5kIFRMUyAxLjAsIDEuMSBhbmQgMS4yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gLSBBYnN0cmFjdGlvbiBsYXllcnMgZm9yIGNpcGhlcnMsIGhhc2hlcywgcHVibGljIGtleSBvcGVyYXRpb25zLCAgICBcCi0gICBwbGF0Zm9ybSBhYnN0cmFjdGlvbiBhbmQgdGhyZWFkaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0iCi0KLUhPTUVQQUdFID0gImh0dHBzOi8vcG9sYXJzc2wub3JnIgotQlVHVFJBQ0tFUiA9ICJodHRwczovL2dpdGh1Yi5jb20vcG9sYXJzc2wvcG9sYXJzc2wvaXNzdWVzIgotCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCi0KLVNFQ1RJT04gPSAibGliZGV2ZWwiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly90bHMubWJlZC5vcmcvZG93bmxvYWQvbWJlZHRscy0ke1BWfS1ncGwudGd6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiYTZlZDkyZmMzNzdlZjYwZjdjMjRkNDJiOTAwZTBkYWQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjViZWI0M2U4NTAyODM5MTVlM2UwZjhkMzc0OTVlYWRlM2JmYjViZWVkZmI2MWU3YjhkYTcwZDRjNjhlZGI4MiIKLQotREVQRU5EUyA9ICJvcGVuc3NsIgotUkRFUEVORFNfJHtQTn0gKz0gImxpYmNyeXB0byIKLVBST1ZJREVTICs9ICJwb2xhcnNzbCIKLVJQUk9WSURFU18ke1BOfSA9ICJwb2xhcnNzbCIKLUVYVFJBX09FQ01BS0UgPSAiLURVU0VfU0hBUkVEX1BPTEFSU1NMX0xJQlJBUlk9b24gLURMSUJfSU5TVEFMTF9ESVI9JHtiYXNlbGlifSIKLQotaW5oZXJpdCBjbWFrZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbWJlZHRscy9tYmVkdGxzXzIuOC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbWJlZHRscy9tYmVkdGxzXzIuOC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczNmNjZTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9tYmVkdGxzL21iZWR0bHNfMi44LjAuYmIKQEAgLTAsMCArMSw0MiBAQAorU1VNTUFSWSA9ICJMaWdodHdlaWdodCBjcnlwdG8gYW5kIFNTTC9UTFMgbGlicmFyeSIKK0RFU0NSSVBUSU9OID0gIm1iZWR0bHMgaXMgYSBsZWFuIG9wZW4gc291cmNlIGNyeXB0byBsaWJyYXJ5ICAgICAgICAgIFwKK2ZvciBwcm92aWRpbmcgU1NMIGFuZCBUTFMgc3VwcG9ydCBpbiB5b3VyIHByb2dyYW1zLiBJdCBvZmZlcnMgICAgICAgIFwKK2FuIGludHVpdGl2ZSBBUEkgYW5kIGRvY3VtZW50ZWQgaGVhZGVyIGZpbGVzLCBzbyB5b3UgY2FuIGFjdHVhbGx5ICAgIFwKK3VuZGVyc3RhbmQgd2hhdCB0aGUgY29kZSBkb2VzLiBJdCBmZWF0dXJlczogICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAtIFN5bW1ldHJpYyBhbGdvcml0aG1zLCBsaWtlIEFFUywgQmxvd2Zpc2gsIFRyaXBsZS1ERVMsIERFUywgQVJDNCwgIFwKKyAgIENhbWVsbGlhIGFuZCBYVEVBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAtIEhhc2ggYWxnb3JpdGhtcywgbGlrZSBTSEEtMSwgU0hBLTIsIFJJUEVNRC0xNjAgYW5kIE1ENSAgICAgICAgICAgIFwKKyAtIEVudHJvcHkgcG9vbCBhbmQgcmFuZG9tIGdlbmVyYXRvcnMsIGxpa2UgQ1RSLURSQkcgYW5kIEhNQUMtRFJCRyAgIFwKKyAtIFB1YmxpYyBrZXkgYWxnb3JpdGhtcywgbGlrZSBSU0EsIEVsbGlwdGljIEN1cnZlcywgRGlmZmllLUhlbGxtYW4sIFwKKyAgIEVDRFNBIGFuZCBFQ0RIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAtIFNTTCB2MyBhbmQgVExTIDEuMCwgMS4xIGFuZCAxLjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAtIEFic3RyYWN0aW9uIGxheWVycyBmb3IgY2lwaGVycywgaGFzaGVzLCBwdWJsaWMga2V5IG9wZXJhdGlvbnMsICAgIFwKKyAgIHBsYXRmb3JtIGFic3RyYWN0aW9uIGFuZCB0aHJlYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyIKKworSE9NRVBBR0UgPSAiaHR0cHM6Ly90bHMubWJlZC5vcmcvIgorCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zMDJkNTBhNjM2OWY1ZjIyZWZkYjY3NGRiOTA4MTY3YSIKKworU0VDVElPTiA9ICJsaWJkZXZlbCIKKworU1JDX1VSSSA9ICJodHRwczovL3Rscy5tYmVkLm9yZy9kb3dubG9hZC9tYmVkdGxzLSR7UFZ9LWFwYWNoZS50Z3oiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIyZDRiMGUyY2I4NDRlZmRlMWU3M2QzYmNkOTczMWZlZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJhYjhiNjJiOTk1NzgxYmNmMjJlODdhMjY1ZWQwNjI2N2Y4N2MzMDQxMTk4ZTk5NmI0NDQ0MTIyM2QxOWZhOWMzIgorCitpbmhlcml0IGNtYWtlCisKK1BBQ0tBR0VDT05GSUcgPz89ICJzaGFyZWQtbGlicyBwcm9ncmFtcyIKK1BBQ0tBR0VDT05GSUdbc2hhcmVkLWxpYnNdID0gIi1EVVNFX1NIQVJFRF9NQkVEVExTX0xJQlJBUlk9T04sLVVTRV9TSEFSRURfTUJFRFRMU19MSUJSQVJZPU9GRiIKK1BBQ0tBR0VDT05GSUdbcHJvZ3JhbXNdID0gIi1ERU5BQkxFX1BST0dSQU1TPU9OLC1ERU5BQkxFX1BST0dSQU1TPU9GRiIKKworRVhUUkFfT0VDTUFLRSA9ICItREVOQUJMRV9URVNUSU5HPU9GRiAtRExJQl9JTlNUQUxMX0RJUjpTVFJJTkc9JHtsaWJkaXJ9IgorCitQUk9WSURFUyArPSAicG9sYXJzc2wiCitSUFJPVklERVNfJHtQTn0gPSAicG9sYXJzc2wiCisKK1BBQ0tBR0VTID0rICIke1BOfS1wcm9ncmFtcyIKK0ZJTEVTXyR7UE59LXByb2dyYW1zID0gIiR7YmluZGlyfS8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci1vcGVudnBuXzEuMi44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXItb3BlbnZwbl8xLjIuOC5iYgppbmRleCBjY2UzZjkxLi4xYjYwNGFkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci1vcGVudnBuXzEuMi44LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLW9wZW52cG5fMS4yLjguYmIKQEAgLTI2LDcgKzI2LDcgQEAKIAogRklMRVNfJHtQTn0gKz0gIiBcCiAgICAgJHtsaWJkaXJ9L05ldHdvcmtNYW5hZ2VyLyouc28gXAotICAgICR7bGliZGlyfS9OZXR3b3JrTWFuYWdlci9WUE4vbm0tb3BlbnZwbi1zZXJ2aWNlLm5hbWUgXAorICAgICR7bm9uYXJjaF9saWJkaXJ9L05ldHdvcmtNYW5hZ2VyL1ZQTi9ubS1vcGVudnBuLXNlcnZpY2UubmFtZSBcCiAiCiAKIEZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtYWRqdXN0LW5ldC1oZWFkZXJzLWZvci1tdXNsLWNvbXBhdGliaWxpdHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLWFkanVzdC1uZXQtaGVhZGVycy1mb3ItbXVzbC1jb21wYXRpYmlsaXR5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWQwYzdjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtYWRqdXN0LW5ldC1oZWFkZXJzLWZvci1tdXNsLWNvbXBhdGliaWxpdHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi1Gcm9tIDA0N2QzYmY5NmI1MTA3NDBmNjQ2ODc0ODAzMzNjMzc4ZTQxNDk5NWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAzMSBNYXIgMjAxNyAxNTo1NzowNSAtMDcwMAotU3ViamVjdDogW1BBVENIIDEvNV0gYWRqdXN0IG5ldC8gaGVhZGVycyBmb3IgbXVzbCBjb21wYXRpYmlsaXR5Ci0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBsaWJubS1jb3JlL25tLXV0aWxzLmMgICAgICAgICAgfCAxMiArKysrKysrLS0tLS0KLSBsaWJubS1jb3JlL25tLXV0aWxzLmggICAgICAgICAgfCAgNSArKy0tLQotIHNyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaCB8ICAyICstCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGlibm0tY29yZS9ubS11dGlscy5jIGIvbGlibm0tY29yZS9ubS11dGlscy5jCi1pbmRleCBkZjc1ZDU2Li44NjgyMjRlIDEwMDY0NAotLS0tIGEvbGlibm0tY29yZS9ubS11dGlscy5jCi0rKysgYi9saWJubS1jb3JlL25tLXV0aWxzLmMKLUBAIC0xOSwyNCArMTksMjYgQEAKLSAgKiBDb3B5cmlnaHQgMjAwNSAtIDIwMTQgUmVkIEhhdCwgSW5jLgotICAqLwotIAotLSNpbmNsdWRlICJubS1kZWZhdWx0LmgiCi0tCi0tI2luY2x1ZGUgIm5tLXV0aWxzLmgiCi0tCi0gI2luY2x1ZGUgPHN0cmluZy5oPgotICNpbmNsdWRlIDxlcnJuby5oPgotICNpbmNsdWRlIDxzdGRsaWIuaD4KLS0jaW5jbHVkZSA8bmV0aW5ldC9ldGhlci5oPgotICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KLSAjaW5jbHVkZSA8dXVpZC91dWlkLmg+Ci0gI2luY2x1ZGUgPGxpYmludGwuaD4KLSAjaW5jbHVkZSA8Z21vZHVsZS5oPgotICNpbmNsdWRlIDxzeXMvc3RhdC5oPgotKy8vI2luY2x1ZGUgPG5ldC9pZl9hcnAuaD4KLSsvLyNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KLSsjaW5jbHVkZSA8bmV0aW5ldC9ldGhlci5oPgotKwotKyNpbmNsdWRlICJubS1kZWZhdWx0LmgiCi0gCi0rI2luY2x1ZGUgIm5tLXV0aWxzLmgiCi0gI2lmIFdJVEhfSkFOU1NPTgotICNpbmNsdWRlIDxqYW5zc29uLmg+Ci0gI2VuZGlmCi0gCi0rCi0gI2luY2x1ZGUgIm5tLWNvbW1vbi1tYWNyb3MuaCIKLSAjaW5jbHVkZSAibm0tdXRpbHMtcHJpdmF0ZS5oIgotICNpbmNsdWRlICJubS1zZXR0aW5nLXByaXZhdGUuaCIKLWRpZmYgLS1naXQgYS9saWJubS1jb3JlL25tLXV0aWxzLmggYi9saWJubS1jb3JlL25tLXV0aWxzLmgKLWluZGV4IDQwN2MxNGUuLjE1NmNjYWUgMTAwNjQ0Ci0tLS0gYS9saWJubS1jb3JlL25tLXV0aWxzLmgKLSsrKyBiL2xpYm5tLWNvcmUvbm0tdXRpbHMuaAotQEAgLTI3LDExICsyNywxMCBAQAotIAotICNpbmNsdWRlIDxnbGliLmg+Ci0gCi0tI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KLS0KLSAvKiBGb3IgRVRIX0FMRU4gYW5kIElORklOSUJBTkRfQUxFTiAqLwotLSNpbmNsdWRlIDxsaW51eC9pZl9ldGhlci5oPgotKy8vI2luY2x1ZGUgPGxpbnV4L2lmX2V0aGVyLmg+Ci0gI2luY2x1ZGUgPGxpbnV4L2lmX2luZmluaWJhbmQuaD4KLSsjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotIAotICNpbmNsdWRlICJubS1jb3JlLWVudW0tdHlwZXMuaCIKLSAjaW5jbHVkZSAibm0tc2V0dGluZy13aXJlbGVzcy1zZWN1cml0eS5oIgotZGlmZiAtLWdpdCBhL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaCBiL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaAotaW5kZXggOGUyYjkzZi4uODRmNWNlOSAxMDA2NDQKLS0tLSBhL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaAotKysrIGIvc3JjL3BsYXRmb3JtL3dpZmkvd2lmaS11dGlscy5oCi1AQCAtMjIsNyArMjIsNyBAQAotICNpZm5kZWYgX19XSUZJX1VUSUxTX0hfXwotICNkZWZpbmUgX19XSUZJX1VUSUxTX0hfXwotIAotLSNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KLSsvLyNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KLSAKLSAjaW5jbHVkZSAibm0tZGJ1cy1pbnRlcmZhY2UuaCIKLSAKLS0tIAotMi4xMi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtY2hlY2stZm9yLXN0cm5kdXBhLWJlZm9yZS11c2luZy1pdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtY2hlY2stZm9yLXN0cm5kdXBhLWJlZm9yZS11c2luZy1pdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjZmMzgwYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLWNoZWNrLWZvci1zdHJuZHVwYS1iZWZvcmUtdXNpbmctaXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi1Gcm9tIDA1ZThiZDY2NGQwMjQ0Y2I4YWI0Mzc2Yjk2MjgzMGI5Nzg2MGY2YmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAzMSBNYXIgMjAxNyAxODozNzoxOSAtMDcwMAotU3ViamVjdDogW1BBVENIXSBjaGVjayBmb3Igc3RybmR1cGEgYmVmb3JlIHVzaW5nIGl0Ci0KLW11c2wgZG9lcyBub3QgaGF2ZSBzdHJuZHVwYQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gY29uZmlnLmguaW4gICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrKysKLSBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwotIHNyYy9zeXN0ZW1kL3NyYy9iYXNpYy9hbGxvYy11dGlsLmggfCAxMiArKysrKysrKysrKysKLSAzIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2NvbmZpZy5oLmluIGIvY29uZmlnLmguaW4KLWluZGV4IGRiOGMxMzUuLmM0MjI5ZWQgMTAwNjQ0Ci0tLS0gYS9jb25maWcuaC5pbgotKysrIGIvY29uZmlnLmguaW4KLUBAIC00MSw2ICs0MSwxMCBAQAotICAgICovCi0gI3VuZGVmIEhBVkVfRENHRVRURVhUCi0gCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzdHJuZHVwYScsIGFuZCB0byAwIGlmIHlvdQotKyAgIGRvbid0LiAqLwotKyN1bmRlZiBIQVZFX0RFQ0xfU1RSTkRVUEEKLSsKLSAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRsZmNuLmg+IGhlYWRlciBmaWxlLiAqLwotICN1bmRlZiBIQVZFX0RMRkNOX0gKLSAKLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDI2MzBmOGQuLmQwYTU3ZmQgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTU0LDYgKzU0LDcgQEAgQUNfU1VCU1QoTk1fVkVSU0lPTikKLSAKLSBHSVRfU0hBX1JFQ09SRChOTV9HSVRfU0hBKQotIAotK0FDX0NIRUNLX0RFQ0xTKFtzdHJuZHVwYV0sIFtdLCBbXSwgW1sjaW5jbHVkZSA8c3RyaW5nLmg+XV0pCi0gZG5sCi0gZG5sIENoZWNrcyBmb3IgdHlwZWRlZnMsIHN0cnVjdHVyZXMsIGFuZCBjb21waWxlciBjaGFyYWN0ZXJpc3RpY3MuCi0gZG5sCi1kaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL2FsbG9jLXV0aWwuaCBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9hbGxvYy11dGlsLmgKLWluZGV4IGNlZWVlNTEuLjkyNGI1OWMgMTAwNjQ0Ci0tLS0gYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvYWxsb2MtdXRpbC5oCi0rKysgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvYWxsb2MtdXRpbC5oCi1AQCAtMjUsNiArMjUsMTggQEAKLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gCi0gI2luY2x1ZGUgIm1hY3JvLmgiCi0rI2luY2x1ZGUgImNvbmZpZy5oIgotKwotKyNpZiAhSEFWRV9ERUNMX1NUUk5EVVBBCi0rI2RlZmluZSBzdHJuZHVwYShzLCBuKSBcCi0rICAoeyBcCi0rICAgIGNvbnN0IGNoYXIgKl9fb2xkID0gKHMpOyBcCi0rICAgIHNpemVfdCBfX2xlbiA9IHN0cm5sZW4oX19vbGQsIChuKSk7IFwKLSsgICAgY2hhciAqX19uZXcgPSAoY2hhciAqKWFsbG9jYShfX2xlbiArIDEpOyBcCi0rICAgIF9fbmV3W19fbGVuXSA9ICdcMCc7IFwKLSsgICAgKGNoYXIgKiltZW1jcHkoX19uZXcsIF9fb2xkLCBfX2xlbik7IFwKLSsgIH0pCi0rI2VuZGlmCi0gCi0gI2RlZmluZSBuZXcodCwgbikgKCh0KikgbWFsbG9jX211bHRpcGx5KHNpemVvZih0KSwgKG4pKSkKLSAKLS0tIAotMi4xMi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtZG5zLXJlc29sdmVkLWFkZC1zeXN0ZW1kLXJlc29sdmVkLWJhY2tlbmQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLWRucy1yZXNvbHZlZC1hZGQtc3lzdGVtZC1yZXNvbHZlZC1iYWNrZW5kLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDE5NGE2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtZG5zLXJlc29sdmVkLWFkZC1zeXN0ZW1kLXJlc29sdmVkLWJhY2tlbmQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MjEgKzAsMCBAQAotRnJvbTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgotRGF0ZTogU3VuLCAyMSBBdWcgMjAxNiAyMTo0NjowMiArMDIwMAotU3ViamVjdDogW1BBVENIXSBkbnMvcmVzb2x2ZWQ6IGFkZCBzeXN0ZW1kLXJlc29sdmVkIGJhY2tlbmQKLQotQWRkIGluaXRpYWwgRE5TIGJhY2tlbmQgdGhhdCBwdXNoZXMgRE5TIGluZm9ybWF0aW9uIGludG8KLXN5c3RlbWQtcmVzb2x2ZWQuIEJhY2tlbmQgaXMgY2hvb3NlbiBieSBkZWZhdWx0IGlmIHRoZSBzeXN0ZW1zCi1yZXNvbHYuY29udiBpcyBzZXR1cCB0byBwb2ludGluZyB0byBvbmUgb2YgdGhlIHN0YW5kYXJkIHJlc29sdmVkCi1sb2NhdGlvbnMuCi0KLVRoaXMgZG9lc24ndCBoYW5kbGUgZ2xvYmFsIGRucyBjb25maWd1cmF0aW9uLgotCi1TaWduZWQtb2ZmLWJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+Ci0KLWh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI1NDAKLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotCi0tLS0KLSBtYW4vTmV0d29ya01hbmFnZXIuY29uZi54bWwgICAgICAgICAgICAgICB8ICAxMCArLQotIHNyYy9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKLSBzcmMvZG5zLW1hbmFnZXIvbm0tZG5zLW1hbmFnZXIuYyAgICAgICAgICB8ICA0MyArKy0KLSBzcmMvZG5zLW1hbmFnZXIvbm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuYyB8IDQyNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSBzcmMvZG5zLW1hbmFnZXIvbm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuaCB8ICA0NSArKysrCi0gNSBmaWxlcyBjaGFuZ2VkLCA1MjMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmMKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmgKLQotZGlmZiAtLWdpdCBhL21hbi9OZXR3b3JrTWFuYWdlci5jb25mLnhtbCBiL21hbi9OZXR3b3JrTWFuYWdlci5jb25mLnhtbAotaW5kZXggNjI5NWI4Mi4uMGE2N2FlNSAxMDA2NDQKLS0tLSBhL21hbi9OZXR3b3JrTWFuYWdlci5jb25mLnhtbAotKysrIGIvbWFuL05ldHdvcmtNYW5hZ2VyLmNvbmYueG1sCi1AQCAtMjc1LDEwICsyNzUsMTIgQEAgbm8tYXV0by1kZWZhdWx0PSoKLSAgICAgICA8dmFybGlzdGVudHJ5PgotICAgICAgICAgPHRlcm0+PHZhcm5hbWU+ZG5zPC92YXJuYW1lPjwvdGVybT4KLSAgICAgICAgIDxsaXN0aXRlbT48cGFyYT5TZXQgdGhlIEROUyAoPGZpbGVuYW1lPnJlc29sdi5jb25mPC9maWxlbmFtZT4pIHByb2Nlc3NpbmcgbW9kZS48L3BhcmE+Ci0tICAgICAgICA8cGFyYT48bGl0ZXJhbD5kZWZhdWx0PC9saXRlcmFsPjogVGhlIGRlZmF1bHQgaWYgdGhlIGtleSBpcwotLSAgICAgICAgbm90IHNwZWNpZmllZC4gTmV0d29ya01hbmFnZXIgd2lsbCB1cGRhdGUKLSsgICAgICAgIDxwYXJhPjxsaXRlcmFsPmRlZmF1bHQ8L2xpdGVyYWw+OiBOZXR3b3JrTWFuYWdlciB3aWxsIHVwZGF0ZQotICAgICAgICAgPGZpbGVuYW1lPnJlc29sdi5jb25mPC9maWxlbmFtZT4gdG8gcmVmbGVjdCB0aGUgbmFtZXNlcnZlcnMKLS0gICAgICAgIHByb3ZpZGVkIGJ5IGN1cnJlbnRseSBhY3RpdmUgY29ubmVjdGlvbnMuPC9wYXJhPgotKyAgICAgICAgcHJvdmlkZWQgYnkgY3VycmVudGx5IGFjdGl2ZSBjb25uZWN0aW9ucy4gIFRoaXMgaXMgdGhlIGRlZmF1bHQKLSsgICAgICAgIGlmIHRoZSBrZXkgaXMgbm90IHNwZWNpZmllZCwgdW5sZXNzIHRoZSBzeXN0ZW0gaXMgY29uZmlndXJlZAotKyAgICAgICAgdG8gdXNlIHN5c3RlbWQtcmVzb2x2ZWQ7IGluIHRoaXMgY2FzZSB0aGUgZGVmYXVsdCBpcwotKyAgICAgICAgPGxpdGVyYWw+c3lzdGVtZC1yZXNvbHZlZDwvbGl0ZXJhbD48L3BhcmE+Ci0gICAgICAgICA8cGFyYT48bGl0ZXJhbD5kbnNtYXNxPC9saXRlcmFsPjogTmV0d29ya01hbmFnZXIgd2lsbCBydW4KLSAgICAgICAgIGRuc21hc3EgYXMgYSBsb2NhbCBjYWNoaW5nIG5hbWVzZXJ2ZXIsIHVzaW5nIGEgInNwbGl0IEROUyIKLSAgICAgICAgIGNvbmZpZ3VyYXRpb24gaWYgeW91IGFyZSBjb25uZWN0ZWQgdG8gYSBWUE4sIGFuZCB0aGVuIHVwZGF0ZQotQEAgLTI4OCw2ICsyOTAsOCBAQCBuby1hdXRvLWRlZmF1bHQ9KgotICAgICAgICAgdG8gdW5ib3VuZCBhbmQgZG5zc2VjLXRyaWdnZXJkLCBwcm92aWRpbmcgYSAic3BsaXQgRE5TIgotICAgICAgICAgY29uZmlndXJhdGlvbiB3aXRoIEROU1NFQyBzdXBwb3J0LiBUaGUgPGZpbGVuYW1lPi9ldGMvcmVzb2x2LmNvbmY8L2ZpbGVuYW1lPgotICAgICAgICAgd2lsbCBiZSBtYW5hZ2VkIGJ5IGRuc3NlYy10cmlnZ2VyIGRhZW1vbi48L3BhcmE+Ci0rICAgICAgICA8cGFyYT48bGl0ZXJhbD5zeXN0ZW1kLXJlc29sdmVkPC9saXRlcmFsPjogTmV0d29ya01hbmFnZXIgd2lsbAotKyAgICAgICAgcHVzaCB0aGUgRE5TIGNvbmZpZ3VyYXRpb24gdG8gc3lzdGVtZC1yZXNvbHZlZDwvcGFyYT4KLSAgICAgICAgIDxwYXJhPjxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+OiBOZXR3b3JrTWFuYWdlciB3aWxsIG5vdAotICAgICAgICAgbW9kaWZ5IHJlc29sdi5jb25mLiBUaGlzIGltcGxpZXMKLSAgICAgICAgIDxsaXRlcmFsPnJjLW1hbmFnZXI8L2xpdGVyYWw+Jm5ic3A7PGxpdGVyYWw+dW5tYW5hZ2VkPC9saXRlcmFsPjwvcGFyYT4KLWRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuYW0gYi9zcmMvTWFrZWZpbGUuYW0KLWluZGV4IDhkMjliMTkuLjEwZjYzZGUgMTAwNjQ0Ci0tLS0gYS9zcmMvTWFrZWZpbGUuYW0KLSsrKyBiL3NyYy9NYWtlZmlsZS5hbQotQEAgLTM0NSw2ICszNDUsOCBAQCBsaWJOZXR3b3JrTWFuYWdlcl9sYV9TT1VSQ0VTID0gXAotIAlcCi0gCWRucy1tYW5hZ2VyL25tLWRucy1kbnNtYXNxLmMgXAotIAlkbnMtbWFuYWdlci9ubS1kbnMtZG5zbWFzcS5oIFwKLSsJZG5zLW1hbmFnZXIvbm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuYyBcCi0rCWRucy1tYW5hZ2VyL25tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmggXAotIAlkbnMtbWFuYWdlci9ubS1kbnMtdW5ib3VuZC5jIFwKLSAJZG5zLW1hbmFnZXIvbm0tZG5zLXVuYm91bmQuaCBcCi0gCWRucy1tYW5hZ2VyL25tLWRucy1tYW5hZ2VyLmMgXAotZGlmZiAtLWdpdCBhL3NyYy9kbnMtbWFuYWdlci9ubS1kbnMtbWFuYWdlci5jIGIvc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1tYW5hZ2VyLmMKLWluZGV4IDVhNzU4YTkuLjM4YmM3ODYgMTAwNjQ0Ci0tLS0gYS9zcmMvZG5zLW1hbmFnZXIvbm0tZG5zLW1hbmFnZXIuYwotKysrIGIvc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1tYW5hZ2VyLmMKLUBAIC00NSw2ICs0NSw3IEBACi0gCi0gI2luY2x1ZGUgIm5tLWRucy1wbHVnaW4uaCIKLSAjaW5jbHVkZSAibm0tZG5zLWRuc21hc3EuaCIKLSsjaW5jbHVkZSAibm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuaCIKLSAjaW5jbHVkZSAibm0tZG5zLXVuYm91bmQuaCIKLSAKLSAjaWYgV0lUSF9MSUJTT1VQCi1AQCAtMTU4OCw2ICsxNTg5LDM3IEBAIF9jaGVja19yZXNjb25mX2ltbXV0YWJsZSAoTk1EbnNNYW5hZ2VyUmVzb2x2Q29uZk1hbmFnZXIgcmNfbWFuYWdlcikKLSAKLSBOTV9ERUZJTkVfU0lOR0xFVE9OX0dFVFRFUiAoTk1EbnNNYW5hZ2VyLCBubV9kbnNfbWFuYWdlcl9nZXQsIE5NX1RZUEVfRE5TX01BTkFHRVIpOwotIAotK3N0YXRpYyBnYm9vbGVhbgotK19yZXNvbHZjb25mX3Jlc29sdmVkX21hbmFnZWQgKHZvaWQpCi0rewotKwlzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgcmVzb2x2ZWRfcGF0aHNbXSA9IHsKLSsJCSIvcnVuL3N5c3RlbWQvcmVzb2x2ZS9yZXNvbHYuY29uZiIsCi0rCQkiL2xpYi9zeXN0ZW1kL3Jlc29sdi5jb25mIiwKLSsJCSIvdXNyL2xpYi9zeXN0ZW1kL3Jlc29sdi5jb25mIiwKLSsJfTsKLSsJR0ZpbGUgKmY7Ci0rCUdGaWxlSW5mbyAqaW5mbzsKLSsJZ2Jvb2xlYW4gcmV0ID0gRkFMU0U7Ci0rCi0rCWYgPSBnX2ZpbGVfbmV3X2Zvcl9wYXRoIChfUEFUSF9SRVNDT05GKTsKLSsJaW5mbyA9IGdfZmlsZV9xdWVyeV9pbmZvIChmLAotKwkgICAgICAgICAgICAgICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfSVNfU1lNTElOSyIsIlwKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1NZTUxJTktfVEFSR0VULAotKwkgICAgICAgICAgICAgICAgICAgICAgICAgIEdfRklMRV9RVUVSWV9JTkZPX05PRk9MTE9XX1NZTUxJTktTLAotKwkgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOwotKwotKwlpZiAoaW5mbyAmJiBnX2ZpbGVfaW5mb19nZXRfaXNfc3ltbGluayAoaW5mbykpIHsKLSsJCXJldCA9IF9ubV91dGlsc19zdHJ2X2ZpbmRfZmlyc3QgKChnY2hhciAqKikgcmVzb2x2ZWRfcGF0aHMsCi0rCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX05fRUxFTUVOVFMgKHJlc29sdmVkX3BhdGhzKSwKLSsJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfZmlsZV9pbmZvX2dldF9zeW1saW5rX3RhcmdldCAoaW5mbykpID49IDA7Ci0rCX0KLSsKLSsJZ19jbGVhcl9vYmplY3QoJmluZm8pOwotKwlnX2NsZWFyX29iamVjdCgmZik7Ci0rCi0rCXJldHVybiByZXQ7Ci0rfQotKwotIHN0YXRpYyB2b2lkCi0gaW5pdF9yZXNvbHZfY29uZl9tb2RlIChOTURuc01hbmFnZXIgKnNlbGYsIGdib29sZWFuIGZvcmNlX3JlbG9hZF9wbHVnaW4pCi0gewotQEAgLTE2MzMsNyArMTY2NSwxNiBAQCBhZ2FpbjoKLSAKLSAJcmNfbWFuYWdlciA9IF9jaGVja19yZXNjb25mX2ltbXV0YWJsZSAocmNfbWFuYWdlcik7Ci0gCi0tCWlmIChubV9zdHJlcTAgKG1vZGUsICJkbnNtYXNxIikpIHsKLSsJaWYgKCAgICghbW9kZSAmJiBfcmVzb2x2Y29uZl9yZXNvbHZlZF9tYW5hZ2VkICgpKQotKwkgICAgfHwgbm1fc3RyZXEwIChtb2RlLCAic3lzdGVtZC1yZXNvbHZlZCIpKSB7Ci0rCQlpZiAoICAgZm9yY2VfcmVsb2FkX3BsdWdpbgotKwkJICAgIHx8ICFOTV9JU19ETlNfU1lTVEVNRF9SRVNPTFZFRCAocHJpdi0+cGx1Z2luKSkgewotKwkJCV9jbGVhcl9wbHVnaW4gKHNlbGYpOwotKwkJCXByaXYtPnBsdWdpbiA9IG5tX2Ruc19zeXN0ZW1kX3Jlc29sdmVkX25ldyAoKTsKLSsJCQlwbHVnaW5fY2hhbmdlZCA9IFRSVUU7Ci0rCQl9Ci0rCQltb2RlID0gInN5c3RlbWQtcmVzb2x2ZWQiOwotKwl9IGVsc2UgaWYgKG5tX3N0cmVxMCAobW9kZSwgImRuc21hc3EiKSkgewotIAkJaWYgKGZvcmNlX3JlbG9hZF9wbHVnaW4gfHwgIU5NX0lTX0ROU19ETlNNQVNRIChwcml2LT5wbHVnaW4pKSB7Ci0gCQkJX2NsZWFyX3BsdWdpbiAoc2VsZik7Ci0gCQkJcHJpdi0+cGx1Z2luID0gbm1fZG5zX2Ruc21hc3FfbmV3ICgpOwotZGlmZiAtLWdpdCBhL3NyYy9kbnMtbWFuYWdlci9ubS1kbnMtc3lzdGVtZC1yZXNvbHZlZC5jIGIvc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi42YmRkNWY2Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvZG5zLW1hbmFnZXIvbm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuYwotQEAgLTAsMCArMSw0MjcgQEAKLSsvKiAtKi0gTW9kZTogQzsgdGFiLXdpZHRoOiA0OyBpbmRlbnQtdGFicy1tb2RlOiB0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KLSsvKgotKyAqIENvcHlyaWdodCAoQykgMjAxMCBEYW4gV2lsbGlhbXMgPGRjYndAcmVkaGF0LmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTYgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgotKyAqCi0rICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKLSsgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsgKgotKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rICoKLSsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwotKyAqIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCi0rICogNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQS4KLSsgKgotKyAqLwotKwotKyNpbmNsdWRlICJubS1kZWZhdWx0LmgiCi0rCi0rI2luY2x1ZGUgIm5tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmgiCi0rCi0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0rI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0rI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgotKyNpbmNsdWRlIDxsaW51eC9pZi5oPgotKwotKyNpbmNsdWRlICJubS1jb3JlLWludGVybmFsLmgiCi0rI2luY2x1ZGUgIm5tLXBsYXRmb3JtLmgiCi0rI2luY2x1ZGUgIm5tLXV0aWxzLmgiCi0rI2luY2x1ZGUgIm5tLWlwNC1jb25maWcuaCIKLSsjaW5jbHVkZSAibm0taXA2LWNvbmZpZy5oIgotKyNpbmNsdWRlICJubS1idXMtbWFuYWdlci5oIgotKyNpbmNsdWRlICJubS1tYW5hZ2VyLmgiCi0rI2luY2x1ZGUgIm5tLWRldmljZS5oIgotKyNpbmNsdWRlICJOZXR3b3JrTWFuYWdlclV0aWxzLmgiCi0rCi0rR19ERUZJTkVfVFlQRSAoTk1EbnNTeXN0ZW1kUmVzb2x2ZWQsIG5tX2Ruc19zeXN0ZW1kX3Jlc29sdmVkLCBOTV9UWVBFX0ROU19QTFVHSU4pCi0rCi0rI2RlZmluZSBOTV9ETlNfU1lTVEVNRF9SRVNPTFZFRF9HRVRfUFJJVkFURShvKSBcCi0rICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFICgobyksIE5NX1RZUEVfRE5TX1NZU1RFTURfUkVTT0xWRUQsIFwKLSsgICAgTk1EbnNTeXN0ZW1kUmVzb2x2ZWRQcml2YXRlKSkKLSsKLSsjZGVmaW5lIFNZU1RFTURfUkVTT0xWRURfREJVU19TRVJWSUNFICJvcmcuZnJlZWRlc2t0b3AucmVzb2x2ZTEiCi0rI2RlZmluZSBTWVNURU1EX1JFU09MVkVEX0RCVVNfUEFUSCAiL29yZy9mcmVlZGVza3RvcC9yZXNvbHZlMSIKLSsKLSt0eXBlZGVmIHN0cnVjdCB7Ci0rCWludCBpZmluZGV4OwotKwlHTGlzdCAqY29uZmlnczsKLSt9IEludGVyZmFjZUNvbmZpZzsKLSsKLSt0eXBlZGVmIHN0cnVjdCB7Ci0rCUdEQnVzUHJveHkgKnJlc29sdmU7Ci0rCUdDYW5jZWxsYWJsZSAqaW5pdF9jYW5jZWxsYWJsZTsKLSsJR0NhbmNlbGxhYmxlICp1cGRhdGVfY2FuY2VsbGFibGU7Ci0rCUdRdWV1ZSBkbnNfdXBkYXRlczsKLSsJR1F1ZXVlIGRvbWFpbl91cGRhdGVzOwotK30gTk1EbnNTeXN0ZW1kUmVzb2x2ZWRQcml2YXRlOwotKwotKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSsKLSsjZGVmaW5lIF9OTUxPR19ET01BSU4gICAgICAgICBMT0dEX0ROUwotKyNkZWZpbmUgX05NTE9HX1BSRUZJWF9OQU1FICAgICJzeXN0ZW1kLXJlc29sdmVkIgotKyNkZWZpbmUgX05NTE9HKGxldmVsLCAuLi4pIFwKLSsgICAgR19TVE1UX1NUQVJUIHsgXAotKyAgICAgICAgbm1fbG9nICgobGV2ZWwpLCBfTk1MT0dfRE9NQUlOLCBcCi0rICAgICAgICAgICAgICAgICIlc1slcF06ICIgX05NX1VUSUxTX01BQ1JPX0ZJUlNUKF9fVkFfQVJHU19fKSwgXAotKyAgICAgICAgICAgICAgICBfTk1MT0dfUFJFRklYX05BTUUsIFwKLSsgICAgICAgICAgICAgICAgKHNlbGYpIFwKLSsgICAgICAgICAgICAgICAgX05NX1VUSUxTX01BQ1JPX1JFU1QoX19WQV9BUkdTX18pKTsgXAotKyAgICB9IEdfU1RNVF9FTkQKLSsKLSsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0rCi0rc3RhdGljIHZvaWQKLStjYWxsX2RvbmUgKEdPYmplY3QgKnNvdXJjZSwgR0FzeW5jUmVzdWx0ICpyLCBncG9pbnRlciB1c2VyX2RhdGEpCi0rewotKwlHVmFyaWFudCAqdjsKLSsJR0Vycm9yICplcnJvciA9IE5VTEw7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmID0gKE5NRG5zU3lzdGVtZFJlc29sdmVkICopIHVzZXJfZGF0YTsKLSsKLSsJdiA9IGdfZGJ1c19wcm94eV9jYWxsX2ZpbmlzaCAoR19EQlVTX1BST1hZIChzb3VyY2UpLCByLCAmZXJyb3IpOwotKwotKwlpZiAoZ19lcnJvcl9tYXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQpKQotKwkJcmV0dXJuOwotKwotKwlpZiAoZXJyb3IgIT0gTlVMTCkgewotKwkJX0xPR1cgKCJGYWlsZWQ6ICVzXG4iLCBlcnJvci0+bWVzc2FnZSk7Ci0rCQlnX2Vycm9yX2ZyZWUgKGVycm9yKTsKLSsJfQotK30KLSsKLStzdGF0aWMgdm9pZAotK2FkZF9pbnRlcmZhY2VfY29uZmlndXJhdGlvbiAoTk1EbnNTeXN0ZW1kUmVzb2x2ZWQgKnNlbGYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXJyYXkgKmludGVyZmFjZXMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOTURuc0lQQ29uZmlnRGF0YSAqZGF0YSkKLSt7Ci0rCWludCBpOwotKwlJbnRlcmZhY2VDb25maWcgKmljID0gTlVMTDsKLSsJaW50IGlmaW5kZXg7Ci0rCU5NRGV2aWNlICpkZXZpY2U7Ci0rCi0rCWlmIChOTV9JU19JUDRfQ09ORklHIChkYXRhLT5jb25maWcpKQotKwkJaWZpbmRleCA9IG5tX2lwNF9jb25maWdfZ2V0X2lmaW5kZXggKGRhdGEtPmNvbmZpZyk7Ci0rCWVsc2UgaWYgKE5NX0lTX0lQNl9DT05GSUcgIChkYXRhLT5jb25maWcpKQotKwkJaWZpbmRleCA9IG5tX2lwNl9jb25maWdfZ2V0X2lmaW5kZXggKGRhdGEtPmNvbmZpZyk7Ci0rCWVsc2UKLSsJCWdfcmV0dXJuX2lmX3JlYWNoZWQgKCk7Ci0rCi0rCWRldmljZSA9IG5tX21hbmFnZXJfZ2V0X2RldmljZV9ieV9pZmluZGV4IChubV9tYW5hZ2VyX2dldCAoKSwgaWZpbmRleCk7Ci0rCi0rCWlmICghbm1fZGV2aWNlX2dldF9tYW5hZ2VkIChkZXZpY2UsIEZBTFNFKSkKLSsJCXJldHVybjsKLSsKLSsJZm9yIChpID0gMDsgaSA8IGludGVyZmFjZXMtPmxlbjsgaSsrKSB7Ci0rCQlJbnRlcmZhY2VDb25maWcgKnRpYyA9ICZnX2FycmF5X2luZGV4IChpbnRlcmZhY2VzLCBJbnRlcmZhY2VDb25maWcsIGkpOwotKwkJaWYgKGlmaW5kZXggPT0gdGljLT5pZmluZGV4KSB7Ci0rCQkJaWMgPSB0aWM7Ci0rCQkJYnJlYWs7Ci0rCQl9Ci0rCX0KLSsKLSsJaWYgKCFpYykgewotKwkJZ19hcnJheV9zZXRfc2l6ZSAoaW50ZXJmYWNlcywgaW50ZXJmYWNlcy0+bGVuICsgMSk7Ci0rCQlpYyA9ICZnX2FycmF5X2luZGV4IChpbnRlcmZhY2VzLCBJbnRlcmZhY2VDb25maWcsCi0rCQkgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VzLT5sZW4gLSAxKTsKLSsJCWljLT5pZmluZGV4ID0gaWZpbmRleDsKLSsJfQotKwotKwlpYy0+Y29uZmlncyA9IGdfbGlzdF9hcHBlbmQgKGljLT5jb25maWdzLCBkYXRhLT5jb25maWcpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2FkZF9kb21haW4gKEdWYXJpYW50QnVpbGRlciAqZG9tYWlucywKLSsgICAgICAgICAgICBjb25zdCBjaGFyICpkb21haW4sCi0rICAgICAgICAgICAgZ2Jvb2xlYW4gbmV2ZXJfZGVmYXVsdCkKLSt7Ci0rCS8qIElmIHRoaXMgbGluayBpcyBuZXZlciB0aGUgZGVmYXVsdCAoZS5nLiBvbmx5IHVzZWQgZm9yIHJlc291cmNlcyBvbiB0aGlzCi0rCSAqIG5ldHdvcmspIGFkZCBhIHJvdXRpbmcgZG9tYWluLiAqLwotKwlnX3ZhcmlhbnRfYnVpbGRlcl9hZGQgKGRvbWFpbnMsICIoc2IpIiwgZG9tYWluLCBuZXZlcl9kZWZhdWx0KTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLSt1cGRhdGVfYWRkX2lwNl9jb25maWcgKE5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmLAotKyAgICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnRCdWlsZGVyICpkbnMsCi0rICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudEJ1aWxkZXIgKmRvbWFpbnMsCi0rICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOTUlQNkNvbmZpZyAqY29uZmlnKQotK3sKLSsJZ3VpbnQgaSwgbjsKLSsKLSsJbiA9IG5tX2lwNl9jb25maWdfZ2V0X251bV9uYW1lc2VydmVycyAoY29uZmlnKTsKLSsJZm9yIChpID0gMCA7IGkgPCBuOyBpKyspIHsKLSsJCWNvbnN0IHN0cnVjdCBpbjZfYWRkciAqaXA7Ci0rCi0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9vcGVuIChkbnMsIEdfVkFSSUFOVF9UWVBFICgiKGlheSkiKSk7Ci0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9hZGQgKGRucywgImkiLCBBRl9JTkVUNik7Ci0rCQlpcCA9IG5tX2lwNl9jb25maWdfZ2V0X25hbWVzZXJ2ZXIgKGNvbmZpZywgaSksCi0rCi0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9hZGRfdmFsdWUgKGRucywgZ192YXJpYW50X25ld19maXhlZF9hcnJheSAoR19WQVJJQU5UX1RZUEVfQllURSwgaXAsIDE2LCAxKSk7Ci0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9jbG9zZSAoZG5zKTsKLSsJfQotKwotKwluID0gbm1faXA2X2NvbmZpZ19nZXRfbnVtX3NlYXJjaGVzIChjb25maWcpOwotKwlpZiAobiA+IDApIHsKLSsJCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKLSsJCQlhZGRfZG9tYWluIChkb21haW5zLCBubV9pcDZfY29uZmlnX2dldF9zZWFyY2ggKGNvbmZpZywgaSksCi0rCQkJICAgICAgICAgICAgbm1faXA2X2NvbmZpZ19nZXRfbmV2ZXJfZGVmYXVsdCAoY29uZmlnKSk7Ci0rCQl9Ci0rCX0gZWxzZSB7Ci0rCQluID0gbm1faXA2X2NvbmZpZ19nZXRfbnVtX2RvbWFpbnMgKGNvbmZpZyk7Ci0rCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7Ci0rCQkJYWRkX2RvbWFpbiAoZG9tYWlucywgbm1faXA2X2NvbmZpZ19nZXRfZG9tYWluIChjb25maWcsIGkpLAotKwkJCSAgICAgICAgICAgIG5tX2lwNl9jb25maWdfZ2V0X25ldmVyX2RlZmF1bHQgKGNvbmZpZykpOwotKwkJfQotKwl9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rdXBkYXRlX2FkZF9pcDRfY29uZmlnIChOTURuc1N5c3RlbWRSZXNvbHZlZCAqc2VsZiwKLSsgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50QnVpbGRlciAqZG5zLAotKyAgICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnRCdWlsZGVyICpkb21haW5zLAotKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTk1JUDRDb25maWcgKmNvbmZpZykKLSt7Ci0rCWd1aW50IGksIG47Ci0rCi0rCW4gPSBubV9pcDRfY29uZmlnX2dldF9udW1fbmFtZXNlcnZlcnMgKGNvbmZpZyk7Ci0rCWZvciAoaSA9IDAgOyBpIDwgbjsgaSsrKSB7Ci0rCQlndWludDMyIG5zOwotKwotKwkJZ192YXJpYW50X2J1aWxkZXJfb3BlbiAoZG5zLCBHX1ZBUklBTlRfVFlQRSAoIihpYXkpIikpOwotKwkJZ192YXJpYW50X2J1aWxkZXJfYWRkIChkbnMsICJpIiwgQUZfSU5FVCk7Ci0rCQlucyA9IG5tX2lwNF9jb25maWdfZ2V0X25hbWVzZXJ2ZXIgKGNvbmZpZywgaSksCi0rCi0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9hZGRfdmFsdWUgKGRucywgZ192YXJpYW50X25ld19maXhlZF9hcnJheSAoR19WQVJJQU5UX1RZUEVfQllURSwgJm5zLCA0LCAxKSk7Ci0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9jbG9zZSAoZG5zKTsKLSsJfQotKwotKwluID0gbm1faXA0X2NvbmZpZ19nZXRfbnVtX3NlYXJjaGVzIChjb25maWcpOwotKwlpZiAobiAgPiAwKSB7Ci0rCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7Ci0rCQkJYWRkX2RvbWFpbiAoZG9tYWlucywgbm1faXA0X2NvbmZpZ19nZXRfc2VhcmNoIChjb25maWcsIGkpLAotKwkJCSAgICAgICAgICAgIG5tX2lwNF9jb25maWdfZ2V0X25ldmVyX2RlZmF1bHQgKGNvbmZpZykpOwotKwkJfQotKwl9IGVsc2UgewotKwkJbiA9IG5tX2lwNF9jb25maWdfZ2V0X251bV9kb21haW5zIChjb25maWcpOwotKwkJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewotKwkJCWFkZF9kb21haW4gKGRvbWFpbnMsIG5tX2lwNF9jb25maWdfZ2V0X2RvbWFpbiAoY29uZmlnLCBpKSwKLSsJCQkgICAgICAgICAgICBubV9pcDRfY29uZmlnX2dldF9uZXZlcl9kZWZhdWx0IChjb25maWcpKTsKLSsJCX0KLSsJfQotK30KLSsKLStzdGF0aWMgdm9pZAotK2ZyZWVfcGVuZGluZ191cGRhdGVzIChOTURuc1N5c3RlbWRSZXNvbHZlZCAqc2VsZikKLSt7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkUHJpdmF0ZSAqcHJpdiA9IE5NX0ROU19TWVNURU1EX1JFU09MVkVEX0dFVF9QUklWQVRFIChzZWxmKTsKLSsJR1ZhcmlhbnQgKnY7Ci0rCi0rCXdoaWxlICgodiA9IGdfcXVldWVfcG9wX2hlYWQgKCZwcml2LT5kbnNfdXBkYXRlcykpICE9IE5VTEwpCi0rCQlnX3ZhcmlhbnRfdW5yZWYgKHYpOwotKwotKwl3aGlsZSAoKHYgPSBnX3F1ZXVlX3BvcF9oZWFkICgmcHJpdi0+ZG9tYWluX3VwZGF0ZXMpKSAhPSBOVUxMKQotKwkJZ192YXJpYW50X3VucmVmICh2KTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStwcmVwYXJlX29uZV9pbnRlcmZhY2UgKE5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmLCBJbnRlcmZhY2VDb25maWcgKmljKQotK3sKLSsJTk1EbnNTeXN0ZW1kUmVzb2x2ZWRQcml2YXRlICpwcml2ID0gTk1fRE5TX1NZU1RFTURfUkVTT0xWRURfR0VUX1BSSVZBVEUgKHNlbGYpOwotKwlHVmFyaWFudEJ1aWxkZXIgZG5zLCBkb21haW5zOwotKwlHTGlzdCAqbDsKLSsKLSsJZ192YXJpYW50X2J1aWxkZXJfaW5pdCAoJmRucywgR19WQVJJQU5UX1RZUEUgKCIoaWEoaWF5KSkiKSk7Ci0rCWdfdmFyaWFudF9idWlsZGVyX2FkZCAoJmRucywgImkiLCBpYy0+aWZpbmRleCk7Ci0rCWdfdmFyaWFudF9idWlsZGVyX29wZW4gKCZkbnMsIEdfVkFSSUFOVF9UWVBFICgiYShpYXkpIikpOwotKwotKwlnX3ZhcmlhbnRfYnVpbGRlcl9pbml0ICgmZG9tYWlucywgR19WQVJJQU5UX1RZUEUgKCIoaWEoc2IpKSIpKTsKLSsJZ192YXJpYW50X2J1aWxkZXJfYWRkICgmZG9tYWlucywgImkiLCBpYy0+aWZpbmRleCk7Ci0rCWdfdmFyaWFudF9idWlsZGVyX29wZW4gKCZkb21haW5zLCBHX1ZBUklBTlRfVFlQRSAoImEoc2IpIikpOwotKwotKwlmb3IgKGwgPSBpYy0+Y29uZmlncyA7IGwgIT0gTlVMTCA7IGwgPSBnX2xpc3RfbmV4dCAobCkpIHsKLSsJCWlmIChOTV9JU19JUDRfQ09ORklHIChsLT5kYXRhKSkKLSsJCQl1cGRhdGVfYWRkX2lwNF9jb25maWcgKHNlbGYsICZkbnMsICZkb21haW5zLCBsLT5kYXRhKTsKLSsJCWVsc2UgaWYgKE5NX0lTX0lQNl9DT05GSUcgKGwtPmRhdGEpKQotKwkJCXVwZGF0ZV9hZGRfaXA2X2NvbmZpZyAoc2VsZiwgJmRucywgJmRvbWFpbnMsIGwtPmRhdGEpOwotKwkJZWxzZQotKwkJCWdfYXNzZXJ0X25vdF9yZWFjaGVkICgpOwotKwl9Ci0rCWdfdmFyaWFudF9idWlsZGVyX2Nsb3NlICgmZG5zKTsKLSsJZ192YXJpYW50X2J1aWxkZXJfY2xvc2UgKCZkb21haW5zKTsKLSsKLSsJZ19xdWV1ZV9wdXNoX3RhaWwgKCZwcml2LT5kbnNfdXBkYXRlcywKLSsJICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9yZWZfc2luayAoZ192YXJpYW50X2J1aWxkZXJfZW5kICgmZG5zKSkpOwotKwlnX3F1ZXVlX3B1c2hfdGFpbCAoJnByaXYtPmRvbWFpbl91cGRhdGVzLAotKwkgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X3JlZl9zaW5rIChnX3ZhcmlhbnRfYnVpbGRlcl9lbmQgKCZkb21haW5zKSkpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK3NlbmRfdXBkYXRlcyAoTk1EbnNTeXN0ZW1kUmVzb2x2ZWQgKnNlbGYpCi0rewotKwlOTURuc1N5c3RlbWRSZXNvbHZlZFByaXZhdGUgKnByaXYgPSBOTV9ETlNfU1lTVEVNRF9SRVNPTFZFRF9HRVRfUFJJVkFURSAoc2VsZik7Ci0rCUdWYXJpYW50ICp2OwotKwotKwlubV9jbGVhcl9nX2NhbmNlbGxhYmxlICgmcHJpdi0+dXBkYXRlX2NhbmNlbGxhYmxlKTsKLSsKLSsJaWYgKCFwcml2LT5yZXNvbHZlKQotKwkJcmV0dXJuOwotKwotKwlwcml2LT51cGRhdGVfY2FuY2VsbGFibGUgPSBnX2NhbmNlbGxhYmxlX25ldyAoKTsKLSsKLSsJd2hpbGUgKCh2ID0gZ19xdWV1ZV9wb3BfaGVhZCAoJnByaXYtPmRuc191cGRhdGVzKSkgIT0gTlVMTCkgewotKwkJZ19kYnVzX3Byb3h5X2NhbGwgKHByaXYtPnJlc29sdmUsICJTZXRMaW5rRE5TIiwgdiwKLSsJCSAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAotKwkJICAgICAgICAgICAgICAgICAgIC0xLCBwcml2LT51cGRhdGVfY2FuY2VsbGFibGUsIGNhbGxfZG9uZSwgc2VsZik7Ci0rCQlnX3ZhcmlhbnRfdW5yZWYgKHYpOwotKwl9Ci0rCi0rCXdoaWxlICgodiA9IGdfcXVldWVfcG9wX2hlYWQgKCZwcml2LT5kb21haW5fdXBkYXRlcykpICE9IE5VTEwpIHsKLSsJCWdfZGJ1c19wcm94eV9jYWxsIChwcml2LT5yZXNvbHZlLCAiU2V0TGlua0RvbWFpbnMiLCB2LAotKwkJICAgICAgICAgICAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsCi0rCQkgICAgICAgICAgICAgICAgICAgLTEsIHByaXYtPnVwZGF0ZV9jYW5jZWxsYWJsZSwgY2FsbF9kb25lLCBzZWxmKTsKLSsJCWdfdmFyaWFudF91bnJlZiAodik7Ci0rCX0KLSt9Ci0rCi0rc3RhdGljIGdib29sZWFuCi0rdXBkYXRlIChOTURuc1BsdWdpbiAqcGx1Z2luLAotKyAgICAgICAgY29uc3QgTk1EbnNJUENvbmZpZ0RhdGEgKipjb25maWdzLAotKyAgICAgICAgY29uc3QgTk1HbG9iYWxEbnNDb25maWcgKmdsb2JhbF9jb25maWcsCi0rICAgICAgICBjb25zdCBjaGFyICpob3N0bmFtZSkKLSt7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmID0gTk1fRE5TX1NZU1RFTURfUkVTT0xWRUQgKHBsdWdpbik7Ci0rCUdBcnJheSAqaW50ZXJmYWNlcyA9IGdfYXJyYXlfbmV3IChUUlVFLCBUUlVFLCBzaXplb2YgKEludGVyZmFjZUNvbmZpZykpOwotKwljb25zdCBOTURuc0lQQ29uZmlnRGF0YSAqKmM7Ci0rCWludCBpOwotKwotKwlmb3IgKGMgPSBjb25maWdzOyAqYyAhPSBOVUxMOyBjKyspCi0rCQlhZGRfaW50ZXJmYWNlX2NvbmZpZ3VyYXRpb24gKHNlbGYsIGludGVyZmFjZXMsICpjKTsKLSsKLSsJZnJlZV9wZW5kaW5nX3VwZGF0ZXMgKHNlbGYpOwotKwotKwlmb3IgKGkgPSAwOyBpIDwgaW50ZXJmYWNlcy0+bGVuOyBpKyspIHsKLSsJCUludGVyZmFjZUNvbmZpZyAqaWMgPSAmZ19hcnJheV9pbmRleCAoaW50ZXJmYWNlcywgSW50ZXJmYWNlQ29uZmlnLCBpKTsKLSsKLSsJCXByZXBhcmVfb25lX2ludGVyZmFjZSAoc2VsZiwgaWMpOwotKwkJZ19saXN0X2ZyZWUgKGljLT5jb25maWdzKTsKLSsJfQotKwotKwlnX2FycmF5X2ZyZWUgKGludGVyZmFjZXMsIFRSVUUpOwotKwotKwlzZW5kX3VwZGF0ZXMgKHNlbGYpOwotKwotKwlyZXR1cm4gVFJVRTsKLSt9Ci0rCi0rLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0rCi0rc3RhdGljIGdib29sZWFuCi0raXNfY2FjaGluZyAoTk1EbnNQbHVnaW4gKnBsdWdpbikKLSt7Ci0rCXJldHVybiBUUlVFOwotK30KLSsKLStzdGF0aWMgY29uc3QgY2hhciAqCi0rZ2V0X25hbWUgKE5NRG5zUGx1Z2luICpwbHVnaW4pCi0rewotKwlyZXR1cm4gInN5c3RlbWQtcmVzb2x2ZWQiOwotK30KLSsKLSsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSsKLStOTURuc1BsdWdpbiAqCi0rbm1fZG5zX3N5c3RlbWRfcmVzb2x2ZWRfbmV3ICh2b2lkKQotK3sKLSsJcmV0dXJuIGdfb2JqZWN0X25ldyAoTk1fVFlQRV9ETlNfU1lTVEVNRF9SRVNPTFZFRCwgTlVMTCk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rcmVzb2x2ZWRfcHJveHlfY3JlYXRlZCAoR09iamVjdCAqc291cmNlLCBHQXN5bmNSZXN1bHQgKnIsIGdwb2ludGVyIHVzZXJfZGF0YSkKLSt7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmID0gKE5NRG5zU3lzdGVtZFJlc29sdmVkICopIHVzZXJfZGF0YTsKLSsJTk1EbnNTeXN0ZW1kUmVzb2x2ZWRQcml2YXRlICpwcml2OwotKwlnc19mcmVlX2Vycm9yIEdFcnJvciAqZXJyb3IgPSBOVUxMOwotKwlHREJ1c1Byb3h5ICpyZXNvbHZlOwotKwotKwlyZXNvbHZlID0gZ19kYnVzX3Byb3h5X25ld19maW5pc2ggKHIsICZlcnJvcik7Ci0rCWlmICggICAhcmVzb2x2ZQotKwkgICAgJiYgZ19lcnJvcl9tYXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQpKQotKwkJcmV0dXJuOwotKwotKwlwcml2ID0gTk1fRE5TX1NZU1RFTURfUkVTT0xWRURfR0VUX1BSSVZBVEUgKHNlbGYpOwotKwlnX2NsZWFyX29iamVjdCAoJnByaXYtPmluaXRfY2FuY2VsbGFibGUpOwotKwlpZiAoIXJlc29sdmUpIHsKLSsJCV9MT0dXICgiZmFpbGVkIHRvIGNvbm5lY3QgdG8gcmVzb2x2ZWQgdmlhIERCdXM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwotKwkJZ19zaWduYWxfZW1pdF9ieV9uYW1lIChzZWxmLCBOTV9ETlNfUExVR0lOX0ZBSUxFRCk7Ci0rCQlyZXR1cm47Ci0rCX0KLSsKLSsJcHJpdi0+cmVzb2x2ZSA9IHJlc29sdmU7Ci0rCXNlbmRfdXBkYXRlcyAoc2VsZik7Ci0rfQotKwotKwotK3N0YXRpYyB2b2lkCi0rbm1fZG5zX3N5c3RlbWRfcmVzb2x2ZWRfaW5pdCAoTk1EbnNTeXN0ZW1kUmVzb2x2ZWQgKnNlbGYpCi0rewotKwlOTURuc1N5c3RlbWRSZXNvbHZlZFByaXZhdGUgKnByaXYgPSBOTV9ETlNfU1lTVEVNRF9SRVNPTFZFRF9HRVRfUFJJVkFURSAoc2VsZik7Ci0rCU5NQnVzTWFuYWdlciAqZGJ1c19tZ3I7Ci0rCUdEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbjsKLSsKLSsJZ19xdWV1ZV9pbml0ICgmcHJpdi0+ZG5zX3VwZGF0ZXMpOwotKwlnX3F1ZXVlX2luaXQgKCZwcml2LT5kb21haW5fdXBkYXRlcyk7Ci0rCi0rCWRidXNfbWdyID0gbm1fYnVzX21hbmFnZXJfZ2V0ICgpOwotKwlnX3JldHVybl9pZl9mYWlsIChkYnVzX21ncik7Ci0rCi0rCWNvbm5lY3Rpb24gPSBubV9idXNfbWFuYWdlcl9nZXRfY29ubmVjdGlvbiAoZGJ1c19tZ3IpOwotKwlnX3JldHVybl9pZl9mYWlsIChjb25uZWN0aW9uKTsKLSsKLSsJcHJpdi0+aW5pdF9jYW5jZWxsYWJsZSA9IGdfY2FuY2VsbGFibGVfbmV3ICgpOwotKwlnX2RidXNfcHJveHlfbmV3IChjb25uZWN0aW9uLAotKwkgICAgICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfRE9fTk9UX0xPQURfUFJPUEVSVElFUyB8Ci0rCSAgICAgICAgICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19ET19OT1RfQ09OTkVDVF9TSUdOQUxTLAotKwkgICAgICAgICAgICAgICAgICBOVUxMLAotKwkgICAgICAgICAgICAgICAgICBTWVNURU1EX1JFU09MVkVEX0RCVVNfU0VSVklDRSwKLSsJICAgICAgICAgICAgICAgICAgU1lTVEVNRF9SRVNPTFZFRF9EQlVTX1BBVEgsCi0rCSAgICAgICAgICAgICAgICAgIFNZU1RFTURfUkVTT0xWRURfREJVU19TRVJWSUNFICIuTWFuYWdlciIsCi0rCSAgICAgICAgICAgICAgICAgIHByaXYtPmluaXRfY2FuY2VsbGFibGUsCi0rCSAgICAgICAgICAgICAgICAgIHJlc29sdmVkX3Byb3h5X2NyZWF0ZWQsCi0rCSAgICAgICAgICAgICAgICAgIHNlbGYpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkKLSt7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmID0gTk1fRE5TX1NZU1RFTURfUkVTT0xWRUQgKG9iamVjdCk7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkUHJpdmF0ZSAqcHJpdiA9IE5NX0ROU19TWVNURU1EX1JFU09MVkVEX0dFVF9QUklWQVRFIChzZWxmKTsKLSsKLSsJZnJlZV9wZW5kaW5nX3VwZGF0ZXMgKHNlbGYpOwotKwlnX2NsZWFyX29iamVjdCAoJnByaXYtPnJlc29sdmUpOwotKwlubV9jbGVhcl9nX2NhbmNlbGxhYmxlICgmcHJpdi0+aW5pdF9jYW5jZWxsYWJsZSk7Ci0rCW5tX2NsZWFyX2dfY2FuY2VsbGFibGUgKCZwcml2LT51cGRhdGVfY2FuY2VsbGFibGUpOwotKwotKwlHX09CSkVDVF9DTEFTUyAobm1fZG5zX3N5c3RlbWRfcmVzb2x2ZWRfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZSAob2JqZWN0KTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStubV9kbnNfc3lzdGVtZF9yZXNvbHZlZF9jbGFzc19pbml0IChOTURuc1N5c3RlbWRSZXNvbHZlZENsYXNzICpkbnNfY2xhc3MpCi0rewotKwlOTURuc1BsdWdpbkNsYXNzICpwbHVnaW5fY2xhc3MgPSBOTV9ETlNfUExVR0lOX0NMQVNTIChkbnNfY2xhc3MpOwotKwlHT2JqZWN0Q2xhc3MgKm9iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChkbnNfY2xhc3MpOwotKwotKwlnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGRuc19jbGFzcywgc2l6ZW9mIChOTURuc1N5c3RlbWRSZXNvbHZlZFByaXZhdGUpKTsKLSsKLSsJb2JqZWN0X2NsYXNzLT5kaXNwb3NlID0gZGlzcG9zZTsKLSsKLSsJcGx1Z2luX2NsYXNzLT5pc19jYWNoaW5nID0gaXNfY2FjaGluZzsKLSsJcGx1Z2luX2NsYXNzLT51cGRhdGUgPSB1cGRhdGU7Ci0rCXBsdWdpbl9jbGFzcy0+Z2V0X25hbWUgPSBnZXRfbmFtZTsKLSt9Ci0rCi1kaWZmIC0tZ2l0IGEvc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmggYi9zcmMvZG5zLW1hbmFnZXIvbm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjQ1YzY0YjMKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9kbnMtbWFuYWdlci9ubS1kbnMtc3lzdGVtZC1yZXNvbHZlZC5oCi1AQCAtMCwwICsxLDQ1IEBACi0rLyogLSotIE1vZGU6IEM7IHRhYi13aWR0aDogNDsgaW5kZW50LXRhYnMtbW9kZTogdDsgYy1iYXNpYy1vZmZzZXQ6IDQgLSotICovCi0rLyogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKLSsgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsgKgotKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rICoKLSsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwotKyAqIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCi0rICogNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQS4KLSsgKgotKyAqIENvcHlyaWdodCAoQykgMjAxMCBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDE2IFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KLSsgKi8KLSsKLSsjaWZuZGVmIF9fTkVUV09SS01BTkFHRVJfRE5TX1NZU1RFTURfUkVTT0xWRURfSF9fCi0rI2RlZmluZSBfX05FVFdPUktNQU5BR0VSX0ROU19TWVNURU1EX1JFU09MVkVEX0hfXwotKwotKyNpbmNsdWRlICJubS1kbnMtcGx1Z2luLmgiCi0rCi0rI2RlZmluZSBOTV9UWVBFX0ROU19TWVNURU1EX1JFU09MVkVEICAgICAgICAgICAgKG5tX2Ruc19zeXN0ZW1kX3Jlc29sdmVkX2dldF90eXBlICgpKQotKyNkZWZpbmUgTk1fRE5TX1NZU1RFTURfUkVTT0xWRUQob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iaiksIE5NX1RZUEVfRE5TX1NZU1RFTURfUkVTT0xWRUQsIE5NRG5zU3lzdGVtZFJlc29sdmVkKSkKLSsjZGVmaW5lIE5NX0ROU19TWVNURU1EX1JFU09MVkVEX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChrbGFzcyksIE5NX1RZUEVfRE5TX1NZU1RFTURfUkVTT0xWRUQsIE5NRG5zU3lzdGVtZFJlc29sdmVkQ2xhc3MpKQotKyNkZWZpbmUgTk1fSVNfRE5TX1NZU1RFTURfUkVTT0xWRUQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iaiksIE5NX1RZUEVfRE5TX1NZU1RFTURfUkVTT0xWRUQpKQotKyNkZWZpbmUgTk1fSVNfRE5TX1NZU1RFTURfUkVTT0xWRURfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGtsYXNzKSwgTk1fVFlQRV9ETlNfU1lTVEVNRF9SRVNPTFZFRCkpCi0rI2RlZmluZSBOTV9ETlNfU1lTVEVNRF9SRVNPTFZFRF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvYmopLCBOTV9UWVBFX0ROU19TWVNURU1EX1JFU09MVkVELCBOTURuc1N5c3RlbWRSZXNvbHZlZENsYXNzKSkKLSsKLSt0eXBlZGVmIHN0cnVjdCB7Ci0rCU5NRG5zUGx1Z2luIHBhcmVudDsKLSt9IE5NRG5zU3lzdGVtZFJlc29sdmVkOwotKwotK3R5cGVkZWYgc3RydWN0IHsKLSsJTk1EbnNQbHVnaW5DbGFzcyBwYXJlbnQ7Ci0rfSBOTURuc1N5c3RlbWRSZXNvbHZlZENsYXNzOwotKwotK0dUeXBlIG5tX2Ruc19zeXN0ZW1kX3Jlc29sdmVkX2dldF90eXBlICh2b2lkKTsKLSsKLStOTURuc1BsdWdpbiAqbm1fZG5zX3N5c3RlbWRfcmVzb2x2ZWRfbmV3ICh2b2lkKTsKLSsKLSsjZW5kaWYgLyogX19ORVRXT1JLTUFOQUdFUl9ETlNfU1lTVEVNRF9SRVNPTFZFRF9IX18gKi8KLSsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtZG5zLXJlc29sdmVkLWFsc28tY2hlY2stZm9yLWV0Yy1yZXNvbHYtY29uZi5zeXN0ZW1kLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1kbnMtcmVzb2x2ZWQtYWxzby1jaGVjay1mb3ItZXRjLXJlc29sdi1jb25mLnN5c3RlbWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhN2U0YTQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1kbnMtcmVzb2x2ZWQtYWxzby1jaGVjay1mb3ItZXRjLXJlc29sdi1jb25mLnN5c3RlbWQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1Gcm9tIDZmNzk5ZjFmMGU2OGNjN2JmODljMGE1NmFlYzVlY2Y0NjkzNzYxOWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNhcmRvIFNhbHZldGkgPHJzYWx2ZXRpQHJzYWx2ZXRpLm5ldD4KLURhdGU6IFRodSwgMTUgSnVuIDIwMTcgMTA6MDI6MzggLTAzMDAKLVN1YmplY3Q6IFtQQVRDSF0gZG5zL3Jlc29sdmVkOiBhbHNvIGNoZWNrIGZvciAvZXRjL3Jlc29sdi1jb25mLnN5c3RlbWQKLQotT0Ugc3BlY2lmaWMgcmVzb2x2LmNvbmYgcGF0aCwgc28gaXQgY2FuIGJlIGVuYWJsZWQgYnkgZGVmYXVsdCBpZiBhdmFpbGFibGUuCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbT0UgY29uZmlnIHNwZWNpZmljXQotCi1TaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFNhbHZldGkgPHJzYWx2ZXRpQHJzYWx2ZXRpLm5ldD4KLS0tLQotIHNyYy9kbnMtbWFuYWdlci9ubS1kbnMtbWFuYWdlci5jIHwgMSArCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCi0KLWRpZmYgLS1naXQgYS9zcmMvZG5zLW1hbmFnZXIvbm0tZG5zLW1hbmFnZXIuYyBiL3NyYy9kbnMtbWFuYWdlci9ubS1kbnMtbWFuYWdlci5jCi1pbmRleCBjMWQyYmY3Li5kNzBkNGI0IDEwMDY0NAotLS0tIGEvc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1tYW5hZ2VyLmMKLSsrKyBiL3NyYy9kbnMtbWFuYWdlci9ubS1kbnMtbWFuYWdlci5jCi1AQCAtMTU5Niw2ICsxNTk2LDcgQEAgX3Jlc29sdmNvbmZfcmVzb2x2ZWRfbWFuYWdlZCAodm9pZCkKLSAJCSIvcnVuL3N5c3RlbWQvcmVzb2x2ZS9yZXNvbHYuY29uZiIsCi0gCQkiL2xpYi9zeXN0ZW1kL3Jlc29sdi5jb25mIiwKLSAJCSIvdXNyL2xpYi9zeXN0ZW1kL3Jlc29sdi5jb25mIiwKLSsJCSIvZXRjL3Jlc29sdi1jb25mLnN5c3RlbWQiLAotIAl9OwotIAlHRmlsZSAqZjsKLSAJR0ZpbGVJbmZvICppbmZvOwotLS0gCi0yLjcuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLWRvbi10LXRyeS10by1ydW4tc2Jpbi1kaGNsaWVudC10by1nZXQtdGhlLXZlcnNpb24tbnUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLWRvbi10LXRyeS10by1ydW4tc2Jpbi1kaGNsaWVudC10by1nZXQtdGhlLXZlcnNpb24tbnUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjOWVkOTIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1kb24tdC10cnktdG8tcnVuLXNiaW4tZGhjbGllbnQtdG8tZ2V0LXRoZS12ZXJzaW9uLW51LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRnJvbSA3ZGQ0MGRiNjYwNmMzYjM1NTkzNjVhMDM5NDRjYjk5YWVlNWNlYWJjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotRGF0ZTogVGh1LCA0IEFwciAyMDEzIDEyOjU3OjU4ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGRvbid0IHRyeSB0byBydW4gL3NiaW4vZGhjbGllbnQgdG8gZ2V0IHRoZSB2ZXJzaW9uIG51bWJlciwKLSB0aGlzIGJyZWFrIGNyb3NzLWNvbXBpbGluZwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2J1aWxkIHN5c3RlbSBzcGVjaWZpY10KLQotU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotLS0tCi0gY29uZmlndXJlLmFjIHwgICAgNiAtLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDAgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggY2M2NmU5Yi4uNzE2MzI4NyAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNDg4LDEyICs0ODgsNiBAQCBBU19JRihbdGVzdCAteiAiJHdpdGhfZGhjcGNkIl0sIHdpdGhfZGhjcGNkPXllcykKLSAjIFNlYXJjaCBhbmQgY2hlY2sgdGhlIGV4ZWN1dGFibGVzCi0gaWYgdGVzdCAiJHdpdGhfZGhjbGllbnQiID0gInllcyI7IHRoZW4KLSAJQUNfUEFUSF9QUk9HUyh3aXRoX2RoY2xpZW50LCBkaGNsaWVudCwgbm8sIC9zYmluOi91c3Ivc2JpbjovdXNyL2xvY2FsL3NiaW4pCi0tCWlmIHRlc3QgIiR3aXRoX2RoY2xpZW50IiAhPSAibm8iOyB0aGVuCi0tCQlpZiAhICR3aXRoX2RoY2xpZW50IC0tdmVyc2lvbiAyPiYxIHwgZ3JlcCAtcSAiXmlzYy1kaGNsaWVudC00XC4iOyB0aGVuCi0tCQkJQUNfTVNHX1dBUk4oW0Nhbm5vdCB1c2UgZGhjbGllbnQsIHZlcnNpb24gNC54IGlzIHJlcXVpcmVkXSkKLS0JCQl3aXRoX2RoY2xpZW50PW5vCi0tCQlmaQotLQlmaQotIGZpCi0gaWYgdGVzdCAiJHdpdGhfZGhjcGNkIiA9ICJ5ZXMiOyB0aGVuCi0gCUFDX1BBVEhfUFJPR1Mod2l0aF9kaGNwY2QsIGRoY3BjZCwgbm8sIC9zYmluOi91c3Ivc2JpbjovdXNyL2xvY2FsL3NiaW4pCi0tLSAKLTEuNy42LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1zZC1sbGRwLmgtUmVtb3ZlLW5ldC1ldGhlcm5ldC5oLXNlZW1zLXRvLWJlLW92ZXItc3BlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1zZC1sbGRwLmgtUmVtb3ZlLW5ldC1ldGhlcm5ldC5oLXNlZW1zLXRvLWJlLW92ZXItc3BlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxOTQ0MjMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLXNkLWxsZHAuaC1SZW1vdmUtbmV0LWV0aGVybmV0Lmgtc2VlbXMtdG8tYmUtb3Zlci1zcGUucGF0Y2gKQEAgLTAsMCArMSw0MCBAQAorRnJvbSAxOGY3MWMxYjQ4NzMwYjg2MDI4MjY1MTdmMmI1YjA4ODI4M2FlOTQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMzEgTWFyIDIwMTcgMTY6NDg6MDAgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSCA1LzddIHNkLWxsZHAuaDogUmVtb3ZlIG5ldC9ldGhlcm5ldC5oIHNlZW1zIHRvIGJlIG92ZXIKKyBzcGVjaWZpZWQKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIHNyYy9zeXN0ZW1kL3NyYy9saWJzeXN0ZW1kLW5ldHdvcmsvc2QtbGxkcC5jIHwgMSArCisgc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtbGxkcC5oICAgICAgICAgICAgfCAyICstCisgMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9saWJzeXN0ZW1kLW5ldHdvcmsvc2QtbGxkcC5jIGIvc3JjL3N5c3RlbWQvc3JjL2xpYnN5c3RlbWQtbmV0d29yay9zZC1sbGRwLmMKK2luZGV4IDMxZTI0NDguLjc3MjFjYzIgMTAwNjQ0CistLS0gYS9zcmMvc3lzdGVtZC9zcmMvbGlic3lzdGVtZC1uZXR3b3JrL3NkLWxsZHAuYworKysrIGIvc3JjL3N5c3RlbWQvc3JjL2xpYnN5c3RlbWQtbmV0d29yay9zZC1sbGRwLmMKK0BAIC0yMSw2ICsyMSw3IEBACisgI2luY2x1ZGUgIm5tLXNkLWFkYXB0LmgiCisgCisgI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorKyNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KKyAjaW5jbHVkZSA8bGludXgvc29ja2lvcy5oPgorIAorICNpbmNsdWRlICJzZC1sbGRwLmgiCitkaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtbGxkcC5oIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtbGxkcC5oCitpbmRleCAzZjM1ZWViLi42MWIwZTQ1IDEwMDY0NAorLS0tIGEvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtbGxkcC5oCisrKysgYi9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1sbGRwLmgKK0BAIC0yMiw3ICsyMiw3IEBACisgKioqLworIAorICNpbmNsdWRlIDxpbnR0eXBlcy5oPgorLSNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KKysvLyNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KKyAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisgCisgI2luY2x1ZGUgInNkLWV2ZW50LmgiCistLSAKKzIuMTQuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLXN5c3RlbWQteGxvY2FsZS5oLWlzLWRyb3BwZWQtYnktbmV3ZXItZ2xpYmMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLXN5c3RlbWQteGxvY2FsZS5oLWlzLWRyb3BwZWQtYnktbmV3ZXItZ2xpYmMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMzRlMmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1zeXN0ZW1kLXhsb2NhbGUuaC1pcy1kcm9wcGVkLWJ5LW5ld2VyLWdsaWJjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotRnJvbSBhOWJmZTZmMjAyOWQ3NWNhZjI4ZmNkZjNlNzQwODQzY2Y2MzU5NjE1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMjcgSnVuIDIwMTcgMDc6MzE6MjUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzJdIHN5c3RlbWQ6IHhsb2NhbGUuaCBpcyBkcm9wcGVkIGJ5IG5ld2VyIGdsaWJjCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvcGFyc2UtdXRpbC5jIHwgNCAtLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcGFyc2UtdXRpbC5jIGIvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3BhcnNlLXV0aWwuYwotaW5kZXggOWMyMWU1YS4uZGQ5NWQxZiAxMDA2NDQKLS0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9wYXJzZS11dGlsLmMKLSsrKyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9wYXJzZS11dGlsLmMKLUBAIC0yNSwxMSArMjUsNyBAQAotICNpbmNsdWRlIDxzdGRpby5oPgotICNpbmNsdWRlIDxzdGRsaWIuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0tI2lmZGVmIF9fR0xJQkNfXwotLSNpbmNsdWRlIDx4bG9jYWxlLmg+Ci0tI2Vsc2UKLSAjaW5jbHVkZSA8bG9jYWxlLmg+Ci0tI2VuZGlmCi0gI2luY2x1ZGUgImFsbG9jLXV0aWwuaCIKLSAjaW5jbHVkZSAiZXh0cmFjdC13b3JkLmgiCi0gI2luY2x1ZGUgIm1hY3JvLmgiCi0tLSAKLTIuMTMuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAyLUZpeC1ubS12ZXJzaW9uLW1hY3JvLWluY2x1ZGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi1GaXgtbm0tdmVyc2lvbi1tYWNyby1pbmNsdWRlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE1N2M4My4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAyLUZpeC1ubS12ZXJzaW9uLW1hY3JvLWluY2x1ZGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotRnJvbSA3Mjc0YmJhZGQzOThhNjliOGJhYmY0NzQzMWY4MGQzNWUwMjI4YzQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQWRyaWFuIEZyZWlob2ZlciA8YWRyaWFuLmZyZWlob2ZlckBnbWFpbC5jb20+Ci1EYXRlOiBNb24sIDE4IEphbiAyMDE2IDA4OjUzOjI2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBubS12ZXJzaW9uLW1hY3JvIGluY2x1ZGVzCi0KLW5tLXZlcnNpb24tbWFjcm9zLmggY2Fubm90IGJlIGZvdW5kIHNpbmNlIGluY2x1ZGUgZGlyZWN0aXZlIGhhcwotYmVlbiBjaGFuZ2VkIGZyb20gIiB0byA8LiBUaGlzIGJyZWFrcyBmb3IgZXhhbXBsZSBnbm9tZS1wYW5lbAotYnVpbGQ6Ci0vdXNyL2luY2x1ZGUvTmV0d29ya01hbmFnZXIvTmV0d29ya01hbmFnZXIuaDozMTozMToKLWZhdGFsIGVycm9yOiBubS12ZXJzaW9uLW1hY3Jvcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5LgotLS0tCi0gbGlibm0tY29yZS9ubS12ZXJzaW9uLmggICAgIHwgMiArLQotIGxpYm5tLXV0aWwvTmV0d29ya01hbmFnZXIuaCB8IDIgKy0KLSBsaWJubS11dGlsL25tLXZlcnNpb24uaCAgICAgfCAyICstCi0gMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJubS1jb3JlL25tLXZlcnNpb24uaCBiL2xpYm5tLWNvcmUvbm0tdmVyc2lvbi5oCi1pbmRleCA3MzAzMzBhLi5kNzUxYmMxIDEwMDY0NAotLS0tIGEvbGlibm0tY29yZS9ubS12ZXJzaW9uLmgKLSsrKyBiL2xpYm5tLWNvcmUvbm0tdmVyc2lvbi5oCi1AQCAtMjMsNyArMjMsNyBAQAotIAotICNpbmNsdWRlIDxnbGliLmg+Ci0gCi0tI2luY2x1ZGUgPG5tLXZlcnNpb24tbWFjcm9zLmg+Ci0rI2luY2x1ZGUgIm5tLXZlcnNpb24tbWFjcm9zLmgiCi0gCi0gLyogRGVwcmVjYXRpb24gLyBBdmFpbGFiaWxpdHkgbWFjcm9zICovCi0gCi1kaWZmIC0tZ2l0IGEvbGlibm0tdXRpbC9OZXR3b3JrTWFuYWdlci5oIGIvbGlibm0tdXRpbC9OZXR3b3JrTWFuYWdlci5oCi1pbmRleCBkODNlNGFiLi4zYTk2NGZjIDEwMDY0NAotLS0tIGEvbGlibm0tdXRpbC9OZXR3b3JrTWFuYWdlci5oCi0rKysgYi9saWJubS11dGlsL05ldHdvcmtNYW5hZ2VyLmgKLUBAIC0yOCw3ICsyOCw3IEBACi0gCi0gLyogVGhpcyBoZWFkZXIgbXVzdCBub3QgaW5jbHVkZSBnbGliIG9yIGxpYm5tLiAqLwotIAotLSNpbmNsdWRlIDxubS12ZXJzaW9uLW1hY3Jvcy5oPgotKyNpbmNsdWRlICJubS12ZXJzaW9uLW1hY3Jvcy5oIgotIAotIC8qCi0gICogZGJ1cyBzZXJ2aWNlcyBkZXRhaWxzCi1kaWZmIC0tZ2l0IGEvbGlibm0tdXRpbC9ubS12ZXJzaW9uLmggYi9saWJubS11dGlsL25tLXZlcnNpb24uaAotaW5kZXggNjM4OTVkZC4uNDExMDFhNCAxMDA2NDQKLS0tLSBhL2xpYm5tLXV0aWwvbm0tdmVyc2lvbi5oCi0rKysgYi9saWJubS11dGlsL25tLXZlcnNpb24uaAotQEAgLTIzLDcgKzIzLDcgQEAKLSAKLSAjaW5jbHVkZSA8Z2xpYi5oPgotIAotLSNpbmNsdWRlIDxubS12ZXJzaW9uLW1hY3Jvcy5oPgotKyNpbmNsdWRlICJubS12ZXJzaW9uLW1hY3Jvcy5oIgotIAotIC8qIERlcHJlY2F0aW9uIC8gQXZhaWxhYmlsaXR5IG1hY3JvcyAqLwotIAotLS0gCi0yLjUuMAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAyLUZpeGVkLWNvbmZpZ3VyZS5hYy1GaXgtcGtnY29uZmlnLXN5c3Jvb3QtbG9jYXRpb25zLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi1GaXhlZC1jb25maWd1cmUuYWMtRml4LXBrZ2NvbmZpZy1zeXNyb290LWxvY2F0aW9ucy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODg0OGQzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi1GaXhlZC1jb25maWd1cmUuYWMtRml4LXBrZ2NvbmZpZy1zeXNyb290LWxvY2F0aW9ucy5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIDU4M2YwNDQ4ZmI3ZTlhYmEyYjQxMGMwNmVlYzZmNDIwYjQxYTZhMGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQYWJsbyBTYWF2ZWRyYSA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CitEYXRlOiBUdWUsIDEzIE1hciAyMDE4IDE3OjM2OjIwICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggNy83XSBGaXhlZCBjb25maWd1cmUuYWM6IEZpeCBwa2djb25maWcgc3lzcm9vdCBsb2NhdGlvbnMKKworLS0tCisgY29uZmlndXJlLmFjIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA1MWU1ZWI2Li5jOWQzZTU2IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC02NjksNyArNjY5LDcgQEAgZWxzZQorIAlBQ19ERUZJTkUoV0lUSF9KQU5TU09OLCAxLCBbRGVmaW5lIGlmIEpBTlNTT04gaXMgZW5hYmxlZF0pCisgCisgCUFDX0NIRUNLX1RPT0xTKFJFQURFTEYsIFtldS1yZWFkZWxmIHJlYWRlbGZdKQorLQlKQU5TU09OX0xJQkRJUj1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1saWJkaXIgamFuc3NvbmAKKysJSkFOU1NPTl9MSUJESVI9JHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWxpYmRpciBqYW5zc29uYAorIAlKQU5TU09OX1NPTkFNRT1gJFJFQURFTEYgLWQgJEpBTlNTT05fTElCRElSL2xpYmphbnNzb24uc28gfHNlZCAtbiAncy8uKlNPTkFNRS4qXFtbXChbXl1dKlwpXV0vXDEvcCdgCisgCisgCWlmIHRlc3QgIiRKQU5TU09OX1NPTkFNRSIgPSAiIjsgdGhlbgorLS0gCisyLjE0LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi1zb2NrZXQtdXRpbC5oLUluY2x1ZGUtbGludXgtc29ja2lvcy5oLW9uLW11c2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAyLXNvY2tldC11dGlsLmgtSW5jbHVkZS1saW51eC1zb2NraW9zLmgtb24tbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjJiYzZlOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAyLXNvY2tldC11dGlsLmgtSW5jbHVkZS1saW51eC1zb2NraW9zLmgtb24tbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLUZyb20gOThkN2UzYWU1YjE1ZTMwYWYxYmY1ZGQxZDI3OWUxYTc3NGJmMmI4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDMxIE1hciAyMDE3IDE2OjA1OjA1IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMi81XSBzb2NrZXQtdXRpbC5oOiBJbmNsdWRlIGxpbnV4L3NvY2tpb3MuaCBvbiBtdXNsCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvc29ja2V0LXV0aWwuaCB8IDYgKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3NvY2tldC11dGlsLmggYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc29ja2V0LXV0aWwuaAotaW5kZXggMjUzNmIwOC4uNzZkNjEwNyAxMDA2NDQKLS0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zb2NrZXQtdXRpbC5oCi0rKysgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc29ja2V0LXV0aWwuaAotQEAgLTI5LDYgKzI5LDEyIEBACi0gI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4KLSAjaW5jbHVkZSA8bGludXgvaWZfcGFja2V0Lmg+Ci0gCi0rI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKLSsvKiBTSU9DR1NUQU1QTlMgZnJvbSBsaW51eC9hc20tZ2VuZXJpYy5oCi0rICogZm9yIHNyYy9zeXN0ZW1kL3NyYy9saWJzeXN0ZW1kLW5ldHdvcmsvc2QtbGxkcC5jICovCi0rI2luY2x1ZGUgPGxpbnV4L3NvY2tpb3MuaD4KLSsjZW5kaWYKLSsKLSAjaW5jbHVkZSAibWFjcm8uaCIKLSAjaW5jbHVkZSAidXRpbC5oIgotIAotLS0gCi0yLjEyLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi11c2VyLWZvcm1hdC1zdHJpbmctaW4tZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi11c2VyLWZvcm1hdC1zdHJpbmctaW4tZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzJiNWMwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDItdXNlci1mb3JtYXQtc3RyaW5nLWluLWdfZGJ1c19tZXNzYWdlX25ld19tZXRob2RfZXJyby5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLUZyb20gYWRjMDY2OGI4NTQyODlhMTFjZmMyOTU5N2I1NTY2YmExODY5ZDE3ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDI3IEp1biAyMDE3IDA3OjMyOjA5IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSB1c2VyIGZvcm1hdCBzdHJpbmcgaW4gZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvciAoKQotCi1UaGlzIGZpeGVzIGZvcm1hdCBlcnJvcnMgd2l0aCAtV2Vycm9yPWZvcm1hdC1zZWN1cml0eQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gc3JjL25tLW1hbmFnZXIuYyB8IDYgKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL25tLW1hbmFnZXIuYyBiL3NyYy9ubS1tYW5hZ2VyLmMKLWluZGV4IGMzZDY1Y2QuLmU4MTQ5MTIgMTAwNjQ0Ci0tLS0gYS9zcmMvbm0tbWFuYWdlci5jCi0rKysgYi9zcmMvbm0tbWFuYWdlci5jCi1AQCAtNDg3MSw2ICs0ODcxLDcgQEAgcHJvcF9zZXRfYXV0aF9kb25lX2NiIChOTUF1dGhDaGFpbiAqY2hhaW4sCi0gCWlmIChlcnJvciB8fCAocmVzdWx0ICE9IE5NX0FVVEhfQ0FMTF9SRVNVTFRfWUVTKSkgewotIAkJcmVwbHkgPSBnX2RidXNfbWVzc2FnZV9uZXdfbWV0aG9kX2Vycm9yIChwZmQtPm1lc3NhZ2UsCi0gCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5NX1BFUk1fREVOSUVEX0VSUk9SLAotKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3JfbWVzc2FnZSA9ICJOb3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIikpOwotIAkJaWYgKGVycm9yKQotIAkJCWVycm9yX21lc3NhZ2UgPSBlcnJvci0+bWVzc2FnZTsKLUBAIC00ODgyLDYgKzQ4ODMsNyBAQCBwcm9wX3NldF9hdXRoX2RvbmVfY2IgKE5NQXV0aENoYWluICpjaGFpbiwKLSAJaWYgKCFvYmplY3QpIHsKLSAJCXJlcGx5ID0gZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvciAocGZkLT5tZXNzYWdlLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLkRCdXMuRXJyb3IuVW5rbm93bk9iamVjdCIsCi0rCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyIsCi0gCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcl9tZXNzYWdlID0gIk9iamVjdCBkb2Vzbid0IGV4aXN0LiIpKTsKLSAJCWdvdG8gZG9uZTsKLSAJfQotQEAgLTQ4OTAsNiArNDg5Miw3IEBAIHByb3Bfc2V0X2F1dGhfZG9uZV9jYiAoTk1BdXRoQ2hhaW4gKmNoYWluLAotIAlpZiAoIW5tX2V4cG9ydGVkX29iamVjdF9nZXRfaW50ZXJmYWNlX2J5X3R5cGUgKG9iamVjdCwgcGZkLT5pbnRlcmZhY2VfdHlwZSkpIHsKLSAJCXJlcGx5ID0gZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvciAocGZkLT5tZXNzYWdlLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLkRCdXMuRXJyb3IuSW52YWxpZEFyZ3MiLAotKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3JfbWVzc2FnZSA9ICJPYmplY3QgaXMgb2YgdW5leHBlY3RlZCB0eXBlLiIpKTsKLSAJCWdvdG8gZG9uZTsKLSAJfQotQEAgLTQ5MDUsNiArNDkwOCw3IEBAIHByb3Bfc2V0X2F1dGhfZG9uZV9jYiAoTk1BdXRoQ2hhaW4gKmNoYWluLAotIAkJaWYgKGdsb2JhbF9kbnMgJiYgIW5tX2dsb2JhbF9kbnNfY29uZmlnX2lzX2ludGVybmFsIChnbG9iYWxfZG5zKSkgewotIAkJCXJlcGx5ID0gZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvciAocGZkLT5tZXNzYWdlLAotIAkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTk1fUEVSTV9ERU5JRURfRVJST1IsCi0rCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLAotIAkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yX21lc3NhZ2UgPSAiR2xvYmFsIEROUyBjb25maWd1cmF0aW9uIGFscmVhZHkgc2V0IHZpYSBjb25maWd1cmF0aW9uIGZpbGUiKSk7Ci0gCQkJZ290byBkb25lOwotIAkJfQotQEAgLTQ5NDksNiArNDk1Myw3IEBAIGRvX3NldF9wcm9wZXJ0eV9jaGVjayAoZ3BvaW50ZXIgdXNlcl9kYXRhKQotIAlpZiAoIXBmZC0+c3ViamVjdCkgewotIAkJcmVwbHkgPSBnX2RidXNfbWVzc2FnZV9uZXdfbWV0aG9kX2Vycm9yIChwZmQtPm1lc3NhZ2UsCi0gCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5NX1BFUk1fREVOSUVEX0VSUk9SLAotKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3JfbWVzc2FnZSA9ICJDb3VsZCBub3QgZGV0ZXJtaW5lIHJlcXVlc3QgVUlELiIpKTsKLSAJCWdvdG8gb3V0OwotIAl9Ci1AQCAtNDk1OCw2ICs0OTYzLDcgQEAgZG9fc2V0X3Byb3BlcnR5X2NoZWNrIChncG9pbnRlciB1c2VyX2RhdGEpCi0gCWlmICghY2hhaW4pIHsKLSAJCXJlcGx5ID0gZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvciAocGZkLT5tZXNzYWdlLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTV9QRVJNX0RFTklFRF9FUlJPUiwKLSsJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIiwKLSAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yX21lc3NhZ2UgPSAiQ291bGQgbm90IGF1dGhlbnRpY2F0ZSByZXF1ZXN0LiIpKTsKLSAJCWdvdG8gb3V0OwotIAl9Ci0tLSAKLTIuMTMuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAzLURlZmluZS1FVEhfQUxFTi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDMtRGVmaW5lLUVUSF9BTEVOLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzY5MTRmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDMtRGVmaW5lLUVUSF9BTEVOLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotRnJvbSAxNmMzZGM3YTQwNzEwMTI0M2QyMDU2ZDJjOTNlNjFkY2UxYTA1MzUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMzEgTWFyIDIwMTcgMTY6MDg6NDUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAzLzVdIERlZmluZSBFVEhfQUxFTgotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gbGlibm0tY29yZS9ubS11dGlscy5oICAgICAgICAgIHwgMSArCi0gc3JjL3BsYXRmb3JtL3dpZmkvd2lmaS11dGlscy5oIHwgMiArKwotIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9saWJubS1jb3JlL25tLXV0aWxzLmggYi9saWJubS1jb3JlL25tLXV0aWxzLmgKLWluZGV4IDE1NmNjYWUuLjY4ZTIyMmIgMTAwNjQ0Ci0tLS0gYS9saWJubS1jb3JlL25tLXV0aWxzLmgKLSsrKyBiL2xpYm5tLWNvcmUvbm0tdXRpbHMuaAotQEAgLTI5LDYgKzI5LDcgQEAKLSAKLSAvKiBGb3IgRVRIX0FMRU4gYW5kIElORklOSUJBTkRfQUxFTiAqLwotIC8vI2luY2x1ZGUgPGxpbnV4L2lmX2V0aGVyLmg+Ci0rI2RlZmluZSBFVEhfQUxFTgk2CQkvKiBPY3RldHMgaW4gb25lIGV0aGVybmV0IGFkZHIJICovCi0gI2luY2x1ZGUgPGxpbnV4L2lmX2luZmluaWJhbmQuaD4KLSAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotIAotZGlmZiAtLWdpdCBhL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaCBiL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaAotaW5kZXggODRmNWNlOS4uMzNhODM4ZCAxMDA2NDQKLS0tLSBhL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaAotKysrIGIvc3JjL3BsYXRmb3JtL3dpZmkvd2lmaS11dGlscy5oCi1AQCAtMjQsNiArMjQsOCBAQAotIAotIC8vI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgotIAotKyNkZWZpbmUgRVRIX0FMRU4JNgkJLyogT2N0ZXRzIGluIG9uZSBldGhlcm5ldCBhZGRyCSAqLwotKwotICNpbmNsdWRlICJubS1kYnVzLWludGVyZmFjZS5oIgotIAotIHR5cGVkZWYgc3RydWN0IFdpZmlEYXRhIFdpZmlEYXRhOwotLS0gCi0yLjEyLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMy1Eby1ub3QtY3JlYXRlLXNldHRpbmdzLXNldHRpbmdzLXByb3BlcnR5LWRvY3VtZW50YXRpLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMy1Eby1ub3QtY3JlYXRlLXNldHRpbmdzLXNldHRpbmdzLXByb3BlcnR5LWRvY3VtZW50YXRpLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNDg1ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAzLURvLW5vdC1jcmVhdGUtc2V0dGluZ3Mtc2V0dGluZ3MtcHJvcGVydHktZG9jdW1lbnRhdGkucGF0Y2gKQEAgLTAsMCArMSw3NyBAQAorRnJvbSA0ZjAwMGE0YTE5OTc1ZDZhYmE3MTQyN2U2OTNjZDFlZDA4MGFiZGE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IFRodSwgMjIgTWFyIDIwMTggMTE6MDg6MzAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gRG8gbm90IGNyZWF0ZSBzZXR0aW5ncyBzZXR0aW5ncy9wcm9wZXJ0eSBkb2N1bWVudGF0aW9uCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0l0IHdhcyB0cmllZCB0byBnZXQgdGhpcyB3b3JrIGJ1dCBnaSAvIEdpclJlcG9zaXRvcnkgY291bGQgbm90IGJlIGZvdW5kIGJ5CitweXRob24uIEFueXdheSBpdCBpcyBub3QgbmVjZXNzYXJ5IGZvciB1cyB0byBoYXZlIHRoZSBzZXR0aW5ncy9wcm9wZXJ0eSBkb2NzLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgTWFrZWZpbGUuYW0gIHwgMTggKystLS0tLS0tLS0tLS0tLS0tCisgY29uZmlndXJlLmFjIHwgIDQgLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KK2luZGV4IDYzOTkyMWQuLjMxNGE2MWQgMTAwNjQ0CistLS0gYS9NYWtlZmlsZS5hbQorKysrIGIvTWFrZWZpbGUuYW0KK0BAIC05NjEsOSArOTYxLDcgQEAgZW5kaWYKKyBpZiBIQVZFX0lOVFJPU1BFQ1RJT04KKyAKKyBsaWJubV9ub2luc3RfZGF0YSA9IFwKKy0JbGlibm0vbm0tcHJvcGVydHktZG9jcy54bWwgXAorIAlsaWJubS9ubS1zZXR0aW5ncy1kb2NzLW92ZXJyaWRlcy54bWwgXAorLQlsaWJubS9ubS1zZXR0aW5ncy1kb2NzLnhtbCBcCisgCWxpYm5tL25tLXNldHRpbmdzLWtleWZpbGUtZG9jcy54bWwgXAorIAlsaWJubS9ubS1zZXR0aW5ncy1pZmNmZy1yaC1kb2NzLnhtbAorIAorQEAgLTMzMTcsMjMgKzMzMTUsMTEgQEAgJChjbGllbnRzX2NvbW1vbl9saWJubWNfYmFzZV9sYV9PQkpFQ1RTKTogJChsaWJubV9jb3JlX2xpYl9oX3B1Yl9ta2VudW1zKQorICQoY2xpZW50c19jb21tb25fbGlibm1jX2Jhc2VfbGFfT0JKRUNUUyk6IGNsaWVudHMvY29tbW9uLy5kaXJzdGFtcAorIAorIGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jID0gY2xpZW50cy9jb21tb24vc2V0dGluZ3MtZG9jcy5jCistaWYgSEFWRV9JTlRST1NQRUNUSU9OCistJChjbGllbnRzX2NvbW1vbl9zZXR0aW5nc19kb2NfYyk6IGNsaWVudHMvY29tbW9uL3NldHRpbmdzLWRvY3MueHNsIGxpYm5tL25tLXByb3BlcnR5LWRvY3MueG1sIGNsaWVudHMvY29tbW9uLy5kaXJzdGFtcAorLQkkKEFNX1ZfR0VOKSAkKFhTTFRQUk9DKSAtLW91dHB1dCAkQCAkPCAkKHdvcmQgMiwkXikKKy1ESVNUQ0xFQU5GSUxFUyArPSAkKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKQorLWNoZWNrLWxvY2FsLXNldHRpbmdzLWRvY3M6ICQoY2xpZW50c19jb21tb25fc2V0dGluZ3NfZG9jX2MpCistCUBpZiB0ZXN0IC16ICIkJE5NVFNUX05PX0NIRUNLX1NFVFRJTkdTX0RPQ1MiIDsgdGhlbiAgXAorLQkJaWYgISBjbXAgLXMgIiQoc3JjZGlyKS8kKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKS5pbiIgIiQoYnVpbGRkaXIpLyQoY2xpZW50c19jb21tb25fc2V0dGluZ3NfZG9jX2MpIiA7IHRoZW4gXAorLQkJCWVjaG8gIlRoZSBnZW5lcmF0ZWQgZmlsZSBcIiQoYnVpbGRkaXIpLyQoY2xpZW50c19jb21tb25fc2V0dGluZ3NfZG9jX2MpXCIgZGlmZmVycyBmcm9tIHRoZSBzb3VyY2UgZmlsZSBcIiQoc3JjZGlyKS8kKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKS5pblwiLiBZb3UgcHJvYmFibHkgc2hvdWxkIGNvcHkgdGhlIGdlbmVyYXRlZCBmaWxlIG92ZXIgdG8gdGhlIHNvdXJjZSBmaWxlLiBZb3UgY2FuIHNraXAgdGhpcyB0ZXN0IGJ5IHNldHRpbmcgXCQkTk1UU1RfTk9fQ0hFQ0tfU0VUVElOR1NfRE9DUz15ZXMiOyBcCistCQkJZmFsc2U7IFwKKy0JCWZpO1wKKy0JZmkKKy1jaGVja19sb2NhbCArPSBjaGVjay1sb2NhbC1zZXR0aW5ncy1kb2NzCistZWxzZQorKworICQoY2xpZW50c19jb21tb25fc2V0dGluZ3NfZG9jX2MpOiAkKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKS5pbiBjbGllbnRzL2NvbW1vbi8uZGlyc3RhbXAKKyAJJChBTV9WX0dFTikgY3AgIiQoc3JjZGlyKS8kKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKS5pbiIgIiQoYnVpbGRkaXIpLyQoY2xpZW50c19jb21tb25fc2V0dGluZ3NfZG9jX2MpIgorIGNoZWNrLWxvY2FsLXNldHRpbmdzLWRvY3M6CistZW5kaWYKKysKKyBFWFRSQV9ESVNUICs9IFwKKyAJJChjbGllbnRzX2NvbW1vbl9zZXR0aW5nc19kb2NfYykgXAorIAkkKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKS5pbgorZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggYzlkM2U1Ni4uNDA3MjIyZSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtMTI4NiwxMCArMTI4Niw2IEBAIEdUS19ET0NfQ0hFQ0soMS4wKQorICMgY2hlY2sgaWYgd2UgY2FuIGJ1aWxkIHNldHRpbmcgcHJvcGVydHkgZG9jdW1lbnRhdGlvbgorIGJ1aWxkX2RvY3M9bm8KKyBpZiB0ZXN0IC1uICIkSU5UUk9TUEVDVElPTl9NQUtFRklMRSI7IHRoZW4KKy0JIyBJZiBnLWkgaXMgaW5zdGFsbGVkIHdlIGtub3cgd2UgaGF2ZSBweXRob24sIGJ1dCB3ZSBtaWdodCBub3QgaGF2ZSBweWdvYmplY3QKKy0JaWYgISAiJFBZVEhPTiIgLWMgJ2Zyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQgR09iamVjdCcgPiYgL2Rldi9udWxsOyB0aGVuCistCQlBQ19NU0dfRVJST1IoWyItLWVuYWJsZS1pbnRyb3NwZWN0aW9uIGFpbXMgdG8gYnVpbGQgdGhlIHNldHRpbmdzIGRvY3VtZW50YXRpb24uIFRoaXMgcmVxdWlyZXMgR09iamVjdCBpbnRyb3NwZWN0aW9uIGZvciBweXRob24gKHB5Z29iamVjdCldKQorLQlmaQorIAorIAlBQ19QQVRIX1BST0coUEVSTCwgcGVybCkKKyAJaWYgdGVzdCAteiAiJFBFUkwiOyB0aGVuCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDA0LURlZmluZS1taXNzaW5nLWZlYXR1cmVzLXRvLWNhdGVyLWZvci1tdXNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwNC1EZWZpbmUtbWlzc2luZy1mZWF0dXJlcy10by1jYXRlci1mb3ItbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjdjOWFlOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDA0LURlZmluZS1taXNzaW5nLWZlYXR1cmVzLXRvLWNhdGVyLWZvci1tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotRnJvbSAyMTUzMTA5ZTYwZTM2MmUwZDA5MjE1ZDUyOWJmMDAxNzZmMzFhM2U3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMzEgTWFyIDIwMTcgMTY6MDk6NDEgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCA0LzVdIERlZmluZSBtaXNzaW5nIGZlYXR1cmVzIHRvIGNhdGVyIGZvciBtdXNsCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvc3lzdGVtZC9zZC1hZGFwdC9ubS1zZC1hZGFwdC5oIHwgMiArLQotIHNyYy9zeXN0ZW1kL3NyYy9iYXNpYy9wYXJzZS11dGlsLmMgfCA1ICsrKystCi0gc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0ZGlvLXV0aWwuaCB8IDIgKysKLSBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvdXRpbC5oICAgICAgIHwgNSArKysrKwotIHNyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWV2ZW50LmggfCA0IC0tLS0KLSA1IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zZC1hZGFwdC9ubS1zZC1hZGFwdC5oIGIvc3JjL3N5c3RlbWQvc2QtYWRhcHQvbm0tc2QtYWRhcHQuaAotaW5kZXggY2YyN2MxYS4uNzJjMWI4OSAxMDA2NDQKLS0tLSBhL3NyYy9zeXN0ZW1kL3NkLWFkYXB0L25tLXNkLWFkYXB0LmgKLSsrKyBiL3NyYy9zeXN0ZW1kL3NkLWFkYXB0L25tLXNkLWFkYXB0LmgKLUBAIC0xMTksNyArMTE5LDcgQEAgR19TVE1UX1NUQVJUIHsgXAotICMgIGlmZGVmIEhBVkVfX19TRUNVUkVfR0VURU5WCi0gIyAgICBkZWZpbmUgc2VjdXJlX2dldGVudiBfX3NlY3VyZV9nZXRlbnYKLSAjICBlbHNlCi0tIyAgICBlcnJvciBuZWl0aGVyIHNlY3VyZV9nZXRlbnYgbm9yIF9fc2VjdXJlX2dldGVudiBpcyBhdmFpbGFibGUKLSsjICAgIGRlZmluZSBzZWN1cmVfZ2V0ZW52IGdldGVudgotICMgIGVuZGlmCi0gI2VuZGlmCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3BhcnNlLXV0aWwuYyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9wYXJzZS11dGlsLmMKLWluZGV4IDI3Mzg2NjMuLjljMjFlNWEgMTAwNjQ0Ci0tLS0gYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcGFyc2UtdXRpbC5jCi0rKysgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcGFyc2UtdXRpbC5jCi1AQCAtMjUsOCArMjUsMTEgQEAKLSAjaW5jbHVkZSA8c3RkaW8uaD4KLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotKyNpZmRlZiBfX0dMSUJDX18KLSAjaW5jbHVkZSA8eGxvY2FsZS5oPgotLQotKyNlbHNlCi0rI2luY2x1ZGUgPGxvY2FsZS5oPgotKyNlbmRpZgotICNpbmNsdWRlICJhbGxvYy11dGlsLmgiCi0gI2luY2x1ZGUgImV4dHJhY3Qtd29yZC5oIgotICNpbmNsdWRlICJtYWNyby5oIgotZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zdGRpby11dGlsLmggYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc3RkaW8tdXRpbC5oCi1pbmRleCBiZDExNDRiLi5jOTJlOTM1IDEwMDY0NAotLS0tIGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0ZGlvLXV0aWwuaAotKysrIGIvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0ZGlvLXV0aWwuaAotQEAgLTE5LDcgKzE5LDkgQEAKLSAgIGFsb25nIHdpdGggc3lzdGVtZDsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotICoqKi8KLSAKLSsjaWZkZWYgX19HTElCQ19fCi0gI2luY2x1ZGUgPHByaW50Zi5oPgotKyNlbmRpZgotICNpbmNsdWRlIDxzdGRhcmcuaD4KLSAjaW5jbHVkZSA8c3RkaW8uaD4KLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci1kaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3V0aWwuaCBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy91dGlsLmgKLWluZGV4IGJiMmZjMzEuLmZlMDc0YTUgMTAwNjQ0Ci0tLS0gYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvdXRpbC5oCi0rKysgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvdXRpbC5oCi1AQCAtNDYsNiArNDYsMTEgQEAKLSAjaW5jbHVkZSAibWlzc2luZy5oIgotICNpbmNsdWRlICJ0aW1lLXV0aWwuaCIKLSAKLSsjaWYgIWRlZmluZWQoX19HTElCQ19fKQotK3R5cGVkZWYgaW50ICgqX19jb21wYXJfZm5fdCkgKGNvbnN0IHZvaWQqLCBjb25zdCB2b2lkKik7Ci0rdHlwZWRlZiBfX2NvbXBhcl9mbl90IGNvbXBhcmlzb25fZm5fdDsKLSsjZW5kaWYKLSsKLSBzaXplX3QgcGFnZV9zaXplKHZvaWQpIF9wdXJlXzsKLSAjZGVmaW5lIFBBR0VfQUxJR04obCkgQUxJR05fVE8oKGwpLCBwYWdlX3NpemUoKSkKLSAKLWRpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1ldmVudC5oIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtZXZlbnQuaAotaW5kZXggY2MyNmI3ZC4uYzdlMDAwNCAxMDA2NDQKLS0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWV2ZW50LmgKLSsrKyBiL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWV2ZW50LmgKLUBAIC02OSwxMSArNjksNyBAQCB0eXBlZGVmIGludCAoKnNkX2V2ZW50X2hhbmRsZXJfdCkoc2RfZXZlbnRfc291cmNlICpzLCB2b2lkICp1c2VyZGF0YSk7Ci0gdHlwZWRlZiBpbnQgKCpzZF9ldmVudF9pb19oYW5kbGVyX3QpKHNkX2V2ZW50X3NvdXJjZSAqcywgaW50IGZkLCB1aW50MzJfdCByZXZlbnRzLCB2b2lkICp1c2VyZGF0YSk7Ci0gdHlwZWRlZiBpbnQgKCpzZF9ldmVudF90aW1lX2hhbmRsZXJfdCkoc2RfZXZlbnRfc291cmNlICpzLCB1aW50NjRfdCB1c2VjLCB2b2lkICp1c2VyZGF0YSk7Ci0gdHlwZWRlZiBpbnQgKCpzZF9ldmVudF9zaWduYWxfaGFuZGxlcl90KShzZF9ldmVudF9zb3VyY2UgKnMsIGNvbnN0IHN0cnVjdCBzaWduYWxmZF9zaWdpbmZvICpzaSwgdm9pZCAqdXNlcmRhdGEpOwotLSNpZiBkZWZpbmVkIF9fVVNFX1BPU0lYMTk5MzA5IHx8IGRlZmluZWQgX19VU0VfWE9QRU5fRVhURU5ERUQKLSB0eXBlZGVmIGludCAoKnNkX2V2ZW50X2NoaWxkX2hhbmRsZXJfdCkoc2RfZXZlbnRfc291cmNlICpzLCBjb25zdCBzaWdpbmZvX3QgKnNpLCB2b2lkICp1c2VyZGF0YSk7Ci0tI2Vsc2UKLS10eXBlZGVmIHZvaWQqIHNkX2V2ZW50X2NoaWxkX2hhbmRsZXJfdDsKLS0jZW5kaWYKLSAKLSBpbnQgc2RfZXZlbnRfZGVmYXVsdChzZF9ldmVudCAqKmUpOwotIAotLS0gCi0yLjEyLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwNS1zZC1sbGRwLmgtUmVtb3ZlLW5ldC1ldGhlcm5ldC5oLXNlZW1zLXRvLWJlLW92ZXItc3BlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwNS1zZC1sbGRwLmgtUmVtb3ZlLW5ldC1ldGhlcm5ldC5oLXNlZW1zLXRvLWJlLW92ZXItc3BlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNGEwNGM3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDUtc2QtbGxkcC5oLVJlbW92ZS1uZXQtZXRoZXJuZXQuaC1zZWVtcy10by1iZS1vdmVyLXNwZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLUZyb20gOWU5ZTU4MTQ0NTZlYzIzYjlmYzY2OWQzNDJiZjlkOGY3ZWU0OWZjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDMxIE1hciAyMDE3IDE2OjQ4OjAwIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggNS81XSBzZC1sbGRwLmg6IFJlbW92ZSBuZXQvZXRoZXJuZXQuaCBzZWVtcyB0byBiZSBvdmVyCi0gc3BlY2lmaWVkCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1sbGRwLmggfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLUluZGV4OiBOZXR3b3JrTWFuYWdlci0xLjQuMi9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1sbGRwLmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBOZXR3b3JrTWFuYWdlci0xLjQuMi5vcmlnL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWxsZHAuaAotKysrIE5ldHdvcmtNYW5hZ2VyLTEuNC4yL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWxsZHAuaAotQEAgLTIyLDcgKzIyLDcgQEAKLSAqKiovCi0gCi0gI2luY2x1ZGUgPGludHR5cGVzLmg+Ci0tI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgotKy8vI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSAKLSAjaW5jbHVkZSAic2QtZXZlbnQuaCIKLUluZGV4OiBOZXR3b3JrTWFuYWdlci0xLjQuMi9zcmMvc3lzdGVtZC9zcmMvbGlic3lzdGVtZC1uZXR3b3JrL3NkLWxsZHAuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIE5ldHdvcmtNYW5hZ2VyLTEuNC4yLm9yaWcvc3JjL3N5c3RlbWQvc3JjL2xpYnN5c3RlbWQtbmV0d29yay9zZC1sbGRwLmMKLSsrKyBOZXR3b3JrTWFuYWdlci0xLjQuMi9zcmMvc3lzdGVtZC9zcmMvbGlic3lzdGVtZC1uZXR3b3JrL3NkLWxsZHAuYwotQEAgLTIxLDYgKzIxLDcgQEAKLSAjaW5jbHVkZSAibm0tc2QtYWRhcHQuaCIKLSAKLSAjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0rI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgotIAotICNpbmNsdWRlICJzZC1sbGRwLmgiCi0gCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDEtbXVzbC1iYXNpYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwMS1tdXNsLWJhc2ljLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkMjA4ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDEtbXVzbC1iYXNpYy5wYXRjaApAQCAtMCwwICsxLDUzIEBACitGcm9tIGU5MmRlNzQwOWEzZTEwN2Y5MGQxMDhhOWM1ZDQ5YmQwNDE4Mjk2ZGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogVGh1LCAyMiBNYXIgMjAxOCAxNzo1NDoxMCArMDEwMAorU3ViamVjdDogW1BBVENIIDEvNF0gVXN1YWwgZml4IGZvciBtdXNsIGxpYmMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1N0b2xlbiBmcm9tIFsxXSBhbmQgcHJldHR5ZmllZCBzbGlnaHRseQorCitbMV0gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWRsaW51eC92b2lkLXBhY2thZ2VzL3RyZWUvbWFzdGVyL3NyY3BrZ3MvTmV0d29ya01hbmFnZXIvcGF0Y2hlcworCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0ZGlvLXV0aWwuaCB8IDIgKysKKyBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvdXRpbC5oICAgICAgIHwgNSArKysrKworIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc3RkaW8tdXRpbC5oIGIvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0ZGlvLXV0aWwuaAoraW5kZXggYmQxMTQ0Yi4uOWVhZmFjYiAxMDA2NDQKKy0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zdGRpby11dGlsLmgKKysrKyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zdGRpby11dGlsLmgKK0BAIC0xOSw3ICsxOSw5IEBACisgICBhbG9uZyB3aXRoIHN5c3RlbWQ7IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqKiovCisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxwcmludGYuaD4KKysjZW5kaWYKKyAjaW5jbHVkZSA8c3RkYXJnLmg+CisgI2luY2x1ZGUgPHN0ZGlvLmg+CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy91dGlsLmggYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvdXRpbC5oCitpbmRleCBiMzFkZmQxLi45YjcwMzJjIDEwMDY0NAorLS0tIGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3V0aWwuaAorKysrIGIvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3V0aWwuaAorQEAgLTQ2LDYgKzQ2LDExIEBACisgI2luY2x1ZGUgIm1pc3NpbmcuaCIKKyAjaW5jbHVkZSAidGltZS11dGlsLmgiCisgCisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKyt0eXBlZGVmIGludCAoKl9fY29tcGFyX2ZuX3QpIChjb25zdCB2b2lkKiwgY29uc3Qgdm9pZCopOworK3R5cGVkZWYgX19jb21wYXJfZm5fdCBjb21wYXJpc29uX2ZuX3Q7CisrI2VuZGlmCisrCisgc2l6ZV90IHBhZ2Vfc2l6ZSh2b2lkKSBfcHVyZV87CisgI2RlZmluZSBQQUdFX0FMSUdOKGwpIEFMSUdOX1RPKChsKSwgcGFnZV9zaXplKCkpCisgCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDItbXVzbC1kbG9wZW4tY29uZmlndXJlLWFjLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDAyLW11c2wtZGxvcGVuLWNvbmZpZ3VyZS1hYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDhjY2NiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDAyLW11c2wtZGxvcGVuLWNvbmZpZ3VyZS1hYy5wYXRjaApAQCAtMCwwICsxLDM1IEBACitGcm9tIDU3MjM5ZmRhNTZiNjhhOGYzZTQxM2Y3YjZhZjUyOTBiYTBkODY2MzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogVGh1LCAyMiBNYXIgMjAxOCAxODoxODowNiArMDEwMAorU3ViamVjdDogW1BBVENIIDIvNF0gbXVzbDogZGxvcGVuIGlzIGluY2x1ZGVkIHNvIExEX0xJQlM9IiIgaW5zdGVhZCBvZgorIExEX0xJQlM9Im5vbmUgcmVxdWlyZWQiCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTdG9sZW4gZnJvbSBbMV0gYW5kIHByZXR0eWZpZWQgc2xpZ2h0bHkKKworWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkbGludXgvdm9pZC1wYWNrYWdlcy90cmVlL21hc3Rlci9zcmNwa2dzL05ldHdvcmtNYW5hZ2VyL3BhdGNoZXMKKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKy0tLQorIGNvbmZpZ3VyZS5hYyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA0ODdhMjY2Li45NmFlNGY3IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0zMDUsNiArMzA1LDcgQEAgZG5sCisgZG5sIENoZWNrcyBmb3IgbGliZGwgLSBvbiBjZXJ0YWluIHBsYXRmb3JtcyBpdHMgcGFydCBvZiBsaWJjCisgZG5sCisgQUNfU0VBUkNIX0xJQlMoW2Rsb3Blbl0sIFtkbCBkbGRdLCBbXSwgW2FjX2N2X3NlYXJjaF9kbG9wZW49XSkKKytBU19JRihbdGVzdCAiJGFjX2N2X3NlYXJjaF9kbG9wZW4iID0gIm5vbmUgcmVxdWlyZWQiXSxbYWNfY3Zfc2VhcmNoX2Rsb3Blbj0iIl0pCisgQUNfU1VCU1QoW0RMX0xJQlNdLCAiJGFjX2N2X3NlYXJjaF9kbG9wZW4iKQorIAorIFBLR19DSEVDS19NT0RVTEVTKEdMSUIsIFtnaW8tdW5peC0yLjAgPj0gMi4zNy42IGdtb2R1bGUtMi4wXSwKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwMy1tdXNsLW5ldHdvcmstc3VwcG9ydC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwMy1tdXNsLW5ldHdvcmstc3VwcG9ydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGQxN2I2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDAzLW11c2wtbmV0d29yay1zdXBwb3J0LnBhdGNoCkBAIC0wLDAgKzEsNzIgQEAKK0Zyb20gNzE0YjQ3MzFhMjM4NjUzZTljN2Q4ODVjMGRlZTEwNjc3YjBhNGRmMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBUaHUsIDIyIE1hciAyMDE4IDE4OjI0OjA3ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMy80XSBtdXNsOiBuZXR3b3JrIHN1cHBvcnQKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1N0b2xlbiBmcm9tIFsxXSBhbmQgcHJldHR5ZmllZCBzbGlnaHRseQorCitbMV0gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWRsaW51eC92b2lkLXBhY2thZ2VzL3RyZWUvbWFzdGVyL3NyY3BrZ3MvTmV0d29ya01hbmFnZXIvcGF0Y2hlcworCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgbGlibm0tY29yZS9ubS11dGlscy5oICAgICAgICAgICAgICAgfCA0ICsrKysKKyBzcmMvcGxhdGZvcm0vd2lmaS93aWZpLXV0aWxzLmggICAgICB8IDQgKysrKworIHNyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zb2NrZXQtdXRpbC5oIHwgNSArKysrKworIDMgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvbGlibm0tY29yZS9ubS11dGlscy5oIGIvbGlibm0tY29yZS9ubS11dGlscy5oCitpbmRleCBkZjkyODRiLi4yYmNmNGI4IDEwMDY0NAorLS0tIGEvbGlibm0tY29yZS9ubS11dGlscy5oCisrKysgYi9saWJubS1jb3JlL25tLXV0aWxzLmgKK0BAIC0zMCw3ICszMCwxMSBAQAorICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisgCisgLyogRm9yIEVUSF9BTEVOIGFuZCBJTkZJTklCQU5EX0FMRU4gKi8KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPGxpbnV4L2lmX2V0aGVyLmg+CisrI2Vsc2UKKysjZGVmaW5lIEVUSF9BTEVOCTYJCS8qIE9jdGV0cyBpbiBvbmUgZXRoZXJuZXQgYWRkcgkgKi8KKysjZW5kaWYKKyAjaW5jbHVkZSA8bGludXgvaWZfaW5maW5pYmFuZC5oPgorIAorICNpbmNsdWRlICJubS1jb3JlLWVudW0tdHlwZXMuaCIKK2RpZmYgLS1naXQgYS9zcmMvcGxhdGZvcm0vd2lmaS93aWZpLXV0aWxzLmggYi9zcmMvcGxhdGZvcm0vd2lmaS93aWZpLXV0aWxzLmgKK2luZGV4IDcwNTcxN2IuLmRhM2VkYzQgMTAwNjQ0CistLS0gYS9zcmMvcGxhdGZvcm0vd2lmaS93aWZpLXV0aWxzLmgKKysrKyBiL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaAorQEAgLTIyLDcgKzIyLDExIEBACisgI2lmbmRlZiBfX1dJRklfVVRJTFNfSF9fCisgI2RlZmluZSBfX1dJRklfVVRJTFNfSF9fCisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KKysjZWxzZSAvKiBtdXNsIGxpYmMgKi8KKysjZGVmaW5lIEVUSF9BTEVOCTYJCS8qIE9jdGV0cyBpbiBvbmUgZXRoZXJuZXQgYWRkcgkgKi8KKysjZW5kaWYKKyAKKyAjaW5jbHVkZSAibm0tZGJ1cy1pbnRlcmZhY2UuaCIKKyAKK2RpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc29ja2V0LXV0aWwuaCBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zb2NrZXQtdXRpbC5oCitpbmRleCBkN2UyZDg1Li5kMTA5Yzg0IDEwMDY0NAorLS0tIGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3NvY2tldC11dGlsLmgKKysrKyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zb2NrZXQtdXRpbC5oCitAQCAtMjksNiArMjksMTEgQEAKKyAjaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgorICNpbmNsdWRlIDxsaW51eC9pZl9pbmZpbmliYW5kLmg+CisgI2luY2x1ZGUgPGxpbnV4L2lmX3BhY2tldC5oPgorKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisrLyogU0lPQ0dTVEFNUE5TIGZyb20gbGludXgvYXNtLWdlbmVyaWMuaAorKyAqIGZvciBzcmMvc3lzdGVtZC9zcmMvbGlic3lzdGVtZC1uZXR3b3JrL3NkLWxsZHAuYyAqLworKyNpbmNsdWRlIDxsaW51eC9zb2NraW9zLmg+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgIm1hY3JvLmgiCisgI2luY2x1ZGUgIm1pc3NpbmcuaCIKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwNC1tdXNsLXByb2Nlc3MtdXRpbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwNC1tdXNsLXByb2Nlc3MtdXRpbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzU1Y2U4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDA0LW11c2wtcHJvY2Vzcy11dGlsLnBhdGNoCkBAIC0wLDAgKzEsNjIgQEAKK0Zyb20gZDUxM2M4YmZjOTgyZGJkOTc2NjE3MTc4YjA0MGM1MTJjOTU3MTBiNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBUaHUsIDIyIE1hciAyMDE4IDE4OjI5OjAwICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggNC80XSBtdXNsOiBwcm9jZXNzLXV0aWwKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1N0b2xlbiBmcm9tIFsxXSBhbmQgcHJldHR5ZmllZCBzbGlnaHRseQorCitbMV0gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWRsaW51eC92b2lkLXBhY2thZ2VzL3RyZWUvbWFzdGVyL3NyY3BrZ3MvTmV0d29ya01hbmFnZXIvcGF0Y2hlcworCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3Byb2Nlc3MtdXRpbC5jIHwgOSArKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcHJvY2Vzcy11dGlsLmMgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcHJvY2Vzcy11dGlsLmMKK2luZGV4IDI3MjAzMGQuLjQ4NWYxZGIgMTAwNjQ0CistLS0gYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcHJvY2Vzcy11dGlsLmMKKysrKyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9wcm9jZXNzLXV0aWwuYworQEAgLTM2LDYgKzM2LDkgQEAKKyAjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyAjaW5jbHVkZSA8c3lzbG9nLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorKyNpZm5kZWYgX19HTElCQ19fCisrI2luY2x1ZGUgPHB0aHJlYWQuaD4KKysjZW5kaWYKKyAjaWYgMCAvKiBOTV9JR05PUkVEICovCisgI2lmIEhBVkVfVkFMR1JJTkRfVkFMR1JJTkRfSAorICNpbmNsdWRlIDx2YWxncmluZC92YWxncmluZC5oPgorQEAgLTEwMTUsMTEgKzEwMTgsMTMgQEAgc3RhdGljIHZvaWQgcmVzZXRfY2FjaGVkX3BpZCh2b2lkKSB7CisgICAgICAgICBjYWNoZWRfcGlkID0gQ0FDSEVEX1BJRF9VTlNFVDsKKyB9CisgCisrI2lmZGVmIF9fR0xJQkNfXworIC8qIFdlIHVzZSBnbGliYyBfX3JlZ2lzdGVyX2F0Zm9yaygpICsgX19kc29faGFuZGxlIGRpcmVjdGx5IGhlcmUsIGFzIHRoZXkgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgZ2xpYmMKKyAgKiBoZWFkZXJzLiBfX3JlZ2lzdGVyX2F0Zm9yaygpIGlzIG1vc3RseSBlcXVpdmFsZW50IHRvIHB0aHJlYWRfYXRmb3JrKCksIGJ1dCBkb2Vzbid0IHJlcXVpcmUgdXMgdG8gbGluayBhZ2FpbnN0CisgICogbGlicHRocmVhZCwgYXMgaXQgaXMgcGFydCBvZiBnbGliYyBhbnl3YXkuICovCisgZXh0ZXJuIGludCBfX3JlZ2lzdGVyX2F0Zm9yayh2b2lkICgqcHJlcGFyZSkgKHZvaWQpLCB2b2lkICgqcGFyZW50KSAodm9pZCksIHZvaWQgKCpjaGlsZCkgKHZvaWQpLCB2b2lkICogX19kc29faGFuZGxlKTsKKyBleHRlcm4gdm9pZCogX19kc29faGFuZGxlIF9fYXR0cmlidXRlX18gKChfX3dlYWtfXykpOworKyNlbmRpZgorIAorIHBpZF90IGdldHBpZF9jYWNoZWQodm9pZCkgeworICAgICAgICAgcGlkX3QgY3VycmVudF92YWx1ZTsKK0BAIC0xMDQyLDcgKzEwNDcsMTEgQEAgcGlkX3QgZ2V0cGlkX2NhY2hlZCh2b2lkKSB7CisgCisgICAgICAgICAgICAgICAgIG5ld19waWQgPSBnZXRwaWQoKTsKKyAKKysjaWZkZWYgX19HTElCQ19fCisgICAgICAgICAgICAgICAgIGlmIChfX3JlZ2lzdGVyX2F0Zm9yayhOVUxMLCBOVUxMLCByZXNldF9jYWNoZWRfcGlkLCBfX2Rzb19oYW5kbGUpICE9IDApIHsKKysjZWxzZQorKyAgICAgICAgICAgICAgICBpZiAocHRocmVhZF9hdGZvcmsoTlVMTCwgTlVMTCwgcmVzZXRfY2FjaGVkX3BpZCkgIT0gMCkgeworKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9PTT8gTGV0J3MgdHJ5IGFnYWluIGxhdGVyICovCisgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVkX3BpZCA9IENBQ0hFRF9QSURfVU5TRVQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld19waWQ7CistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDUtbXVzbC1hdm9pZC1mdXJ0aGVyLWNvbmZsaWN0cy1ieS1pbmNsdWRpbmctbmV0LWV0aGVybi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwNS1tdXNsLWF2b2lkLWZ1cnRoZXItY29uZmxpY3RzLWJ5LWluY2x1ZGluZy1uZXQtZXRoZXJuLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MmZlNGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDUtbXVzbC1hdm9pZC1mdXJ0aGVyLWNvbmZsaWN0cy1ieS1pbmNsdWRpbmctbmV0LWV0aGVybi5wYXRjaApAQCAtMCwwICsxLDc3IEBACitGcm9tIGIzYjRmZTM1MDE4Yzk4YWQxNzY3MTliMmQ5ZmZiODY3OTc0ZmM3YzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogTW9uLCAxNiBBcHIgMjAxOCAxNDo0NTo0NCArMDIwMAorU3ViamVjdDogW1BBVENIXSBtdXNsOiBhdm9pZCBmdXJ0aGVyIGNvbmZsaWN0cyBieSBpbmNsdWRpbmcgbmV0L2V0aGVybmV0LmgKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CistLS0KKyBzcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwLWNsaWVudC5oICB8IDIgKysKKyBzcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwLWxlYXNlLmggICB8IDIgKysKKyBzcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwNi1jbGllbnQuaCB8IDIgKysKKyBzcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1pcHY0bGwuaCAgICAgICB8IDIgKysKKyA0IGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtZGhjcC1jbGllbnQuaCBiL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWRoY3AtY2xpZW50LmgKK2luZGV4IDVlNDZkOGQuLjE4YTYxM2YgMTAwNjQ0CistLS0gYS9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwLWNsaWVudC5oCisrKysgYi9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwLWNsaWVudC5oCitAQCAtMjEsNyArMjEsOSBAQAorICoqKi8KKyAKKyAjaW5jbHVkZSA8aW50dHlwZXMuaD4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgorKyNlbmRpZgorICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorIAorZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWRoY3AtbGVhc2UuaCBiL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWRoY3AtbGVhc2UuaAoraW5kZXggN2FiOTljYy4uODVhY2RmMiAxMDA2NDQKKy0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWRoY3AtbGVhc2UuaAorKysrIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtZGhjcC1sZWFzZS5oCitAQCAtMjIsNyArMjIsOSBAQAorICoqKi8KKyAKKyAjaW5jbHVkZSA8aW50dHlwZXMuaD4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgorKyNlbmRpZgorICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorIAorZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWRoY3A2LWNsaWVudC5oIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtZGhjcDYtY2xpZW50LmgKK2luZGV4IDc4MTlmMGQuLjM1ZjMwZWUgMTAwNjQ0CistLS0gYS9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwNi1jbGllbnQuaAorKysrIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtZGhjcDYtY2xpZW50LmgKK0BAIC0yMSw3ICsyMSw5IEBACisgKioqLworIAorICNpbmNsdWRlIDxpbnR0eXBlcy5oPgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8bmV0L2V0aGVybmV0Lmg+CisrI2VuZGlmCisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorIAorICNpbmNsdWRlICJzZC1kaGNwNi1sZWFzZS5oIgorZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWlwdjRsbC5oIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtaXB2NGxsLmgKK2luZGV4IDViYTkyMDguLmM5MGVjYTYgMTAwNjQ0CistLS0gYS9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1pcHY0bGwuaAorKysrIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtaXB2NGxsLmgKK0BAIC0yMCw3ICsyMCw5IEBACisgICBhbG9uZyB3aXRoIHN5c3RlbWQ7IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqKiovCisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KKysjZW5kaWYKKyAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorIAorICNpbmNsdWRlICJzZC1ldmVudC5oIgorLS0gCisyLjE0LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDA2LUFkZC1hLXN0cm5kdXBhLXJlcGxhY2VtZW50LWZvci1tdXNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDA2LUFkZC1hLXN0cm5kdXBhLXJlcGxhY2VtZW50LWZvci1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlZDdlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDYtQWRkLWEtc3RybmR1cGEtcmVwbGFjZW1lbnQtZm9yLW11c2wucGF0Y2gKQEAgLTAsMCArMSw0NyBAQAorRnJvbSA2ZGI2NTk2ZTQ1MDA2MjYwMWQxOGIyYWU4MTJhNGE1OGQyZTAzYTUzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IE1vbiwgMTYgQXByIDIwMTggMTU6MDc6MjAgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIGEgc3RybmR1cGEgcmVwbGFjZW1lbnQgZm9yIG11c2wKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CistLS0KKyBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvaW4tYWRkci11dGlsLmMgfCAxICsKKyBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvc3RyaW5nLXV0aWwuaCAgfCA1ICsrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9pbi1hZGRyLXV0aWwuYyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9pbi1hZGRyLXV0aWwuYworaW5kZXggMmEwMmQ5MC4uYTU3YzM2MCAxMDA2NDQKKy0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9pbi1hZGRyLXV0aWwuYworKysrIGIvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL2luLWFkZHItdXRpbC5jCitAQCAtMzAsNiArMzAsNyBAQAorICNpbmNsdWRlICJpbi1hZGRyLXV0aWwuaCIKKyAjaW5jbHVkZSAibWFjcm8uaCIKKyAjaW5jbHVkZSAicGFyc2UtdXRpbC5oIgorKyNpbmNsdWRlICJzdHJpbmctdXRpbC5oIgorICNpbmNsdWRlICJ1dGlsLmgiCisgCisgYm9vbCBpbjRfYWRkcl9pc19udWxsKGNvbnN0IHN0cnVjdCBpbl9hZGRyICphKSB7CitkaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0cmluZy11dGlsLmggYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc3RyaW5nLXV0aWwuaAoraW5kZXggNGM5NGIxOC4uYTZkYzQ0NiAxMDA2NDQKKy0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zdHJpbmctdXRpbC5oCisrKysgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc3RyaW5nLXV0aWwuaAorQEAgLTQ0LDYgKzQ0LDExIEBACisgI2RlZmluZSBzdHJjYXNlZXEoYSxiKSAoc3RyY2FzZWNtcCgoYSksKGIpKSA9PSAwKQorICNkZWZpbmUgc3RybmNhc2VlcShhLCBiLCBuKSAoc3RybmNhc2VjbXAoKGEpLCAoYiksIChuKSkgPT0gMCkKKyAKKysvKiBtdXNsIGRvZXMgbm90IGtub3cgc3RybmR1cGEgKi8KKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyNkZWZpbmUgc3RybmR1cGEoeCxzKSBzdHJuY3B5KGFsbG9jYShzdHJsZW4oeCkrMSkseCxzKQorKyNlbmRpZgorKworIGludCBzdHJjbXBfcHRyKGNvbnN0IGNoYXIgKmEsIGNvbnN0IGNoYXIgKmIpIF9wdXJlXzsKKyAKKyBzdGF0aWMgaW5saW5lIGJvb2wgc3RyZXFfcHRyKGNvbnN0IGNoYXIgKmEsIGNvbnN0IGNoYXIgKmIpIHsKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyXzEuMTAuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyXzEuMTAuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWM1ZGJkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXJfMS4xMC42LmJiCkBAIC0wLDAgKzEsMTQzIEBACitTVU1NQVJZID0gIk5ldHdvcmtNYW5hZ2VyIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9OZXR3b3JrTWFuYWdlciIKK1NFQ1RJT04gPSAibmV0L21pc2MiCisKK0xJQ0VOU0UgPSAiR1BMdjIrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9Y2JiZmZkNTY4MjI3YWRhNTA2NjQwZmU5NTBhNDgyM2IgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vbGlibm0tdXRpbC9DT1BZSU5HO21kNT0xYzRmYTc2NWQ2ZWIzY2QyZmJkODQzNDRhMWI4MTZjZCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9kb2NzL2FwaS9odG1sL2xpY2Vuc2UuaHRtbDttZDU9NzdiOWUzNjI2OTBjMTQ5ZGExOTZhZWZlNzcxMmRiMzAgXAorIgorCitERVBFTkRTID0gIiBcCisgICAgaW50bHRvb2wtbmF0aXZlIFwKKyAgICBsaWJ4c2x0LW5hdGl2ZSBcCisgICAgbGlibmwgXAorICAgIGRidXMgXAorICAgIGRidXMtZ2xpYiBcCisgICAgZGJ1cy1nbGliLW5hdGl2ZSBcCisgICAgbGliZ3VkZXYgXAorICAgIHV0aWwtbGludXggXAorICAgIGxpYm5kcCBcCisgICAgbGlibmV3dCBcCisgICAgcG9sa2l0IFwKKyAgICBqYW5zc29uIFwKKyAgICBjdXJsIFwKKyIKKworaW5oZXJpdCBnbm9tZWJhc2UgZ2V0dGV4dCBzeXN0ZW1kIGJsdWV0b290aCBiYXNoLWNvbXBsZXRpb24gdmFsYSBnb2JqZWN0LWludHJvc3BlY3Rpb24gZ3RrLWRvYworCitTUkNfVVJJID0gIiBcCisgICAgJHtHTk9NRV9NSVJST1J9L05ldHdvcmtNYW5hZ2VyLyR7QGdub21lX3ZlcmRpcigiJHtQVn0iKX0vTmV0d29ya01hbmFnZXItJHtQVn0udGFyLnh6IFwKKyAgICBmaWxlOi8vMDAwMS1zZC1sbGRwLmgtUmVtb3ZlLW5ldC1ldGhlcm5ldC5oLXNlZW1zLXRvLWJlLW92ZXItc3BlLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMi1GaXhlZC1jb25maWd1cmUuYWMtRml4LXBrZ2NvbmZpZy1zeXNyb290LWxvY2F0aW9ucy5wYXRjaCBcCisgICAgZmlsZTovLzAwMDMtRG8tbm90LWNyZWF0ZS1zZXR0aW5ncy1zZXR0aW5ncy1wcm9wZXJ0eS1kb2N1bWVudGF0aS5wYXRjaCBcCisgICAgZmlsZTovL211c2wvMDAwMS1tdXNsLWJhc2ljLnBhdGNoIFwKKyAgICBmaWxlOi8vbXVzbC8wMDAyLW11c2wtZGxvcGVuLWNvbmZpZ3VyZS1hYy5wYXRjaCBcCisgICAgZmlsZTovL211c2wvMDAwMy1tdXNsLW5ldHdvcmstc3VwcG9ydC5wYXRjaCBcCisgICAgZmlsZTovL211c2wvMDAwNC1tdXNsLXByb2Nlc3MtdXRpbC5wYXRjaCBcCisgICAgZmlsZTovL211c2wvMDAwNS1tdXNsLWF2b2lkLWZ1cnRoZXItY29uZmxpY3RzLWJ5LWluY2x1ZGluZy1uZXQtZXRoZXJuLnBhdGNoIFwKKyAgICBmaWxlOi8vbXVzbC8wMDA2LUFkZC1hLXN0cm5kdXBhLXJlcGxhY2VtZW50LWZvci1tdXNsLnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkZTNjNzE0N2E2OTNkYTZmODBlYjIyZjEyNjA4NmExNCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2YWYwYjFlODU2YTM3MjVmODg3OTFmNTVjNGZiYjA0MTA1ZGMwYjIwZGJmMTgyYWFlYzhhYWQxNjQ4MWZhYzc2IgorCitTID0gIiR7V09SS0RJUn0vTmV0d29ya01hbmFnZXItJHtQVn0iCisKK0VYVFJBX09FQ09ORiA9ICIgXAorICAgIC0tZGlzYWJsZS1pZmNmZy1yaCBcCisgICAgLS1kaXNhYmxlLWlmbmV0IFwKKyAgICAtLWRpc2FibGUtaWZjZmctc3VzZSBcCisgICAgLS1kaXNhYmxlLW1vcmUtd2FybmluZ3MgXAorICAgIC0td2l0aC1pcHRhYmxlcz0ke3NiaW5kaXJ9L2lwdGFibGVzIFwKKyAgICAtLXdpdGgtdGVzdHMgXAorICAgIC0td2l0aC1ubXR1aT15ZXMgXAorIgorCisjIGdvYmplY3QtaW50cm9zcGVjdGlvbiByZWxhdGVkCitHSV9EQVRBX0VOQUJMRURfbGliYy1tdXNsID0gIkZhbHNlIgorCisjIHN0b2xlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9zcmNwa2dzL05ldHdvcmtNYW5hZ2VyL3RlbXBsYXRlCitDRkxBR1NfbGliYy1tdXNsX2FwcGVuZCA9ICIgXAorICAgIC1ESEFWRV9TRUNVUkVfR0VURU5WIC1Ec2VjdXJlX2dldGVudj1nZXRlbnYgXAorICAgIC1EX19VU0VfUE9TSVgxOTkzMDkgLURSVExEX0RFRVBCSU5EPTAgXAorIgorCitkb19jb21waWxlX3ByZXBlbmQoKSB7CisgICAgZXhwb3J0IEdJUl9FWFRSQV9MSUJTX1BBVEg9IiR7Qn0vbGlibm0vLmxpYnM6JHtCfS9saWJubS1nbGliLy5saWJzOiR7Qn0vbGlibm0tdXRpbC8ubGlicyIKK30KKworUEFDS0FHRUNPTkZJRyA/Pz0gIm5zcyBpZnVwZG93biBuZXRjb25maWcgZGhjbGllbnQgZG5zbWFzcSBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3N5c3RlbWQnLCBiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3gxMScsICdjb25zb2xla2l0JywgJycsIGQpLCBkKX0gXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnYmx1ZXRvb3RoJywgJyR7QkxVRVp9JywgJycsIGQpfSBcCisgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnd2lmaScsIGQpfSBcCisiCitQQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIiBcCisgICAgLS13aXRoLXN5c3RlbWRzeXN0ZW11bml0ZGlyPSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0gLS13aXRoLXNlc3Npb24tdHJhY2tpbmc9c3lzdGVtZCAtLWVuYWJsZS1wb2xraXQsIFwKKyAgICAtLXdpdGhvdXQtc3lzdGVtZHN5c3RlbXVuaXRkaXIsIFwKKyAgICBwb2xraXQgXAorIgorUEFDS0FHRUNPTkZJR1tibHVlejVdID0gIi0tZW5hYmxlLWJsdWV6NS1kdW4sLS1kaXNhYmxlLWJsdWV6NS1kdW4sYmx1ZXo1IgorIyBjb25zb2xla2l0IGlzIG5vdCBwaWNrZWQgYnkgc2hsaWJzLCBzbyBhZGQgaXQgdG8gUkRFUEVORFMgdG9vCitQQUNLQUdFQ09ORklHW2NvbnNvbGVraXRdID0gIi0td2l0aC1zZXNzaW9uLXRyYWNraW5nPWNvbnNvbGVraXQsLGNvbnNvbGVraXQsY29uc29sZWtpdCIKK1BBQ0tBR0VDT05GSUdbbW9kZW1tYW5hZ2VyXSA9ICItLXdpdGgtbW9kZW0tbWFuYWdlci0xPXllcywtLXdpdGgtbW9kZW0tbWFuYWdlci0xPW5vLG1vZGVtbWFuYWdlciIKK1BBQ0tBR0VDT05GSUdbcHBwXSA9ICItLWVuYWJsZS1wcHAsLS1kaXNhYmxlLXBwcCxwcHAscHBwIgorIyBVc2UgZnVsbCBmZWF0dXJlZCBkaGNwIGNsaWVudCBpbnN0ZWFkIG9mIGludGVybmFsIG9uZQorUEFDS0FHRUNPTkZJR1tkaGNsaWVudF0gPSAiLS13aXRoLWRoY2xpZW50PSR7YmFzZV9zYmluZGlyfS9kaGNsaWVudCwsLGRoY3AtY2xpZW50IgorUEFDS0FHRUNPTkZJR1tkbnNtYXNxXSA9ICItLXdpdGgtZG5zbWFzcT0ke2JpbmRpcn0vZG5zbWFzcSIKK1BBQ0tBR0VDT05GSUdbbnNzXSA9ICItLXdpdGgtY3J5cHRvPW5zcywsbnNzIgorUEFDS0FHRUNPTkZJR1tnbnV0bHNdID0gIi0td2l0aC1jcnlwdG89Z251dGxzLCxnbnV0bHMiCitQQUNLQUdFQ09ORklHW3dpZmldID0gIi0tZW5hYmxlLXdpZmk9eWVzLC0tZW5hYmxlLXdpZmk9bm8sd2lyZWxlc3MtdG9vbHMsd3BhLXN1cHBsaWNhbnQgd2lyZWxlc3MtdG9vbHMiCitQQUNLQUdFQ09ORklHW2lmdXBkb3duXSA9ICItLWVuYWJsZS1pZnVwZG93biwtLWRpc2FibGUtaWZ1cGRvd24iCitQQUNLQUdFQ09ORklHW25ldGNvbmZpZ10gPSAiLS13aXRoLW5ldGNvbmZpZz15ZXMsLS13aXRoLW5ldGNvbmZpZz1ubyIKK1BBQ0tBR0VDT05GSUdbcXQ0LXgxMS1mcmVlXSA9ICItLWVuYWJsZS1xdCwtLWRpc2FibGUtcXQscXQ0LXgxMS1mcmVlIgorCitQQUNLQUdFUyA9KyAibGlibm11dGlsIGxpYm5tZ2xpYiBsaWJubWdsaWItdnBuIFwKKyAgJHtQTn0tbm10dWkgJHtQTn0tbm10dWktZG9jIFwKKyAgJHtQTn0tYWRzbCBcCisiCisKK0ZJTEVTX2xpYm5tdXRpbCArPSAiJHtsaWJkaXJ9L2xpYm5tLXV0aWwuc28uKiIKK0ZJTEVTX2xpYm5tZ2xpYiArPSAiJHtsaWJkaXJ9L2xpYm5tLWdsaWIuc28uKiIKK0ZJTEVTX2xpYm5tZ2xpYi12cG4gKz0gIiR7bGliZGlyfS9saWJubS1nbGliLXZwbi5zby4qIgorCitGSUxFU18ke1BOfS1hZHNsID0gIiR7bGliZGlyfS9OZXR3b3JrTWFuYWdlci9saWJubS1kZXZpY2UtcGx1Z2luLWFkc2wuc28iCisKK0ZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7bGliZXhlY2Rpcn0gXAorICAgICR7bGliZGlyfS9wcHBkLyovbm0tcHBwZC1wbHVnaW4uc28gXAorICAgICR7bGliZGlyfS9OZXR3b3JrTWFuYWdlci8qLnNvIFwKKyAgICAke25vbmFyY2hfbGliZGlyfS9OZXR3b3JrTWFuYWdlci9WUE4gXAorICAgICR7bm9uYXJjaF9saWJkaXJ9L05ldHdvcmtNYW5hZ2VyL2NvbmYuZCBcCisgICAgJHtkYXRhZGlyfS9wb2xraXQtMSBcCisgICAgJHtkYXRhZGlyfS9kYnVzLTEgXAorICAgICR7YmFzZV9saWJkaXJ9L3VkZXYvKiBcCisgICAgJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbSBcCisiCisKK1JSRUNPTU1FTkRTXyR7UE59ICs9ICJpcHRhYmxlcyBcCisgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdQQUNLQUdFQ09ORklHJywgJ2Ruc21hc3EnLCBkKX0gXAorIgorUkNPTkZMSUNUU18ke1BOfSA9ICJjb25ubWFuIgorCitGSUxFU18ke1BOfS1kZXYgKz0gIiBcCisgICAgJHtkYXRhZGlyfS9OZXR3b3JrTWFuYWdlci9nZGItY21kIFwKKyAgICAke2xpYmRpcn0vcHBwZC8qLyoubGEgXAorICAgICR7bGliZGlyfS9OZXR3b3JrTWFuYWdlci8qLmxhIFwKKyIKKworRklMRVNfJHtQTn0tbm10dWkgPSAiIFwKKyAgICAke2JpbmRpcn0vbm10dWkgXAorICAgICR7YmluZGlyfS9ubXR1aS1lZGl0IFwKKyAgICAke2JpbmRpcn0vbm10dWktY29ubmVjdCBcCisgICAgJHtiaW5kaXJ9L25tdHVpLWhvc3RuYW1lIFwKKyIKKworRklMRVNfJHtQTn0tbm10dWktZG9jID0gIiBcCisgICAgJHttYW5kaXJ9L21hbjEvbm10dWkqIFwKKyIKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gIk5ldHdvcmtNYW5hZ2VyLnNlcnZpY2UgTmV0d29ya01hbmFnZXItZGlzcGF0Y2hlci5zZXJ2aWNlIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBybSAtcmYgJHtEfS9ydW4gJHtEfSR7bG9jYWxzdGF0ZWRpcn0vcnVuCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlcl8xLjQuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyXzEuNC40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNWY0NTZmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyXzEuNC40LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLVNVTU1BUlkgPSAiTmV0d29ya01hbmFnZXIiCi1IT01FUEFHRSA9ICJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL05ldHdvcmtNYW5hZ2VyIgotU0VDVElPTiA9ICJuZXQvbWlzYyIKLQotTElDRU5TRSA9ICJHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1jYmJmZmQ1NjgyMjdhZGE1MDY2NDBmZTk1MGE0ODIzYiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9saWJubS11dGlsL0NPUFlJTkc7bWQ1PTFjNGZhNzY1ZDZlYjNjZDJmYmQ4NDM0NGExYjgxNmNkIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2RvY3MvYXBpL2h0bWwvbGljZW5zZS5odG1sO21kNT04ZWI4ZTcyYmFiMDk3YjlkMTE3NjMwMDJjYjAwMzY5NyBcCi0iCi0KLURFUEVORFMgPSAiIFwKLSAgICBpbnRsdG9vbC1uYXRpdmUgXAotICAgIGxpYm5sIFwKLSAgICBkYnVzIFwKLSAgICBkYnVzLWdsaWIgXAotICAgIGRidXMtZ2xpYi1uYXRpdmUgXAotICAgIGxpYmd1ZGV2IFwKLSAgICB1dGlsLWxpbnV4IFwKLSAgICBsaWJuZHAgXAotICAgIGxpYm5ld3QgXAotICAgIHBvbGtpdCBcCi0gICAgamFuc3NvbiBcCi0iCi0KLWluaGVyaXQgZ25vbWViYXNlIGdldHRleHQgc3lzdGVtZCBibHVldG9vdGggYmFzaC1jb21wbGV0aW9uIHZhbGEgZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0KLUdJX0RBVEFfRU5BQkxFRF9saWJjLW11c2wgPSAiRmFsc2UiCi0KLVNSQ19VUkkgPSAiJHtHTk9NRV9NSVJST1J9L05ldHdvcmtNYW5hZ2VyLyR7QGdub21lX3ZlcmRpcigiJHtQVn0iKX0vTmV0d29ya01hbmFnZXItJHtQVn0udGFyLnh6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtZG9uLXQtdHJ5LXRvLXJ1bi1zYmluLWRoY2xpZW50LXRvLWdldC10aGUtdmVyc2lvbi1udS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAyLUZpeC1ubS12ZXJzaW9uLW1hY3JvLWluY2x1ZGVzLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtYWRqdXN0LW5ldC1oZWFkZXJzLWZvci1tdXNsLWNvbXBhdGliaWxpdHkucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1zb2NrZXQtdXRpbC5oLUluY2x1ZGUtbGludXgtc29ja2lvcy5oLW9uLW11c2wucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMy1EZWZpbmUtRVRIX0FMRU4ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwNC1EZWZpbmUtbWlzc2luZy1mZWF0dXJlcy10by1jYXRlci1mb3ItbXVzbC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA1LXNkLWxsZHAuaC1SZW1vdmUtbmV0LWV0aGVybmV0Lmgtc2VlbXMtdG8tYmUtb3Zlci1zcGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1jaGVjay1mb3Itc3RybmR1cGEtYmVmb3JlLXVzaW5nLWl0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtZG5zLXJlc29sdmVkLWFkZC1zeXN0ZW1kLXJlc29sdmVkLWJhY2tlbmQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1kbnMtcmVzb2x2ZWQtYWxzby1jaGVjay1mb3ItZXRjLXJlc29sdi1jb25mLnN5c3RlbWQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1zeXN0ZW1kLXhsb2NhbGUuaC1pcy1kcm9wcGVkLWJ5LW5ld2VyLWdsaWJjLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDItdXNlci1mb3JtYXQtc3RyaW5nLWluLWdfZGJ1c19tZXNzYWdlX25ld19tZXRob2RfZXJyby5wYXRjaCBcCi0gICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICI2M2YxZTBkNmQ3ZTkwOTk0OTlkMDYyYzg0YzkyN2E3NSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4MjkzNzhmMzE4Y2MwMDhkMTM4YTIzY2E2YTkxOTE5MjhjZTc1MzQ0ZTdlNDdhMmYyYzM1ZjRhYzgyMTMzMzA5IgotCi1TID0gIiR7V09SS0RJUn0vTmV0d29ya01hbmFnZXItJHtQVn0iCi0KLUVYVFJBX09FQ09ORiA9ICIgXAotICAgIC0tZGlzYWJsZS1pZmNmZy1yaCBcCi0gICAgLS1kaXNhYmxlLWlmbmV0IFwKLSAgICAtLWRpc2FibGUtaWZjZmctc3VzZSBcCi0gICAgLS1kaXNhYmxlLW1vcmUtd2FybmluZ3MgXAotICAgIC0td2l0aC1pcHRhYmxlcz0ke3NiaW5kaXJ9L2lwdGFibGVzIFwKLSAgICAtLXdpdGgtdGVzdHMgXAotICAgIC0td2l0aC1ubXR1aT15ZXMgXAotIgotCi1kb19jb21waWxlX3ByZXBlbmQoKSB7Ci0gICAgICAgIGV4cG9ydCBHSVJfRVhUUkFfTElCU19QQVRIPSIke0J9L2xpYm5tLXV0aWwvLmxpYnMiCi19Ci0KLVBBQ0tBR0VDT05GSUcgPz89ICJuc3MgaWZ1cGRvd24gbmV0Y29uZmlnIGRoY2xpZW50IGRuc21hc3EgXAotICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICdzeXN0ZW1kJywgXAotICAgICAgIGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneDExJywgJ2NvbnNvbGVraXQnLCAnJywgZCksIGQpfSBcCi0gICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdibHVldG9vdGgnLCAnJHtCTFVFWn0nLCAnJywgZCl9IFwKLSAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICd3aWZpJywgZCl9IFwKLSIKLVBBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiIFwKLSAgICAtLXdpdGgtc3lzdGVtZHN5c3RlbXVuaXRkaXI9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbSAtLXdpdGgtc2Vzc2lvbi10cmFja2luZz1zeXN0ZW1kIC0tZW5hYmxlLXBvbGtpdCwgXAotICAgIC0td2l0aG91dC1zeXN0ZW1kc3lzdGVtdW5pdGRpciwgXAotICAgIHBvbGtpdCBcCi0iCi1QQUNLQUdFQ09ORklHW2JsdWV6NV0gPSAiLS1lbmFibGUtYmx1ZXo1LWR1biwtLWRpc2FibGUtYmx1ZXo1LWR1bixibHVlejUiCi0jIGNvbnNvbGVraXQgaXMgbm90IHBpY2tlZCBieSBzaGxpYnMsIHNvIGFkZCBpdCB0byBSREVQRU5EUyB0b28KLVBBQ0tBR0VDT05GSUdbY29uc29sZWtpdF0gPSAiLS13aXRoLXNlc3Npb24tdHJhY2tpbmc9Y29uc29sZWtpdCwsY29uc29sZWtpdCxjb25zb2xla2l0IgotUEFDS0FHRUNPTkZJR1tjb25jaGVja10gPSAiLS13aXRoLWxpYnNvdXA9eWVzLC0td2l0aC1saWJzb3VwPW5vLGxpYnNvdXAtMi40IgotUEFDS0FHRUNPTkZJR1ttb2RlbW1hbmFnZXJdID0gIi0td2l0aC1tb2RlbS1tYW5hZ2VyLTE9eWVzLC0td2l0aC1tb2RlbS1tYW5hZ2VyLTE9bm8sbW9kZW1tYW5hZ2VyIgotUEFDS0FHRUNPTkZJR1twcHBdID0gIi0tZW5hYmxlLXBwcCwtLWRpc2FibGUtcHBwLHBwcCxwcHAiCi0jIFVzZSBmdWxsIGZlYXR1cmVkIGRoY3AgY2xpZW50IGluc3RlYWQgb2YgaW50ZXJuYWwgb25lCi1QQUNLQUdFQ09ORklHW2RoY2xpZW50XSA9ICItLXdpdGgtZGhjbGllbnQ9JHtiYXNlX3NiaW5kaXJ9L2RoY2xpZW50LCwsZGhjcC1jbGllbnQiCi1QQUNLQUdFQ09ORklHW2Ruc21hc3FdID0gIi0td2l0aC1kbnNtYXNxPSR7YmluZGlyfS9kbnNtYXNxIgotUEFDS0FHRUNPTkZJR1tuc3NdID0gIi0td2l0aC1jcnlwdG89bnNzLCxuc3MiCi1QQUNLQUdFQ09ORklHW2dudXRsc10gPSAiLS13aXRoLWNyeXB0bz1nbnV0bHMsLGdudXRscyIKLVBBQ0tBR0VDT05GSUdbd2lmaV0gPSAiLS1lbmFibGUtd2lmaT15ZXMsLS1lbmFibGUtd2lmaT1ubyx3aXJlbGVzcy10b29scyx3cGEtc3VwcGxpY2FudCB3aXJlbGVzcy10b29scyIKLVBBQ0tBR0VDT05GSUdbaWZ1cGRvd25dID0gIi0tZW5hYmxlLWlmdXBkb3duLC0tZGlzYWJsZS1pZnVwZG93biIKLVBBQ0tBR0VDT05GSUdbbmV0Y29uZmlnXSA9ICItLXdpdGgtbmV0Y29uZmlnPXllcywtLXdpdGgtbmV0Y29uZmlnPW5vIgotUEFDS0FHRUNPTkZJR1txdDQteDExLWZyZWVdID0gIi0tZW5hYmxlLXF0LC0tZGlzYWJsZS1xdCxxdDQteDExLWZyZWUiCi0KLVBBQ0tBR0VTID0rICJsaWJubXV0aWwgbGlibm1nbGliIGxpYm5tZ2xpYi12cG4gXAotICAke1BOfS1ubXR1aSAke1BOfS1ubXR1aS1kb2MgXAotICAke1BOfS1hZHNsIFwKLSIKLQotRklMRVNfbGlibm11dGlsICs9ICIke2xpYmRpcn0vbGlibm0tdXRpbC5zby4qIgotRklMRVNfbGlibm1nbGliICs9ICIke2xpYmRpcn0vbGlibm0tZ2xpYi5zby4qIgotRklMRVNfbGlibm1nbGliLXZwbiArPSAiJHtsaWJkaXJ9L2xpYm5tLWdsaWItdnBuLnNvLioiCi0KLUZJTEVTXyR7UE59LWFkc2wgPSAiJHtsaWJkaXJ9L05ldHdvcmtNYW5hZ2VyL2xpYm5tLWRldmljZS1wbHVnaW4tYWRzbC5zbyIKLQotRklMRVNfJHtQTn0gKz0gIiBcCi0gICAgJHtsaWJleGVjZGlyfSBcCi0gICAgJHtsaWJkaXJ9L3BwcGQvKi9ubS1wcHBkLXBsdWdpbi5zbyBcCi0gICAgJHtsaWJkaXJ9L05ldHdvcmtNYW5hZ2VyLyouc28gXAotICAgICR7ZGF0YWRpcn0vcG9sa2l0LTEgXAotICAgICR7ZGF0YWRpcn0vZGJ1cy0xIFwKLSAgICAke2Jhc2VfbGliZGlyfS91ZGV2LyogXAotICAgICR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0gXAotIgotCi1SUkVDT01NRU5EU18ke1BOfSArPSAiaXB0YWJsZXMgXAotICAgICR7QGJiLnV0aWxzLmZpbHRlcignUEFDS0FHRUNPTkZJRycsICdkbnNtYXNxJywgZCl9IFwKLSIKLVJDT05GTElDVFNfJHtQTn0gPSAiY29ubm1hbiIKLQotRklMRVNfJHtQTn0tZGV2ICs9ICIgXAotICAgICR7ZGF0YWRpcn0vTmV0d29ya01hbmFnZXIvZ2RiLWNtZCBcCi0gICAgJHtsaWJkaXJ9L3BwcGQvKi8qLmxhIFwKLSAgICAke2xpYmRpcn0vTmV0d29ya01hbmFnZXIvKi5sYSBcCi0iCi0KLUZJTEVTXyR7UE59LW5tdHVpID0gIiBcCi0gICAgJHtiaW5kaXJ9L25tdHVpIFwKLSAgICAke2JpbmRpcn0vbm10dWktZWRpdCBcCi0gICAgJHtiaW5kaXJ9L25tdHVpLWNvbm5lY3QgXAotICAgICR7YmluZGlyfS9ubXR1aS1ob3N0bmFtZSBcCi0iCi0KLUZJTEVTXyR7UE59LW5tdHVpLWRvYyA9ICIgXAotICAgICR7bWFuZGlyfS9tYW4xL25tdHVpKiBcCi0iCi0KLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJOZXR3b3JrTWFuYWdlci5zZXJ2aWNlIE5ldHdvcmtNYW5hZ2VyLWRpc3BhdGNoZXIuc2VydmljZSIKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgcm0gLXJmICR7RH0vcnVuICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3J1bgotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvMDAwMS1wYWNrYWdpbmctQXZvaWQtdGltZW91dC1mb3Itbm1iZC1pZi1zdGFydGVkLW9mZmxpbmUtLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvMDAwMS1wYWNrYWdpbmctQXZvaWQtdGltZW91dC1mb3Itbm1iZC1pZi1zdGFydGVkLW9mZmxpbmUtLnBhdGNoCmluZGV4IDBhYjM0MzYuLjBlODlhOWIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhLzAwMDEtcGFja2FnaW5nLUF2b2lkLXRpbWVvdXQtZm9yLW5tYmQtaWYtc3RhcnRlZC1vZmZsaW5lLS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS8wMDAxLXBhY2thZ2luZy1Bdm9pZC10aW1lb3V0LWZvci1ubWJkLWlmLXN0YXJ0ZWQtb2ZmbGluZS0ucGF0Y2gKQEAgLTEzLDE2ICsxMywxNyBAQAogdGhlcmVmb3JlIGdldCBraWxsZWQuCiAKIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgT2JlcnJpdHRlciA8b2JpQG9wZW5kcmVhbWJveC5vcmc+CisKIC0tLQogIHBhY2thZ2luZy9zeXN0ZW1kL25tYi5zZXJ2aWNlIHwgMSArCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCiAKIGRpZmYgLS1naXQgYS9wYWNrYWdpbmcvc3lzdGVtZC9ubWIuc2VydmljZSBiL3BhY2thZ2luZy9zeXN0ZW1kL25tYi5zZXJ2aWNlCi1pbmRleCA5OTJjMGNkLi41NTVjOWFiIDEwMDY0NAoraW5kZXggNzFjOTNkNi4uZjNkMmZjMiAxMDA2NDQKIC0tLSBhL3BhY2thZ2luZy9zeXN0ZW1kL25tYi5zZXJ2aWNlCiArKysgYi9wYWNrYWdpbmcvc3lzdGVtZC9ubWIuc2VydmljZQogQEAgLTEwLDYgKzEwLDcgQEAgRW52aXJvbm1lbnRGaWxlPS0vZXRjL3N5c2NvbmZpZy9zYW1iYQotIEV4ZWNTdGFydD0vdXNyL3NiaW4vbm1iZCAkTk1CRE9QVElPTlMKKyBFeGVjU3RhcnQ9L3Vzci9zYmluL25tYmQgLS1mb3JlZ3JvdW5kIC0tbm8tcHJvY2Vzcy1ncm91cCAkTk1CRE9QVElPTlMKICBFeGVjUmVsb2FkPS91c3IvYmluL2tpbGwgLUhVUCAkTUFJTlBJRAogIExpbWl0Q09SRT1pbmZpbml0eQogK1RpbWVvdXRTdGFydFNlYz0wCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS8xNi1kby1ub3QtY2hlY2steHNsdHByb2MtbWFucGFnZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS8xNi1kby1ub3QtY2hlY2steHNsdHByb2MtbWFucGFnZXMucGF0Y2gKaW5kZXggYzM3Y2ZjZC4uOGNhN2E1MiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvMTYtZG8tbm90LWNoZWNrLXhzbHRwcm9jLW1hbnBhZ2VzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhLzE2LWRvLW5vdC1jaGVjay14c2x0cHJvYy1tYW5wYWdlcy5wYXRjaApAQCAtMSwxMyArMSwyNCBAQAotRG9uJ3QgY2hlY2sgeHNsdHByb2MgbWFucGFnZXMKK0Zyb20gMjIxNGMyZDFlNDU1YTM4Yzg5MWQxN2U0MjFiNDM4ZTNmN2M0OTVkOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJpYW4gTmFpbWVuZyA8Ymlhbm5tQGNuLmZ1aml0c3UuY29tPgorRGF0ZTogTW9uLCAxOCBBcHIgMjAxNiAxNzowMDo1MyAtMDQwMAorU3ViamVjdDogW1BBVENIXSBEb24ndCBjaGVjayB4c2x0cHJvYyBtYW5wYWdlcwogCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKyAKIFNpZ25lZC1vZmYtYnk6IEJpYW4gTmFpbWVuZyA8Ymlhbm5tQGNuLmZ1aml0c3UuY29tPgogCi1JbmRleDogc2FtYmEtNC40LjIvbGliL2xkYi93c2NyaXB0Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gc2FtYmEtNC40LjIub3JpZy9saWIvbGRiL3dzY3JpcHQKLSsrKyBzYW1iYS00LjQuMi9saWIvbGRiL3dzY3JpcHQKLUBAIC02NSw3ICs2NSw3IEBAIGRlZiBjb25maWd1cmUoY29uZik6Ci0gICAgICAgICAgICAgICAgIGNvbmYuZGVmaW5lKCdVU0lOR19TWVNURU1fTERCJywgMSkKKy0tLQorIGxpYi9sZGIvd3NjcmlwdCAgICB8IDIgKy0KKyBsaWIvdGFsbG9jL3dzY3JpcHQgfCAyICstCisgbGliL3RkYi93c2NyaXB0ICAgIHwgMiArLQorIDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliL2xkYi93c2NyaXB0IGIvbGliL2xkYi93c2NyaXB0CitpbmRleCA1ZWE1MjMxLi5kOTQwODZiIDEwMDY0NAorLS0tIGEvbGliL2xkYi93c2NyaXB0CisrKysgYi9saWIvbGRiL3dzY3JpcHQKK0BAIC05OCw3ICs5OCw3IEBAIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgICAgICBjb25mLkRFRklORSgnRVhQRUNURURfU1lTVEVNX0xEQl9WRVJTSU9OX1JFTEVBU0UnLCBpbnQodlsyXSkpCiAgCiAgICAgIGlmIGNvbmYuZW52LnN0YW5kYWxvbmVfbGRiOgogLSAgICAgICAgY29uZi5DSEVDS19YU0xUUFJPQ19NQU5QQUdFUygpCkBAIC0xNSwyNCArMjYsMjQgQEAKICAKICAgICAgICAgICMgd2UgbmVlZCB0aGlzIGZvciB0aGUgbGRhcCBiYWNrZW5kCiAgICAgICAgICBpZiBjb25mLkNIRUNLX0ZVTkNTX0lOKCdiZXJfZmx1c2ggbGRhcF9vcGVuIGxkYXBfaW5pdGlhbGl6ZScsICdsYmVyIGxkYXAnLCBoZWFkZXJzPSdsYmVyLmggbGRhcC5oJyk6Ci1JbmRleDogc2FtYmEtNC40LjIvbGliL3RhbGxvYy93c2NyaXB0Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gc2FtYmEtNC40LjIub3JpZy9saWIvdGFsbG9jL3dzY3JpcHQKLSsrKyBzYW1iYS00LjQuMi9saWIvdGFsbG9jL3dzY3JpcHQKLUBAIC01Niw3ICs1Niw3IEBAIGRlZiBjb25maWd1cmUoY29uZik6Ci0gICAgIGlmIGNvbmYuZW52LnN0YW5kYWxvbmVfdGFsbG9jOgotICAgICAgICAgY29uZi5lbnYuVEFMTE9DX0NPTVBBVDEgPSBPcHRpb25zLm9wdGlvbnMuVEFMTE9DX0NPTVBBVDEKK2RpZmYgLS1naXQgYS9saWIvdGFsbG9jL3dzY3JpcHQgYi9saWIvdGFsbG9jL3dzY3JpcHQKK2luZGV4IGRmN2U2YmUuLmIzMzA1Y2YgMTAwNjQ0CistLS0gYS9saWIvdGFsbG9jL3dzY3JpcHQKKysrKyBiL2xpYi90YWxsb2Mvd3NjcmlwdAorQEAgLTQ5LDcgKzQ5LDcgQEAgZGVmIGNvbmZpZ3VyZShjb25mKToKKyAgICAgICAgIGNvbmYuZW52LlBLR0NPTkZJR0RJUiA9ICcke0xJQkRJUn0vcGtnY29uZmlnJworICAgICAgICAgY29uZi5lbnYuVEFMTE9DX1ZFUlNJT04gPSBWRVJTSU9OCiAgCiAtICAgIGNvbmYuQ0hFQ0tfWFNMVFBST0NfTUFOUEFHRVMoKQogKyAgICAjY29uZi5DSEVDS19YU0xUUFJPQ19NQU5QQUdFUygpCiAgCi0gICAgIGlmIG5vdCBjb25mLmVudi5kaXNhYmxlX3B5dGhvbjoKLSAgICAgICAgICMgYWxzbyBkaXNhYmxlIGlmIHdlIGRvbid0IGhhdmUgdGhlIHB5dGhvbiBsaWJzIGluc3RhbGxlZAotSW5kZXg6IHNhbWJhLTQuNC4yL2xpYi90ZGIvd3NjcmlwdAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHNhbWJhLTQuNC4yLm9yaWcvbGliL3RkYi93c2NyaXB0Ci0rKysgc2FtYmEtNC40LjIvbGliL3RkYi93c2NyaXB0Ci1AQCAtOTIsNyArOTIsNyBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9hdXh2LmgnKQorICAgICBjb25mLkNIRUNLX0ZVTkNTKCdnZXRhdXh2YWwnKQorZGlmZiAtLWdpdCBhL2xpYi90ZGIvd3NjcmlwdCBiL2xpYi90ZGIvd3NjcmlwdAoraW5kZXggNDc4MjU1MC4uNmJiM2ZhMSAxMDA2NDQKKy0tLSBhL2xpYi90ZGIvd3NjcmlwdAorKysrIGIvbGliL3RkYi93c2NyaXB0CitAQCAtODksNyArODksNyBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgogICAgICAgICAgbm90IGNvbmYuZW52LmRpc2FibGVfdGRiX211dGV4X2xvY2tpbmcpOgogICAgICAgICAgY29uZi5kZWZpbmUoJ1VTRV9UREJfTVVURVhfTE9DS0lORycsIDEpCiAgCkBAIC00MSwzICs1Miw2IEBACiAgCiAgICAgIGlmIG5vdCBjb25mLmVudi5kaXNhYmxlX3B5dGhvbjoKICAgICAgICAgICMgYWxzbyBkaXNhYmxlIGlmIHdlIGRvbid0IGhhdmUgdGhlIHB5dGhvbiBsaWJzIGluc3RhbGxlZAorLS0gCisyLjE0LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvMjEtYWRkLWNvbmZpZy1vcHRpb24td2l0aG91dC12YWxncmluZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhLzIxLWFkZC1jb25maWctb3B0aW9uLXdpdGhvdXQtdmFsZ3JpbmQucGF0Y2gKaW5kZXggMDI1YWMyNy4uNmE3ZjhmYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvMjEtYWRkLWNvbmZpZy1vcHRpb24td2l0aG91dC12YWxncmluZC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS8yMS1hZGQtY29uZmlnLW9wdGlvbi13aXRob3V0LXZhbGdyaW5kLnBhdGNoCkBAIC02LDYgKzYsNyBAQAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIFNpZ25lZC1vZmYtYnk6IFdlbnpvbmcgRmFuIDx3ZW56b25nLmZhbkB3aW5kcml2ZXIuY29tPgorCiAtLS0KICBsaWIvcmVwbGFjZS93c2NyaXB0IHwgNCArKystCiAgc291cmNlMy93c2NyaXB0ICAgICB8IDUgKysrKy0KQEAgLTE2LDkgKzE3LDkgQEAKIGluZGV4IGYwMDQwYjEuLmFjYTczYWYgMTAwNjQ0CiAtLS0gYS9saWIvcmVwbGFjZS93c2NyaXB0CiArKysgYi9saWIvcmVwbGFjZS93c2NyaXB0Ci1AQCAtMTAxLDcgKzEwMSw5IEBAIHN0cnVjdCBmb28gYmFyID0geyAueSA9ICdYJywgLnggPSAxIH07Ci0gCi0gICAgIGNvbmYuQ0hFQ0tfQ09ERSgnJywgaGVhZGVycz0ncnBjL3JwYy5oIHJwY3N2Yy95cF9wcm90LmgnLCBkZWZpbmU9J0hBVkVfUlBDU1ZDX1lQX1BST1RfSCcpCitAQCAtMTAxLDcgKzEwMSw5IEBAIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2ZpbGVpby5oIHN5cy9maWxlc3lzLmggc3lzL2R1c3RhdC5oIHN5cy9zeXNtYWNyb3MuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygneGZzL2xpYnhmcy5oIG5ldGdyb3VwLmgnKQogIAogLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3ZhbGdyaW5kLmggdmFsZ3JpbmQvdmFsZ3JpbmQuaCB2YWxncmluZC9tZW1jaGVjay5oJykKICsgICAgaWYgbm90IE9wdGlvbnMub3B0aW9ucy5kaXNhYmxlX3ZhbGdyaW5kOgpAQCAtMjYsMTIgKzI3LDEyIEBACiArCiAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbnNzX2NvbW1vbi5oIG5zc3dpdGNoLmggbnNfYXBpLmgnKQogICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9leHRhdHRyLmggc3lzL2VhLmggc3lzL3Byb3BsaXN0Lmggc3lzL2NkZWZzLmgnKQotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3V0bXAuaCB1dG1weC5oIGxhc3Rsb2cuaCBtYWxsb2MuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndXRtcC5oIHV0bXB4LmggbGFzdGxvZy5oJykKIGRpZmYgLS1naXQgYS9zb3VyY2UzL3dzY3JpcHQgYi9zb3VyY2UzL3dzY3JpcHQKIGluZGV4IGJhYzNkZDUuLmE1YzUxZWEgMTAwNjQ0CiAtLS0gYS9zb3VyY2UzL3dzY3JpcHQKICsrKyBiL3NvdXJjZTMvd3NjcmlwdAotQEAgLTEwMTYsNyArMTAxNiwxMCBAQCBzeXNjYWxsKFNZU19zZXRncm91cHMzMiwgMCwgTlVMTCk7CitAQCAtMTA3MCw3ICsxMDcwLDEwIEBAIHN5c2NhbGwoU1lTX3NldGdyb3VwczMyLCAwLCBOVUxMKTsKICAgICAgICAgICAgICBMb2dzLndhcm4oIi0td2l0aC1kbnN1cGRhdGU9eWVzIGJ1dCBnc3NhcGkgc3VwcG9ydCBub3Qgc3VmZmljaWVudCIpCiAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgIGNvbmYuREVGSU5FKCdXSVRIX0ROU19VUERBVEVTJywgMSkKQEAgLTQ0LDEyICs0NSwxMiBAQAogICAgICAgICAgaWYgY29uZi5DT05GSUdfU0VUKCdIQVZFX1ZBTEdSSU5EX0gnKSBvciBjb25mLkNPTkZJR19TRVQoJ0hBVkVfVkFMR1JJTkRfVkFMR1JJTkRfSCcpOgogICAgICAgICAgICAgIGNvbmYuREVGSU5FKCdWQUxHUklORCcsICcxJykKIGRpZmYgLS1naXQgYS93c2NyaXB0IGIvd3NjcmlwdAotaW5kZXggNzY3OWMwZi4uNjgxYWMxNyAxMDA2NDQKK2luZGV4IDU0MmE2MGMuLjIyZTYxMTYgMTAwNjQ0CiAtLS0gYS93c2NyaXB0CiArKysgYi93c2NyaXB0Ci1AQCAtNzIsNiArNzIsMTAgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6Ci0gICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHN5c3RlbWQgaW50ZWdyYXRpb24iKSwKLSAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV9mYWxzZScsIGRlc3Q9J2VuYWJsZV9zeXN0ZW1kJykKK0BAIC04Niw2ICs4NiwxMCBAQCBkZWYgc2V0X29wdGlvbnMob3B0KToKKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSBSRUxSTyBidWlsZHMiKSwKKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX3JlbHJvJykKICAKICsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC12YWxncmluZCcsCiArICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiB0aGUgdmFsZ3JpbmQgaGVhZGVycyIpLApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvZG5zc2VydmVyLTQuNy4wLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvZG5zc2VydmVyLTQuNy4wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjNzU5MmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS9kbnNzZXJ2ZXItNC43LjAucGF0Y2gKQEAgLTAsMCArMSwxOSBAQAorc2FtYmE6IGJ1aWxkIGRuc3NlcnZlcl9jb21tb24gY29kZQorCitKdXN0ICdpbnN0YWxsJyBkb2VzIG5vdCBzZWVtIHRvIGRvIGl0LgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogSm9lIFNsYXRlciA8am9lLnNsYXRlckB3aW5kcml2ZXIuY29tPgorCistLS0gYS9zb3VyY2U0L2Ruc19zZXJ2ZXIvd3NjcmlwdF9idWlsZAorKysrIGIvc291cmNlNC9kbnNfc2VydmVyL3dzY3JpcHRfYnVpbGQKK0BAIC00LDcgKzQsNyBAQCBibGQuU0FNQkFfTElCUkFSWSgnZG5zc2VydmVyX2NvbW1vbicsCisgICAgICAgICBzb3VyY2U9J2Ruc3NlcnZlcl9jb21tb24uYycsCisgICAgICAgICBkZXBzPSdzYW1iYS11dGlsIHNhbWJhLWVycm9ycyBsZGJzYW1iYSBjbGlkbnMnLAorICAgICAgICAgcHJpdmF0ZV9saWJyYXJ5PVRydWUsCistICAgICAgICBpbnN0YWxsPWJsZC5BRF9EQ19CVUlMRF9JU19FTkFCTEVEKCkKKysgICAgICAgIGVuYWJsZWQ9YmxkLkFEX0RDX0JVSUxEX0lTX0VOQUJMRUQoKQorICAgICAgICAgKQorIAorIGJsZC5TQU1CQV9NT0RVTEUoJ3NlcnZpY2VfZG5zJywKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL2ljb252LTQuNy4wLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvaWNvbnYtNC43LjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFlOGM1OQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL2ljb252LTQuNy4wLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK3NhbWJhOiBkZWZlYXQgaWNvbnYgdGVzdAorCitBIHRlc3Qgd2FzIGFkZGVkIHdoZW4gY29uZmlndXJpbmcgc2FtYmEgd2hpY2ggcmVxdWlyZXMgdGFyZ2V0IGNvZGUKK3RvIGJlIGV4ZWN1dGVkLiAgSW4gZ2VuZXJhbCwgdGhpcyB3aWxsIG5vdCB3b3JrLCBzbyB3ZSBlbGltaW5hdGUgaXQuCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBKb2UgU2xhdGVyIDxqb2Uuc2xhdGVyQHdpbmRyaXZlci5jb20+CisKKy0tLSBhL2xpYi91dGlsL2NoYXJzZXQvd3NjcmlwdF9jb25maWd1cmUKKysrKyBiL2xpYi91dGlsL2NoYXJzZXQvd3NjcmlwdF9jb25maWd1cmUKK0BAIC0xNyw2ICsxNyw4IEBAIGlmIChjb25mLkNIRUNLX0ZVTkNTX0lOKCdpY29udl9vcGVuJywgJ2kKKyAgICAgCisgICAgIGNvbmYuREVGSU5FKCdIQVZFX05BVElWRV9JQ09OVicsIDEpCisgCisrIiIiCisrW2FkZGVkIGZvciA0LjcuMCwgYnV0IGJyZWFrcyBjcm9zcy1jb21waWxhdGlvbl0KKyBjb25mLkNIRUNLX0NPREUoJycnCisgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaW5idWZbMl0gPSB7IDB4MzAsIDB4ZGYgfTsKKyAgICAgICAgICAgICAgICAgdWludDhfdCBvdXRidWZbNF0gPSB7IDAgfTsKK0BAIC0zNiwzICszOCw0IEBAIGNvbmYuQ0hFQ0tfQ09ERSgnJycKKyAgICAgICAgICAgICAgICAgbXNnPSdDaGVja2luZyBlcnJubyBvZiBpY29udiBmb3IgaWxsZWdhbCBtdWx0aWJ5dGUgc2VxdWVuY2UnLAorICAgICAgICAgICAgICAgICBsaWI9J2ljb252JywKKyAgICAgICAgICAgICAgICAgaGVhZGVycz0nZXJybm8uaCBpY29udi5oJykKKysiIiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL3NhbWJhLTQuMi43LXBhbS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL3NhbWJhLTQuMi43LXBhbS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmI5YWRlOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS9zYW1iYS00LjIuNy1wYW0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1MaWZ0ZWQgZnJvbSBnZW50b28gYW5kIHBvcnRlZCB0byA0LjQuNQotCi1odHRwOi8vZGF0YS5ncG8uenVnYWluYS5vcmcvbXVzbC9uZXQtZnMvc2FtYmEvZmlsZXMvc2FtYmEtNC4yLjctcGFtLnBhdGNoCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0KLQotSW5kZXg6IHNhbWJhLTQuNC41L3NvdXJjZTMvd3NjcmlwdAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHNhbWJhLTQuNC41Lm9yaWcvc291cmNlMy93c2NyaXB0Ci0rKysgc2FtYmEtNC40LjUvc291cmNlMy93c2NyaXB0Ci1AQCAtODczLDcgKzg3Myw3IEBAIG1zZy5tc2dfYWNjcmlnaHRzbGVuID0gc2l6ZW9mKGZkKTsKLSAgICAgICAgIGlmIGNvbmYuZW52LndpdGhfaWNvbnY6Ci0gICAgICAgICAgICAgY29uZi5ERUZJTkUoJ0hBVkVfSUNPTlYnLCAxKQotIAotLSAgICBpZiBPcHRpb25zLm9wdGlvbnMud2l0aF9wYW06Ci0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy53aXRoX3BhbSAhPSBGYWxzZToKLSAgICAgICAgIHVzZV9wYW09VHJ1ZQotICAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzZWN1cml0eS9wYW1fYXBwbC5oIHBhbS9wYW1fYXBwbC5oJykKLSAgICAgICAgIGlmIG5vdCBjb25mLkNPTkZJR19TRVQoJ0hBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCcpIGFuZCBub3QgY29uZi5DT05GSUdfU0VUKCdIQVZFX1BBTV9QQU1fQVBQTF9IJyk6Ci1AQCAtOTQ1LDYgKzk0NSwxNSBAQCBpbnQgaTsgaSA9IFBBTV9SQURJT19UWVBFOwotICAgICAgICAgaWYgdXNlX3BhbToKLSAgICAgICAgICAgICBjb25mLkRFRklORSgnV0lUSF9QQU0nLCAxKQotICAgICAgICAgICAgIGNvbmYuREVGSU5FKCdXSVRIX1BBTV9NT0RVTEVTJywgMSkKLSsgICAgZWxzZToKLSsgICAgICAgIExvZ3Mud2FybigiUEFNIGRpc2FibGVkIikKLSsgICAgICAgIHVzZV9wYW09RmFsc2UKLSsgICAgICAgIGNvbmYudW5kZWZpbmUoJ1dJVEhfUEFNJykKLSsgICAgICAgIGNvbmYudW5kZWZpbmUoJ1dJVEhfUEFNX01PRFVMRVMnKQotKyAgICAgICAgY29uZi51bmRlZmluZSgnSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IJykKLSsgICAgICAgIGNvbmYudW5kZWZpbmUoJ1BBTV9SSE9TVCcpCi0rICAgICAgICBjb25mLnVuZGVmaW5lKCdQQU1fVFRZJykKLSsgICAgICAgIGNvbmYudW5kZWZpbmUoJ0hBVkVfUEFNX1BBTV9BUFBMX0gnKQotIAotICAgICBzZXRldWlkID0gRmFsc2UKLSAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL3NhbWJhLXBhbS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL3NhbWJhLXBhbS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2JhY2I2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvc2FtYmEtcGFtLnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0xpZnRlZCBmcm9tIGdlbnRvbyBhbmQgcG9ydGVkIHRvIDQuNC41CisKK2h0dHA6Ly9kYXRhLmdwby56dWdhaW5hLm9yZy9tdXNsL25ldC1mcy9zYW1iYS9maWxlcy9zYW1iYS00LjIuNy1wYW0ucGF0Y2gKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKworSW5kZXg6IHNhbWJhLTQuNy4wL3NvdXJjZTMvd3NjcmlwdAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHNhbWJhLTQuNy4wLm9yaWcvc291cmNlMy93c2NyaXB0CisrKysgc2FtYmEtNC43LjAvc291cmNlMy93c2NyaXB0CitAQCAtODc1LDcgKzg3NSw3IEBAIG1zZy5tc2dfYWNjcmlnaHRzbGVuID0gc2l6ZW9mKGZkKTsKKyAgICAgICAgIGlmIGNvbmYuZW52LndpdGhfaWNvbnY6CisgICAgICAgICAgICAgY29uZi5ERUZJTkUoJ0hBVkVfSUNPTlYnLCAxKQorIAorLSAgICBpZiBPcHRpb25zLm9wdGlvbnMud2l0aF9wYW06CisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy53aXRoX3BhbSAhPSBGYWxzZToKKyAgICAgICAgIHVzZV9wYW09VHJ1ZQorICAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzZWN1cml0eS9wYW1fYXBwbC5oIHBhbS9wYW1fYXBwbC5oJykKKyAgICAgICAgIGlmIG5vdCBjb25mLkNPTkZJR19TRVQoJ0hBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCcpIGFuZCBub3QgY29uZi5DT05GSUdfU0VUKCdIQVZFX1BBTV9QQU1fQVBQTF9IJyk6CitAQCAtOTUyLDYgKzk1MiwxNyBAQCBpbnQgaTsgaSA9IFBBTV9SQURJT19UWVBFOworICAgICAgICAgICAgICAgICAgICAgICAgIm9yIGhlYWRlcnMgbm90IGZvdW5kLiBVc2UgLS13aXRob3V0LXBhbSB0byBkaXNhYmxlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJQQU0gc3VwcG9ydC4iKTsKKyAKKysgICAgZWxzZToKKysgICAgICAgIExvZ3Mud2FybigiUEFNIGRpc2FibGVkIikKKysgICAgICAgIHVzZV9wYW09RmFsc2UKKysgICAgICAgIGNvbmYudW5kZWZpbmUoJ1dJVEhfUEFNJykKKysgICAgICAgIGNvbmYudW5kZWZpbmUoJ1dJVEhfUEFNX01PRFVMRVMnKQorKyAgICAgICAgY29uZi51bmRlZmluZSgnSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IJykKKysgICAgICAgIGNvbmYudW5kZWZpbmUoJ1BBTV9SSE9TVCcpCisrICAgICAgICBjb25mLnVuZGVmaW5lKCdQQU1fVFRZJykKKysgICAgICAgIGNvbmYudW5kZWZpbmUoJ0hBVkVfUEFNX1BBTV9BUFBMX0gnKQorKworKworICAgICBzZXRldWlkID0gRmFsc2UKKyAKKyAjCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS9zbWJfY29uZi00LjcuMC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL3NtYl9jb25mLTQuNy4wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3YzhiMzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS9zbWJfY29uZi00LjcuMC5wYXRjaApAQCAtMCwwICsxLDE5IEBACitzYW1iYTogY29ycmVjdCBsb2cgZmlsZXMgbG9jYXRpb24KKworV2UgdXNlIC92YXIvbG9nL3NhbWJhLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogSm9lIFNsYXRlciA8am9lLnNsYXRlckB3aW5kcml2ZXIuY29tPgorCistLS0gYS9wYWNrYWdpbmcvUkhFTC9zZXR1cC9zbWIuY29uZgorKysrIGIvcGFja2FnaW5nL1JIRUwvc2V0dXAvc21iLmNvbmYKK0BAIC02Myw3ICs2Myw3IEBACisgCisgIyB0aGlzIHRlbGxzIFNhbWJhIHRvIHVzZSBhIHNlcGFyYXRlIGxvZyBmaWxlIGZvciBlYWNoIG1hY2hpbmUKKyAjIHRoYXQgY29ubmVjdHMKKy0gICBsb2cgZmlsZSA9IC91c3IvbG9jYWwvc2FtYmEvdmFyL2xvZy4lbQorKyAgIGxvZyBmaWxlID0gL3Zhci9sb2cvc2FtYmEvbG9nLiVtCisgCisgIyBQdXQgYSBjYXBwaW5nIG9uIHRoZSBzaXplIG9mIHRoZSBsb2cgZmlsZXMgKGluIEtiKS4KKyAgICBtYXggbG9nIHNpemUgPSA1MApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmFfNC42LjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYV80LjYuNy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmIyMjdjOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYV80LjYuNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI1NiArMCwwIEBACi1IT01FUEFHRSA9ICJodHRwczovL3d3dy5zYW1iYS5vcmcvIgotU0VDVElPTiA9ICJjb25zb2xlL25ldHdvcmsiCi0KLUxJQ0VOU0UgPSAiR1BMLTMuMCsgJiBMR1BMLTMuMCsgJiBHUEwtMi4wKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovLyR7Q09SRUJBU0V9L21ldGEvZmlsZXMvY29tbW9uLWxpY2Vuc2VzL0xHUEwtMy4wO21kNT1iZmNjZmU5NTIyNjlmZmYyYjQwN2RkMTFmMmYzMDgzYiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly8ke0NPUkVCQVNFfS9tZXRhL2ZpbGVzL2NvbW1vbi1saWNlbnNlcy9HUEwtMi4wO21kNT04MDFmODA5ODBkMTcxZGQ2NDI1NjEwODMzYTIyZGJlNiAiCi0KLVNBTUJBX01JUlJPUiA9ICJodHRwOi8vc2FtYmEub3JnL3NhbWJhL2Z0cCIKLU1JUlJPUlMgKz0gIlwKLSR7U0FNQkFfTUlSUk9SfSAgICBodHRwOi8vbWlycm9yLmludGVybm9kZS5vbi5uZXQvcHViL3NhbWJhIFxuIFwKLSR7U0FNQkFfTUlSUk9SfSAgICBodHRwOi8vd3d3Lm1pcnJvcnNlcnZpY2Uub3JnL3NpdGVzL2Z0cC5zYW1iYS5vcmcgXG4gXAotIgotCi1TUkNfVVJJID0gIiR7U0FNQkFfTUlSUk9SfS9zdGFibGUvc2FtYmEtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovLzE2LWRvLW5vdC1jaGVjay14c2x0cHJvYy1tYW5wYWdlcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8yMC1kby1ub3QtaW1wb3J0LXRhcmdldC1tb2R1bGUtd2hpbGUtY3Jvc3MtY29tcGlsZS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8yMS1hZGQtY29uZmlnLW9wdGlvbi13aXRob3V0LXZhbGdyaW5kLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtcGFja2FnaW5nLUF2b2lkLXRpbWVvdXQtZm9yLW5tYmQtaWYtc3RhcnRlZC1vZmZsaW5lLS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA2LWF2b2lkLXVzaW5nLWNvbG9uLWluLXRoZS1jaGVja2luZy1tc2cucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbmV0ZGJfZGVmaW5lcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9nbGliY19vbmx5LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL3ZvbGF0aWxlcy4wM19zYW1iYSBcCi0gICAgICAgICAgIgotU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBcCi0gICAgICAgICAgIGZpbGU6Ly9zYW1iYS00LjIuNy1wYW0ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vc2FtYmEtNC4zLjktcmVtb3ZlLWdldHB3ZW50X3IucGF0Y2ggXAotICAgICAgICAgICIKLQotU1JDX1VSSVttZDVzdW1dID0gImM2ZWU1Yzc2NjAxNmQ1OTkwOGM4ZmI2NzJmYmJkNDQ1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjllZjI0MzkzZGUwODM5MGYyMzZjYWJjY2Q2YTQyMGI1Y2VhMzA0ZTk1OWNiZjFhOTlmZjMxNzMyNWRiM2RkZmEiCi0KLWluaGVyaXQgc3lzdGVtZCB3YWYtc2FtYmEgY3Bhbi1iYXNlIHBlcmxuYXRpdmUgdXBkYXRlLXJjLmQKLSMgcmVtb3ZlIGRlZmF1bHQgYWRkZWQgUkRFUEVORFMgb24gcGVybAotUkRFUEVORFNfJHtQTn1fcmVtb3ZlID0gInBlcmwiCi0KLURFUEVORFMgKz0gInJlYWRsaW5lIHZpcnR1YWwvbGliaWNvbnYgemxpYiBwb3B0IGxpYnRhbGxvYyBsaWJ0ZGIgbGlidGV2ZW50IGxpYmxkYiBrcmI1IGxpYmJzZCBsaWJhaW8gbGlicGFtIgotREVQRU5EU19hcHBlbmRfbGliYy1tdXNsID0gIiBsaWJ0aXJwYyIKLUNGTEFHU19hcHBlbmRfbGliYy1tdXNsID0gIiAtSSR7U1RBR0lOR19JTkNESVJ9L3RpcnBjIgotTERGTEFHU19hcHBlbmRfbGliYy1tdXNsID0gIiAtbHRpcnBjIgotCi1MU0IgPSAiIgotTFNCX2xpbnV4c3RkYmFzZSA9ICJsc2IiCi0KLUlOSVRTQ1JJUFRfTkFNRSA9ICJzYW1iYSIKLUlOSVRTQ1JJUFRfUEFSQU1TID0gInN0YXJ0IDIwIDMgNSAuIHN0b3AgMjAgMCAxIDYgLiIKLQotU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfS1iYXNlIHdpbmJpbmQiCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0tYmFzZSA9ICJubWIuc2VydmljZSBzbWIuc2VydmljZSIKLVNZU1RFTURfU0VSVklDRV93aW5iaW5kID0gIndpbmJpbmQuc2VydmljZSIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQgemVyb2NvbmYnLCBkKX0gXAotICAgICAgICAgICAgICAgICAgIGFjbCBjdXBzIGxkYXAgXAotIgotCi1SREVQRU5EU18ke1BOfS1iYXNlICs9ICIke0xTQn0iCi1SREVQRU5EU18ke1BOfS1jdGRiLXRlc3RzICs9ICJiYXNoIHV0aWwtbGludXgtZ2V0b3B0IgotCi1QQUNLQUdFQ09ORklHW2FjbF0gPSAiLS13aXRoLWFjbC1zdXBwb3J0LC0td2l0aG91dC1hY2wtc3VwcG9ydCxhY2wiCi1QQUNLQUdFQ09ORklHW2ZhbV0gPSAiLS13aXRoLWZhbSwtLXdpdGhvdXQtZmFtLGdhbWluIgotUEFDS0FHRUNPTkZJR1tjdXBzXSA9ICItLWVuYWJsZS1jdXBzLC0tZGlzYWJsZS1jdXBzLGN1cHMiCi1QQUNLQUdFQ09ORklHW2xkYXBdID0gIi0td2l0aC1sZGFwLC0td2l0aG91dC1sZGFwLG9wZW5sZGFwIgotUEFDS0FHRUNPTkZJR1tzYXNsXSA9ICIsLGN5cnVzLXNhc2wiCi1QQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0td2l0aC1zeXN0ZW1kLC0td2l0aG91dC1zeXN0ZW1kLHN5c3RlbWQiCi1QQUNLQUdFQ09ORklHW2RtYXBpXSA9ICItLXdpdGgtZG1hcGksLS13aXRob3V0LWRtYXBpLGRtYXBpIgotUEFDS0FHRUNPTkZJR1t6ZXJvY29uZl0gPSAiLS1lbmFibGUtYXZhaGksLS1kaXNhYmxlLWF2YWhpLGF2YWhpIgotUEFDS0FHRUNPTkZJR1t2YWxncmluZF0gPSAiLC0td2l0aG91dC12YWxncmluZCx2YWxncmluZCwiCi1QQUNLQUdFQ09ORklHW2x0dG5nXSA9ICItLXdpdGgtbHR0bmcsIC0td2l0aG91dC1sdHRuZyxsdHRuZy11c3QiCi1QQUNLQUdFQ09ORklHW2FyY2hpdmVdID0gIi0td2l0aC1saWJhcmNoaXZlLCAtLXdpdGhvdXQtbGliYXJjaGl2ZSwgbGliYXJjaGl2ZSIKLQotCi1TQU1CQTRfSURNQVBfTU9EVUxFUz0iaWRtYXBfYWQsaWRtYXBfcmlkLGlkbWFwX2FkZXgsaWRtYXBfaGFzaCxpZG1hcF90ZGIyIgotU0FNQkE0X1BEQl9NT0RVTEVTPSJwZGJfdGRic2FtLCR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2xkYXAnLCAncGRiX2xkYXAsJywgJycsIGQpfXBkYl9hZHMscGRiX3NtYnBhc3N3ZCxwZGJfd2JjX3NhbSxwZGJfc2FtYmE0IgotU0FNQkE0X0FVVEhfTU9EVUxFUz0iYXV0aF91bml4LGF1dGhfd2JjLGF1dGhfc2VydmVyLGF1dGhfbmV0bG9nb25kLGF1dGhfc2NyaXB0LGF1dGhfc2FtYmE0IgotU0FNQkE0X01PRFVMRVM9IiR7U0FNQkE0X0lETUFQX01PRFVMRVN9LCR7U0FNQkE0X1BEQl9NT0RVTEVTfSwke1NBTUJBNF9BVVRIX01PRFVMRVN9IgotCi1TQU1CQTRfTElCUz0iaGVpbWRhbCwhemxpYiwhcG9wdCwhdGFsbG9jLCFweXRhbGxvYywhcHl0YWxsb2MtdXRpbCwhdGV2ZW50LCFweXRldmVudCwhdGRiLCFweXRkYiwhbGRiLCFweWxkYiIKLQotRVhUUkFfT0VDT05GICs9ICItLWVuYWJsZS1maHMgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtcGlkZGlyPS9ydW4gXAotICAgICAgICAgICAgICAgICAtLXdpdGgtc29ja2V0cy1kaXI9L3J1bi9zYW1iYSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1tb2R1bGVzZGlyPSR7bGliZGlyfS9zYW1iYSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1sb2NrZGlyPSR7bG9jYWxzdGF0ZWRpcn0vbGliL3NhbWJhIFwKLSAgICAgICAgICAgICAgICAgLS13aXRoLWNhY2hlZGlyPSR7bG9jYWxzdGF0ZWRpcn0vbGliL3NhbWJhIFwKLSAgICAgICAgICAgICAgICAgLS1kaXNhYmxlLWdudXRscyBcCi0gICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1ycGF0aC1pbnN0YWxsIFwKLSAgICAgICAgICAgICAgICAgLS13aXRoLXNoYXJlZC1tb2R1bGVzPSR7U0FNQkE0X01PRFVMRVN9IFwKLSAgICAgICAgICAgICAgICAgLS1idW5kbGVkLWxpYnJhcmllcz0ke1NBTUJBNF9MSUJTfSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1zeXN0ZW0tbWl0a3JiNSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aG91dC1hZC1kYyBcCi0gICAgICAgICAgICAgICAgICR7QGJhc2VfY29uZGl0aW9uYWwoJ1RBUkdFVF9BUkNIJywgJ3g4Nl82NCcsICcnLCAnLS1kaXNhYmxlLWdsdXN0ZXJmcycsIGQpfSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1jbHVzdGVyLXN1cHBvcnQgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtcHJvZmlsaW5nLWRhdGEgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtbGliaWNvbnY9JHtTVEFHSU5HX0RJUl9IT1NUfSR7cHJlZml4fSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1wYW0gLS13aXRoLXBhbW1vZHVsZXNkaXI9JHtiYXNlX2xpYmRpcn0vc2VjdXJpdHkgXAotICAgICAgICAgICAgICAgICIKLQotTERGTEFHUyArPSAiLVdsLC16LHJlbHJvLC16LG5vdyAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ2xkLWlzLWdvbGQnLCAnIC1mdXNlLWxkPWJmZCAnLCAnJywgZCl9IgotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBmb3Igc2VjdGlvbiBpbiAxIDUgNzsgZG8KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHttYW5kaXJ9L21hbiRzZWN0aW9uCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCBjdGRiL2RvYy8qLiRzZWN0aW9uICR7RH0ke21hbmRpcn0vbWFuJHNlY3Rpb24KLSAgICBkb25lCi0gICAgZm9yIHNlY3Rpb24gaW4gMSA1IDcgODsgZG8KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHttYW5kaXJ9L21hbiRzZWN0aW9uCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCBkb2NzL21hbnBhZ2VzLyouJHNlY3Rpb24gJHtEfSR7bWFuZGlyfS9tYW4kc2VjdGlvbgotICAgIGRvbmUKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0KLSAgICBpbnN0YWxsIC1tIDA2NDQgcGFja2FnaW5nL3N5c3RlbWQvKi5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9Ci0gICAgc2VkIC1lICdzLFwoRXhlY1JlbG9hZD1cKS4qXCgva2lsbFwpLFwxJHtiYXNlX2JpbmRpcn1cMiwnIFwKLSAgICAgICAgLWUgJ3MsL2V0Yy9zeXNjb25maWcvc2FtYmEsJHtzeXNjb25mZGlyfS9kZWZhdWx0L3NhbWJhLCcgXAotICAgICAgICAtaSAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS8qLnNlcnZpY2UKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAotICAgIGluc3RhbGwgLW02NDQgcGFja2FnaW5nL3N5c3RlbWQvc2FtYmEuY29uZi50bXAgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9zYW1iYS5jb25mCi0gICAgZWNobyAiZCAke2xvY2Fsc3RhdGVkaXJ9L2xvZy9zYW1iYSAwNzU1IHJvb3Qgcm9vdCAtIiBcCi0gICAgICAgID4+ICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvc2FtYmEuY29uZgotICAgIGlmIFsgIiR7TFNCfSIgPSAibHNiIiBdOyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCi0gICAgICAgIGluc3RhbGwgLW0gMDc1NSBwYWNrYWdpbmcvTFNCL3NhbWJhLnNoICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9zYW1iYQotICAgIGVsc2UKLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICAgICAgaW5zdGFsbCAtbSAwNzU1IHBhY2thZ2luZy9zeXN2L3NhbWJhLmluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NhbWJhCi0gICAgICAgIHNlZCAtZSAncywvb3B0L3NhbWJhL2Jpbiwke3NiaW5kaXJ9LGcnIFwKLSAgICAgICAgICAgIC1lICdzLC9vcHQvc2FtYmEvc21iLmNvbmYsJHtzeXNjb25mZGlyfS9zYW1iYS9zbWIuY29uZixnJyBcCi0gICAgICAgICAgICAtZSAncywvb3B0L3NhbWJhL2xvZywke2xvY2Fsc3RhdGVkaXJ9L2xvZy9zYW1iYSxnJyBcCi0gICAgICAgICAgICAtZSAncywvZXRjL2luaXQuZC9zYW1iYS5zZXJ2ZXIsJHtzeXNjb25mZGlyfS9pbml0LmQvc2FtYmEsZycgXAotICAgICAgICAgICAgLWUgJ3MsL3Vzci9iaW4sJHtiYXNlX2JpbmRpcn0sZycgXAotICAgICAgICAgICAgLWkgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NhbWJhCi0gICAgZmkKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vc2FtYmEKLSAgICBlY2hvICIxMjcuMC4wLjEgbG9jYWxob3N0IiA+ICR7RH0ke3N5c2NvbmZkaXJ9L3NhbWJhL2xtaG9zdHMKLSAgICBpbnN0YWxsIC1tNjQ0IHBhY2thZ2luZy9MU0Ivc21iLmNvbmYgJHtEfSR7c3lzY29uZmRpcn0vc2FtYmEvc21iLmNvbmYKLSAgICBpbnN0YWxsIC1EIC1tIDY0NCAke1dPUktESVJ9L3ZvbGF0aWxlcy4wM19zYW1iYSAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcy8wM19zYW1iYQotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0Ci0gICAgaW5zdGFsbCAtbTY0NCBwYWNrYWdpbmcvc3lzdGVtZC9zYW1iYS5zeXNjb25maWcgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC9zYW1iYQotCi0gICAgIyBpbnN0YWxsIGN0ZGIgY29uZmlnIGZpbGUgYW5kIHRlc3QgY2FzZXMKLSAgICBpbnN0YWxsIC1EIC1tIDA2NDQgJHtTfS9jdGRiL3Rlc3RzL29ubm9kZS9ub2RlcyAke0R9JHtzeXNjb25mZGlyfS9jdGRiL25vZGVzCi0gICAgIyB0aGUgaXRlbXMgYXJlIGZyb20gY3RkYi90ZXN0cy9ydW5fdGVzdHMuc2gKLSAgICBmb3IgZCBpbiBvbm5vZGUgdGFrZW92ZXIgdG9vbCBldmVudHNjcmlwdHMgY3VuaXQgc2ltcGxlIGNvbXBsZXg7IGRvCi0gICAgICAgIHRlc3RkaXI9JHtEfSR7ZGF0YWRpcn0vY3RkYi10ZXN0cy8kZAotICAgICAgICBpbnN0YWxsIC1kICR0ZXN0ZGlyCi0gICAgICAgIGNwICR7U30vY3RkYi90ZXN0cy8kZC8qLnNoICR0ZXN0ZGlyCi0gICAgICAgIGNwIC1yICR7U30vY3RkYi90ZXN0cy8kZC9zY3JpcHRzICR7U30vY3RkYi90ZXN0cy8kZC9zdHVicyAkdGVzdGRpciB8fCB0cnVlCi0gICAgZG9uZQotCi0gICAgIyBmaXggZmlsZS1yZGVwcyBxYSB3YXJuaW5nCi0gICAgaWYgWyAtZiAke0R9JHtiaW5kaXJ9L29ubm9kZSBdOyB0aGVuCi0gICAgICAgIHNlZCAtaSAnczpcKCMhL2Jpbi9cKWJhc2g6XDFzaDonICR7RH0ke2JpbmRpcn0vb25ub2RlCi0gICAgZmkKLQotICAgIGNobW9kIDA3NTAgJHtEfSR7c3lzY29uZmRpcn0vc3Vkb2Vycy5kCi0gICAgcm0gLXJmICR7RH0vcnVuICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3J1biAke0R9JHtsb2NhbHN0YXRlZGlyfS9sb2cKLX0KLQotUEFDS0FHRVMgPSsgIiR7UE59LXB5dGhvbiAke1BOfS1waWRsIFwKLSAgICAgICAgICAgICAke1BOfS1kc2RiLW1vZHVsZXMgJHtQTn0tdGVzdHN1aXRlIHJlZ2lzdHJ5LXRvb2xzIFwKLSAgICAgICAgICAgICB3aW5iaW5kIFwKLSAgICAgICAgICAgICAke1BOfS1jb21tb24gJHtQTn0tYmFzZSAke1BOfS1jdGRiLXRlc3RzIFwKLSAgICAgICAgICAgICBzbWJjbGllbnQiCi0KLXB5dGhvbiBzYW1iYV9wb3B1bGF0ZV9wYWNrYWdlcygpIHsKLSAgICBkZWYgbW9kdWxlX2hvb2soZmlsZSwgcGtnLCBwYXR0ZXJuLCBmb3JtYXQsIGJhc2VuYW1lKToKLSAgICAgICAgcG4gPSBkLmdldFZhcignUE4nLCBUcnVlKQotICAgICAgICBkLmFwcGVuZFZhcignUlJFQ09NTUVORFNfJXMtYmFzZScgJSBwbiwgJyAlcycgJSBwa2cpCi0KLSAgICBtbHByZWZpeCA9IGQuZ2V0VmFyKCdNTFBSRUZJWCcsIFRydWUpIG9yICcnCi0gICAgcGFtX2xpYmRpciA9IGQuZXhwYW5kKCcke2Jhc2VfbGliZGlyfS9zZWN1cml0eScpCi0gICAgcGFtX3BrZ25hbWUgPSBtbHByZWZpeCArICdwYW0tcGx1Z2luJXMnCi0gICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgcGFtX2xpYmRpciwgJ15wYW1fKC4qKVwuc28kJywgcGFtX3BrZ25hbWUsICdQQU0gcGx1Z2luIGZvciAlcycsIGV4dHJhX2RlcGVuZHM9JycsIHByZXBlbmQ9VHJ1ZSkKLQotICAgIGxpYmRpciA9IGQuZ2V0VmFyKCdsaWJkaXInLCBUcnVlKQotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIGxpYmRpciwgJ15saWIoLiopXC5zb1wuLiokJywgJ2xpYiVzJywgJ1NhbWJhICVzIGxpYnJhcnknLCBleHRyYV9kZXBlbmRzPScke1BOfS1jb21tb24nLCBwcmVwZW5kPVRydWUsIGFsbG93X2xpbmtzPVRydWUpCi0gICAgcGtnbGliZGlyID0gJyVzL3NhbWJhJyAlIGxpYmRpcgotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIHBrZ2xpYmRpciwgJ15saWIoLiopXC5zbyQnLCAnbGliJXMnLCAnU2FtYmEgJXMgbGlicmFyeScsIGV4dHJhX2RlcGVuZHM9JyR7UE59LWNvbW1vbicsIHByZXBlbmQ9VHJ1ZSkKLSAgICBtb2R1bGVkaXIgPSAnJXMvc2FtYmEvYXV0aCcgJSBsaWJkaXIKLSAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBtb2R1bGVkaXIsICdeKC4qKVwuc28kJywgJ3NhbWJhLWF1dGgtJXMnLCAnU2FtYmEgJXMgYXV0aGVudGljYXRpb24gYmFja2VuZCcsIGhvb2s9bW9kdWxlX2hvb2ssIGV4dHJhX2RlcGVuZHM9JycsIHByZXBlbmQ9VHJ1ZSkKLSAgICBtb2R1bGVkaXIgPSAnJXMvc2FtYmEvcGRiJyAlIGxpYmRpcgotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIG1vZHVsZWRpciwgJ14oLiopXC5zbyQnLCAnc2FtYmEtcGRiLSVzJywgJ1NhbWJhICVzIHBhc3N3b3JkIGJhY2tlbmQnLCBob29rPW1vZHVsZV9ob29rLCBleHRyYV9kZXBlbmRzPScnLCBwcmVwZW5kPVRydWUpCi19Ci0KLVBBQ0tBR0VTUExJVEZVTkNTX3ByZXBlbmQgPSAic2FtYmFfcG9wdWxhdGVfcGFja2FnZXMgIgotCi1SREVQRU5EU18ke1BOfSArPSAiJHtQTn0tYmFzZSAke1BOfS1weXRob24gJHtQTn0tZHNkYi1tb2R1bGVzIgotUkRFUEVORFNfJHtQTn0tcHl0aG9uICs9ICJweXRhbGxvYyBweXRob24tdGRiIgotCi1GSUxFU18ke1BOfS1iYXNlID0gIiR7c2JpbmRpcn0vbm1iZCBcCi0gICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0vc21iZCBcCi0gICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kIFwKLSAgICAgICAgICAgICAgICAgICAgJHtsb2NhbHN0YXRlZGlyfS9saWIvc2FtYmEgXAotICAgICAgICAgICAgICAgICAgICAke2xvY2Fsc3RhdGVkaXJ9L25tYmQgXAotICAgICAgICAgICAgICAgICAgICAke2xvY2Fsc3RhdGVkaXJ9L3Nwb29sL3NhbWJhIFwKLSAgICAgICAgICAgICAgICAgICAgJHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS9ubWIuc2VydmljZSBcCi0gICAgICAgICAgICAgICAgICAgICR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0vc2FtYmEuc2VydmljZSBcCi0gICAgICAgICAgICAgICAgICAgICR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0vc21iLnNlcnZpY2UiCi0KLUZJTEVTXyR7UE59LWN0ZGItdGVzdHMgPSAiJHtiaW5kaXJ9L2N0ZGJfcnVuX3Rlc3RzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L2N0ZGJfcnVuX2NsdXN0ZXJfdGVzdHMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2N0ZGIvbm9kZXMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2N0ZGItdGVzdHMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2N0ZGIvdGVzdHMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICIKLQotRklMRVNfJHtCUE59LWNvbW1vbiA9ICIke3N5c2NvbmZkaXJ9L2RlZmF1bHQgXAotICAgICAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L3NhbWJhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS90bXBmaWxlcy5kIFwKLSIKLQotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS92ZnMvKi5zbyBcCi0gICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2NoYXJzZXQvKi5zbyBcCi0gICAgICAgICAgICAgICAgJHtsaWJkaXJ9LyouZGF0IFwKLSAgICAgICAgICAgICAgICAke2xpYmRpcn0vYXV0aC8qLnNvIFwKLSIKLQotRklMRVNfJHtQTn0tZHNkYi1tb2R1bGVzID0gIiR7bGliZGlyfS9zYW1iYS9sZGIiCi0KLUZJTEVTXyR7UE59LXRlc3RzdWl0ZSA9ICIke2JpbmRpcn0vZ2VudGVzdCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L2xvY2t0ZXN0IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vbWFza3Rlc3QgXAotICAgICAgICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9uZHJkdW1wIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vc21idG9ydHVyZSIKLQotRklMRVNfcmVnaXN0cnktdG9vbHMgPSAiJHtiaW5kaXJ9L3JlZ2RpZmYgXAotICAgICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3JlZ3BhdGNoIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9yZWdzaGVsbCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vcmVndHJlZSIKLQotRklMRVNfd2luYmluZCA9ICIke3NiaW5kaXJ9L3dpbmJpbmRkIFwKLSAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3diaW5mbyBcCi0gICAgICAgICAgICAgICAgICR7YmluZGlyfS9udGxtX2F1dGggXAotICAgICAgICAgICAgICAgICAke2xpYmRpcn0vc2FtYmEvaWRtYXAgXAotICAgICAgICAgICAgICAgICAke2xpYmRpcn0vc2FtYmEvbnNzX2luZm8gXAotICAgICAgICAgICAgICAgICAke2xpYmRpcn0vd2luYmluZF9rcmI1X2xvY2F0b3Iuc28gXAotICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2luaXQuZC93aW5iaW5kIFwKLSAgICAgICAgICAgICAgICAgJHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS93aW5iaW5kLnNlcnZpY2UiCi0KLUZJTEVTXyR7UE59LXB5dGhvbiA9ICIke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfSIKLQotRklMRVNfc21iY2xpZW50ID0gIiR7YmluZGlyfS9jaWZzZGQgXAotICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9ycGNjbGllbnQgXAotICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9zbWJjYWNscyBcCi0gICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYmNsaWVudCBcCi0gICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYmNxdW90YXMgXAotICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9zbWJnZXQgXAotICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9zbWJzcG9vbCBcCi0gICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYnRhciBcCi0gICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYnRyZWUgXAotICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9zYW1iYS9zbWJzcG9vbF9rcmI1X3dyYXBwZXIiCi0KLVJERVBFTkRTXyR7UE59LXBpZGxfYXBwZW5kID0gIiBwZXJsIgotRklMRVNfJHtQTn0tcGlkbCA9ICIke2JpbmRpcn0vcGlkbCAke2RhdGFkaXJ9L3Blcmw1L1BhcnNlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmFfNC43LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYV80LjcuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODUxN2M1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmFfNC43LjYuYmIKQEAgLTAsMCArMSwzMTggQEAKK0hPTUVQQUdFID0gImh0dHBzOi8vd3d3LnNhbWJhLm9yZy8iCitTRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKKworTElDRU5TRSA9ICJHUEwtMy4wKyAmIExHUEwtMy4wKyAmIEdQTC0yLjArIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vJHtDT1JFQkFTRX0vbWV0YS9maWxlcy9jb21tb24tbGljZW5zZXMvTEdQTC0zLjA7bWQ1PWJmY2NmZTk1MjI2OWZmZjJiNDA3ZGQxMWYyZjMwODNiIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovLyR7Q09SRUJBU0V9L21ldGEvZmlsZXMvY29tbW9uLWxpY2Vuc2VzL0dQTC0yLjA7bWQ1PTgwMWY4MDk4MGQxNzFkZDY0MjU2MTA4MzNhMjJkYmU2ICIKKworU0FNQkFfTUlSUk9SID0gImh0dHA6Ly9zYW1iYS5vcmcvc2FtYmEvZnRwIgorTUlSUk9SUyArPSAiXAorJHtTQU1CQV9NSVJST1J9ICAgIGh0dHA6Ly9taXJyb3IuaW50ZXJub2RlLm9uLm5ldC9wdWIvc2FtYmEgXG4gXAorJHtTQU1CQV9NSVJST1J9ICAgIGh0dHA6Ly93d3cubWlycm9yc2VydmljZS5vcmcvc2l0ZXMvZnRwLnNhbWJhLm9yZyBcbiBcCisiCisKK1NSQ19VUkkgPSAiJHtTQU1CQV9NSVJST1J9L3N0YWJsZS9zYW1iYS0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vMTYtZG8tbm90LWNoZWNrLXhzbHRwcm9jLW1hbnBhZ2VzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzIwLWRvLW5vdC1pbXBvcnQtdGFyZ2V0LW1vZHVsZS13aGlsZS1jcm9zcy1jb21waWxlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzIxLWFkZC1jb25maWctb3B0aW9uLXdpdGhvdXQtdmFsZ3JpbmQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1wYWNrYWdpbmctQXZvaWQtdGltZW91dC1mb3Itbm1iZC1pZi1zdGFydGVkLW9mZmxpbmUtLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDYtYXZvaWQtdXNpbmctY29sb24taW4tdGhlLWNoZWNraW5nLW1zZy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9uZXRkYl9kZWZpbmVzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2dsaWJjX29ubHkucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vaWNvbnYtNC43LjAucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZG5zc2VydmVyLTQuNy4wLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3NtYl9jb25mLTQuNy4wLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3ZvbGF0aWxlcy4wM19zYW1iYSBcCisgICAgICAgICAgIgorU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBcCisgICAgICAgICAgIGZpbGU6Ly9zYW1iYS1wYW0ucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vc2FtYmEtNC4zLjktcmVtb3ZlLWdldHB3ZW50X3IucGF0Y2ggXAorICAgICAgICAgICIKKworU1JDX1VSSVttZDVzdW1dID0gIjAyNTMwMjFhNDVjNDc5Y2VjMWUxMzViMDA0YTAxNzdhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFlZWRlMzBmYzhlZjY1MDRlMjQ2MDJmYjcyYjAwYmFhMGE3YjczYjU5ZjE2ZDI1Y2IwNzcxZGM4YzdjNTdkNmUiCisKK2luaGVyaXQgc3lzdGVtZCB3YWYtc2FtYmEgY3Bhbi1iYXNlIHBlcmxuYXRpdmUgdXBkYXRlLXJjLmQKKyMgcmVtb3ZlIGRlZmF1bHQgYWRkZWQgUkRFUEVORFMgb24gcGVybAorUkRFUEVORFNfJHtQTn1fcmVtb3ZlID0gInBlcmwiCisKK0RFUEVORFMgKz0gInJlYWRsaW5lIHZpcnR1YWwvbGliaWNvbnYgemxpYiBwb3B0IGxpYnRhbGxvYyBsaWJ0ZGIgbGlidGV2ZW50IGxpYmxkYiBsaWJic2QgbGliYWlvIGxpYnBhbSIKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJwYW0iCisKK0RFUEVORFNfYXBwZW5kX2xpYmMtbXVzbCA9ICIgbGlidGlycGMiCitDRkxBR1NfYXBwZW5kX2xpYmMtbXVzbCA9ICIgLUkke1NUQUdJTkdfSU5DRElSfS90aXJwYyIKK0xERkxBR1NfYXBwZW5kX2xpYmMtbXVzbCA9ICIgLWx0aXJwYyIKKworTFNCID0gIiIKK0xTQl9saW51eHN0ZGJhc2UgPSAibHNiIgorCitJTklUU0NSSVBUX05BTUUgPSAic2FtYmEiCitJTklUU0NSSVBUX1BBUkFNUyA9ICJzdGFydCAyMCAzIDUgLiBzdG9wIDIwIDAgMSA2IC4iCisKK1NZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0tYmFzZSAke1BOfS1hZC1kYyB3aW5iaW5kIgorU1lTVEVNRF9TRVJWSUNFXyR7UE59LWJhc2UgPSAibm1iLnNlcnZpY2Ugc21iLnNlcnZpY2UiCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0tYWQtZGMgPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnYWQtZGMnLCAnc2FtYmEuc2VydmljZScsICcnLCBkKX0iCitTWVNURU1EX1NFUlZJQ0Vfd2luYmluZCA9ICJ3aW5iaW5kLnNlcnZpY2UiCisKKyMgVGhlcmUgYXJlIHByZXJlcXVpc2l0ZSBzZXR0aW5ncyB0byBlbmFibGUgYWQtZGMsIHNvIGRpc2FibGUgdGhlIHNlcnZpY2UgYnkgZGVmYXVsdC4KKyMgUmVmZXJlbmNlOgorIyBodHRwczovL3dpa2kuc2FtYmEub3JnL2luZGV4LnBocC9TZXR0aW5nX3VwX1NhbWJhX2FzX2FuX0FjdGl2ZV9EaXJlY3RvcnlfRG9tYWluX0NvbnRyb2xsZXIKK1NZU1RFTURfQVVUT19FTkFCTEVfJHtQTn0tYWQtZGMgPSAiZGlzYWJsZSIKKworIyBVc2Uga3JiNS4gIEJ1aWxkIGFjdGl2ZSBkb21haW4gY29udHJvbGxlci4KKyMKK1BBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kIHplcm9jb25mJywgZCl9IFwKKyAgICAgICAgICAgICAgICAgICBhY2wgYWQtZGMgY3VwcyBnbnV0bHMgbGRhcCBtaXRrcmI1IFwKKyIKKworUkRFUEVORFNfJHtQTn0tYmFzZSArPSAiJHtMU0J9IgorUkRFUEVORFNfJHtQTn0tY3RkYi10ZXN0cyArPSAiYmFzaCB1dGlsLWxpbnV4LWdldG9wdCIKKworUEFDS0FHRUNPTkZJR1thY2xdID0gIi0td2l0aC1hY2wtc3VwcG9ydCwtLXdpdGhvdXQtYWNsLXN1cHBvcnQsYWNsIgorUEFDS0FHRUNPTkZJR1tmYW1dID0gIi0td2l0aC1mYW0sLS13aXRob3V0LWZhbSxnYW1pbiIKK1BBQ0tBR0VDT05GSUdbY3Vwc10gPSAiLS1lbmFibGUtY3VwcywtLWRpc2FibGUtY3VwcyxjdXBzIgorUEFDS0FHRUNPTkZJR1tsZGFwXSA9ICItLXdpdGgtbGRhcCwtLXdpdGhvdXQtbGRhcCxvcGVubGRhcCIKK1BBQ0tBR0VDT05GSUdbc2FzbF0gPSAiLCxjeXJ1cy1zYXNsIgorUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICItLXdpdGgtc3lzdGVtZCwtLXdpdGhvdXQtc3lzdGVtZCxzeXN0ZW1kIgorUEFDS0FHRUNPTkZJR1tkbWFwaV0gPSAiLS13aXRoLWRtYXBpLC0td2l0aG91dC1kbWFwaSxkbWFwaSIKK1BBQ0tBR0VDT05GSUdbemVyb2NvbmZdID0gIi0tZW5hYmxlLWF2YWhpLC0tZGlzYWJsZS1hdmFoaSxhdmFoaSIKK1BBQ0tBR0VDT05GSUdbdmFsZ3JpbmRdID0gIiwtLXdpdGhvdXQtdmFsZ3JpbmQsdmFsZ3JpbmQsIgorUEFDS0FHRUNPTkZJR1tsdHRuZ10gPSAiLS13aXRoLWx0dG5nLCAtLXdpdGhvdXQtbHR0bmcsbHR0bmctdXN0IgorUEFDS0FHRUNPTkZJR1thcmNoaXZlXSA9ICItLXdpdGgtbGliYXJjaGl2ZSwgLS13aXRob3V0LWxpYmFyY2hpdmUsIGxpYmFyY2hpdmUiCisKKyMgQnVpbGRpbmcgdGhlIEFEIChBY3RpdmUgRGlyZWN0b3J5KSBEQyAoRG9tYWluIENvbnRyb2xsZXIpIHJlcXVpcmVzIEdudVRMUywKKyMgQW5kIGFkLWRjIGRvZXNuJ3Qgd29yayB3aXRoIG1pdGtyYjUgZm9yIHZlcnNpb25zIHByaW9yIHRvIDQuNy4wIGFjY29yZGluZyB0bzoKKyMgaHR0cDovL3NhbWJhLjIyODMzMjUubjQubmFiYmxlLmNvbS9zYW1iYS00LTYtNi1Vbmtub3duLWRlcGVuZGVuY3kta2RjLWluLXNlcnZpY2Uta2RjLW9iamxpc3QtdGQ0NzIyMDk2Lmh0bWwKKyMgU28gdGhlIHdvcmtpbmcgY29tYmluYXRpb24gaXM6CisjIDEpIGFkLWRjOiBlbmFibGUsIGdudXRsczogZW5hYmxlLCBtaXRrcmI1OiBkaXNhYmxlCisjIDIpIGFkLWRjOiBkaXNhYmxlLCBnbnV0bHM6IGVuYWJsZS9kaXNhYmxlLCBtaXRrcmI1OiBlbmFibGUKKyMKKyMgV2UgYXJlIG5vdyBhdCA0LjcuMCwgc28gdGFrZSB0aGUgYWJvdmUgd2l0aCBhIGdyYWluIG9mIHNhbHQuIFdlIGRvIG5vdCBuZWVkIHRvIGtub3cgd2hlcmUKKyMga3JiNWtkYyBpcyB1bmxlc3MgYWQtZGMgaXMgZW5hYmxlZCwgYnV0IHdlIHRlbGwgY29uZmlndXJlIGFueWhvdy4KKyMKK1BBQ0tBR0VDT05GSUdbYWQtZGNdID0gIiwtLXdpdGhvdXQtYWQtZGMsLCIKK1BBQ0tBR0VDT05GSUdbZ251dGxzXSA9ICItLWVuYWJsZS1nbnV0bHMsLS1kaXNhYmxlLWdudXRscyxnbnV0bHMsIgorUEFDS0FHRUNPTkZJR1ttaXRrcmI1XSA9ICItLXdpdGgtc3lzdGVtLW1pdGtyYjUgLS13aXRoLXN5c3RlbS1taXRrZGM9L3Vzci9zYmluL2tyYjVrZGMsLGtyYjUsIgorCitTQU1CQTRfSURNQVBfTU9EVUxFUz0iaWRtYXBfYWQsaWRtYXBfcmlkLGlkbWFwX2FkZXgsaWRtYXBfaGFzaCxpZG1hcF90ZGIyIgorU0FNQkE0X1BEQl9NT0RVTEVTPSJwZGJfdGRic2FtLCR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2xkYXAnLCAncGRiX2xkYXAsJywgJycsIGQpfXBkYl9hZHMscGRiX3NtYnBhc3N3ZCxwZGJfd2JjX3NhbSxwZGJfc2FtYmE0IgorU0FNQkE0X0FVVEhfTU9EVUxFUz0iYXV0aF91bml4LGF1dGhfd2JjLGF1dGhfc2VydmVyLGF1dGhfbmV0bG9nb25kLGF1dGhfc2NyaXB0LGF1dGhfc2FtYmE0IgorU0FNQkE0X01PRFVMRVM9IiR7U0FNQkE0X0lETUFQX01PRFVMRVN9LCR7U0FNQkE0X1BEQl9NT0RVTEVTfSwke1NBTUJBNF9BVVRIX01PRFVMRVN9IgorCisjIFRoZXNlIGxpYnJhcmllcyBhcmUgc3VwcG9zZWQgdG8gcmVwbGFjZSBvdGhlcnMgc3VwcGxpZWQgYnkgcGFja2FnZXMsIGJ1dCBkZWNvcmF0ZSB0aGUgbmFtZXMgb2YKKyMgLnNvIGZpbGVzIHNvIHRoZXJlIHdpbGwgbm90IGJlIGEgY29uZmxpY3QuICBUaGlzIGlzIG5vdCBkb25lIGNvbnNpc3RhbnRseSwgc28gYmUgdmVyeSBjYXJlZnVsCisjIHdoZW4gYWRkaW5nIHRvIHRoaXMgbGlzdC4KKyMKK1NBTUJBNF9MSUJTPSJoZWltZGFsLGNtb2NrYSxOT05FIgorCitFWFRSQV9PRUNPTkYgKz0gIi0tZW5hYmxlLWZocyBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1waWRkaXI9L3J1biBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1zb2NrZXRzLWRpcj0vcnVuL3NhbWJhIFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLW1vZHVsZXNkaXI9JHtsaWJkaXJ9L3NhbWJhIFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLWxvY2tkaXI9JHtsb2NhbHN0YXRlZGlyfS9saWIvc2FtYmEgXAorICAgICAgICAgICAgICAgICAtLXdpdGgtY2FjaGVkaXI9JHtsb2NhbHN0YXRlZGlyfS9saWIvc2FtYmEgXAorICAgICAgICAgICAgICAgICAtLWRpc2FibGUtcnBhdGgtaW5zdGFsbCBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1zaGFyZWQtbW9kdWxlcz0ke1NBTUJBNF9NT0RVTEVTfSBcCisgICAgICAgICAgICAgICAgIC0tYnVuZGxlZC1saWJyYXJpZXM9JHtTQU1CQTRfTElCU30gXAorICAgICAgICAgICAgICAgICAke0BvZS51dGlscy5jb25kaXRpb25hbCgnVEFSR0VUX0FSQ0gnLCAneDg2XzY0JywgJycsICctLWRpc2FibGUtZ2x1c3RlcmZzJywgZCl9IFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLWNsdXN0ZXItc3VwcG9ydCBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1wcm9maWxpbmctZGF0YSBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1saWJpY29udj0ke1NUQUdJTkdfRElSX0hPU1R9JHtwcmVmaXh9IFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLXBhbSAtLXdpdGgtcGFtbW9kdWxlc2Rpcj0ke2Jhc2VfbGliZGlyfS9zZWN1cml0eSBcCisgICAgICAgICAgICAgICAgIgorCitMREZMQUdTICs9ICItV2wsLXoscmVscm8sLXosbm93ICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnbGQtaXMtZ29sZCcsICcgLWZ1c2UtbGQ9YmZkICcsICcnLCBkKX0iCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGZvciBzZWN0aW9uIGluIDEgNSA3OyBkbworICAgICAgICBpbnN0YWxsIC1kICR7RH0ke21hbmRpcn0vbWFuJHNlY3Rpb24KKyAgICAgICAgaW5zdGFsbCAtbSAwNjQ0IGN0ZGIvZG9jLyouJHNlY3Rpb24gJHtEfSR7bWFuZGlyfS9tYW4kc2VjdGlvbgorICAgIGRvbmUKKyAgICBmb3Igc2VjdGlvbiBpbiAxIDUgNyA4OyBkbworICAgICAgICBpbnN0YWxsIC1kICR7RH0ke21hbmRpcn0vbWFuJHNlY3Rpb24KKyAgICAgICAgaW5zdGFsbCAtbSAwNjQ0IGRvY3MvbWFucGFnZXMvKi4kc2VjdGlvbiAke0R9JHttYW5kaXJ9L21hbiRzZWN0aW9uCisgICAgZG9uZQorCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfQorICAgIGluc3RhbGwgLW0gMDY0NCBwYWNrYWdpbmcvc3lzdGVtZC8qLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0KKyAgICBzZWQgLWUgJ3MsXChFeGVjUmVsb2FkPVwpLipcKC9raWxsXCksXDEke2Jhc2VfYmluZGlyfVwyLCcgXAorICAgICAgICAtZSAncywvZXRjL3N5c2NvbmZpZy9zYW1iYSwke3N5c2NvbmZkaXJ9L2RlZmF1bHQvc2FtYmEsJyBcCisgICAgICAgIC1pICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9Lyouc2VydmljZQorCisgICAgaWYgWyAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnYWQtZGMnLCAneWVzJywgJ25vJywgZCl9IiA9ICJubyIgXTsgdGhlbgorICAgICAgICBybSAtZiAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS9zYW1iYS5zZXJ2aWNlCisgICAgZmkKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAorICAgIGluc3RhbGwgLW02NDQgcGFja2FnaW5nL3N5c3RlbWQvc2FtYmEuY29uZi50bXAgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9zYW1iYS5jb25mCisgICAgZWNobyAiZCAke2xvY2Fsc3RhdGVkaXJ9L2xvZy9zYW1iYSAwNzU1IHJvb3Qgcm9vdCAtIiBcCisgICAgICAgID4+ICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvc2FtYmEuY29uZgorICAgIGlmIFsgIiR7TFNCfSIgPSAibHNiIiBdOyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgICAgIGluc3RhbGwgLW0gMDc1NSBwYWNrYWdpbmcvTFNCL3NhbWJhLnNoICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9zYW1iYQorICAgIGVsc2UKKyAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICAgICAgaW5zdGFsbCAtbSAwNzU1IHBhY2thZ2luZy9zeXN2L3NhbWJhLmluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NhbWJhCisgICAgICAgIHNlZCAtZSAncywvb3B0L3NhbWJhL2Jpbiwke3NiaW5kaXJ9LGcnIFwKKyAgICAgICAgICAgIC1lICdzLC9vcHQvc2FtYmEvc21iLmNvbmYsJHtzeXNjb25mZGlyfS9zYW1iYS9zbWIuY29uZixnJyBcCisgICAgICAgICAgICAtZSAncywvb3B0L3NhbWJhL2xvZywke2xvY2Fsc3RhdGVkaXJ9L2xvZy9zYW1iYSxnJyBcCisgICAgICAgICAgICAtZSAncywvZXRjL2luaXQuZC9zYW1iYS5zZXJ2ZXIsJHtzeXNjb25mZGlyfS9pbml0LmQvc2FtYmEsZycgXAorICAgICAgICAgICAgLWUgJ3MsL3Vzci9iaW4sJHtiYXNlX2JpbmRpcn0sZycgXAorICAgICAgICAgICAgLWkgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NhbWJhCisgICAgZmkKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vc2FtYmEKKyAgICBlY2hvICIxMjcuMC4wLjEgbG9jYWxob3N0IiA+ICR7RH0ke3N5c2NvbmZkaXJ9L3NhbWJhL2xtaG9zdHMKKyAgICBpbnN0YWxsIC1tNjQ0IHBhY2thZ2luZy9SSEVML3NldHVwL3NtYi5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L3NhbWJhL3NtYi5jb25mCisgICAgaW5zdGFsbCAtRCAtbSA2NDQgJHtXT1JLRElSfS92b2xhdGlsZXMuMDNfc2FtYmEgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvMDNfc2FtYmEKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdAorICAgIGluc3RhbGwgLW02NDQgcGFja2FnaW5nL3N5c3RlbWQvc2FtYmEuc3lzY29uZmlnICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvc2FtYmEKKworICAgICMgaW5zdGFsbCBjdGRiIGNvbmZpZyBmaWxlIGFuZCB0ZXN0IGNhc2VzCisgICAgaW5zdGFsbCAtRCAtbSAwNjQ0ICR7U30vY3RkYi90ZXN0cy9vbm5vZGUvbm9kZXMgJHtEfSR7c3lzY29uZmRpcn0vY3RkYi9ub2RlcworICAgICMgdGhlIGl0ZW1zIGFyZSBmcm9tIGN0ZGIvdGVzdHMvcnVuX3Rlc3RzLnNoCisgICAgZm9yIGQgaW4gb25ub2RlIHRha2VvdmVyIHRvb2wgZXZlbnRzY3JpcHRzIGN1bml0IHNpbXBsZSBjb21wbGV4OyBkbworICAgICAgICB0ZXN0ZGlyPSR7RH0ke2RhdGFkaXJ9L2N0ZGItdGVzdHMvJGQKKyAgICAgICAgaW5zdGFsbCAtZCAkdGVzdGRpcgorICAgICAgICBjcCAke1N9L2N0ZGIvdGVzdHMvJGQvKi5zaCAkdGVzdGRpcgorICAgICAgICBjcCAtciAke1N9L2N0ZGIvdGVzdHMvJGQvc2NyaXB0cyAke1N9L2N0ZGIvdGVzdHMvJGQvc3R1YnMgJHRlc3RkaXIgfHwgdHJ1ZQorICAgIGRvbmUKKworICAgICMgZml4IGZpbGUtcmRlcHMgcWEgd2FybmluZworICAgIGlmIFsgLWYgJHtEfSR7YmluZGlyfS9vbm5vZGUgXTsgdGhlbgorICAgICAgICBzZWQgLWkgJ3M6XCgjIS9iaW4vXCliYXNoOlwxc2g6JyAke0R9JHtiaW5kaXJ9L29ubm9kZQorICAgIGZpCisKKyAgICBjaG1vZCAwNzUwICR7RH0ke3N5c2NvbmZkaXJ9L3N1ZG9lcnMuZAorICAgIHJtIC1yZiAke0R9L3J1biAke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4gJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbG9nCit9CisKK1BBQ0tBR0VTID0rICIke1BOfS1weXRob24gJHtQTn0tcGlkbCBcCisgICAgICAgICAgICAgJHtQTn0tZHNkYi1tb2R1bGVzICR7UE59LXRlc3RzdWl0ZSByZWdpc3RyeS10b29scyBcCisgICAgICAgICAgICAgd2luYmluZCBcCisgICAgICAgICAgICAgJHtQTn0tY29tbW9uICR7UE59LWJhc2UgJHtQTn0tYWQtZGMgJHtQTn0tY3RkYi10ZXN0cyBcCisgICAgICAgICAgICAgc21iY2xpZW50ICR7UE59LWNsaWVudCAke1BOfS1zZXJ2ZXIgJHtQTn0tdGVzdCIKKworcHl0aG9uIHNhbWJhX3BvcHVsYXRlX3BhY2thZ2VzKCkgeworICAgIGRlZiBtb2R1bGVfaG9vayhmaWxlLCBwa2csIHBhdHRlcm4sIGZvcm1hdCwgYmFzZW5hbWUpOgorICAgICAgICBwbiA9IGQuZ2V0VmFyKCdQTicsIFRydWUpCisgICAgICAgIGQuYXBwZW5kVmFyKCdSUkVDT01NRU5EU18lcy1iYXNlJyAlIHBuLCAnICVzJyAlIHBrZykKKworICAgIG1scHJlZml4ID0gZC5nZXRWYXIoJ01MUFJFRklYJywgVHJ1ZSkgb3IgJycKKyAgICBwYW1fbGliZGlyID0gZC5leHBhbmQoJyR7YmFzZV9saWJkaXJ9L3NlY3VyaXR5JykKKyAgICBwYW1fcGtnbmFtZSA9IG1scHJlZml4ICsgJ3BhbS1wbHVnaW4lcycKKyAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBwYW1fbGliZGlyLCAnXnBhbV8oLiopXC5zbyQnLCBwYW1fcGtnbmFtZSwgJ1BBTSBwbHVnaW4gZm9yICVzJywgZXh0cmFfZGVwZW5kcz0nJywgcHJlcGVuZD1UcnVlKQorCisgICAgbGliZGlyID0gZC5nZXRWYXIoJ2xpYmRpcicsIFRydWUpCisgICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgbGliZGlyLCAnXmxpYiguKilcLnNvXC4uKiQnLCAnbGliJXMnLCAnU2FtYmEgJXMgbGlicmFyeScsIGV4dHJhX2RlcGVuZHM9JyR7UE59LWNvbW1vbicsIHByZXBlbmQ9VHJ1ZSwgYWxsb3dfbGlua3M9VHJ1ZSkKKyAgICBwa2dsaWJkaXIgPSAnJXMvc2FtYmEnICUgbGliZGlyCisgICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgcGtnbGliZGlyLCAnXmxpYiguKilcLnNvJCcsICdsaWIlcycsICdTYW1iYSAlcyBsaWJyYXJ5JywgZXh0cmFfZGVwZW5kcz0nJHtQTn0tY29tbW9uJywgcHJlcGVuZD1UcnVlKQorICAgIG1vZHVsZWRpciA9ICclcy9zYW1iYS9hdXRoJyAlIGxpYmRpcgorICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIG1vZHVsZWRpciwgJ14oLiopXC5zbyQnLCAnc2FtYmEtYXV0aC0lcycsICdTYW1iYSAlcyBhdXRoZW50aWNhdGlvbiBiYWNrZW5kJywgaG9vaz1tb2R1bGVfaG9vaywgZXh0cmFfZGVwZW5kcz0nJywgcHJlcGVuZD1UcnVlKQorICAgIG1vZHVsZWRpciA9ICclcy9zYW1iYS9wZGInICUgbGliZGlyCisgICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgbW9kdWxlZGlyLCAnXiguKilcLnNvJCcsICdzYW1iYS1wZGItJXMnLCAnU2FtYmEgJXMgcGFzc3dvcmQgYmFja2VuZCcsIGhvb2s9bW9kdWxlX2hvb2ssIGV4dHJhX2RlcGVuZHM9JycsIHByZXBlbmQ9VHJ1ZSkKK30KKworUEFDS0FHRVNQTElURlVOQ1NfcHJlcGVuZCA9ICJzYW1iYV9wb3B1bGF0ZV9wYWNrYWdlcyAiCisKK1JERVBFTkRTXyR7UE59ICs9ICIke1BOfS1iYXNlICR7UE59LXB5dGhvbiAke1BOfS1kc2RiLW1vZHVsZXMiCitSREVQRU5EU18ke1BOfS1weXRob24gKz0gInB5dGFsbG9jIHB5dGhvbi10ZGIiCisKK0ZJTEVTXyR7UE59LWJhc2UgPSAiJHtzYmluZGlyfS9ubWJkIFwKKyAgICAgICAgICAgICAgICAgICAgJHtzYmluZGlyfS9zbWJkIFwKKyAgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9pbml0LmQgXAorICAgICAgICAgICAgICAgICAgICAke2xvY2Fsc3RhdGVkaXJ9L2xpYi9zYW1iYSBcCisgICAgICAgICAgICAgICAgICAgICR7bG9jYWxzdGF0ZWRpcn0vbm1iZCBcCisgICAgICAgICAgICAgICAgICAgICR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvc2FtYmEgXAorICAgICAgICAgICAgICAgICAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L25tYi5zZXJ2aWNlIFwKKyAgICAgICAgICAgICAgICAgICAgJHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS9zbWIuc2VydmljZSIKKworRklMRVNfJHtQTn0tYWQtZGMgPSAiJHtzYmluZGlyfS9zYW1iYSBcCisgICAgICAgICAgICAgICAgICAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L3NhbWJhLnNlcnZpY2UgXAorICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy9rZGIvc2FtYmEuc28gXAorICAgICAgICAgICAgICAgICAgICAiCitSREVQRU5EU18ke1BOfS1hZC1kYyA9ICJrcmI1LWtkYyIKKworRklMRVNfJHtQTn0tY3RkYi10ZXN0cyA9ICIke2JpbmRpcn0vY3RkYl9ydW5fdGVzdHMgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vY3RkYl9ydW5fY2x1c3Rlcl90ZXN0cyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vY3RkYi9ub2RlcyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vY3RkYi10ZXN0cyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vY3RkYi90ZXN0cyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIgorCitGSUxFU18ke0JQTn0tY29tbW9uID0gIiR7c3lzY29uZmRpcn0vZGVmYXVsdCBcCisgICAgICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vc2FtYmEgXAorICAgICAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQgXAorIgorCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L3Zmcy8qLnNvIFwKKyAgICAgICAgICAgICAgICAke2xpYmRpcn0vY2hhcnNldC8qLnNvIFwKKyAgICAgICAgICAgICAgICAke2xpYmRpcn0vKi5kYXQgXAorICAgICAgICAgICAgICAgICR7bGliZGlyfS9hdXRoLyouc28gXAorIgorCitGSUxFU18ke1BOfS1kc2RiLW1vZHVsZXMgPSAiJHtsaWJkaXJ9L3NhbWJhL2xkYiIKKworRklMRVNfJHtQTn0tdGVzdHN1aXRlID0gIiR7YmluZGlyfS9nZW50ZXN0IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vbG9ja3Rlc3QgXAorICAgICAgICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9tYXNrdGVzdCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L25kcmR1bXAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9zbWJ0b3J0dXJlIgorCitGSUxFU19yZWdpc3RyeS10b29scyA9ICIke2JpbmRpcn0vcmVnZGlmZiBcCisgICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vcmVncGF0Y2ggXAorICAgICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3JlZ3NoZWxsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9yZWd0cmVlIgorCitGSUxFU193aW5iaW5kID0gIiR7c2JpbmRpcn0vd2luYmluZGQgXAorICAgICAgICAgICAgICAgICAke2JpbmRpcn0vd2JpbmZvIFwKKyAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L250bG1fYXV0aCBcCisgICAgICAgICAgICAgICAgICR7bGliZGlyfS9zYW1iYS9pZG1hcCBcCisgICAgICAgICAgICAgICAgICR7bGliZGlyfS9zYW1iYS9uc3NfaW5mbyBcCisgICAgICAgICAgICAgICAgICR7bGliZGlyfS93aW5iaW5kX2tyYjVfbG9jYXRvci5zbyBcCisgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL3dpbmJpbmQgXAorICAgICAgICAgICAgICAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L3dpbmJpbmQuc2VydmljZSIKKworRklMRVNfJHtQTn0tcHl0aG9uID0gIiR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9IgorCitGSUxFU19zbWJjbGllbnQgPSAiJHtiaW5kaXJ9L2NpZnNkZCBcCisgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3JwY2NsaWVudCBcCisgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYmNhY2xzIFwKKyAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vc21iY2xpZW50IFwKKyAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vc21iY3F1b3RhcyBcCisgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYmdldCBcCisgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYnNwb29sIFwKKyAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vc21idGFyIFwKKyAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vc21idHJlZSBcCisgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3NhbWJhL3NtYnNwb29sX2tyYjVfd3JhcHBlciIKKworUkRFUEVORFNfJHtQTn0tcGlkbF9hcHBlbmQgPSAiIHBlcmwiCitGSUxFU18ke1BOfS1waWRsID0gIiR7YmluZGlyfS9waWRsICR7ZGF0YWRpcn0vcGVybDUvUGFyc2UiCisKK1JERVBFTkRTXyR7UE59LWNsaWVudCA9ICJcCisgICAgc21iY2xpZW50IFwKKyAgICB3aW5iaW5kIFwKKyAgICByZWdpc3RyeS10b29scyBcCisgICAgJHtQTn0tcGlkbCBcCisgICAgIiAKKworQUxMT1dfRU1QVFlfJHtQTn0tY2xpZW50ID0gIjEiCisKK1JERVBFTkRTXyR7UE59LXNlcnZlciA9ICJcCisgICAgJHtQTn0gXAorICAgIHdpbmJpbmQgXAorICAgIHJlZ2lzdHJ5LXRvb2xzIFwKKyAgICAiIAorCitBTExPV19FTVBUWV8ke1BOfS1zZXJ2ZXIgPSAiMSIKKworUkRFUEVORFNfJHtQTn0tdGVzdCA9ICJcCisgICAgJHtQTn0tY3RkYi10ZXN0cyBcCisgICAgJHtQTn0tdGVzdHN1aXRlIFwKKyAgICAiCisKK0FMTE9XX0VNUFRZXyR7UE59LXRlc3QgPSAiMSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0LzAwMDEtZml4LWRvX3BhY2thZ2UtZmFpbGVkLXNpbmNlLXNub3J0LTIuOS43LjAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC8wMDAxLWZpeC1kb19wYWNrYWdlLWZhaWxlZC1zaW5jZS1zbm9ydC0yLjkuNy4wLnBhdGNoCmluZGV4IDE1MjA1NTMuLjA0N2NhZWMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0LzAwMDEtZml4LWRvX3BhY2thZ2UtZmFpbGVkLXNpbmNlLXNub3J0LTIuOS43LjAucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvMDAwMS1maXgtZG9fcGFja2FnZS1mYWlsZWQtc2luY2Utc25vcnQtMi45LjcuMC5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gODE1ZTg2MTcyMWE5YzQzZWZkZGI3ODUyMTE0NzE0NWViYzc1NjljYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNDMzNWM0YzYxODc3YzBiNjVmZjRlYzc2N2U4YWQzYWQ4YzczYzMyZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IFpoaXF1YW4gTGkgPHpoaXF1YW4ubGlAd2luZHJpdmVyLmNvbT4KIERhdGU6IEZyaSwgMTMgTm92IDIwMTUgMTc6NDA6MjQgKzA4MDAKIFN1YmplY3Q6IFtQQVRDSF0gZml4IGRvX3BhY2thZ2UgZmFpbGVkIHNpbmNlIHNub3J0IDIuOS43LjAKQEAgLTEzLDYgKzEzLDcgQEAKIFVwc3RyZWFtLVN0YXR1czpJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KIAogU2lnbmVkLW9mZi1ieTogWmhpcXVhbiBMaSA8emhpcXVhbi5saUB3aW5kcml2ZXIuY29tPgorCiAtLS0KICBzcmMvc25vcnQuaCB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKQEAgLTMwLDYgKzMxLDMgQEAKICAjaW5jbHVkZSAicHJvZmlsZXIuaCIKICAjaW5jbHVkZSAicnVsZXMuaCIKICAjaW5jbHVkZSAidHJlZW5vZGVzLmgiCi0tLQotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvMDAwMS1saWJwY2FwLXNlYXJjaC1zeXNyb290LWZvci1oZWFkZXJzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvMDAwMS1saWJwY2FwLXNlYXJjaC1zeXNyb290LWZvci1oZWFkZXJzLnBhdGNoCmluZGV4IDU0YzJhOTUuLjJlMjhjZDAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0LzAwMDEtbGlicGNhcC1zZWFyY2gtc3lzcm9vdC1mb3ItaGVhZGVycy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC8wMDAxLWxpYnBjYXAtc2VhcmNoLXN5c3Jvb3QtZm9yLWhlYWRlcnMucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDRkN2ViZTNlZDZjZWU3MmJjN2RiOThiZDQwOGQyMmMxMGVmNWRkODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDU4NzVkZWE5MGY3MTM1MGI3MjA1Nzg4ZmJjNjdlMzc1OTA3N2NlZmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBKb2UgTWFjRG9uYWxkIDxqb2VAZGVzZXJ0ZWQubmV0PgogRGF0ZTogV2VkLCAyMCBOb3YgMjAxMyAxNjowNjowNyAtMDUwMAogU3ViamVjdDogW1BBVENIXSBsaWJwY2FwOiBzZWFyY2ggc3lzcm9vdCBmb3IgaGVhZGVycwpAQCAtOSwxNSArOSwxNiBAQAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIFNpZ25lZC1vZmYtYnk6IEpvZSBNYWNEb25hbGQgPGpvZUBkZXNlcnRlZC5uZXQ+CisKIC0tLQotIGNvbmZpZ3VyZS5pbiB8ICAgIDIgKy0KKyBjb25maWd1cmUuaW4gfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KLWluZGV4IGU1MmJiNmMuLjhkZWQzNWQgMTAwNjQ0CitpbmRleCA2MjU3M2E4Li5mZGVkNDViIDEwMDY0NAogLS0tIGEvY29uZmlndXJlLmluCiArKysgYi9jb25maWd1cmUuaW4KLUBAIC03OCw3ICs3OCw3IEBAIGNhc2UgIiRob3N0IiBpbgorQEAgLTY5LDcgKzY5LDcgQEAgY2FzZSAiJGhvc3QiIGluCiAgICAgIGxpbnV4PSJ5ZXMiCiAgICAgIEFDX0RFRklORShbTElOVVhdLFsxXSxbRGVmaW5lIGlmIExpbnV4XSkKICAgICAgQUNfU1VCU1QoZXh0cmFfaW5jbCkKQEAgLTI2LDYgKzI3LDMgQEAKICAgICAgOzsKICAgICotaHB1eDEwKnwqLWhwdXgxMSopCiAgICAgIEFDX0RFRklORShbSFBVWF0sWzFdLFtEZWZpbmUgaWYgSFAtVVggMTAgb3IgMTFdKQotLS0gCi0xLjcuMTAuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWRhcC1hZGRyZXNzLXNwYWNlLWlkLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZGlzYWJsZS1kYXAtYWRkcmVzcy1zcGFjZS1pZC5wYXRjaAppbmRleCAzOWU1YzljLi42YWEwYjczIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWRhcC1hZGRyZXNzLXNwYWNlLWlkLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2Rpc2FibGUtZGFwLWFkZHJlc3Mtc3BhY2UtaWQucGF0Y2gKQEAgLTEsMTcgKzEsMjcgQEAKK0Zyb20gNWE1MzI2MGE4MTllMjg3M2Y1ODE2NWU5Njg1MjUyOTcxOTEwMWM1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENodW5yb25nIEd1byA8QjQwMjkwQGZyZWVzY2FsZS5jb20+CitEYXRlOiBNb24sIDQgTm92IDIwMTMgMTA6Mzk6NTYgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gc25vcnQ6IGFkZCByZWNpcGUKKwogVXBzdHJlYW0tU3RhdHVzOkluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQogCiBmaXggdGhlIGJlbG93IGVycm9yOgotY2hlY2tpbmcgZm9yIGRhcCBhZGRyZXNzIHNwYWNlIGlkLi4uIGNvbmZpZ3VyZTogCitjaGVja2luZyBmb3IgZGFwIGFkZHJlc3Mgc3BhY2UgaWQuLi4gY29uZmlndXJlOgogY29uZmlndXJlOiBlcnJvcjogY2Fubm90IHJ1biB0ZXN0IHByb2dyYW0gd2hpbGUgY3Jvc3MgY29tcGlsaW5nCiAKLQogU2lnbmVkLW9mZi1ieTogQ2h1bnJvbmcgR3VvIDxCNDAyOTBAZnJlZXNjYWxlLmNvbT4KIAotLS0tIGEvY29uZmlndXJlLmluCTIwMTMtMDgtMjMgMDA6MDY6MzcuMjM5MzYxOTMyIC0wNTAwCi0rKysgYi9jb25maWd1cmUuaW4JMjAxMy0wOC0yMyAwMDowNzozMi44NjAyNjY1MzQgLTA1MDAKLUBAIC02NzksMjMgKzY3OSwyMyBAQAorLS0tCisgY29uZmlndXJlLmluIHwgMzQgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgoraW5kZXggNmZlNWQ2OC4uZTc2MzZjZSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5pbgorKysrIGIvY29uZmlndXJlLmluCitAQCAtNjk4LDIzICs2OTgsMjMgQEAgaWYgdGVzdCAieCRhY19jdl9mdW5jX2RhcV9kcF9hZGRfZGMiID0gInh5ZXMiOyB0aGVuCiAgCi0gQUNfQ0hFQ0tfRlVOQ1MoW2RhcV9odXBfYXBwbHldIFtkYXFfYWNxdWlyZV93aXRoX21ldGFdKQorIGZpCiAgCiAtQUNfTVNHX0NIRUNLSU5HKFtmb3IgZGFxIGFkZHJlc3Mgc3BhY2UgSURdKQogLUFDX1JVTl9JRkVMU0UoCkBAIC00OCw1ICs1OCw1IEBACiArIyAgICAgICAgW0RBUSB2ZXJzaW9uIHN1cHBvcnRzIGFkZHJlc3Mgc3BhY2UgSUQgaW4gaGVhZGVyLl0pCiArI2ZpCiAgCi0gIyBhbnkgc3BhcmMgcGxhdGZvcm0gaGFzIHRvIGhhdmUgdGhpcyBvbmUgZGVmaW5lZC4KLSBBQ19NU0dfQ0hFQ0tJTkcoZm9yIHNwYXJjKQorIEFDX01TR19DSEVDS0lORyhbZm9yIGRhcSBmbG93IElEXSkKKyBBQ19SVU5fSUZFTFNFKApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZGlzYWJsZS1kYXEtZmxvdy1pZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2Rpc2FibGUtZGFxLWZsb3ctaWQucGF0Y2gKaW5kZXggZTZhZmNhYi4uMDRkZjM3YyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZGlzYWJsZS1kYXEtZmxvdy1pZC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWRhcS1mbG93LWlkLnBhdGNoCkBAIC0xLDE2ICsxLDI2IEBACitGcm9tIDVhYTQyYTMxMzdjNjU3YjVlZGRkNDYwODM0M2FhMTg1NGJkN2NkMjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBaaGlxdWFuIExpIDx6aGlxdWFuLmxpQHdpbmRyaXZlci5jb20+CitEYXRlOiBNb24sIDE2IE5vdiAyMDE1IDEwOjIzOjAwICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHNub3J0OiAyLjkuNi4wIC0+IDIuOS43LjUKKwogVXBzdHJlYW0tU3RhdHVzOkluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQogCiBmaXggdGhlIGJlbG93IGVycm9yOgogY2hlY2tpbmcgZm9yIGRhcSBmbG93IElELi4uIGNvbmZpZ3VyZToKIGNvbmZpZ3VyZTogZXJyb3I6IGNhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZwogCistLS0KKyBjb25maWd1cmUuaW4gfCAzNCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQogCi0tLS0gYS9jb25maWd1cmUuaW4gICAgMjAxNS0xMC0yOCAxMDozNjo0Mi45MTg1MTI2OTAgKzA4MDAKLSsrKyBiL2NvbmZpZ3VyZS5pbiAgICAyMDE1LTEwLTI4IDEwOjM3OjM2LjczODUxMDA0OCArMDgwMAotQEAgLTcxNiwyMyArNzE2LDIzIEBACitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCitpbmRleCBlNzYzNmNlLi4yZmJkMjk4IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmluCisrKysgYi9jb25maWd1cmUuaW4KK0BAIC03MTYsMjMgKzcxNiwyMyBAQCBoYXZlX2RhcV9hZGRyZXNzX3NwYWNlX2lkPSJ5ZXMiCiAgIyAgICAgICAgW0RBUSB2ZXJzaW9uIHN1cHBvcnRzIGFkZHJlc3Mgc3BhY2UgSUQgaW4gaGVhZGVyLl0pCiAgI2ZpCi0KKyAKIC1BQ19NU0dfQ0hFQ0tJTkcoW2ZvciBkYXEgZmxvdyBJRF0pCiAtQUNfUlVOX0lGRUxTRSgKIC1bQUNfTEFOR19QUk9HUkFNKApAQCAtNDUsNiArNTUsNiBAQAogKyMgICAgQUNfREVGSU5FKFtIQVZFX0RBUV9GTE9XX0lEXSxbMV0sCiArIyAgICAgICAgW0RBUSB2ZXJzaW9uIHN1cHBvcnRzIGZsb3cgSUQgaW4gaGVhZGVyLl0pCiArI2ZpCi0KKyAKICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBEQVFfVkVSRElDVF9SRVRSWV0pCiAgQUNfUlVOX0lGRUxTRSgKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2Rpc2FibGUtZGFxLXZlcmRpY3QtcmV0cnkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWRhcS12ZXJkaWN0LXJldHJ5LnBhdGNoCmluZGV4IDFhMTMyOTguLjE1OTU4YTcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2Rpc2FibGUtZGFxLXZlcmRpY3QtcmV0cnkucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZGlzYWJsZS1kYXEtdmVyZGljdC1yZXRyeS5wYXRjaApAQCAtMSwxNiArMSwyNiBAQAorRnJvbSBiOTE2NDQzZDQzZjJlMWVlYWNmYmVkMDAzMzI3NGEwMjcwZWY2MzRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWmhpcXVhbiBMaSA8emhpcXVhbi5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogTW9uLCAxNiBOb3YgMjAxNSAxMDoyMzowMCArMDgwMAorU3ViamVjdDogW1BBVENIXSBzbm9ydDogMi45LjYuMCAtPiAyLjkuNy41CisKIFVwc3RyZWFtLVN0YXR1czpJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KIAogZml4IHRoZSBiZWxvdyBlcnJvcjoKIGNoZWNraW5nIGZvciBEQVFfVkVSRElDVF9SRVRSWS4uLiBjb25maWd1cmU6CiBjb25maWd1cmU6IGVycm9yOiBjYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmcKIAorLS0tCisgY29uZmlndXJlLmluIHwgMzQgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKIAotLS0tIGEvY29uZmlndXJlLmluICAgIDIwMTUtMTAtMjggMTA6NDU6MTguMTc0NDg3Mzk1ICswODAwCi0rKysgYi9jb25maWd1cmUuaW4gICAgMjAxNS0xMC0yOCAxMDo0NTo0Ny41ODY0ODU5NTEgKzA4MDAKLUBAIC03MzQsMjMgKzczNCwyMyBAQAorZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgoraW5kZXggMmZiZDI5OC4uNjI1NzNhOCAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5pbgorKysrIGIvY29uZmlndXJlLmluCitAQCAtNzM0LDIzICs3MzQsMjMgQEAgaGF2ZV9kYXFfZmxvd19pZD0ieWVzIgogICMgICAgICAgIFtEQVEgdmVyc2lvbiBzdXBwb3J0cyBmbG93IElEIGluIGhlYWRlci5dKQogICNmaQotCisgCiAtQUNfTVNHX0NIRUNLSU5HKFtmb3IgREFRX1ZFUkRJQ1RfUkVUUlldKQogLUFDX1JVTl9JRkVMU0UoCiAtW0FDX0xBTkdfUFJPR1JBTSgKQEAgLTQ1LDcgKzU1LDYgQEAKICsjICAgIEFDX0RFRklORShbSEFWRV9EQVFfVkVSRElDVF9SRVRSWV0sWzFdLAogKyMgICAgICAgIFtEQVEgdmVyc2lvbiBzdXBwb3J0cyBEQVFfVkVSRElDVF9SRVRSWSBpbiBEQVFfVmVyZGljdC5dKQogKyNmaQotCisgCiAgIyBhbnkgc3BhcmMgcGxhdGZvcm0gaGFzIHRvIGhhdmUgdGhpcyBvbmUgZGVmaW5lZC4KICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIHNwYXJjKQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWluYWRkci1ub25lLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZGlzYWJsZS1pbmFkZHItbm9uZS5wYXRjaAppbmRleCA5ZGFmZTYzLi43OWU5ZjA3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWluYWRkci1ub25lLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2Rpc2FibGUtaW5hZGRyLW5vbmUucGF0Y2gKQEAgLTEsMyArMSw4IEBACitGcm9tIGExZmRiY2VkNDE2NmNiMGYzNWQyM2I2M2E1OTMxMmQ4Njg2MDQ4NWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDaHVucm9uZyBHdW8gPEI0MDI5MEBmcmVlc2NhbGUuY29tPgorRGF0ZTogTW9uLCA0IE5vdiAyMDEzIDEwOjM5OjU2ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHNub3J0OiBhZGQgcmVjaXBlCisKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCiAKIGZpeCB0aGUgYmVsb3cgZXJyb3I6CkBAIC02LDEwICsxMSwxNSBAQAogCiBTaWduZWQtb2ZmLWJ5OiBDaHVucm9uZyBHdW8gPEI0MDI5MEBmcmVlc2NhbGUuY29tPgogCistLS0KKyBjb25maWd1cmUuaW4gfCA1MCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKIAotLS0tIGEvY29uZmlndXJlLmluCTIwMTMtMDgtMjEgMDM6NTY6MTcuMTk3NDE0Nzg5IC0wNTAwCi0rKysgYi9jb25maWd1cmUuaW4JMjAxMy0wOC0yMSAyMzoxOTowNS4yOTg1NTM1NjAgLTA1MDAKLUBAIC0yODEsMjUgKzI4MSw3IEBACitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCitpbmRleCAyMGQxNWViLi42ZmU1ZDY4IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmluCisrKysgYi9jb25maWd1cmUuaW4KK0BAIC0yNzQsMjUgKzI3NCw3IEBAIEFDX0NIRUNLX1RZUEVTKFtpbnQ4X3QsaW50MTZfdCxpbnQzMl90LGludDY0X3RdKQogIEFDX0NIRUNLX1RZUEVTKFtib29sZWFuXSkKICAKICAjIEluIGNhc2UgSU5BRERSX05PTkUgaXMgbm90IGRlZmluZWQgKGxpa2Ugb24gU29sYXJpcykKQEAgLTM2LDcgKzQ2LDcgQEAKICAKICBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCiAgI2luY2x1ZGUgPHN0ZGlvLmg+Ci1AQCAtMzk3LDIxICszNzksMjEgQEAKK0BAIC00MjEsMjEgKzQwMywyMSBAQCBpZiB0ZXN0ICJ4JExQQ0FQIiA9ICJ4bm8iOyB0aGVuCiAgICBmaQogIGZpCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9maXgtaG9zdC1jb250YW1pbmF0aW9uLXdoZW4tZW5hYmxlLXN0YXRpYy1kYXEucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9maXgtaG9zdC1jb250YW1pbmF0aW9uLXdoZW4tZW5hYmxlLXN0YXRpYy1kYXEucGF0Y2gKaW5kZXggMmJlY2MwNi4uMDQwNGVhMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZml4LWhvc3QtY29udGFtaW5hdGlvbi13aGVuLWVuYWJsZS1zdGF0aWMtZGFxLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2ZpeC1ob3N0LWNvbnRhbWluYXRpb24td2hlbi1lbmFibGUtc3RhdGljLWRhcS5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gZjQ2ZDA5NjAxNWQ3NDAyYTM3YTU5ZWI2NmI4ZjZiN2ZiZjBjZGZmMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgorRGF0ZTogV2VkLCAyNCBNYXkgMjAxNyAxNzozODo1MyArMDgwMAorU3ViamVjdDogW1BBVENIXSBzbm9ydDogZW5hYmxlIHN0YXRpYyBkYXEKKwogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KIAogV2hlbiBlbmFibGUgc3RhdGljIGRhcSBmb3Igc25vcnQsIGl0IGNhbGxzIHRvIGRhcS1tb2R1bGVzLWNvbmZpZyB0byBnZXQgbGluawpAQCAtNSw3ICsxMCwxMSBAQAogY29udGFtaW5hdGlvbiBpc3N1ZS4gU28gZmlsdGVyIGl0LgogCiBTaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KKwogLS0tCisgY29uZmlndXJlLmluIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCiBpbmRleCBmZGVkNDViLi5hMjQ3YmI5IDEwMDY0NAogLS0tIGEvY29uZmlndXJlLmluCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS92bGFuL3ZsYW5fMS45LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvdmxhbi92bGFuXzEuOS5iYgppbmRleCBiZDU1ZWZjLi43ZWVhNWQxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS92bGFuL3ZsYW5fMS45LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3ZsYW4vdmxhbl8xLjkuYmIKQEAgLTE0LDYgKzE0LDggQEAKIAogUyA9ICIke1dPUktESVJ9LyR7QlBOfSIKIAoraW5oZXJpdCB1cGRhdGUtYWx0ZXJuYXRpdmVzCisKIEVYVFJBX09FTUFLRSA9ICItZSBNQUtFRkxBR1M9IgogCiAjIGNvbW1lbnQgb3V0IE1ha2VJbmNsdWRlIGluIE1ha2VmaWxlIHdoaWNoIHNldHMgYnVpbGQgZW52aXJvbm1lbnQKQEAgLTMwLDMgKzMyLDcgQEAKICAgICBpbnN0YWxsIC1kICR7RH0vJHtiYXNlX3NiaW5kaXJ9CiAgICAgaW5zdGFsbCAtbSAwNzU1ICR7U30vdmNvbmZpZyAke0R9LyR7YmFzZV9zYmluZGlyfS8KIH0KKworQUxURVJOQVRJVkVfUFJJT1JJVFkgPSAiMTAwIgorQUxURVJOQVRJVkVfJHtQTn0gPSAidmNvbmZpZyIKK0FMVEVSTkFUSVZFX0xJTktfTkFNRVt2Y29uZmlnXSA9ICIke2Jhc2Vfc2JpbmRpcn0vdmNvbmZpZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3dvbGZzc2wvd29sZnNzbF8zLjEyLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS93b2xmc3NsL3dvbGZzc2xfMy4xMi4wLmJiCmluZGV4IDUxMjYxOTAuLjkyOTA2NTEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3dvbGZzc2wvd29sZnNzbF8zLjEyLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvd29sZnNzbC93b2xmc3NsXzMuMTIuMC5iYgpAQCAtMTIsMTUgKzEyLDEyIEBACiBQUk9WSURFUyArPSAiY3lhc3NsIgogUlBST1ZJREVTXyR7UE59ID0gImN5YXNzbCIKIAotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vd29sZlNTTC93b2xmc3NsL2FyY2hpdmUvdiR7UFZ9LXN0YWJsZS56aXAgXAorUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICJkMTk1MDA5ZGNiNjJkODcxMjE5NTY2MWJkMWQ1MGY4ZGQ2ODMxMDQ0IgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3dvbGZTU0wvd29sZnNzbC5naXQ7cHJvdG9jb2w9aHR0cHM7IFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtZml4LW5vLXJ1bGUtdG8tbWFrZS1jeWFzc2wtb3B0aW9ucy5oLnBhdGNoIFwKICAgICAgICAgICAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJmOWNhZjU1ODE2OWFiNjUwZGM4MjAwNzA4Nzk5ZWJlYiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiNmQ4N2QzZTJjODc1NzE3N2Q2OWFmZjM3M2M5MWNmMTYyZjRhMzk0NGZhZTkwZmExMGQwODZmZDVmOTU0MmU3IgotCi1TID0gIiR7V09SS0RJUn0vd29sZnNzbC0ke1BWfS1zdGFibGUiCi0KIGluaGVyaXQgYXV0b3Rvb2xzCiAKIFBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2JywgZCl9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMS1EZWZpbmUtX19TV09SRF9UWVBFLWFuZC1fUEFUSF9OU1NXSVRDSF9DT05GLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMS1EZWZpbmUtX19TV09SRF9UWVBFLWFuZC1fUEFUSF9OU1NXSVRDSF9DT05GLnBhdGNoCmluZGV4IDA3NWFmNTcuLjg3MTU5NzEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzLzAwMDEtRGVmaW5lLV9fU1dPUkRfVFlQRS1hbmQtX1BBVEhfTlNTV0lUQ0hfQ09ORi5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy8wMDAxLURlZmluZS1fX1NXT1JEX1RZUEUtYW5kLV9QQVRIX05TU1dJVENIX0NPTkYucGF0Y2gKQEAgLTEsMTkgKzEsMjAgQEAKLUZyb20gOTMzZTA2NWNmOGFlY2ZhMGNjZTVmOGY5MmFiYmVkNWJhYWFmM2Y3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gOTg3YzhmNGE3MThjZGQ2Yjc2NDU5MmJhNzUxMDA5MGE1OTYyMzk1OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBGcmksIDMxIE1hciAyMDE3IDE5OjEwOjU3IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8yXSBEZWZpbmUgX19TV09SRF9UWVBFIGFuZCBfUEFUSF9OU1NXSVRDSF9DT05GCitTdWJqZWN0OiBbUEFUQ0hdIERlZmluZSBfX1NXT1JEX1RZUEUgYW5kIF9QQVRIX05TU1dJVENIX0NPTkYKIAogaWYgdGhleSBhcmUgbm90IGRlZmluZWQgYXMgaXMgaW4gbXVzbCB0aGVuIGRlZmluZQogdGhlbSBoZXJlCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIGluY2x1ZGUvYXV0b21vdW50LmggfCA4ICsrKysrKysrCiAgaW5jbHVkZS9uc3N3aXRjaC5oICB8IDMgKysrCiAgMiBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspCiAKIGRpZmYgLS1naXQgYS9pbmNsdWRlL2F1dG9tb3VudC5oIGIvaW5jbHVkZS9hdXRvbW91bnQuaAotaW5kZXggMjE5YjA3ZC4uYjEyYzIyYSAxMDA2NDQKK2luZGV4IGNjMzM2YWQuLjhiZGNmMTIgMTAwNjQ0CiAtLS0gYS9pbmNsdWRlL2F1dG9tb3VudC5oCiArKysgYi9pbmNsdWRlL2F1dG9tb3VudC5oCiBAQCAtNDIsNiArNDIsMTQgQEAKQEAgLTMyLDcgKzMzLDcgQEAKICAjaWZuZGVmIEhBVkVfTU9VTlQKICAjZXJyb3IgRmFpbGVkIHRvIGxvY2F0ZSBtb3VudCg4KSEKIGRpZmYgLS1naXQgYS9pbmNsdWRlL25zc3dpdGNoLmggYi9pbmNsdWRlL25zc3dpdGNoLmgKLWluZGV4IDJiNDQ1YTkuLjNkYjc3YjIgMTAwNjQ0CitpbmRleCBkM2U0MDI3Li43YTBjMzhmIDEwMDY0NAogLS0tIGEvaW5jbHVkZS9uc3N3aXRjaC5oCiArKysgYi9pbmNsdWRlL25zc3dpdGNoLmgKIEBAIC0yNCw2ICsyNCw5IEBACkBAIC00NSw2ICs0NiwzIEBACiAgI2RlZmluZSBOU1NXSVRDSF9GSUxFIF9QQVRIX05TU1dJVENIX0NPTkYKICAKICBlbnVtIG5zc3dpdGNoX3N0YXR1cyB7Ci0tLSAKLTIuMTIuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy8wMDAxLW1vZHVsZXMtbG9va3VwX211bHRpLmMtUmVwbGFjZS1fX1NfSUVYRUMtd2l0aC1TX0lFWEUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy8wMDAxLW1vZHVsZXMtbG9va3VwX211bHRpLmMtUmVwbGFjZS1fX1NfSUVYRUMtd2l0aC1TX0lFWEUucGF0Y2gKaW5kZXggN2FjMTQ1Ni4uMzIyOTNkZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMS1tb2R1bGVzLWxvb2t1cF9tdWx0aS5jLVJlcGxhY2UtX19TX0lFWEVDLXdpdGgtU19JRVhFLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzLzAwMDEtbW9kdWxlcy1sb29rdXBfbXVsdGkuYy1SZXBsYWNlLV9fU19JRVhFQy13aXRoLVNfSUVYRS5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gZTRlZTAwZTA4YWNkN2MwOTEyYTMyNjRhZDMyZTRkZTg2MWM3NDE2ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNzQ1ZTM1NWFjOGI1OTVhMjdlMWZjY2E3NWJmMDFkM2UyNDRmNGE1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBUaHUsIDcgU2VwIDIwMTcgMjI6MjI6MzEgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gbW9kdWxlcy9sb29rdXBfbXVsdGkuYzogUmVwbGFjZSBfX1NfSUVYRUMgd2l0aCBTX0lFWEVDCkBAIC03LDYgKzcsNyBAQAogYWxsIGxpYmMgZS5nLiBtdXNsCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIG1vZHVsZXMvbG9va3VwX211bHRpLmMgfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCkBAIC0yNCw2ICsyNSwzIEBACiAgCQkJCQl0eXBlID0gc3JjX3Byb2c7CiAgCQkJCWVsc2UKICAJCQkJCXR5cGUgPSBzcmNfZmlsZTsKLS0tIAotMi4xNC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzLzAwMDItUmVwbGFjZS1fX1NfSUVYRUMtd2l0aC1TX0lFWEVDLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMi1SZXBsYWNlLV9fU19JRVhFQy13aXRoLVNfSUVYRUMucGF0Y2gKaW5kZXggNmI2YmE2ZC4uNDY5MDI3YSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMi1SZXBsYWNlLV9fU19JRVhFQy13aXRoLVNfSUVYRUMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMi1SZXBsYWNlLV9fU19JRVhFQy13aXRoLVNfSUVYRUMucGF0Y2gKQEAgLTEsMjEgKzEsMjIgQEAKLUZyb20gOGZkNzRkZGIzMzY5NTcyYzU5NGIyMmIzOTYzNDYxMzFhZjAwZmFlZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNTU3Y2EzOTlmNGIzYTM5N2YyMGJiMTQ3ZWM2ZGM0YWI5NzMyZGQxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBGcmksIDMxIE1hciAyMDE3IDE5OjEyOjEwIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSBSZXBsYWNlIF9fU19JRVhFQyB3aXRoIFNfSUVYRUMKK1N1YmplY3Q6IFtQQVRDSF0gUmVwbGFjZSBfX1NfSUVYRUMgd2l0aCBTX0lFWEVDCiAKIFNfSUVYRUMgaXMgcG9ydGFibGUKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgZGFlbW9uL2xvb2t1cC5jICAgICAgICB8IDQgKystLQogIG1vZHVsZXMvbG9va3VwX211bHRpLmMgfCAyICstCiAgMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9kYWVtb24vbG9va3VwLmMgYi9kYWVtb24vbG9va3VwLmMKLWluZGV4IDYyMDcxZGYuLjFiZWM5N2YgMTAwNjQ0CitpbmRleCAyMDFjY2JiLi5kODIxZGI4IDEwMDY0NAogLS0tIGEvZGFlbW9uL2xvb2t1cC5jCiArKysgYi9kYWVtb24vbG9va3VwLmMKLUBAIC00MDAsNyArNDAwLDcgQEAgc3RhdGljIGludCByZWFkX2ZpbGVfc291cmNlX2luc3RhbmNlKHN0cnVjdCBhdXRvZnNfcG9pbnQgKmFwLCBzdHJ1Y3QgbWFwX3NvdXJjZQorQEAgLTM2Niw3ICszNjYsNyBAQCBzdGF0aWMgaW50IHJlYWRfZmlsZV9zb3VyY2VfaW5zdGFuY2Uoc3RydWN0IGF1dG9mc19wb2ludCAqYXAsIHN0cnVjdCBtYXBfc291cmNlCiAgCWlmICghU19JU1JFRyhzdC5zdF9tb2RlKSkKICAJCXJldHVybiBOU1NfU1RBVFVTX05PVEZPVU5EOwogIApAQCAtMjQsNyArMjUsNyBAQAogIAkJdHlwZSA9IHNyY19wcm9nOwogIAllbHNlCiAgCQl0eXBlID0gc3JjX2ZpbGU7Ci1AQCAtODkwLDcgKzg5MCw3IEBAIHN0YXRpYyBpbnQgbG9va3VwX25hbWVfZmlsZV9zb3VyY2VfaW5zdGFuY2Uoc3RydWN0IGF1dG9mc19wb2ludCAqYXAsIHN0cnVjdCBtYXBfCitAQCAtODU2LDcgKzg1Niw3IEBAIHN0YXRpYyBpbnQgbG9va3VwX25hbWVfZmlsZV9zb3VyY2VfaW5zdGFuY2Uoc3RydWN0IGF1dG9mc19wb2ludCAqYXAsIHN0cnVjdCBtYXBfCiAgCWlmICghU19JU1JFRyhzdC5zdF9tb2RlKSkKICAJCXJldHVybiBOU1NfU1RBVFVTX05PVEZPVU5EOwogIApAQCAtMzQsMTAgKzM1LDEwIEBACiAgCWVsc2UKICAJCXR5cGUgPSBzcmNfZmlsZTsKIGRpZmYgLS1naXQgYS9tb2R1bGVzL2xvb2t1cF9tdWx0aS5jIGIvbW9kdWxlcy9sb29rdXBfbXVsdGkuYwotaW5kZXggNmVjODQzNC4uODhkMDgxZiAxMDA2NDQKK2luZGV4IGZhZGQyZWEuLjNlY2RhNmQgMTAwNjQ0CiAtLS0gYS9tb2R1bGVzL2xvb2t1cF9tdWx0aS5jCiArKysgYi9tb2R1bGVzL2xvb2t1cF9tdWx0aS5jCi1AQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgbG9va3VwX21vZCAqbnNzX29wZW5fbG9va3VwKGNvbnN0IGNoYXIgKmZvcm1hdCwgaW50IGFyZ2MsIGNvbnN0IGNoCitAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgbG9va3VwX21vZCAqbnNzX29wZW5fbG9va3VwKGNvbnN0IGNoYXIgKmZvcm1hdCwgaW50IGFyZ2MsIGNvbnN0IGNoCiAgCQkJCWNvbnRpbnVlOwogIAkJCX0KICAKQEAgLTQ2LDYgKzQ3LDMgQEAKICAJCQkJdHlwZSA9IHNyY19wcm9nOwogIAkJCWVsc2UKICAJCQkJdHlwZSA9IHNyY19maWxlOwotLS0gCi0yLjEyLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvYWRkLXRoZS1uZWVkZWQtc3RkYXJnLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hZGQtdGhlLW5lZWRlZC1zdGRhcmcuaC5wYXRjaAppbmRleCBmZGI5MDZiLi44MTZhNDA5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hZGQtdGhlLW5lZWRlZC1zdGRhcmcuaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hZGQtdGhlLW5lZWRlZC1zdGRhcmcuaC5wYXRjaApAQCAtMSwxNCArMSwxOCBAQAotW1BBVENIXSBhZGQgdGhlIG5lZWRlZCBzdGRhcmcuaAorRnJvbSBkZjVkNDViMmQ3YWQ3ZTdiNWYwNTQyYTgxNmQwOGIwNDA5YTUyOWExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVHVlLCAxOSBBdWcgMjAxNCAxMTozMTozNSArMDgwMAorU3ViamVjdDogW1BBVENIXSBbUEFUQ0hdIGFkZCB0aGUgbmVlZGVkIHN0ZGFyZy5oCiAKIFVwc3RyZWFtLXN0YXR1czogUGVuZGluZwogCiBTaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CisKIC0tLQotIGxpYi9kZWZhdWx0cy5jIHwgICAgMSArCisgbGliL2RlZmF1bHRzLmMgfCAxICsKICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKIAogZGlmZiAtLWdpdCBhL2xpYi9kZWZhdWx0cy5jIGIvbGliL2RlZmF1bHRzLmMKLWluZGV4IDJiMDNlYTIuLjU3MjhlNjcgMTAwNjQ0CitpbmRleCAwZTQ4YTc4Li42NjdmMzVkIDEwMDY0NAogLS0tIGEvbGliL2RlZmF1bHRzLmMKICsrKyBiL2xpYi9kZWZhdWx0cy5jCiBAQCAtMTYsNiArMTYsNyBAQApAQCAtMTksNiArMjMsMyBAQAogICNpbmNsdWRlIDxjdHlwZS5oPgogICNpbmNsdWRlIDxzdHJpbmcuaD4KICAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KLS0tIAotMS43LjEwLjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvYXV0b2ZzLTUuMC43LWRvLW5vdC1jaGVjay1mb3ItbW9kcHJvYmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4wLjctZG8tbm90LWNoZWNrLWZvci1tb2Rwcm9iZS5wYXRjaAppbmRleCBhZjViZTZhLi4xZDVjM2UxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4wLjctZG8tbm90LWNoZWNrLWZvci1tb2Rwcm9iZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4wLjctZG8tbm90LWNoZWNrLWZvci1tb2Rwcm9iZS5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gMmNiYzU3NmVhMWZiZDFjYmY0NTc5ZDY0YjMwZTQxZDc2MjA4NGU3ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ICJ5YW5qdW4uemh1IiA8eWFuanVuLnpodUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVHVlLCAxNSBKYW4gMjAxMyAxMjo0NTo0NCArMDgwMAorU3ViamVjdDogW1BBVENIXSBhdXRvZnM6IGRvIG5vdCBjaGVjayBmb3IgbW9kcHJvYmUKKwogRGVzY3JpcHRpb246IExvYWRpbmcgYXV0b2ZzIG1vZHVsZSBpcyAjaWZkZWYnZWQgaW4gdGhlIHNvdXJjZSwgc28KICB0aGVyZSBpcyBubyBuZWVkIHRvIGNoZWNrIGZvciAvcHJvYyAod2hpY2ggaXMgb25seSB1c2VkCiAgdG8gbG9hZCBtb2R1bGUpIG9yIG1vZHByb2JlLiAgQm90aCBtb2Rwcm9iZSBhbmQgL3Byb2MKQEAgLTcsOSArMTIsMTYgQEAKIFVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgWzFdCiBbMV0gaHR0cDovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9hdXRvZnMvbXNnMDAxMzkuaHRtbAogCi1kaWZmIC11cnBOIGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCi0tLS0gYS9jb25maWd1cmUuaW4JMjAxMy0wMS0xNSAxMTozMDoyMi4wMDAwMDAwMDAgKzA4MDAKLSsrKyBiL2NvbmZpZ3VyZS5pbgkyMDEzLTAxLTE1IDExOjMxOjQ1LjAwMDAwMDAwMCArMDgwMAorLS0tCisgY29uZmlndXJlLmluICAgICAgICB8ICA2IC0tLS0tLQorIGRhZW1vbi9tb2R1bGUuYyAgICAgfCAgMyArKysKKyBpbmNsdWRlL2F1dG9tb3VudC5oIHwgMTEgKysrLS0tLS0tLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KK2luZGV4IDQ0YTFjOGIuLmIyMjYyMzYgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuaW4KKysrKyBiL2NvbmZpZ3VyZS5pbgogQEAgLTM0LDExICszNCw2IEBAIEFDX01TR19DSEVDS0lORyhbZm9yIGJpbmFyaWVzIGluXSkKICBBQ19NU0dfUkVTVUxUKFskc2VhcmNocGF0aF0pCiAgCkBAIC0yMiw3ICszNCw3IEBACiAgIyBMb2NhdGlvbiBvZiBpbml0LmQgZGlyZWN0b3J5PwogICMKICBBRl9JTklUX0QoKQotQEAgLTE0Miw3ICsxMzcsNiBAQCBBRl9QQVRIX0lOQ0xVREUoVU1PVU5ULCB1bW91bnQsIC9iaW4vdW1vCitAQCAtMTQyLDcgKzEzNyw2IEBAIEFGX1BBVEhfSU5DTFVERShVTU9VTlQsIHVtb3VudCwgL2Jpbi91bW91bnQsICRzZWFyY2hwYXRoKQogIEFGX1BBVEhfSU5DTFVERShFMkZTQ0ssIGZzY2suZXh0MiBlMmZzY2ssICwgJHNlYXJjaHBhdGgpCiAgQUZfUEFUSF9JTkNMVURFKEUzRlNDSywgZnNjay5leHQzIGUzZnNjaywgLCAkc2VhcmNocGF0aCkKICBBRl9QQVRIX0lOQ0xVREUoRTRGU0NLLCBmc2NrLmV4dDQgZTRmc2NrLCAsICRzZWFyY2hwYXRoKQpAQCAtMzAsMzAgKzQyLDMyIEBACiAgCiAgQUZfQ0hFQ0tfUFJPRyhMRVgsIGZsZXggbGV4LCAsICRzZWFyY2hwYXRoKQogIEFGX0NIRUNLX1BST0coWUFDQywgYmlzb24sICwgJHNlYXJjaHBhdGgpCi1kaWZmIC11cnBOIGEvZGFlbW9uL21vZHVsZS5jIGIvZGFlbW9uL21vZHVsZS5jCi0tLS0gYS9kYWVtb24vbW9kdWxlLmMJMjAxMy0wMS0xNSAxMTozMDo0OS4wMDAwMDAwMDAgKzA4MDAKLSsrKyBiL2RhZW1vbi9tb2R1bGUuYwkyMDEzLTAxLTE1IDExOjMyOjAwLjAwMDAwMDAwMCArMDgwMAotQEAgLTE4LDYgKzE4LDggQEAKLSAjaW5jbHVkZSA8c3RkbGliLmg+CitkaWZmIC0tZ2l0IGEvZGFlbW9uL21vZHVsZS5jIGIvZGFlbW9uL21vZHVsZS5jCitpbmRleCBiZWQ4ZjdhLi5lNDFhOThlIDEwMDY0NAorLS0tIGEvZGFlbW9uL21vZHVsZS5jCisrKysgYi9kYWVtb24vbW9kdWxlLmMKK0BAIC0xOSw2ICsxOSw4IEBACiAgI2luY2x1ZGUgImF1dG9tb3VudC5oIgorICNpbmNsdWRlICJuc3N3aXRjaC5oIgogIAogKyNpZiAwCiArLyogc2VlIGNvbW1lbnQgaW4gZGFlbW9uL2F1dG9tb3VudC5jIGFyb3VuZCBsb2FkX2F1dG9mczRfbW9kdWxlKCkgY2FsbCAqLwogIGludCBsb2FkX2F1dG9mczRfbW9kdWxlKHZvaWQpCiAgewogIAlGSUxFICpmcDsKLUBAIC01Miw2ICs1NCw3IEBAIGludCBsb2FkX2F1dG9mczRfbW9kdWxlKHZvaWQpCitAQCAtNTMsNiArNTUsNyBAQCBpbnQgbG9hZF9hdXRvZnM0X21vZHVsZSh2b2lkKQogIAogIAlyZXR1cm4gMTsKICB9CiArI2VuZGlmCiAgCi0gc3RydWN0IGxvb2t1cF9tb2QgKm9wZW5fbG9va3VwKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmVycl9wcmVmaXgsCi0gCQkJICAgICAgIGNvbnN0IGNoYXIgKm1hcGZtdCwgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmNvbnN0ICphcmd2KQotZGlmZiAtdXJwTiBhL2luY2x1ZGUvYXV0b21vdW50LmggYi9pbmNsdWRlL2F1dG9tb3VudC5oCi0tLS0gYS9pbmNsdWRlL2F1dG9tb3VudC5oCTIwMTMtMDEtMTUgMTE6MzE6MTAuMDAwMDAwMDAwICswODAwCi0rKysgYi9pbmNsdWRlL2F1dG9tb3VudC5oCTIwMTMtMDEtMTUgMTE6MzI6MDYuMDAwMDAwMDAwICswODAwCi1AQCAtNTAsMTYgKzUwLDExIEBACisgaW50IG9wZW5fbG9va3VwKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmVycl9wcmVmaXgsIGNvbnN0IGNoYXIgKm1hcGZtdCwKKyAJCWludCBhcmdjLCBjb25zdCBjaGFyICpjb25zdCAqYXJndiwgc3RydWN0IGxvb2t1cF9tb2QgKipsb29rdXApCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hdXRvbW91bnQuaCBiL2luY2x1ZGUvYXV0b21vdW50LmgKK2luZGV4IGMwZjVmYmYuLmNjMzM2YWQgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2F1dG9tb3VudC5oCisrKysgYi9pbmNsdWRlL2F1dG9tb3VudC5oCitAQCAtNTEsMTYgKzUxLDExIEBACiAgI2Vycm9yIEZhaWxlZCB0byBsb2NhdGUgdW1vdW50KDgpIQogICNlbmRpZgogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvYXV0b2ZzLTUuMC43LWZpeC1saWItZGVwcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjAuNy1maXgtbGliLWRlcHMucGF0Y2gKaW5kZXggMDlmZWE0OS4uOGUwNmRiNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvYXV0b2ZzLTUuMC43LWZpeC1saWItZGVwcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4wLjctZml4LWxpYi1kZXBzLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA1NGE5YmQyOGEzMDdkZDc0ZGYwNDRkNzc5Y2E4NWFkY2YzNmFhMjAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAwODA2MjYxMDhjOWFiNzBlMjQ4OTc1MmVmMmExNDAwNmQwNTY0YjBjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogSm9lIE1hY0RvbmFsZCA8am9lLm1hY2RvbmFsZEB3aW5kcml2ZXIuY29tPgogRGF0ZTogVHVlLCAxOCBKdW4gMjAxMyAxMDowNToyMSAtMDQwMAogU3ViamVjdDogW1BBVENIXSBGaXggdGhlIGRlcGVuZGVuY3kgaXNzdWUKQEAgLTEwLDE5ICsxMCwxNyBAQAogCiBTaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CiBTaWduZWQtb2ZmLWJ5OiBKb2UgTWFjRG9uYWxkIDxqb2UubWFjZG9uYWxkQHdpbmRyaXZlci5jb20+CisKIC0tLQotIGxpYi9NYWtlZmlsZSB8ICAgIDEgKworIGxpYi9NYWtlZmlsZSB8IDEgKwogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQogCiBkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxlIGIvbGliL01ha2VmaWxlCi1pbmRleCA1NDE4MDA5Li5iZmY0ZTFkIDEwMDY0NAoraW5kZXggNTE4YjQ4My4uNDc5OGE0YiAxMDA2NDQKIC0tLSBhL2xpYi9NYWtlZmlsZQogKysrIGIvbGliL01ha2VmaWxlCi1AQCAtNzUsMyArNzUsNCBAQCBpbnN0YWxsOiBhbGwKK0BAIC04MSwzICs4MSw0IEBAIGluc3RhbGw6IGFsbAogIGNsZWFuOgogIAlybSAtZiAkKExJQikgJChSUENTKSAkKE9CSlMpICQoWUFDQ1NSQykgKi5vdXRwdXQgKn4KICAKICskKE9CSlMpOiAkKFJQQ1MpCi0tLSAKLTEuNy4xMC40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjAuNy1pbmNsdWRlLWxpbnV4LW5mcy5oLWRpcmVjdGx5LWluLXJwY19zdWIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4wLjctaW5jbHVkZS1saW51eC1uZnMuaC1kaXJlY3RseS1pbi1ycGNfc3ViLnBhdGNoCmluZGV4IDNhODc4OTguLjliMDk0MmUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjAuNy1pbmNsdWRlLWxpbnV4LW5mcy5oLWRpcmVjdGx5LWluLXJwY19zdWIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvYXV0b2ZzLTUuMC43LWluY2x1ZGUtbGludXgtbmZzLmgtZGlyZWN0bHktaW4tcnBjX3N1Yi5wYXRjaApAQCAtMSwyMSArMSwyMiBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLUZyb20gNDRiZGNlOGM2ZWQ5YjMwYzE2NDNlNTk4MTE3MmE0ZjkwMjVmMDEzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gMjI1NmI4YWE5OGNmZjE1ZGRmMmE4ZDM2NDk2ZTZjOTEyNTkyNzkwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEFuZHJlYXMgT2JlcnJpdHRlciA8b2JpQG9wZW5kcmVhbWJveC5vcmc+CiBEYXRlOiBXZWQsIDEzIE1hciAyMDEzIDE2OjE3OjA4ICswMTAwCiBTdWJqZWN0OiBbUEFUQ0hdIGF1dG9mcy01LjAuNzogaW5jbHVkZSBsaW51eC9uZnMuaCBkaXJlY3RseSBpbiBycGNfc3Vicy5oCiAKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCiBGaXhlcyBjb21waWxlIGVycm9yIHdpdGggdWNsaWJjLiBHbGliYydzIG5mcy9uZnMuaCBjb250YWlucwogbm90aGluZyBidXQgIiNpbmNsdWRlIGxpbnV4L25mcy5oIi4gcnBjX3N1YnMuaCBhbHJlYWR5IGluY2x1ZGVzCiBvdGhlciBsaW51eC9uZnMqLmggZmlsZXMgZGlyZWN0bHkuCiAKIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgT2JlcnJpdHRlciA8b2JpQG9wZW5kcmVhbWJveC5vcmc+CisKIC0tLQotIGluY2x1ZGUvcnBjX3N1YnMuaCB8ICAgIDIgKy0KKyBpbmNsdWRlL3JwY19zdWJzLmggfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9pbmNsdWRlL3JwY19zdWJzLmggYi9pbmNsdWRlL3JwY19zdWJzLmgKLWluZGV4IGI2ZDU5ZjkuLmEyZDk2NDggMTAwNjQ0CitpbmRleCBlNzQ0ZTg5Li44M2RiNDdlIDEwMDY0NAogLS0tIGEvaW5jbHVkZS9ycGNfc3Vicy5oCiArKysgYi9pbmNsdWRlL3JwY19zdWJzLmgKIEBAIC0xOCw3ICsxOCw3IEBACkBAIC0yNyw2ICsyOCwzIEBACiAgI2luY2x1ZGUgPGxpbnV4L25mczIuaD4KICAjaW5jbHVkZSA8bGludXgvbmZzMy5oPgogIAotLS0gCi0xLjcuMTAuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4xLjItbGlidGlycGMtYXMtbmVlZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjEuMi1saWJ0aXJwYy1hcy1uZWVkLnBhdGNoCmluZGV4IGNiZjJiZjguLjE4Y2UxOTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjEuMi1saWJ0aXJwYy1hcy1uZWVkLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjEuMi1saWJ0aXJwYy1hcy1uZWVkLnBhdGNoCkBAIC0xLDEyICsxLDIxIEBACitGcm9tIGIzMWRlY2FjNGFjYjE5NGIwMjBjNjIxZDJkMTEwMTlmNjM2YTQ1ZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogTW9uLCAyNCBBcHIgMjAxNyAyMDo0MToyNSAtMDcwMAorU3ViamVjdDogW1BBVENIXSBhdXRvZnM6IFVwZ3JhZGUgdG8gNS4xLjIgcmVsZWFzZQorCiBNYWtlIGNvbmZpZ3VyZSBjb21wYXRpYmxlIHdpdGggLVdsLC0tYXMtbmVlZGVkIGZvbGxvd2luZwogaHR0cHM6Ly93aWtpLmdlbnRvby5vcmcvd2lraS9Qcm9qZWN0OlF1YWxpdHlfQXNzdXJhbmNlL0FzLW5lZWRlZCNGYWlsdXJlX2luXy4uMkZjb25maWd1cmUKIAogMjAxNi0wNy0wNSBNYXJ0aW4gdm9uIEdhZ2VybgogCi1JbmRleDogYXV0b2ZzLTUuMS4yL2FjbG9jYWwubTQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4xLjIub3JpZy9hY2xvY2FsLm00Ci0rKysgYXV0b2ZzLTUuMS4yL2FjbG9jYWwubTQKKy0tLQorIGFjbG9jYWwubTQgfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9hY2xvY2FsLm00IGIvYWNsb2NhbC5tNAoraW5kZXggMGU0YTYyNC4uMmU2MjBjZCAxMDA2NDQKKy0tLSBhL2FjbG9jYWwubTQKKysrKyBiL2FjbG9jYWwubTQKIEBAIC00MTUsOSArNDE1LDkgQEAgQUNfREVGVU4oW0FGX0NIRUNLX0xJQlRJUlBDXSwKICBbCiAgIyBzYXZlIGN1cnJlbnQgZmxhZ3MKQEAgLTE5LDcgKzI4LDcgQEAKICAKICBBQ19UUllfTElOSygKICAgICAgWyAjaW5jbHVkZSA8cnBjL3JwYy5oPiBdLAotQEAgLTQ0MCw3ICs0NDAsNyBAQCBBQ19DSEVDS19GVU5DUyhbZ2V0cnBjYnluYW1lIGdldHNlcnZieW5hCitAQCAtNDQwLDcgKzQ0MCw3IEBAIEFDX0NIRUNLX0ZVTkNTKFtnZXRycGNieW5hbWUgZ2V0c2VydmJ5bmFtZV0pCiAgCiAgIyByZXN0b3JlIGZsYWdzCiAgQ0ZMQUdTPSIkYWZfY2hlY2tfbGlidGlycGNfc2F2ZV9jZmxhZ3MiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9jcm9zcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2Nyb3NzLnBhdGNoCmluZGV4IDhmMWFmNjIuLmIyNWM0M2YgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2Nyb3NzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2Nyb3NzLnBhdGNoCkBAIC0xLDggKzEsMTcgQEAKLUluZGV4OiBhdXRvZnMtNS4wLjcvYWNsb2NhbC5tNAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGF1dG9mcy01LjAuNy5vcmlnL2FjbG9jYWwubTQJMjAxMi0xMC0yOCAwNDo0NTowNy4wMDAwMDAwMDAgLTA3MDAKLSsrKyBhdXRvZnMtNS4wLjcvYWNsb2NhbC5tNAkyMDEyLTEwLTI4IDEwOjQ3OjUzLjI2Mzk5NjkxMCAtMDcwMAotQEAgLTcsNiArNyw4IEBACitGcm9tIGI5YjQ0Y2Q4MmNhY2VlYjYzOGNjNmE4NjJiNWJiOTBiOTNhZDZjNmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU2F0LCA1IEphbiAyMDEzIDE5OjUzOjEwIC0wODAwCisKKy0tLQorIGFjbG9jYWwubTQgICB8IDIgKysKKyBjb25maWd1cmUuaW4gfCA4ICsrKysrKy0tCisgMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9hY2xvY2FsLm00IGIvYWNsb2NhbC5tNAoraW5kZXggMjExNTIwNC4uMmE5YTgwMiAxMDA2NDQKKy0tLSBhL2FjbG9jYWwubTQKKysrKyBiL2FjbG9jYWwubTQKK0BAIC03LDYgKzcsOCBAQCBkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBQ19ERUZVTihBRl9QQVRIX0lOQ0xVREUsCiAgW0FDX1BBVEhfUFJPR1MoJDEsJDIsJDMsJDQpCiAgaWYgdGVzdCAtbiAiJCQxIjsgdGhlbgpAQCAtMTEsMTEgKzIwLDExIEBACiAgICBBQ19ERUZJTkUoSEFWRV8kMSwxLFtkZWZpbmUgaWYgeW91IGhhdmUgJDFdKQogICAgQUNfREVGSU5FX1VOUVVPVEVEKFBBVEhfJDEsICIkJDEiLCBbZGVmaW5lIGlmIHlvdSBoYXZlICQxXSkKICAgIEhBVkVfJDE9MQotSW5kZXg6IGF1dG9mcy01LjAuNy9jb25maWd1cmUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4wLjcub3JpZy9jb25maWd1cmUuaW4JMjAxMi0xMC0yOCAwNDo0NTowNi4wMDAwMDAwMDAgLTA3MDAKLSsrKyBhdXRvZnMtNS4wLjcvY29uZmlndXJlLmluCTIwMTItMTAtMjggMTA6NTA6MDcuNTgwMDAwNjI4IC0wNzAwCi1AQCAtMzAxLDEzICszMDEsMTUgQEAKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KK2luZGV4IDI1ZDdjNGUuLjQ0YTFjOGIgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuaW4KKysrKyBiL2NvbmZpZ3VyZS5pbgorQEAgLTMyNCwxMyArMzI0LDE1IEBAIEFDX1BST0dfQ0MKICBjYXQgPiBwaWV0ZXN0LmMgPDxFT0YKICBpbnQgbWFpbih2b2lkKSB7IHJldHVybiAwOyB9CiAgRU9GCkBAIC0zMyw3ICs0Miw3IEBACiAgQUNfTVNHX1JFU1VMVChbJGdjY19zdXBwb3J0c19waWVdKQogIGlmIHRlc3QgJGdjY19zdXBwb3J0c19waWUgPSB5ZXMgOyB0aGVuCiAgCURBRU1PTl9DRkxBR1M9Ii1mUElFIgotQEAgLTMxNiw2ICszMTgsOCBAQAorQEAgLTMzOSw2ICszNDEsOCBAQCBmaQogIHJtIC1mIHBpZXRlc3QuYwogIEFDX1NVQlNUKERBRU1PTl9DRkxBR1MpCiAgQUNfU1VCU1QoREFFTU9OX0xERkxBR1MpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9maXgtdGhlLVlBQ0MtcnVsZS10by1maXgtYS1idWlsZGluZy1mYWlsdXJlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvZml4LXRoZS1ZQUNDLXJ1bGUtdG8tZml4LWEtYnVpbGRpbmctZmFpbHVyZS5wYXRjaAppbmRleCA5YjY0MTgzLi4yMWE5N2M4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9maXgtdGhlLVlBQ0MtcnVsZS10by1maXgtYS1idWlsZGluZy1mYWlsdXJlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZpeC10aGUtWUFDQy1ydWxlLXRvLWZpeC1hLWJ1aWxkaW5nLWZhaWx1cmUucGF0Y2gKQEAgLTEsNCArMSw3IEBACi1bUEFUQ0hdIGZpeCB0aGUgWUFDQyBydWxlIHRvIGZpeCBhIGJ1aWxkaW5nIGZhaWx1cmUKK0Zyb20gOTcxZDQ4YTAwZWY4Mjg4MGMzNGU4OTc3OGJmNDMwYTAxMzYwZWJkNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KK0RhdGU6IE1vbiwgMTggTWF5IDIwMTUgMTY6Mjg6MzYgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gW1BBVENIXSBmaXggdGhlIFlBQ0MgcnVsZSB0byBmaXggYSBidWlsZGluZyBmYWlsdXJlCiAKIFVwc3RyZWFtLVN0YXR1OiBQZW5kaW5nCiAKQEAgLTE0LDYgKzE3LDcgQEAKICAgfC4uL01ha2VmaWxlLnJ1bGVzOjY0OiByZWNpcGUgZm9yIHRhcmdldCAnYW1kX3Rvay5vJyBmYWlsZWQKICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFNpZ25lZC1vZmYtYnk6IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KKwogLS0tCiAgbGliL01ha2VmaWxlICAgICB8IDYgKysrKy0tCiAgbW9kdWxlcy9NYWtlZmlsZSB8IDMgKystCkBAIC00NCw3ICs0OCw3IEBACiAgCiAgbnNzX3Rvay5vOiBuc3NfdG9rLmMgbnNzX3BhcnNlLnRhYi5oCiBkaWZmIC0tZ2l0IGEvbW9kdWxlcy9NYWtlZmlsZSBiL21vZHVsZXMvTWFrZWZpbGUKLWluZGV4IDIzN2I3MGIuLjcxNDE1ZDAgMTAwNjQ0CitpbmRleCBkOWFiMDZjLi5hYmM3Njk4IDEwMDY0NAogLS0tIGEvbW9kdWxlcy9NYWtlZmlsZQogKysrIGIvbW9kdWxlcy9NYWtlZmlsZQogQEAgLTEwMyw3ICsxMDMsOCBAQCBhbWRfdG9rLmM6IGFtZF90b2subApAQCAtNTcsNiArNjEsMyBAQAogIAkkKFlBQ0MpIC12IC1kIC1wIGFtZF8gLWIgYW1kX3BhcnNlICQ/CiAgCiAgYW1kX3BhcnNlLnRhYi5vOiBhbWRfcGFyc2UudGFiLmMgYW1kX3BhcnNlLnRhYi5oCi0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZpeF9kaXNhYmxlX2xkYXAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9maXhfZGlzYWJsZV9sZGFwLnBhdGNoCmluZGV4IDk0NzUwYjIuLjQxNDMyNTkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZpeF9kaXNhYmxlX2xkYXAucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvZml4X2Rpc2FibGVfbGRhcC5wYXRjaApAQCAtMSw2ICsxLDkgQEAKLWF1dG9mczogZmFpbHMgdG8gY29tcGlsZSB3aXRoIG9wZW5sZGFwIGRpc2FibGVkCitGcm9tIGM1MDBkOTkwNmYxNjNiZjcxNmM4NzJkMzc0MDNiOWRlMDJlZjBhODYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbXkgRm9uZyA8YW15LmZvbmdAd2luZHJpdmVyLmNvbT4KK0RhdGU6IEZyaSwgMTggSmFuIDIwMTMgMTI6MTM6MzIgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gYXV0b2ZzOiBmYWlscyB0byBjb21waWxlIHdpdGggb3BlbmxkYXAgZGlzYWJsZWQKIAotQXMgb2YgNS4wLjYsIGl0IGFwcGVhcnMgdGhhdCBjaGFuZ2VzIHdlcmUgaW50cm9kdWNlZCBzbyB0aGF0IAorQXMgb2YgNS4wLjYsIGl0IGFwcGVhcnMgdGhhdCBjaGFuZ2VzIHdlcmUgaW50cm9kdWNlZCBzbyB0aGF0CiBpZiB5b3UgY29tcGlsZSB3aXRoIG9wZW5sZGFwIGRpc2FibGVkIGFuZCBvcGVubGRhcCBoZWFkZXJzIGFyZSBub3QKIGF2YWlsYWJsZSwgdGhlbiBhdXRvZnMgZmFpbHMgdG8gYnVpbGQuCiAKQEAgLTEyLDEzICsxNSwxMyBAQAogIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKIAogLS0tCi0gaW5jbHVkZS9sb29rdXBfbGRhcC5oIHwgICAgNCArKysrCisgaW5jbHVkZS9sb29rdXBfbGRhcC5oIHwgNCArKysrCiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQogCi1JbmRleDogYXV0b2ZzLTUuMS4yL2luY2x1ZGUvbG9va3VwX2xkYXAuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGF1dG9mcy01LjEuMi5vcmlnL2luY2x1ZGUvbG9va3VwX2xkYXAuaAotKysrIGF1dG9mcy01LjEuMi9pbmNsdWRlL2xvb2t1cF9sZGFwLmgKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2xvb2t1cF9sZGFwLmggYi9pbmNsdWRlL2xvb2t1cF9sZGFwLmgKK2luZGV4IDNhN2FiYTcuLmJmZGIwYjMgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2xvb2t1cF9sZGFwLmgKKysrKyBiL2luY2x1ZGUvbG9va3VwX2xkYXAuaAogQEAgLTEsNyArMSw5IEBACiAgI2lmbmRlZiBMT09LVVBfTERBUF9ICiAgI2RlZmluZSBMT09LVVBfTERBUF9ICmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9mb3JjZS1TVFJJUC10by1lbXRweS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZvcmNlLVNUUklQLXRvLWVtdHB5LnBhdGNoCmluZGV4IDYzNDAwNWIuLjIxMzk2ZGQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZvcmNlLVNUUklQLXRvLWVtdHB5LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZvcmNlLVNUUklQLXRvLWVtdHB5LnBhdGNoCkBAIC0xLDE0ICsxLDE4IEBACi1bUEFUQ0hdIGZvcmNlIFNUUklQIHRvIGVtdHB5CitGcm9tIDNjYmVlMDBmZTU3MjViODdhYmRhZTgwY2ZhMmVlNzM1ZTQ1MTNjYTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CitEYXRlOiBUdWUsIDE5IEF1ZyAyMDE0IDExOjMxOjM1ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIFtQQVRDSF0gZm9yY2UgU1RSSVAgdG8gZW10cHkKIAogb3RoZXJ3aXNlIHRoZSBnZW5lcmF0ZSBmaWxlIHdpbGwgYmUgc3RyaXBwZWQKIAogU2lnbmVkLW9mZi1ieTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBNYWtlZmlsZS5ydWxlcyB8ICAgIDIgKy0KKyBNYWtlZmlsZS5ydWxlcyB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL01ha2VmaWxlLnJ1bGVzIGIvTWFrZWZpbGUucnVsZXMKLWluZGV4IDcxMGEyYzkuLmU0MzM0ZGIgMTAwNjQ0CitpbmRleCA3MDlkZDA0Li5iMWY3ZTUwIDEwMDY0NAogLS0tIGEvTWFrZWZpbGUucnVsZXMKICsrKyBiL01ha2VmaWxlLnJ1bGVzCiBAQCAtMzEsNyArMzEsNyBAQCBMREZMQUdTICAgPz0gLXMKQEAgLTIwLDYgKzI0LDMgQEAKICBlbHNlCiAgU1RSSVAgICAgID89IHN0cmlwIC0tc3RyaXAtZGVidWcKICBlbmRpZgotLS0gCi0xLjcuMTAuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9saWJ0aXJwYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2xpYnRpcnBjLnBhdGNoCmluZGV4IGQ2ODk0NGIuLjBhMmQ1MDIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2xpYnRpcnBjLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2xpYnRpcnBjLnBhdGNoCkBAIC0xLDIxICsxLDE3IEBACi1JbmRleDogYXV0b2ZzLTUuMC43L2FjbG9jYWwubTQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4wLjcub3JpZy9hY2xvY2FsLm00CTIwMTItMTAtMjggMTM6MTc6NDUuNTA0MjM3MDI3IC0wNzAwCi0rKysgYXV0b2ZzLTUuMC43L2FjbG9jYWwubTQJMjAxMi0xMC0yOCAxMzoyMDo1MC4xMDgyNDI3MzkgLTA3MDAKLUBAIC00MDMsNyArNDAzLDcgQEAKLSAjIHNhdmUgY3VycmVudCBmbGFncwotIGFmX2NoZWNrX2xpYnRpcnBjX3NhdmVfY2ZsYWdzPSIkQ0ZMQUdTIgotIGFmX2NoZWNrX2xpYnRpcnBjX3NhdmVfbGRmbGFncz0iJExERkxBR1MiCi0tQ0ZMQUdTPSIkQ0ZMQUdTIC1JL3Vzci9pbmNsdWRlL3RpcnBjIgotK0NGTEFHUz0iJENGTEFHUyAtST0vdXNyL2luY2x1ZGUvdGlycGMiCi0gTERGTEFHUz0iJExERkxBR1MgLWx0aXJwYyIKLSAKLSBBQ19UUllfTElOSygKLUluZGV4OiBhdXRvZnMtNS4wLjcvTWFrZWZpbGUucnVsZXMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4wLjcub3JpZy9NYWtlZmlsZS5ydWxlcwkyMDEyLTEwLTI4IDEzOjE3OjQ1LjMwODIzNzAyMiAtMDcwMAotKysrIGF1dG9mcy01LjAuNy9NYWtlZmlsZS5ydWxlcwkyMDEyLTEwLTI4IDEzOjIxOjI1LjcyMDI0MjgwMyAtMDcwMAotQEAgLTQ4LDcgKzQ4LDcgQEAKK0Zyb20gY2I2YTRmNjFhZGIwMjdmMjM2NjMxOGYyYzA4YzgyNjRlYmYzOTIxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDUgSmFuIDIwMTMgMTk6NTM6MTAgLTA4MDAKKworLS0tCisgTWFrZWZpbGUucnVsZXMgfCAyICstCisgYWNsb2NhbC5tNCAgICAgfCAyICstCisgMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZS5ydWxlcyBiL01ha2VmaWxlLnJ1bGVzCitpbmRleCA2ZmEzZTAyLi43MDlkZDA0IDEwMDY0NAorLS0tIGEvTWFrZWZpbGUucnVsZXMKKysrKyBiL01ha2VmaWxlLnJ1bGVzCitAQCAtNDYsNyArNDYsNyBAQCBDRkxBR1MgKz0gLURfUkVFTlRSQU5UIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQKICBMSUJTICs9IC1scHRocmVhZAogIAogIGlmZGVmIFRJUlBDTElCCkBAIC0yNCwzICsyMCwxNiBAQAogIExJQlMgKz0gJChUSVJQQ0xJQikKICBlbmRpZgogIAorZGlmZiAtLWdpdCBhL2FjbG9jYWwubTQgYi9hY2xvY2FsLm00CitpbmRleCAyYTlhODAyLi4wZTRhNjI0IDEwMDY0NAorLS0tIGEvYWNsb2NhbC5tNAorKysrIGIvYWNsb2NhbC5tNAorQEAgLTQxNiw3ICs0MTYsNyBAQCBBQ19ERUZVTihbQUZfQ0hFQ0tfTElCVElSUENdLAorICMgc2F2ZSBjdXJyZW50IGZsYWdzCisgYWZfY2hlY2tfbGlidGlycGNfc2F2ZV9jZmxhZ3M9IiRDRkxBR1MiCisgYWZfY2hlY2tfbGlidGlycGNfc2F2ZV9sZGZsYWdzPSIkTERGTEFHUyIKKy1DRkxBR1M9IiRDRkxBR1MgLUkvdXNyL2luY2x1ZGUvdGlycGMiCisrQ0ZMQUdTPSIkQ0ZMQUdTIC1JPS91c3IvaW5jbHVkZS90aXJwYyIKKyBMREZMQUdTPSIkTERGTEFHUyAtbHRpcnBjIgorIAorIEFDX1RSWV9MSU5LKApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvbm8tYmFzaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL25vLWJhc2gucGF0Y2gKaW5kZXggY2YwMzYzNS4uYzQ2YzBlNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvbm8tYmFzaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9uby1iYXNoLnBhdGNoCkBAIC0xLDE3ICsxLDI2IEBACi1JbmRleDogYXV0b2ZzLTUuMC43L3NhbXBsZXMvYXV0by5uZXQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4wLjcub3JpZy9zYW1wbGVzL2F1dG8ubmV0CTIwMTItMDctMjQgMjM6MDU6MjYuMDAwMDAwMDAwIC0wNzAwCi0rKysgYXV0b2ZzLTUuMC43L3NhbXBsZXMvYXV0by5uZXQJMjAxMi0xMC0yOCAxMDo0NDoyNS4wMzU5OTE3MTUgLTA3MDAKK0Zyb20gYTMwMDdkN2VhOTMwODIzOTI2NjExMDgxYmI4NzNkZGQ3NzEzMjVjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDUgSmFuIDIwMTMgMTk6NTM6MTAgLTA4MDAKKworLS0tCisgc2FtcGxlcy9hdXRvLm5ldCB8IDIgKy0KKyBzYW1wbGVzL2F1dG8uc21iIHwgMiArLQorIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc2FtcGxlcy9hdXRvLm5ldCBiL3NhbXBsZXMvYXV0by5uZXQKK2luZGV4IDAzODRmNjEuLjYxMjE1ZjYgMTAwNzU1CistLS0gYS9zYW1wbGVzL2F1dG8ubmV0CisrKysgYi9zYW1wbGVzL2F1dG8ubmV0CiBAQCAtMSw0ICsxLDQgQEAKIC0jIS9iaW4vYmFzaAogKyMhL2Jpbi9zaAogIAogICMgVGhpcyBmaWxlIG11c3QgYmUgZXhlY3V0YWJsZSB0byB3b3JrISBjaG1vZCA3NTUhCiAgCi1JbmRleDogYXV0b2ZzLTUuMC43L3NhbXBsZXMvYXV0by5zbWIKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4wLjcub3JpZy9zYW1wbGVzL2F1dG8uc21iCTIwMTItMDctMjQgMjM6MDU6MjYuMDAwMDAwMDAwIC0wNzAwCi0rKysgYXV0b2ZzLTUuMC43L3NhbXBsZXMvYXV0by5zbWIJMjAxMi0xMC0yOCAxMDo0NDoyNS4wMzU5OTE3MTUgLTA3MDAKK2RpZmYgLS1naXQgYS9zYW1wbGVzL2F1dG8uc21iIGIvc2FtcGxlcy9hdXRvLnNtYgoraW5kZXggNmFmNWQ4NS4uZDI5NmI4MSAxMDA3NTUKKy0tLSBhL3NhbXBsZXMvYXV0by5zbWIKKysrKyBiL3NhbXBsZXMvYXV0by5zbWIKIEBAIC0xLDQgKzEsNCBAQAogLSMhL2Jpbi9iYXNoCiArIyEvYmluL3NoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9wa2djb25maWctbGlibnNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvcGtnY29uZmlnLWxpYm5zbC5wYXRjaAppbmRleCBiZjJjOTY0Li4xYzdiMTE5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9wa2djb25maWctbGlibnNsLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL3BrZ2NvbmZpZy1saWJuc2wucGF0Y2gKQEAgLTEsMTMgKzEsMjIgQEAKK0Zyb20gZTNhZTU2Y2YwYmI0MDYzYzMxMjk1ZjQ1ZDA0ZTNjNTA0ZjRiNmNjNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBNb24sIDI0IEFwciAyMDE3IDIwOjQxOjI1IC0wNzAwCitTdWJqZWN0OiBbUEFUQ0hdIGF1dG9mczogVXBncmFkZSB0byA1LjEuMiByZWxlYXNlCisKIFVzZSBwa2ctY29uZmlnIGZpcnN0IHRvIGxvb2sgZm9yIGV4dGVybmFsIGxpYm5zbCB3aGljaCBpcyBub3cKIHNwbGl0IG91dCBmcm9tIGdsaWJjLCBpZiBpdCBkb2VzIG5vdCBleGlzdCB0aGVuIHNlZSBpZiBpdHMgcHJvdmlkZWQKIGJ5IGdsaWJjIGl0c2VsZi4KIAogLUtoZW0KIAotSW5kZXg6IGF1dG9mcy01LjEuMi9jb25maWd1cmUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4xLjIub3JpZy9jb25maWd1cmUuaW4KLSsrKyBhdXRvZnMtNS4xLjIvY29uZmlndXJlLmluCistLS0KKyBjb25maWd1cmUuaW4gfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KK2luZGV4IDljZjczYjguLjEwMTZjNzEgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuaW4KKysrKyBiL2NvbmZpZ3VyZS5pbgogQEAgLTE4Niw3ICsxODYsNyBAQCBmaQogICMKICAjIGdsaWJjL2xpYmMgNiBuZXcgbGlicmFyaWVzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9yZW1vdmUtYmFzaGlzbS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL3JlbW92ZS1iYXNoaXNtLnBhdGNoCmluZGV4IDI4MmQ2ZjAuLjQxODMwNjkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL3JlbW92ZS1iYXNoaXNtLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL3JlbW92ZS1iYXNoaXNtLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA3OTAzNGY5NjliYmQxMjIxNWQ2NWI0MzM3ZGZkMzhhMTNkMDJkNGVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBjZmFjYmI5MTdmODdiOTAzYjUwMTMyYTUwMjVmODZiMGNjNTIyZTljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogUm9iZXJ0IFlhbmcgPGxpZXpoaS55YW5nQHdpbmRyaXZlci5jb20+CiBEYXRlOiBTYXQsIDEzIFNlcCAyMDE0IDIwOjE5OjI4IC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIGF1dG9mcy5pbml0LmluOiByZW1vdmUgYmFzaGlzbQpAQCAtOSw5ICs5LDEwIEBACiAKIFNpZ25lZC1vZmYtYnk6IE1pa2UgTG9vaWptYW5zIDxtaWtlLmxvb2lqbWFuc0B0b3BpYy5ubD4KIFNpZ25lZC1vZmYtYnk6IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgorCiAtLS0KLSByZWRoYXQvYXV0b2ZzLmluaXQuaW4gfCAgIDEyICsrKysrKy0tLS0tLQotIHNhbXBsZXMvcmMuYXV0b2ZzLmluICB8ICAgMTAgKysrKystLS0tLQorIHJlZGhhdC9hdXRvZnMuaW5pdC5pbiB8IDEyICsrKysrKy0tLS0tLQorIHNhbXBsZXMvcmMuYXV0b2ZzLmluICB8IDEwICsrKysrLS0tLS0KICAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvcmVkaGF0L2F1dG9mcy5pbml0LmluIGIvcmVkaGF0L2F1dG9mcy5pbml0LmluCkBAIC0xMTUsNiArMTE2LDMgQEAKICAJcGlkPWBwaWRvZiAkcHJvZ2AKICAJaWYgWyAteiAkcGlkIF07IHRoZW4KICAJCWVjaG8gJCIkcHJvZyBub3QgcnVubmluZyIKLS0tIAotMS43LjkuNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy91c2luZy1wa2ctY29uZmlnLXRvLWRldGVjdC1saWJ4bWwtMi4wLWFuZC1rcmI1LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvdXNpbmctcGtnLWNvbmZpZy10by1kZXRlY3QtbGlieG1sLTIuMC1hbmQta3JiNS5wYXRjaAppbmRleCA5M2I3NmJkLi4zZDBjNmJkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy91c2luZy1wa2ctY29uZmlnLXRvLWRldGVjdC1saWJ4bWwtMi4wLWFuZC1rcmI1LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL3VzaW5nLXBrZy1jb25maWctdG8tZGV0ZWN0LWxpYnhtbC0yLjAtYW5kLWtyYjUucGF0Y2gKQEAgLTEsMTQgKzEsMTggQEAKLXVzaW5nIHBrZy1jb25maWcgdG8gZGV0ZWN0IGxpYnhtbC0yLjAgYW5kIGtyYjUKK0Zyb20gZGFiY2JkYWUzODAzOGE4ZTRhZDJjNDI4NjExMjM4MWM0MDdjNWNlNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFR1ZSwgMTkgQXVnIDIwMTQgMTE6MzE6MzUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gdXNpbmcgcGtnLWNvbmZpZyB0byBkZXRlY3QgbGlieG1sLTIuMCBhbmQga3JiNQogCiBVcHN0cmVhbS1zdGF0dXM6IFBlbmRpbmcKIAogU2lnbmVkLW9mZi1ieTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBjb25maWd1cmUuaW4gfCAgIDE2ICsrKysrKysrKysrKysrLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisgY29uZmlndXJlLmluIHwgMTYgKysrKysrKysrKysrKystLQorIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCi1pbmRleCAzOTJkMTIyLi5hMzAyOGFhIDEwMDY0NAoraW5kZXggYjIyNjIzNi4uOWNmNzNiOCAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5pbgogKysrIGIvY29uZmlndXJlLmluCiBAQCAtMTYyLDggKzE2MiwyMCBAQCBpZiB0ZXN0IHgkZW5hYmxlX3Nsb3BweV9tb3VudCA9IHh5ZXM7IHRoZW4KQEAgLTM0LDYgKzM4LDMgQEAKICAKICBBQ19TRUFSQ0hfTElCUyhbdmVyc2lvbnNvcnRdLFtdKQogIGlmIHRlc3QgIiRhY19jdl9zZWFyY2hfdmVyc2lvbnNvcnQiID0gIm5vIjsgdGhlbgotLS0gCi0xLjcuMTAuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvY3lydXMtc2FzbC9jeXJ1cy1zYXNsXzIuMS4yNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9jeXJ1cy1zYXNsL2N5cnVzLXNhc2xfMi4xLjI2LmJiCmluZGV4IGVhYTQ1M2QuLjZkYmZmODcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9jeXJ1cy1zYXNsL2N5cnVzLXNhc2xfMi4xLjI2LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9jeXJ1cy1zYXNsL2N5cnVzLXNhc2xfMi4xLjI2LmJiCkBAIC0xLDcgKzEsNyBAQAogU1VNTUFSWSA9ICJHZW5lcmljIGNsaWVudC9zZXJ2ZXIgbGlicmFyeSBmb3IgU0FTTCBhdXRoZW50aWNhdGlvbiIKIFNFQ1RJT04gPSAibGlicyIKIEhPTUVQQUdFID0gImh0dHA6Ly9hc2cud2ViLmNtdS5lZHUvc2FzbC8iCi1ERVBFTkRTID0gIm9wZW5zc2wgdmlydHVhbC9kYiIKK0RFUEVORFMgPSAib3BlbnNzbCBkYiIKIExJQ0VOU0UgPSAiQlNEIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9M2Y1NWUwOTc0ZTNkNmRiMDBjYTZmNTdmMmQyMDYzOTYiCiAKQEAgLTc1LDggKzc1LDggQEAKIFVTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0tYmluIgogVVNFUkFERF9QQVJBTV8ke1BOfS1iaW4gPSAiLS1zeXN0ZW0gLS1ob21lPS92YXIvc3Bvb2wvbWFpbCAtZyBtYWlsIGN5cnVzIgogCi1TWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59IgotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInNhc2xhdXRoZC5zZXJ2aWNlIgorU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfS1iaW4iCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0tYmluID0gInNhc2xhdXRoZC5zZXJ2aWNlIgogU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgogCiBTUkNfVVJJW21kNXN1bV0gPSAiYTdmNGU1ZTU1OWEwZTM3YjNmZmM0MzhjOTQ1NmU0MjUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDEtbGlib3BlbmlzY3NpdXNyLUluY2x1ZGUtbGltaXQuaC1mb3ItUEFUSF9NQVgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDEtbGlib3BlbmlzY3NpdXNyLUluY2x1ZGUtbGltaXQuaC1mb3ItUEFUSF9NQVgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVlMWJlYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMS1saWJvcGVuaXNjc2l1c3ItSW5jbHVkZS1saW1pdC5oLWZvci1QQVRIX01BWC5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIGNmZWU1OGQ1ODYzYTUzNWI2MWFhNTQ2OTBhZTIwNWI4NzZmNTc5NDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogRnJpLCAyIEZlYiAyMDE4IDIyOjUzOjI5IC0wODAwCitTdWJqZWN0OiBbUEFUQ0ggMS8yXSBsaWJvcGVuaXNjc2l1c3I6IEluY2x1ZGUgbGltaXQuaCBmb3IgUEFUSF9NQVgKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIGxpYm9wZW5pc2NzaXVzci9pZmFjZS5jIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9saWJvcGVuaXNjc2l1c3IvaWZhY2UuYyBiL2xpYm9wZW5pc2NzaXVzci9pZmFjZS5jCitpbmRleCA3OTg5OGRmLi5hNDhlZjM2IDEwMDY0NAorLS0tIGEvbGlib3BlbmlzY3NpdXNyL2lmYWNlLmMKKysrKyBiL2xpYm9wZW5pc2NzaXVzci9pZmFjZS5jCitAQCAtMzAsNiArMzAsNyBAQAorICNpbmNsdWRlIDxuZXRkYi5oPgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8aW50dHlwZXMuaD4KKysjaW5jbHVkZSA8bGltaXRzLmg+CisgCisgI2luY2x1ZGUgImxpYm9wZW5pc2NzaXVzci9saWJvcGVuaXNjc2l1c3IuaCIKKyAjaW5jbHVkZSAibWlzYy5oIgorLS0gCisyLjE2LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDAxLXFlZGkuYy1SZW1vdmVkLXVudXNlZC1saW51eC1ldGh0b29sLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDEtcWVkaS5jLVJlbW92ZWQtdW51c2VkLWxpbnV4LWV0aHRvb2wuaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzRhYTUwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDAxLXFlZGkuYy1SZW1vdmVkLXVudXNlZC1saW51eC1ldGh0b29sLmgucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSAxOTc3MTNhZDdlM2U5NDQxMDJiYmQ3OTJlMWFiOWVjNGE2NzEwMGMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMiBGZWIgMjAxOCAyMzoyNToyMSAtMDgwMAorU3ViamVjdDogW1BBVENIIDEvNF0gcWVkaS5jOiBSZW1vdmVkIHVudXNlZCBsaW51eC9ldGh0b29sLmgKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIGlzY3NpdWlvL3NyYy91bml4L2xpYnMvcWVkaS5jIHwgMSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2lzY3NpdWlvL3NyYy91bml4L2xpYnMvcWVkaS5jIGIvaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9xZWRpLmMKK2luZGV4IGI4MWZlY2QuLjI0Y2I4OWEgMTAwNjQ0CistLS0gYS9pc2NzaXVpby9zcmMvdW5peC9saWJzL3FlZGkuYworKysrIGIvaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9xZWRpLmMKK0BAIC00OSw3ICs0OSw2IEBACisgI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorICNpbmNsdWRlIDxsaW51eC9zb2NraW9zLmg+CistI2luY2x1ZGUgPGxpbnV4L2V0aHRvb2wuaD4KKyAjaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgorICNpbmNsdWRlIDxzeXMvbW1hbi5oPgorICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKy0tIAorMi4xNi4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMi1pZGJtLmMtSW5jbHVkZS1mY25sLmgtZm9yLU9fUkRXUi1hbmQtT19DUkVBVC1kZWZpbml0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDAyLWlkYm0uYy1JbmNsdWRlLWZjbmwuaC1mb3ItT19SRFdSLWFuZC1PX0NSRUFULWRlZmluaXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVjZWRlNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMi1pZGJtLmMtSW5jbHVkZS1mY25sLmgtZm9yLU9fUkRXUi1hbmQtT19DUkVBVC1kZWZpbml0LnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0Zyb20gMmIzOWY4NWRjZjAyMDY0NzU0NDAwMmNiMGIwZTczNDc0ODM5MWRmYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDIgRmViIDIwMTggMjM6Mjc6MjUgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSCAyLzRdIGlkYm0uYzogSW5jbHVkZSBmY25sLmggZm9yIE9fUkRXUiBhbmQgT19DUkVBVCBkZWZpbml0aW9ucworCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCisgdXNyL2lkYm0uYyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvdXNyL2lkYm0uYyBiL3Vzci9pZGJtLmMKK2luZGV4IDU1MzIyMDIuLjBhNTFiODUgMTAwNjQ0CistLS0gYS91c3IvaWRibS5jCisrKysgYi91c3IvaWRibS5jCitAQCAtMjcsNiArMjcsNyBAQAorICNpbmNsdWRlIDxlcnJuby5oPgorICNpbmNsdWRlIDxkaXJlbnQuaD4KKyAjaW5jbHVkZSA8bGltaXRzLmg+CisrI2luY2x1ZGUgPGZjbnRsLmg+CisgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisgI2luY2x1ZGUgPHN5cy9maWxlLmg+CisgCistLSAKKzIuMTYuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDItbGlib3BlbmlzY3NpdXNyLUFkZC1DRkxBR1MtdG8tbGlua2VyLWNtZGxpbmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDItbGlib3BlbmlzY3NpdXNyLUFkZC1DRkxBR1MtdG8tbGlua2VyLWNtZGxpbmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM2ZWQ2MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMi1saWJvcGVuaXNjc2l1c3ItQWRkLUNGTEFHUy10by1saW5rZXItY21kbGluZS5wYXRjaApAQCAtMCwwICsxLDI5IEBACitGcm9tIDI5NTcxZjcxNjkyZTI4Y2U5YTE3ZDE0NTAwOTdhOTg0OTJmM2I0NjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogRnJpLCAyIEZlYiAyMDE4IDIyOjU0OjA0IC0wODAwCitTdWJqZWN0OiBbUEFUQ0ggMi8yXSBsaWJvcGVuaXNjc2l1c3I6IEFkZCBDRkxBR1MgdG8gbGlua2VyIGNtZGxpbmUKKworVGhpcyB3aWxsIGVuc3VyZSB0aGF0IC1mUElDIGlzIHBhc3NlZCB0byBsaW5rZXIgYXMKK3dlbGwKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIGxpYm9wZW5pc2NzaXVzci9NYWtlZmlsZSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2xpYm9wZW5pc2NzaXVzci9NYWtlZmlsZSBiL2xpYm9wZW5pc2NzaXVzci9NYWtlZmlsZQoraW5kZXggOGI5YjUyMy4uNGYxZDBkNiAxMDA2NDQKKy0tLSBhL2xpYm9wZW5pc2NzaXVzci9NYWtlZmlsZQorKysrIGIvbGlib3BlbmlzY3NpdXNyL01ha2VmaWxlCitAQCAtNDksNyArNDksNyBAQCBMSUJBREQgPQorIGFsbDogJChMSUJTKSAkKExJQlNfTUFKT1IpICQoVEVTVFMpIGRvYworIAorICQoTElCUyk6ICQoT0JKUykKKy0JJChDQykgJChMREZMQUdTKSAtc2hhcmVkIC1XbCwtc29uYW1lPSRAIC1vICRAICQoT0JKUykgJChMSUJBREQpCisrCSQoQ0MpICQoQ0ZMQUdTKSAkKExERkxBR1MpIC1zaGFyZWQgLVdsLC1zb25hbWU9JEAgLW8gJEAgJChPQkpTKSAkKExJQkFERCkKKyAJbG4gLXNmICRAICQoREVWTElCKQorIAorICQoTElCU19NQUpPUik6ICQoTElCUykKKy0tIAorMi4xNi4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMy1ibngyeC5jLVJlb3JkZXItdGhlLWluY2x1ZGVzLXRvLWF2b2lkLWR1cGxpY2F0ZS1kZWZpLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDAzLWJueDJ4LmMtUmVvcmRlci10aGUtaW5jbHVkZXMtdG8tYXZvaWQtZHVwbGljYXRlLWRlZmkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNlMTU1ZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMy1ibngyeC5jLVJlb3JkZXItdGhlLWluY2x1ZGVzLXRvLWF2b2lkLWR1cGxpY2F0ZS1kZWZpLnBhdGNoCkBAIC0wLDAgKzEsNDkgQEAKK0Zyb20gOWI3YTMyOTAzYjU2Y2U0ZDQxZjI2NGEzNDVjYTU5YTBiMDBkNTNiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDIgRmViIDIwMTggMjM6Mjg6MzMgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSCAzLzRdIGJueDJ4LmM6IFJlb3JkZXIgdGhlIGluY2x1ZGVzIHRvIGF2b2lkIGR1cGxpY2F0ZSBkZWZpbmVzCisgd2l0aCBtdXNsCisKK2luY2x1ZGluZyBuaWMuaCBiZWZvcmUgbGludXgvZXRodG9vbC5oIGF2b2lkcyByZWRlZmluaXRpb25zIG9mCitldGggc3RydWN0cworCisvbW50L2Evb2UvYnVpbGQvdG1wL3dvcmsvY29ydGV4YTd0MmhmLW5lb24tdmZwdjQtYmVjLWxpbnV4LW11c2xlYWJpL2lzY3NpLWluaXRpYXRvci11dGlscy8yLjAuODc2LXIwL3JlY2lwZS1zeXNyb290LwordXNyL2luY2x1ZGUvbmV0aW5ldC9pZl9ldGhlci5oOjEwNDo4OiBlcnJvcjogcmVkZWZpbml0aW9uIG9mICdzdHJ1Y3QgZXRoaGRyJworIHN0cnVjdCBldGhoZHIgeworICAgICAgICBefn5+fn4KK0luIGZpbGUgaW5jbHVkZWQgZnJvbSAvbW50L2Evb2UvYnVpbGQvdG1wL3dvcmsvY29ydGV4YTd0MmhmLW5lb24tdmZwdjQtYmVjLWxpbnV4LW11c2xlYWJpL2lzY3NpLWluaXRpYXRvci11dGlscy8yLjAuCis4NzYtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvbGludXgvZXRodG9vbC5oOjE5OjAsCisgICAgICAgICAgICAgICAgIGZyb20gcWVkaS5jOjUyOgorL21udC9hL29lL2J1aWxkL3RtcC93b3JrL2NvcnRleGE3dDJoZi1uZW9uLXZmcHY0LWJlYy1saW51eC1tdXNsZWFiaS9pc2NzaS1pbml0aWF0b3ItdXRpbHMvMi4wLjg3Ni1yMC9yZWNpcGUtc3lzcm9vdC8KK3Vzci9pbmNsdWRlL2xpbnV4L2lmX2V0aGVyLmg6MTU0Ojg6IG5vdGU6IG9yaWdpbmFsbHkgZGVmaW5lZCBoZXJlCisgc3RydWN0IGV0aGhkciB7CisgICAgICAgIF5+fn5+fgorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCisgaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9ibngyeC5jIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9ibngyeC5jIGIvaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9ibngyeC5jCitpbmRleCAzZGY2ZDVmLi42MjUzMGQxIDEwMDY0NAorLS0tIGEvaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9ibngyeC5jCisrKysgYi9pc2NzaXVpby9zcmMvdW5peC9saWJzL2JueDJ4LmMKK0BAIC0zNiw2ICszNiw3IEBACisgICogYm54MnguYyAtIGJueDJ4IHVzZXIgc3BhY2UgZHJpdmVyCisgICoKKyAgKi8KKysjaW5jbHVkZSAibmljLmgiCisgI2luY2x1ZGUgPGVycm5vLmg+CisgI2luY2x1ZGUgPHN0ZGlvLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorQEAgLTU4LDcgKzU5LDYgQEAKKyAjaW5jbHVkZSAiYm54MnguaCIKKyAjaW5jbHVkZSAiY25pYy5oIgorICNpbmNsdWRlICJsb2dnZXIuaCIKKy0jaW5jbHVkZSAibmljLmgiCisgI2luY2x1ZGUgIm5pY19pZC5oIgorICNpbmNsdWRlICJuaWNfdXRpbHMuaCIKKyAjaW5jbHVkZSAib3B0aW9ucy5oIgorLS0gCisyLjE2LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDA0LWZ3cGFyYW1fcHBjLmMtRG8tbm90LXVzZS1fX2NvbXBhcl9mbl90LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDA0LWZ3cGFyYW1fcHBjLmMtRG8tbm90LXVzZS1fX2NvbXBhcl9mbl90LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3YmRjOGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDQtZndwYXJhbV9wcGMuYy1Eby1ub3QtdXNlLV9fY29tcGFyX2ZuX3QucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAorRnJvbSA2ZjljMWEwNGQyNTAzODhkMTU3NGNmYWYyMGExZmY2NmE2NGJlYjQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMiBGZWIgMjAxOCAyMzo0MjoxMiAtMDgwMAorU3ViamVjdDogW1BBVENIIDQvNF0gZndwYXJhbV9wcGMuYzogRG8gbm90IHVzZSBfX2NvbXBhcl9mbl90CisKK19fY29tcGFyX2ZuX3QgaXMgbm90IGRlZmluZWQgaW4gbXVzbAorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCisgdXRpbHMvZndwYXJhbV9pYmZ0L2Z3cGFyYW1fcHBjLmMgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS91dGlscy9md3BhcmFtX2liZnQvZndwYXJhbV9wcGMuYyBiL3V0aWxzL2Z3cGFyYW1faWJmdC9md3BhcmFtX3BwYy5jCitpbmRleCBjMjk4YjhjLi4zOTFmYWEyIDEwMDY0NAorLS0tIGEvdXRpbHMvZndwYXJhbV9pYmZ0L2Z3cGFyYW1fcHBjLmMKKysrKyBiL3V0aWxzL2Z3cGFyYW1faWJmdC9md3BhcmFtX3BwYy5jCitAQCAtMzU2LDcgKzM1Niw3IEBAIHN0YXRpYyBpbnQgbG9vcF9kZXZzKGNvbnN0IGNoYXIgKmRldnRyZWUpCisgCSAqIFNvcnQgdGhlIG5pY3MgaW50byAibmF0dXJhbCIgb3JkZXIuCVRoZSBwcm9jIGZzCisgCSAqIGRldmljZS10cmVlIGhhcyB0aGVtIGluIHNvbWV3aGF0IHJhbmRvbSwgb3IgcmV2ZXJzZWQgb3JkZXIuCisgCSAqLworLQlxc29ydChuaWNsaXN0LCBuaWNfY291bnQsIHNpemVvZihjaGFyICopLCAoX19jb21wYXJfZm5fdCluaWNfY21wKTsKKysJcXNvcnQobmljbGlzdCwgbmljX2NvdW50LCBzaXplb2YoY2hhciAqKSwgbmljX2NtcCk7CisgCisgCXNucHJpbnRmKHByZWZpeCwgc2l6ZW9mKHByZWZpeCksICIlcy8lcyIsIGRldnRyZWUsICJhbGlhc2VzIik7CisgCWRldl9jb3VudCA9IDA7CistLSAKKzIuMTYuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzL2lzY3NpLWluaXRpYXRvci11dGlscy1Eby1ub3QtY2xlYW4ta2VybmVsLXNvdXJjZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzLURvLW5vdC1jbGVhbi1rZXJuZWwtc291cmNlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzQ2NjExLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzLURvLW5vdC1jbGVhbi1rZXJuZWwtc291cmNlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotRnJvbSA0ZWJhYjhhZGQ0YTU0OWMxNmFiOGIxMjQxMzc1NDZjMGE3YjQ2YTliIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgotRGF0ZTogVHVlLCAxNSBOb3YgMjAxNiAxMToxMTozMCAtMDUwMAotU3ViamVjdDogW1BBVENIXSBEbyBub3QgY2xlYW4ga2VybmVsIHNvdXJjZQotCi1UaGUgZGVmYXVsdCBiZWhhdmlvdXIgc2hvdWxkIG5vdCBiZSB0byBhdHRlbXB0IHRvIGNsZWFuIHRoZSBrZXJuZWwgc291cmNlCi10cmVlIHdoZW4gYnVpbGRpbmcgdXNlcnNwYWNlLiAgV2hlbiBub3QgY3Jvc3MtY29tcGlsaW5nLCBob3dldmVyLCB0aGlzIGFjdGlvbiBpcwotaGFybWxlc3MsIGJ1dCB3aGVuIGF0dGVtcHRpbmcgdG8gYnVpbGQgd2l0aGluIHRoZSBzeXNyb290IGFuZCBzaW5jZSB0aGlzIHBhY2thZ2UKLWlzIHB1cmVseSB1c2Vyc3BhY2UsIHRoZSBjbGVhbiBzdGVwIHdpbGwgZmFpbC4KLQotUmVtb3ZpbmcgdGhlIGNsZWFuIHN0ZXAgZWxpbWluYXRlcyBhbiB1bm5lY2Vzc2FyeSBkZXBlbmRlbmN5IG9uIHRoZSBrZXJuZWwgYnVpbGQKLWluZnJhc3RydWN0dXJlLgotCi1VcHN0cmVhbS1zdGF0dXM6IEluYXBwcm9wcmlhdGUgKGVtYmVkZGVkIHNwZWNpZmljKQotCi1TaWduZWQtb2ZmLWJ5OiBKb2UgTWFjRG9uYWxkIDxqb2VfbWFjZG9uYWxkQG1lbnRvci5jb20+Ci0tLS0KLSBNYWtlZmlsZSB8IDMgKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQotaW5kZXggYzhjZDAwZS4uOTU3NmJiYSAxMDA2NDQKLS0tLSBhL01ha2VmaWxlCi0rKysgYi9NYWtlZmlsZQotQEAgLTM3LDcgKzM3LDcgQEAgZW5kaWYKLSAKLSBhbGw6IHVzZXIKLSAKLS11c2VyOiBpc2NzaXVpby9NYWtlZmlsZQotK3VzZXI6Ci0gCSQoTUFLRSkgLUMgdXRpbHMvc3lzZGVwcwotIAkkKE1BS0UpIC1DIHV0aWxzL2Z3cGFyYW1faWJmdAotIAkkKE1BS0UpIC1DIHVzcgotQEAgLTc1LDcgKzc1LDYgQEAgY2xlYW46Ci0gCSQoTUFLRSkgLUMgdXRpbHMvZndwYXJhbV9pYmZ0IGNsZWFuCi0gCSQoTUFLRSkgLUMgdXRpbHMgY2xlYW4KLSAJJChNQUtFKSAtQyB1c3IgY2xlYW4KLS0JJChNQUtFKSAtQyBrZXJuZWwgY2xlYW4KLSAJWyAhIC1mIGlzY3NpdWlvL01ha2VmaWxlIF0gfHwgJChNQUtFKSAtQyBpc2NzaXVpbyBjbGVhbgotIAlbICEgLWYgaXNjc2l1aW8vTWFrZWZpbGUgXSB8fCAkKE1BS0UpIC1DIGlzY3NpdWlvIGRpc3RjbGVhbgotIAotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzL2lzY3NpLWluaXRpYXRvci11dGlscy1md19jb250ZXh0LWFkZC1pbmNsdWRlLWZvci1OSV9NQVhIT1NULWRlZmluaXRvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzLWZ3X2NvbnRleHQtYWRkLWluY2x1ZGUtZm9yLU5JX01BWEhPU1QtZGVmaW5pdG9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2Q2OTVmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzLWZ3X2NvbnRleHQtYWRkLWluY2x1ZGUtZm9yLU5JX01BWEhPU1QtZGVmaW5pdG9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotRnJvbSA3OWJlYTU4YTU1NDIwNWRkMTg1NTA5ZmJjNGU3NmI1ZmM0MGY5MDM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgotRGF0ZTogVHVlLCAxNSBOb3YgMjAxNiAxMjozNjo0NSAtMDUwMAotU3ViamVjdDogW1BBVENIXSBmd19jb250ZXh0OiBhZGQgaW5jbHVkZSBmb3IgTklfTUFYSE9TVCBkZWZpbml0b24KLQotVGhpcyBhcHBlYXJzIHRvIGJ1aWxkIHN1Y2Nlc3NmdWxseSB3aXRoIGdjYyA0LnggYnV0IGZhaWxzIG9uIGdjYyA1KywgdGhvdWdoIGl0J3MKLW5vdCBpbW1lZGlhdGVseSBjbGVhciB3aHkgTklfTUFYSE9TVCBpc24ndCBiZWluZyBkZWZpbmVkIGZyb20gdGhlIGluY2x1ZGUKLWNoYWluLiAgQ3VycmVudGx5IGVuZ2FnaW5nIHdpdGggdGhlIHVwc3RyZWFtIGRldnMgdG8gZGV0ZXJtaW5lIHRoZSBiZXN0IGNvdXJzZQotb2YgYWN0aW9uLCBidXQgdGhpcyBpcyBhbiBhZGVxdWF0ZSB3b3JrYXJvdW5kLgotCi1VcHN0cmVhbS1zdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgotLS0tCi0gaW5jbHVkZS9md19jb250ZXh0LmggfCA0ICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvZndfY29udGV4dC5oIGIvaW5jbHVkZS9md19jb250ZXh0LmgKLWluZGV4IDQ0MDUzZDguLjBiMDVjZWEgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL2Z3X2NvbnRleHQuaAotKysrIGIvaW5jbHVkZS9md19jb250ZXh0LmgKLUBAIC0yMSw2ICsyMSwxMCBAQAotICNpZm5kZWYgRldQQVJBTV9DT05URVhUX0hfCi0gI2RlZmluZSBGV1BBUkFNX0NPTlRFWFRfSF8KLSAKLSsjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotKyNpZm5kZWYgTklfTUFYSE9TVAotKyNkZWZpbmUgTklfTUFYSE9TVCAxMDI1Ci0rI2VuZGlmCi0gI2luY2x1ZGUgPG5ldGRiLmg+Ci0gI2luY2x1ZGUgPG5ldC9pZi5oPgotIAotLS0gCi0yLjEuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2lzY3NpLWluaXRpYXRvci11dGlsc18yLjAuODc0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9pc2NzaS1pbml0aWF0b3ItdXRpbHNfMi4wLjg3NC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTZhYzE5OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2lzY3NpLWluaXRpYXRvci11dGlsc18yLjAuODc0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLVNVTU1BUlkgPSAiaVNDU0kgZGFlbW9uIGFuZCB1dGlsaXR5IHByb2dyYW1zIgotREVTQ1JJUFRJT04gPSAiT3Blbi1pU0NTSSBwcm9qZWN0IGlzIGEgaGlnaCBwZXJmb3JtYW5jZSwgdHJhbnNwb3J0IFwKLWluZGVwZW5kZW50LCBtdWx0aS1wbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbiBvZiBSRkMzNzIwLiBUaGUgaXNjc2kgcGFja2FnZSBcCi1wcm92aWRlcyB0aGUgc2VydmVyIGRhZW1vbiBmb3IgdGhlIGlTQ1NJIHByb3RvY29sLCBhcyB3ZWxsIGFzIHRoZSB1dGlsaXR5IFwKLXByb2dyYW1zIHVzZWQgdG8gbWFuYWdlIGl0LiBpU0NTSSBpcyBhIHByb3RvY29sIGZvciBkaXN0cmlidXRlZCBcCi1kaXNrIGFjY2VzcyB1c2luZyBTQ1NJIGNvbW1hbmRzIHNlbnQgb3ZlciBJbnRlcm5ldCBQcm90b2NvbCBuZXR3b3Jrcy4iCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3Lm9wZW4taXNjc2kuY29tLyIKLUxJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIuMSIKLVNFQ1RJT04gPSAibmV0IgotREVQRU5EUyA9ICJvcGVuc3NsIGZsZXgtbmF0aXZlIGJpc29uLW5hdGl2ZSBvcGVuLWlzbnMgdXRpbC1saW51eCIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MzkzYTVjYTQ0NWY2OTY1ODczZWNhMDI1OWExN2Y4MzMiCi0KLVNSQ1JFViA/PSAiOGRiOTcxN2U3M2QzMmQyYzUxMzFkYTRmOWFkODZkZmQ5MDY1Zjc0YiIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL29wZW4taXNjc2kvb3Blbi1pc2NzaSBcCi0gICAgZmlsZTovL2lzY3NpLWluaXRpYXRvci11dGlscy1Eby1ub3QtY2xlYW4ta2VybmVsLXNvdXJjZS5wYXRjaCBcCi0gICAgZmlsZTovL2lzY3NpLWluaXRpYXRvci11dGlscy1md19jb250ZXh0LWFkZC1pbmNsdWRlLWZvci1OSV9NQVhIT1NULWRlZmluaXRvbi5wYXRjaCBcCi0gICAgZmlsZTovL2luaXRkLmRlYmlhbiBcCi0gICAgZmlsZTovLzk5X2lzY3NpLWluaXRpYXRvci11dGlscyBcCi0gICAgZmlsZTovL2lzY3NpLWluaXRpYXRvciBcCi0gICAgZmlsZTovL2lzY3NpLWluaXRpYXRvci5zZXJ2aWNlIFwKLSAgICBmaWxlOi8vaXNjc2ktaW5pdGlhdG9yLXRhcmdldHMuc2VydmljZSBcCi0gICAgZmlsZTovL3NldF9pbml0aWF0b3JuYW1lIFwKLSIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLUIgPSAiJHtXT1JLRElSfS9idWlsZCIKLQotaW5oZXJpdCB1cGRhdGUtcmMuZCBzeXN0ZW1kIGF1dG90b29scyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLSMgb3Blbi1pc25zIGRlcGVuZHMgb24gc3lzdGVtZAotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInN5c3RlbWQiCi0KLUVYVFJBX09FQ09ORiA9ICIgXAotICAgIC0tdGFyZ2V0PSR7VEFSR0VUX1NZU30gXAotICAgIC0taG9zdD0ke0JVSUxEX1NZU30gXAotICAgIC0tcHJlZml4PSR7cHJlZml4fSBcCi0gICAgLS1saWJkaXI9JHtsaWJkaXJ9IFwKLSIKLQotRVhUUkFfT0VNQUtFID0gJyBcCi0gICAgQ0M9IiR7Q0N9IiBcCi0gICAgQVI9IiR7QVJ9IiBcCi0gICAgUkFOTElCPSIke1JBTkxJQn0iIFwKLSAgICBDRkxBR1M9IiR7Q0ZMQUdTfSAke0NQUEZMQUdTfSAtRF9HTlVfU09VUkNFIC1JLiAtSS4uL2luY2x1ZGUgLUkuLi8uLi9pbmNsdWRlIC1JLi4vdXNyIC1JLi4vLi4vdXNyIiBcCi0gICAgTERGTEFHUz0iJHtMREZMQUdTfSIgXAotICAgIExEPSIke0xEfSIgXAotICAgIE9TPSIke1RBUkdFVF9TWVN9IiBcCi0gICAgVEFSR0VUPSIke1RBUkdFVF9PU30iIFwKLSAgICBCQVNFPSIke3ByZWZpeH0iIFwKLSAgICBNQU5ESVI9IiR7bWFuZGlyfSIgXAotJwotCi1UQVJHRVRfQ0NfQVJDSCArPSAiJHtMREZMQUdTfSIKLQotZG9fY29uZmlndXJlICgpIHsKLSAgICBjZCAke1N9L2lzY3NpdWlvIDsgYXV0b3JlY29uZiAtLWluc3RhbGw7IC4vY29uZmlndXJlICR7RVhUUkFfT0VDT05GfQotfQotCi1kb19jb21waWxlICgpIHsKLSAgICAjIE1ha2Ugc3VyZSB3ZSBETyBOT1QgcmVnZW5lcmF0ZSBwcm9tX2xleC5jLgotICAgIG12ICR7U30vdXRpbHMvZndwYXJhbV9pYmZ0L3Byb21fbGV4LmwgJHtTfS91dGlscy9md3BhcmFtX2liZnQvcHJvbV9sZXgubC51bnVzZWQKLSAgICBvZV9ydW5tYWtlIC1DICR7U30gJHtFWFRSQV9PRU1BS0V9IHVzZXIKLX0KLQotZG9faW5zdGFsbCAoKSB7Ci0gICAgI2luc3RhbGwgbmVjZXNzYXJ5IGRpcmVjdG9yaWVzCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzYmluZGlyfSBcCi0gICAgICAgICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZCBcCi0gICAgICAgICR7RH0ke3N5c2NvbmZkaXJ9L2lzY3NpIFwKLSAgICAgICAgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2lzY3NpL25vZGVzIFwKLSAgICAgICAgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2lzY3NpL3NlbmRfdGFyZ2V0cyBcCi0gICAgICAgICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9pc2NzaS9zdGF0aWMgXAotICAgICAgICAke0R9JHtsb2NhbHN0YXRlZGlyfS9saWIvaXNjc2kvaXNucyBcCi0gICAgICAgICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9pc2NzaS9zbHAgXAotICAgICAgICAke0R9JHtsb2NhbHN0YXRlZGlyfS9saWIvaXNjc2kvaWZhY2VzIFwKLSAgICAgICAgJHtEfS8ke21hbmRpcn0vbWFuOAotCi0gICAgaW5zdGFsbCAtcCAtbSA3NTUgJHtTfS91c3IvaXNjc2lkICR7U30vdXNyL2lzY3NpYWRtIFwKLSAgICAgICAgJHtTfS91dGlscy9pc2NzaS1pbmFtZSBcCi0gICAgICAgICR7U30vdXNyL2lzY3Npc3RhcnQgJHtEfS8ke3NiaW5kaXJ9Ci0KLSAgICBpbnN0YWxsIC1wIC1tIDY0NCAke1N9L2RvYy9pc2NzaWFkbS44ICR7U30vZG9jL2lzY3NpZC44ICR7RH0vJHttYW5kaXJ9L21hbjgKLSAgICBpbnN0YWxsIC1wIC1tIDY0NCAke1N9L2V0Yy9pc2NzaWQuY29uZiAke0R9JHtzeXNjb25mZGlyfS9pc2NzaQotICAgIGluc3RhbGwgLXAgLW0gNzU1ICR7V09SS0RJUn0vaW5pdGQuZGViaWFuICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9pc2NzaWQKLQotICAgIHNlZCAtaSAtZSAiczo9IC9zYmluL2lzY3NpZDo9ICR7c2JpbmRpcn0vaXNjc2lkOiIgJHtEfSR7c3lzY29uZmRpcn0vaXNjc2kvaXNjc2lkLmNvbmYKLQotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAotICAgICAgICBlY2hvICJkIC9ydW4vJHtCUE59L2xvY2sgLSAtIC0gLSIgXAotICAgICAgICAgICAgICAgICAgICAgPiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL2lzY3NpLmNvbmYKLSAgICAgICAgaW5zdGFsbCAtZCAke0R9L2V0Yy9kZWZhdWx0LwotICAgICAgICBpbnN0YWxsIC1wIC1tIDc1NSAke1dPUktESVJ9L2lzY3NpLWluaXRpYXRvciAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0LwotCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2lzY3NpLWluaXRpYXRvci5zZXJ2aWNlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICR7V09SS0RJUn0vaXNjc2ktaW5pdGlhdG9yLXRhcmdldHMuc2VydmljZSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtub25hcmNoX2xpYmRpcn0vaXNjc2kKLSAgICAgICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vc2V0X2luaXRpYXRvcm5hbWUgJHtEfSR7bm9uYXJjaF9saWJkaXJ9L2lzY3NpCi0gICAgZWxzZQotICAgICAgICBpbnN0YWxsIC1kICR7RH0vZXRjL2RlZmF1bHQvdm9sYXRpbGVzCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9Lzk5X2lzY3NpLWluaXRpYXRvci11dGlscyAke0R9L2V0Yy9kZWZhdWx0L3ZvbGF0aWxlcwotICAgIGZpCi19Ci0KLXBrZ19wb3N0aW5zdF8ke1BOfSgpIHsKLSAgICBpZiBbICJ4JEQiID0gIngiIF07IHRoZW4KLSAgICAgICAgaWYgWyAtZSAvZXRjL2luaXQuZC9wb3B1bGF0ZS12b2xhdGlsZS5zaCBdOyB0aGVuCi0gICAgICAgICAgICAvZXRjL2luaXQuZC9wb3B1bGF0ZS12b2xhdGlsZS5zaCB1cGRhdGUKLSAgICAgICAgZWxpZiBjb21tYW5kIC12IHN5c3RlbWQtdG1wZmlsZXMgPi9kZXYvbnVsbDsgdGhlbgotICAgICAgICAgICAgc3lzdGVtZC10bXBmaWxlcyAtLWNyZWF0ZSAke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvaXNjc2kuY29uZgotICAgICAgICBmaQotICAgIGZpCi19Ci0KLVNZU1RFTURfU0VSVklDRSA9ICIgaXNjc2ktaW5pdGlhdG9yLnNlcnZpY2UgaXNjc2ktaW5pdGlhdG9yLXRhcmdldHMuc2VydmljZSAiCi1JTklUU0NSSVBUX05BTUUgPSAiaXNjc2lkIgotSU5JVFNDUklQVF9QQVJBTVMgPSAic3RhcnQgMzAgMSAyIDMgNCA1IC4gc3RvcCA3MCAwIDEgMiAzIDQgNSA2IC4iCi0KLUZJTEVTXyR7UE59ICs9ICIke25vbmFyY2hfbGliZGlyfS9pc2NzaSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzXzIuMC44NzYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2lzY3NpLWluaXRpYXRvci11dGlsc18yLjAuODc2LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyMzIyN2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2lzY3NpLWluaXRpYXRvci11dGlsc18yLjAuODc2LmJiCkBAIC0wLDAgKzEsMTE3IEBACitTVU1NQVJZID0gImlTQ1NJIGRhZW1vbiBhbmQgdXRpbGl0eSBwcm9ncmFtcyIKK0RFU0NSSVBUSU9OID0gIk9wZW4taVNDU0kgcHJvamVjdCBpcyBhIGhpZ2ggcGVyZm9ybWFuY2UsIHRyYW5zcG9ydCBcCitpbmRlcGVuZGVudCwgbXVsdGktcGxhdGZvcm0gaW1wbGVtZW50YXRpb24gb2YgUkZDMzcyMC4gVGhlIGlzY3NpIHBhY2thZ2UgXAorcHJvdmlkZXMgdGhlIHNlcnZlciBkYWVtb24gZm9yIHRoZSBpU0NTSSBwcm90b2NvbCwgYXMgd2VsbCBhcyB0aGUgdXRpbGl0eSBcCitwcm9ncmFtcyB1c2VkIHRvIG1hbmFnZSBpdC4gaVNDU0kgaXMgYSBwcm90b2NvbCBmb3IgZGlzdHJpYnV0ZWQgXAorZGlzayBhY2Nlc3MgdXNpbmcgU0NTSSBjb21tYW5kcyBzZW50IG92ZXIgSW50ZXJuZXQgUHJvdG9jb2wgbmV0d29ya3MuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5vcGVuLWlzY3NpLmNvbS8iCitMSUNFTlNFID0gIkdQTHYyICYgTEdQTHYyLjEiCitTRUNUSU9OID0gIm5ldCIKK0RFUEVORFMgPSAib3BlbnNzbCBmbGV4LW5hdGl2ZSBiaXNvbi1uYXRpdmUgb3Blbi1pc25zIHV0aWwtbGludXgiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTM5M2E1Y2E0NDVmNjk2NTg3M2VjYTAyNTlhMTdmODMzIgorCitTUkNSRVYgPz0gIjI0NTgwYWRjNGMxNzRiYmM1ZGRlM2FlNzU5NGE0NmQ1NzYzNWU5MDYiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuLWlzY3NpL29wZW4taXNjc2kgXAorICAgIGZpbGU6Ly9pbml0ZC5kZWJpYW4gXAorICAgIGZpbGU6Ly85OV9pc2NzaS1pbml0aWF0b3ItdXRpbHMgXAorICAgIGZpbGU6Ly9pc2NzaS1pbml0aWF0b3IgXAorICAgIGZpbGU6Ly9pc2NzaS1pbml0aWF0b3Iuc2VydmljZSBcCisgICAgZmlsZTovL2lzY3NpLWluaXRpYXRvci10YXJnZXRzLnNlcnZpY2UgXAorICAgIGZpbGU6Ly9zZXRfaW5pdGlhdG9ybmFtZSBcCisgICAgZmlsZTovLzAwMDEtbGlib3BlbmlzY3NpdXNyLUluY2x1ZGUtbGltaXQuaC1mb3ItUEFUSF9NQVgucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAyLWxpYm9wZW5pc2NzaXVzci1BZGQtQ0ZMQUdTLXRvLWxpbmtlci1jbWRsaW5lLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMS1xZWRpLmMtUmVtb3ZlZC11bnVzZWQtbGludXgtZXRodG9vbC5oLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMi1pZGJtLmMtSW5jbHVkZS1mY25sLmgtZm9yLU9fUkRXUi1hbmQtT19DUkVBVC1kZWZpbml0LnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMy1ibngyeC5jLVJlb3JkZXItdGhlLWluY2x1ZGVzLXRvLWF2b2lkLWR1cGxpY2F0ZS1kZWZpLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNC1md3BhcmFtX3BwYy5jLURvLW5vdC11c2UtX19jb21wYXJfZm5fdC5wYXRjaCBcCisiCitTID0gIiR7V09SS0RJUn0vZ2l0IgorQiA9ICIke1dPUktESVJ9L2J1aWxkIgorCitpbmhlcml0IHVwZGF0ZS1yYy5kIHN5c3RlbWQgYXV0b3Rvb2xzCisKK0VYVFJBX09FQ09ORiA9ICIgXAorICAgIC0tdGFyZ2V0PSR7VEFSR0VUX1NZU30gXAorICAgIC0taG9zdD0ke0JVSUxEX1NZU30gXAorIgorCitFWFRSQV9PRU1BS0UgPSAnIFwKKyAgICBPUz0iJHtUQVJHRVRfU1lTfSIgXAorICAgIFRBUkdFVD0iJHtUQVJHRVRfT1N9IiBcCisgICAgQkFTRT0iJHtwcmVmaXh9IiBcCisgICAgTUFORElSPSIke21hbmRpcn0iIFwKKycKKworZG9fY29uZmlndXJlICgpIHsKKyAgICBjZCAke1N9L2lzY3NpdWlvIDsgYXV0b3JlY29uZiAtLWluc3RhbGw7IC4vY29uZmlndXJlICR7RVhUUkFfT0VDT05GfQorfQorCitkb19jb21waWxlICgpIHsKKyAgICAjIE1ha2Ugc3VyZSB3ZSBETyBOT1QgcmVnZW5lcmF0ZSBwcm9tX2xleC5jLgorICAgIGlmIFsgLWYgJHtTfS91dGlscy9md3BhcmFtX2liZnQvcHJvbV9sZXgubCBdOyB0aGVuCisgICAgICAgIG12ICR7U30vdXRpbHMvZndwYXJhbV9pYmZ0L3Byb21fbGV4LmwgJHtTfS91dGlscy9md3BhcmFtX2liZnQvcHJvbV9sZXgubC51bnVzZWQKKyAgICBmaQorICAgIG9lX3J1bm1ha2UgLUMgJHtTfSAke0VYVFJBX09FTUFLRX0gdXNlcgorfQorCitkb19pbnN0YWxsICgpIHsKKyAgICAjaW5zdGFsbCBuZWNlc3NhcnkgZGlyZWN0b3JpZXMKKyAgICBpbnN0YWxsIC1kICR7RH0ke3NiaW5kaXJ9IFwKKyAgICAgICAgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kIFwKKyAgICAgICAgJHtEfSR7c3lzY29uZmRpcn0vaXNjc2kgXAorICAgICAgICAke0R9JHtsb2NhbHN0YXRlZGlyfS9saWIvaXNjc2kvbm9kZXMgXAorICAgICAgICAke0R9JHtsb2NhbHN0YXRlZGlyfS9saWIvaXNjc2kvc2VuZF90YXJnZXRzIFwKKyAgICAgICAgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2lzY3NpL3N0YXRpYyBcCisgICAgICAgICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9pc2NzaS9pc25zIFwKKyAgICAgICAgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2lzY3NpL3NscCBcCisgICAgICAgICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9pc2NzaS9pZmFjZXMgXAorICAgICAgICAke0R9JHtsaWJkaXJ9IFwKKyAgICAgICAgJHtEfSR7bWFuZGlyfS9tYW44CisKKyAgICBpbnN0YWxsIC1wIC1tIDc1NSAke1N9L3Vzci9pc2NzaWQgJHtTfS91c3IvaXNjc2lhZG0gXAorICAgICAgICAke1N9L3V0aWxzL2lzY3NpLWluYW1lIFwKKyAgICAgICAgJHtTfS91c3IvaXNjc2lzdGFydCAke0R9LyR7c2JpbmRpcn0KKworICAgIGNwIC1kUiAke1N9L2xpYm9wZW5pc2NzaXVzci9saWJvcGVuaXNjc2l1c3Iuc28qICR7RH0ke2xpYmRpcn0KKyAgICBpbnN0YWxsIC1wIC1tIDY0NCAke1N9L2RvYy9pc2NzaWFkbS44ICR7U30vZG9jL2lzY3NpZC44ICR7RH0vJHttYW5kaXJ9L21hbjgKKyAgICBpbnN0YWxsIC1wIC1tIDY0NCAke1N9L2V0Yy9pc2NzaWQuY29uZiAke0R9JHtzeXNjb25mZGlyfS9pc2NzaQorICAgIGluc3RhbGwgLXAgLW0gNzU1ICR7V09SS0RJUn0vaW5pdGQuZGViaWFuICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9pc2NzaWQKKworICAgIHNlZCAtaSAtZSAiczo9IC9zYmluL2lzY3NpZDo9ICR7c2JpbmRpcn0vaXNjc2lkOiIgJHtEfSR7c3lzY29uZmRpcn0vaXNjc2kvaXNjc2lkLmNvbmYKKworICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAorICAgICAgICBlY2hvICJkIC9ydW4vJHtCUE59L2xvY2sgLSAtIC0gLSIgXAorICAgICAgICAgICAgICAgICAgICAgPiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL2lzY3NpLmNvbmYKKyAgICAgICAgaW5zdGFsbCAtZCAke0R9L2V0Yy9kZWZhdWx0LworICAgICAgICBpbnN0YWxsIC1wIC1tIDc1NSAke1dPUktESVJ9L2lzY3NpLWluaXRpYXRvciAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0LworCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCisgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2lzY3NpLWluaXRpYXRvci5zZXJ2aWNlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICR7V09SS0RJUn0vaXNjc2ktaW5pdGlhdG9yLXRhcmdldHMuc2VydmljZSBcCisgICAgICAgICAgICAgICAgICAgICAgICAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KKyAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtub25hcmNoX2xpYmRpcn0vaXNjc2kKKyAgICAgICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vc2V0X2luaXRpYXRvcm5hbWUgJHtEfSR7bm9uYXJjaF9saWJkaXJ9L2lzY3NpCisgICAgZWxzZQorICAgICAgICBpbnN0YWxsIC1kICR7RH0vZXRjL2RlZmF1bHQvdm9sYXRpbGVzCisgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9Lzk5X2lzY3NpLWluaXRpYXRvci11dGlscyAke0R9L2V0Yy9kZWZhdWx0L3ZvbGF0aWxlcworICAgIGZpCit9CisKK3BrZ19wb3N0aW5zdF8ke1BOfSgpIHsKKyAgICBpZiBbICJ4JEQiID0gIngiIF07IHRoZW4KKyAgICAgICAgaWYgWyAtZSAvZXRjL2luaXQuZC9wb3B1bGF0ZS12b2xhdGlsZS5zaCBdOyB0aGVuCisgICAgICAgICAgICAvZXRjL2luaXQuZC9wb3B1bGF0ZS12b2xhdGlsZS5zaCB1cGRhdGUKKyAgICAgICAgZWxpZiBjb21tYW5kIC12IHN5c3RlbWQtdG1wZmlsZXMgPi9kZXYvbnVsbDsgdGhlbgorICAgICAgICAgICAgc3lzdGVtZC10bXBmaWxlcyAtLWNyZWF0ZSAke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvaXNjc2kuY29uZgorICAgICAgICBmaQorICAgIGZpCit9CisKK1NZU1RFTURfU0VSVklDRSA9ICIgaXNjc2ktaW5pdGlhdG9yLnNlcnZpY2UgaXNjc2ktaW5pdGlhdG9yLXRhcmdldHMuc2VydmljZSAiCitJTklUU0NSSVBUX05BTUUgPSAiaXNjc2lkIgorSU5JVFNDUklQVF9QQVJBTVMgPSAic3RhcnQgMzAgMSAyIDMgNCA1IC4gc3RvcCA3MCAwIDEgMiAzIDQgNSA2IC4iCisKK0ZJTEVTXyR7UE59ICs9ICIke25vbmFyY2hfbGliZGlyfS9pc2NzaSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9rZWVwYWxpdmVkL2tlZXBhbGl2ZWRfMS4zLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMva2VlcGFsaXZlZC9rZWVwYWxpdmVkXzEuMy41LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTdlNmU0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9rZWVwYWxpdmVkL2tlZXBhbGl2ZWRfMS4zLjUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1TVU1NQVJZID0gIkhpZ2ggQXZhaWxhYmlsaXR5IG1vbml0b3IgYnVpbHQgdXBvbiBMVlMsIFZSUlAgYW5kIHNlcnZpY2UgcG9sbGVycyIKLURFU0NSSVBUSU9OID0gIktlZXBhbGl2ZWQgaXMgYSByb3V0aW5nIHNvZnR3YXJlIHdyaXR0ZW4gaW4gQy4gVGhlIG1haW4gZ29hbCBcCi1vZiB0aGlzIHByb2plY3QgaXMgdG8gcHJvdmlkZSBzaW1wbGUgYW5kIHJvYnVzdCBmYWNpbGl0aWVzIGZvciBsb2FkYmFsYW5jaW5nIFwKLWFuZCBoaWdoLWF2YWlsYWJpbGl0eSB0byBMaW51eCBzeXN0ZW0gYW5kIExpbnV4IGJhc2VkIGluZnJhc3RydWN0dXJlcy4gXAotTG9hZGJhbGFuY2luZyBmcmFtZXdvcmsgcmVsaWVzIG9uIHdlbGwta25vd24gYW5kIHdpZGVseSB1c2VkIExpbnV4IFZpcnR1YWwgXAotU2VydmVyIChJUFZTKSBrZXJuZWwgbW9kdWxlIHByb3ZpZGluZyBMYXllcjQgbG9hZGJhbGFuY2luZyBcCi0iCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmtlZXBhbGl2ZWQub3JnLyIKLQotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotCi1TUkNfVVJJID0gImh0dHA6Ly93d3cua2VlcGFsaXZlZC5vcmcvc29mdHdhcmUvJHtCUH0udGFyLmd6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiOTk2NGQyOTVlYzlkMzRlZDM0MDhiNTdkMjg4NDdiNjgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzAxMTRkODZlYTRjODk2NTU3YmViMGQ5MzY3ODE5YTQyM2ZmYmE3NzJiYzVkN2M1NDhkYzQ1NWU2YjNiZDA0OCIKLQotREVQRU5EUyA9ICJsaWJuZm5ldGxpbmsgb3BlbnNzbCIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIHN5c3RlbWQgdXBkYXRlLXJjLmQKLQotUEFDS0FHRUNPTkZJRyA/Pz0gImxpYm5sIHNubXAgXAotICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCBkKX0gXAotIgotUEFDS0FHRUNPTkZJR1tsaWJubF0gPSAiLS1lbmFibGUtbGlibmwsLS1kaXNhYmxlLWxpYm5sLGxpYm5sIgotUEFDS0FHRUNPTkZJR1tzbm1wXSA9ICItLWVuYWJsZS1zbm1wLC0tZGlzYWJsZS1zbm1wLG5ldC1zbm1wIgotUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICItLXdpdGgtaW5pdD1zeXN0ZW1kIC0td2l0aC1zeXN0ZW1kc3lzdGVtdW5pdGRpcj0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9LC0td2l0aC1pbml0PVNZU1Ysc3lzdGVtZCIKLQotRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1saWJpcHRjIgotRVhUUkFfT0VNQUtFID0gImluaXRkaXI9JHtzeXNjb25mZGlyfS9pbml0LmQiCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGlmIFsgLWYgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kLyR7QlBOfSBdOyB0aGVuCi0gICAgICAgIGNobW9kIDA3NTUgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kLyR7QlBOfQotICAgICAgICBzZWQgLWkgJ3MjcmMuZC8jIycgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kLyR7QlBOfQotICAgIGZpCi0KLSAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgotICAgICAgICBpbnN0YWxsIC1EIC1tIDA2NDQgJHtCfS8ke0JQTn0vJHtCUE59LnNlcnZpY2UgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0vJHtCUE59LnNlcnZpY2UKLSAgICBmaQotfQotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9zbm1wL21pYnMvS0VFUEFMSVZFRC1NSUIudHh0IgotCi1JTklUU0NSSVBUX05BTUUgPSAia2VlcGFsaXZlZCIKLUlOSVRTQ1JJUFRfUEFSQU1TID0gInJlbW92ZSIKLQotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImtlZXBhbGl2ZWQuc2VydmljZSIKLVNZU1RFTURfQVVUT19FTkFCTEUgPz0gImRpc2FibGUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMva2VlcGFsaXZlZC9rZWVwYWxpdmVkXzEuNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2tlZXBhbGl2ZWQva2VlcGFsaXZlZF8xLjQuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjQxN2I3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2tlZXBhbGl2ZWQva2VlcGFsaXZlZF8xLjQuMi5iYgpAQCAtMCwwICsxLDQ4IEBACitTVU1NQVJZID0gIkhpZ2ggQXZhaWxhYmlsaXR5IG1vbml0b3IgYnVpbHQgdXBvbiBMVlMsIFZSUlAgYW5kIHNlcnZpY2UgcG9sbGVycyIKK0RFU0NSSVBUSU9OID0gIktlZXBhbGl2ZWQgaXMgYSByb3V0aW5nIHNvZnR3YXJlIHdyaXR0ZW4gaW4gQy4gVGhlIG1haW4gZ29hbCBcCitvZiB0aGlzIHByb2plY3QgaXMgdG8gcHJvdmlkZSBzaW1wbGUgYW5kIHJvYnVzdCBmYWNpbGl0aWVzIGZvciBsb2FkYmFsYW5jaW5nIFwKK2FuZCBoaWdoLWF2YWlsYWJpbGl0eSB0byBMaW51eCBzeXN0ZW0gYW5kIExpbnV4IGJhc2VkIGluZnJhc3RydWN0dXJlcy4gXAorTG9hZGJhbGFuY2luZyBmcmFtZXdvcmsgcmVsaWVzIG9uIHdlbGwta25vd24gYW5kIHdpZGVseSB1c2VkIExpbnV4IFZpcnR1YWwgXAorU2VydmVyIChJUFZTKSBrZXJuZWwgbW9kdWxlIHByb3ZpZGluZyBMYXllcjQgbG9hZGJhbGFuY2luZyBcCisiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmtlZXBhbGl2ZWQub3JnLyIKKworTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgorCitTUkNfVVJJID0gImh0dHA6Ly93d3cua2VlcGFsaXZlZC5vcmcvc29mdHdhcmUvJHtCUH0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjYxMGFmNmUwNDA3MWYwMmQzNDY5MTkxZGU3NDk5ZjRlIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjRlMmQ3Y2MwMWE2ZWUyOWEzOTU1ZjVjNjIyZDQ3NzA0YmE3ZDlkZDc1ODE4OWYxNWU5ZGVmMDE2YTJkMWZhYTMiCisKK0RFUEVORFMgPSAibGlibmZuZXRsaW5rIG9wZW5zc2wiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBzeXN0ZW1kIHVwZGF0ZS1yYy5kCisKK1BBQ0tBR0VDT05GSUcgPz89ICJsaWJubCBzbm1wIFwKKyAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IFwKKyIKK1BBQ0tBR0VDT05GSUdbbGlibmxdID0gIi0tZW5hYmxlLWxpYm5sLC0tZGlzYWJsZS1saWJubCxsaWJubCIKK1BBQ0tBR0VDT05GSUdbc25tcF0gPSAiLS1lbmFibGUtc25tcCwtLWRpc2FibGUtc25tcCxuZXQtc25tcCIKK1BBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiLS13aXRoLWluaXQ9c3lzdGVtZCAtLXdpdGgtc3lzdGVtZHN5c3RlbXVuaXRkaXI9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfSwtLXdpdGgtaW5pdD1TWVNWLHN5c3RlbWQiCisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtbGliaXB0YyIKK0VYVFJBX09FTUFLRSA9ICJpbml0ZGlyPSR7c3lzY29uZmRpcn0vaW5pdC5kIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpZiBbIC1mICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC8ke0JQTn0gXTsgdGhlbgorICAgICAgICBjaG1vZCAwNzU1ICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC8ke0JQTn0KKyAgICAgICAgc2VkIC1pICdzI3JjLmQvIyMnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC8ke0JQTn0KKyAgICBmaQorCisgICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KKyAgICAgICAgaW5zdGFsbCAtRCAtbSAwNjQ0ICR7Qn0vJHtCUE59LyR7QlBOfS5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9LyR7QlBOfS5zZXJ2aWNlCisgICAgZmkKK30KKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vc25tcC9taWJzL0tFRVBBTElWRUQtTUlCLnR4dCIKKworSU5JVFNDUklQVF9OQU1FID0gImtlZXBhbGl2ZWQiCitJTklUU0NSSVBUX1BBUkFNUyA9ICJyZW1vdmUiCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJrZWVwYWxpdmVkLnNlcnZpY2UiCitTWVNURU1EX0FVVE9fRU5BQkxFID89ICJkaXNhYmxlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS1maXgtaG9zdC1nY2MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWZpeC1ob3N0LWdjYy5wYXRjaAppbmRleCAwMjliODU3Li45N2M1MTVlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWZpeC1ob3N0LWdjYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWZpeC1ob3N0LWdjYy5wYXRjaApAQCAtNiwxMSArNiwxMSBAQAogCiBTaWduZWQtb2YtYnk6IEF3cyBJc21haWwgPGF3cy5pc21haWxAd2luZHJpdmVyLmNvbT4KIAotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggZjVhNWI3NC4uNGEyMDE1NCAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNjA1LDExICs2MDUsNiBAQCBBQ19BUkdfRU5BQkxFKFt3ZXJyb3JdLAorSW5kZXg6IG9wZW5ocGktMy42LjEvY29uZmlndXJlLmFjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gb3BlbmhwaS0zLjYuMS5vcmlnL2NvbmZpZ3VyZS5hYworKysrIG9wZW5ocGktMy42LjEvY29uZmlndXJlLmFjCitAQCAtNjU2LDExICs2NTYsNiBAQCBBQ19BUkdfRU5BQkxFKFt3ZXJyb3JdLAogICAgICBmaV0sCiAgICAgIFtdKQogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS1maXgtdGVzdGZhaWwtZXJyb3JzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS1maXgtdGVzdGZhaWwtZXJyb3JzLnBhdGNoCmluZGV4IDIwNTY5NmUuLjYwZTJlNzkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuaHBpL2ZpbGVzL29wZW5ocGktZml4LXRlc3RmYWlsLWVycm9ycy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWZpeC10ZXN0ZmFpbC1lcnJvcnMucGF0Y2gKQEAgLTQsMTAgKzQsMTEgQEAKIAogU2lnbmVkLW9mZi1ieTogeWFuanVuLnpodSA8eWFuanVuLnpodUB3aW5kcml2ZXIuY29tPgogCi1kaWZmIC11cnBOIGEvb3BlbmhwaWQvc2FmaHBpLmMgYi9vcGVuaHBpZC9zYWZocGkuYwotLS0tIGEvb3BlbmhwaWQvc2FmaHBpLmMKLSsrKyBiL29wZW5ocGlkL3NhZmhwaS5jCi1AQCAtMTk3Niw3ICsxOTc2LDcgQEAgU2FFcnJvclQgU0FIUElfQVBJIHNhSHBpU2Vuc29yVGhyZXNob2xkcworSW5kZXg6IG9wZW5ocGktMy42LjEvb3BlbmhwaWQvc2FmaHBpLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBvcGVuaHBpLTMuNi4xLm9yaWcvb3BlbmhwaWQvc2FmaHBpLmMKKysrKyBvcGVuaHBpLTMuNi4xL29wZW5ocGlkL3NhZmhwaS5jCitAQCAtMTkzMyw3ICsxOTMzLDcgQEAgU2FFcnJvclQgU0FIUElfQVBJIHNhSHBpU2Vuc29yVGhyZXNob2xkcwogICAgICAgICAgb2hfcmVsZWFzZV9kb21haW4oZCk7IC8qIFVubG9jayBkb21haW4gKi8KICAKICAgICAgICAgIE9IX0NBTExfQUJJKGgsIHNldF9zZW5zb3JfdGhyZXNob2xkcywgU0FfRVJSX0hQSV9JTlZBTElEX0NNRCwgcnYsCkBAIC0xNiwxMCArMTcsMTEgQEAKICAgICAgICAgIG9oX3JlbGVhc2VfaGFuZGxlcihoKTsKICAKICAgICAgICAgIHJldHVybiBydjsKLWRpZmYgLXVycE4gYS91dGlscy9zYWhwaV9zdHJ1Y3RfdXRpbHMuYyBiL3V0aWxzL3NhaHBpX3N0cnVjdF91dGlscy5jCi0tLS0gYS91dGlscy9zYWhwaV9zdHJ1Y3RfdXRpbHMuYwotKysrIGIvdXRpbHMvc2FocGlfc3RydWN0X3V0aWxzLmMKLUBAIC0zODU1LDYgKzM4NTUsOSBAQCBTYUhwaUJvb2xUIG9oX3ZhbGlkX3RleHRidWZmZXIoU2FIcGlUZXh0CitJbmRleDogb3BlbmhwaS0zLjYuMS91dGlscy9zYWhwaV9zdHJ1Y3RfdXRpbHMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG9wZW5ocGktMy42LjEub3JpZy91dGlscy9zYWhwaV9zdHJ1Y3RfdXRpbHMuYworKysrIG9wZW5ocGktMy42LjEvdXRpbHMvc2FocGlfc3RydWN0X3V0aWxzLmMKK0BAIC0zODYxLDYgKzM4NjEsOSBAQCBTYUhwaUJvb2xUIG9oX3ZhbGlkX3RleHRidWZmZXIoU2FIcGlUZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZvdW5kIGEgdW5wYWlyZWQgc3Vycm9nYXRlICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTQUhQSV9GQUxTRTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuaHBpL2ZpbGVzL29wZW5ocGktaHBpLXNoZWxsLXRocmVhZC1maXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWhwaS1zaGVsbC10aHJlYWQtZml4LnBhdGNoCmluZGV4IDdkYWM0NTMuLmNjMjFmZjggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuaHBpL2ZpbGVzL29wZW5ocGktaHBpLXNoZWxsLXRocmVhZC1maXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS1ocGktc2hlbGwtdGhyZWFkLWZpeC5wYXRjaApAQCAtMTQsMTEgKzE0LDExIEBACiAgICAgCiAgICAgU2lnbmVkLW9mZi1ieTogQXdzIElzbWFpbCA8YXdzLmlzbWFpbEB3aW5kcml2ZXIuY29tPgogCi1kaWZmIC0tZ2l0IGEvaHBpX3NoZWxsL3Nlc3Npb24uYyBiL2hwaV9zaGVsbC9zZXNzaW9uLmMKLWluZGV4IDg1YzMxYmYuLjE4N2RhNGMgMTAwNjQ0Ci0tLS0gYS9ocGlfc2hlbGwvc2Vzc2lvbi5jCi0rKysgYi9ocGlfc2hlbGwvc2Vzc2lvbi5jCi1AQCAtNjYsNyArNjYsNyBAQCBzdGF0aWMgdm9pZCogcHJvZ3Jlc3NfYmFyKHZvaWQgKnVudXNlZCkKK0luZGV4OiBvcGVuaHBpLTMuNi4xL2hwaV9zaGVsbC9zZXNzaW9uLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBvcGVuaHBpLTMuNi4xLm9yaWcvaHBpX3NoZWxsL3Nlc3Npb24uYworKysrIG9wZW5ocGktMy42LjEvaHBpX3NoZWxsL3Nlc3Npb24uYworQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIHZvaWQqIHByb2dyZXNzX2Jhcih2b2lkICp1bnVzZWQpCiAgCQlpZiAoaSA8IChQUk9HUkVTU19CVUZfU0laRSAtIG1lc19sZW4gLSAxKSkgaSsrOwogIAkJdCsrOwogIAl9OwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS1saWJ4bWwyLWNyb3NzLWNvbXBpbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWxpYnhtbDItY3Jvc3MtY29tcGlsZS5wYXRjaAppbmRleCA2ZDNiNjY0Li5jODQ4YjM1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWxpYnhtbDItY3Jvc3MtY29tcGlsZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWxpYnhtbDItY3Jvc3MtY29tcGlsZS5wYXRjaApAQCAtNiwxMSArNiwxMSBAQAogCiBTaWduZWQtb2YtYnk6IEF3cyBJc21haWwgPGF3cy5pc21haWxAd2luZHJpdmVyLmNvbT4KIAotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggMzBhNzkyYy4uYjVmNWFhZCAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTc1LDcgKzE3NSw3IEBAIEFDX0NIRUNLX0hFQURFUlMoW29wZW5zc2wvbWQyLmggb3BlbnNzbC9tZDUuaCBvcGVuc3NsL2Jpby5oIG9wZW5zc2wvc3NsLmggb3BlbnNzCitJbmRleDogb3BlbmhwaS0zLjYuMS9jb25maWd1cmUuYWMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBvcGVuaHBpLTMuNi4xLm9yaWcvY29uZmlndXJlLmFjCisrKysgb3BlbmhwaS0zLjYuMS9jb25maWd1cmUuYWMKK0BAIC0xNzcsNyArMTc3LDcgQEAgQUNfQ0hFQ0tfSEVBREVSUyhbb3BlbnNzbC9tZDIuaCBvcGVuc3NsLwogIAogIGRubCB4bWwgaXMgdXNlZCBmb3IgWE1MLWJhc2VkIGNvbW11bmljYXRpb24gaW4gaWxvMl9yaWJjbCBhbmQgb2Ffc29hcAogIEFDX0NIRUNLX0xJQihbeG1sMl0sW3htbFBhcnNlTWVtb3J5XSxbWE1MMl9MSUI9LWx4bWwyXSxbWE1MMl9MSUI9XSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuaHBpL2ZpbGVzL29wZW5ocGktdXNlLXNlcmlhbC10ZXN0cy1jb25maWctbmVlZGVkLWJ5LXB0ZXN0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS11c2Utc2VyaWFsLXRlc3RzLWNvbmZpZy1uZWVkZWQtYnktcHRlc3QucGF0Y2gKaW5kZXggNTE1MzdlZi4uM2UwOTE4MCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS11c2Utc2VyaWFsLXRlc3RzLWNvbmZpZy1uZWVkZWQtYnktcHRlc3QucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS11c2Utc2VyaWFsLXRlc3RzLWNvbmZpZy1uZWVkZWQtYnktcHRlc3QucGF0Y2gKQEAgLTEzLDE5ICsxMywxNiBAQAogIGNvbmZpZ3VyZS5hYyB8ICAgIDIgKy0KICAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggNGI1MTk3MS4uMTYxMzZiMyAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNyw3ICs3LDcgQEAgZG5sICAgdmFyaW91cyBoYWNrcyBieSBTZWFuIERhZ3VlIDxodHRwOi8vZGFndWUubmV0L3NlYW4+IDQvMjMvMDMKK0luZGV4OiBvcGVuaHBpLTMuNi4xL2NvbmZpZ3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG9wZW5ocGktMy42LjEub3JpZy9jb25maWd1cmUuYWMKKysrKyBvcGVuaHBpLTMuNi4xL2NvbmZpZ3VyZS5hYworQEAgLTcsNyArNyw3IEBAIGRubCAgIHZhcmlvdXMgaGFja3MgYnkgU2VhbiBEYWd1ZSA8aHR0cDoKICBBQ19QUkVSRVEoMi41NykKLSBBQ19JTklUKG9wZW5ocGksIDMuNS4wKQorIEFDX0lOSVQob3BlbmhwaSwgMy42LjEpCiAgQUNfQ09ORklHX1NSQ0RJUihvcGVuaHBpLnNwZWMuaW4pCiAtQU1fSU5JVF9BVVRPTUFLRShbMS44XSkKICtBTV9JTklUX0FVVE9NQUtFKFsxLjggc2VyaWFsLXRlc3RzXSkKICAKICBBTV9DT05GSUdfSEVBREVSKGNvbmZpZy5oKQogIEFIX1RPUChbI2lmbmRlZiBfX09QRU5IUElfQ09ORklHX0gKLS0tIAotMS43LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5zYWYvb3BlbnNhZi8wMDAxLWNvbmZpZ3VyZS1EaXNhYmxlLWZvcm1hdC1vdmVyZmxvdy1pZi1zdXBwb3J0ZWQtYnktZ2MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbnNhZi9vcGVuc2FmLzAwMDEtY29uZmlndXJlLURpc2FibGUtZm9ybWF0LW92ZXJmbG93LWlmLXN1cHBvcnRlZC1ieS1nYy5wYXRjaAppbmRleCA1MTJlMjQ2Li5lZmZlMjVjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbnNhZi9vcGVuc2FmLzAwMDEtY29uZmlndXJlLURpc2FibGUtZm9ybWF0LW92ZXJmbG93LWlmLXN1cHBvcnRlZC1ieS1nYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbnNhZi9vcGVuc2FmLzAwMDEtY29uZmlndXJlLURpc2FibGUtZm9ybWF0LW92ZXJmbG93LWlmLXN1cHBvcnRlZC1ieS1nYy5wYXRjaApAQCAtMTEsMTAgKzExLDEwIEBACiAgMyBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogIGNyZWF0ZSBtb2RlIDEwMDY0NCBtNC9heF9jaGVja19jb21waWxlX2ZsYWcubTQKIAotZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KLWluZGV4IGQ2M2ZiYmIuLjEwMTJhMmMgMTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZS5hbQotKysrIGIvTWFrZWZpbGUuYW0KK0luZGV4OiBvcGVuc2FmLTUuMTguMDIvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBvcGVuc2FmLTUuMTguMDIub3JpZy9NYWtlZmlsZS5hbQorKysrIG9wZW5zYWYtNS4xOC4wMi9NYWtlZmlsZS5hbQogQEAgLTUyLDEwICs1MiwxMCBAQCBBTV9DUFBGTEFHUyA9IFwKICAJLXB0aHJlYWQgXAogIAktRF9HTlVfU09VUkNFIC1ESU5URVJOQUxfVkVSU0lPTl9JRD0nIkBJTlRFUk5BTF9WRVJTSU9OX0lEQCInIFwKQEAgLTI2LDE0ICsyNiwxNCBAQAogLUFNX0NYWEZMQUdTID0gLXBpcGUgLXN0ZD1nbnUrKzExIEBPU0FGX0hBUkRFTl9GTEFHU0AgLVdhbGwgLVdmb3JtYXQ9MiAtV2Vycm9yCiArQU1fQ0ZMQUdTID0gLXBpcGUgLXN0ZD1nbnUxMSBAT1NBRl9IQVJERU5fRkxBR1NAIC1XYWxsIC1XZm9ybWF0PTIgLVdlcnJvciBATk9XQVJOSU5HU0AKICtBTV9DWFhGTEFHUyA9IC1waXBlIC1zdGQ9Z251KysxMSBAT1NBRl9IQVJERU5fRkxBR1NAIC1XYWxsIC1XZm9ybWF0PTIgLVdlcnJvciBATk9XQVJOSU5HU0AKLSBBTV9MREZMQUdTID0gQE9TQUZfSEFSREVOX0ZMQUdTQCAtV2wsLS1hcy1uZWVkZWQgLWxkbCAtbHJ0IC1wdGhyZWFkIC1yZHluYW1pYwotIEFDTE9DQUxfQU1GTEFHUyA9IC1JIG00Ci0gT1NBRl9MSUJfRkxBR1MgPQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggMDI3NzFjNi4uYjc2YjBmZSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNTU3LDYgKzU1Nyw4IEBAIGlmIHRlc3QgLXogIiRPU0FGX0hBUkRFTl9GTEFHUyI7IHRoZW4KKyAKKyBpZiBFTkFCTEVfR0NPVgorIEFNX0NGTEFHUyArPSAtLWNvdmVyYWdlCitJbmRleDogb3BlbnNhZi01LjE4LjAyL2NvbmZpZ3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG9wZW5zYWYtNS4xOC4wMi5vcmlnL2NvbmZpZ3VyZS5hYworKysrIG9wZW5zYWYtNS4xOC4wMi9jb25maWd1cmUuYWMKK0BAIC01OTMsNiArNTkzLDggQEAgaWYgdGVzdCAteiAiJE9TQUZfSEFSREVOX0ZMQUdTIjsgdGhlbgogIGZpCiAgQUNfU1VCU1QoT1NBRl9IQVJERU5fRkxBR1MpCiAgCkBAIC00MiwxMSArNDIsMTAgQEAKICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAjIExpc3QgdGhlIG91dHB1dCBNYWtlZmlsZXMKICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWRpZmYgLS1naXQgYS9tNC9heF9jaGVja19jb21waWxlX2ZsYWcubTQgYi9tNC9heF9jaGVja19jb21waWxlX2ZsYWcubTQKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5kY2FiYjkyCitJbmRleDogb3BlbnNhZi01LjE4LjAyL200L2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAotKysrIGIvbTQvYXhfY2hlY2tfY29tcGlsZV9mbGFnLm00CisrKysgb3BlbnNhZi01LjE4LjAyL200L2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNAogQEAgLTAsMCArMSw3NCBAQAogKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiArIyAgaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdXRvY29uZi1hcmNoaXZlL2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5odG1sCkBAIC0xMjIsNiArMTIxLDMgQEAKICsgIFttNF9kZWZhdWx0KFskM10sIDopXSkKICtBU19WQVJfUE9QREVGKFtDQUNIRVZBUl0pZG5sCiArXSlkbmwgQVhfQ0hFQ0tfQ09NUElMRV9GTEFHUwotLS0gCi0yLjEyLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5zYWYvb3BlbnNhZl81LjE3LjA3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5zYWYvb3BlbnNhZl81LjE3LjA3LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDQ4M2Q3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuc2FmL29wZW5zYWZfNS4xNy4wNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLVNVTU1BUlkgPSAiT3BlblNBRiBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU0FGIEFJUyBzcGVjaWZpY2F0aW9uIgotREVTQ1JJUFRJT04gPSAiT3BlblNBRiBpcyBhbiBvcGVuIHNvdXJjZSBwcm9qZWN0IGVzdGFibGlzaGVkIHRvIGRldmVsb3AgYSBiYXNlIHBsYXRmb3JtIFwKLW1pZGRsZXdhcmUgY29uc2lzdGVudCB3aXRoIFNlcnZpY2UgQXZhaWxhYmlsaXR5IEZvcnVtIChTQSBGb3J1bSkgXAotc3BlY2lmaWNhdGlvbnMsIHVuZGVyIHRoZSBMR1BMdjIuMSBsaWNlbnNlLiBUaGUgT3BlblNBRiBGb3VuZGF0aW9uIHdhcyBcCi1lc3RhYmxpc2hlZCBieSBsZWFkaW5nIENvbW11bmljYXRpb25zIGFuZCBFbnRlcnByaXNlIENvbXB1dGluZyBDb21wYW5pZXMgdG8gXAotZmFjaWxpdGF0ZSB0aGUgT3BlblNBRiBQcm9qZWN0IGFuZCB0byBhY2NlbGVyYXRlIHRoZSBhZG9wdGlvbiBvZiB0aGUgT3BlblNBRiBcCi1jb2RlIGJhc2UgaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4gXAotVGhlIE9wZW5TQUYgcHJvamVjdCB3YXMgbGF1bmNoZWQgaW4gbWlkIDIwMDcgYW5kIGhhcyBiZWVuIHVuZGVyIGRldmVsb3BtZW50IGJ5IFwKLWFuIGluZm9ybWFsIGdyb3VwIG9mIHN1cHBvcnRlcnMgb2YgdGhlIE9wZW5TQUYgaW5pdGlhdGl2ZS4gVGhlIE9wZW5TQUYgXAotRm91bmRhdGlvbiB3YXMgZm91bmRlZCBvbiBKYW51YXJ5IDIybmQgMjAwOCB3aXRoIEVtZXJzb24gTmV0d29yayBQb3dlciwgXAotRXJpY3Nzb24sIE5va2lhIFNpZW1lbnMgTmV0d29ya3MsIEhQIGFuZCBTdW4gTWljcm9zeXN0ZW1zIGFzIGZvdW5kaW5nIG1lbWJlcnMuIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5vcGVuc2FmLm9yZyIKLVNFQ1RJT04gPSAiYWRtaW4iCi1MSUNFTlNFID0gIkxHUEx2Mi4xIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy5MSUI7bWQ1PWE5MTY0NjdiOTEwNzZlNjMxZGQ4ZWRiNzQyNDc2OWM3IgotCi1ERVBFTkRTID0gImxpYnhtbDIgcHl0aG9uIgotVE9PTENIQUlOID0gImdjYyIKLQotU0VDVVJJVFlfQ0ZMQUdTID0gIiR7U0VDVVJJVFlfTk9fUElFX0NGTEFHU30iCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9LyR7QlBOfS9yZWxlYXNlcy8ke0JQTn0tJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLVBhc3MtbGlua2VyLXNwZWNpZmljLW9wdGlvbnMtd2l0aC1XbC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS1EaXNhYmxlLWZvcm1hdC1vdmVyZmxvdy1pZi1zdXBwb3J0ZWQtYnktZ2MucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1zcmMtQWRkLW1pc3NpbmctaGVhZGVyLWxpbWl0cy5oLWZvci1fUE9TSVhfSE9TVF9OQU1FLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtaW1tcGJlX2R1bXAuY2MtVXNlLXN5cy13YWl0LmgtaW5zdGVhZC1vZi13YWl0LmgucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gIjEyNWJjZDlhYWJkNzQxMmFlZGNiZmJmNzNmNGU2MTk2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjNmYjIyMzliYjJjOTMyOGM4YjQ1MzY4ZmY4ZDhkZTk3OWVhMjg2YTI3ZWRjOTg3MWQyMTgyMDBlODhiYjkxY2MiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHVzZXJhZGQgc3lzdGVtZCBwa2djb25maWcKLQotVVNFUkFERF9QQUNLQUdFUyA9ICIke1BOfSIKLUdST1VQQUREX1BBUkFNXyR7UE59ID0gIi1mIC1yIG9wZW5zYWYiCi1VU0VSQUREX1BBUkFNXyR7UE59ID0gICItciAtZyBvcGVuc2FmIC1kICR7ZGF0YWRpcn0vb3BlbnNhZi8gLXMgJHtzYmluZGlyfS9ub2xvZ2luIC1jIFwiT3BlblNBRlwiIG9wZW5zYWYiCi0KLVNZU1RFTURfU0VSVklDRV8ke1BOfSArPSAib3BlbnNhZmQuc2VydmljZSIKLVNZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKLQotUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICIsLHN5c3RlbWQiCi1QQUNLQUdFQ09ORklHW29wZW5ocGldID0gIi0td2l0aC1ocGktaW50ZXJmYWNlPUIwMyAtLWVuYWJsZS1haXMtcGxtLCxvcGVuaHBpIgotCi1QQUNLQUdFQ09ORklHX2FwcGVuZCA9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAnIHN5c3RlbWQnLCAnJywgZCl9IgotCi1QS0dMSUJESVI9IiR7bGliZGlyfSIKLQotTERGTEFHUyArPSAiLVdsLC0tYXMtbmVlZGVkIC1sYXRvbWljIC1XbCwtLW5vLWFzLW5lZWRlZCIKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgY3AgLWF2IC0tbm8tcHJlc2VydmU9b3duZXJzaGlwICR7Qn0vbGliLy5saWJzLyouc28qICR7RH0ke2xpYmRpcn0KLSAgICBybSAtZnIgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xvY2siCi0gICAgcm0gLWZyICIke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4iCi0gICAgcm1kaXIgLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9IgotICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICIke0R9JHtkYXRhZGlyfS9qYXZhIgotICAgIGlmIFsgISAtZCAiJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kIiBdOyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCi0gICAgICAgIGluc3RhbGwgLW0gMDc1NSAke0J9L29zYWYvc2VydmljZXMvaW5mcmFzdHJ1Y3R1cmUvbmlkL3NjcmlwdHMvb3BlbnNhZmQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kLwotICAgIGZpCi19Ci0KLUZJTEVTXyR7UE59ICs9ICIke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLyouc2VydmljZSIKLUZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtQS0dMSUJESVJ9LyouYSIKLQotSU5TQU5FX1NLSVBfJHtQTn0gPSAiZGV2LXNvIgotCi1SREVQRU5EU18ke1BOfSArPSAiYmFzaCBweXRob24iCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuc2FmL29wZW5zYWZfNS4xOC4wMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuc2FmL29wZW5zYWZfNS4xOC4wMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjU1NmNlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5zYWYvb3BlbnNhZl81LjE4LjAyLmJiCkBAIC0wLDAgKzEsNjcgQEAKK1NVTU1BUlkgPSAiT3BlblNBRiBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU0FGIEFJUyBzcGVjaWZpY2F0aW9uIgorREVTQ1JJUFRJT04gPSAiT3BlblNBRiBpcyBhbiBvcGVuIHNvdXJjZSBwcm9qZWN0IGVzdGFibGlzaGVkIHRvIGRldmVsb3AgYSBiYXNlIHBsYXRmb3JtIFwKK21pZGRsZXdhcmUgY29uc2lzdGVudCB3aXRoIFNlcnZpY2UgQXZhaWxhYmlsaXR5IEZvcnVtIChTQSBGb3J1bSkgXAorc3BlY2lmaWNhdGlvbnMsIHVuZGVyIHRoZSBMR1BMdjIuMSBsaWNlbnNlLiBUaGUgT3BlblNBRiBGb3VuZGF0aW9uIHdhcyBcCitlc3RhYmxpc2hlZCBieSBsZWFkaW5nIENvbW11bmljYXRpb25zIGFuZCBFbnRlcnByaXNlIENvbXB1dGluZyBDb21wYW5pZXMgdG8gXAorZmFjaWxpdGF0ZSB0aGUgT3BlblNBRiBQcm9qZWN0IGFuZCB0byBhY2NlbGVyYXRlIHRoZSBhZG9wdGlvbiBvZiB0aGUgT3BlblNBRiBcCitjb2RlIGJhc2UgaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4gXAorVGhlIE9wZW5TQUYgcHJvamVjdCB3YXMgbGF1bmNoZWQgaW4gbWlkIDIwMDcgYW5kIGhhcyBiZWVuIHVuZGVyIGRldmVsb3BtZW50IGJ5IFwKK2FuIGluZm9ybWFsIGdyb3VwIG9mIHN1cHBvcnRlcnMgb2YgdGhlIE9wZW5TQUYgaW5pdGlhdGl2ZS4gVGhlIE9wZW5TQUYgXAorRm91bmRhdGlvbiB3YXMgZm91bmRlZCBvbiBKYW51YXJ5IDIybmQgMjAwOCB3aXRoIEVtZXJzb24gTmV0d29yayBQb3dlciwgXAorRXJpY3Nzb24sIE5va2lhIFNpZW1lbnMgTmV0d29ya3MsIEhQIGFuZCBTdW4gTWljcm9zeXN0ZW1zIGFzIGZvdW5kaW5nIG1lbWJlcnMuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5vcGVuc2FmLm9yZyIKK1NFQ1RJT04gPSAiYWRtaW4iCitMSUNFTlNFID0gIkxHUEx2Mi4xIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy5MSUI7bWQ1PWE5MTY0NjdiOTEwNzZlNjMxZGQ4ZWRiNzQyNDc2OWM3IgorCitERVBFTkRTID0gImxpYnhtbDIgcHl0aG9uIgorVE9PTENIQUlOID0gImdjYyIKKworU0VDVVJJVFlfQ0ZMQUdTID0gIiR7U0VDVVJJVFlfTk9fUElFX0NGTEFHU30iCisKK1NSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9LyR7QlBOfS9yZWxlYXNlcy8ke0JQTn0tJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLVBhc3MtbGlua2VyLXNwZWNpZmljLW9wdGlvbnMtd2l0aC1XbC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS1EaXNhYmxlLWZvcm1hdC1vdmVyZmxvdy1pZi1zdXBwb3J0ZWQtYnktZ2MucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1zcmMtQWRkLW1pc3NpbmctaGVhZGVyLWxpbWl0cy5oLWZvci1fUE9TSVhfSE9TVF9OQU1FLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtaW1tcGJlX2R1bXAuY2MtVXNlLXN5cy13YWl0LmgtaW5zdGVhZC1vZi13YWl0LmgucGF0Y2ggXAorIgorU1JDX1VSSVttZDVzdW1dID0gIjQyMDY0ZjVkZGJjN2Y1NjBiZmM1ZmY5M2VhOWVlY2M3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImY5ZTI0ODk3ZjljZmQ2M2JiMzExNWY2Mjc1YzcwNmRlMTcwMmQzZDliYWUyZmM0MjMyMjdkYjcyYjIzYzM3ZjAiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHVzZXJhZGQgc3lzdGVtZCBwa2djb25maWcKKworVVNFUkFERF9QQUNLQUdFUyA9ICIke1BOfSIKK0dST1VQQUREX1BBUkFNXyR7UE59ID0gIi1mIC1yIG9wZW5zYWYiCitVU0VSQUREX1BBUkFNXyR7UE59ID0gICItciAtZyBvcGVuc2FmIC1kICR7ZGF0YWRpcn0vb3BlbnNhZi8gLXMgJHtzYmluZGlyfS9ub2xvZ2luIC1jIFwiT3BlblNBRlwiIG9wZW5zYWYiCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSArPSAib3BlbnNhZmQuc2VydmljZSIKK1NZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKKworUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICIsLHN5c3RlbWQiCitQQUNLQUdFQ09ORklHW29wZW5ocGldID0gIi0td2l0aC1ocGktaW50ZXJmYWNlPUIwMyAtLWVuYWJsZS1haXMtcGxtLCxvcGVuaHBpIgorCitQQUNLQUdFQ09ORklHX2FwcGVuZCA9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAnIHN5c3RlbWQnLCAnJywgZCl9IgorCitQS0dMSUJESVI9IiR7bGliZGlyfSIKKworTERGTEFHUyArPSAiLVdsLC0tYXMtbmVlZGVkIC1sYXRvbWljIC1XbCwtLW5vLWFzLW5lZWRlZCIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgY3AgLWF2IC0tbm8tcHJlc2VydmU9b3duZXJzaGlwICR7Qn0vbGliLy5saWJzLyouc28qICR7RH0ke2xpYmRpcn0KKyAgICBybSAtZnIgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xvY2siCisgICAgcm0gLWZyICIke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4iCisgICAgcm1kaXIgLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9IgorICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICIke0R9JHtkYXRhZGlyfS9qYXZhIgorICAgIGlmIFsgISAtZCAiJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kIiBdOyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgICAgIGluc3RhbGwgLW0gMDc1NSAke0J9L29zYWYvc2VydmljZXMvaW5mcmFzdHJ1Y3R1cmUvbmlkL3NjcmlwdHMvb3BlbnNhZmQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kLworICAgIGZpCit9CisKK0ZJTEVTXyR7UE59ICs9ICIke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLyouc2VydmljZSIKK0ZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtQS0dMSUJESVJ9LyouYSIKKworSU5TQU5FX1NLSVBfJHtQTn0gPSAiZGV2LXNvIgorCitSREVQRU5EU18ke1BOfSArPSAiYmFzaCBweXRob24iCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L2ZpbGVzL21haW4uY2YgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcG9zdGZpeC9maWxlcy9tYWluLmNmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3NWM2ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcG9zdGZpeC9maWxlcy9tYWluLmNmCkBAIC0wLDAgKzEsMTA1IEBACitjb21wYXRpYmlsaXR5X2xldmVsID0gMgorc210cHV0ZjhfZW5hYmxlID0gbm8KKworIyBDb25maWd1cmUgeW91ciBkb21haW4gYW5kIGFjY291bnRzCisjbXlkb21haW49c2FtcGxlLmNvbQorI0ZRRE4gZnJvbSBnZXRob3N0bmFtZQorI215aG9zdG5hbWUgPQorbXlkb21haW49bG9jYWxkb21haW4KK215ZGVzdGluYXRpb24gPSAkbXlob3N0bmFtZSwgbG9jYWxob3N0LmxvY2FsZG9tYWluIGxvY2FsaG9zdAorbXluZXR3b3JrcyA9IDEyNy4wLjAuMS84CitpbmV0X2ludGVyZmFjZXMgPSAxMjcuMC4wLjEKKwordmlydHVhbF9tYWlsYm94X2RvbWFpbnMgPSBzYW1wbGUuY29tLCBvdGhlci5uZXQKK3ZpcnR1YWxfbWFpbGJveF9tYXBzID0gaGFzaDovZXRjL3Bvc3RmaXgvdmlydHVhbAordmlydHVhbF9hbGlhc19tYXBzID0gaGFzaDovZXRjL3Bvc3RmaXgvdmlydHVhbF9hbGlhcworCithbGlhc19tYXBzID0gaGFzaDovZXRjL2FsaWFzZXMKKworIyBZb3UnbGwgc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nIGxpbmVzIGZvciBtYWlsZGlyIHN0b3JhZ2UKK3ZpcnR1YWxfbWFpbGJveF9iYXNlID0gL3Zhci9zcG9vbC92bWFpbAordmlydHVhbF91aWRfbWFwcyA9IHN0YXRpYzpgZ3JlcCB2bWFpbCAvZXRjL3Bhc3N3ZCB8IGN1dCAtZCAiOiIgLWYgM2AKK3ZpcnR1YWxfZ2lkX21hcHMgPSBzdGF0aWM6YGdyZXAgdm1haWwgL2V0Yy9wYXNzd2QgfCBjdXQgLWQgIjoiIC1mIDRgCisKKworIyBZb3UnbGwgc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nIGxpbmVzIGZvciBJTUFQIHN0b3JhZ2UKKyN2aXJ0dWFsX3RyYW5zcG9ydCA9IGxtdHA6dW5peDovdmFyL2xpYi9jeXJ1cy9zb2NrZXQvbG10cAorCisKKyMgR2VuZXJhbCBzdHVmZiBoZXJlIGFnYWluCisjY29uZmlnX2RpcmVjdG9yeSA9IC9ldGMvcG9zdGZpeAorc2FtcGxlX2RpcmVjdG9yeSA9IC9ldGMvcG9zdGZpeAorcXVldWVfZGlyZWN0b3J5ID0gL3Zhci9zcG9vbC9wb3N0Zml4CittYWlsX3Nwb29sX2RpcmVjdG9yeSA9IC92YXIvc3Bvb2wvbWFpbAorcmVhZG1lX2RpcmVjdG9yeSA9IG5vCitjb21tYW5kX2RpcmVjdG9yeSA9IC91c3Ivc2JpbgorZGFlbW9uX2RpcmVjdG9yeSA9IEBMSUJFWEVDRElSQC9wb3N0Zml4CittYWlsX293bmVyID0gcG9zdGZpeAorc2V0Z2lkX2dyb3VwID0gcG9zdGRyb3AKK3Vua25vd25fbG9jYWxfcmVjaXBpZW50X3JlamVjdF9jb2RlID0gNDUwCitteW5ldHdvcmtzX3N0eWxlID0gaG9zdAorZGVidWdfcGVlcl9sZXZlbCA9IDIKK3NlbmRtYWlsX3BhdGggPSAvdXNyL3NiaW4vc2VuZG1haWwKK25ld2FsaWFzZXNfcGF0aCA9IC91c3IvYmluL25ld2FsaWFzZXMKK21haWxxX3BhdGggPSAvdXNyL2Jpbi9tYWlscQorCitzbXRwZF9kYXRhX3Jlc3RyaWN0aW9ucyA9CisgICAgICAgIHBlcm1pdF9teW5ldHdvcmtzLAorICAgICAgICByZWplY3RfdW5hdXRoX3BpcGVsaW5pbmcsCisgICAgICAgIHBlcm1pdAorCitzbXRwZF9jbGllbnRfcmVzdHJpY3Rpb25zID0KKyAgICAgICAgcGVybWl0X215bmV0d29ya3MsCisgICAgICAgICMgcmVqZWN0X3Vua25vd25fY2xpZW50LCAjIFRoaXMgY2FuIGNhdXNlIGEgbG90IG9mIGZhbHNlIHJlamVjdHMuCisgICAgICAgIHJlamVjdF9pbnZhbGlkX2hvc3RuYW1lLAorICAgICAgICByZWplY3RfcmJsX2NsaWVudCBsaXN0LmRzYmwub3JnLAorICAgICAgICByZWplY3RfcmJsX2NsaWVudCBzYmwuc3BhbWhhdXMub3JnLAorICAgICAgICByZWplY3RfcmJsX2NsaWVudCBjYmwuYWJ1c2VhdC5vcmcsCisgICAgICAgIHJlamVjdF9yYmxfY2xpZW50IGR1bC5kbnNibC5zb3Jicy5uZXQsCisgICAgICAgIHBlcm1pdAorCitzbXRwZF9oZWxvX3JlcXVpcmVkID0geWVzCitzbXRwZF9oZWxvX3Jlc3RyaWN0aW9ucyA9CisgICAgICAgIHBlcm1pdF9teW5ldHdvcmtzLAorICAgICAgICByZWplY3RfdW5hdXRoX3BpcGVsaW5pbmcsCisgICAgICAgICMgcmVqZWN0X25vbl9mcWRuX2hvc3RuYW1lLCAjIFRoaXMgY2FuIGNhdXNlIGEgbG90IG9mIGZhbHNlIHJlamVjdHMuCisgICAgICAgICMgcmVqZWN0X3Vua25vd25faG9zdG5hbWUsICMgVGhpcyBjYW4gY2F1c2UgYSBsb3Qgb2YgZmFsc2UgcmVqZWN0cy4KKyAgICAgICAgcmVqZWN0X2ludmFsaWRfaG9zdG5hbWUsCisgICAgICAgIHBlcm1pdAorCitzbXRwZF9zZW5kZXJfcmVzdHJpY3Rpb25zID0KKyAgICAgICAgcGVybWl0X215bmV0d29ya3MsCisgICAgICAgIHJlamVjdF9ub25fZnFkbl9zZW5kZXIsCisgICAgICAgICMgY2hlY2tfc2VuZGVyX2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9hY2Nlc3NfZG9tYWlucywKKyAgICAgICAgcmVqZWN0X3Vua25vd25fc2VuZGVyX2RvbWFpbiwKKyAgICAgICAgcGVybWl0CisKK3NtdHBkX3JlY2lwaWVudF9yZXN0cmljdGlvbnMgPQorICAgICAgICBwZXJtaXRfbXluZXR3b3JrcywKKyAgICAgICAgcGVybWl0X3Nhc2xfYXV0aGVudGljYXRlZCwKKyAgICAgICAgcmVqZWN0X3VuYXV0aF9kZXN0aW5hdGlvbiwKKworICAgICAgICAjIGNoZWNrX3JlY2lwaWVudF9hY2Nlc3MgcGNyZTovZXRjL3Bvc3RmaXgvcmVjaXBpZW50X2NoZWNrcy5wY3JlLAorICAgICAgICAjIGNoZWNrX2hlbG9fYWNjZXNzIHBjcmU6L2V0Yy9wb3N0Zml4L2hlbG9fY2hlY2tzLnBjcmUsCisKKyAgICAgICAgIyBjaGVja19jbGllbnRfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvYWNjZXNzX2NsaWVudCwKKyAgICAgICAgIyBjaGVja19jbGllbnRfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvZXhjZXB0aW9uc19jbGllbnQsCisgICAgICAgICMgY2hlY2tfaGVsb19hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvbWFwcy9hY2Nlc3NfaGVsbywKKyAgICAgICAgIyBjaGVja19oZWxvX2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9tYXBzL3ZlcmlmeV9oZWxvLAorICAgICAgICAjIGNoZWNrX3NlbmRlcl9hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvbWFwcy9hY2Nlc3Nfc2VuZGVyLAorICAgICAgICAjIGNoZWNrX3NlbmRlcl9hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvbWFwcy92ZXJpZnlfc2VuZGVyLAorICAgICAgICAjIGNoZWNrX3JlY2lwaWVudF9hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvbWFwcy9hY2Nlc3NfcmVjaXBpZW50LAorCisgICAgICAgICMgcmVqZWN0X211bHRpX3JlY2lwaWVudF9ib3VuY2UsCisgICAgICAgIHJlamVjdF9ub25fZnFkbl9yZWNpcGllbnQsCisgICAgICAgIHJlamVjdF91bmtub3duX3JlY2lwaWVudF9kb21haW4sCisgICAgICAgICMgcmVqZWN0X3VubGlzdGVkX3JlY2lwaWVudCwKKyAgICAgICAgI2NoZWNrX3BvbGljeV9zZXJ2aWNlIHVuaXg6cHJpdmF0ZS9wb2xpY3ksCisKKyAgICAgICAgIyBjaGVja19zZW5kZXJfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvbm9fdmVyaWZ5X3NlbmRlciwKKyAgICAgICAgIyBjaGVja19zZW5kZXJfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L2FjY2Vzc19kb21haW5zLAorICAgICAgICAjIHJlamVjdF91bnZlcmlmaWVkX3NlbmRlciwKKyAgICAgICAgIyByZWplY3RfdW52ZXJpZmllZF9yZWNpcGllbnQKKyAgICAgICAgY2hlY2tfcmVjaXBpZW50X2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9pbnRlcm5hbF9yZWNpcGllbnQKKworZGlzYWJsZV92cmZ5X2NvbW1hbmQgPSB5ZXMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L2ZpbGVzL21haW4uY2ZfMi4wIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvZmlsZXMvbWFpbi5jZl8yLjAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjN2ZlYjUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvZmlsZXMvbWFpbi5jZl8yLjAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotIyBDb25maWd1cmUgeW91ciBkb21haW4gYW5kIGFjY291bnRzCi0jbXlkb21haW49c2FtcGxlLmNvbQotI0ZRRE4gZnJvbSBnZXRob3N0bmFtZQotI215aG9zdG5hbWUgPQotbXlkb21haW49bG9jYWxkb21haW4KLW15ZGVzdGluYXRpb24gPSAkbXlob3N0bmFtZSwgbG9jYWxob3N0LmxvY2FsZG9tYWluIGxvY2FsaG9zdAotbXluZXR3b3JrcyA9IDEyNy4wLjAuMS84Ci1pbmV0X2ludGVyZmFjZXMgPSAxMjcuMC4wLjEKLQotdmlydHVhbF9tYWlsYm94X2RvbWFpbnMgPSBzYW1wbGUuY29tLCBvdGhlci5uZXQKLXZpcnR1YWxfbWFpbGJveF9tYXBzID0gaGFzaDovZXRjL3Bvc3RmaXgvdmlydHVhbAotdmlydHVhbF9hbGlhc19tYXBzID0gaGFzaDovZXRjL3Bvc3RmaXgvdmlydHVhbF9hbGlhcwotCi1hbGlhc19tYXBzID0gaGFzaDovZXRjL2FsaWFzZXMKLQotIyBZb3UnbGwgc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nIGxpbmVzIGZvciBtYWlsZGlyIHN0b3JhZ2UKLXZpcnR1YWxfbWFpbGJveF9iYXNlID0gL3Zhci9zcG9vbC92bWFpbAotdmlydHVhbF91aWRfbWFwcyA9IHN0YXRpYzpgZ3JlcCB2bWFpbCAvZXRjL3Bhc3N3ZCB8IGN1dCAtZCAiOiIgLWYgM2AKLXZpcnR1YWxfZ2lkX21hcHMgPSBzdGF0aWM6YGdyZXAgdm1haWwgL2V0Yy9wYXNzd2QgfCBjdXQgLWQgIjoiIC1mIDRgCi0KLQotIyBZb3UnbGwgc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nIGxpbmVzIGZvciBJTUFQIHN0b3JhZ2UKLSN2aXJ0dWFsX3RyYW5zcG9ydCA9IGxtdHA6dW5peDovdmFyL2xpYi9jeXJ1cy9zb2NrZXQvbG10cAotCi0KLSMgR2VuZXJhbCBzdHVmZiBoZXJlIGFnYWluCi0jY29uZmlnX2RpcmVjdG9yeSA9IC9ldGMvcG9zdGZpeAotc2FtcGxlX2RpcmVjdG9yeSA9IC9ldGMvcG9zdGZpeAotcXVldWVfZGlyZWN0b3J5ID0gL3Zhci9zcG9vbC9wb3N0Zml4Ci1tYWlsX3Nwb29sX2RpcmVjdG9yeSA9IC92YXIvc3Bvb2wvbWFpbAotcmVhZG1lX2RpcmVjdG9yeSA9IG5vCi1jb21tYW5kX2RpcmVjdG9yeSA9IC91c3Ivc2JpbgotZGFlbW9uX2RpcmVjdG9yeSA9IEBMSUJFWEVDRElSQAotbWFpbF9vd25lciA9IHBvc3RmaXgKLXNldGdpZF9ncm91cCA9IHBvc3Rkcm9wCi11bmtub3duX2xvY2FsX3JlY2lwaWVudF9yZWplY3RfY29kZSA9IDQ1MAotbXluZXR3b3Jrc19zdHlsZSA9IGhvc3QKLWRlYnVnX3BlZXJfbGV2ZWwgPSAyCi1zZW5kbWFpbF9wYXRoID0gL3Vzci9zYmluL3NlbmRtYWlsCi1uZXdhbGlhc2VzX3BhdGggPSAvdXNyL2Jpbi9uZXdhbGlhc2VzCi1tYWlscV9wYXRoID0gL3Vzci9iaW4vbWFpbHEKLQotc210cGRfZGF0YV9yZXN0cmljdGlvbnMgPQotICAgICAgICBwZXJtaXRfbXluZXR3b3JrcywKLSAgICAgICAgcmVqZWN0X3VuYXV0aF9waXBlbGluaW5nLAotICAgICAgICBwZXJtaXQKLQotc210cGRfY2xpZW50X3Jlc3RyaWN0aW9ucyA9Ci0gICAgICAgIHBlcm1pdF9teW5ldHdvcmtzLAotICAgICAgICAjIHJlamVjdF91bmtub3duX2NsaWVudCwgIyBUaGlzIGNhbiBjYXVzZSBhIGxvdCBvZiBmYWxzZSByZWplY3RzLgotICAgICAgICByZWplY3RfaW52YWxpZF9ob3N0bmFtZSwKLSAgICAgICAgcmVqZWN0X3JibF9jbGllbnQgbGlzdC5kc2JsLm9yZywKLSAgICAgICAgcmVqZWN0X3JibF9jbGllbnQgc2JsLnNwYW1oYXVzLm9yZywKLSAgICAgICAgcmVqZWN0X3JibF9jbGllbnQgY2JsLmFidXNlYXQub3JnLAotICAgICAgICByZWplY3RfcmJsX2NsaWVudCBkdWwuZG5zYmwuc29yYnMubmV0LAotICAgICAgICBwZXJtaXQKLQotc210cGRfaGVsb19yZXF1aXJlZCA9IHllcwotc210cGRfaGVsb19yZXN0cmljdGlvbnMgPQotICAgICAgICBwZXJtaXRfbXluZXR3b3JrcywKLSAgICAgICAgcmVqZWN0X3VuYXV0aF9waXBlbGluaW5nLAotICAgICAgICAjIHJlamVjdF9ub25fZnFkbl9ob3N0bmFtZSwgIyBUaGlzIGNhbiBjYXVzZSBhIGxvdCBvZiBmYWxzZSByZWplY3RzLgotICAgICAgICAjIHJlamVjdF91bmtub3duX2hvc3RuYW1lLCAjIFRoaXMgY2FuIGNhdXNlIGEgbG90IG9mIGZhbHNlIHJlamVjdHMuCi0gICAgICAgIHJlamVjdF9pbnZhbGlkX2hvc3RuYW1lLAotICAgICAgICBwZXJtaXQKLQotc210cGRfc2VuZGVyX3Jlc3RyaWN0aW9ucyA9Ci0gICAgICAgIHBlcm1pdF9teW5ldHdvcmtzLAotICAgICAgICByZWplY3Rfbm9uX2ZxZG5fc2VuZGVyLAotICAgICAgICAjIGNoZWNrX3NlbmRlcl9hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvYWNjZXNzX2RvbWFpbnMsCi0gICAgICAgIHJlamVjdF91bmtub3duX3NlbmRlcl9kb21haW4sCi0gICAgICAgIHBlcm1pdAotCi1zbXRwZF9yZWNpcGllbnRfcmVzdHJpY3Rpb25zID0KLSAgICAgICAgcGVybWl0X215bmV0d29ya3MsCi0gICAgICAgIHBlcm1pdF9zYXNsX2F1dGhlbnRpY2F0ZWQsCi0gICAgICAgIHJlamVjdF91bmF1dGhfZGVzdGluYXRpb24sCi0KLSAgICAgICAgIyBjaGVja19yZWNpcGllbnRfYWNjZXNzIHBjcmU6L2V0Yy9wb3N0Zml4L3JlY2lwaWVudF9jaGVja3MucGNyZSwKLSAgICAgICAgIyBjaGVja19oZWxvX2FjY2VzcyBwY3JlOi9ldGMvcG9zdGZpeC9oZWxvX2NoZWNrcy5wY3JlLAotCi0gICAgICAgICMgY2hlY2tfY2xpZW50X2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9tYXBzL2FjY2Vzc19jbGllbnQsCi0gICAgICAgICMgY2hlY2tfY2xpZW50X2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9tYXBzL2V4Y2VwdGlvbnNfY2xpZW50LAotICAgICAgICAjIGNoZWNrX2hlbG9fYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvYWNjZXNzX2hlbG8sCi0gICAgICAgICMgY2hlY2tfaGVsb19hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvbWFwcy92ZXJpZnlfaGVsbywKLSAgICAgICAgIyBjaGVja19zZW5kZXJfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvYWNjZXNzX3NlbmRlciwKLSAgICAgICAgIyBjaGVja19zZW5kZXJfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvdmVyaWZ5X3NlbmRlciwKLSAgICAgICAgIyBjaGVja19yZWNpcGllbnRfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvYWNjZXNzX3JlY2lwaWVudCwKLQotICAgICAgICAjIHJlamVjdF9tdWx0aV9yZWNpcGllbnRfYm91bmNlLAotICAgICAgICByZWplY3Rfbm9uX2ZxZG5fcmVjaXBpZW50LAotICAgICAgICByZWplY3RfdW5rbm93bl9yZWNpcGllbnRfZG9tYWluLAotICAgICAgICAjIHJlamVjdF91bmxpc3RlZF9yZWNpcGllbnQsCi0gICAgICAgICNjaGVja19wb2xpY3lfc2VydmljZSB1bml4OnByaXZhdGUvcG9saWN5LAotCi0gICAgICAgICMgY2hlY2tfc2VuZGVyX2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9tYXBzL25vX3ZlcmlmeV9zZW5kZXIsCi0gICAgICAgICMgY2hlY2tfc2VuZGVyX2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9hY2Nlc3NfZG9tYWlucywKLSAgICAgICAgIyByZWplY3RfdW52ZXJpZmllZF9zZW5kZXIsCi0gICAgICAgICMgcmVqZWN0X3VudmVyaWZpZWRfcmVjaXBpZW50Ci0gICAgICAgIGNoZWNrX3JlY2lwaWVudF9hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvaW50ZXJuYWxfcmVjaXBpZW50Ci0KLWRpc2FibGVfdnJmeV9jb21tYW5kID0geWVzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcG9zdGZpeC9maWxlcy9wb3N0Zml4LnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcG9zdGZpeC9maWxlcy9wb3N0Zml4LnNlcnZpY2UKaW5kZXggM2E5YTBhMS4uMzBkNTRhNCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvZmlsZXMvcG9zdGZpeC5zZXJ2aWNlCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L2ZpbGVzL3Bvc3RmaXguc2VydmljZQpAQCAtNyw3ICs3LDcgQEAKIFR5cGU9Zm9ya2luZwogUElERmlsZT1ATE9DQUxTVEFURURJUkAvc3Bvb2wvcG9zdGZpeC9waWQvbWFzdGVyLnBpZAogRXhlY1N0YXJ0UHJlPS1AU0JJTkRJUkAvY2hlY2tfaG9zdG5hbWUuc2gKLUV4ZWNTdGFydFByZT0tQExJQkVYRUNESVJAL2FsaWFzZXNkYgorRXhlY1N0YXJ0UHJlPS1ATElCRVhFQ0RJUkAvcG9zdGZpeC9hbGlhc2VzZGIKIEV4ZWNTdGFydD1AU0JJTkRJUkAvcG9zdGZpeCBzdGFydAogRXhlY1JlbG9hZD1AU0JJTkRJUkAvcG9zdGZpeCByZWxvYWQKIEV4ZWNTdG9wPUBTQklORElSQC9wb3N0Zml4IHN0b3AKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L3Bvc3RmaXguaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvcG9zdGZpeC5pbmMKaW5kZXggYTU4OGJkMy4uMDk0NDdkNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvcG9zdGZpeC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvcG9zdGZpeC5pbmMKQEAgLTYsMTEgKzYsMTEgQEAKIAogSE9NRVBBR0U9ICJodHRwOi8vd3d3LnBvc3RmaXgub3JnIgogU0VDVElPTiA9ICJtYWlsIgotREVQRU5EUyA9ICJ2aXJ0dWFsL2RiIGljdSBsaWJwY3JlIG9wZW5zc2wgcG9zdGZpeC1uYXRpdmUgXAorREVQRU5EUyA9ICJkYiBpY3UgbGlicGNyZSBvcGVuc3NsIHBvc3RmaXgtbmF0aXZlIFwKICAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ2xkYXAnLCAnb3BlbmxkYXAnLCAnJywgZCl9IFwKICAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3Nhc2wnLCAnY3lydXMtc2FzbCcsICcnLCBkKX0gXAogIgotREVQRU5EU19jbGFzcy1uYXRpdmUgPSAidmlydHVhbC9kYi1uYXRpdmUgaWN1LW5hdGl2ZSBvcGVuc3NsLW5hdGl2ZSBsaWJwY3JlLW5hdGl2ZSIKK0RFUEVORFNfY2xhc3MtbmF0aXZlID0gImRiLW5hdGl2ZSBpY3UtbmF0aXZlIG9wZW5zc2wtbmF0aXZlIGxpYnBjcmUtbmF0aXZlIgogCiBMSUNFTlNFID0gIklQTC0xLjAiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT02NDM3NWYzNzQzMTMzNmVhMWIxYjMwMDVmZTNmYTM1NCIKQEAgLTE4LDcgKzE4LDcgQEAKIFNSQ19VUkkgPSAiZnRwOi8vZnRwLnBvcmN1cGluZS5vcmcvbWlycm9ycy9wb3N0Zml4LXJlbGVhc2Uvb2ZmaWNpYWwvcG9zdGZpeC0ke1BWfS50YXIuZ3ogXAogICAgIGZpbGU6Ly9tYWtlZGVmcy5wYXRjaCBcCiAgICAgZmlsZTovL2luc3RhbGwucGF0Y2ggXAotICAgIGZpbGU6Ly9tYWluLmNmXzIuMCBcCisgICAgZmlsZTovL21haW4uY2YgXAogICAgIGZpbGU6Ly9wb3N0Zml4IFwKICAgICBmaWxlOi8vaW50ZXJuYWxfcmVjaXBpZW50IFwKICAgICBmaWxlOi8vcG9zdGZpeC5zZXJ2aWNlIFwKQEAgLTEzNSw3ICsxMzUsNyBAQAogZG9faW5zdGFsbCAoKSB7CiAgICAgc2ggLi9wb3N0Zml4LWluc3RhbGwgJ2luc3RhbGxfcm9vdD0ke0R9JyBcCiAgICAgICAgICdjb25maWdfZGlyZWN0b3J5PSR7c3lzY29uZmRpcn0vcG9zdGZpeCcgXAotICAgICAgICAnZGFlbW9uX2RpcmVjdG9yeT0ke2xpYmV4ZWNkaXJ9JyBcCisgICAgICAgICdkYWVtb25fZGlyZWN0b3J5PSR7bGliZXhlY2Rpcn0vcG9zdGZpeCcgXAogICAgICAgICAnY29tbWFuZF9kaXJlY3Rvcnk9JHtzYmluZGlyfScgXAogICAgICAgICAncXVldWVfZGlyZWN0b3J5PSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvcG9zdGZpeCcgXAogICAgICAgICAnc2VuZG1haWxfcGF0aD0ke3NiaW5kaXJ9L3NlbmRtYWlsLnBvc3RmaXgnIFwKQEAgLTE0OSw3ICsxNDksNyBAQAogICAgIG12ICR7RH0ke3N5c2NvbmZkaXJ9L3Bvc3RmaXgvbWFpbi5jZiAke0R9JHtzeXNjb25mZGlyfS9wb3N0Zml4L3NhbXBsZS1tYWluLmNmCiAgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9iaW4vc210cC1zaW5rICR7RH0vJHtzYmluZGlyfS8KICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAotICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vbWFpbi5jZl8yLjAgJHtEfSR7c3lzY29uZmRpcn0vcG9zdGZpeC9tYWluLmNmCisgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9tYWluLmNmICR7RH0ke3N5c2NvbmZkaXJ9L3Bvc3RmaXgvbWFpbi5jZgogICAgIHNlZCAtaSAncyNATElCRVhFQ0RJUkAjJHtsaWJleGVjZGlyfSMnICR7RH0ke3N5c2NvbmZkaXJ9L3Bvc3RmaXgvbWFpbi5jZgogCiAgICAgaW5zdGFsbCAtbSA3NTUgJHtXT1JLRElSfS9jaGVja19ob3N0bmFtZS5zaCAke0R9JHtzYmluZGlyfS8KQEAgLTE2Myw3ICsxNjMsNyBAQAogICAgIHNlZCAtaSAtZSAncyNATE9DQUxTVEFURURJUkAjJHtsb2NhbHN0YXRlZGlyfSNnJyAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9wb3N0Zml4LnNlcnZpY2UKICAgICBzZWQgLWkgLWUgJ3MjQFNCSU5ESVJAIyR7c2JpbmRpcn0jZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vcG9zdGZpeC5zZXJ2aWNlCiAKLSAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS9hbGlhc2VzZGIgJHtEfSR7bGliZXhlY2Rpcn0KKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS9hbGlhc2VzZGIgJHtEfSR7bGliZXhlY2Rpcn0vcG9zdGZpeAogCiAgICAgaW5zdGFsbCAtbSA3NzAgLWQgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvcG9zdGZpeAogICAgIGNob3duIHBvc3RmaXg6cG9zdGZpeCAke0R9JHtsb2NhbHN0YXRlZGlyfS9zcG9vbC9wb3N0Zml4CkBAIC0yMTksOCArMjE5LDYgQEAKICAgICBzZWQgLWkgJ3M6LWZkZWJ1Zy1wcmVmaXgtbWFwW14gXSo6Omc7IHM6LS1zeXNyb290PSR7U1RBR0lOR19ESVJfVEFSR0VUfTo6ZycgJHtEfS9ldGMvcG9zdGZpeC9tYWtlZGVmcy5vdXQKIH0KIAotTkFUSVZFX0lOU1RBTExfV09SS1MgPSAiMSIKLQogQUxURVJOQVRJVkVfJHtQTn0gPSAic2VuZG1haWwiCiBBTFRFUk5BVElWRV9UQVJHRVRbc2VuZG1haWxdID0gIiR7c2JpbmRpcn0vc2VuZG1haWwucG9zdGZpeCIKIEFMVEVSTkFUSVZFX0xJTktfTkFNRVtzZW5kbWFpbF0gPSAiJHtzYmluZGlyfS9zZW5kbWFpbCIKQEAgLTIzMSw2ICsyMjksNyBAQAogQUxURVJOQVRJVkVfTElOS19OQU1FW25ld2FsaWFzZXMuMV0gPSAiJHttYW5kaXJ9L21hbjEvbmV3YWxpYXNlcy4xIgogQUxURVJOQVRJVkVfTElOS19OQU1FW3NlbmRtYWlsLjFdID0gIiR7bWFuZGlyfS9tYW4xL3NlbmRtYWlsLjEiCiAKK1BBQ0tBR0VfV1JJVEVfREVQUyArPSAicG9zdGZpeC1uYXRpdmUiCiBwa2dfcG9zdGluc3RfJHtQTn0gKCkgewogICAgIGlmIFsgIngkRCIgPSAieCIgXTsgdGhlbgogICAgICAgICB0b3VjaCAvZXRjL2FsaWFzZXMKQEAgLTI0MCwxOSArMjM5LDI0IEBACiAgICAgICAgIHRvdWNoIC9ldGMvcG9zdGZpeC92aXJ0dWFsX2FsaWFzCiAgICAgICAgIHBvc3RtYXAgL2V0Yy9wb3N0Zml4L3ZpcnR1YWxfYWxpYXMKICAgICBlbHNlCisgICAgICAgIGlmICR7QCd0cnVlJyBpZiAnbGludXhzdGRiYXNlJyBpbiBkLmdldFZhcignRElTVFJPT1ZFUlJJREVTJywgRmFsc2UpIGVsc2UgJ2ZhbHNlJ307IHRoZW4KKyAgICAgICAgICAgICMgL3Vzci9saWIvc2VuZG1haWwgaXMgcmVxdWlyZWQgYnkgTFNCIGNvcmUgdGVzdAorICAgICAgICAgICAgWyAhIC1MICREL3Vzci9saWIvc2VuZG1haWwgXSAmJiBsbiAtc2YgJHtzYmluZGlyfS9zZW5kbWFpbCAkRC91c3IvbGliLworICAgICAgICBmaQorCiAgICAgICAgIHRvdWNoICREL2V0Yy9hbGlhc2VzCi0gICAgICAgIG5ld2FsaWFzZXMgLUMgJEQvZXRjL3Bvc3RmaXgvbWFpbi5jZiAtb0EkRC9ldGMvYWxpYXNlcworICAgICAgICAjIFRoaXMgY2FuIGZhaWwgZGVwZW5kaW5nIG9uIGhvc3Qgc2V0dXAKKyAgICAgICAgaWYgISBuZXdhbGlhc2VzIC1DICREL2V0Yy9wb3N0Zml4L21haW4uY2YgLW9BJEQvZXRjL2FsaWFzZXM7IHRoZW4KKyAgICAgICAgICAgICRJTlRFUkNFUFRfRElSL3Bvc3RpbnN0X2ludGVyY2VwdCBkZWxheV90b19maXJzdF9ib290ICR7UEtHfSBtbHByZWZpeD0ke01MUFJFRklYfQorICAgICAgICAgICAgZXhpdCAwCisgICAgICAgIGZpCiAgICAgICAgIHRvdWNoICREL2V0Yy9wb3N0Zml4L3ZpcnR1YWxfYWxpYXMKICAgICAgICAgcG9zdG1hcCAtYyAkRC9ldGMvcG9zdGZpeCAkRC9ldGMvcG9zdGZpeC92aXJ0dWFsX2FsaWFzCiAKLSAgICAgICAgaWYgJHtAJ3RydWUnIGlmICdsaW51eHN0ZGJhc2UnIGluIGQuZ2V0VmFyKCdESVNUUk9PVkVSUklERVMnLCBGYWxzZSkgZWxzZSAnZmFsc2UnfTsgdGhlbgotICAgICAgICAgICAgIyAvdXNyL2xpYi9zZW5kbWlhbCBpcyByZXF1aXJlZCBieSBMU0IgY29yZSB0ZXN0Ci0gICAgICAgICAgICBbICEgLUwgJEQvdXNyL2xpYi9zZW5kbWFpbCBdICYmIGxuIC1zZiAke3NiaW5kaXJ9L3NlbmRtYWlsICREL3Vzci9saWIvCi0gICAgICAgIGZpCiAgICAgZmkKIH0KIAogIyBFeGNsdWRlIC5kZWJ1ZyBkaXJlY3RvcmllcyBmcm9tIHRoZSBtYWluIHBhY2thZ2UKIEZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0gJHtsb2NhbHN0YXRlZGlyfSAke2JpbmRpcn0vKiAke3NiaW5kaXJ9LyogXAogICAgICAgICAgICAgICAgJHtsaWJleGVjZGlyfS8qICR7c3lzdGVtZF91bml0ZGlyfS8qIgotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmV4ZWNkaXJ9Ly5kZWJ1ZyIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJleGVjZGlyfS9wb3N0Zml4Ly5kZWJ1ZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L3Bvc3RmaXhfMy4yLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcG9zdGZpeC9wb3N0Zml4XzMuMi4yLmJiCmluZGV4IDQzOWVkZTkuLjg5YWY0MDYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L3Bvc3RmaXhfMy4yLjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvcG9zdGZpeF8zLjIuMi5iYgpAQCAtMSwxOCArMSw5IEBACiByZXF1aXJlIHBvc3RmaXguaW5jCiAKLVNSQ19VUkkgPSAiZnRwOi8vZnRwLnBvcmN1cGluZS5vcmcvbWlycm9ycy9wb3N0Zml4LXJlbGVhc2Uvb2ZmaWNpYWwvcG9zdGZpeC0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vbWFrZWRlZnMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vaW5zdGFsbC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9tYWluLmNmXzIuMCBcCi0gICAgICAgICAgIGZpbGU6Ly9wb3N0Zml4IFwKLSAgICAgICAgICAgZmlsZTovL2ludGVybmFsX3JlY2lwaWVudCBcCi0gICAgICAgICAgIGZpbGU6Ly9wb3N0Zml4LnNlcnZpY2UgXAotICAgICAgICAgICBmaWxlOi8vYWxpYXNlc2RiIFwKLSAgICAgICAgICAgZmlsZTovL2NoZWNrX2hvc3RuYW1lLnNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtQ2hlY2stZm9yLWdsaWJjLWJlZm9yZS1zZXR0aW5nLUNBTlRfVVNFX1NFTkRfUkVDVl9NUy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLW1ha2VkZWZzLVVzZS1uYXRpdmUtY29tcGlsZXItdG8tYnVpbGQtbWFrZWRlZnMudGVzdC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9wb3N0Zml4LWluc3RhbGwucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vaWN1LWNvbmZpZy5wYXRjaCBcCitTUkNfVVJJICs9ICJmaWxlOi8vMDAwMS1DaGVjay1mb3ItZ2xpYmMtYmVmb3JlLXNldHRpbmctQ0FOVF9VU0VfU0VORF9SRUNWX01TLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly8wMDAxLW1ha2VkZWZzLVVzZS1uYXRpdmUtY29tcGlsZXItdG8tYnVpbGQtbWFrZWRlZnMudGVzdC5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vcG9zdGZpeC1pbnN0YWxsLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly9pY3UtY29uZmlnLnBhdGNoIFwKICAgICAgICAgICAgIgogU1JDX1VSSVttZDVzdW1dID0gImFlYTA3M2E5YjBiZWE1YmRiNTkwNDYwYTI3MGE0YWEwIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImQwNjg0OTQxOGQxMTlkMDkzNjY5OTdiMmI0ODFiYjIzZjczNzYyOTc2OWI0ZTRhNTJkYTQyZmIzYWQ4YjA1NzYiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcmFkdmQvcmFkdmQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3JhZHZkL3JhZHZkLmluYwppbmRleCBiZmY2OTNjLi4wNmQxNmE0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcmFkdmQvcmFkdmQuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9yYWR2ZC9yYWR2ZC5pbmMKQEAgLTgsNyArOCw3IEBACiBjaG9vc2UgYSBkZWZhdWx0IHJvdXRlciBiYXNlZCBvbiB0aGVzZSBhZHZlcnRpc2VtZW50cy4iCiBIT01FUEFHRSA9ICJodHRwOi8vd3d3LmxpdGVjaC5vcmcvcmFkdmQvIgogU0VDVElPTiA9ICJuZXQiCi1ERVBFTkRTID0gImZsZXgtbmF0aXZlIGxpYmRhZW1vbiIKK0RFUEVORFMgPSAiZmxleC1uYXRpdmUgYmlzb24tbmF0aXZlIGxpYmRhZW1vbiAiCiAKICMgTGljZW5zZSBpcyBCU0QtU3R5bGUgKHdpdGggYWR2ZXJ0aXNpbmcgY2xhdXNlKSBidXQgYWxzbyBoYXMgYW4gYWRkaXRpb25hbCAwdGggY2xhdXNlCiBMSUNFTlNFID0gInJhZHZkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzLzAwMDEtU3F1aWROZXctdXNlLW5vZXhjZXB0LWluc3RlYWQtb2YtdGhyb3ctZm9yLUMtMTEtY29tcC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy8wMDAxLVNxdWlkTmV3LXVzZS1ub2V4Y2VwdC1pbnN0ZWFkLW9mLXRocm93LWZvci1DLTExLWNvbXAucGF0Y2gKaW5kZXggNDg2NzRjMy4uZjQ4MmY4MCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzLzAwMDEtU3F1aWROZXctdXNlLW5vZXhjZXB0LWluc3RlYWQtb2YtdGhyb3ctZm9yLUMtMTEtY29tcC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvMDAwMS1TcXVpZE5ldy11c2Utbm9leGNlcHQtaW5zdGVhZC1vZi10aHJvdy1mb3ItQy0xMS1jb21wLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBmOTE1MGEwZGMwOTJhYjJjYmQ0N2VlNDI4NDM2Yjc0N2RjZTMyM2E5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAyN2UxMDY2N2JmMjdiYWY1ZjExOWE3OTFlMzQ3M2JiOTQzNWE3ODZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFN1biwgMjMgQXByIDIwMTcgMTA6Mjg6MjggLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gU3F1aWROZXc6IHVzZSBub2V4Y2VwdCBpbnN0ZWFkIG9mIHRocm93IGZvciBDKysxMSBjb21waWxlcnMKQEAgLTExLDYgKzExLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fgogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBpbmNsdWRlL1NxdWlkTmV3LmggfCA4ICsrKystLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKQEAgLTQzLDYgKzQ0LDMgQEAKICB7CiAgICAgIHhmcmVlKGFkZHJlc3MpOwogIH0KLS0tIAotMi4xMi4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy8wMDAxLWNvbmZpZ3VyZS1DaGVjay1mb3ItV25vLWVycm9yLWZvcm1hdC10cnVuY2F0aW9uLWNvbXAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvMDAwMS1jb25maWd1cmUtQ2hlY2stZm9yLVduby1lcnJvci1mb3JtYXQtdHJ1bmNhdGlvbi1jb21wLnBhdGNoCmluZGV4IDBjMGEzYWEuLjMwMjEzNmEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy8wMDAxLWNvbmZpZ3VyZS1DaGVjay1mb3ItV25vLWVycm9yLWZvcm1hdC10cnVuY2F0aW9uLWNvbXAucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzLzAwMDEtY29uZmlndXJlLUNoZWNrLWZvci1Xbm8tZXJyb3ItZm9ybWF0LXRydW5jYXRpb24tY29tcC5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gMTRkNDY5YmM4MmM3NTgxMTZhZWY3ZDU0OWFiZDQ5YzEzMWI0MTcwZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gYzIxYWRiYjBiMjMwZmZiYTk3Y2Y1ZDA1OWUyYmQwMjRlMTNhMzdkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBTYXQsIDIyIEFwciAyMDE3IDExOjU0OjU3IC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIGNvbmZpZ3VyZTogQ2hlY2sgZm9yIC1Xbm8tZXJyb3I9Zm9ybWF0LXRydW5jYXRpb24gY29tcGlsZXIKQEAgLTksMzYgKzksMTggQEAKIGNsaWVudC5jOjgzNDoyMzogZXJyb3I6ICclcycgZGlyZWN0aXZlIG91dHB1dCBtYXkgYmUgdHJ1bmNhdGVkIHdyaXRpbmcgdXAgdG8gMTAyMyBieXRlcyBpbnRvIGEgcmVnaW9uIG9mIHNpemUgMTAxMCBbLVdlcnJvcj1mb3JtYXQtdHJ1bmNhdGlvbj1dCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgfCAgMyArLQotIG00L2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNCB8IDc0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBtNC9heF9jaGVja19jb21waWxlX2ZsYWcubTQKIAotSW5kZXg6IHNxdWlkLTMuNS4yNi9jb25maWd1cmUuYWMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBzcXVpZC0zLjUuMjYub3JpZy9jb25maWd1cmUuYWMKLSsrKyBzcXVpZC0zLjUuMjYvY29uZmlndXJlLmFjCi1AQCAtMjYsNiArMjYsNyBAQCBtNF9pbmNsdWRlKFthY2luY2x1ZGUvcGtnLm00XSkKLSBtNF9pbmNsdWRlKFthY2luY2x1ZGUvbGliLWNoZWNrcy5tNF0pCi0gbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2N4eF9jb21waWxlX3N0ZGN4eF8xMS5tNF0pCi0gbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2N4eF8weF90eXBlcy5tNF0pCi0rbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNF0pCi0gCi0gSE9TVENYWD0iJEJVSUxEX0NYWCIKLSBQUkVTRVRfQ0ZMQUdTPSIkQ0ZMQUdTIgotQEAgLTQ0LDYgKzQ1LDcgQEAgQUNfUFJPR19DWFgKLSBBQ19MQU5HKFtDKytdKQotIEFDX0NBTk9OSUNBTF9IT1NUCi0gCi0rQVhfQ0hFQ0tfQ09NUElMRV9GTEFHKFstV2Vycm9yPWZvcm1hdC10cnVuY2F0aW9uXSxbQ0ZMQUdTPSIkQ0ZMQUdTIC1Xbm8tZXJyb3I9Zm9ybWF0LXRydW5jYXRpb24iIENYWEZMQUdTPSIkQ1hYRkxBR1MgLVduby1lcnJvcj1mb3JtYXQtdHJ1bmNhdGlvbiJdKQotICMgQ2xhbmcgMy4yIG9uIHNvbWUgQ1BVcyByZXF1aXJlcyAtbWFyY2gtbmF0aXZlIHRvIGRldGVjdCBjb3JyZWN0bHkuCi0gIyBHQ0MgNC4zKyBjYW4gYWxzbyBwcm9kdWNlIGZhc3RlciBleGVjdXRhYmxlcyB3aGVuIGl0cyB1c2VkLgotICMgQnV0IGJ1aWxkaW5nIGluc2lkZSBhIHZpcnR1YWwgbWFjaGluZSBlbnZpcm9ubWVudCBoYXMgYmVlbiBmb3VuZCB0bwotSW5kZXg6IHNxdWlkLTMuNS4yNi9hY2luY2x1ZGUvYXhfY2hlY2tfY29tcGlsZV9mbGFnLm00Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0KKyBhY2luY2x1ZGUvYXhfY2hlY2tfY29tcGlsZV9mbGFnLm00IHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysKKyAyIGZpbGVzIGNoYW5nZWQsIDc2IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgYWNpbmNsdWRlL2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNAorCitkaWZmIC0tZ2l0IGEvYWNpbmNsdWRlL2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNCBiL2FjaW5jbHVkZS9heF9jaGVja19jb21waWxlX2ZsYWcubTQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5kY2FiYjkyCiAtLS0gL2Rldi9udWxsCi0rKysgc3F1aWQtMy41LjI2L2FjaW5jbHVkZS9heF9jaGVja19jb21waWxlX2ZsYWcubTQKKysrKyBiL2FjaW5jbHVkZS9heF9jaGVja19jb21waWxlX2ZsYWcubTQKIEBAIC0wLDAgKzEsNzQgQEAKICsjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKyMgIGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYXV0b2NvbmYtYXJjaGl2ZS9heF9jaGVja19jb21waWxlX2ZsYWcuaHRtbApAQCAtMTE0LDMgKzk2LDIzIEBACiArICBbbTRfZGVmYXVsdChbJDNdLCA6KV0pCiArQVNfVkFSX1BPUERFRihbQ0FDSEVWQVJdKWRubAogK10pZG5sIEFYX0NIRUNLX0NPTVBJTEVfRkxBR1MKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IGZmNDY4OGMuLjkzODJmZGYgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTI2LDYgKzI2LDcgQEAgbTRfaW5jbHVkZShbYWNpbmNsdWRlL3BrZy5tNF0pCisgbTRfaW5jbHVkZShbYWNpbmNsdWRlL2xpYi1jaGVja3MubTRdKQorIG00X2luY2x1ZGUoW2FjaW5jbHVkZS9heF9jeHhfY29tcGlsZV9zdGRjeHhfMTEubTRdKQorIG00X2luY2x1ZGUoW2FjaW5jbHVkZS9heF9jeHhfMHhfdHlwZXMubTRdKQorK200X2luY2x1ZGUoW2FjaW5jbHVkZS9heF9jaGVja19jb21waWxlX2ZsYWcubTRdKQorIAorIEhPU1RDWFg9IiRCVUlMRF9DWFgiCisgUFJFU0VUX0NGTEFHUz0iJENGTEFHUyIKK0BAIC00NCw2ICs0NSw3IEBAIEFDX1BST0dfQ1hYCisgQUNfTEFORyhbQysrXSkKKyBBQ19DQU5PTklDQUxfSE9TVAorIAorK0FYX0NIRUNLX0NPTVBJTEVfRkxBRyhbLVdlcnJvcj1mb3JtYXQtdHJ1bmNhdGlvbl0sW0NGTEFHUz0iJENGTEFHUyAtV25vLWVycm9yPWZvcm1hdC10cnVuY2F0aW9uIiBDWFhGTEFHUz0iJENYWEZMQUdTIC1Xbm8tZXJyb3I9Zm9ybWF0LXRydW5jYXRpb24iXSkKKyAjIENsYW5nIDMuMiBvbiBzb21lIENQVXMgcmVxdWlyZXMgLW1hcmNoLW5hdGl2ZSB0byBkZXRlY3QgY29ycmVjdGx5LgorICMgR0NDIDQuMysgY2FuIGFsc28gcHJvZHVjZSBmYXN0ZXIgZXhlY3V0YWJsZXMgd2hlbiBpdHMgdXNlZC4KKyAjIEJ1dCBidWlsZGluZyBpbnNpZGUgYSB2aXJ0dWFsIG1hY2hpbmUgZW52aXJvbm1lbnQgaGFzIGJlZW4gZm91bmQgdG8KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy8wMDAxLXRvb2xzLmNjLWZpeGVkLXVudXNlZC1yZXN1bHQtd2FybmluZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy8wMDAxLXRvb2xzLmNjLWZpeGVkLXVudXNlZC1yZXN1bHQtd2FybmluZy5wYXRjaAppbmRleCAwODJhMTExLi44ZWE1NWQwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvMDAwMS10b29scy5jYy1maXhlZC11bnVzZWQtcmVzdWx0LXdhcm5pbmcucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzLzAwMDEtdG9vbHMuY2MtZml4ZWQtdW51c2VkLXJlc3VsdC13YXJuaW5nLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBhNzhmMmYwZmVkYThmOTJjYjU5YWZlODIzNmJkOTA3MjY5MDg3NjhmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBmYWFhNzk2YTEzOGNiZDUwMzNiMWU1M2YzM2ZhYWMwY2Y0MTYyYmY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFN1biwgMjUgSnVuIDIwMTcgMDA6NTk6MjQgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gdG9vbHMuY2M6IGZpeGVkIHVudXNlZC1yZXN1bHQgd2FybmluZwpAQCAtMTAsOSArMTAsOCBAQAogfCAgICAgIH5+fn5+fl5+fgogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi1VcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZAogCistLS0KICBzcmMvdG9vbHMuY2MgfCA0ICsrLS0KICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCkBAIC0zMSw2ICszMCwzIEBACiAgI2VuZGlmCiAgI2lmIEhBVkVfUFJDVEwgJiYgZGVmaW5lZChQUl9TRVRfRFVNUEFCTEUpCiAgICAgIC8qIFNldCBMaW51eCBEVU1QQUJMRSBmbGFnICovCi0tLSAKLTIuMTMuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvRml4LWZsYXdlZC1keW5hbWljLWxkYi1saW5rLXRlc3QtaW4tY29uZmlndXJlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL0ZpeC1mbGF3ZWQtZHluYW1pYy1sZGItbGluay10ZXN0LWluLWNvbmZpZ3VyZS5wYXRjaAppbmRleCAyMzA0YzVmLi4yNWY2OGFmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvRml4LWZsYXdlZC1keW5hbWljLWxkYi1saW5rLXRlc3QtaW4tY29uZmlndXJlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9GaXgtZmxhd2VkLWR5bmFtaWMtbGRiLWxpbmstdGVzdC1pbi1jb25maWd1cmUucGF0Y2gKQEAgLTEsOCArMSw3IEBACi1Gcm9tIDBkNWIzMzdmZjVlZjdkZDQ4Zjk3MGYwOGJkOTVkNjMyNzkxN2NmZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1NZXNzYWdlLUlkOiA8MGQ1YjMzN2ZmNWVmN2RkNDhmOTcwZjA4YmQ5NWQ2MzI3OTE3Y2ZkMS4xMzgyMzc1ODA3LmdpdC5KaW0uU29tZXJ2aWxsZUB3aW5kcml2ZXIuY29tPgorRnJvbSBiNDk0MzU5NDY1NGNkMzQwYjk1YWFiZGMyZjM3NTBhNDcwNWNjMGRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogSmltIFNvbWVydmlsbGUgPEppbS5Tb21lcnZpbGxlQHdpbmRyaXZlci5jb20+CiBEYXRlOiBNb24sIDIxIE9jdCAyMDEzIDEyOjUwOjQ0IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8xXSBGaXggZmxhd2VkIGR5bmFtaWMgLWxkYiBsaW5rIHRlc3QgaW4gY29uZmlndXJlCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBmbGF3ZWQgZHluYW1pYyAtbGRiIGxpbmsgdGVzdCBpbiBjb25maWd1cmUKIAogVGhlIHRlc3QgdXNlcyBkYm9wZW4sIGJ1dCBqdXN0IGlnbm9yZXMgdGhlIGZhY3QKIHRoYXQgdGhpcyBmdW5jdGlvbiBtYXkgbm90IGV4aXN0IGluIHRoZSBkYiB2ZXJzaW9uCkBAIC0xMSwxNSArMTAsMTYgQEAKIGFib3V0IHdoeSBhbmQgc2V0dGluZyB0aGUgbmVlZCBmb3IgLWxkYiBpbmNvcnJlY3RseS4KIAogU2lnbmVkLW9mZi1ieTogSmltIFNvbWVydmlsbGUgPEppbS5Tb21lcnZpbGxlQHdpbmRyaXZlci5jb20+CisKIC0tLQotIGNvbmZpZ3VyZS5hYyB8ICAgMTIgKysrKysrKysrKy0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorIGNvbmZpZ3VyZS5hYyB8IDEyICsrKysrKysrKystLQorIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCA5NjJhNzQ4Li40MmU2YTkzIDEwMDY0NAoraW5kZXggNTdjZDFhYy4uMzgyNzIyMiAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMzA1MSw4ICszMDUxLDE2IEBAIEFDX0NIRUNLX0RFQ0woZGJvcGVuLCwsWworQEAgLTMyMjksOCArMzIyOSwxNiBAQCBBQ19DSEVDS19ERUNMKGRib3BlbiwsLFsKICAjaW5jbHVkZSA8ZGIuaD4KICAjZW5kaWZdKQogIApAQCAtMzgsNiArMzgsMyBAQAogIGlmIHRlc3QgIngkYWNfY3ZfZGJvcGVuX2xpYmRiIiA9ICJ4eWVzIjsgdGhlbgogICAgICBMSUJfREI9Ii1sZGIiCiAgZmkKLS0tIAotMS43LjQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvU2V0LXVwLWZvci1jcm9zcy1jb21waWxhdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9TZXQtdXAtZm9yLWNyb3NzLWNvbXBpbGF0aW9uLnBhdGNoCmluZGV4IDRjYTI3NDQuLjM4NTJmN2MgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9TZXQtdXAtZm9yLWNyb3NzLWNvbXBpbGF0aW9uLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9TZXQtdXAtZm9yLWNyb3NzLWNvbXBpbGF0aW9uLnBhdGNoCkBAIC0xLDI5ICsxLDI4IEBACi1Gcm9tIDE3ZTVhMjg2NjdmNjY3ODU5YzQ4YmVlMjVlNTc1YTA3MmQzOWVlMWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1NZXNzYWdlLUlkOiA8MTdlNWEyODY2N2Y2Njc4NTljNDhiZWUyNWU1NzVhMDcyZDM5ZWUxYi4xMzgxOTU2MTcwLmdpdC5KaW0uU29tZXJ2aWxsZUB3aW5kcml2ZXIuY29tPgorRnJvbSA5OTVhYWYzMDc5OWZhOTcyNDQxMzU0YjZmZWI0NWYwNjIxOTY4OTI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogSmltIFNvbWVydmlsbGUgPEppbS5Tb21lcnZpbGxlQHdpbmRyaXZlci5jb20+CiBEYXRlOiBXZWQsIDE2IE9jdCAyMDEzIDE2OjQxOjAzIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8xXSBTZXQgdXAgZm9yIGNyb3NzIGNvbXBpbGF0aW9uCitTdWJqZWN0OiBbUEFUQ0hdIFNldCB1cCBmb3IgY3Jvc3MgY29tcGlsYXRpb24KKworTWVzc2FnZS1JZDogPDE3ZTVhMjg2NjdmNjY3ODU5YzQ4YmVlMjVlNTc1YTA3MmQzOWVlMWIuMTM4MTk1NjE3MC5naXQuSmltLlNvbWVydmlsbGVAd2luZHJpdmVyLmNvbT4KIAogU2V0IHRoZSBob3N0IGNvbXBpbGVyIHRvIEJVSUxEX0NYWCBzbwogcHJvcGVyIGNyb3NzIGNvbXBpbGF0aW9uIGNhbiBvY2N1ci4KIAogU2lnbmVkLW9mZi1ieTogSmltIFNvbWVydmlsbGUgPEppbS5Tb21lcnZpbGxlQHdpbmRyaXZlci5jb20+CisKIC0tLQotIGNvbmZpZ3VyZS5hYyB8ICAgIDEgKwotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQorIGNvbmZpZ3VyZS5hYyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQogCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBjMmQzMDMzLi5kZGE5ZWQ5IDEwMDY0NAoraW5kZXggZmU4MGVlMC4uNTdjZDFhYyAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTksNiArMTksNyBAQCBtNF9pbmNsdWRlKFthY2luY2x1ZGUvbGliLWNoZWNrcy5tNF0pCi0gbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2N4eF9jb21waWxlX3N0ZGN4eF8weC5tNF0pCitAQCAtMjcsNiArMjcsNyBAQCBtNF9pbmNsdWRlKFthY2luY2x1ZGUvbGliLWNoZWNrcy5tNF0pCisgbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2N4eF9jb21waWxlX3N0ZGN4eF8xMS5tNF0pCiAgbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2N4eF8weF90eXBlcy5tNF0pCiAgCiArSE9TVENYWD0iJEJVSUxEX0NYWCIKICBQUkVTRVRfQ0ZMQUdTPSIkQ0ZMQUdTIgogIFBSRVNFVF9DWFhGTEFHUz0iJENYWEZMQUdTIgogIFBSRVNFVF9MREZMQUdTPSIkTERGTEFHUyIKLS0tIAotMS43LjQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvU2tpcC1BQ19SVU5fSUZFTFNFLXRlc3RzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL1NraXAtQUNfUlVOX0lGRUxTRS10ZXN0cy5wYXRjaAppbmRleCA3YjZkY2M4Li42YTMzNTI1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvU2tpcC1BQ19SVU5fSUZFTFNFLXRlc3RzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9Ta2lwLUFDX1JVTl9JRkVMU0UtdGVzdHMucGF0Y2gKQEAgLTEsMyArMSw2IEBACitGcm9tIGE4NTMxMTk2NTcwN2JhMmZhNzhmN2NlMDQ0ZTZmNjFlNjVlNjZmZDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKaW0gU29tZXJ2aWxsZSA8SmltLlNvbWVydmlsbGVAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFR1ZSwgMTQgT2N0IDIwMTQgMDI6NTY6MDggLTA0MDAKIFN1YmplY3Q6IFtQQVRDSF0gU2tpcCBBQ19SVU5fSUZFTFNFIHRlc3RzCiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY3Jvc3MgY29tcGlsaW5nIHNwZWNpZmljXQpAQCAtNywxNiArMTAsMTcgQEAKIAogU2lnbmVkLW9mZi1ieTogSmltIFNvbWVydmlsbGUgPEppbS5Tb21lcnZpbGxlQHdpbmRyaXZlci5jb20+CiBTaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBhY2luY2x1ZGUva3JiNS5tNCAgICAgICB8ICAgMTAgKysrKysrKysrLQotIGFjaW5jbHVkZS9saWItY2hlY2tzLm00IHwgICAgOCArKysrKystLQorIGFjaW5jbHVkZS9rcmI1Lm00ICAgICAgIHwgMTAgKysrKysrKysrLQorIGFjaW5jbHVkZS9saWItY2hlY2tzLm00IHwgIDggKysrKysrLS0KICAyIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9hY2luY2x1ZGUva3JiNS5tNCBiL2FjaW5jbHVkZS9rcmI1Lm00Ci1pbmRleCA5NDZiZWE4Li43YTA3MmEyIDEwMDY0NAoraW5kZXggNWM4M2Q4OC4uYzI2NDExOCAxMDA2NDQKIC0tLSBhL2FjaW5jbHVkZS9rcmI1Lm00CiArKysgYi9hY2luY2x1ZGUva3JiNS5tNAotQEAgLTgyLDcgKzgyLDE1IEBAIG1haW4odm9pZCkKK0BAIC02MSw3ICs2MSwxNSBAQCBtYWluKHZvaWQpCiAgCiAgICAgICAgICByZXR1cm4gMDsKICB9CkBAIC0zNCwzMSArMzgsMjggQEAKICAgIF0pCiAgXSkgZG5sIFNRVUlEX0NIRUNLX0tSQjVfSEVJTURBTF9CUk9LRU5fS1JCNV9ICiBkaWZmIC0tZ2l0IGEvYWNpbmNsdWRlL2xpYi1jaGVja3MubTQgYi9hY2luY2x1ZGUvbGliLWNoZWNrcy5tNAotaW5kZXggMmJmOThlZS4uNTBkYmE5YiAxMDA2NDQKK2luZGV4IGM0ODc0ZGEuLmJhNzI5ODIgMTAwNjQ0CiAtLS0gYS9hY2luY2x1ZGUvbGliLWNoZWNrcy5tNAogKysrIGIvYWNpbmNsdWRlL2xpYi1jaGVja3MubTQKLUBAIC0xMjgsNyArMTI4LDkgQEAgQUNfREVGVU4oW1NRVUlEX0NIRUNLX09QRU5TU0xfR0VUQ0VSVElGSUNBVEVfV09SS1NdLFsKLSAgICBBQ19ERUZJTkUoU1FVSURfU1NMR0VUQ0VSVElGSUNBVEVfQlVHR1ksIDEpCi0gICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKK0BAIC0xNzcsNyArMTc3LDkgQEAgQUNfREVGVU4oW1NRVUlEX0NIRUNLX09QRU5TU0xfQ09OU1RfU1NMX01FVEhPRF0sWworICAgWworICAgIEFDX01TR19SRVNVTFQoW25vXSkKICAgIF0sCiAtICBbXSkKICsgIFsKICsgICBBQ19NU0dfUkVTVUxUKFtza2lwcGVkIC0gY2FuJ3QgdGVzdCBpbiBjcm9zcy1jb21waWxlZCBlbnZdKQogKyAgXSkKICAKLSAgIEFDX01TR19DSEVDS0lORyh3aGV0aGVyIHRoZSB3b3JrYXJvdW5kIGZvciBTU0xfZ2V0X2NlcnRpZmljYXRlIHdvcmtzKQotICAgQUNfUlVOX0lGRUxTRShbCi1AQCAtMTU0LDcgKzE1Niw5IEBAIEFDX0RFRlVOKFtTUVVJRF9DSEVDS19PUEVOU1NMX0dFVENFUlRJRklDQVRFX1dPUktTXSxbCi0gICBbCi0gICAgQUNfTVNHX1JFU1VMVChbbm9dKQorIFNRVUlEX1NUQVRFX1JPTExCQUNLKGNoZWNrX2NvbnN0X1NTTF9NRVRIT0QpCisgXQorQEAgLTI2NSw3ICsyNjcsOSBAQCBBQ19ERUZVTihbU1FVSURfQ0hFQ0tfT1BFTlNTTF9UWFREQl0sWworICAgIEFDX01TR19SRVNVTFQoW3llc10pCisgICAgQUNfREVGSU5FKFNRVUlEX1VTRV9TU0xMSEFTSF9IQUNLLCAxKQogICAgXSwKIC1bXSkKICtbCiArICAgQUNfTVNHX1JFU1VMVChbc2tpcHBlZCAtIGNhbid0IHRlc3QgaW4gY3Jvc3MtY29tcGlsZWQgZW52XSkKICtdKQogIAotIFNRVUlEX1NUQVRFX1JPTExCQUNLKGNoZWNrX1NTTF9nZXRfY2VydGlmaWNhdGUpCisgU1FVSURfU1RBVEVfUk9MTEJBQ0soY2hlY2tfVFhUREIpCiAgXSkKLS0tIAotMS43LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL2djYzctZml4ZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvZ2NjNy1maXhlcy5wYXRjaAppbmRleCBjYzFlYTc4Li4yZmVjYTQ5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvZ2NjNy1maXhlcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvZ2NjNy1maXhlcy5wYXRjaApAQCAtMSwxMSArMSwyMCBAQAorRnJvbSA2NjBmY2U5Y2ZhMDBhNTdlNWI3Y2VjNDYxMTZhMzFlMjE1OTVjMzA2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IE1vbiwgMTkgSnVuIDIwMTcgMjM6NDc6MDEgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gc3F1aWQ6IFVwZ3JhZGUgdG8gMy41LjI2CisKIC4uLy4uL3NxdWlkLTMuNS4yNi9zcmMvRGlza0lPL0Rpc2tUaHJlYWRzL2Fpb3BzLmNjOiBJbiBmdW5jdGlvbiAndm9pZCBzcXVpZGFpb19pbml0KCknOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4vLi4vc3F1aWQtMy41LjI2L3NyYy9EaXNrSU8vRGlza1RocmVhZHMvRGlza1RocmVhZHMuaDozMDo1MDogZXJyb3I6ICcqJyBpbiBib29sZWFuIGNvbnRleHQsIHN1Z2dlc3QgJyYmJyBpbnN0ZWFkIFstV2Vycm9yPWludC1pbi1ib29sLWNvbnRleHRdICAgICAgI2RlZmluZSBOVU1USFJFQURTIChDb25maWcuY2FjaGVTd2FwLm5fY29uZmlndXJlZCoxNikKIAotCiBVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci1JbmRleDogc3F1aWQtMy41LjI2L3NyYy9EaXNrSU8vRGlza1RocmVhZHMvYWlvcHMuY2MKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBzcXVpZC0zLjUuMjYub3JpZy9zcmMvRGlza0lPL0Rpc2tUaHJlYWRzL2Fpb3BzLmNjCi0rKysgc3F1aWQtMy41LjI2L3NyYy9EaXNrSU8vRGlza1RocmVhZHMvYWlvcHMuY2MKKworLS0tCisgc3JjL0Rpc2tJTy9EaXNrVGhyZWFkcy9haW9wcy5jYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NyYy9EaXNrSU8vRGlza1RocmVhZHMvYWlvcHMuY2MgYi9zcmMvRGlza0lPL0Rpc2tUaHJlYWRzL2Fpb3BzLmNjCitpbmRleCBiNDRhZGZhLi5lMTFmOTQ4IDEwMDY0NAorLS0tIGEvc3JjL0Rpc2tJTy9EaXNrVGhyZWFkcy9haW9wcy5jYworKysrIGIvc3JjL0Rpc2tJTy9EaXNrVGhyZWFkcy9haW9wcy5jYwogQEAgLTI5MCw3ICsyOTAsNyBAQCBzcXVpZGFpb19pbml0KHZvaWQpCiAgICAgIC8qIENyZWF0ZSB0aHJlYWRzIGFuZCBnZXQgdGhlbSB0byBzaXQgaW4gdGhlaXIgd2FpdCBsb29wICovCiAgICAgIHNxdWlkYWlvX3RocmVhZF9wb29sID0gbWVtUG9vbENyZWF0ZSgiYWlvX3RocmVhZCIsIHNpemVvZihzcXVpZGFpb190aHJlYWRfdCkpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL3NldF9zeXNyb290X3BhdGNoLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL3NldF9zeXNyb290X3BhdGNoLnBhdGNoCmluZGV4IGZkY2QxNzQuLmU5OTA0ODAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9zZXRfc3lzcm9vdF9wYXRjaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvc2V0X3N5c3Jvb3RfcGF0Y2gucGF0Y2gKQEAgLTEsMTUgKzEsMjMgQEAKLVNldCB0aGUgU1lTUk9PVCBmb3IgbGlieG1sMiBoZWFkZXIgZmlsZSB0byBhdm9pZCBob3N0IGNvbnRhbWluYXRpb24uCitGcm9tIDcwMmJkODgxYjY2ZGMwMzRlNzExYzBmZjQ3ODA1ZjJkYTQwYjZlMGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBZdWUgVGFvIDx5dWUudGFvQHdpbmRyaXZlci5jb20+CitEYXRlOiBNb24sIDggQXVnIDIwMTYgMTY6MDQ6MzMgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gU2V0IHRoZSBTWVNST09UIGZvciBsaWJ4bWwyIGhlYWRlciBmaWxlIHRvIGF2b2lkIGhvc3QKKyBjb250YW1pbmF0aW9uLgogCiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQogCiBTaWduZWQtb2ZmLWJ5OiBZdWUgVGFvIDx5dWUudGFvQHdpbmRyaXZlci5jb20+CiBTaWduZWQtb2ZmLWJ5OiBZaSBaaGFvIDx5aS56aGFvQHdpbmRyaXZlci5jb20+CiAKLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMub2xkIGIvY29uZmlndXJlLmFjCi1pbmRleCA1NGVkYTczLi44NzRmNDhlIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjLm9sZAorLS0tCisgY29uZmlndXJlLmFjIHwgMTIgKysrKysrLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggNTA0YTg0NC4uZmY0Njg4YyAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCi1AQCAtOTY0LDE1ICs5NjQsMTUgQEAgaWYgdGVzdCAieCRzcXVpZF9vcHRfdXNlX2VzaSIgPSAieHllcyIgLWEgIngkd2l0aF9saWJ4bWwyIiAhPSAieG5vIiA7IHRoZW4KK0BAIC05NzQsMTUgKzk3NCwxNSBAQCBpZiB0ZXN0ICJ4JHNxdWlkX29wdF91c2VfZXNpIiA9ICJ4eWVzIiAtYSAieCR3aXRoX2xpYnhtbDIiICE9ICJ4bm8iIDsgdGhlbgogICAgZG5sIEZpbmQgdGhlIG1haW4gaGVhZGVyIGFuZCBpbmNsdWRlIHBhdGguLi4KICAgIEFDX0NBQ0hFX0NIRUNLKFtsb2NhdGlvbiBvZiBsaWJ4bWwyIGluY2x1ZGUgZmlsZXNdLCBbYWNfY3ZfbGlieG1sMl9pbmNsdWRlXSwgWwogICAgICBBQ19DSEVDS19IRUFERVJTKFtsaWJ4bWwvcGFyc2VyLmhdLCBbXSwgWwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL3NxdWlkLWRvbi10LWRvLXNxdWlkLWNvbmYtdGVzdHMtYXQtYnVpbGQtdGltZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9zcXVpZC1kb24tdC1kby1zcXVpZC1jb25mLXRlc3RzLWF0LWJ1aWxkLXRpbWUucGF0Y2gKaW5kZXggMzEyZjQ0Zi4uZTUyNjdlYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL3NxdWlkLWRvbi10LWRvLXNxdWlkLWNvbmYtdGVzdHMtYXQtYnVpbGQtdGltZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvc3F1aWQtZG9uLXQtZG8tc3F1aWQtY29uZi10ZXN0cy1hdC1idWlsZC10aW1lLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA1NGE5YzJiYTYwYWRjN2VjMjcyNDc4NjY2MmZkMzk4ZTdjMDM5OTlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA4Nzg2YjkxNDg4ZGFlM2Y2ZGZlYWRkNjg2ZTgwZDJmZmM1YzI5MzIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KIERhdGU6IFRodSwgMjUgQXVnIDIwMTYgMTU6MjI6NTcgKzA4MDAKIFN1YmplY3Q6IFtQQVRDSF0gc3F1aWQ6IGRvbid0IGRvIHNxdWlkLWNvbmYtdGVzdHMgYXQgYnVpbGQgdGltZQpAQCAtMTQsMTIgKzE0LDEzIEBACiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2Nyb3NzIGNvbXBpbGUgc3BlY2lmaWNdCiAKIFNpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CisKIC0tLQogIHRlc3Qtc3VpdGUvTWFrZWZpbGUuYW0gfCAxNSArKysrKysrLS0tLS0tLS0KICAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbSBiL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0KLWluZGV4IGQ1NDY4YmUuLjc3ZmM0ODAgMTAwNjQ0CitpbmRleCAwNjFhNDYzLi4zNTBkZmIyIDEwMDY0NAogLS0tIGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQogKysrIGIvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQogQEAgLTQxLDggKzQxLDcgQEAgVEVTVFMgKz0gZGVidWcgXApAQCAtNTgsNiArNTksMyBAQAogIAkJZWxzZSBicmVhazsgZmk7IFwKICAJZG9uZTsgXAogIAlpZiB0ZXN0ICIkJGZhaWxlZCIgLWVxIDA7IHRoZW4gY3AgJChUUlVFKSAkQCA7IGZpCi0tLSAKLTIuOC4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9zcXVpZC11c2Utc2VyaWFsLXRlc3RzLWNvbmZpZy1uZWVkZWQtYnktcHRlc3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvc3F1aWQtdXNlLXNlcmlhbC10ZXN0cy1jb25maWctbmVlZGVkLWJ5LXB0ZXN0LnBhdGNoCmluZGV4IDAxZWM1OTYuLjljNzVmMTcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9zcXVpZC11c2Utc2VyaWFsLXRlc3RzLWNvbmZpZy1uZWVkZWQtYnktcHRlc3QucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL3NxdWlkLXVzZS1zZXJpYWwtdGVzdHMtY29uZmlnLW5lZWRlZC1ieS1wdGVzdC5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gYmQ1OGQzNjcyYmMyNjc4MjQwMDBmMzRhMzc1NjFjN2FiMmJkNTcxZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gOWJjZWMyMjFhMmJiNDM4ZDhhOWVkNTlhZWQ4NDZmZmUzYmU5Y2ZmYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CiBEYXRlOiBUdWUsIDE5IEp1bCAyMDE2IDAxOjU2OjIzIC0wNDAwCiBTdWJqZWN0OiBbUEFUQ0hdIHNxdWlkOiB1c2Ugc2VyaWFsLXRlc3RzIGNvbmZpZyBuZWVkZWQgYnkgcHRlc3QKQEAgLTksMTIgKzksMTMgQEAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZGVmYXVsdCBhdXRvbWFrZSBiZWhhdmlvciBpbmNvbXBhdGlibGUgd2l0aCBwdGVzdF0KIAogU2lnbmVkLW9mZi1ieTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KKwogLS0tCiAgY29uZmlndXJlLmFjIHwgMiArLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCAwNWFkMDI3Li5lMzI0YjkzIDEwMDY0NAoraW5kZXggMzgyNzIyMi4uNTA0YTg0NCAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCiBAQCAtMTAsNyArMTAsNyBAQCBBQ19QUkVSRVEoMi42MSkKQEAgLTI2LDYgKzI3LDMgQEAKICBBQ19SRVZJU0lPTigkUmV2aXNpb24kKWRubAogIEFDX1BSRUZJWF9ERUZBVUxUKC91c3IvbG9jYWwvc3F1aWQpCiAgQU1fTUFJTlRBSU5FUl9NT0RFCi0tLSAKLTIuOC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvZmlsZXMvY2hhbmdlLXNlY3VyZV9jaHJvb3RfZGlyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC9maWxlcy9jaGFuZ2Utc2VjdXJlX2Nocm9vdF9kaXIucGF0Y2gKaW5kZXggNWYyODYwZS4uYjY5ZGUxZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC9maWxlcy9jaGFuZ2Utc2VjdXJlX2Nocm9vdF9kaXIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC9maWxlcy9jaGFuZ2Utc2VjdXJlX2Nocm9vdF9kaXIucGF0Y2gKQEAgLTEsMjAgKzEsMjUgQEAKLXZzZnRwZDogY2hhbmdlIGRlZmF1bHQgdmFsdWUgb2Ygc2VjdXJlX2Nocm9vdF9kaXIKK0Zyb20gY2UyYmU1ZDQ5Njc0NDU4MjhkNWFlOWQ5NDYyY2ZhYTc4YWUwM2M3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pbmcgTGl1IDxtaW5nLmxpdUB3aW5kcml2ZXIuY29tPgorRGF0ZTogV2VkLCAxOCBTZXAgMjAxMyAwOTo0NDoyMCArMDgwMAorU3ViamVjdDogW1BBVENIXSB2c2Z0cGQ6IGNoYW5nZSBkZWZhdWx0IHZhbHVlIG9mIHNlY3VyZV9jaHJvb3RfZGlyCiAKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCiBDaGFuZ2Ugc2VjdXJlX2Nocm9vdF9kaXIgcG9pbnRpbmcgdG8gYSB2b2xhdGlsZSBkaXJlY3RvcnkuCiAKIFNpZ25lZC1vZmYtYnk6IE1pbmcgTGl1IDxtaW5nLmxpdUB3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBJTlNUQUxMICAgICAgIHwgICAgNiArKystLS0KLSB0dW5hYmxlcy5jICAgIHwgICAgMiArLQotIHZzZnRwZC5jb25mLjUgfCAgICAyICstCisgSU5TVEFMTCAgICAgICB8IDYgKysrLS0tCisgdHVuYWJsZXMuYyAgICB8IDIgKy0KKyB2c2Z0cGQuY29uZi41IHwgMiArLQogIDMgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogCi1kaWZmIC11cnBOIGEvSU5TVEFMTCBiL0lOU1RBTEwKLS0tLSBhL0lOU1RBTEwJMjAxMy0wOS0xMyAxMDoyMzo1Ny41MDQ5NzIzOTcgKzA4MDAKLSsrKyBiL0lOU1RBTEwJMjAxMy0wOS0xMyAxMDoyNToyNS42NjQ5NzE3NzkgKzA4MDAKLUBAIC0yNywxMSArMjcsMTEgQEAgdXNlciBpbiBjYXNlIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QuIAorZGlmZiAtLWdpdCBhL0lOU1RBTEwgYi9JTlNUQUxMCitpbmRleCA0ZjgxMWFhLi40MjcxMjJhIDEwMDY0NAorLS0tIGEvSU5TVEFMTAorKysrIGIvSU5TVEFMTAorQEAgLTI3LDExICsyNywxMSBAQCB1c2VyIGluIGNhc2UgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdC4gZS5nLjoKICBbcm9vdEBsb2NhbGhvc3Qgcm9vdF0jIHVzZXJhZGQgbm9ib2R5CiAgdXNlcmFkZDogdXNlciBub2JvZHkgZXhpc3RzCiAgCkBAIC0yOSw5ICszNCwxMCBAQAogIAogIDJjKSBGb3IgYW5vbnltb3VzIEZUUCwgeW91IHdpbGwgbmVlZCB0aGUgdXNlciAiZnRwIiB0byBleGlzdCwgYW5kIGhhdmUgYQogIHZhbGlkIGhvbWUgZGlyZWN0b3J5ICh3aGljaCBpcyBOT1Qgb3duZWQgb3Igd3JpdGFibGUgYnkgdGhlIHVzZXIgImZ0cCIpLgotZGlmZiAtdXJwTiBhL3R1bmFibGVzLmMgYi90dW5hYmxlcy5jCi0tLS0gYS90dW5hYmxlcy5jCTIwMTMtMDktMTMgMTA6MjY6MjkuNTU0OTcyODE3ICswODAwCi0rKysgYi90dW5hYmxlcy5jCTIwMTMtMDktMTMgMTA6Mjc6MTguMTA0OTcyMjEwICswODAwCitkaWZmIC0tZ2l0IGEvdHVuYWJsZXMuYyBiL3R1bmFibGVzLmMKK2luZGV4IDI4NGExMGQuLjhjNjNjM2YgMTAwNjQ0CistLS0gYS90dW5hYmxlcy5jCisrKysgYi90dW5hYmxlcy5jCiBAQCAtMjU0LDcgKzI1NCw3IEBAIHR1bmFibGVzX2xvYWRfZGVmYXVsdHMoKQogICAgLyogLXJ3LS0tLS0tLSAqLwogICAgdHVuYWJsZV9jaG93bl91cGxvYWRfbW9kZSA9IDA2MDA7CkBAIC00MSwxMCArNDcsMTEgQEAKICAgIGluc3RhbGxfc3RyX3NldHRpbmcoImZ0cCIsICZ0dW5hYmxlX2Z0cF91c2VybmFtZSk7CiAgICBpbnN0YWxsX3N0cl9zZXR0aW5nKCJyb290IiwgJnR1bmFibGVfY2hvd25fdXNlcm5hbWUpOwogICAgaW5zdGFsbF9zdHJfc2V0dGluZygiL3Zhci9sb2cveGZlcmxvZyIsICZ0dW5hYmxlX3hmZXJsb2dfZmlsZSk7Ci1kaWZmIC11cnBOIGEvdnNmdHBkLmNvbmYuNSBiL3ZzZnRwZC5jb25mLjUKLS0tLSBhL3ZzZnRwZC5jb25mLjUJMjAxMy0wOS0xMyAxMDowOTozMy43NzQ5NzI0NjIgKzA4MDAKLSsrKyBiL3ZzZnRwZC5jb25mLjUJMjAxMy0wOS0xMyAxMDoxMDo0MS45MTQ5NzE5ODkgKzA4MDAKLUBAIC05NjksNyArOTY5LDcgQEAgVGhpcyBvcHRpb24gc2hvdWxkIGJlIHRoZSBuYW1lIG9mIGEgZGlyZQorZGlmZiAtLWdpdCBhL3ZzZnRwZC5jb25mLjUgYi92c2Z0cGQuY29uZi41CitpbmRleCBmY2M2MDIyLi5lNGZmZGVlIDEwMDY0NAorLS0tIGEvdnNmdHBkLmNvbmYuNQorKysrIGIvdnNmdHBkLmNvbmYuNQorQEAgLTk2OSw3ICs5NjksNyBAQCBUaGlzIG9wdGlvbiBzaG91bGQgYmUgdGhlIG5hbWUgb2YgYSBkaXJlY3Rvcnkgd2hpY2ggaXMgZW1wdHkuIEFsc28sIHRoZQogIGRpcmVjdG9yeSBzaG91bGQgbm90IGJlIHdyaXRhYmxlIGJ5IHRoZSBmdHAgdXNlci4gVGhpcyBkaXJlY3RvcnkgaXMgdXNlZAogIGFzIGEgc2VjdXJlIGNocm9vdCgpIGphaWwgYXQgdGltZXMgdnNmdHBkIGRvZXMgbm90IHJlcXVpcmUgZmlsZXN5c3RlbSBhY2Nlc3MuCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy8wMDAxLXN5c2RlcHV0aWwuYy1GaXgtd2l0aC1tdXNsLXdoaWNoLWRvZXMtbm90LWhhdmUtdXRtcHgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy8wMDAxLXN5c2RlcHV0aWwuYy1GaXgtd2l0aC1tdXNsLXdoaWNoLWRvZXMtbm90LWhhdmUtdXRtcHgucGF0Y2gKaW5kZXggYzM5MTllMS4uZDgxYzk0YSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvMDAwMS1zeXNkZXB1dGlsLmMtRml4LXdpdGgtbXVzbC13aGljaC1kb2VzLW5vdC1oYXZlLXV0bXB4LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zLzAwMDEtc3lzZGVwdXRpbC5jLUZpeC13aXRoLW11c2wtd2hpY2gtZG9lcy1ub3QtaGF2ZS11dG1weC5wYXRjaApAQCAtMSw5ICsxLDEwIEBACi1Gcm9tIGU1NTEzNWMyYTRlYTdlYWUzY2IxZjRkY2NmNjljYTQ3N2VhMDk1YmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGM1Y2FmNTJiOWVkNzlkYTg5MTZlZjU3MjJlZmU2ZGY2MWE4NTZlMmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogVHVlLCAyOCBNYXIgMjAxNyAyMDowOToxMiAtMDcwMAogU3ViamVjdDogW1BBVENIXSBzeXNkZXB1dGlsLmM6IEZpeCB3aXRoIG11c2wgd2hpY2ggZG9lcyBub3QgaGF2ZSB1dG1weAogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBzeXNkZXB1dGlsLmMgfCA0ICsrKy0KICAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCkBAIC0yMyw2ICsyNCwzIEBACiAgCiAgI2RlZmluZSBfX1VTRV9HTlUKICAjaW5jbHVkZSA8dXRtcHguaD4KLS0tIAotMi4xMi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zLzAwMDEtdnNmdHBkLWFsbG93LXN5c2luZm8taW4tdGhlLXNlY2NvbXAtc2FuZGJveC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zLzAwMDEtdnNmdHBkLWFsbG93LXN5c2luZm8taW4tdGhlLXNlY2NvbXAtc2FuZGJveC5wYXRjaAppbmRleCA3YWNjYmJjLi5jNmMwZjgwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy8wMDAxLXZzZnRwZC1hbGxvdy1zeXNpbmZvLWluLXRoZS1zZWNjb21wLXNhbmRib3gucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvMDAwMS12c2Z0cGQtYWxsb3ctc3lzaW5mby1pbi10aGUtc2VjY29tcC1zYW5kYm94LnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAzN2NjOTI0MzYzNTE1YzhjMzA5OTQ0YzQ1NWJjYmJhN2RkY2M4ZWRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA5YzQ4MjZjMTlmMDRkYTUzMzg4NjIwOTM2MWEyY2FkZGY1ODJkNjVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWluZ2xpIFl1IDxNaW5nbGkuWXVAd2luZHJpdmVyLmNvbT4KIERhdGU6IFR1ZSwgNiBTZXAgMjAxNiAxNzoxNzo0NCArMDgwMAogU3ViamVjdDogW1BBVENIXSB2c2Z0cGQ6IGFsbG93IHN5c2luZm8oKSBpbiB0aGUgc2VjY29tcCBzYW5kYm94CkBAIC0yNCw2ICsyNCw3IEBACiBPT1BTOiBwcml2X3NvY2tfZ2V0X2NtZAogCiBTaWduZWQtb2ZmLWJ5OiBNaW5nbGkgWXUgPE1pbmdsaS5ZdUB3aW5kcml2ZXIuY29tPgorCiAtLS0KICBzZWNjb21wc2FuZGJveC5jIHwgMSArCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCkBAIC00MCw2ICs0MSwzIEBACiAgICAvKiBNaXNjICovCiAgICBhbGxvd19ucihfX05SX3VtYXNrKTsKICAKLS0tIAotMi44LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtZGVzdGRpci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL21ha2VmaWxlLWRlc3RkaXIucGF0Y2gKaW5kZXggMTk4MGQwOS4uNWFkNWMxNCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtZGVzdGRpci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy9tYWtlZmlsZS1kZXN0ZGlyLnBhdGNoCkBAIC0xLDE0ICsxLDIyIEBACi1Vc2UgREVTVERJUiB3aXRoaW4gaW5zdGFsbCB0byBhbGxvdyBpbnN0YWxsaW5nIHVuZGVyIGEgcHJlZml4CitGcm9tIGJhYjNmNjJmMWZkNWI3YzJhYjE5N2Y0MzExYWQxOTFiZjE4ODE2YjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQYXVsIEVnZ2xldG9uIDxwYXVsLmVnZ2xldG9uQGxpbnV4LmludGVsLmNvbT4KK0RhdGU6IE1vbiwgMjAgRmViIDIwMTIgMTM6NTE6NDkgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIERFU1RESVIgd2l0aGluIGluc3RhbGwgdG8gYWxsb3cgaW5zdGFsbGluZyB1bmRlciBhIHByZWZpeAogCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAogU2lnbmVkLW9mZi1ieTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+CiAKKy0tLQorIE1ha2VmaWxlIHwgMjYgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCisKIGRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCitpbmRleCBjNjNlZDFiLi45ZTRmMzVmIDEwMDY0NAogLS0tIGEvTWFrZWZpbGUKICsrKyBiL01ha2VmaWxlCi1AQCAtMjQsMjEgKzI0LDIxIEBACi0gCSQoQ0MpIC1vIHZzZnRwZCAkKE9CSlMpICQoTElOSykgJChMSUJTKQorQEAgLTI5LDIxICsyOSwyMSBAQCB2c2Z0cGQ6ICQoT0JKUykKKyAJJChDQykgLW8gdnNmdHBkICQoT0JKUykgJChMSU5LKSAkKExERkxBR1MpICQoTElCUykKICAKICBpbnN0YWxsOgogLQlpZiBbIC14IC91c3IvbG9jYWwvc2JpbiBdOyB0aGVuIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL21ha2VmaWxlLWxpYnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy9tYWtlZmlsZS1saWJzLnBhdGNoCmluZGV4IDlhMTBmNzIuLmQyZTU4YTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL21ha2VmaWxlLWxpYnMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtbGlicy5wYXRjaApAQCAtMSw0ICsxLDggQEAKLUhhcmRjb2RlIExJQlMgaW5zdGVhZCBvZiB1c2luZyBhIHNjcmlwdCB0byBkZXRlcm1pbmUgYXZhaWxhYmxlIGxpYnMKK0Zyb20gMzI4Nzk5ZDBjZDVjNTIzYWQ3YTgxNGZlZmVjMTZkOGE4NGFhODAxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBhdWwgRWdnbGV0b24gPHBhdWwuZWdnbGV0b25AbGludXguaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxNiBBcHIgMjAxMyAxMDo1Mzo1NSArMDAwMAorU3ViamVjdDogW1BBVENIXSBIYXJkY29kZSBMSUJTIGluc3RlYWQgb2YgdXNpbmcgYSBzY3JpcHQgdG8gZGV0ZXJtaW5lCisgYXZhaWxhYmxlIGxpYnMKIAogV2Ugd2FudCB0byBhdm9pZCB0aGlzIGR5bmFtaWMgZGV0ZWN0aW9uIHNvIHdlIGhhdmUgYSBkZXRlcm1pbmlzdGljCiBidWlsZC4KQEAgLTcsMTUgKzExLDIwIEBACiAKIFNpZ25lZC1vZmYtYnk6IFBhdWwgRWdnbGV0b24gPHBhdWwuZWdnbGV0b25AbGludXguaW50ZWwuY29tPgogCistLS0KKyBNYWtlZmlsZSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKwogZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKK2luZGV4IDllNGYzNWYuLjNhNTUzNWQgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZQogKysrIGIvTWFrZWZpbGUKLUBAIC01LDcgKzUsNyBAQAotICNDRkxBR1MgPSAtZwotIENGTEFHUwk9CS1PMiAtV2FsbCAtVyAtV3NoYWRvdyAjLXBlZGFudGljIC1XZXJyb3IgLVdjb252ZXJzaW9uCitAQCAtOCw3ICs4LDcgQEAgQ0ZMQUdTCT0JLU8yIC1mUElFIC1mc3RhY2stcHJvdGVjdG9yIC0tcGFyYW09c3NwLWJ1ZmZlci1zaXplPTQgXAorIAktRF9GT1JUSUZZX1NPVVJDRT0yIFwKKyAJIy1wZWRhbnRpYyAtV2NvbnZlcnNpb24KICAKIC1MSUJTCT0JYC4vdnNmX2ZpbmRsaWJzLnNoYAogK0xJQlMJPQktbHNzbCAtbGNyeXB0byAtbG5zbCAtbHJlc29sdgogIExJTksJPQktV2wsLXMKKyBMREZMQUdTCT0JLWZQSUUgLXBpZSAtV2wsLXoscmVscm8gLVdsLC16LG5vdwogIAotIE9CSlMJPQltYWluLm8gdXRpbGl0eS5vIHByZWxvZ2luLm8gZnRwY21kaW8ubyBwb3N0bG9naW4ubyBwcml2c29jay5vIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL21ha2VmaWxlLXN0cmlwLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtc3RyaXAucGF0Y2gKaW5kZXggZmQzMTYwMC4uZTU5NjA3MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtc3RyaXAucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtc3RyaXAucGF0Y2gKQEAgLTEsMTAgKzEsMTggQEAKLURpc2FibGUgc3RyaXBwaW5nIGF0IGxpbmsgdGltZQorRnJvbSAyNjE4NzRlYTQ3OTczZWExNTYxNDExODUwODIyNTJmYzkyMDgxOTA2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+CitEYXRlOiBUdWUsIDE2IEFwciAyMDEzIDEwOjUzOjU1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIERpc2FibGUgc3RyaXBwaW5nIGF0IGxpbmsgdGltZQogCiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ10KIAogU2lnbmVkLW9mZi1ieTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+CiAKKy0tLQorIE1ha2VmaWxlIHwgMSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKwogZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKK2luZGV4IDNhNTUzNWQuLmU3ODAxOWEgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZQogKysrIGIvTWFrZWZpbGUKIEBAIC05LDcgKzksNiBAQCBDRkxBR1MJPQktTzIgLWZQSUUgLWZzdGFjay1wcm90ZWN0b3IgLS1wYXJhbT1zc3AtYnVmZmVyLXNpemU9NCBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy9ub3BhbS13aXRoLXRjcF93cmFwcGVycy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL25vcGFtLXdpdGgtdGNwX3dyYXBwZXJzLnBhdGNoCmluZGV4IGZkY2YzYTAuLmE0Mzg3YzEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL25vcGFtLXdpdGgtdGNwX3dyYXBwZXJzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL25vcGFtLXdpdGgtdGNwX3dyYXBwZXJzLnBhdGNoCkBAIC0xLDExICsxLDIwIEBACi1EaXNhYmxlIFBBTQorRnJvbSA3MTYyOGRkYzkxYjZlZmI5YjkyMmEzZmNmOGNjMTg1MjJmNTM4N2JlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIlJveS5MaSIgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CitEYXRlOiBNb24sIDIwIEZlYiAyMDEyIDEzOjUxOjQ5ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIERpc2FibGUgUEFNCiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlnXQogCiBTaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+Ci1kaWZmIC11ciB2c2Z0cGQtMi4wLjFfb3JnL2J1aWxkZGVmcy5oIHZzZnRwZC0yLjAuMV9wYXRjaC9idWlsZGRlZnMuaAotLS0tIHZzZnRwZC0yLjAuMV9vcmcvYnVpbGRkZWZzLmgJMjAwNC0wNy0wMiAxNjozNjo1OS4wMDAwMDAwMDAgKzAyMDAKLSsrKyB2c2Z0cGQtMi4wLjFfcGF0Y2gvYnVpbGRkZWZzLmgJMjAwNC0wNy0yMSAwOTozNDo0OS4wNDQ5MDA0ODggKzAyMDAKKworLS0tCisgYnVpbGRkZWZzLmggfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9idWlsZGRlZnMuaCBiL2J1aWxkZGVmcy5oCitpbmRleCAwMTA2ZDFhLi5mNDhhNTY4IDEwMDY0NAorLS0tIGEvYnVpbGRkZWZzLmgKKysrKyBiL2J1aWxkZGVmcy5oCiBAQCAtMiw3ICsyLDcgQEAKICAjZGVmaW5lIFZTRl9CVUlMRERFRlNfSAogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvdnNmdHBkLTIuMS4wLWZpbHRlci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL3ZzZnRwZC0yLjEuMC1maWx0ZXIucGF0Y2gKaW5kZXggMzJmN2U4Mi4uNTkwZWI1OCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvdnNmdHBkLTIuMS4wLWZpbHRlci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy92c2Z0cGQtMi4xLjAtZmlsdGVyLnBhdGNoCkBAIC0xLDQgKzEsNyBAQAotRml4IHRoZSBDVkUtMjAxNS0xNDE5CitGcm9tIGI3NTY0NDQ4NTRjNWFiM2IxMjg0ZmQ3MTEzMDQzZmU4ODYwZTk5ZWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CitEYXRlOiBGcmksIDI0IEFwciAyMDE1IDA5OjM2OjQ4ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCB0aGUgQ1ZFLTIwMTUtMTQxOQogCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIApAQCAtOSwxMCArMTIsMTcgQEAKIAogU2lnbmVkLW9mZi1ieTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgogCi1kaWZmIC11cCB2c2Z0cGQtMi4xLjAvbHMuYy5maWx0ZXIgdnNmdHBkLTIuMS4wL2xzLmMKLS0tLSB2c2Z0cGQtMi4xLjAvbHMuYy5maWx0ZXIJMjAwOC0wMi0wMiAwMjozMDo0MS4wMDAwMDAwMDAgKzAxMDAKLSsrKyB2c2Z0cGQtMi4xLjAvbHMuYwkyMDA5LTAxLTA4IDE5OjMxOjE1LjAwMDAwMDAwMCArMDEwMAotQEAgLTIzOSw5ICsyMzksMzEgQEAgdnNmX2ZpbGVuYW1lX3Bhc3Nlc19maWx0ZXIoY29uc3Qgc3RydWN0IAorLS0tCisgbHMuYyAgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKystLQorIHN0ci5jIHwgMTEgKysrKysrKysrKysKKyBzdHIuaCB8ICAxICsKKyAzIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9scy5jIGIvbHMuYworaW5kZXggN2UxMzc2ZC4uZTkzMDJkZCAxMDA2NDQKKy0tLSBhL2xzLmMKKysrKyBiL2xzLmMKK0BAIC0yNDYsOSArMjQ2LDMxIEBAIHZzZl9maWxlbmFtZV9wYXNzZXNfZmlsdGVyKGNvbnN0IHN0cnVjdCBteXN0ciogcF9maWxlbmFtZV9zdHIsCiAgICBpbnQgcmV0ID0gMDsKICAgIGNoYXIgbGFzdF90b2tlbiA9IDA7CiAgICBpbnQgbXVzdF9tYXRjaF9hdF9jdXJyZW50X3BvcyA9IDE7CkBAIC00NiwxMCArNTYsMTEgQEAKICAgIHdoaWxlICghc3RyX2lzZW1wdHkoJmZpbHRlcl9yZW1haW5fc3RyKSAmJiAqaXRlcnMgPCBWU0ZUUF9NQVRDSElURVJTX01BWCkKICAgIHsKICAgICAgc3RhdGljIHN0cnVjdCBteXN0ciBzX21hdGNoX25lZWRlZF9zdHI7Ci1kaWZmIC11cCB2c2Z0cGQtMi4xLjAvc3RyLmMuZmlsdGVyIHZzZnRwZC0yLjEuMC9zdHIuYwotLS0tIHZzZnRwZC0yLjEuMC9zdHIuYy5maWx0ZXIJMjAwOC0xMi0xNyAwNjo1NDoxNi4wMDAwMDAwMDAgKzAxMDAKLSsrKyB2c2Z0cGQtMi4xLjAvc3RyLmMJMjAwOS0wMS0wOCAxOTozMToxNS4wMDAwMDAwMDAgKzAxMDAKLUBAIC02ODAsMyArNjgwLDE0IEBAIHN0cl9yZXBsYWNlX3VucHJpbnRhYmxlKHN0cnVjdCBteXN0ciogcF8KK2RpZmYgLS1naXQgYS9zdHIuYyBiL3N0ci5jCitpbmRleCA2NTk2MjA0Li5iYTRiOTJhIDEwMDY0NAorLS0tIGEvc3RyLmMKKysrKyBiL3N0ci5jCitAQCAtNzExLDMgKzcxMSwxNCBAQCBzdHJfcmVwbGFjZV91bnByaW50YWJsZShzdHJ1Y3QgbXlzdHIqIHBfc3RyLCBjaGFyIG5ld19jaGFyKQogICAgfQogIH0KICAKQEAgLTY0LDEwICs3NSwxMSBAQAogKyAgaWYgKHN0cl9pc2VtcHR5KGRfc3RyKSkKICsgICBzdHJfY29weSAoZF9zdHIsIHBhdGgpOwogK30KLWRpZmYgLXVwIHZzZnRwZC0yLjEuMC9zdHIuaC5maWx0ZXIgdnNmdHBkLTIuMS4wL3N0ci5oCi0tLS0gdnNmdHBkLTIuMS4wL3N0ci5oLmZpbHRlcgkyMDA4LTEyLTE3IDA2OjUzOjIzLjAwMDAwMDAwMCArMDEwMAotKysrIHZzZnRwZC0yLjEuMC9zdHIuaAkyMDA5LTAxLTA4IDE5OjMyOjE0LjAwMDAwMDAwMCArMDEwMAotQEAgLTEwMCw2ICsxMDAsNyBAQCB2b2lkIHN0cl9yZXBsYWNlX3VucHJpbnRhYmxlKHN0cnVjdCBteXN0CitkaWZmIC0tZ2l0IGEvc3RyLmggYi9zdHIuaAoraW5kZXggYWIwYTlhNC4uM2EyMWI1MCAxMDA2NDQKKy0tLSBhL3N0ci5oCisrKysgYi9zdHIuaAorQEAgLTEwMCw2ICsxMDAsNyBAQCB2b2lkIHN0cl9yZXBsYWNlX3VucHJpbnRhYmxlKHN0cnVjdCBteXN0ciogcF9zdHIsIGNoYXIgbmV3X2NoYXIpOwogIGludCBzdHJfYXRvaShjb25zdCBzdHJ1Y3QgbXlzdHIqIHBfc3RyKTsKICBmaWxlc2l6ZV90IHN0cl9hX3RvX2ZpbGVzaXplX3QoY29uc3Qgc3RydWN0IG15c3RyKiBwX3N0cik7CiAgdW5zaWduZWQgaW50IHN0cl9vY3RhbF90b191aW50KGNvbnN0IHN0cnVjdCBteXN0ciogcF9zdHIpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvdnNmdHBkLXRjcF93cmFwcGVycy1zdXBwb3J0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvdnNmdHBkLXRjcF93cmFwcGVycy1zdXBwb3J0LnBhdGNoCmluZGV4IDY5NzQ1YjMuLmM1NThhZWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL3ZzZnRwZC10Y3Bfd3JhcHBlcnMtc3VwcG9ydC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy92c2Z0cGQtdGNwX3dyYXBwZXJzLXN1cHBvcnQucGF0Y2gKQEAgLTEsMTEgKzEsMTUgQEAKLUVuYWJsZSB0Y3Bfd3JhcHBlci4KK0Zyb20gYzAyNmIwYzBkZTRlZWJiMTg5YmM3N2IyZDRjM2I5NTI4NDU0YWMwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ICJSb3kuTGkiIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogRnJpLCAxOSBKdWwgMjAxMyAxMDoxOToyNSArMDgwMAorU3ViamVjdDogW1BBVENIXSBFbmFibGUgdGNwX3dyYXBwZXIuCiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KIAogU2lnbmVkLW9mZi1ieTogUm95LkxpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBidWlsZGRlZnMuaCB8ICAgIDIgKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKKyBidWlsZGRlZnMuaCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL2J1aWxkZGVmcy5oIGIvYnVpbGRkZWZzLmgKIGluZGV4IGU5MDgzNTIuLjAxMDZkMWEgMTAwNjQ0CkBAIC0yMCw2ICsyNCwzIEBACiAgI2RlZmluZSBWU0ZfQlVJTERfUEFNCiAgI3VuZGVmIFZTRl9CVUlMRF9TU0wKICAKLS0tIAotMS43LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1leHRlbmRlZC9jb3Jvc3luYy9jb3Jvc3luYy8wMDAxLUluY2x1ZGUtZmNudGwuaC1mb3ItRl8tYW5kLU9fLWRlZmluZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWV4dGVuZGVkL2Nvcm9zeW5jL2Nvcm9zeW5jLzAwMDEtSW5jbHVkZS1mY250bC5oLWZvci1GXy1hbmQtT18tZGVmaW5lcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmU0YjA3OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWV4dGVuZGVkL2Nvcm9zeW5jL2Nvcm9zeW5jLzAwMDEtSW5jbHVkZS1mY250bC5oLWZvci1GXy1hbmQtT18tZGVmaW5lcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLUZyb20gODVlYTQ3ZmVkYmM5NmVkOTE4MGUwOGIwZDM3MWQ5OTY2ZTNhODhkYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDMwIEF1ZyAyMDE3IDE3OjI4OjU1IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIEluY2x1ZGUgZmNudGwuaCBmb3IgRl8qIGFuZCBPXyogZGVmaW5lcwotCi1GaXhlcyBlcnJvcnMgbGlrZQotdXRpbHMuYzo5NToyMjogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ09fV1JPTkxZJwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gcWRldmljZXMvdXRpbHMuYyB8IDEgKwotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQotCi1kaWZmIC0tZ2l0IGEvcWRldmljZXMvdXRpbHMuYyBiL3FkZXZpY2VzL3V0aWxzLmMKLWluZGV4IDQxODUwYjhjLi44NzA5MDg1MyAxMDA2NDQKLS0tLSBhL3FkZXZpY2VzL3V0aWxzLmMKLSsrKyBiL3FkZXZpY2VzL3V0aWxzLmMKLUBAIC0zOSw2ICszOSw3IEBACi0gCi0gI2luY2x1ZGUgPGVyci5oPgotICNpbmNsdWRlIDxlcnJuby5oPgotKyNpbmNsdWRlIDxmY250bC5oPgotICNpbmNsdWRlIDxpbnR0eXBlcy5oPgotICNpbmNsdWRlIDxsaWJnZW4uaD4KLSAjaW5jbHVkZSA8c3RkaW8uaD4KLS0tIAotMi4xNC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZXh0ZW5kZWQvY29yb3N5bmMvY29yb3N5bmNfMi40LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWV4dGVuZGVkL2Nvcm9zeW5jL2Nvcm9zeW5jXzIuNC4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzM2U3NGUyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZXh0ZW5kZWQvY29yb3N5bmMvY29yb3N5bmNfMi40LjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi1TVU1NQVJZID0gIlRoZSBDb3Jvc3luYyBDbHVzdGVyIEVuZ2luZSBhbmQgQXBwbGljYXRpb24gUHJvZ3JhbW1pbmcgSW50ZXJmYWNlcyIKLURFU0NSSVBUSU9OID0gIlRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgQ29yb3N5bmMgQ2x1c3RlciBFbmdpbmUgRXhlY3V0aXZlLCBzZXZlcmFsIGRlZmF1bHQgXAotQVBJcyBhbmQgbGlicmFyaWVzLCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZXMsIGFuZCBhbiBpbml0IHNjcmlwdC4iCi1IT01FUEFHRSA9ICJodHRwOi8vY29yb3N5bmMuZ2l0aHViLmlvL2Nvcm9zeW5jLyIKLQotU0VDVElPTiA9ICJiYXNlIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgc3lzdGVtZCB1c2VyYWRkCi0KLVNSQ19VUkkgPSAiaHR0cDovL2J1aWxkLmNsdXN0ZXJsYWJzLm9yZy9jb3Jvc3luYy9yZWxlYXNlcy8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1JbmNsdWRlLWZjbnRsLmgtZm9yLUZfLWFuZC1PXy1kZWZpbmVzLnBhdGNoIFwKLSAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiNTQ3ZmE3ODcwNGRhNTNhYTM1OTEyYmU1OGQzMTAzNWYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjI2ZTMwMTEzMDlmZTRiY2NlOTRiMWRjMjBlYThjNDYyZjE5NDgzYTczZjNjYTYyZjEzYjkyNWQwMTFhNGJhOSIKLQotTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1hODVlYjRjZTI0MDMzYWRiNjA4OGRkMWQ2ZmZjNWU1ZCIKLQotREVQRU5EUyA9ICJncm9mZi1uYXRpdmUgbnNzIGxpYnFiIgotCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiY29yb3N5bmMuc2VydmljZSBjb3Jvc3luYy1ub3RpZnlkLnNlcnZpY2UgXAotICAgICAgICAgICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3FkZXZpY2UnLCAnY29yb3N5bmMtcWRldmljZS5zZXJ2aWNlJywgJycsIGQpfSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAncW5ldGQnLCAnY29yb3N5bmMtcW5ldGQuc2VydmljZScsICcnLCBkKX0gXAotIgotU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJlbmFibGUiCi0KLUlOSVRTQ1JJUFRfTkFNRSA9ICJjb3Jvc3luYy1kYWVtb24iCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IFwKLSAgICAgICAgICAgICAgICAgICBkYnVzIHFkZXZpY2UgcW5ldGQgc25tcCBcCi0iCi0KLVBBQ0tBR0VDT05GSUdbZGJ1c10gPSAiLS1lbmFibGUtZGJ1cywtLWRpc2FibGUtZGJ1cyxkYnVzIgotUEFDS0FHRUNPTkZJR1txZGV2aWNlXSA9ICItLWVuYWJsZS1xZGV2aWNlcywtLWRpc2FibGUtcWRldmljZXMiCi1QQUNLQUdFQ09ORklHW3FuZXRkXSA9ICItLWVuYWJsZS1xbmV0ZCwtLWRpc2FibGUtcW5ldGQiCi1QQUNLQUdFQ09ORklHW3JkbWFdID0gIi0tZW5hYmxlLXJkbWEsLS1kaXNhYmxlLXJkbWEiCi1QQUNLQUdFQ09ORklHW3NubXBdID0gIi0tZW5hYmxlLXNubXAsLS1kaXNhYmxlLXNubXAsbmV0LXNubXAiCi1QQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0tZW5hYmxlLXN5c3RlbWQgLS13aXRoLXN5c3RlbWRkaXI9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfSwtLWRpc2FibGUtc3lzdGVtZCAtLXdpdGhvdXQtc3lzdGVtZGRpcixzeXN0ZW1kIgotCi1FWFRSQV9PRUNPTkYgPSAiYWNfY3ZfcGF0aF9CQVNIUEFUSD0ke2Jhc2VfYmluZGlyfS9iYXNoIgotRVhUUkFfT0VNQUtFID0gInRtcGZpbGVzZGlyX0RBVEE9IgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICAoIGNkICR7U30KLSAgICAke1N9L2F1dG9nZW4uc2ggKQotfQotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3N5c2NvbmZpZy8KLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9pbml0L2Nvcm9zeW5jLnN5c2NvbmZpZy5leGFtcGxlICR7RH0ke3N5c2NvbmZkaXJ9L3N5c2NvbmZpZy9jb3Jvc3luYwotICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L3Rvb2xzL2Nvcm9zeW5jLW5vdGlmeWQuc3lzY29uZmlnLmV4YW1wbGUgJHtEfSR7c3lzY29uZmRpcn0vc3lzY29uZmlnL2Nvcm9zeW5jLW5vdGlmeWQKLQotICAgIHJtIC1yZiAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vcnVuIgotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcwotICAgIGVjaG8gImQgcm9vdCByb290IDA3NTUgJHtsb2NhbHN0YXRlZGlyfS9sb2cvY2x1c3RlciBub25lIiA+ICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzLzA1X2Nvcm9zeW5jCi0KLSAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdxbmV0ZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCi0gICAgICAgIGNob3duIC1SIGNvcm9xbmV0ZDpjb3JvcW5ldGQgJHtEfSR7c3lzY29uZmRpcn0vJHtCUE59L3FuZXRkCi0gICAgICAgIGVjaG8gImQgY29yb3FuZXRkIGNvcm9xbmV0ZCAwNzcwIC92YXIvcnVuL2Nvcm9zeW5jLXFuZXRkIG5vbmUiID4+ICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzLzA1X2Nvcm9zeW5jCi0gICAgZmkKLQotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCdzeXN0ZW1kJywndHJ1ZScsJ2ZhbHNlJyxkKX07IHRoZW4KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kCi0gICAgICAgIGVjaG8gImQgJHtsb2NhbHN0YXRlZGlyfS9sb2cvY2x1c3RlciAtIC0gLSAtIiA+ICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvY29yb3N5bmMuY29uZgotCi0gICAgICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3FuZXRkJywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KLSAgICAgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L2NvbmYvdG1wZmlsZXMuZC9jb3Jvc3luYy1xbmV0ZC5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQKLSAgICAgICAgZmkKLSAgICBmaQotfQotCi1SREVQRU5EU18ke1BOfSArPSAiYmFzaCIKLQotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmV4ZWNkaXJ9L2xjcnNvLy5kZWJ1ZyIKLUZJTEVTXyR7UE59LWRvYyArPSAiJHtkYXRhZGlyfS9zbm1wL21pYnMvQ09ST1NZTkMtTUlCLnR4dCIKLQotVVNFUkFERF9QQUNLQUdFUyA9ICIke1BOfSIKLUdST1VQQUREX1BBUkFNXyR7UE59ID0gIi0tc3lzdGVtIGNvcm9xbmV0ZCIKLVVTRVJBRERfUEFSQU1fJHtQTn0gPSAiLS1zeXN0ZW0gLWQgLyAtTSAtcyAvYmluL25vbG9naW4gLWMgJ1VzZXIgZm9yIGNvcm9zeW5jLXFuZXRkJyAtZyBjb3JvcW5ldGQgY29yb3FuZXRkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1leHRlbmRlZC9jb3Jvc3luYy9jb3Jvc3luY18yLjQuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZXh0ZW5kZWQvY29yb3N5bmMvY29yb3N5bmNfMi40LjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY3M2ZhMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZXh0ZW5kZWQvY29yb3N5bmMvY29yb3N5bmNfMi40LjMuYmIKQEAgLTAsMCArMSw3OSBAQAorU1VNTUFSWSA9ICJUaGUgQ29yb3N5bmMgQ2x1c3RlciBFbmdpbmUgYW5kIEFwcGxpY2F0aW9uIFByb2dyYW1taW5nIEludGVyZmFjZXMiCitERVNDUklQVElPTiA9ICJUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIENvcm9zeW5jIENsdXN0ZXIgRW5naW5lIEV4ZWN1dGl2ZSwgc2V2ZXJhbCBkZWZhdWx0IFwKK0FQSXMgYW5kIGxpYnJhcmllcywgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZpbGVzLCBhbmQgYW4gaW5pdCBzY3JpcHQuIgorSE9NRVBBR0UgPSAiaHR0cDovL2Nvcm9zeW5jLmdpdGh1Yi5pby9jb3Jvc3luYy8iCisKK1NFQ1RJT04gPSAiYmFzZSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIHN5c3RlbWQgdXNlcmFkZAorCitTUkNfVVJJID0gImh0dHA6Ly9idWlsZC5jbHVzdGVybGFicy5vcmcvY29yb3N5bmMvcmVsZWFzZXMvJHtCUH0udGFyLmd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiYmYwZWRlMTMwMThhYWRjOGEwNDYxODNiYzU5M2IwZTAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjFlN2U0MjJlOGQyZjdhZjhlNTMxNWZhMzI5YjFkYmQxMTc1ZmZmMzJlZmFhNTVlODA1NDU4NGM4MGEyYzU5NyIKKworTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1hODVlYjRjZTI0MDMzYWRiNjA4OGRkMWQ2ZmZjNWU1ZCIKKworREVQRU5EUyA9ICJncm9mZi1uYXRpdmUgbnNzIGxpYnFiIgorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiY29yb3N5bmMuc2VydmljZSBjb3Jvc3luYy1ub3RpZnlkLnNlcnZpY2UgXAorICAgICAgICAgICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3FkZXZpY2UnLCAnY29yb3N5bmMtcWRldmljZS5zZXJ2aWNlJywgJycsIGQpfSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAncW5ldGQnLCAnY29yb3N5bmMtcW5ldGQuc2VydmljZScsICcnLCBkKX0gXAorIgorU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgorCitJTklUU0NSSVBUX05BTUUgPSAiY29yb3N5bmMtZGFlbW9uIgorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsIGQpfSBcCisgICAgICAgICAgICAgICAgICAgZGJ1cyBxZGV2aWNlIHFuZXRkIHNubXAgXAorIgorCitQQUNLQUdFQ09ORklHW2RidXNdID0gIi0tZW5hYmxlLWRidXMsLS1kaXNhYmxlLWRidXMsZGJ1cyIKK1BBQ0tBR0VDT05GSUdbcWRldmljZV0gPSAiLS1lbmFibGUtcWRldmljZXMsLS1kaXNhYmxlLXFkZXZpY2VzIgorUEFDS0FHRUNPTkZJR1txbmV0ZF0gPSAiLS1lbmFibGUtcW5ldGQsLS1kaXNhYmxlLXFuZXRkIgorUEFDS0FHRUNPTkZJR1tyZG1hXSA9ICItLWVuYWJsZS1yZG1hLC0tZGlzYWJsZS1yZG1hIgorUEFDS0FHRUNPTkZJR1tzbm1wXSA9ICItLWVuYWJsZS1zbm1wLC0tZGlzYWJsZS1zbm1wLG5ldC1zbm1wIgorUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICItLWVuYWJsZS1zeXN0ZW1kIC0td2l0aC1zeXN0ZW1kZGlyPSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0sLS1kaXNhYmxlLXN5c3RlbWQgLS13aXRob3V0LXN5c3RlbWRkaXIsc3lzdGVtZCIKKworRVhUUkFfT0VDT05GID0gImFjX2N2X3BhdGhfQkFTSFBBVEg9JHtiYXNlX2JpbmRpcn0vYmFzaCBhcF9jdl9jY19waWU9bm8iCitFWFRSQV9PRU1BS0UgPSAidG1wZmlsZXNkaXJfREFUQT0iCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworICAgICggY2QgJHtTfQorICAgICR7U30vYXV0b2dlbi5zaCApCit9CisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vc3lzY29uZmlnLworICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L2luaXQvY29yb3N5bmMuc3lzY29uZmlnLmV4YW1wbGUgJHtEfSR7c3lzY29uZmRpcn0vc3lzY29uZmlnL2Nvcm9zeW5jCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vdG9vbHMvY29yb3N5bmMtbm90aWZ5ZC5zeXNjb25maWcuZXhhbXBsZSAke0R9JHtzeXNjb25mZGlyfS9zeXNjb25maWcvY29yb3N5bmMtbm90aWZ5ZAorCisgICAgcm0gLXJmICIke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4iCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzCisgICAgZWNobyAiZCByb290IHJvb3QgMDc1NSAke2xvY2Fsc3RhdGVkaXJ9L2xvZy9jbHVzdGVyIG5vbmUiID4gJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvMDVfY29yb3N5bmMKKworICAgIGlmIFsgJHtAYmIudXRpbHMuZmlsdGVyKCdQQUNLQUdFQ09ORklHJywgJ3FuZXRkJywgZCl9IF07IHRoZW4KKyAgICAgICAgY2hvd24gLVIgY29yb3FuZXRkOmNvcm9xbmV0ZCAke0R9JHtzeXNjb25mZGlyfS8ke0JQTn0vcW5ldGQKKyAgICAgICAgZWNobyAiZCBjb3JvcW5ldGQgY29yb3FuZXRkIDA3NzAgL3Zhci9ydW4vY29yb3N5bmMtcW5ldGQgbm9uZSIgPj4gJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvMDVfY29yb3N5bmMKKyAgICBmaQorCisgICAgaWYgWyAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLGQpfSBdOyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAorICAgICAgICBlY2hvICJkICR7bG9jYWxzdGF0ZWRpcn0vbG9nL2NsdXN0ZXIgLSAtIC0gLSIgPiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL2Nvcm9zeW5jLmNvbmYKKworICAgICAgICBpZiBbICR7QGJiLnV0aWxzLmZpbHRlcignUEFDS0FHRUNPTkZJRycsICdxbmV0ZCcsIGQpfSBdOyB0aGVuCisgICAgICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9jb25mL3RtcGZpbGVzLmQvY29yb3N5bmMtcW5ldGQuY29uZiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kCisgICAgICAgIGZpCisgICAgZmkKK30KKworUkRFUEVORFNfJHtQTn0gKz0gImJhc2ggJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN2aW5pdCcsICdzeXN2aW5pdC1waWRvZicsICdwcm9jcHMnLCBkKX0iCisKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJleGVjZGlyfS9sY3Jzby8uZGVidWciCitGSUxFU18ke1BOfS1kb2MgKz0gIiR7ZGF0YWRpcn0vc25tcC9taWJzL0NPUk9TWU5DLU1JQi50eHQiCisKK1VTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0iCitHUk9VUEFERF9QQVJBTV8ke1BOfSA9ICItLXN5c3RlbSBjb3JvcW5ldGQiCitVU0VSQUREX1BBUkFNXyR7UE59ID0gIi0tc3lzdGVtIC1kIC8gLU0gLXMgL2Jpbi9ub2xvZ2luIC1jICdVc2VyIGZvciBjb3Jvc3luYy1xbmV0ZCcgLWcgY29yb3FuZXRkIGNvcm9xbmV0ZCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZXh0ZW5kZWQvaXNjc2l0YXJnZXQvaXNjc2l0YXJnZXRfMS40LjIwLjMrc3ZuNTAyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1leHRlbmRlZC9pc2NzaXRhcmdldC9pc2NzaXRhcmdldF8xLjQuMjAuMytzdm41MDIuYmIKaW5kZXggNjU5MzY2MS4uNWQxMzU5MSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1leHRlbmRlZC9pc2NzaXRhcmdldC9pc2NzaXRhcmdldF8xLjQuMjAuMytzdm41MDIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1leHRlbmRlZC9pc2NzaXRhcmdldC9pc2NzaXRhcmdldF8xLjQuMjAuMytzdm41MDIuYmIKQEAgLTYwLDMgKzYwLDUgQEAKIAogUkRFUEVORFNfJHtQTn0gPSAia2VybmVsLW1vZHVsZS1pc2NzaS10cmd0IgogUlJFQ09NTUVORFNfJHtQTn0gPSAia2VybmVsLW1vZHVsZS1jcmMzMmMga2VybmVsLW1vZHVsZS1saWJjcmMzMmMiCisKK1BOQkxBQ0tMSVNUW2lzY3NpdGFyZ2V0XSA9ICJlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2luaXRfdGltZXInOyBkaWQgeW91IG1lYW4gJ2luaXRfdGltZXJzJz87IDQuMTUga2VybmVsIGlzc3VlcyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZmlsdGVyL2VidGFibGVzL2VidGFibGVzLTIuMC4xMC00L2VidGFibGVzLmNvbW1vbiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZmlsdGVyL2VidGFibGVzL2VidGFibGVzLTIuMC4xMC00L2VidGFibGVzLmNvbW1vbgppbmRleCA2NDAwMjVkLi4xYWUxOGZlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWZpbHRlci9lYnRhYmxlcy9lYnRhYmxlcy0yLjAuMTAtNC9lYnRhYmxlcy5jb21tb24KKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1maWx0ZXIvZWJ0YWJsZXMvZWJ0YWJsZXMtMi4wLjEwLTQvZWJ0YWJsZXMuY29tbW9uCkBAIC0yMCw3ICsyMCw3IEBACiBjb25maWc9L2V0Yy9kZWZhdWx0LyRwcm9nCiBbIC1mICIkY29uZmlnIiBdICYmIC4gIiRjb25maWciCiAKLWZ1bmN0aW9uIGdldF9zdXBwb3J0ZWRfdGFibGVzKCkgeworZ2V0X3N1cHBvcnRlZF90YWJsZXMoKSB7CiAJRUJUQUJMRVNfU1VQUE9SVEVEX1RBQkxFUz0KIAkvc2Jpbi9lYnRhYmxlcyAtdCBmaWx0ZXIgLUwgMj4mMSAxPi9kZXYvbnVsbCB8IGdyZXAgLXEgcGVybWlzc2lvbgogCWlmIFsgJD8gLWVxIDAgXTsgdGhlbgpAQCAtMzUsNyArMzUsNyBAQAogCWRvbmUKIH0KIAotZnVuY3Rpb24gbG9hZCgpIHsKK2xvYWQoKSB7CiAJUkVUVkFMPTAKIAlnZXRfc3VwcG9ydGVkX3RhYmxlcwogCWVjaG8gLW4gIlJlc3RvcmluZyBlYnRhYmxlcyBydWxlc2V0czogIgpAQCAtNjQsNyArNjQsNyBAQAogCWZpCiB9CiAKLWZ1bmN0aW9uIGNsZWFyKCkgeworY2xlYXJfcnVsZXMoKSB7CiAJUkVUVkFMPTAKIAlnZXRfc3VwcG9ydGVkX3RhYmxlcwogCWVjaG8gLW4gIkNsZWFyaW5nIGVidGFibGVzIHJ1bGVzZXRzOiAiCkBAIC05MCw3ICs5MCw3IEBACiAJZmkKIH0KIAotZnVuY3Rpb24gc2F2ZSgpIHsKK3NhdmUoKSB7CiAJUkVUVkFMPTAKIAlnZXRfc3VwcG9ydGVkX3RhYmxlcwogCWVjaG8gLW4gIlNhdmluZyBlYnRhYmxlcyBydWxlc2V0czogIgpAQCAtMTI3LDExICsxMjcsMTEgQEAKIAk7OwogICBzdG9wKQogCVsgIiRFQlRBQkxFU19TQVZFX09OX1NUT1AiID0gInllcyIgXSAmJiBzYXZlCi0JY2xlYXIKKwljbGVhcl9ydWxlcwogCTs7CiAgIHJlc3RhcnR8cmVsb2FkfGZvcmNlLXJlbG9hZCkKIAlbICIkRUJUQUJMRVNfU0FWRV9PTl9SRVNUQVJUIiA9ICJ5ZXMiIF0gJiYgc2F2ZQotCWNsZWFyCisJY2xlYXJfcnVsZXMKIAlbICIkRUJUQUJMRVNfTE9BRF9PTl9TVEFSVCIgPSAieWVzIiBdICYmIGxvYWQKIAk7OwogICBsb2FkKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1maWx0ZXIvZWJ0YWJsZXMvZWJ0YWJsZXNfMi4wLjEwLTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWZpbHRlci9lYnRhYmxlcy9lYnRhYmxlc18yLjAuMTAtNC5iYgppbmRleCBkNWU3MzQxLi5iOWRjZTY5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWZpbHRlci9lYnRhYmxlcy9lYnRhYmxlc18yLjAuMTAtNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWZpbHRlci9lYnRhYmxlcy9lYnRhYmxlc18yLjAuMTAtNC5iYgpAQCAtMjksOSArMjksMTAgQEAKICAgICAgICAgICAgZmlsZTovLzAwMDctZXh0ZW5zaW9ucy1Vc2Utc3RkaW50LXR5cGVzLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDgtZXRoZXJuZXRkYi5oLVJlbW92ZS1DLXNwZWNpZmljLWNvbXBpbGVyLWhpbnQtbWFjcm8tXy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDA5LWVidGFibGVzLUFsbG93LVJFVFVSTi10YXJnZXQtcnVsZXMtaW4tdXNlci1kZWZpbmVkLWMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAxMC1BZGp1c3QtaGVhZGVyLWluY2x1ZGUtc2VxdWVuY2UucGF0Y2ggXAogICAgICAgICAgICAiCiAKK1NSQ19VUklfYXBwZW5kX2xpYmMtbXVzbCA9ICIgZmlsZTovLzAwMTAtQWRqdXN0LWhlYWRlci1pbmNsdWRlLXNlcXVlbmNlLnBhdGNoIgorCiBTUkNfVVJJW21kNXN1bV0gPSAiNTA2NzQyYTNkNDRiOTkyNTk1NTQyNWE2NTljMWE4ZDAiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGM2ZjdiNDg0ZjIwN2RjNzEyYmZjYTgxNjQ1ZjQ1MTIwY2I2YWVlMzM4MGU3N2ExNzcxZTljMzRhOWE0NDU1ZCIKIApAQCAtNDIsMTAgKzQzLDEwIEBACiBweXRob24gX19hbm9ueW1vdXMgKCkgewogICAgIGltcG9ydCByZQogCi0gICAga2FyY2ggPSBkLmdldFZhcignS0FSQ0gnKQorICAgIGthcmNoID0gZC5nZXRWYXIoJ1RBUkdFVF9BUkNIJykKICAgICBtdWx0aWxpYiA9IGQuZ2V0VmFyKCdNTFBSRUZJWCcpCiAKLSAgICBpZiBtdWx0aWxpYiBhbmQga2FyY2ggPT0gJ3Bvd2VycGM2NCc6CisgICAgaWYgbXVsdGlsaWIgYW5kICgga2FyY2ggPT0gJ3Bvd2VycGM2NCcgb3Iga2FyY2ggPT0gJ2FybScgKToKICAgICAgICAgc2VhcmNoc3RyID0gImxpYi4/MzIiCiAgICAgICAgIHJlZyA9IHJlLmNvbXBpbGUoc2VhcmNoc3RyKQogICAgICAgICBpZiByZWcuc2VhcmNoKG11bHRpbGliKToKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZmlsdGVyL2xpYm5ldGZpbHRlci9maWxlcy9saWJuZXRmaWx0ZXItY3RoZWxwZXItdmlzaWJpbGl0eS1oaWRkZW4ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWZpbHRlci9saWJuZXRmaWx0ZXIvZmlsZXMvbGlibmV0ZmlsdGVyLWN0aGVscGVyLXZpc2liaWxpdHktaGlkZGVuLnBhdGNoCmluZGV4IDkzNzdmNTcuLmU3MTdkNWIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZmlsdGVyL2xpYm5ldGZpbHRlci9maWxlcy9saWJuZXRmaWx0ZXItY3RoZWxwZXItdmlzaWJpbGl0eS1oaWRkZW4ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1maWx0ZXIvbGlibmV0ZmlsdGVyL2ZpbGVzL2xpYm5ldGZpbHRlci1jdGhlbHBlci12aXNpYmlsaXR5LWhpZGRlbi5wYXRjaApAQCAtMjAsMTAgKzIwLDEwIEBACiAgc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jIHwgODMgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMyBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL2RveHlnZW4uY2ZnLmluIGIvZG94eWdlbi5jZmcuaW4KLWluZGV4IGNhYzliMDUuLjE5MGI3Y2QgMTAwNjQ0Ci0tLS0gYS9kb3h5Z2VuLmNmZy5pbgotKysrIGIvZG94eWdlbi5jZmcuaW4KK0luZGV4OiBsaWJuZXRmaWx0ZXJfY3RoZWxwZXItMS4wLjAvZG94eWdlbi5jZmcuaW4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBsaWJuZXRmaWx0ZXJfY3RoZWxwZXItMS4wLjAub3JpZy9kb3h5Z2VuLmNmZy5pbgorKysrIGxpYm5ldGZpbHRlcl9jdGhlbHBlci0xLjAuMC9kb3h5Z2VuLmNmZy5pbgogQEAgLTcyLDcgKzcyLDcgQEAgUkVDVVJTSVZFICAgICAgICAgICAgICA9IFlFUwogIEVYQ0xVREUgICAgICAgICAgICAgICAgPSAKICBFWENMVURFX1NZTUxJTktTICAgICAgID0gTk8KQEAgLTMzLDEwICszMywxMCBAQAogIEVYQU1QTEVfUEFUSCAgICAgICAgICAgPSAKICBFWEFNUExFX1BBVFRFUk5TICAgICAgID0gCiAgRVhBTVBMRV9SRUNVUlNJVkUgICAgICA9IE5PCi1kaWZmIC0tZ2l0IGEvc3JjL2ludGVybmFsLmggYi9zcmMvaW50ZXJuYWwuaAotaW5kZXggM2E4OGQxYS4uNWQ3ODE3MSAxMDA2NDQKLS0tLSBhL3NyYy9pbnRlcm5hbC5oCi0rKysgYi9zcmMvaW50ZXJuYWwuaAorSW5kZXg6IGxpYm5ldGZpbHRlcl9jdGhlbHBlci0xLjAuMC9zcmMvaW50ZXJuYWwuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGxpYm5ldGZpbHRlcl9jdGhlbHBlci0xLjAuMC5vcmlnL3NyYy9pbnRlcm5hbC5oCisrKysgbGlibmV0ZmlsdGVyX2N0aGVscGVyLTEuMC4wL3NyYy9pbnRlcm5hbC5oCiBAQCAtMywxMCArMyw5IEBACiAgCiAgI2luY2x1ZGUgImNvbmZpZy5oIgpAQCAtNTAsMTAgKzUwLDEwIEBACiAgI2VuZGlmCiAgCiAgI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jIGIvc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jCi1pbmRleCBmOGY1OGU2Li5hZjU0M2ExIDEwMDY0NAotLS0tIGEvc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jCi0rKysgYi9zcmMvbGlibmV0ZmlsdGVyX2N0aGVscGVyLmMKK0luZGV4OiBsaWJuZXRmaWx0ZXJfY3RoZWxwZXItMS4wLjAvc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbGlibmV0ZmlsdGVyX2N0aGVscGVyLTEuMC4wLm9yaWcvc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jCisrKysgbGlibmV0ZmlsdGVyX2N0aGVscGVyLTEuMC4wL3NyYy9saWJuZXRmaWx0ZXJfY3RoZWxwZXIuYwogQEAgLTk5LDE3ICs5OSwxNiBAQCBzdHJ1Y3QgbmZjdF9oZWxwZXIgewogICAqIEluIGNhc2Ugb2Ygc3VjY2VzcywgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgdmFsaWQgcG9pbnRlciwgb3RoZXJ3aXNlIE5VTEwKICAgKiBzIHJldHVybmVkIGFuZCBlcnJubyBpcyBhcHByb3ByaWF0ZWx5IHNldC4KQEAgLTc0LDkgKzc0LDkgQEAKICB7CiAgCWludCBpOwogIAotQEAgLTExOSw3ICsxMTgsNiBAQCB2b2lkIG5mY3RfaGVscGVyX2ZyZWUoc3RydWN0IG5mY3RfaGVscGVyICpoKQorQEAgLTExOSw3ICsxMTgsNiBAQCB2b2lkIG5mY3RfaGVscGVyX2ZyZWUoc3RydWN0IG5mY3RfaGVscGVyCisgCQkJZnJlZShoLT5leHBlY3RfcG9saWN5W2ldKTsKICAJfQotIAlmcmVlKGgpOwogIH0KIC1FWFBPUlRfU1lNQk9MKG5mY3RfaGVscGVyX2ZyZWUpOwogIApAQCAtMTE1LDcgKzExNSw3IEBACiAgbmZjdF9oZWxwZXJfcG9saWN5X2F0dHJfc2V0KHN0cnVjdCBuZmN0X2hlbHBlcl9wb2xpY3kgKnAsCiAgCQkJICAgIGVudW0gbmZjdF9oZWxwZXJfcG9saWN5X2F0dHJfdHlwZSB0eXBlLAogIAkJCSAgICBjb25zdCB2b2lkICpkYXRhKQotQEAgLTE3MCw3ICsxNjYsNiBAQCBuZmN0X2hlbHBlcl9wb2xpY3lfYXR0cl9zZXQoc3RydWN0IG5mY3RfaGVscGVyX3BvbGljeSAqcCwKK0BAIC0xNzAsNyArMTY2LDYgQEAgbmZjdF9oZWxwZXJfcG9saWN5X2F0dHJfc2V0KHN0cnVjdCBuZmN0XwogIAkJYnJlYWs7CiAgCX0KICB9CkBAIC0xMjMsNyArMTIzLDcgQEAKICAKICAvKioKICAgKiBuZmN0X2hlbHBlcl9hdHRyX3NldF9zdHIgLSBzZXQgb25lIGF0dHJpYnV0ZSB0aGUgaGVscGVyIG9iamVjdAotQEAgLTE3OCwyMyArMTczLDIxIEBAIEVYUE9SVF9TWU1CT0wobmZjdF9oZWxwZXJfcG9saWN5X2F0dHJfc2V0KTsKK0BAIC0xNzgsMjMgKzE3MywyMSBAQCBFWFBPUlRfU1lNQk9MKG5mY3RfaGVscGVyX3BvbGljeV9hdHRyX3NlCiAgICogXHBhcmFtIHR5cGUgYXR0cmlidXRlIHR5cGUgeW91IHdhbnQgdG8gc2V0CiAgICogXHBhcmFtIG5hbWUgc3RyaW5nIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNldCB0aGlzIGF0dHJpYnV0ZQogICAqLwpAQCAtMTQ5LDcgKzE0OSw3IEBACiAgCiAgLyoqCiAgICogbmZjdF9oZWxwZXJfYXR0cl9zZXQgLSBzZXQgb25lIGF0dHJpYnV0ZSBvZiB0aGUgaGVscGVyIG9iamVjdAotQEAgLTIwMiw3ICsxOTUsNyBAQCBFWFBPUlRfU1lNQk9MKG5mY3RfaGVscGVyX3BvbGljeV9hdHRyX3NldF91MzIpOworQEAgLTIwMiw3ICsxOTUsNyBAQCBFWFBPUlRfU1lNQk9MKG5mY3RfaGVscGVyX3BvbGljeV9hdHRyX3NlCiAgICogXHBhcmFtIHR5cGUgYXR0cmlidXRlIHR5cGUgeW91IHdhbnQgdG8gc2V0CiAgICogXHBhcmFtIGRhdGEgcG9pbnRlciB0byBkYXRhIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNldCB0aGlzIGF0dHJpYnV0ZQogICAqLwpAQCAtMTU4LDcgKzE1OCw3IEBACiAgbmZjdF9oZWxwZXJfYXR0cl9zZXQoc3RydWN0IG5mY3RfaGVscGVyICpoLAogIAkJICAgICBlbnVtIG5mY3RfaGVscGVyX2F0dHJfdHlwZSB0eXBlLCBjb25zdCB2b2lkICpkYXRhKQogIHsKLUBAIC0yNTAsNyArMjQzLDYgQEAgbmZjdF9oZWxwZXJfYXR0cl9zZXQoc3RydWN0IG5mY3RfaGVscGVyICpoLAorQEAgLTI1MCw3ICsyNDMsNiBAQCBuZmN0X2hlbHBlcl9hdHRyX3NldChzdHJ1Y3QgbmZjdF9oZWxwZXIKICAJCWJyZWFrOwogIAl9CiAgfQpAQCAtMjE2LDcgKzIxNiw3IEBACiAgbmZjdF9oZWxwZXJfYXR0cl91bnNldChzdHJ1Y3QgbmZjdF9oZWxwZXIgKm5mY3RfaGVscGVyLCBlbnVtIG5mY3RfaGVscGVyX2F0dHJfdHlwZSB0eXBlKQogIHsKICAJc3dpdGNoKHR5cGUpIHsKLUBAIC0zMDcsNyArMjk1LDYgQEAgbmZjdF9oZWxwZXJfYXR0cl91bnNldChzdHJ1Y3QgbmZjdF9oZWxwZXIgKm5mY3RfaGVscGVyLCBlbnVtIG5mY3RfaGVscGVyX2F0dHJfdHkKK0BAIC0zMDcsNyArMjk1LDYgQEAgbmZjdF9oZWxwZXJfYXR0cl91bnNldChzdHJ1Y3QgbmZjdF9oZWxwZQogIAkJYnJlYWs7CiAgCX0KICB9CkBAIC0yMzYsNyArMjM2LDcgQEAKICB7CiAgCWNvbnN0IHZvaWQgKnJldCA9IE5VTEw7CiAgCi1AQCAtMzU4LDcgKzM0Niw2IEBAIGNvbnN0IHZvaWQgKm5mY3RfaGVscGVyX2F0dHJfZ2V0KHN0cnVjdCBuZmN0X2hlbHBlciAqaGVscGVyLAorQEAgLTM1OCw3ICszNDYsNiBAQCBjb25zdCB2b2lkICpuZmN0X2hlbHBlcl9hdHRyX2dldChzdHJ1Y3QKICAJfQogIAlyZXR1cm4gcmV0OwogIH0KQEAgLTMyMSw3ICszMjEsNyBAQAogIHsKICAJaW50IHJldDsKICAKLUBAIC00NTQsNyArNDQxLDYgQEAgaW50IG5mY3RfaGVscGVyX3NucHJpbnRmKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsCitAQCAtNDU0LDcgKzQ0MSw2IEBAIGludCBuZmN0X2hlbHBlcl9zbnByaW50ZihjaGFyICpidWYsIHNpemUKICAKICAJcmV0dXJuIHJldDsKICB9CkBAIC0zMzgsNyArMzM4LDcgQEAKICBuZmN0X2hlbHBlcl9ubG1zZ19idWlsZF9oZHIoY2hhciAqYnVmLCB1aW50OF90IGNtZCwKICAJCQkgICAgdWludDE2X3QgZmxhZ3MsIHVpbnQzMl90IHNlcSkKICB7Ci1AQCAtNTA5LDcgKzQ5NSw2IEBAIG5mY3RfaGVscGVyX25sbXNnX2J1aWxkX2hkcihjaGFyICpidWYsIHVpbnQ4X3QgY21kLAorQEAgLTUwOSw3ICs0OTUsNiBAQCBuZmN0X2hlbHBlcl9ubG1zZ19idWlsZF9oZHIoY2hhciAqYnVmLCB1CiAgCiAgCXJldHVybiBubGg7CiAgfQpAQCAtMzQ2LDcgKzM0Niw3IEBACiAgCiAgc3RhdGljIHZvaWQKICBuZmN0X2hlbHBlcl9ubG1zZ19idWlsZF9wb2xpY3koc3RydWN0IG5sbXNnaGRyICpubGgsCi1AQCAtNTMwLDcgKzUxNSw3IEBAIG5mY3RfaGVscGVyX25sbXNnX2J1aWxkX3BvbGljeShzdHJ1Y3Qgbmxtc2doZHIgKm5saCwKK0BAIC01MzAsNyArNTE1LDcgQEAgbmZjdF9oZWxwZXJfbmxtc2dfYnVpbGRfcG9saWN5KHN0cnVjdCBubAogICAqIFxwYXJhbSBubGg6IG5ldGxpbmsgbWVzc2FnZSB0aGF0IHlvdSB3YW50IHRvIHVzZSB0byBhZGQgdGhlIHBheWxvYWQuCiAgICogXHBhcmFtIG5mY3RfaGVscGVyOiBwb2ludGVyIHRvIGEgaGVscGVyIG9iamVjdAogICAqLwpAQCAtMzU1LDcgKzM1NSw3IEBACiAgbmZjdF9oZWxwZXJfbmxtc2dfYnVpbGRfcGF5bG9hZChzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5mY3RfaGVscGVyICpoKQogIHsKICAJc3RydWN0IG5sYXR0ciAqbmVzdDsKLUBAIC01OTMsNyArNTc4LDYgQEAgbmZjdF9oZWxwZXJfbmxtc2dfYnVpbGRfcGF5bG9hZChzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5mY3RfaGVscGVyICpoKQorQEAgLTU5Myw3ICs1NzgsNiBAQCBuZmN0X2hlbHBlcl9ubG1zZ19idWlsZF9wYXlsb2FkKHN0cnVjdCBuCiAgCWlmIChoLT5iaXRzZXQgJiAoMSA8PCBORkNUSF9BVFRSX1NUQVRVUykpCiAgCQltbmxfYXR0cl9wdXRfdTMyKG5saCwgTkZDVEhfU1RBVFVTLCBudG9obChoLT5zdGF0dXMpKTsKICB9CkBAIC0zNjMsNyArMzYzLDcgQEAKICAKICBzdGF0aWMgaW50CiAgbmZjdF9oZWxwZXJfbmxtc2dfcGFyc2VfdHVwbGVfY2IoY29uc3Qgc3RydWN0IG5sYXR0ciAqYXR0ciwgdm9pZCAqZGF0YSkKLUBAIC03OTUsNyArNzc5LDcgQEAgbmZjdF9oZWxwZXJfbmxtc2dfcGFyc2VfYXR0cl9jYihjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLCB2b2lkICpkYXRhKQorQEAgLTc5NSw3ICs3NzksNyBAQCBuZmN0X2hlbHBlcl9ubG1zZ19wYXJzZV9hdHRyX2NiKGNvbnN0IHN0CiAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIC0xIGluIGNhc2UgdGhhdCBzb21lIG1hbmRhdG9yeSBhdHRyaWJ1dGVzIGFyZQogICAqIG1pc3NpbmcuIE9uIHN1Y2VzcywgaXQgcmV0dXJucyAwLgogICAqLwpAQCAtMzcyLDcgKzM3Miw3IEBACiAgbmZjdF9oZWxwZXJfbmxtc2dfcGFyc2VfcGF5bG9hZChjb25zdCBzdHJ1Y3Qgbmxtc2doZHIgKm5saCwKICAJCQkJc3RydWN0IG5mY3RfaGVscGVyICpoKQogIHsKLUBAIC04MzIsNyArODE2LDYgQEAgbmZjdF9oZWxwZXJfbmxtc2dfcGFyc2VfcGF5bG9hZChjb25zdCBzdHJ1Y3Qgbmxtc2doZHIgKm5saCwKK0BAIC04MzIsNyArODE2LDYgQEAgbmZjdF9oZWxwZXJfbmxtc2dfcGFyc2VfcGF5bG9hZChjb25zdCBzdAogIAl9CiAgCXJldHVybiAwOwogIH0KQEAgLTM4MCw2ICszODAsMyBAQAogIAogIC8qKgogICAqIEB9Ci0tLSAKLWNnaXQgdjEuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWtlcm5lbC93aXJlZ3VhcmQvd2lyZWd1YXJkLW1vZHVsZV8wLjAuMjAxNzA4MTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWtlcm5lbC93aXJlZ3VhcmQvd2lyZWd1YXJkLW1vZHVsZV8wLjAuMjAxNzEyMjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMta2VybmVsL3dpcmVndWFyZC93aXJlZ3VhcmQtbW9kdWxlXzAuMC4yMDE3MDgxMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1rZXJuZWwvd2lyZWd1YXJkL3dpcmVndWFyZC1tb2R1bGVfMC4wLjIwMTcxMjIxLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWtlcm5lbC93aXJlZ3VhcmQvd2lyZWd1YXJkLXRvb2xzXzAuMC4yMDE3MDgxMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMta2VybmVsL3dpcmVndWFyZC93aXJlZ3VhcmQtdG9vbHNfMC4wLjIwMTcxMjIxLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWtlcm5lbC93aXJlZ3VhcmQvd2lyZWd1YXJkLXRvb2xzXzAuMC4yMDE3MDgxMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1rZXJuZWwvd2lyZWd1YXJkL3dpcmVndWFyZC10b29sc18wLjAuMjAxNzEyMjEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMta2VybmVsL3dpcmVndWFyZC93aXJlZ3VhcmQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1rZXJuZWwvd2lyZWd1YXJkL3dpcmVndWFyZC5pbmMKaW5kZXggZjM3ZDUyYi4uNmJkNTgxYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1rZXJuZWwvd2lyZWd1YXJkL3dpcmVndWFyZC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1rZXJuZWwvd2lyZWd1YXJkL3dpcmVndWFyZC5pbmMKQEAgLTExLDcgKzExLDcgQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLy4uL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgogCiBTUkNfVVJJID0gImh0dHBzOi8vZ2l0Lnp4MmM0LmNvbS9XaXJlR3VhcmQvc25hcHNob3QvV2lyZUd1YXJkLSR7UFZ9LnRhci54eiIKLVNSQ19VUklbbWQ1c3VtXSA9ICI4ZGQzZTA4MDQwN2I4Mjk1YzI1NTY1YTg0N2E0Y2EyNyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJhYjk2MjMwMzkwNjI1YWFkNmY0ODE2ZmEyM2FlZjZlOWY3ZmVlMTMwZjA4M2Q4Mzg5MTkxMjlmZjEyMDg5YmY3IgorU1JDX1VSSVttZDVzdW1dID0gIjM5YmI5OWZlMTEzNTY0MjNmYjFhYjQ1YWUyZDkzOGJiIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJiOTc2OTdlOWIyNzFiYTg4MzZhMDQxMjBhMjg3YjgyNDY0ODEyNGYyMWQ1MzA5MTcwZWM1MWMxZjg2YWM1ZWQiCiAKIFMgPSAiJHtXT1JLRElSfS9XaXJlR3VhcmQtJHtQVn0vc3JjLyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9SZXBsYWNlLW11cm11cmhhc2gtYWxnb3JpdGhtLXdpdGgtUm9iZXJ0LUplbmtpbi1zLWhhLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZpbGVzL1JlcGxhY2UtbXVybXVyaGFzaC1hbGdvcml0aG0td2l0aC1Sb2JlcnQtSmVua2luLXMtaGEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFhNWExYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9SZXBsYWNlLW11cm11cmhhc2gtYWxnb3JpdGhtLXdpdGgtUm9iZXJ0LUplbmtpbi1zLWhhLnBhdGNoCkBAIC0wLDAgKzEsMjIzIEBACitSZXBsYWNlIG11cm11cmhhc2ggYWxnb3JpdGhtIHdpdGggUm9iZXJ0IEplbmtpbidzIGhhc2ggYWxnb3JpdGhtCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitGcm9tIHRlc3QgcmVzdWx0LCBtdXJtdXJoYXNoIGFsZ29yaXRobSBkb2VzIG5vdCB3b3JrIGluIGJpZyBlbmRpYW4KK3Byb2Nlc3Nvciwgc28gcmVwbGFjZSBpdCB3aXRoIFJvYmVydCBKZW5raW4ncyBoYXNoIHdoaWNoIGhhcyB3b3JrZWQKK2luIGxpbnV4IGtlcm5lbCBmb3IgbWFueSB5ZWFycyBhbmQgaGFzIG1vcmUgYWRhcHRhYmlsaXR5LgorCitTaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CistLS0KKyBsaWJmZHByb3RvL29zdHIuYyB8ICAxOTIgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgMTE4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliZmRwcm90by9vc3RyLmMgYi9saWJmZHByb3RvL29zdHIuYworaW5kZXggOGYyOWI0OC4uY2UxZjRkZCAxMDA2NDQKKy0tLSBhL2xpYmZkcHJvdG8vb3N0ci5jCisrKysgYi9saWJmZHByb3RvL29zdHIuYworQEAgLTQzMCwxMjggKzQzMCw4NCBAQCBhZnRlcl9wcm90bzoKKyAKKyAKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCistLyogSGFzaCBmdW5jdGlvbiAtLSBjcmVkaXRzIHRvIEF1c3RpbiBBcHBsZWJ5LCB0aGFuayB5b3UgXl4gKi8KKy0vKiBTZWUgaHR0cDovL211cm11cmhhc2guZ29vZ2xlcGFnZXMuY29tIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgZnVuY3Rpb24gKi8KKy0KKy0vKiB0aGUgc3RyaW5ncyBhcmUgTk9UIGFsd2F5cyBhbGlnbmVkIHByb3Blcmx5IChleDogcmVjZWl2ZWQgaW4gUkFESVVTIG1lc3NhZ2UpLCBzbyB3ZSB1c2UgdGhlIGFsaWduZWQgTXVybXVySGFzaDIgZnVuY3Rpb24gYXMgbmVlZGVkICovCistI2RlZmluZSBfSEFTSF9NSVgoaCxrLG0pIHsgayAqPSBtOyBrIF49IGsgPj4gcjsgayAqPSBtOyBoICo9IG07IGggXj0gazsgfQorLXVpbnQzMl90IGZkX29zX2hhc2ggKCB1aW50OF90ICogc3RyaW5nLCBzaXplX3QgbGVuICkKKysvKgorKyAqIFJvYmVydCBKZW5raW4ncyBoYXNoIGZ1bmN0aW9uLgorKyAqIGh0dHA6Ly9idXJ0bGVidXJ0bGUubmV0L2JvYi9oYXNoL2V2YWhhc2guaHRtbAorKyAqIFRoaXMgaXMgaW4gdGhlIHB1YmxpYyBkb21haW4uCisrICovCisrI2RlZmluZSBtaXgoYSwgYiwgYykJCQkJCQlcCisrCWRvIHsJCQkJCQkJXAorKwkJYSA9IGEgLSBiOyAgYSA9IGEgLSBjOyAgYSA9IGEgXiAoYyA+PiAxMyk7CVwKKysJCWIgPSBiIC0gYzsgIGIgPSBiIC0gYTsgIGIgPSBiIF4gKGEgPDwgOCk7CVwKKysJCWMgPSBjIC0gYTsgIGMgPSBjIC0gYjsgIGMgPSBjIF4gKGIgPj4gMTMpOwlcCisrCQlhID0gYSAtIGI7ICBhID0gYSAtIGM7ICBhID0gYSBeIChjID4+IDEyKTsJXAorKwkJYiA9IGIgLSBjOyAgYiA9IGIgLSBhOyAgYiA9IGIgXiAoYSA8PCAxNik7CVwKKysJCWMgPSBjIC0gYTsgIGMgPSBjIC0gYjsgIGMgPSBjIF4gKGIgPj4gNSk7CVwKKysJCWEgPSBhIC0gYjsgIGEgPSBhIC0gYzsgIGEgPSBhIF4gKGMgPj4gMyk7CVwKKysJCWIgPSBiIC0gYzsgIGIgPSBiIC0gYTsgIGIgPSBiIF4gKGEgPDwgMTApOwlcCisrCQljID0gYyAtIGE7ICBjID0gYyAtIGI7ICBjID0gYyBeIChiID4+IDE1KTsJXAorKwl9IHdoaWxlICgwKQorKworK3Vuc2lnbmVkIGhhc2hfcmplbmtpbnMoY29uc3QgY2hhciAqc3RyLCB1bnNpZ25lZCBsZW5ndGgpCisgeworLQl1aW50MzJfdCBoYXNoID0gbGVuOworLQl1aW50OF90ICogZGF0YSA9IHN0cmluZzsKKy0JCistCWNvbnN0IHVuc2lnbmVkIGludCBtID0gMHg1YmQxZTk5NTsKKy0JY29uc3QgaW50IHIgPSAyNDsKKy0JaW50IGFsaWduID0gKGxvbmcpc3RyaW5nICYgMzsKKy0JCistCWlmICghYWxpZ24gfHwgKGxlbiA8IDQpKSB7CistCQkvKiBJbiBjYXNlIGRhdGEgaXMgYWxpZ25lZCwgTXVybXVySGFzaDIgZnVuY3Rpb24gKi8KKy0JCXdoaWxlKGxlbiA+PSA0KQorLQkJeworLQkJCS8qIE1peCA0IGJ5dGVzIGF0IGEgdGltZSBpbnRvIHRoZSBoYXNoICovCistCQkJdWludDMyX3QgayA9ICoodWludDMyX3QgKilkYXRhOwkvKiBXZSBkb24ndCBjYXJlIGFib3V0IHRoZSBieXRlIG9yZGVyICovCistCistCQkJX0hBU0hfTUlYKGhhc2gsIGssIG0pOworLQorLQkJCWRhdGEgKz0gNDsKKy0JCQlsZW4gLT0gNDsKKy0JCX0KKy0KKy0JCS8qIEhhbmRsZSB0aGUgbGFzdCBmZXcgYnl0ZXMgb2YgdGhlIGlucHV0ICovCistCQlzd2l0Y2gobGVuKSB7CistCQkJY2FzZSAzOiBoYXNoIF49IGRhdGFbMl0gPDwgMTY7CistCQkJY2FzZSAyOiBoYXNoIF49IGRhdGFbMV0gPDwgODsKKy0JCQljYXNlIDE6IGhhc2ggXj0gZGF0YVswXTsKKy0JICAgICAgICAJCWhhc2ggKj0gbTsKKy0JCX0KKy0JCQorLQl9IGVsc2UgeworLQkJLyogVW5hbGlnbmVkIGRhdGEsIHVzZSBhbGlnbm1lbnQtc2FmZSBzbG93ZXIgdmVyc2lvbiAqLworLQkJCistCQkvKiBQcmUtbG9hZCB0aGUgdGVtcCByZWdpc3RlcnMgKi8KKy0JCXVpbnQzMl90IHQgPSAwLCBkID0gMDsKKy0JCXN3aXRjaChhbGlnbikKKy0JCXsKKy0JCQljYXNlIDE6IHQgfD0gZGF0YVsyXSA8PCAxNjsKKy0JCQljYXNlIDI6IHQgfD0gZGF0YVsxXSA8PCA4OworLQkJCWNhc2UgMzogdCB8PSBkYXRhWzBdOworLQkJfQorLQkJdCA8PD0gKDggKiBhbGlnbik7CistCistCQlkYXRhICs9IDQtYWxpZ247CistCQlsZW4gLT0gNC1hbGlnbjsKKy0JCQorLQkJLyogRnJvbSB0aGlzIHBvaW50LCAiZGF0YSIgY2FuIGJlIHJlYWQgYnkgY2h1bmtzIG9mIDQgYnl0ZXMgKi8KKy0JCQorLQkJaW50IHNsID0gOCAqICg0LWFsaWduKTsKKy0JCWludCBzciA9IDggKiBhbGlnbjsKKy0KKy0JCS8qIE1peCAqLworLQkJd2hpbGUobGVuID49IDQpCistCQl7CistCQkJdWludDMyX3QgazsKKy0JCQkKKy0JCQlkID0gKih1bnNpZ25lZCBpbnQgKilkYXRhOworLQkJCWsgPSAodCA+PiBzcikgfCAoZCA8PCBzbCk7CistCistCQkJX0hBU0hfTUlYKGhhc2gsIGssIG0pOworLQorLQkJCXQgPSBkOworLQorLQkJCWRhdGEgKz0gNDsKKy0JCQlsZW4gLT0gNDsKKy0JCX0KKy0KKy0JCS8qIEhhbmRsZSBsZWZ0b3ZlciBkYXRhIGluIHRlbXAgcmVnaXN0ZXJzICovCistCQlkID0gMDsKKy0JCWlmKGxlbiA+PSBhbGlnbikKKy0JCXsKKy0JCQl1aW50MzJfdCBrOworLQkJCQorLQkJCXN3aXRjaChhbGlnbikKKy0JCQl7CistCQkJY2FzZSAzOiBkIHw9IGRhdGFbMl0gPDwgMTY7CistCQkJY2FzZSAyOiBkIHw9IGRhdGFbMV0gPDwgODsKKy0JCQljYXNlIDE6IGQgfD0gZGF0YVswXTsKKy0JCQl9CistCistCQkJayA9ICh0ID4+IHNyKSB8IChkIDw8IHNsKTsKKy0JCQlfSEFTSF9NSVgoaGFzaCwgaywgbSk7CistCistCQkJZGF0YSArPSBhbGlnbjsKKy0JCQlsZW4gLT0gYWxpZ247CistCistCQkJLyogSGFuZGxlIHRhaWwgYnl0ZXMgKi8KKy0KKy0JCQlzd2l0Y2gobGVuKQorLQkJCXsKKy0JCQljYXNlIDM6IGhhc2ggXj0gZGF0YVsyXSA8PCAxNjsKKy0JCQljYXNlIDI6IGhhc2ggXj0gZGF0YVsxXSA8PCA4OworLQkJCWNhc2UgMTogaGFzaCBePSBkYXRhWzBdOworLQkJCQkJaGFzaCAqPSBtOworLQkJCX07CistCQl9CistCQllbHNlCistCQl7CistCQkJc3dpdGNoKGxlbikKKy0JCQl7CistCQkJY2FzZSAzOiBkIHw9IGRhdGFbMl0gPDwgMTY7CistCQkJY2FzZSAyOiBkIHw9IGRhdGFbMV0gPDwgODsKKy0JCQljYXNlIDE6IGQgfD0gZGF0YVswXTsKKy0JCQljYXNlIDA6IGhhc2ggXj0gKHQgPj4gc3IpIHwgKGQgPDwgc2wpOworLQkJCQkJaGFzaCAqPSBtOworLQkJCX0KKy0JCX0KKy0KKysJY29uc3QgdW5zaWduZWQgY2hhciAqayA9IChjb25zdCB1bnNpZ25lZCBjaGFyICopc3RyOworKwl1aW50MzJfdCBhLCBiLCBjOyAgLyogdGhlIGludGVybmFsIHN0YXRlICovCisrCXVpbnQzMl90IGxlbjsgICAgICAvKiBob3cgbWFueSBrZXkgYnl0ZXMgc3RpbGwgbmVlZCBtaXhpbmcgKi8KKysKKysJLyogU2V0IHVwIHRoZSBpbnRlcm5hbCBzdGF0ZSAqLworKwlsZW4gPSBsZW5ndGg7CisrCWEgPSAweDllMzc3OWI5OyAgICAgIC8qIHRoZSBnb2xkZW4gcmF0aW87IGFuIGFyYml0cmFyeSB2YWx1ZSAqLworKwliID0gYTsKKysJYyA9IDA7ICAgICAgICAgICAgICAgLyogdmFyaWFibGUgaW5pdGlhbGl6YXRpb24gb2YgaW50ZXJuYWwgc3RhdGUgKi8KKysKKysJLyogaGFuZGxlIG1vc3Qgb2YgdGhlIGtleSAqLworKwl3aGlsZSAobGVuID49IDEyKSB7CisrCQlhID0gYSArIChrWzBdICsgKCh1aW50MzJfdClrWzFdIDw8IDgpICsgKCh1aW50MzJfdClrWzJdIDw8IDE2KSArCisrCQkJICgodWludDMyX3Qpa1szXSA8PCAyNCkpOworKwkJYiA9IGIgKyAoa1s0XSArICgodWludDMyX3Qpa1s1XSA8PCA4KSArICgodWludDMyX3Qpa1s2XSA8PCAxNikgKworKwkJCSAoKHVpbnQzMl90KWtbN10gPDwgMjQpKTsKKysJCWMgPSBjICsgKGtbOF0gKyAoKHVpbnQzMl90KWtbOV0gPDwgOCkgKyAoKHVpbnQzMl90KWtbMTBdIDw8IDE2KSArCisrCQkJICgodWludDMyX3Qpa1sxMV0gPDwgMjQpKTsKKysJCW1peChhLCBiLCBjKTsKKysJCWsgPSBrICsgMTI7CisrCQlsZW4gPSBsZW4gLSAxMjsKKysJfQorIAorKwkvKiBoYW5kbGUgdGhlIGxhc3QgMTEgYnl0ZXMgKi8KKysJYyA9IGMgKyBsZW5ndGg7CisrCXN3aXRjaCAobGVuKSB7ICAgICAgICAgICAgLyogYWxsIHRoZSBjYXNlIHN0YXRlbWVudHMgZmFsbCB0aHJvdWdoICovCisrCWNhc2UgMTE6CisrCQljID0gYyArICgodWludDMyX3Qpa1sxMF0gPDwgMjQpOworKwljYXNlIDEwOgorKwkJYyA9IGMgKyAoKHVpbnQzMl90KWtbOV0gPDwgMTYpOworKwljYXNlIDk6CisrCQljID0gYyArICgodWludDMyX3Qpa1s4XSA8PCA4KTsKKysJCS8qIHRoZSBmaXJzdCBieXRlIG9mIGMgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBsZW5ndGggKi8KKysJY2FzZSA4OgorKwkJYiA9IGIgKyAoKHVpbnQzMl90KWtbN10gPDwgMjQpOworKwljYXNlIDc6CisrCQliID0gYiArICgodWludDMyX3Qpa1s2XSA8PCAxNik7CisrCWNhc2UgNjoKKysJCWIgPSBiICsgKCh1aW50MzJfdClrWzVdIDw8IDgpOworKwljYXNlIDU6CisrCQliID0gYiArIGtbNF07CisrCWNhc2UgNDoKKysJCWEgPSBhICsgKCh1aW50MzJfdClrWzNdIDw8IDI0KTsKKysJY2FzZSAzOgorKwkJYSA9IGEgKyAoKHVpbnQzMl90KWtbMl0gPDwgMTYpOworKwljYXNlIDI6CisrCQlhID0gYSArICgodWludDMyX3Qpa1sxXSA8PCA4KTsKKysJY2FzZSAxOgorKwkJYSA9IGEgKyBrWzBdOworKwkJLyogY2FzZSAwOiBub3RoaW5nIGxlZnQgdG8gYWRkICovCisgCX0KKysJbWl4KGEsIGIsIGMpOworIAorLQkvKiBEbyBhIGZldyBmaW5hbCBtaXhlcyBvZiB0aGUgaGFzaCB0byBlbnN1cmUgdGhlIGxhc3QgZmV3CistCSAgIGJ5dGVzIGFyZSB3ZWxsLWluY29ycG9yYXRlZC4gKi8KKy0JaGFzaCBePSBoYXNoID4+IDEzOworLQloYXNoICo9IG07CistCWhhc2ggXj0gaGFzaCA+PiAxNTsKKysJcmV0dXJuIGM7CisrfQorIAorLQlyZXR1cm4gaGFzaDsKKyt1aW50MzJfdCBmZF9vc19oYXNoICggdWludDhfdCAqIHN0cmluZywgc2l6ZV90IGxlbiApCisreworKwlyZXR1cm4gaGFzaF9yamVua2lucyhzdHJpbmcsIGxlbik7IAorIH0gCisgCistLSAKKzEuNy4xMC40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9mcmVlRGlhbWV0ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9mcmVlRGlhbWV0ZXIuY29uZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjU2ZDc0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZpbGVzL2ZyZWVEaWFtZXRlci5jb25mCkBAIC0wLDAgKzEsMjUwIEBACisjIFRoaXMgaXMgYSBzYW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIGZvciBmcmVlRGlhbWV0ZXIgZGFlbW9uLgorCisjIE1vc3Qgb2YgdGhlIG9wdGlvbnMgY2FuIGJlIG9taXR0ZWQsIGFzIHRoZXkgZGVmYXVsdCB0byByZWFzb25hYmxlIHZhbHVlcy4KKyMgT25seSBUTFMtcmVsYXRlZCBvcHRpb25zIG11c3QgYmUgY29uZmlndXJlZCBwcm9wZXJseSBpbiB1c3VhbCBzZXR1cHMuCisKKyMgSXQgaXMgcG9zc2libGUgdG8gdXNlICJpbmNsdWRlIiBrZXl3b3JkIHRvIGltcG9ydCBhZGRpdGlvbmFsIGZpbGVzCisjIGUuZy46IGluY2x1ZGUgIi9ldGMvZnJlZURpYW1ldGVyLmQvKi5jb25mIgorIyBUaGlzIGlzIGV4YWN0bHkgZXF1aXZhbGVudCBhcyBjb3B5ICYgcGFzdGUgdGhlIGNvbnRlbnQgb2YgdGhlIGluY2x1ZGVkIGZpbGUocykgCisjIHdoZXJlIHRoZSAiaW5jbHVkZSIga2V5d29yZCBpcyBmb3VuZC4KKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgIFBlZXIgaWRlbnRpdHkgYW5kIHJlYWxtIAorCisjIFRoZSBEaWFtZXRlciBJZGVudGl0eSBvZiB0aGlzIGRhZW1vbi4KKyMgVGhpcyBtdXN0IGJlIGEgdmFsaWQgRlFETiB0aGF0IHJlc29sdmVzIHRvIHRoZSBsb2NhbCBob3N0LgorIyBEZWZhdWx0OiBob3N0bmFtZSdzIEZRRE4KKyNJZGVudGl0eSA9ICJhYWEua29nYW5laS5mcmVlZGlhbWV0ZXIubmV0IjsKKworIyBUaGUgRGlhbWV0ZXIgUmVhbG0gb2YgdGhpcyBkYWVtb24uCisjIERlZmF1bHQ6IHRoZSBkb21haW4gcGFydCBvZiBJZGVudGl0eSAoYWZ0ZXIgdGhlIGZpcnN0IGRvdCkuCisjUmVhbG0gPSAia29nYW5laS5mcmVlZGlhbWV0ZXIubmV0IjsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjICBUcmFuc3BvcnQgcHJvdG9jb2wgY29uZmlndXJhdGlvbgorCisjIFRoZSBwb3J0IHRoaXMgcGVlciBpcyBsaXN0ZW5pbmcgb24gZm9yIGluY29taW5nIGNvbm5lY3Rpb25zIChUQ1AgYW5kIFNDVFApLgorIyBEZWZhdWx0OiAzODY4LiBVc2UgMCB0byBkaXNhYmxlLgorI1BvcnQgPSAzODY4OworCisjIFRoZSBwb3J0IHRoaXMgcGVlciBpcyBsaXN0ZW5pbmcgb24gZm9yIGluY29taW5nIFRMUy1wcm90ZWN0ZWQgY29ubmVjdGlvbnMgKFRDUCBhbmQgU0NUUCkuCisjIFNlZSBUTFNfb2xkX21ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBUTFMgZmxhdm91cnMuCisjIE5vdGU6IHdlIHVzZSBUTFMvU0NUUCBpbnN0ZWFkIG9mIERUTFMvU0NUUCBhdCB0aGUgbW9tZW50LiBUaGlzIHdpbGwgY2hhbmdlIGluIGZ1dHVyZSB2ZXJzaW9uIG9mIGZyZWVEaWFtZXRlci4KKyMgRGVmYXVsdDogNTg2OC4gVXNlIDAgdG8gZGlzYWJsZS4KKyNTZWNQb3J0ID0gNTg2ODsKKworIyBVc2UgUkZDMzU4OCBtZXRob2QgZm9yIFRMUyBwcm90ZWN0aW9uLCB3aGVyZSBUTFMgaXMgbmVnb2NpYXRlZCBhZnRlciBDRVIvQ0VBIGV4Y2hhbmdlIGlzIGNvbXBsZXRlZCAKKyMgb24gdGhlIHVuc2VjdXJlIGNvbm5lY3Rpb24uIFRoZSBhbHRlcm5hdGl2ZSBpcyBSRkM2NzMzIG1lY2hhbmlzbSwgd2hlcmUgVExTIHByb3RlY3RzIGFsc28gdGhlIAorIyBDRVIvQ0VBIGV4Y2hhbmdlIG9uIGEgZGVkaWNhdGVkIHNlY3VyZSBwb3J0LgorIyBUaGlzIHBhcmFtZXRlciBvbmx5IGFmZmVjdHMgb3V0Z29pbmcgY29ubmVjdGlvbnMuIAorIyBUaGUgc2V0dGluZyBjYW4gYmUgYWxzbyBkZWZpbmVkIHBlci1wZWVyIChzZWUgUGVlcnMgY29uZmlndXJhdGlvbiBzZWN0aW9uKS4KKyMgRGVmYXVsdDogdXNlIFJGQzY3MzMgbWV0aG9kIHdpdGggc2VwYXJhdGUgcG9ydCBmb3IgVExTLgorI1RMU19vbGRfbWV0aG9kOworCisjIERpc2FibGUgdXNlIG9mIFRDUCBwcm90b2NvbCAob25seSBsaXN0ZW4gYW5kIGNvbm5lY3Qgb3ZlciBTQ1RQKQorIyBEZWZhdWx0IDogVENQIGVuYWJsZWQKKyNOb19UQ1A7CisKKyMgRGlzYWJsZSB1c2Ugb2YgU0NUUCBwcm90b2NvbCAob25seSBsaXN0ZW4gYW5kIGNvbm5lY3Qgb3ZlciBUQ1ApCisjIERlZmF1bHQgOiBTQ1RQIGVuYWJsZWQKKyNOb19TQ1RQOworIyBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGlmIGZyZWVEaWFtZXRlciBpcyBjb21waWxlZCB3aXRoIERJU0FCTEVfU0NUUCBvcHRpb24uCisKKyMgUHJlZmVyIFRDUCBpbnN0ZWFkIG9mIFNDVFAgZm9yIGVzdGFibGlzaGluZyBuZXcgY29ubmVjdGlvbnMuCisjIFRoaXMgc2V0dGluZyBtYXkgYmUgb3ZlcndyaXR0ZW4gcGVyIHBlZXIgaW4gcGVlciBjb25maWd1cmF0aW9uIGJsb2NzLgorIyBEZWZhdWx0IDogU0NUUCBpcyBhdHRlbXB0ZWQgZmlyc3QuCisjUHJlZmVyX1RDUDsKKworIyBEZWZhdWx0IG51bWJlciBvZiBzdHJlYW1zIHBlciBTQ1RQIGFzc29jaWF0aW9ucy4KKyMgVGhpcyBzZXR0aW5nIG1heSBiZSBvdmVyd3JpdHRlbiBwZXIgcGVlciBiYXNpcy4KKyMgRGVmYXVsdCA6IDMwIHN0cmVhbXMKKyNTQ1RQX3N0cmVhbXMgPSAzMDsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjICBFbmRwb2ludCBjb25maWd1cmF0aW9uCisKKyMgRGlzYWJsZSB1c2Ugb2YgSVAgYWRkcmVzc2VzIChvbmx5IElQdjYpCisjIERlZmF1bHQgOiBJUCBlbmFibGVkCisjTm9fSVA7CisKKyMgRGlzYWJsZSB1c2Ugb2YgSVB2NiBhZGRyZXNzZXMgKG9ubHkgSVApCisjIERlZmF1bHQgOiBJUHY2IGVuYWJsZWQKKyNOb19JUHY2OworCisjIFNwZWNpZnkgbG9jYWwgYWRkcmVzc2VzIHRoZSBzZXJ2ZXIgbXVzdCBiaW5kIHRvCisjIERlZmF1bHQgOiBsaXN0ZW4gb24gYWxsIGFkZHJlc3NlcyBhdmFpbGFibGUuCisjTGlzdGVuT24gPSAiMjAyLjI0OS4zNy41IjsKKyNMaXN0ZW5PbiA9ICIyMDAxOjIwMDo5MDM6Mjo6MjAyOjEiOworI0xpc3Rlbk9uID0gImZlODA6OjIxYzo1ZmY6ZmU5ODo3ZDYyJWV0aDAiOworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyAgU2VydmVyIGNvbmZpZ3VyYXRpb24KKworIyBIb3cgbWFueSBEaWFtZXRlciBwZWVycyBhcmUgYWxsb3dlZCB0byBiZSBjb25uZWN0aW5nIGF0IHRoZSBzYW1lIHRpbWUgPworIyBUaGlzIHBhcmFtZXRlciBsaW1pdHMgdGhlIG51bWJlciBvZiBpbmNvbWluZyBjb25uZWN0aW9ucyBmcm9tIHRoZSB0aW1lCisjIHRoZSBjb25uZWN0aW9uIGlzIGFjY2VwdGVkIHVudGlsIHRoZSBmaXJzdCBDRVIgaXMgcmVjZWl2ZWQuCisjIERlZmF1bHQ6IDUgdW5pZGVudGlmaWVkIGNsaWVudHMgaW4gcGFyYWxlbC4KKyNUaHJlYWRzUGVyU2VydmVyID0gNTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjICBUTFMgQ29uZmlndXJhdGlvbgorCisjIFRMUyBpcyBtYW5hZ2VkIGJ5IHRoZSBHTlVUTFMgbGlicmFyeSBpbiB0aGUgZnJlZURpYW1ldGVyIGRhZW1vbi4KKyMgWW91IG1heSBmaW5kIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgcGFyYW1ldGVycyBhbmQgc3BlY2lhbCBiZWhhdmlvcnMKKyMgaW4gdGhlIHJlbGV2YW50IGRvY3VtZW50YXRpb24uCisjIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9nbnV0bHMvbWFudWFsLworCisjIENyZWRlbnRpYWxzIG9mIHRoZSBsb2NhbCBwZWVyCisjIFRoZSBYNTA5IGNlcnRpZmljYXRlIGFuZCBwcml2YXRlIGtleSBmaWxlIHRvIHVzZSBmb3IgdGhlIGxvY2FsIHBlZXIuCisjIFRoZSBmaWxlcyBtdXN0IGNvbnRhaW4gUEtDUy0xIGVuY29kZWQgUlNBIGtleSwgaW4gUEVNIGZvcm1hdC4KKyMgKFRoZXNlIHBhcmFtZXRlcnMgYXJlIHBhc3NlZCB0byBnbnV0bHNfY2VydGlmaWNhdGVfc2V0X3g1MDlfa2V5X2ZpbGUgZnVuY3Rpb24pCisjIERlZmF1bHQgOiBOTyBERUZBVUxUCisjVExTX0NyZWQgPSAiPHg1MDkgY2VydGlmIGZpbGUuUEVNPiIgLCAiPHg1MDkgcHJpdmF0ZSBrZXkgZmlsZS5QRU0+IjsKKyNUTFNfQ3JlZCA9ICIvZXRjL3NzbC9jZXJ0cy9mcmVlRGlhbWV0ZXIucGVtIiwgIi9ldGMvc3NsL3ByaXZhdGUvZnJlZURpYW1ldGVyLmtleSI7CisKKyMgQ2VydGlmaWNhdGUgYXV0aG9yaXR5IC8gdHJ1c3QgYW5jaG9ycworIyBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBsaXN0IG9mIHRydXN0ZWQgQ2VydGlmaWNhdGUgQXV0aG9yaXRpZXMgKFBFTSBsaXN0KQorIyAoVGhpcyBwYXJhbWV0ZXIgaXMgcGFzc2VkIHRvIGdudXRsc19jZXJ0aWZpY2F0ZV9zZXRfeDUwOV90cnVzdF9maWxlIGZ1bmN0aW9uKQorIyBUaGUgZGlyZWN0aXZlIGNhbiBhcHBlYXIgc2V2ZXJhbCB0aW1lcyB0byBzcGVjaWZ5IHNldmVyYWwgZmlsZXMuCisjIERlZmF1bHQgOiBHTlVUTFMgZGVmYXVsdCBiZWhhdmlvcgorI1RMU19DQSA9ICI8ZmlsZS5QRU0+IjsKKworIyBDZXJ0aWZpY2F0ZSBSZXZvY2F0aW9uIExpc3QgZmlsZQorIyBUaGUgaW5mb3JtYXRpb24gYWJvdXQgcmV2b2tlZCBjZXJ0aWZpY2F0ZXMuCisjIFRoZSBmaWxlIGNvbnRhaW5zIGEgbGlzdCBvZiB0cnVzdGVkIENSTHMgaW4gUEVNIGZvcm1hdC4gVGhleSBzaG91bGQgaGF2ZSBiZWVuIHZlcmlmaWVkIGJlZm9yZS4gCisjIChUaGlzIHBhcmFtZXRlciBpcyBwYXNzZWQgdG8gZ251dGxzX2NlcnRpZmljYXRlX3NldF94NTA5X2NybF9maWxlIGZ1bmN0aW9uKQorIyBOb3RlOiBvcGVuc3NsIENSTCBmb3JtYXQgbWlnaHQgaGF2ZSBpbnRlcm9wZXJhYmlsaXR5IGlzc3VlIHdpdGggR05VVExTIGZvcm1hdC4KKyMgRGVmYXVsdCA6IEdOVVRMUyBkZWZhdWx0IGJlaGF2aW9yCisjVExTX0NSTCA9ICI8ZmlsZS5QRU0+IjsKKworIyBHTlUgVExTIFByaW9yaXR5IHN0cmluZworIyBUaGlzIHN0cmluZyBhbGxvd3MgdG8gY29uZmlndXJlIHRoZSBiZWhhdmlvciBvZiBHTlVUTFMga2V5IGV4Y2hhbmdlcyAKKyMgYWxnb3JpdGhtcy4gU2VlIGdudXRsc19wcmlvcml0eV9pbml0IGZ1bmN0aW9uIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uLgorIyBZb3Ugc2hvdWxkIGFsc28gcmVmZXIgdG8gdGhlIERpYW1ldGVyIHJlcXVpcmVkIFRMUyBzdXBwb3J0IGhlcmU6CisjICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjczMyNzZWN0aW9uLTEzLjEKKyMgRGVmYXVsdCA6ICJOT1JNQUwiCisjIEV4YW1wbGU6IFRMU19QcmlvID0gIk5PTkU6K1ZFUlMtVExTMS4xOitBRVMtMTI4LUNCQzorUlNBOitTSEExOitDT01QLU5VTEwiOworI1RMU19QcmlvID0gIk5PUk1BTCI7CisKKyMgRGlmZmllLUhlbGxtYW4gcGFyYW1ldGVycyBzaXplCisjIFNldCB0aGUgbnVtYmVyIG9mIGJpdHMgZm9yIGdlbmVyYXRlZCBESCBwYXJhbWV0ZXJzCisjIFZhbGlkIHZhbHVlIHNob3VsZCBiZSA3NjgsIDEwMjQsIDIwNDgsIDMwNzIgb3IgNDA5Ni4KKyMgKFRoaXMgcGFyYW1ldGVyIGlzIHBhc3NlZCB0byBnbnV0bHNfZGhfcGFyYW1zX2dlbmVyYXRlMiBmdW5jdGlvbiwgCisjIGl0IHVzdWFsbHkgc2hvdWxkIG1hdGNoIFJTQSBrZXkgc2l6ZSkKKyMgRGVmYXVsdCA6IDEwMjQKKyNUTFNfREhfQml0cyA9IDEwMjQ7CisKKyMgQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzcGVjaWZ5IGEgZmlsZSB0byBsb2FkIHRoZSBQS0NTIzMgZW5jb2RlZAorIyBESCBwYXJhbWV0ZXJzIGRpcmVjdGx5IGZyb20uIFRoaXMgYWNjZWxlcmF0ZXMgdGhlIGRhZW1vbiBzdGFydCAKKyMgYnV0IGlzIHNsaWdodGx5IGxlc3Mgc2VjdXJlLiBJZiB0aGlzIGZpbGUgaXMgcHJvdmlkZWQsIHRoZQorIyBUTFNfREhfQml0cyBwYXJhbWV0ZXJzIGhhcyBubyBlZmZlY3QuCisjIERlZmF1bHQgOiBubyBkZWZhdWx0LgorI1RMU19ESF9GaWxlID0gIjxmaWxlLlBFTT4iOworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyAgVGltZXJzIGNvbmZpZ3VyYXRpb24KKworIyBUaGUgVGMgdGltZXIgb2YgdGhpcyBwZWVyLgorIyBJdCBpcyB0aGUgZGVsYXkgYmVmb3JlIGEgbmV3IGF0dGVtcHQgaXMgbWFkZSB0byByZWNvbm5lY3QgYSBkaXNjb25uZWN0ZWQgcGVlci4KKyMgVGhlIHZhbHVlIGlzIGV4cHJlc3NlZCBpbiBzZWNvbmRzLiBUaGUgcmVjb21tZW5kZWQgdmFsdWUgaXMgMzAgc2Vjb25kcy4KKyMgRGVmYXVsdDogMzAKKyNUY1RpbWVyID0gMzA7CisKKyMgVGhlIFR3IHRpbWVyIG9mIHRoaXMgcGVlci4KKyMgSXQgaXMgdGhlIGRlbGF5IGJlZm9yZSBhIHdhdGNoZG9nIG1lc3NhZ2UgaXMgc2VudCwgYXMgZGVzY3JpYmVkIGluIFJGQyAzNTM5LgorIyBUaGUgdmFsdWUgaXMgZXhwcmVzc2VkIGluIHNlY29uZHMuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDMwIHNlY29uZHMuIFZhbHVlIG11c3QKKyMgYmUgZ3JlYXRlciBvciBlcXVhbCB0byA2IHNlY29uZHMuIFNlZSBkZXRhaWxzIGluIHRoZSBSRkMuCisjIERlZmF1bHQ6IDMwCisjVHdUaW1lciA9IDMwOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgIEFwcGxpY2F0aW9ucyBjb25maWd1cmF0aW9uCisKKyMgRGlzYWJsZSB0aGUgcmVsYXlpbmcgb2YgRGlhbWV0ZXIgbWVzc2FnZXM/CisjIEZvciBtZXNzYWdlcyBub3QgaGFuZGxlZCBsb2NhbGx5LCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBmb3J3YXJkIHRoZQorIyBtZXNzYWdlIHRvIGFub3RoZXIgcGVlciBpZiBhbnkgaXMgYXZhaWxhYmxlLCBhY2NvcmRpbmcgdG8gdGhlIHJvdXRpbmcgCisjIGFsZ29yaXRobXMuIEluIGFkZGl0aW9uIHRoZSAiMHhmZmZmZmYiIGFwcGxpY2F0aW9uIGlzIGFkdmVydGlzZWQgaW4gQ0VSL0NFQSAKKyMgZXhjaGFuZ2VzLgorIyBEZWZhdWx0OiBSZWxheWluZyBpcyBlbmFibGVkLgorI05vUmVsYXk7CisKKyMgTnVtYmVyIG9mIHNlcnZlciB0aHJlYWRzIHRoYXQgY2FuIGhhbmRsZSBpbmNvbWluZyBtZXNzYWdlcyBhdCB0aGUgc2FtZSB0aW1lLgorIyBEZWZhdWx0OiA0CisjQXBwU2VydlRocmVhZHMgPSA0OworCisjIE90aGVyIGFwcGxpY2F0aW9ucyBhcmUgY29uZmlndXJlZCBieSBsb2FkZWQgZXh0ZW5zaW9ucy4KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjICBFeHRlbnNpb25zIGNvbmZpZ3VyYXRpb24KKworIyAgVGhlIGZyZWVEaWFtZXRlciBmcmFtZXdvcmsgbWVyZWx5IHByb3ZpZGVzIHN1cHBvcnQgZm9yCisjIERpYW1ldGVyIEJhc2UgUHJvdG9jb2wuIFRoZSBzcGVjaWZpYyBhcHBsaWNhdGlvbiBiZWhhdmlvcnMsCisjIGFzIHdlbGwgYXMgYWR2YW5jZWQgZnVuY3Rpb25zLCBhcmUgcHJvdmlkZWQKKyMgYnkgbG9hZGFibGUgZXh0ZW5zaW9ucyAocGx1Zy1pbnMpLgorIyAgVGhlc2UgZXh0ZW5zaW9ucyBtYXkgaW4gYWRkaXRpb24gcmVjZWl2ZSB0aGUgbmFtZSBvZiBhIAorIyBjb25maWd1cmF0aW9uIGZpbGUsIHRoZSBmb3JtYXQgb2Ygd2hpY2ggaXMgZXh0ZW5zaW9uLXNwZWNpZmljLgorIworIyBGb3JtYXQ6CisjTG9hZEV4dGVuc2lvbiA9ICIvcGF0aC90by9leHRlbnNpb24iIFsgOiAiL29wdGlvbmFsL2NvbmZpZ3VyYXRpb24vZmlsZSIgXSA7CisjCisjIEV4YW1wbGVzOgorI0xvYWRFeHRlbnNpb24gPSAiZXh0ZW5zaW9ucy9zYW1wbGUuZmR4IjsKKyNMb2FkRXh0ZW5zaW9uID0gImV4dGVuc2lvbnMvc2FtcGxlLmZkeCI6ImNvbmYvc2FtcGxlLmNvbmYiOworCisjIEV4dGVuc2lvbnMgYXJlIG5hbWVkIGFzIGZvbGxvdzoKKyMgZGljdF8qIGZvciBleHRlbnNpb25zIHRoYXQgYWRkIGNvbnRlbnQgdG8gdGhlIGRpY3Rpb25hcnkgZGVmaW5pdGlvbnMuCisjIGRiZ18qICBmb3IgZXh0ZW5zaW9ucyB1c2VmdWwgb25seSB0byByZXRyaWV2ZSBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBmcmFtZXdvcmsgZXhlY3V0aW9uLgorIyBhY2xfKiAgOiBBY2Nlc3MgY29udHJvbCBsaXN0LCB0byBjb250cm9sIHdoaWNoIHBlZXJzIGFyZSBhbGxvd2VkIHRvIGNvbm5lY3QuCisjIHJ0XyogICA6IHJvdXRpbmcgZXh0ZW5zaW9ucyB0aGF0IGltcGFjdCBob3cgbWVzc2FnZXMgYXJlIGZvcndhcmRlZCB0byBvdGhlciBwZWVycy4KKyMgYXBwXyogIDogYXBwbGljYXRpb25zLCB0aGVzZSBleHRlbnNpb25zIHVzdWFsbHkgcmVnaXN0ZXIgY2FsbGJhY2tzIHRvIGhhbmRsZSBzcGVjaWZpYyBtZXNzYWdlcy4KKyMgdGVzdF8qIDogZHVtbXkgZXh0ZW5zaW9ucyB0aGF0IGFyZSB1c2VmdWwgb25seSBpbiB0ZXN0aW5nIGVudmlyb25tZW50cy4KKworCisjIFRoZSBkYmdfbXNnX2R1bXAuZmR4IGV4dGVuc2lvbiBhbGxvd3MgeW91IHRvIHR3ZWFrIHRoZSB3YXkgZnJlZURpYW1ldGVyIGRpc3BsYXlzIHNvbWUKKyMgaW5mb3JtYXRpb24gYWJvdXQgc29tZSBldmVudHMuIFRoaXMgZXh0ZW5zaW9uIGRvZXMgbm90IGFjdHVhbGx5IHVzZSBhIGNvbmZpZ3VyYXRpb24gZmlsZQorIyBidXQgcmVjZWl2ZXMgZGlyZWN0bHkgYSBwYXJhbWV0ZXIgaW4gdGhlIHN0cmluZyBwYXNzZWQgdG8gdGhlIGV4dGVuc2lvbi4gSGVyZSBhcmUgc29tZSBleGFtcGxlczoKKyMjIExvYWRFeHRlbnNpb24gPSAiZGJnX21zZ19kdW1wcy5mZHgiIDogIjB4MTExMSI7ICMgUmVtb3ZlcyBhbGwgZGVmYXVsdCBob29rcywgdmVyeSBxdWlldCBldmVuIGluIGNhc2Ugb2YgZXJyb3JzLgorIyMgTG9hZEV4dGVuc2lvbiA9ICJkYmdfbXNnX2R1bXBzLmZkeCIgOiAiMHgyMjIyIjsgIyBEaXNwbGF5IGFsbCBldmVudHMgd2l0aCBmZXcgZGV0YWlscy4KKyMjIExvYWRFeHRlbnNpb24gPSAiZGJnX21zZ19kdW1wcy5mZHgiIDogIjB4MDA4MCI7ICMgRHVtcCBjb21wbGV0ZSBpbmZvcm1hdGlvbiBhYm91dCBzZW50IGFuZCByZWNlaXZlZCBtZXNzYWdlcy4KKyMgVGhlIGZvdXIgZGlnaXRzIHJlc3BlY3RpdmVseSBjb250cm9sOiBjb25uZWN0aW9ucywgcm91dGluZyBkZWNpc2lvbnMsIHNlbnQvcmVjZWl2ZWQgbWVzc2FnZXMsIGVycm9ycy4KKyMgVGhlIHZhbHVlcyBmb3IgZWFjaCBkaWdpdCBhcmU6CisjICAwIC0gZGVmYXVsdCAtIGtlZXAgdGhlIGRlZmF1bHQgYmVoYXZpb3IKKyMgIDEgLSBxdWlldCAgIC0gcmVtb3ZlIGFueSBzcGVjaWZpYyBsb2cKKyMgIDIgLSBjb21wYWN0IC0gZGlzcGxheSBvbmx5IGEgc3VtbWFyeSBvZiB0aGUgaW5mb3JtYXRpb24KKyMgIDQgLSBmdWxsICAgIC0gZGlzcGxheSB0aGUgY29tcGxldGUgaW5mb3JtYXRpb24gb24gYSBzaW5nbGUgbG9uZyBsaW5lCisjICA4IC0gdHJlZSAgICAtIGRpc3BsYXkgdGhlIGNvbXBsZXRlIGluZm9ybWF0aW9uIGluIGFuIGVhc2llciB0byByZWFkIGZvcm1hdCBzcGFubmluZyBzZXZlcmFsIGxpbmVzLgorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyAgUGVlcnMgY29uZmlndXJhdGlvbgorCisjICBUaGUgbG9jYWwgc2VydmVyIGxpc3RlbnMgZm9yIGluY29taW5nIGNvbm5lY3Rpb25zLiBCeSBkZWZhdWx0LAorIyBhbGwgdW5rbm93biBjb25uZWN0aW5nIHBlZXJzIGFyZSByZWplY3RlZC4gRXh0ZW5zaW9ucyBjYW4gb3ZlcnJpZGUgdGhpcyBiZWhhdmlvciAoZS5nLiwgYWNsX3dsKS4KKyMgCisjICBJbiBhZGRpdGlvbiB0byBpbmNvbWluZyBjb25uZWN0aW9ucywgdGhlIGxvY2FsIHBlZXIgY2FuCisjIGJlIGNvbmZpZ3VyZWQgdG8gZXN0YWJsaXNoIGFuZCBtYWludGFpbiBjb25uZWN0aW9ucyB0byBzb21lIAorIyBEaWFtZXRlciBub2RlcyBhbmQgYWxsb3cgY29ubmVjdGlvbnMgZnJvbSB0aGVzZSBub2Rlcy4KKyMgIFRoaXMgaXMgYWNoaWV2ZWQgd2l0aCB0aGUgQ29ubmVjdFBlZXIgZGlyZWN0aXZlIGRlc2NyaWJlZCBiZWxvdy4KKyMKKyMgTm90ZSB0aGF0IHRoZSBjb25maWd1cmVkIERpYW1ldGVyIElkZW50aXR5IE1VU1QgbWF0Y2gKKyMgdGhlIGluZm9ybWF0aW9uIHJlY2VpdmVkIGluc2lkZSBDRUEsIG9yIHRoZSBjb25uZWN0aW9uIHdpbGwgYmUgYWJvcnRlZC4KKyMKKyMgRm9ybWF0OgorI0Nvbm5lY3RQZWVyID0gImRpYW1ldGVyaWQiIFsgeyBwYXJhbWV0ZXIxOyBwYXJhbWV0ZXIyOyAuLi59IF0gOworIyBQYXJhbWV0ZXJzIHRoYXQgY2FuIGJlIHNwZWNpZmllZCBpbiB0aGUgcGVlcidzIHBhcmFtZXRlciBsaXN0OgorIyAgTm9fVENQOyBOb19TQ1RQOyBOb19JUDsgTm9fSVB2NjsgUHJlZmVyX1RDUDsgVExTX29sZF9tZXRob2Q7CisjICBOb19UTFM7ICAgICAgICMgYXNzdW1lIHRyYW5zcGFyZW50IHNlY3VyaXR5IGluc3RlYWQgb2YgVExTLiBEVExTIGlzIG5vdCBzdXBwb3J0ZWQgeWV0ICh3aWxsIGNoYW5nZSBpbiBmdXR1cmUgdmVyc2lvbnMpLgorIyAgUG9ydCA9IDU4Njg7ICAjIFRoZSBwb3J0IHRvIGNvbm5lY3QgdG8KKyMgIFRjVGltZXIgPSAzMDsKKyMgIFR3VGltZXIgPSAzMDsKKyMgIENvbm5lY3RUbyA9ICIyMDIuMjQ5LjM3LjUiOworIyAgQ29ubmVjdFRvID0gIjIwMDE6MjAwOjkwMzoyOjoyMDI6MSI7CisjICBUTFNfUHJpbyA9ICJOT1JNQUwiOworIyAgUmVhbG0gPSAicmVhbG0ubmV0IjsgIyBSZWplY3QgdGhlIHBlZXIgaWYgaXQgZG9lcyBub3QgYWR2ZXJ0aXNlIHRoaXMgcmVhbG0uCisjIEV4YW1wbGVzOgorI0Nvbm5lY3RQZWVyID0gImFhYS53aWRlLmFkLmpwIjsKKyNDb25uZWN0UGVlciA9ICJvbGQuZGlhbWV0ZXIuc2VydiIgeyBUY1RpbWVyID0gNjA7IFRMU19vbGRfbWV0aG9kOyBOb19TQ1RQOyBQb3J0PTM4Njg7IH0gOworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9mcmVlZGlhbWV0ZXIuaW5pdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9mcmVlZGlhbWV0ZXIuaW5pdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNjNhNDJhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZpbGVzL2ZyZWVkaWFtZXRlci5pbml0CkBAIC0wLDAgKzEsNzIgQEAKKyMhL2Jpbi9zaAorIworIyMjIEJFR0lOIElOSVQgSU5GTworIyBQcm92aWRlczogICAgICAgICAgZnJlZWRpYW1ldGVyCisjIERlZmF1bHQtU3RhcnQ6ICAgICAyIDMgNCA1CisjIERlZmF1bHQtU3RvcDogICAgICAwIDEgNgorIyBSZXF1aXJlZC1TdGFydDogICAgJHJlbW90ZV9mcyAkc3lzbG9nCisjIFJlcXVpcmVkLVN0b3A6ICAgICAkcmVtb3RlX2ZzICRzeXNsb2cKKyMgU2hvcnQtRGVzY3JpcHRpb246IFN0YXJ0IGZyZWVEaWFtZXRlciBkYWVtb24gYXQgYm9vdCB0aW1lCisjIERlc2NyaXB0aW9uOiAgICAgICBTdGFydCB0aGUgZnJlZURpYW1ldGVyIGRhZW1vbiBhdCBib290IHRpbWUuCisjICAgICAgIGZyZWVEaWFtZXRlciBpcyBhbiBleHRlbnNpYmxlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEaWFtZXRlciBwcm90b2NvbCwKKyMgICAgICAgZGVzaWduZWQgZm9yIEF1dGhlbnRpY2F0aW9uLCBBdXRob3JpemF0aW9uIGFuZCBBY2NvdW50aW5nLiBEaWFtZXRlciBpcworIyAgICAgICBhbiBldm9sdXRpb24gb2YgdGhlIFJBRElVUyBwcm90b2NvbC4KKyMjIyBFTkQgSU5JVCBJTkZPIworREFFTU9OPS91c3IvYmluL2ZyZWVEaWFtZXRlcmQKK0NPTkY9L2V0Yy9mcmVlRGlhbWV0ZXIvZnJlZURpYW1ldGVyLmNvbmYKK05BTUU9ZnJlZWRpYW1ldGVyCitERVNDPSJmcmVlRGlhbWV0ZXIgZGFlbW9uIgorCisuIC9ldGMvaW5pdC5kL2Z1bmN0aW9ucworc3RhcnQoKSB7CisJWyAteCAkREFFTU9OIF0gfHwgZXhpdCA1CisJZWNobyAtbiAkIlN0YXJ0aW5nICREQUVNT046ICIKKwlzdGFydC1zdG9wLWRhZW1vbiAtUyAtYiAteCAke0RBRU1PTn0gJiYgc3VjY2VzcyB8fCBmYWlsdXJlCisJcmV0dmFsPSQ/CisJZWNobyAiIgorCXJldHVybiAkcmV0dmFsCit9CisKK3N0b3AoKSB7CisJZWNobyAtbiAkIlN0b3BwaW5nICRwcm9nOiAiCisJc3RhcnQtc3RvcC1kYWVtb24gLUsgLXggJERBRU1PTgorCXJldHZhbD0kPworCWVjaG8gIiIKKwlyZXR1cm4gJHJldHZhbAorfQorCityZXN0YXJ0KCkgeworCXN0b3AKKwlzbGVlcCAzCisJc3RhcnQKK30KKworcmhfc3RhdHVzKCkgeworCXN0YXR1cyAkREFFTU9OCit9CisKK3JoX3N0YXR1c19xKCkgeworCXJoX3N0YXR1cyA+IC9kZXYvbnVsbCAyPiYxCit9CisKK2Nhc2UgIiQxIiBpbgorICBzdGFydCkKKwlyaF9zdGF0dXNfcSAmJiBleGl0IDAKKwlzdGFydAorCTs7CisgIHN0b3ApCisJcmhfc3RhdHVzX3EgfHwgZXhpdCAwCisJc3RvcAorCTs7CisgIHJlc3RhcnQpCisJcmVzdGFydAorCTs7CisgIHN0YXR1cykKKwlyaF9zdGF0dXMKKwk7OworICAqKQorCWVjaG8gJCJVc2FnZTogJHByb2cge3N0YXJ0fHN0b3B8c3RhdHVzfHJlc3RhcnR9IgorCWV4aXQgMgorZXNhYworCitleGl0ICQ/CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9mcmVlZGlhbWV0ZXIvZmlsZXMvZnJlZWRpYW1ldGVyLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9mcmVlZGlhbWV0ZXIvZmlsZXMvZnJlZWRpYW1ldGVyLnNlcnZpY2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE0NDgxYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9mcmVlZGlhbWV0ZXIuc2VydmljZQpAQCAtMCwwICsxLDExIEBACitbVW5pdF0KK0Rlc2NyaXB0aW9uPWZyZWVkaWFtZXRlciBkYWVtb24KK0FmdGVyPW5ldHdvcmsudGFyZ2V0CisKK1tTZXJ2aWNlXQorVHlwZT1zaW1wbGUKK1BJREZpbGU9L3Zhci9ydW4vZnJlZWRpYW1ldGVyLnBpZAorRXhlY1N0YXJ0PUBCSU5ESVJAL2ZyZWVEaWFtZXRlcmQKKworW0luc3RhbGxdCitXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZpbGVzL2luc3RhbGxfdGVzdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9pbnN0YWxsX3Rlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUxMDM3ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9pbnN0YWxsX3Rlc3QucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorQ01ha2VMaXN0czogYWRkIGFuIG9wdGlvbiB0byBpbnN0YWxsIHRlc3RzCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbT0UgcHRlc3Qgc3BlY2lmaWNdCisKK09yaWdpbmFsIGF1dGhvcjogWWFvIFpoYW8gPHlhby56aGFvQHdpbmRyaXZlci5jb20+CitTaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgorCitkaWZmIC0tZ2l0IGEvdGVzdHMvQ01ha2VMaXN0cy50eHQgYi90ZXN0cy9DTWFrZUxpc3RzLnR4dAoraW5kZXggZGE4ZGExYi4uZGUwNDA1OSAxMDA2NDQKKy0tLSBhL3Rlc3RzL0NNYWtlTGlzdHMudHh0CisrKysgYi90ZXN0cy9DTWFrZUxpc3RzLnR4dAorQEAgLTExMyw0ICsxMTMsOSBAQCBFTkRGT1JFQUNIKCBURVNUICkKKyAjIyMjCisgIyMgSU5TVEFMTCBzZWN0aW9uICMjCisgCistIyB3ZSBkbyBub3QgaW5zdGFsbCB0aGUgdGVzdHMKKysjIGluc3RhbGwgdGhlIHRlc3RzCisrU0VUKElOU1RBTExfVEVTVF9TVUZGSVggICAgICAgL29wdC8ke0ZEX1BST0pFQ1RfTkFNRX0tdGVzdHMgICBDQUNIRSBQQVRIICJEaXJlY3Rvcnkgd2hlcmUgdGhlIHRlc3QgYmluYXJ5IGlzIGluc3RhbGxlZC4iKQorKworK0lOU1RBTEwoVEFSR0VUUyAke1RFU1RfTElTVH0KKysgICAgICAgIFJVTlRJTUUgREVTVElOQVRJT04gJHtJTlNUQUxMX1RFU1RfU1VGRklYfQorKyAgICAgICAgQ09NUE9ORU5UIGZyZWVEaWFtZXRlci1jb21tb24pCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9mcmVlZGlhbWV0ZXIvZmlsZXMvcGFzcy1wdGVzdC1lbnYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9mcmVlZGlhbWV0ZXIvZmlsZXMvcGFzcy1wdGVzdC1lbnYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWE4NTdhZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9wYXNzLXB0ZXN0LWVudi5wYXRjaApAQCAtMCwwICsxLDcyIEBACitmcmVlZGlhbWV0ZXIgcHRlc3QgY2FzZXMgdGVzdG1lc2dfc3RyZXNzLmMgYW5kIHRlc3Rsb2FkZXh0LmMgbmVlZCBsb2FkCitleHRlbnNpb25zIGJvdGggYnVpbGQgdGltZSBhbmQgcnVudGltZS4gVGhlbiB0aGV5IHNlYXJjaCBleHRlbnNpb25zIHdpdGgKK2J1aWxkIGRpcmVjdG9yeSB0aGF0IGNhdXNlcyBydW50aW1lIGZhaWx1cmVzLgorCitQYXNzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGRlZmluZSBydW50aW1lIGV4dGVuc2lvbiBwYXRoLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHB0ZXN0IHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CisKK2RpZmYgLU51ciBmcmVlRGlhbWV0ZXItMS4yLjAub3JpZy90ZXN0cy90ZXN0bG9hZGV4dC5jIGZyZWVEaWFtZXRlci0xLjIuMC90ZXN0cy90ZXN0bG9hZGV4dC5jCistLS0gZnJlZURpYW1ldGVyLTEuMi4wLm9yaWcvdGVzdHMvdGVzdGxvYWRleHQuYwkyMDE0LTAyLTE5IDE3OjMzOjI0Ljc4NTQwNTAzMiArMDgwMAorKysrIGZyZWVEaWFtZXRlci0xLjIuMC90ZXN0cy90ZXN0bG9hZGV4dC5jCTIwMTQtMDItMTkgMjA6MDg6MDMuODcxNDAzOTI0ICswODAwCitAQCAtNDksNyArNDksNyBAQAorIHsKKyAJRElSICpkaXI7CisgCXN0cnVjdCBkaXJlbnQgKmRwOworLQljaGFyIGZ1bGxuYW1lWzUxMl07CisrCWNoYXIgZnVsbG5hbWVbMTAyNF07CisgCWludCBwYXRobGVuOworIAorIAkvKiBGaXJzdCwgaW5pdGlhbGl6ZSB0aGUgZGFlbW9uIG1vZHVsZXMgKi8KK0BAIC01NywxMSArNTcsMTYgQEAKKyAJQ0hFQ0soIDAsIGZkX3F1ZXVlc19pbml0KCkgICk7CisgCUNIRUNLKCAwLCBmZF9tc2dfaW5pdCgpICApOworIAlDSEVDSyggMCwgZmRfcnRkaXNwX2luaXQoKSAgKTsKKy0JCisrCisrCWNoYXIgKmV4dF9kaXIgPSBnZXRlbnYoIkVYVEVOU0lPTlNfRElSIik7CisrCWlmIChleHRfZGlyKQorKwkJcGF0aGxlbiA9IHNucHJpbnRmKGZ1bGxuYW1lLCBzaXplb2YoZnVsbG5hbWUpLCAiJXMiLCBleHRfZGlyKTsKKysJZWxzZQorKwkJcGF0aGxlbiA9IHNucHJpbnRmKGZ1bGxuYW1lLCBzaXplb2YoZnVsbG5hbWUpLCBCVUlMRF9ESVIgIi9leHRlbnNpb25zLyIpOworKworIAkvKiBGaW5kIGFsbCBleHRlbnNpb25zIHdoaWNoIGhhdmUgYmVlbiBjb21waWxlZCBhbG9uZyB0aGUgdGVzdCAqLworLQlUUkFDRV9ERUJVRyhJTkZPLCAiTG9hZGluZyBmcm9tOiAnJXMnIiwgQlVJTERfRElSICIvZXh0ZW5zaW9ucyIpOworLQlDSEVDSyggMCwgKGRpciA9IG9wZW5kaXIgKEJVSUxEX0RJUiAiL2V4dGVuc2lvbnMiKSkgPT0gTlVMTCA/IDEgOiAwICk7CistCXBhdGhsZW4gPSBzbnByaW50ZihmdWxsbmFtZSwgc2l6ZW9mKGZ1bGxuYW1lKSwgQlVJTERfRElSICIvZXh0ZW5zaW9ucy8iKTsKKysJVFJBQ0VfREVCVUcoSU5GTywgIkxvYWRpbmcgZnJvbTogJyVzJyIsIGZ1bGxuYW1lKTsKKysJQ0hFQ0soIDAsIChkaXIgPSBvcGVuZGlyIChmdWxsbmFtZSkpID09IE5VTEwgPyAxIDogMCApOworIAkKKyAJd2hpbGUgKChkcCA9IHJlYWRkaXIgKGRpcikpICE9IE5VTEwpIHsKKyAJCWNoYXIgKiBkb3QgPSBzdHJyY2hyKGRwLT5kX25hbWUsICcuJyk7CitkaWZmIC1OdXIgZnJlZURpYW1ldGVyLTEuMi4wLm9yaWcvdGVzdHMvdGVzdG1lc2dfc3RyZXNzLmMgZnJlZURpYW1ldGVyLTEuMi4wL3Rlc3RzL3Rlc3RtZXNnX3N0cmVzcy5jCistLS0gZnJlZURpYW1ldGVyLTEuMi4wLm9yaWcvdGVzdHMvdGVzdG1lc2dfc3RyZXNzLmMJMjAxNC0wMi0xOSAxNzozMzoyNC43ODU0MDUwMzIgKzA4MDAKKysrKyBmcmVlRGlhbWV0ZXItMS4yLjAvdGVzdHMvdGVzdG1lc2dfc3RyZXNzLmMJMjAxNC0wMi0xOSAyMDowODowMy45Mjg0MDM5MjQgKzA4MDAKK0BAIC02NywxNSArNjcsMjAgQEAKKyB7CisgCURJUiAqZGlyOworIAlzdHJ1Y3QgZGlyZW50ICpkcDsKKy0JY2hhciBmdWxsbmFtZVs1MTJdOworKwljaGFyIGZ1bGxuYW1lWzEwMjRdOworIAlpbnQgcGF0aGxlbjsKKyAJc3RydWN0IGZkX2xpc3QgYWxsX2V4dGVuc2lvbnMgPSBGRF9MSVNUX0lOSVRJQUxJWkVSKGFsbF9leHRlbnNpb25zKTsKKyAJc3RydWN0IGZkX2xpc3QgZXh0X3dpdGhfZGVwZW5kcyA9IEZEX0xJU1RfSU5JVElBTElaRVIoZXh0X3dpdGhfZGVwZW5kcyk7CisgCisrCWNoYXIgKmV4dF9kaXIgPSBnZXRlbnYoIkVYVEVOU0lPTlNfRElSIik7CisrCWlmIChleHRfZGlyKQorKwkJcGF0aGxlbiA9IHNucHJpbnRmKGZ1bGxuYW1lLCBzaXplb2YoZnVsbG5hbWUpLCAiJXMiLCBleHRfZGlyKTsKKysJZWxzZQorKwkJcGF0aGxlbiA9IHNucHJpbnRmKGZ1bGxuYW1lLCBzaXplb2YoZnVsbG5hbWUpLCBCVUlMRF9ESVIgIi9leHRlbnNpb25zLyIpOworKworIAkvKiBGaW5kIGFsbCBleHRlbnNpb25zIHdoaWNoIGhhdmUgYmVlbiBjb21waWxlZCBhbG9uZyB0aGUgdGVzdCAqLworLQlMT0dfRCgiTG9hZGluZyAlcyouZmR4IGZyb206ICclcyciLCBCVUlMRF9ESVIgIi9leHRlbnNpb25zIiwgcHJlZml4ID86ICIiKTsKKy0JQ0hFQ0soIDAsIChkaXIgPSBvcGVuZGlyIChCVUlMRF9ESVIgIi9leHRlbnNpb25zIikpID09IE5VTEwgPyAxIDogMCApOworLQlwYXRobGVuID0gc25wcmludGYoZnVsbG5hbWUsIHNpemVvZihmdWxsbmFtZSksIEJVSUxEX0RJUiAiL2V4dGVuc2lvbnMvIik7CisrCVRSQUNFX0RFQlVHKElORk8sICJMb2FkaW5nIGZyb206ICclcyciLCBmdWxsbmFtZSk7CisrCUNIRUNLKCAwLCAoZGlyID0gb3BlbmRpciAoZnVsbG5hbWUpKSA9PSBOVUxMID8gMSA6IDAgKTsKKyAJCisgCXdoaWxlICgoZHAgPSByZWFkZGlyIChkaXIpKSAhPSBOVUxMKSB7CisgCQljaGFyICogZG90ID0gc3RycmNocihkcC0+ZF9uYW1lLCAnLicpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZpbGVzL3J1bi1wdGVzdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9ydW4tcHRlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBjYThkOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9ydW4tcHRlc3QKQEAgLTAsMCArMSwxMSBAQAorIyEvYmluL3NoCisKK2lmICEgbHNtb2QgfCBncmVwIC1xIHNjdHAgJiYgISBtb2Rwcm9iZSBzY3RwIDI+L2Rldi9udWxsOyB0aGVuCisgICAgICAgIGVjaG8gIkNvdWxkbid0IGxvYWQga2VybmVsIG1vZHVsZSBzY3RwLiIKKyAgICAgICAgZWNobyAiVGVzdCBjYXNlcyB0ZXN0c2N0cCBhbmQgdGVzdGNueCB3aWxsIGZhaWwuIgorICAgICAgICBlY2hvCitmaQorCitleHBvcnQgRVhURU5TSU9OU19ESVI9JEVYVEVOU0lPTlNfRElSCitjbWFrZSAgLUUgY21ha2VfZWNob19jb2xvciAtLWN5YW4gIlJ1bm5pbmcgdGVzdHMuLi4iCitjdGVzdCAtLWZvcmNlLW5ldy1jdGVzdC1wcm9jZXNzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9mcmVlZGlhbWV0ZXIvZnJlZWRpYW1ldGVyXzEuMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZyZWVkaWFtZXRlcl8xLjIuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTU2ZWI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZyZWVkaWFtZXRlcl8xLjIuMS5iYgpAQCAtMCwwICsxLDEzOCBAQAorU1VNTUFSWSA9ICJBbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGlhbWV0ZXIgcHJvdG9jb2wiCitERVNDUklQVElPTiA9ICJcCitmcmVlRGlhbWV0ZXIgaXMgYW4gb3BlbiBzb3VyY2UgRGlhbWV0ZXIgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24gXAorKFJGQzM1ODgpLiBJdCBwcm92aWRlcyBhbiBleHRlbnNpYmxlIHBsYXRmb3JtIGZvciBkZXBsb3lpbmcgYSBcCitEaWFtZXRlciBuZXR3b3JrIGZvciB5b3VyIEF1dGhlbnRpY2F0aW9uLCBBdXRob3JpemF0aW9uIGFuZCBcCitBY2NvdW50aW5nIG5lZWRzLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5mcmVlZGlhbWV0ZXIubmV0IgorCitERVBFTkRTID0gImZsZXggYmlzb24gY21ha2UtbmF0aXZlIGxpYmdjcnlwdCBnbnV0bHMgbGliaWRuIGxrc2N0cC10b29scyB2aXJ0dWFsL2tlcm5lbCIKKworUEFDS0FHRV9BUkNIID0gIiR7TUFDSElORV9BUkNIfSIKKworZmRfcGtnbmFtZSA9ICJmcmVlRGlhbWV0ZXIiCisKK1NSQ19VUkkgPSAiXAorICAgIGh0dHA6Ly93d3cuZnJlZWRpYW1ldGVyLm5ldC9oZy8ke2ZkX3BrZ25hbWV9L2FyY2hpdmUvJHtQVn0udGFyLmd6O2Rvd25sb2FkZmlsZW5hbWU9JHtmZF9wa2duYW1lfS0ke1BWfS50YXIuZ3ogXAorICAgIGZpbGU6Ly9SZXBsYWNlLW11cm11cmhhc2gtYWxnb3JpdGhtLXdpdGgtUm9iZXJ0LUplbmtpbi1zLWhhLnBhdGNoIFwKKyAgICBmaWxlOi8vZnJlZWRpYW1ldGVyLnNlcnZpY2UgXAorICAgIGZpbGU6Ly9mcmVlZGlhbWV0ZXIuaW5pdCBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdwdGVzdCcsICdmaWxlOi8vaW5zdGFsbF90ZXN0LnBhdGNoIGZpbGU6Ly9ydW4tcHRlc3QgZmlsZTovL3Bhc3MtcHRlc3QtZW52LnBhdGNoJywgJycsIGQpfSBcCisgICAgZmlsZTovL2ZyZWVEaWFtZXRlci5jb25mIFwKKyAgICAiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI2MWIxMDYyYWExNDRiNWYxMmVlZDUxNDYxMWU2ZDY5NyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJiZDdmMTA1NTQyZTk5MDNlNzc2YWEwMDZjNjkzMWMxZjVkM2Q0NzdjYjU5YWYzM2E5MTYyNDIyZWZhNDc3MDk3IgorCitTID0gIiR7V09SS0RJUn0vJHtmZF9wa2duYW1lfS0ke1BWfSIKKworTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT04OTJiMmVkNmFlODE1NDg4YTA4NDE2ZmY3ZWU3NGEzNSIKKworUFRFU1RfUEFUSCA9ICIke2xpYmRpcn0vJHtmZF9wa2duYW1lfS9wdGVzdCIKKworaW5oZXJpdCBjbWFrZSBwa2djb25maWcgdXBkYXRlLXJjLmQgcHRlc3Qgc3lzdGVtZAorCitFWFRSQV9PRUNNQUtFID0gIiBcCisgICAgLURERUZBVUxUX0NPTkZfUEFUSDpQQVRIPSR7c3lzY29uZmRpcn0vJHtmZF9wa2duYW1lfSBcCisgICAgLURCVUlMRF9EQkdfTU9OSVRPUjpCT09MPU9OICBcCisgICAgLURCVUlMRF9URVNUX0FQUDpCT09MPU9OIFwKKyAgICAtREJVSUxEX1RFU1RJTkc6Qk9PTD1PTiBcCisgICAgLURCVUlMRF9BUFBfUkFER1c6Qk9PTD1PTiBcCisgICAgLURCVUlMRF9BUFBfUkVESVJFQ1Q6Qk9PTD1PTiBcCisgICAgLURCVUlMRF9URVNUX0FDQ1Q6Qk9PTD1PTiBcCisgICAgLURCVUlMRF9URVNUX05FVEVNVUw6Qk9PTD1PTiBcCisgICAgLURCVUlMRF9URVNUX1JUX0FOWTpCT09MPU9OIFwKKyAgICAtRElOU1RBTExfTElCUkFSWV9TVUZGSVg6UEFUSD0ke2Jhc2VsaWJ9IFwKKyAgICAtRElOU1RBTExfRVhURU5TSU9OU19TVUZGSVg6UEFUSD0ke2Jhc2VsaWJ9LyR7ZmRfcGtnbmFtZX0gXAorICAgIC1ESU5TVEFMTF9URVNUX1NVRkZJWDpQQVRIPSR7UFRFU1RfUEFUSH0tdGVzdHMgXAorICAgIC1EQ01BS0VfU0tJUF9SUEFUSDpCT09MPU9OIFwKKyIKKyMgSU5TVEFMTF9MSUJSQVJZX1NVRkZJWCBpcyByZWxhdGl2ZSB0byBDTUFLRV9JTlNUQUxMX1BSRUZJWAorIyBzcGVjaWZ5IGl0IG9uIGNtZCBsaW5lIHdpbGwgZml4IHRoZSBTRVQgYnVnIGluIENNYWtlTGlzdC50eHQKKworIyAtREJVSUxEX0FQUF9BQ0NUOkJPT0w9T04gVGhpcyBuZWVkcyBQT1NUR1JFU1FMIHN1cHBvcnQKKworIyAtREJVSUxEX0FQUF9ESUFNRUFQOkJPT0w9T04gIC1EQlVJTERfQVBQX1NJUDpCT09MPU9OIC1EQlVJTERfVEVTVF9TSVA6Qk9PTD1PTgorIyBUaGVzZSBuZWVkIE15U1FMIHN1cHBvcnQKKworIyAtREJVSUxEX0RCR19JTlRFUkFDVElWRTpCT09MPU9OIFRoaXMgbmVlZHMgU1dJRyBzdXBwb3J0CisKKyMgLURBTExfRVhURU5TSU9OUz1PTiB3aWxsIGVuYWJsZSBhbGwKKworRkRfS0VZID89IiR7QlBOfS5rZXkiCitGRF9QRU0gPz0gIiR7QlBOfS5wZW0iCitGRF9DQSA/PSAiJHtCUE59LnBlbSIKK0ZEX0RIX1BFTSA/PSAiJHtCUE59LWRoLnBlbSIKK0ZEX0hPU1ROQU1FID89ICIke01BQ0hJTkV9IgorRkRfUkVBTE0gPz0gIm9wZW5lbWJlZGRlZC5vcmciCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgICMgaW5zdGFsbCB0aGUgc2FtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZXMKKyAgICBpbnN0YWxsIC1kIC1tIDA3NTUgJHtEfSR7c3lzY29uZmRpcn0vJHtmZF9wa2duYW1lfQorICAgIGZvciBpIGluICR7U30vZG9jLyouY29uZi5zYW1wbGU7IGRvCisgICAgICAgIGluc3RhbGwgLW0gMDY0NCAkaSAke0R9JHtzeXNjb25mZGlyfS8ke2ZkX3BrZ25hbWV9LworICAgIGRvbmUKKyAgICBtdiAke0R9JHtzeXNjb25mZGlyfS8ke2ZkX3BrZ25hbWV9L2ZyZWVkaWFtZXRlci5jb25mLnNhbXBsZSBcCisgICAgICAgJHtEfSR7c3lzY29uZmRpcn0vJHtmZF9wa2duYW1lfS9mcmVlRGlhbWV0ZXIuY29uZi5zYW1wbGUKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2ZyZWVEaWFtZXRlcgorCSBpbnN0YWxsICR7V09SS0RJUn0vZnJlZURpYW1ldGVyLmNvbmYgJHtEfSR7c3lzY29uZmRpcn0vJHtmZF9wa2duYW1lfS9mcmVlRGlhbWV0ZXIuY29uZgorCisgICAgIyBpbnN0YWxsIGRhZW1vbiBpbml0IHJlbGF0ZWQgZmlsZXMKKyAgICBpbnN0YWxsIC1kIC1tIDA3NTUgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdAorICAgIGluc3RhbGwgLWQgLW0gMDc1NSAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9jb250cmliL2RlYmlhbi9mcmVlZGlhbWV0ZXItZGFlbW9uLmRlZmF1bHQgXAorICAgICAgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC8ke0JQTn0KKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS9mcmVlZGlhbWV0ZXIuaW5pdCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvJHtCUE59CisKKyAgICAjIGluc3RhbGwgZm9yIHN5c3RlbWQKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9CisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vZnJlZWRpYW1ldGVyLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0KKyAgICBzZWQgLWkgLWUgJ3MsQEJJTkRJUkAsJHtiaW5kaXJ9LGcnICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9Lyouc2VydmljZQorCisgICAgY2F0ID4+ICR7RH0ke3N5c2NvbmZkaXJ9L2ZyZWVEaWFtZXRlci9mcmVlRGlhbWV0ZXIuY29uZiA8PEVPRgorIyMgT0Ugc3BlY2lmaWMgIyMKKyNJZGVudGl0eT0iJHtGRF9IT1NUTkFNRX0iOworSWRlbnRpdHkgPSAiJHtGRF9IT1NUTkFNRX0uJHtGRF9SRUFMTX0iOworUmVhbG0gPSAiJHtGRF9SRUFMTX0iOworUG9ydCA9IDMwODY4OworU2VjUG9ydCA9IDMwODY5OworVExTX0NyZWQgPSAiL2V0Yy9mcmVlRGlhbWV0ZXIvJHtGRF9QRU19IiAsICIvZXRjL2ZyZWVEaWFtZXRlci8ke0ZEX0tFWX0iOworVExTX0NBID0gIi9ldGMvZnJlZURpYW1ldGVyLyR7RkRfQ0F9IjsKK1RMU19ESF9GaWxlID0gIi9ldGMvZnJlZURpYW1ldGVyLyR7RkRfREhfUEVNfSI7CitFT0YKKworICAgICMgY3JlYXRlIHNlbGYgY2VydAorICAgIG9wZW5zc2wgcmVxIC14NTA5IC1jb25maWcgJHtTVEFHSU5HX0RJUl9OQVRJVkV9L2V0Yy9zc2wvb3BlbnNzbC5jbmYgLW5ld2tleSByc2E6NDA5NiAtc2hhMjU2IC1ub2RlcyAtb3V0ICR7RH0ke3N5c2NvbmZkaXJ9L2ZyZWVEaWFtZXRlci8ke0ZEX1BFTX0gLWtleW91dCAke0R9JHtzeXNjb25mZGlyfS9mcmVlRGlhbWV0ZXIvJHtGRF9LRVl9IC1kYXlzIDM2NTAgLXN1YmogJy9DTj0ke0ZEX0hPU1ROQU1FfS4ke0ZEX1JFQUxNfScKKyAgICBvcGVuc3NsIGRocGFyYW0gLW91dCAke0R9JHtzeXNjb25mZGlyfS9mcmVlRGlhbWV0ZXIvJHtGRF9ESF9QRU19IDEwMjQKKworfQorCitkb19pbnN0YWxsX3B0ZXN0KCkgeworICAgIHNlZCAtaSAicyNcKEVYVEVOU0lPTlNfRElSPVwpLipcJCNcMSR7bGliZGlyfS8ke2ZkX3BrZ25hbWV9LyMiICR7RH0ke1BURVNUX1BBVEh9L3J1bi1wdGVzdAorICAgIG12ICR7RH0ke1BURVNUX1BBVEh9LXRlc3RzLyogJHtEfSR7UFRFU1RfUEFUSH0vCisgICAgcm1kaXIgJHtEfSR7UFRFU1RfUEFUSH0tdGVzdHMKKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtCfS90ZXN0cy9DVGVzdFRlc3RmaWxlLmNtYWtlICR7RH0ke1BURVNUX1BBVEh9LworfQorCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS8ke2ZkX3BrZ25hbWV9Ly5kZWJ1Zy8qIgorCisjIGluY2x1ZGUgdGhlIGV4dGVuc2lvbnMgaW4gbWFpbiBwYWNrYWdlCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9LyR7ZmRfcGtnbmFtZX0vKiIKKworUkRFUEVORFNfJHtQTn0gID0gImdsaWItMi4wIGdudXRscyBsaWJpZG4iCitSREVQRU5EU18ke1BOfSArPSAib3BlbnNzbCBvcGVuc3NsLWNvbmYgb3BlbnNzbC1lbmdpbmVzIgorUlJFQ09NTUVORFNfJHtQTn0gKz0gImtlcm5lbC1tb2R1bGUtdGlwYyBrZXJuZWwtbW9kdWxlLXNjdHAiIAorUlJFQ09NTUVORFNfJHtQTn0gKz0gImtlcm5lbC1tb2R1bGUtdWRwLXR1bm5lbCBrZXJuZWwtbW9kdWxlLWlwaXAiCitSREVQRU5EU18ke1BOfS1wdGVzdCA9ICJjbWFrZSIKKworSU5JVFNDUklQVF9QQUNLQUdFUyA9ICIke1BOfSIKK0lOSVRTQ1JJUFRfTkFNRV8ke1BOfSA9ICIke0JQTn0iCitJTklUU0NSSVBUX1BBUkFNUyRfJHtQTn0gPSAic3RhcnQgMzAgLiBzdG9wIDcwIDAgMSAyIDMgNCA1IDYgLiIKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImZyZWVkaWFtZXRlci5zZXJ2aWNlIgorU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgorCitDT05GRklMRVNfJHtQTn0gPSAiJHtzeXNjb25mZGlyfS9mcmVlZGlhbWV0ZXIuY29uZiIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbWRucy9maWxlcy8wMDAxLW5zc19tZG5zLURvLW5vdC1pbmNsdWRlLW5zcy5oLXdoZW4tbGliYy1nbGliYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL21kbnMvZmlsZXMvMDAwMS1uc3NfbWRucy1Eby1ub3QtaW5jbHVkZS1uc3MuaC13aGVuLWxpYmMtZ2xpYmMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODYzODY2ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL21kbnMvZmlsZXMvMDAwMS1uc3NfbWRucy1Eby1ub3QtaW5jbHVkZS1uc3MuaC13aGVuLWxpYmMtZ2xpYmMucGF0Y2gKQEAgLTAsMCArMSw0MiBAQAorRnJvbSBkMzA4MmQyYzYwNmM4MTBhYTBhMzkzNzhiZjFlMDI1NzVhZjNhMzAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMiBGZWIgMjAxOCAyMTo1NDoxMSAtMDgwMAorU3ViamVjdDogW1BBVENIXSBuc3NfbWRuczogRG8gbm90IGluY2x1ZGUgbnNzLmggd2hlbiBsaWJjICE9IGdsaWJjCisKK1Byb3ZpZGUgbnNzX3N0YXR1cyBtYWNybyBpbnN0ZWFkIGZvciBub24tZ2xpYmMgY2FzZQord2hlcmUgbnNzLmggaXMgYWJzZW50CisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIG1ETlNQb3NpeC9uc3NfbWRucy5jIHwgMTMgKysrKysrKysrKysrLQorIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9tRE5TUG9zaXgvbnNzX21kbnMuYyBiL21ETlNQb3NpeC9uc3NfbWRucy5jCitpbmRleCBhZmFkYjNjLi5jNDY5NTg0IDEwMDc1NQorLS0tIGEvbUROU1Bvc2l4L25zc19tZG5zLmMKKysrKyBiL21ETlNQb3NpeC9uc3NfbWRucy5jCitAQCAtMzc4LDggKzM3OCwxOSBAQCBpbml0X2NvbmZpZyAoKTsKKyAKKyAjZGVmaW5lIEVOVE5BTUUgIGhvc3RlbnQKKyAjZGVmaW5lIERBVEFCQVNFICJob3N0cyIKKy0KKysjaWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPG5zcy5oPgorKyNlbHNlCisrZW51bSBuc3Nfc3RhdHVzCisreworKyAgICBOU1NfU1RBVFVTX1RSWUFHQUlOID0gLTIsCisrICAgIE5TU19TVEFUVVNfVU5BVkFJTCwKKysgICAgTlNTX1NUQVRVU19OT1RGT1VORCwKKysgICAgTlNTX1NUQVRVU19TVUNDRVNTLAorKyAgICBOU1NfU1RBVFVTX1JFVFVSTgorK307CisrI2RlZmluZSBORVREQl9JTlRFUk5BTCBOVUxMCisrI2VuZGlmCisgLy8gRm9yIG5zc19zdGF0dXMKKyAjaW5jbHVkZSA8bmV0ZGIuaD4KKyAvLyBGb3IgaG9zdGVudAorLS0gCisyLjE2LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbWRucy9tZG5zXzc2NS41MC45LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbWRucy9tZG5zXzc2NS41MC45LmJiCmluZGV4IDFhODBmN2EuLjlhNzE1MmYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL21kbnMvbWRuc183NjUuNTAuOS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9tZG5zL21kbnNfNzY1LjUwLjkuYmIKQEAgLTksNiArOSw3IEBACiBTUkNfVVJJID0gImh0dHA6Ly9vcGVuc291cmNlLmFwcGxlLmNvbS90YXJiYWxscy9tRE5TUmVzcG9uZGVyL21ETlNSZXNwb25kZXItJHtQVn0udGFyLmd6IFwKICAgICAgICAgICAgZmlsZTovL2J1aWxkLnBhdGNoO3BhdGNoZGlyPS4uIFwKICAgICAgICAgICAgZmlsZTovL21kbnMuc2VydmljZSBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLW5zc19tZG5zLURvLW5vdC1pbmNsdWRlLW5zcy5oLXdoZW4tbGliYy1nbGliYy5wYXRjaDtwYXRjaGRpcj0uLiBcCiAgICAgICAgICAgICIKIAogU1JDX1VSSVttZDVzdW1dID0gIjRhNmJjMTYyODg1MTAwMjYzNGVhMzgzM2E0ZGNhMzE3IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvMDAwMS1CVUctYTI1ODQtRml4LXNubXB0cmFwLXRvLXVzZS1jbGllbnRhZGRyLWZyb20tc25tcC5jLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvMDAwMS1CVUctYTI1ODQtRml4LXNubXB0cmFwLXRvLXVzZS1jbGllbnRhZGRyLWZyb20tc25tcC5jLnBhdGNoCmluZGV4IGIwNWVlYTUuLmIxNGI3NjEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wLzAwMDEtQlVHLWEyNTg0LUZpeC1zbm1wdHJhcC10by11c2UtY2xpZW50YWRkci1mcm9tLXNubXAuYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC8wMDAxLUJVRy1hMjU4NC1GaXgtc25tcHRyYXAtdG8tdXNlLWNsaWVudGFkZHItZnJvbS1zbm1wLmMucGF0Y2gKQEAgLTExLDEzICsxMSwxMyBAQAogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jIHwgMjEgKysrKysrKysrKysrKysrKysrKysrCiAgMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKykKIAotZGlmZiAtLWdpdCBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMKLWluZGV4IDU1ZTM2MTAuLmFjYTY5YWUgMTAwNjQ0Ci0tLS0gYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYwotKysrIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMKLUBAIC0yNTYsNiArMjU2LDI3IEBAIG5ldHNubXBfdWRwNl90cmFuc3BvcnQoc3RydWN0IHNvY2thZGRyX2luNiAqYWRkciwgaW50IGxvY2FsKQotICAgICAgICAgdC0+ZGF0YSA9IE5VTEw7Ci0gICAgICAgICB0LT5kYXRhX2xlbmd0aCA9IDA7CitJbmRleDogbmV0LXNubXAtNS43LjMvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZXQtc25tcC01LjcuMy5vcmlnL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jCisrKysgbmV0LXNubXAtNS43LjMvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMKK0BAIC0yODYsNiArMjg2LDI3IEBAIG5ldHNubXBfdWRwNl90cmFuc3BvcnQoc3RydWN0IHNvY2thZGRyX2kKKyAgICAgICAgIHJldHVybiBOVUxMOworICNlbmRpZiAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCiAgICAgIH0gZWxzZSB7CiArICAgICAgICBjaGFyICAgICAgICAgICAqY2xpZW50X3NvY2tldCA9IE5VTEw7CiArICAgICAgICAvKgpAQCAtNDMsNiArNDMsMyBAQAogICAgICAgICAgLyoKICAgICAgICAgICAqIFRoaXMgaXMgYSBjbGllbnQgc2Vzc2lvbi4gIFNhdmUgdGhlIGFkZHJlc3MgaW4gdGhlCiAgICAgICAgICAgKiB0cmFuc3BvcnQtc3BlY2lmaWMgZGF0YSBwb2ludGVyIGZvciBsYXRlciB1c2UgYnkgbmV0c25tcF91ZHA2X3NlbmQuCi0tLSAKLTIuOS4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wLzAwMDEtUmVtb3ZlLVU2NC10eXBlZGVmLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvMDAwMS1SZW1vdmUtVTY0LXR5cGVkZWYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzMxNGFiMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wLzAwMDEtUmVtb3ZlLVU2NC10eXBlZGVmLnBhdGNoCkBAIC0wLDAgKzEsMjUyNCBAQAorbmV0LXNubXA6IHJlbW92ZSBVNjQgdHlwZWRlZgorCitGcm9tIGdpdDovL2dpdC5jb2RlLnNmLm5ldC9wL25ldC1zbm1wL2NvZGUKKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCAodW5tb2RpZmllZCkKKworU2lnbmVkLW9mZi1ieTogSm9lIFNsYXRlciA8am9lLnNsYXRlckB3aW5kcml2ZXIuY29tPgorCitGcm9tIDQ3N2I0MzA3ZWYxMmRkY2UzYjZhOTIwNWUwYmRkZGJmYjJlMGU5YjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6IFNhdCwgMjAgRmViIDIwMTYgMTg6NTg6MTggLTA4MDAKK1N1YmplY3Q6IFtQQVRDSCAxLzFdIFJlbW92ZSBVNjQgdHlwZWRlZgorCitUaGUgVTY0IHR5cGVkZWYgY29uZmxpY3RzIHdpdGggYSB0eXBlZGVmIGluIGEgUGVybCBoZWFkZXIgZmlsZS4gSGVuY2UKK3JlbW92ZSB0aGUgVTY0IHR5cGVkZWYgZnJvbSB0aGUgTmV0LVNOTVAgaGVhZGVyIGZpbGVzLiBUaGlzIHBhdGNoIGRvZXMKK25vdCBtb2RpZnkgdGhlIE5ldC1TTk1QIEFCSS4KKy0tLQorIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jICAgICAgICAgIHwgIDE2ICstCisgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmggICAgICAgICAgfCAgNDggKy0KKyAuLi4vbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jICB8ICAzMiArLQorIC4uLi9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMgICAgICAgIHwgICAyICstCisgLi4uL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmMgICAgICAgfCAgMjggKy0KKyAuLi4vaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuaCAgICAgICB8ICAyOCArLQorIC4uLi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYyAgICAgIHwgIDU2ICstCisgLi4uL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMgfCAgMjggKy0KKyAuLi4vaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaCB8IDkyMSArKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAuLi4vaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jICAgICAgICAgICAgICAgICB8ICA1NiArLQorIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oICAgICAgICAgICAgIHwgIDQyICstCisgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmggICAgICAgICAgICAgICAgICAgfCAgMzQgKy0KKyBzbm1wbGliL2ludDY0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzOCArLQorIHNubXBsaWIvcmVhZF9jb25maWcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCisgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDE1aW50NjRfY2xpYi5jICAgICAgfCAgMTAgKy0KKyAxNSBmaWxlcyBjaGFuZ2VkLCAyNzQgaW5zZXJ0aW9ucygrKSwgMTA3MSBkZWxldGlvbnMoLSkKKworSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYworKysrIG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jCitAQCAtNzIyLDcgKzcyMiw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHJlY2VpdmVkIG9uIHQKKyAgKi8KKyBpbnQKKyBpZkhDSW5PY3RldHNfZ2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgVTY0ICogaWZIQ0luT2N0ZXRzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppZkhDSW5PY3RldHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlmSENJbk9jdGV0c192YWxfcHRyKTsKK0BAIC03NzksNyArNzc5LDcgQEAgVGhlIG51bWJlciBvZiBwYWNrZXRzLCBkZWxpdmVyZWQgYnkgdGhpcworICAqLworIGludAorIGlmSENJblVjYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDSW5VY2FzdFBrdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlmSENJblVjYXN0UGt0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaWZIQ0luVWNhc3RQa3RzX3ZhbF9wdHIpOworQEAgLTgzOCw3ICs4MzgsNyBAQCBUaGUgbnVtYmVyIG9mIHBhY2tldHMsIGRlbGl2ZXJlZCBieSB0aGlzCisgICovCisgaW50CisgaWZIQ0luTXVsdGljYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaWZIQ0luTXVsdGljYXN0UGt0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlmSENJbk11bHRpY2FzdFBrdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlmSENJbk11bHRpY2FzdFBrdHNfdmFsX3B0cik7CitAQCAtODk3LDcgKzg5Nyw3IEBAIFRoZSBudW1iZXIgb2YgcGFja2V0cywgZGVsaXZlcmVkIGJ5IHRoaXMKKyAgKi8KKyBpbnQKKyBpZkhDSW5Ccm9hZGNhc3RQa3RzX2dldChpZlhUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDSW5Ccm9hZGNhc3RQa3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaWZIQ0luQnJvYWRjYXN0UGt0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaWZIQ0luQnJvYWRjYXN0UGt0c192YWxfcHRyKTsKK0BAIC05NTUsNyArOTU1LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgdHJhbnNtaXR0ZWQgbworICAqLworIGludAorIGlmSENPdXRPY3RldHNfZ2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgIFU2NCAqIGlmSENPdXRPY3RldHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppZkhDT3V0T2N0ZXRzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpZkhDT3V0T2N0ZXRzX3ZhbF9wdHIpOworQEAgLTEwMTMsNyArMTAxMyw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2YgcGFja2V0cyB0aGF0IGhpZ2hlci0KKyAgKi8KKyBpbnQKKyBpZkhDT3V0VWNhc3RQa3RzX2dldChpZlhUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDT3V0VWNhc3RQa3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaWZIQ091dFVjYXN0UGt0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaWZIQ091dFVjYXN0UGt0c192YWxfcHRyKTsKK0BAIC0xMDc0LDcgKzEwNzQsNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIHBhY2tldHMgdGhhdCBoaWdoZXItCisgICovCisgaW50CisgaWZIQ091dE11bHRpY2FzdFBrdHNfZ2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDT3V0TXVsdGljYXN0UGt0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppZkhDT3V0TXVsdGljYXN0UGt0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaWZIQ091dE11bHRpY2FzdFBrdHNfdmFsX3B0cik7CitAQCAtMTEzNCw3ICsxMTM0LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBwYWNrZXRzIHRoYXQgaGlnaGVyLQorICAqLworIGludAorIGlmSENPdXRCcm9hZGNhc3RQa3RzX2dldChpZlhUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaWZIQ091dEJyb2FkY2FzdFBrdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaWZIQ091dEJyb2FkY2FzdFBrdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlmSENPdXRCcm9hZGNhc3RQa3RzX3ZhbF9wdHIpOworSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaAorKysrIG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oCitAQCAtMTQzLDI4ICsxNDMsMjggQEAgY29uZmlnX3JlcXVpcmUoaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZk91dEJyb2FkY2FzdFBrdHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpZkhDSW5PY3RldHNfZ2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDSW5PY3RldHNfdmFsX3B0cik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlmSENJbk9jdGV0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJblVjYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlmSENJblVjYXN0UGt0c192YWxfcHRyKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaWZIQ0luVWNhc3RQa3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ0luTXVsdGljYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZIQ0luTXVsdGljYXN0UGt0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfZ2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0T2N0ZXRzX2dldChpZlhUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlmSENPdXRPY3RldHNfdmFsX3B0cik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppZkhDT3V0T2N0ZXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dFVjYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDT3V0VWNhc3RQa3RzX3ZhbF9wdHIpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaWZIQ091dFVjYXN0UGt0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRNdWx0aWNhc3RQa3RzX2dldChpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZIQ091dE11bHRpY2FzdFBrdHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0QnJvYWRjYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmSENPdXRCcm9hZGNhc3RQa3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaWZMaW5rVXBEb3duVHJhcEVuYWJsZV9nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTI4NCw4NiArMjg0LDg2IEBAIGNvbmZpZ19yZXF1aXJlKGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV8KKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk9jdGV0c19jaGVja192YWx1ZShpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5PY3RldHNfdmFsKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0IGlmSENJbk9jdGV0c192YWwpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ0luT2N0ZXRzX3VuZG9fc2V0dXAoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk9jdGV0c19zZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5PY3RldHNfdmFsKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBpZkhDSW5PY3RldHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk9jdGV0c191bmRvKGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4KTsKKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJblVjYXN0UGt0c19jaGVja192YWx1ZShpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5VY2FzdFBrdHNfdmFsKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0IGlmSENJblVjYXN0UGt0c192YWwpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ0luVWNhc3RQa3RzX3VuZG9fc2V0dXAoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJblVjYXN0UGt0c19zZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5VY2FzdFBrdHNfdmFsKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBpZkhDSW5VY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJblVjYXN0UGt0c191bmRvKGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4KTsKKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk11bHRpY2FzdFBrdHNfY2hlY2tfdmFsdWUoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmSENJbk11bHRpY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk11bHRpY2FzdFBrdHNfdW5kb19zZXR1cChpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk11bHRpY2FzdFBrdHNfc2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5NdWx0aWNhc3RQa3RzX3ZhbCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0IGlmSENJbk11bHRpY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk11bHRpY2FzdFBrdHNfdW5kbyhpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfY2hlY2tfdmFsdWUoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfdW5kb19zZXR1cChpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfc2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5Ccm9hZGNhc3RQa3RzX3ZhbCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0IGlmSENJbkJyb2FkY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfdW5kbyhpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRPY3RldHNfY2hlY2tfdmFsdWUoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDT3V0T2N0ZXRzX3ZhbCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgaWZIQ091dE9jdGV0c192YWwpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dE9jdGV0c191bmRvX3NldHVwKGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dE9jdGV0c19zZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgaWZIQ091dE9jdGV0c192YWwpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBpZkhDT3V0T2N0ZXRzX3ZhbCk7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0T2N0ZXRzX3VuZG8oaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgpOworIAorICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dFVjYXN0UGt0c19jaGVja192YWx1ZShpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0IGlmSENPdXRVY2FzdFBrdHNfdmFsKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBpZkhDT3V0VWNhc3RQa3RzX3ZhbCk7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0VWNhc3RQa3RzX3VuZG9fc2V0dXAoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCk7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0VWNhc3RQa3RzX3NldChpZlhUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDT3V0VWNhc3RQa3RzX3ZhbCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0IGlmSENPdXRVY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRVY2FzdFBrdHNfdW5kbyhpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRNdWx0aWNhc3RQa3RzX2NoZWNrX3ZhbHVlKGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZIQ091dE11bHRpY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRNdWx0aWNhc3RQa3RzX3VuZG9fc2V0dXAoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dE11bHRpY2FzdFBrdHNfc2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0IGlmSENPdXRNdWx0aWNhc3RQa3RzX3ZhbCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBpZkhDT3V0TXVsdGljYXN0UGt0c192YWwpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dE11bHRpY2FzdFBrdHNfdW5kbyhpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCk7CisgCisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0QnJvYWRjYXN0UGt0c19jaGVja192YWx1ZShpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmSENPdXRCcm9hZGNhc3RQa3RzX3ZhbCk7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0QnJvYWRjYXN0UGt0c191bmRvX3NldHVwKGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRCcm9hZGNhc3RQa3RzX3NldChpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDT3V0QnJvYWRjYXN0UGt0c192YWwpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgaWZIQ091dEJyb2FkY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRCcm9hZGNhc3RQa3RzX3VuZG8oaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgpOworIAorSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5ldC1zbm1wLTUuNy4zLm9yaWcvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jCisrKysgbmV0LXNubXAtNS43LjMvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jCitAQCAtNzI5LDcyICs3MjksNzIgQEAgX2lmWFRhYmxlX2dldF9jb2x1bW4oaWZYVGFibGVfcm93cmVxX2N0eAorICAgICAgICAgICogaWZIQ0luT2N0ZXRzKDYpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lGSENJTk9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaWZIQ0luT2N0ZXRzX2dldChyb3dyZXFfY3R4LCAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICByYyA9IGlmSENJbk9jdGV0c19nZXQocm93cmVxX2N0eCwgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKKyAgICAgICAgICAqIGlmSENJblVjYXN0UGt0cyg3KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JRkhDSU5VQ0FTVFBLVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CistICAgICAgICByYyA9IGlmSENJblVjYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpZkhDSW5VY2FzdFBrdHNfZ2V0KHJvd3JlcV9jdHgsIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCisgICAgICAgICAgKiBpZkhDSW5NdWx0aWNhc3RQa3RzKDgpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lGSENJTk1VTFRJQ0FTVFBLVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CistICAgICAgICByYyA9IGlmSENJbk11bHRpY2FzdFBrdHNfZ2V0KHJvd3JlcV9jdHgsIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgIHJjID0gaWZIQ0luTXVsdGljYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKKyAgICAgICAgICAqIGlmSENJbkJyb2FkY2FzdFBrdHMoOSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSUZIQ0lOQlJPQURDQVNUUEtUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaWZIQ0luQnJvYWRjYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpZkhDSW5Ccm9hZGNhc3RQa3RzX2dldChyb3dyZXFfY3R4LCAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorICAgICAgICAgICogaWZIQ091dE9jdGV0cygxMCkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSUZIQ09VVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaWZIQ091dE9jdGV0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpZkhDT3V0T2N0ZXRzX2dldChyb3dyZXFfY3R4LCAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorICAgICAgICAgICogaWZIQ091dFVjYXN0UGt0cygxMSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSUZIQ09VVFVDQVNUUEtUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaWZIQ091dFVjYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpZkhDT3V0VWNhc3RQa3RzX2dldChyb3dyZXFfY3R4LCAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorICAgICAgICAgICogaWZIQ091dE11bHRpY2FzdFBrdHMoMTIpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lGSENPVVRNVUxUSUNBU1RQS1RTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworLSAgICAgICAgcmMgPSBpZkhDT3V0TXVsdGljYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpZkhDT3V0TXVsdGljYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKKyAgICAgICAgICAqIGlmSENPdXRCcm9hZGNhc3RQa3RzKDEzKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JRkhDT1VUQlJPQURDQVNUUEtUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaWZIQ091dEJyb2FkY2FzdFBrdHNfZ2V0KHJvd3JlcV9jdHgsIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgIHJjID0gaWZIQ091dEJyb2FkY2FzdFBrdHNfZ2V0KHJvd3JlcV9jdHgsIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitJbmRleDogbmV0LXNubXAtNS43LjMvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMKKysrKyBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMKK0BAIC0yNjQsNyArMjY0LDcgQEAgX2NhbGN1bGF0ZV9lbnRyaWVzKG5ldHNubXBfc3lzdGVtc3RhdHNfZQorICAgICAgICAgICAgJiYgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVEZSQUdDUkVBVEVTXQorICAgICAgICAgJiYgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVERJU0NBUkRTXSkgeworIAorLSAgICAgICAgVTY0IHRtcCwgdG1wMiwgdG1wMzsKKysgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgdG1wLCB0bXAyLCB0bXAzOworICAgICAgICAgdG1wID0gZW50cnktPnN0YXRzLkhDT3V0UmVxdWVzdHM7CisgICAgICAgICB1NjRJbmNyKCZ0bXAsICZlbnRyeS0+c3RhdHMuSENPdXRGb3J3RGF0YWdyYW1zKTsKKyAgICAgICAgIHU2NEluY3IoJnRtcCwgJmVudHJ5LT5zdGF0cy5IQ091dEZyYWdDcmVhdGVzKTsKK0luZGV4OiBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5ldC1zbm1wLTUuNy4zLm9yaWcvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmMKKysrKyBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuYworQEAgLTI3MCw3ICsyNzAsNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIGlucHV0IElQIGRhdGFncmFtcyByCisgICovCisgaW50CisgaXBJZlN0YXRzSENJblJlY2VpdmVzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDSW5SZWNlaXZlc192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBJZlN0YXRzSENJblJlY2VpdmVzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ0luUmVjZWl2ZXNfdmFsX3B0cik7CitAQCAtMzk1LDcgKzM5NSw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHJlY2VpdmVkIGluIGkKKyAgKi8KKyBpbnQKKyBpcElmU3RhdHNIQ0luT2N0ZXRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcElmU3RhdHNIQ0luT2N0ZXRzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBJZlN0YXRzSENJbk9jdGV0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBJZlN0YXRzSENJbk9jdGV0c192YWxfcHRyKTsKK0BAIC04NjIsNyArODYyLDcgQEAgVGhlIG51bWJlciBvZiBpbnB1dCBkYXRhZ3JhbXMgZm9yIHdoaWNoCisgICovCisgaW50CisgaXBJZlN0YXRzSENJbkZvcndEYXRhZ3JhbXNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcElmU3RhdHNIQ0luRm9yd0RhdGFncmFtc192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppcElmU3RhdHNIQ0luRm9yd0RhdGFncmFtc192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBJZlN0YXRzSENJbkZvcndEYXRhZ3JhbXNfdmFsX3B0cik7CitAQCAtMTI2Nyw3ICsxMjY3LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBkYXRhZ3JhbXMgc3VjY2Vzc2Z1bAorICAqLworIGludAorIGlwSWZTdGF0c0hDSW5EZWxpdmVyc19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcElmU3RhdHNIQ0luRGVsaXZlcnNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDSW5EZWxpdmVyc192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBJZlN0YXRzSENJbkRlbGl2ZXJzX3ZhbF9wdHIpOworQEAgLTEzOTYsNyArMTM5Niw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIHRoYXQgbG8KKyAgKi8KKyBpbnQKKyBpcElmU3RhdHNIQ091dFJlcXVlc3RzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcElmU3RhdHNIQ091dFJlcXVlc3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBJZlN0YXRzSENPdXRSZXF1ZXN0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBJZlN0YXRzSENPdXRSZXF1ZXN0c192YWxfcHRyKTsKK0BAIC0xNTMyLDcgKzE1MzIsNyBAQCBUaGUgbnVtYmVyIG9mIGRhdGFncmFtcyBmb3Igd2hpY2ggdGhpcyBlCisgICovCisgaW50CisgaXBJZlN0YXRzSENPdXRGb3J3RGF0YWdyYW1zX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDT3V0Rm9yd0RhdGFncmFtc192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBJZlN0YXRzSENPdXRGb3J3RGF0YWdyYW1zX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ091dEZvcndEYXRhZ3JhbXNfdmFsX3B0cik7CitAQCAtMTk5OSw3ICsxOTk5LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBJUCBkYXRhZ3JhbXMgdGhhdCB0aAorICAqLworIGludAorIGlwSWZTdGF0c0hDT3V0VHJhbnNtaXRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBJZlN0YXRzSENPdXRUcmFuc21pdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBJZlN0YXRzSENPdXRUcmFuc21pdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwSWZTdGF0c0hDT3V0VHJhbnNtaXRzX3ZhbF9wdHIpOworQEAgLTIxMjMsNyArMjEyMyw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIGluIElQIGRhdGFncmEKKyAgKi8KKyBpbnQKKyBpcElmU3RhdHNIQ091dE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDT3V0T2N0ZXRzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDT3V0T2N0ZXRzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ091dE9jdGV0c192YWxfcHRyKTsKK0BAIC0yMjQ1LDcgKzIyNDUsNyBAQCBUaGUgbnVtYmVyIG9mIElQIG11bHRpY2FzdCBkYXRhZ3JhbXMgcmVjCisgICovCisgaW50CisgaXBJZlN0YXRzSENJbk1jYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBJZlN0YXRzSENJbk1jYXN0UGt0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDSW5NY2FzdFBrdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwSWZTdGF0c0hDSW5NY2FzdFBrdHNfdmFsX3B0cik7CitAQCAtMjM3Miw3ICsyMzcyLDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgcmVjZWl2ZWQgaW4gSQorICAqLworIGludAorIGlwSWZTdGF0c0hDSW5NY2FzdE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcElmU3RhdHNIQ0luTWNhc3RPY3RldHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDSW5NY2FzdE9jdGV0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBJZlN0YXRzSENJbk1jYXN0T2N0ZXRzX3ZhbF9wdHIpOworQEAgLTI0OTcsNyArMjQ5Nyw3IEBAIFRoZSBudW1iZXIgb2YgSVAgbXVsdGljYXN0IGRhdGFncmFtcyB0cmEKKyAgKi8KKyBpbnQKKyBpcElmU3RhdHNIQ091dE1jYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDT3V0TWNhc3RQa3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDT3V0TWNhc3RQa3RzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ091dE1jYXN0UGt0c192YWxfcHRyKTsKK0BAIC0yNjIxLDcgKzI2MjEsNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIG9jdGV0cyB0cmFuc21pdHRlZCBpCisgICovCisgaW50CisgaXBJZlN0YXRzSENPdXRNY2FzdE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBJZlN0YXRzSENPdXRNY2FzdE9jdGV0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDT3V0TWNhc3RPY3RldHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwSWZTdGF0c0hDT3V0TWNhc3RPY3RldHNfdmFsX3B0cik7CitAQCAtMjc0Myw3ICsyNzQzLDcgQEAgVGhlIG51bWJlciBvZiBJUCBicm9hZGNhc3QgZGF0YWdyYW1zIHJlYworICAqLworIGludAorIGlwSWZTdGF0c0hDSW5CY2FzdFBrdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDSW5CY2FzdFBrdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppcElmU3RhdHNIQ0luQmNhc3RQa3RzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ0luQmNhc3RQa3RzX3ZhbF9wdHIpOworQEAgLTI4NjUsNyArMjg2NSw3IEBAIFRoZSBudW1iZXIgb2YgSVAgYnJvYWRjYXN0IGRhdGFncmFtcyB0cmEKKyAgKi8KKyBpbnQKKyBpcElmU3RhdHNIQ091dEJjYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDT3V0QmNhc3RQa3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDT3V0QmNhc3RQa3RzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ091dEJjYXN0UGt0c192YWxfcHRyKTsKK0luZGV4OiBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5ldC1zbm1wLTUuNy4zLm9yaWcvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmgKKysrKyBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuaAorQEAgLTUwLDcgKzUwLDcgQEAgZXh0ZXJuICAgICAgICAgICJDIiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNJblJlY2VpdmVzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENJblJlY2VpdmVzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDSW5SZWNlaXZlc192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c0luT2N0ZXRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTU4LDcgKzU4LDcgQEAgZXh0ZXJuICAgICAgICAgICJDIiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzSW5PY3RldHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpcElmU3RhdHNIQ0luT2N0ZXRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNIQ0luT2N0ZXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSW5IZHJFcnJvcnNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtODcsNyArODcsNyBAQCBleHRlcm4gICAgICAgICAgIkMiIHsKKyAgICAgaW50ICAgICAgICAgICAgCisgICAgICAgICBpcElmU3RhdHNIQ0luRm9yd0RhdGFncmFtc19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDSW5Gb3J3RGF0YWdyYW1zX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzUmVhc21SZXFkc19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTExMSw3ICsxMTEsNyBAQCBleHRlcm4gICAgICAgICAgIkMiIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0luRGVsaXZlcnNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpcElmU3RhdHNIQ0luRGVsaXZlcnNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzSENJbkRlbGl2ZXJzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzT3V0UmVxdWVzdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtMTE5LDcgKzExOSw3IEBAIGV4dGVybiAgICAgICAgICAiQyIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c091dFJlcXVlc3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRSZXF1ZXN0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRSZXF1ZXN0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c091dEZvcndEYXRhZ3JhbXNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcm93cmVxX2N0eCwKK0BAIC0xMjgsNyArMTI4LDcgQEAgZXh0ZXJuICAgICAgICAgICJDIiB7CisgICAgIGludCAgICAgICAgICAgIAorICAgICAgICAgaXBJZlN0YXRzSENPdXRGb3J3RGF0YWdyYW1zX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDT3V0Rm9yd0RhdGFncmFtc192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c091dERpc2NhcmRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTE1Niw3ICsxNTYsNyBAQCBleHRlcm4gICAgICAgICAgIkMiIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzT3V0VHJhbnNtaXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRUcmFuc21pdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNIQ091dFRyYW5zbWl0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c091dE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtMTY0LDcgKzE2NCw3IEBAIGV4dGVybiAgICAgICAgICAiQyIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNPdXRPY3RldHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpcElmU3RhdHNIQ091dE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDT3V0T2N0ZXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSW5NY2FzdFBrdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtMTcyLDcgKzE3Miw3IEBAIGV4dGVybiAgICAgICAgICAiQyIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0luTWNhc3RQa3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENJbk1jYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzSENJbk1jYXN0UGt0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c0luTWNhc3RPY3RldHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKK0BAIC0xODAsNyArMTgwLDcgQEAgZXh0ZXJuICAgICAgICAgICJDIiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNJbk1jYXN0T2N0ZXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENJbk1jYXN0T2N0ZXRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDSW5NY2FzdE9jdGV0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c091dE1jYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtMTg4LDcgKzE4OCw3IEBAIGV4dGVybiAgICAgICAgICAiQyIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNPdXRNY2FzdFBrdHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpcElmU3RhdHNIQ091dE1jYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDT3V0TWNhc3RQa3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzT3V0TWNhc3RPY3RldHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtMTk2LDcgKzE5Niw3IEBAIGV4dGVybiAgICAgICAgICAiQyIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c091dE1jYXN0T2N0ZXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRNY2FzdE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRNY2FzdE9jdGV0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c0luQmNhc3RQa3RzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTIwNCw3ICsyMDQsNyBAQCBleHRlcm4gICAgICAgICAgIkMiIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNJbkJjYXN0UGt0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c0hDSW5CY2FzdFBrdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDSW5CY2FzdFBrdHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpcElmU3RhdHNPdXRCY2FzdFBrdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTIxMiw3ICsyMTIsNyBAQCBleHRlcm4gICAgICAgICAgIkMiIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzT3V0QmNhc3RQa3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRCY2FzdFBrdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNIQ091dEJjYXN0UGt0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgCisgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZV9nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCitJbmRleDogbmV0LXNubXAtNS43LjMvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMKKysrKyBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMKK0BAIC03MjIsMTAgKzcyMiwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ0luUmVjZWl2ZXMoNCkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENJTlJFQ0VJVkVTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ0luUmVjZWl2ZXNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtNzQxLDkgKzc0MSw5IEBAIF9pcElmU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwSWZTdGF0c1RhYmwKKyAgICAgICAgICAqIGlwSWZTdGF0c0hDSW5PY3RldHMoNikvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENJTk9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaXBJZlN0YXRzSENJbk9jdGV0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpcElmU3RhdHNIQ0luT2N0ZXRzX2dldChyb3dyZXFfY3R4LCAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTgxMCwxMCArODEwLDEwIEBAIF9pcElmU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwSWZTdGF0c1RhYmwKKyAgICAgICAgICAqIGlwSWZTdGF0c0hDSW5Gb3J3RGF0YWdyYW1zKDEzKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUElGU1RBVFNIQ0lORk9SV0RBVEFHUkFNUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBJZlN0YXRzSENJbkZvcndEYXRhZ3JhbXNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTg2OSwxMCArODY5LDEwIEBAIF9pcElmU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwSWZTdGF0c1RhYmwKKyAgICAgICAgICAqIGlwSWZTdGF0c0hDSW5EZWxpdmVycygxOSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENJTkRFTElWRVJTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ0luRGVsaXZlcnNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtODg5LDEwICs4ODksMTAgQEAgX2lwSWZTdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBJZlN0YXRzVGFibAorICAgICAgICAgICogaXBJZlN0YXRzSENPdXRSZXF1ZXN0cygyMSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENPVVRSRVFVRVNUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBJZlN0YXRzSENPdXRSZXF1ZXN0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTkwOSwxMCArOTA5LDEwIEBAIF9pcElmU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwSWZTdGF0c1RhYmwKKyAgICAgICAgICAqIGlwSWZTdGF0c0hDT3V0Rm9yd0RhdGFncmFtcygyNCkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENPVVRGT1JXREFUQUdSQU1TOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ091dEZvcndEYXRhZ3JhbXNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtOTc5LDEwICs5NzksMTAgQEAgX2lwSWZTdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBJZlN0YXRzVGFibAorICAgICAgICAgICogaXBJZlN0YXRzSENPdXRUcmFuc21pdHMoMzEpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQSUZTVEFUU0hDT1VUVFJBTlNNSVRTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ091dFRyYW5zbWl0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtOTk5LDkgKzk5OSw5IEBAIF9pcElmU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwSWZTdGF0c1RhYmwKKyAgICAgICAgICAqIGlwSWZTdGF0c0hDT3V0T2N0ZXRzKDMzKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUElGU1RBVFNIQ09VVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaXBJZlN0YXRzSENPdXRPY3RldHNfZ2V0KHJvd3JlcV9jdHgsIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgIHJjID0gaXBJZlN0YXRzSENPdXRPY3RldHNfZ2V0KHJvd3JlcV9jdHgsIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTAxOCwxMCArMTAxOCwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ0luTWNhc3RQa3RzKDM1KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUElGU1RBVFNIQ0lOTUNBU1RQS1RTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ0luTWNhc3RQa3RzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTAzOCwxMCArMTAzOCwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ0luTWNhc3RPY3RldHMoMzcpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQSUZTVEFUU0hDSU5NQ0FTVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBJZlN0YXRzSENJbk1jYXN0T2N0ZXRzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTEwNTgsMTAgKzEwNTgsMTAgQEAgX2lwSWZTdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBJZlN0YXRzVGFibAorICAgICAgICAgICogaXBJZlN0YXRzSENPdXRNY2FzdFBrdHMoMzkpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQSUZTVEFUU0hDT1VUTUNBU1RQS1RTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ091dE1jYXN0UGt0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTA3OCwxMCArMTA3OCwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ091dE1jYXN0T2N0ZXRzKDQxKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUElGU1RBVFNIQ09VVE1DQVNUT0NURVRTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ091dE1jYXN0T2N0ZXRzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTA5OCwxMCArMTA5OCwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ0luQmNhc3RQa3RzKDQzKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUElGU1RBVFNIQ0lOQkNBU1RQS1RTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ0luQmNhc3RQa3RzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTExOCwxMCArMTExOCwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ091dEJjYXN0UGt0cyg0NSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENPVVRCQ0FTVFBLVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwSWZTdGF0c0hDT3V0QmNhc3RQa3RzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0luZGV4OiBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jCisrKysgbmV0LXNubXAtNS43LjMvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYworQEAgLTQ1Miw3ICs0NTIsNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIGlucHV0IElQIGRhdGFncmFtcyByCisgICovCisgaW50CisgaXBTeXN0ZW1TdGF0c0hDSW5SZWNlaXZlc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwU3lzdGVtU3RhdHNIQ0luUmVjZWl2ZXNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppcFN5c3RlbVN0YXRzSENJblJlY2VpdmVzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcFN5c3RlbVN0YXRzSENJblJlY2VpdmVzX3ZhbF9wdHIpOworQEAgLTU3OSw3ICs1NzksNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIG9jdGV0cyByZWNlaXZlZCBpbiBpCisgICovCisgaW50CisgaXBTeXN0ZW1TdGF0c0hDSW5PY3RldHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBTeXN0ZW1TdGF0c0hDSW5PY3RldHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDSW5PY3RldHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwU3lzdGVtU3RhdHNIQ0luT2N0ZXRzX3ZhbF9wdHIpOworQEAgLTEwNTgsNyArMTA1OCw3IEBAIFRoZSBudW1iZXIgb2YgaW5wdXQgZGF0YWdyYW1zIGZvciB3aGljaAorIGludAorIGlwU3lzdGVtU3RhdHNIQ0luRm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luRm9yd0RhdGFncmFtc192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCitAQCAtMTQ3NCw3ICsxNDc0LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBkYXRhZ3JhbXMgc3VjY2Vzc2Z1bAorICAqLworIGludAorIGlwU3lzdGVtU3RhdHNIQ0luRGVsaXZlcnNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcFN5c3RlbVN0YXRzSENJbkRlbGl2ZXJzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDSW5EZWxpdmVyc192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBTeXN0ZW1TdGF0c0hDSW5EZWxpdmVyc192YWxfcHRyKTsKK0BAIC0xNjAyLDcgKzE2MDIsNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIElQIGRhdGFncmFtcyB3aGljaCBsCisgICovCisgaW50CisgaXBTeXN0ZW1TdGF0c0hDT3V0UmVxdWVzdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBTeXN0ZW1TdGF0c0hDT3V0UmVxdWVzdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDT3V0UmVxdWVzdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwU3lzdGVtU3RhdHNIQ091dFJlcXVlc3RzX3ZhbF9wdHIpOworQEAgLTE4MDksNyArMTgwOSw3IEBAIFRoZSBudW1iZXIgb2YgZGF0YWdyYW1zIGZvciB3aGljaCB0aGlzIGUKKyBpbnQKKyBpcFN5c3RlbVN0YXRzSENPdXRGb3J3RGF0YWdyYW1zX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dEZvcndEYXRhZ3JhbXNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworQEAgLTIyODgsNyArMjI4OCw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIHRoYXQgdGgKKyAgKi8KKyBpbnQKKyBpcFN5c3RlbVN0YXRzSENPdXRUcmFuc21pdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwU3lzdGVtU3RhdHNIQ091dFRyYW5zbWl0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDT3V0VHJhbnNtaXRzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcFN5c3RlbVN0YXRzSENPdXRUcmFuc21pdHNfdmFsX3B0cik7CitAQCAtMjQxNSw3ICsyNDE1LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgaW4gSVAgZGF0YWdyYQorICAqLworIGludAorIGlwU3lzdGVtU3RhdHNIQ091dE9jdGV0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBTeXN0ZW1TdGF0c0hDT3V0T2N0ZXRzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppcFN5c3RlbVN0YXRzSENPdXRPY3RldHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwU3lzdGVtU3RhdHNIQ091dE9jdGV0c192YWxfcHRyKTsKK0BAIC0yNTM5LDcgKzI1MzksNyBAQCBUaGUgbnVtYmVyIG9mIElQIG11bHRpY2FzdCBkYXRhZ3JhbXMgcmVjCisgICovCisgaW50CisgaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwU3lzdGVtU3RhdHNIQ0luTWNhc3RQa3RzX3ZhbF9wdHIpOworQEAgLTI2NjUsNyArMjY2NSw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHJlY2VpdmVkIGluIEkKKyBpbnQKKyBpcFN5c3RlbVN0YXRzSENJbk1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luTWNhc3RPY3RldHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworQEAgLTI3OTAsNyArMjc5MCw3IEBAIFRoZSBudW1iZXIgb2YgSVAgbXVsdGljYXN0IGRhdGFncmFtcyB0cmEKKyAgKi8KKyBpbnQKKyBpcFN5c3RlbVN0YXRzSENPdXRNY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0UGt0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RQa3RzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcFN5c3RlbVN0YXRzSENPdXRNY2FzdFBrdHNfdmFsX3B0cik7CitAQCAtMjkyMSw3ICsyOTIxLDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgdHJhbnNtaXR0ZWQgaQorIGludAorIGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSENPdXRNY2FzdE9jdGV0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCitAQCAtMzA0Niw3ICszMDQ2LDcgQEAgVGhlIG51bWJlciBvZiBJUCBicm9hZGNhc3QgZGF0YWdyYW1zIHJlYworICAqLworIGludAorIGlwU3lzdGVtU3RhdHNIQ0luQmNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwU3lzdGVtU3RhdHNIQ0luQmNhc3RQa3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwU3lzdGVtU3RhdHNIQ0luQmNhc3RQa3RzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcFN5c3RlbVN0YXRzSENJbkJjYXN0UGt0c192YWxfcHRyKTsKK0BAIC0zMTcwLDcgKzMxNzAsNyBAQCBUaGUgbnVtYmVyIG9mIElQIGJyb2FkY2FzdCBkYXRhZ3JhbXMgdHJhCisgICovCisgaW50CisgaXBTeXN0ZW1TdGF0c0hDT3V0QmNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcFN5c3RlbVN0YXRzSENPdXRCY2FzdFBrdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwU3lzdGVtU3RhdHNIQ091dEJjYXN0UGt0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBTeXN0ZW1TdGF0c0hDT3V0QmNhc3RQa3RzX3ZhbF9wdHIpOworSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZXQtc25tcC01LjcuMy5vcmlnL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKKysrKyBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oCitAQCAtMTQ0LDkzICsxNDQsMjIgQEAgY29uZmlnX3JlcXVpcmUoaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZQorICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgICAqIGZ1bmN0aW9uIHByb3RvdHlwZXMKKyAgICAgICovCistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX3ByZV9yZXF1ZXN0KGlwU3lzdGVtU3RhdHNUYWJsZV9yZWdpc3RyYXRpb24gKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c1RhYmxlX3ByZV9yZXF1ZXN0KGlwU3lzdGVtU3RhdHNUYWJsZV9yZWdpc3RyYXRpb24gKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfY29udGV4dCk7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX3Bvc3RfcmVxdWVzdChpcFN5c3RlbVN0YXRzVGFibGVfcmVnaXN0cmF0aW9uICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNUYWJsZV9wb3N0X3JlcXVlc3QoaXBTeXN0ZW1TdGF0c1RhYmxlX3JlZ2lzdHJhdGlvbiAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfY29udGV4dCwgaW50IHJjKTsKKyAKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eF9pbml0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4X2luaXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp1c2VyX2luaXRfY3R4KTsKKyAgICAgdm9pZAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorICAgICAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHhfY2xlYW51cChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHJvd3JlcV9jdHgpOworIAorICAgICBpcFN5c3RlbVN0YXRzVGFibGVfZGF0YSAqaXBTeXN0ZW1TdGF0c1RhYmxlX2FsbG9jYXRlX2RhdGEodm9pZCk7CisgICAgIHZvaWQgICAgICAgICAgICBpcFN5c3RlbVN0YXRzVGFibGVfcmVsZWFzZV9kYXRhKGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogZGF0YSk7CistCistCistICAgICAgICAgCistICAgICAgICAgCistICAgICAgICAgCistICAgICAgICAgCistICAgICAgICAgCistICAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eAorKyAgICBpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eAorICAgICAgICAgKiBpcFN5c3RlbVN0YXRzVGFibGVfcm93X2ZpbmRfYnlfbWliX2luZGV4CisgICAgICAgICAoaXBTeXN0ZW1TdGF0c1RhYmxlX21pYl9pbmRleCAqIG1pYl9pZHgpOworIAorQEAgLTI2NSwyMjYgKzE5NCw1MCBAQCBjb25maWdfcmVxdWlyZShpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlCisgICAgICAqIGluZGV4ZXMKKyAgICAgICovCisgCistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0luUmVjZWl2ZXNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNJblJlY2VpdmVzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJblJlY2VpdmVzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luUmVjZWl2ZXNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNIQ0luUmVjZWl2ZXNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSENJblJlY2VpdmVzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luT2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbk9jdGV0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSENJbk9jdGV0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0hDSW5PY3RldHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwU3lzdGVtU3RhdHNIQ0luT2N0ZXRzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNJbkhkckVycm9yc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwU3lzdGVtU3RhdHNIQ0luT2N0ZXRzX3ZhbF9wdHIpOworKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0luSGRyRXJyb3JzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbkhkckVycm9yc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSW5Ob1JvdXRlc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0luTm9Sb3V0ZXNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luTm9Sb3V0ZXNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0luQWRkckVycm9yc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0luQWRkckVycm9yc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5BZGRyRXJyb3JzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNJblVua25vd25Qcm90b3NfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNJblVua25vd25Qcm90b3NfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luVW5rbm93blByb3Rvc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSW5UcnVuY2F0ZWRQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSW5UcnVuY2F0ZWRQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJblRydW5jYXRlZFBrdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0luRm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0luRm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5Gb3J3RGF0YWdyYW1zX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luRm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0hDSW5Gb3J3RGF0YWdyYW1zX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSENJbkZvcndEYXRhZ3JhbXNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c1JlYXNtUmVxZHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNSZWFzbVJlcWRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNSZWFzbVJlcWRzX3ZhbF9wdHIpOworQEAgLTQ5Miw2OTAgKzI0NSwxNDIgQEAgY29uZmlnX3JlcXVpcmUoaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNSZWFzbU9Lc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzUmVhc21GYWlsc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c1JlYXNtRmFpbHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c1JlYXNtRmFpbHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0luRGlzY2FyZHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNJbkRpc2NhcmRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbkRpc2NhcmRzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNJbkRlbGl2ZXJzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSW5EZWxpdmVyc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5EZWxpdmVyc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSENJbkRlbGl2ZXJzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSENJbkRlbGl2ZXJzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0hDSW5EZWxpdmVyc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0UmVxdWVzdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNPdXRSZXF1ZXN0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0UmVxdWVzdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0UmVxdWVzdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNIQ091dFJlcXVlc3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dFJlcXVlc3RzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNPdXROb1JvdXRlc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dE5vUm91dGVzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXROb1JvdXRlc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0Rm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dEZvcndEYXRhZ3JhbXNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZvcndEYXRhZ3JhbXNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0Rm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0hDT3V0Rm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dEZvcndEYXRhZ3JhbXNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c091dERpc2NhcmRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzT3V0RGlzY2FyZHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dERpc2NhcmRzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNPdXRGcmFnUmVxZHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNPdXRGcmFnUmVxZHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZyYWdSZXFkc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0RnJhZ09Lc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dEZyYWdPS3NfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZyYWdPS3NfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZyYWdGYWlsc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dEZyYWdGYWlsc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0RnJhZ0ZhaWxzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNPdXRGcmFnQ3JlYXRlc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dEZyYWdDcmVhdGVzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRGcmFnQ3JlYXRlc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0VHJhbnNtaXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzT3V0VHJhbnNtaXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRUcmFuc21pdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0VHJhbnNtaXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSENPdXRUcmFuc21pdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dFRyYW5zbWl0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzT3V0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRPY3RldHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSENPdXRPY3RldHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dE9jdGV0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSW5NY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNJbk1jYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5NY2FzdFBrdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNIQ0luTWNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luTWNhc3RQa3RzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNJbk1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSW5NY2FzdE9jdGV0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5NY2FzdE9jdGV0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSENJbk1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSENJbk1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdE9jdGV0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0TWNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzT3V0TWNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRNY2FzdFBrdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSENPdXRNY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0UGt0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0TWNhc3RPY3RldHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNPdXRNY2FzdE9jdGV0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0TWNhc3RPY3RldHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RPY3RldHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0T2N0ZXRzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNJbkJjYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0luQmNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbkJjYXN0UGt0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSENJbkJjYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0hDSW5CY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0hDSW5CY2FzdFBrdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c091dEJjYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dEJjYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0QmNhc3RQa3RzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dEJjYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0hDT3V0QmNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSENPdXRCY2FzdFBrdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWVfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNSZWZyZXNoUmF0ZV9nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c1JlZnJlc2hSYXRlX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNSZWZyZXNoUmF0ZV92YWxfcHRyKTsKKy0KKy0KKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW5kZXhlc19zZXRfdGJsX2lkeChpcFN5c3RlbVN0YXRzVGFibGVfbWliX2luZGV4CisrICAgIGludCBpcFN5c3RlbVN0YXRzVGFibGVfaW5kZXhlc19zZXRfdGJsX2lkeChpcFN5c3RlbVN0YXRzVGFibGVfbWliX2luZGV4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRibF9pZHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJUFZlcnNpb25fdmFsKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW5kZXhlc19zZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c1RhYmxlX2luZGV4ZXNfc2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyBpcFN5c3RlbVN0YXRzSVBWZXJzaW9uX3ZhbCk7CisgCistCistCisgICAgIC8qCisgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAgICogU0VUIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucworSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYworKysrIG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jCitAQCAtNjc0LDEwICs2NzQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDSW5SZWNlaXZlcyg0KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENJTlJFQ0VJVkVTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcFN5c3RlbVN0YXRzSENJblJlY2VpdmVzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtNjk0LDEwICs2OTQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDSW5PY3RldHMoNikvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBTWVNURU1TVEFUU0hDSU5PQ1RFVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwU3lzdGVtU3RhdHNIQ0luT2N0ZXRzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0BAIC03NjQsMTAgKzc2NCwxMCBAQCBfaXBTeXN0ZW1TdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBTeXN0ZW1TCisgICAgICAgICAgKiBpcFN5c3RlbVN0YXRzSENJbkZvcndEYXRhZ3JhbXMoMTMpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQU1lTVEVNU1RBVFNIQ0lORk9SV0RBVEFHUkFNUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDSW5Gb3J3RGF0YWdyYW1zX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTgyNCwxMCArODI0LDEwIEBAIF9pcFN5c3RlbVN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcFN5c3RlbVMKKyAgICAgICAgICAqIGlwU3lzdGVtU3RhdHNIQ0luRGVsaXZlcnMoMTkpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQU1lTVEVNU1RBVFNIQ0lOREVMSVZFUlM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwU3lzdGVtU3RhdHNIQ0luRGVsaXZlcnNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0BAIC04NDQsMTAgKzg0NCwxMCBAQCBfaXBTeXN0ZW1TdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBTeXN0ZW1TCisgICAgICAgICAgKiBpcFN5c3RlbVN0YXRzSENPdXRSZXF1ZXN0cygyMSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBTWVNURU1TVEFUU0hDT1VUUkVRVUVTVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwU3lzdGVtU3RhdHNIQ091dFJlcXVlc3RzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0BAIC04NzQsMTAgKzg3NCwxMCBAQCBfaXBTeXN0ZW1TdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBTeXN0ZW1TCisgICAgICAgICAgKiBpcFN5c3RlbVN0YXRzSENPdXRGb3J3RGF0YWdyYW1zKDI0KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENPVVRGT1JXREFUQUdSQU1TOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcFN5c3RlbVN0YXRzSENPdXRGb3J3RGF0YWdyYW1zX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtOTQ0LDEwICs5NDQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDT3V0VHJhbnNtaXRzKDMxKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENPVVRUUkFOU01JVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwU3lzdGVtU3RhdHNIQ091dFRyYW5zbWl0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0BAIC05NjQsMTAgKzk2NCwxMCBAQCBfaXBTeXN0ZW1TdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBTeXN0ZW1TCisgICAgICAgICAgKiBpcFN5c3RlbVN0YXRzSENPdXRPY3RldHMoMzMpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQU1lTVEVNU1RBVFNIQ09VVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDT3V0T2N0ZXRzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTk4NCwxMCArOTg0LDEwIEBAIF9pcFN5c3RlbVN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcFN5c3RlbVMKKyAgICAgICAgICAqIGlwU3lzdGVtU3RhdHNIQ0luTWNhc3RQa3RzKDM1KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENJTk1DQVNUUEtUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTEwMDQsMTAgKzEwMDQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdE9jdGV0cygzNykvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBTWVNURU1TVEFUU0hDSU5NQ0FTVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdE9jdGV0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTEwMjQsMTAgKzEwMjQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RQa3RzKDM5KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENPVVRNQ0FTVFBLVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0UGt0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0BAIC0xMDQ0LDEwICsxMDQ0LDEwIEBAIF9pcFN5c3RlbVN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcFN5c3RlbVMKKyAgICAgICAgICAqIGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0T2N0ZXRzKDQxKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENPVVRNQ0FTVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RPY3RldHNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTEwNjQsMTAgKzEwNjQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDSW5CY2FzdFBrdHMoNDMpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQU1lTVEVNU1RBVFNIQ0lOQkNBU1RQS1RTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcFN5c3RlbVN0YXRzSENJbkJjYXN0UGt0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTA4NCwxMCArMTA4NCwxMCBAQCBfaXBTeXN0ZW1TdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBTeXN0ZW1TCisgICAgICAgICAgKiBpcFN5c3RlbVN0YXRzSENPdXRCY2FzdFBrdHMoNDUpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQU1lTVEVNU1RBVFNIQ09VVEJDQVNUUEtUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDT3V0QmNhc3RQa3RzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9pbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwc3RhdHMuaAorKysrIG5ldC1zbm1wLTUuNy4zL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oCitAQCAtNTgsNDUgKzU4LDQ1IEBAIHR5cGVkZWYgc3RydWN0IG5ldHNubXBfaXBzdGF0c19zIHsKKyAgICAgKiBvdGhlciBjb2x1bW5zLCB3aGVuIHVuZGVybHlpbmcgT1MgZG9lcyBub3QgcHJvdmlkZSB0aGVtLgorICAgICAqIEFsd2F5cyBmaWxsIGF0IGxlYXN0IDMyIGJpdHMsIHRoZSB0YWJsZSBpcyBwZXJpb2RpY2FsbHkgcG9sbGVkIC0+IDMyIGJpdAorICAgICAqIG92ZXJmbG93IHNoYWxsIGJlIGRldGVjdGVkIGFuZCA2NCBiaXQgdmFsdWUgc2hvdWxkIGJlIGNvbXB1dGVkIGF1dG9tYXRpY2FsbHkuICovCistICAgVTY0ICAgICAgICAgICAgIEhDSW5SZWNlaXZlczsKKy0gICBVNjQgICAgICAgICAgICAgSENJbk9jdGV0czsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDSW5SZWNlaXZlczsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDSW5PY3RldHM7CisgICAgdV9sb25nICAgICAgICAgIEluSGRyRXJyb3JzOworLSAgIFU2NCAgICAgICAgICAgICBIQ0luTm9Sb3V0ZXM7IAorKyAgIHN0cnVjdCBjb3VudGVyNjQgSENJbk5vUm91dGVzOyAKKyAgICB1X2xvbmcgICAgICAgICAgSW5BZGRyRXJyb3JzOworICAgIHVfbG9uZyAgICAgICAgICBJblVua25vd25Qcm90b3M7CisgICAgdV9sb25nICAgICAgICAgIEluVHJ1bmNhdGVkUGt0czsKKyAgICAKKyAgICAvKiBvcHRpb25hbCwgY2FuIGJlIGNvbXB1dGVkIGZyb20gSENJbk5vUm91dGVzIGFuZCBIQ091dEZvcndEYXRhZ3JhbXMgKi8KKy0gICBVNjQgICAgICAgICAgICAgSENJbkZvcndEYXRhZ3JhbXM7IAorKyAgIHN0cnVjdCBjb3VudGVyNjQgSENJbkZvcndEYXRhZ3JhbXM7IAorICAgIAorICAgIHVfbG9uZyAgICAgICAgICBSZWFzbVJlcWRzOworICAgIHVfbG9uZyAgICAgICAgICBSZWFzbU9LczsKKyAgICB1X2xvbmcgICAgICAgICAgUmVhc21GYWlsczsKKyAgICB1X2xvbmcgICAgICAgICAgSW5EaXNjYXJkczsKKy0gICBVNjQgICAgICAgICAgICAgSENJbkRlbGl2ZXJzOworLSAgIFU2NCAgICAgICAgICAgICBIQ091dFJlcXVlc3RzOworLSAgIFU2NCAgICAgICAgICAgICBIQ091dE5vUm91dGVzOworLSAgIFU2NCAgICAgICAgICAgICBIQ091dEZvcndEYXRhZ3JhbXM7CistICAgVTY0ICAgICAgICAgICAgIEhDT3V0RGlzY2FyZHM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ0luRGVsaXZlcnM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ091dFJlcXVlc3RzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENPdXROb1JvdXRlczsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDT3V0Rm9yd0RhdGFncmFtczsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDT3V0RGlzY2FyZHM7CisgICAgCisgICAgLyogb3B0aW9uYWwsIGNhbiBiZSBjb21wdXRlZCBmcm9tIEhDT3V0RnJhZ09LcyArIEhDT3V0RnJhZ0ZhaWxzKi8KKy0gICBVNjQgICAgICAgICAgICAgSENPdXRGcmFnUmVxZHM7CistICAgVTY0ICAgICAgICAgICAgIEhDT3V0RnJhZ09LczsKKy0gICBVNjQgICAgICAgICAgICAgSENPdXRGcmFnRmFpbHM7CistICAgVTY0ICAgICAgICAgICAgIEhDT3V0RnJhZ0NyZWF0ZXM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ091dEZyYWdSZXFkczsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDT3V0RnJhZ09LczsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDT3V0RnJhZ0ZhaWxzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENPdXRGcmFnQ3JlYXRlczsKKyAgICAKKyAgICAvKiBvcHRpb25hbCwgY2FuIGJlIGNvbXB1dGVkIGZyb20gCisgICAgICogSENPdXRSZXF1ZXN0cyArSENPdXRGb3J3RGF0YWdyYW1zICsgSENPdXRGcmFnQ3JlYXRlcworICAgICAqIC0gSENPdXRGcmFnUmVxZHMgLSBIQ091dE5vUm91dGVzICAtIEhDT3V0RGlzY2FyZHMgKi8KKy0gICBVNjQgICAgICAgICAgICAgSENPdXRUcmFuc21pdHM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ091dFRyYW5zbWl0czsKKyAgICAKKy0gICBVNjQgICAgICAgICAgICAgSENPdXRPY3RldHM7CistICAgVTY0ICAgICAgICAgICAgIEhDSW5NY2FzdFBrdHM7CistICAgVTY0ICAgICAgICAgICAgIEhDSW5NY2FzdE9jdGV0czsKKy0gICBVNjQgICAgICAgICAgICAgSENPdXRNY2FzdFBrdHM7CistICAgVTY0ICAgICAgICAgICAgIEhDT3V0TWNhc3RPY3RldHM7CistICAgVTY0ICAgICAgICAgICAgIEhDSW5CY2FzdFBrdHM7CistICAgVTY0ICAgICAgICAgICAgIEhDT3V0QmNhc3RQa3RzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENPdXRPY3RldHM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ0luTWNhc3RQa3RzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENJbk1jYXN0T2N0ZXRzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENPdXRNY2FzdFBrdHM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ091dE1jYXN0T2N0ZXRzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENJbkJjYXN0UGt0czsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDT3V0QmNhc3RQa3RzOworIAorICAgIC8qIEFycmF5IG9mIGF2YWlsYWJsZSBjb2x1bW5zLiovCisgICAgaW50ICAgICAgICAgICAgIGNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9MQVNUKzFdOworSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaAorKysrIG5ldC1zbm1wLTUuNy4zL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oCitAQCAtNSwzMSArNSwyOSBAQAorIGV4dGVybiAgICAgICAgICAiQyIgeworICNlbmRpZgorIAorLSAgICB0eXBlZGVmIHN0cnVjdCBjb3VudGVyNjQgVTY0OworLQorICNkZWZpbmUgSTY0Q0hBUlNaIDIxCisgCistICAgIHZvaWQgICAgICAgICAgICBkaXZCeTEwKFU2NCwgVTY0ICosIHVuc2lnbmVkIGludCAqKTsKKy0gICAgdm9pZCAgICAgICAgICAgIG11bHRCeTEwKFU2NCwgVTY0ICopOworLSAgICB2b2lkICAgICAgICAgICAgaW5jckJ5VTE2KFU2NCAqLCB1bnNpZ25lZCBpbnQpOworLSAgICB2b2lkICAgICAgICAgICAgaW5jckJ5VTMyKFU2NCAqLCB1bnNpZ25lZCBpbnQpOworKyAgICB2b2lkICAgICAgICAgICAgZGl2QnkxMChzdHJ1Y3QgY291bnRlcjY0LCBzdHJ1Y3QgY291bnRlcjY0ICosIHVuc2lnbmVkIGludCAqKTsKKysgICAgdm9pZCAgICAgICAgICAgIG11bHRCeTEwKHN0cnVjdCBjb3VudGVyNjQsIHN0cnVjdCBjb3VudGVyNjQgKik7CisrICAgIHZvaWQgICAgICAgICAgICBpbmNyQnlVMTYoc3RydWN0IGNvdW50ZXI2NCAqLCB1bnNpZ25lZCBpbnQpOworKyAgICB2b2lkICAgICAgICAgICAgaW5jckJ5VTMyKHN0cnVjdCBjb3VudGVyNjQgKiwgdW5zaWduZWQgaW50KTsKKyAgICAgTkVUU05NUF9JTVBPUlQKKy0gICAgdm9pZCAgICAgICAgICAgIHplcm9VNjQoVTY0ICopOworLSAgICBpbnQgICAgICAgICAgICAgaXNaZXJvVTY0KGNvbnN0IFU2NCAqKTsKKysgICAgdm9pZCAgICAgICAgICAgIHplcm9VNjQoc3RydWN0IGNvdW50ZXI2NCAqKTsKKysgICAgaW50ICAgICAgICAgICAgIGlzWmVyb1U2NChjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICopOworICAgICBORVRTTk1QX0lNUE9SVAorLSAgICB2b2lkICAgICAgICAgICAgcHJpbnRVNjQoY2hhciAqLCBjb25zdCBVNjQgKik7CisrICAgIHZvaWQgICAgICAgICAgICBwcmludFU2NChjaGFyICosIGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKik7CisgICAgIE5FVFNOTVBfSU1QT1JUCistICAgIHZvaWQgICAgICAgICAgICBwcmludEk2NChjaGFyICosIGNvbnN0IFU2NCAqKTsKKy0gICAgaW50ICAgICAgICAgICAgIHJlYWQ2NChVNjQgKiwgY29uc3QgY2hhciAqKTsKKysgICAgdm9pZCAgICAgICAgICAgIHByaW50STY0KGNoYXIgKiwgY29uc3Qgc3RydWN0IGNvdW50ZXI2NCAqKTsKKysgICAgaW50ICAgICAgICAgICAgIHJlYWQ2NChzdHJ1Y3QgY291bnRlcjY0ICosIGNvbnN0IGNoYXIgKik7CisgICAgIE5FVFNOTVBfSU1QT1JUCistICAgIHZvaWQgICAgICAgICAgICB1NjRTdWJ0cmFjdChjb25zdCBVNjQgKiBwdTY0b25lLCBjb25zdCBVNjQgKiBwdTY0dHdvLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogcHU2NG91dCk7CistICAgIHZvaWQgICAgICAgICAgICB1NjRJbmNyKFU2NCAqIHB1NjRvdXQsIGNvbnN0IFU2NCAqIHB1NjRvbmUpOworLSAgICB2b2lkICAgICAgICAgICAgdTY0VXBkYXRlQ291bnRlcihVNjQgKiBwdTY0b3V0LCBjb25zdCBVNjQgKiBwdTY0b25lLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVNjQgKiBwdTY0dHdvKTsKKy0gICAgdm9pZCAgICAgICAgICAgIHU2NENvcHkoVTY0ICogcHU2NG9uZSwgY29uc3QgVTY0ICogcHU2NHR3byk7CisrICAgIHZvaWQgICAgICAgICAgICB1NjRTdWJ0cmFjdChjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0b25lLCBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0dHdvLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqcHU2NG91dCk7CisrICAgIHZvaWQgICAgICAgICAgICB1NjRJbmNyKHN0cnVjdCBjb3VudGVyNjQgKnB1NjRvdXQsIGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKnB1NjRvbmUpOworKyAgICB2b2lkICAgICAgICAgICAgdTY0VXBkYXRlQ291bnRlcihzdHJ1Y3QgY291bnRlcjY0ICpwdTY0b3V0LCBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0b25lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0dHdvKTsKKysgICAgdm9pZCAgICAgICAgICAgIHU2NENvcHkoc3RydWN0IGNvdW50ZXI2NCAqcHU2NG9uZSwgY29uc3Qgc3RydWN0IGNvdW50ZXI2NCAqcHU2NHR3byk7CisgCistICAgIGludCAgICAgICAgICAgICBuZXRzbm1wX2M2NF9jaGVja19mb3JfMzJiaXRfd3JhcChVNjQgKm9sZF92YWwsIFU2NCAqbmV3X3ZhbCwKKysgICAgaW50ICAgICAgICAgICAgIG5ldHNubXBfYzY0X2NoZWNrX2Zvcl8zMmJpdF93cmFwKHN0cnVjdCBjb3VudGVyNjQgKm9sZF92YWwsIHN0cnVjdCBjb3VudGVyNjQgKm5ld192YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWRqdXN0KTsKKyAgICAgTkVUU05NUF9JTVBPUlQKKyAgICAgaW50ICAgICAgICAgICAgIG5ldHNubXBfYzY0X2NoZWNrMzJfYW5kX3VwZGF0ZShzdHJ1Y3QgY291bnRlcjY0ICpwcmV2X3ZhbCwKK0luZGV4OiBuZXQtc25tcC01LjcuMy9zbm1wbGliL2ludDY0LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZXQtc25tcC01LjcuMy5vcmlnL3NubXBsaWIvaW50NjQuYworKysrIG5ldC1zbm1wLTUuNy4zL3NubXBsaWIvaW50NjQuYworQEAgLTMzLDcgKzMzLDcgQEAKKyAgKiBAcGFyYW1bb3V0XSBwdVIgICBSZW1haW5kZXIuCisgICovCisgdm9pZAorLWRpdkJ5MTAoVTY0IHU2NCwgVTY0ICogcHU2NFEsIHVuc2lnbmVkIGludCAqcHVSKQorK2RpdkJ5MTAoc3RydWN0IGNvdW50ZXI2NCB1NjQsIHN0cnVjdCBjb3VudGVyNjQgKnB1NjRRLCB1bnNpZ25lZCBpbnQgKnB1UikKKyB7CisgICAgIHVuc2lnbmVkIGxvbmcgICB1bFQ7CisgICAgIHVuc2lnbmVkIGxvbmcgICB1bFE7CitAQCAtODMsNyArODMsNyBAQCBkaXZCeTEwKFU2NCB1NjQsIFU2NCAqIHB1NjRRLCB1bnNpZ25lZCBpCisgICogQHBhcmFtW291dF0gcHU2NFAgUHJvZHVjdC4KKyAgKi8KKyB2b2lkCistbXVsdEJ5MTAoVTY0IHU2NCwgVTY0ICogcHU2NFApCisrbXVsdEJ5MTAoc3RydWN0IGNvdW50ZXI2NCB1NjQsIHN0cnVjdCBjb3VudGVyNjQgKnB1NjRQKQorIHsKKyAgICAgdW5zaWduZWQgbG9uZyAgIHVsVDsKKyAgICAgdW5zaWduZWQgbG9uZyAgIHVsUDsKK0BAIC0xMzAsNyArMTMwLDcgQEAgbXVsdEJ5MTAoVTY0IHU2NCwgVTY0ICogcHU2NFApCisgICoKKyAgKi8KKyB2b2lkCistaW5jckJ5VTE2KFU2NCAqIHB1NjQsIHVuc2lnbmVkIGludCB1MTYpCisraW5jckJ5VTE2KHN0cnVjdCBjb3VudGVyNjQgKnB1NjQsIHVuc2lnbmVkIGludCB1MTYpCisgeworICAgICBpbmNyQnlVMzIocHU2NCwgdTE2KTsKKyB9CitAQCAtMTQzLDcgKzE0Myw3IEBAIGluY3JCeVUxNihVNjQgKiBwdTY0LCB1bnNpZ25lZCBpbnQgdTE2KQorICAqCisgICovCisgdm9pZAorLWluY3JCeVUzMihVNjQgKiBwdTY0LCB1bnNpZ25lZCBpbnQgdTMyKQorK2luY3JCeVUzMihzdHJ1Y3QgY291bnRlcjY0ICpwdTY0LCB1bnNpZ25lZCBpbnQgdTMyKQorIHsKKyAgICAgdWludDMyX3QgdG1wOworIAorQEAgLTE2MSw3ICsxNjEsNyBAQCBpbmNyQnlVMzIoVTY0ICogcHU2NCwgdW5zaWduZWQgaW50IHUzMikKKyAgKiBAcGFyYW1bb3V0XSBwdTY0b3V0IHB1NjRvbmUgLSBwdTY0dHdvLgorICAqLworIHZvaWQKKy11NjRTdWJ0cmFjdChjb25zdCBVNjQgKiBwdTY0b25lLCBjb25zdCBVNjQgKiBwdTY0dHdvLCBVNjQgKiBwdTY0b3V0KQorK3U2NFN1YnRyYWN0KGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKnB1NjRvbmUsIGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKnB1NjR0d28sIHN0cnVjdCBjb3VudGVyNjQgKnB1NjRvdXQpCisgeworICAgICBpbnQgY2Fycnk7CisgCitAQCAtMTc3LDcgKzE3Nyw3IEBAIHU2NFN1YnRyYWN0KGNvbnN0IFU2NCAqIHB1NjRvbmUsIGNvbnN0IFUKKyAgKiBAcGFyYW1baW4sb3V0XSBwdTY0b3V0IHB1NjRvdXQgKz0gcHU2NG9uZS4KKyAgKi8KKyB2b2lkCistdTY0SW5jcihVNjQgKiBwdTY0b3V0LCBjb25zdCBVNjQgKiBwdTY0b25lKQorK3U2NEluY3Ioc3RydWN0IGNvdW50ZXI2NCAqcHU2NG91dCwgY29uc3Qgc3RydWN0IGNvdW50ZXI2NCAqcHU2NG9uZSkKKyB7CisgICAgIHB1NjRvdXQtPmhpZ2ggPSAodWludDMyX3QpKHB1NjRvdXQtPmhpZ2ggKyBwdTY0b25lLT5oaWdoKTsKKyAgICAgaW5jckJ5VTMyKHB1NjRvdXQsIHB1NjRvbmUtPmxvdyk7CitAQCAtMTkxLDkgKzE5MSw5IEBAIHU2NEluY3IoVTY0ICogcHU2NG91dCwgY29uc3QgVTY0ICogcHU2NG8KKyAgKiBAcGFyYW1bb3V0XSBwdTY0b3V0IHB1NjRvdXQgKz0gKHB1NjRvbmUgLSBwdTY0dHdvKQorICAqLworIHZvaWQKKy11NjRVcGRhdGVDb3VudGVyKFU2NCAqIHB1NjRvdXQsIGNvbnN0IFU2NCAqIHB1NjRvbmUsIGNvbnN0IFU2NCAqIHB1NjR0d28pCisrdTY0VXBkYXRlQ291bnRlcihzdHJ1Y3QgY291bnRlcjY0ICpwdTY0b3V0LCBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0b25lLCBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0dHdvKQorIHsKKy0gICAgVTY0IHRtcDsKKysgICAgc3RydWN0IGNvdW50ZXI2NCB0bXA7CisgCisgICAgIHU2NFN1YnRyYWN0KHB1NjRvbmUsIHB1NjR0d28sICZ0bXApOworICAgICB1NjRJbmNyKHB1NjRvdXQsICZ0bXApOworQEAgLTIwOCw3ICsyMDgsNyBAQCBuZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodTY0Y29weSwgbmV0c25tCisgICogQHBhcmFtW291dF0gcHU2NG9uZSBXaGVyZSB0byBzdG9yZSB0aGUgY29weSAtICpwdTY0b25lID0gKnB1NjR0d28uCisgICovCisgdm9pZAorLXU2NENvcHkoVTY0ICogcHU2NG9uZSwgY29uc3QgVTY0ICogcHU2NHR3bykKKyt1NjRDb3B5KHN0cnVjdCBjb3VudGVyNjQgKnB1NjRvbmUsIGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKnB1NjR0d28pCisgeworICAgICAqcHU2NG9uZSA9ICpwdTY0dHdvOworIH0KK0BAIC0yMjAsNyArMjIwLDcgQEAgdTY0Q29weShVNjQgKiBwdTY0b25lLCBjb25zdCBVNjQgKiBwdTY0dAorICAqIEBwYXJhbVtpbl0gcHU2NCBOdW1iZXIgdG8gYmUgemVyb2VkLgorICAqLworIHZvaWQKKy16ZXJvVTY0KFU2NCAqIHB1NjQpCisremVyb1U2NChzdHJ1Y3QgY291bnRlcjY0ICpwdTY0KQorIHsKKyAgICAgcHU2NC0+bG93ID0gMDsKKyAgICAgcHU2NC0+aGlnaCA9IDA7CitAQCAtMjMyLDcgKzIzMiw3IEBAIHplcm9VNjQoVTY0ICogcHU2NCkKKyAgKiBAcGFyYW1baW5dIHB1NjQgTnVtYmVyIHRvIGJlIGNoZWNrZWQuCisgICovCisgaW50CistaXNaZXJvVTY0KGNvbnN0IFU2NCAqIHB1NjQpCisraXNaZXJvVTY0KGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKnB1NjQpCisgeworICAgICByZXR1cm4gcHU2NC0+bG93ID09IDAgJiYgcHU2NC0+aGlnaCA9PSAwOworIH0KK0BAIC0zOTAsMTAgKzM5MCwxMCBAQCBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUoc3RydWN0IGNvCisgLyoqIENvbnZlcnQgYW4gdW5zaWduZWQgNjQtYml0IG51bWJlciB0byBBU0NJSS4gKi8KKyB2b2lkCisgcHJpbnRVNjQoY2hhciAqYnVmLCAvKiBjaGFyIFtJNjRDSEFSU1orMV07ICovCistICAgICAgICAgY29uc3QgVTY0ICogcHU2NCkKKysgICAgICAgICBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0KQorIHsKKy0gICAgVTY0ICAgICAgICAgICAgIHU2NGE7CistICAgIFU2NCAgICAgICAgICAgICB1NjRiOworKyAgICBzdHJ1Y3QgY291bnRlcjY0IHU2NGE7CisrICAgIHN0cnVjdCBjb3VudGVyNjQgdTY0YjsKKyAKKyAgICAgY2hhciAgICAgICAgICAgIGFSZXNbSTY0Q0hBUlNaICsgMV07CisgICAgIHVuc2lnbmVkIGludCAgICB1OworQEAgLTQxNCw5ICs0MTQsOSBAQCBwcmludFU2NChjaGFyICpidWYsIC8qIGNoYXIgW0k2NENIQVJTWisxCisgLyoqIENvbnZlcnQgYSBzaWduZWQgNjQtYml0IG51bWJlciB0byBBU0NJSS4gKi8KKyB2b2lkCisgcHJpbnRJNjQoY2hhciAqYnVmLCAvKiBjaGFyIFtJNjRDSEFSU1orMV07ICovCistICAgICAgICAgY29uc3QgVTY0ICogcHU2NCkKKysgICAgICAgICBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0KQorIHsKKy0gICAgVTY0ICAgICAgICAgICAgIHU2NGE7CisrICAgIHN0cnVjdCBjb3VudGVyNjQgdTY0YTsKKyAKKyAgICAgaWYgKHB1NjQtPmhpZ2ggJiAweDgwMDAwMDAwKSB7CisgICAgICAgICB1NjRhLmhpZ2ggPSAodWludDMyX3QpIH5wdTY0LT5oaWdoOworQEAgLTQyOSwxMSArNDI5LDExIEBAIHByaW50STY0KGNoYXIgKmJ1ZiwgLyogY2hhciBbSTY0Q0hBUlNaKzEKKyAgICAgfQorIH0KKyAKKy0vKiogQ29udmVydCBhIHNpZ25lZCA2NC1iaXQgaW50ZWdlciBmcm9tIEFTQ0lJIHRvIFU2NC4gKi8KKysvKiogQ29udmVydCBhIHNpZ25lZCA2NC1iaXQgaW50ZWdlciBmcm9tIEFTQ0lJIHRvIHN0cnVjdCBjb3VudGVyNjQuICovCisgaW50CistcmVhZDY0KFU2NCAqIGk2NCwgY29uc3QgY2hhciAqc3RyKQorK3JlYWQ2NChzdHJ1Y3QgY291bnRlcjY0ICppNjQsIGNvbnN0IGNoYXIgKnN0cikKKyB7CistICAgIFU2NCAgICAgICAgICAgICBpNjRwOworKyAgICBzdHJ1Y3QgY291bnRlcjY0IGk2NHA7CisgICAgIHVuc2lnbmVkIGludCAgICB1OworICAgICBpbnQgICAgICAgICAgICAgc2lnbiA9IDA7CisgICAgIGludCAgICAgICAgICAgICBvayA9IDA7CitJbmRleDogbmV0LXNubXAtNS43LjMvc25tcGxpYi9yZWFkX2NvbmZpZy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9zbm1wbGliL3JlYWRfY29uZmlnLmMKKysrKyBuZXQtc25tcC01LjcuMy9zbm1wbGliL3JlYWRfY29uZmlnLmMKK0BAIC0yMjcwLDEwICsyMjcwLDEwIEBAIHJlYWRfY29uZmlnX3JlYWRfbWVtb3J5KGludCB0eXBlLCBjaGFyICoKKyAgICAgICAgIHJldHVybiByZWFkZnJvbTsKKyAKKyAgICAgY2FzZSBBU05fQ09VTlRFUjY0OgorLSAgICAgICAgaWYgKCpsZW4gPCBzaXplb2YoVTY0KSkKKysgICAgICAgIGlmICgqbGVuIDwgc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpKQorICAgICAgICAgICAgIHJldHVybiBOVUxMOworLSAgICAgICAgKmxlbiA9IHNpemVvZihVNjQpOworLSAgICAgICAgcmVhZDY0KChVNjQgKikgZGF0YXB0ciwgcmVhZGZyb20pOworKyAgICAgICAgKmxlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKysgICAgICAgIHJlYWQ2NCgoc3RydWN0IGNvdW50ZXI2NCAqKSBkYXRhcHRyLCByZWFkZnJvbSk7CisgICAgICAgICByZWFkZnJvbSA9IHNraXBfdG9rZW4ocmVhZGZyb20pOworICAgICAgICAgcmV0dXJuIHJlYWRmcm9tOworICAgICB9CitJbmRleDogbmV0LXNubXAtNS43LjMvdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDE1aW50NjRfY2xpYi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTVpbnQ2NF9jbGliLmMKKysrKyBuZXQtc25tcC01LjcuMy90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTVpbnQ2NF9jbGliLmMKK0BAIC0xLDQgKzEsNCBAQAorLS8qIEhFQURFUiBUZXN0aW5nIDY0LWJpdCBpbnRlZ2VyIG9wZXJhdGlvbnMgKFU2NCkuICovCisrLyogSEVBREVSIFRlc3RpbmcgNjQtYml0IGludGVnZXIgb3BlcmF0aW9ucyAoc3RydWN0IGNvdW50ZXI2NCkuICovCisgCisgaW50IGksIGo7CisgY2hhciBidWZbMjJdOworQEAgLTE1LDcgKzE1LDcgQEAgc3RhdGljIGNvbnN0IGludDY0X3QgaW50dmFsW10gPSB7CisgfTsKKyAKKyBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGludHZhbCkvc2l6ZW9mKGludHZhbFswXSk7ICsraSkgeworLSAgICBVNjQgYSwgYjsKKysgICAgc3RydWN0IGNvdW50ZXI2NCBhLCBiOworICAgICBhLmxvdyA9ICh1aW50MzJfdClpbnR2YWxbaV07CisgICAgIGEuaGlnaCA9ICh1aW50MzJfdCkoaW50dmFsW2ldID4+IDMyKTsKKyAgICAgcHJpbnRJNjQoYnVmLCAmYSk7CitAQCAtMjcsNyArMjcsNyBAQCBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGludHZhbCkvc2l6ZW9mKGluCisgCisgZm9yIChpID0gMDsgaSA8IHNpemVvZihpbnR2YWwpL3NpemVvZihpbnR2YWxbMF0pOyArK2kpIHsKKyAgICAgZm9yIChqID0gaTsgaiA8IHNpemVvZihpbnR2YWwpL3NpemVvZihpbnR2YWxbMF0pOyArK2opIHsKKy0gICAgICAgIFU2NCBhLCBiOworKyAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBhLCBiOworICAgICAgICAgdWludDY0X3QgZDsKKyAgICAgICAgIGEubG93ID0gKHVpbnQzMl90KWludHZhbFtpXTsKKyAgICAgICAgIGEuaGlnaCA9ICh1aW50MzJfdCkoaW50dmFsW2ldID4+IDMyKTsKK0BAIC00Myw3ICs0Myw3IEBAIGZvciAoaSA9IDA7IGkgPCBzaXplb2YoaW50dmFsKS9zaXplb2YoaW4KKyAgICAgICAgIAorIGZvciAoaSA9IDA7IGkgPCBzaXplb2YoaW50dmFsKS9zaXplb2YoaW50dmFsWzBdKTsgKytpKSB7CisgICAgIGZvciAoaiA9IGk7IGogPCBzaXplb2YoaW50dmFsKS9zaXplb2YoaW50dmFsWzBdKTsgKytqKSB7CistICAgICAgICBVNjQgYSwgYiwgYzsKKysgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgYSwgYiwgYzsKKyAgICAgICAgIHVpbnQ2NF90IGQ7CisgICAgICAgICBhLmxvdyA9ICh1aW50MzJfdClpbnR2YWxbaV07CisgICAgICAgICBhLmhpZ2ggPSAodWludDMyX3QpKGludHZhbFtpXSA+PiAzMik7CitAQCAtNTgsNyArNTgsNyBAQCBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGludHZhbCkvc2l6ZW9mKGluCisgfQorICAgICAgICAgCisgeworLSAgICBVNjQgb2xkX3ZhbCwgbmV3X3ZhbDsKKysgICAgc3RydWN0IGNvdW50ZXI2NCBvbGRfdmFsLCBuZXdfdmFsOworICAgICBvbGRfdmFsLmxvdyA9IDc7CisgICAgIG9sZF92YWwuaGlnaCA9IDA7CisgICAgIG5ld192YWwgPSBvbGRfdmFsOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvMDAwMS1jb25maWdfb3NfaGVhZGVycy1FcnJvci1GaXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC8wMDAxLWNvbmZpZ19vc19oZWFkZXJzLUVycm9yLUZpeC5wYXRjaAppbmRleCBjNjQwMWZlLi40NDM1OWJlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC8wMDAxLWNvbmZpZ19vc19oZWFkZXJzLUVycm9yLUZpeC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC8wMDAxLWNvbmZpZ19vc19oZWFkZXJzLUVycm9yLUZpeC5wYXRjaApAQCAtMTcsMTEgKzE3LDExIEBACiAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMgfCA0ICsrLS0KICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMgYi9jb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycwotaW5kZXggNzA4YWEwOS4uMGRmMzJjYSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzCi0rKysgYi9jb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycwotQEAgLTQ4Miw4ICs0ODIsOCBAQCB0aGVuCitJbmRleDogbmV0LXNubXAtNS43LjMvY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZXQtc25tcC01LjcuMy5vcmlnL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzCisrKysgbmV0LXNubXAtNS43LjMvY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMKK0BAIC00ODQsOCArNDg0LDggQEAgdGhlbgogICAgICB1bnNldCBhY19jdl9oZWFkZXJfcGtnX2gKICAgICAgbmV0c25tcF9zYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCiAgICAgIG5ldHNubXBfc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKQEAgLTMyLDYgKzMyLDMgQEAKICAgICAgQUNfQ0hFQ0tfSEVBREVSUyhwa2cuaCwKICAgICAgICAgIE5FVFNOTVBfU0VBUkNIX0xJQlMocGtnX2luaXQsIHBrZywKICAJICAgIEFDX0RFRklORShIQVZFX0xJQlBLRywgMSwgW2RlZmluZSBpZiB5b3UgaGF2ZSBCU0QgcGtnLW5nXSkpKQotLS0gCi0xLjguNC4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wLzAwMDEtc25tcGxpYi1VRFBJUHY2LXRyYW5zcG9ydC1BZGQtYS1taXNzaW5nLXJldHVybi1zdGF0ZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wLzAwMDEtc25tcGxpYi1VRFBJUHY2LXRyYW5zcG9ydC1BZGQtYS1taXNzaW5nLXJldHVybi1zdGF0ZS5wYXRjaAppbmRleCA2MjU1ZjdjLi41MjdhYTM5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC8wMDAxLXNubXBsaWItVURQSVB2Ni10cmFuc3BvcnQtQWRkLWEtbWlzc2luZy1yZXR1cm4tc3RhdGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvMDAwMS1zbm1wbGliLVVEUElQdjYtdHJhbnNwb3J0LUFkZC1hLW1pc3NpbmctcmV0dXJuLXN0YXRlLnBhdGNoCkBAIC0xMiwxMSArMTIsMTEgQEAKICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYyB8IDEgKwogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQogCi1kaWZmIC0tZ2l0IGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYwotaW5kZXggMDI5YjE2NC4uMTFjMzliYiAxMDA2NDQKLS0tLSBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jCi0rKysgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYwotQEAgLTI4NSw2ICsyODUsNyBAQCBuZXRzbm1wX3VkcDZfdHJhbnNwb3J0KHN0cnVjdCBzb2NrYWRkcl9pbjYgKmFkZHIsIGludCBsb2NhbCkKK0luZGV4OiBuZXQtc25tcC01LjcuMy9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5ldC1zbm1wLTUuNy4zLm9yaWcvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMKKysrKyBuZXQtc25tcC01LjcuMy9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYworQEAgLTMwNSw2ICszMDUsNyBAQCBuZXRzbm1wX3VkcDZfdHJhbnNwb3J0KHN0cnVjdCBzb2NrYWRkcl9pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybm8sIHN0cmVycm9yKGVycm5vKSkpOwogICAgICAgICAgICAgICAgICBuZXRzbm1wX3NvY2tldGJhc2VfY2xvc2UodCk7CiAgICAgICAgICAgICAgICAgIG5ldHNubXBfdHJhbnNwb3J0X2ZyZWUodCk7CkBAIC0yNCw2ICsyNCwzIEBACiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgLyoKLS0tIAotMi45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvZml4LWxpYnRvb2wtZmluaXNoLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvZml4LWxpYnRvb2wtZmluaXNoLnBhdGNoCmluZGV4IGEzNjBjM2EuLmQyOWJlMzMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wL2ZpeC1saWJ0b29sLWZpbmlzaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC9maXgtbGlidG9vbC1maW5pc2gucGF0Y2gKQEAgLTEwLDExICsxMCwxMSBAQAogCiBTaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CiAtLS0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZS50b3AgYi9NYWtlZmlsZS50b3AKLWluZGV4IDg2MmZiOTQuLmVkN2RjZmMgMTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZS50b3AKLSsrKyBiL01ha2VmaWxlLnRvcAotQEAgLTg2LDcgKzg2LDcgQEAgTElCUkVWSVNJT04gPSAyCitJbmRleDogbmV0LXNubXAtNS43LjMvTWFrZWZpbGUudG9wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9NYWtlZmlsZS50b3AKKysrKyBuZXQtc25tcC01LjcuMy9NYWtlZmlsZS50b3AKK0BAIC04Nyw3ICs4Nyw3IEBAIExJQlJFVklTSU9OID0gMwogIExJQl9MRF9DTUQgICAgICA9ICQoTElCVE9PTCkgLS1tb2RlPWxpbmsgJChMSU5LQ0MpICQoQ0ZMQUdTKSAtcnBhdGggJChsaWJkaXIpIC12ZXJzaW9uLWluZm8gJChMSUJDVVJSRU5UKTokKExJQlJFVklTSU9OKTokKExJQkFHRSkgLW8KICBMSUJfRVhURU5TSU9OICAgPSBsYQogIExJQl9WRVJTSU9OICAgICA9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC9uZXQtc25tcC01LjcuMi1maXgtZW5naW5lQm9vdHMtdmFsdWUtb24tU0lHSFVQLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvbmV0LXNubXAtNS43LjItZml4LWVuZ2luZUJvb3RzLXZhbHVlLW9uLVNJR0hVUC5wYXRjaAppbmRleCBlZmU4MDM4Li5mYmQyNzRiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC9uZXQtc25tcC01LjcuMi1maXgtZW5naW5lQm9vdHMtdmFsdWUtb24tU0lHSFVQLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wL25ldC1zbm1wLTUuNy4yLWZpeC1lbmdpbmVCb290cy12YWx1ZS1vbi1TSUdIVVAucGF0Y2gKQEAgLTEyLDExICsxMiwxMSBAQAogIHNubXBsaWIvc25tcHYzLmMgfCA0ICsrLS0KICAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL2FnZW50L3NubXBkLmMgYi9hZ2VudC9zbm1wZC5jCi1pbmRleCAwNTYwNDhhLi4xMmE3ZWExIDEwMDY0NAotLS0tIGEvYWdlbnQvc25tcGQuYwotKysrIGIvYWdlbnQvc25tcGQuYwotQEAgLTEyNDYsNiArMTI0Niw3IEBAIHJlY2VpdmUodm9pZCkKK0luZGV4OiBuZXQtc25tcC01LjcuMy9hZ2VudC9zbm1wZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9zbm1wZC5jCisrKysgbmV0LXNubXAtNS43LjMvYWdlbnQvc25tcGQuYworQEAgLTEyNTMsNiArMTI1Myw3IEBAIHJlY2VpdmUodm9pZCkKICAJICAgIHNubXBfbG9nKExPR19JTkZPLCAiTkVULVNOTVAgdmVyc2lvbiAlcyByZXN0YXJ0ZWRcbiIsCiAgCQkgICAgIG5ldHNubXBfZ2V0X3ZlcnNpb24oKSk7CiAgICAgICAgICAgICAgdXBkYXRlX2NvbmZpZygpOwpAQCAtMjQsMTEgKzI0LDExIEBACiAgICAgICAgICAgICAgc2VuZF9lYXN5X3RyYXAoU05NUF9UUkFQX0VOVEVSUFJJU0VTUEVDSUZJQywgMyk7CiAgI2lmIEhBVkVfU0lHSE9MRAogICAgICAgICAgICAgIHNpZ3JlbHNlKFNJR0hVUCk7Ci1kaWZmIC0tZ2l0IGEvc25tcGxpYi9zbm1wdjMuYyBiL3NubXBsaWIvc25tcHYzLmMKLWluZGV4IDQzNWNhZmQuLjZhZDgyMDggMTAwNjQ0Ci0tLS0gYS9zbm1wbGliL3NubXB2My5jCi0rKysgYi9zbm1wbGliL3NubXB2My5jCi1AQCAtOTg0LDkgKzk4NCw5IEBAIGluaXRfc25tcHYzX3Bvc3RfY29uZmlnKGludCBtYWpvcmlkLCBpbnQgbWlub3JpZCwgdm9pZCAqc2VydmVyYXJnLAorSW5kZXg6IG5ldC1zbm1wLTUuNy4zL3NubXBsaWIvc25tcHYzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZXQtc25tcC01LjcuMy5vcmlnL3NubXBsaWIvc25tcHYzLmMKKysrKyBuZXQtc25tcC01LjcuMy9zbm1wbGliL3NubXB2My5jCitAQCAtOTg0LDkgKzk4NCw5IEBAIGluaXRfc25tcHYzX3Bvc3RfY29uZmlnKGludCBtYWpvcmlkLCBpbnQKICAgICAgLyoKICAgICAgICogaWYgb3VyIGVuZ2luZUlEIGhhcyBjaGFuZ2VkIGF0IGFsbCwgdGhlIGJvb3RzIHJlY29yZCBtdXN0IGJlIHNldCB0byAxIAogICAgICAgKi8KQEAgLTQwLDYgKzQwLDMgQEAKICAgICAgICAgIGVuZ2luZUJvb3RzID0gMTsKICAgICAgfQogIAotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC9uZXQtc25tcC10ZXN0aW5nLWFkZC10aGUtb3V0cHV0LWZvcm1hdC1mb3ItcHRlc3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC9uZXQtc25tcC10ZXN0aW5nLWFkZC10aGUtb3V0cHV0LWZvcm1hdC1mb3ItcHRlc3QucGF0Y2gKaW5kZXggOWZiMTliMy4uOGY4MzM2YSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvbmV0LXNubXAtdGVzdGluZy1hZGQtdGhlLW91dHB1dC1mb3JtYXQtZm9yLXB0ZXN0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wL25ldC1zbm1wLXRlc3RpbmctYWRkLXRoZS1vdXRwdXQtZm9ybWF0LWZvci1wdGVzdC5wYXRjaApAQCAtMTAsMTEgKzEwLDExIEBACiAgdGVzdGluZy9SVU5URVNUUyB8ICAgIDQgKysrKwogIDEgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvdGVzdGluZy9SVU5URVNUUyBiL3Rlc3RpbmcvUlVOVEVTVFMKLWluZGV4IGUxMWM5NjkuLmZiOTBmNzYgMTAwNzU1Ci0tLS0gYS90ZXN0aW5nL1JVTlRFU1RTCi0rKysgYi90ZXN0aW5nL1JVTlRFU1RTCi1AQCAtMjUsMTMgKzI1LDE3IEBAIGZhaWxlZF9jb3VudD0wCitJbmRleDogbmV0LXNubXAtNS43LjMvdGVzdGluZy9SVU5URVNUUworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5ldC1zbm1wLTUuNy4zLm9yaWcvdGVzdGluZy9SVU5URVNUUworKysrIG5ldC1zbm1wLTUuNy4zL3Rlc3RpbmcvUlVOVEVTVFMKK0BAIC0yOSwxMyArMjksMTcgQEAgZmFpbGVkX2NvdW50PTAKICBybSAtZiBmYWlsZWRfdGVzdHMKICBmb3IgaSBpbiAiJHtzcmNkaXJ9Ii90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QqJDEqOyBkbwogICAgICBlY2hvICJSVU5OSU5HICRpIgpAQCAtMzIsNiArMzIsMyBAQAogIGRvbmUKICAKICBpZiBbIC1mIGZhaWxlZF90ZXN0cyBdOyB0aGVuCi0tLSAKLTEuNy4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wXzUuNy4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXBfNS43LjMuYmIKaW5kZXggODQ5YWUwNy4uZmFmNzNhNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXBfNS43LjMuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXBfNS43LjMuYmIKQEAgLTMyLDYgKzMyLDcgQEAKICAgICAgICAgICAgZmlsZTovLzAwMDQtY29uZmlndXJlLWZpeC1pbmNvcnJlY3QtdmFyaWFibGUucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vbmV0LXNubXAtNS43LjItZml4LWVuZ2luZUJvb3RzLXZhbHVlLW9uLVNJR0hVUC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly9uZXQtc25tcC1maXgtZm9yLWRpc2FibGUtZGVzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtUmVtb3ZlLVU2NC10eXBlZGVmLnBhdGNoIFwKICAgICAgICAgICAgIgogU1JDX1VSSVttZDVzdW1dID0gIjlmNjgyYmQ3MGM3MTdlZmRkOWYxNWI2ODZkMDdiYWVlIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImU4ZGZjNzliNjUzOWI3MWE2ZmYzMzU3NDZjZTYzZDJkYTIyMzkwNjJhZDQxODcyZmZmNDM1NGNhZmVkMDdhM2UiCkBAIC02MCw3ICs2MSw3IEBACiAgICAgICAgICAgICAgICAgLS13aXRoLWRlZmF1bHRzIFwKICAgICAgICAgICAgICAgICAtLXdpdGgtaW5zdGFsbC1wcmVmaXg9JHtEfSBcCiAgICAgICAgICAgICAgICAgLS13aXRoLXBlcnNpc3RlbnQtZGlyZWN0b3J5PSR7bG9jYWxzdGF0ZWRpcn0vbGliL25ldC1zbm1wIFwKLSAgICAgICAgICAgICAgICAke0BiYXNlX2NvbmRpdGlvbmFsKCdTSVRFSU5GT19FTkRJQU5ORVNTJywgJ2xlJywgJy0td2l0aC1lbmRpYW5uZXNzPWxpdHRsZScsICctLXdpdGgtZW5kaWFubmVzcz1iaWcnLCBkKX0gXAorICAgICAgICAgICAgICAgICR7QG9lLnV0aWxzLmNvbmRpdGlvbmFsKCdTSVRFSU5GT19FTkRJQU5ORVNTJywgJ2xlJywgJy0td2l0aC1lbmRpYW5uZXNzPWxpdHRsZScsICctLXdpdGgtZW5kaWFubmVzcz1iaWcnLCBkKX0gXAogIgogCiAjIG5ldC1zbm1wIG5lZWRzIHRvIGhhdmUgbWliLW1vZHVsZXM9c211eCBlbmFibGVkIHRvIGVuYWJsZSBxdWFnZ2EgdG8gc3VwcG9ydCBzbm1wCkBAIC0xMTgsNiArMTE5LDEwIEBACiAgICAgc2VkICAgIC1lICJzQF5OU0NfU1JDRElSPS4qQE5TQ19TUkNESVI9LkBnIiBcCiAgICAgICAgIC1pICR7RH0ke2JpbmRpcn0vbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIKICAgICBzZWQgICAgLWUgInNAXk5TQ19TUkNESVI9LipATlNDX1NSQ0RJUj0uQGciIFwKKyAgICAgICAgICAgLWUgInNAXChbXiBdKi1mZGVidWctcHJlZml4LW1hcD1bXiBdKlwpXDEqQEBnIiBcCisgICAgICAgICAgIC1lICJzQFwoW14gXSotLXN5c3Jvb3Q9W14gXSpcKVwxKkBAZyIgXAorICAgICAgICAgICAtZSAic0BcKFteIF0qLS13aXRoLWxpYnRvb2wtc3lzcm9vdD1bXiBdKlwpXDEqQEBnIiBcCisgICAgICAgICAgIC1lICJzQFwoW14gXSotLXdpdGgtaW5zdGFsbC1wcmVmaXg9W14gXSpcKVwxKkBAZyIgXAogICAgICAgICAtaSAke0R9JHtiaW5kaXJ9L25ldC1zbm1wLWNvbmZpZwogCiAgICAgaWYgWyAiJHtIQVNfUEVSTH0iID0gIjEiIF07IHRoZW4KQEAgLTE0Niw2ICsxNTEsNyBAQAogfQogCiBTWVNST09UX1BSRVBST0NFU1NfRlVOQ1MgKz0gIm5ldF9zbm1wX3N5c3Jvb3RfcHJlcHJvY2VzcyIKK1NOTVBfREJHRElSID0gIi91c3Ivc3JjL2RlYnVnLyR7UE59LyR7RVhURU5EUEV9JHtQVn0tJHtQUn0iCiAKIG5ldF9zbm1wX3N5c3Jvb3RfcHJlcHJvY2VzcyAoKSB7CiAgICAgaWYgWyAtZSAke0R9JHtiaW5kaXJ9L25ldC1zbm1wLWNvbmZpZyBdOyB0aGVuCkBAIC0xNTcsNiArMTYzLDEyIEBACiAgICAgICAgICAgICAtZSAic0BeaW5jbHVkZWRpcj0uKkBpbmNsdWRlZGlyPSR7U1RBR0lOR19JTkNESVJ9QGciIFwKICAgICAgICAgICAgIC1lICJzQF5saWJkaXI9LipAbGliZGlyPSR7U1RBR0lOR19MSUJESVJ9QGciIFwKICAgICAgICAgICAgIC1lICJzQF5OU0NfU1JDRElSPS4qQE5TQ19TUkNESVI9JHtTfUBnIiBcCisgICAgICAgICAgICAtZSAic0AtZmRlYnVnLXByZWZpeC1tYXA9JHtTTk1QX0RCR0RJUn1ALWZkZWJ1Zy1wcmVmaXgtbWFwPSR7V09SS0RJUn09JHtTTk1QX0RCR0RJUn1AZyIgXAorICAgICAgICAgICAgLWUgInNALWZkZWJ1Zy1wcmVmaXgtbWFwPSAtZmRlYnVnLXByZWZpeC1tYXA9QC1mZGVidWctcHJlZml4LW1hcD0ke1NUQUdJTkdfRElSX05BVElWRX09IFwKKyAgICAgICAgICAgICAgICAgIC1mZGVidWctcHJlZml4LW1hcD0ke1NUQUdJTkdfRElSX0hPU1R9PUBnIiBcCisgICAgICAgICAgICAtZSAic0AtLXN5c3Jvb3Q9QC0tc3lzcm9vdD0ke1NUQUdJTkdfRElSX0hPU1R9QGciIFwKKyAgICAgICAgICAgIC1lICJzQC0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9QC0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9JHtTVEFHSU5HX0RJUl9IT1NUfUBnIiBcCisgICAgICAgICAgICAtZSAic0AtLXdpdGgtaW5zdGFsbC1wcmVmaXg9QC0td2l0aC1pbnN0YWxsLXByZWZpeD0ke0R9QGciIFwKICAgICAgICAgICAtaSAgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS9uZXQtc25tcC1jb25maWcKICAgICBmaQogfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvb3BlbmwydHAvb3BlbmwydHAvZml4X2xpbnV4XzQuMTVfY29tcGlsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL2ZpeF9saW51eF80LjE1X2NvbXBpbGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU5N2RmOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL2ZpeF9saW51eF80LjE1X2NvbXBpbGUucGF0Y2gKQEAgLTAsMCArMSw0NCBAQAorVGhpcyBmaXhlcyBhIGNvbXBpbGUgaXNzdWUgaW50cm9kdWNlZCB3aXRoIGxpbnV4IGtlcm5lbCA0LjE1CisKK2luY2x1ZGUvbGludXgvaW4uaDoyMjI6ODogZXJyb3I6IHJlZGVmaW5pdGlvbiBvZiAnc3RydWN0IGluX3BrdGluZm8nCit8ICBzdHJ1Y3QgaW5fcGt0aW5mbyB7CisKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCitTaWduZWQtb2ZmLWJ5OiBBcm1pbiBLdXN0ZXIgPGFrdXN0ZXI4MDhAZ21haWwuY29tPgorCitJbmRleDogb3BlbmwydHAtMS44L3BsdWdpbnMvcHBwX3VuaXguYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG9wZW5sMnRwLTEuOC5vcmlnL3BsdWdpbnMvcHBwX3VuaXguYworKysrIG9wZW5sMnRwLTEuOC9wbHVnaW5zL3BwcF91bml4LmMKK0BAIC0yNSw5ICsyNSwxNCBAQAorICNpbmNsdWRlIDxmY250bC5oPgorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisrI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKysKKysjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwgMTUsIDApCisgI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgorICNpbmNsdWRlIDxuZXQvaWYuaD4KKyAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorKyNlbmRpZgorKworICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKyAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CitAQCAtNDEsMTIgKzQ2LDEyIEBACisgI2RlZmluZSBfX3VzZXIKKyAjZW5kaWYKKyAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CistI2luY2x1ZGUgPGxpbnV4L2lmX2V0aGVyLmg+CistI2luY2x1ZGUgPGxpbnV4L2lmX3BwcG94Lmg+CisgI2luY2x1ZGUgPGxpbnV4L3BwcF9kZWZzLmg+CisgI2luY2x1ZGUgPGxpbnV4L2lmX3BwcC5oPgorKyNpbmNsdWRlIDxsaW51eC9pZl9wcHBveC5oPgorKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LCAxNSwgMCkKKyAjaW5jbHVkZSA8bGludXgvaWZfcHBwb2wydHAuaD4KKy0KKysjZW5kaWYKKyAjaW5jbHVkZSAidXNsLmgiCisgI2luY2x1ZGUgImwydHBfcHJpdmF0ZS5oIgorIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvb3BlbmwydHAvb3BlbmwydHAvb3BlbmwydHBkLWVuYWJsZS10ZXN0cy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL29wZW5sMnRwZC1lbmFibGUtdGVzdHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJlY2UyZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL29wZW5sMnRwZC1lbmFibGUtdGVzdHMucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorY29tbWl0IDNlOTZhNmM0MWJkZDI2NDE3MjY1YTQ1ZWQ2ODUxMzhkOGVlZDU2NGUKK0F1dGhvcjogQXdzIElzbWFpbCA8YXdzLmlzbWFpbEB3aW5kcml2ZXIuY29tPgorRGF0ZTogICBGcmkgU2VwIDE0IDAyOjMyOjUzIDIwMTIgLTA0MDAKKworICAgIG9wZW5sMnRwOiBFbmFibGUgdGVzdHMKKyAgICAKKyAgICBCdWlsZCB0aGUgdGVzdCBkaXJlY2N0b3J5IGFzIHBhcnQKKyAgICBvZiB0aGUgb3ZlcmFsbCBidWlsZAorICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IEF3cyBJc21haWwgPGF3cy5pc21haWxAd2luZHJpdmVyLmNvbT4KKworZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKK2luZGV4IDQxMmNmNGQuLmFkZjRmNDQgMTAwNjQ0CistLS0gYS9NYWtlZmlsZQorKysrIGIvTWFrZWZpbGUKK0BAIC0xNiw3ICsxNiw3IEBAIEwyVFBfRkVBVFVSRV9MT0NBTF9DT05GX0ZJTEU9CXkKKyAKKyAjIERlZmluZSB0byBpbmNsdWRlIHRlc3QgY29kZS4gVGhpcyBtdXN0IGJlIGRlZmluZWQgdG8gcnVuIHRoZQorICMgcmVncmVzc2lvbiB0ZXN0cworLSMgTDJUUF9URVNUPQkJeQorK0wyVFBfVEVTVD15CisgCisgIyBEZWZpbmUgdG8gY29tcGlsZSBpbiBkZWJ1ZyBjb2RlLiBBbHNvIG1ha2VzIGRlZmF1bHQgdHJhY2UgZmxhZ3MKKyAjIGVuYWJsZSBhbGwgbWVzc2FnZXMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL3J1bi1wdGVzdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL3J1bi1wdGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWM5YzdiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvb3BlbmwydHAvb3BlbmwydHAvcnVuLXB0ZXN0CkBAIC0wLDAgKzEsOTcgQEAKKyMhL2Jpbi9zaAorCitUTVBfRElSPWBta3RlbXAgLWQgL3RtcC9zdGQuMjYudG1wLlhYWFhYWGAKKworIyByZXN0b3JlIHRoZSBmaWxlIGlmIGV4aXN0CityZXN0b3JlX2ZpbGUoKQoreworCWZpbGVsaXN0PSJ0ZXN0X3Byb2NzLnRjbCB0dW5uZWwudGVzdCBzZXNzaW9uLnRlc3QiCisJZm9yIGZpbGUgaW4gJHtmaWxlbGlzdH0KKwlkbworCQlpZiBbIC1mICR7VE1QX0RJUn0vJHtmaWxlfSBdOyB0aGVuCisJCQltdiAke1RNUF9ESVJ9LyR7ZmlsZX0gJHtPUEVOTDJUUF9ESVJ9CisJCWZpCisJZG9uZQorfQorCitleGl0X2N1cygpCit7CisJcmVzdG9yZV9maWxlCisJZWNobyAkMQorCWV4aXQgJDIKK30KKworaWYgWyAtZCAvdXNyL2xpYjY0L29wZW5sMnRwL3B0ZXN0IF07IHRoZW4KKwlPUEVOTDJUUF9ESVI9Ii91c3IvbGliNjQvb3BlbmwydHAiCitlbGlmIFsgLWQgL3Vzci9saWIvb3BlbmwydHAvcHRlc3QgXTsgdGhlbgorCU9QRU5MMlRQX0RJUj0iL3Vzci9saWIvb3BlbmwydHAiCitlbHNlCisJZXhpdF9jdXMgIlRoZSBvcGVubDJ0cCBwdGVzdCBkaXJlY3Rvcnkgbm90IGluc3RhbGxlZCwgc2tpcCB0aGUgdGVzdCIgMQorZmkKKworI3JlYWQgLXAgIlBsZWFzZSBpbnB1dCB0aGUgbmV0d29yayBpbnRlcmZhY2UgeW91IHVzZSB0byB0ZXN0KHN1Y2ggYXMgZXRoMCwgZW0xIGV0Yyk6IiBFVEhfVEVTVAorZWNobyAiUGxlYXNlIGlucHV0IHRoZSBuZXR3b3JrIGludGVyZmFjZSB5b3UgdXNlIHRvIHRlc3Qoc3VjaCBhcyBldGgwLCBlbTEgZXRjKToiCityZWFkIEVUSF9URVNUID4gL2Rldi9udWxsCisKK2lmIFsgeCIkRVRIX1RFU1QiID0geCBdOyB0aGVuCisgICAgZXhpdF9jdXMgIlRoZSBuZXR3b3JrIGludGVyZmFjZSBjYW5ub3QgYmUgbnVsbCIgMQorZmkKK2lmY29uZmlnIHwgZ3JlcCAkRVRIX1RFU1QgPiAvZGV2L251bGwgfHwgZXhpdF9jdXMgIlRoZSBuZXR3b3JrIGludGVyZmFjZSB5b3UgcHJvdmlkZSBpcyBpbnZhbGlkIiAxCisKKyMgY2hlY2sgb3BlbmwydHAgcmVsYXRlZCBrZXJuZWwgY29uZmlnCit6Y2F0IC9wcm9jL2NvbmZpZy5neiB8IGdyZXAgQ09ORklHX0wyVFA9eSA+IC9kZXYvbnVsbCB8fCBleGl0X2N1cyAiRmFpbGVkIHRvIGNoZWNrIENPTkZJR19MMlRQPXksIHNraXAgdGhlIHRlc3RzLiIgMQoremNhdCAvcHJvYy9jb25maWcuZ3ogfCBncmVwIENPTkZJR19QUFBPTDJUUD1tID4gL2Rldi9udWxsIHx8IGV4aXRfY3VzICJGYWlsZWQgdG8gY2hlY2sgQ09ORklHX1BQUE9MMlRQPW0sIHNraXAgdGhlIHRlc3RzLiIgMQorCitTWVNWX0lOSVQ9Ii9ldGMvaW5pdC5kL3JwY2JpbmQiCitpZiBbIC1lICR7U1lTVl9JTklUfSBdOyB0aGVuCisJJHtTWVNWX0lOSVR9IHN0YXR1cyA+IC9kZXYvbnVsbCB8fCAke1NZU1ZfSU5JVH0gc3RhcnQgPiAvZGV2L251bGwKK2Vsc2UKKwlzeXN0ZW1jdGwgc3RhdHVzIHJwY2JpbmQgPiAvZGV2L251bGwgfHwgc3lzdGVtY3RsIHN0YXJ0IHJwY2JpbmQgPiAvZGV2L251bGwKK2ZpCisKK3doaWNoIHN5c3RlbWN0bCA+IC9kZXYvbnVsbCAmJiBzeXN0ZW1jdGwgc3RhdHVzIHJwY2JpbmQgPiAvZGV2L251bGwgfHwgc2VydmljZSBycGNiaW5kIHN0YXR1cyA+IC9kZXYvbnVsbAorWyAkPyAtbmUgMCBdICYmIGV4aXRfY3VzICJGYWlsZWQgdG8gc3RhcnQgcnBjYmluZCBzZXJ2aWNlLCBza2lwIHRoZSB0ZXN0cy4iIDEKKworIyBiYWNrdXAgdGhlIGJlbG93IGZpbGVzCitjcCAke09QRU5MMlRQX0RJUn0vcHRlc3QvdGVzdF9wcm9jcy50Y2wgJFRNUF9ESVIKK2NwICR7T1BFTkwyVFBfRElSfS9wdGVzdC90dW5uZWwudGVzdCAkVE1QX0RJUgorY3AgJHtPUEVOTDJUUF9ESVJ9L3B0ZXN0L3Nlc3Npb24udGVzdCAkVE1QX0RJUgorCisjIGN1c3RvbWlzZSB0aGUgY29uZmlnCitpZiBbIHgiJEVUSF9URVNUIiA9IHggXTsgdGhlbgorCWV4aXRfY3VzICJQbGVhc2Ugc2V0IEVUSF9URVNUIHdoaWNoIHVzZWQgdG8gdGVzdCBmaXJzdCwgc2tpcCB0aGUgdGVzdHMuIiAxCitmaQorCitzZWQgLWkgJ3MvZXRoMi8nXCIkRVRIX1RFU1RcIicvZycgJHtPUEVOTDJUUF9ESVJ9L3B0ZXN0L3Rlc3RfcHJvY3MudGNsCit0ZXN0X2lwPSJgaWZjb25maWcgJEVUSF9URVNUIHwgZ3JlcCAnaW5ldCAnIHwgc2VkICdzL14uKmluZXQgYWRkcjovL2cnIHwgXAorICAgIHNlZCAncy8gKk1hc2suKiQvL2cnfHNlZCAncy8gKkJjYXN0LiokLy9nJ2AiCitzZWQgLWkgJ3MvMTkyLjE2OC4wLjEvJyIkdGVzdF9pcCInL2cnICR7T1BFTkwyVFBfRElSfS9wdGVzdC90dW5uZWwudGVzdAorCisjIGxvYWQgbW9kdWxlIGwydHBfcHBwCittb2Rwcm9iZSAgbDJ0cF9wcHAgPiAvZGV2L251bGwKK2xzbW9kIHwgZ3JlcCBsMnRwX3BwcCA+IC9kZXYvbnVsbCB8fCBleGl0X2N1cyAiRkFJTDogTG9hZCBtb2R1bGUgbDJ0cF9wcHAiIDIKKworIyBzdGFydCBvcGVubDJ0cGQKK3BzIGF1eCB8IGdyZXAgb3BlbmwydHBkIHwgZ3JlcCAtdiBncmVwID4gL2Rldi9udWxsICYmIGtpbGxhbGwgb3BlbmwydHBkID4gL2Rldi9udWxsCitwcHBfcGF0aD1gcnBtIC1xbCBvcGVubDJ0cCB8IGdyZXAgcHBwX251bGwuc29gCitlY2hvICJ0ZXN0IGl0IGhlcmUiCisvdXNyL3NiaW4vb3BlbmwydHBkIC1kIGFsbCAtRCAtZiAtcCAke3BwcF9wYXRofSAmICA+IC9kZXYvbnVsbAorCisjIHByZXBhcmUgdGhlIHRlc3QgZW52CitybSAtcmYgJE9QRU5MMlRQX0RJUi9yZXN1bHRzCitta2RpciAtcCAkT1BFTkwyVFBfRElSL3Jlc3VsdHMgfHwgZXhpdF9jdXMgIkZBSUw6IG1rZGlyICRPUEVOTDJUUF9ESVIvcmVzdWx0cyIgMgorY3AgL3Vzci9iaW4vbDJ0cGNvbmZpZyAke09QRU5MMlRQX0RJUn0gfHwgZXhpdF9jdXMgIkZBSUw6IGNvcHkgL3Vzci9iaW4vbDJ0cGNvbmZpZyB0byAke09QRU5MMlRQX0RJUn0iIDIKKworIyBzdGFydCB0aGUgdGVzdAorY2QgJHtPUEVOTDJUUF9ESVJ9L3B0ZXN0ICYmIHRjbHNoIGFsbC50Y2wgLXByZXNlcnZlY29yZSAzIC12ZXJib3NlIGJwcyAtdG1wZGlyICRPUEVOTDJUUF9ESVIvcmVzdWx0cyAtb3V0ZmlsZSB0ZXN0LWwydHBkLnJlc3VsdCAtY29uc3RyYWludHMgImwydHBkUnVubmluZyBwZWVyUHJvZmlsZSB0dW5uZWxQcm9maWxlIHNlc3Npb25Qcm9maWxlIHBwcFByb2ZpbGUgc3lzdGVtIiAtbWF0Y2ggInBlZXJfcHJvZmlsZS0xLjEgdHVubmVsX3Byb2ZpbGUtMS4xIHNlc3Npb25fcHJvZmlsZS0xLjEgcHBwX3Byb2ZpbGUtMS4xIHN5c3RlbS0xLjEiCisKKyMgY2hlY2sgdGhlIHJlc3VsdAorUEFTU05VTT1gZ3JlcCBQQVNTICRPUEVOTDJUUF9ESVIvcmVzdWx0cy90ZXN0LWwydHBkLnJlc3VsdCB8IHdjIC1sYAorRkFJTE5VTT1gZ3JlcCBGQUlMICRPUEVOTDJUUF9ESVIvcmVzdWx0cy90ZXN0LWwydHBkLnJlc3VsdCB8IHdjIC1sYAoraWYgWyAkUEFTU05VTSAtbmUgMCBdICYmIFsgJEZBSUxOVU0gLWVxIDAgXTsgdGhlbgorICAgIGVjaG8gIlBBU1M6IG9wZW5sMnRwIgorZWxzZQorICAgIGVjaG8gIkZBSUw6IG9wZW5sMnRwIgorZmkKKworcmVzdG9yZV9maWxlCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9vcGVubDJ0cC9vcGVubDJ0cF8xLjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9vcGVubDJ0cC9vcGVubDJ0cF8xLjguYmIKaW5kZXggYmJkZThhMy4uMWY2YjRkZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvb3BlbmwydHAvb3BlbmwydHBfMS44LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwXzEuOC5iYgpAQCAtMzEsNiArMzEsOSBAQAogICAgICAgICAgICBmaWxlOi8vb3BlbmwydHBkLWluaXRzY3JpcHQtZml4LXN5c2NvbmZpZy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly9vcGVubDJ0cGQtaW5pdHNjcmlwdC1maXgtd2FybmluZy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly9vcGVubDJ0cGQuc2VydmljZSBcCisgICAgICAgICAgIGZpbGU6Ly9vcGVubDJ0cGQtZW5hYmxlLXRlc3RzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCisgICAgICAgICAgIGZpbGU6Ly9maXhfbGludXhfNC4xNV9jb21waWxlLnBhdGNoIFwKICAgICAgICAgICAgIgogCiBTUkNfVVJJX2FwcGVuZF9saWJjLW11c2wgPSAiXApAQCAtNDEsNyArNDQsNyBAQAogU1JDX1VSSVttZDVzdW1dID0gImUzZDA4ZGVkZmI5ZTZhOWExZTI0ZjY3NjZmNmRhZGQwIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFjOTc3MDRkNGI5NjNhODdmYmMwZTc0MTY2OGQ0NTMwOTMzOTkxNTE1YWU5YWIwZGZmZDExYjU0NDRmNDg2MGYiCiAKLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcgc3lzdGVtZAoraW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZyBzeXN0ZW1kIHB0ZXN0CiAKIFNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJvcGVubDJ0cGQuc2VydmljZSIKIFNZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKQEAgLTg1LDQgKzg4LDEyIEBACiAgICAgZmkKIH0KIAorZG9faW5zdGFsbF9wdGVzdCAoKSB7CisgICAgZm9yIGkgaW4gYWxsLnRjbCBjb25maWdmaWxlLnRlc3QgcGVlcl9wcm9maWxlLnRlc3QgcHBwX3Byb2ZpbGUudGVzdCBcCisgICAgc2Vzc2lvbl9wcm9maWxlLnRlc3Qgc2Vzc2lvbi50ZXN0IHN5c3RlbS50ZXN0IHRlc3RfcHJvY3MudGNsIFwKKyAgICB0aGlyZHBhcnR5X2xucy50ZXN0IHR1bm5lbF9wcm9maWxlLnRlc3QgdHVubmVsLnRlc3Q7IGRvCisgICAgICAgIGluc3RhbGwgLW0gMDc1NSAke1N9L3Rlc3QvJGkgJHtEfSR7UFRFU1RfUEFUSH0KKyAgICBkb25lCit9CisKIFJERVBFTkRTXyR7UE59ID0gInBwcCBwcHAtbDJ0cCBiYXNoIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcXVhZ2dhL3F1YWdnYV8xLjIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3F1YWdnYS9xdWFnZ2FfMS4yLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkNDNkN2IuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcXVhZ2dhL3F1YWdnYV8xLjIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotcmVxdWlyZSBxdWFnZ2EuaW5jCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJiMTU0NmRlODkwNjJmNzA3MGQ1NmU3ODBiMzBiZTRiMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJhYWRkYmE1ZDRmNDFlZDhlNGMyZjE1NWY0NTg0Yzk5MzQ2NWQxMjJjOTA5NmI1YjUyYWRhM2ZjNzUyNjZmYmNkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcXVhZ2dhL3F1YWdnYV8xLjIuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3F1YWdnYS9xdWFnZ2FfMS4yLjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc2OTdhMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3F1YWdnYS9xdWFnZ2FfMS4yLjQuYmIKQEAgLTAsMCArMSw0IEBACityZXF1aXJlIHF1YWdnYS5pbmMKKworU1JDX1VSSVttZDVzdW1dID0gImVjZWQyMWIwNTRkNzFjOWUxYjdjNmFjNDMyODZhMTY2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImUzNjRjMDgyYzMzMDk5MTBlMWViN2IwNjhiZjM5ZWUyOThlMmYyZjNmMzFhNjQzMWE1YzExNTE5M2JkNjUzZDMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyLzAwMDEtcHBvZS1Eb250LWluY2x1ZGUtbGludXgtaWZfZXRoZXIuaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvMDAwMS1wcG9lLURvbnQtaW5jbHVkZS1saW51eC1pZl9ldGhlci5oLnBhdGNoCmluZGV4IDExMzU2Y2UuLjc2MDFmMGQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvMDAwMS1wcG9lLURvbnQtaW5jbHVkZS1saW51eC1pZl9ldGhlci5oLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvMDAwMS1wcG9lLURvbnQtaW5jbHVkZS1saW51eC1pZl9ldGhlci5oLnBhdGNoCkBAIC0xLDExICsxLDEyIEBACi1Gcm9tIDhkNGQ0NTJkNzMzYmFjOGM1YjU1YTkwYmRkZWM4Y2MzMjNjYzlmYTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGZkYjY0ZDIxNTYwYmZkYWZlZWZjY2M3ZDIwZTEwNWU0ODU3ZmFhOTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogVHVlLCAyOCBNYXIgMjAxNyAxOToyMDowNyAtMDcwMAotU3ViamVjdDogW1BBVENIIDEvMl0gcHBvZTogRG9udCBpbmNsdWRlIGxpbnV4L2lmX2V0aGVyLmgKK1N1YmplY3Q6IFtQQVRDSF0gcHBvZTogRG9udCBpbmNsdWRlIGxpbnV4L2lmX2V0aGVyLmgKIAogRml4ZXMgYnVpbGQgd2l0aCBtdXNsCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIHNyYy9wcHBvZS5oIHwgNCAtLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCkBAIC0yNSw2ICsyNiwzIEBACiAgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KICAKICAjaWZkZWYgSEFWRV9ORVRJTkVUX0lGX0VUSEVSX0gKLS0tIAotMi4xMi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvMDAwMi1FbmFibGUtc3VwcG9ydC1mb3ItdGhlLWtlcm5lbC1tb2R1bGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyLzAwMDItRW5hYmxlLXN1cHBvcnQtZm9yLXRoZS1rZXJuZWwtbW9kdWxlLnBhdGNoCmluZGV4IDEzOWQxZjAuLjIxMDNiMzggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvMDAwMi1FbmFibGUtc3VwcG9ydC1mb3ItdGhlLWtlcm5lbC1tb2R1bGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi8wMDAyLUVuYWJsZS1zdXBwb3J0LWZvci10aGUta2VybmVsLW1vZHVsZS5wYXRjaApAQCAtMSw5ICsxLDEwIEBACi1Gcm9tIGFjYTg0NzNhNTE2YThkYzAxMzg2NjEwNWRhMTQxZmUxY2Q5NDc0NzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDMxYjZlZWNkN2U1ZWJmYjlhMzc5MTVmMjg4MjNlNWFmOWQxMDYyYjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogVHVlLCAyOCBNYXIgMjAxNyAxOToyNDo1MyAtMDcwMAotU3ViamVjdDogW1BBVENIIDIvMl0gRW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBrZXJuZWwgbW9kdWxlCitTdWJqZWN0OiBbUEFUQ0hdIEVuYWJsZSBzdXBwb3J0IGZvciB0aGUga2VybmVsIG1vZHVsZQogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBzcmMvY29uZmlndXJlLmluIHwgMSArCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCkBAIC0yMCw2ICsyMSwzIEBACiAgXSkKICAKICBkbmwgQ2hlY2tzIGZvciB0eXBlZGVmcywgc3RydWN0dXJlcywgYW5kIGNvbXBpbGVyIGNoYXJhY3RlcmlzdGljcy4KLS0tIAotMi4xMi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlLmluLUVycm9yLWZpeC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlLmluLUVycm9yLWZpeC5wYXRjaAppbmRleCAyNjYxZmQzLi5iYmQ1MTZmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2NvbmZpZ3VyZS5pbi1FcnJvci1maXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9jb25maWd1cmUuaW4tRXJyb3ItZml4LnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA3MTk1NmRlNDZmZWVmOTYyZGMwNjQ1YWY0YzgxYWUwNzRjYTNiODE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBiZGQyMGI3YTU4NGEyMDUwNGRmYWJiNDA5YTQxZWUyYjlhZTQxNjU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgogRGF0ZTogV2VkLCAxOSBBdWcgMjAxNSAxMzo1Mjo1NyArMDkwMAogU3ViamVjdDogW1BBVENIXSBjb25maWd1cmUuaW46IEVycm9yIGZpeC4KQEAgLTksMTUgKzksMTYgQEAKIFVwc3RyZWFtLVN0YXR1czogcGVuZGluZwogCiBTaWduZWQtb2ZmLWJ5OiBMaSBYaW4gPGxpeGluLmZuc3RAY24uZnVqaXRzdS5jb20+CisKIC0tLQogIHNyYy9jb25maWd1cmUuaW4gfCAzMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAxIGZpbGUgY2hhbmdlZCwgMzAgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9zcmMvY29uZmlndXJlLmluIGIvc3JjL2NvbmZpZ3VyZS5pbgotaW5kZXggMGIyM2RmNS4uMzFjN2ZiYyAxMDA2NDQKK2luZGV4IDE3MTRlNjkuLmNhZTA5NzYgMTAwNjQ0CiAtLS0gYS9zcmMvY29uZmlndXJlLmluCiArKysgYi9zcmMvY29uZmlndXJlLmluCi1AQCAtMTkzLDM2ICsxOTMsNiBAQCBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorQEAgLTE5NSwzNiArMTk1LDYgQEAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAJQ0ZMQUdTPSIkQ0ZMQUdTIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMiCiAgZmkKICAKQEAgLTU0LDYgKzU1LDMgQEAKICBpZiB0ZXN0ICIkcnBwcG9lX2N2X3BhY2tfYml0ZmllbGRzIiA9ICJyZXYiIDsgdGhlbgogIAlBQ19NU0dfUkVTVUxUKHJldmVyc2VkKQogIAlBQ19ERUZJTkUoW1BBQ0tfQklURklFTERTX1JFVkVSU0VEXSwgW10sIFtSZXZlcnNlZCBiaXRmaWVsZHNdKQotLS0gCi0xLjguNC4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9jb25maWd1cmUucGF0Y2gKaW5kZXggMTM4MGJhNC4uYmU4OTI4MCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9jb25maWd1cmUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9jb25maWd1cmUucGF0Y2gKQEAgLTEsNyArMSwxNSBAQAotSW5kZXg6IHJwLXBwcG9lLTMuOC9jb25maWd1cmUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBycC1wcHBvZS0zLjgub3JpZy9jb25maWd1cmUuaW4JMjAxNC0wNy0xNiAxOTozMTozMy41NDk5OTEzODggKzAwMDAKLSsrKyBycC1wcHBvZS0zLjgvY29uZmlndXJlLmluCTIwMTQtMDctMTcgMjI6MDE6MTguMTE2NTkwODI3ICswMDAwCitGcm9tIGM5NmRkYTA0ZWMwMjRiZGVmMmExNWQzNzRlNWY4MjQyZTA0MWNhZDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSaWNoYXJkIFB1cmRpZSA8cmljaGFyZC5wdXJkaWVAbGludXhmb3VuZGF0aW9uLm9yZz4KK0RhdGU6IEZyaSwgMTggSnVsIDIwMTQgMDg6MjU6MTYgKzAwMDAKKworLS0tCisgY29uZmlndXJlLmluIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgoraW5kZXggYWMxYTdlNC4uMTFiOWYzMSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5pbgorKysrIGIvY29uZmlndXJlLmluCiBAQCAtMSw0ICsxLDQgQEAKIC1BQ19JTklUKHNyYy9wcHBvZS5jKQogLUFNX0lOSVRfQVVUT01BS0UoW3JwLXBwcG9lXSwgWzMuOF0pCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2NvbmZpZ3VyZV9pbl9jcm9zcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlX2luX2Nyb3NzLnBhdGNoCmluZGV4IDg4Y2Y3ZTYuLjNiOTQ1OTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlX2luX2Nyb3NzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlX2luX2Nyb3NzLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBjYWIwMjA3NmFmYjgwOGE0M2M2ZmYzZDdiMWM2NGU3MWY1YTFiMzk3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAxNzI5MDdmMzFkNjRkYTRjM2YyODlhNDM5ZmQ2MDVkMmFiNTFiMjRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgogRGF0ZTogV2VkLCAxOSBBdWcgMjAxNSAxMjoxNzowMyArMDkwMAogU3ViamVjdDogW1BBVENIXSBjb25maWd1cmUgaW4gY3Jvc3MKQEAgLTE0LDcgKzE0LDcgQEAKICAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9zcmMvY29uZmlndXJlLmluIGIvc3JjL2NvbmZpZ3VyZS5pbgotaW5kZXggZTE5NDI5NS4uODJkNjRkNiAxMDA2NDQKK2luZGV4IDkwYTA3ZGYuLjFkMzAyNDMgMTAwNjQ0CiAtLS0gYS9zcmMvY29uZmlndXJlLmluCiArKysgYi9zcmMvY29uZmlndXJlLmluCiBAQCAtNSw2ICs1LDEzIEBAIEFDX0lOSVQocHBwb2UuYykKQEAgLTQwLDcgKzQwLDcgQEAKICBmaQogIAogIGRubCBDaGVjayBmb3IgTl9IRExDIGxpbmUgZGlzY2lwbGluZQotQEAgLTU2LDcgKzYzLDcgQEAgQUNfVFJZX0NPTVBJTEUoWyNpbmNsdWRlIDxsaW51eC90ZXJtaW9zLmg+XSwKK0BAIC01OCw3ICs2NSw3IEBAIEFDX1RSWV9DT01QSUxFKFsKICAJYWNfY3Zfbl9oZGxjPW5vKQogIEFDX01TR19SRVNVTFQoJGFjX2N2X25faGRsYykKICBpZiB0ZXN0ICIkYWNfY3Zfbl9oZGxjIiA9IHllcyA7IHRoZW4KQEAgLTQ5LDcgKzQ5LDcgQEAKICBmaQogIAogIEFDX0FSR19FTkFCTEUocGx1Z2luLCBbICAtLWVuYWJsZS1wbHVnaW49cHBwZF9zcmNfcGF0aCAgIGJ1aWxkIHBwcGQgcGx1Z2luXSwgYWNfY3ZfcGx1Z2lucGF0aD0kZW5hYmxldmFsLCBhY19jdl9wbHVnaW5wYXRoPW5vKQotQEAgLTEwNCw3ICsxMTEsNyBAQCBQUFBEX0lOQ0RJUj0iIgorQEAgLTEwNiw3ICsxMTMsNyBAQCBQUFBEX0lOQ0RJUj0iIgogIGlmIHRlc3QgIiRhY19jdl9oZWFkZXJfbGludXhfaWZfcHBwb3hfaCIgPSB5ZXMgOyB0aGVuCiAgCWlmIHRlc3QgIiRhY19jdl9wbHVnaW5wYXRoIiAhPSBubyA7IHRoZW4KICAJCUxJTlVYX0tFUk5FTE1PREVfUExVR0lOPXJwLXBwcG9lLnNvCkBAIC01OCw3ICs1OCw3IEBACiAgCQlQUFBEX0lOQ0RJUj0kYWNfY3ZfcGx1Z2lucGF0aAogIAlmaQogIGZpCi1AQCAtMTE0LDcgKzEyMSw3IEBAIGlmIHRlc3QgIiRQUFBEX0lOQ0RJUiIgPSAiIiA7IHRoZW4KK0BAIC0xMTYsNyArMTIzLDcgQEAgaWYgdGVzdCAiJFBQUERfSU5DRElSIiA9ICIiIDsgdGhlbgogIGZpCiAgCiAgaWYgdGVzdCAiJGFjX2N2X2RlYnVnZ2luZyIgPSAieWVzIiA7IHRoZW4KQEAgLTY3LDcgKzY3LDcgQEAKICBmaQogIAogIEFDX1NVQlNUKExJTlVYX0tFUk5FTE1PREVfUExVR0lOKQotQEAgLTE0MCwxNSArMTQ3LDggQEAgQUNfQ0hFQ0tfU0laRU9GKHVuc2lnbmVkIHNob3J0KQorQEAgLTE0MiwxNSArMTQ5LDggQEAgQUNfQ0hFQ0tfU0laRU9GKHVuc2lnbmVkIHNob3J0KQogIEFDX0NIRUNLX1NJWkVPRih1bnNpZ25lZCBpbnQpCiAgQUNfQ0hFQ0tfU0laRU9GKHVuc2lnbmVkIGxvbmcpCiAgCkBAIC04NCw3ICs4NCw3IEBACiAgCiAgZG5sIENoZWNrIGZvciBMaW51eC1zcGVjaWZpYyBrZXJuZWwgc3VwcG9ydCBmb3IgUFBQb0UKICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIExpbnV4IDIuNC5YIGtlcm5lbC1tb2RlIFBQUG9FIHN1cHBvcnQpCi1AQCAtMTkzLDQ0ICsxOTMsOCBAQCBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorQEAgLTE5NSw0NCArMTk1LDggQEAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAJQ0ZMQUdTPSIkQ0ZMQUdTIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMiCiAgZmkKICAKQEAgLTEzMCw3ICsxMzAsNyBAQAogIGlmIHRlc3QgIiR7cnBwcG9lX2N2X3BhY2tfYml0ZmllbGRzK3NldH0iICE9IHNldCA7IHRoZW4KICBBQ19UUllfUlVOKFsKICB1bmlvbiBmb28gewotQEAgLTI1NywxMCArMjIxLDExIEBAIG1haW4odm9pZCkKK0BAIC0yNTksMTAgKzIyMywxMSBAQCBtYWluKHZvaWQpCiAgfV0sIHJwcHBvZV9jdl9wYWNrX2JpdGZpZWxkcz1ub3JtYWwsIHJwcHBvZV9jdl9wYWNrX2JpdGZpZWxkcz1yZXYsCiAgJEVDSE8gIm5vIGRlZmF1bHRzIGZvciBjcm9zcy1jb21waWxpbmciOyBleGl0IDApCiAgZmkKQEAgLTE0Myw3ICsxNDMsNyBAQAogIGVsc2UKICAJQUNfTVNHX1JFU1VMVChub3JtYWwpCiAgZmkKLUBAIC0zMjQsNiArMjg5LDcgQEAgQUNfU1VCU1QoUFBQT0VfU0VSVkVSX0RFUFMpCitAQCAtMzI2LDYgKzI5MSw3IEBAIEFDX1NVQlNUKFBQUE9FX1NFUlZFUl9ERVBTKQogIEFDX1NVQlNUKFJEWU5BTUlDKQogIEFDX1NVQlNUKExJQkVWRU5UKQogIEFDX1NVQlNUKEVDSE8pCkBAIC0xNTEsNiArMTUxLDMgQEAKICBBQ19TVUJTVChMREZMQUdTKQogIAogIGRhdGFkaXJfZXZhbHVhdGVkPWBldmFsIGVjaG8gJGRhdGFkaXJgCi0tLSAKLTEuOC40LjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9kaXNjYXJkLXVzZS1vZi1kbmwtaW4tTWFrZWZpbGUuYW0ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2Rpc2NhcmQtdXNlLW9mLWRubC1pbi1NYWtlZmlsZS5hbS5wYXRjaAppbmRleCA4Yjc4ODY0Li45ODAxZjZlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2Rpc2NhcmQtdXNlLW9mLWRubC1pbi1NYWtlZmlsZS5hbS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2Rpc2NhcmQtdXNlLW9mLWRubC1pbi1NYWtlZmlsZS5hbS5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gNjExYzlmZTcxOWM1YWEyNjRhMmFkMmViOTIwY2Y0NTIyYWUyZGRlYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZjY1ODE4MWM1ODM0N2MzZTJiMGVlNGYwYTZhM2QxOTE2MjkyMTQ3MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IFRpbmcgTGl1IDxiMjg0OTVAZnJlZXNjYWxlLmNvbT4KIERhdGU6IFR1ZSwgMTIgSnVuIDIwMTIgMTQ6MjY6MTYgLTA0MDAKIFN1YmplY3Q6IFtQQVRDSF0gZGlzY2FyZCB1c2Ugb2YgZG5sIGluIE1ha2VmaWxlLmFtCkBAIC03LDkgKzcsMTAgQEAKIG5vdCBpbnRyb2R1Y2UgYSBjb21tZW50LgogCiBTaWduZWQtb2ZmLWJ5OiBUaW5nIExpdSA8YjI4NDk1QGZyZWVzY2FsZS5jb20+CisKIC0tLQotIE1ha2VmaWxlLmFtIHwgICAgMiArLQotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQorIE1ha2VmaWxlLmFtIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQogaW5kZXggZWZmNjk3Ny4uMzA5MWMzMyAxMDA2NDQKQEAgLTIyLDYgKzIzLDMgQEAKIC1kbmwgQU1fQ0ZMQUdTID0gLVdhbGwgLURERUJVRwogKyMjZG5sIEFNX0NGTEFHUyA9IC1XYWxsIC1EREVCVUcKICBTVUJESVJTID0gc3JjCi0tLSAKLTEuNy42LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9kb250LXN3YWxsb3ctZXJyb3JzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9kb250LXN3YWxsb3ctZXJyb3JzLnBhdGNoCmluZGV4IGY2MTMzN2YuLjhhODU3ODggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvZG9udC1zd2FsbG93LWVycm9ycy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2RvbnQtc3dhbGxvdy1lcnJvcnMucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIGJiZGFkYjgwM2IxOWYwMDJlNzZlN2JiNWNlM2ZhZjc3MGRkN2M0MTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGE5YTczMjIyNzNjNTE4ODJhZjU4YzM1YmEyODhhMGZhZTAwYmE4NDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CiBEYXRlOiBXZWQsIDE5IEF1ZyAyMDE1IDEyOjMzOjQxICswOTAwCiBTdWJqZWN0OiBbUEFUQ0hdIGRvbid0IHN3YWxsb3cgZXJyb3JzCkBAIC02LDE1ICs2LDE2IEBACiBGdXJ0aGVyIGZpeHVwIHRvIHRoZSBjb25maWd1cmUgc2NyaXB0cyB0byBub3Qgc3dhbGxvdyBlcnJvcnMKIAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKIC0tLQogIHNyYy9jb25maWd1cmUuaW4gfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9zcmMvY29uZmlndXJlLmluIGIvc3JjL2NvbmZpZ3VyZS5pbgotaW5kZXggODJkNjRkNi4uMGIyM2RmNSAxMDA2NDQKK2luZGV4IDFkMzAyNDMuLjE3MTRlNjkgMTAwNjQ0CiAtLS0gYS9zcmMvY29uZmlndXJlLmluCiArKysgYi9zcmMvY29uZmlndXJlLmluCi1AQCAtMjE5LDcgKzIxOSw3IEBAIG1haW4odm9pZCkKK0BAIC0yMjEsNyArMjIxLDcgQEAgbWFpbih2b2lkKQogIAlyZXR1cm4gMjsKICAgICAgfQogIH1dLCBycHBwb2VfY3ZfcGFja19iaXRmaWVsZHM9bm9ybWFsLCBycHBwb2VfY3ZfcGFja19iaXRmaWVsZHM9cmV2LApAQCAtMjMsNiArMjQsMyBAQAogIGZpCiAgXSkKICAKLS0tIAotMS44LjQuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL3BwcG9lLXNyYy1yZXN0cmljdGlvbnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL3BwcG9lLXNyYy1yZXN0cmljdGlvbnMucGF0Y2gKaW5kZXggYmNmNGQxMS4uMDM2OTdmZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9wcHBvZS1zcmMtcmVzdHJpY3Rpb25zLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvcHBwb2Utc3JjLXJlc3RyaWN0aW9ucy5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gYTZhODVlYzVjODVjYmQzYzg2NzQzYjZlMmZhMzkxMTk4ODY5YmZmOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRvbSBSaW5pIDx0b21fcmluaUBtZW50b3IuY29tPgorRGF0ZTogV2VkLCAyNyBKdWwgMjAxMSAwMzo0Njo1MiArMDAwMAorU3ViamVjdDogW1BBVENIXSBycC1wcHBvZTogUG9ydCBmcm9tIG9lLmRldgorCiBSZWxheCByZXN0cmljdGlvbnMgb24gdGhlIFBQUG9FIHNyYyBhZGRyZXNzLCBhcyBwZXIgZGViaWFuIGJ1ZwogMjkzODExOgogCkBAIC01LDkgKzEwLDE1IEBACiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbQmFja3BvcnQgZnJvbSBEZWJpYW5dCiAKLS0tLSBycC1wcHBvZS0zLjgub3JpZy9zcmMvZGlzY292ZXJ5LmMKLSsrKyBycC1wcHBvZS0zLjgvc3JjL2Rpc2NvdmVyeS5jCi1AQCAtMzc2LDggKzM3Niw4IEBACistLS0KKyBzcmMvZGlzY292ZXJ5LmMgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2Rpc2NvdmVyeS5jIGIvc3JjL2Rpc2NvdmVyeS5jCitpbmRleCA3ZWUyNTlkLi41MjEzYTM3IDEwMDY0NAorLS0tIGEvc3JjL2Rpc2NvdmVyeS5jCisrKysgYi9zcmMvZGlzY292ZXJ5LmMKK0BAIC00NzIsOCArNDcyLDggQEAgd2FpdEZvclBBRE8oUFBQb0VDb25uZWN0aW9uICpjb25uLCBpbnQgdGltZW91dCkKICAJaWYgKCFwYWNrZXRJc0Zvck1lKGNvbm4sICZwYWNrZXQpKSBjb250aW51ZTsKICAKICAJaWYgKHBhY2tldC5jb2RlID09IENPREVfUEFETykgewpAQCAtMTcsNCArMjgsNCBAQAogKwkJcHJpbnRFcnIoIklnbm9yaW5nIGJyb2FkY2FzdCBQQURPIHBhY2tldCIpOwogIAkJY29udGludWU7CiAgCSAgICB9Ci0gCSAgICBwYXJzZVBhY2tldCgmcGFja2V0LCBwYXJzZVBBRE9UYWdzLCAmcGMpOworICNpZmRlZiBQTFVHSU4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvdG9wLWF1dG9jb25mLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi90b3AtYXV0b2NvbmYucGF0Y2gKaW5kZXggNGZlNzNkMC4uZjY0ZGE0ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi90b3AtYXV0b2NvbmYucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi90b3AtYXV0b2NvbmYucGF0Y2gKQEAgLTEsMyArMSw4IEBACitGcm9tIDBiNjJmNzFlYjVkNDRkNGE1NzEwMzU2NmJhNTgwMjJiNjMwNGZhNGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBUb20gUmluaSA8dG9tX3JpbmlAbWVudG9yLmNvbT4KK0RhdGU6IFdlZCwgMjcgSnVsIDIwMTEgMDM6NDY6NTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gcnAtcHBwb2U6IFBvcnQgZnJvbSBvZS5kZXYKKwogVGhlIGF1dG9jb25mIHN0dWZmIGlzIGFsbCBpbiBhIHN1YmRpcmVjdG9yeSwgd2hpY2ggaXMgcmF0aGVyIGFubm95aW5nCiBhcyBPRSBleHBlY3RzIHBhdGNoZXMgdG8gYmUgYXBwbGllZCBhbmQgYXV0b2NvbmYgc3R1ZmYgdG8gYmUgZG9uZSBpbgogUy4gVGhpcyBhZGRzIGVub3VnaCBhdXRvY29uZiBhdCB0aGUgdG9wIGxldmVsIHRvIGFsbG93IGl0IHRvIGJlCkBAIC02LDIwICsxMSwyOSBAQAogCiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2J1aWxkIHN5c3RlbSBzcGVjaWZpYyBjaGFuZ2VdCiAKLUluZGV4OiBycC1wcHBvZS0zLjgvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBycC1wcHBvZS0zLjgvTWFrZWZpbGUuYW0JMjAwNy0wNi0wOCAxNTo1ODoxNi4wMDAwMDAwMDAgKzEwMDAKKy0tLQorIE1ha2VmaWxlLmFtICB8IDUgKysrKysKKyBjb25maWd1cmUuaW4gfCA0ICsrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBNYWtlZmlsZS5hbQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb25maWd1cmUuaW4KKworZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lZmY2OTc3CistLS0gL2Rldi9udWxsCisrKysgYi9NYWtlZmlsZS5hbQogQEAgLTAsMCArMSw1IEBACiArUEFDS0FHRSA9IHJwLXBwcG9lCiArVkVSU0lPTiA9IDMuOAogKwogK2RubCBBTV9DRkxBR1MgPSAtV2FsbCAtRERFQlVHCiArU1VCRElSUyA9IHNyYwotSW5kZXg6IHJwLXBwcG9lLTMuOC9jb25maWd1cmUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBycC1wcHBvZS0zLjgvY29uZmlndXJlLmluCTIwMDctMDYtMDggMTU6NTg6MTYuMDAwMDAwMDAwICsxMDAwCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uYWMxYTdlNAorLS0tIC9kZXYvbnVsbAorKysrIGIvY29uZmlndXJlLmluCiBAQCAtMCwwICsxLDQgQEAKICtBQ19JTklUKHNyYy9wcHBvZS5jKQogK0FNX0lOSVRfQVVUT01BS0UoW3JwLXBwcG9lXSwgWzMuOF0pCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL3VwZGF0ZS1jb25maWcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL3VwZGF0ZS1jb25maWcucGF0Y2gKaW5kZXggNDJhM2JjNi4uYzc1OWUwOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi91cGRhdGUtY29uZmlnLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvdXBkYXRlLWNvbmZpZy5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gNGQzNGUwZDdkNzkwZWM0MWIwYWZiNzMxYzdkYzFiMWVlOTBkZDM3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRvbSBSaW5pIDx0b21fcmluaUBtZW50b3IuY29tPgorRGF0ZTogV2VkLCAyNyBKdWwgMjAxMSAwMzo0Njo1MiArMDAwMAorU3ViamVjdDogW1BBVENIXSBycC1wcHBvZTogUG9ydCBmcm9tIG9lLmRldgorCiBTZXQgdGhlIHRpbWVvdXQgdG8gMCBzaW5jZSB3ZSBkb24ndCB3YW50IHBwcG9lIHRvIHRyeSByZWNvbm5lY3RpbmcsCiB3ZSB3YW50IHdoYXRldmVyIGlzIGNhbGxpbmcgaXQgdG8gcmVjb25uZWN0LiBMb3RzIG9mIG9kZCB0aGluZ3MKIGhhcHBlbiB3aGVuIHlvdSBoYXZlIHBwcG9lIHJldHJ5aW5nIGl0c2VsZi4KQEAgLTgsMTEgKzEzLDE1IEBACiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KIAotSW5kZXg6IHJwLXBwcG9lLTMuOC9jb25maWdzL3BwcG9lLmNvbmYKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBycC1wcHBvZS0zLjgub3JpZy9jb25maWdzL3BwcG9lLmNvbmYJMjAwNi0wNC0wMyAwMDoyOTo0MS4wMDAwMDAwMDAgKzEwMDAKLSsrKyBycC1wcHBvZS0zLjgvY29uZmlncy9wcHBvZS5jb25mCTIwMDctMDYtMDggMTY6MDI6NDcuMDAwMDAwMDAwICsxMDAwCi1AQCAtNjYsNyArNjYsNyBAQAorLS0tCisgY29uZmlncy9wcHBvZS5jb25mIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3MvcHBwb2UuY29uZiBiL2NvbmZpZ3MvcHBwb2UuY29uZgoraW5kZXggYzIyMmIyZi4uNjU2MThhNSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3MvcHBwb2UuY29uZgorKysrIGIvY29uZmlncy9wcHBvZS5jb25mCitAQCAtNjYsNyArNjYsNyBAQCBERUZBVUxUUk9VVEU9eWVzCiAgIyB0byBjb25uZWN0IGZvcmV2ZXIgYWZ0ZXIgcHBwb2Utc3RhcnQgaXMgY2FsbGVkLiAgT3RoZXJ3aXNlLCBpdCB3aWxsCiAgIyBnaXZlIG91dCBhZnRlciBDT05ORUNUX1RJTUVPVVQgc2Vjb25kcyBhbmQgd2lsbCBub3QgYXR0ZW1wdCB0bwogICMgY29ubmVjdCBhZ2FpbiwgbWFraW5nIGl0IGltcG9zc2libGUgdG8gcmVhY2guCkBAIC0yMSw3ICszMCw3IEBACiAgCiAgIyBIb3cgb2Z0ZW4gaW4gc2Vjb25kcyBwcHBvZS1zdGFydCBwb2xscyB0byBjaGVjayBpZiBsaW5rIGlzIHVwCiAgQ09OTkVDVF9QT0xMPTIKLUBAIC0xMTUsNyArMTE1LDcgQEAKK0BAIC0xMTUsNyArMTE1LDcgQEAgUFBQT0VfVElNRU9VVD04MAogIEZJUkVXQUxMPU5PTkUKICAKICAjIExpbnV4IGtlcm5lbC1tb2RlIHBsdWdpbiBmb3IgcHBwZC4gIElmIHlvdSB3YW50IHRvIHRyeSB0aGUga2VybmVsLW1vZGUKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLmluYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGZiMThkNS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy5pbmMKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1TVU1NQVJZID0gIlRvb2xzIGZvciBldGhlcm5ldCBicmlkZ2luZyIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cubGludXhmb3VuZGF0aW9uLm9yZy9jb2xsYWJvcmF0ZS93b3JrZ3JvdXBzL25ldHdvcmtpbmcvYnJpZGdlIgotU0VDVElPTiA9ICJuZXQiCi1MSUNFTlNFID0gIkdQTHYyIgotCi1ERVBFTkRTID0gInN5c2ZzdXRpbHMiCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L2JyaWRnZS9icmlkZ2UtdXRpbHMtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICBmaWxlOi8vYnJpZGdlLXV0aWxzLTEuNS1jaGVjay1lcnJvci1yZXR1cm5zLWZyb20td3JpdGUtdG8tc3lzZnMucGF0Y2ggXAotICAgICAgICAgIGZpbGU6Ly9icmlkZ2UtdXRpbHMtMS41LWZpeC1lcnJvci1tZXNzYWdlLWZvci1pbmNvcnJlY3QtY29tbWFuZC5wYXRjaCBcCi0gICAgICAgICAgZmlsZTovL2JyaWRnZS11dGlscy0xLjUtZml4LWluY29ycmVjdC1jb21tYW5kLWluLW1hbnVhbC5wYXRjaCBcCi0iCi0KLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCB1cGRhdGUtYWx0ZXJuYXRpdmVzCi0KLUFMVEVSTkFUSVZFXyR7UE59ID0gImJyY3RsIgotQUxURVJOQVRJVkVfUFJJT1JJVFlbYnJjdGxdID0gIjEwMCIKLUFMVEVSTkFUSVZFX0xJTktfTkFNRVticmN0bF0gPSAiJHtzYmluZGlyfS9icmN0bCIKLQotRVhUUkFfT0VDT05GID0gIi0td2l0aC1saW51eC1oZWFkZXJzPSR7U1RBR0lOR19JTkNESVJ9IgotCi1kb19pbnN0YWxsX2FwcGVuZCAoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9LyR7ZGF0YWRpcn0vYnJpZGdlLXV0aWxzCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vbmV0d29yay9pZi1wcmUtdXAuZAotICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L25ldHdvcmsvaWYtcG9zdC1kb3duLmQKLX0KLQotUlJFQ09NTUVORFNfJHtQTn0gPSAia2VybmVsLW1vZHVsZS1icmlkZ2UiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAxLWJ1aWxkLWVycm9yLW91dC1jb3JyZWN0bHktaWYtYS1zdWJtYWtlLWZhaWxzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwMS1idWlsZC1lcnJvci1vdXQtY29ycmVjdGx5LWlmLWEtc3VibWFrZS1mYWlscy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY4OTdiNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAxLWJ1aWxkLWVycm9yLW91dC1jb3JyZWN0bHktaWYtYS1zdWJtYWtlLWZhaWxzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotRnJvbSA1ZTEwMmI0NTNlMjU0ZDE2YWYxZjk1MDUzMTM0ZjU4MzQ4ZTBmODNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcm9vdCA8Z2l0QGFuZHJlZC5uZXQ+Ci1EYXRlOiBXZWQsIDIwIEp1bCAyMDE2IDIzOjQwOjMwICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMS81XSBidWlsZDogZXJyb3Igb3V0IGNvcnJlY3RseSBpZiBhIHN1Ym1ha2UgZmFpbHMKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotRHVlIHRvIHVzZSBvZiBhIGZvciBsb29wLCByZXR1cm4gc3RhdHVzIGZyb20gc3VibWFrZSB3YXMgYWx3YXlzCi1pZ25vcmVkLgotCi1JbiB0aGUgY29udGV4dCBvZiBidWlsZC1zeXN0ZW1zIGxpa2UgT0UgdGhpcyBjYXVzZXMgdGhlbSB0byBub3QKLWRldGVjdCBhbnkgZXJyb3JzIGFuZCBjb250aW51ZSBoYXBwaWx5LCByZXN1bHRpbmcgaW4gYSBzdWNjZXNzZnVsLAotYnV0IGluY29tcGxldGUsIGJ1aWxkLgotCi1GaXggYnkgaGF2aW5nIGEgbmljZXIgTWFrZWZpbGUuaW4gd2hpY2ggbm93IGhhcyBydWxlcyBmb3IgdGhlCi1pbmRpdmlkdWFsIHRhcmdldHMgKGRpcmVjdG9yaWVzKSBzbyB0aGF0IG1ha2UgaXRzZWxmIGNhbgotZmlndXJlIG91dCBhbGwgdGhlIGRlcGVuZGVuY2llcyBhbmQgYnVpbGQgdGhvc2UgdGFyZ2V0cyBhcwotbmVlZGVkIHJhdGhlciB0aGFuIHVzaW5nIGEgZm9yIGxvb3AgdG8gaXRlcmF0ZSBvdmVyIHRoZQotZGlyZWN0b3JpZXMgaW4gYSBzaGVsbCBhbmQgdGh1cyBsb29zaW5nIHRoZSByZXR1cm4gc3RhdHVzIG9mCi10aGUgY29tbWFuZCBpbnNpZGUgdGhlIGxvb3AuCi0KLVRoaXMgaGFzIHRoZSBhZGRlZCBhZHZhbnRhZ2UgdGhhdCBwYXJhbGxlbCBidWlsZHMgd29yayBub3cuCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyw6kgRHJhc3ppayA8Z2l0QGFuZHJlZC5uZXQ+Ci0tLS0KLSBNYWtlZmlsZS5pbiB8IDE4ICsrKysrKysrKysrKy0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5pbgotaW5kZXggNjAyODUxMy4uZGFiODhiYiAxMDA2NDQKLS0tLSBhL01ha2VmaWxlLmluCi0rKysgYi9NYWtlZmlsZS5pbgotQEAgLTEzLDExICsxMywxMSBAQCBkaXN0ZGlyID0gJChQQUNLQUdFKS0kKFZFUlNJT04pCi0gCi0gU1VCRElSUz1saWJicmlkZ2UgYnJjdGwgZG9jCi0gCi0tYWxsOgotLQlmb3IgeCBpbiAkKFNVQkRJUlMpOyBkbyAkKE1BS0UpICQoTUZMQUdTKSAtQyAkJHggOyBkb25lCi0rYWxsOiBvdmVycmlkZSBBQ1RJT049Ci0rYWxsOiAkKFNVQkRJUlMpCi0gCi0tY2xlYW46Ci0tCWZvciB4IGluICQoU1VCRElSUyk7IGRvICQoTUFLRSkgJChNRkxBR1MpIC1DICQkeCBjbGVhbiA7IGRvbmUKLStjbGVhbjogb3ZlcnJpZGUgQUNUSU9OPWNsZWFuCi0rY2xlYW46ICQoU1VCRElSUykKLSAKLSBkaXN0Y2xlYW46CWNsZWFuCi0gCXJtIC1mIGNvbmZpZy5sb2cKLUBAIC0zMCw2ICszMCwxMiBAQCBtYWludGFpbmVyLWNsZWFuOiBkaXN0Y2xlYW4KLSAJcm0gLWYgbGliYnJpZGdlL01ha2VmaWxlCi0gCXJtIC1mIGRvYy9NYWtlZmlsZQotIAotLWluc3RhbGw6Ci0tCWZvciB4IGluICQoU1VCRElSUyk7IGRvICQoTUFLRSkgJChNRkxBR1MpIC1DICQkeCBpbnN0YWxsOyBkb25lCi0raW5zdGFsbDogb3ZlcnJpZGUgQUNUSU9OPWluc3RhbGwKLStpbnN0YWxsOiAkKFNVQkRJUlMpCi0gCi0rCi0rYnJjdGw6IGxpYmJyaWRnZQotKyQoU1VCRElSUyk6Ci0rCSQoTUFLRSkgJChNRkxBR1MpIC1DICRAICQoQUNUSU9OKQotKwotKy5QSE9OWTogJChTVUJESVJTKQotLS0gCi0yLjguMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAyLWxpYmJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWZjbnRsLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAyLWxpYmJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWZjbnRsLmgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1ZDA4YWIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwMi1saWJicmlkZ2UtZml4LXNvbWUtYnVpbGQtdGltZS13YXJuaW5ncy1mY250bC5oLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotRnJvbSA2OGZhZmM0ZWExMDM2NWFjMmU3NGFiN2M2NjBkMDk3Njk2ODU3Njc3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcm9vdCA8Z2l0QGFuZHJlZC5uZXQ+Ci1EYXRlOiBXZWQsIDIwIEp1bCAyMDE2IDIzOjQwOjMyICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi81XSBsaWJicmlkZ2U6IGZpeCBzb21lIGJ1aWxkLXRpbWUgd2FybmluZ3MgKGZjbnRsLmgpCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVRoZXJlIGFyZSBidWlsZC10aW1lIHdhcm5pbmdzIGF0IHRoZSBtb21lbnQgd2hlbiBidWlsZGluZwotYWdhaW5zdCBtdXNsLCBhcyB0aGUgY29kZSBoZXJlICNpbmNsdWRlJ3MgdGhlIHdyb25nIGZpbGUsCi1zeXMvZmNudGwuaCBpbnN0ZWFkIG9mIGZjbnRsLmgKLQotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGxpYmJyaWRnZV9kZXZpZi5jOjI2OjA6Ci08c3lzcm9vdD4vdXNyL2luY2x1ZGUvc3lzL2ZjbnRsLmg6MToyOiB3YXJuaW5nOiAjd2FybmluZyByZWRpcmVjdGluZyBpbmNvcnJlY3QgI2luY2x1ZGUgPHN5cy9mY250bC5oPiB0byA8ZmNudGwuaD4gWy1XY3BwXQotICN3YXJuaW5nIHJlZGlyZWN0aW5nIGluY29ycmVjdCAjaW5jbHVkZSA8c3lzL2ZjbnRsLmg+IHRvIDxmY250bC5oPgotICBefn5+fn5+Ci1JbiBmaWxlIGluY2x1ZGVkIGZyb20gbGliYnJpZGdlX2lmLmM6MjM6MDoKLTxzeXNyb290Pi91c3IvaW5jbHVkZS9zeXMvZmNudGwuaDoxOjI6IHdhcm5pbmc6ICN3YXJuaW5nIHJlZGlyZWN0aW5nIGluY29ycmVjdCAjaW5jbHVkZSA8c3lzL2ZjbnRsLmg+IHRvIDxmY250bC5oPiBbLVdjcHBdCi0gI3dhcm5pbmcgcmVkaXJlY3RpbmcgaW5jb3JyZWN0ICNpbmNsdWRlIDxzeXMvZmNudGwuaD4gdG8gPGZjbnRsLmg+Ci0gIF5+fn5+fn4KLQotZ2xpYmMgaGVhZGVycyBzaWxlbnRseSByZWRpcmVjdCBzeXMvZmNudGwuaCB0byBmY250bC5oIHNvIHRoZQotaXNzdWUgaXMgbm90IHNlZW4gdGhlcmUuCi0KLUxldCdzIGZpeCB0aGUgI2luY2x1ZGUncyB0byBzbyBhcyB0byB1c2UgdGhlIGNvcnJlY3Qgb25lcwotYW5kIHNpbGVuY2UgdGhlIGNvbXBpbGVyLgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogQW5kcsOpIERyYXN6aWsgPGdpdEBhbmRyZWQubmV0PgotLS0tCi0gbGliYnJpZGdlL2xpYmJyaWRnZV9kZXZpZi5jIHwgMiArLQotIGxpYmJyaWRnZS9saWJicmlkZ2VfaWYuYyAgICB8IDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYmJyaWRnZS9saWJicmlkZ2VfZGV2aWYuYyBiL2xpYmJyaWRnZS9saWJicmlkZ2VfZGV2aWYuYwotaW5kZXggMWU4MzkyNS4uMmNmNzhmNiAxMDA2NDQKLS0tLSBhL2xpYmJyaWRnZS9saWJicmlkZ2VfZGV2aWYuYwotKysrIGIvbGliYnJpZGdlL2xpYmJyaWRnZV9kZXZpZi5jCi1AQCAtMjMsNyArMjMsNyBAQAotICNpbmNsdWRlIDxlcnJuby5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSAjaW5jbHVkZSA8ZGlyZW50Lmg+Ci0tI2luY2x1ZGUgPHN5cy9mY250bC5oPgotKyNpbmNsdWRlIDxmY250bC5oPgotIAotICNpbmNsdWRlICJsaWJicmlkZ2UuaCIKLSAjaW5jbHVkZSAibGliYnJpZGdlX3ByaXZhdGUuaCIKLWRpZmYgLS1naXQgYS9saWJicmlkZ2UvbGliYnJpZGdlX2lmLmMgYi9saWJicmlkZ2UvbGliYnJpZGdlX2lmLmMKLWluZGV4IDc3ZDNmOGEuLjljZjRiYWMgMTAwNjQ0Ci0tLS0gYS9saWJicmlkZ2UvbGliYnJpZGdlX2lmLmMKLSsrKyBiL2xpYmJyaWRnZS9saWJicmlkZ2VfaWYuYwotQEAgLTIwLDcgKzIwLDcgQEAKLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPGVycm5vLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotLSNpbmNsdWRlIDxzeXMvZmNudGwuaD4KLSsjaW5jbHVkZSA8ZmNudGwuaD4KLSAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0gCi0gI2luY2x1ZGUgImxpYmJyaWRnZS5oIgotLS0gCi0yLjguMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAzLWJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWVycm5vLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAzLWJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWVycm5vLmgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyZjJhNjIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwMy1icmlkZ2UtZml4LXNvbWUtYnVpbGQtdGltZS13YXJuaW5ncy1lcnJuby5oLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotRnJvbSAyYjlkYzI0NWY5M2FiMjdkN2RhNDJhMTZkZGJiOTIxMjg4ODAwNmU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcm9vdCA8Z2l0QGFuZHJlZC5uZXQ+Ci1EYXRlOiBXZWQsIDIwIEp1bCAyMDE2IDIzOjQwOjMzICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMy81XSBicmlkZ2U6IGZpeCBzb21lIGJ1aWxkLXRpbWUgd2FybmluZ3MgKGVycm5vLmgpCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVRoZXJlIGlzIGEgYnVpbGQtdGltZSB3YXJuaW5nIGF0IHRoZSBtb21lbnQgd2hlbiBidWlsZGluZwotYWdhaW5zdCBtdXNsLCBhcyB0aGUgY29kZSBoZXJlICNpbmNsdWRlJ3MgdGhlIHdyb25nIGZpbGUsCi1zeXMvZXJybm8uaCBpbnN0ZWFkIG9mIGVycm5vLmgKLQotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGJyY3RsLmM6MjI6MDoKLTxzeXNyb290Pi91c3IvaW5jbHVkZS9zeXMvZXJybm8uaDoxOjI6IHdhcm5pbmc6ICN3YXJuaW5nIHJlZGlyZWN0aW5nIGluY29ycmVjdCAjaW5jbHVkZSA8c3lzL2Vycm5vLmg+IHRvIDxlcnJuby5oPiBbLVdjcHBdCi0gI3dhcm5pbmcgcmVkaXJlY3RpbmcgaW5jb3JyZWN0ICNpbmNsdWRlIDxzeXMvZXJybm8uaD4gdG8gPGVycm5vLmg+Ci0gIF5+fn5+fn4KLQotZ2xpYmMgaGVhZGVycyBzaWxlbnRseSByZWRpcmVjdCBzeXMvZXJybm8uaCB0byBlcnJuby5oIHNvIHRoZQotaXNzdWUgaXMgbm90IHNlZW4gdGhlcmUuCi0KLUxldCdzIGZpeCB0aGUgI2luY2x1ZGUncyB0byBzbyBhcyB0byB1c2UgdGhlIGNvcnJlY3Qgb25lcwotYW5kIHNpbGVuY2UgdGhlIGNvbXBpbGVyLgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogQW5kcsOpIERyYXN6aWsgPGdpdEBhbmRyZWQubmV0PgotLS0tCi0gYnJjdGwvYnJjdGwuYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2JyY3RsL2JyY3RsLmMgYi9icmN0bC9icmN0bC5jCi1pbmRleCA0NmNhMzUyLi44ODU1MjM0IDEwMDY0NAotLS0tIGEvYnJjdGwvYnJjdGwuYwotKysrIGIvYnJjdGwvYnJjdGwuYwotQEAgLTE5LDcgKzE5LDcgQEAKLSAjaW5jbHVkZSA8c3RkaW8uaD4KLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotLSNpbmNsdWRlIDxzeXMvZXJybm8uaD4KLSsjaW5jbHVkZSA8ZXJybm8uaD4KLSAjaW5jbHVkZSA8Z2V0b3B0Lmg+Ci0gCi0gI2luY2x1ZGUgImxpYmJyaWRnZS5oIgotLS0gCi0yLjguMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDA0LWxpYmJyaWRnZS1hZGQtbWlzc2luZy1pbmNsdWRlLXMtZml4LWJ1aWxkLWFnYWluc3QtbXUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDA0LWxpYmJyaWRnZS1hZGQtbWlzc2luZy1pbmNsdWRlLXMtZml4LWJ1aWxkLWFnYWluc3QtbXUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2NTE4NmUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNC1saWJicmlkZ2UtYWRkLW1pc3NpbmctaW5jbHVkZS1zLWZpeC1idWlsZC1hZ2FpbnN0LW11LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotRnJvbSBjNDViNzM4MjlhOGI4Yzc5MjRkZjUyOGJhYTdlMTY0OThmOTE3Mjg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcm9vdCA8Z2l0QGFuZHJlZC5uZXQ+Ci1EYXRlOiBXZWQsIDIwIEp1bCAyMDE2IDIzOjQwOjMzICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNC81XSBsaWJicmlkZ2U6IGFkZCBtaXNzaW5nICNpbmNsdWRlJ3MgKGZpeCBidWlsZCBhZ2FpbnN0Ci0gbXVzbCkKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotRml4ZXMgZXJyb3IgbGlrZToKLQotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGxpYmJyaWRnZV9kZXZpZi5jOjI4OjA6Ci1saWJicmlkZ2UuaDo0NToxNzogZXJyb3I6IGZpZWxkICdtYXhfYWdlJyBoYXMgaW5jb21wbGV0ZSB0eXBlCi0gIHN0cnVjdCB0aW1ldmFsIG1heF9hZ2U7Ci0gICAgICAgICAgICAgICAgIF5+fn5+fn4KLUluIGZpbGUgaW5jbHVkZWQgZnJvbSBsaWJicmlkZ2VfZGV2aWYuYzoyODowOgotbGliYnJpZGdlLmg6NTE6MjogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICd1X2ludDE2X3QnCi0gIHVfaW50MTZfdCByb290X3BvcnQ7Ci0gIF5+fn5+fn5+fgotCi1UaGVzZSB0eXBlcyBhcmUgbm90IHN0YW5kYXJkIEMgYnV0IHJhdGhlciBQb3NpeCwKLWZvciBzdHJ1Y3QgdGltZXZhbCBzZWU6Ci1odHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvNzkwODc5OS94c2gvc3lzdGltZS5oLmh0bWwKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHLDqSBEcmFzemlrIDxnaXRAYW5kcmVkLm5ldD4KLS0tLQotIGxpYmJyaWRnZS9saWJicmlkZ2UuaCB8IDIgKysKLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9saWJicmlkZ2UvbGliYnJpZGdlLmggYi9saWJicmlkZ2UvbGliYnJpZGdlLmgKLWluZGV4IDUzZWM4NjkuLmIwNzI3YzEgMTAwNjQ0Ci0tLS0gYS9saWJicmlkZ2UvbGliYnJpZGdlLmgKLSsrKyBiL2xpYmJyaWRnZS9saWJicmlkZ2UuaAotQEAgLTIwLDYgKzIwLDggQEAKLSAjZGVmaW5lIF9MSUJCUklER0VfSAotIAotICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0rI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0rI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotICNpbmNsdWRlIDxsaW51eC9pbjYuaD4KLSAjaW5jbHVkZSA8bGludXgvaWYuaD4KLSAjaW5jbHVkZSA8bGludXgvaWZfYnJpZGdlLmg+Ci0tLSAKLTIuOC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLzAwMDUtYnVpbGQtZG9uLXQtaWdub3JlLUNGTEFHUy1mcm9tLWVudmlyb25tZW50LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNS1idWlsZC1kb24tdC1pZ25vcmUtQ0ZMQUdTLWZyb20tZW52aXJvbm1lbnQucGF0Y2gKaW5kZXggOWYyMTU1ZS4uMGE3MmM2YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNS1idWlsZC1kb24tdC1pZ25vcmUtQ0ZMQUdTLWZyb20tZW52aXJvbm1lbnQucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNS1idWlsZC1kb24tdC1pZ25vcmUtQ0ZMQUdTLWZyb20tZW52aXJvbm1lbnQucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1Gcm9tIDdiYzE5MzJjYWJmYWZjYThjNjhlMThiZDQzZTNkMjAzYzcwZDJkZDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiByb290IDxnaXRAYW5kcmVkLm5ldD4KLURhdGU6IFdlZCwgMjAgSnVsIDIwMTYgMjM6NDA6MzMgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA1LzVdIGJ1aWxkOiBkb24ndCBpZ25vcmUgQ0ZMQUdTIGZyb20gZW52aXJvbm1lbnQKK0Zyb20gOWQ2MzgzOGQxMmM3NzJkZmUzMzM3MWUyYmI4YjgxOTE2MjU1MzlmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpvZSBNYWNEb25hbGQgPGpvZV9tYWNkb25hbGRAbWVudG9yLmNvbT4KK0RhdGU6IE1vbiwgMzAgT2N0IDIwMTcgMTM6Mzc6NDggLTA0MDAKK1N1YmplY3Q6IFtQQVRDSF0gYnVpbGQ6IGRvbid0IGlnbm9yZSBDRkxBR1MgZnJvbSBlbnZpcm9ubWVudAogTUlNRS1WZXJzaW9uOiAxLjAKIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApAQCAtMTcsMTAgKzE3LDEwIEBACiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAogU2lnbmVkLW9mZi1ieTogQW5kcsOpIERyYXN6aWsgPGdpdEBhbmRyZWQubmV0PgorU2lnbmVkLW9mZi1ieTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgogLS0tCi0gYnJjdGwvTWFrZWZpbGUuaW4gICAgIHwgMiArLQotIGxpYmJyaWRnZS9NYWtlZmlsZS5pbiB8IDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKyBicmN0bC9NYWtlZmlsZS5pbiB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL2JyY3RsL01ha2VmaWxlLmluIGIvYnJjdGwvTWFrZWZpbGUuaW4KIGluZGV4IGUxOTU2ZDYuLmVmZjI2MGMgMTAwNjQ0CkBAIC0zNSwxOSArMzUsNiBAQAogIAogICUubzogJS5jIGJyY3RsLmgKICAJJChDQykgJChDRkxBR1MpICQoSU5DTFVERSkgLWMgJDwgCi1kaWZmIC0tZ2l0IGEvbGliYnJpZGdlL01ha2VmaWxlLmluIGIvbGliYnJpZGdlL01ha2VmaWxlLmluCi1pbmRleCAyMDUxMmM0Li40ZTFjZGRjIDEwMDY0NAotLS0tIGEvbGliYnJpZGdlL01ha2VmaWxlLmluCi0rKysgYi9saWJicmlkZ2UvTWFrZWZpbGUuaW4KLUBAIC01LDcgKzUsNyBAQCBBUj1hcgotIFJBTkxJQj1AUkFOTElCQAotIAotIENDPUBDQ0AKLS1DRkxBR1MgPSAtV2FsbCAtZyAkKEtFUk5FTF9IRUFERVJTKQotK0NGTEFHUyA9IC1XYWxsIC1nICQoS0VSTkVMX0hFQURFUlMpIEBDRkxBR1NACi0gCi0gcHJlZml4PUBwcmVmaXhACi0gZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAogLS0gCi0yLjguMQorMi43LjQKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNi1saWJicmlkZ2UtTW9kaWZ5aW5nLXRoZS1BUi10by1jcm9zcy10b29sY2hhaW4ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDA2LWxpYmJyaWRnZS1Nb2RpZnlpbmctdGhlLUFSLXRvLWNyb3NzLXRvb2xjaGFpbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjY1NzYxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNi1saWJicmlkZ2UtTW9kaWZ5aW5nLXRoZS1BUi10by1jcm9zcy10b29sY2hhaW4ucGF0Y2gKQEAgLTAsMCArMSw1MSBAQAorRnJvbSBjOTI0ZjY2NzQzYzA1NGQ3ZWJhZmVmOTBjYTFiYmViYzk2NzMyMzU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgorRGF0ZTogTW9uLCAzMCBPY3QgMjAxNyAxMzo0ODozMyAtMDQwMAorU3ViamVjdDogW1BBVENIXSBsaWJicmlkZ2U6IE1vZGlmeWluZyB0aGUgQVIgdG8gY3Jvc3MgdG9vbGNoYWluCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1RoZSBNYWtlZmlsZSB1c2VzIHRoZSBob3N0IOKAnGFy4oCdIHRvb2wgd2hlbiBpdCBzaG91bGQgYmUgdXNpbmcgdGhlIGFyIGZyb20KK3RoZSB0YXJnZXQgdG9vbGNoYWluLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogTGkgWmhvdSA8bGkuemhvdUB3aW5kcml2ZXIuY29tPgorU2lnbmVkLW9mZi1ieTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgorLS0tCisgY29uZmlndXJlLmFjICAgICAgICAgIHwgMSArCisgbGliYnJpZGdlL01ha2VmaWxlLmluIHwgMiArLQorIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDhiMmUyZWEuLjg0MjZiN2MgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTEyLDYgKzEyLDEwIEBAIGRubCBDaGVja3MgZm9yIHByb2dyYW1zLgorIEFDX1BST0dfQ0MKKyBBQ19QUk9HX0lOU1RBTEwKKyBBQ19QUk9HX1JBTkxJQgorK0FOX01BS0VWQVIoW0FSXSwgW0FDX1BST0dfQVJdKQorK0FOX1BST0dSQU0oW2FyXSwgW0FDX1BST0dfQVJdKQorK0FDX0RFRlVOKFtBQ19QUk9HX0FSXSwgW0FDX0NIRUNLX1RPT0woQVIsIGFyLCA6KV0pCisrQUNfUFJPR19BUgorIAorIGRubCBDaGVja3MgZm9yIGhlYWRlciBmaWxlcy4KKyBBQ19IRUFERVJfU1REQworZGlmZiAtLWdpdCBhL2xpYmJyaWRnZS9NYWtlZmlsZS5pbiBiL2xpYmJyaWRnZS9NYWtlZmlsZS5pbgoraW5kZXggNzkzMmJmZS4uYmQ1NWU5YiAxMDA2NDQKKy0tLSBhL2xpYmJyaWRnZS9NYWtlZmlsZS5pbgorKysrIGIvbGliYnJpZGdlL01ha2VmaWxlLmluCitAQCAtMSw3ICsxLDcgQEAKKyAKKyBLRVJORUxfSEVBREVSUz0tSUBLRVJORUxfSEVBREVSU0AKKyAKKy1BUj1hcgorK0FSPUBBUkAKKyBSQU5MSUI9QFJBTkxJQkAKKyAKKyBDQz1AQ0NACistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy0xLjUtY2hlY2stZXJyb3ItcmV0dXJucy1mcm9tLXdyaXRlLXRvLXN5c2ZzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLTEuNS1jaGVjay1lcnJvci1yZXR1cm5zLWZyb20td3JpdGUtdG8tc3lzZnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMGFmOWMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLTEuNS1jaGVjay1lcnJvci1yZXR1cm5zLWZyb20td3JpdGUtdG8tc3lzZnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi1VcHN0cmVhbS1zdGF0dXM6IEJhY2tQb3J0IFtodHRwOi8vcGtncy5mZWRvcmFwcm9qZWN0Lm9yZy9jZ2l0L2JyaWRnZS11dGlscy5naXQvZGlmZi9icmlkZ2UtdXRpbHMtMS41LWNoZWNrLWVycm9yLXJldHVybnMtZnJvbS13cml0ZS10by1zeXNmcy5wYXRjaD9pZD1iMGQxMDcxN2ZkN2NlYmY1ZDg1ZWVkM2Y5NDFiNDA5ZmEwMzg0ZjA4XQotCi1TaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+Ci0KLUZyb20gYmI5OTcwYTlkZjk1ODM3ZTM5ZDY4MDAyMWIxZjczZDIzMWU4NTQwNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gSGVtbWluZ2VyIDxzaGVtbWluZ2VyQHZ5YXR0YS5jb20+Ci1EYXRlOiBUdWUsIDMgTWF5IDIwMTEgMDk6NTI6NDMgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAzLzNdIENoZWNrIGVycm9yIHJldHVybnMgZnJvbSB3cml0ZSB0byBzeXNmcwotCi1BZGQgaGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIHdyaXRlIHRvIHN5c2ZzIGZpbGVzLgotCi1TaWduZWQtb2ZmLWJ5OiBQZXRyIFNhYmF0YSA8Y29udHlrQHJlZGhhdC5jb20+Ci0tLS0KLSBsaWJicmlkZ2UvbGliYnJpZGdlX2RldmlmLmMgfCAgIDM3ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliYnJpZGdlL2xpYmJyaWRnZV9kZXZpZi5jIGIvbGliYnJpZGdlL2xpYmJyaWRnZV9kZXZpZi5jCi1pbmRleCBhYThiYzM2Li4xZTgzOTI1IDEwMDY0NAotLS0tIGEvbGliYnJpZGdlL2xpYmJyaWRnZV9kZXZpZi5jCi0rKysgYi9saWJicmlkZ2UvbGliYnJpZGdlX2RldmlmLmMKLUBAIC0yODAsMjUgKzI4MCwzOCBAQCBmYWxsYmFjazoKLSAJcmV0dXJuIG9sZF9nZXRfcG9ydF9pbmZvKGJybmFtZSwgcG9ydCwgaW5mbyk7Ci0gfQotIAotK3N0YXRpYyBpbnQgc2V0X3N5c2ZzKGNvbnN0IGNoYXIgKnBhdGgsIHVuc2lnbmVkIGxvbmcgdmFsdWUpCi0rewotKwlpbnQgZmQsIHJldCA9IDAsIGNjOwotKwljaGFyIGJ1ZlszMl07Ci0rCi0rCWZkID0gb3BlbihwYXRoLCBPX1dST05MWSk7Ci0rCWlmIChmZCA8IDApCi0rCQlyZXR1cm4gLTE7Ci0rCi0rCWNjID0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVsdVxuIiwgdmFsdWUpOwotKwlpZiAod3JpdGUoZmQsIGJ1ZiwgY2MpIDwgMCkKLSsJCXJldCA9IC0xOwotKwljbG9zZShmZCk7Ci0rCi0rCXJldHVybiByZXQ7Ci0rfQotKwotIAotIHN0YXRpYyBpbnQgYnJfc2V0KGNvbnN0IGNoYXIgKmJyaWRnZSwgY29uc3QgY2hhciAqbmFtZSwKLSAJCSAgdW5zaWduZWQgbG9uZyB2YWx1ZSwgdW5zaWduZWQgbG9uZyBvbGRjb2RlKQotIHsKLSAJaW50IHJldDsKLSAJY2hhciBwYXRoW1NZU0ZTX1BBVEhfTUFYXTsKLS0JRklMRSAqZjsKLSAKLS0Jc25wcmludGYocGF0aCwgU1lTRlNfUEFUSF9NQVgsIFNZU0ZTX0NMQVNTX05FVCAiJXMvJXMiLCBicmlkZ2UsIG5hbWUpOwotKwlzbnByaW50ZihwYXRoLCBTWVNGU19QQVRIX01BWCwgU1lTRlNfQ0xBU1NfTkVUICIlcy9icmlkZ2UvJXMiLAotKwkJIGJyaWRnZSwgbmFtZSk7Ci0gCi0tCWYgPSBmb3BlbihwYXRoLCAidyIpOwotLQlpZiAoZikgewotLQkJcmV0ID0gZnByaW50ZihmLCAiJWxkXG4iLCB2YWx1ZSk7Ci0tCQlmY2xvc2UoZik7Ci0tCX0gZWxzZSB7Ci0rCWlmICgocmV0ID0gc2V0X3N5c2ZzKHBhdGgsIHZhbHVlKSkgPCAwKSB7Ci0gCQkvKiBmYWxsYmFjayB0byBvbGQgaW9jdGwgKi8KLSAJCXN0cnVjdCBpZnJlcSBpZnI7Ci0gCQl1bnNpZ25lZCBsb25nIGFyZ3NbNF0gPSB7IG9sZGNvZGUsIHZhbHVlLCAwLCAwIH07Ci0tCQkKLSsKLSAJCXN0cm5jcHkoaWZyLmlmcl9uYW1lLCBicmlkZ2UsIElGTkFNU0laKTsKLSAJCWlmci5pZnJfZGF0YSA9IChjaGFyICopICZhcmdzOwotIAkJcmV0ID0gaW9jdGwoYnJfc29ja2V0X2ZkLCBTSU9DREVWUFJJVkFURSwgJmlmcik7Ci1AQCAtMzQ4LDE0ICszNjEsMTAgQEAgc3RhdGljIGludCBwb3J0X3NldChjb25zdCBjaGFyICpicmlkZ2UsIGNvbnN0IGNoYXIgKmlmbmFtZSwKLSB7Ci0gCWludCByZXQ7Ci0gCWNoYXIgcGF0aFtTWVNGU19QQVRIX01BWF07Ci0tCUZJTEUgKmY7Ci0gCi0gCXNucHJpbnRmKHBhdGgsIFNZU0ZTX1BBVEhfTUFYLCBTWVNGU19DTEFTU19ORVQgIiVzL2JycG9ydC8lcyIsIGlmbmFtZSwgbmFtZSk7Ci0tCWYgPSBmb3BlbihwYXRoLCAidyIpOwotLQlpZiAoZikgewotLQkJcmV0ID0gZnByaW50ZihmLCAiJWxkXG4iLCB2YWx1ZSk7Ci0tCQlmY2xvc2UoZik7Ci0tCX0gZWxzZSB7Ci0rCi0rCWlmICgocmV0ID0gc2V0X3N5c2ZzKHBhdGgsIHZhbHVlKSkgPCAwKSB7Ci0gCQlpbnQgaW5kZXggPSBnZXRfcG9ydG5vKGJyaWRnZSwgaWZuYW1lKTsKLSAKLSAJCWlmIChpbmRleCA8IDApCi0tLSAKLTEuNy41LjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLTEuNS1maXgtZXJyb3ItbWVzc2FnZS1mb3ItaW5jb3JyZWN0LWNvbW1hbmQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMtMS41LWZpeC1lcnJvci1tZXNzYWdlLWZvci1pbmNvcnJlY3QtY29tbWFuZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQwNDk0ZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMtMS41LWZpeC1lcnJvci1tZXNzYWdlLWZvci1pbmNvcnJlY3QtY29tbWFuZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLVVwc3RyZWFtLXN0YXR1czogQmFja1BvcnQgW2h0dHA6Ly9wa2dzLmZlZG9yYXByb2plY3Qub3JnL2NnaXQvYnJpZGdlLXV0aWxzLmdpdC9kaWZmL2JyaWRnZS11dGlscy0xLjUtZml4LWVycm9yLW1lc3NhZ2UtZm9yLWluY29ycmVjdC1jb21tYW5kLnBhdGNoP2lkPWIwZDEwNzE3ZmQ3Y2ViZjVkODVlZWQzZjk0MWI0MDlmYTAzODRmMDhdCi0KLVNpZ25lZC1vZmYtYnk6IFJveS5MaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KLQotRnJvbSBjN2VkMDk5NmVmNThiNDk3ZDNkMzBiZTgwMmFiNWFlNmMzNzA5OWI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBIZW1taW5nZXIgPHNoZW1taW5nZXJAdnlhdHRhLmNvbT4KLURhdGU6IFR1ZSwgMyBNYXkgMjAxMSAwOTo0OTo1NyAtMDcwMAotU3ViamVjdDogW1BBVENIIDIvM10gRml4IGVycm9yIG1lc3NhZ2UgZm9yIGluY29ycmVjdCBjb21tYW5kCi0KLURlYmlhbiBidWcgNDA2OTA3Ci1FcnJvciBtZXNzYWdlIHdhcyByZWZlcmluZyB0byBpbmNvcnJlY3QgY29tbWFuZCBhcmd1bWVudC4KLQotU2lnbmVkLW9mZi1ieTogUGV0ciBTYWJhdGEgPGNvbnR5a0ByZWRoYXQuY29tPgotLS0tCi0gYnJjdGwvYnJjdGwuYyB8ICAgIDIgKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2JyY3RsL2JyY3RsLmMgYi9icmN0bC9icmN0bC5jCi1pbmRleCA0NTRiOGRkLi40NmNhMzUyIDEwMDY0NAotLS0tIGEvYnJjdGwvYnJjdGwuYwotKysrIGIvYnJjdGwvYnJjdGwuYwotQEAgLTY5LDcgKzY5LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmNvbnN0KiBhcmd2KQotIAlhcmdjIC09IG9wdGluZDsKLSAJYXJndiArPSBvcHRpbmQ7Ci0gCWlmICgoY21kID0gY29tbWFuZF9sb29rdXAoKmFyZ3YpKSA9PSBOVUxMKSB7Ci0tCQlmcHJpbnRmKHN0ZGVyciwgIm5ldmVyIGhlYXJkIG9mIGNvbW1hbmQgWyVzXVxuIiwgYXJndlsxXSk7Ci0rCQlmcHJpbnRmKHN0ZGVyciwgIm5ldmVyIGhlYXJkIG9mIGNvbW1hbmQgWyVzXVxuIiwgKmFyZ3YpOwotIAkJZ290byBoZWxwOwotIAl9Ci0gCQotLS0gCi0xLjcuNS4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy0xLjUtZml4LWluY29ycmVjdC1jb21tYW5kLWluLW1hbnVhbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy0xLjUtZml4LWluY29ycmVjdC1jb21tYW5kLWluLW1hbnVhbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY2ZDZkNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMtMS41LWZpeC1pbmNvcnJlY3QtY29tbWFuZC1pbi1tYW51YWwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1VcHN0cmVhbS1zdGF0dXM6IEJhY2tQb3J0IFtodHRwOi8vcGtncy5mZWRvcmFwcm9qZWN0Lm9yZy9jZ2l0L2JyaWRnZS11dGlscy5naXQvZGlmZi9icmlkZ2UtdXRpbHMtMS41LWZpeC1pbmNvcnJlY3QtY29tbWFuZC1pbi1tYW51YWwucGF0Y2g/aWQ9YjBkMTA3MTdmZDdjZWJmNWQ4NWVlZDNmOTQxYjQwOWZhMDM4NGYwOF0KLQotU2lnbmVkLW9mZi1ieTogUm95LkxpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgotCi1Gcm9tIDhlZjdiNzc1NjJiNjM2ZWZjYmQ4Yjc1OWViMzI0ZDZjMDY5MjAwZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c2hlbW1pbmdlckB2eWF0dGEuY29tPgotRGF0ZTogVHVlLCAzIE1heSAyMDExIDA5OjQ4OjQwIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8zXSBGaXggaW5jb3JyZWN0IGNvbW1hbmQgaW4gbWFudWFsCi0KLUNvbW1hbmQgaXMgInNldGFnZWluZyIgbm90ICJzZXRhZ2Vpbmd0aW1lIjsgZml4IG1hbiBwYWdlLgotRGViaWFuIGJ1ZyByZXBvcnQuCi0KLVNpZ25lZC1vZmYtYnk6IFBldHIgU2FiYXRhIDxjb250eWtAcmVkaGF0LmNvbT4KLS0tLQotIGRvYy9icmN0bC44IHwgICAgMiArLQotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZG9jL2JyY3RsLjggYi9kb2MvYnJjdGwuOAotaW5kZXggZDkwNDA0Ny4uNzcxZjMyMyAxMDA2NDQKLS0tLSBhL2RvYy9icmN0bC44Ci0rKysgYi9kb2MvYnJjdGwuOAotQEAgLTg5LDcgKzg5LDcgQEAgZGF0YS4gTWFjaGluZXMgY2FuIG1vdmUgdG8gb3RoZXIgcG9ydHMsIG5ldHdvcmsgY2FyZHMgY2FuIGJlIHJlcGxhY2VkCi0gLkIgYnJjdGwgc2hvd21hY3MgPGJybmFtZT4KLSBzaG93cyBhIGxpc3Qgb2YgbGVhcm5lZCBNQUMgYWRkcmVzc2VzIGZvciB0aGlzIGJyaWRnZS4KLSAKLS0uQiBicmN0bCBzZXRhZ2Vpbmd0aW1lIDxicm5hbWU+IDx0aW1lPgotKy5CIGJyY3RsIHNldGFnZWluZyA8YnJuYW1lPiA8dGltZT4KLSBzZXRzIHRoZSBldGhlcm5ldCAoTUFDKSBhZGRyZXNzIGFnZWluZyB0aW1lLCBpbiBzZWNvbmRzLiBBZnRlciA8dGltZT4KLSBzZWNvbmRzIG9mIG5vdCBoYXZpbmcgc2VlbiBhIGZyYW1lIGNvbWluZyBmcm9tIGEgY2VydGFpbiBhZGRyZXNzLCB0aGUKLSBicmlkZ2Ugd2lsbCB0aW1lIG91dCAoZGVsZXRlKSB0aGF0IGFkZHJlc3MgZnJvbSB0aGUgRm9yd2FyZGluZwotLS0gCi0xLjcuNS4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzL2tlcm5lbC1oZWFkZXJzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMva2VybmVsLWhlYWRlcnMucGF0Y2gKaW5kZXggZGUzNmYwNS4uOGEyM2EzMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMva2VybmVsLWhlYWRlcnMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMva2VybmVsLWhlYWRlcnMucGF0Y2gKQEAgLTEsMjIgKzEsMzMgQEAKLWluY2x1ZGUgbWlzc2luZyBrZXJuZWwgaGVhZGVyCitGcm9tIDgyNGY4MzhjYzljN2I4YTQ0MTc0MzU4NDQ2OTkzZDYxYmU3YmJiM2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKb2UgTWFjRG9uYWxkIDxqb2VfbWFjZG9uYWxkQG1lbnRvci5jb20+CitEYXRlOiBNb24sIDMwIE9jdCAyMDE3IDEzOjE4OjIwIC0wNDAwCitTdWJqZWN0OiBbUEFUQ0hdIGluY2x1ZGUgbWlzc2luZyBrZXJuZWwgaGVhZGVyCiAKIEZpeGVzIGVycm9ycyBsaWtlCiAKIHwgL2Iva3Jhai9qbGludXgtbmV4dC9wb2t5L2J1aWxkL3RtcC1lZ2xpYmMvc3lzcm9vdHMvcmUtNjRiL3Vzci9pbmNsdWRlL2xpbnV4L2lmX2JyaWRnZS5oOjE3MjoyMDogZXJyb3I6IGZpZWxkICdpcDYnIGhhcyBpbmNvbXBsZXRlIHR5cGUKIHwgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4uL2xpYmJyaWRnZS9saWJicmlkZ2UuaDoyNDowLAogCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKLUluZGV4OiBicmlkZ2UtdXRpbHMtMS41L2xpYmJyaWRnZS9saWJicmlkZ2UuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGJyaWRnZS11dGlscy0xLjUub3JpZy9saWJicmlkZ2UvbGliYnJpZGdlLmgJMjAxMS0wMy0yOCAxNzo1Mjo1NC4wMDAwMDAwMDAgLTA3MDAKLSsrKyBicmlkZ2UtdXRpbHMtMS41L2xpYmJyaWRnZS9saWJicmlkZ2UuaAkyMDEzLTAzLTA0IDIxOjE2OjI1Ljc4MTE4ODMwOSAtMDgwMAotQEAgLTIwLDYgKzIwLDcgQEAKLSAjZGVmaW5lIF9MSUJCUklER0VfSAorU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEpvZSBNYWNEb25hbGQgPGpvZV9tYWNkb25hbGRAbWVudG9yLmNvbT4KKy0tLQorIGxpYmJyaWRnZS9saWJicmlkZ2UuaCB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvbGliYnJpZGdlL2xpYmJyaWRnZS5oIGIvbGliYnJpZGdlL2xpYmJyaWRnZS5oCitpbmRleCBjMDM4YjkyLi5mZDA5MzA2IDEwMDY0NAorLS0tIGEvbGliYnJpZGdlL2xpYmJyaWRnZS5oCisrKysgYi9saWJicmlkZ2UvbGliYnJpZGdlLmgKK0BAIC0yNCw2ICsyNCw3IEBACisgI2luY2x1ZGUgPHN5cy90aW1lLmg+CisgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KICAKLSAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgogKyNpbmNsdWRlIDxsaW51eC9pbjYuaD4KICAjaW5jbHVkZSA8bGludXgvaWYuaD4KICAjaW5jbHVkZSA8bGludXgvaWZfYnJpZGdlLmg+CiAgCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzXzEuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzXzEuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjAzMmFiMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlsc18xLjUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1yZXF1aXJlIGJyaWRnZS11dGlscy5pbmMKLQotU1JDX1VSSSArPSAiXAotICAgIGZpbGU6Ly9rZXJuZWwtaGVhZGVycy5wYXRjaCBcCi0gICAgZmlsZTovLzAwMDEtYnVpbGQtZXJyb3Itb3V0LWNvcnJlY3RseS1pZi1hLXN1Ym1ha2UtZmFpbHMucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAyLWxpYmJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWZjbnRsLmgucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAzLWJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWVycm5vLmgucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDA0LWxpYmJyaWRnZS1hZGQtbWlzc2luZy1pbmNsdWRlLXMtZml4LWJ1aWxkLWFnYWluc3QtbXUucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDA1LWJ1aWxkLWRvbi10LWlnbm9yZS1DRkxBR1MtZnJvbS1lbnZpcm9ubWVudC5wYXRjaCBcCi0iCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWY5ZDIwYTQ1MzIyMWExYjdlMzJhZTg0Njk0ZGEyYzM3IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZWM3YjM4MTE2MGIzNDA2NDhkZWRlNThjMzFiYjIyMzgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDJmOWU1ZmI4ZjZjNTJlNjNhOThhNDNiODFiZDI4MWMyMjdjNTI5ZjE5NDkxM2UxYzUxZWM0OGEzOTNiNjY4OCIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHNfMS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHNfMS42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjODdjNDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlsc18xLjYuYmIKQEAgLTAsMCArMSwzNSBAQAorU1VNTUFSWSA9ICJUb29scyBmb3IgZXRoZXJuZXQgYnJpZGdpbmciCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmxpbnV4Zm91bmRhdGlvbi5vcmcvY29sbGFib3JhdGUvd29ya2dyb3Vwcy9uZXR3b3JraW5nL2JyaWRnZSIKK1NFQ1RJT04gPSAibmV0IgorTElDRU5TRSA9ICJHUEx2MiIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZjlkMjBhNDUzMjIxYTFiN2UzMmFlODQ2OTRkYTJjMzciCisKK1NSQ1JFViA9ICI0MmMxYWVmYzMwM2ZkZjg5MWZiYjA5OWVhNTFmMDBkY2E4M2FiNjA2IgorCitTUkNfVVJJID0gIlwKKyAgICBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvc2hlbW1pbmdlci9icmlkZ2UtdXRpbHMuZ2l0IFwKKyAgICBmaWxlOi8va2VybmVsLWhlYWRlcnMucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDA1LWJ1aWxkLWRvbi10LWlnbm9yZS1DRkxBR1MtZnJvbS1lbnZpcm9ubWVudC5wYXRjaCBcCisgICAgZmlsZTovLzAwMDYtbGliYnJpZGdlLU1vZGlmeWluZy10aGUtQVItdG8tY3Jvc3MtdG9vbGNoYWluLnBhdGNoIFwKKyIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworREVQRU5EUyA9ICJzeXNmc3V0aWxzIgorCitpbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAgdXBkYXRlLWFsdGVybmF0aXZlcworCitBTFRFUk5BVElWRV8ke1BOfSA9ICJicmN0bCIKK0FMVEVSTkFUSVZFX1BSSU9SSVRZW2JyY3RsXSA9ICIxMDAiCitBTFRFUk5BVElWRV9MSU5LX05BTUVbYnJjdGxdID0gIiR7c2JpbmRpcn0vYnJjdGwiCisKK0VYVFJBX09FQ09ORiA9ICItLXdpdGgtbGludXgtaGVhZGVycz0ke1NUQUdJTkdfSU5DRElSfSIKKworZG9faW5zdGFsbF9hcHBlbmQgKCkgeworICAgIGluc3RhbGwgLWQgJHtEfS8ke2RhdGFkaXJ9L2JyaWRnZS11dGlscworICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L25ldHdvcmsvaWYtcHJlLXVwLmQKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9uZXR3b3JrL2lmLXBvc3QtZG93bi5kCit9CisKK1JSRUNPTU1FTkRTXyR7UE59ID0gImtlcm5lbC1tb2R1bGUtYnJpZGdlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Nocm9ueS9jaHJvbnkvYXJtX2VhYmkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2hyb255L2Nocm9ueS9hcm1fZWFiaS5wYXRjaAppbmRleCBkMTU4NmJiLi45MmEyZGJkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2hyb255L2Nocm9ueS9hcm1fZWFiaS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2hyb255L2Nocm9ueS9hcm1fZWFiaS5wYXRjaApAQCAtMSw0OCArMSw1NCBAQAogICAgIGNocm9ueTogZml4IGJ1aWxkIGZhaWx1cmUgZm9yIGFybWE5Ci0gICAgCisKICAgICBFbGltaW5hdGUgcmVmZXJlbmNlcyB0byBzeXNjYWxscyBub3QgYXZhaWxhYmxlCiAgICAgZm9yIEFSTV9FQUJJLiAgQWxzbyBhZGQgYSBkZXBlbmRlbmN5IG9uIGxpYnNlY2NvbXAKICAgICB3aGljaCBpcyBuZWVkZWQgZm9yIHNjZmlsdGVyIHRvIHdvcmsuCi0gICAgCisKICAgICBTZXQgUEFDS0FHRUNPTkZJRyB0byBub3QgZW5hYmxlIHNjZmlsdGVyLCBzaW5jZQogICAgIGtlcm5lbCBDT05GSUdfU0VDQ09NUCBpcyB1bmxpa2VseSB0byBiZSBzZXQuICBUaGlzCiAgICAgYWxpZ25zIHRoZSB1c2FnZSBvZiBsaWJzZWNjb21wIHdpdGggdGhhdCBvZiBvdGhlciBwYWNrYWdlcy4KIAogICAgIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotICAgIAorCiAgICAgU2lnbmVkLW9mZi1ieTogSm9lIFNsYXRlciA8anNsYXRlckB3aW5kcml2ZXIuY29tPgogCisgICAgUmVmcmVzaCBwYXRjaCBmb3IgbmV3IHVwc3RyZWFtIHZlcnNpb24uCisKKyAgICBTaWduZWQtb2ZmLWJ5OiBSb2JlcnQgSm9zbHluIDxyb2JlcnQuam9zbHluQHJlZHJlY3RhbmdsZS5vcmc+CisKIC0tLSBhL3N5c19saW51eC5jCiArKysgYi9zeXNfbGludXguYwotQEAgLTQ1MywxMyArNDUzLDEyIEBAIFNZU19MaW51eF9FbmFibGVTeXN0ZW1DYWxsRmlsdGVyKGludCBsZXYKK0BAIC00NjUsMTQgKzQ2NSwxNCBAQCBTWVNfTGludXhfRW5hYmxlU3lzdGVtQ2FsbEZpbHRlcihpbnQgbGV2CiAgICBjb25zdCBpbnQgc3lzY2FsbHNbXSA9IHsKICAgICAgLyogQ2xvY2sgKi8KLSAgICAgU0NNUF9TWVMoYWRqdGltZXgpLCBTQ01QX1NZUyhnZXR0aW1lb2ZkYXkpLCBTQ01QX1NZUyhzZXR0aW1lb2ZkYXkpLAotLSAgICBTQ01QX1NZUyh0aW1lKSwKKyAgICAgU0NNUF9TWVMoYWRqdGltZXgpLCBTQ01QX1NZUyhjbG9ja19nZXR0aW1lKSwgU0NNUF9TWVMoZ2V0dGltZW9mZGF5KSwKKy0gICAgU0NNUF9TWVMoc2V0dGltZW9mZGF5KSwgU0NNUF9TWVModGltZSksCisrICAgIFNDTVBfU1lTKHNldHRpbWVvZmRheSksCiAgICAgIC8qIFByb2Nlc3MgKi8KLS0gICAgU0NNUF9TWVMoY2xvbmUpLCBTQ01QX1NZUyhleGl0KSwgU0NNUF9TWVMoZXhpdF9ncm91cCksIFNDTVBfU1lTKGdldHJsaW1pdCksCi0rICAgIFNDTVBfU1lTKGNsb25lKSwgU0NNUF9TWVMoZXhpdCksIFNDTVBfU1lTKGV4aXRfZ3JvdXApLAotICAgICBTQ01QX1NZUyhydF9zaWdhY3Rpb24pLCBTQ01QX1NZUyhydF9zaWdyZXR1cm4pLCBTQ01QX1NZUyhydF9zaWdwcm9jbWFzayksCi0gICAgIFNDTVBfU1lTKHNldF90aWRfYWRkcmVzcyksIFNDTVBfU1lTKHNpZ3JldHVybiksIFNDTVBfU1lTKHdhaXQ0KSwKKyAgICAgU0NNUF9TWVMoY2xvbmUpLCBTQ01QX1NZUyhleGl0KSwgU0NNUF9TWVMoZXhpdF9ncm91cCksIFNDTVBfU1lTKGdldHBpZCksCistICAgIFNDTVBfU1lTKGdldHJsaW1pdCksIFNDTVBfU1lTKHJ0X3NpZ2FjdGlvbiksIFNDTVBfU1lTKHJ0X3NpZ3JldHVybiksCisrICAgIFNDTVBfU1lTKHJ0X3NpZ2FjdGlvbiksIFNDTVBfU1lTKHJ0X3NpZ3JldHVybiksCisgICAgIFNDTVBfU1lTKHJ0X3NpZ3Byb2NtYXNrKSwgU0NNUF9TWVMoc2V0X3RpZF9hZGRyZXNzKSwgU0NNUF9TWVMoc2lncmV0dXJuKSwKKyAgICAgU0NNUF9TWVMod2FpdDQpLAogICAgICAvKiBNZW1vcnkgKi8KIC0gICAgU0NNUF9TWVMoYnJrKSwgU0NNUF9TWVMobWFkdmlzZSksIFNDTVBfU1lTKG1tYXApLCBTQ01QX1NZUyhtbWFwMiksCiArICAgIFNDTVBfU1lTKGJyayksIFNDTVBfU1lTKG1hZHZpc2UpLCBTQ01QX1NZUyhtbWFwMiksCiAgICAgIFNDTVBfU1lTKG1wcm90ZWN0KSwgU0NNUF9TWVMobXJlbWFwKSwgU0NNUF9TWVMobXVubWFwKSwgU0NNUF9TWVMoc2htZHQpLAogICAgICAvKiBGaWxlc3lzdGVtICovCiAgICAgIFNDTVBfU1lTKGFjY2VzcyksIFNDTVBfU1lTKGNobW9kKSwgU0NNUF9TWVMoY2hvd24pLCBTQ01QX1NZUyhjaG93bjMyKSwKLUBAIC00NzAsMTQgKzQ2OSwyMSBAQCBTWVNfTGludXhfRW5hYmxlU3lzdGVtQ2FsbEZpbHRlcihpbnQgbGV2CitAQCAtNDgzLDE0ICs0ODMsMjEgQEAKICAgICAgU0NNUF9TWVMoYmluZCksIFNDTVBfU1lTKGNvbm5lY3QpLCBTQ01QX1NZUyhnZXRzb2NrbmFtZSksCi0gICAgIFNDTVBfU1lTKHJlY3Zmcm9tKSwgU0NNUF9TWVMocmVjdm1zZyksIFNDTVBfU1lTKHNlbmRtbXNnKSwKLSAgICAgU0NNUF9TWVMoc2VuZG1zZyksIFNDTVBfU1lTKHNlbmR0byksCisgICAgIFNDTVBfU1lTKHJlY3Zmcm9tKSwgU0NNUF9TWVMocmVjdm1tc2cpLCBTQ01QX1NZUyhyZWN2bXNnKSwKKyAgICAgU0NNUF9TWVMoc2VuZG1tc2cpLCBTQ01QX1NZUyhzZW5kbXNnKSwgU0NNUF9TWVMoc2VuZHRvKSwKIC0gICAgLyogVE9ETzogY2hlY2sgc29ja2V0Y2FsbCBhcmd1bWVudHMgKi8KIC0gICAgU0NNUF9TWVMoc29ja2V0Y2FsbCksCiAgICAgIC8qIEdlbmVyYWwgSS9PICovCi0gICAgIFNDTVBfU1lTKF9uZXdzZWxlY3QpLCBTQ01QX1NZUyhjbG9zZSksIFNDTVBfU1lTKG9wZW4pLCBTQ01QX1NZUyhwaXBlKSwKKyAgICAgU0NNUF9TWVMoX25ld3NlbGVjdCksIFNDTVBfU1lTKGNsb3NlKSwgU0NNUF9TWVMob3BlbiksIFNDTVBfU1lTKG9wZW5hdCksIFNDTVBfU1lTKHBpcGUpLAogLSAgICBTQ01QX1NZUyhwb2xsKSwgU0NNUF9TWVMocmVhZCksIFNDTVBfU1lTKGZ1dGV4KSwgU0NNUF9TWVMoc2VsZWN0KSwKICsgICAgU0NNUF9TWVMocG9sbCksIFNDTVBfU1lTKHJlYWQpLCBTQ01QX1NZUyhmdXRleCksCiAgICAgIFNDTVBfU1lTKHNldF9yb2J1c3RfbGlzdCksIFNDTVBfU1lTKHdyaXRlKSwKICAgICAgLyogTWlzY2VsbGFuZW91cyAqLwotICAgICBTQ01QX1NZUyh1bmFtZSksCisgICAgIFNDTVBfU1lTKGdldHJhbmRvbSksIFNDTVBfU1lTKHN5c2luZm8pLCBTQ01QX1NZUyh1bmFtZSksCiArICAgIC8qIG5vdCBhbHdheXMgYXZhaWxhYmxlICovCiArI2lmICEgZGVmaW5lZChfX0FSTV9FQUJJX18pCiArICAgIFNDTVBfU1lTKHRpbWUpLApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Nocm9ueS9jaHJvbnlfMi40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Nocm9ueS9jaHJvbnlfMi40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTQzMWY0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9jaHJvbnkvY2hyb255XzIuNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi1TVU1NQVJZID0gIlZlcnNhdGlsZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTmV0d29yayBUaW1lIFByb3RvY29sIgotREVTQ1JJUFRJT04gPSAiQ2hyb255IGNhbiBzeW5jaHJvbml6ZSB0aGUgc3lzdGVtIGNsb2NrIHdpdGggTlRQIFwKLXNlcnZlcnMsIHJlZmVyZW5jZSBjbG9ja3MgKGUuZy4gR1BTIHJlY2VpdmVyKSwgYW5kIG1hbnVhbCBpbnB1dCB1c2luZyBcCi13cmlzdHdhdGNoIGFuZCBrZXlib2FyZC4gSXQgY2FuIGFsc28gb3BlcmF0ZSBhcyBhbiBOVFB2NCAoUkZDIDU5MDUpIFwKLXNlcnZlciBhbmQgcGVlciB0byBwcm92aWRlIGEgdGltZSBzZXJ2aWNlIHRvIG90aGVyIGNvbXB1dGVycyBpbiB0aGUgXAotbmV0d29yay4gXAotXAotSXQgaXMgZGVzaWduZWQgdG8gcGVyZm9ybSB3ZWxsIGluIGEgd2lkZSByYW5nZSBvZiBjb25kaXRpb25zLCBcCi1pbmNsdWRpbmcgaW50ZXJtaXR0ZW50IG5ldHdvcmsgY29ubmVjdGlvbnMsIGhlYXZpbHkgY29uZ2VzdGVkIFwKLW5ldHdvcmtzLCBjaGFuZ2luZyB0ZW1wZXJhdHVyZXMgKG9yZGluYXJ5IGNvbXB1dGVyIGNsb2NrcyBhcmUgXAotc2Vuc2l0aXZlIHRvIHRlbXBlcmF0dXJlKSwgYW5kIHN5c3RlbXMgdGhhdCBkbyBub3QgcnVuIGNvbnRpbnVvdXNseSwgb3IgXAotcnVuIG9uIGEgdmlydHVhbCBtYWNoaW5lLiBcCi1cCi1UeXBpY2FsIGFjY3VyYWN5IGJldHdlZW4gdHdvIG1hY2hpbmVzIG9uIGEgTEFOIGlzIGluIHRlbnMsIG9yIGEgZmV3IFwKLWh1bmRyZWRzLCBvZiBtaWNyb3NlY29uZHM7IG92ZXIgdGhlIEludGVybmV0LCBhY2N1cmFjeSBpcyB0eXBpY2FsbHkgXAotd2l0aGluIGEgZmV3IG1pbGxpc2Vjb25kcy4gV2l0aCBhIGdvb2QgaGFyZHdhcmUgcmVmZXJlbmNlIGNsb2NrIFwKLXN1Yi1taWNyb3NlY29uZCBhY2N1cmFjeSBpcyBwb3NzaWJsZS4gXAotXAotVHdvIHByb2dyYW1zIGFyZSBpbmNsdWRlZCBpbiBjaHJvbnk6IGNocm9ueWQgaXMgYSBkYWVtb24gdGhhdCBjYW4gYmUgXAotc3RhcnRlZCBhdCBib290IHRpbWUgYW5kIGNocm9ueWMgaXMgYSBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIHByb2dyYW0gXAotd2hpY2ggY2FuIGJlIHVzZWQgdG8gbW9uaXRvciBjaHJvbnlkJ3MgcGVyZm9ybWFuY2UgYW5kIHRvIGNoYW5nZSBcCi12YXJpb3VzIG9wZXJhdGluZyBwYXJhbWV0ZXJzIHdoaWxzdCBpdCBpcyBydW5uaW5nLiBcCi1cCi1UaGlzIHJlY2lwZSBwcm9kdWNlcyB0d28gYmluYXJ5IHBhY2thZ2VzOiAnY2hyb255JyB3aGljaCBjb250YWlucyBjaHJvbnlkLCBcCi10aGUgY29uZmlndXJhdGlvbiBmaWxlIGFuZCB0aGUgaW5pdCBzY3JpcHQsIGFuZCAnY2hyb255Yycgd2hpY2ggY29udGFpbnMgXAotdGhlIGNsaWVudCBwcm9ncmFtIG9ubHkuIgotCi1IT01FUEFHRSA9ICJodHRwOi8vY2hyb255LnR1eGZhbWlseS5vcmcvIgotU0VDVElPTiA9ICJuZXQiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9kb3dubG9hZC50dXhmYW1pbHkub3JnL2Nocm9ueS9jaHJvbnktJHtQVn0udGFyLmd6IFwKLSAgICBmaWxlOi8vY2hyb255LmNvbmYgXAotICAgIGZpbGU6Ly9jaHJvbnlkIFwKLSAgICBmaWxlOi8vYXJtX2VhYmkucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gImQwNTk4YWE4YTliZThmYWNjZWY5Mzg2ZjZmYzBkNWYyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjhkMDRlN2NkYTIzMzMyODljMjEwNGI3MzFkMzljM2MxZGI5NDgxNmU0M2JhZTM1ZDdlZTRlN2FlOGFmNjM5MWYiCi0KLURFUEVORFMgPSAicHBzLXRvb2xzIgotCi0jIE5vdGU6IERlc3BpdGUgYmVpbmcgYnVpbHQgdmlhICcuL2NvbmZpZ3VyZTsgbWFrZTsgbWFrZSBpbnN0YWxsJywKLSMgICAgICAgY2hyb255IGRvZXMgbm90IHVzZSBHTlUgQXV0b3Rvb2xzLgotaW5oZXJpdCB1cGRhdGUtcmMuZCBzeXN0ZW1kCi0KLSMgQ29uZmlndXJhdGlvbiBvcHRpb25zOgotIyAtIEZvciBjb21tYW5kIGxpbmUgZWRpdGluZyBzdXBwb3J0IGluIGNocm9ueWMsIHlvdSBtYXkgc3BlY2lmeSBlaXRoZXIKLSMgICAnZWRpdGxpbmUnIG9yICdyZWFkbGluZScgYnV0IG5vdCBib3RoLiAgZWRpdGxpbmUgaXMgc21hbGxlciwgYnV0Ci0jICAgbWFueSBzeXN0ZW1zIGFscmVhZHkgaGF2ZSByZWFkbGluZSBmb3Igb3RoZXIgcHVycG9zZXMgc28geW91IG1pZ2h0IHdhbnQKLSMgICB0byBjaG9vc2UgdGhhdCBpbnN0ZWFkLiAgSG93ZXZlciwgYmV3YXJlIGxpY2Vuc2UgaW5jb21wYXRpYmlsaXR5Ci0jICAgc2luY2UgY2hyb255IGlzIEdQTHYyIGFuZCByZWFkbGluZSB2ZXJzaW9ucyBhZnRlciA2LjAgYXJlIEdQTHYzKy4KLSMgICBZb3UgY2FuIG9mIGNvdXJzZSBjaG9vc2UgbmVpdGhlciwgYnV0IGlmIHlvdSdyZSB0aGF0IHRpZ2h0IG9uIHNwYWNlCi0jICAgY29uc2lkZXIgZHJvcHBpbmcgY2hyb255YyBlbnRpcmVseSAoeW91IGNhbiB1c2UgaXQgcmVtb3RlbHkgd2l0aAotIyAgIGFwcHJvcHJpYXRlIGNocm9ueS5jb25mIG9wdGlvbnMpLgotIyAtIFNlY3VyaXR5LXJlbGF0ZWQ6Ci0jICAgLSAnc2VjaGFzaCcgaXMgb21pdHRlZCBieSBkZWZhdWx0IGJlY2F1c2UgaXQgcHVsbHMgaW4gbnNzIHdoaWNoIGlzIGh1Z2UuCi0jICAgLSAncHJpdmRyb3AnIGFsbG93cyBjaHJvbnlkIHRvIHJ1biBhcyBub24tcm9vdDsgd291bGQgbmVlZCBjaGFuZ2VzIHRvCi0jICAgICBjaHJvbnkuY29uZiBhbmQgaW5pdCBzY3JpcHQuCi0jICAgLSAnc2NmaWx0ZXInIGVuYWJsZXMgc3VwcG9ydCBmb3Igc3lzdGVtIGNhbGwgZmlsdGVyaW5nLCBidXQgcmVxdWlyZXMgdGhlCi0jICAgICBrZXJuZWwgdG8gaGF2ZSBDT05GSUdfU0VDQ09NUCBlbmFibGVkLgotUEFDS0FHRUNPTkZJRyA/Pz0gImVkaXRsaW5lIFwKLSAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2JywgZCl9IFwKLSIKLVBBQ0tBR0VDT05GSUdbcmVhZGxpbmVdID0gIi0td2l0aG91dC1lZGl0bGluZSwtLXdpdGhvdXQtcmVhZGxpbmUscmVhZGxpbmUiCi1QQUNLQUdFQ09ORklHW2VkaXRsaW5lXSA9ICIsLS13aXRob3V0LWVkaXRsaW5lLGxpYmVkaXQiCi1QQUNLQUdFQ09ORklHW3NlY2hhc2hdID0gIi0td2l0aG91dC10b21jcnlwdCwtLWRpc2FibGUtc2VjaGFzaCxuc3MiCi1QQUNLQUdFQ09ORklHW3ByaXZkcm9wXSA9ICIsLS1kaXNhYmxlLXByaXZkcm9wLGxpYmNhcCIKLVBBQ0tBR0VDT05GSUdbc2NmaWx0ZXJdID0gIi0tZW5hYmxlLXNjZmlsdGVyLC0td2l0aG91dC1zZWNjb21wLGxpYnNlY2NvbXAiCi1QQUNLQUdFQ09ORklHW2lwdjZdID0gIiwtLWRpc2FibGUtaXB2NiwiCi1QQUNLQUdFQ09ORklHW25zc10gPSAiLS13aXRoLW5zcywtLXdpdGhvdXQtbnNzLG5zcyIKLVBBQ0tBR0VDT05GSUdbbGliY2FwXSA9ICItLXdpdGgtbGliY2FwLC0td2l0aG91dC1saWJjYXAsbGliY2FwIgotCi0jIC0tZGlzYWJsZS1zdGF0aWMgaXNuJ3Qgc3VwcG9ydGVkIGJ5IGNocm9ueSdzIGNvbmZpZ3VyZSBzY3JpcHQuCi1ESVNBQkxFX1NUQVRJQyA9ICIiCi0KLWRvX2NvbmZpZ3VyZSgpIHsKLSAgICAuL2NvbmZpZ3VyZSAtLXN5c2NvbmZkaXI9JHtzeXNjb25mZGlyfSAtLWJpbmRpcj0ke2JpbmRpcn0gLS1zYmluZGlyPSR7c2JpbmRpcn0gXAotICAgICAgICAgICAgICAgIC0tbG9jYWxzdGF0ZWRpcj0ke2xvY2Fsc3RhdGVkaXJ9IC0tZGF0YXJvb3RkaXI9JHtkYXRhZGlyfSBcCi0gICAgICAgICAgICAgICAgJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfQotfQotCi1kb19pbnN0YWxsKCkgewotICAgICMgQmluYXJpZXMKLSAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0KLSAgICBpbnN0YWxsIC1tIDA3NTUgJHtTfS9jaHJvbnljICR7RH0ke2JpbmRpcn0KLSAgICBpbnN0YWxsIC1kICR7RH0ke3NiaW5kaXJ9Ci0gICAgaW5zdGFsbCAtbSAwNzU1ICR7U30vY2hyb255ZCAke0R9JHtzYmluZGlyfQotCi0gICAgIyBDb25maWcgZmlsZQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0KLSAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L2Nocm9ueS5jb25mICR7RH0ke3N5c2NvbmZkaXJ9Ci0KLSAgICAjIFN5c3RlbSBWIGluaXQgc2NyaXB0Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICBpbnN0YWxsIC1tIDc1NSAke1dPUktESVJ9L2Nocm9ueWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCi0KLSAgICAjIHN5c3RlbWQgdW5pdCBjb25maWd1cmF0aW9uIGZpbGUKLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vZXhhbXBsZXMvY2hyb255ZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLwotCi0gICAgIyBWYXJpYWJsZSBkYXRhIChmb3IgZHJpZnQgYW5kL29yIHJ0YyBmaWxlKQotICAgIGluc3RhbGwgLWQgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2Nocm9ueQotCi0gICAgIyBMb2cgZmlsZXMKLSAgICBpbnN0YWxsIC1kICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xvZy9jaHJvbnkKLQotICAgICMgRml4IGhhcmQtY29kZWQgcGF0aHMgaW4gY29uZmlnIGZpbGVzIGFuZCBpbml0IHNjcmlwdHMKLSAgICBzZWQgLWkgLWUgJ3MhL3Zhci8hJHtsb2NhbHN0YXRlZGlyfS8hZycgLWUgJ3MhL2V0Yy8hJHtzeXNjb25mZGlyfS8hZycgXAotICAgICAgICAgICAtZSAncyEvdXNyL3NiaW4vISR7c2JpbmRpcn0vIWcnIC1lICdzIS91c3IvYmluLyEke2JpbmRpcn0vIWcnIFwKLSAgICAgICAgICAgJHtEfSR7c3lzY29uZmRpcn0vY2hyb255LmNvbmYgXAotICAgICAgICAgICAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvY2hyb255ZCBcCi0gICAgICAgICAgICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2Nocm9ueWQuc2VydmljZQotICAgIHNlZCAtaSAncyFeUEFUSD0uKiFQQVRIPSR7YmFzZV9zYmluZGlyfToke2Jhc2VfYmluZGlyfToke3NiaW5kaXJ9OiR7YmluZGlyfSEnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9jaHJvbnlkCi0gICAgc2VkIC1pICdzIV5FbnZpcm9ubWVudEZpbGU9LiohRW52aXJvbm1lbnRGaWxlPS0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvY2hyb255ZCEnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2Nocm9ueWQuc2VydmljZQotfQotCi1GSUxFU18ke1BOfSA9ICIke3NiaW5kaXJ9L2Nocm9ueWQgJHtzeXNjb25mZGlyfSAke2xvY2Fsc3RhdGVkaXJ9IgotQ09ORkZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0vY2hyb255LmNvbmYiCi1JTklUU0NSSVBUX05BTUUgPSAiY2hyb255ZCIKLUlOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIgotU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfSIKLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJjaHJvbnlkLnNlcnZpY2UiCi0KLSMgSXQncyBwcm9iYWJseSBhIGJhZCBpZGVhIHRvIHJ1biBjaHJvbnkgYW5kIGFub3RoZXIgdGltZSBkYWVtb24gb24KLSMgdGhlIHNhbWUgc3lzdGVtLiAgc3lzdGVtZCBpbmNsdWRlcyB0aGUgU05UUCBjbGllbnQgJ3RpbWVzeW5jZCcsIHdoaWNoCi0jIHdpbGwgYmUgZGlzYWJsZWQgYnkgY2hyb255ZC5zZXJ2aWNlLCBob3dldmVyIGl0IHdpbGwgcmVtYWluIG9uIHRoZSByb290ZnMKLSMgd2FzdGluZyAxNTAga0IgdW5sZXNzIHlvdSBwdXQgJ1BBQ0tBR0VDT05GSUdfcmVtb3ZlX3BuLXN5c3RlbWQgPSAidGltZXN5bmNkIicKLSMgaW4gYSBjb25mIGZpbGUgb3IgYmJhcHBlbmQgc29tZXdoZXJlLgotUkNPTkZMSUNUU18ke1BOfSA9ICJudHAgbnRpbWVkIgotCi0jIFNlcGFyYXRlIHRoZSBjbGllbnQgcHJvZ3JhbSBpbnRvIGl0cyBvd24gcGFja2FnZQotUEFDS0FHRVMgPSsgImNocm9ueWMiCi1GSUxFU19jaHJvbnljID0gIiR7YmluZGlyfS9jaHJvbnljIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Nocm9ueS9jaHJvbnlfMy4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Nocm9ueS9jaHJvbnlfMy4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiOTBhMzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2hyb255L2Nocm9ueV8zLjIuYmIKQEAgLTAsMCArMSwxMzQgQEAKK1NVTU1BUlkgPSAiVmVyc2F0aWxlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBOZXR3b3JrIFRpbWUgUHJvdG9jb2wiCitERVNDUklQVElPTiA9ICJDaHJvbnkgY2FuIHN5bmNocm9uaXplIHRoZSBzeXN0ZW0gY2xvY2sgd2l0aCBOVFAgXAorc2VydmVycywgcmVmZXJlbmNlIGNsb2NrcyAoZS5nLiBHUFMgcmVjZWl2ZXIpLCBhbmQgbWFudWFsIGlucHV0IHVzaW5nIFwKK3dyaXN0d2F0Y2ggYW5kIGtleWJvYXJkLiBJdCBjYW4gYWxzbyBvcGVyYXRlIGFzIGFuIE5UUHY0IChSRkMgNTkwNSkgXAorc2VydmVyIGFuZCBwZWVyIHRvIHByb3ZpZGUgYSB0aW1lIHNlcnZpY2UgdG8gb3RoZXIgY29tcHV0ZXJzIGluIHRoZSBcCituZXR3b3JrLiBcCitcCitJdCBpcyBkZXNpZ25lZCB0byBwZXJmb3JtIHdlbGwgaW4gYSB3aWRlIHJhbmdlIG9mIGNvbmRpdGlvbnMsIFwKK2luY2x1ZGluZyBpbnRlcm1pdHRlbnQgbmV0d29yayBjb25uZWN0aW9ucywgaGVhdmlseSBjb25nZXN0ZWQgXAorbmV0d29ya3MsIGNoYW5naW5nIHRlbXBlcmF0dXJlcyAob3JkaW5hcnkgY29tcHV0ZXIgY2xvY2tzIGFyZSBcCitzZW5zaXRpdmUgdG8gdGVtcGVyYXR1cmUpLCBhbmQgc3lzdGVtcyB0aGF0IGRvIG5vdCBydW4gY29udGludW91c2x5LCBvciBcCitydW4gb24gYSB2aXJ0dWFsIG1hY2hpbmUuIFwKK1wKK1R5cGljYWwgYWNjdXJhY3kgYmV0d2VlbiB0d28gbWFjaGluZXMgb24gYSBMQU4gaXMgaW4gdGVucywgb3IgYSBmZXcgXAoraHVuZHJlZHMsIG9mIG1pY3Jvc2Vjb25kczsgb3ZlciB0aGUgSW50ZXJuZXQsIGFjY3VyYWN5IGlzIHR5cGljYWxseSBcCit3aXRoaW4gYSBmZXcgbWlsbGlzZWNvbmRzLiBXaXRoIGEgZ29vZCBoYXJkd2FyZSByZWZlcmVuY2UgY2xvY2sgXAorc3ViLW1pY3Jvc2Vjb25kIGFjY3VyYWN5IGlzIHBvc3NpYmxlLiBcCitcCitUd28gcHJvZ3JhbXMgYXJlIGluY2x1ZGVkIGluIGNocm9ueTogY2hyb255ZCBpcyBhIGRhZW1vbiB0aGF0IGNhbiBiZSBcCitzdGFydGVkIGF0IGJvb3QgdGltZSBhbmQgY2hyb255YyBpcyBhIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UgcHJvZ3JhbSBcCit3aGljaCBjYW4gYmUgdXNlZCB0byBtb25pdG9yIGNocm9ueWQncyBwZXJmb3JtYW5jZSBhbmQgdG8gY2hhbmdlIFwKK3ZhcmlvdXMgb3BlcmF0aW5nIHBhcmFtZXRlcnMgd2hpbHN0IGl0IGlzIHJ1bm5pbmcuIFwKK1wKK1RoaXMgcmVjaXBlIHByb2R1Y2VzIHR3byBiaW5hcnkgcGFja2FnZXM6ICdjaHJvbnknIHdoaWNoIGNvbnRhaW5zIGNocm9ueWQsIFwKK3RoZSBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHRoZSBpbml0IHNjcmlwdCwgYW5kICdjaHJvbnljJyB3aGljaCBjb250YWlucyBcCit0aGUgY2xpZW50IHByb2dyYW0gb25seS4iCisKK0hPTUVQQUdFID0gImh0dHBzOi8vY2hyb255LnR1eGZhbWlseS5vcmcvIgorU0VDVElPTiA9ICJuZXQiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9kb3dubG9hZC50dXhmYW1pbHkub3JnL2Nocm9ueS9jaHJvbnktJHtQVn0udGFyLmd6IFwKKyAgICBmaWxlOi8vY2hyb255LmNvbmYgXAorICAgIGZpbGU6Ly9jaHJvbnlkIFwKKyAgICBmaWxlOi8vYXJtX2VhYmkucGF0Y2ggXAorIgorU1JDX1VSSVttZDVzdW1dID0gImY0YzRlYjBkYzkyZjM1ZWU0YmI3ZDNkY2Q4MDI5ZWNiIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMyOWY2NzE4ZGQ4YzNlY2UzZWVlNzhiZTFmNDgyMWNiYmViNjI2MDhlN2QyM2YyNWRhMjkzY2ZhNDMzYzQxMTYiCisKK0RFUEVORFMgPSAicHBzLXRvb2xzIgorCisjIE5vdGU6IERlc3BpdGUgYmVpbmcgYnVpbHQgdmlhICcuL2NvbmZpZ3VyZTsgbWFrZTsgbWFrZSBpbnN0YWxsJywKKyMgICAgICAgY2hyb255IGRvZXMgbm90IHVzZSBHTlUgQXV0b3Rvb2xzLgoraW5oZXJpdCB1cGRhdGUtcmMuZCBzeXN0ZW1kCisKKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zOgorIyAtIEZvciBjb21tYW5kIGxpbmUgZWRpdGluZyBzdXBwb3J0IGluIGNocm9ueWMsIHlvdSBtYXkgc3BlY2lmeSBlaXRoZXIKKyMgICAnZWRpdGxpbmUnIG9yICdyZWFkbGluZScgYnV0IG5vdCBib3RoLiAgZWRpdGxpbmUgaXMgc21hbGxlciwgYnV0CisjICAgbWFueSBzeXN0ZW1zIGFscmVhZHkgaGF2ZSByZWFkbGluZSBmb3Igb3RoZXIgcHVycG9zZXMgc28geW91IG1pZ2h0IHdhbnQKKyMgICB0byBjaG9vc2UgdGhhdCBpbnN0ZWFkLiAgSG93ZXZlciwgYmV3YXJlIGxpY2Vuc2UgaW5jb21wYXRpYmlsaXR5CisjICAgc2luY2UgY2hyb255IGlzIEdQTHYyIGFuZCByZWFkbGluZSB2ZXJzaW9ucyBhZnRlciA2LjAgYXJlIEdQTHYzKy4KKyMgICBZb3UgY2FuIG9mIGNvdXJzZSBjaG9vc2UgbmVpdGhlciwgYnV0IGlmIHlvdSdyZSB0aGF0IHRpZ2h0IG9uIHNwYWNlCisjICAgY29uc2lkZXIgZHJvcHBpbmcgY2hyb255YyBlbnRpcmVseSAoeW91IGNhbiB1c2UgaXQgcmVtb3RlbHkgd2l0aAorIyAgIGFwcHJvcHJpYXRlIGNocm9ueS5jb25mIG9wdGlvbnMpLgorIyAtIFNlY3VyaXR5LXJlbGF0ZWQ6CisjICAgLSAnc2VjaGFzaCcgaXMgb21pdHRlZCBieSBkZWZhdWx0IGJlY2F1c2UgaXQgcHVsbHMgaW4gbnNzIHdoaWNoIGlzIGh1Z2UuCisjICAgLSAncHJpdmRyb3AnIGFsbG93cyBjaHJvbnlkIHRvIHJ1biBhcyBub24tcm9vdDsgd291bGQgbmVlZCBjaGFuZ2VzIHRvCisjICAgICBjaHJvbnkuY29uZiBhbmQgaW5pdCBzY3JpcHQuCisjICAgLSAnc2NmaWx0ZXInIGVuYWJsZXMgc3VwcG9ydCBmb3Igc3lzdGVtIGNhbGwgZmlsdGVyaW5nLCBidXQgcmVxdWlyZXMgdGhlCisjICAgICBrZXJuZWwgdG8gaGF2ZSBDT05GSUdfU0VDQ09NUCBlbmFibGVkLgorUEFDS0FHRUNPTkZJRyA/Pz0gImVkaXRsaW5lIFwKKyAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2JywgZCl9IFwKKyIKK1BBQ0tBR0VDT05GSUdbcmVhZGxpbmVdID0gIi0td2l0aG91dC1lZGl0bGluZSwtLXdpdGhvdXQtcmVhZGxpbmUscmVhZGxpbmUiCitQQUNLQUdFQ09ORklHW2VkaXRsaW5lXSA9ICIsLS13aXRob3V0LWVkaXRsaW5lLGxpYmVkaXQiCitQQUNLQUdFQ09ORklHW3NlY2hhc2hdID0gIi0td2l0aG91dC10b21jcnlwdCwtLWRpc2FibGUtc2VjaGFzaCxuc3MiCitQQUNLQUdFQ09ORklHW3ByaXZkcm9wXSA9ICIsLS1kaXNhYmxlLXByaXZkcm9wLGxpYmNhcCIKK1BBQ0tBR0VDT05GSUdbc2NmaWx0ZXJdID0gIi0tZW5hYmxlLXNjZmlsdGVyLC0td2l0aG91dC1zZWNjb21wLGxpYnNlY2NvbXAiCitQQUNLQUdFQ09ORklHW2lwdjZdID0gIiwtLWRpc2FibGUtaXB2NiwiCitQQUNLQUdFQ09ORklHW25zc10gPSAiLS13aXRoLW5zcywtLXdpdGhvdXQtbnNzLG5zcyIKK1BBQ0tBR0VDT05GSUdbbGliY2FwXSA9ICItLXdpdGgtbGliY2FwLC0td2l0aG91dC1saWJjYXAsbGliY2FwIgorCisjIC0tZGlzYWJsZS1zdGF0aWMgaXNuJ3Qgc3VwcG9ydGVkIGJ5IGNocm9ueSdzIGNvbmZpZ3VyZSBzY3JpcHQuCitESVNBQkxFX1NUQVRJQyA9ICIiCisKK2RvX2NvbmZpZ3VyZSgpIHsKKyAgICAuL2NvbmZpZ3VyZSAtLXN5c2NvbmZkaXI9JHtzeXNjb25mZGlyfSAtLWJpbmRpcj0ke2JpbmRpcn0gLS1zYmluZGlyPSR7c2JpbmRpcn0gXAorICAgICAgICAgICAgICAgIC0tbG9jYWxzdGF0ZWRpcj0ke2xvY2Fsc3RhdGVkaXJ9IC0tZGF0YXJvb3RkaXI9JHtkYXRhZGlyfSBcCisgICAgICAgICAgICAgICAgJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfQorfQorCitkb19pbnN0YWxsKCkgeworICAgICMgQmluYXJpZXMKKyAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0KKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtTfS9jaHJvbnljICR7RH0ke2JpbmRpcn0KKyAgICBpbnN0YWxsIC1kICR7RH0ke3NiaW5kaXJ9CisgICAgaW5zdGFsbCAtbSAwNzU1ICR7U30vY2hyb255ZCAke0R9JHtzYmluZGlyfQorCisgICAgIyBDb25maWcgZmlsZQorICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0KKyAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L2Nocm9ueS5jb25mICR7RH0ke3N5c2NvbmZkaXJ9CisKKyAgICAjIFN5c3RlbSBWIGluaXQgc2NyaXB0CisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBpbnN0YWxsIC1tIDc1NSAke1dPUktESVJ9L2Nocm9ueWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisKKyAgICAjIHN5c3RlbWQgdW5pdCBjb25maWd1cmF0aW9uIGZpbGUKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vZXhhbXBsZXMvY2hyb255ZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLworCisgICAgIyBWYXJpYWJsZSBkYXRhIChmb3IgZHJpZnQgYW5kL29yIHJ0YyBmaWxlKQorICAgIGluc3RhbGwgLWQgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2Nocm9ueQorCisgICAgIyBMb2cgZmlsZXMKKyAgICBpbnN0YWxsIC1kICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xvZy9jaHJvbnkKKworICAgICMgRml4IGhhcmQtY29kZWQgcGF0aHMgaW4gY29uZmlnIGZpbGVzIGFuZCBpbml0IHNjcmlwdHMKKyAgICBzZWQgLWkgLWUgJ3MhL3Zhci8hJHtsb2NhbHN0YXRlZGlyfS8hZycgLWUgJ3MhL2V0Yy8hJHtzeXNjb25mZGlyfS8hZycgXAorICAgICAgICAgICAtZSAncyEvdXNyL3NiaW4vISR7c2JpbmRpcn0vIWcnIC1lICdzIS91c3IvYmluLyEke2JpbmRpcn0vIWcnIFwKKyAgICAgICAgICAgJHtEfSR7c3lzY29uZmRpcn0vY2hyb255LmNvbmYgXAorICAgICAgICAgICAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvY2hyb255ZCBcCisgICAgICAgICAgICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2Nocm9ueWQuc2VydmljZQorICAgIHNlZCAtaSAncyFeUEFUSD0uKiFQQVRIPSR7YmFzZV9zYmluZGlyfToke2Jhc2VfYmluZGlyfToke3NiaW5kaXJ9OiR7YmluZGlyfSEnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9jaHJvbnlkCisgICAgc2VkIC1pICdzIV5FbnZpcm9ubWVudEZpbGU9LiohRW52aXJvbm1lbnRGaWxlPS0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvY2hyb255ZCEnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2Nocm9ueWQuc2VydmljZQorfQorCitGSUxFU18ke1BOfSA9ICIke3NiaW5kaXJ9L2Nocm9ueWQgJHtzeXNjb25mZGlyfSAke2xvY2Fsc3RhdGVkaXJ9IgorQ09ORkZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0vY2hyb255LmNvbmYiCitJTklUU0NSSVBUX05BTUUgPSAiY2hyb255ZCIKK0lOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIgorU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfSIKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJjaHJvbnlkLnNlcnZpY2UiCisKKyMgSXQncyBwcm9iYWJseSBhIGJhZCBpZGVhIHRvIHJ1biBjaHJvbnkgYW5kIGFub3RoZXIgdGltZSBkYWVtb24gb24KKyMgdGhlIHNhbWUgc3lzdGVtLiAgc3lzdGVtZCBpbmNsdWRlcyB0aGUgU05UUCBjbGllbnQgJ3RpbWVzeW5jZCcsIHdoaWNoCisjIHdpbGwgYmUgZGlzYWJsZWQgYnkgY2hyb255ZC5zZXJ2aWNlLCBob3dldmVyIGl0IHdpbGwgcmVtYWluIG9uIHRoZSByb290ZnMKKyMgd2FzdGluZyAxNTAga0IgdW5sZXNzIHlvdSBwdXQgJ1BBQ0tBR0VDT05GSUdfcmVtb3ZlX3BuLXN5c3RlbWQgPSAidGltZXN5bmNkIicKKyMgaW4gYSBjb25mIGZpbGUgb3IgYmJhcHBlbmQgc29tZXdoZXJlLgorUkNPTkZMSUNUU18ke1BOfSA9ICJudHAgbnRpbWVkIgorCisjIFNlcGFyYXRlIHRoZSBjbGllbnQgcHJvZ3JhbSBpbnRvIGl0cyBvd24gcGFja2FnZQorUEFDS0FHRVMgPSsgImNocm9ueWMiCitGSUxFU19jaHJvbnljID0gIiR7YmluZGlyfS9jaHJvbnljIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2NpZnMvY2lmcy11dGlsc19naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2lmcy9jaWZzLXV0aWxzX2dpdC5iYgppbmRleCAzY2E1Yjc4Li4xOThlM2VmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2lmcy9jaWZzLXV0aWxzX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2lmcy9jaWZzLXV0aWxzX2dpdC5iYgpAQCAtNyw3ICs3LDkgQEAKIFBWID0gIjYuNyIKIAogU1JDUkVWID0gIjgxMDFhMDc4NzFmMTg1YzcwNDRmYTJjYTIyMWIyODJhYjQ2MDdjOGIiCi1TUkNfVVJJID0gImdpdDovL2dpdC5zYW1iYS5vcmcvY2lmcy11dGlscy5naXQiCitTUkNfVVJJID0gImdpdDovL2dpdC5zYW1iYS5vcmcvY2lmcy11dGlscy5naXQgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1tb3VudC5jaWZzLVJlbW92ZS1kYXRhX2Jsb2IuaC1pbmNsdWRlLnBhdGNoIFwKKyAgICAgICAgICAiCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiBERVBFTkRTICs9ICJsaWJ0YWxsb2MiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2lmcy9maWxlcy8wMDAxLW1vdW50LmNpZnMtUmVtb3ZlLWRhdGFfYmxvYi5oLWluY2x1ZGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2lmcy9maWxlcy8wMDAxLW1vdW50LmNpZnMtUmVtb3ZlLWRhdGFfYmxvYi5oLWluY2x1ZGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdmMmE1NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9jaWZzL2ZpbGVzLzAwMDEtbW91bnQuY2lmcy1SZW1vdmUtZGF0YV9ibG9iLmgtaW5jbHVkZS5wYXRjaApAQCAtMCwwICsxLDMyIEBACitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CitTaWduZWQtb2ZmLWJ5OiBTLiBMb2Nrd29vZC1DaGlsZHMgPHNqbEB2Y3RsYWJzLmNvbT4KKworRnJvbSAyNzJkNTIzYTU3YTRlODc5MWQ2MjVhNDc5MTI4NjEzYmU1ZTQwMWY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVGhvbWFzIFdpdHQgPHB5cm9tYW5pYWNAZXhoZXJiby5vcmc+CitEYXRlOiBXZWQsIDE1IE1hciAyMDE3IDIwOjIwOjQ0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIG1vdW50LmNpZnM6IFJlbW92ZSBkYXRhX2Jsb2IuaCBpbmNsdWRlCisKK2RhdGFfYmxvYi5oIGluY2x1ZGVzIHRhbGxvYy5oIGZyb20gbGlidGFsbG9jLCBidXQgdGhhdCBpcyBvbmx5IG1hcmtlZCBhcworYSBkZXBlbmRlbmN5IGZvciBjaWZzLnVwY2FsbC4gTm8gc3ltYm9scyBmcm9tIHRoYXQgaGVhZGVyIGFyZSB1c2VkIGJ5CitjaWZzLm1vdW50LCBzbyByZW1vdmUgaXQgdG8gYXZvaWQgdGhlIGxpYnRhbGxvYyBkZXBlbmRlbmN5CisKK1NpZ25lZC1vZmYtYnk6IFRob21hcyBXaXR0IDxweXJvbWFuaWFjQGV4aGVyYm8ub3JnPgorLS0tCisgbW91bnQuY2lmcy5jIHwgMSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL21vdW50LmNpZnMuYyBiL21vdW50LmNpZnMuYworaW5kZXggMTNiNzFlZi4uMjYxMmZlYiAxMDA2NDQKKy0tLSBhL21vdW50LmNpZnMuYworKysrIGIvbW91bnQuY2lmcy5jCitAQCAtNjEsNyArNjEsNiBAQAorICNpbmNsdWRlICJtb3VudC5oIgorICNpbmNsdWRlICJ1dGlsLmgiCisgI2luY2x1ZGUgInJlc29sdmVfaG9zdC5oIgorLSNpbmNsdWRlICJkYXRhX2Jsb2IuaCIKKyAKKyAjaWZuZGVmIE1TX01PVkUgCisgI2RlZmluZSBNU19NT1ZFIDgxOTIgCistLSAKKzEuOS40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9jaW0tc2NoZW1hL2NpbS1zY2hlbWEtZXhwZXJfMi4zOS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2NpbS1zY2hlbWEvY2ltLXNjaGVtYS1leHBlcl8yLjM5LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNDkwOTYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2NpbS1zY2hlbWEvY2ltLXNjaGVtYS1leHBlcl8yLjM5LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1yZXF1aXJlIGNpbS1zY2hlbWEuaW5jCi0KLUxJQ0VOU0UgPSAiRE1URiIKLQotUkNPTkZMSUNUU18ke1BOfSA9ICJjaW0tc2NoZW1hLWZpbmFsIgotCi1TUkNfVVJJID0gImh0dHA6Ly9kbXRmLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVzL2NpbS9jaW1fc2NoZW1hX3YyMzkwL2NpbV9zY2hlbWFfJHtQVn1FeHBlcmltZW50YWwtTU9Gcy56aXA7c3ViZGlyPSR7QlBOfS0ke1BWfSBcCi0gICAgZmlsZTovL0xJQ0VOU0UgXAotIgotU1JDX1VSSVttZDVzdW1dID0gImI4MmIzMWM2MDljNmJjYzY5NTIxODI5NDA5ZjU4Y2NjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImVkMjA5NmVmMWVhMjVkMTg5YTAyYmJjNjYwM2ZlZDdhNDgyOTdmMjk4N2YyNTQyNjU3NjNhNmVlY2I3ZmM4NzAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke1dPUktESVJ9L0xJQ0VOU0U7bWQ1PWVlY2M2ZjcxYTU2ZmYzY2FmMTdmMTViZjdhZWFjN2I0IgotCi1kb19pbnN0YWxsKCkgewotICAgIGluc3RhbGwgLWQgLW0gMDc1NSAke0R9JHtkYXRhZGlyfS9tb2YvY2ltdiR7UFZ9LwotICAgIGluc3RhbGwgLWQgLW0gMDc1NSAke0R9JHtkYXRhZGlyfS9kb2MvY2ltLXNjaGVtYS0ke1BWfQotICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vTElDRU5TRSAke0R9JHtkYXRhZGlyfS9kb2MvY2ltLXNjaGVtYS0ke1BWfQotCi0gICAgY3AgLVIgLS1uby1kZXJlZmVyZW5jZSAtLXByZXNlcnZlPW1vZGUsbGlua3MgLXYgJHtTfS8qICR7RH0ke2RhdGFkaXJ9L21vZi9jaW12JHtQVn0vCi0gICAgY2hvd24gLVIgcm9vdDpyb290ICR7RH0ke2RhdGFkaXJ9L21vZi9jaW12JHtQVn0KLSAgICBmb3IgaSBpbiBgZmluZCAke0R9JHtkYXRhZGlyfS9tb2YvY2ltdiR7UFZ9IC1uYW1lICIqLm1vZiJgOyBkbwotICAgICAgICBzZWQgLWkgLWUgJ3MvXHIvL2cnICRpCi0gICAgZG9uZQotICAgIGxuIC1zIGNpbXYke1BWfSAke0R9JHtkYXRhZGlyfS9tb2YvY2ltLWN1cnJlbnQKLSAgICBsbiAtcyBjaW1fc2NoZW1hXyR7UFZ9Lm1vZiAke0R9JHtkYXRhZGlyfS9tb2YvY2ltLWN1cnJlbnQvQ0lNX1NjaGVtYS5tb2YKLX0KLQotRklMRVNfJHtQTn0gPSAiJHtkYXRhZGlyfS9tb2YvKiAke2RhdGFkaXJ9L2RvYy8qIgotRklMRVNfJHtQTn0tZG9jID0gIiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9jaW0tc2NoZW1hL2NpbS1zY2hlbWEtZXhwZXJfMi41MC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2NpbS1zY2hlbWEvY2ltLXNjaGVtYS1leHBlcl8yLjUwLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBlYTg4MgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9jaW0tc2NoZW1hL2NpbS1zY2hlbWEtZXhwZXJfMi41MC4wLmJiCkBAIC0wLDAgKzEsMjkgQEAKK3JlcXVpcmUgY2ltLXNjaGVtYS5pbmMKKworTElDRU5TRSA9ICJETVRGIgorCitSQ09ORkxJQ1RTXyR7UE59ID0gImNpbS1zY2hlbWEtZmluYWwiCisKK1NSQ19VUkkgPSAiaHR0cDovL2RtdGYub3JnL3NpdGVzL2RlZmF1bHQvZmlsZXMvY2ltL2NpbV9zY2hlbWFfdjI1MDAvY2ltX3NjaGVtYV8ke1BWfUV4cGVyaW1lbnRhbC1NT0ZzLnppcDtzdWJkaXI9JHtCUE59LSR7UFZ9IFwKKyAgICBmaWxlOi8vTElDRU5TRSBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiZWU0YWQ2NDQxYTJiNjVjYTYwYTNhYmM1M2UzZWM2MjkiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTQ0ZDY3ODgxMzI1ZTI2N2VmNDZiNzJlYWJlMGM2OWY5MDQ3MGIxMDMzYjFjZTdjMjZkOWJhOTkwNzJhZGI1MCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7V09SS0RJUn0vTElDRU5TRTttZDU9ZWVjYzZmNzFhNTZmZjNjYWYxN2YxNWJmN2FlYWM3YjQiCisKK2RvX2luc3RhbGwoKSB7CisgICAgaW5zdGFsbCAtZCAtbSAwNzU1ICR7RH0ke2RhdGFkaXJ9L21vZi9jaW12JHtQVn0vCisgICAgaW5zdGFsbCAtZCAtbSAwNzU1ICR7RH0ke2RhdGFkaXJ9L2RvYy9jaW0tc2NoZW1hLSR7UFZ9CisgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9MSUNFTlNFICR7RH0ke2RhdGFkaXJ9L2RvYy9jaW0tc2NoZW1hLSR7UFZ9CisKKyAgICBjcCAtUiAtLW5vLWRlcmVmZXJlbmNlIC0tcHJlc2VydmU9bW9kZSxsaW5rcyAtdiAke1N9LyogJHtEfSR7ZGF0YWRpcn0vbW9mL2NpbXYke1BWfS8KKyAgICBjaG93biAtUiByb290OnJvb3QgJHtEfSR7ZGF0YWRpcn0vbW9mL2NpbXYke1BWfQorICAgIGZvciBpIGluIGBmaW5kICR7RH0ke2RhdGFkaXJ9L21vZi9jaW12JHtQVn0gLW5hbWUgIioubW9mImA7IGRvCisgICAgICAgIHNlZCAtaSAtZSAncy9cci8vZycgJGkKKyAgICBkb25lCisgICAgbG4gLXMgY2ltdiR7UFZ9ICR7RH0ke2RhdGFkaXJ9L21vZi9jaW0tY3VycmVudAorICAgIGxuIC1zIGNpbV9zY2hlbWFfJHtQVn0ubW9mICR7RH0ke2RhdGFkaXJ9L21vZi9jaW0tY3VycmVudC9DSU1fU2NoZW1hLm1vZgorfQorCitGSUxFU18ke1BOfSA9ICIke2RhdGFkaXJ9L21vZi8qICR7ZGF0YWRpcn0vZG9jLyoiCitGSUxFU18ke1BOfS1kb2MgPSAiIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2N0ZGIvY3RkYi8wMi1saW5rLXJlcF9zbnByaW50Zi1mb3ItbHRkYnRvb2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY3RkYi9jdGRiLzAyLWxpbmstcmVwX3NucHJpbnRmLWZvci1sdGRidG9vbC5wYXRjaAppbmRleCAxZGQ5YjkzLi4xMjk0ZmU0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY3RkYi9jdGRiLzAyLWxpbmstcmVwX3NucHJpbnRmLWZvci1sdGRidG9vbC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY3RkYi9jdGRiLzAyLWxpbmstcmVwX3NucHJpbnRmLWZvci1sdGRidG9vbC5wYXRjaApAQCAtMiwxNSArMiwxNiBAQAogCiBTaWduZWQtb2ZmLWJ5OiBCaWFuIE5haW1lbmcgPGJpYW5ubUBjbi5mdWppdHN1LmNvbT4KIAotZGlmZiAtTnVycCBjdGRiLTIuNS4xLm9yaWcvTWFrZWZpbGUuaW4gY3RkYi0yLjUuMS9NYWtlZmlsZS5pbgotLS0tIGN0ZGItMi41LjEub3JpZy9NYWtlZmlsZS5pbgkyMDE1LTA1LTA3IDE2OjQzOjM5LjI3NjAwMDIzNiArMDkwMAotKysrIGN0ZGItMi41LjEvTWFrZWZpbGUuaW4JMjAxNS0wNS0wNyAxNjo0NDowOS42MjcwMDAyMzcgKzA5MDAKLUBAIC0xNzAsNyArMTcwLDcgQEAgYmluL2N0ZGI6ICQoQ1REQl9DTElFTlRfT0JKKSB0b29scy9jdGRiLgorSW5kZXg6IGN0ZGItMi41LjYvTWFrZWZpbGUuaW4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjdGRiLTIuNS42Lm9yaWcvTWFrZWZpbGUuaW4KKysrKyBjdGRiLTIuNS42L01ha2VmaWxlLmluCitAQCAtMTc2LDcgKzE3Niw3IEBAIGJpbi9jdGRiOiAkKENUREJfQ0xJRU5UX09CSikgdG9vbHMvY3RkYi4KICAJQGVjaG8gTGlua2luZyAkQAogIAkkKFdSQVBQRVIpICQoQ0MpICQoQ0ZMQUdTKSAtbyAkQCB0b29scy9jdGRiLm8gdG9vbHMvY3RkYl92YWN1dW0ubyAkKENUREJfQ0xJRU5UX09CSikgJChMSUJfRkxBR1MpCiAgCiAtYmluL2x0ZGJ0b29sOiB0b29scy9sdGRidG9vbC5vICQoVERCX09CSikKICtiaW4vbHRkYnRvb2w6IHRvb2xzL2x0ZGJ0b29sLm8gJChUREJfT0JKKSBsaWIvcmVwbGFjZS9zbnByaW50Zi5vCiAgCUBlY2hvIExpbmtpbmcgJEAKLSAJJChXUkFQUEVSKSAkKENDKSAkKENGTEFHUykgLW8gJEAgJCsgJChUREJfTElCUykgJChMSUJfRkxBR1MpCisgCSQoV1JBUFBFUikgJChDQykgJChDRkxBR1MpIC1vICRAICQrICQoTElCX0ZMQUdTKQogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RvdmVjb3QvZG92ZWNvdF8yLjIuMjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZG92ZWNvdC9kb3ZlY290XzIuMi4yOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY2MzQwOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZG92ZWNvdC9kb3ZlY290XzIuMi4yOS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLVNVTU1BUlkgPSAiRG92ZWNvdCBpcyBhbiBvcGVuIHNvdXJjZSBJTUFQIGFuZCBQT1AzIGVtYWlsIHNlcnZlciIKLUhPTUVQQUdFID0gImh0dHBzOi8vd3d3LmRvdmVjb3Qub3JnLyIKLURFU0NSSVBUSU9OID0gIkRvdmVjb3QgaXMgYW4gb3BlbiBzb3VyY2UgSU1BUCBhbmQgUE9QMyBlbWFpbCBzZXJ2ZXIgZm9yIExpbnV4L1VOSVgtbGlrZSBzeXN0ZW1zLCB3cml0dGVuIHdpdGggc2VjdXJpdHkgcHJpbWFyaWx5IGluIG1pbmQuIERvdmVjb3QgaXMgYW4gZXhjZWxsZW50IGNob2ljZSBmb3IgYm90aCBzbWFsbCBhbmQgbGFyZ2UgaW5zdGFsbGF0aW9ucy4gSXQncyBmYXN0LCBzaW1wbGUgdG8gc2V0IHVwLCByZXF1aXJlcyBubyBzcGVjaWFsIGFkbWluaXN0cmF0aW9uIGFuZCBpdCB1c2VzIHZlcnkgbGl0dGxlIG1lbW9yeS4iCi1TRUNUSU9OID0gIm1haWwiCi1MSUNFTlNFID0gIkxHUEx2Mi4xICYgTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTk4MTM3OWJkMGYxYzM2MmY4ZDFkMjE1MTVlNWIzMGIiCi0KLVNSQ19VUkkgPSAiaHR0cDovL2RvdmVjb3Qub3JnL3JlbGVhc2VzLzIuMi9kb3ZlY290LSR7UFZ9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS5hYy1jb252ZXJ0LUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTkstc3RhdGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vZG92ZWNvdC5zZXJ2aWNlIFwKLSAgICAgICAgICAgZmlsZTovL2RvdmVjb3Quc29ja2V0IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtZG92ZWFkbS1GaXgtcGFyYWxsZWwtYnVpbGQucGF0Y2ggXAotICAgICAgICAgICAiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJmZjk1NDg2YTVjNDMwMjVhMmMzZjVhNzEyZTc5NjJiOSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkOTM5ZWE5OTEyNmViOGE4YzY5NTUzOTBiNDIyYjZlMjdlYzBmYTQzYTNiNTliMmIzMjE4Y2I1YWQ2NzEzOWE2IgotCi1ERVBFTkRTID0gIm9wZW5zc2wgeHogemxpYiBiemlwMiBsaWJjYXAgaWN1IgotCi1ERVBFTkRTX2FwcGVuZF9saWJjLW11c2wgPSAiIGxpYnRpcnBjIgotQ0ZMQUdTX2FwcGVuZF9saWJjLW11c2wgPSAiIC1JJHtTVEFHSU5HX0lOQ0RJUn0vdGlycGMiCi1MREZMQUdTX2FwcGVuZF9saWJjLW11c2wgPSAiIC1sdGlycGMiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBzeXN0ZW1kIHVzZXJhZGQKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2xkYXAgcGFtJywgZCl9IgotCi1QQUNLQUdFQ09ORklHW3BhbV0gPSAiLS13aXRoLXBhbSwtLXdpdGhvdXQtcGFtLGxpYnBhbSwiCi1QQUNLQUdFQ09ORklHW2xkYXBdID0gIi0td2l0aC1sZGFwPXBsdWdpbiwtLXdpdGhvdXQtbGRhcCxvcGVubGRhcCwiCi1QQUNLQUdFQ09ORklHW2x6NF0gPSAiLS13aXRoLWx6NCwtLXdpdGhvdXQtbHo0LGx6NCwiCi0KLSMgRnJvbSBuYXRpdmUgYnVpbGQgaW4gYXJtdjdhLWhmL2VnbGliYwotQ0FDSEVEX0NPTkZJR1VSRVZBUlMgKz0gImlfY3Zfc2lnbmVkX3NpemVfdD1ubyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgaV9jdl9nbXRpbWVfbWF4X3RpbWVfdD0zMiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgaV9jdl9zaWduZWRfdGltZV90PXllcyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgaV9jdl9tbWFwX3BsYXlzX3dpdGhfd3JpdGU9eWVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpX2N2X2ZkX3Bhc3Npbmc9eWVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpX2N2X2M5OV92c25wcmludGY9eWVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBsaWJfY3ZfX192YV9jb3B5PXllcyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGliX2N2X3ZhX2NvcHk9eWVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBsaWJfY3ZfdmFfdmFsX2NvcHk9eWVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICIKLQotIyBoYXJkY29kZSBlcG9sbCgpIHRvIGF2b2lkIHJ1bm5pbmcgdW5zYWZlIHRlc3RzCi0jIEJTRCBuZWVkcyBrcXVldWUgYW5kIHVjbGliYyBwb2xsKCkKLUVYVFJBX09FQ09ORiA9ICIgLS13aXRoLWlvbG9vcD1lcG9sbCBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1zeXN0ZW1kc3lzdGVtdW5pdGRpcj0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtIgotCi1TWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59IgotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImRvdmVjb3Quc2VydmljZSBkb3ZlY290LnNvY2tldCIKLVNZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKLQotZG9faW5zdGFsbF9hcHBlbmQgKCkgewotICAgIGluc3RhbGwgLWQgNzU1ICR7RH0vZXRjL2RvdmVjb3QKLSAgICB0b3VjaCA2NDQgJHtEfS9ldGMvZG92ZWNvdC9kb3ZlY290LmNvbmYKLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9kb3ZlY290LnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICBzZWQgLWkgLWUgJ3MjQFNZU0NPTkZESVJAIyR7c3lzY29uZmRpcn0jZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vZG92ZWNvdC5zZXJ2aWNlCi0gICAgc2VkIC1pIC1lICdzI0BTQklORElSQCMke3NiaW5kaXJ9I2cnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2RvdmVjb3Quc2VydmljZQotfQotCi1VU0VSQUREX1BBQ0tBR0VTID0gIiR7UE59IgotVVNFUkFERF9QQVJBTV8ke1BOfSA9ICItciAtZCAke2xpYmV4ZWNkaXJ9IC1NIC1zICR7YmFzZV9zYmluZGlyfS9ub2xvZ2luIC1nIGRvdmVjb3QgZG92ZWNvdDsgXAotICAgICAgICAgICAgICAgICAgICAgIC1yIC1kICR7bGliZXhlY2Rpcn0gLU0gLXMgJHtiYXNlX3NiaW5kaXJ9L25vbG9naW4gLWcgZG92ZW51bGwgZG92ZW51bGwiCi1HUk9VUEFERF9QQVJBTV8ke1BOfSA9ICItZiAtciBkb3ZlY290Oy1mIC1yIGRvdmVudWxsIgotCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L2RvdmVjb3QvKnBsdWdpbi5zbyBcCi0gICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2RvdmVjb3QvbGliZnNfY29tcHJlc3Muc28gXAotICAgICAgICAgICAgICAgICR7bGliZGlyfS9kb3ZlY290L2xpYnNzbF9pb3N0cmVhbV9vcGVuc3NsLnNvIgotRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vZG92ZWNvdC8qLyouYSIKLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2RvdmVjb3QvbGliZG92ZWNvdCouc28iCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9kb3ZlY290LyovLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RvdmVjb3QvZG92ZWNvdF8yLjIuMzMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZG92ZWNvdC9kb3ZlY290XzIuMi4zMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWJkYTE5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RvdmVjb3QvZG92ZWNvdF8yLjIuMzMuYmIKQEAgLTAsMCArMSw3MSBAQAorU1VNTUFSWSA9ICJEb3ZlY290IGlzIGFuIG9wZW4gc291cmNlIElNQVAgYW5kIFBPUDMgZW1haWwgc2VydmVyIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly93d3cuZG92ZWNvdC5vcmcvIgorREVTQ1JJUFRJT04gPSAiRG92ZWNvdCBpcyBhbiBvcGVuIHNvdXJjZSBJTUFQIGFuZCBQT1AzIGVtYWlsIHNlcnZlciBmb3IgTGludXgvVU5JWC1saWtlIHN5c3RlbXMsIHdyaXR0ZW4gd2l0aCBzZWN1cml0eSBwcmltYXJpbHkgaW4gbWluZC4gRG92ZWNvdCBpcyBhbiBleGNlbGxlbnQgY2hvaWNlIGZvciBib3RoIHNtYWxsIGFuZCBsYXJnZSBpbnN0YWxsYXRpb25zLiBJdCdzIGZhc3QsIHNpbXBsZSB0byBzZXQgdXAsIHJlcXVpcmVzIG5vIHNwZWNpYWwgYWRtaW5pc3RyYXRpb24gYW5kIGl0IHVzZXMgdmVyeSBsaXR0bGUgbWVtb3J5LiIKK1NFQ1RJT04gPSAibWFpbCIKK0xJQ0VOU0UgPSAiTEdQTHYyLjEgJiBNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1hOTgxMzc5YmQwZjFjMzYyZjhkMWQyMTUxNWU1YjMwYiIKKworU1JDX1VSSSA9ICJodHRwOi8vZG92ZWNvdC5vcmcvcmVsZWFzZXMvMi4yL2RvdmVjb3QtJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLmFjLWNvbnZlcnQtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy1zdGF0ZS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9kb3ZlY290LnNlcnZpY2UgXAorICAgICAgICAgICBmaWxlOi8vZG92ZWNvdC5zb2NrZXQgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1kb3ZlYWRtLUZpeC1wYXJhbGxlbC1idWlsZC5wYXRjaCBcCisgICAgICAgICAgICIKKworU1JDX1VSSVttZDVzdW1dID0gImQ2MWQxZTkyM2EyMmY5MDYyY2M5ZjQ3Njk2ODgyNjY2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImU5NDgzZDY4YTc2OThkNzAxYmMwNjEyNGZjZjZlMWIxZjE2MzgwYzI5ODZjN2VjMGNmNGUxNDc1YjlkMGMyMTgiCisKK0RFUEVORFMgPSAib3BlbnNzbCB4eiB6bGliIGJ6aXAyIGxpYmNhcCBpY3UiCisKK0RFUEVORFNfYXBwZW5kX2xpYmMtbXVzbCA9ICIgbGlidGlycGMiCitDRkxBR1NfYXBwZW5kX2xpYmMtbXVzbCA9ICIgLUkke1NUQUdJTkdfSU5DRElSfS90aXJwYyIKK0xERkxBR1NfYXBwZW5kX2xpYmMtbXVzbCA9ICIgLWx0aXJwYyIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIHN5c3RlbWQgdXNlcmFkZAorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnbGRhcCBwYW0nLCBkKX0iCisKK1BBQ0tBR0VDT05GSUdbcGFtXSA9ICItLXdpdGgtcGFtLC0td2l0aG91dC1wYW0sbGlicGFtLCIKK1BBQ0tBR0VDT05GSUdbbGRhcF0gPSAiLS13aXRoLWxkYXA9cGx1Z2luLC0td2l0aG91dC1sZGFwLG9wZW5sZGFwLCIKK1BBQ0tBR0VDT05GSUdbbHo0XSA9ICItLXdpdGgtbHo0LC0td2l0aG91dC1sejQsbHo0LCIKKworIyBGcm9tIG5hdGl2ZSBidWlsZCBpbiBhcm12N2EtaGYvZWdsaWJjCitDQUNIRURfQ09ORklHVVJFVkFSUyArPSAiaV9jdl9zaWduZWRfc2l6ZV90PW5vIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpX2N2X2dtdGltZV9tYXhfdGltZV90PTMyIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpX2N2X3NpZ25lZF90aW1lX3Q9eWVzIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpX2N2X21tYXBfcGxheXNfd2l0aF93cml0ZT15ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGlfY3ZfZmRfcGFzc2luZz15ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGlfY3ZfYzk5X3ZzbnByaW50Zj15ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpYl9jdl9fX3ZhX2NvcHk9eWVzIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaWJfY3ZfdmFfY29weT15ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpYl9jdl92YV92YWxfY29weT15ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIgorCisjIGhhcmRjb2RlIGVwb2xsKCkgdG8gYXZvaWQgcnVubmluZyB1bnNhZmUgdGVzdHMKKyMgQlNEIG5lZWRzIGtxdWV1ZSBhbmQgdWNsaWJjIHBvbGwoKQorRVhUUkFfT0VDT05GID0gIiAtLXdpdGgtaW9sb29wPWVwb2xsIFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLXN5c3RlbWRzeXN0ZW11bml0ZGlyPSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0iCisKK1NZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0iCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiZG92ZWNvdC5zZXJ2aWNlIGRvdmVjb3Quc29ja2V0IgorU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgorCitkb19pbnN0YWxsX2FwcGVuZCAoKSB7CisgICAgaW5zdGFsbCAtZCA3NTUgJHtEfS9ldGMvZG92ZWNvdAorICAgIHRvdWNoIDY0NCAke0R9L2V0Yy9kb3ZlY290L2RvdmVjb3QuY29uZgorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2RvdmVjb3Quc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIHNlZCAtaSAtZSAncyNAU1lTQ09ORkRJUkAjJHtzeXNjb25mZGlyfSNnJyAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9kb3ZlY290LnNlcnZpY2UKKyAgICBzZWQgLWkgLWUgJ3MjQFNCSU5ESVJAIyR7c2JpbmRpcn0jZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vZG92ZWNvdC5zZXJ2aWNlCit9CisKK1VTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0iCitVU0VSQUREX1BBUkFNXyR7UE59ID0gIi1yIC1kICR7bGliZXhlY2Rpcn0gLU0gLXMgJHtiYXNlX3NiaW5kaXJ9L25vbG9naW4gLWcgZG92ZWNvdCBkb3ZlY290OyBcCisgICAgICAgICAgICAgICAgICAgICAgLXIgLWQgJHtsaWJleGVjZGlyfSAtTSAtcyAke2Jhc2Vfc2JpbmRpcn0vbm9sb2dpbiAtZyBkb3ZlbnVsbCBkb3ZlbnVsbCIKK0dST1VQQUREX1BBUkFNXyR7UE59ID0gIi1mIC1yIGRvdmVjb3Q7LWYgLXIgZG92ZW51bGwiCisKK0ZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vZG92ZWNvdC8qcGx1Z2luLnNvIFwKKyAgICAgICAgICAgICAgICAke2xpYmRpcn0vZG92ZWNvdC9saWJmc19jb21wcmVzcy5zbyBcCisgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2RvdmVjb3QvbGlic3NsX2lvc3RyZWFtX29wZW5zc2wuc28iCitGSUxFU18ke1BOfS1zdGF0aWNkZXYgKz0gIiR7bGliZGlyfS9kb3ZlY290LyovKi5hIgorRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vZG92ZWNvdC9saWJkb3ZlY290Ki5zbyIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2RvdmVjb3QvKi8uZGVidWciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZHJiZC9kcmJkLXV0aWxzXzguOS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RyYmQvZHJiZC11dGlsc184LjkuNi5iYgppbmRleCA1ZjZjNDNmLi44MWYxY2ZlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZHJiZC9kcmJkLXV0aWxzXzguOS42LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9kcmJkL2RyYmQtdXRpbHNfOC45LjYuYmIKQEAgLTgsNyArOCw3IEBACiBMSUNFTlNFID0gIkdQTHYyKyIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU1NzRjNjk2NWFlNWY1ODNlNTU4ODBlMzk3ZmJiMDE4IgogCi1TUkNfVVJJID0gImh0dHA6Ly9vc3MubGluYml0LmNvbS9kcmJkLyR7QlB9LnRhci5neiBcCitTUkNfVVJJID0gImh0dHA6Ly93d3cubGluYml0LmNvbS9kb3dubG9hZHMvZHJiZC91dGlscy9hcmNoaXZlLyR7QlB9LnRhci5neiBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLU1ha2VmaWxlLmluLWZpeC1wZXJtaXNzaW9uLWJpdHMtZm9yLWRyYmQuc2VydmljZS5wYXRjaCBcCiAgICAgICAgICAgIgogU1JDX1VSSVttZDVzdW1dID0gIjc2ZWQ2ZDMxOTBjZDc3YjAwODkwZjMzNjUzNTMxMjRiIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RyYmQvZHJiZF85LjAuOC0xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RyYmQvZHJiZF85LjAuOC0xLmJiCmluZGV4IGU5NDNmMjQuLmZhNGQxMGIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9kcmJkL2RyYmRfOS4wLjgtMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZHJiZC9kcmJkXzkuMC44LTEuYmIKQEAgLTIwLDMgKzIwLDUgQEAKIGRvX2luc3RhbGwgKCkgewogICAgIG9lX3J1bm1ha2UgaW5zdGFsbCBERVNURElSPSIke0R9IgogfQorCitQTkJMQUNLTElTVFtkcmJkXSA9ICJpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnc2V0dXBfdGltZXInOyA0LjE1IGhlYWQgZmlsZSBpc3N1ZT8iIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Z3a25vcC9md2tub3BfMi42LjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZndrbm9wL2Z3a25vcF8yLjYuOS5iYgppbmRleCA0OWIxMWFkLi4wZmQ1ZjZmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZndrbm9wL2Z3a25vcF8yLjYuOS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZndrbm9wL2Z3a25vcF8yLjYuOS5iYgpAQCAtMTcsNiArMTcsOSBAQAogICAgICAgICAgICAgICAgIgogCiBkb19jb25maWd1cmUgKCkgeworCWluc3RhbGwgLW0gMDc1NSAke1NUQUdJTkdfREFUQURJUl9OQVRJVkV9L2dudS1jb25maWcvY29uZmlnLmd1ZXNzICR7U30vY29uZmlnCisJaW5zdGFsbCAtbSAwNzU1ICR7U1RBR0lOR19EQVRBRElSX05BVElWRX0vZ251LWNvbmZpZy9jb25maWcuc3ViICR7U30vY29uZmlnCisKIAlhY2xvY2FsCiAJbGlidG9vbGl6ZSAtLWF1dG9tYWtlIC0tY29weSAtLWZvcmNlCiAJYXV0b2NvbmYKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcC1wZXJsXzEuNTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXAtcGVybF8xLjUwLmJiCmluZGV4IGE4YzhiY2YuLjk1MTQ3YmQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcC1wZXJsXzEuNTAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwLXBlcmxfMS41MC5iYgpAQCAtOSwxNyArOSwxMiBAQAogTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWI3YTM2ZjU1ZThiYTYyYWFkZDc0ZTRmMDg4NmE0MDVlIgogCi0jIE5vdGUgdGhhdCB3ZSBkbyBub3Qgd2FudCB0byB1c2UgdGhlIHVwc3RyZWFtIGZpbGUgbmFtZSBsb2NhbGx5LgotIwotU1JDX1VSSSA9ICJodHRwOi8vZ2l0aHViLmNvbS9tYXhtaW5kL2dlb2lwLWFwaS1wZXJsL2FyY2hpdmUvdiR7UFZ9LnRhci5nejtkb3dubG9hZGZpbGVuYW1lPSR7QlBOfS0ke1BWfS50YXIuZ3ogXAorUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICI0N2Y3ZDQ5YmQxNWNmYzJlNWY4YzBmNWM0MDY4ZGM4YmIwZTEwZTk2IgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL21heG1pbmQvZ2VvaXAtYXBpLXBlcmwuZ2l0O3Byb3RvY29sPWh0dHBzOyBcCiAgICAgZmlsZTovL3J1bi1wdGVzdCBcCiAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIyZDdmOGIxYjU0ZTZiYTZkOWUzZmVmY2U1MjY3NTgxNSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4NmRhMGRkNjdmNDE3YTQzZGM3MGYxNWE0OWJkMzYxOWY2Njg5NzBjMTE3YjllN2Y3MzdiNGFiMjQ2YzI0MGE2IgotCi1TID0gIiR7V09SS0RJUn0vZ2VvaXAtYXBpLXBlcmwtJHtQVn0iCi0KIERFUEVORFMgKz0gImdlb2lwIgogCiBpbmhlcml0IGNwYW4gcHRlc3QKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcF8xLjYuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXBfMS42LjExLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1MjdkMGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXBfMS42LjExLmJiCkBAIC0wLDAgKzEsOTAgQEAKK1NVTU1BUlkgPSAiQyBsaWJyYXJ5IGZvciBjb3VudHJ5L2NpdHkvb3JnYW5pemF0aW9uIHRvIElQIGFkZHJlc3Mgb3IgaG9zdG5hbWUgbWFwcGluZyIKK0RFU0NSSVBUSU9OID0gIkdlb0lQIGlzIGEgQyBsaWJyYXJ5IHRoYXQgZW5hYmxlcyB0aGUgdXNlciB0byBmaW5kIHRoZSBjb3VudHJ5IHRoYXQgYW55IElQIFwKK2FkZHJlc3Mgb3IgaG9zdG5hbWUgb3JpZ2luYXRlcyBmcm9tLiBJdCB1c2VzIGEgZmlsZSBiYXNlZCBkYXRhYmFzZSB0aGF0IGlzIFwKK2FjY3VyYXRlIGFzIG9mIE1hcmNoIDIwMDMuIFRoaXMgZGF0YWJhc2Ugc2ltcGx5IGNvbnRhaW5zIElQIGJsb2NrcyBhcyBrZXlzLCBhbmQgXAorY291bnRyaWVzIGFzIHZhbHVlcy4gVGhpcyBkYXRhYmFzZSBzaG91bGQgYmUgbW9yZSBjb21wbGV0ZSBhbmQgYWNjdXJhdGUgdGhhbiBcCit1c2luZyByZXZlcnNlIEROUyBsb29rdXBzLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL2Rldi5tYXhtaW5kLmNvbS9nZW9pcC8iCitTRUNUSU9OID0gImxpYmRldmVsIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbWF4bWluZC9nZW9pcC1hcGktYy5naXQgXAorICAgICAgICAgICBodHRwOi8vZ2VvbGl0ZS5tYXhtaW5kLmNvbS9kb3dubG9hZC9nZW9pcC9kYXRhYmFzZS9HZW9MaXRlQ291bnRyeS9HZW9JUC5kYXQuZ3o7YXBwbHk9bm87bmFtZT1HZW9JUC1kYXQgXAorICAgICAgICAgICBodHRwOi8vZ2VvbGl0ZS5tYXhtaW5kLmNvbS9kb3dubG9hZC9nZW9pcC9kYXRhYmFzZS9HZW9JUHY2LmRhdC5nejthcHBseT1ubztuYW1lPUdlb0lQdjYtZGF0IFwKKyAgICAgICAgICAgaHR0cDovL2dlb2xpdGUubWF4bWluZC5jb20vZG93bmxvYWQvZ2VvaXAvZGF0YWJhc2UvR2VvTGl0ZUNpdHkuZGF0Lmd6O2FwcGx5PW5vO25hbWU9R2VvTGl0ZUNpdHktZGF0IFwKKyAgICAgICAgICAgaHR0cDovL2dlb2xpdGUubWF4bWluZC5jb20vZG93bmxvYWQvZ2VvaXAvZGF0YWJhc2UvR2VvTGl0ZUNpdHl2Ni1iZXRhL0dlb0xpdGVDaXR5djYuZGF0Lmd6O2FwcGx5PW5vO25hbWU9R2VvTGl0ZUNpdHl2Ni1kYXQgXAorICAgICAgICAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKKyIKK1NSQ1JFViA9ICIzMTY5YThhODg4MDhjOGRmODYyZTBiMDM1NWY5OWM3MzhjY2U5ZjdlIgorCitTUkNfVVJJW0dlb0lQLWRhdC5tZDVzdW1dID0gIjM3Yzg0ZWFkMzMyZGRhMDM2MmE1YWM3YjA0OWI3MmQ0IgorU1JDX1VSSVtHZW9JUC1kYXQuc2hhMjU2c3VtXSA9ICI3OWZmMTA5OWU5NmMyZGMxYzI1MzljOWExOGFhYTEzYTlhZmQwODVjYWU0NzdkZjYwZDk1ZjE2NDRkNDJiYzA3IgorCitTUkNfVVJJW0dlb0lQdjYtZGF0Lm1kNXN1bV0gPSAiZTc1Yjg0YTQwNDRlODFkNmQ0NDg0ZTMzODE2YmM3NjIiCitTUkNfVVJJW0dlb0lQdjYtZGF0LnNoYTI1NnN1bV0gPSAiYTAwOWIwZjIxOTY4ZDI4NjhlNmRkMTlkMTRmM2MzYjhjZDYwYWU4NGE0YmZjMjk3MGRmMzRkNzcxYTA0ODExZSIKKworU1JDX1VSSVtHZW9MaXRlQ2l0eS1kYXQubWQ1c3VtXSA9ICI0YjY1ODhkMGJmZTFhZjIyZTI2N2FjOTBhYTk3Zjc2OSIKK1NSQ19VUklbR2VvTGl0ZUNpdHktZGF0LnNoYTI1NnN1bV0gPSAiOGE2NDY3MDMzYTUyOGY2OGIxYTk3ZGUyNGQ5ZDBjZTg2YzhlOGU4MzY4MzgyMGUxNmU0MzNkZGJkM2Y3MTJmNyIKKworU1JDX1VSSVtHZW9MaXRlQ2l0eXY2LWRhdC5tZDVzdW1dID0gImFkMGNiNDI1MThhZjdmNzUyNDk5NDI1ZGNhMDk1MmJiIgorU1JDX1VSSVtHZW9MaXRlQ2l0eXY2LWRhdC5zaGEyNTZzdW1dID0gImVkYTY3ZjQyMDRiYTlmYTUyMDRhNTNjZGI2MjkxNjdjY2E5Mzk0YzcxMmY1Mzc4YmM3MjNhOGMyOWMwYjQ0MGYiCisKK0xJQ0VOU0UgPSAiTEdQTC0yLjEiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTI0M2I3MjVkNzFiYjVkZjRhMWU1OTIwYjM0NGI4NmFkIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0xJQ0VOU0U7bWQ1PTAzODgyNzY3NDlhNTQyYjBkNjExNjAxZmE3YzFkY2M4ICIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBhdXRvdG9vbHMKKworRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1zdGF0aWMgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgICIKKworZG9faW5zdGFsbCgpIHsKKyAgICBtYWtlIERFU1RESVI9JHtEfSBpbnN0YWxsCisgICAgaW5zdGFsbCAtZCAke0R9LyR7ZGF0YWRpcn0vR2VvSVAKKyAgICBpbnN0YWxsICR7V09SS0RJUn0vR2VvSVAuZGF0ICR7RH0vJHtkYXRhZGlyfS9HZW9JUC8KKyAgICBpbnN0YWxsICR7V09SS0RJUn0vR2VvSVB2Ni5kYXQgJHtEfS8ke2RhdGFkaXJ9L0dlb0lQLworICAgIGluc3RhbGwgJHtXT1JLRElSfS9HZW9MaXRlQ2l0eS5kYXQgJHtEfS8ke2RhdGFkaXJ9L0dlb0lQLworICAgIGluc3RhbGwgJHtXT1JLRElSfS9HZW9MaXRlQ2l0eXY2LmRhdCAke0R9LyR7ZGF0YWRpcn0vR2VvSVAvCisgICAgbG4gLXMgR2VvTGl0ZUNpdHkuZGF0ICR7RH0ke2RhdGFkaXJ9L0dlb0lQL0dlb0lQQ2l0eS5kYXQKK30KKworUEFDS0FHRVMgPSsgIiR7UE59LWRhdGFiYXNlIgorRklMRVNfJHtQTn0tZGF0YWJhc2UgPSAiIgorRklMRVNfJHtQTn0tZGF0YWJhc2UgKz0gIiR7ZGF0YWRpcn0vR2VvSVAvKiIKKworIyBXZSBjYW5ub3QgZG8gbXVjaCBsb29raW5nIHVwIHdpdGhvdXQgZGF0YWJhc2VzLgorIworUkRFUEVORFNfJHtQTn0gKz0gIiR7UE59LWRhdGFiYXNlIgorCitpbmhlcml0IHB0ZXN0CisKK2RvX2NvbmZpZ3VyZV9wdGVzdCgpIHsKKyAgICBzZWQgLWkgLWUgInMvbm9pbnN0X1BST0dSQU1TID0gL3Rlc3RfUFJPR1JBTVMgPSAvZyIgXAorICAgICAgICAtZSAnczpTUkNESVI9XFwiJCh0b3Bfc3JjZGlyKVxcIjpTUkNESVI9XFwiJCh0ZXN0ZGlyKVxcIjonIFwKKyAgICAgICAgJHtTfS90ZXN0L01ha2VmaWxlLmFtCisKKyAgICBpZiAhIGdyZXAgIl50ZXN0ZGlyID0gIiAke1N9L3Rlc3QvTWFrZWZpbGUuYW0gOyB0aGVuCisgICAgICAgIHNlZCAtZSAnL0VYVFJBX1BST0dSQU1TID0gL2l0ZXN0ZGlyID0gJHtQVEVTVF9QQVRIfS90ZXN0cycgXAorICAgICAgICAgICAgLWkgJHtTfS90ZXN0L01ha2VmaWxlLmFtCisgICAgZmkKKworICAgIHNlZCAtaSAtZSAiczovdXNyL2xvY2FsL3NoYXJlOi91c3Ivc2hhcmU6ZyIgXAorICAgICAgICAke1N9L3Rlc3QvYmVuY2htYXJrLmMKKworICAgIHNlZCAtaSAtZSAnczoiLi4vZGF0YS86Ii91c3Ivc2hhcmUvR2VvSVAvOmcnIFwKKyAgICAgICAgJHtTfS90ZXN0L3Rlc3QtZ2VvaXAtY2l0eS5jIFwKKyAgICAgICAgJHtTfS90ZXN0L3Rlc3QtZ2VvaXAtaXNwLmMgXAorICAgICAgICAke1N9L3Rlc3QvdGVzdC1nZW9pcC1hc251bS5jIFwKKyAgICAgICAgJHtTfS90ZXN0L3Rlc3QtZ2VvaXAtbmV0c3BlZWQuYyBcCisgICAgICAgICR7U30vdGVzdC90ZXN0LWdlb2lwLW9yZy5jIFwKKyAgICAgICAgJHtTfS90ZXN0L3Rlc3QtZ2VvaXAtcmVnaW9uLmMKK30KKworCitkb19pbnN0YWxsX3B0ZXN0KCkgeworICAgIG9lX3J1bm1ha2UgLUMgdGVzdCBERVNURElSPSR7RH0gIGluc3RhbGwtdGVzdFBST0dSQU1TCisgICAgaW5zdGFsbCAke1N9L3Rlc3QvKi50eHQgJHtEfSR7UFRFU1RfUEFUSH0vdGVzdHMKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcF8xLjYuOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcF8xLjYuOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWU4ZTA3MTQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwXzEuNi45LmJiCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotU1VNTUFSWSA9ICJDIGxpYnJhcnkgZm9yIGNvdW50cnkvY2l0eS9vcmdhbml6YXRpb24gdG8gSVAgYWRkcmVzcyBvciBob3N0bmFtZSBtYXBwaW5nIgotREVTQ1JJUFRJT04gPSAiR2VvSVAgaXMgYSBDIGxpYnJhcnkgdGhhdCBlbmFibGVzIHRoZSB1c2VyIHRvIGZpbmQgdGhlIGNvdW50cnkgdGhhdCBhbnkgSVAgXAotYWRkcmVzcyBvciBob3N0bmFtZSBvcmlnaW5hdGVzIGZyb20uIEl0IHVzZXMgYSBmaWxlIGJhc2VkIGRhdGFiYXNlIHRoYXQgaXMgXAotYWNjdXJhdGUgYXMgb2YgTWFyY2ggMjAwMy4gVGhpcyBkYXRhYmFzZSBzaW1wbHkgY29udGFpbnMgSVAgYmxvY2tzIGFzIGtleXMsIGFuZCBcCi1jb3VudHJpZXMgYXMgdmFsdWVzLiBUaGlzIGRhdGFiYXNlIHNob3VsZCBiZSBtb3JlIGNvbXBsZXRlIGFuZCBhY2N1cmF0ZSB0aGFuIFwKLXVzaW5nIHJldmVyc2UgRE5TIGxvb2t1cHMuIgotCi1IT01FUEFHRSA9ICJodHRwOi8vZGV2Lm1heG1pbmQuY29tL2dlb2lwLyIKLVNFQ1RJT04gPSAibGliZGV2ZWwiCi0KLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9tYXhtaW5kL2dlb2lwLWFwaS1jLmdpdCBcCi0gICAgICAgICAgIGh0dHA6Ly9nZW9saXRlLm1heG1pbmQuY29tL2Rvd25sb2FkL2dlb2lwL2RhdGFiYXNlL0dlb0xpdGVDb3VudHJ5L0dlb0lQLmRhdC5nejthcHBseT1ubztuYW1lPUdlb0lQLWRhdCBcCi0gICAgICAgICAgIGh0dHA6Ly9nZW9saXRlLm1heG1pbmQuY29tL2Rvd25sb2FkL2dlb2lwL2RhdGFiYXNlL0dlb0lQdjYuZGF0Lmd6O2FwcGx5PW5vO25hbWU9R2VvSVB2Ni1kYXQgXAotICAgICAgICAgICBodHRwOi8vZ2VvbGl0ZS5tYXhtaW5kLmNvbS9kb3dubG9hZC9nZW9pcC9kYXRhYmFzZS9HZW9MaXRlQ2l0eS5kYXQuZ3o7YXBwbHk9bm87bmFtZT1HZW9MaXRlQ2l0eS1kYXQgXAotICAgICAgICAgICBodHRwOi8vZ2VvbGl0ZS5tYXhtaW5kLmNvbS9kb3dubG9hZC9nZW9pcC9kYXRhYmFzZS9HZW9MaXRlQ2l0eXY2LWJldGEvR2VvTGl0ZUNpdHl2Ni5kYXQuZ3o7YXBwbHk9bm87bmFtZT1HZW9MaXRlQ2l0eXY2LWRhdCBcCi0gICAgICAgICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAotIgotU1JDUkVWID0gIjRmNDg3YmY5NTUzMmUwYmJhNzc4M2Q1OTFmYWZmMTc4YWIwYWE0NjIiCi0KLVNSQ19VUklbR2VvSVAtZGF0Lm1kNXN1bV0gPSAiMzdjODRlYWQzMzJkZGEwMzYyYTVhYzdiMDQ5YjcyZDQiCi1TUkNfVVJJW0dlb0lQLWRhdC5zaGEyNTZzdW1dID0gIjc5ZmYxMDk5ZTk2YzJkYzFjMjUzOWM5YTE4YWFhMTNhOWFmZDA4NWNhZTQ3N2RmNjBkOTVmMTY0NGQ0MmJjMDciCi0KLVNSQ19VUklbR2VvSVB2Ni1kYXQubWQ1c3VtXSA9ICJlNzViODRhNDA0NGU4MWQ2ZDQ0ODRlMzM4MTZiYzc2MiIKLVNSQ19VUklbR2VvSVB2Ni1kYXQuc2hhMjU2c3VtXSA9ICJhMDA5YjBmMjE5NjhkMjg2OGU2ZGQxOWQxNGYzYzNiOGNkNjBhZTg0YTRiZmMyOTcwZGYzNGQ3NzFhMDQ4MTFlIgotCi1TUkNfVVJJW0dlb0xpdGVDaXR5LWRhdC5tZDVzdW1dID0gIjRiNjU4OGQwYmZlMWFmMjJlMjY3YWM5MGFhOTdmNzY5IgotU1JDX1VSSVtHZW9MaXRlQ2l0eS1kYXQuc2hhMjU2c3VtXSA9ICI4YTY0NjcwMzNhNTI4ZjY4YjFhOTdkZTI0ZDlkMGNlODZjOGU4ZTgzNjgzODIwZTE2ZTQzM2RkYmQzZjcxMmY3IgotCi1TUkNfVVJJW0dlb0xpdGVDaXR5djYtZGF0Lm1kNXN1bV0gPSAiYWQwY2I0MjUxOGFmN2Y3NTI0OTk0MjVkY2EwOTUyYmIiCi1TUkNfVVJJW0dlb0xpdGVDaXR5djYtZGF0LnNoYTI1NnN1bV0gPSAiZWRhNjdmNDIwNGJhOWZhNTIwNGE1M2NkYjYyOTE2N2NjYTkzOTRjNzEyZjUzNzhiYzcyM2E4YzI5YzBiNDQwZiIKLQotTElDRU5TRSA9ICJMR1BMLTIuMSIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MjQzYjcyNWQ3MWJiNWRmNGExZTU5MjBiMzQ0Yjg2YWQgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vTElDRU5TRTttZDU9MDM4ODI3Njc0OWE1NDJiMGQ2MTE2MDFmYTdjMWRjYzggIgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1pbmhlcml0IGF1dG90b29scwotCi1FWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLXN0YXRpYyAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgIgotCi1kb19pbnN0YWxsKCkgewotICAgIG1ha2UgREVTVERJUj0ke0R9IGluc3RhbGwKLSAgICBpbnN0YWxsIC1kICR7RH0vJHtkYXRhZGlyfS9HZW9JUAotICAgIGluc3RhbGwgJHtXT1JLRElSfS9HZW9JUC5kYXQgJHtEfS8ke2RhdGFkaXJ9L0dlb0lQLwotICAgIGluc3RhbGwgJHtXT1JLRElSfS9HZW9JUHY2LmRhdCAke0R9LyR7ZGF0YWRpcn0vR2VvSVAvCi0gICAgaW5zdGFsbCAke1dPUktESVJ9L0dlb0xpdGVDaXR5LmRhdCAke0R9LyR7ZGF0YWRpcn0vR2VvSVAvCi0gICAgaW5zdGFsbCAke1dPUktESVJ9L0dlb0xpdGVDaXR5djYuZGF0ICR7RH0vJHtkYXRhZGlyfS9HZW9JUC8KLSAgICBsbiAtcyBHZW9MaXRlQ2l0eS5kYXQgJHtEfSR7ZGF0YWRpcn0vR2VvSVAvR2VvSVBDaXR5LmRhdAotfQotCi1QQUNLQUdFUyA9KyAiJHtQTn0tZGF0YWJhc2UiCi1GSUxFU18ke1BOfS1kYXRhYmFzZSA9ICIiCi1GSUxFU18ke1BOfS1kYXRhYmFzZSArPSAiJHtkYXRhZGlyfS9HZW9JUC8qIgotCi0jIFdlIGNhbm5vdCBkbyBtdWNoIGxvb2tpbmcgdXAgd2l0aG91dCBkYXRhYmFzZXMuCi0jCi1SREVQRU5EU18ke1BOfSArPSAiJHtQTn0tZGF0YWJhc2UiCi0KLWluaGVyaXQgcHRlc3QKLQotZG9fY29uZmlndXJlX3B0ZXN0KCkgewotICAgIHNlZCAtaSAtZSAicy9ub2luc3RfUFJPR1JBTVMgPSAvdGVzdF9QUk9HUkFNUyA9IC9nIiBcCi0gICAgICAgIC1lICdzOlNSQ0RJUj1cXCIkKHRvcF9zcmNkaXIpXFwiOlNSQ0RJUj1cXCIkKHRlc3RkaXIpXFwiOicgXAotICAgICAgICAke1N9L3Rlc3QvTWFrZWZpbGUuYW0KLQotICAgIGlmICEgZ3JlcCAiXnRlc3RkaXIgPSAiICR7U30vdGVzdC9NYWtlZmlsZS5hbSA7IHRoZW4KLSAgICAgICAgc2VkIC1lICcvRVhUUkFfUFJPR1JBTVMgPSAvaXRlc3RkaXIgPSAke1BURVNUX1BBVEh9L3Rlc3RzJyBcCi0gICAgICAgICAgICAtaSAke1N9L3Rlc3QvTWFrZWZpbGUuYW0KLSAgICBmaQotCi0gICAgc2VkIC1pIC1lICJzOi91c3IvbG9jYWwvc2hhcmU6L3Vzci9zaGFyZTpnIiBcCi0gICAgICAgICR7U30vdGVzdC9iZW5jaG1hcmsuYwotCi0gICAgc2VkIC1pIC1lICdzOiIuLi9kYXRhLzoiL3Vzci9zaGFyZS9HZW9JUC86ZycgXAotICAgICAgICAke1N9L3Rlc3QvdGVzdC1nZW9pcC1jaXR5LmMgXAotICAgICAgICAke1N9L3Rlc3QvdGVzdC1nZW9pcC1pc3AuYyBcCi0gICAgICAgICR7U30vdGVzdC90ZXN0LWdlb2lwLWFzbnVtLmMgXAotICAgICAgICAke1N9L3Rlc3QvdGVzdC1nZW9pcC1uZXRzcGVlZC5jIFwKLSAgICAgICAgJHtTfS90ZXN0L3Rlc3QtZ2VvaXAtb3JnLmMgXAotICAgICAgICAke1N9L3Rlc3QvdGVzdC1nZW9pcC1yZWdpb24uYwotfQotCi0KLWRvX2luc3RhbGxfcHRlc3QoKSB7Ci0gICAgb2VfcnVubWFrZSAtQyB0ZXN0IERFU1RESVI9JHtEfSAgaW5zdGFsbC10ZXN0UFJPR1JBTVMKLSAgICBpbnN0YWxsICR7U30vdGVzdC8qLnR4dCAke0R9JHtQVEVTVF9QQVRIfS90ZXN0cwotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwdXBkYXRlLTIuNC4wL0dlb0lQLmNvbmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXB1cGRhdGUtMi41LjAvR2VvSVAuY29uZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwdXBkYXRlLTIuNC4wL0dlb0lQLmNvbmYKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcHVwZGF0ZS0yLjUuMC9HZW9JUC5jb25mCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXB1cGRhdGUtMi40LjAvZ2VvaXB1cGRhdGUuY3JvbiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcHVwZGF0ZS0yLjUuMC9nZW9pcHVwZGF0ZS5jcm9uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXB1cGRhdGUtMi40LjAvZ2VvaXB1cGRhdGUuY3JvbgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwdXBkYXRlLTIuNS4wL2dlb2lwdXBkYXRlLmNyb24KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcHVwZGF0ZV8yLjQuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcHVwZGF0ZV8yLjQuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2UwNDViYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXB1cGRhdGVfMi40LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1TVU1NQVJZID0gIkNyb250YWIgZW50cnkgdG8gcHJvdmlkZSB3ZWVrbHkgdXBkYXRlcyBvZiB0aGUgR2VvSVAgZnJlZSBkYXRhYmFzZXMuIgotREVTQ1JJUFRJT04gPSAidXBkYXRlIGRhdGFiYXNlcyBmb3IgR2VvSVAiCi0KLUhPTUVQQUdFID0gImh0dHA6Ly9kZXYubWF4bWluZC5jb20vZ2VvaXAvIgotU0VDVElPTiA9ICJuZXQiCi0KLURFUEVORFMgPSAiemxpYiBjdXJsIgotCi1TUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9tYXhtaW5kL2dlb2lwdXBkYXRlL3JlbGVhc2VzL2Rvd25sb2FkL3YyLjQuMC9nZW9pcHVwZGF0ZS0yLjQuMC50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vR2VvSVAuY29uZiBcCi0gICAgICAgICAgIGZpbGU6Ly9nZW9pcHVwZGF0ZS5jcm9uIFwKLSAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiMDJmOTcxMmZiODBlOGU5NzlkM2Q1NGNkYTdmNzcwNGYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGI0ZTg4Y2U4ZDg0ZTljNzViYzY4MTcwNGQxOWVjNWM2M2M1NGYwMWU5NDVmNzY2OWY5N2ZiMGRmN2UxMzk1MiIKLQotTElDRU5TRSA9ICJHUEx2MiIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJcCi1maWxlOi8vQ2hhbmdlTG9nLm1kO21kNT0zMzQzMzdiNmVjYmI2NTA5M2JhZTY2YjNhZTIxYzhjMiBcCi0iCi1GSUxFU18ke1BOfSA9ICIvdXNyL3NoYXJlL0dlb0lQIFwKLSAgICAgICAgICAgICAgL2V0Yy9HZW9JUC5jb25mIFwKLSAgICAgICAgICAgICAvZXRjL2Nyb24uZC9nZW9pcHVwZGF0ZS5jcm9uIFwKLSAgICAgICAgICAgICAvdXNyL2Jpbi9nZW9pcHVwZGF0ZSBcCi0iCi1pbmhlcml0IGF1dG90b29scwotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfQotICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2Nyb24uZAotICAgIGluc3RhbGwgJHtXT1JLRElSfS9HZW9JUC5jb25mICR7RH0vJHtzeXNjb25mZGlyfS8KLSAgICBpbnN0YWxsICR7V09SS0RJUn0vZ2VvaXB1cGRhdGUuY3JvbiAke0R9LyR7c3lzY29uZmRpcn0vY3Jvbi5kLwotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwdXBkYXRlXzIuNS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwdXBkYXRlXzIuNS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0ZWIyYjcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXB1cGRhdGVfMi41LjAuYmIKQEAgLTAsMCArMSwzMyBAQAorU1VNTUFSWSA9ICJDcm9udGFiIGVudHJ5IHRvIHByb3ZpZGUgd2Vla2x5IHVwZGF0ZXMgb2YgdGhlIEdlb0lQIGZyZWUgZGF0YWJhc2VzLiIKK0RFU0NSSVBUSU9OID0gInVwZGF0ZSBkYXRhYmFzZXMgZm9yIEdlb0lQIgorCitIT01FUEFHRSA9ICJodHRwOi8vZGV2Lm1heG1pbmQuY29tL2dlb2lwLyIKK1NFQ1RJT04gPSAibmV0IgorCitERVBFTkRTID0gInpsaWIgY3VybCIKKworU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbWF4bWluZC9nZW9pcHVwZGF0ZS9yZWxlYXNlcy9kb3dubG9hZC92Mi41LjAvZ2VvaXB1cGRhdGUtMi41LjAudGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL0dlb0lQLmNvbmYgXAorICAgICAgICAgICBmaWxlOi8vZ2VvaXB1cGRhdGUuY3JvbiBcCisgICAgICAgICAgIgorU1JDX1VSSVttZDVzdW1dID0gIjI4ZjYzM2M0OWVjODdhYjAxYWQzYzBmYjAyMjhhNjk2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjUxMTlmZDBlMzM4Y2QwODNlODg2MjI4YjI2Njc5YzY0YmNiYWFkZThhODE1YmUwOTJhZWNmODY1YTYxMGFiMjYiCisKK0xJQ0VOU0UgPSAiR1BMdjIiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiXAorZmlsZTovL0NoYW5nZUxvZy5tZDttZDU9MTFkMmUzMWRmMGRlMmJlM2NjYzNlMjI4NmM0ZGFmY2IgXAorIgorRklMRVNfJHtQTn0gPSAiL3Vzci9zaGFyZS9HZW9JUCBcCisgICAgICAgICAgICAgIC9ldGMvR2VvSVAuY29uZiBcCisgICAgICAgICAgICAgL2V0Yy9jcm9uLmQvZ2VvaXB1cGRhdGUuY3JvbiBcCisgICAgICAgICAgICAgL3Vzci9iaW4vZ2VvaXB1cGRhdGUgXAorIgoraW5oZXJpdCBhdXRvdG9vbHMKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0KKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9jcm9uLmQKKyAgICBpbnN0YWxsICR7V09SS0RJUn0vR2VvSVAuY29uZiAke0R9LyR7c3lzY29uZmRpcn0vCisgICAgaW5zdGFsbCAke1dPUktESVJ9L2dlb2lwdXBkYXRlLmNyb24gJHtEfS8ke3N5c2NvbmZkaXJ9L2Nyb24uZC8KK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9pcGNhbGMvaXBjYWxjLzAwMDEtTWFrZWZpbGUtcGFzcy1leHRyYS1saW5rZXItZmxhZ3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvaXBjYWxjL2lwY2FsYy8wMDAxLU1ha2VmaWxlLXBhc3MtZXh0cmEtbGlua2VyLWZsYWdzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZDMwNjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvaXBjYWxjL2lwY2FsYy8wMDAxLU1ha2VmaWxlLXBhc3MtZXh0cmEtbGlua2VyLWZsYWdzLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK0Zyb20gZmQ4MGMwNTk5MDgzMDEzYTFiNTgzZmViYTVkNzQ3M2Y1MmIzNTkzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcmlpYSBNb3ZjaGFuIDxtbW92Y2hhbkBjaXNjby5jb20+CitEYXRlOiBUdWUsIDYgTWFyIDIwMTggMTY6MDM6MzkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gTWFrZWZpbGU6IHBhc3MgZXh0cmEgbGlua2VyIGZsYWdzCisKK0ZpeGVzCitFUlJPUjogUUEgSXNzdWU6IE5vIEdOVV9IQVNIIGluIHRoZSBlbGYgYmluYXJ5CisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBNYXJpaWEgTW92Y2hhbiA8bW1vdmNoYW5AY2lzY28uY29tPgorLS0tCisgTWFrZWZpbGUgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCitpbmRleCA4YmVmZjhmLi4wNDdmMDJhIDEwMDY0NAorLS0tIGEvTWFrZWZpbGUKKysrKyBiL01ha2VmaWxlCitAQCAtOCw3ICs4LDcgQEAgTElCUz89CisgVkVSU0lPTj0wLjIuMgorIENDPz1nY2MKKyBDRkxBR1M/PS1PMiAtZyAtV2FsbAorLUxERkxBR1M9JChMSUJTKQorK0xERkxBR1MrPSQoTElCUykKKyAKKyBpZmVxICgkKFVTRV9HRU9JUCkseWVzKQorIGlmZXEgKCQoVVNFX0RZTl9HRU9JUCkseWVzKQorLS0gCisyLjE1LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2lwY2FsYy9pcGNhbGNfMC4yLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvaXBjYWxjL2lwY2FsY18wLjIuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDU2NDI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2lwY2FsYy9pcGNhbGNfMC4yLjIuYmIKQEAgLTAsMCArMSwyMSBAQAorU1VNTUFSWSA9ICJUb29sIHRvIGFzc2lzdCBpbiBuZXR3b3JrIGFkZHJlc3MgY2FsY3VsYXRpb25zIGZvciBJUHY0IGFuZCBJUHY2LiIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9ubWF2L2lwY2FsYyIKKworU0VDVElPTiA9ICJuZXQiCisKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICI4MzQ4ODA4YTc4NjljYThmMjVhNWI1ZGVlYWE0MThjMmY2ZDUyNzU4IgorU1JDX1VSSSA9ICJcCisgICAgZ2l0Oi8vZ2l0aHViLmNvbS9ubWF2L2lwY2FsYy5naXQ7cHJvdG9jb2w9aHR0cHM7IFwKKyAgICBmaWxlOi8vMDAwMS1NYWtlZmlsZS1wYXNzLWV4dHJhLWxpbmtlci1mbGFncy5wYXRjaCBcCisiCisKK2V4cG9ydCBVU0VfR0VPSVAgPSAibm8iCisKK2RvX2luc3RhbGwoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9LyR7YmluZGlyfQorICAgIGluc3RhbGwgLW0gMDc1NSAke1N9L2lwY2FsYyAke0R9LyR7YmluZGlyfQorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYmxkYi9saWJsZGIvbGRiLUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlibGRiL2xpYmxkYi9sZGItQWRkLWNvbmZpZ3VyZS1vcHRpb25zLWZvci1wYWNrYWdlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTNiZDQ1Ny4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlibGRiL2xpYmxkYi9sZGItQWRkLWNvbmZpZ3VyZS1vcHRpb25zLWZvci1wYWNrYWdlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi1Gcm9tIDQ5ZGRlMjJlNzk4ZmQ3ZjM5ZmQ1OTI1MDAzNmMwYWUxZmUyYjkxNTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgotRGF0ZTogV2VkLCAyMSBTZXAgMjAxNiAxMDowNjozOSArMDgwMAotU3ViamVjdDogW1BBVENIXSBsZGI6IEFkZCBjb25maWd1cmUgb3B0aW9ucyBmb3IgcGFja2FnZXMKLQotQWRkIGNvbmZpZ3VyZSBvcHRpb25zIGZvciB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOgotIC0gYWNsCi0gLSBhdHRyCi0gLSBsaWJhaW8KLSAtIGxpYmJzZAotIC0gbGliY2FwCi0gLSB2YWxncmluZAotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW29lIGRldGVybWluaXN0aWMgYnVpbGQgc3BlY2lmaWNdCi0KLVNpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBsaWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUgfCAgNiArKy0KLSBsaWIvcmVwbGFjZS93c2NyaXB0ICAgICAgICAgICAgICAgICAgfCA4NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KLSB3c2NyaXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKysKLSAzIGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlIGIvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCi1pbmRleCAyMDM1NDc0Li4xMGY5YWU3IDEwMDY0NAotLS0tIGEvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCi0rKysgYi9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUKLUBAIC0xLDYgKzEsMTAgQEAKLSAjIS91c3IvYmluL2VudiBweXRob24KLSAKLS1jb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQotK2ltcG9ydCBPcHRpb25zCi0rCi0raWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJjYXA6Ci0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2NhcGFiaWxpdHkuaCcpCi0rCi0gY29uZi5DSEVDS19GVU5DUygnZ2V0cHduYW1fciBnZXRwd3VpZF9yIGdldHB3ZW50X3InKQotIAotICMgc29sYXJpcyB2YXJpZW50cyBvZiBnZXRYWGVudF9yCi1kaWZmIC0tZ2l0IGEvbGliL3JlcGxhY2Uvd3NjcmlwdCBiL2xpYi9yZXBsYWNlL3dzY3JpcHQKLWluZGV4IDE0NTMwMGQuLjgyMThmYTUgMTAwNjQ0Ci0tLS0gYS9saWIvcmVwbGFjZS93c2NyaXB0Ci0rKysgYi9saWIvcmVwbGFjZS93c2NyaXB0Ci1AQCAtMjMsNiArMjMsNDEgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6Ci0gICAgIG9wdC5QUklWQVRFX0VYVEVOU0lPTl9ERUZBVUxUKCcnKQotICAgICBvcHQuUkVDVVJTRSgnYnVpbGR0b29scy93YWZzYW1iYScpCi0gCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtYWNsJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgYWNsIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hY2wnKQotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWFjbCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBhY2wiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hY2wnLCBkZWZhdWx0PUZhbHNlKQotKwotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWF0dHInLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBhdHRyIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1hdHRyJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGF0dHIiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJywgZGVmYXVsdD1GYWxzZSkKLSsKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJhaW8nLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJhaW8iKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycpCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliYWlvJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmFpbyIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycsIGRlZmF1bHQ9RmFsc2UpCi0rCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliYnNkJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliYnNkIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnKQotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmJzZCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJic2QiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnLCBkZWZhdWx0PUZhbHNlKQotKwotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmNhcCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmNhcCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliY2FwJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJjYXAnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliY2FwIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliY2FwJywgZGVmYXVsdD1GYWxzZSkKLSsKLSBAVXRpbHMucnVuX29uY2UKLSBkZWYgY29uZmlndXJlKGNvbmYpOgotICAgICBjb25mLlJFQ1VSU0UoJ2J1aWxkdG9vbHMvd2Fmc2FtYmEnKQotQEAgLTMyLDEyICs2NywyNSBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgotICAgICBjb25mLkRFRklORSgnSEFWRV9MSUJSRVBMQUNFJywgMSkKLSAgICAgY29uZi5ERUZJTkUoJ0xJQlJFUExBQ0VfTkVUV09SS19DSEVDS1MnLCAxKQotIAotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpbnV4L3R5cGVzLmggY3J5cHQuaCBsb2NhbGUuaCBhY2wvbGliYWNsLmggY29tcGF0LmgnKQotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2FjbC9saWJhY2wuaCBhdHRyL3hhdHRyLmggY29tcGF0LmggY3R5cGUuaCBkdXN0YXQuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGludXgvdHlwZXMuaCBjcnlwdC5oIGxvY2FsZS5oIGNvbXBhdC5oJykKLSsgICAgY29uZi5DSEVDS19IRUFERVJTKCdjb21wYXQuaCBjdHlwZS5oIGR1c3RhdC5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCdmY250bC5oIGZubWF0Y2guaCBnbG9iLmggaGlzdG9yeS5oIGtyYjUuaCBsYW5naW5mby5oJykKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCdsaWJhaW8uaCBsb2NhbGUuaCBuZGlyLmggcHdkLmgnKQotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3NoYWRvdy5oIHN5cy9hY2wuaCcpCi0tICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBhdHRyL2F0dHJpYnV0ZXMuaCBzeXMvY2FwYWJpbGl0eS5oIHN5cy9kaXIuaCBzeXMvZXBvbGwuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbG9jYWxlLmggbmRpci5oIHB3ZC5oJykKLSsgICAgY29uZi5DSEVDS19IRUFERVJTKCdzaGFkb3cuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBzeXMvZGlyLmggc3lzL2Vwb2xsLmgnKQotKwotKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2FjbDoKLSsgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYWNsL2xpYmFjbC5oIHN5cy9hY2wuaCcpCi0rCi0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfYXR0cjoKLSsgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYXR0ci9hdHRyaWJ1dGVzLmggYXR0ci94YXR0ci5oJykKLSsKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJhaW86Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpYmFpby5oJykKLSsKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJjYXA6Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQotKwotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3BvcnQuaCcpCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2ZjbnRsLmggc3lzL2ZpbGlvLmggc3lzL2ZpbHN5cy5oIHN5cy9mcy9zNXBhcmFtLmggc3lzL2ZzL3Z4L3F1b3RhLmgnKQotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9pZC5oIHN5cy9pb2N0bC5oIHN5cy9pcGMuaCBzeXMvbW1hbi5oIHN5cy9tb2RlLmggc3lzL25kaXIuaCBzeXMvcHJpdi5oJykKLUBAIC03Myw3ICsxMjEsOSBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgotIAotICAgICBjb25mLkNIRUNLX0NPREUoJycsIGhlYWRlcnM9J3JwYy9ycGMuaCBycGNzdmMveXBfcHJvdC5oJywgZGVmaW5lPSdIQVZFX1JQQ1NWQ19ZUF9QUk9UX0gnKQotIAotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3ZhbGdyaW5kLmggdmFsZ3JpbmQvdmFsZ3JpbmQuaCB2YWxncmluZC9tZW1jaGVjay5oJykKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV92YWxncmluZDoKLSsgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndmFsZ3JpbmQuaCB2YWxncmluZC92YWxncmluZC5oIHZhbGdyaW5kL21lbWNoZWNrLmgnKQotKwotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ25zc19jb21tb24uaCBuc3N3aXRjaC5oIG5zX2FwaS5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvZXh0YXR0ci5oIHN5cy9lYS5oIHN5cy9wcm9wbGlzdC5oIHN5cy9jZGVmcy5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCd1dG1wLmggdXRtcHguaCBsYXN0bG9nLmgnKQotQEAgLTI0OCwxNyArMjk4LDE4IEBAIGRlZiBjb25maWd1cmUoY29uZik6Ci0gCi0gICAgIGNvbmYuQ0hFQ0tfRlVOQ1MoJ3ByY3RsIGRpcm5hbWUgYmFzZW5hbWUnKQotIAotLSAgICAjIGxpYmJzZCBvbiBzb21lIHBsYXRmb3JtcyBwcm92aWRlcyBzdHJsY3B5IGFuZCBzdHJsY2F0Ci0tICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzdHJsY3B5IHN0cmxjYXQnKToKLS0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3N0cmxjcHkgc3RybGNhdCcsICdic2QnLCBoZWFkZXJzPSdic2Qvc3RyaW5nLmgnLAotLSAgICAgICAgICAgICAgICBjaGVja2xpYmM9VHJ1ZSkKLS0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHBlZXJlaWQnKToKLS0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2dldHBlZXJlaWQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKLS0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdzZXRwcm9jdGl0bGUnLCBoZWFkZXJzPSdzZXRwcm9jdGl0bGUuaCcpOgotLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCi0tCi0tICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdjbG9zZWZyb20nKToKLS0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2Nsb3NlZnJvbScsICdic2QnLCBoZWFkZXJzPSdic2QvdW5pc3RkLmgnKQotKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmJzZDoKLSsgICAgICAgICMgbGliYnNkIG9uIHNvbWUgcGxhdGZvcm1zIHByb3ZpZGVzIHN0cmxjcHkgYW5kIHN0cmxjYXQKLSsgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzdHJsY3B5IHN0cmxjYXQnKToKLSsgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzdHJsY3B5IHN0cmxjYXQnLCAnYnNkJywgaGVhZGVycz0nYnNkL3N0cmluZy5oJywKLSsgICAgICAgICAgICAgICAgICAgIGNoZWNrbGliYz1UcnVlKQotKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHBlZXJlaWQnKToKLSsgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdnZXRwZWVyZWlkJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCi0rICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ3NldHByb2N0aXRsZScsIGhlYWRlcnM9J3NldHByb2N0aXRsZS5oJyk6Ci0rICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCi0rCi0rICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnY2xvc2Vmcm9tJyk6Ci0rICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignY2xvc2Vmcm9tJywgJ2JzZCcsIGhlYWRlcnM9J2JzZC91bmlzdGQuaCcpCi0gCi0gICAgIGNvbmYuQ0hFQ0tfQ09ERSgnJycKLSAgICAgICAgICAgICAgICAgc3RydWN0IHVjcmVkIGNyZWQ7Ci1kaWZmIC0tZ2l0IGEvd3NjcmlwdCBiL3dzY3JpcHQKLWluZGV4IDJhZjg1NzEuLjA1OTQwOGIgMTAwNzU1Ci0tLS0gYS93c2NyaXB0Ci0rKysgYi93c2NyaXB0Ci1AQCAtMjksNiArMjksMTMgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6Ci0gICAgIG9wdC5SRUNVUlNFKCdsaWIvcmVwbGFjZScpCi0gICAgIG9wdC50b29sX29wdGlvbnMoJ3B5dGhvbicpICMgb3B0aW9ucyBmb3IgZGlzYWJsaW5nIHB5YyBvciBweW8gY29tcGlsYXRpb24KLSAKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC12YWxncmluZCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJlbmFibGUgdXNlIG9mIHZhbGdyaW5kIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV92YWxncmluZCcpCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtdmFsZ3JpbmQnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiZGlzYWJsZSB1c2Ugb2YgdmFsZ3JpbmQiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV92YWxncmluZCcsIGRlZmF1bHQ9RmFsc2UpCi0rCi0gZGVmIGNvbmZpZ3VyZShjb25mKToKLSAgICAgY29uZi5SRUNVUlNFKCdsaWIvdGRiJykKLSAgICAgY29uZi5SRUNVUlNFKCdsaWIvdGV2ZW50JykKLS0tIAotMi44LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYmxkYi9saWJsZGIvb3B0aW9ucy0xLjMuMS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJsZGIvbGlibGRiL29wdGlvbnMtMS4zLjEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZlMjUzYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJsZGIvbGlibGRiL29wdGlvbnMtMS4zLjEucGF0Y2gKQEAgLTAsMCArMSwxOTMgQEAKK0Zyb20gYTRkYTNhYjRkNzYwMTNhYWE3MzFkNDNkNTJjY2NhMWViZDM3YzM5NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CitEYXRlOiBXZWQsIDIxIFNlcCAyMDE2IDEwOjA2OjM5ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMS8xXSBsZGI6IEFkZCBjb25maWd1cmUgb3B0aW9ucyBmb3IgcGFja2FnZXMKKworQWRkIGNvbmZpZ3VyZSBvcHRpb25zIGZvciB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOgorIC0gYWNsCisgLSBhdHRyCisgLSBsaWJhaW8KKyAtIGxpYmJzZAorIC0gbGliY2FwCisgLSB2YWxncmluZAorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW29lIGRldGVybWluaXN0aWMgYnVpbGQgc3BlY2lmaWNdCisKK1NpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CistLS0KKyBsaWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUgfCAgNiArKy0KKyBsaWIvcmVwbGFjZS93c2NyaXB0ICAgICAgICAgICAgICAgICAgfCA5NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KKyB3c2NyaXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKysKKyAzIGZpbGVzIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlIGIvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCitpbmRleCAyMDM1NDc0Li4xMGY5YWU3IDEwMDY0NAorLS0tIGEvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCisrKysgYi9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUKK0BAIC0xLDYgKzEsMTAgQEAKKyAjIS91c3IvYmluL2VudiBweXRob24KKyAKKy1jb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQorK2ltcG9ydCBPcHRpb25zCisrCisraWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJjYXA6CisrICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2NhcGFiaWxpdHkuaCcpCisrCisgY29uZi5DSEVDS19GVU5DUygnZ2V0cHduYW1fciBnZXRwd3VpZF9yIGdldHB3ZW50X3InKQorIAorICMgc29sYXJpcyB2YXJpZW50cyBvZiBnZXRYWGVudF9yCitkaWZmIC0tZ2l0IGEvbGliL3JlcGxhY2Uvd3NjcmlwdCBiL2xpYi9yZXBsYWNlL3dzY3JpcHQKK2luZGV4IDJmOTRkNDkuLjY4YjJkM2EgMTAwNjQ0CistLS0gYS9saWIvcmVwbGFjZS93c2NyaXB0CisrKysgYi9saWIvcmVwbGFjZS93c2NyaXB0CitAQCAtMjMsNiArMjMsNDEgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6CisgICAgIG9wdC5QUklWQVRFX0VYVEVOU0lPTl9ERUZBVUxUKCcnKQorICAgICBvcHQuUkVDVVJTRSgnYnVpbGR0b29scy93YWZzYW1iYScpCisgCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtYWNsJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgYWNsIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hY2wnKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWFjbCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBhY2wiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hY2wnLCBkZWZhdWx0PUZhbHNlKQorKworKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWF0dHInLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBhdHRyIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJykKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1hdHRyJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGF0dHIiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJywgZGVmYXVsdD1GYWxzZSkKKysKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJhaW8nLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJhaW8iKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycpCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliYWlvJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmFpbyIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycsIGRlZmF1bHQ9RmFsc2UpCisrCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliYnNkJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliYnNkIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmJzZCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJic2QiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnLCBkZWZhdWx0PUZhbHNlKQorKworKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmNhcCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmNhcCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliY2FwJykKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJjYXAnLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliY2FwIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliY2FwJywgZGVmYXVsdD1GYWxzZSkKKysKKyBAVXRpbHMucnVuX29uY2UKKyBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLlJFQ1VSU0UoJ2J1aWxkdG9vbHMvd2Fmc2FtYmEnKQorQEAgLTMyLDEyICs2NywyNSBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLkRFRklORSgnSEFWRV9MSUJSRVBMQUNFJywgMSkKKyAgICAgY29uZi5ERUZJTkUoJ0xJQlJFUExBQ0VfTkVUV09SS19DSEVDS1MnLCAxKQorIAorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpbnV4L3R5cGVzLmggY3J5cHQuaCBsb2NhbGUuaCBhY2wvbGliYWNsLmggY29tcGF0LmgnKQorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2FjbC9saWJhY2wuaCBhdHRyL3hhdHRyLmggY29tcGF0LmggY3R5cGUuaCBkdXN0YXQuaCcpCisrICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGludXgvdHlwZXMuaCBjcnlwdC5oIGxvY2FsZS5oIGNvbXBhdC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdjb21wYXQuaCBjdHlwZS5oIGR1c3RhdC5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCdmY250bC5oIGZubWF0Y2guaCBnbG9iLmggaGlzdG9yeS5oIGtyYjUuaCBsYW5naW5mby5oJykKKy0gICAgY29uZi5DSEVDS19IRUFERVJTKCdsaWJhaW8uaCBsb2NhbGUuaCBuZGlyLmggcHdkLmgnKQorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3NoYWRvdy5oIHN5cy9hY2wuaCcpCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBhdHRyL2F0dHJpYnV0ZXMuaCBzeXMvY2FwYWJpbGl0eS5oIHN5cy9kaXIuaCBzeXMvZXBvbGwuaCcpCisrICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbG9jYWxlLmggbmRpci5oIHB3ZC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdzaGFkb3cuaCcpCisrICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBzeXMvZGlyLmggc3lzL2Vwb2xsLmgnKQorKworKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2FjbDoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYWNsL2xpYmFjbC5oIHN5cy9hY2wuaCcpCisrCisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfYXR0cjoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYXR0ci9hdHRyaWJ1dGVzLmggYXR0ci94YXR0ci5oJykKKysKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJhaW86CisrICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpYmFpby5oJykKKysKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJjYXA6CisrICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQorKworICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3BvcnQuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2ZjbnRsLmggc3lzL2ZpbGlvLmggc3lzL2ZpbHN5cy5oIHN5cy9mcy9zNXBhcmFtLmggc3lzL2ZzL3Z4L3F1b3RhLmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9pZC5oIHN5cy9pb2N0bC5oIHN5cy9pcGMuaCBzeXMvbW1hbi5oIHN5cy9tb2RlLmggc3lzL25kaXIuaCBzeXMvcHJpdi5oJykKK0BAIC03Myw3ICsxMjEsOSBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgorIAorICAgICBjb25mLkNIRUNLX0NPREUoJycsIGhlYWRlcnM9J3JwYy9ycGMuaCBycGNzdmMveXBfcHJvdC5oJywgZGVmaW5lPSdIQVZFX1JQQ1NWQ19ZUF9QUk9UX0gnKQorIAorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3ZhbGdyaW5kLmggdmFsZ3JpbmQvdmFsZ3JpbmQuaCB2YWxncmluZC9tZW1jaGVjay5oJykKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV92YWxncmluZDoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndmFsZ3JpbmQuaCB2YWxncmluZC92YWxncmluZC5oIHZhbGdyaW5kL21lbWNoZWNrLmgnKQorKworICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ25zc19jb21tb24uaCBuc3N3aXRjaC5oIG5zX2FwaS5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvZXh0YXR0ci5oIHN5cy9lYS5oIHN5cy9wcm9wbGlzdC5oIHN5cy9jZGVmcy5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCd1dG1wLmggdXRtcHguaCBsYXN0bG9nLmgnKQorQEAgLTI2NiwyMiArMzE2LDIwIEBAIGRlZiBjb25maWd1cmUoY29uZik6CisgCisgICAgIGNvbmYuQ0hFQ0tfRlVOQ1MoJ3ByY3RsIGRpcm5hbWUgYmFzZW5hbWUnKQorIAorLSAgICBzdHJsY3B5X2luX2JzZCA9IEZhbHNlCistCistICAgICMgbGliYnNkIG9uIHNvbWUgcGxhdGZvcm1zIHByb3ZpZGVzIHN0cmxjcHkgYW5kIHN0cmxjYXQKKy0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ3N0cmxjcHkgc3RybGNhdCcpOgorLSAgICAgICAgaWYgY29uZi5DSEVDS19GVU5DU19JTignc3RybGNweSBzdHJsY2F0JywgJ2JzZCcsIGhlYWRlcnM9J2JzZC9zdHJpbmcuaCcsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrbGliYz1UcnVlKToKKy0gICAgICAgICAgICBzdHJsY3B5X2luX2JzZCA9IFRydWUKKy0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHBlZXJlaWQnKToKKy0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2dldHBlZXJlaWQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKy0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdzZXRwcm9jdGl0bGUnLCBoZWFkZXJzPSdzZXRwcm9jdGl0bGUuaCcpOgorLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCistICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzZXRwcm9jdGl0bGVfaW5pdCcpOgorLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlX2luaXQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKy0KKy0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2Nsb3NlZnJvbScpOgorLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignY2xvc2Vmcm9tJywgJ2JzZCcsIGhlYWRlcnM9J2JzZC91bmlzdGQuaCcpCisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliYnNkOgorKyAgICAgICAgIyBsaWJic2Qgb24gc29tZSBwbGF0Zm9ybXMgcHJvdmlkZXMgc3RybGNweSBhbmQgc3RybGNhdAorKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ3N0cmxjcHkgc3RybGNhdCcpOgorKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3N0cmxjcHkgc3RybGNhdCcsICdic2QnLCBoZWFkZXJzPSdic2Qvc3RyaW5nLmgnLAorKyAgICAgICAgICAgICAgICAgICAgY2hlY2tsaWJjPVRydWUpCisrICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnZ2V0cGVlcmVpZCcpOgorKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2dldHBlZXJlaWQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKysgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnc2V0cHJvY3RpdGxlJywgaGVhZGVycz0nc2V0cHJvY3RpdGxlLmgnKToKKysgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKysgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzZXRwcm9jdGl0bGVfaW5pdCcpOgorKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZV9pbml0JywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCisrCisrICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnY2xvc2Vmcm9tJyk6CisrICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignY2xvc2Vmcm9tJywgJ2JzZCcsIGhlYWRlcnM9J2JzZC91bmlzdGQuaCcpCisgCisgICAgIGNvbmYuQ0hFQ0tfQ09ERSgnJycKKyAgICAgICAgICAgICAgICAgc3RydWN0IHVjcmVkIGNyZWQ7CitAQCAtNjMyLDcgKzY4MCw3IEBAIHJlbW92ZWVhIHNldGVhCisgICAgICMgbG9vayBmb3IgYSBtZXRob2Qgb2YgZmluZGluZyB0aGUgbGlzdCBvZiBuZXR3b3JrIGludGVyZmFjZXMKKyAgICAgZm9yIG1ldGhvZCBpbiBbJ0hBVkVfSUZBQ0VfR0VUSUZBRERSUycsICdIQVZFX0lGQUNFX0FJWCcsICdIQVZFX0lGQUNFX0lGQ09ORicsICdIQVZFX0lGQUNFX0lGUkVRJ106CisgICAgICAgICBic2RfZm9yX3N0cmxjcHkgPSAnJworLSAgICAgICAgaWYgc3RybGNweV9pbl9ic2Q6CisrICAgICAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmJzZDoKKyAgICAgICAgICAgICBic2RfZm9yX3N0cmxjcHkgPSAnIGJzZCcKKyAgICAgICAgIGlmIGNvbmYuQ0hFQ0tfQ09ERSgnJycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZGVmaW5lICVzIDEKK2RpZmYgLS1naXQgYS93c2NyaXB0IGIvd3NjcmlwdAoraW5kZXggOGFlNWJlMy4uYTE3OGNjNCAxMDA2NDQKKy0tLSBhL3dzY3JpcHQKKysrKyBiL3dzY3JpcHQKK0BAIC0zMSw2ICszMSwxMyBAQCBkZWYgc2V0X29wdGlvbnMob3B0KToKKyAgICAgb3B0LlJFQ1VSU0UoJ2xpYi9yZXBsYWNlJykKKyAgICAgb3B0LnRvb2xfb3B0aW9ucygncHl0aG9uJykgIyBvcHRpb25zIGZvciBkaXNhYmxpbmcgcHljIG9yIHB5byBjb21waWxhdGlvbgorIAorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLXZhbGdyaW5kJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oImVuYWJsZSB1c2Ugb2YgdmFsZ3JpbmQiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJykKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC12YWxncmluZCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJkaXNhYmxlIHVzZSBvZiB2YWxncmluZCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJywgZGVmYXVsdD1GYWxzZSkKKysKKyBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLlJFQ1VSU0UoJ2xpYi90ZGInKQorICAgICBjb25mLlJFQ1VSU0UoJ2xpYi90ZXZlbnQnKQorLS0gCisyLjE2LjIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYmxkYi9saWJsZGJfMS4xLjI5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYmxkYi9saWJsZGJfMS4xLjI5LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTA5MTliLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJsZGIvbGlibGRiXzEuMS4yOS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLVNVTU1BUlkgPSAiSGllcmFyY2hpY2FsLCByZWZlcmVuY2UgY291bnRlZCBtZW1vcnkgcG9vbCBzeXN0ZW0gd2l0aCBkZXN0cnVjdG9ycyIKLUhPTUVQQUdFID0gImh0dHA6Ly9sZGIuc2FtYmEub3JnIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJMR1BMLTMuMCsgJiBMR1BMLTIuMSsgJiBHUEwtMy4wKyIKLQotREVQRU5EUyArPSAibGlidGRiIGxpYnRhbGxvYyBsaWJ0ZXZlbnQgcG9wdCIKLVJERVBFTkRTX3B5bGRiICs9ICJweXRob24iCi0KLVNSQ19VUkkgPSAiaHR0cDovL3NhbWJhLm9yZy9mdHAvbGRiL2xkYi0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vZG8tbm90LWltcG9ydC10YXJnZXQtbW9kdWxlLXdoaWxlLWNyb3NzLWNvbXBpbGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbGRiLUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2ggXAotICAgICAgICAgICIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIlwKLSAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhY2wnLCBkKX0gXAotICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneGF0dHInLCAnYXR0cicsICcnLCBkKX0gXAotIgotUEFDS0FHRUNPTkZJR1thY2xdID0gIi0td2l0aC1hY2wsLS13aXRob3V0LWFjbCxhY2wiCi1QQUNLQUdFQ09ORklHW2F0dHJdID0gIi0td2l0aC1hdHRyLC0td2l0aG91dC1hdHRyLGF0dHIiCi1QQUNLQUdFQ09ORklHW2xkYXBdID0gIiwsb3BlbmxkYXAiCi1QQUNLQUdFQ09ORklHW2xpYmFpb10gPSAiLS13aXRoLWxpYmFpbywtLXdpdGhvdXQtbGliYWlvLGxpYmFpbyIKLVBBQ0tBR0VDT05GSUdbbGliYnNkXSA9ICItLXdpdGgtbGliYnNkLC0td2l0aG91dC1saWJic2QsbGliYnNkIgotUEFDS0FHRUNPTkZJR1tsaWJjYXBdID0gIi0td2l0aC1saWJjYXAsLS13aXRob3V0LWxpYmNhcCxsaWJjYXAiCi1QQUNLQUdFQ09ORklHW3ZhbGdyaW5kXSA9ICItLXdpdGgtdmFsZ3JpbmQsLS13aXRob3V0LXZhbGdyaW5kLHZhbGdyaW5kIgotCi1TUkNfVVJJICs9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdsZGFwJywgJycsICdmaWxlOi8vYXZvaWQtb3BlbmxkYXAtdW5sZXNzLXdhbnRlZC5wYXRjaCcsIGQpfSIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vcHlsZGIuaDtlbmRsaW5lPTI0O21kNT1kZmJkMjM4Y2VjYWQ3Njk1N2Y3Zjg2MGZiZTlhZGFkZSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9tYW4vbGRiLjMueG1sO2JlZ2lubGluZT0yNjE7ZW5kbGluZT0yNjI7bWQ1PTEzN2Y5ZmQ2MTA0MGMxNTA1ZDFhYTEwMTk2NjNmZDA4IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL3Rvb2xzL2xkYmR1bXAuYztlbmRsaW5lPTE5O21kNT1hN2Q0ZmM1ZDFmNzU2NzZiNDlkZjQ5MTU3NWE4NmE0MiIKLQotU1JDX1VSSVttZDVzdW1dID0gIjljOTBhYmZiOTRjMWUyYTY5MzM5OTM5MmNmNGNkZGI5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU5ZDg0ZjlhNWI3OTlmNTE5YmE3YjI2ODViYjQ2ZjVhMjZmMWJiZjA1YjdhMTQ0YjJmNWUwMTdkMDFkODBmOTciCi0KLWluaGVyaXQgd2FmLXNhbWJhCi0KLVMgPSAiJHtXT1JLRElSfS9sZGItJHtQVn0iCi0KLUVYVFJBX09FQ09ORiArPSAiLS1kaXNhYmxlLXJwYXRoIFwKLSAgICAgICAgICAgICAgICAgLS1kaXNhYmxlLXJwYXRoLWluc3RhbGwgXAotICAgICAgICAgICAgICAgICAtLWJ1bmRsZWQtbGlicmFyaWVzPU5PTkUgXAotICAgICAgICAgICAgICAgICAtLWJ1aWx0aW4tbGlicmFyaWVzPXJlcGxhY2UgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtbW9kdWxlc2Rpcj0ke2xpYmRpcn0vbGRiL21vZHVsZXMgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtcHJpdmF0ZWxpYmRpcj0ke2xpYmRpcn0vbGRiIFwKLSAgICAgICAgICAgICAgICAgLS13aXRoLWxpYmljb252PSR7U1RBR0lOR19ESVJfSE9TVH0ke3ByZWZpeH1cCi0gICAgICAgICAgICAgICAgIgotCi1QQUNLQUdFUyA9KyAicHlsZGIgcHlsZGItZGJnIHB5bGRiLWRldiIKLQotTk9BVVRPUEFDS0FHRURFQlVHID0gIjEiCi0KLUZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vbGRiLyoiCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7YmluZGlyfS8uZGVidWcvKiBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS8uZGVidWcvKiBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9sZGIvLmRlYnVnLyogXAotICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGRiL21vZHVsZXMvbGRiLy5kZWJ1Zy8qIgotCi1GSUxFU19weWxkYiA9ICIke2xpYmRpcn0vcHl0aG9uJHtQWVRIT05fQkFTRVZFUlNJT059L3NpdGUtcGFja2FnZXMvKiBcCi0gICAgICAgICAgICAgICAke2xpYmRpcn0vbGlicHlsZGItdXRpbC5zby4qIFwKLSAgICAgICAgICAgICAgIgotRklMRVNfcHlsZGItZGJnID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8uZGVidWcgXAotICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS8uZGVidWcvbGlicHlsZGItdXRpbC5zby4qIgotRklMRVNfcHlsZGItZGV2ID0gIiR7bGliZGlyfS9saWJweWxkYi11dGlsLnNvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYmxkYi9saWJsZGJfMS4zLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlibGRiL2xpYmxkYl8xLjMuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTE0Y2RlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYmxkYi9saWJsZGJfMS4zLjEuYmIKQEAgLTAsMCArMSw2MyBAQAorU1VNTUFSWSA9ICJIaWVyYXJjaGljYWwsIHJlZmVyZW5jZSBjb3VudGVkIG1lbW9yeSBwb29sIHN5c3RlbSB3aXRoIGRlc3RydWN0b3JzIgorSE9NRVBBR0UgPSAiaHR0cDovL2xkYi5zYW1iYS5vcmciCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkxHUEwtMy4wKyAmIExHUEwtMi4xKyAmIEdQTC0zLjArIgorCitERVBFTkRTICs9ICJsaWJ0ZGIgbGlidGFsbG9jIGxpYnRldmVudCBwb3B0IgorUkRFUEVORFNfcHlsZGIgKz0gInB5dGhvbiIKKworU1JDX1VSSSA9ICJodHRwOi8vc2FtYmEub3JnL2Z0cC9sZGIvbGRiLSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9kby1ub3QtaW1wb3J0LXRhcmdldC1tb2R1bGUtd2hpbGUtY3Jvc3MtY29tcGlsZS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9vcHRpb25zLTEuMy4xLnBhdGNoIFwKKyAgICAgICAgICAiCisKK1BBQ0tBR0VDT05GSUcgPz89ICJcCisgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnYWNsJywgZCl9IFwKKyAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3hhdHRyJywgJ2F0dHInLCAnJywgZCl9IFwKKyIKK1BBQ0tBR0VDT05GSUdbYWNsXSA9ICItLXdpdGgtYWNsLC0td2l0aG91dC1hY2wsYWNsIgorUEFDS0FHRUNPTkZJR1thdHRyXSA9ICItLXdpdGgtYXR0ciwtLXdpdGhvdXQtYXR0cixhdHRyIgorUEFDS0FHRUNPTkZJR1tsZGFwXSA9ICIsLG9wZW5sZGFwIgorUEFDS0FHRUNPTkZJR1tsaWJhaW9dID0gIi0td2l0aC1saWJhaW8sLS13aXRob3V0LWxpYmFpbyxsaWJhaW8iCitQQUNLQUdFQ09ORklHW2xpYmJzZF0gPSAiLS13aXRoLWxpYmJzZCwtLXdpdGhvdXQtbGliYnNkLGxpYmJzZCIKK1BBQ0tBR0VDT05GSUdbbGliY2FwXSA9ICItLXdpdGgtbGliY2FwLC0td2l0aG91dC1saWJjYXAsbGliY2FwIgorUEFDS0FHRUNPTkZJR1t2YWxncmluZF0gPSAiLS13aXRoLXZhbGdyaW5kLC0td2l0aG91dC12YWxncmluZCx2YWxncmluZCIKKworU1JDX1VSSSArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnbGRhcCcsICcnLCAnZmlsZTovL2F2b2lkLW9wZW5sZGFwLXVubGVzcy13YW50ZWQucGF0Y2gnLCBkKX0iCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3B5bGRiLmg7ZW5kbGluZT0yNDttZDU9ZGZiZDIzOGNlY2FkNzY5NTdmN2Y4NjBmYmU5YWRhZGUgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vbWFuL2xkYi4zLnhtbDtiZWdpbmxpbmU9MjYxO2VuZGxpbmU9MjYyO21kNT0xMzdmOWZkNjEwNDBjMTUwNWQxYWExMDE5NjYzZmQwOCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly90b29scy9sZGJkdW1wLmM7ZW5kbGluZT0xOTttZDU9YTdkNGZjNWQxZjc1Njc2YjQ5ZGY0OTE1NzVhODZhNDIiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJlNTIzM2YyMDJiY2EyN2Y2Y2U4NDc0ZmI4YWU2NTk4MyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJiMTlmMmM5ZjU1YWUwZjQ2YWE1ZWJhZWEwYmYxYTQ3ZWMxYWMxMzVlMWQ3OGFmMGY2MzE4Y2Y1MGJmNjJjYmQyIgorCitpbmhlcml0IHdhZi1zYW1iYQorCitTID0gIiR7V09SS0RJUn0vbGRiLSR7UFZ9IgorCitFWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1ycGF0aCBcCisgICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1ycGF0aC1pbnN0YWxsIFwKKyAgICAgICAgICAgICAgICAgLS1idW5kbGVkLWxpYnJhcmllcz1jbW9ja2EgXAorICAgICAgICAgICAgICAgICAtLWJ1aWx0aW4tbGlicmFyaWVzPXJlcGxhY2UgXAorICAgICAgICAgICAgICAgICAtLXdpdGgtbW9kdWxlc2Rpcj0ke2xpYmRpcn0vbGRiL21vZHVsZXMgXAorICAgICAgICAgICAgICAgICAtLXdpdGgtcHJpdmF0ZWxpYmRpcj0ke2xpYmRpcn0vbGRiIFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLWxpYmljb252PSR7U1RBR0lOR19ESVJfSE9TVH0ke3ByZWZpeH1cCisgICAgICAgICAgICAgICAgIgorCitQQUNLQUdFUyA9KyAicHlsZGIgcHlsZGItZGJnIHB5bGRiLWRldiIKKworTk9BVVRPUEFDS0FHRURFQlVHID0gIjEiCisKK0ZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vbGRiLyoiCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7YmluZGlyfS8uZGVidWcvKiBcCisgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS8uZGVidWcvKiBcCisgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9sZGIvLmRlYnVnLyogXAorICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGRiL21vZHVsZXMvbGRiLy5kZWJ1Zy8qIgorCitGSUxFU19weWxkYiA9ICIke2xpYmRpcn0vcHl0aG9uJHtQWVRIT05fQkFTRVZFUlNJT059L3NpdGUtcGFja2FnZXMvKiBcCisgICAgICAgICAgICAgICAke2xpYmRpcn0vbGlicHlsZGItdXRpbC5zby4qIFwKKyAgICAgICAgICAgICAgIgorRklMRVNfcHlsZGItZGJnID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8uZGVidWcgXAorICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS8uZGVidWcvbGlicHlsZGItdXRpbC5zby4qIgorRklMRVNfcHlsZGItZGV2ID0gIiR7bGliZGlyfS9saWJweWxkYi11dGlsLnNvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRhbGxvYy9saWJ0YWxsb2Mvb3B0aW9ucy0yLjEuMTAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGFsbG9jL2xpYnRhbGxvYy9vcHRpb25zLTIuMS4xMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2YyMWU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRhbGxvYy9saWJ0YWxsb2Mvb3B0aW9ucy0yLjEuMTAucGF0Y2gKQEAgLTAsMCArMSwxODQgQEAKK0Zyb20gZWZjMWIwMjE0NGYyM2ZkZjg0ZGJjNWZmMTUzMDc4MTVlMGYyYTQyNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CitEYXRlOiBXZWQsIDE0IFNlcCAyMDE2IDExOjExOjM1ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHRhbGxvYzogQWRkIGNvbmZpZ3VyZSBvcHRpb25zIGZvciBwYWNrYWdlcworCitBZGQgY29uZmlndXJlIG9wdGlvbnMgZm9yIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6CisgLSBhY2wKKyAtIGF0dHIKKyAtIGxpYmFpbworIC0gbGliYnNkCisgLSBsaWJjYXAKKyAtIHZhbGdyaW5kCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbb2UgZGV0ZXJtaW5pc3RpYyBidWlsZCBzcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KKworTW9kaWZpZWQgdG8gYXBwbHkgdG8gdmVyc2lvbiAyLjEuMTAuCisKK1NpZ25lZC1vZmYtYnk6IEpvZSBTbGF0ZXIgPGpvZS5zbGF0ZXJAd2luZHJpdmVyLmNvbT4KKworLS0tCisgbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlIHwgIDYgKystCisgbGliL3JlcGxhY2Uvd3NjcmlwdCAgICAgICAgICAgICAgICAgIHwgODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCisgd3NjcmlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKystCisgMyBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKKworSW5kZXg6IHRhbGxvYy0yLjEuMTEvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gdGFsbG9jLTIuMS4xMS5vcmlnL2xpYi9yZXBsYWNlL3N5c3RlbS93c2NyaXB0X2NvbmZpZ3VyZQorKysrIHRhbGxvYy0yLjEuMTEvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCitAQCAtMSw2ICsxLDEwIEBACisgIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisgCistY29uZi5DSEVDS19IRUFERVJTKCdzeXMvY2FwYWJpbGl0eS5oJykKKytpbXBvcnQgT3B0aW9ucworKworK2lmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliY2FwOgorKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQorKworIGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHB3bmFtX3IgZ2V0cHd1aWRfciBnZXRwd2VudF9yJykKKyAKKyAjIHNvbGFyaXMgdmFyaWVudHMgb2YgZ2V0WFhlbnRfcgorSW5kZXg6IHRhbGxvYy0yLjEuMTEvbGliL3JlcGxhY2Uvd3NjcmlwdAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHRhbGxvYy0yLjEuMTEub3JpZy9saWIvcmVwbGFjZS93c2NyaXB0CisrKysgdGFsbG9jLTIuMS4xMS9saWIvcmVwbGFjZS93c2NyaXB0CitAQCAtMjMsNiArMjMsNDEgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6CisgICAgIG9wdC5QUklWQVRFX0VYVEVOU0lPTl9ERUZBVUxUKCcnKQorICAgICBvcHQuUkVDVVJTRSgnYnVpbGR0b29scy93YWZzYW1iYScpCisgCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtYWNsJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgYWNsIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hY2wnKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWFjbCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBhY2wiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hY2wnLCBkZWZhdWx0PUZhbHNlKQorKworKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWF0dHInLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBhdHRyIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJykKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1hdHRyJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGF0dHIiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJywgZGVmYXVsdD1GYWxzZSkKKysKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJhaW8nLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJhaW8iKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycpCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliYWlvJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmFpbyIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycsIGRlZmF1bHQ9RmFsc2UpCisrCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliYnNkJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliYnNkIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmJzZCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJic2QiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnLCBkZWZhdWx0PUZhbHNlKQorKworKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmNhcCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmNhcCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliY2FwJykKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJjYXAnLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliY2FwIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliY2FwJywgZGVmYXVsdD1GYWxzZSkKKysKKyBAVXRpbHMucnVuX29uY2UKKyBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLlJFQ1VSU0UoJ2J1aWxkdG9vbHMvd2Fmc2FtYmEnKQorQEAgLTMyLDEyICs2NywyNSBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLkRFRklORSgnSEFWRV9MSUJSRVBMQUNFJywgMSkKKyAgICAgY29uZi5ERUZJTkUoJ0xJQlJFUExBQ0VfTkVUV09SS19DSEVDS1MnLCAxKQorIAorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpbnV4L3R5cGVzLmggY3J5cHQuaCBsb2NhbGUuaCBhY2wvbGliYWNsLmggY29tcGF0LmgnKQorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2FjbC9saWJhY2wuaCBhdHRyL3hhdHRyLmggY29tcGF0LmggY3R5cGUuaCBkdXN0YXQuaCcpCisrICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGludXgvdHlwZXMuaCBjcnlwdC5oIGxvY2FsZS5oIGNvbXBhdC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdjb21wYXQuaCBjdHlwZS5oIGR1c3RhdC5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCdmY250bC5oIGZubWF0Y2guaCBnbG9iLmggaGlzdG9yeS5oIGtyYjUuaCBsYW5naW5mby5oJykKKy0gICAgY29uZi5DSEVDS19IRUFERVJTKCdsaWJhaW8uaCBsb2NhbGUuaCBuZGlyLmggcHdkLmgnKQorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3NoYWRvdy5oIHN5cy9hY2wuaCcpCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBhdHRyL2F0dHJpYnV0ZXMuaCBzeXMvY2FwYWJpbGl0eS5oIHN5cy9kaXIuaCBzeXMvZXBvbGwuaCcpCisrICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbG9jYWxlLmggbmRpci5oIHB3ZC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdzaGFkb3cuaCcpCisrICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBzeXMvZGlyLmggc3lzL2Vwb2xsLmgnKQorKworKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2FjbDoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYWNsL2xpYmFjbC5oIHN5cy9hY2wuaCcpCisrCisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfYXR0cjoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYXR0ci9hdHRyaWJ1dGVzLmggYXR0ci94YXR0ci5oJykKKysKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJhaW86CisrICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpYmFpby5oJykKKysKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJjYXA6CisrICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQorKworICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3BvcnQuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2ZjbnRsLmggc3lzL2ZpbGlvLmggc3lzL2ZpbHN5cy5oIHN5cy9mcy9zNXBhcmFtLmggc3lzL2ZzL3Z4L3F1b3RhLmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9pZC5oIHN5cy9pb2N0bC5oIHN5cy9pcGMuaCBzeXMvbW1hbi5oIHN5cy9tb2RlLmggc3lzL25kaXIuaCBzeXMvcHJpdi5oJykKK0BAIC03Myw3ICsxMjEsOSBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgorIAorICAgICBjb25mLkNIRUNLX0NPREUoJycsIGhlYWRlcnM9J3JwYy9ycGMuaCBycGNzdmMveXBfcHJvdC5oJywgZGVmaW5lPSdIQVZFX1JQQ1NWQ19ZUF9QUk9UX0gnKQorIAorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3ZhbGdyaW5kLmggdmFsZ3JpbmQvdmFsZ3JpbmQuaCB2YWxncmluZC9tZW1jaGVjay5oJykKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV92YWxncmluZDoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndmFsZ3JpbmQuaCB2YWxncmluZC92YWxncmluZC5oIHZhbGdyaW5kL21lbWNoZWNrLmgnKQorKworICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ25zc19jb21tb24uaCBuc3N3aXRjaC5oIG5zX2FwaS5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvZXh0YXR0ci5oIHN5cy9lYS5oIHN5cy9wcm9wbGlzdC5oIHN5cy9jZGVmcy5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCd1dG1wLmggdXRtcHguaCBsYXN0bG9nLmgnKQorQEAgLTI2NywyMSArMzE3LDIxIEBAIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuQ0hFQ0tfRlVOQ1MoJ3ByY3RsIGRpcm5hbWUgYmFzZW5hbWUnKQorIAorICAgICBzdHJsY3B5X2luX2JzZCA9IEZhbHNlCistCistICAgICMgbGliYnNkIG9uIHNvbWUgcGxhdGZvcm1zIHByb3ZpZGVzIHN0cmxjcHkgYW5kIHN0cmxjYXQKKy0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ3N0cmxjcHkgc3RybGNhdCcpOgorLSAgICAgICAgaWYgY29uZi5DSEVDS19GVU5DU19JTignc3RybGNweSBzdHJsY2F0JywgJ2JzZCcsIGhlYWRlcnM9J2JzZC9zdHJpbmcuaCcsCisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliYnNkOgorKyAgICAgICAgIyBsaWJic2Qgb24gc29tZSBwbGF0Zm9ybXMgcHJvdmlkZXMgc3RybGNweSBhbmQgc3RybGNhdAorKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ3N0cmxjcHkgc3RybGNhdCcpOgorKyAgICAgICAgICAgIGlmIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3N0cmxjcHkgc3RybGNhdCcsICdic2QnLCBoZWFkZXJzPSdic2Qvc3RyaW5nLmgnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpYmM9VHJ1ZSk6CistICAgICAgICAgICAgc3RybGNweV9pbl9ic2QgPSBUcnVlCistICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdnZXRwZWVyZWlkJyk6CistICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdnZXRwZWVyZWlkJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCistICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnc2V0cHJvY3RpdGxlJywgaGVhZGVycz0nc2V0cHJvY3RpdGxlLmgnKToKKy0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQorLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc2V0cHJvY3RpdGxlX2luaXQnKToKKy0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZV9pbml0JywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCisrICAgICAgICAgICAgICAgIHN0cmxjcHlfaW5fYnNkID0gVHJ1ZQorKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHBlZXJlaWQnKToKKysgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdnZXRwZWVyZWlkJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCisrICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ3NldHByb2N0aXRsZScsIGhlYWRlcnM9J3NldHByb2N0aXRsZS5oJyk6CisrICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCisrICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc2V0cHJvY3RpdGxlX2luaXQnKToKKysgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGVfaW5pdCcsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQorIAorLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnY2xvc2Vmcm9tJyk6CistICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdjbG9zZWZyb20nLCAnYnNkJywgaGVhZGVycz0nYnNkL3VuaXN0ZC5oJykKKysgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdjbG9zZWZyb20nKToKKysgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdjbG9zZWZyb20nLCAnYnNkJywgaGVhZGVycz0nYnNkL3VuaXN0ZC5oJykKKyAKKyAgICAgY29uZi5DSEVDS19DT0RFKCcnJworICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWNyZWQgY3JlZDsKK0luZGV4OiB0YWxsb2MtMi4xLjExL3dzY3JpcHQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0YWxsb2MtMi4xLjExLm9yaWcvd3NjcmlwdAorKysrIHRhbGxvYy0yLjEuMTEvd3NjcmlwdAorQEAgLTMyLDcgKzMyLDEyIEBAIGRlZiBzZXRfb3B0aW9ucyhvcHQpOgorICAgICAgICAgb3B0LmFkZF9vcHRpb24oJy0tZW5hYmxlLXRhbGxvYy1jb21wYXQxJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCJCdWlsZCB0YWxsb2MgMS54LnggY29tcGF0IGxpYnJhcnkgW0ZhbHNlXSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nVEFMTE9DX0NPTVBBVDEnLCBkZWZhdWx0PUZhbHNlKQorLQorKyAgICAgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC12YWxncmluZCcsCisrICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgiZW5hYmxlIHVzZSBvZiB2YWxncmluZCIpLAorKyAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJykKKysgICAgICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtdmFsZ3JpbmQnLAorKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0oImRpc2FibGUgdXNlIG9mIHZhbGdyaW5kIiksCisrICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJywgZGVmYXVsdD1GYWxzZSkKKyAKKyBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLlJFQ1VSU0UoJ2xpYi9yZXBsYWNlJykKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0YWxsb2MvbGlidGFsbG9jL3RhbGxvYy1BZGQtY29uZmlndXJlLW9wdGlvbnMtZm9yLXBhY2thZ2VzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRhbGxvYy9saWJ0YWxsb2MvdGFsbG9jLUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2YjI0MDUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRhbGxvYy9saWJ0YWxsb2MvdGFsbG9jLUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNzcgKzAsMCBAQAotRnJvbSBlZmMxYjAyMTQ0ZjIzZmRmODRkYmM1ZmYxNTMwNzgxNWUwZjJhNDI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KLURhdGU6IFdlZCwgMTQgU2VwIDIwMTYgMTE6MTE6MzUgKzA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gdGFsbG9jOiBBZGQgY29uZmlndXJlIG9wdGlvbnMgZm9yIHBhY2thZ2VzCi0KLUFkZCBjb25maWd1cmUgb3B0aW9ucyBmb3IgdGhlIGZvbGxvd2luZyBwYWNrYWdlczoKLSAtIGFjbAotIC0gYXR0cgotIC0gbGliYWlvCi0gLSBsaWJic2QKLSAtIGxpYmNhcAotIC0gdmFsZ3JpbmQKLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtvZSBkZXRlcm1pbmlzdGljIGJ1aWxkIHNwZWNpZmljXQotCi1TaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi0gbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlIHwgIDYgKystCi0gbGliL3JlcGxhY2Uvd3NjcmlwdCAgICAgICAgICAgICAgICAgIHwgODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCi0gd3NjcmlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKystCi0gMyBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYi9yZXBsYWNlL3N5c3RlbS93c2NyaXB0X2NvbmZpZ3VyZSBiL2xpYi9yZXBsYWNlL3N5c3RlbS93c2NyaXB0X2NvbmZpZ3VyZQotaW5kZXggMjAzNTQ3NC4uMTBmOWFlNyAxMDA2NDQKLS0tLSBhL2xpYi9yZXBsYWNlL3N5c3RlbS93c2NyaXB0X2NvbmZpZ3VyZQotKysrIGIvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCi1AQCAtMSw2ICsxLDEwIEBACi0gIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0gCi0tY29uZi5DSEVDS19IRUFERVJTKCdzeXMvY2FwYWJpbGl0eS5oJykKLStpbXBvcnQgT3B0aW9ucwotKwotK2lmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliY2FwOgotKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQotKwotIGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHB3bmFtX3IgZ2V0cHd1aWRfciBnZXRwd2VudF9yJykKLSAKLSAjIHNvbGFyaXMgdmFyaWVudHMgb2YgZ2V0WFhlbnRfcgotZGlmZiAtLWdpdCBhL2xpYi9yZXBsYWNlL3dzY3JpcHQgYi9saWIvcmVwbGFjZS93c2NyaXB0Ci1pbmRleCBmYzQzZTFhLi4xMmQyYTcwIDEwMDY0NAotLS0tIGEvbGliL3JlcGxhY2Uvd3NjcmlwdAotKysrIGIvbGliL3JlcGxhY2Uvd3NjcmlwdAotQEAgLTIzLDYgKzIzLDQxIEBAIGRlZiBzZXRfb3B0aW9ucyhvcHQpOgotICAgICBvcHQuUFJJVkFURV9FWFRFTlNJT05fREVGQVVMVCgnJykKLSAgICAgb3B0LlJFQ1VSU0UoJ2J1aWxkdG9vbHMvd2Fmc2FtYmEnKQotIAotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWFjbCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGFjbCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfYWNsJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1hY2wnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgYWNsIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfYWNsJywgZGVmYXVsdD1GYWxzZSkKLSsKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1hdHRyJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgYXR0ciIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfYXR0cicpCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtYXR0cicsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBhdHRyIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfYXR0cicsIGRlZmF1bHQ9RmFsc2UpCi0rCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliYWlvJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliYWlvIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJhaW8nKQotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmFpbycsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJhaW8iKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJhaW8nLCBkZWZhdWx0PUZhbHNlKQotKwotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmJzZCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmJzZCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliYnNkJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJic2QnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliYnNkIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliYnNkJywgZGVmYXVsdD1GYWxzZSkKLSsKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJjYXAnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJjYXAiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmNhcCcpCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliY2FwJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmNhcCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmNhcCcsIGRlZmF1bHQ9RmFsc2UpCi0rCi0gQFV0aWxzLnJ1bl9vbmNlCi0gZGVmIGNvbmZpZ3VyZShjb25mKToKLSAgICAgY29uZi5SRUNVUlNFKCdidWlsZHRvb2xzL3dhZnNhbWJhJykKLUBAIC0zMiwxMiArNjcsMjUgQEAgZGVmIGNvbmZpZ3VyZShjb25mKToKLSAgICAgY29uZi5ERUZJTkUoJ0hBVkVfTElCUkVQTEFDRScsIDEpCi0gICAgIGNvbmYuREVGSU5FKCdMSUJSRVBMQUNFX05FVFdPUktfQ0hFQ0tTJywgMSkKLSAKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCdsaW51eC90eXBlcy5oIGNyeXB0LmggbG9jYWxlLmggYWNsL2xpYmFjbC5oIGNvbXBhdC5oJykKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCdhY2wvbGliYWNsLmggYXR0ci94YXR0ci5oIGNvbXBhdC5oIGN0eXBlLmggZHVzdGF0LmgnKQotKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpbnV4L3R5cGVzLmggY3J5cHQuaCBsb2NhbGUuaCBjb21wYXQuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnY29tcGF0LmggY3R5cGUuaCBkdXN0YXQuaCcpCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnZmNudGwuaCBmbm1hdGNoLmggZ2xvYi5oIGhpc3RvcnkuaCBrcmI1LmggbGFuZ2luZm8uaCcpCi0tICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGliYWlvLmggbG9jYWxlLmggbmRpci5oIHB3ZC5oJykKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCdzaGFkb3cuaCBzeXMvYWNsLmgnKQotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9hdHRyaWJ1dGVzLmggYXR0ci9hdHRyaWJ1dGVzLmggc3lzL2NhcGFiaWxpdHkuaCBzeXMvZGlyLmggc3lzL2Vwb2xsLmgnKQotKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xvY2FsZS5oIG5kaXIuaCBwd2QuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc2hhZG93LmgnKQotKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9hdHRyaWJ1dGVzLmggc3lzL2Rpci5oIHN5cy9lcG9sbC5oJykKLSsKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9hY2w6Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2FjbC9saWJhY2wuaCBzeXMvYWNsLmgnKQotKwotKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2F0dHI6Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2F0dHIvYXR0cmlidXRlcy5oIGF0dHIveGF0dHIuaCcpCi0rCi0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliYWlvOgotKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdsaWJhaW8uaCcpCi0rCi0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliY2FwOgotKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvY2FwYWJpbGl0eS5oJykKLSsKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCdwb3J0LmgnKQotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9mY250bC5oIHN5cy9maWxpby5oIHN5cy9maWxzeXMuaCBzeXMvZnMvczVwYXJhbS5oIHN5cy9mcy92eC9xdW90YS5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvaWQuaCBzeXMvaW9jdGwuaCBzeXMvaXBjLmggc3lzL21tYW4uaCBzeXMvbW9kZS5oIHN5cy9uZGlyLmggc3lzL3ByaXYuaCcpCi1AQCAtNzMsNyArMTIxLDkgQEAgZGVmIGNvbmZpZ3VyZShjb25mKToKLSAKLSAgICAgY29uZi5DSEVDS19DT0RFKCcnLCBoZWFkZXJzPSdycGMvcnBjLmggcnBjc3ZjL3lwX3Byb3QuaCcsIGRlZmluZT0nSEFWRV9SUENTVkNfWVBfUFJPVF9IJykKLSAKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCd2YWxncmluZC5oIHZhbGdyaW5kL3ZhbGdyaW5kLmggdmFsZ3JpbmQvbWVtY2hlY2suaCcpCi0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfdmFsZ3JpbmQ6Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3ZhbGdyaW5kLmggdmFsZ3JpbmQvdmFsZ3JpbmQuaCB2YWxncmluZC9tZW1jaGVjay5oJykKLSsKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCduc3NfY29tbW9uLmggbnNzd2l0Y2guaCBuc19hcGkuaCcpCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2V4dGF0dHIuaCBzeXMvZWEuaCBzeXMvcHJvcGxpc3QuaCBzeXMvY2RlZnMuaCcpCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndXRtcC5oIHV0bXB4LmggbGFzdGxvZy5oJykKLUBAIC0yNDgsMTcgKzI5OCwxOCBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgotIAotICAgICBjb25mLkNIRUNLX0ZVTkNTKCdwcmN0bCBkaXJuYW1lIGJhc2VuYW1lJykKLSAKLS0gICAgIyBsaWJic2Qgb24gc29tZSBwbGF0Zm9ybXMgcHJvdmlkZXMgc3RybGNweSBhbmQgc3RybGNhdAotLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc3RybGNweSBzdHJsY2F0Jyk6Ci0tICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzdHJsY3B5IHN0cmxjYXQnLCAnYnNkJywgaGVhZGVycz0nYnNkL3N0cmluZy5oJywKLS0gICAgICAgICAgICAgICAgY2hlY2tsaWJjPVRydWUpCi0tICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdnZXRwZWVyZWlkJyk6Ci0tICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdnZXRwZWVyZWlkJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCi0tICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnc2V0cHJvY3RpdGxlJywgaGVhZGVycz0nc2V0cHJvY3RpdGxlLmgnKToKLS0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQotLQotLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnY2xvc2Vmcm9tJyk6Ci0tICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdjbG9zZWZyb20nLCAnYnNkJywgaGVhZGVycz0nYnNkL3VuaXN0ZC5oJykKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJic2Q6Ci0rICAgICAgICAjIGxpYmJzZCBvbiBzb21lIHBsYXRmb3JtcyBwcm92aWRlcyBzdHJsY3B5IGFuZCBzdHJsY2F0Ci0rICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc3RybGNweSBzdHJsY2F0Jyk6Ci0rICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc3RybGNweSBzdHJsY2F0JywgJ2JzZCcsIGhlYWRlcnM9J2JzZC9zdHJpbmcuaCcsCi0rICAgICAgICAgICAgICAgICAgICBjaGVja2xpYmM9VHJ1ZSkKLSsgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdnZXRwZWVyZWlkJyk6Ci0rICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignZ2V0cGVlcmVpZCcsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQotKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdzZXRwcm9jdGl0bGUnLCBoZWFkZXJzPSdzZXRwcm9jdGl0bGUuaCcpOgotKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQotKwotKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2Nsb3NlZnJvbScpOgotKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2Nsb3NlZnJvbScsICdic2QnLCBoZWFkZXJzPSdic2QvdW5pc3RkLmgnKQotIAotICAgICBjb25mLkNIRUNLX0NPREUoJycnCi0gICAgICAgICAgICAgICAgIHN0cnVjdCB1Y3JlZCBjcmVkOwotZGlmZiAtLWdpdCBhL3dzY3JpcHQgYi93c2NyaXB0Ci1pbmRleCA0MWYzYmU3Li41NTZjMWM4IDEwMDY0NAotLS0tIGEvd3NjcmlwdAotKysrIGIvd3NjcmlwdAotQEAgLTM1LDcgKzM1LDEyIEBAIGRlZiBzZXRfb3B0aW9ucyhvcHQpOgotICAgICAgICAgb3B0LmFkZF9vcHRpb24oJy0tZGlzYWJsZS1weXRob24nLAotICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0oImRpc2FibGUgdGhlIHB5dGFsbG9jIG1vZHVsZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZGlzYWJsZV9weXRob24nLCBkZWZhdWx0PUZhbHNlKQotLQotKyAgICAgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC12YWxncmluZCcsCi0rICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgiZW5hYmxlIHVzZSBvZiB2YWxncmluZCIpLAotKyAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJykKLSsgICAgICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtdmFsZ3JpbmQnLAotKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0oImRpc2FibGUgdXNlIG9mIHZhbGdyaW5kIiksCi0rICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJywgZGVmYXVsdD1GYWxzZSkKLSAKLSBkZWYgY29uZmlndXJlKGNvbmYpOgotICAgICBjb25mLlJFQ1VSU0UoJ2xpYi9yZXBsYWNlJykKLS0tIAotMi44LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRhbGxvYy9saWJ0YWxsb2NfMi4xLjExLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRhbGxvYy9saWJ0YWxsb2NfMi4xLjExLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0OGNmNGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGFsbG9jL2xpYnRhbGxvY18yLjEuMTEuYmIKQEAgLTAsMCArMSw0OSBAQAorU1VNTUFSWSA9ICJIaWVyYXJjaGljYWwsIHJlZmVyZW5jZSBjb3VudGVkIG1lbW9yeSBwb29sIHN5c3RlbSB3aXRoIGRlc3RydWN0b3JzIgorSE9NRVBBR0UgPSAiaHR0cDovL3RhbGxvYy5zYW1iYS5vcmciCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkxHUEwtMy4wKyAmIEdQTC0zLjArIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vdGFsbG9jLmg7YmVnaW5saW5lPTM7ZW5kbGluZT0yNzttZDU9YTMwMTcxMjc4MmNhZDZkZDZkNTIyOGJmYTc4MjUyNDkgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vcHl0YWxsb2MuaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTE4O21kNT0yYzQ5OGNjNmYyMjYzNjcyNDgzMjM3YjIwZjQ2YjQzZCIKKworCitTUkNfVVJJID0gImh0dHBzOi8vc2FtYmEub3JnL2Z0cC90YWxsb2MvdGFsbG9jLSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9vcHRpb25zLTIuMS4xMC5wYXRjaCBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiNDUyNTk2ZjkwNGNhMmIxMDMyMmJkYWFiZjE0N2E3MjEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjM5ZWIzNTU1NmEwYWY5OTkxMjNjNGQ4ODNlNzliZTA1ZmY5ZjAwYWI0ZjllNGFjMmU1Nzc1ZjljNWVlZWVkMyIKKworaW5oZXJpdCB3YWYtc2FtYmEKKworUEFDS0FHRUNPTkZJRyA/Pz0gIlwKKyAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhY2wnLCBkKX0gXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneGF0dHInLCAnYXR0cicsICcnLCBkKX0gXAorIgorUEFDS0FHRUNPTkZJR1thY2xdID0gIi0td2l0aC1hY2wsLS13aXRob3V0LWFjbCxhY2wiCitQQUNLQUdFQ09ORklHW2F0dHJdID0gIi0td2l0aC1hdHRyLC0td2l0aG91dC1hdHRyLGF0dHIiCitQQUNLQUdFQ09ORklHW2xpYmFpb10gPSAiLS13aXRoLWxpYmFpbywtLXdpdGhvdXQtbGliYWlvLGxpYmFpbyIKK1BBQ0tBR0VDT05GSUdbbGliYnNkXSA9ICItLXdpdGgtbGliYnNkLC0td2l0aG91dC1saWJic2QsbGliYnNkIgorUEFDS0FHRUNPTkZJR1tsaWJjYXBdID0gIi0td2l0aC1saWJjYXAsLS13aXRob3V0LWxpYmNhcCxsaWJjYXAiCitQQUNLQUdFQ09ORklHW3ZhbGdyaW5kXSA9ICItLXdpdGgtdmFsZ3JpbmQsLS13aXRob3V0LXZhbGdyaW5kLHZhbGdyaW5kIgorCitTUkNfVVJJICs9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdhdHRyJywgJycsICdmaWxlOi8vYXZvaWQtYXR0ci11bmxlc3Mtd2FudGVkLnBhdGNoJywgZCl9IgorCitTID0gIiR7V09SS0RJUn0vdGFsbG9jLSR7UFZ9IgorCitFWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1ycGF0aCBcCisgICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1ycGF0aC1pbnN0YWxsIFwKKyAgICAgICAgICAgICAgICAgLS1idW5kbGVkLWxpYnJhcmllcz1OT05FIFwKKyAgICAgICAgICAgICAgICAgLS1idWlsdGluLWxpYnJhcmllcz1yZXBsYWNlIFwKKyAgICAgICAgICAgICAgICAgLS1kaXNhYmxlLXNpbGVudC1ydWxlcyBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1saWJpY29udj0ke1NUQUdJTkdfRElSX0hPU1R9JHtwcmVmaXh9XAorICAgICAgICAgICAgICAgICIKKworUEFDS0FHRVMgKz0gInB5dGFsbG9jIHB5dGFsbG9jLWRiZyBweXRhbGxvYy1kZXYiCisKK0ZJTEVTX3B5dGFsbG9jID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8qIFwKKyAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9saWJweXRhbGxvYy11dGlsLnNvLjIgXAorICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xpYnB5dGFsbG9jLXV0aWwuc28uMi4xLjEgXAorICAgICAgICAgICAgICAgICAiCitGSUxFU19weXRhbGxvYy1kYmcgPSAiJHtsaWJkaXJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfS9zaXRlLXBhY2thZ2VzLy5kZWJ1ZyBcCisgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9Ly5kZWJ1Zy9saWJweXRhbGxvYy11dGlsLnNvLjIuMS4xIgorRklMRVNfcHl0YWxsb2MtZGV2ID0gIiR7bGliZGlyfS9saWJweXRhbGxvYy11dGlsLnNvIgorUkRFUEVORFNfcHl0YWxsb2MgPSAicHl0aG9uIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRhbGxvYy9saWJ0YWxsb2NfMi4xLjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGFsbG9jL2xpYnRhbGxvY18yLjEuOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDgwYWY1MC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGFsbG9jL2xpYnRhbGxvY18yLjEuOS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLVNVTU1BUlkgPSAiSGllcmFyY2hpY2FsLCByZWZlcmVuY2UgY291bnRlZCBtZW1vcnkgcG9vbCBzeXN0ZW0gd2l0aCBkZXN0cnVjdG9ycyIKLUhPTUVQQUdFID0gImh0dHA6Ly90YWxsb2Muc2FtYmEub3JnIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJMR1BMLTMuMCsgJiBHUEwtMy4wKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3RhbGxvYy5oO2JlZ2lubGluZT0zO2VuZGxpbmU9Mjc7bWQ1PWEzMDE3MTI3ODJjYWQ2ZGQ2ZDUyMjhiZmE3ODI1MjQ5IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL3B5dGFsbG9jLmg7YmVnaW5saW5lPTE7ZW5kbGluZT0xODttZDU9MmM0OThjYzZmMjI2MzY3MjQ4MzIzN2IyMGY0NmI0M2QiCi0KLQotU1JDX1VSSSA9ICJodHRwczovL3NhbWJhLm9yZy9mdHAvdGFsbG9jL3RhbGxvYy0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vdGFsbG9jLUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gIjE5YmExNGViYTk3ZDc5YTE2OWZhOTJlYTgyNGQyYjllIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImYwYWFkNGNiODhhMzMyMjIwN2M4MjEzNmRkYzA3YmVkNDhhMzdjMmMyMWY4Mjk2MmQ2YzVjY2I0MjI3MTEwNjIiCi0KLWluaGVyaXQgd2FmLXNhbWJhCi0KLVBBQ0tBR0VDT05GSUcgPz89ICJcCi0gICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnYWNsJywgZCl9IFwKLSAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3hhdHRyJywgJ2F0dHInLCAnJywgZCl9IFwKLSIKLVBBQ0tBR0VDT05GSUdbYWNsXSA9ICItLXdpdGgtYWNsLC0td2l0aG91dC1hY2wsYWNsIgotUEFDS0FHRUNPTkZJR1thdHRyXSA9ICItLXdpdGgtYXR0ciwtLXdpdGhvdXQtYXR0cixhdHRyIgotUEFDS0FHRUNPTkZJR1tsaWJhaW9dID0gIi0td2l0aC1saWJhaW8sLS13aXRob3V0LWxpYmFpbyxsaWJhaW8iCi1QQUNLQUdFQ09ORklHW2xpYmJzZF0gPSAiLS13aXRoLWxpYmJzZCwtLXdpdGhvdXQtbGliYnNkLGxpYmJzZCIKLVBBQ0tBR0VDT05GSUdbbGliY2FwXSA9ICItLXdpdGgtbGliY2FwLC0td2l0aG91dC1saWJjYXAsbGliY2FwIgotUEFDS0FHRUNPTkZJR1t2YWxncmluZF0gPSAiLS13aXRoLXZhbGdyaW5kLC0td2l0aG91dC12YWxncmluZCx2YWxncmluZCIKLQotU1JDX1VSSSArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnYXR0cicsICcnLCAnZmlsZTovL2F2b2lkLWF0dHItdW5sZXNzLXdhbnRlZC5wYXRjaCcsIGQpfSIKLQotUyA9ICIke1dPUktESVJ9L3RhbGxvYy0ke1BWfSIKLQotRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUtcnBhdGggXAotICAgICAgICAgICAgICAgICAtLWRpc2FibGUtcnBhdGgtaW5zdGFsbCBcCi0gICAgICAgICAgICAgICAgIC0tYnVuZGxlZC1saWJyYXJpZXM9Tk9ORSBcCi0gICAgICAgICAgICAgICAgIC0tYnVpbHRpbi1saWJyYXJpZXM9cmVwbGFjZSBcCi0gICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1zaWxlbnQtcnVsZXMgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtbGliaWNvbnY9JHtTVEFHSU5HX0RJUl9IT1NUfSR7cHJlZml4fVwKLSAgICAgICAgICAgICAgICAiCi0KLVBBQ0tBR0VTICs9ICJweXRhbGxvYyBweXRhbGxvYy1kYmcgcHl0YWxsb2MtZGV2IgotCi1GSUxFU19weXRhbGxvYyA9ICIke2xpYmRpcn0vcHl0aG9uJHtQWVRIT05fQkFTRVZFUlNJT059L3NpdGUtcGFja2FnZXMvKiBcCi0gICAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGlicHl0YWxsb2MtdXRpbC5zby4yIFwKLSAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9saWJweXRhbGxvYy11dGlsLnNvLjIuMS4xIFwKLSAgICAgICAgICAgICAgICAgIgotRklMRVNfcHl0YWxsb2MtZGJnID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8uZGVidWcgXAotICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS8uZGVidWcvbGlicHl0YWxsb2MtdXRpbC5zby4yLjEuMSIKLUZJTEVTX3B5dGFsbG9jLWRldiA9ICIke2xpYmRpcn0vbGlicHl0YWxsb2MtdXRpbC5zbyIKLVJERVBFTkRTX3B5dGFsbG9jID0gInB5dGhvbiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZGIvbGlidGRiXzEuMy4xNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZGIvbGlidGRiXzEuMy4xNC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzEyMmI5My4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGRiL2xpYnRkYl8xLjMuMTQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1TVU1NQVJZID0gIlRoZSB0ZGIgbGlicmFyeSIKLUhPTUVQQUdFID0gImh0dHA6Ly90ZGIuc2FtYmEub3JnLyIKLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiTEdQTC0zLjArICYgR1BMLTMuMCsiCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3Rvb2xzL3RkYmR1bXAuYztlbmRsaW5lPTE4O21kNT1iNTljZDQ1YWE4NjI0NTc4MTI2YThjOThmNDgwMThjNCBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9pbmNsdWRlL3RkYi5oO2VuZGxpbmU9Mjc7bWQ1PWY1YmI1NDQ2NDFkMzA4MTgyMWJjYzFkZDU4MzEwYmU2IgotCi1TUkNfVVJJID0gImh0dHBzOi8vc2FtYmEub3JnL2Z0cC90ZGIvdGRiLSR7UFZ9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly9kby1ub3QtY2hlY2steHNsdHByb2MtbWFucGFnZXMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vdGRiLUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2ggXAotIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZGQyM2YyYmE4Y2EyYmZkY2I4MzNiYzc5ZDViNWFjNmYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiM2E3ZDRiYjc5MjI5NDYwZGY1MzBjN2UxYzcwNjdiYTlmYjlkMzcwYWE2MWZmZjUzN2ZkYzJiZGY5MThhY2JlOSIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIlwKLSAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhY2wnLCBkKX0gXAotICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneGF0dHInLCAnYXR0cicsICcnLCBkKX0gXAotIgotUEFDS0FHRUNPTkZJR1thY2xdID0gIi0td2l0aC1hY2wsLS13aXRob3V0LWFjbCxhY2wiCi1QQUNLQUdFQ09ORklHW2F0dHJdID0gIi0td2l0aC1hdHRyLC0td2l0aG91dC1hdHRyLGF0dHIiCi1QQUNLQUdFQ09ORklHW2xpYmFpb10gPSAiLS13aXRoLWxpYmFpbywtLXdpdGhvdXQtbGliYWlvLGxpYmFpbyIKLVBBQ0tBR0VDT05GSUdbbGliYnNkXSA9ICItLXdpdGgtbGliYnNkLC0td2l0aG91dC1saWJic2QsbGliYnNkIgotUEFDS0FHRUNPTkZJR1tsaWJjYXBdID0gIi0td2l0aC1saWJjYXAsLS13aXRob3V0LWxpYmNhcCxsaWJjYXAiCi1QQUNLQUdFQ09ORklHW3ZhbGdyaW5kXSA9ICItLXdpdGgtdmFsZ3JpbmQsLS13aXRob3V0LXZhbGdyaW5kLHZhbGdyaW5kIgotCi1TID0gIiR7V09SS0RJUn0vdGRiLSR7UFZ9IgotCi1pbmhlcml0IHdhZi1zYW1iYQotCi1FWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1ycGF0aCBcCi0gICAgICAgICAgICAgICAgIC0tYnVuZGxlZC1saWJyYXJpZXM9Tk9ORSBcCi0gICAgICAgICAgICAgICAgIC0tYnVpbHRpbi1saWJyYXJpZXM9cmVwbGFjZSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1saWJpY29udj0ke1NUQUdJTkdfRElSX0hPU1R9JHtwcmVmaXh9XAotICAgICAgICAgICAgICAgICIKLQotUEFDS0FHRVMgKz0gInRkYi10b29scyBweXRob24tdGRiIHB5dGhvbi10ZGItZGJnIgotCi1GSUxFU18ke1BOfSA9ICIke2xpYmRpcn0vKi5zby4qIgotRklMRVNfdGRiLXRvb2xzID0gIiR7YmluZGlyfS8qIgotRklMRVNfcHl0aG9uLXRkYiA9ICIke2xpYmRpcn0vcHl0aG9uJHtQWVRIT05fQkFTRVZFUlNJT059L3NpdGUtcGFja2FnZXMvKiIKLUZJTEVTX3B5dGhvbi10ZGItZGJnID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8uZGVidWcvKiIKLVJERVBFTkRTX3B5dGhvbi10ZGIgPSAicHl0aG9uIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRkYi9saWJ0ZGJfMS4zLjE1LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRkYi9saWJ0ZGJfMS4zLjE1LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwMmEzMDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGRiL2xpYnRkYl8xLjMuMTUuYmIKQEAgLTAsMCArMSw0NCBAQAorU1VNTUFSWSA9ICJUaGUgdGRiIGxpYnJhcnkiCitIT01FUEFHRSA9ICJodHRwOi8vdGRiLnNhbWJhLm9yZy8iCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkxHUEwtMy4wKyAmIEdQTC0zLjArIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly90b29scy90ZGJkdW1wLmM7ZW5kbGluZT0xODttZDU9YjU5Y2Q0NWFhODYyNDU3ODEyNmE4Yzk4ZjQ4MDE4YzQgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vaW5jbHVkZS90ZGIuaDtlbmRsaW5lPTI3O21kNT1mNWJiNTQ0NjQxZDMwODE4MjFiY2MxZGQ1ODMxMGJlNiIKKworU1JDX1VSSSA9ICJodHRwczovL3NhbWJhLm9yZy9mdHAvdGRiL3RkYi0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vZG8tbm90LWNoZWNrLXhzbHRwcm9jLW1hbnBhZ2VzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3RkYi1BZGQtY29uZmlndXJlLW9wdGlvbnMtZm9yLXBhY2thZ2VzLnBhdGNoIFwKKyIKKworU1JDX1VSSVttZDVzdW1dID0gIjYwZWNlMzk5NmFjYzhkODViNmY3MTMxOTlkYTk3MWE2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImI0YTFiZjM4MzM2MDFiZDlmMTBhZmYzNjNjYjc1MDg2MGFlZjljZTViNDYxNzk4OTIzOTkyMzE5MmY5NDY3MjgiCisKK1BBQ0tBR0VDT05GSUcgPz89ICJcCisgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnYWNsJywgZCl9IFwKKyAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3hhdHRyJywgJ2F0dHInLCAnJywgZCl9IFwKKyIKK1BBQ0tBR0VDT05GSUdbYWNsXSA9ICItLXdpdGgtYWNsLC0td2l0aG91dC1hY2wsYWNsIgorUEFDS0FHRUNPTkZJR1thdHRyXSA9ICItLXdpdGgtYXR0ciwtLXdpdGhvdXQtYXR0cixhdHRyIgorUEFDS0FHRUNPTkZJR1tsaWJhaW9dID0gIi0td2l0aC1saWJhaW8sLS13aXRob3V0LWxpYmFpbyxsaWJhaW8iCitQQUNLQUdFQ09ORklHW2xpYmJzZF0gPSAiLS13aXRoLWxpYmJzZCwtLXdpdGhvdXQtbGliYnNkLGxpYmJzZCIKK1BBQ0tBR0VDT05GSUdbbGliY2FwXSA9ICItLXdpdGgtbGliY2FwLC0td2l0aG91dC1saWJjYXAsbGliY2FwIgorUEFDS0FHRUNPTkZJR1t2YWxncmluZF0gPSAiLS13aXRoLXZhbGdyaW5kLC0td2l0aG91dC12YWxncmluZCx2YWxncmluZCIKKworUyA9ICIke1dPUktESVJ9L3RkYi0ke1BWfSIKKworaW5oZXJpdCB3YWYtc2FtYmEKKworRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUtcnBhdGggXAorICAgICAgICAgICAgICAgICAtLWJ1bmRsZWQtbGlicmFyaWVzPU5PTkUgXAorICAgICAgICAgICAgICAgICAtLWJ1aWx0aW4tbGlicmFyaWVzPXJlcGxhY2UgXAorICAgICAgICAgICAgICAgICAtLXdpdGgtbGliaWNvbnY9JHtTVEFHSU5HX0RJUl9IT1NUfSR7cHJlZml4fVwKKyAgICAgICAgICAgICAgICAiCisKK1BBQ0tBR0VTICs9ICJ0ZGItdG9vbHMgcHl0aG9uLXRkYiBweXRob24tdGRiLWRiZyIKKworRklMRVNfJHtQTn0gPSAiJHtsaWJkaXJ9Lyouc28uKiIKK0ZJTEVTX3RkYi10b29scyA9ICIke2JpbmRpcn0vKiIKK0ZJTEVTX3B5dGhvbi10ZGIgPSAiJHtsaWJkaXJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfS9zaXRlLXBhY2thZ2VzLyoiCitGSUxFU19weXRob24tdGRiLWRiZyA9ICIke2xpYmRpcn0vcHl0aG9uJHtQWVRIT05fQkFTRVZFUlNJT059L3NpdGUtcGFja2FnZXMvLmRlYnVnLyoiCitSREVQRU5EU19weXRob24tdGRiID0gInB5dGhvbiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZXZlbnQvbGlidGV2ZW50L2F2b2lkLWF0dHItdW5sZXNzLXdhbnRlZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZXZlbnQvbGlidGV2ZW50L2F2b2lkLWF0dHItdW5sZXNzLXdhbnRlZC5wYXRjaAppbmRleCAyZmM1NTIzLi4zNTg5MDMzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGV2ZW50L2xpYnRldmVudC9hdm9pZC1hdHRyLXVubGVzcy13YW50ZWQucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnQvYXZvaWQtYXR0ci11bmxlc3Mtd2FudGVkLnBhdGNoCkBAIC0xLDIwICsxLDIyIEBACi0tLS0gYS9saWIvcmVwbGFjZS93c2NyaXB0CTIwMTUtMTEtMTggMTU6NDA6MTkuMDAwMDAwMDAwICswMTAwCi0rKysgYi9saWIvcmVwbGFjZS93c2NyaXB0CTIwMTUtMTEtMTggMTU6NDg6MDkuMDAwMDAwMDAwICswMTAwCi1AQCAtNjE4LDggKzYxOCw2IEBACitkaWZmIC0tZ2l0IGEvbGliL3JlcGxhY2Uvd3NjcmlwdCBiL2xpYi9yZXBsYWNlL3dzY3JpcHQKK2luZGV4IDA3OTc2MWQuLjA3ZTAxMDQgMTAwNjQ0CistLS0gYS9saWIvcmVwbGFjZS93c2NyaXB0CisrKysgYi9saWIvcmVwbGFjZS93c2NyaXB0CitAQCAtNzkzLDggKzc5Myw2IEBAIGRlZiBidWlsZChibGQpOgogICAgICBpZiBub3QgYmxkLkNPTkZJR19TRVQoJ0hBVkVfSU5FVF9BVE9OJyk6ICAgICBSRVBMQUNFX1NPVVJDRSArPSAnIGluZXRfYXRvbi5jJwogICAgICBpZiBub3QgYmxkLkNPTkZJR19TRVQoJ0hBVkVfSU5FVF9OVE9QJyk6ICAgICBSRVBMQUNFX1NPVVJDRSArPSAnIGluZXRfbnRvcC5jJwogICAgICBpZiBub3QgYmxkLkNPTkZJR19TRVQoJ0hBVkVfSU5FVF9QVE9OJyk6ICAgICBSRVBMQUNFX1NPVVJDRSArPSAnIGluZXRfcHRvbi5jJwogLSAgICBpZiBub3QgYmxkLkNPTkZJR19TRVQoJ0hBVkVfR0VUWEFUVFInKSBvciBibGQuQ09ORklHX1NFVCgnWEFUVFJfQURESVRJT05BTF9PUFRJT05TJyk6CiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUExBQ0VfU09VUkNFICs9ICcgeGF0dHIuYycKICAKLSAgICAgYmxkLlNBTUJBX0xJQlJBUlkoJ3JlcGxhY2UnLAotICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U9UkVQTEFDRV9TT1VSQ0UsCi1AQCAtNjMwLDcgKzYyOCw3IEBACisgICAgIGlmIG5vdCBibGQuQ09ORklHX1NFVCgnSEFWRV9DTE9TRUZST00nKToKKyAgICAgICAgIFJFUExBQ0VfU09VUkNFICs9ICcgY2xvc2Vmcm9tLmMnCitAQCAtODA4LDcgKzgwNiw3IEBAIGRlZiBidWlsZChibGQpOgogICAgICAgICAgICAgICAgICAgICAgICAjIGF0IHRoZSBtb21lbnQ6CiAgICAgICAgICAgICAgICAgICAgICAgICMgaGlkZV9zeW1ib2xzPWJsZC5CVUlMVElOX0xJQlJBUlkoJ3JlcGxhY2UnKSwKICAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZV9saWJyYXJ5PVRydWUsCiAtICAgICAgICAgICAgICAgICAgICAgIGRlcHM9J2NyeXB0IGRsIG5zbCBzb2NrZXQgcnQgYXR0cicgKyBleHRyYV9saWJzKQogKyAgICAgICAgICAgICAgICAgICAgICBkZXBzPSdjcnlwdCBkbCBuc2wgc29ja2V0IHJ0ICcgKyBleHRyYV9saWJzKQogIAotICAgICBibGQuU0FNQkFfU1VCU1lTVEVNKCdyZXBsYWNlLXRlc3QnLAotICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U9JycndGVzdC90ZXN0c3VpdGUuYyB0ZXN0L3N0cnB0aW1lLmMKKyAgICAgcmVwbGFjZV90ZXN0X2NmbGFncz0iLVduby1mb3JtYXQtemVyby1sZW5ndGgiCisgICAgIGlmIGJsZC5DT05GSUdfU0VUKCdIQVZFX1dOT19GT1JNQVRfVFJVTkNBVElPTicpOgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnQvb3B0aW9ucy0wLjkuMzYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGV2ZW50L2xpYnRldmVudC9vcHRpb25zLTAuOS4zNi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjNjNTg2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnQvb3B0aW9ucy0wLjkuMzYucGF0Y2gKQEAgLTAsMCArMSwxNzYgQEAKK0Zyb20gYzNlMmU0Zjg5Y2YzN2IyNzYwOWZkMDJhZDY3ZWIwMmQwMDE1Y2MxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CitEYXRlOiBXZWQsIDIxIFNlcCAyMDE2IDA5OjU3OjQ5ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMS8xXSB0ZXZlbnQ6IEFkZCBjb25maWd1cmUgb3B0aW9ucyBmb3IgcGFja2FnZXMKKworQWRkIGNvbmZpZ3VyZSBvcHRpb25zIGZvciB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOgorIC0gYWNsCisgLSBhdHRyCisgLSBsaWJhaW8KKyAtIGxpYmJzZAorIC0gbGliY2FwCisgLSB2YWxncmluZAorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW29lIGRldGVybWluaXN0aWMgYnVpbGQgc3BlY2lmaWNdCisKK1NpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CisKK01vZGlmaWVkIHRvIGFwcGx5IHRvIHZlcnNpb24gMC45LjMzLgorCitTaWduZWQtb2ZmLWJ5OiBKb2UgU2xhdGVyIDxqb2Uuc2xhdGVyQHdpbmRyaXZlci5jb20+CistLS0KKyBsaWIvcmVwbGFjZS93c2NyaXB0IHwgODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KKyB3c2NyaXB0ICAgICAgICAgICAgIHwgIDcgKysrKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliL3JlcGxhY2Uvd3NjcmlwdCBiL2xpYi9yZXBsYWNlL3dzY3JpcHQKK2luZGV4IDJjNjM4YjcuLjA3OTc2MWQgMTAwNjQ0CistLS0gYS9saWIvcmVwbGFjZS93c2NyaXB0CisrKysgYi9saWIvcmVwbGFjZS93c2NyaXB0CitAQCAtMjMsNiArMjMsNDEgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6CisgICAgIG9wdC5QUklWQVRFX0VYVEVOU0lPTl9ERUZBVUxUKCcnKQorICAgICBvcHQuUkVDVVJTRSgnYnVpbGR0b29scy93YWZzYW1iYScpCisgCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtYWNsJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgYWNsIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hY2wnKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWFjbCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBhY2wiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hY2wnLCBkZWZhdWx0PUZhbHNlKQorKworKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWF0dHInLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBhdHRyIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJykKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1hdHRyJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGF0dHIiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJywgZGVmYXVsdD1GYWxzZSkKKysKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJhaW8nLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJhaW8iKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycpCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliYWlvJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmFpbyIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycsIGRlZmF1bHQ9RmFsc2UpCisrCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliYnNkJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliYnNkIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmJzZCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJic2QiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnLCBkZWZhdWx0PUZhbHNlKQorKworKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmNhcCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmNhcCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliY2FwJykKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJjYXAnLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliY2FwIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliY2FwJywgZGVmYXVsdD1GYWxzZSkKKysKKyBAVXRpbHMucnVuX29uY2UKKyBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLlJFQ1VSU0UoJ2J1aWxkdG9vbHMvd2Fmc2FtYmEnKQorQEAgLTMyLDEyICs2NywyNSBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLkRFRklORSgnSEFWRV9MSUJSRVBMQUNFJywgMSkKKyAgICAgY29uZi5ERUZJTkUoJ0xJQlJFUExBQ0VfTkVUV09SS19DSEVDS1MnLCAxKQorIAorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpbnV4L3R5cGVzLmggY3J5cHQuaCBsb2NhbGUuaCBhY2wvbGliYWNsLmggY29tcGF0LmgnKQorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2FjbC9saWJhY2wuaCBhdHRyL3hhdHRyLmggY29tcGF0LmggY3R5cGUuaCBkdXN0YXQuaCcpCisrICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGludXgvdHlwZXMuaCBjcnlwdC5oIGxvY2FsZS5oIGNvbXBhdC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdjb21wYXQuaCBjdHlwZS5oIGR1c3RhdC5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCdmY250bC5oIGZubWF0Y2guaCBnbG9iLmggaGlzdG9yeS5oIGtyYjUuaCBsYW5naW5mby5oJykKKy0gICAgY29uZi5DSEVDS19IRUFERVJTKCdsaWJhaW8uaCBsb2NhbGUuaCBuZGlyLmggcHdkLmgnKQorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3NoYWRvdy5oIHN5cy9hY2wuaCcpCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBhdHRyL2F0dHJpYnV0ZXMuaCBzeXMvY2FwYWJpbGl0eS5oIHN5cy9kaXIuaCBzeXMvZXBvbGwuaCcpCisrICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbG9jYWxlLmggbmRpci5oIHB3ZC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdzaGFkb3cuaCcpCisrICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBzeXMvZGlyLmggc3lzL2Vwb2xsLmgnKQorKworKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2FjbDoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYWNsL2xpYmFjbC5oIHN5cy9hY2wuaCcpCisrCisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfYXR0cjoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYXR0ci9hdHRyaWJ1dGVzLmggYXR0ci94YXR0ci5oJykKKysKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJhaW86CisrICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpYmFpby5oJykKKysKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJjYXA6CisrICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQorKworICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3BvcnQuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2ZjbnRsLmggc3lzL2ZpbGlvLmggc3lzL2ZpbHN5cy5oIHN5cy9mcy9zNXBhcmFtLmggc3lzL2ZzL3Z4L3F1b3RhLmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9pZC5oIHN5cy9pb2N0bC5oIHN5cy9pcGMuaCBzeXMvbW1hbi5oIHN5cy9tb2RlLmggc3lzL25kaXIuaCBzeXMvcHJpdi5oJykKK0BAIC0xMDEsNyArMTQ5LDggQEAgZGVmIGNvbmZpZ3VyZShjb25mKToKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvZmlsZWlvLmggc3lzL2ZpbGVzeXMuaCBzeXMvZHVzdGF0Lmggc3lzL3N5c21hY3Jvcy5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCd4ZnMvbGlieGZzLmggbmV0Z3JvdXAuaCcpCisgCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndmFsZ3JpbmQuaCB2YWxncmluZC92YWxncmluZC5oIHZhbGdyaW5kL21lbWNoZWNrLmgnKQorKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX3ZhbGdyaW5kOgorKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCd2YWxncmluZC5oIHZhbGdyaW5kL3ZhbGdyaW5kLmggdmFsZ3JpbmQvbWVtY2hlY2suaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbnNzX2NvbW1vbi5oIG5zc3dpdGNoLmggbnNfYXBpLmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9leHRhdHRyLmggc3lzL2VhLmggc3lzL3Byb3BsaXN0Lmggc3lzL2NkZWZzLmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3V0bXAuaCB1dG1weC5oIGxhc3Rsb2cuaCcpCitAQCAtMjk0LDIyICszNDMsMTggQEAgZGVmIGNvbmZpZ3VyZShjb25mKToKKyAKKyAgICAgY29uZi5DSEVDS19GVU5DUygncHJjdGwgZGlybmFtZSBiYXNlbmFtZScpCisgCistICAgIHN0cmxjcHlfaW5fYnNkID0gRmFsc2UKKy0KKy0gICAgIyBsaWJic2Qgb24gc29tZSBwbGF0Zm9ybXMgcHJvdmlkZXMgc3RybGNweSBhbmQgc3RybGNhdAorLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc3RybGNweSBzdHJsY2F0Jyk6CistICAgICAgICBpZiBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzdHJsY3B5IHN0cmxjYXQnLCAnYnNkJywgaGVhZGVycz0nYnNkL3N0cmluZy5oJywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tsaWJjPVRydWUpOgorLSAgICAgICAgICAgIHN0cmxjcHlfaW5fYnNkID0gVHJ1ZQorLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnZ2V0cGVlcmVpZCcpOgorLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignZ2V0cGVlcmVpZCcsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQorLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ3NldHByb2N0aXRsZScsIGhlYWRlcnM9J3NldHByb2N0aXRsZS5oJyk6CistICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKy0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ3NldHByb2N0aXRsZV9pbml0Jyk6CistICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGVfaW5pdCcsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQorKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmJzZDoKKysgICAgICAgICMgbGliYnNkIG9uIHNvbWUgcGxhdGZvcm1zIHByb3ZpZGVzIHN0cmxjcHkgYW5kIHN0cmxjYXQKKysgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzdHJsY3B5IHN0cmxjYXQnKToKKysgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzdHJsY3B5IHN0cmxjYXQnLCAnYnNkJywgaGVhZGVycz0nYnNkL3N0cmluZy5oJywKKysgICAgICAgICAgICAgICAgICAgIGNoZWNrbGliYz1UcnVlKQorKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHBlZXJlaWQnKToKKysgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdnZXRwZWVyZWlkJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCisrICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ3NldHByb2N0aXRsZScsIGhlYWRlcnM9J3NldHByb2N0aXRsZS5oJyk6CisrICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCisgCistICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdjbG9zZWZyb20nKToKKy0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2Nsb3NlZnJvbScsICdic2QnLCBoZWFkZXJzPSdic2QvdW5pc3RkLmgnKQorKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2Nsb3NlZnJvbScpOgorKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2Nsb3NlZnJvbScsICdic2QnLCBoZWFkZXJzPSdic2QvdW5pc3RkLmgnKQorIAorICAgICBjb25mLkNIRUNLX0NPREUoJycnCisgICAgICAgICAgICAgICAgIHN0cnVjdCB1Y3JlZCBjcmVkOworQEAgLTY2MCw3ICs3MDUsNyBAQCByZW1vdmVlYSBzZXRlYQorICAgICAjIGxvb2sgZm9yIGEgbWV0aG9kIG9mIGZpbmRpbmcgdGhlIGxpc3Qgb2YgbmV0d29yayBpbnRlcmZhY2VzCisgICAgIGZvciBtZXRob2QgaW4gWydIQVZFX0lGQUNFX0dFVElGQUREUlMnLCAnSEFWRV9JRkFDRV9BSVgnLCAnSEFWRV9JRkFDRV9JRkNPTkYnLCAnSEFWRV9JRkFDRV9JRlJFUSddOgorICAgICAgICAgYnNkX2Zvcl9zdHJsY3B5ID0gJycKKy0gICAgICAgIGlmIHN0cmxjcHlfaW5fYnNkOgorKyAgICAgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJic2Q6CisgICAgICAgICAgICAgYnNkX2Zvcl9zdHJsY3B5ID0gJyBic2QnCisgICAgICAgICBpZiBjb25mLkNIRUNLX0NPREUoJycnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2RlZmluZSAlcyAxCitkaWZmIC0tZ2l0IGEvd3NjcmlwdCBiL3dzY3JpcHQKK2luZGV4IDk0ZDE5MGYuLjc0MmY3NzkgMTAwNjQ0CistLS0gYS93c2NyaXB0CisrKysgYi93c2NyaXB0CitAQCAtMjIsNyArMjIsMTIgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6CisgICAgIG9wdC5QUklWQVRFX0VYVEVOU0lPTl9ERUZBVUxUKCd0ZXZlbnQnLCBub2V4dGVuc2lvbj0ndGV2ZW50JykKKyAgICAgb3B0LlJFQ1VSU0UoJ2xpYi9yZXBsYWNlJykKKyAgICAgb3B0LlJFQ1VSU0UoJ2xpYi90YWxsb2MnKQorLQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLXZhbGdyaW5kJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oImVuYWJsZSB1c2Ugb2YgdmFsZ3JpbmQiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJykKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC12YWxncmluZCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJkaXNhYmxlIHVzZSBvZiB2YWxncmluZCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJywgZGVmYXVsdD1GYWxzZSkKKyAKKyBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLlJFQ1VSU0UoJ2xpYi9yZXBsYWNlJykKKy0tIAorMi4xNi4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZXZlbnQvbGlidGV2ZW50L3RldmVudC1BZGQtY29uZmlndXJlLW9wdGlvbnMtZm9yLXBhY2thZ2VzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnQvdGV2ZW50LUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkYjhlNGUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnQvdGV2ZW50LUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxODAgKzAsMCBAQAotRnJvbSBjMDBmNmQzNWJkYzA2ZGZmYjU0ZGFhODE1ZTU3YjQ0MjEwYTVkZTA0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KLURhdGU6IFdlZCwgMjEgU2VwIDIwMTYgMDk6NTc6NDkgKzA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gdGV2ZW50OiBBZGQgY29uZmlndXJlIG9wdGlvbnMgZm9yIHBhY2thZ2VzCi0KLUFkZCBjb25maWd1cmUgb3B0aW9ucyBmb3IgdGhlIGZvbGxvd2luZyBwYWNrYWdlczoKLSAtIGFjbAotIC0gYXR0cgotIC0gbGliYWlvCi0gLSBsaWJic2QKLSAtIGxpYmNhcAotIC0gdmFsZ3JpbmQKLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtvZSBkZXRlcm1pbmlzdGljIGJ1aWxkIHNwZWNpZmljXQotCi1TaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi0gbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlIHwgIDYgKystCi0gbGliL3JlcGxhY2Uvd3NjcmlwdCAgICAgICAgICAgICAgICAgIHwgODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCi0gd3NjcmlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKystCi0gMyBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKLSBtb2RlIGNoYW5nZSAxMDA3NTUgPT4gMTAwNjQ0IHdzY3JpcHQKLQotZGlmZiAtLWdpdCBhL2xpYi9yZXBsYWNlL3N5c3RlbS93c2NyaXB0X2NvbmZpZ3VyZSBiL2xpYi9yZXBsYWNlL3N5c3RlbS93c2NyaXB0X2NvbmZpZ3VyZQotaW5kZXggMjAzNTQ3NC4uMTBmOWFlNyAxMDA2NDQKLS0tLSBhL2xpYi9yZXBsYWNlL3N5c3RlbS93c2NyaXB0X2NvbmZpZ3VyZQotKysrIGIvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCi1AQCAtMSw2ICsxLDEwIEBACi0gIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0gCi0tY29uZi5DSEVDS19IRUFERVJTKCdzeXMvY2FwYWJpbGl0eS5oJykKLStpbXBvcnQgT3B0aW9ucwotKwotK2lmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliY2FwOgotKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQotKwotIGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHB3bmFtX3IgZ2V0cHd1aWRfciBnZXRwd2VudF9yJykKLSAKLSAjIHNvbGFyaXMgdmFyaWVudHMgb2YgZ2V0WFhlbnRfcgotZGlmZiAtLWdpdCBhL2xpYi9yZXBsYWNlL3dzY3JpcHQgYi9saWIvcmVwbGFjZS93c2NyaXB0Ci1pbmRleCBmYzQzZTFhLi4xMmQyYTcwIDEwMDY0NAotLS0tIGEvbGliL3JlcGxhY2Uvd3NjcmlwdAotKysrIGIvbGliL3JlcGxhY2Uvd3NjcmlwdAotQEAgLTIzLDYgKzIzLDQxIEBAIGRlZiBzZXRfb3B0aW9ucyhvcHQpOgotICAgICBvcHQuUFJJVkFURV9FWFRFTlNJT05fREVGQVVMVCgnJykKLSAgICAgb3B0LlJFQ1VSU0UoJ2J1aWxkdG9vbHMvd2Fmc2FtYmEnKQotIAotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWFjbCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGFjbCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfYWNsJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1hY2wnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgYWNsIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfYWNsJywgZGVmYXVsdD1GYWxzZSkKLSsKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1hdHRyJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgYXR0ciIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfYXR0cicpCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtYXR0cicsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBhdHRyIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfYXR0cicsIGRlZmF1bHQ9RmFsc2UpCi0rCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliYWlvJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliYWlvIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJhaW8nKQotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmFpbycsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJhaW8iKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJhaW8nLCBkZWZhdWx0PUZhbHNlKQotKwotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmJzZCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmJzZCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliYnNkJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJic2QnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliYnNkIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliYnNkJywgZGVmYXVsdD1GYWxzZSkKLSsKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJjYXAnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJjYXAiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmNhcCcpCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliY2FwJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmNhcCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmNhcCcsIGRlZmF1bHQ9RmFsc2UpCi0rCi0gQFV0aWxzLnJ1bl9vbmNlCi0gZGVmIGNvbmZpZ3VyZShjb25mKToKLSAgICAgY29uZi5SRUNVUlNFKCdidWlsZHRvb2xzL3dhZnNhbWJhJykKLUBAIC0zMiwxMiArNjcsMjUgQEAgZGVmIGNvbmZpZ3VyZShjb25mKToKLSAgICAgY29uZi5ERUZJTkUoJ0hBVkVfTElCUkVQTEFDRScsIDEpCi0gICAgIGNvbmYuREVGSU5FKCdMSUJSRVBMQUNFX05FVFdPUktfQ0hFQ0tTJywgMSkKLSAKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCdsaW51eC90eXBlcy5oIGNyeXB0LmggbG9jYWxlLmggYWNsL2xpYmFjbC5oIGNvbXBhdC5oJykKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCdhY2wvbGliYWNsLmggYXR0ci94YXR0ci5oIGNvbXBhdC5oIGN0eXBlLmggZHVzdGF0LmgnKQotKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpbnV4L3R5cGVzLmggY3J5cHQuaCBsb2NhbGUuaCBjb21wYXQuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnY29tcGF0LmggY3R5cGUuaCBkdXN0YXQuaCcpCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnZmNudGwuaCBmbm1hdGNoLmggZ2xvYi5oIGhpc3RvcnkuaCBrcmI1LmggbGFuZ2luZm8uaCcpCi0tICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGliYWlvLmggbG9jYWxlLmggbmRpci5oIHB3ZC5oJykKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCdzaGFkb3cuaCBzeXMvYWNsLmgnKQotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9hdHRyaWJ1dGVzLmggYXR0ci9hdHRyaWJ1dGVzLmggc3lzL2NhcGFiaWxpdHkuaCBzeXMvZGlyLmggc3lzL2Vwb2xsLmgnKQotKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xvY2FsZS5oIG5kaXIuaCBwd2QuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc2hhZG93LmgnKQotKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9hdHRyaWJ1dGVzLmggc3lzL2Rpci5oIHN5cy9lcG9sbC5oJykKLSsKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9hY2w6Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2FjbC9saWJhY2wuaCBzeXMvYWNsLmgnKQotKwotKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2F0dHI6Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2F0dHIvYXR0cmlidXRlcy5oIGF0dHIveGF0dHIuaCcpCi0rCi0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliYWlvOgotKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdsaWJhaW8uaCcpCi0rCi0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliY2FwOgotKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvY2FwYWJpbGl0eS5oJykKLSsKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCdwb3J0LmgnKQotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9mY250bC5oIHN5cy9maWxpby5oIHN5cy9maWxzeXMuaCBzeXMvZnMvczVwYXJhbS5oIHN5cy9mcy92eC9xdW90YS5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvaWQuaCBzeXMvaW9jdGwuaCBzeXMvaXBjLmggc3lzL21tYW4uaCBzeXMvbW9kZS5oIHN5cy9uZGlyLmggc3lzL3ByaXYuaCcpCi1AQCAtNzMsNyArMTIxLDkgQEAgZGVmIGNvbmZpZ3VyZShjb25mKToKLSAKLSAgICAgY29uZi5DSEVDS19DT0RFKCcnLCBoZWFkZXJzPSdycGMvcnBjLmggcnBjc3ZjL3lwX3Byb3QuaCcsIGRlZmluZT0nSEFWRV9SUENTVkNfWVBfUFJPVF9IJykKLSAKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCd2YWxncmluZC5oIHZhbGdyaW5kL3ZhbGdyaW5kLmggdmFsZ3JpbmQvbWVtY2hlY2suaCcpCi0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfdmFsZ3JpbmQ6Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3ZhbGdyaW5kLmggdmFsZ3JpbmQvdmFsZ3JpbmQuaCB2YWxncmluZC9tZW1jaGVjay5oJykKLSsKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCduc3NfY29tbW9uLmggbnNzd2l0Y2guaCBuc19hcGkuaCcpCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2V4dGF0dHIuaCBzeXMvZWEuaCBzeXMvcHJvcGxpc3QuaCBzeXMvY2RlZnMuaCcpCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndXRtcC5oIHV0bXB4LmggbGFzdGxvZy5oJykKLUBAIC0yNDgsMTcgKzI5OCwxOCBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgotIAotICAgICBjb25mLkNIRUNLX0ZVTkNTKCdwcmN0bCBkaXJuYW1lIGJhc2VuYW1lJykKLSAKLS0gICAgIyBsaWJic2Qgb24gc29tZSBwbGF0Zm9ybXMgcHJvdmlkZXMgc3RybGNweSBhbmQgc3RybGNhdAotLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc3RybGNweSBzdHJsY2F0Jyk6Ci0tICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzdHJsY3B5IHN0cmxjYXQnLCAnYnNkJywgaGVhZGVycz0nYnNkL3N0cmluZy5oJywKLS0gICAgICAgICAgICAgICAgY2hlY2tsaWJjPVRydWUpCi0tICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdnZXRwZWVyZWlkJyk6Ci0tICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdnZXRwZWVyZWlkJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCi0tICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnc2V0cHJvY3RpdGxlJywgaGVhZGVycz0nc2V0cHJvY3RpdGxlLmgnKToKLS0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQotLQotLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnY2xvc2Vmcm9tJyk6Ci0tICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdjbG9zZWZyb20nLCAnYnNkJywgaGVhZGVycz0nYnNkL3VuaXN0ZC5oJykKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJic2Q6Ci0rICAgICAgICAjIGxpYmJzZCBvbiBzb21lIHBsYXRmb3JtcyBwcm92aWRlcyBzdHJsY3B5IGFuZCBzdHJsY2F0Ci0rICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc3RybGNweSBzdHJsY2F0Jyk6Ci0rICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc3RybGNweSBzdHJsY2F0JywgJ2JzZCcsIGhlYWRlcnM9J2JzZC9zdHJpbmcuaCcsCi0rICAgICAgICAgICAgICAgICAgICBjaGVja2xpYmM9VHJ1ZSkKLSsgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdnZXRwZWVyZWlkJyk6Ci0rICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignZ2V0cGVlcmVpZCcsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQotKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdzZXRwcm9jdGl0bGUnLCBoZWFkZXJzPSdzZXRwcm9jdGl0bGUuaCcpOgotKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQotKwotKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2Nsb3NlZnJvbScpOgotKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2Nsb3NlZnJvbScsICdic2QnLCBoZWFkZXJzPSdic2QvdW5pc3RkLmgnKQotIAotICAgICBjb25mLkNIRUNLX0NPREUoJycnCi0gICAgICAgICAgICAgICAgIHN0cnVjdCB1Y3JlZCBjcmVkOwotZGlmZiAtLWdpdCBhL3dzY3JpcHQgYi93c2NyaXB0Ci1vbGQgbW9kZSAxMDA3NTUKLW5ldyBtb2RlIDEwMDY0NAotaW5kZXggNzFiOTQ3NS4uNTA3OTNkYgotLS0tIGEvd3NjcmlwdAotKysrIGIvd3NjcmlwdAotQEAgLTI2LDcgKzI2LDEyIEBAIGRlZiBzZXRfb3B0aW9ucyhvcHQpOgotICAgICAgICAgb3B0LmFkZF9vcHRpb24oJy0tZGlzYWJsZS1weXRob24nLAotICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0oImRpc2FibGUgdGhlIHB5dGV2ZW50IG1vZHVsZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZGlzYWJsZV9weXRob24nLCBkZWZhdWx0PUZhbHNlKQotLQotKyAgICAgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC12YWxncmluZCcsCi0rICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgiZW5hYmxlIHVzZSBvZiB2YWxncmluZCIpLAotKyAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJykKLSsgICAgICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtdmFsZ3JpbmQnLAotKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0oImRpc2FibGUgdXNlIG9mIHZhbGdyaW5kIiksCi0rICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJywgZGVmYXVsdD1GYWxzZSkKLSAKLSBkZWYgY29uZmlndXJlKGNvbmYpOgotICAgICBjb25mLlJFQ1VSU0UoJ2xpYi9yZXBsYWNlJykKLS0tIAotMi44LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnRfMC45LjMxLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnRfMC45LjMxLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDcxMWU3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZXZlbnQvbGlidGV2ZW50XzAuOS4zMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLVNVTU1BUlkgPSAiSGllcmFyY2hpY2FsLCByZWZlcmVuY2UgY291bnRlZCBtZW1vcnkgcG9vbCBzeXN0ZW0gd2l0aCBkZXN0cnVjdG9ycyIKLUhPTUVQQUdFID0gImh0dHA6Ly90ZXZlbnQuc2FtYmEub3JnIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJMR1BMdjMrIgotCi1ERVBFTkRTICs9ICJsaWJ0YWxsb2MiCi1SREVQRU5EU19weXRob24tdGV2ZW50ID0gInB5dGhvbiIKLQotU1JDX1VSSSA9ICJodHRwczovL3NhbWJhLm9yZy9mdHAvdGV2ZW50L3RldmVudC0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vdGV2ZW50LUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2ggXAotIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vdGV2ZW50Lmg7ZW5kbGluZT0yNjttZDU9NGU0NThkNjU4Y2IyNWUyMWVmYzE2ZjcyMGU3OGI4NWEiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI1NDUzODQ3NjY0YWU2YmM0ZWMwMTUzZTU5YWM2MzViOSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI0YTEzZjIyNTZhZDgwNGM4NjBlODQwNjgyNThiZDBmOGJlMzFjZjBjNzlhYThmMzAxOWZhMzJmNjkyOGMyYmZjIgotCi1pbmhlcml0IHdhZi1zYW1iYQotCi1QQUNLQUdFQ09ORklHID8/PSAiXAotICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2FjbCcsIGQpfSBcCi0gICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4YXR0cicsICdhdHRyJywgJycsIGQpfSBcCi0iCi1QQUNLQUdFQ09ORklHW2FjbF0gPSAiLS13aXRoLWFjbCwtLXdpdGhvdXQtYWNsLGFjbCIKLVBBQ0tBR0VDT05GSUdbYXR0cl0gPSAiLS13aXRoLWF0dHIsLS13aXRob3V0LWF0dHIsYXR0ciIKLVBBQ0tBR0VDT05GSUdbbGliYWlvXSA9ICItLXdpdGgtbGliYWlvLC0td2l0aG91dC1saWJhaW8sbGliYWlvIgotUEFDS0FHRUNPTkZJR1tsaWJic2RdID0gIi0td2l0aC1saWJic2QsLS13aXRob3V0LWxpYmJzZCxsaWJic2QiCi1QQUNLQUdFQ09ORklHW2xpYmNhcF0gPSAiLS13aXRoLWxpYmNhcCwtLXdpdGhvdXQtbGliY2FwLGxpYmNhcCIKLVBBQ0tBR0VDT05GSUdbdmFsZ3JpbmRdID0gIi0td2l0aC12YWxncmluZCwtLXdpdGhvdXQtdmFsZ3JpbmQsdmFsZ3JpbmQiCi0KLVNSQ19VUkkgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2F0dHInLCAnJywgJ2ZpbGU6Ly9hdm9pZC1hdHRyLXVubGVzcy13YW50ZWQucGF0Y2gnLCBkKX0iCi0KLVMgPSAiJHtXT1JLRElSfS90ZXZlbnQtJHtQVn0iCi0KLUVYVFJBX09FQ09ORiArPSAiLS1kaXNhYmxlLXJwYXRoIFwKLSAgICAgICAgICAgICAgICAgLS1idW5kbGVkLWxpYnJhcmllcz1OT05FIFwKLSAgICAgICAgICAgICAgICAgLS1idWlsdGluLWxpYnJhcmllcz1yZXBsYWNlIFwKLSAgICAgICAgICAgICAgICAgLS13aXRoLWxpYmljb252PSR7U1RBR0lOR19ESVJfSE9TVH0ke3ByZWZpeH1cCi0gICAgICAgICAgICAgICAgIC0td2l0aG91dC1nZXR0ZXh0IFwKLSAgICAgICAgICAgICAgICAiCi0KLVBBQ0tBR0VTICs9ICJweXRob24tdGV2ZW50IHB5dGhvbi10ZXZlbnQtZGJnIgotCi1GSUxFU19weXRob24tdGV2ZW50ID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8qIgotRklMRVNfcHl0aG9uLXRldmVudC1kYmcgPSAiJHtsaWJkaXJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfS9zaXRlLXBhY2thZ2VzLy5kZWJ1ZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZXZlbnQvbGlidGV2ZW50XzAuOS4zNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZXZlbnQvbGlidGV2ZW50XzAuOS4zNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTFiMjIxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnRfMC45LjM2LmJiCkBAIC0wLDAgKzEsNDQgQEAKK1NVTU1BUlkgPSAiSGllcmFyY2hpY2FsLCByZWZlcmVuY2UgY291bnRlZCBtZW1vcnkgcG9vbCBzeXN0ZW0gd2l0aCBkZXN0cnVjdG9ycyIKK0hPTUVQQUdFID0gImh0dHA6Ly90ZXZlbnQuc2FtYmEub3JnIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJMR1BMdjMrIgorCitERVBFTkRTICs9ICJsaWJ0YWxsb2MgbGlidGlycGMiCitSREVQRU5EU19weXRob24tdGV2ZW50ID0gInB5dGhvbiIKKworU1JDX1VSSSA9ICJodHRwczovL3NhbWJhLm9yZy9mdHAvdGV2ZW50L3RldmVudC0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vb3B0aW9ucy0wLjkuMzYucGF0Y2ggXAorIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vdGV2ZW50Lmg7ZW5kbGluZT0yNjttZDU9NGU0NThkNjU4Y2IyNWUyMWVmYzE2ZjcyMGU3OGI4NWEiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI4N2Q2N2JjYTc1YjIzMTgxNDQzNWM0N2JlYzBhZmY4YSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJiZDJiNmJlM2ZkMTYwMWVkN2YxNzZlOTkxMTFlMzIyYzU3ZDU4ZTQyNWNjMTQ5ZWU4MGM3ZGQ0ZmVkMjYzYjRjIgorCitpbmhlcml0IHdhZi1zYW1iYQorCitQQUNLQUdFQ09ORklHID8/PSAiXAorICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2FjbCcsIGQpfSBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4YXR0cicsICdhdHRyJywgJycsIGQpfSBcCisiCitQQUNLQUdFQ09ORklHW2FjbF0gPSAiLS13aXRoLWFjbCwtLXdpdGhvdXQtYWNsLGFjbCIKK1BBQ0tBR0VDT05GSUdbYXR0cl0gPSAiLS13aXRoLWF0dHIsLS13aXRob3V0LWF0dHIsYXR0ciIKK1BBQ0tBR0VDT05GSUdbbGliYWlvXSA9ICItLXdpdGgtbGliYWlvLC0td2l0aG91dC1saWJhaW8sbGliYWlvIgorUEFDS0FHRUNPTkZJR1tsaWJic2RdID0gIi0td2l0aC1saWJic2QsLS13aXRob3V0LWxpYmJzZCxsaWJic2QiCitQQUNLQUdFQ09ORklHW2xpYmNhcF0gPSAiLS13aXRoLWxpYmNhcCwtLXdpdGhvdXQtbGliY2FwLGxpYmNhcCIKK1BBQ0tBR0VDT05GSUdbdmFsZ3JpbmRdID0gIi0td2l0aC12YWxncmluZCwtLXdpdGhvdXQtdmFsZ3JpbmQsdmFsZ3JpbmQiCisKK1NSQ19VUkkgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2F0dHInLCAnJywgJ2ZpbGU6Ly9hdm9pZC1hdHRyLXVubGVzcy13YW50ZWQucGF0Y2gnLCBkKX0iCisKK1MgPSAiJHtXT1JLRElSfS90ZXZlbnQtJHtQVn0iCisKK0VYVFJBX09FQ09ORiArPSAiLS1kaXNhYmxlLXJwYXRoIFwKKyAgICAgICAgICAgICAgICAgLS1idW5kbGVkLWxpYnJhcmllcz1OT05FIFwKKyAgICAgICAgICAgICAgICAgLS1idWlsdGluLWxpYnJhcmllcz1yZXBsYWNlIFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLWxpYmljb252PSR7U1RBR0lOR19ESVJfSE9TVH0ke3ByZWZpeH1cCisgICAgICAgICAgICAgICAgIC0td2l0aG91dC1nZXR0ZXh0IFwKKyAgICAgICAgICAgICAgICAiCisKK1BBQ0tBR0VTICs9ICJweXRob24tdGV2ZW50IHB5dGhvbi10ZXZlbnQtZGJnIgorCitGSUxFU19weXRob24tdGV2ZW50ID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8qIgorRklMRVNfcHl0aG9uLXRldmVudC1kYmcgPSAiJHtsaWJkaXJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfS9zaXRlLXBhY2thZ2VzLy5kZWJ1ZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9sa3NjdHAtdG9vbHMvbGtzY3RwLXRvb2xzXzEuMC4xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9sa3NjdHAtdG9vbHMvbGtzY3RwLXRvb2xzXzEuMC4xNy5iYgppbmRleCAxMWM0M2ZmLi4xMjFjYzk5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGtzY3RwLXRvb2xzL2xrc2N0cC10b29sc18xLjAuMTcuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xrc2N0cC10b29scy9sa3NjdHAtdG9vbHNfMS4wLjE3LmJiCkBAIC04LDIyICs4LDE5IEBACiAgICAgZmlsZTovL0NPUFlJTkc7bWQ1PTBjNTZkYjAxNDNmNGY4MGMzNjllZTNhZjc0MjVhZjZlIFwKICIKIAotU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vbGtzY3RwLyR7QlB9LnRhci5neiBcCitTUkNSRVYgPSAiNzM2YjkxZDM0MGUzZjI1MTk3MTRmMjkzMGVkNjNiMTY0ZDM2MzUxMSIKKworUFYgLj0gIitnaXQke1NSQ1BWfSIKK0xLX1JFTCA9ICIxLjAuMTciCisKK1NSQ19VUkkgPSAiIFwKKyAgICBnaXQ6Ly9naXRodWIuY29tL3NjdHAvbGtzY3RwLXRvb2xzLmdpdCBcCiAgICAgZmlsZTovL3J1bi1wdGVzdCBcCiAgICAgZmlsZTovL3Y0dGVzdC5zaCBcCiAgICAgZmlsZTovL3Y2dGVzdC5zaCBcCiAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI2OGU5YjhmYTRkNGUzMzEwMjliMjQ3YjcyZDQ2ZDdhNSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIxYWViMjA0Y2RiMmJlZmM5NGQ5ZWIzMDM3ZDE2MDljOWQxZDJjZDUzNzlkNmRkMmMwYThjYTliMTA1MzNhYTE1IgotCi0jfCBhcm0tb2UtbGludXgtZ251ZWFiaS1saWJ0b29sOiBsaW5rOiBhcm0tb2UtbGludXgtZ251ZWFiaS1nY2MgIC1tYXJjaD1hcm12NXRlIC1tYXJtIC1tdGh1bWItaW50ZXJ3b3JrIC0tc3lzcm9vdD0vaG9tZS9qZW5raW5zL29lL3dvcmxkL3Noci1jb3JlL3RtcC1lZ2xpYmMvc3lzcm9vdHMvcWVtdWFybSAtc2hhcmVkICAtZlBJQyAtRFBJQyAgLmxpYnMvYmluZHgubyAubGlicy9jb25uZWN0eC5vIC5saWJzL3BlZWxvZmYubyAubGlicy9vcHRfaW5mby5vIC5saWJzL2FkZHJzLm8gLmxpYnMvc2VuZG1zZy5vIC5saWJzL3JlY3Ztc2cubyAgICAtbWFyY2g9YXJtdjV0ZSAtbWFybSAtbXRodW1iLWludGVyd29yayAtLXN5c3Jvb3Q9L2hvbWUvamVua2lucy9vZS93b3JsZC9zaHItY29yZS90bXAtZWdsaWJjL3N5c3Jvb3RzL3FlbXVhcm0gLU8yIC1XbCwtLXZlcnNpb24tc2NyaXB0PS9ob21lL2plbmtpbnMvb2Uvd29ybGQvc2hyLWNvcmUvdG1wLWVnbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9sa3NjdHAtdG9vbHMvMS4wLjE2LXIwL2xrc2N0cC10b29scy0xLjAuMTYvc3JjL2xpYi9WZXJzaW9ucy5tYXAgLVdsLC1PMSAtV2wsLS1oYXNoLXN0eWxlPWdudSAtV2wsLS1hcy1uZWVkZWQgICAtV2wsLXNvbmFtZSAtV2wsbGlic2N0cC5zby4xIC1vIC5saWJzL2xpYnNjdHAuc28uMS4wLjE2Ci0jfCAvaG9tZS9qZW5raW5zL29lL3dvcmxkL3Noci1jb3JlL3RtcC1lZ2xpYmMvc3lzcm9vdHMveDg2XzY0LWxpbnV4L3Vzci9saWJleGVjL2FybS1vZS1saW51eC1nbnVlYWJpL2djYy9hcm0tb2UtbGludXgtZ251ZWFiaS80LjkuMC9sZDogZXJyb3I6IHN5bWJvbCBzY3RwX2Nvbm5lY3R4IGhhcyB1bmRlZmluZWQgdmVyc2lvbgotI3wgY29sbGVjdDI6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCi0jfCBtYWtlWzRdOiAqKiogW2xpYnNjdHAubGFdIEVycm9yIDEKLVBOQkxBQ0tMSVNUW2xrc2N0cC10b29sc10gPz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnbGQtaXMtZ29sZCcsICJCUk9LRU46IGZhaWxzIHRvIGxpbmsgYWdhaW5zdCBzY3RwX2Nvbm5lY3R4IHN5bWJvbCIsICcnLCBkKX0iCi0KLVMgPSAiJHtXT1JLRElSfS8ke0JQfSIKK1MgPSAiJHtXT1JLRElSfS9naXQiCiAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgogCkBAIC0zNyw3ICszNCw3IEBACiAgICAgZG9uZQogfQogCi1TT0xJQlZFUlNJT049IiR7UFZ9IgorU09MSUJWRVJTSU9OPSIke0xLX1JFTH0iCiBTT0xJQk1BSk9SVkVSU0lPTj0iMSIKIAogUEFDS0FHRVMgPSsgIiR7UE59LXdpdGhzY3RwICR7UE59LXV0aWxzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xvd3Bhbi10b29scy9sb3dwYW4tdG9vbHMvMDAwMS1jb29yZGluYXRvci1GaXgtc3RybmNweS1yYW5nZS13YXJuaW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xvd3Bhbi10b29scy9sb3dwYW4tdG9vbHMvMDAwMS1jb29yZGluYXRvci1GaXgtc3RybmNweS1yYW5nZS13YXJuaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5MzgzMmIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbG93cGFuLXRvb2xzL2xvd3Bhbi10b29scy8wMDAxLWNvb3JkaW5hdG9yLUZpeC1zdHJuY3B5LXJhbmdlLXdhcm5pbmcucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorRnJvbSBmMDE3MzUzYjhmMzE3MGNlNzllN2FkZGMxMjcwNTZjMDE0MmYwODdiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFN1biwgMSBBcHIgMjAxOCAxNDozMTowNSAtMDcwMAorU3ViamVjdDogW1BBVENIXSBjb29yZGluYXRvcjogRml4IHN0cm5jcHkgcmFuZ2Ugd2FybmluZworCitGaXhlcworZXJyb3I6ICdzdHJuY3B5JyBzcGVjaWZpZWQgYm91bmQgNDA5NiBlcXVhbHMgZGVzdGluYXRpb24gc2l6ZSBbLVdlcnJvcj1zdHJpbmdvcC10cnVuY2F0aW9uXQorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCisgc3JjL2Nvb3JkaW5hdG9yLmMgfCA1ICsrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9jb29yZGluYXRvci5jIGIvc3JjL2Nvb3JkaW5hdG9yLmMKK2luZGV4IGMxMzlhYWUuLmNhNDk0MTggMTAwNjQ0CistLS0gYS9zcmMvY29vcmRpbmF0b3IuYworKysrIGIvc3JjL2Nvb3JkaW5hdG9yLmMKK0BAIC0yOTYsNyArMjk2LDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorIAlpZighbGVhc2VfZmlsZSkKKyAJCWxlYXNlX2ZpbGUgPSBMRUFTRV9GSUxFOworIAorLQlzdHJuY3B5KHBuYW1lLCBhcmd2WzBdLCBQQVRIX01BWCk7CisrCXN0cm5jcHkocG5hbWUsIGFyZ3ZbMF0sIFBBVEhfTUFYIC0gMSk7CisrCXBuYW1lW1BBVEhfTUFYIC0gMV0gPSAnXDAnOworIAorIAlwaWRfZmlsZSA9IGdldGVudigiUElEX0ZJTEUiKTsKKyAJaWYgKCFwaWRfZmlsZSkKKy0tIAorMi4xNi4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9sb3dwYW4tdG9vbHMvbG93cGFuLXRvb2xzX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9sb3dwYW4tdG9vbHMvbG93cGFuLXRvb2xzX2dpdC5iYgppbmRleCBiZTczZjhhLi5kMGZlNTljIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbG93cGFuLXRvb2xzL2xvd3Bhbi10b29sc19naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xvd3Bhbi10b29scy9sb3dwYW4tdG9vbHNfZ2l0LmJiCkBAIC04LDE0ICs4LDE1IEBACiBERVBFTkRTID0gImZsZXgtbmF0aXZlIGJpc29uLW5hdGl2ZSBsaWJubCBweXRob24iCiAKIFBWID0gIjAuMy4xK2dpdCR7U1JDUFZ9IgotU1JDX1VSSSA9ICJnaXQ6Ly9naXQuY29kZS5zZi5uZXQvcC9saW51eC16aWdiZWUvbGludXgtemlnYmVlIFwKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9saW51eC13cGFuL2xvd3Bhbi10b29scyBcCiAgICAgICAgICAgIGZpbGU6Ly9uby1oZWxwMm1hbi5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLUZpeC1idWlsZC1lcnJvcnMtd2l0aC1jbGFuZy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWFkZHJkYi1jb29yZC1jb25maWctcGFyc2UueS1hZGQtbWlzc2luZy10aW1lLmgtaW5jbHUucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1zcmMtaXouYy1VbmRlZi1kcHJpbnRmLWJlZm9yZS1yZWRlZmluaW5nLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtUmVtb3ZlLW5ld2xpbmUtZnJvbS1mb3JtYXQtbGluZS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvb3JkaW5hdG9yLUZpeC1zdHJuY3B5LXJhbmdlLXdhcm5pbmcucGF0Y2ggXAogICAgICAgICAgICAiCi1TUkNSRVYgPSAiMzhmNDJkYmZjZTllMTM2MjkyNjNkYjNiZDNiODFmMTRjNjliYjczMyIKK1NSQ1JFViA9ICIxYzJkODY3NGNjNmY0YjExNjZhMDY2ZTg4MjJlMjk1YzEwNWFlN2EyIgogCiBTID0gIiR7V09SS0RJUn0vZ2l0IgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmRpc2M2L25kaXNjNl9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmRpc2M2L25kaXNjNl9naXQuYmIKaW5kZXggNDhhODNiOC4uY2ViYzFkOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25kaXNjNi9uZGlzYzZfZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uZGlzYzYvbmRpc2M2X2dpdC5iYgpAQCAtMjAsOCArMjAsMTIgQEAKIEVYVFJBX09FQ09ORiArPSAiUEVSTD0ke1VTUkJJTlBBVEh9L3BlcmwiCiAKIExERkxBR1MgKz0gIi1mdXNlLWxkPWdvbGQiCitMREZMQUdTX3JlbW92ZV9yaXNjdjY0ID0gIi1mdXNlLWxkPWdvbGQiCisKIFRPT0xDSEFJTiA9ICJnY2MiCiAKK1VTRV9OTFMgPSAieWVzIgorCiBkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKICAgICBjcCAke1NUQUdJTkdfREFUQURJUl9OQVRJVkV9L2dldHRleHQvZ2V0dGV4dC5oICR7U30vaW5jbHVkZQogICAgICR7U30vYXV0b2dlbi5zaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25naHR0cDIvbmdodHRwMl8xLjI2LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmdodHRwMi9uZ2h0dHAyXzEuMjYuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2NkNDg2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25naHR0cDIvbmdodHRwMl8xLjI2LjAuYmIKQEAgLTAsMCArMSwxMyBAQAorU1VNTUFSWSA9ICJIVFRQLzIgQyBMaWJyYXJ5IGFuZCB0b29scyIKK0hPTUVQQUdFID0gImh0dHBzOi8vbmdodHRwMi5vcmcvIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NjRhYmRmMzBiMmVhZGQzN2NlNDdkY2JjZTBlYTFlYyIKKworU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbmdodHRwMi9uZ2h0dHAyL3JlbGVhc2VzL2Rvd25sb2FkL3Yke1BWfS9uZ2h0dHAyLSR7UFZ9LnRhci5iejIiCitTUkNfVVJJW21kNXN1bV0gPSAiOTI2ZjA3YWQzYjUwZjM4ZjdkODkzNWNlZDA0NzE2Y2YiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMGRmNDIyOWY0MTIzYjVhYTk2ZTgzNGViY2ZkZmZlOTU0ZTkzZDk4NmYwMjUyZmQxMDEyM2Q1MGM2ZjAxMDk4MyIKKworREVQRU5EUyA9ICJsaWJ4bWwyIG9wZW5zc2wgemxpYiBqYW5zc29uIGN1bml0IGMtYXJlcyIKKworaW5oZXJpdCBjbWFrZSBweXRob25uYXRpdmUgcHl0aG9uLWRpcgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25pcy9uaXMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25pcy9uaXMuaW5jCmluZGV4IGUwMjdhMWMuLjIwMGVhZjcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uaXMvbmlzLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL25pcy5pbmMKQEAgLTI3LDUgKzI3LDUgQEAKIHB5dGhvbiAoKSB7CiAgICAgb3MgPSBkLmdldFZhcigiVEFSR0VUX09TIiwgVHJ1ZSkKICAgICBpZiBvcyA9PSAibGludXgtdWNsaWJjIjoKLSAgICAgICAgcmFpc2UgYmIucGFyc2UuU2tpcFBhY2thZ2UoIk5JUyBmdW5jdGlvbmFsaXR5IHJlcXVpcmVzIHJwY3N2Yy95cC5oLCB1Q2xpYkMgZG9lcyBub3QgcHJvdmlkZSB0aGlzIikKKyAgICAgICAgcmFpc2UgYmIucGFyc2UuU2tpcFJlY2lwZSgiTklTIGZ1bmN0aW9uYWxpdHkgcmVxdWlyZXMgcnBjc3ZjL3lwLmgsIHVDbGliQyBkb2VzIG5vdCBwcm92aWRlIHRoaXMiKQogfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25pcy95cC10b29scy8wMDAxLXlwYmluZDNfYmluZGluZ19kdXAuYy1JbmNsdWRlLXN0cmluZy5oLWZvci1zdHJkdXAtZGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL3lwLXRvb2xzLzAwMDEteXBiaW5kM19iaW5kaW5nX2R1cC5jLUluY2x1ZGUtc3RyaW5nLmgtZm9yLXN0cmR1cC1kZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Q0ZDRmMi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL3lwLXRvb2xzLzAwMDEteXBiaW5kM19iaW5kaW5nX2R1cC5jLUluY2x1ZGUtc3RyaW5nLmgtZm9yLXN0cmR1cC1kZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLUZyb20gNDIwY2I2OTI3NTUzYmJjYTViNDliNzY4MWNmMjA4ZTZkZjZlNGQ3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDggU2VwIDIwMTcgMDg6NDI6NDUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzJdIHlwYmluZDNfYmluZGluZ19kdXAuYzogSW5jbHVkZSBzdHJpbmcuaCBmb3Igc3RyZHVwCi0gZGVjbGFyYXRpb24KLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQKLQotIGxpYi95cGJpbmQzX2JpbmRpbmdfZHVwLmMgfCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL2xpYi95cGJpbmQzX2JpbmRpbmdfZHVwLmMgYi9saWIveXBiaW5kM19iaW5kaW5nX2R1cC5jCi1pbmRleCBjZTRhYWRmLi44MTk5YzBiIDEwMDY0NAotLS0tIGEvbGliL3lwYmluZDNfYmluZGluZ19kdXAuYwotKysrIGIvbGliL3lwYmluZDNfYmluZGluZ19kdXAuYwotQEAgLTE5LDYgKzE5LDcgQEAKLSAKLSAjaWYgZGVmaW5lZChIQVZFX1lQQklORDMpCi0gCi0rI2luY2x1ZGUgPHN0cmluZy5oPgotICNpbmNsdWRlIDxycGNzdmMveXBfcHJvdC5oPgotICNpbmNsdWRlICJpbnRlcm5hbC5oIgotIAotLS0gCi0yLjE0LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25pcy95cC10b29scy8wMDAyLXlwX2R1bXBfYmluZGluZ3MuYy1JbmNsdWRlLXN0cmluZy5oLWZvci1tZW1zZXQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL3lwLXRvb2xzLzAwMDIteXBfZHVtcF9iaW5kaW5ncy5jLUluY2x1ZGUtc3RyaW5nLmgtZm9yLW1lbXNldC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDU2MmU1OC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL3lwLXRvb2xzLzAwMDIteXBfZHVtcF9iaW5kaW5ncy5jLUluY2x1ZGUtc3RyaW5nLmgtZm9yLW1lbXNldC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLUZyb20gMDNjY2FiYjYyNjRjMDA4NDMwYzRiMTczOTM1MWRmNWE2MzgyOWY4ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDggU2VwIDIwMTcgMDg6NTI6MzIgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzJdIHlwX2R1bXBfYmluZGluZ3MuYzogSW5jbHVkZSBzdHJpbmcuaCBmb3IgbWVtc2V0Ci0KLUZpeGVzCi1lcnJvcjogaW1wbGljaXRseSBkZWNsYXJpbmcgbGlicmFyeSBmdW5jdGlvbiAnbWVtc2V0JwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi1VcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZAotCi0gc3JjL3lwX2R1bXBfYmluZGluZy5jIHwgMSArCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCi0KLWRpZmYgLS1naXQgYS9zcmMveXBfZHVtcF9iaW5kaW5nLmMgYi9zcmMveXBfZHVtcF9iaW5kaW5nLmMKLWluZGV4IGE1YWI5MjAuLmQ3NWUyYzIgMTAwNjQ0Ci0tLS0gYS9zcmMveXBfZHVtcF9iaW5kaW5nLmMKLSsrKyBiL3NyYy95cF9kdW1wX2JpbmRpbmcuYwotQEAgLTI2LDYgKzI2LDcgQEAKLSAjaW5jbHVkZSA8bGliaW50bC5oPgotICNpbmNsdWRlIDxsb2NhbGUuaD4KLSAjaW5jbHVkZSA8Z2V0b3B0Lmg+Ci0rI2luY2x1ZGUgPHN0cmluZy5oPgotICNpbmNsdWRlIDxzeXMvc3RhdC5oPgotICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KLSAjaW5jbHVkZSA8cnBjc3ZjL3lwY2xudC5oPgotLS0gCi0yLjE0LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25pcy95cC10b29sc180LjIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uaXMveXAtdG9vbHNfNC4yLjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhYzk3MzguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25pcy95cC10b29sc180LjIuMi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLSMgVGhpcyBwYWNrYWdlIGJ1aWxkcyB0b29scyB0byBtYW5hZ2UgTklTCi0jIFRoZSBzb3VyY2UgcGFja2FnZSBpcyB1dGlscy9uZXQvTklTL3lwLXRvb2xzCi0jCi1yZXF1aXJlIG5pcy5pbmMKLQotU1VNTUFSWSA9ICJOSVMgY2xpZW50IHByb2dyYW1zIgotREVTQ1JJUFRJT04gPSAiIFwKLU5ldHdvcmsgSW5mb3JtYXRpb24gU2VydmljZSB0b29scy4gIFwKLVRoaXMgcGFja2FnZSBjb250YWlucyB5cGNhdCwgeXBtYXRjaCwgeXBzZXQsIFwKLXlwd2hpY2gsIHlwcGFzc3dkLCBkb21haW5uYW1lLCBuaXNkb21haW5uYW1lIFwKLWFuZCB5cGRvbWFpbm5hbWUuIFwKLSIKLQotU1JDX1VSSSA9ICJodHRwOi8vd3d3LmxpbnV4LW5pcy5vcmcvZG93bmxvYWQveXAtdG9vbHMvJHtCUH0udGFyLmJ6MiBcCi0gICAgICAgICAgIGZpbGU6Ly9kb21haW5uYW1lLnNlcnZpY2UgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS15cGJpbmQzX2JpbmRpbmdfZHVwLmMtSW5jbHVkZS1zdHJpbmcuaC1mb3Itc3RyZHVwLWRlLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDIteXBfZHVtcF9iaW5kaW5ncy5jLUluY2x1ZGUtc3RyaW5nLmgtZm9yLW1lbXNldC5wYXRjaCBcCi0gICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICJmYjRhOGJmZmI0NGFlNWQzMzkwMzUxZDY3ZjMyMGVmMyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIxMzdmMTlhOTg2MzgyYjI3NWJmNGEyYjFhNjllYjI2Njg5ZDZmNGFjMDU2ZGRhYTIxNzg0ZDZiODBlYjk4ZmFhIgotCi1ERVBFTkRTID0gImxpYnRpcnBjIGxpYm5zbDIiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHN5c3RlbWQKLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJkb21haW5uYW1lLnNlcnZpY2UiCi0KLVJQUk9WSURFU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLVJSRVBMQUNFU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLVJDT05GTElDVFNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCi0KLUNBQ0hFRF9DT05GSUdVUkVWQVJTICs9ICJhY19jdl9wcm9nX1NUUklQPS9iaW4vdHJ1ZSIKLQotRVhUUkFfT0VDT05GID0gIiBcCi0gICAgICAgICAgICAgICAgLS1kaXNhYmxlLXJwYXRoIC0tZGlzYWJsZS1kb21haW5uYW1lIFwKLSAgICAgICAgICAgICAgICIKLUNGTEFHU19hcHBlbmRfbGliYy1tdXNsID0gIiAtV25vLWVycm9yPWNwcCIKLQotRklMRVNfJHtQTn0gKz0gIiAke2xpYmRpcn0veXAtbmlzLyouc28uKi4qICR7bGliZGlyfS95cC1uaXMvcGtnY29uZmlnLyIKLUZJTEVTXyR7UE59LWRiZyArPSAiICR7bGliZGlyfS95cC1uaXMvLmRlYnVnIgotRklMRVNfJHtQTn0tZGV2ICs9ICIgJHtsaWJkaXJ9L3lwLW5pcy8qLnNvICR7bGliZGlyfS95cC1uaXMvKi5zby5bMTJdICR7bGliZGlyfS95cC1uaXMvKi5sYSIKLUZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiICR7bGliZGlyfS95cC1uaXMvKi5hIgotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vZG9tYWlubmFtZS5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL3lwLXRvb2xzXzQuMi4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25pcy95cC10b29sc180LjIuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTI3ZTMyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25pcy95cC10b29sc180LjIuMy5iYgpAQCAtMCwwICsxLDQ3IEBACisjIFRoaXMgcGFja2FnZSBidWlsZHMgdG9vbHMgdG8gbWFuYWdlIE5JUworIyBUaGUgc291cmNlIHBhY2thZ2UgaXMgdXRpbHMvbmV0L05JUy95cC10b29scworIworcmVxdWlyZSBuaXMuaW5jCisKK1NVTU1BUlkgPSAiTklTIGNsaWVudCBwcm9ncmFtcyIKK0RFU0NSSVBUSU9OID0gIiBcCitOZXR3b3JrIEluZm9ybWF0aW9uIFNlcnZpY2UgdG9vbHMuICBcCitUaGlzIHBhY2thZ2UgY29udGFpbnMgeXBjYXQsIHlwbWF0Y2gsIHlwc2V0LCBcCit5cHdoaWNoLCB5cHBhc3N3ZCwgZG9tYWlubmFtZSwgbmlzZG9tYWlubmFtZSBcCithbmQgeXBkb21haW5uYW1lLiBcCisiCisKKyMgdjQuMi4zCitTUkNSRVYgPSAiMWJmZGEyOWMzNDJhODFiOTdjYjE5OTVmZmQ5ZThkYTVkZTYzZTdhYiIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3Roa3VrdWsveXAtdG9vbHMgXAorICAgICAgICAgICBmaWxlOi8vZG9tYWlubmFtZS5zZXJ2aWNlIFwKKyAgICAgICAgICAgIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitERVBFTkRTID0gImxpYnRpcnBjIGxpYm5zbDIiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHN5c3RlbWQKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJkb21haW5uYW1lLnNlcnZpY2UiCisKK1JQUk9WSURFU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKK1JSRVBMQUNFU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKK1JDT05GTElDVFNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCisKK0NBQ0hFRF9DT05GSUdVUkVWQVJTICs9ICJhY19jdl9wcm9nX1NUUklQPS9iaW4vdHJ1ZSIKKworRVhUUkFfT0VDT05GID0gIiBcCisgICAgICAgICAgICAgICAgLS1kaXNhYmxlLXJwYXRoIC0tZGlzYWJsZS1kb21haW5uYW1lIFwKKyAgICAgICAgICAgICAgICIKK0NGTEFHU19hcHBlbmRfbGliYy1tdXNsID0gIiAtV25vLWVycm9yPWNwcCIKKworRklMRVNfJHtQTn0gKz0gIiAke2xpYmRpcn0veXAtbmlzLyouc28uKi4qICR7bGliZGlyfS95cC1uaXMvcGtnY29uZmlnLyIKK0ZJTEVTXyR7UE59LWRiZyArPSAiICR7bGliZGlyfS95cC1uaXMvLmRlYnVnIgorRklMRVNfJHtQTn0tZGV2ICs9ICIgJHtsaWJkaXJ9L3lwLW5pcy8qLnNvICR7bGliZGlyfS95cC1uaXMvKi5zby5bMTJdICR7bGliZGlyfS95cC1uaXMvKi5sYSIKK0ZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiICR7bGliZGlyfS95cC1uaXMvKi5hIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vZG9tYWlubmFtZS5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbnRpbWVkL250aW1lZF9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbnRpbWVkL250aW1lZF9naXQuYmIKaW5kZXggNTI3ZWEzMy4uYTc0OWIxNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L250aW1lZC9udGltZWRfZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9udGltZWQvbnRpbWVkX2dpdC5iYgpAQCAtNiw3ICs2LDcgQEAKIFNFQ1RJT04gPSAibmV0IgogCiBMSUNFTlNFID0gIkJTRC0yLUNsYXVzZSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL21haW4uYztzdGFydGxpbmU9MjtlbmRsaW5lPTI0O21kNT1lZGExMWQyMTAwNTMxOWJiNzZjYmI2ZjkxMWYwZjY2ZCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL21haW4uYztiZWdpbmxpbmU9MjtlbmRsaW5lPTI0O21kNT04OWRiOGU3NmYyOTUxZjNmYWQxNjdlN2FhOTcxOGE0NCIKIAogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2JzZHBoay9OdGltZWQgXAogICAgICAgICAgICBmaWxlOi8vdXNlLWxkZmxhZ3MucGF0Y2giCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbnRwL250cC9udHAtNC4yLjRfcDYtbmFuby5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9udHAvbnRwL250cC00LjIuNF9wNi1uYW5vLnBhdGNoCmluZGV4IGNiMWUyZjcuLmQ0NWI3ZTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9udHAvbnRwL250cC00LjIuNF9wNi1uYW5vLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9udHAvbnRwL250cC00LjIuNF9wNi1uYW5vLnBhdGNoCkBAIC0xLDYgKzEsMTYgQEAKLS0tLSBhL2luY2x1ZGUvbnRwX3N5c2NhbGwuaC5vcmlnCTIwMDktMDUtMTkgMTY6NDQ6NTUuMDQ4MTU2NDY3IC0wNDAwCi0rKysgYi9pbmNsdWRlL250cF9zeXNjYWxsLmgJMjAwOS0wNS0xOSAxNjo0NjoxOS4yOTMzMjM2ODYgLTA0MDAKLUBAIC0xNCw2ICsxNCwxNCBAQAorRnJvbSAyMzEwODk4NTMzZjA1OWQ4NzVkY2ZmZDI2YWI2Y2YxYjI4MDI5MmZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK0RhdGU6IFdlZCwgMTIgSmFuIDIwMTEgMjE6Mzg6NDYgKzAxMDAKKworLS0tCisgaW5jbHVkZS9udHBfc3lzY2FsbC5oIHwgOCArKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvbnRwX3N5c2NhbGwuaCBiL2luY2x1ZGUvbnRwX3N5c2NhbGwuaAoraW5kZXggZDFjZTAzZS4uOWUxODQzMiAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvbnRwX3N5c2NhbGwuaAorKysrIGIvaW5jbHVkZS9udHBfc3lzY2FsbC5oCitAQCAtMTAsNiArMTAsMTQgQEAKICAjIGluY2x1ZGUgPHN5cy90aW1leC5oPgogICNlbmRpZgogIApAQCAtMTMsNSArMjMsNSBAQAogKyNlbmRpZgogKwogICNpZm5kZWYgTlRQX1NZU0NBTExTX0xJQkMKLSAjaWZkZWYgTlRQX1NZU0NBTExTX1NURAotICMgZGVmaW5lIG50cF9hZGp0aW1lKHQpCQlzeXNjYWxsKFNZU19udHBfYWRqdGltZSwgKHQpKQorICMgaWZkZWYgTlRQX1NZU0NBTExTX1NURAorICMgIGRlZmluZSBudHBfYWRqdGltZSh0KQlzeXNjYWxsKFNZU19udHBfYWRqdGltZSwgKHQpKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L250cC9udHBfNC4yLjhwMTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbnRwL250cF80LjIuOHAxMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzE5YzYwYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbnRwL250cF80LjIuOHAxMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE3MCArMCwwIEBACi1TVU1NQVJZID0gIk5ldHdvcmsgVGltZSBQcm90b2NvbCBkYWVtb24gYW5kIHV0aWxpdGllcyIKLURFU0NSSVBUSU9OID0gIlRoZSBOZXR3b3JrIFRpbWUgUHJvdG9jb2wgKE5UUCkgaXMgdXNlZCB0byBcCi1zeW5jaHJvbml6ZSB0aGUgdGltZSBvZiBhIGNvbXB1dGVyIGNsaWVudCBvciBzZXJ2ZXIgdG8gXAotYW5vdGhlciBzZXJ2ZXIgb3IgcmVmZXJlbmNlIHRpbWUgc291cmNlLCBzdWNoIGFzIGEgcmFkaW8gXAotb3Igc2F0ZWxsaXRlIHJlY2VpdmVyIG9yIG1vZGVtLiIKLUhPTUVQQUdFID0gImh0dHA6Ly9zdXBwb3J0Lm50cC5vcmciCi1TRUNUSU9OID0gIm5ldCIKLUxJQ0VOU0UgPSAiTlRQIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWVJJR0hUO21kNT1lODc3YTFkNTY3YTZhNTg5OTZkMmI2NmUzZTM4NzAwMyIKLQotREVQRU5EUyA9ICJsaWJldmVudCIKLQotU1JDX1VSSSA9ICJodHRwOi8vd3d3LmVlY2lzLnVkZWwuZWR1L35udHAvbnRwX3Nwb29sL250cDQvbnRwLTQuMi9udHAtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL250cC00LjIuNF9wNi1uYW5vLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL250cGQgXAotICAgICAgICAgICBmaWxlOi8vbnRwLmNvbmYgXAotICAgICAgICAgICBmaWxlOi8vbnRwZGF0ZSBcCi0gICAgICAgICAgIGZpbGU6Ly9udHBkYXRlLmRlZmF1bHQgXAotICAgICAgICAgICBmaWxlOi8vbnRwZGF0ZS5zZXJ2aWNlIFwKLSAgICAgICAgICAgZmlsZTovL250cGQuc2VydmljZSBcCi0gICAgICAgICAgIGZpbGU6Ly9zbnRwLnNlcnZpY2UgXAotICAgICAgICAgICBmaWxlOi8vc250cCBcCi0gICAgICAgICAgIGZpbGU6Ly9udHBkLmxpc3QgXAotIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNzQ1Mzg0ZWQwZGVkYjNmNjZiMzNmZTg0ZDY2NDY2ZjkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGRkMjM2NmU2NDIxOWI5ZWZhMGY3NDM4ZTA2ODAwZDBkYjM5NGFjNWM4OGUxM2MxN2I3MGQwZGNkZjk5Yjk5ZiIKLQotaW5oZXJpdCBhdXRvdG9vbHMgdXBkYXRlLXJjLmQgdXNlcmFkZCBzeXN0ZW1kIHBrZ2NvbmZpZwotCi0jIFRoZSBhY19jdl9oZWFkZXJfcmVhZGxpbmVfaGlzdG9yeSBpcyB0byBzdG9wIG50cGRjIGRlcGVuZGluZyBvbiBlaXRoZXIKLSMgcmVhZGxpbmUgb3IgY3Vyc2VzCi1FWFRSQV9PRUNPTkYgKz0gIi0td2l0aC1uZXQtc25tcC1jb25maWc9bm8gXAotICAgICAgICAgICAgICAgICAtLXdpdGhvdXQtbnRwc25tcGQgXAotICAgICAgICAgICAgICAgICBhY19jdl9oZWFkZXJfcmVhZGxpbmVfaGlzdG9yeV9oPW5vIFwKLSAgICAgICAgICAgICAgICAgLS13aXRoLXlpZWxkaW5nX3NlbGVjdD15ZXMgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtbG9jZmlsZT1yZWRoYXQgXAotICAgICAgICAgICAgICAgICAtLXdpdGhvdXQtcnBhdGggXAotICAgICAgICAgICAgICAgICAiCi1DRkxBR1NfYXBwZW5kID0gIiAtRFBUWVNfQVJFX0dFVFBUIC1EUFRZU19BUkVfU0VBUkNIRUQiCi0KLVVTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0iCi1OVFBfVVNFUl9IT01FID89ICIvdmFyL2xpYi9udHAiCi1VU0VSQUREX1BBUkFNXyR7UE59ID0gIi0tc3lzdGVtIC0taG9tZS1kaXIgJHtOVFBfVVNFUl9IT01FfSBcCi0gICAgICAgICAgICAgICAgICAgICAgIC0tbm8tY3JlYXRlLWhvbWUgXAotICAgICAgICAgICAgICAgICAgICAgICAtLXNoZWxsIC9iaW4vZmFsc2UgLS11c2VyLWdyb3VwIG50cCIKLQotIyBOQjogZGVidWcgaXMgZGVmYXVsdC1lbmFibGVkIGJ5IE5UUDsga2VlcCBpdCBkZWZhdWx0LWVuYWJsZWQgaGVyZS4KLVBBQ0tBR0VDT05GSUcgPz89ICJjYXAgZGVidWcgcmVmY2xvY2tzIG9wZW5zc2wgXAotICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2lwdjYnLCBkKX0gXAotIgotUEFDS0FHRUNPTkZJR1tvcGVuc3NsXSA9ICItLXdpdGgtb3BlbnNzbC1saWJkaXI9JHtTVEFHSU5HX0xJQkRJUn0gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAtLXdpdGgtb3BlbnNzbC1pbmNkaXI9JHtTVEFHSU5HX0lOQ0RJUn0gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAtLXdpdGgtY3J5cHRvLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC0td2l0aG91dC1vcGVuc3NsIC0td2l0aG91dC1jcnlwdG8sIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNzbCIKLVBBQ0tBR0VDT05GSUdbY2FwXSA9ICItLWVuYWJsZS1saW51eGNhcHMsLS1kaXNhYmxlLWxpbnV4Y2FwcyxsaWJjYXAiCi1QQUNLQUdFQ09ORklHW3JlYWRsaW5lXSA9ICItLXdpdGgtbGluZWVkaXRsaWJzLC0td2l0aG91dC1saW5lZWRpdGxpYnMscmVhZGxpbmUiCi1QQUNLQUdFQ09ORklHW3JlZmNsb2Nrc10gPSAiLS1lbmFibGUtYWxsLWNsb2NrcywtLWRpc2FibGUtYWxsLWNsb2NrcyxwcHMtdG9vbHMiCi1QQUNLQUdFQ09ORklHW2RlYnVnXSA9ICItLWVuYWJsZS1kZWJ1Z2dpbmcsLS1kaXNhYmxlLWRlYnVnZ2luZyIKLVBBQ0tBR0VDT05GSUdbbWRuc10gPSAiYWNfY3ZfaGVhZGVyX2Ruc19zZF9oPXllcyxhY19jdl9oZWFkZXJfZG5zX3NkX2g9bm8sbWRucyIKLVBBQ0tBR0VDT05GSUdbaXB2Nl0gPSAiLS1lbmFibGUtaXB2NiwtLWRpc2FibGUtaXB2NiwiCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCi0gICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9udHAuY29uZiAke0R9JHtzeXNjb25mZGlyfQotICAgIGluc3RhbGwgLW0gNzU1ICR7V09SS0RJUn0vbnRwZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0KLSAgICBpbnN0YWxsIC1tIDc1NSAke1dPUktESVJ9L250cGRhdGUgJHtEfSR7YmluZGlyfS9udHBkYXRlLXN5bmMKLQotICAgIGluc3RhbGwgLW0gNzU1IC1kICR7RH0ke05UUF9VU0VSX0hPTUV9Ci0gICAgY2hvd24gbnRwOm50cCAke0R9JHtOVFBfVVNFUl9IT01FfQotCi0gICAgIyBGaXggaGFyZGNvZGVkIHBhdGhzIGluIHNjcmlwdHMKLSAgICBzZWQgLWkgJ3MhL3Vzci9zYmluLyEke3NiaW5kaXJ9LyFnJyAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvbnRwZCAke0R9JHtiaW5kaXJ9L250cGRhdGUtc3luYwotICAgIHNlZCAtaSAncyEvdXNyL2Jpbi8hJHtiaW5kaXJ9LyFnJyAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvbnRwZCAke0R9JHtiaW5kaXJ9L250cGRhdGUtc3luYwotICAgIHNlZCAtaSAncyEvZXRjLyEke3N5c2NvbmZkaXJ9LyFnJyAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvbnRwZCAke0R9JHtiaW5kaXJ9L250cGRhdGUtc3luYwotICAgIHNlZCAtaSAncyEvdmFyLyEke2xvY2Fsc3RhdGVkaXJ9LyFnJyAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvbnRwZCAke0R9JHtiaW5kaXJ9L250cGRhdGUtc3luYwotICAgIHNlZCAtaSAncyFeUEFUSD0uKiFQQVRIPSR7YmFzZV9zYmluZGlyfToke2Jhc2VfYmluZGlyfToke3NiaW5kaXJ9OiR7YmluZGlyfSEnICR7RH0ke2JpbmRpcn0vbnRwZGF0ZS1zeW5jCi0gICAgc2VkIC1pICcxcywjIS4qcGVybCAtdywjISAke2JpbmRpcn0vZW52IHBlcmwsJyAke0R9JHtzYmluZGlyfS9udHB0cmFjZQotICAgIHNlZCAtaSAnL3VzZS9pIHVzZSB3YXJuaW5nczsnICR7RH0ke3NiaW5kaXJ9L250cHRyYWNlCi0gICAgc2VkIC1pICcxcywjIS4qcGVybCwjISAke2JpbmRpcn0vZW52IHBlcmwsJyAke0R9JHtzYmluZGlyfS9udHAtd2FpdAotICAgIHNlZCAtaSAnL3VzZS9pIHVzZSB3YXJuaW5nczsnICR7RH0ke3NiaW5kaXJ9L250cC13YWl0Ci0gICAgc2VkIC1pICcxcywjIS4qcGVybCAtdywjISAke2JpbmRpcn0vZW52IHBlcmwsJyAke0R9JHtzYmluZGlyfS9jYWxjX3RpY2thZGoKLSAgICBzZWQgLWkgJy91c2UvaSB1c2Ugd2FybmluZ3M7JyAke0R9JHtzYmluZGlyfS9jYWxjX3RpY2thZGoKLQotICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQKLSAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L250cGRhdGUuZGVmYXVsdCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L250cGRhdGUKLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9zbnRwICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvCi0KLSAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9uZXR3b3JrL2lmLXVwLmQKLSAgICBsbiAtcyAke2JpbmRpcn0vbnRwZGF0ZS1zeW5jICR7RH0vJHtzeXNjb25mZGlyfS9uZXR3b3JrL2lmLXVwLmQKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9udHBkYXRlLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vbnRwZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLwotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3NudHAuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9udHAtdW5pdHMuZAotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L250cGQubGlzdCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L250cC11bml0cy5kLzYwLW50cGQubGlzdAotCi0gICAgIyBSZW1vdmUgYW4gZW1wdHkgbGliZXhlY2Rpci4KLSAgICBybWRpciAtLWlnbm9yZS1mYWlsLW9uLW5vbi1lbXB0eSAke0R9JHtsaWJleGVjZGlyfQotfQotCi1QQUNLQUdFUyArPSAibnRwZGF0ZSBzbnRwICR7UE59LXRpY2thZGogJHtQTn0tdXRpbHMiCi0jIE5PVEU6IHlvdSBkb24ndCBuZWVkIG50cGRhdGUsIHVzZSAibnRwZCAtcSAtZyAteCIKLQotIyBudHAgb3JpZ2luYWxseSBpbmNsdWRlcyB0aWNrYWRqLiBJdCdzIHNwbGl0IG9mZiBmb3IgaW5jbHVzaW9uIGluIHNtYWxsIGZpcm13YXJlIGltYWdlcyBvbiBwbGF0Zm9ybXMKLSMgd2l0aCB3b25reSBjbG9ja3MgKGUuZy4gT3BlblNsdWcpCi1SREVQRU5EU18ke1BOfSA9ICIke1BOfS10aWNrYWRqIgotIyBIYW5kbGUgbW92ZSBmcm9tIGJpbiB0byB1dGlscyBwYWNrYWdlCi1SUFJPVklERVNfJHtQTn0tdXRpbHMgPSAiJHtQTn0tYmluIgotUlJFUExBQ0VTXyR7UE59LXV0aWxzID0gIiR7UE59LWJpbiIKLVJDT05GTElDVFNfJHtQTn0tdXRpbHMgPSAiJHtQTn0tYmluIgotCi1TWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59IG50cGRhdGUgc250cCIKLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJudHBkLnNlcnZpY2UiCi1TWVNURU1EX1NFUlZJQ0VfbnRwZGF0ZSA9ICJudHBkYXRlLnNlcnZpY2UiCi1TWVNURU1EX1NFUlZJQ0Vfc250cCA9ICJzbnRwLnNlcnZpY2UiCi0KLVJQUk9WSURFU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLVJSRVBMQUNFU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLVJDT05GTElDVFNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCi0KLVJQUk9WSURFU19udHBkYXRlICs9ICJudHBkYXRlLXN5c3RlbWQiCi1SUkVQTEFDRVNfbnRwZGF0ZSArPSAibnRwZGF0ZS1zeXN0ZW1kIgotUkNPTkZMSUNUU19udHBkYXRlICs9ICJudHBkYXRlLXN5c3RlbWQiCi0KLVJTVUdHRVNUU18ke1BOfSA9ICJpYW5hLWV0YyIKLQotRklMRVNfJHtQTn0gPSAiJHtzYmluZGlyfS9udHBkLm50cCAke3N5c2NvbmZkaXJ9L250cC5jb25mICR7c3lzY29uZmRpcn0vaW5pdC5kL250cGQgJHtsaWJkaXJ9IFwKLSAgICAke05UUF9VU0VSX0hPTUV9IFwKLSAgICAke3N5c3RlbWRfdW5pdGRpcn0vbnRwLXVuaXRzLmQvNjAtbnRwZC5saXN0ICR7bGliZXhlY2Rpcn1cCi0iCi1GSUxFU18ke1BOfS10aWNrYWRqID0gIiR7c2JpbmRpcn0vdGlja2FkaiIKLUZJTEVTXyR7UE59LXV0aWxzID0gIiR7c2JpbmRpcn0gJHtkYXRhZGlyfS9udHAvbGliIgotUkRFUEVORFNfJHtQTn0tdXRpbHMgKz0gInBlcmwiCi1GSUxFU19udHBkYXRlID0gIiR7c2JpbmRpcn0vbnRwZGF0ZSBcCi0gICAgJHtzeXNjb25mZGlyfS9uZXR3b3JrL2lmLXVwLmQvbnRwZGF0ZS1zeW5jIFwKLSAgICAke2JpbmRpcn0vbnRwZGF0ZS1zeW5jIFwKLSAgICAke3N5c2NvbmZkaXJ9L2RlZmF1bHQvbnRwZGF0ZSBcCi0gICAgJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9udHBkYXRlLnNlcnZpY2UgXAotIgotRklMRVNfc250cCA9ICIke3NiaW5kaXJ9L3NudHAgXAotICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2RlZmF1bHQvc250cCBcCi0gICAgICAgICAgICAgICR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vc250cC5zZXJ2aWNlIFwKLSAgICAgICAgICAgICAiCi0KLUNPTkZGSUxFU18ke1BOfSA9ICIke3N5c2NvbmZkaXJ9L250cC5jb25mIgotQ09ORkZJTEVTX250cGRhdGUgPSAiJHtzeXNjb25mZGlyfS9kZWZhdWx0L250cGRhdGUiCi0KLUlOSVRTQ1JJUFRfTkFNRSA9ICJudHBkIgotIyBObyBkZXBlbmRlbmNpZXMsIHNvIGp1c3QgZ28gaW4gYXQgdGhlIHN0YW5kYXJkIGxldmVsICgyMCkKLUlOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIgotCi1wa2dfcG9zdGluc3RfbnRwZGF0ZSgpIHsKLSAgICBpZiAhIGdyZXAgLXEgLXMgbnRwZGF0ZSAkRC92YXIvc3Bvb2wvY3Jvbi9yb290OyB0aGVuCi0gICAgICAgIGVjaG8gImFkZGluZyBjcm9udGFiIgotICAgICAgICB0ZXN0IC1kICREL3Zhci9zcG9vbC9jcm9uIHx8IG1rZGlyIC1wICREL3Zhci9zcG9vbC9jcm9uCi0gICAgICAgIGVjaG8gIjMwICogKiAqICogICAgJHtiaW5kaXJ9L250cGRhdGUtc3luYyBzaWxlbnQiID4+ICREL3Zhci9zcG9vbC9jcm9uL3Jvb3QKLSAgICBmaQotfQotCi1pbmhlcml0IHVwZGF0ZS1hbHRlcm5hdGl2ZXMKLQotQUxURVJOQVRJVkVfUFJJT1JJVFkgPSAiMTAwIgotCi1BTFRFUk5BVElWRV8ke1BOfSA9ICJudHBkIgotQUxURVJOQVRJVkVfTElOS19OQU1FW250cGRdID0gIiR7c2JpbmRpcn0vbnRwZCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9udHAvbnRwXzQuMi44cDExLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L250cC9udHBfNC4yLjhwMTEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY5OGZhMAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9udHAvbnRwXzQuMi44cDExLmJiCkBAIC0wLDAgKzEsMTcyIEBACitTVU1NQVJZID0gIk5ldHdvcmsgVGltZSBQcm90b2NvbCBkYWVtb24gYW5kIHV0aWxpdGllcyIKK0RFU0NSSVBUSU9OID0gIlRoZSBOZXR3b3JrIFRpbWUgUHJvdG9jb2wgKE5UUCkgaXMgdXNlZCB0byBcCitzeW5jaHJvbml6ZSB0aGUgdGltZSBvZiBhIGNvbXB1dGVyIGNsaWVudCBvciBzZXJ2ZXIgdG8gXAorYW5vdGhlciBzZXJ2ZXIgb3IgcmVmZXJlbmNlIHRpbWUgc291cmNlLCBzdWNoIGFzIGEgcmFkaW8gXAorb3Igc2F0ZWxsaXRlIHJlY2VpdmVyIG9yIG1vZGVtLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9zdXBwb3J0Lm50cC5vcmciCitTRUNUSU9OID0gIm5ldCIKK0xJQ0VOU0UgPSAiTlRQIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWVJJR0hUO21kNT1lODc3YTFkNTY3YTZhNTg5OTZkMmI2NmUzZTM4NzAwMyIKKworREVQRU5EUyA9ICJsaWJldmVudCIKKworU1JDX1VSSSA9ICJodHRwOi8vd3d3LmVlY2lzLnVkZWwuZWR1L35udHAvbnRwX3Nwb29sL250cDQvbnRwLTQuMi9udHAtJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL250cC00LjIuNF9wNi1uYW5vLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL250cGQgXAorICAgICAgICAgICBmaWxlOi8vbnRwLmNvbmYgXAorICAgICAgICAgICBmaWxlOi8vbnRwZGF0ZSBcCisgICAgICAgICAgIGZpbGU6Ly9udHBkYXRlLmRlZmF1bHQgXAorICAgICAgICAgICBmaWxlOi8vbnRwZGF0ZS5zZXJ2aWNlIFwKKyAgICAgICAgICAgZmlsZTovL250cGQuc2VydmljZSBcCisgICAgICAgICAgIGZpbGU6Ly9zbnRwLnNlcnZpY2UgXAorICAgICAgICAgICBmaWxlOi8vc250cCBcCisgICAgICAgICAgIGZpbGU6Ly9udHBkLmxpc3QgXAorIgorCitTUkNfVVJJW21kNXN1bV0gPSAiMDA5NTBjYTI4NTU1Nzk1NDE4OTY1MTNlNzgyOTUzNjEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjE0YTM5Zjc1MzY4ODI1MmQ2ODNmZjkwNzAzNWZmZmYxMDZiYThkM2RiMjEzMDliNzQyZTA5YjVjM2NkMjc4ZSIKKworaW5oZXJpdCBhdXRvdG9vbHMgdXBkYXRlLXJjLmQgdXNlcmFkZCBzeXN0ZW1kIHBrZ2NvbmZpZworCisjIFRoZSBhY19jdl9oZWFkZXJfcmVhZGxpbmVfaGlzdG9yeSBpcyB0byBzdG9wIG50cGRjIGRlcGVuZGluZyBvbiBlaXRoZXIKKyMgcmVhZGxpbmUgb3IgY3Vyc2VzCitFWFRSQV9PRUNPTkYgKz0gIi0td2l0aC1uZXQtc25tcC1jb25maWc9bm8gXAorICAgICAgICAgICAgICAgICAtLXdpdGhvdXQtbnRwc25tcGQgXAorICAgICAgICAgICAgICAgICBhY19jdl9oZWFkZXJfcmVhZGxpbmVfaGlzdG9yeV9oPW5vIFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLXlpZWxkaW5nX3NlbGVjdD15ZXMgXAorICAgICAgICAgICAgICAgICAtLXdpdGgtbG9jZmlsZT1yZWRoYXQgXAorICAgICAgICAgICAgICAgICAtLXdpdGhvdXQtcnBhdGggXAorICAgICAgICAgICAgICAgICAiCitDRkxBR1NfYXBwZW5kID0gIiAtRFBUWVNfQVJFX0dFVFBUIC1EUFRZU19BUkVfU0VBUkNIRUQiCisKK1VTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0iCitOVFBfVVNFUl9IT01FID89ICIvdmFyL2xpYi9udHAiCitVU0VSQUREX1BBUkFNXyR7UE59ID0gIi0tc3lzdGVtIC0taG9tZS1kaXIgJHtOVFBfVVNFUl9IT01FfSBcCisgICAgICAgICAgICAgICAgICAgICAgIC0tbm8tY3JlYXRlLWhvbWUgXAorICAgICAgICAgICAgICAgICAgICAgICAtLXNoZWxsIC9iaW4vZmFsc2UgLS11c2VyLWdyb3VwIG50cCIKKworIyBOQjogZGVidWcgaXMgZGVmYXVsdC1lbmFibGVkIGJ5IE5UUDsga2VlcCBpdCBkZWZhdWx0LWVuYWJsZWQgaGVyZS4KK1BBQ0tBR0VDT05GSUcgPz89ICJjYXAgZGVidWcgcmVmY2xvY2tzIG9wZW5zc2wgXAorICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2lwdjYnLCBkKX0gXAorIgorUEFDS0FHRUNPTkZJR1tvcGVuc3NsXSA9ICItLXdpdGgtb3BlbnNzbC1saWJkaXI9JHtTVEFHSU5HX0xJQkRJUn0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAtLXdpdGgtb3BlbnNzbC1pbmNkaXI9JHtTVEFHSU5HX0lOQ0RJUn0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAtLXdpdGgtY3J5cHRvLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIC0td2l0aG91dC1vcGVuc3NsIC0td2l0aG91dC1jcnlwdG8sIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNzbCIKK1BBQ0tBR0VDT05GSUdbY2FwXSA9ICItLWVuYWJsZS1saW51eGNhcHMsLS1kaXNhYmxlLWxpbnV4Y2FwcyxsaWJjYXAiCitQQUNLQUdFQ09ORklHW3JlYWRsaW5lXSA9ICItLXdpdGgtbGluZWVkaXRsaWJzLC0td2l0aG91dC1saW5lZWRpdGxpYnMscmVhZGxpbmUiCitQQUNLQUdFQ09ORklHW3JlZmNsb2Nrc10gPSAiLS1lbmFibGUtYWxsLWNsb2NrcywtLWRpc2FibGUtYWxsLWNsb2NrcyxwcHMtdG9vbHMiCitQQUNLQUdFQ09ORklHW2RlYnVnXSA9ICItLWVuYWJsZS1kZWJ1Z2dpbmcsLS1kaXNhYmxlLWRlYnVnZ2luZyIKK1BBQ0tBR0VDT05GSUdbbWRuc10gPSAiYWNfY3ZfaGVhZGVyX2Ruc19zZF9oPXllcyxhY19jdl9oZWFkZXJfZG5zX3NkX2g9bm8sbWRucyIKK1BBQ0tBR0VDT05GSUdbaXB2Nl0gPSAiLS1lbmFibGUtaXB2NiwtLWRpc2FibGUtaXB2NiwiCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9udHAuY29uZiAke0R9JHtzeXNjb25mZGlyfQorICAgIGluc3RhbGwgLW0gNzU1ICR7V09SS0RJUn0vbnRwZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0KKyAgICBpbnN0YWxsIC1tIDc1NSAke1dPUktESVJ9L250cGRhdGUgJHtEfSR7YmluZGlyfS9udHBkYXRlLXN5bmMKKworICAgIGluc3RhbGwgLW0gNzU1IC1kICR7RH0ke05UUF9VU0VSX0hPTUV9CisgICAgY2hvd24gbnRwOm50cCAke0R9JHtOVFBfVVNFUl9IT01FfQorCisgICAgIyBGaXggaGFyZGNvZGVkIHBhdGhzIGluIHNjcmlwdHMKKyAgICBzZWQgLWkgJ3MhL3Vzci9zYmluLyEke3NiaW5kaXJ9LyFnJyAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvbnRwZCAke0R9JHtiaW5kaXJ9L250cGRhdGUtc3luYworICAgIHNlZCAtaSAncyEvdXNyL2Jpbi8hJHtiaW5kaXJ9LyFnJyAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvbnRwZCAke0R9JHtiaW5kaXJ9L250cGRhdGUtc3luYworICAgIHNlZCAtaSAncyEvZXRjLyEke3N5c2NvbmZkaXJ9LyFnJyAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvbnRwZCAke0R9JHtiaW5kaXJ9L250cGRhdGUtc3luYworICAgIHNlZCAtaSAncyEvdmFyLyEke2xvY2Fsc3RhdGVkaXJ9LyFnJyAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvbnRwZCAke0R9JHtiaW5kaXJ9L250cGRhdGUtc3luYworICAgIHNlZCAtaSAncyFeUEFUSD0uKiFQQVRIPSR7YmFzZV9zYmluZGlyfToke2Jhc2VfYmluZGlyfToke3NiaW5kaXJ9OiR7YmluZGlyfSEnICR7RH0ke2JpbmRpcn0vbnRwZGF0ZS1zeW5jCisgICAgc2VkIC1pICcxcywjIS4qcGVybCAtdywjISAke2JpbmRpcn0vZW52IHBlcmwsJyAke0R9JHtzYmluZGlyfS9udHB0cmFjZQorICAgIHNlZCAtaSAnL3VzZS9pIHVzZSB3YXJuaW5nczsnICR7RH0ke3NiaW5kaXJ9L250cHRyYWNlCisgICAgc2VkIC1pICcxcywjIS4qcGVybCwjISAke2JpbmRpcn0vZW52IHBlcmwsJyAke0R9JHtzYmluZGlyfS9udHAtd2FpdAorICAgIHNlZCAtaSAnL3VzZS9pIHVzZSB3YXJuaW5nczsnICR7RH0ke3NiaW5kaXJ9L250cC13YWl0CisgICAgc2VkIC1pICcxcywjIS4qcGVybCAtdywjISAke2JpbmRpcn0vZW52IHBlcmwsJyAke0R9JHtzYmluZGlyfS9jYWxjX3RpY2thZGoKKyAgICBzZWQgLWkgJy91c2UvaSB1c2Ugd2FybmluZ3M7JyAke0R9JHtzYmluZGlyfS9jYWxjX3RpY2thZGoKKworICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQKKyAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L250cGRhdGUuZGVmYXVsdCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L250cGRhdGUKKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9zbnRwICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvCisKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9uZXR3b3JrL2lmLXVwLmQKKyAgICBsbiAtcyAke2JpbmRpcn0vbnRwZGF0ZS1zeW5jICR7RH0vJHtzeXNjb25mZGlyfS9uZXR3b3JrL2lmLXVwLmQKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9udHBkYXRlLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vbnRwZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLworICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3NudHAuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9udHAtdW5pdHMuZAorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L250cGQubGlzdCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L250cC11bml0cy5kLzYwLW50cGQubGlzdAorCisgICAgIyBSZW1vdmUgYW4gZW1wdHkgbGliZXhlY2Rpci4KKyAgICBybWRpciAtLWlnbm9yZS1mYWlsLW9uLW5vbi1lbXB0eSAke0R9JHtsaWJleGVjZGlyfQorfQorCitQQUNLQUdFUyArPSAibnRwZGF0ZSBzbnRwICR7UE59LXRpY2thZGogJHtQTn0tdXRpbHMiCisjIE5PVEU6IHlvdSBkb24ndCBuZWVkIG50cGRhdGUsIHVzZSAibnRwZCAtcSAtZyAteCIKKworIyBudHAgb3JpZ2luYWxseSBpbmNsdWRlcyB0aWNrYWRqLiBJdCdzIHNwbGl0IG9mZiBmb3IgaW5jbHVzaW9uIGluIHNtYWxsIGZpcm13YXJlIGltYWdlcyBvbiBwbGF0Zm9ybXMKKyMgd2l0aCB3b25reSBjbG9ja3MgKGUuZy4gT3BlblNsdWcpCitSREVQRU5EU18ke1BOfSA9ICIke1BOfS10aWNrYWRqIgorIyBudHBkIHJlcXVpcmUgbGliZ2NjIGZvciBleGVjdXRpb24KK1JERVBFTkRTXyR7UE59ICs9ICJsaWJnY2MiCisjIEhhbmRsZSBtb3ZlIGZyb20gYmluIHRvIHV0aWxzIHBhY2thZ2UKK1JQUk9WSURFU18ke1BOfS11dGlscyA9ICIke1BOfS1iaW4iCitSUkVQTEFDRVNfJHtQTn0tdXRpbHMgPSAiJHtQTn0tYmluIgorUkNPTkZMSUNUU18ke1BOfS11dGlscyA9ICIke1BOfS1iaW4iCisKK1NZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0gbnRwZGF0ZSBzbnRwIgorU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gIm50cGQuc2VydmljZSIKK1NZU1RFTURfU0VSVklDRV9udHBkYXRlID0gIm50cGRhdGUuc2VydmljZSIKK1NZU1RFTURfU0VSVklDRV9zbnRwID0gInNudHAuc2VydmljZSIKKworUlBST1ZJREVTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUlJFUExBQ0VTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUkNPTkZMSUNUU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKKworUlBST1ZJREVTX250cGRhdGUgKz0gIm50cGRhdGUtc3lzdGVtZCIKK1JSRVBMQUNFU19udHBkYXRlICs9ICJudHBkYXRlLXN5c3RlbWQiCitSQ09ORkxJQ1RTX250cGRhdGUgKz0gIm50cGRhdGUtc3lzdGVtZCIKKworUlNVR0dFU1RTXyR7UE59ID0gImlhbmEtZXRjIgorCitGSUxFU18ke1BOfSA9ICIke3NiaW5kaXJ9L250cGQubnRwICR7c3lzY29uZmRpcn0vbnRwLmNvbmYgJHtzeXNjb25mZGlyfS9pbml0LmQvbnRwZCAke2xpYmRpcn0gXAorICAgICR7TlRQX1VTRVJfSE9NRX0gXAorICAgICR7c3lzdGVtZF91bml0ZGlyfS9udHAtdW5pdHMuZC82MC1udHBkLmxpc3QgJHtsaWJleGVjZGlyfVwKKyIKK0ZJTEVTXyR7UE59LXRpY2thZGogPSAiJHtzYmluZGlyfS90aWNrYWRqIgorRklMRVNfJHtQTn0tdXRpbHMgPSAiJHtzYmluZGlyfSAke2RhdGFkaXJ9L250cC9saWIiCitSREVQRU5EU18ke1BOfS11dGlscyArPSAicGVybCIKK0ZJTEVTX250cGRhdGUgPSAiJHtzYmluZGlyfS9udHBkYXRlIFwKKyAgICAke3N5c2NvbmZkaXJ9L25ldHdvcmsvaWYtdXAuZC9udHBkYXRlLXN5bmMgXAorICAgICR7YmluZGlyfS9udHBkYXRlLXN5bmMgXAorICAgICR7c3lzY29uZmRpcn0vZGVmYXVsdC9udHBkYXRlIFwKKyAgICAke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL250cGRhdGUuc2VydmljZSBcCisiCitGSUxFU19zbnRwID0gIiR7c2JpbmRpcn0vc250cCBcCisgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vZGVmYXVsdC9zbnRwIFwKKyAgICAgICAgICAgICAgJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9zbnRwLnNlcnZpY2UgXAorICAgICAgICAgICAgICIKKworQ09ORkZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0vbnRwLmNvbmYiCitDT05GRklMRVNfbnRwZGF0ZSA9ICIke3N5c2NvbmZkaXJ9L2RlZmF1bHQvbnRwZGF0ZSIKKworSU5JVFNDUklQVF9OQU1FID0gIm50cGQiCisjIE5vIGRlcGVuZGVuY2llcywgc28ganVzdCBnbyBpbiBhdCB0aGUgc3RhbmRhcmQgbGV2ZWwgKDIwKQorSU5JVFNDUklQVF9QQVJBTVMgPSAiZGVmYXVsdHMiCisKK3BrZ19wb3N0aW5zdF9udHBkYXRlKCkgeworICAgIGlmICEgZ3JlcCAtcSAtcyBudHBkYXRlICREL3Zhci9zcG9vbC9jcm9uL3Jvb3Q7IHRoZW4KKyAgICAgICAgZWNobyAiYWRkaW5nIGNyb250YWIiCisgICAgICAgIHRlc3QgLWQgJEQvdmFyL3Nwb29sL2Nyb24gfHwgbWtkaXIgLXAgJEQvdmFyL3Nwb29sL2Nyb24KKyAgICAgICAgZWNobyAiMzAgKiAqICogKiAgICAke2JpbmRpcn0vbnRwZGF0ZS1zeW5jIHNpbGVudCIgPj4gJEQvdmFyL3Nwb29sL2Nyb24vcm9vdAorICAgIGZpCit9CisKK2luaGVyaXQgdXBkYXRlLWFsdGVybmF0aXZlcworCitBTFRFUk5BVElWRV9QUklPUklUWSA9ICIxMDAiCisKK0FMVEVSTkFUSVZFXyR7UE59ID0gIm50cGQiCitBTFRFUk5BVElWRV9MSU5LX05BTUVbbnRwZF0gPSAiJHtzYmluZGlyfS9udHBkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW4taXNucy9vcGVuLWlzbnNfMC45Ny5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9vcGVuLWlzbnMvb3Blbi1pc25zXzAuOTcuYmIKaW5kZXggY2MyOTU5ZS4uYWJmYTc1MTAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9vcGVuLWlzbnMvb3Blbi1pc25zXzAuOTcuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW4taXNucy9vcGVuLWlzbnNfMC45Ny5iYgpAQCAtMTEsNyArMTEsNyBAQAogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MzIxYmY0MWYyODBjZjgwNTA4NmRkNWE3MjBiMzc3ODUiCiBTRUNUSU9OID0gIm5ldCIKIAotREVQRU5EUyA9ICJvcGVuc3NsIHN5c3RlbWQiCitERVBFTkRTID0gIm9wZW5zc2wiCiAKIFNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuLWlzY3NpL29wZW4taXNucyBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLXV0aWwuaC1lbmRpYW4uaC1pcy1hdmFpbGFibGUtb24tbXVzbC1vbi1saW51eC5wYXRjaCBcCkBAIC0yMSw5ICsyMSw3IEBACiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKLWluaGVyaXQgc3lzdGVtZCBhdXRvdG9vbHMtYnJva2Vuc2VwIGRpc3Ryb19mZWF0dXJlc19jaGVjawotIyBkZXBlbmRzIG9uIHN5c3RlbWQKLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJzeXN0ZW1kIgoraW5oZXJpdCBzeXN0ZW1kIGF1dG90b29scy1icm9rZW5zZXAgdXBkYXRlLXJjLmQKIAogRVhUUkFfT0VDT05GID0gIiAtLXByZWZpeD0ke3ByZWZpeH0gLS1lbmFibGUtc2hhcmVkIgogRVhUUkFfT0VNQUtFICs9ICJTWVNURU1ERElSPSR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtIgpAQCAtMzEsNiArMjksMTIgQEAKIGRvX2luc3RhbGxfYXBwZW5kICgpIHsKICAgICBvZV9ydW5tYWtlIElOQ0RJUj0ke0R9JHtpbmNsdWRlZGlyfS9saWJpc25zLyBpbnN0YWxsX2hkcnMKICAgICBvZV9ydW5tYWtlIExJQkRJUj0ke0R9JHtsaWJkaXJ9IGluc3RhbGxfbGliCisKKyAgICBpbnN0YWxsIC1EIC1tIDc1NSAke1N9L2V0Yy9vcGVuaXNucy5pbml0ICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9vcGVuaXNucworICAgIHNlZCAtaSAnc3xkYWVtb24gaXNuc2R8c3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAtLXF1aWV0IC0tb2tub2RvIC0tZXhlYyAke3NiaW5kaXJ9L2lzbnNkIC0tfCcgXAorICAgICAgICAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvb3BlbmlzbnMKIH0KIAogRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfSAke3N5c3RlbWRfdW5pdGRpcn0iCisKK0lOSVRTQ1JJUFRfTkFNRSA9ICJvcGVuaXNucyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9vcGVuaXBtaS9maWxlcy9maXgtc3ltbGluay1pbnN0YWxsLWVycm9yLWluLWNtZGxhbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3BlbmlwbWkvZmlsZXMvZml4LXN5bWxpbmstaW5zdGFsbC1lcnJvci1pbi1jbWRsYW5nLnBhdGNoCmluZGV4IDlhNTY4YjIuLjQ0OTE0MmYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9vcGVuaXBtaS9maWxlcy9maXgtc3ltbGluay1pbnN0YWxsLWVycm9yLWluLWNtZGxhbmcucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW5pcG1pL2ZpbGVzL2ZpeC1zeW1saW5rLWluc3RhbGwtZXJyb3ItaW4tY21kbGFuZy5wYXRjaApAQCAtOCwxMSArOCwxMSBAQAogICAgIAogICAgIFNpZ25lZC1vZmYtYnk6IEF3cyBJc21haWwgPGF3cy5pc21haWxAd2luZHJpdmVyLmNvbT4KIAotZGlmZiAtLWdpdCBhL2NtZGxhbmcvTWFrZWZpbGUuYW0gYi9jbWRsYW5nL01ha2VmaWxlLmFtCi1pbmRleCA5MmQ2ZTgzLi5mNjAzOWY5IDEwMDY0NAotLS0tIGEvY21kbGFuZy9NYWtlZmlsZS5hbQotKysrIGIvY21kbGFuZy9NYWtlZmlsZS5hbQotQEAgLTM2LDYgKzM2LDcgQEAgQ0xFQU5GSUxFUyA9IGxpYk9wZW5JUE1JY21kbGFuZy5tYXAKK0luZGV4OiBPcGVuSVBNSS0yLjAuMjQvY21kbGFuZy9NYWtlZmlsZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIE9wZW5JUE1JLTIuMC4yNC5vcmlnL2NtZGxhbmcvTWFrZWZpbGUuYW0KKysrKyBPcGVuSVBNSS0yLjAuMjQvY21kbGFuZy9NYWtlZmlsZS5hbQorQEAgLTM1LDYgKzM1LDcgQEAgb3BlbmlwbWlzaF9MREFERCA9ICBsaWJPcGVuSVBNSWNtZGxhbmcubAogICMgY29tcGF0YWJpbGl0eS4KICBpbnN0YWxsLWRhdGEtbG9jYWw6CiAgCXJtIC1mICQoREVTVERJUikkKGJpbmRpcikvaXBtaXNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3BlbmlwbWkvZmlsZXMvaW5jbHVkZV9zeXNfdHlwZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3BlbmlwbWkvZmlsZXMvaW5jbHVkZV9zeXNfdHlwZXMucGF0Y2gKaW5kZXggNThlYzVkOC4uMDgyNTExYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW5pcG1pL2ZpbGVzL2luY2x1ZGVfc3lzX3R5cGVzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9vcGVuaXBtaS9maWxlcy9pbmNsdWRlX3N5c190eXBlcy5wYXRjaApAQCAtMywxMCArMywxMCBAQAogdWkuYzozNDA6NTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICd1X2ludDMyX3QnOyBkaWQgeW91IG1lYW4gJ3VpbnQzMl90Jz8KICAgICAgdV9pbnQzMl90ICAgICBhZGRyOwogICAgICBefn5+fn5+fn4KLUluZGV4OiBPcGVuSVBNSS0yLjAuMjIvdWkvdWkuYworSW5kZXg6IE9wZW5JUE1JLTIuMC4yNC91aS91aS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gT3BlbklQTUktMi4wLjIyLm9yaWcvdWkvdWkuYwotKysrIE9wZW5JUE1JLTIuMC4yMi91aS91aS5jCistLS0gT3BlbklQTUktMi4wLjI0Lm9yaWcvdWkvdWkuYworKysrIE9wZW5JUE1JLTIuMC4yNC91aS91aS5jCiBAQCAtNDIsNiArNDIsNyBAQAogICNpbmNsdWRlIDxmY250bC5oPgogICNpbmNsdWRlIDx0aW1lLmg+CkBAIC0xNCw0ICsxNCw0IEBACiArI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogICNpbmNsdWRlIDxjdHlwZS5oPgogIAotICNpbmNsdWRlIDxPcGVuSVBNSS9zZWxlY3Rvci5oPgorICNpbmNsdWRlIDxPcGVuSVBNSS9pcG1pX2Vyci5oPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW52cG4vb3BlbnZwbl8yLjQuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9vcGVudnBuL29wZW52cG5fMi40LjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwMDk3ZjMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW52cG4vb3BlbnZwbl8yLjQuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLVNVTU1BUlkgPSAiQSBmdWxsLWZlYXR1cmVkIFNTTCBWUE4gc29sdXRpb24gdmlhIHR1biBkZXZpY2UuIgotSE9NRVBBR0UgPSAiaHR0cDovL29wZW52cG4uc291cmNlZm9yZ2UubmV0IgotU0VDVElPTiA9ICJuZXQiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZTliNjQ0OTFlYzk4ZWI2YzY0OTNhYzVlNDExOGYxMDciCi1ERVBFTkRTID0gImx6byBvcGVuc3NsIGlwcm91dGUyICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJ2xpYnBhbScsICcnLCBkKX0iCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHN5c3RlbWQKLQotU1JDX1VSSSA9ICJodHRwOi8vc3d1cGRhdGUub3BlbnZwbi5vcmcvY29tbXVuaXR5L3JlbGVhc2VzLyR7QlB9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly9vcGVudnBuIFwKLSAgICAgICAgICAgZmlsZTovL29wZW52cG5ALnNlcnZpY2UgXAotICAgICAgICAgICBmaWxlOi8vb3BlbnZwbi12b2xhdGlsZS5jb25mIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZTE5MjlmODJhZmY0MGYzZDEwNWU1ZjcyYWFjZmY5YzEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiY2VlM2QzY2E0NjI5NjBhNTBhNjdjMGViZDE4NmUwMWI2ZDEzZGI3MDI3NTIwNTY2MzY5NTE1MmM5YWNhODU3OSIKLQotU1lTVEVNRF9TRVJWSUNFXyR7UE59ICs9ICJvcGVudnBuQGxvb3BiYWNrLXNlcnZlci5zZXJ2aWNlIG9wZW52cG5AbG9vcGJhY2stY2xpZW50LnNlcnZpY2UiCi1TWVNURU1EX0FVVE9fRU5BQkxFID0gImRpc2FibGUiCi0KLUNGTEFHUyArPSAiLWZuby1pbmxpbmUiCi0KLSMgSSB3YW50IG9wZW52cG4gdG8gYmUgYWJsZSB0byByZWFkIHBhc3N3b3JkIGZyb20gZmlsZSAoaHJ3KQotRVhUUkFfT0VDT05GICs9ICItLWVuYWJsZS1pcHJvdXRlMiIKLUVYVFJBX09FQ09ORiArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdwYW0nLCAnJywgJy0tZGlzYWJsZS1wbHVnaW4tYXV0aC1wYW0nLCBkKX0iCi0KLSMgRXhwbGljaXRseSBzcGVjaWZ5IElQUk9VVEUgdG8gYnlwYXNzIHRoZSBjb25maWd1cmUtdGltZSBjaGVjayBmb3IgL3NiaW4vaXAgb24gdGhlIGhvc3QuCi1FWFRSQV9PRUNPTkYgKz0gIklQUk9VVEU9JHtiYXNlX3NiaW5kaXJ9L2lwIgotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICBpbnN0YWxsIC1tIDc1NSAke1dPUktESVJ9L29wZW52cG4gJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZAotCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vb3BlbnZwbgotICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L29wZW52cG4vc2FtcGxlCi0gICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zYW1wbGUvc2FtcGxlLWNvbmZpZy1maWxlcy9sb29wYmFjay1zZXJ2ZXIgICR7RH0ke3N5c2NvbmZkaXJ9L29wZW52cG4vc2FtcGxlL2xvb3BiYWNrLXNlcnZlci5jb25mCi0gICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zYW1wbGUvc2FtcGxlLWNvbmZpZy1maWxlcy9sb29wYmFjay1jbGllbnQgICR7RH0ke3N5c2NvbmZkaXJ9L29wZW52cG4vc2FtcGxlL2xvb3BiYWNrLWNsaWVudC5jb25mCi0gICAgaW5zdGFsbCAtZG0gNzU1ICR7RH0ke3N5c2NvbmZkaXJ9L29wZW52cG4vc2FtcGxlL3NhbXBsZS1rZXlzCi0gICAgaW5zdGFsbCAtbSA2NDQgJHtTfS9zYW1wbGUvc2FtcGxlLWtleXMvKiAke0R9JHtzeXNjb25mZGlyfS9vcGVudnBuL3NhbXBsZS9zYW1wbGUta2V5cwotCi0gICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLCd0cnVlJywnZmFsc2UnLGQpfTsgdGhlbgotICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQotICAgICAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L29wZW52cG5ALnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vb3BlbnZwbkAuc2VydmljZSAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vb3BlbnZwbkBsb29wYmFjay1zZXJ2ZXIuc2VydmljZQotICAgICAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L29wZW52cG5ALnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL29wZW52cG5AbG9vcGJhY2stY2xpZW50LnNlcnZpY2UKLQotICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtsb2NhbHN0YXRlZGlyfQotICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIKLSAgICAgICAgaW5zdGFsbCAtZCAtbSA3MTAgJHtEfS8ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9vcGVudnBuCi0KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L29wZW52cG4tdm9sYXRpbGUuY29uZiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL29wZW52cG4uY29uZgotICAgICAgICBzZWQgLWkgLWUgJ3MjQExPQ0FMU1RBVEVESVJAIyR7bG9jYWxzdGF0ZWRpcn0jZycgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9vcGVudnBuLmNvbmYKLSAgICBmaQotfQotCi1QQUNLQUdFUyA9KyAiICR7UE59LXNhbXBsZSAiCi0KLVJSRUNPTU1FTkRTXyR7UE59ID0gImtlcm5lbC1tb2R1bGUtdHVuIgotCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9vcGVudnBuL3BsdWdpbnMvLmRlYnVnIgotRklMRVNfJHtQTn0gKz0gIiR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vb3BlbnZwbkAuc2VydmljZSBcCi0gICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS90bXBmaWxlcy5kIFwKLSAgICAgICAgICAgICAgICIKLUZJTEVTXyR7UE59LXNhbXBsZSArPSAiJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9vcGVudnBuQGxvb3BiYWNrLXNlcnZlci5zZXJ2aWNlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9vcGVudnBuQGxvb3BiYWNrLWNsaWVudC5zZXJ2aWNlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9vcGVudnBuL3NhbXBsZS8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3BlbnZwbi9vcGVudnBuXzIuNC40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW52cG4vb3BlbnZwbl8yLjQuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2FkOTk4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW52cG4vb3BlbnZwbl8yLjQuNC5iYgpAQCAtMCwwICsxLDY3IEBACitTVU1NQVJZID0gIkEgZnVsbC1mZWF0dXJlZCBTU0wgVlBOIHNvbHV0aW9uIHZpYSB0dW4gZGV2aWNlLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9vcGVudnBuLnNvdXJjZWZvcmdlLm5ldCIKK1NFQ1RJT04gPSAibmV0IgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWU5YjY0NDkxZWM5OGViNmM2NDkzYWM1ZTQxMThmMTA3IgorREVQRU5EUyA9ICJsem8gb3BlbnNzbCBpcHJvdXRlMiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3BhbScsICdsaWJwYW0nLCAnJywgZCl9IgorCitpbmhlcml0IGF1dG90b29scyBzeXN0ZW1kCisKK1NSQ19VUkkgPSAiaHR0cDovL3N3dXBkYXRlLm9wZW52cG4ub3JnL2NvbW11bml0eS9yZWxlYXNlcy8ke0JQfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vb3BlbnZwbiBcCisgICAgICAgICAgIGZpbGU6Ly9vcGVudnBuQC5zZXJ2aWNlIFwKKyAgICAgICAgICAgZmlsZTovL29wZW52cG4tdm9sYXRpbGUuY29uZiIKKworU1JDX1VSSVttZDVzdW1dID0gIjcwNWE3OWQwMDU1NThkOTRmYTFlMmI3NGU0NDEzZTk3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFhZTg4M2Q5NTIyYzlmYTZkMTg5ZTVlNGFhYTA1OGE5M2VkZDNkMGI4OTdlM2MyNjY0MTA3YzQ3ODUwOTlmYzMiCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSArPSAib3BlbnZwbkBsb29wYmFjay1zZXJ2ZXIuc2VydmljZSBvcGVudnBuQGxvb3BiYWNrLWNsaWVudC5zZXJ2aWNlIgorU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgorCitDRkxBR1MgKz0gIi1mbm8taW5saW5lIgorCisjIEkgd2FudCBvcGVudnBuIHRvIGJlIGFibGUgdG8gcmVhZCBwYXNzd29yZCBmcm9tIGZpbGUgKGhydykKK0VYVFJBX09FQ09ORiArPSAiLS1lbmFibGUtaXByb3V0ZTIiCitFWFRSQV9PRUNPTkYgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJycsICctLWRpc2FibGUtcGx1Z2luLWF1dGgtcGFtJywgZCl9IgorCisjIEV4cGxpY2l0bHkgc3BlY2lmeSBJUFJPVVRFIHRvIGJ5cGFzcyB0aGUgY29uZmlndXJlLXRpbWUgY2hlY2sgZm9yIC9zYmluL2lwIG9uIHRoZSBob3N0LgorRVhUUkFfT0VDT05GICs9ICJJUFJPVVRFPSR7YmFzZV9zYmluZGlyfS9pcCIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgaW5zdGFsbCAtbSA3NTUgJHtXT1JLRElSfS9vcGVudnBuICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQKKworICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L29wZW52cG4KKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9vcGVudnBuL3NhbXBsZQorICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc2FtcGxlL3NhbXBsZS1jb25maWctZmlsZXMvbG9vcGJhY2stc2VydmVyICAke0R9JHtzeXNjb25mZGlyfS9vcGVudnBuL3NhbXBsZS9sb29wYmFjay1zZXJ2ZXIuY29uZgorICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc2FtcGxlL3NhbXBsZS1jb25maWctZmlsZXMvbG9vcGJhY2stY2xpZW50ICAke0R9JHtzeXNjb25mZGlyfS9vcGVudnBuL3NhbXBsZS9sb29wYmFjay1jbGllbnQuY29uZgorICAgIGluc3RhbGwgLWRtIDc1NSAke0R9JHtzeXNjb25mZGlyfS9vcGVudnBuL3NhbXBsZS9zYW1wbGUta2V5cworICAgIGluc3RhbGwgLW0gNjQ0ICR7U30vc2FtcGxlL3NhbXBsZS1rZXlzLyogJHtEfSR7c3lzY29uZmRpcn0vb3BlbnZwbi9zYW1wbGUvc2FtcGxlLWtleXMKKworICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCdzeXN0ZW1kJywndHJ1ZScsJ2ZhbHNlJyxkKX07IHRoZW4KKyAgICAgICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICAgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9vcGVudnBuQC5zZXJ2aWNlICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgICAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L29wZW52cG5ALnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL29wZW52cG5AbG9vcGJhY2stc2VydmVyLnNlcnZpY2UKKyAgICAgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9vcGVudnBuQC5zZXJ2aWNlICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9vcGVudnBuQGxvb3BiYWNrLWNsaWVudC5zZXJ2aWNlCisKKyAgICAgICAgaW5zdGFsbCAtZCAke0R9LyR7bG9jYWxzdGF0ZWRpcn0KKyAgICAgICAgaW5zdGFsbCAtZCAke0R9LyR7bG9jYWxzdGF0ZWRpcn0vbGliCisgICAgICAgIGluc3RhbGwgLWQgLW0gNzEwICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvb3BlbnZwbgorCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAorICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9vcGVudnBuLXZvbGF0aWxlLmNvbmYgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9vcGVudnBuLmNvbmYKKyAgICAgICAgc2VkIC1pIC1lICdzI0BMT0NBTFNUQVRFRElSQCMke2xvY2Fsc3RhdGVkaXJ9I2cnICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvb3BlbnZwbi5jb25mCisgICAgZmkKK30KKworUEFDS0FHRVMgPSsgIiAke1BOfS1zYW1wbGUgIgorCitSUkVDT01NRU5EU18ke1BOfSA9ICJrZXJuZWwtbW9kdWxlLXR1biIKKworRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vb3BlbnZwbi9wbHVnaW5zLy5kZWJ1ZyIKK0ZJTEVTXyR7UE59ICs9ICIke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL29wZW52cG5ALnNlcnZpY2UgXAorICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZCBcCisgICAgICAgICAgICAgICAiCitGSUxFU18ke1BOfS1zYW1wbGUgKz0gIiR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vb3BlbnZwbkBsb29wYmFjay1zZXJ2ZXIuc2VydmljZSBcCisgICAgICAgICAgICAgICAgICAgICAgICR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vb3BlbnZwbkBsb29wYmFjay1jbGllbnQuc2VydmljZSBcCisgICAgICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vb3BlbnZwbi9zYW1wbGUvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3NzbXRwL3NzbXRwL3NzbXRwLWJ1ZzU4NDE2Mi1maXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvc3NtdHAvc3NtdHAvc3NtdHAtYnVnNTg0MTYyLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDg3YmM3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3NzbXRwL3NzbXRwL3NzbXRwLWJ1ZzU4NDE2Mi1maXgucGF0Y2gKQEAgLTAsMCArMSwxMjYgQEAKK0J1Zy1EZWJpYW46IGh0dHA6Ly9idWdzLmRlYmlhbi5vcmcvNTg0MTYyCitSZXBvcnRlZC1CeTogQ2hyaXN0b3BoIEJpZWRsIDxkZWJpYW4uYXhobkBtYW5jaG1hbC5pbi11bG0uZGU+CitGb3J3YXJkZWQ6IG5vdC1uZWVkZWQKK1Jldmlld2VkLUJ5OiBBbmliYWwgTW9uc2FsdmUgU2FsYXphciA8YW5pYmFsQGRlYmlhbi5vcmc+CitMYXN0LVVwZGF0ZTogMjAxNC0wOC0xNQorCitGcm9tOiAiRGFuaWVsIFJpY2hhcmQgRy4iIDxza3Vua0BpU0tVTksuT1JHPgorU3ViamVjdDogUmU6IHNzbXRwOiBQYXJ0aWFsIGxvc3Mgb2YgbWVzc2FnZSBib2R5LCBzZW5kaW5nIG1lc3NhZ2UgdG8gd3JvbmcgcmVjaXBpY2llbnRzCitEYXRlOiBUaHUsIDE5IEp1biAyMDE0IDE0OjQ0OjMwIC0wNDAwCisKK0F0dGFjaGVkIGlzIGEgcGF0Y2ggYWdhaW5zdCB0aGUgb3JpZ2luYWwgMi42NCBzb3VyY2UgdGhhdCBzaG91bGQgYWRkcmVzcwordGhpcyBidWcsIGFuZCBob3BlZnVsbHkgbm90IGJyZWFrIGFueXRoaW5nLiBBbiBvdmVydmlldyBvZiBteSBjaGFuZ2VzOgorCisqIEFkZGVkIGNvZGUgdG8gc3RhbmRhcmlzZSgpIHRvIGRyb3AgdGhlIHRyYWlsaW5nICdccicgaWYgdGhlIGxpbmUKKyAgb3JpZ2luYWxseSBlbmRlZCB3aXRoICJcclxuIi4KKworKiBBZGRlZCBhIGNoZWNrIHRvIGhlYWRlcl9wYXJzZSgpIHRoYXQgZWZmZWN0aXZlbHkgY29udmVydHMgYW4gIlxyXG4iIGluCisgIHRoZSBpbnB1dCBpbnRvICdcbicuCisKKyogQWRkZWQgYSBjb25kaXRpb25hbCBzbyB0aGF0IGhlYWRlcl9wYXJzZSgpIGRvZXNuJ3QgcGFzcyB0aGUgZW1wdHkKKyAgc3RyaW5nIHRvIGhlYWRlcl9zYXZlKCktLS1hIGJlaGF2aW9yIEkgb2JzZXJ2ZWQgaW4gdGVzdGluZywgYXQgdGhlIGVuZAorICBvZiBhIGhlYWRlciBibG9jayB3aXRoICJcclxuIiBsaW5lIGVuZGluZ3MuCisKKyogU2ltcGxpZmllZCB0aGUgbGFzdCBpZihpbl9oZWFkZXIpIGNvbmRpdGlvbmFsIGluIGhlYWRlcl9wYXJzZSgpLAorICBiZWNhdXNlIGl0IGVycm9uZW91c2x5IGFzc3VtZXMgdGhhdCBpZiBpbl9oZWFkZXIgPT0gVHJ1ZSwgdGhlbiBjIGNvdWxkCisgIGhhdmUgc29tZSB2YWx1ZSBvdGhlciB0aGFuIEVPRi4gKFNlZSB0aGUgY29uZGl0aW9uIG9uIHRoZSBwcmV2aW91cworICAid2hpbGUiIGxvb3AsIGFuZCB0aGUgbGFjayBvZiBhbnkgb3RoZXIgd2F5IHRvIGV4aXQgc2FpZCBsb29wLikKKworICBoZWFkZXJfcGFyc2UoKSB3aWxsIG5vdyBwcm9wZXJseSBncmFiIGEgaGVhZGVyIGlmIGZlZCBhIG1lc3NhZ2UKKyAgd2l0aG91dCBhIGJvZHkgKGkuZS4gbm8gIlxuXG4iIGVuZGluZyB0aGUgaGVhZGVyIGJsb2NrKSwgYWx0aG91Z2ggdGhpcworICBjb2RlIHdpbGwgc3RpbGwgZHJvcCBhIGhlYWRlciBpZiB0aGVyZSBpcyBubyBuZXdsaW5lIGF0IHRoZSBlbmQuCisKK0NocmlzdG9waCwgdGhhbmsgeW91IGZvciB5b3VyIGV4Y2VsbGVudCBhbmFseXNpcywgYW5kIHRoZSB0ZXN0IGNhc2VzLiBJCittYWRlIHVzZSBvZiB0aGVtLCBhbmQgd2l0aCBteSBjaGFuZ2VzIHNTTVRQIGFwcGVhcnMgdG8gZG8gdGhlIHJpZ2h0Cit0aGluZy4KKworRGViaWFuIHBhdGNoIGZyb206IGh0dHBzOi8vc291cmNlcy5kZWJpYW4ubmV0L3BhdGNoZXMvc3NtdHAvMi42NC04LworCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtkZWJpYW5dCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlIE1jQ3VyZHkgPGFybWNjdXJkeUBnbWFpbC5jb20+CisKK0luZGV4OiBzc210cC0yLjY0L3NzbXRwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBzc210cC0yLjY0Lm9yaWcvc3NtdHAuYworKysrIHNzbXRwLTIuNjQvc3NtdHAuYworQEAgLTM3NSw2ICszNzUsMTIgQEAgYm9vbF90IHN0YW5kYXJkaXNlKGNoYXIgKnN0ciwgYm9vbF90ICpsaQorIAlpZigocCA9IHN0cmNocihzdHIsICdcbicpKSkgeworIAkJKnAgPSAoY2hhcilOVUxMOworIAkJKmxpbmVzdGFydCA9IFRydWU7CisrCisrCQkvKiBJZiB0aGUgbGluZSBlbmRlZCBpbiAiXHJcbiIsIHRoZW4gZHJvcCB0aGUgJ1xyJyB0b28gKi8KKysJCXNsID0gc3RybGVuKHN0cik7CisrCQlpZihzbCA+PSAxICYmIHN0cltzbCAtIDFdID09ICdccicpIHsKKysJCQlzdHJbc2wgLSAxXSA9IChjaGFyKU5VTEw7CisrCQl9CisgCX0KKyAJcmV0dXJuKGxlYWRpbmdkb3QpOworIH0KK0BAIC03NjgsNiArNzc0LDE0IEBAIHZvaWQgaGVhZGVyX3BhcnNlKEZJTEUgKnN0cmVhbSkKKyAJCX0KKyAJCWxlbisrOworIAorKwkJaWYobCA9PSAnXHInICYmIGMgPT0gJ1xuJykgeworKwkJCS8qIFByb3Blcmx5IGhhbmRsZSBpbnB1dCB0aGF0IGFscmVhZHkgaGFzICJcclxuIgorKwkJCSAgIGxpbmUgZW5kaW5nczsgc2VlIGh0dHBzOi8vYnVncy5kZWJpYW4ub3JnLzU4NDE2MiAqLworKwkJCWwgPSAobGVuID49IDIgPyAqKHEgLSAyKSA6ICdcbicpOworKwkJCXEtLTsKKysJCQlsZW4tLTsKKysJCX0KKysKKyAJCWlmKGwgPT0gJ1xuJykgeworIAkJCXN3aXRjaChjKSB7CisgCQkJCWNhc2UgJyAnOgorQEAgLTc5MCw3ICs4MDQsOSBAQCB2b2lkIGhlYWRlcl9wYXJzZShGSUxFICpzdHJlYW0pCisgCQkJCQkJaWYoKHEgPSBzdHJyY2hyKHAsICdcbicpKSkgeworIAkJCQkJCQkqcSA9IChjaGFyKU5VTEw7CisgCQkJCQkJfQorLQkJCQkJCWhlYWRlcl9zYXZlKHApOworKwkJCQkJCWlmKGxlbiA+IDApIHsKKysJCQkJCQkJaGVhZGVyX3NhdmUocCk7CisrCQkJCQkJfQorIAorIAkJCQkJCXEgPSBwOworIAkJCQkJCWxlbiA9IDA7CitAQCAtODAwLDM1ICs4MTYsMTIgQEAgdm9pZCBoZWFkZXJfcGFyc2UoRklMRSAqc3RyZWFtKQorIAorIAkJbCA9IGM7CisgCX0KKy0JaWYoaW5faGVhZGVyKSB7CistCQlpZihsID09ICdcbicpIHsKKy0JCQlzd2l0Y2goYykgeworLQkJCQljYXNlICcgJzoKKy0JCQkJY2FzZSAnXHQnOgorLQkJCQkJCS8qIE11c3QgaW5zZXJ0ICdccicgYmVmb3JlICdcbidzIGVtYmVkZGVkIGluIGhlYWRlcgorLQkJCQkJCSAgIGZpZWxkcyBvdGhlcndpc2UgcW1haWwgd29uJ3QgYWNjZXB0IG91ciBtYWlsCistCQkJCQkJICAgYmVjYXVzZSBhIGJhcmUgJ1xuJyB2aW9sYXRlcyBzb21lIFJGQyAqLworLQkJCQkJCQorLQkJCQkJCSoocSAtIDEpID0gJ1xyJzsJLyogUmVwbGFjZSBwcmV2aW91cyBcbiB3aXRoIFxyICovCistCQkJCQkJKnErKyA9ICdcbic7CQkvKiBJbnNlcnQgXG4gKi8KKy0JCQkJCQlsZW4rKzsKKy0JCQkJCQkKKy0JCQkJCQlicmVhazsKKy0KKy0JCQkJY2FzZSAnXG4nOgorLQkJCQkJCWluX2hlYWRlciA9IEZhbHNlOworLQorLQkJCQlkZWZhdWx0OgorLQkJCQkJCSpxID0gKGNoYXIpTlVMTDsKKy0JCQkJCQlpZigocSA9IHN0cnJjaHIocCwgJ1xuJykpKSB7CistCQkJCQkJCSpxID0gKGNoYXIpTlVMTDsKKy0JCQkJCQl9CistCQkJCQkJaGVhZGVyX3NhdmUocCk7CistCistCQkJCQkJcSA9IHA7CistCQkJCQkJbGVuID0gMDsKKy0JCQl9CisrCWlmKGluX2hlYWRlciAmJiBsID09ICdcbicpIHsKKysJCS8qIEdvdCBFT0Ygd2hpbGUgcmVhZGluZyB0aGUgaGVhZGVyICovCisrCQlpZigocSA9IHN0cnJjaHIocCwgJ1xuJykpKSB7CisrCQkJKnEgPSAoY2hhcilOVUxMOworIAkJfQorKwkJaGVhZGVyX3NhdmUocCk7CisgCX0KKyAJKHZvaWQpZnJlZShwKTsKKyB9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvc3NtdHAvc3NtdHBfMi42NC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zc210cC9zc210cF8yLjY0LmJiCmluZGV4IDlkNDg2NGQuLjA3ZTNmZmUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zc210cC9zc210cF8yLjY0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zc210cC9zc210cF8yLjY0LmJiCkBAIC0xLDI1ICsxLDI5IEBACiBTVU1NQVJZID0gImV4dHJlbWVseSBzaW1wbGUgTVRBIHRvIGdldCBtYWlsIG9mZiB0aGUgc3lzdGVtIHRvIGEgbWFpbCBodWIiCiBIT01FUEFHRSA9ICJodHRwOi8vcGFja2FnZXMucWEuZGViaWFuLm9yZy9zL3NzbXRwLmh0bWwiCi0KIExJQ0VOU0UgPSAiR1BMdjIiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wYzU2ZGIwMTQzZjRmODBjMzY5ZWUzYWY3NDI1YWY2ZSIKIAotU1JDX1VSSSA9ICJcCi0gICAgICAgICAgICR7REVCSUFOX01JUlJPUn0vbWFpbi9zLyR7QlBOfS8ke0JQTn1fJHtQVn0ub3JpZy50YXIuYnoyIFwKK1NSQ19VUkkgPSAiJHtERUJJQU5fTUlSUk9SfS9tYWluL3MvJHtCUE59LyR7QlBOfV8ke1BWfS5vcmlnLnRhci5iejIgXAorICAgICAgICAgICBmaWxlOi8vc3NtdHAtYnVnNTg0MTYyLWZpeC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly9idWlsZC1vdXNpZGVfc3JjZGlyLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovL3VzZS1ERVNURElSLnBhdGNoIFwKLSAgICAgICAgICAiCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI2NWI0ZTBkZjQ5MzRhNmNkMDhjNTA2Y2FiY2JlNTg0ZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyMmMzN2RjOTBjODcxZThlMDUyYjJjYWIwYWQyMTlkMDEwZmE5Mzg2MDhjZDY2YjIxYzhmM2M3NTkwNDZmYTM2IgorCitpbmhlcml0IGF1dG90b29scworCitQQUNLQUdFQ09ORklHID89ICJzc2wgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnaXB2NicsIGQpfSIKKworUEFDS0FHRUNPTkZJR1tzc2xdID0gIi0tZW5hYmxlLXNzbCwtLWRpc2FibGUtc3NsLG9wZW5zc2wiCitQQUNLQUdFQ09ORklHW2lwdjZdID0gIi0tZW5hYmxlLWluZXQ2LC0tZGlzYWJsZS1pbmV0NiIKIAogRVhUUkFfT0VDT05GICs9ICItLW1hbmRpcj0ke21hbmRpcn0iCiAKIEVYVFJBX09FTUFLRSA9ICJHRU5fQ09ORklHPScvYmluL3RydWUnIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNjViNGUwZGY0OTM0YTZjZDA4YzUwNmNhYmNiZTU4NGYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjJjMzdkYzkwYzg3MWU4ZTA1MmIyY2FiMGFkMjE5ZDAxMGZhOTM4NjA4Y2Q2NmIyMWM4ZjNjNzU5MDQ2ZmEzNiIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCi0KLURFUEVORFMgKz0gIm9wZW5zc2wgaW5ldHV0aWxzIgorTERGTEFHUyArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnc3NsJywgJy1sc3NsIC1sY3J5cHRvJywgJycsIGQpfSIKIAogZG9faW5zdGFsbF9hcHBlbmQgKCkgewogICAgIGluc3RhbGwgLWQgJHtEfSR7bWFuZGlyfS8KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zdHJvbmdzd2FuL2ZpbGVzLzAwMDEtbWVtb3J5LmgtSW5jbHVkZS1zdGRpbnQuaC1mb3ItdWludHB0cl90LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vZmlsZXMvMDAwMS1tZW1vcnkuaC1JbmNsdWRlLXN0ZGludC5oLWZvci11aW50cHRyX3QucGF0Y2gKaW5kZXggN2ViYzM5OC4uMDAxNzhjOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vZmlsZXMvMDAwMS1tZW1vcnkuaC1JbmNsdWRlLXN0ZGludC5oLWZvci11aW50cHRyX3QucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vZmlsZXMvMDAwMS1tZW1vcnkuaC1JbmNsdWRlLXN0ZGludC5oLWZvci11aW50cHRyX3QucGF0Y2gKQEAgLTEsMTUgKzEsMTYgQEAKLUZyb20gMmEzYWIwNGJiZGM0NjI0NzkyODg2YWE1MTU3OWVhZGI0MjdlZjk5ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gMzNhNTNkYzEzZmQ5MjQ5NDlhNTgyMTA5YjQ1ZmVkZDhkMGJlZDU5YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBUdWUsIDI3IEp1biAyMDE3IDA3OjQyOjExIC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIG1lbW9yeS5oOiBJbmNsdWRlIHN0ZGludC5oIGZvciB1aW50cHRyX3QKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgc3JjL2xpYnN0cm9uZ3N3YW4vdXRpbHMvdXRpbHMvbWVtb3J5LmggfCAyICsrCiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQogCiBkaWZmIC0tZ2l0IGEvc3JjL2xpYnN0cm9uZ3N3YW4vdXRpbHMvdXRpbHMvbWVtb3J5LmggYi9zcmMvbGlic3Ryb25nc3dhbi91dGlscy91dGlscy9tZW1vcnkuaAotaW5kZXggYjk3OGU3Yy4uNTVhYWFmNSAxMDA2NDQKK2luZGV4IGU4NDAzMzAuLjhhMzU2YTggMTAwNjQ0CiAtLS0gYS9zcmMvbGlic3Ryb25nc3dhbi91dGlscy91dGlscy9tZW1vcnkuaAogKysrIGIvc3JjL2xpYnN0cm9uZ3N3YW4vdXRpbHMvdXRpbHMvbWVtb3J5LmgKIEBAIC0yMiw2ICsyMiw4IEBACkBAIC0yMSw2ICsyMiwzIEBACiAgLyoqCiAgICogSGVscGVyIGZ1bmN0aW9uIHRoYXQgY29tcGFyZXMgdHdvIGJpbmFyeSBibG9icyBmb3IgZXF1YWxpdHkKICAgKi8KLS0tIAotMi4xMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zdHJvbmdzd2FuL2ZpbGVzL2ZpeC1mdW50aW9uLXBhcmFtZXRlci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zdHJvbmdzd2FuL2ZpbGVzL2ZpeC1mdW50aW9uLXBhcmFtZXRlci5wYXRjaAppbmRleCBkYTk2OTgzLi5iZTY2MGQxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvc3Ryb25nc3dhbi9maWxlcy9maXgtZnVudGlvbi1wYXJhbWV0ZXIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vZmlsZXMvZml4LWZ1bnRpb24tcGFyYW1ldGVyLnBhdGNoCkBAIC0xLDQgKzEsNyBAQAotZml4IHRoZSBmdW5jdGlvbiBwYXJhbWV0ZXIKK0Zyb20gOWY5NzQ3OTM3M2YzZmNlZWRjNDcxMDc0YjgxNDg2ZDc3YTQ5NjE4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ICJSb3kuTGkiIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVHVlLCA0IE1hciAyMDE0IDE0OjM4OjQyICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIGZpeCB0aGUgZnVuY3Rpb24gcGFyYW1ldGVyCiAKIFVwc3RyZWFtLVN0YXR1czogcGVuZGluZwogCkBAIC0zMSw5ICszNCwxMCBAQAogICAgICMxMSAweDQ4MzZjMzc4IGluIHByb2Nlc3NfbWVzc2FnZSAodGhpcz0weDUxNDAwNWYwLCBtZXNzYWdlPTB4NTE1MDA3NzgpCiAgICAgICAgICBhdCBzYS9pa2Vfc2EuYzoxMzE3CiAgICAgIzEyIDB4NDgzNjIyNzAgaW4gZXhlY3V0ZSAodGhpcz0weDUxNTAwOGQwKQotICAgICAgICAgYXQgcHJvY2Vzc2luZy9qb2JzL3Byb2Nlc3NfbWVzc2FnZV9qb2IuYzo3NCAKKyAgICAgICAgIGF0IHByb2Nlc3Npbmcvam9icy9wcm9jZXNzX21lc3NhZ2Vfam9iLmM6NzQKIAogU2lnbmVkLW9mZi1ieTogUm95LkxpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorCiAtLS0KICBzcmMvbGlic3Ryb25nc3dhbi9wbHVnaW5zL29wZW5zc2wvb3BlbnNzbF9kaWZmaWVfaGVsbG1hbi5jIHwgOCArKysrKysrLQogIHNyYy9saWJzdHJvbmdzd2FuL3BsdWdpbnMvb3BlbnNzbC9vcGVuc3NsX2RpZmZpZV9oZWxsbWFuLmggfCA0ICsrKy0KQEAgLTQxLDIwICs0NSwyMCBAQAogIDMgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL3NyYy9saWJzdHJvbmdzd2FuL3BsdWdpbnMvb3BlbnNzbC9vcGVuc3NsX2RpZmZpZV9oZWxsbWFuLmMgYi9zcmMvbGlic3Ryb25nc3dhbi9wbHVnaW5zL29wZW5zc2wvb3BlbnNzbF9kaWZmaWVfaGVsbG1hbi5jCi1pbmRleCBmZjMzODI0Li5iZDIxNDQ2IDEwMDY0NAoraW5kZXggOGU5YzExOC4uYTczYjAzOCAxMDA2NDQKIC0tLSBhL3NyYy9saWJzdHJvbmdzd2FuL3BsdWdpbnMvb3BlbnNzbC9vcGVuc3NsX2RpZmZpZV9oZWxsbWFuLmMKICsrKyBiL3NyYy9saWJzdHJvbmdzd2FuL3BsdWdpbnMvb3BlbnNzbC9vcGVuc3NsX2RpZmZpZV9oZWxsbWFuLmMKLUBAIC0xNDIsNyArMTQyLDcgQEAgTUVUSE9EKGRpZmZpZV9oZWxsbWFuX3QsIGRlc3Ryb3ksIHZvaWQsCitAQCAtMTkyLDcgKzE5Miw3IEBAIE1FVEhPRChkaWZmaWVfaGVsbG1hbl90LCBkZXN0cm95LCB2b2lkLAogIC8qCiAgICogRGVzY3JpYmVkIGluIGhlYWRlci4KICAgKi8KIC1vcGVuc3NsX2RpZmZpZV9oZWxsbWFuX3QgKm9wZW5zc2xfZGlmZmllX2hlbGxtYW5fY3JlYXRlKAogK29wZW5zc2xfZGlmZmllX2hlbGxtYW5fdCAqb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl9jcmVhdGVfY3VzdG9tKAotIAkJCQkJCQlkaWZmaWVfaGVsbG1hbl9ncm91cF90IGdyb3VwLCBjaHVua190IGcsIGNodW5rX3QgcCkKKyAJCQkJCQkJCQkJCWRpZmZpZV9oZWxsbWFuX2dyb3VwX3QgZ3JvdXAsIC4uLikKICB7CiAgCXByaXZhdGVfb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl90ICp0aGlzOwotQEAgLTE5Nyw1ICsxOTcsMTEgQEAgb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl90ICpvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX2NyZWF0ZSgKLSAKK0BAIC0yNTUsNSArMjU1LDExIEBAIG9wZW5zc2xfZGlmZmllX2hlbGxtYW5fdCAqb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl9jcmVhdGUoCisgCURCRzIoREJHX0xJQiwgInNpemUgb2YgREggc2VjcmV0IGV4cG9uZW50OiAlZCBiaXRzIiwgQk5fbnVtX2JpdHMocHJpdmtleSkpOwogIAlyZXR1cm4gJnRoaXMtPnB1YmxpYzsKICB9CiArb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl90ICpvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX2NyZWF0ZSggZGlmZmllX2hlbGxtYW5fZ3JvdXBfdCBncm91cCkKQEAgLTY2LDI2ICs3MCwyNiBAQAogIAogICNlbmRpZiAvKiBPUEVOU1NMX05PX0RIICovCiBkaWZmIC0tZ2l0IGEvc3JjL2xpYnN0cm9uZ3N3YW4vcGx1Z2lucy9vcGVuc3NsL29wZW5zc2xfZGlmZmllX2hlbGxtYW4uaCBiL3NyYy9saWJzdHJvbmdzd2FuL3BsdWdpbnMvb3BlbnNzbC9vcGVuc3NsX2RpZmZpZV9oZWxsbWFuLmgKLWluZGV4IDUzZGM1OWMuLmViNjllYWEgMTAwNjQ0CitpbmRleCA1ZGU1NTIwLi4yMjU4NmUwIDEwMDY0NAogLS0tIGEvc3JjL2xpYnN0cm9uZ3N3YW4vcGx1Z2lucy9vcGVuc3NsL29wZW5zc2xfZGlmZmllX2hlbGxtYW4uaAogKysrIGIvc3JjL2xpYnN0cm9uZ3N3YW4vcGx1Z2lucy9vcGVuc3NsL29wZW5zc2xfZGlmZmllX2hlbGxtYW4uaAotQEAgLTQ0LDggKzQ0LDEwIEBAIHN0cnVjdCBvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX3QgewotICAqIEBwYXJhbSBwCQkJCWN1c3RvbSBwcmltZSwgaWYgTU9EUF9DVVNUT00KK0BAIC00Myw4ICs0MywxMCBAQCBzdHJ1Y3Qgb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl90IHsKKyAgKiBAcGFyYW0gLi4uCQkJZXhwZWN0cyBnZW5lcmF0b3IgYW5kIHByaW1lIGFzIGNodW5rX3QgaWYgTU9EUF9DVVNUT00KICAgKiBAcmV0dXJuCQkJCW9wZW5zc2xfZGlmZmllX2hlbGxtYW5fdCBvYmplY3QsIE5VTEwgaWYgbm90IHN1cHBvcnRlZAogICAqLwogLW9wZW5zc2xfZGlmZmllX2hlbGxtYW5fdCAqb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl9jcmVhdGUoCiArb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl90ICpvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX2NyZWF0ZV9jdXN0b20oCi0gCQkJCQkJCWRpZmZpZV9oZWxsbWFuX2dyb3VwX3QgZ3JvdXAsIGNodW5rX3QgZywgY2h1bmtfdCBwKTsKKyAJCQkJCQkJCQkJCWRpZmZpZV9oZWxsbWFuX2dyb3VwX3QgZ3JvdXAsIC4uLik7CiArb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl90ICpvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX2NyZWF0ZSgKICsJCQkJCQkJZGlmZmllX2hlbGxtYW5fZ3JvdXBfdCBncm91cCk7CiAgCiAgI2VuZGlmIC8qKiBPUEVOU1NMX0RJRkZJRV9IRUxMTUFOX0hfIEB9Ki8KICAKIGRpZmYgLS1naXQgYS9zcmMvbGlic3Ryb25nc3dhbi9wbHVnaW5zL29wZW5zc2wvb3BlbnNzbF9wbHVnaW4uYyBiL3NyYy9saWJzdHJvbmdzd2FuL3BsdWdpbnMvb3BlbnNzbC9vcGVuc3NsX3BsdWdpbi5jCi1pbmRleCBmZjI1MDg2Li5jNzY4NzNkIDEwMDY0NAoraW5kZXggOGIwYTdjNS4uMTE0ZDU3NSAxMDA2NDQKIC0tLSBhL3NyYy9saWJzdHJvbmdzd2FuL3BsdWdpbnMvb3BlbnNzbC9vcGVuc3NsX3BsdWdpbi5jCiArKysgYi9zcmMvbGlic3Ryb25nc3dhbi9wbHVnaW5zL29wZW5zc2wvb3BlbnNzbF9wbHVnaW4uYwotQEAgLTM4OCw2ICszODgsNyBAQCBNRVRIT0QocGx1Z2luX3QsIGdldF9mZWF0dXJlcywgaW50LAorQEAgLTYwOSw2ICs2MDksNyBAQCBNRVRIT0QocGx1Z2luX3QsIGdldF9mZWF0dXJlcywgaW50LAogIAkJCVBMVUdJTl9QUk9WSURFKERILCBNT0RQXzEwMjRfQklUKSwKICAJCQlQTFVHSU5fUFJPVklERShESCwgTU9EUF8xMDI0XzE2MCksCiAgCQkJUExVR0lOX1BST1ZJREUoREgsIE1PRFBfNzY4X0JJVCksCkBAIC05Myw2ICs5NywzIEBACiAgCQkJUExVR0lOX1BST1ZJREUoREgsIE1PRFBfQ1VTVE9NKSwKICAjZW5kaWYKICAjaWZuZGVmIE9QRU5TU0xfTk9fUlNBCi0tLSAKLTEuOC4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zdHJvbmdzd2FuL3N0cm9uZ3N3YW5fNS41LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvc3Ryb25nc3dhbi9zdHJvbmdzd2FuXzUuNS4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmI1NmJjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zdHJvbmdzd2FuL3N0cm9uZ3N3YW5fNS41LjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAic3Ryb25nU3dhbiBpcyBhbiBPcGVuU291cmNlIElQc2VjIGltcGxlbWVudGF0aW9uIGZvciB0aGUgXAotTGludXggb3BlcmF0aW5nIHN5c3RlbS4iCi1TVU1NQVJZID0gInN0cm9uZ1N3YW4gaXMgYW4gT3BlblNvdXJjZSBJUHNlYyBpbXBsZW1lbnRhdGlvbiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuc3Ryb25nc3dhbi5vcmciCi1TRUNUSU9OID0gIm5ldCIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKLURFUEVORFMgPSAiZ21wIG9wZW5zc2wgZmxleC1uYXRpdmUgZmxleCBiaXNvbi1uYXRpdmUiCi0KLVNSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2FkLnN0cm9uZ3N3YW4ub3JnL3N0cm9uZ3N3YW4tJHtQVn0udGFyLmJ6MiBcCi0gICAgICAgICAgIGZpbGU6Ly9maXgtZnVudGlvbi1wYXJhbWV0ZXIucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1tZW1vcnkuaC1JbmNsdWRlLXN0ZGludC5oLWZvci11aW50cHRyX3QucGF0Y2ggXAotICAgICAgICAgICAiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI0YWZmZmUzYzIxOWJiMmUwNGYwOTUxMDkwNWFmODM2YiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJjNWVhNTRiMTk5MTc0NzA4ZGUxMWFmOWI4ZjRlY2YyOGI1YjA3NDNkNGJjMGUzODBlNzQxZjI1YjI4YzBmOGQ0IgotCi1FWFRSQV9PRUNPTkYgPSAiIFwKLSAgICAgICAgLS13aXRob3V0LWxpYi1wcmVmaXggXAotIgotCi1FWFRSQV9PRUNPTkYgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICctLXdpdGgtc3lzdGVtZHN5c3RlbXVuaXRkaXI9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8nLCAnLS13aXRob3V0LXN5c3RlbWRzeXN0ZW11bml0ZGlyJywgZCl9IgotCi0KLVBBQ0tBR0VDT05GSUcgPz89ICJjaGFyb24gY3VybCBnbXAgb3BlbnNzbCBzdHJva2Ugc3FsaXRlMyBcCi0gICAgICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2xkYXAnLCBkKX0gXAotIgotUEFDS0FHRUNPTkZJR1thZXNuaV0gPSAiLS1lbmFibGUtYWVzbmksLS1kaXNhYmxlLWFlc25pLCwke1BOfS1wbHVnaW4tYWVzbmkiCi1QQUNLQUdFQ09ORklHW2NoYXJvbl0gPSAiLS1lbmFibGUtY2hhcm9uLC0tZGlzYWJsZS1jaGFyb24sIgotUEFDS0FHRUNPTkZJR1tjdXJsXSA9ICItLWVuYWJsZS1jdXJsLC0tZGlzYWJsZS1jdXJsLGN1cmwsJHtQTn0tcGx1Z2luLWN1cmwiCi1QQUNLQUdFQ09ORklHW2dtcF0gPSAiLS1lbmFibGUtZ21wLC0tZGlzYWJsZS1nbXAsZ21wLCR7UE59LXBsdWdpbi1nbXAiCi1QQUNLQUdFQ09ORklHW2xkYXBdID0gIi0tZW5hYmxlLWxkYXAsLS1kaXNhYmxlLWxkYXAsb3BlbmxkYXAsJHtQTn0tcGx1Z2luLWxkYXAiCi1QQUNLQUdFQ09ORklHW215c3FsXSA9ICItLWVuYWJsZS1teXNxbCwtLWRpc2FibGUtbXlzcWwsbXlzcWw1LCR7UE59LXBsdWdpbi1teXNxbCIKLVBBQ0tBR0VDT05GSUdbb3BlbnNzbF0gPSAiLS1lbmFibGUtb3BlbnNzbCwtLWRpc2FibGUtb3BlbnNzbCxvcGVuc3NsLCR7UE59LXBsdWdpbi1vcGVuc3NsIgotUEFDS0FHRUNPTkZJR1tzY2VwXSA9ICItLWVuYWJsZS1zY2VwY2xpZW50LC0tZGlzYWJsZS1zY2VwY2xpZW50LCIKLVBBQ0tBR0VDT05GSUdbc291cF0gPSAiLS1lbmFibGUtc291cCwtLWRpc2FibGUtc291cCxsaWJzb3VwLTIuNCwke1BOfS1wbHVnaW4tc291cCIKLVBBQ0tBR0VDT05GSUdbc3FsaXRlM10gPSAiLS1lbmFibGUtc3FsaXRlLC0tZGlzYWJsZS1zcWxpdGUsc3FsaXRlMywke1BOfS1wbHVnaW4tc3FsaXRlIgotUEFDS0FHRUNPTkZJR1tzdHJva2VdID0gIi0tZW5hYmxlLXN0cm9rZSwtLWRpc2FibGUtc3Ryb2tlLCwke1BOfS1wbHVnaW4tc3Ryb2tlIgotUEFDS0FHRUNPTkZJR1tzd2FuY3RsXSA9ICItLWVuYWJsZS1zd2FuY3RsLC0tZGlzYWJsZS1zd2FuY3RsLCxsaWJnY2MiCi0KLSMgcmVxdWlyZXMgc3dhbmN0bAotUEFDS0FHRUNPTkZJR1tzeXN0ZW1kLWNoYXJvbl0gPSAiLS1lbmFibGUtc3lzdGVtZCwtLWRpc2FibGUtc3lzdGVtZCxzeXN0ZW1kLCIKLQotaW5oZXJpdCBhdXRvdG9vbHMgc3lzdGVtZCBwa2djb25maWcKLQotUlJFQ09NTUVORFNfJHtQTn0gPSAia2VybmVsLW1vZHVsZS1pcHNlYyIKLQotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9pcHNlYy9saWIqJHtTT0xJQlN9IgotRklMRVNfJHtQTn0tZGJnICs9ICIke2JpbmRpcn0vLmRlYnVnICR7bGliZGlyfS9pcHNlYy8uZGVidWcgJHtsaWJleGVjZGlyfS9pcHNlYy8uZGVidWciCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9pcHNlYy9saWIqJHtTT0xJQlNERVZ9ICR7bGliZGlyfS9pcHNlYy8qLmxhIgotRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vaXBzZWMvKi5hIgotCi1DT05GRklMRVNfJHtQTn0gPSAiJHtzeXNjb25mZGlyfS8qLmNvbmYgJHtzeXNjb25mZGlyfS9pcHNlYy5kLyouY29uZiAke3N5c2NvbmZkaXJ9L3N0cm9uZ3N3YW4uZC8qLmNvbmYiCi0KLVBBQ0tBR0VTICs9ICIke1BOfS1wbHVnaW5zIgotQUxMT1dfRU1QVFlfJHtQTn0tcGx1Z2lucyA9ICIxIgotCi1QQUNLQUdFU19EWU5BTUlDICs9ICJeJHtQTn0tcGx1Z2luLS4qJCIKLU5PQVVUT1BBQ0tBR0VERUJVRyA9ICIxIgotCi1weXRob24gc3BsaXRfc3Ryb25nc3dhbl9wbHVnaW5zICgpIHsKLSAgICBzeXNjb25mZGlyID0gZC5leHBhbmQoJyR7c3lzY29uZmRpcn0vc3Ryb25nc3dhbi5kL2NoYXJvbicpCi0gICAgbGliZGlyID0gZC5leHBhbmQoJyR7bGliZGlyfS9pcHNlYy9wbHVnaW5zJykKLSAgICBkYmdsaWJkaXIgPSBvcy5wYXRoLmpvaW4obGliZGlyLCAnLmRlYnVnJykKLQotICAgIGRlZiBhZGRfcGx1Z2luX2NvbmYoZiwgcGtnLCBmaWxlX3JlZ2V4LCBvdXRwdXRfcGF0dGVybiwgbW9kdWxlbmFtZSk6Ci0gICAgICAgIGR2YXIgPSBkLmdldFZhcignUEtHRCcsIFRydWUpCi0gICAgICAgIG9sZGZpbGVzID0gZC5nZXRWYXIoJ0NPTkZGSUxFU18nICsgcGtnLCBUcnVlKQotICAgICAgICBuZXdmaWxlID0gJy8nICsgb3MucGF0aC5yZWxwYXRoKGYsIGR2YXIpCi0KLSAgICAgICAgaWYgbm90IG9sZGZpbGVzOgotICAgICAgICAgICAgZC5zZXRWYXIoJ0NPTkZGSUxFU18nICsgcGtnLCBuZXdmaWxlKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZC5zZXRWYXIoJ0NPTkZGSUxFU18nICsgcGtnLCBvbGRmaWxlcyArICIgIiArIG5ld2ZpbGUpCi0KLSAgICBzcGxpdF9wYWNrYWdlcyA9IGRvX3NwbGl0X3BhY2thZ2VzKGQsIGxpYmRpciwgJ2xpYnN0cm9uZ3N3YW4tKC4qKVwuc28nLCAnJHtQTn0tcGx1Z2luLSVzJywgJ3N0cm9uZ1N3YW4gJXMgcGx1Z2luJywgcHJlcGVuZD1UcnVlKQotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIHN5c2NvbmZkaXIsICcoLiopXC5jb25mJywgJyR7UE59LXBsdWdpbi0lcycsICdzdHJvbmdTd2FuICVzIHBsdWdpbicsIHByZXBlbmQ9VHJ1ZSwgaG9vaz1hZGRfcGx1Z2luX2NvbmYpCi0KLSAgICBzcGxpdF9kYmdfcGFja2FnZXMgPSBkb19zcGxpdF9wYWNrYWdlcyhkLCBkYmdsaWJkaXIsICdsaWJzdHJvbmdzd2FuLSguKilcLnNvJywgJyR7UE59LXBsdWdpbi0lcy1kYmcnLCAnc3Ryb25nU3dhbiAlcyBwbHVnaW4gLSBEZWJ1Z2dpbmcgZmlsZXMnLCBwcmVwZW5kPVRydWUsIGV4dHJhX2RlcGVuZHM9JyR7UE59LWRiZycpCi0gICAgc3BsaXRfZGV2X3BhY2thZ2VzID0gZG9fc3BsaXRfcGFja2FnZXMoZCwgbGliZGlyLCAnbGlic3Ryb25nc3dhbi0oLiopXC5sYScsICcke1BOfS1wbHVnaW4tJXMtZGV2JywgJ3N0cm9uZ1N3YW4gJXMgcGx1Z2luIC0gRGV2ZWxvcG1lbnQgZmlsZXMnLCBwcmVwZW5kPVRydWUsIGV4dHJhX2RlcGVuZHM9JyR7UE59LWRldicpCi0gICAgc3BsaXRfc3RhdGljZGV2X3BhY2thZ2VzID0gZG9fc3BsaXRfcGFja2FnZXMoZCwgbGliZGlyLCAnbGlic3Ryb25nc3dhbi0oLiopXC5hJywgJyR7UE59LXBsdWdpbi0lcy1zdGF0aWNkZXYnLCAnc3Ryb25nU3dhbiAlcyBwbHVnaW4gLSBEZXZlbG9wbWVudCBmaWxlcyAoU3RhdGljIExpYnJhcmllcyknLCBwcmVwZW5kPVRydWUsIGV4dHJhX2RlcGVuZHM9JyR7UE59LXN0YXRpY2RldicpCi0KLSAgICBpZiBzcGxpdF9wYWNrYWdlczoKLSAgICAgICAgcG4gPSBkLmdldFZhcignUE4nLCBUcnVlKQotICAgICAgICBkLnNldFZhcignUlJFQ09NTUVORFNfJyArIHBuICsgJy1wbHVnaW5zJywgJyAnLmpvaW4oc3BsaXRfcGFja2FnZXMpKQotICAgICAgICBkLmFwcGVuZFZhcignUlJFQ09NTUVORFNfJyArIHBuICsgJy1kYmcnLCAnICcgKyAnICcuam9pbihzcGxpdF9kYmdfcGFja2FnZXMpKQotICAgICAgICBkLmFwcGVuZFZhcignUlJFQ09NTUVORFNfJyArIHBuICsgJy1kZXYnLCAnICcgKyAnICcuam9pbihzcGxpdF9kZXZfcGFja2FnZXMpKQotICAgICAgICBkLmFwcGVuZFZhcignUlJFQ09NTUVORFNfJyArIHBuICsgJy1zdGF0aWNkZXYnLCAnICcgKyAnICcuam9pbihzcGxpdF9zdGF0aWNkZXZfcGFja2FnZXMpKQotfQotCi1QQUNLQUdFU1BMSVRGVU5DU19wcmVwZW5kID0gInNwbGl0X3N0cm9uZ3N3YW5fcGx1Z2lucyAiCi0KLSMgSW5zdGFsbCBzb21lIGRlZmF1bHQgcGx1Z2lucyBiYXNlZCBvbiBkZWZhdWx0IHN0cm9uZ1N3YW4gLi9jb25maWd1cmUgb3B0aW9ucwotIyBTZWUgaHR0cHM6Ly93aWtpLnN0cm9uZ3N3YW4ub3JnL3Byb2plY3RzL3N0cm9uZ3N3YW4vd2lraS9QbHVnaW5saXN0Ci1SREVQRU5EU18ke1BOfSArPSAiXAotICAgICR7UE59LXBsdWdpbi1hZXMgXAotICAgICR7UE59LXBsdWdpbi1hdHRyIFwKLSAgICAke1BOfS1wbHVnaW4tY21hYyBcCi0gICAgJHtQTn0tcGx1Z2luLWNvbnN0cmFpbnRzIFwKLSAgICAke1BOfS1wbHVnaW4tZGVzIFwKLSAgICAke1BOfS1wbHVnaW4tZG5za2V5IFwKLSAgICAke1BOfS1wbHVnaW4taG1hYyBcCi0gICAgJHtQTn0tcGx1Z2luLWtlcm5lbC1uZXRsaW5rIFwKLSAgICAke1BOfS1wbHVnaW4tbWQ1IFwKLSAgICAke1BOfS1wbHVnaW4tbm9uY2UgXAotICAgICR7UE59LXBsdWdpbi1wZW0gXAotICAgICR7UE59LXBsdWdpbi1wZ3AgXAotICAgICR7UE59LXBsdWdpbi1wa2NzMSBcCi0gICAgJHtQTn0tcGx1Z2luLXBrY3M3IFwKLSAgICAke1BOfS1wbHVnaW4tcGtjczggXAotICAgICR7UE59LXBsdWdpbi1wa2NzMTIgXAotICAgICR7UE59LXBsdWdpbi1wdWJrZXkgXAotICAgICR7UE59LXBsdWdpbi1yYW5kb20gXAotICAgICR7UE59LXBsdWdpbi1yYzIgXAotICAgICR7UE59LXBsdWdpbi1yZXNvbHZlIFwKLSAgICAke1BOfS1wbHVnaW4tcmV2b2NhdGlvbiBcCi0gICAgJHtQTn0tcGx1Z2luLXNoYTEgXAotICAgICR7UE59LXBsdWdpbi1zaGEyIFwKLSAgICAke1BOfS1wbHVnaW4tc29ja2V0LWRlZmF1bHQgXAotICAgICR7UE59LXBsdWdpbi1zc2hrZXkgXAotICAgICR7UE59LXBsdWdpbi11cGRvd24gXAotICAgICR7UE59LXBsdWdpbi12aWNpIFwKLSAgICAke1BOfS1wbHVnaW4teDUwOSBcCi0gICAgJHtQTn0tcGx1Z2luLXhhdXRoLWdlbmVyaWMgXAotICAgICR7UE59LXBsdWdpbi14Y2JjIFwKLSAgICAiCi0KLVJQUk9WSURFU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLVJSRVBMQUNFU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLVJDT05GTElDVFNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnc3dhbmN0bCcsICcke0JQTn0tc3dhbmN0bC5zZXJ2aWNlJywgJyR7QlBOfS5zZXJ2aWNlJywgZCl9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vc3Ryb25nc3dhbl81LjYuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zdHJvbmdzd2FuL3N0cm9uZ3N3YW5fNS42LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJmZTFmMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zdHJvbmdzd2FuL3N0cm9uZ3N3YW5fNS42LjIuYmIKQEAgLTAsMCArMSwxMzIgQEAKK0RFU0NSSVBUSU9OID0gInN0cm9uZ1N3YW4gaXMgYW4gT3BlblNvdXJjZSBJUHNlYyBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIFwKK0xpbnV4IG9wZXJhdGluZyBzeXN0ZW0uIgorU1VNTUFSWSA9ICJzdHJvbmdTd2FuIGlzIGFuIE9wZW5Tb3VyY2UgSVBzZWMgaW1wbGVtZW50YXRpb24iCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LnN0cm9uZ3N3YW4ub3JnIgorU0VDVElPTiA9ICJuZXQiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMiCitERVBFTkRTID0gImdtcCBvcGVuc3NsIGZsZXgtbmF0aXZlIGZsZXggYmlzb24tbmF0aXZlIgorCitTUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZC5zdHJvbmdzd2FuLm9yZy9zdHJvbmdzd2FuLSR7UFZ9LnRhci5iejIgXAorICAgICAgICAgICBmaWxlOi8vZml4LWZ1bnRpb24tcGFyYW1ldGVyLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtbWVtb3J5LmgtSW5jbHVkZS1zdGRpbnQuaC1mb3ItdWludHB0cl90LnBhdGNoIFwKKyAgICAgICAgICAgIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNDZhYTNhYTE4ZmJjNGJkNTI4ZjlhMDM0NWNlNzk5MTMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTBhNjBhMzBlYmYzYzUzNGMyMjM1NTllMTY4NjQ5N2EyMWRlZDcwOWE1ZDYwNWM1MTIzYzJmNTJiY2MyMmU5MiIKKworRVhUUkFfT0VDT05GID0gIiBcCisgICAgICAgIC0td2l0aG91dC1saWItcHJlZml4IFwKKyIKKworRVhUUkFfT0VDT05GICs9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAnLS13aXRoLXN5c3RlbWRzeXN0ZW11bml0ZGlyPSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vJywgJy0td2l0aG91dC1zeXN0ZW1kc3lzdGVtdW5pdGRpcicsIGQpfSIKKworCitQQUNLQUdFQ09ORklHID8/PSAiY2hhcm9uIGN1cmwgZ21wIG9wZW5zc2wgc3Ryb2tlIHNxbGl0ZTMgXAorICAgICAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdsZGFwJywgZCl9IFwKKyIKK1BBQ0tBR0VDT05GSUdbYWVzbmldID0gIi0tZW5hYmxlLWFlc25pLC0tZGlzYWJsZS1hZXNuaSwsJHtQTn0tcGx1Z2luLWFlc25pIgorUEFDS0FHRUNPTkZJR1tjaGFyb25dID0gIi0tZW5hYmxlLWNoYXJvbiwtLWRpc2FibGUtY2hhcm9uLCIKK1BBQ0tBR0VDT05GSUdbY3VybF0gPSAiLS1lbmFibGUtY3VybCwtLWRpc2FibGUtY3VybCxjdXJsLCR7UE59LXBsdWdpbi1jdXJsIgorUEFDS0FHRUNPTkZJR1tnbXBdID0gIi0tZW5hYmxlLWdtcCwtLWRpc2FibGUtZ21wLGdtcCwke1BOfS1wbHVnaW4tZ21wIgorUEFDS0FHRUNPTkZJR1tsZGFwXSA9ICItLWVuYWJsZS1sZGFwLC0tZGlzYWJsZS1sZGFwLG9wZW5sZGFwLCR7UE59LXBsdWdpbi1sZGFwIgorUEFDS0FHRUNPTkZJR1tteXNxbF0gPSAiLS1lbmFibGUtbXlzcWwsLS1kaXNhYmxlLW15c3FsLG15c3FsNSwke1BOfS1wbHVnaW4tbXlzcWwiCitQQUNLQUdFQ09ORklHW29wZW5zc2xdID0gIi0tZW5hYmxlLW9wZW5zc2wsLS1kaXNhYmxlLW9wZW5zc2wsb3BlbnNzbCwke1BOfS1wbHVnaW4tb3BlbnNzbCIKK1BBQ0tBR0VDT05GSUdbc2NlcF0gPSAiLS1lbmFibGUtc2NlcGNsaWVudCwtLWRpc2FibGUtc2NlcGNsaWVudCwiCitQQUNLQUdFQ09ORklHW3NvdXBdID0gIi0tZW5hYmxlLXNvdXAsLS1kaXNhYmxlLXNvdXAsbGlic291cC0yLjQsJHtQTn0tcGx1Z2luLXNvdXAiCitQQUNLQUdFQ09ORklHW3NxbGl0ZTNdID0gIi0tZW5hYmxlLXNxbGl0ZSwtLWRpc2FibGUtc3FsaXRlLHNxbGl0ZTMsJHtQTn0tcGx1Z2luLXNxbGl0ZSIKK1BBQ0tBR0VDT05GSUdbc3Ryb2tlXSA9ICItLWVuYWJsZS1zdHJva2UsLS1kaXNhYmxlLXN0cm9rZSwsJHtQTn0tcGx1Z2luLXN0cm9rZSIKK1BBQ0tBR0VDT05GSUdbc3dhbmN0bF0gPSAiLS1lbmFibGUtc3dhbmN0bCwtLWRpc2FibGUtc3dhbmN0bCwsbGliZ2NjIgorCisjIHJlcXVpcmVzIHN3YW5jdGwKK1BBQ0tBR0VDT05GSUdbc3lzdGVtZC1jaGFyb25dID0gIi0tZW5hYmxlLXN5c3RlbWQsLS1kaXNhYmxlLXN5c3RlbWQsc3lzdGVtZCwiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHN5c3RlbWQgcGtnY29uZmlnCisKK1JSRUNPTU1FTkRTXyR7UE59ID0gImtlcm5lbC1tb2R1bGUtaXBzZWMiCisKK0ZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vaXBzZWMvbGliKiR7U09MSUJTfSIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtiaW5kaXJ9Ly5kZWJ1ZyAke2xpYmRpcn0vaXBzZWMvLmRlYnVnICR7bGliZXhlY2Rpcn0vaXBzZWMvLmRlYnVnIgorRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vaXBzZWMvbGliKiR7U09MSUJTREVWfSAke2xpYmRpcn0vaXBzZWMvKi5sYSIKK0ZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtsaWJkaXJ9L2lwc2VjLyouYSIKKworQ09ORkZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0vKi5jb25mICR7c3lzY29uZmRpcn0vaXBzZWMuZC8qLmNvbmYgJHtzeXNjb25mZGlyfS9zdHJvbmdzd2FuLmQvKi5jb25mIgorCitQQUNLQUdFUyArPSAiJHtQTn0tcGx1Z2lucyIKK0FMTE9XX0VNUFRZXyR7UE59LXBsdWdpbnMgPSAiMSIKKworUEFDS0FHRVNfRFlOQU1JQyArPSAiXiR7UE59LXBsdWdpbi0uKiQiCitOT0FVVE9QQUNLQUdFREVCVUcgPSAiMSIKKworcHl0aG9uIHNwbGl0X3N0cm9uZ3N3YW5fcGx1Z2lucyAoKSB7CisgICAgc3lzY29uZmRpciA9IGQuZXhwYW5kKCcke3N5c2NvbmZkaXJ9L3N0cm9uZ3N3YW4uZC9jaGFyb24nKQorICAgIGxpYmRpciA9IGQuZXhwYW5kKCcke2xpYmRpcn0vaXBzZWMvcGx1Z2lucycpCisgICAgZGJnbGliZGlyID0gb3MucGF0aC5qb2luKGxpYmRpciwgJy5kZWJ1ZycpCisKKyAgICBkZWYgYWRkX3BsdWdpbl9jb25mKGYsIHBrZywgZmlsZV9yZWdleCwgb3V0cHV0X3BhdHRlcm4sIG1vZHVsZW5hbWUpOgorICAgICAgICBkdmFyID0gZC5nZXRWYXIoJ1BLR0QnLCBUcnVlKQorICAgICAgICBvbGRmaWxlcyA9IGQuZ2V0VmFyKCdDT05GRklMRVNfJyArIHBrZywgVHJ1ZSkKKyAgICAgICAgbmV3ZmlsZSA9ICcvJyArIG9zLnBhdGgucmVscGF0aChmLCBkdmFyKQorCisgICAgICAgIGlmIG5vdCBvbGRmaWxlczoKKyAgICAgICAgICAgIGQuc2V0VmFyKCdDT05GRklMRVNfJyArIHBrZywgbmV3ZmlsZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGQuc2V0VmFyKCdDT05GRklMRVNfJyArIHBrZywgb2xkZmlsZXMgKyAiICIgKyBuZXdmaWxlKQorCisgICAgc3BsaXRfcGFja2FnZXMgPSBkb19zcGxpdF9wYWNrYWdlcyhkLCBsaWJkaXIsICdsaWJzdHJvbmdzd2FuLSguKilcLnNvJywgJyR7UE59LXBsdWdpbi0lcycsICdzdHJvbmdTd2FuICVzIHBsdWdpbicsIHByZXBlbmQ9VHJ1ZSkKKyAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBzeXNjb25mZGlyLCAnKC4qKVwuY29uZicsICcke1BOfS1wbHVnaW4tJXMnLCAnc3Ryb25nU3dhbiAlcyBwbHVnaW4nLCBwcmVwZW5kPVRydWUsIGhvb2s9YWRkX3BsdWdpbl9jb25mKQorCisgICAgc3BsaXRfZGJnX3BhY2thZ2VzID0gZG9fc3BsaXRfcGFja2FnZXMoZCwgZGJnbGliZGlyLCAnbGlic3Ryb25nc3dhbi0oLiopXC5zbycsICcke1BOfS1wbHVnaW4tJXMtZGJnJywgJ3N0cm9uZ1N3YW4gJXMgcGx1Z2luIC0gRGVidWdnaW5nIGZpbGVzJywgcHJlcGVuZD1UcnVlLCBleHRyYV9kZXBlbmRzPScke1BOfS1kYmcnKQorICAgIHNwbGl0X2Rldl9wYWNrYWdlcyA9IGRvX3NwbGl0X3BhY2thZ2VzKGQsIGxpYmRpciwgJ2xpYnN0cm9uZ3N3YW4tKC4qKVwubGEnLCAnJHtQTn0tcGx1Z2luLSVzLWRldicsICdzdHJvbmdTd2FuICVzIHBsdWdpbiAtIERldmVsb3BtZW50IGZpbGVzJywgcHJlcGVuZD1UcnVlLCBleHRyYV9kZXBlbmRzPScke1BOfS1kZXYnKQorICAgIHNwbGl0X3N0YXRpY2Rldl9wYWNrYWdlcyA9IGRvX3NwbGl0X3BhY2thZ2VzKGQsIGxpYmRpciwgJ2xpYnN0cm9uZ3N3YW4tKC4qKVwuYScsICcke1BOfS1wbHVnaW4tJXMtc3RhdGljZGV2JywgJ3N0cm9uZ1N3YW4gJXMgcGx1Z2luIC0gRGV2ZWxvcG1lbnQgZmlsZXMgKFN0YXRpYyBMaWJyYXJpZXMpJywgcHJlcGVuZD1UcnVlLCBleHRyYV9kZXBlbmRzPScke1BOfS1zdGF0aWNkZXYnKQorCisgICAgaWYgc3BsaXRfcGFja2FnZXM6CisgICAgICAgIHBuID0gZC5nZXRWYXIoJ1BOJywgVHJ1ZSkKKyAgICAgICAgZC5zZXRWYXIoJ1JSRUNPTU1FTkRTXycgKyBwbiArICctcGx1Z2lucycsICcgJy5qb2luKHNwbGl0X3BhY2thZ2VzKSkKKyAgICAgICAgZC5hcHBlbmRWYXIoJ1JSRUNPTU1FTkRTXycgKyBwbiArICctZGJnJywgJyAnICsgJyAnLmpvaW4oc3BsaXRfZGJnX3BhY2thZ2VzKSkKKyAgICAgICAgZC5hcHBlbmRWYXIoJ1JSRUNPTU1FTkRTXycgKyBwbiArICctZGV2JywgJyAnICsgJyAnLmpvaW4oc3BsaXRfZGV2X3BhY2thZ2VzKSkKKyAgICAgICAgZC5hcHBlbmRWYXIoJ1JSRUNPTU1FTkRTXycgKyBwbiArICctc3RhdGljZGV2JywgJyAnICsgJyAnLmpvaW4oc3BsaXRfc3RhdGljZGV2X3BhY2thZ2VzKSkKK30KKworUEFDS0FHRVNQTElURlVOQ1NfcHJlcGVuZCA9ICJzcGxpdF9zdHJvbmdzd2FuX3BsdWdpbnMgIgorCisjIEluc3RhbGwgc29tZSBkZWZhdWx0IHBsdWdpbnMgYmFzZWQgb24gZGVmYXVsdCBzdHJvbmdTd2FuIC4vY29uZmlndXJlIG9wdGlvbnMKKyMgU2VlIGh0dHBzOi8vd2lraS5zdHJvbmdzd2FuLm9yZy9wcm9qZWN0cy9zdHJvbmdzd2FuL3dpa2kvUGx1Z2lubGlzdAorUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BOfS1wbHVnaW4tYWVzIFwKKyAgICAke1BOfS1wbHVnaW4tYXR0ciBcCisgICAgJHtQTn0tcGx1Z2luLWNtYWMgXAorICAgICR7UE59LXBsdWdpbi1jb25zdHJhaW50cyBcCisgICAgJHtQTn0tcGx1Z2luLWRlcyBcCisgICAgJHtQTn0tcGx1Z2luLWRuc2tleSBcCisgICAgJHtQTn0tcGx1Z2luLWhtYWMgXAorICAgICR7UE59LXBsdWdpbi1rZXJuZWwtbmV0bGluayBcCisgICAgJHtQTn0tcGx1Z2luLW1kNSBcCisgICAgJHtQTn0tcGx1Z2luLW5vbmNlIFwKKyAgICAke1BOfS1wbHVnaW4tcGVtIFwKKyAgICAke1BOfS1wbHVnaW4tcGdwIFwKKyAgICAke1BOfS1wbHVnaW4tcGtjczEgXAorICAgICR7UE59LXBsdWdpbi1wa2NzNyBcCisgICAgJHtQTn0tcGx1Z2luLXBrY3M4IFwKKyAgICAke1BOfS1wbHVnaW4tcGtjczEyIFwKKyAgICAke1BOfS1wbHVnaW4tcHVia2V5IFwKKyAgICAke1BOfS1wbHVnaW4tcmFuZG9tIFwKKyAgICAke1BOfS1wbHVnaW4tcmMyIFwKKyAgICAke1BOfS1wbHVnaW4tcmVzb2x2ZSBcCisgICAgJHtQTn0tcGx1Z2luLXJldm9jYXRpb24gXAorICAgICR7UE59LXBsdWdpbi1zaGExIFwKKyAgICAke1BOfS1wbHVnaW4tc2hhMiBcCisgICAgJHtQTn0tcGx1Z2luLXNvY2tldC1kZWZhdWx0IFwKKyAgICAke1BOfS1wbHVnaW4tc3Noa2V5IFwKKyAgICAke1BOfS1wbHVnaW4tdXBkb3duIFwKKyAgICAke1BOfS1wbHVnaW4tdmljaSBcCisgICAgJHtQTn0tcGx1Z2luLXg1MDkgXAorICAgICR7UE59LXBsdWdpbi14YXV0aC1nZW5lcmljIFwKKyAgICAke1BOfS1wbHVnaW4teGNiYyBcCisgICAgJHtQTn0tcGx1Z2luLWN1cnZlMjU1MTkgXAorICAgICIKKworUlBST1ZJREVTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUlJFUExBQ0VTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUkNPTkZMSUNUU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdzd2FuY3RsJywgJyR7QlBOfS1zd2FuY3RsLnNlcnZpY2UnLCAnJHtCUE59LnNlcnZpY2UnLCBkKX0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvdGNwZHVtcC90Y3BkdW1wL2FkZC1wdGVzdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC90Y3BkdW1wL3RjcGR1bXAvYWRkLXB0ZXN0LnBhdGNoCmluZGV4IDE5NmNlYzcuLmI3MTQzNWEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC90Y3BkdW1wL3RjcGR1bXAvYWRkLXB0ZXN0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC90Y3BkdW1wL3RjcGR1bXAvYWRkLXB0ZXN0LnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA3YjI1OTU4MDgwMGUyNTlkMjMyMjI5ZGM4OWY5NzA1OGI1NmUyZmU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA4ZWUxYWIxYWM4OTU1N2Q0OGFjMWFiN2RkY2MzYzUxYmU5YjczNGFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogIkhvbmdqdW4uWWFuZyIgPGhvbmdqdW4ueWFuZ0B3aW5kcml2ZXIuY29tPgogRGF0ZTogV2VkLCAyMiBPY3QgMjAxNCAxMDowMjo0OCArMDgwMAogU3ViamVjdDogW1BBVENIXSBBZGQgcHRlc3QgZm9yIHRjcGR1bXAKQEAgLTYsMTUgKzYsMTYgQEAKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCiBTaWduZWQtb2ZmLWJ5OiBIb25nanVuLllhbmcgPGhvbmdqdW4ueWFuZ0B3aW5kcml2ZXIuY29tPgorCiAtLS0KICBNYWtlZmlsZS5pbiB8IDEwICsrKysrKysrKy0KICAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiAKLUluZGV4OiB0Y3BkdW1wLTQuOS4wL01ha2VmaWxlLmluCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gdGNwZHVtcC00LjkuMC5vcmlnL01ha2VmaWxlLmluCi0rKysgdGNwZHVtcC00LjkuMC9NYWtlZmlsZS5pbgotQEAgLTQzNiw5ICs0MzYsMTcgQEAgZGlzdGNsZWFuOgorZGlmZiAtLWdpdCBhL01ha2VmaWxlLmluIGIvTWFrZWZpbGUuaW4KK2luZGV4IDA5NDFmMGUuLjNjZTQwYzYgMTAwNjQ0CistLS0gYS9NYWtlZmlsZS5pbgorKysrIGIvTWFrZWZpbGUuaW4KK0BAIC00MzcsOSArNDM3LDE3IEBAIGRpc3RjbGVhbjoKICAJICAgIHRlc3RzL2ZhaWx1cmUtb3V0cHV0cy50eHQKICAJcm0gLXJmIGF1dG9tNHRlLmNhY2hlIHRlc3RzL0RJRkYgdGVzdHMvTkVXCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvdGNwZHVtcC90Y3BkdW1wL3VubmVjZXNzYXJ5LXRvLWNoZWNrLWxpYnBjYXAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvdGNwZHVtcC90Y3BkdW1wL3VubmVjZXNzYXJ5LXRvLWNoZWNrLWxpYnBjYXAucGF0Y2gKaW5kZXggZDdhM2FjMi4uOGNlZmFkZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3RjcGR1bXAvdGNwZHVtcC91bm5lY2Vzc2FyeS10by1jaGVjay1saWJwY2FwLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC90Y3BkdW1wL3RjcGR1bXAvdW5uZWNlc3NhcnktdG8tY2hlY2stbGlicGNhcC5wYXRjaApAQCAtMSw0ICsxLDcgQEAKLXVubmVjZXNzYXJ5IHRvIGNoZWNrIGxpYnBjYXAKK0Zyb20gNzQxZDc3ZTQyZmM0YWY0OTgwNGY3ZWU0M2I3MjM3ZTAxNjMzY2JjZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFR1ZSwgOCBKdWwgMjAxNCAxMzoyMDo0NyArMDgwMAorU3ViamVjdDogW1BBVENIXSB1bm5lY2Vzc2FyeSB0byBjaGVjayBsaWJwY2FwCiAKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCkBAIC0xMSwyMyArMTQsMjEgQEAKIGNoZWNrIGlmIGxpYnBjYXAgZXhpc3RlZC4KIAogU2lnbmVkLW9mZi1ieTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBjb25maWd1cmUuaW4gfCAgICAyICstCisgY29uZmlndXJlLmluIHwgMiArLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCi1pbmRleCAwNmZhZGUxLi45MTI1ZGU3IDEwMDY0NAoraW5kZXggYjIzMDVhNS4uYjNiNWRiZiAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5pbgogKysrIGIvY29uZmlndXJlLmluCi1AQCAtNTY3LDcgKzU2Nyw3IEBAIEFDX1NFQVJDSF9MSUJTKGdldHJwY2J5bnVtYmVyLCBuc2wsCi0gZG5sIEFDX0NIRUNLX0xJQih6LCB1bmNvbXByZXNzKQotIGRubCBBQ19DSEVDS19IRUFERVJTKHpsaWIuaCkKK0BAIC00MTgsNyArNDE4LDcgQEAgZG5sIFNvbWUgcGxhdGZvcm1zIG1heSBuZWVkIC1sbnNsIGZvciBnZXRycGNieW51bWJlci4KKyBBQ19TRUFSQ0hfTElCUyhnZXRycGNieW51bWJlciwgbnNsLAorICAgICBBQ19ERUZJTkUoSEFWRV9HRVRSUENCWU5VTUJFUiwgMSwgW2RlZmluZSBpZiB5b3UgaGF2ZSBnZXRycGNieW51bWJlcigpXSkpCiAgCiAtQUNfTEJMX0xJQlBDQVAoVl9QQ0FQREVQLCBWX0lOQ0xTKQogKyNBQ19MQkxfTElCUENBUChWX1BDQVBERVAsIFZfSU5DTFMpCiAgCiAgIwogICMgQ2hlY2sgZm9yIHRoZXNlIGFmdGVyIEFDX0xCTF9MSUJQQ0FQLCBzbyB3ZSBsaW5rIHdpdGggdGhlIGFwcHJvcHJpYXRlCi0tLSAKLTEuNy45LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3Rpbnlwcm94eS90aW55cHJveHlfMS44LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvdGlueXByb3h5L3Rpbnlwcm94eV8xLjguNC5iYgppbmRleCBlODAyNWM0Li45ODE5MmRjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvdGlueXByb3h5L3Rpbnlwcm94eV8xLjguNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvdGlueXByb3h5L3Rpbnlwcm94eV8xLjguNC5iYgpAQCAtMjMsOCArMjMsOCBAQAogCiAjVXNlciBzcGVjaWZpYwogVVNFUkFERF9QQUNLQUdFUyA9ICIke1BOfSIKLVVTRVJBRERfUEFSQU1fJHtQTn0gPSAibm9ib2R5IgotR1JPVVBBRERfUEFSQU1fJHtQTn0gPSAiLS1zeXN0ZW0gdGlueXByb3h5IgorVVNFUkFERF9QQVJBTV8ke1BOfSA9ICItLXN5c3RlbSAtLWhvbWUgL2Rldi9udWxsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgLS1uby11c2VyLWdyb3VwIC0tZ2lkIG5vZ3JvdXAgdGlueXBveHkiCiAKIFNZU1RFTURfUEFDS0FHRVMgKz0gIiR7QlBOfSIKIFNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJ0aW55cHJveHkuc2VydmljZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC93aXJlc2hhcmsvZmlsZXMvbGliZ2NyeXB0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3dpcmVzaGFyay9maWxlcy9saWJnY3J5cHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFhNThmNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC93aXJlc2hhcmsvZmlsZXMvbGliZ2NyeXB0LnBhdGNoCkBAIC0wLDAgKzEsNTMgQEAKK3VzZSBPUiBQS0dfQ09ORklHIHNjaGVtZSBmb3IgbGliZ2NyeXB0CisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBPRSBzcGVjaWZpYworCitTaWduZWQtb2ZmLWJ5OiBBcm1pbiBLdXN0ZXIgPGFrdXN0ZXI4MDhAZ21haWwuY29tPgorCitJbmRleDogd2lyZXNoYXJrLTIuNC40L200L2xpYmdjcnlwdC5tNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHdpcmVzaGFyay0yLjQuNC5vcmlnL200L2xpYmdjcnlwdC5tNAorKysrIHdpcmVzaGFyay0yLjQuNC9tNC9saWJnY3J5cHQubTQKK0BAIC0yNywxMSArMjcsMTEgQEAgQUNfREVGVU4oW0FNX1BBVEhfTElCR0NSWVBUXSwKKyAgICAgIGxpYmdjcnlwdF9jb25maWdfcHJlZml4PSIkd2l0aHZhbCIsIGxpYmdjcnlwdF9jb25maWdfcHJlZml4PSIiKQorICAgaWYgdGVzdCB4JGxpYmdjcnlwdF9jb25maWdfcHJlZml4ICE9IHggOyB0aGVuCisgICAgICBpZiB0ZXN0IHgke0xJQkdDUllQVF9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgorLSAgICAgICAgTElCR0NSWVBUX0NPTkZJRz0kbGliZ2NyeXB0X2NvbmZpZ19wcmVmaXgvYmluL2xpYmdjcnlwdC1jb25maWcKKysgICAgICAgIExJQkdDUllQVF9DT05GSUc9JGxpYmdjcnlwdF9jb25maWdfcHJlZml4L2xpYmdjcnlwdC5wYworICAgICAgZmkKKyAgIGZpCisgCistICBBQ19QQVRIX1BST0coTElCR0NSWVBUX0NPTkZJRywgbGliZ2NyeXB0LWNvbmZpZywgbm8pCisrICBBQ19QQVRIX1BST0coTElCR0NSWVBUX0NPTkZJRywgbGliZ2NyeXB0LnBjLCBubykKKyAgIHRtcD1pZmVsc2UoWyQxXSwgLDE6MS4yLjAsJDEpCisgICBpZiBlY2hvICIkdG1wIiB8IGdyZXAgJzonID4vZGV2L251bGwgMj4vZGV2L251bGwgOyB0aGVuCisgICAgICByZXFfbGliZ2NyeXB0X2FwaT1gZWNobyAiJHRtcCIgICAgIHwgc2VkICdzL1woLipcKTpcKC4qXCkvXDEvJ2AKK0BAIC01MCw3ICs1MCw3IEBAIEFDX0RFRlVOKFtBTV9QQVRIX0xJQkdDUllQVF0sCisgICAgICAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpcKVwuXChbWzAtOV1dKlwpXC5cKFtbMC05XV0qXCkvXDIvJ2AKKyAgICAgcmVxX21pY3JvPWBlY2hvICRtaW5fbGliZ2NyeXB0X3ZlcnNpb24gfCBcCisgICAgICAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpcKVwuXChbWzAtOV1dKlwpXC5cKFtbMC05XV0qXCkvXDMvJ2AKKy0gICAgbGliZ2NyeXB0X2NvbmZpZ192ZXJzaW9uPWAkTElCR0NSWVBUX0NPTkZJRyAtLXZlcnNpb25gCisrICAgIGxpYmdjcnlwdF9jb25maWdfdmVyc2lvbj1gJFBLR19DT05GSUcgLS1tb2R2ZXJzaW9uIGxpYmdjcnlwdGAKKyAgICAgbWFqb3I9YGVjaG8gJGxpYmdjcnlwdF9jb25maWdfdmVyc2lvbiB8IFwKKyAgICAgICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpXC5cKFtbMC05XV0qXClcLlwoW1swLTldXSpcKS4qL1wxLydgCisgICAgIG1pbm9yPWBlY2hvICRsaWJnY3J5cHRfY29uZmlnX3ZlcnNpb24gfCBcCitAQCAtODIsNyArODIsNyBAQCBBQ19ERUZVTihbQU1fUEFUSF9MSUJHQ1JZUFRdLAorICAgICAgIyBJZiB3ZSBoYXZlIGEgcmVjZW50IGxpYmdjcnlwdCwgd2Ugc2hvdWxkIGFsc28gY2hlY2sgdGhhdCB0aGUKKyAgICAgICMgQVBJIGlzIGNvbXBhdGlibGUKKyAgICAgIGlmIHRlc3QgIiRyZXFfbGliZ2NyeXB0X2FwaSIgLWd0IDAgOyB0aGVuCistICAgICAgICB0bXA9YCRMSUJHQ1JZUFRfQ09ORklHIC0tYXBpLXZlcnNpb24gMj4vZGV2L251bGwgfHwgZWNobyAwYAorKyAgICAgICAgdG1wPWAkUEtHX0NPTkZJRyAtLWFwaS12ZXJzaW9uIGxpYmdjcnlwdCAyPi9kZXYvbnVsbCB8fCBlY2hvIDBgCisgICAgICAgICBpZiB0ZXN0ICIkdG1wIiAtZ3QgMCA7IHRoZW4KKyAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbTElCR0NSWVBUIEFQSSB2ZXJzaW9uXSkKKyAgICAgICAgICAgIGlmIHRlc3QgIiRyZXFfbGliZ2NyeXB0X2FwaSIgLWVxICIkdG1wIiA7IHRoZW4KK0BAIC05NSw4ICs5NSw4IEBAIEFDX0RFRlVOKFtBTV9QQVRIX0xJQkdDUllQVF0sCisgICAgICBmaQorICAgZmkKKyAgIGlmIHRlc3QgJG9rID0geWVzOyB0aGVuCistICAgIExJQkdDUllQVF9DRkxBR1M9YCRMSUJHQ1JZUFRfQ09ORklHIC0tY2ZsYWdzYAorLSAgICBMSUJHQ1JZUFRfTElCUz1gJExJQkdDUllQVF9DT05GSUcgLS1saWJzYAorKyAgICBMSUJHQ1JZUFRfQ0ZMQUdTPWAkUEtHX0NPTkZJRyAtLWNmbGFncyBsaWJnY3J5cHRgCisrICAgIExJQkdDUllQVF9MSUJTPWAkUEtHX0NPTkZJRyAtLWxpYnMgbGliZ2NyeXB0YAorICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKQorICAgZWxzZQorICAgICBMSUJHQ1JZUFRfQ0ZMQUdTPSIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvd2lyZXNoYXJrL3dpcmVzaGFya18yLjIuMTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvd2lyZXNoYXJrL3dpcmVzaGFya18yLjIuMTAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzNThiYTAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3dpcmVzaGFyay93aXJlc2hhcmtfMi4yLjEwLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAid2lyZXNoYXJrIC0gYSBwb3B1bGFyIG5ldHdvcmsgcHJvdG9jb2wgYW5hbHl6ZXIiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LndpcmVzaGFyay5vcmciCi1TRUNUSU9OID0gIm5ldCIKLUxJQ0VOU0UgPSAiR1BMLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTZlMjcxMjM0YmExYTEzYzZlNTEyZTc2Yjk0YWMyZjc3IgotCi1ERVBFTkRTID0gInBjcmUgZXhwYXQgZ2xpYi0yLjAgZ2xpYi0yLjAtbmF0aXZlIgotCi1TUkNfVVJJID0gImh0dHBzOi8vMi5uYS5kbC53aXJlc2hhcmsub3JnL3NyYy9hbGwtdmVyc2lvbnMvJHtCUH0udGFyLmJ6MiIKLQotUEUgPSAiMSIKLQotU1JDX1VSSVttZDVzdW1dID0gImFlM2ExYTQzYTZlMzY4N2Y0NGE3MzhmZDE1ZDc4MDIxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg1NzRhNWUxZmRlYzdhZmZhZTY0MDkyNGJkNDZjMWFlZDFiZDg2NmUwMjYzMmZhNTYyNWUxNDUwZTRhNTA3MDciCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBwZXJsbmF0aXZlCi0KLUFSTV9JTlNUUlVDVElPTl9TRVQgPSAiYXJtIgotCi1QQUNLQUdFQ09ORklHID89ICJsaWJwY2FwIGdudXRscyBsaWJubCBsaWJjYXAgc2JjIgotUEFDS0FHRUNPTkZJRyArPSAiICR7QGJiLnV0aWxzLmNvbnRhaW5zKCJESVNUUk9fRkVBVFVSRVMiLCAieDExIiwgImd0azIgZ3JhcGhpY3MiLCAiIiwgZCl9IgotI1BBQ0tBR0VDT05GSUcgKz0gIiAke0BiYi51dGlscy5jb250YWlucygiRElTVFJPX0ZFQVRVUkVTIiwgIm9wZW5nbCIsICJndGszIiwgIiIsIGQpfSIKLQotUEFDS0FHRUNPTkZJR1tsaWJjYXBdID0gIi0td2l0aC1saWJjYXA9JHtTVEFHSU5HX0xJQkRJUn0sIC0td2l0aC1saWJjYXA9bm8gLS1lbmFibGUtcGNhcC1uZy1kZWZhdWx0ICwgbGliY2FwIgotUEFDS0FHRUNPTkZJR1tsaWJwY2FwXSA9ICItLXdpdGgtcGNhcD0ke1NUQUdJTkdfTElCRElSfSAtLXdpdGgtcGNhcC1yZW1vdGUsIC0td2l0aC1wY2FwPW5vIC0tZW5hYmxlLXBjYXAtbmctZGVmYXVsdCAgLCBsaWJwY2FwIgotUEFDS0FHRUNPTkZJR1tsaWJzbWldID0gIi0td2l0aC1saWJzbWk9eWVzLCAtLXdpdGgtbGlic21pPW5vLCBsaWJzbWkiCi1QQUNLQUdFQ09ORklHW2xpYm5sXSA9ICItLXdpdGgtbGlibmw9eWVzLCAtLXdpdGgtbGlibmw9bm8sIGxpYm5sIgotUEFDS0FHRUNPTkZJR1twb3J0YXVkaW9dID0gIi0td2l0aC1wb3J0YXVkaW89eWVzLCAtLXdpdGgtcG9ydGF1ZGlvPW5vLCBwb3J0YXVkaW8tdjE5IgotUEFDS0FHRUNPTkZJR1tndGsyXSA9ICItLXdpdGgtZ3RrPTIsICwgZ3RrKyIKLVBBQ0tBR0VDT05GSUdbZ3RrM10gPSAiLS13aXRoLWd0az0zLCAsIGd0ayszIgotUEFDS0FHRUNPTkZJR1tncmFwaGljc10gPSAiLS1lbmFibGUtd2lyZXNoYXJrLCAtLXdpdGgtZ3RrPW5vIC0tZGlzYWJsZS13aXJlc2hhcmssIgotUEFDS0FHRUNPTkZJR1tnbnV0bHNdID0gIi0td2l0aC1nbnV0bHM9eWVzLCAtLXdpdGgtZ251dGxzPW5vLCBnbnV0bHMiCi1QQUNLQUdFQ09ORklHW2djcnlwdF0gPSAiLS13aXRoLWdjcnlwdD15ZXMsIC0td2l0aC1nY3J5cHQ9bm8sIGxpYmdjcnlwdCIKLVBBQ0tBR0VDT05GSUdbc3NsXSA9ICItLXdpdGgtc3NsPXllcywgLS13aXRoLXNzbD1ubywgb3BlbnNzbCIKLVBBQ0tBR0VDT05GSUdba3JiNV0gPSAiLS13aXRoLWtyYjU9eWVzLCAtLXdpdGgta3JiNT1ubywga3JiNSIKLVBBQ0tBR0VDT05GSUdbbHVhXSA9ICItLXdpdGgtbHVhPXllcywgLS13aXRoLWx1YT1ubywgbHVhIgotUEFDS0FHRUNPTkZJR1t6bGliXSA9ICItLXdpdGgtemxpYj15ZXMsIC0td2l0aC16bGliPW5vLCB6bGliIgotUEFDS0FHRUNPTkZJR1tnZW9pcF0gPSAiLS13aXRoLWdlb2lwPXllcywgLS13aXRoLWdlb2lwPW5vLCBnZW9pcCIKLVBBQ0tBR0VDT05GSUdbcGx1Z2luc10gPSAiLS13aXRoLXBsdWdpbnM9eWVzLCAtLXdpdGgtcGx1Z2lucz1ubyIKLVBBQ0tBR0VDT05GSUdbc2JjXSA9ICItLXdpdGgtc2JjPXllcywgLS13aXRoLXNiYz1ubywgc2JjIgotCi1QQUNLQUdFQ09ORklHW2xpYnNzaF0gPSAiLS13aXRoLXNzaD15ZXMsIC0td2l0aC1zc2g9bm8sIGxpYnNzaDIiCi0KLQotIyB0aGVzZSBuZXh0IHR3byBvcHRpb25zIHJlcXVpcmUgYWRkaW9uYWwgbGF5ZXJzCi1QQUNLQUdFQ09ORklHW2MtYXJlc10gPSAiLS13aXRoLWMtYXJlcz15ZXMsIC0td2l0aC1jLWFyZXM9bm8sIGMtYXJlcyIKLQotRVhUUkFfT0VDT05GICs9ICItLXdpdGgtcXQ9bm8gLS1lbmFibGUtdHNoYXJrIC0tZW5hYmxlLXJhd3NoYXJrIgotCi0jIEN1cnJlbnRseSB3aXJlc2hhcmsgZG9lcyBub3QgaW5zdGFsbCBoZWFkZXIgZmlsZXMKLWRvX2luc3RhbGxfYXBwZW5kICgpIHsKLQotCWluc3RhbGwgLWQgJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfQotCWluc3RhbGwgLWQgJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuCi0JaW5zdGFsbCAtZCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vY3J5cHQKLQlpbnN0YWxsIC1kICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi9kZmlsdGVyCi0JaW5zdGFsbCAtZCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vZGlzc2VjdG9ycwotCWluc3RhbGwgLWQgJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2Z0eXBlcwotCWluc3RhbGwgLWQgJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL3dtZW0KLQotCWluc3RhbGwgY29uZmlnLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfQotCWluc3RhbGwgJHtTfS9yZWdpc3Rlci5oICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0KLQlpbnN0YWxsIC1EICR7U30vZXBhbi8qLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuCi0JaW5zdGFsbCAtRCAke1N9L2VwYW4vY3J5cHQvKi5oICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi9jcnlwdAotCWluc3RhbGwgLUQgJHtTfS9lcGFuL2RmaWx0ZXIvKi5oICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi9kZmlsdGVyCi0JaW5zdGFsbCAtRCAke1N9L2VwYW4vZGlzc2VjdG9ycy8qLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2Rpc3NlY3RvcnMKLQlpbnN0YWxsIC1EICR7U30vZXBhbi9mdHlwZXMvKi5oICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi9mdHlwZXMKLQlpbnN0YWxsIC1EICR7U30vZXBhbi93bWVtLyouaCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vd21lbQotfQotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfSoiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvd2lyZXNoYXJrL3dpcmVzaGFya18yLjQuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC93aXJlc2hhcmsvd2lyZXNoYXJrXzIuNC42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYTBhN2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvd2lyZXNoYXJrL3dpcmVzaGFya18yLjQuNi5iYgpAQCAtMCwwICsxLDczIEBACitERVNDUklQVElPTiA9ICJ3aXJlc2hhcmsgLSBhIHBvcHVsYXIgbmV0d29yayBwcm90b2NvbCBhbmFseXplciIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cud2lyZXNoYXJrLm9yZyIKK1NFQ1RJT04gPSAibmV0IgorTElDRU5TRSA9ICJHUEwtMi4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NmUyNzEyMzRiYTFhMTNjNmU1MTJlNzZiOTRhYzJmNzciCisKK0RFUEVORFMgPSAicGNyZSBleHBhdCBnbGliLTIuMCBnbGliLTIuMC1uYXRpdmUgbGliZ2NyeXB0IGxpYmdwZy1lcnJvciIKKworU1JDX1VSSSA9ICJodHRwczovLzEuYXMuZGwud2lyZXNoYXJrLm9yZy9zcmMvJHtCUH0udGFyLnh6IgorU1JDX1VSSSArPSAiZmlsZTovL2xpYmdjcnlwdC5wYXRjaCIKKworVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHBzOi8vMS5hcy5kbC53aXJlc2hhcmsub3JnL3NyYyIKKworU1JDX1VSSVttZDVzdW1dID0gIjhjZmI3M2UyODZkZDY0MjdjYTQ0MDVlNmU4MDJkMTNlIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjhlOTY1ZmQyODJiYzBjMDllN2M0ZWJhNWYwOGE1NTVkMGNjZjQwYTdkMTU0NGI5MzllMDFiOTBiYzg5M2Q1ZmUiCisKK1BFID0gIjEiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBwZXJsbmF0aXZlIHVwc3RyZWFtLXZlcnNpb24taXMtZXZlbgorCitBUk1fSU5TVFJVQ1RJT05fU0VUID0gImFybSIKKworUEFDS0FHRUNPTkZJRyA/PSAibGlicGNhcCBnbnV0bHMgbGlibmwgbGliY2FwIHNiYyIKK1BBQ0tBR0VDT05GSUcgKz0gIiAke0BiYi51dGlscy5jb250YWlucygiRElTVFJPX0ZFQVRVUkVTIiwgIngxMSIsICJndGsyIGdyYXBoaWNzIiwgIiIsIGQpfSIKKworUEFDS0FHRUNPTkZJR1tsaWJjYXBdID0gIi0td2l0aC1saWJjYXA9JHtTVEFHSU5HX0RJUl9IT1NUfS91c3IsIC0td2l0aC1saWJjYXA9bm8gLS1lbmFibGUtcGNhcC1uZy1kZWZhdWx0ICwgbGliY2FwIgorUEFDS0FHRUNPTkZJR1tsaWJwY2FwXSA9ICItLXdpdGgtcGNhcD0ke1NUQUdJTkdfRElSX0hPU1R9L3VzciAtLXdpdGgtcGNhcC1yZW1vdGUsIC0td2l0aC1wY2FwPW5vIC0tZW5hYmxlLXBjYXAtbmctZGVmYXVsdCAgLCBsaWJwY2FwIgorUEFDS0FHRUNPTkZJR1tsaWJzbWldID0gIi0td2l0aC1saWJzbWk9eWVzLCAtLXdpdGgtbGlic21pPW5vLCBsaWJzbWkiCitQQUNLQUdFQ09ORklHW2xpYm5sXSA9ICItLXdpdGgtbGlibmw9eWVzLCAtLXdpdGgtbGlibmw9bm8sIGxpYm5sIgorUEFDS0FHRUNPTkZJR1twb3J0YXVkaW9dID0gIi0td2l0aC1wb3J0YXVkaW89eWVzLCAtLXdpdGgtcG9ydGF1ZGlvPW5vLCBwb3J0YXVkaW8tdjE5IgorUEFDS0FHRUNPTkZJR1tndGsyXSA9ICItLXdpdGgtZ3RrPTIsICwgZ3RrKyIKK1BBQ0tBR0VDT05GSUdbZ3RrM10gPSAiLS13aXRoLWd0az0zLCAsIGd0ayszIgorUEFDS0FHRUNPTkZJR1tncmFwaGljc10gPSAiLS1lbmFibGUtd2lyZXNoYXJrLCAtLXdpdGgtZ3RrPW5vIC0tZGlzYWJsZS13aXJlc2hhcmssIgorUEFDS0FHRUNPTkZJR1tnbnV0bHNdID0gIi0td2l0aC1nbnV0bHM9eWVzLCAtLXdpdGgtZ251dGxzPW5vLCBnbnV0bHMiCitQQUNLQUdFQ09ORklHW3NzbF0gPSAiLS13aXRoLXNzbD15ZXMsIC0td2l0aC1zc2w9bm8sIG9wZW5zc2wiCitQQUNLQUdFQ09ORklHW2tyYjVdID0gIi0td2l0aC1rcmI1PXllcywgLS13aXRoLWtyYjU9bm8sIGtyYjUiCitQQUNLQUdFQ09ORklHW2x1YV0gPSAiLS13aXRoLWx1YT15ZXMsIC0td2l0aC1sdWE9bm8sIGx1YSIKK1BBQ0tBR0VDT05GSUdbemxpYl0gPSAiLS13aXRoLXpsaWI9eWVzLCAtLXdpdGgtemxpYj1ubywgemxpYiIKK1BBQ0tBR0VDT05GSUdbZ2VvaXBdID0gIi0td2l0aC1nZW9pcD15ZXMsIC0td2l0aC1nZW9pcD1ubywgZ2VvaXAiCitQQUNLQUdFQ09ORklHW3BsdWdpbnNdID0gIi0td2l0aC1wbHVnaW5zPXllcywgLS13aXRoLXBsdWdpbnM9bm8iCitQQUNLQUdFQ09ORklHW3NiY10gPSAiLS13aXRoLXNiYz15ZXMsIC0td2l0aC1zYmM9bm8sIHNiYyIKK1BBQ0tBR0VDT05GSUdbbGlic3NoXSA9ICItLXdpdGgtbGlic3NoPSR7U1RBR0lOR19ESVJfSE9TVH0vdXNyLCAtLXdpdGgtbGlic3NoPW5vLCBsaWJzc2gyIgorUEFDS0FHRUNPTkZJR1tsejRdID0gIi0td2l0aC1sejQ9JHtTVEFHSU5HX0RJUl9IT1NUfS91c3IsIC0td2l0aC1sejQ9bm8sIGx6NCIKKworIyB0aGVzZSBuZXh0IHR3byBvcHRpb25zIHJlcXVpcmUgYWRkaW9uYWwgbGF5ZXJzCitQQUNLQUdFQ09ORklHW2MtYXJlc10gPSAiLS13aXRoLWMtYXJlcz15ZXMsIC0td2l0aC1jLWFyZXM9bm8sIGMtYXJlcyIKKworRVhUUkFfT0VDT05GICs9ICItLXdpdGgtbGliZ2NyeXB0LXByZWZpeD0ke1BLR19DT05GSUdfRElSfSAtLXdpdGgtcXQ9bm8gLS1lbmFibGUtdHNoYXJrIC0tZW5hYmxlLXJhd3NoYXJrIgorCitMREZMQUdTX2FwcGVuZCA9ICIgLWxncGctZXJyb3IiCisKKyMgQ3VycmVudGx5IHdpcmVzaGFyayBkb2VzIG5vdCBpbnN0YWxsIGhlYWRlciBmaWxlcworZG9faW5zdGFsbF9hcHBlbmQgKCkgeworCisJaW5zdGFsbCAtZCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59CisJaW5zdGFsbCAtZCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4KKwlpbnN0YWxsIC1kICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi9jcnlwdAorCWluc3RhbGwgLWQgJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2RmaWx0ZXIKKwlpbnN0YWxsIC1kICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi9kaXNzZWN0b3JzCisJaW5zdGFsbCAtZCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vZnR5cGVzCisJaW5zdGFsbCAtZCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vd21lbQorCisJaW5zdGFsbCBjb25maWcuaCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59CisJaW5zdGFsbCAke1N9L3JlZ2lzdGVyLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfQorCWluc3RhbGwgLUQgJHtTfS9lcGFuLyouaCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4KKwlpbnN0YWxsIC1EICR7U30vZXBhbi9jcnlwdC8qLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2NyeXB0CisJaW5zdGFsbCAtRCAke1N9L2VwYW4vZGZpbHRlci8qLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2RmaWx0ZXIKKwlpbnN0YWxsIC1EICR7U30vZXBhbi9kaXNzZWN0b3JzLyouaCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vZGlzc2VjdG9ycworCWluc3RhbGwgLUQgJHtTfS9lcGFuL2Z0eXBlcy8qLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2Z0eXBlcworCWluc3RhbGwgLUQgJHtTfS9lcGFuL3dtZW0vKi5oICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi93bWVtCit9CisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9KiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC93cGFuLXRvb2xzL3dwYW4tdG9vbHNfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3dwYW4tdG9vbHMvd3Bhbi10b29sc19naXQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZkMmY2OQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC93cGFuLXRvb2xzL3dwYW4tdG9vbHNfZ2l0LmJiCkBAIC0wLDAgKzEsMTggQEAKK1NVTU1BUlkgPSAiVXNlcnNwYWNlIHRvb2xzIGZvciBMaW51eCBJRUVFIDgwMi4xNS40IHN0YWNrIgorSE9NRVBBR0UgPSAiaHR0cDovL3dwYW4uY2FrZWxhYi5vcmcvcmVsZWFzZXMvIgorREVTQ1JJUFRJT04gPSAiVGhpcyBpcyBhIHNldCBvZiB1dGlscyB0byBtYW5hZ2UgdGhlIExpbnV4IFdQQU4gc3RhY2sgdmlhIFwKK25ldGxpbmsgaW50ZXJmYWNlLiBUaGlzIHJlcXVpcmVzIHJlY2VudCBrZXJuZWwgd2l0aCBubDgwMjE1NCBpbnRlcmZhY2UuIgorCitMSUNFTlNFID0gIklTQyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTRjZmQ5MzliMWQ3ZTZhYmE5ZmNlZmI3ZjZlMmZkNDVkIgorCitERVBFTkRTID0gImxpYm5sIgorCitQViA9ICIwLjgrZ2l0JHtTUkNQVn0iCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbGludXgtd3Bhbi93cGFuLXRvb2xzIFwKKyAgICAgICAgICAgIgorU1JDUkVWID0gIjNmNDczZjUxMzZmODk3NzM5OTdjYjRmZmYyZDhlZDY0NzczNGUyZjUiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3NpdGUvZW5kaWFuLWJpZyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3NpdGUvZW5kaWFuLWJpZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3NpdGUvZW5kaWFuLWJpZwpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvc2l0ZS9lbmRpYW4tYmlnCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2Uvc2l0ZS9lbmRpYW4tbGl0dGxlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvc2l0ZS9lbmRpYW4tbGl0dGxlCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2Uvc2l0ZS9lbmRpYW4tbGl0dGxlCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9zaXRlL2VuZGlhbi1saXR0bGUKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9SRUFETUUgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvUkVBRE1FCmluZGV4IGRhYmVkMmYuLjdjZGUwYTIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9SRUFETUUKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL1JFQURNRQpAQCAtMSwxNSArMSwxNCBAQAogVGhpcyBsYXllciBkZXBlbmRzIG9uOgogCiBVUkk6IGdpdDovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL29lLWNvcmUuZ2l0Ci1icmFuY2g6IHJvY2tvCiticmFuY2g6IG1hc3RlcgogcmV2aXNpb246IEhFQUQKIAotU2VuZCBwdWxsIHJlcXVlc3RzIHRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIHdpdGggJ1ttZXRhLW9lXVtyb2Nrb10nIGluIHRoZSBzdWJqZWN0JworU2VuZCBwdWxsIHJlcXVlc3RzIHRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIHdpdGggJ1ttZXRhLW9lXScgaW4gdGhlIHN1YmplY3QnCiAKIFdoZW4gc2VuZGluZyBzaW5nbGUgcGF0Y2hlcywgcGxlYXNlIHVzZSBzb21ldGhpbmcgbGlrZToKLSdnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1vZV1bcm9ja29dW1BBVENIJworJ2dpdCBzZW5kLWVtYWlsIC1NIC0xIC0tdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgLS1zdWJqZWN0LXByZWZpeD1tZXRhLW9lXVtQQVRDSCcKIAogWW91IGFyZSBlbmNvdXJhZ2VkIHRvIGZvcmsgdGhlIG1pcnJvciBvbiBnaXRodWIgaHR0cHM6Ly9naXRodWIuY29tL29wZW5lbWJlZGRlZC9tZXRhLW9lLyB0byBzaGFyZSB5b3VyIHBhdGNoZXMsIHRoaXMgaXMgcHJlZmVycmVkIGZvciBwYXRjaCBzZXRzIGNvbnNpc3Rpbmcgb2YgbW9yZSB0aGFuIG9uZSBwYXRjaC4gT3RoZXIgc2VydmljZXMgbGlrZSBnaXRvcmlvdXMsIHJlcG8ub3IuY3ogb3Igc2VsZiBob3N0ZWQgc2V0dXBzIGFyZSBvZiBjb3Vyc2UgYWNjZXB0ZWQgYXMgd2VsbCwgJ2dpdCBmZXRjaCA8cmVtb3RlPicgd29ya3MgdGhlIHNhbWUgb24gYWxsIG9mIHRoZW0uIFdlIHJlY29tbWVuZCBnaXRodWIgYmVjYXVzZSBpdCBpcyBmcmVlLCBlYXN5IHRvIHVzZSwgaGFzIGJlZW4gcHJvdmVuIHRvIGJlIHJlbGlhYmxlIGFuZCBoYXMgYSByZWFsbHkgZ29vZCB3ZWIgR1VJLgogCi1yb2NrbyBCcmFuY2ggTWFpbnRhaW5lcjoKLUFybWluIEt1c3RlciA8YWt1c3RlcjgwOEBnbWFpbC5jb20+CitNYWluIGxheWVyIG1haW50YWluZXI6IEFybWluIEt1c3RlciA8YWt1c3RlcjgwOEBnbWFpbC5jb20+CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvY2xhc3Nlcy9naXR2ZXIuYmJjbGFzcyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9jbGFzc2VzL2dpdHZlci5iYmNsYXNzCmluZGV4IDM4MDM3NGEuLjA3ZjQ0YzMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9jbGFzc2VzL2dpdHZlci5iYmNsYXNzCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9jbGFzc2VzL2dpdHZlci5iYmNsYXNzCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuICIwLjAiCiAKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGM6Ci0gICAgICAgICAgICByYWlzZSBiYi5wYXJzZS5Ta2lwUGFja2FnZShzdHIoZXhjKSkKKyAgICAgICAgICAgIHJhaXNlIGJiLnBhcnNlLlNraXBSZWNpcGUoc3RyKGV4YykpCiAKICAgICBpZiB2ZXIgYW5kIHRhZ2FkanVzdDoKICAgICAgICAgdmVyID0gdGFnYWRqdXN0KHZlcikKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9jbGFzc2VzL21lc29uLmJiY2xhc3MgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvY2xhc3Nlcy9tZXNvbi5iYmNsYXNzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDliYzI0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9jbGFzc2VzL21lc29uLmJiY2xhc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotaW5oZXJpdCBweXRob24zbmF0aXZlCi0KLURFUEVORFNfYXBwZW5kID0gIiBtZXNvbi1uYXRpdmUgbmluamEtbmF0aXZlIgotCi0jIEFzIE1lc29uIGVuZm9yY2VzIG91dC1vZi10cmVlIGJ1aWxkcyB3ZSBjYW4ganVzdCB1c2UgY2xlYW5kaXJzCi1CID0gIiR7V09SS0RJUn0vYnVpbGQiCi1kb19jb25maWd1cmVbY2xlYW5kaXJzXSA9ICIke0J9IgotCi0jIFdoZXJlIHRoZSBtZXNvbi5idWlsZCBidWlsZCBjb25maWd1cmF0aW9uIGlzCi1NRVNPTl9TT1VSQ0VQQVRIID0gIiR7U30iCi0KLSMgVGhlc2UgdmFyaWFibGVzIGluIHRoZSBlbnZpcm9ubWVudCBvdmVycmlkZSB0aGUgKm5hdGl2ZSogdG9vbHMsIG5vdCB0aGUgY3Jvc3MuCi1leHBvcnQgQ1BQRkxBR1MgPSAiJHtCVUlMRF9DUFBGTEFHU30iCi1leHBvcnQgQ0MgPSAiJHtCVUlMRF9DQ30iCi1leHBvcnQgQ0ZMQUdTID0gIiR7QlVJTERfQ0ZMQUdTfSIKLWV4cG9ydCBDWFggPSAiJHtCVUlMRF9DWFh9IgotZXhwb3J0IENYWEZMQUdTID0gIiR7QlVJTERfQ1hYRkxBR1N9IgotZXhwb3J0IExEID0gIiR7QlVJTERfTER9IgotZXhwb3J0IExERkxBR1MgPSAiJHtCVUlMRF9MREZMQUdTfSIKLWV4cG9ydCBBUiA9ICIke0JVSUxEX0FSfSIKLWV4cG9ydCBQS0dfQ09ORklHID0gInBrZy1jb25maWctbmF0aXZlIgotCi1kZWYgbm9wcmVmaXgodmFyLCBkKToKLSAgICByZXR1cm4gZC5nZXRWYXIodmFyLCBUcnVlKS5yZXBsYWNlKGQuZ2V0VmFyKCdwcmVmaXgnLCBUcnVlKSArICcvJywgJycsIDEpCi0KLU1FU09OT1BUUyA9ICIgLS1wcmVmaXggJHtwcmVmaXh9IFwKLSAgICAgICAgICAgICAgLS1iaW5kaXIgJHtAbm9wcmVmaXgoJ2JpbmRpcicsIGQpfSBcCi0gICAgICAgICAgICAgIC0tc2JpbmRpciAke0Bub3ByZWZpeCgnc2JpbmRpcicsIGQpfSBcCi0gICAgICAgICAgICAgIC0tZGF0YWRpciAke0Bub3ByZWZpeCgnZGF0YWRpcicsIGQpfSBcCi0gICAgICAgICAgICAgIC0tbGliZGlyICR7QG5vcHJlZml4KCdsaWJkaXInLCBkKX0gXAotICAgICAgICAgICAgICAtLWxpYmV4ZWNkaXIgJHtAbm9wcmVmaXgoJ2xpYmV4ZWNkaXInLCBkKX0gXAotICAgICAgICAgICAgICAtLWluY2x1ZGVkaXIgJHtAbm9wcmVmaXgoJ2luY2x1ZGVkaXInLCBkKX0gXAotICAgICAgICAgICAgICAtLW1hbmRpciAke0Bub3ByZWZpeCgnbWFuZGlyJywgZCl9IFwKLSAgICAgICAgICAgICAgLS1pbmZvZGlyICR7QG5vcHJlZml4KCdpbmZvZGlyJywgZCl9IFwKLSAgICAgICAgICAgICAgLS1zeXNjb25mZGlyICR7c3lzY29uZmRpcn0gXAotICAgICAgICAgICAgICAtLWxvY2Fsc3RhdGVkaXIgJHtsb2NhbHN0YXRlZGlyfSBcCi0gICAgICAgICAgICAgIC0tc2hhcmVkc3RhdGVkaXIgJHtzaGFyZWRzdGF0ZWRpcn0iCi0KLU1FU09OX0NfQVJHUyA9ICIke1RBUkdFVF9DQ19BUkNIfSR7VE9PTENIQUlOX09QVElPTlN9IgotTUVTT05fTElOS19BUkdTID0gIiR7TUVTT05fQ19BUkdTfSAke0xERkxBR1N9IgotCi1NRVNPTl9IT1NUX0VORElBTiA9ICIke0BiYi51dGlscy5jb250YWlucygnU0lURUlORk9fRU5ESUFOTkVTUycsICdiZScsICdiaWcnLCAnbGl0dGxlJywgZCl9IgotTUVTT05fVEFSR0VUX0VORElBTiA9ICIke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICdiaWdlbmRpYW4nLCAnYmlnJywgJ2xpdHRsZScsIGQpfSIKLQotRVhUUkFfT0VNRVNPTiArPSAiJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfSIKLQotTUVTT05fQ1JPU1NfRklMRSA9ICIiCi1NRVNPTl9DUk9TU19GSUxFX2NsYXNzLXRhcmdldCA9ICItLWNyb3NzLWZpbGUgJHtXT1JLRElSfS9tZXNvbi5jcm9zcyIKLQotZGVmIG1lc29uX2FycmF5KHZhciwgZCk6Ci0gICAgcmV0dXJuICInLCAnIi5qb2luKGQuZ2V0VmFyKHZhciwgVHJ1ZSkuc3BsaXQoKSkuam9pbigoIiciLCAiJyIpKQotCi1hZGR0YXNrIHdyaXRlX2NvbmZpZyBiZWZvcmUgZG9fY29uZmlndXJlCi1kb193cml0ZV9jb25maWdbdmFyZGVwc10gKz0gIk1FU09OX0NfQVJHUyBUT09MQ0hBSU5fT1BUSU9OUyIKLWRvX3dyaXRlX2NvbmZpZygpIHsKLSAgICAjIFRoaXMgbmVlZHMgdG8gYmUgUHkgdG8gc3BsaXQgdGhlIGFyZ3MgaW50byBzaW5nbGUtZWxlbWVudCBsaXN0cwotICAgIGNhdCA+JHtXT1JLRElSfS9tZXNvbi5jcm9zcyA8PEVPRgotW2JpbmFyaWVzXQotYyA9ICcke0hPU1RfUFJFRklYfWdjYycKLWNwcCA9ICcke0hPU1RfUFJFRklYfWcrKycKLWFyID0gJyR7SE9TVF9QUkVGSVh9YXInCi1sZCA9ICcke0hPU1RfUFJFRklYfWxkJwotc3RyaXAgPSAnJHtIT1NUX1BSRUZJWH1zdHJpcCcKLXJlYWRlbGYgPSAnJHtIT1NUX1BSRUZJWH1yZWFkZWxmJwotcGtnY29uZmlnID0gJ3BrZy1jb25maWcnCi0KLVtwcm9wZXJ0aWVzXQotbmVlZHNfZXhlX3dyYXBwZXIgPSB0cnVlCi1jX2FyZ3MgPSBbJHtAbWVzb25fYXJyYXkoJ01FU09OX0NfQVJHUycsIGQpfV0KLWNfbGlua19hcmdzID0gWyR7QG1lc29uX2FycmF5KCdNRVNPTl9MSU5LX0FSR1MnLCBkKX1dCi1jcHBfYXJncyA9IFske0BtZXNvbl9hcnJheSgnTUVTT05fQ19BUkdTJywgZCl9XQotY3BwX2xpbmtfYXJncyA9IFske0BtZXNvbl9hcnJheSgnTUVTT05fTElOS19BUkdTJywgZCl9XQotCi1baG9zdF9tYWNoaW5lXQotc3lzdGVtID0gJyR7SE9TVF9PU30nCi1jcHVfZmFtaWx5ID0gJyR7SE9TVF9BUkNIfScKLWNwdSA9ICcke0hPU1RfQVJDSH0nCi1lbmRpYW4gPSAnJHtNRVNPTl9IT1NUX0VORElBTn0nCi0KLVt0YXJnZXRfbWFjaGluZV0KLXN5c3RlbSA9ICcke1RBUkdFVF9PU30nCi1jcHVfZmFtaWx5ID0gJyR7VEFSR0VUX0FSQ0h9JwotY3B1ID0gJyR7VEFSR0VUX0FSQ0h9JwotZW5kaWFuID0gJyR7TUVTT05fVEFSR0VUX0VORElBTn0nCi1FT0YKLX0KLQotQ09ORklHVVJFX0ZJTEVTID0gIm1lc29uLmJ1aWxkIgotCi1tZXNvbl9kb19jb25maWd1cmUoKSB7Ci0gICAgaWYgISBtZXNvbiAke01FU09OT1BUU30gIiR7TUVTT05fU09VUkNFUEFUSH0iICIke0J9IiAke01FU09OX0NST1NTX0ZJTEV9ICR7RVhUUkFfT0VNRVNPTn07IHRoZW4KLSAgICAgICAgY2F0ICR7Qn0vbWVzb24tbG9ncy9tZXNvbi1sb2cudHh0Ci0gICAgICAgIGJiZmF0YWxfbG9nIG1lc29uIGZhaWxlZAotICAgIGZpCi19Ci0KLWRvX2NvbXBpbGVbcHJvZ3Jlc3NdID0gIm91dG9mOl5cWyhcZCspLyhcZCspXF1ccysiCi1tZXNvbl9kb19jb21waWxlKCkgewotICAgIG5pbmphICR7UEFSQUxMRUxfTUFLRX0KLX0KLQotbWVzb25fZG9faW5zdGFsbCgpIHsKLSAgICBERVNURElSPScke0R9JyBuaW5qYSAke1BBUkFMTEVMX01BS0VJTlNUfSBpbnN0YWxsCi19Ci0KLUVYUE9SVF9GVU5DVElPTlMgZG9fY29uZmlndXJlIGRvX2NvbXBpbGUgZG9faW5zdGFsbApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9jb25mL2xheWVyLmNvbmYKaW5kZXggZDg0YmQwOS4uMWE0MzU3NSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvY29uZi9sYXllci5jb25mCkBAIC0yOSw2ICsyOSw4IEBACiAKIExBWUVSREVQRU5EU19vcGVuZW1iZWRkZWQtbGF5ZXIgPSAiY29yZSIKIAorTEFZRVJTRVJJRVNfQ09NUEFUX29wZW5lbWJlZGRlZC1sYXllciA9ICJzdW1vIgorCiBMSUNFTlNFX1BBVEggKz0gIiR7TEFZRVJESVJ9L2xpY2Vuc2VzIgogCiBTSUdHRU5fRVhDTFVERVJFQ0lQRVNfQUJJU0FGRSArPSAiIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9nbG1hcmsyL2ZpbGVzL0ZpeC1jb25maWd1cmUtZm9yLXNxcnQtY2hlY2sucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvZ2xtYXJrMi9maWxlcy9GaXgtY29uZmlndXJlLWZvci1zcXJ0LWNoZWNrLnBhdGNoCmluZGV4IGZkZTgyMzguLjdkZTA1ZWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9nbG1hcmsyL2ZpbGVzL0ZpeC1jb25maWd1cmUtZm9yLXNxcnQtY2hlY2sucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2dsbWFyazIvZmlsZXMvRml4LWNvbmZpZ3VyZS1mb3Itc3FydC1jaGVjay5wYXRjaApAQCAtMSwxMyArMSwyMSBAQAotSW5kZXg6IGdpdC93c2NyaXB0Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2l0Lm9yaWcvd3NjcmlwdAkyMDE2LTA3LTI5IDEzOjE1OjQ0Ljk1NDI0OTc5NiAtMDUwMAotKysrIGdpdC93c2NyaXB0CTIwMTYtMDctMjkgMTU6NTI6MDYuMTk2NzY4ODY1IC0wNTAwCi1AQCAtOTAsNyArOTAsNyBAQAotICAgICAgICAgY3R4LmNoZWNrX2N4eChsaWIgPSBsaWIsIHVzZWxpYl9zdG9yZSA9IHVzZWxpYikKK0Zyb20gOWZiMjk4YzM5OGY4OGE2M2Q3MTQzMmJlMTQxMGQ1MmZhZTA4OTA2MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRvbSBIb2Noc3RlaW4gPHRvbS5ob2Noc3RlaW5AbnhwLmNvbT4KK0RhdGU6IE1vbiwgOCBBdWcgMjAxNiAxMTozOTo1NCAtMDUwMAorCistLS0KKyB3c2NyaXB0IHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvd3NjcmlwdCBiL3dzY3JpcHQKK2luZGV4IGNhODQzZjQuLmViNGEyNmEgMTAwNjQ0CistLS0gYS93c2NyaXB0CisrKysgYi93c2NyaXB0CitAQCAtODQsNyArODQsNyBAQCBkZWYgY29uZmlndXJlKGN0eCk6CisgICAgICAgICBjdHguY2hlY2tfY2MobGliID0gbGliLCB1c2VsaWJfc3RvcmUgPSB1c2VsaWIpCiAgCiAgICAgICMgQ2hlY2sgcmVxdWlyZWQgZnVuY3Rpb25zCiAtICAgIHJlcV9mdW5jcyA9IFsoJ21lbXNldCcsICdzdHJpbmcuaCcsIFtdKSAsKCdzcXJ0JywgJ21hdGguaCcsIFsnbSddKV0KICsgICAgcmVxX2Z1bmNzID0gWygnbWVtc2V0JywgJ3N0cmluZy5oJywgW10pXQogICAgICBmb3IgZnVuYywgaGVhZGVyLCB1c2VsaWIgaW4gcmVxX2Z1bmNzOgotICAgICAgICAgY3R4LmNoZWNrX2N4eChmdW5jdGlvbl9uYW1lID0gZnVuYywgaGVhZGVyX25hbWUgPSBoZWFkZXIsCisgICAgICAgICBjdHguY2hlY2tfY2MoZnVuY3Rpb25fbmFtZSA9IGZ1bmMsIGhlYWRlcl9uYW1lID0gaGVhZGVyLAogICAgICAgICAgICAgICAgICAgICAgICB1c2VsaWIgPSB1c2VsaWIsIG1hbmRhdG9yeSA9IFRydWUpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvaXBlcmYyL2lwZXJmMl8yLjAuMTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvaXBlcmYyL2lwZXJmMl8yLjAuMTAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTMyMmQwNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9pcGVyZjIvaXBlcmYyXzIuMC4xMC5iYgpAQCAtMCwwICsxLDE5IEBACitERVNDUklQVElPTiA9ICJJcGVyZiBpcyBhIHRvb2wgdG8gbWVhc3VyZSBtYXhpbXVtIFRDUCBiYW5kd2lkdGgsIGFsbG93aW5nIHRoZSB0dW5pbmcgb2YgdmFyaW91cyBwYXJhbWV0ZXJzIGFuZCBVRFAgY2hhcmFjdGVyaXN0aWNzIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvaXBlcmYyLyIKK1NFQ1RJT04gPSAiY29uc29sZS9uZXR3b3JrIgorTElDRU5TRSA9ICJCU0QtMi1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1lMTM2YTdiMjU2MGQ4MGJjYmYwZDliM2UxMzU2ZWNmZiIKKworU1JDX1VSSSA9ICIgJHtTT1VSQ0VGT1JHRV9NSVJST1J9L2lwZXJmMi9pcGVyZi0ke1BWfS50YXIuZ3oiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwOTdjZjA3NTRiYzFhZmExNjU5NzVjMDZhOTFlNjkwNiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3ZmU0MzQ4ZGNjYTMxM2I3NGUwYWE5YzM0YThjY2Q3MTNiODRhNTYxNWI4NTc4ZjRhYTk0Y2VkY2U5ODkxZWYyIgorCitTID0gIiR7V09SS0RJUn0vaXBlcmYtJHtQVn0iCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitFWFRSQV9PRUNPTkYgPSAiLS1leGVjLXByZWZpeD0ke1NUQUdJTkdfRElSX0hPU1R9JHtsYXlvdXRfZXhlY19wcmVmaXh9IgorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2JywgJ2lwdjYnLCAnJywgZCl9IgorUEFDS0FHRUNPTkZJR1tpcHY2XSA9ICItLWVuYWJsZS1pcHY2LC0tZGlzYWJsZS1pcHY2LCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9pcGVyZjMvaXBlcmYzLzAwMDEtaW5jbHVkZS1zdGRpbnQuaC1mb3ItdmFyaW91cy1zdGQtYzk5LWludC10eXBlcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9pcGVyZjMvaXBlcmYzLzAwMDEtaW5jbHVkZS1zdGRpbnQuaC1mb3ItdmFyaW91cy1zdGQtYzk5LWludC10eXBlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWUzNjIwOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvaXBlcmYzL2lwZXJmMy8wMDAxLWluY2x1ZGUtc3RkaW50LmgtZm9yLXZhcmlvdXMtc3RkLWM5OS1pbnQtdHlwZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi1Gcm9tIGJlNjUzNzExZmI5MmQyNDMwYjNlY2M1NDZiNGUzYWQ5MjdkMTllYzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAxNCBKdWwgMjAxNyAxMjo1OTo0MiAtMDcwMAotU3ViamVjdDogW1BBVENIIDEvMl0gaW5jbHVkZSBzdGRpbnQuaCBmb3IgdmFyaW91cyBzdGQgYzk5IGludCB0eXBlcwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gc3JjL2Nqc29uLmggfCAyICsrCi0gc3JjL3RpbWVyLmggfCAxICsKLSAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2Nqc29uLmggYi9zcmMvY2pzb24uaAotaW5kZXggZmI4Y2QzYi4uNjljZDI3MiAxMDA2NDQKLS0tLSBhL3NyYy9janNvbi5oCi0rKysgYi9zcmMvY2pzb24uaAotQEAgLTIzLDYgKzIzLDggQEAKLSAjaWZuZGVmIGNKU09OX19oCi0gI2RlZmluZSBjSlNPTl9faAotIAotKyNpbmNsdWRlIDxzdGRpbnQuaD4KLSsKLSAjaWZkZWYgX19jcGx1c3BsdXMKLSBleHRlcm4gIkMiCi0gewotZGlmZiAtLWdpdCBhL3NyYy90aW1lci5oIGIvc3JjL3RpbWVyLmgKLWluZGV4IDBmOWM1ZWIuLjBiMTk1YmUgMTAwNjQ0Ci0tLS0gYS9zcmMvdGltZXIuaAotKysrIGIvc3JjL3RpbWVyLmgKLUBAIC0zMSw2ICszMSw3IEBACi0gI2RlZmluZSBfX1RJTUVSX0gKLSAKLSAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSsjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0gLyogVGltZXJDbGllbnREYXRhIGlzIGFuIG9wYXF1ZSB2YWx1ZSB0aGF0IHRhZ3MgYWxvbmcgd2l0aCBhIHRpbWVyLiAgVGhlCi0gKiogY2xpZW50IGNhbiB1c2UgaXQgZm9yIHdoYXRldmVyLCBhbmQgaXQgZ2V0cyBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIHdoZW4KLS0tIAotMi4xMy4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9pcGVyZjMvaXBlcmYzXzMuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9pcGVyZjMvaXBlcmYzXzMuMi5iYgppbmRleCA0ZDFiMGM0Li4yZWQwODExIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvaXBlcmYzL2lwZXJmM18zLjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2lwZXJmMy9pcGVyZjNfMy4yLmJiCkBAIC0xNSw3ICsxNSw2IEBACiAKIFNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9lc25ldC9pcGVyZi5naXQgXAogICAgICAgICAgICBmaWxlOi8vYXV0b21ha2UtZm9yZWlnbi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWluY2x1ZGUtc3RkaW50LmgtZm9yLXZhcmlvdXMtc3RkLWM5OS1pbnQtdHlwZXMucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMi1SZW1vdmUtcGctZnJvbS1wcm9maWxlX0NGTEFHUy5wYXRjaCBcCiAgICAgICAgICAgICIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xpYmMtYmVuY2gvbGliYy1iZW5jaF8yMDExMDIwNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9saWJjLWJlbmNoL2xpYmMtYmVuY2hfMjAxMTAyMDYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjUzNGM3MwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9saWJjLWJlbmNoL2xpYmMtYmVuY2hfMjAxMTAyMDYuYmIKQEAgLTAsMCArMSwxNyBAQAorU1VNTUFSWSA9ICJUZXN0cyB0byBjb21wYXJlIHN0YW5kYXJkIGZ1bmN0aW9ucyBvZiBkaWZmZXJlbnQgbGliYyBpbXBsZW1lbnRhdGlvbnMiCitERVNDUklQVElPTiA9ICJsaWJjLWJlbmNoIGlzIGEgc2V0IG9mIHRpbWUtIGFuZCBtZW1vcnktZWZmaWNpZW5jeSB0ZXN0cyB0byBjb21wYXJlIFwKK2ltcGxlbWVudGF0aW9ucyBvZiB2YXJpb3VzIEMvUE9TSVggc3RhbmRhcmQgbGlicmFyeSBmdW5jdGlvbnMuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5ldGFsYWJzLm5ldC9saWJjLWJlbmNoLmh0bWwiCitTRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTWFrZWZpbGU7bWQ1PWUxMmYxMTNkYTI3ZGZlOWNmYjZjMmM1MzdkYThkOGRmIgorCitTUkNfVVJJID0gImh0dHA6Ly93d3cuZXRhbGFicy5uZXQvcmVsZWFzZXMvJHtCUE59LSR7UFZ9LnRhci5neiIKKworU1JDX1VSSVttZDVzdW1dID0gImY3NjNkZTkwZjk1ZmU2OGU0ZTAzZTViNmY0OTY5OGFjIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjY4MjUyNjBhYTVmMTVmNGZiYzc5NTdlYzU3OGU5Yzg1OWNiYmUyMTBlMDI1ZWM3NGM0YTBkMDU2Nzc1MjM3OTQiCisKK2RvX2luc3RhbGwgKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfQorICAgIGluc3RhbGwgLW0gMDc1NSAke0J9L2xpYmMtYmVuY2ggJHtEfSR7YmluZGlyfQorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xpbnBhY2svbGlucGFja18xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbGlucGFjay9saW5wYWNrXzEuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWQ5NWNkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xpbnBhY2svbGlucGFja18xLjAuYmIKQEAgLTAsMCArMSwyMCBAQAorREVTQ1JJUFRJT04gPSAiTElOUEFDSyBCZW5jaG1hcmtzIGFyZSBhIG1lYXN1cmUgb2YgYSBzeXN0ZW0ncyBmbG9hdGluZyBwb2ludCBjb21wdXRpbmcgcG93ZXIiCitTVU1NQVJZID0gIkxJTlBBQ0sgaXMgYSBzb2Z0d2FyZSBsaWJyYXJ5IGZvciBwZXJmb3JtaW5nIG51bWVyaWNhbCBsaW5lYXIgYWxnZWJyYSBvbiBkaWdpdGFsIGNvbXB1dGVycyIKKworTElDRU5TRSA9ICJQRCIKK0xJQ19GSUxFU19DSEtTVU0gPSJmaWxlOi8vJHtXT1JLRElSfS9saW5wYWNrbmV3LmM7YmVnaW5saW5lPTE7ZW5kbGluZT0yMzttZDU9YWEwMjVlM2JjNDQxOTBjNzFlNGM1ZTNiMDg0ZmVkODciCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5uZXRsaWIub3JnL2JlbmNobWFyay9saW5wYWNrYy5uZXc7ZG93bmxvYWRmaWxlbmFtZT1saW5wYWNrbmV3LmMiCitTUkNfVVJJW21kNXN1bV0gPSAiMWM1ZDBiNmEzMTI2NDY4NWQyZTY1MWM5MjBlM2NkZjQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTYzZjJlYzg2NTEyOTU5ZjFmZDkyNmJmYWZiODU5MDViMmQ3Yjc0MDI5NDJmZmFlM2FmMzc0ZDQ4NzQ1ZTk3ZSIKKworUyA9ICIke1dPUktESVJ9IgorCitkb19jb21waWxlICgpIHsKKwkke0NDfSAke0NGTEFHU30gJHtMREZMQUdTfSAtbyBsaW5wYWNrIGxpbnBhY2tuZXcuYyAtbG0KK30KKworZG9faW5zdGFsbCAoKSB7CisJaW5zdGFsbCAtRG0gMDc1NSBsaW5wYWNrICR7RH0ke2JpbmRpcn0vbGlucGFjaworfQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS8wMDAxLUNoZWNrLWZvci1tdXNsLWRlZmluZS1ndWFyZC1iZWZvcmUtcmVkZWZpbmluZy1zb2NrbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS8wMDAxLUNoZWNrLWZvci1tdXNsLWRlZmluZS1ndWFyZC1iZWZvcmUtcmVkZWZpbmluZy1zb2NrbGUucGF0Y2gKaW5kZXggMjA3OTFiZi4uZDcxNjk0OSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvMDAwMS1DaGVjay1mb3ItbXVzbC1kZWZpbmUtZ3VhcmQtYmVmb3JlLXJlZGVmaW5pbmctc29ja2xlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5LzAwMDEtQ2hlY2stZm9yLW11c2wtZGVmaW5lLWd1YXJkLWJlZm9yZS1yZWRlZmluaW5nLXNvY2tsZS5wYXRjaApAQCAtMSwxMiArMSwxMyBAQAotRnJvbSAzMWQ1OGVkN2U2NTUyNzgxZjQxNTUwMWU5NmQ3Y2M3NGY4M2I5MTBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBhYzE2NTdlMTFjYmIwNTQ1YmRmNGQxMTI0ZGVmOGMwMTM5NThlZDdlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFdlZCwgMTIgSnVsIDIwMTcgMTg6MDg6NTEgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzJdIENoZWNrIGZvciBtdXNsIGRlZmluZSBndWFyZCBiZWZvcmUgcmVkZWZpbmluZyBzb2NrbGVuX3QKK1N1YmplY3Q6IFtQQVRDSF0gQ2hlY2sgZm9yIG11c2wgZGVmaW5lIGd1YXJkIGJlZm9yZSByZWRlZmluaW5nIHNvY2tsZW5fdAogCiBtdXNsIHVzZXMgX19ERUZJTkVEX3NvY2tsZW5fdCBzbyBjaGVjayBmb3IgdGhhdCBhcyB3ZWxsCiBhbG9uZyB3aXRoIEhBVkVfc29ja2xlbl90CiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIHNyYy9iZW5jaC5oIHwgMiArLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQpAQCAtMjQsNiArMjUsMyBAQAogIHR5cGVkZWYgaW50IHNvY2tsZW5fdDsKICAjZW5kaWYKICAKLS0tIAotMi4xMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5LzAwMDEtbGF0X2h0dHAuYy1BZGQtcHJpbnRmLWZvcm1hdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5LzAwMDEtbGF0X2h0dHAuYy1BZGQtcHJpbnRmLWZvcm1hdC5wYXRjaAppbmRleCAxOGVkNDNkLi45NDNiM2VjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS8wMDAxLWxhdF9odHRwLmMtQWRkLXByaW50Zi1mb3JtYXQucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvMDAwMS1sYXRfaHR0cC5jLUFkZC1wcmludGYtZm9ybWF0LnBhdGNoCkBAIC0xLDkgKzEsMTAgQEAKLUZyb20gNmZhYTZhY2RmMjBhYTZmNzM4ZWVkMTQ4M2I3ZGNlZWQ5NDI4NmFkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gN2MwNWZhNTM1M2FkOTFhY2FlNmU1ZThhMDFmNjVkNTQ5MzVlZjc3OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBUdWUsIDI3IEp1biAyMDE3IDE0OjM5OjEwIC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIGxhdF9odHRwLmM6IEFkZCBwcmludGYgZm9ybWF0CiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIHNyYy9sYXRfaHR0cC5jIHwgMiArLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQpAQCAtMjEsNiArMjIsMyBAQAogIAl9CiAgCXdyaXRlKHNvY2ssIGJ1Ziwgc3RybGVuKGJ1ZikpOwogIAl3aGlsZSAoKG4gPSByZWFkKHNvY2ssIGJ1ZiwgWEZFUlNJWkUpKSA+IDApIHsKLS0tIAotMi4xMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5LzAwMDItYnVpbGQtQWRqdXN0LUNGTEFHUy1MREZMQUdTLXRvLWFwcGVuZC12YWx1ZXMtcGFzc2VkLS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5LzAwMDItYnVpbGQtQWRqdXN0LUNGTEFHUy1MREZMQUdTLXRvLWFwcGVuZC12YWx1ZXMtcGFzc2VkLS5wYXRjaAppbmRleCBkNWM4ZjVmLi4zNTNkODBiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS8wMDAyLWJ1aWxkLUFkanVzdC1DRkxBR1MtTERGTEFHUy10by1hcHBlbmQtdmFsdWVzLXBhc3NlZC0ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvMDAwMi1idWlsZC1BZGp1c3QtQ0ZMQUdTLUxERkxBR1MtdG8tYXBwZW5kLXZhbHVlcy1wYXNzZWQtLnBhdGNoCkBAIC0xLDEzICsxLDEzIEBACi1Gcm9tIDc2ZjNhOWFiYzJmZjk2MTU1NDI1ZWY5N2Q4YzU1MjBjZmJjOGZlNmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGIyN2MyNTNiZmI3OGZhM2M1ZjQxNmU2Y2FlZTEwMTA5OGE0YjU4Y2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogV2VkLCAxMiBKdWwgMjAxNyAxODowOTo0NiAtMDcwMAotU3ViamVjdDogW1BBVENIIDIvMl0gYnVpbGQ6IEFkanVzdCBDRkxBR1MvTERGTEFHUyB0byBhcHBlbmQgdmFsdWVzIHBhc3NlZCBmcm9tCi0gZW52CitTdWJqZWN0OiBbUEFUQ0hdIGJ1aWxkOiBBZGp1c3QgQ0ZMQUdTL0xERkxBR1MgdG8gYXBwZW5kIHZhbHVlcyBwYXNzZWQgZnJvbSBlbnYKIAogRm9yIG11c2wgd2UgaGF2ZSB0byBwYXNzIGFkZGl0aW9uYWwgYXJndW1lbnRzIHZpYSBjZmxhZ3MgYW5kIGxkZmxhZ3MKIHRvIGxpbmsgaW4gbGlicmlycGMsIG1ha2Ugcm9vbSBmb3IgdGhvc2UgY2hhbmdlcyB0byB0YWtlIGVmZmVjdAogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBzY3JpcHRzL2J1aWxkIHwgIDIgKy0KICBzcmMvTWFrZWZpbGUgIHwgMTQgKysrKysrKy0tLS0tLS0KQEAgLTcxLDYgKzcxLDMgQEAKICAKICAKICB0YWc6Ci0tLSAKLTIuMTMuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS9maXgtbG1iZW5jaC1tZW1vcnktY2hlY2stZmFpbHVyZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L2ZpeC1sbWJlbmNoLW1lbW9yeS1jaGVjay1mYWlsdXJlLnBhdGNoCmluZGV4IDU0OWExMTQuLmNiYWI1YzQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L2ZpeC1sbWJlbmNoLW1lbW9yeS1jaGVjay1mYWlsdXJlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L2ZpeC1sbWJlbmNoLW1lbW9yeS1jaGVjay1mYWlsdXJlLnBhdGNoCkBAIC0xLDQgKzEsNyBAQAotbG1iZW5jaDogQ2FuJ3QgcHJvY2VlZCBvbiBzb21lIHRhcmdldHMKK0Zyb20gNjUxODA5NzZjOTk2MzQzMmQxNjZiNDdhMGI2OTIyNjBhNjljMGQ0NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFFpbmdtaW5nIFN1IDxxaW5nbWluZy5zdUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVHVlLCAxOSBBdWcgMjAxNCAwNToxNjoxNyAtMDQwMAorU3ViamVjdDogW1BBVENIXSBsbWJlbmNoOiBDYW4ndCBwcm9jZWVkIG9uIHNvbWUgdGFyZ2V0cwogCiBsbWJlbmNoIGNhbid0IHByb2NlZWQgb24gc29tZSB0YXJnZXRzLiAgVGhlIG1lbW9yeSBjaGVjayBmYWlscyBiZWNhdXNlIHRoZQogbWVtb3J5IGxhdGVuY3kgb2YgZWFjaCBwYWdlIGlzIGxvbmdlciB0aGVuIDEwdXMsIHdoaWNoIGlzIGEgdGltZSBsaW1pdCBzZXQKQEAgLTI1LDEzICsyOCwxOSBAQAogCiBTaWduZWQtb2ZmLWJ5OiBNYXJrIEhhdGxlIDxtYXJrLmhhdGxlQHdpbmRyaXZlci5jb20+CiAKKy0tLQorIHNjcmlwdHMvY29uZmlnLXJ1biB8IDEyICsrKysrKystLS0KKyBzcmMvTWFrZWZpbGUgICAgICAgfCAgNCArKy0tCisgc3JjL21lbXNpemUuYyAgICAgIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCisgMyBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKKwogZGlmZiAtLWdpdCBhL3NjcmlwdHMvY29uZmlnLXJ1biBiL3NjcmlwdHMvY29uZmlnLXJ1bgotaW5kZXggZTFmN2I2ZC4uMzFiOTI1NiAxMDA3NTUKK2luZGV4IDkxOGNiZGYuLjA5NmVkMTIgMTAwNzU1CiAtLS0gYS9zY3JpcHRzL2NvbmZpZy1ydW4KICsrKyBiL3NjcmlwdHMvY29uZmlnLXJ1bgotQEAgLTIxNCw2ICsyMTQsMTIgQEAgVGhlIGJpZ2dlciB0aGUgcmFuZ2UsIHRoZSBtb3JlIGFjY3VyYXRlIHRoZSByZXN1bHRzLCBidXQgbGFyZ2VyIHNpemVzCitAQCAtMTk3LDYgKzE5NywxMiBAQCBUaGUgYmlnZ2VyIHRoZSByYW5nZSwgdGhlIG1vcmUgYWNjdXJhdGUgdGhlIHJlc3VsdHMsIGJ1dCBsYXJnZXIgc2l6ZXMKICB0YWtlIHNvbWV3aGF0IGxvbmdlciB0byBydW4gdGhlIGJlbmNobWFyay4KLQorIAogIEVPRgogKwogKyMgQnkgZGVmYXVsdCwgdXNlIDUxMk0gbWVtb3J5IGFzIHRoZSB1cHBlciBsaW1pdCBmb3IgbG1iZW5jaCB0ZXN0CkBAIC00MCwxMiArNDksMTIgQEAKICtmaQogKwogIGVjaG8gJEVDSE9OICJNQiBbZGVmYXVsdCAkTUJdOiAkRUNIT0MiCi0gI3JlYWQgVE1QCi0gVE1QPSIiCi1AQCAtNzE4LDEwICs3MjQsMTAgQEAgY2FzZSAkTUFJTCBpbgotCQk7OworIHJlYWQgVE1QCisgaWYgWyBYJFRNUCAhPSBYIF0KK0BAIC02ODcsMTAgKzY5MywxMCBAQCBjYXNlICRNQUlMIGluCisgCQk7OwogIGVzYWMKLQorIAogLUlORk89YC4uL3NjcmlwdHMvaW5mb2AKICtJTkZPPWAuLi9zY3JpcHRzL2hvc3RpbmZvYAogIGlmIFsgJE1BSUwgPSB5ZXMgXQpAQCAtNTQsOCArNjMsOCBAQAogKwl0aGVuCWNwIC4uL3NjcmlwdHMvaG9zdGluZm8tdGVtcGxhdGUgJElORk8KICAJCWNobW9kICt3ICRJTkZPCiAgCQlSRVVTRT1ubwotIAllbHNlCi1AQCAtNzY1LDcgKzc3MSw3IEBAIEVPRgorIAllbHNlCQorQEAgLTczMyw3ICs3MzksNyBAQCBFT0YKICAJCXRoZW4JRURJVE9SPSRUTVAKICAJCWZpCiAgCQlpZiBbIFgkRURJVE9SICE9ICJub25lIiBdCkBAIC02NSwxMCArNzQsMTAgQEAKICAJZmkKICBmaQogZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZSBiL3NyYy9NYWtlZmlsZQotaW5kZXggZDFmMGRjNi4uNTA5ODk5OCAxMDA2NDQKK2luZGV4IGM3ZTRlM2MuLmQ5ZWZkNTQgMTAwNjQ0CiAtLS0gYS9zcmMvTWFrZWZpbGUKICsrKyBiL3NyYy9NYWtlZmlsZQotQEAgLTQ5LDcgKzQ5LDcgQEAgVEFSR0VUPWAuLi9zY3JpcHRzL3RhcmdldGAKK0BAIC01MCw3ICs1MCw3IEBAIFRBUkdFVD1gLi4vc2NyaXB0cy90YXJnZXRgCiAgQklORElSPS4uL2Jpbi8kKE9TKQogIENPTkZJRz0uLi9iaW4vJChPUykvYC4uL3NjcmlwdHMvY29uZmlnYAogIFVUSUxTPS4uL3NjcmlwdHMvdGFyZ2V0IC4uL3NjcmlwdHMvb3MgLi4vc2NyaXB0cy9nbnUtb3MgLi4vc2NyaXB0cy9jb21waWxlciBcCkBAIC03OSwyMSArODgsMjEgQEAKICBJTlNUQUxMPWNwCiBAQCAtMjQwLDcgKzI0MCw3IEBAICRPL2dldG9wdC5vIDogZ2V0b3B0LmMgJChJTkNTKQogIAkkKENPTVBJTEUpIC1jIGdldG9wdC5jIC1vICRPL2dldG9wdC5vCi0KKyAKICAkKFVUSUxTKSA6CiAtCS1jZCAuLi9zY3JpcHRzOyBtYWtlIGdldAogKwktY2QgLi4vc2NyaXB0czsgY3AgaW5mbyBob3N0aW5mbzsgY3AgaW5mby10ZW1wbGF0ZSBob3N0aW5mby10ZW1wbGF0ZQotCisgCiAgIyBEbyBub3QgcmVtb3ZlIHRoZSBuZXh0IGxpbmUsICQoTUFLRSkgZGVwZW5kIG5lZWRzIGl0CiAgIyBNQUtFREVQRU5EIGZvbGxvd3MKIGRpZmYgLS1naXQgYS9zcmMvbWVtc2l6ZS5jIGIvc3JjL21lbXNpemUuYwotaW5kZXggZWIyNWEwOS4uY2Y5ZmUwYyAxMDA2NDQKK2luZGV4IGViMjVhMDkuLjgyZDdmYWYgMTAwNjQ0CiAtLS0gYS9zcmMvbWVtc2l6ZS5jCiArKysgYi9zcmMvbWVtc2l6ZS5jCiBAQCAtMTQsOSArMTQsMTIgQEAgY2hhcgkqaWQgPSAiJElkJFxuIjsKLQorIAogICNkZWZpbmUJQ0hLKHgpCWlmICgoeCkgPT0gLTEpIHsgcGVycm9yKCJ4Iik7IGV4aXQoMSk7IH0KLQorIAogLSNpZm5kZWYJVE9PX0xPTkcKIC0jZGVmaW5lCVRPT19MT05HCTEwCS8qIHVzZWNzICovCiAtI2VuZGlmCkBAIC0xMDMsMTIgKzExMiwxMiBAQAogKwogKyNkZWZpbmUJTUVNT1JZX1NJWkVfMU1CICgxMDI0ICogMTAyNCkKICsjZGVmaW5lCU1FTU9SWV9TSVpFXzhNQiAoOCAqIDEwMjQgKiAxMDI0KQotCisgCiAgaW50CWFsYXJtX3RyaWdnZXJlZCA9IDA7Ci0KKyAKIEBAIC0zNSwxMCArMzgsMTAgQEAgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKICAJc2l6ZV90CWRlbHRhOwotCisgCiAgCWlmIChhYyA9PSAyKSB7CiAtCQltYXggPSBzaXplID0gYnl0ZXMoYXZbMV0pICogMTAyNCAqIDEwMjQ7CiArCQltYXggPSBzaXplID0gYnl0ZXMoYXZbMV0pICogTUVNT1JZX1NJWkVfMU1COwpAQCAtMTcwLDcgKzE3OSw3IEBACiArCQl0aW1lX2VhY2hfcGFnZSA9IDE7CiArCS8vU2V0IHRoZSB1cGVyIGxpbWl0IG9mIHRpbWUgc3BlbmRpbmcgb24gb25lIHBhZ2UKICsgICAgICAgIHRvb19sb25nID0gMTAgKiB0aW1lX2VhY2hfcGFnZTsKLQorIAogLQlyYW5nZSA9IDEwMjQgKiAxMDI0OwogLQlpbmNyID0gMTAyNCAqIDEwMjQ7CiAtCXRvdWNoUmFuZ2Uod2hlcmUsIHJhbmdlLCBwYWdlc2l6ZSk7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS9sbWJlbmNoX3Jlc3VsdF9odG1sX3JlcG9ydC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L2xtYmVuY2hfcmVzdWx0X2h0bWxfcmVwb3J0LnBhdGNoCmluZGV4IGNkYTJmMGMuLjMwNzA4YzggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L2xtYmVuY2hfcmVzdWx0X2h0bWxfcmVwb3J0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L2xtYmVuY2hfcmVzdWx0X2h0bWxfcmVwb3J0LnBhdGNoCkBAIC0xLDQgKzEsNyBAQAotbG1iZW5jaDogRml4ICJtYWtlIGh0bWwiIGdyYXBoIGZhaWx1cmUKK0Zyb20gYjIxY2E5ZjM5MTE2MjhmYjY2ZjMwOGM2OTE2NDg1YmJiY2ZiMjlhNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IExpbiBZdSA8bGluLnl1QHdpbmRyaXZlci5jb20+CitEYXRlOiBUdWUsIDE5IEF1ZyAyMDE0IDA1OjE2OjE2IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0hdIGxtYmVuY2g6IEZpeCAibWFrZSBodG1sIiBncmFwaCBmYWlsdXJlCiAKIFRoZSBodG1sLWxpc3QgcGVybCBzY3JpcHQgY2Fubm90IHBhcnNlIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSByZXN1bHQKIGZpbGVzIGFib3V0IHRoZSBsbWJlbmNoIHZlcnNpb24uCkBAIC0xNCw2ICsxNywxMSBAQAogCiBTaWduZWQtb2ZmLWJ5OiBNYXJrIEhhdGxlIDxtYXJrLmhhdGxlQHdpbmRyaXZlci5jb20+CiAKKy0tLQorIHJlc3VsdHMvTWFrZWZpbGUgIHwgMSArCisgc2NyaXB0cy9odG1sLWxpc3QgfCA3ICsrLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKwogZGlmZiAtLWdpdCBhL3Jlc3VsdHMvTWFrZWZpbGUgYi9yZXN1bHRzL01ha2VmaWxlCiBpbmRleCAwOTM1Mzc2Li4xZWY5YTE1IDEwMDY0NAogLS0tIGEvcmVzdWx0cy9NYWtlZmlsZQpAQCAtMzgsNyArNDYsNyBAQAogKzxoMj48YSBocmVmPXN1bW1hcnkub3V0PlN1bW1hcnkgb2YgcmVzdWx0czwvYT48L2gyPgogIDxocj4KICBFT0YKLQorIAogQEAgLTQ3LDcgKzQ3LDcgQEAgZm9yZWFjaCAkb3MgKEBvcykgewogIAkJb3BlbihGLCAkZmlsZSk7CiAgCQkkXyA9IDxGPjsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L29iZXktcmFubGliLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvb2JleS1yYW5saWIucGF0Y2gKaW5kZXggNDFhM2IzMi4uZmE1ZTZkYiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvb2JleS1yYW5saWIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvb2JleS1yYW5saWIucGF0Y2gKQEAgLTEsMTYgKzEsMjIgQEAKK0Zyb20gMTgyYTVkM2RiYTNmNDQwYmJmMzU1NTFkYTZkMjFhYjFjOTkwZWI1OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5vb3IgQWhzYW4gPG5vb3JfYWhzYW5AbWVudG9yLmNvbT4KK0RhdGU6IE1vbiwgMjkgQXVnIDIwMTEgMTY6MTc6NTEgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gbG1iZW5jaDogQWRkIHZlcnNpb24gMy4wLWE5IChpbml0aWFsIHJlY2lwZSkKKwogSW4gc29tZSBjYXNlcyB0aGUgaG9zdCBtYXkgaGF2ZSB0b28gb2xkIG9mIGEgcmFubGliIHRvIHdvcmsuICBTaW5jZSBpdCdzCiBub3QgZXhhY3RseSBhIGdyZWF0IGlkZWEgdG8gbm90IGJlIHVzaW5nIHRoZSBjcm9zcyByYW5saWIgYW55aG93LCBmaXggdGhlCiBNYWtlZmlsZSBzbyB3ZSBjYW4gb3ZlcnJpZGUgcmFubGliIGFuZCB0aGVuIG92ZXJyaWRlIGl0CiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbYnVpbGQgc3lzdGVtIHNwZWNpZmljIGNoYW5nZV0KKwogLS0tCi0gc3JjL01ha2VmaWxlIHwgICAgMyArKy0KKyBzcmMvTWFrZWZpbGUgfCAzICsrLQogIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIAotSW5kZXg6IGxtYmVuY2gtMy4wLWE5L3NyYy9NYWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGxtYmVuY2gtMy4wLWE5Lm9yaWcvc3JjL01ha2VmaWxlCi0rKysgbG1iZW5jaC0zLjAtYTkvc3JjL01ha2VmaWxlCitkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlIGIvc3JjL01ha2VmaWxlCitpbmRleCA0OTYyODE1Li5jN2E4Yzc5IDEwMDY0NAorLS0tIGEvc3JjL01ha2VmaWxlCisrKysgYi9zcmMvTWFrZWZpbGUKIEBAIC0zOCw2ICszOCw3IEBAIENDPWAuLi9zY3JpcHRzL2NvbXBpbGVyYAogIE1BS0U9YC4uL3NjcmlwdHMvbWFrZWAKICBBUj1hcgpAQCAtMTksNyArMjUsNyBAQAogIAogICMgYmFzZSBvZiBpbnN0YWxsYXRpb24gbG9jYXRpb24KICBCQVNFPS91c3IvbG9jYWwKLUBAIC0yMTcsNyArMjE4LDcgQEAgJE8vbG1iZW5jaCA6IC4uL3NjcmlwdHMvbG1iZW5jaCB2ZXJzaW9uLgorQEAgLTIxNyw3ICsyMTgsNyBAQCAkTy9sbWJlbmNoIDogLi4vc2NyaXB0cy9sbWJlbmNoIHZlcnNpb24uaAogICRPL2xtYmVuY2guYTogJChMSUJPQkpTKQogIAkvYmluL3JtIC1mICRPL2xtYmVuY2guYQogIAkkKEFSKSAkKEFSQ1JFQVRFKSAkTy9sbWJlbmNoLmEgJChMSUJPQkpTKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvdXBkYXRlLWNvbmZpZy1zY3JpcHQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS91cGRhdGUtY29uZmlnLXNjcmlwdC5wYXRjaAppbmRleCBiNDZlMDlhLi40NGJjN2JiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS91cGRhdGUtY29uZmlnLXNjcmlwdC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS91cGRhdGUtY29uZmlnLXNjcmlwdC5wYXRjaApAQCAtMSw4ICsxLDE4IEBACitGcm9tIGFjYTFhNTlkODg4NDIxYzFmYzU1MzIyOWI4MDQ5YmU0N2U4YjNkZGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDaHVucm9uZyBHdW8gPGI0MDI5MEBmcmVlc2NhbGUuY29tPgorRGF0ZTogRnJpLCAxIE1hciAyMDEzIDA5OjUwOjQyICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIGxtYmVuY2g6IHVwZGF0ZSBjb25maWcgc2NyaXB0CisKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotSW5kZXg6IGxtYmVuY2gtMy4wLWE5L3NjcmlwdHMvY29uZmlnCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbG1iZW5jaC0zLjAtYTkvc2NyaXB0cy9jb25maWcJMjAwMC0wMS0zMSAxODoyOTozMS4wMDAwMDAwMDAgLTA2MDAKLSsrKyBsbWJlbmNoLTMuMC1hOS9zY3JpcHRzL2NvbmZpZwkyMDEzLTAzLTAxIDAwOjE5OjQxLjAzMjk4NDMxNSAtMDYwMAorCistLS0KKyBzY3JpcHRzL2NvbmZpZyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NjcmlwdHMvY29uZmlnIGIvc2NyaXB0cy9jb25maWcKK2luZGV4IGI1OGNiNjAuLjI1ZDlkNzcgMTAwNzU1CistLS0gYS9zY3JpcHRzL2NvbmZpZworKysrIGIvc2NyaXB0cy9jb25maWcKIEBAIC0zLDUgKzMsNSBAQAogIFVOQU1FPWB1bmFtZSAtbiAyPi9kZXYvbnVsbGAKICBpZiBbIFgkVU5BTUUgPSBYIF0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L3VwZGF0ZS1yZXN1bHRzLXNjcmlwdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L3VwZGF0ZS1yZXN1bHRzLXNjcmlwdC5wYXRjaAppbmRleCA4OTRmMTQ2Li4zMWM0YWVjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS91cGRhdGUtcmVzdWx0cy1zY3JpcHQucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvdXBkYXRlLXJlc3VsdHMtc2NyaXB0LnBhdGNoCkBAIC0xLDQ1ICsxLDI0IEBACitGcm9tIDQ5NTUwMjFiYzI4M2JlNDA0ZGY2MmI5N2I4NmFmMzk0M2VmZDI5ZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBOb29yIEFoc2FuIDxub29yX2Foc2FuQG1lbnRvci5jb20+CitEYXRlOiBNb24sIDI5IEF1ZyAyMDExIDE2OjE3OjUxICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIGxtYmVuY2g6IEFkZCB2ZXJzaW9uIDMuMC1hOSAoaW5pdGlhbCByZWNpcGUpCisKIE5vdyB0aGF0IHdlIGhhdmUgb3VyIGJpbmFyaWVzIGluIC91c3IvYmluIHJhdGhlciB0aGFuIHRoZSBub3JtYWwKIGxtYmVuY2ggaGllcmFyY2h5IHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBzY3JpcHRzIGFzIHdlbGwgdG8gYmVoYXZlIHdlbGwgaGVyZS4KIAogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtUaGlzIGlzIHJlbGF0ZWQgdG8gdGhlIE9FLXNwZWNpZmljIGJlaGF2aW9yCi1vZiBpbnN0YWxsaW5nIGludG8gL3Vzci9iaW4sIGV0YywgcmF0aGVyIHRoYW4gZHVtcGluZyBldmVyeXRoaW5nIGludG8gCitvZiBpbnN0YWxsaW5nIGludG8gL3Vzci9iaW4sIGV0YywgcmF0aGVyIHRoYW4gZHVtcGluZyBldmVyeXRoaW5nIGludG8KIC91c3Ivc2hhcmUvbG1iZW5jaCBvciBzaW1pbGFyXQogCi1JbmRleDogbG1iZW5jaC0zLjAtYTkvc2NyaXB0cy9yZXN1bHRzCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbG1iZW5jaC0zLjAtYTkub3JpZy9zY3JpcHRzL3Jlc3VsdHMKLSsrKyBsbWJlbmNoLTMuMC1hOS9zY3JpcHRzL3Jlc3VsdHMKLUBAIC04LDExICs4LDExIEBAIFJFU1VMVFM9cmVzdWx0cy8kT1MKLSBCQVNFPS4uLyRSRVNVTFRTL2B1bmFtZSAtbmAKLSBFWFQ9MAotIAotLWlmIFsgISAtZiAiLi4vYmluLyRPUy8kQ09ORklHIiBdCi0raWYgWyAhIC1mICIkQ09ORklHIiBdCi0gdGhlbgllY2hvICJObyBjb25maWcgZmlsZT8iCi0gCWV4aXQgMQotIGZpCi0tLiAuLi9iaW4vJE9TLyRDT05GSUcKLSsuICRDT05GSUcKLSAKLSBpZiBbICEgLWQgLi4vJFJFU1VMVFMgXQotIHRoZW4JbWtkaXIgLXAgLi4vJFJFU1VMVFMKLUBAIC0yMywxMSArMjMsOSBAQCBkbyAgICAgIEVYVD1gZXhwciAkRVhUICsgMWAKLSAJUkVTVUxUUz0kQkFTRS4kRVhUCi0gZG9uZQotIAotLWNkIC4uL2Jpbi8kT1MgCi0tUEFUSD0uOiR7UEFUSH07IGV4cG9ydCBQQVRICi0gZXhwb3J0IFNZTkNfTUFYCi0gZXhwb3J0IE9VVFBVVAotLWxtYmVuY2ggJENPTkZJRyAyPi4uLyR7UkVTVUxUU30KLStsbWJlbmNoICRDT05GSUcgMj4ke1JFU1VMVFN9Ci0gCi0gaWYgWyBYJE1BSUwgPSBYeWVzIF0KLSB0aGVuCWVjaG8gTWFpbGluZyByZXN1bHRzCi1JbmRleDogbG1iZW5jaC0zLjAtYTkvc2NyaXB0cy9jb25maWctcnVuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbG1iZW5jaC0zLjAtYTkub3JpZy9zY3JpcHRzL2NvbmZpZy1ydW4KLSsrKyBsbWJlbmNoLTMuMC1hOS9zY3JpcHRzL2NvbmZpZy1ydW4KKy0tLQorIHNjcmlwdHMvY29uZmlnLXJ1biB8IDQwICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzY3JpcHRzL3Jlc3VsdHMgICAgfCAgOCArKystLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpcHRzL2NvbmZpZy1ydW4gYi9zY3JpcHRzL2NvbmZpZy1ydW4KK2luZGV4IGEyZDViYTQuLjkxOGNiZGYgMTAwNzU1CistLS0gYS9zY3JpcHRzL2NvbmZpZy1ydW4KKysrKyBiL3NjcmlwdHMvY29uZmlnLXJ1bgogQEAgLTEzMiwyMCArMTMyLDIwIEBAIGV4cG9ydCBMTUJFTkNIX1NDSEVECiAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIGVjaG8gJEw7IGVjaG8gIiI7CkBAIC04OSw3ICs2OCw3IEBACiAgaWYgWyBgZXhwciAkU1lOQ19NQVggXCogJE1CYCAtZ3QgYGV4cHIgJFRPVEFMX01FTWAgXQogIHRoZW4KICAJTUI9YGV4cHIgJFRPVEFMX01FTSAvICRTWU5DX01BWGAKLUBAIC0yMjMsOCArMjIzLDggQEAgdGhlbgllY2hvIFdhcm5pbmc6IHlvdSBoYXZlIG9ubHkgJHtNQn1NQgorQEAgLTIyMyw4ICsyMjMsOCBAQCB0aGVuCWVjaG8gV2FybmluZzogeW91IGhhdmUgb25seSAke01CfU1CIGF2YWlsYWJsZSBtZW1vcnkuCiAgZmkKICAKICBlY2hvICJIYW5nIG9uLCB3ZSBhcmUgY2FsY3VsYXRpbmcgeW91ciBjYWNoZSBsaW5lIHNpemUuIgpAQCAtMTU4LDMgKzEzNywzNCBAQAogIGVjaG8gRElTS1M9XCIkRElTS1NcIiA+ICRDCiAgZWNobyBESVNLX0RFU0M9XCIkRElTS19ERVNDXCIgPj4gJEMKICBlY2hvIE9VVFBVVD0kT1VUUFVUID4+ICRDCitkaWZmIC0tZ2l0IGEvc2NyaXB0cy9yZXN1bHRzIGIvc2NyaXB0cy9yZXN1bHRzCitpbmRleCBjZDA3YzE1Li5kNWFhNTU4IDEwMDc1NQorLS0tIGEvc2NyaXB0cy9yZXN1bHRzCisrKysgYi9zY3JpcHRzL3Jlc3VsdHMKK0BAIC04LDExICs4LDExIEBAIFJFU1VMVFM9cmVzdWx0cy8kT1MKKyBCQVNFPS4uLyRSRVNVTFRTL2B1bmFtZSAtbmAKKyBFWFQ9MAorIAorLWlmIFsgISAtZiAiLi4vYmluLyRPUy8kQ09ORklHIiBdCisraWYgWyAhIC1mICIkQ09ORklHIiBdCisgdGhlbgllY2hvICJObyBjb25maWcgZmlsZT8iCisgCWV4aXQgMQorIGZpCistLiAuLi9iaW4vJE9TLyRDT05GSUcKKysuICRDT05GSUcKKyAKKyBpZiBbICEgLWQgLi4vJFJFU1VMVFMgXQorIHRoZW4JbWtkaXIgLXAgLi4vJFJFU1VMVFMKK0BAIC0yMywxMSArMjMsOSBAQCBkbyAgICAgIEVYVD1gZXhwciAkRVhUICsgMWAKKyAJUkVTVUxUUz0kQkFTRS4kRVhUCisgZG9uZQorIAorLWNkIC4uL2Jpbi8kT1MgCistUEFUSD0uOiR7UEFUSH07IGV4cG9ydCBQQVRICisgZXhwb3J0IFNZTkNfTUFYCisgZXhwb3J0IE9VVFBVVAorLWxtYmVuY2ggJENPTkZJRyAyPi4uLyR7UkVTVUxUU30KKytsbWJlbmNoICRDT05GSUcgMj4ke1JFU1VMVFN9CisgCisgaWYgWyBYJE1BSUwgPSBYeWVzIF0KKyB0aGVuCWVjaG8gTWFpbGluZyByZXN1bHRzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS91c2UtYmFzZV9saWJkaXItaW5zdGVhZC1vZi1oYXJkY29kZWQtbGliLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvdXNlLWJhc2VfbGliZGlyLWluc3RlYWQtb2YtaGFyZGNvZGVkLWxpYi5wYXRjaAppbmRleCAzMzUxY2U4Li5jNmU5NDY1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS91c2UtYmFzZV9saWJkaXItaW5zdGVhZC1vZi1oYXJkY29kZWQtbGliLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L3VzZS1iYXNlX2xpYmRpci1pbnN0ZWFkLW9mLWhhcmRjb2RlZC1saWIucGF0Y2gKQEAgLTEsMTQgKzEsMTUgQEAKLUZyb20gMGQwOWUzMTk3MDYxNmUwOWJlYjdmMjM4YzJiNTliZmM1NDExNDhmYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNzNmZGM1OGNhNGViOWUyZjI0ZDg1NGIzYWYzYTRlNWRhYWM1YTMzZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IFRpbmcgTGl1IDxiMjg0OTVAZnJlZXNjYWxlLmNvbT4KIERhdGU6IEZyaSwgMjIgTm92IDIwMTMgMTU6MjA6MDggKzA4MDAKIFN1YmplY3Q6IFtQQVRDSF0gdXNlIGJhc2VfbGliZGlyIGluc3RlYWQgb2YgaGFyZGNvZGVkIC9saWIKIAotVXBzdGVhbSBTdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCitVcHN0cmVhbSBTdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCiAKIFNpZ25lZC1vZmYtYnk6IFRpbmcgTGl1IDxiMjg0OTVAZnJlZXNjYWxlLmNvbT4KKwogLS0tCi0gc3JjL01ha2VmaWxlIHwgICAgNCArKy0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisgc3JjL01ha2VmaWxlIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZSBiL3NyYy9NYWtlZmlsZQogaW5kZXggYzdhOGM3OS4uYzdlNGUzYyAxMDA2NDQKQEAgLTI3LDYgKzI4LDMgQEAKICAJY2QgLi4vZG9jOyBlbnYgTUFLRUZMQUdTPSIkKE1BS0VGTEFHUykiIG1ha2UgQ0M9IiR7Q0N9IiBPUz0iJHtPU30iIEJBU0U9IiQoQkFTRSkiIGluc3RhbGwKICAKICAKLS0tIAotMS43LjUuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLzAwMDEtYXZvaWQtZ2NjLW9wdGltaXplLWF3YXktdGhlLWxvb3BzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC8wMDAxLWF2b2lkLWdjYy1vcHRpbWl6ZS1hd2F5LXRoZS1sb29wcy5wYXRjaAppbmRleCAyZDhhMjQ2Li5iOTY0YmVmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLzAwMDEtYXZvaWQtZ2NjLW9wdGltaXplLWF3YXktdGhlLWxvb3BzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gvMDAwMS1hdm9pZC1nY2Mtb3B0aW1pemUtYXdheS10aGUtbG9vcHMucGF0Y2gKQEAgLTEsNCArMSw3IEBACi1bUEFUQ0hdIGF2b2lkIGdjYyBvcHRpbWl6ZS1hd2F5IHRoZSBsb29wcworRnJvbSAyNTczOGJiOWM3NWY5NGI0NTEyMDFhY2ZkNmJjYWIxM2JkZWVlNTEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVGh1LCA1IE1heSAyMDE2IDA5OjUyOjAxICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIFtQQVRDSF0gYXZvaWQgZ2NjIG9wdGltaXplLWF3YXkgdGhlIGxvb3BzCiAKIFVwc3RyZWFtLVN0YXR1czogcGVuZGluZwogCkBAIC0xNSw2ICsxOCw3IEBACiAJI2RlZmluZSBURU4oYSkgYSBhIGEgYSBhIGEgYSBhIGEgYQogCiBTaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CisKIC0tLQogIHNyYy9sYXRfb3BzLmMgfCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KICAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKQEAgLTc0LDYgKzc4LDMgQEAKICAJfQogIAl1c2VfaW50KChpbnQpcik7CiAgfQotLS0gCi0yLjguMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoL3JlbmFtZS1saW5lLWJpbmFyeS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gvcmVuYW1lLWxpbmUtYmluYXJ5LnBhdGNoCmluZGV4IDlhNDA1MjEuLmI0MmVlN2QgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gvcmVuYW1lLWxpbmUtYmluYXJ5LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gvcmVuYW1lLWxpbmUtYmluYXJ5LnBhdGNoCkBAIC0xLDMgKzEsOCBAQAorRnJvbSAxNjgyM2Y1YzNkM2Q1YWRhZDBiNzBlOTA1NWMwOGNiNGUxOGQyNTViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTm9vciBBaHNhbiA8bm9vcl9haHNhbkBtZW50b3IuY29tPgorRGF0ZTogTW9uLCAyOSBBdWcgMjAxMSAxNjoxNzo1MSArMDAwMAorU3ViamVjdDogW1BBVENIXSBsbWJlbmNoOiBBZGQgdmVyc2lvbiAzLjAtYTkgKGluaXRpYWwgcmVjaXBlKQorCiBCb3RoIGxtYmVuY2ggYW5kIHV0aWwtbGludXgtbmcgcGFja2FnZXMgcHJvdmlkZSBvd24gL3Vzci9iaW4vbGluZSBiaW5hcmllcy4KIEV2ZW4gdGhvdWdoIHRoZSBiaW5hcmllcyBuYW1lIGlzIHRoZSBzYW1lLCB0aGVpciBmdW5jdGlvbmFsaXR5IGlzIGRpZmZlcmVudC4KIFRoaXMgcGF0Y2ggcmVuYW1lcyBsbWJlbmNoJ3MgbGluZSBiaW5hcnkgYXMgbG1fbGluZSB0byBhdm9pZCBjb25mbGljdHMgd2l0aApAQCAtNiw4ICsxMSwxNCBAQAogCiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2J1aWxkIHN5c3RlbSBzcGVjaWZpYyBjaGFuZ2VdCiAKLS0tLSBwYXRjaGVzL3NjcmlwdHMvY29uZmlnLXJ1bgkyMDA2LTExLTI2IDE1OjExOjA0LjAwMDAwMDAwMCAtMDUwMAotKysrIHBhdGNoZXMvc2NyaXB0cy9jb25maWctcnVuCTIwMTEtMDQtMDEgMDk6MzU6NTAuMDAwMDAwMDAwIC0wNDAwCistLS0KKyBzY3JpcHRzL2NvbmZpZy1ydW4gfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpcHRzL2NvbmZpZy1ydW4gYi9zY3JpcHRzL2NvbmZpZy1ydW4KK2luZGV4IGY2MjBjMTUuLmEyZDViYTQgMTAwNzU1CistLS0gYS9zY3JpcHRzL2NvbmZpZy1ydW4KKysrKyBiL3NjcmlwdHMvY29uZmlnLXJ1bgogQEAgLTIyNCw3ICsyMjQsNyBAQCBmaQogIAogIGVjaG8gIkhhbmcgb24sIHdlIGFyZSBjYWxjdWxhdGluZyB5b3VyIGNhY2hlIGxpbmUgc2l6ZS4iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvcGhvcm9uaXgtdGVzdC1zdWl0ZS9waG9yb25peC10ZXN0LXN1aXRlXzcuNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL3Bob3Jvbml4LXRlc3Qtc3VpdGUvcGhvcm9uaXgtdGVzdC1zdWl0ZV83LjQuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NjZDVkYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvcGhvcm9uaXgtdGVzdC1zdWl0ZS9waG9yb25peC10ZXN0LXN1aXRlXzcuNC4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotU1VNTUFSWSA9ICJQaG9yb25peCBUZXN0IFN1aXRlIgotREVTQ1JJUFRJT04gPSAiVGhlIFBob3Jvbml4IFRlc3QgU3VpdGUgaXMgZGVzaWduZWQgdG8gY2Fycnkgb3V0IGJvdGggcXVhbGl0YXRpdmUgXAotYW5kIHF1YW50aXRhdGl2ZSBiZW5jaG1hcmtzIGluIGEgY2xlYW4sIHJlcHJvZHVjaWJsZSwgYW5kIGVhc3ktdG8tdXNlIG1hbm5lci4iCi1MSUNFTlNFID0gIkdQTHYzIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQiCi1TRUNUSU9OID0gImNvbnNvbGUvdGVzdHMiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3d3dy5waG9yb25peC10ZXN0LXN1aXRlLmNvbS9yZWxlYXNlcy8ke0JQfS50YXIuZ3oiCi1TUkNfVVJJW21kNXN1bV0gPSAiODZmYTNlZWRlNDNmZmZmODg5OTJmZTIxMzY4YjExYjciCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGU5YWVjM2VmNGY5ODA1ODE3NTZmZDBiZjdiMzBkZDFjY2IyMGU3YWFlNjM3MDc4YTU4NzYwNmJmNzVhNmI2NyIKLQotUyA9ICIke1dPUktESVJ9L3Bob3Jvbml4LXRlc3Qtc3VpdGUiCi0KLWluaGVyaXQgc3lzdGVtZCBhbGxhcmNoCi0KLWRvX2luc3RhbGwoKSB7Ci0gICAgREVTVERJUj0ke0R9IC4vaW5zdGFsbC1zaCAke2V4ZWNfcHJlZml4fQotCi0gICAgaWYgWyAiJHtzeXN0ZW1kX3VuaXRkaXJ9IiAhPSAiL3Vzci9saWIvc3lzdGVtZCIgXTsgdGhlbgotICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KLSAgICAgICAgbXYgJHtEfS91c3IvbGliL3N5c3RlbWQvc3lzdGVtLyogJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLwotICAgICAgICBybSAtcmYgJHtEfS91c3IvbGliLwotICAgIGZpCi19Ci0KLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJwaG9yb21hdGljLWNsaWVudC5zZXJ2aWNlIHBob3JvbWF0aWMtc2VydmVyLnNlcnZpY2UiCi1SREVQRU5EU18ke1BOfSArPSAiYmFzaCBweXRob24gcGhwLWNsaSIKLQotRklMRVNfJHtQTn0gKz0gIiBcCi0gICAgJHtkYXRhZGlyfS9waG9yb25peC10ZXN0LXN1aXRlIFwKLSAgICAke2RhdGFkaXJ9L2FwcGRhdGEvcGhvcm9uaXgtdGVzdC1zdWl0ZS5hcHBkYXRhLnhtbCBcCi0gICAgJHtkYXRhZGlyfS9pY29ucy9oaWNvbG9yLzQ4eDQ4L2FwcHMvcGhvcm9uaXgtdGVzdC1zdWl0ZS5wbmcgXAotICAgICR7ZGF0YWRpcn0vaWNvbnMvaGljb2xvci82NHg2NC9taW1ldHlwZXMvYXBwbGljYXRpb24teC1vcGVuYmVuY2htYXJraW5nLnBuZyBcCi0gICAgJHtkYXRhZGlyfS9taW1lL3BhY2thZ2VzL29wZW5iZW5jaG1hcmtpbmctbWltZS54bWwgXAotICAgICR7c3lzdGVtZF91bml0ZGlyfS8qIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9waG9yb25peC10ZXN0LXN1aXRlL3Bob3Jvbml4LXRlc3Qtc3VpdGVfNy44LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvcGhvcm9uaXgtdGVzdC1zdWl0ZS9waG9yb25peC10ZXN0LXN1aXRlXzcuOC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmOTBhNzEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvcGhvcm9uaXgtdGVzdC1zdWl0ZS9waG9yb25peC10ZXN0LXN1aXRlXzcuOC4wLmJiCkBAIC0wLDAgKzEsNDEgQEAKK1NVTU1BUlkgPSAiUGhvcm9uaXggVGVzdCBTdWl0ZSIKK0RFU0NSSVBUSU9OID0gIlRoZSBQaG9yb25peCBUZXN0IFN1aXRlIGlzIGRlc2lnbmVkIHRvIGNhcnJ5IG91dCBib3RoIHF1YWxpdGF0aXZlIFwKK2FuZCBxdWFudGl0YXRpdmUgYmVuY2htYXJrcyBpbiBhIGNsZWFuLCByZXByb2R1Y2libGUsIGFuZCBlYXN5LXRvLXVzZSBtYW5uZXIuIgorTElDRU5TRSA9ICJHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgorU0VDVElPTiA9ICJjb25zb2xlL3Rlc3RzIgorCitTUkNfVVJJID0gImh0dHA6Ly93d3cucGhvcm9uaXgtdGVzdC1zdWl0ZS5jb20vcmVsZWFzZXMvJHtCUH0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjg1MDg0M2JkOTI1MjgyM2U3ZTI0YmMwODQ5NzczMDAwIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImNkNmM4Njk4NDFmMjhlNGFjMWU4YTVlNGNkYTA1ZmFmY2U5YTUyM2E2YjRmMGYzYTQ3ODA1ZWZkMzA0OTRkODgiCisKK1MgPSAiJHtXT1JLRElSfS9waG9yb25peC10ZXN0LXN1aXRlIgorCitpbmhlcml0IHN5c3RlbWQgYWxsYXJjaAorCitkb19pbnN0YWxsKCkgeworICAgIERFU1RESVI9JHtEfSAuL2luc3RhbGwtc2ggJHtleGVjX3ByZWZpeH0KKworICAgIGlmIFsgIiR7c3lzdGVtZF91bml0ZGlyfSIgIT0gIi91c3IvbGliL3N5c3RlbWQiIF07IHRoZW4KKyAgICAgICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCisgICAgICAgIG12ICR7RH0vdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbS8qICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KKyAgICAgICAgcm0gLXJmICR7RH0vdXNyL2xpYi8KKyAgICBmaQorfQorCisjIEl0IGlzIG5vdCBhZHZpc2FibGUgdG8gZW5hYmxlIHRoZXNlIHNlcnZpY2VzIGJ5IGRlZmF1bHQgc2luY2UgdGhleSBjYW4gY2F1c2UKKyMgY29udGludWFsIHRhcmdldCByZWJvb3RzIGlmIHRoZXkgZW5jb3VudGVyIG5ldHdvcmsgcHJvYmxlbXMuCisjCitTWVNURU1EX0FVVE9fRU5BQkxFID0gImRpc2FibGUiCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAicGhvcm9tYXRpYy1jbGllbnQuc2VydmljZSBwaG9yb21hdGljLXNlcnZlci5zZXJ2aWNlIgorCitSREVQRU5EU18ke1BOfSArPSAiYmFzaCBweXRob24gcGhwLWNsaSIKKworRklMRVNfJHtQTn0gKz0gIiBcCisgICAgJHtkYXRhZGlyfS9waG9yb25peC10ZXN0LXN1aXRlIFwKKyAgICAke2RhdGFkaXJ9L2FwcGRhdGEvcGhvcm9uaXgtdGVzdC1zdWl0ZS5hcHBkYXRhLnhtbCBcCisgICAgJHtkYXRhZGlyfS9pY29ucy9oaWNvbG9yLzQ4eDQ4L2FwcHMvcGhvcm9uaXgtdGVzdC1zdWl0ZS5wbmcgXAorICAgICR7ZGF0YWRpcn0vaWNvbnMvaGljb2xvci82NHg2NC9taW1ldHlwZXMvYXBwbGljYXRpb24teC1vcGVuYmVuY2htYXJraW5nLnBuZyBcCisgICAgJHtkYXRhZGlyfS9taW1lL3BhY2thZ2VzL29wZW5iZW5jaG1hcmtpbmctbWltZS54bWwgXAorICAgICR7c3lzdGVtZF91bml0ZGlyfS8qIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay93aGV0c3RvbmUvd2hldHN0b25lXzEuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay93aGV0c3RvbmUvd2hldHN0b25lXzEuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmFkMDRlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL3doZXRzdG9uZS93aGV0c3RvbmVfMS4yLmJiCkBAIC0wLDAgKzEsMjAgQEAKK0RFU0NSSVBUSU9OID0gIldoZXRzdG9uZSBiZW5jaG1hcmsgaXMgYSBzeW50aGV0aWMgYmVuY2htYXJrIGZvciBldmFsdWF0aW5nIHRoZSBwZXJmb3JtYW5jZSBvZiBjb21wdXRlcnMiCitTVU1NQVJZID0gIkNQVSBiZW5jaG1hcmsgdG8gbWVhc3VyZSBmbG9hdGluZyBwb2ludCBwZXJmb3JtYW5jZSIKKworTElDRU5TRSA9ICJQRCIKK0xJQ19GSUxFU19DSEtTVU0gPSJmaWxlOi8vJHtXT1JLRElSfS93aGV0c3RvbmUuYztiZWdpbmxpbmU9MTtlbmRsaW5lPTUyO21kNT1jNzk1ZWRjMTVlN2UxZDkyY2E4Zjg4YWQ3MTg0NDlmNSIKKworU1JDX1VSSSA9ICJodHRwOi8vd3d3Lm5ldGxpYi5vcmcvYmVuY2htYXJrL3doZXRzdG9uZS5jIgorU1JDX1VSSVttZDVzdW1dID0gImQ4ZWIyY2Q3MTA0YmI1YTEyZDYxNGFjNmQzZjFmOWZiIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMzM2U0Y2VjYTA0MmMxNDZmNjNlZWM2MDU1NzNkMTZhZThiMDcxNjZjYmM0NGExN2JlYzFlYTk3YzZmMWVmYmYiCisKK1MgPSAiJHtXT1JLRElSfSIKKworZG9fY29tcGlsZSAoKSB7CisJJHtDQ30gJHtDRkxBR1N9ICR7TERGTEFHU30gLU9mYXN0IC1vIHdoZXRzdG9uZSB3aGV0c3RvbmUuYyAtbG0KK30KKworZG9faW5zdGFsbCAoKSB7CisJaW5zdGFsbCAtRG0gMDc1NSB3aGV0c3RvbmUgJHtEfSR7YmluZGlyfS93aGV0c3RvbmUKK30KKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvYWNwaXRvb2wvYWNwaXRvb2xfMC41LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvYWNwaXRvb2wvYWNwaXRvb2xfMC41LjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2FjcGl0b29sL2FjcGl0b29sXzAuNS4xLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvYWNwaXRvb2wvYWNwaXRvb2xfMC41LjEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY3B1ZnJlcXV0aWxzL2NwdWZyZXF1dGlscy8wMDAxLWRvbnQtdW5zZXQtY2ZsYWdzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2NwdWZyZXF1dGlscy9jcHVmcmVxdXRpbHMvMDAwMS1kb250LXVuc2V0LWNmbGFncy5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jcHVmcmVxdXRpbHMvY3B1ZnJlcXV0aWxzLzAwMDEtZG9udC11bnNldC1jZmxhZ3MucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9jcHVmcmVxdXRpbHMvY3B1ZnJlcXV0aWxzLzAwMDEtZG9udC11bnNldC1jZmxhZ3MucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY3B1ZnJlcXV0aWxzL2NwdWZyZXF1dGlsc18wMDguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvY3B1ZnJlcXV0aWxzL2NwdWZyZXF1dGlsc18wMDguYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY3B1ZnJlcXV0aWxzL2NwdWZyZXF1dGlsc18wMDguYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9jcHVmcmVxdXRpbHMvY3B1ZnJlcXV0aWxzXzAwOC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9lZGFjLXV0aWxzL2VkYWMtdXRpbHNfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VkYWMtdXRpbHMvZWRhYy11dGlsc19naXQuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZWRhYy11dGlscy9lZGFjLXV0aWxzX2dpdC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VkYWMtdXRpbHMvZWRhYy11dGlsc19naXQuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZWRhYy11dGlscy9maWxlcy9hZGQtcmVzdGFydC10by1pbml0c2NyaXB0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VkYWMtdXRpbHMvZmlsZXMvYWRkLXJlc3RhcnQtdG8taW5pdHNjcmlwdC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9lZGFjLXV0aWxzL2ZpbGVzL2FkZC1yZXN0YXJ0LXRvLWluaXRzY3JpcHQucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZGFjLXV0aWxzL2ZpbGVzL2FkZC1yZXN0YXJ0LXRvLWluaXRzY3JpcHQucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZWRhYy11dGlscy9maWxlcy9lZGFjLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWRhYy11dGlscy9maWxlcy9lZGFjLnNlcnZpY2UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZWRhYy11dGlscy9maWxlcy9lZGFjLnNlcnZpY2UKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZGFjLXV0aWxzL2ZpbGVzL2VkYWMuc2VydmljZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9lZGFjLXV0aWxzL2ZpbGVzL21ha2UtaW5pdC1zY3JpcHQtYmUtYWJsZS10by1hdXRvbWF0aWNhbGx5LWxvYWQtRURBQy0ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWRhYy11dGlscy9maWxlcy9tYWtlLWluaXQtc2NyaXB0LWJlLWFibGUtdG8tYXV0b21hdGljYWxseS1sb2FkLUVEQUMtLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2VkYWMtdXRpbHMvZmlsZXMvbWFrZS1pbml0LXNjcmlwdC1iZS1hYmxlLXRvLWF1dG9tYXRpY2FsbHktbG9hZC1FREFDLS5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VkYWMtdXRpbHMvZmlsZXMvbWFrZS1pbml0LXNjcmlwdC1iZS1hYmxlLXRvLWF1dG9tYXRpY2FsbHktbG9hZC1FREFDLS5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpYm9vdG1nci9lZmlib290bWdyXzAuMTUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpYm9vdG1nci9lZmlib290bWdyXzAuMTUuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaWJvb3RtZ3IvZWZpYm9vdG1ncl8wLjE1LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpYm9vdG1nci9lZmlib290bWdyXzAuMTUuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyLzAwMDEtZWZpdmFyLWRwLmgtQWRkLVd1bmtub3duLWF0dHJpYnV0ZXMtd2hlbi11c2luZy1jbGFuZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyLzAwMDEtZWZpdmFyLWRwLmgtQWRkLVd1bmtub3duLWF0dHJpYnV0ZXMtd2hlbi11c2luZy1jbGFuZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGNlMTMyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvMDAwMS1lZml2YXItZHAuaC1BZGQtV3Vua25vd24tYXR0cmlidXRlcy13aGVuLXVzaW5nLWNsYW5nLnBhdGNoCkBAIC0wLDAgKzEsMzMgQEAKK0Zyb20gZDY1YzMyNWRkODY4MWVkZjJlZTMzMzJlZWIwYTU0NzIyOWM3ZmZiNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBUaHUsIDI0IEF1ZyAyMDE3IDE1OjU0OjQ3IC0wNzAwCitTdWJqZWN0OiBbUEFUQ0hdIGVmaXZhci1kcC5oOiBBZGQgLVd1bmtub3duLWF0dHJpYnV0ZXMgd2hlbiB1c2luZyBjbGFuZworCitjaGFuZ2UgIWRwIGNoZWNrIHRvIGEgY29tcGFyaXNpb24gYWdhaW5zdCBOVUxMIHRvIHNpbGVudCBjbGFuZyB3YXJuaW5nCitub25udWxsIHBhcmFtZXRlciAnZHAnIHdpbGwgZXZhbHVhdGUgdG8gJ3RydWUnIG9uIGZpcnN0IGVuY291bnRlcgorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCistLS0KKyBzcmMvaW5jbHVkZS9lZml2YXIvZWZpdmFyLWRwLmggfCA1ICsrKysrCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZWZpdmFyL2VmaXZhci1kcC5oIGIvc3JjL2luY2x1ZGUvZWZpdmFyL2VmaXZhci1kcC5oCitpbmRleCAzYTUwOWI3Li5jMTQwZThkIDEwMDY0NAorLS0tIGEvc3JjL2luY2x1ZGUvZWZpdmFyL2VmaXZhci1kcC5oCisrKysgYi9zcmMvaW5jbHVkZS9lZml2YXIvZWZpdmFyLWRwLmgKK0BAIC03ODMsOSArNzgzLDE0IEBAIGV4dGVybiBpbnQgZWZpZHBfYXBwZW5kX2luc3RhbmNlKGNvbnN0X2VmaWRwIGRwLCBjb25zdF9lZmlkcCBkcGksIGVmaWRwICpvdXQpOworICAqIHRob3VnaCBvbGRlciBvciBvdGhlciBjb21waWxlcnMgbWlnaHQganVzdCBpZ25vcmUgdGhhdCBhdHRyaWJ1dGUgaWYgdGhleQorICAqIGRvbid0IHN1cHBvcnQgaXQuICBVZ2guCisgICovCisrI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisgI2lmIGRlZmluZWQoX19HTlVDX18pICYmIF9fR05VQ19fID49IDYKKyAjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbC1jb21wYXJlIgorICNlbmRpZgorKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKysjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1hdHRyaWJ1dGVzIgorKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdwb2ludGVyLWJvb2wtY29udmVyc2lvbiIKKysjZW5kaWYKKyAKKyBzdGF0aWMgaW5saW5lIGludDE2X3QKKyBfX2F0dHJpYnV0ZV9fKChfX2FydGlmaWNpYWxfXykpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci8wMDAxLWVmaXZhci1maXgtZm9yLWNyb3NzLWNvbXBpbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci8wMDAxLWVmaXZhci1maXgtZm9yLWNyb3NzLWNvbXBpbGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUxZTUwYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyLzAwMDEtZWZpdmFyLWZpeC1mb3ItY3Jvc3MtY29tcGlsZS5wYXRjaApAQCAtMCwwICsxLDMyIEBACitGcm9tIGE5MTE1ZDllNmYwZjYyZDZiYjczNWNlMzY5ODg1OGQxZjg5ZjhkNzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KK0RhdGU6IEZyaSwgMjUgU2VwIDIwMTUgMTg6MTQ6MzEgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gZWZpdmFyOiBmaXggZm9yIGNyb3NzIGNvbXBpbGUKKworSXQgYnVpbGRzIGFuZCBjYWxscyBlbGYgZmlsZSBtYWtlZ3VpZHMgdG8gZ2VuZXJhdGUgYSBoZWFkZXIgZmlsZSB3aGljaAorZG9lc24ndCB3b3JrIGZvciBjcm9zcyBjb21waWxlLiBGaXggaXQuCisKK1NpZ25lZC1vZmYtYnk6IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKK1NpZ25lZC1vZmYtYnk6IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KKworLS0tCisgc3JjL01ha2VmaWxlIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZSBiL3NyYy9NYWtlZmlsZQoraW5kZXggMGMxNjU5Ny4uZGNjN2ZjOCAxMDA2NDQKKy0tLSBhL3NyYy9NYWtlZmlsZQorKysrIGIvc3JjL01ha2VmaWxlCitAQCAtNDAsOCArNDAsOCBAQCBhYmljaGVjayA6ICQocGF0c3Vic3QgJS5zbywlLmFiaWNoZWNrLCQoTElCVEFSR0VUUykpCisgLi9ndWlkLXN5bWJvbHMuYyA6IGluY2x1ZGUvZWZpdmFyL2VmaXZhci1ndWlkcy5oCisgLi9ndWlkcy5iaW4gOiBpbmNsdWRlL2VmaXZhci9lZml2YXItZ3VpZHMuaAorIC4vbmFtZXMuYmluIDogaW5jbHVkZS9lZml2YXIvZWZpdmFyLWd1aWRzLmgKKy1pbmNsdWRlL2VmaXZhci9lZml2YXItZ3VpZHMuaCA6IG1ha2VndWlkcyBndWlkcy50eHQKKy0JLi9tYWtlZ3VpZHMgZ3VpZHMudHh0IGd1aWRzLmJpbiBuYW1lcy5iaW4gXAorK2luY2x1ZGUvZWZpdmFyL2VmaXZhci1ndWlkcy5oIDogZ3VpZHMudHh0CisrCW1ha2VndWlkcyBndWlkcy50eHQgZ3VpZHMuYmluIG5hbWVzLmJpbiBcCisgCQlndWlkLXN5bWJvbHMuYyBpbmNsdWRlL2VmaXZhci9lZml2YXItZ3VpZHMuaAorIAorIG1ha2VndWlkcyA6IENQUEZMQUdTKz0tREVGSVZBUl9CVUlMRF9FTlZJUk9OTUVOVApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvMDAwMS1tYWtlZ3VpZHMtRG8tbm90LXVzZS1fX2Jzd2FwX2NvbnN0YW50Xy0xNi0zMi1tYWNyb3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci8wMDAxLW1ha2VndWlkcy1Eby1ub3QtdXNlLV9fYnN3YXBfY29uc3RhbnRfLTE2LTMyLW1hY3Jvcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTZlYjA2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvMDAwMS1tYWtlZ3VpZHMtRG8tbm90LXVzZS1fX2Jzd2FwX2NvbnN0YW50Xy0xNi0zMi1tYWNyb3MucGF0Y2gKQEAgLTAsMCArMSwzNSBAQAorRnJvbSBkZDQyOTEyNjViN2IzZDdkN2ZmYTFkOGFkZjMyNzgxYWUyNWRiZmViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFNhdCwgMTUgSnVsIDIwMTcgMDA6Mjk6NDIgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gbWFrZWd1aWRzOiBEbyBub3QgdXNlIF9fYnN3YXBfY29uc3RhbnRfezE2fDMyfSBtYWNyb3MKKworbm90IGF2YWlsYWJsZSBvbiBtdXNsCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKKy0tLQorIHNyYy9tYWtlZ3VpZHMuYyB8IDggKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL21ha2VndWlkcy5jIGIvc3JjL21ha2VndWlkcy5jCitpbmRleCBkYTJmNWY3Li5kYWY4MjFhIDEwMDY0NAorLS0tIGEvc3JjL21ha2VndWlkcy5jCisrKysgYi9zcmMvbWFrZWd1aWRzLmMKK0BAIC0xNTUsMTMgKzE1NSwxMyBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgI2lmIEJZVEVfT1JERVIgPT0gQklHX0VORElBTlxuXAorICNkZWZpbmUgY3B1X3RvX2JlMzIobikgKG4pXG5cCisgI2RlZmluZSBjcHVfdG9fYmUxNihuKSAobilcblwKKy0jZGVmaW5lIGNwdV90b19sZTMyKG4pIChfX2Jzd2FwX2NvbnN0YW50XzMyKG4pKVxuXAorLSNkZWZpbmUgY3B1X3RvX2xlMTYobikgKF9fYnN3YXBfY29uc3RhbnRfMTYobikpXG5cCisrI2RlZmluZSBjcHVfdG9fbGUzMihuKSAoKHVpbnQzMl90KSAoKG4pPj4yNCB8IChuKT4+OCYweGZmMDAgfCAobik8PDgmMHhmZjAwMDAgfCAobik8PDI0KSlcblwKKysjZGVmaW5lIGNwdV90b19sZTE2KG4pICgodWludDE2X3QpICgobik8PDggfCAobik+PjgpKVxuXAorICNlbHNlXG5cCisgI2RlZmluZSBjcHVfdG9fbGUzMihuKSAobilcblwKKyAjZGVmaW5lIGNwdV90b19sZTE2KG4pIChuKVxuXAorLSNkZWZpbmUgY3B1X3RvX2JlMzIobikgKF9fYnN3YXBfY29uc3RhbnRfMzIobikpXG5cCistI2RlZmluZSBjcHVfdG9fYmUxNihuKSAoX19ic3dhcF9jb25zdGFudF8xNihuKSlcblwKKysjZGVmaW5lIGNwdV90b19iZTMyKG4pICgodWludDMyX3QpICgobik+PjI0IHwgKG4pPj44JjB4ZmYwMCB8IChuKTw8OCYweGZmMDAwMCB8IChuKTw8MjQpKVxuXAorKyNkZWZpbmUgY3B1X3RvX2JlMTYobikgKCh1aW50MTZfdCkgKChuKTw8OCB8IChuKT4+OCkpXG5cCisgI2VuZGlmXG5cCisgIiIiKTsKKyAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyLzAwMDMtZWZpdmFyLWZpeC1mb3ItY3Jvc3MtY29tcGlsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyLzAwMDMtZWZpdmFyLWZpeC1mb3ItY3Jvc3MtY29tcGlsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzEwNWZlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvMDAwMy1lZml2YXItZml4LWZvci1jcm9zcy1jb21waWxlLnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAKK0Zyb20gZGVhNGE1NTcxNDI0OWIyNzM0YTM2NzAxMTIwZmQyMmM5MWM2NGVjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFNhdCwgNyBNYXkgMjAxNiAwMjowNjo0NyAtMDQwMAorU3ViamVjdDogW1BBVENIXSBNYWtlZmlsZTogZml4IGVmaXZhci5wYyBub3QgZm91bmQKKworSXQgZml4ZXMgZWZpdmFyLnBjIG5vdCBmb3VuZDoKKy4uLgorfCBpbnN0YWxsIC1kIC1tIDc1NSBlZml2YXIvMC4yMy1yMC9pbWFnZS91c3IvbGliL3BrZ2NvbmZpZy8KK3wgaW5zdGFsbCAtbSA2NDQgZWZpdmFyLnBjIGVmaXZhci8wLjIzLXIwL2ltYWdlL3Vzci9saWIvcGtnY29uZmlnLworOyAgaW5zdGFsbCAtbSA2NDQgZWZpYm9vdC5wYyBlZml2YXIvMC4yMy1yMC9pbWFnZS91c3IvbGliL3BrZ2NvbmZpZy8KKzsKK3wgaW5zdGFsbDogY2Fubm90IHN0YXQgJ2VmaXZhci5wYyc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK3wgaW5zdGFsbDogY2Fubm90IHN0YXQgJ2VmaWJvb3QucGMnOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Cit8IG1ha2VbMV06ICoqKiBbaW5zdGFsbF0gRXJyb3IgMQorfCBtYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSBgZWZpdmFyLzAuMjMtcjAvZ2l0L3NyYycKK3wgbWFrZTogKioqIFtpbnN0YWxsXSBFcnJvciAyCit8IEVSUk9SOiBvZV9ydW5tYWtlIGZhaWxlZAorLi4uCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+CisKKy0tLQorIHNyYy9NYWtlZmlsZSB8IDQgKysrLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZSBiL3NyYy9NYWtlZmlsZQoraW5kZXggZGNjN2ZjOC4uNjkxYWE4YSAxMDA2NDQKKy0tLSBhL3NyYy9NYWtlZmlsZQorKysrIGIvc3JjL01ha2VmaWxlCitAQCAtOTQsNyArOTQsOSBAQCBpbnN0YWxsIDogYWxsCisgCQlsbiAtZnMgJCh4KS4xLiQoVkVSU0lPTikgJChERVNURElSKSQobGliZGlyKS8kKHgpIDtcCisgCQkpCisgCSQoSU5TVEFMTCkgLWQgLW0gNzU1ICQoREVTVERJUikkKFBDRElSKQorLQkkKGZvcmVhY2ggeCwgJChQQ1RBUkdFVFMpLCAkKElOU1RBTEwpIC1tIDY0NCAkKHgpICQoREVTVERJUikkKFBDRElSKSA7KQorKwkkKGZvcmVhY2ggeCwgJChQQ1RBUkdFVFMpLCAkKElOU1RBTEwpIC1tIDY0NCAkKFRPUERJUikvc3JjLyQoeCkuaW4gJChERVNURElSKSQoUENESVIpLyQoeCkgO1wKKysJCXNlZCAtaSAtZSAiczpAQExJQkRJUkBAOiQobGliZGlyKTpnIiAtZSAiczpAQFZFUlNJT05AQDokKFZFUlNJT04pOmciIFwKKysJCQkkKERFU1RESVIpJChQQ0RJUikvJCh4KTsgKQorIAkkKElOU1RBTEwpIC1kIC1tIDc1NSAkKERFU1RESVIpJChpbmNsdWRlZGlyKS9lZml2YXIKKyAJJChmb3JlYWNoIHgsICQod2lsZGNhcmQgJChUT1BESVIpL3NyYy9pbmNsdWRlL2VmaXZhci8qLmgpLCAkKElOU1RBTEwpIC1tIDY0NCAkKHgpICQoREVTVERJUikkKGluY2x1ZGVkaXIpL2VmaXZhci8kKG5vdGRpciAkKHgpKTspCisgCSQoSU5TVEFMTCkgLWQgLW0gNzU1ICQoREVTVERJUikkKGJpbmRpcikKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvMDAwNC1maXgtdW5rbm93LW9wdGlvbi1mb3ItZ29sZC1saW5rZXIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci8wMDA0LWZpeC11bmtub3ctb3B0aW9uLWZvci1nb2xkLWxpbmtlci5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci8wMDA0LWZpeC11bmtub3ctb3B0aW9uLWZvci1nb2xkLWxpbmtlci5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvMDAwNC1maXgtdW5rbm93LW9wdGlvbi1mb3ItZ29sZC1saW5rZXIucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyL2FsbG93LW11bHRpLWRlZmluaXRpb25zLWZvci1uYXRpdmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci9hbGxvdy1tdWx0aS1kZWZpbml0aW9ucy1mb3ItbmF0aXZlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OGFmMWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci9hbGxvdy1tdWx0aS1kZWZpbml0aW9ucy1mb3ItbmF0aXZlLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gYzgwMWRjYjAzZDQyZWI1MzNhOWJlYWQwYjM5N2Q3Y2U0ZmM1YTZmZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgorRGF0ZTogV2VkLCAxMCBBdWcgMjAxNiAxNzo0OTo1MCArMDgwMAorU3ViamVjdDogW1BBVENIXSBhbGxvdyBtdWx0aSBkZWZpbml0aW9ucyBmb3IgbmF0aXZlCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitJdCBmYWlscyB0byBjcmVhdGUgLnNvIGZpbGUgd2hlbiBidWlsZCBlZml2YXItbmF0aXZlOgorCit8IGxpYi5vOigqSU5EKisweDApOiBtdWx0aXBsZSBkZWZpbml0aW9uIG9mIGBlZmlfc2V0X3ZhcmlhYmxlJworfCBsaWIubzpsaWIuYzooLnRleHQrMHhhMCk6IGZpcnN0IGRlZmluZWQgaGVyZQorCitBZGQgbGluayBvcHRpb24gJy16IG11bGRlZnMnIHRvIGZpeCBpdC4KKworU2lnbmVkLW9mZi1ieTogS2FpIEthbmcgPGthaS5rYW5nQHdpbmRyaXZlci5jb20+CisKKy0tLQorIE1ha2UucnVsZXMgfCAxICsKKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworZGlmZiAtLWdpdCBhL01ha2UucnVsZXMgYi9NYWtlLnJ1bGVzCitpbmRleCA4OGI5YWE3Li43OTkzMzJmIDEwMDY0NAorLS0tIGEvTWFrZS5ydWxlcworKysrIGIvTWFrZS5ydWxlcworQEAgLTIwLDYgKzIwLDcgQEAgaW5jbHVkZSAkKFRPUERJUikvTWFrZS52ZXJzaW9uCisgCSQoQ0NMRCkgJChjY2xkZmxhZ3MpICQoQ1BQRkxBR1MpICQoU09GTEFHUykgXAorIAkgIC1XbCwtc29uYW1lLCRALjEgXAorIAkgIC1XbCwtLXZlcnNpb24tc2NyaXB0PSQoTUFQKSBcCisrCSAgLVdsLC16LG11bGRlZnMgXAorIAkgIC1vICRAICReICQoTERMSUJTKQorIAorICUuYWJpeG1sIDogJS5zbwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvZml4LWNvbXBpbGUtZmFpbHVyZS13aXRoLWhvc3QtZ2NjLTQuNi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyL2ZpeC1jb21waWxlLWZhaWx1cmUtd2l0aC1ob3N0LWdjYy00LjYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJjOWE1NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyL2ZpeC1jb21waWxlLWZhaWx1cmUtd2l0aC1ob3N0LWdjYy00LjYucGF0Y2gKQEAgLTAsMCArMSw0MyBAQAorRnJvbSAzZWRjZTZhMDAxOWJjYjkwZmViYzFmNjU0YjViMmUyYmFkNWM1OWJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVGh1LCAyNiBNYXkgMjAxNiAyMTo1MDowMSAtMDQwMAorU3ViamVjdDogW1BBVENIXSBmaXggY29tcGlsZSBmYWlsdXJlIHdpdGggb2xkZXIgaG9zdCBnY2MgKDw9NC42KQorCitXaGlsZSBob3N0IGdjYyB2ZXJzaW9uIGlzIDQuNi4zIGluIHVidW50dSAxMjA0LCBpdAorZGlkIG5vdCByZWNvZ25pemUgLXN0ZD1nbnUxMSBhbmQgLVdtYXliZS11bmluaXRpYWxpemVkLgorCitXaGlsZSBob3N0IGdjYyB2ZXJzaW9uIGlzIDQuNC43IGluIGNlbnRvczYsIGl0CitkaWQgbm90IHJlY29nbml6ZSAtc3RkPWdudTExLCAtV21heWJlLXVuaW5pdGlhbGl6ZWQsCithbmQgLWZsdG8uCisKK0ZvciBuYXRpdmUgYnVpbGQsIHVzZSAtc3RkPWdudTk5IHRvIHJlcGxhY2UgLXN0ZD1nbnUxMSwKK2FuZCBkaXJlY3RseSByZW1vdmUgLVdtYXliZS11bmluaXRpYWxpemVkIGFuZCAtZmx0by4KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KKworLS0tCisgZ2NjLnNwZWNzIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2djYy5zcGVjcyBiL2djYy5zcGVjcworaW5kZXggNDVkNDNkMS4uZjFjNjk0NCAxMDA2NDQKKy0tLSBhL2djYy5zcGVjcworKysrIGIvZ2NjLnNwZWNzCitAQCAtMiwxMyArMiwxMyBAQAorICsgLURfR05VX1NPVVJDRQorIAorICplZml2YXJfY3BwX29wdGlvbnM6CistIC1XZXJyb3IgLVdhbGwgLXN0ZD1nbnUxMSAtV2V4dHJhCisrIC1XZXJyb3IgLVdhbGwgLXN0ZD1nbnU5OSAtV2V4dHJhCisgCisgKmNwcF9vcHRpb25zOgorICsgJShlZml2YXJfY3BwX29wdGlvbnMpCisgCisgKmNjMV9vcHRpb25zOgorLSsgJShlZml2YXJfY3BwX29wdGlvbnMpIC1XbWF5YmUtdW5pbml0aWFsaXplZCAtZm5vLW1lcmdlLWNvbnN0YW50cyAtZnZpc2liaWxpdHk9aGlkZGVuICV7IXI6JXshZnBpZToleyFmUElFOiV7IWZwaWM6JXshZlBJQzoleyFmbm8tcGljOi1mUElFfX19fX19CisrKyAlKGVmaXZhcl9jcHBfb3B0aW9ucykgLWZuby1tZXJnZS1jb25zdGFudHMgLWZ2aXNpYmlsaXR5PWhpZGRlbiAleyFyOiV7IWZwaWU6JXshZlBJRToleyFmcGljOiV7IWZQSUM6JXshZm5vLXBpYzotZlBJRX19fX19fQorIAorICpzZWxmX3NwZWM6CisgKyAleyFzaGFyZWQ6JXshc3RhdGljOiV7IXI6LXBpZX19fSAle3N0YXRpYzotV2wsLW5vLWZhdGFsLXdhcm5pbmdzIC1XbCwtc3RhdGljIC1zdGF0aWMgLVdsLC16LHJlbHJvLC16LG5vd30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyL211c2wtc3RybmR1cGEucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci9tdXNsLXN0cm5kdXBhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NjRhYzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci9tdXNsLXN0cm5kdXBhLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0Zyb20gODAwMGI5YWZjODU4NDcyOTEyYWFjZTk4NTAwNGI0NGY4ZWI0NjdlMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDE4IEF1ZyAyMDE3IDA5OjQ5OjQ5IC0wNzAwCitTdWJqZWN0OiBbUEFUQ0hdIHN1cHBvcnQgbXVzbAorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKy0tLQorIHNyYy9saW51eC5jIHwgNCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3JjL2xpbnV4LmMgYi9zcmMvbGludXguYworaW5kZXggMzRlZDQ3OS4uMTMwNGYyYiAxMDA2NDQKKy0tLSBhL3NyYy9saW51eC5jCisrKysgYi9zcmMvbGludXguYworQEAgLTQwLDYgKzQwLDEwIEBACisgI2luY2x1ZGUgPGVmaXZhci5oPgorICNpbmNsdWRlIDxlZmlib290Lmg+CisgCisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKysjZGVmaW5lIHN0cm5kdXBhKHgscykgc3RybmNweShhbGxvY2Eoc3RybGVuKHgpKzEpLHgscykKKysjZW5kaWYKKysKKyAjaW5jbHVkZSAiZHAuaCIKKyAjaW5jbHVkZSAibGludXguaCIKKyAjaW5jbHVkZSAidXRpbC5oIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhcl8wLjMxLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXJfMC4zMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhcl8wLjMxLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhcl8wLjMxLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZmxhc2hyb20vZmxhc2hyb20vMDAwMS1wbGF0Zm9ybS1BZGQtcmlzY3YtdG8ta25vd24tcGxhdGZvcm1zLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2ZsYXNocm9tL2ZsYXNocm9tLzAwMDEtcGxhdGZvcm0tQWRkLXJpc2N2LXRvLWtub3duLXBsYXRmb3Jtcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmE2OWE5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2ZsYXNocm9tL2ZsYXNocm9tLzAwMDEtcGxhdGZvcm0tQWRkLXJpc2N2LXRvLWtub3duLXBsYXRmb3Jtcy5wYXRjaApAQCAtMCwwICsxLDM3IEBACitGcm9tIGQyYTI4ZGNkYmQxMDUxZDJmNDgzMjBlMmVkYTMzOTM1ODFmZTA1MTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU2F0LCAxNyBNYXIgMjAxOCAyMzowODoyOSAtMDcwMAorU3ViamVjdDogW1BBVENIXSBwbGF0Zm9ybTogQWRkIHJpc2N2IHRvIGtub3duIHBsYXRmb3JtcworCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9yZXZpZXcuY29yZWJvb3Qub3JnLyMvYy9mbGFzaHJvbS8rLzI1MjYwL10KKyBwbGF0Zm9ybS5oIHwgNSArKysrLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3BsYXRmb3JtLmggYi9wbGF0Zm9ybS5oCitpbmRleCBiMmZkY2QwLi4yY2FkYmIzIDEwMDY0NAorLS0tIGEvcGxhdGZvcm0uaAorKysrIGIvcGxhdGZvcm0uaAorQEAgLTY5LDYgKzY5LDkgQEAKKyAjZWxpZiBkZWZpbmVkIChfX202OGtfXykKKyAJI2RlZmluZSBfX0ZMQVNIUk9NX0FSQ0hfXyAibTY4ayIKKyAJI2RlZmluZSBJU19NNjhLIDEKKysjZWxpZiBkZWZpbmVkIChfX3Jpc2N2KQorKwkjZGVmaW5lIF9fRkxBU0hST01fQVJDSF9fICJyaXNjdiIKKysJI2RlZmluZSBJU19SSVNDViAxCisgI2VsaWYgZGVmaW5lZCAoX19zaF9fKQorIAkjZGVmaW5lIF9fRkxBU0hST01fQVJDSF9fICJzaCIKKyAJI2RlZmluZSBJU19TSCAxCitAQCAtNzcsNyArODAsNyBAQAorIAkjZGVmaW5lIElTX1MzOTAgMQorICNlbmRpZgorIAorLSNpZiAhKElTX1g4NiB8fCBJU19NSVBTIHx8IElTX1BQQyB8fCBJU19BUk0gfHwgSVNfU1BBUkMgfHwgSVNfQUxQSEEgfHwgSVNfSFBQQSB8fCBJU19NNjhLIHx8IElTX1NIIHx8IElTX1MzOTApCisrI2lmICEoSVNfWDg2IHx8IElTX01JUFMgfHwgSVNfUFBDIHx8IElTX0FSTSB8fCBJU19TUEFSQyB8fCBJU19BTFBIQSB8fCBJU19IUFBBIHx8IElTX002OEsgfHwgSVNfUklTQ1YgfHwgSVNfU0ggfHwgSVNfUzM5MCkKKyAjZXJyb3IgVW5rbm93biBhcmNoaXRlY3R1cmUKKyAjZW5kaWYKKyAKKy0tIAorMi4xNi4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsYXNocm9tL2ZsYXNocm9tL3NzdDI2LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2ZsYXNocm9tL2ZsYXNocm9tL3NzdDI2LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9mbGFzaHJvbS9mbGFzaHJvbS9zc3QyNi5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2ZsYXNocm9tL2ZsYXNocm9tL3NzdDI2LnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZmxhc2hyb20vZmxhc2hyb21fMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2ZsYXNocm9tL2ZsYXNocm9tXzEuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWFjODc2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2ZsYXNocm9tL2ZsYXNocm9tXzEuMC5iYgpAQCAtMCwwICsxLDE5IEBACitERVNDUklQVElPTiA9ICJmbGFzaHJvbSBpcyBhIHV0aWxpdHkgZm9yIGlkZW50aWZ5aW5nLCByZWFkaW5nLCB3cml0aW5nLCB2ZXJpZnlpbmcgYW5kIGVyYXNpbmcgZmxhc2ggY2hpcHMiCitMSUNFTlNFID0gIkdQTHYyIgorSE9NRVBBR0UgPSAiaHR0cDovL2ZsYXNocm9tLm9yZyIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCitERVBFTkRTID0gInBjaXV0aWxzIGxpYnVzYiBsaWJ1c2ItY29tcGF0IgorCitTUkNfVVJJID0gImh0dHBzOi8vZG93bmxvYWQuZmxhc2hyb20ub3JnL3JlbGVhc2VzL2ZsYXNocm9tLSR7UFZ9LnRhci5iejIgXAorICAgICAgICAgICBmaWxlOi8vc3N0MjYucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1wbGF0Zm9ybS1BZGQtcmlzY3YtdG8ta25vd24tcGxhdGZvcm1zLnBhdGNoIFwKKyAgICAgICAgICAgIgorU1JDX1VSSVttZDVzdW1dID0gIjQyZDk5OTk5MGM3MzVkODg2NTM2MjdjZWZjYzEzYjlhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjM3MDJmYTIxNWJhNWZiNWFmOGU1NGM4NTJkMjM5ODk5Y2ZhMTM4OTE5NGMxZTUxY2IyYTE3MGM0ZGM5ZGVlNjQiCisKK2luaGVyaXQgcGtnY29uZmlnCisKK2RvX2luc3RhbGwoKSB7CisgICAgb2VfcnVubWFrZSBQUkVGSVg9JHtwcmVmaXh9IERFU1RESVI9JHtEfSBpbnN0YWxsCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9mYW5jb250cm9sIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9mYW5jb250cm9sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9mYW5jb250cm9sCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL2ZhbmNvbnRyb2wKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL3NlbnNvcmQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL3NlbnNvcmQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL3NlbnNvcmQKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvc2Vuc29yZApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvc2Vuc29yZC5jZ2kgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL3NlbnNvcmQuY2dpCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9zZW5zb3JkLmNnaQpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9zZW5zb3JkLmNnaQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvc2Vuc29yZC5jb25mIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9zZW5zb3JkLmNvbmYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL3NlbnNvcmQuY29uZgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9zZW5zb3JkLmNvbmYKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL3NlbnNvcnMuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvc2Vuc29ycy5jb25mCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9zZW5zb3JzLmNvbmYKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvc2Vuc29ycy5jb25mCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZ18xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnXzEuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWdfMS4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnXzEuMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29ycy8wMDAxLWxtc2Vuc29ycy1zZW5zb3JzLWRldGVjdC1wcmludC1hLXNwZWNpYWwtbWVzc2FnZS13aGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMvMDAwMS1sbXNlbnNvcnMtc2Vuc29ycy1kZXRlY3QtcHJpbnQtYS1zcGVjaWFsLW1lc3NhZ2Utd2hlLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLzAwMDEtbG1zZW5zb3JzLXNlbnNvcnMtZGV0ZWN0LXByaW50LWEtc3BlY2lhbC1tZXNzYWdlLXdoZS5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzLzAwMDEtbG1zZW5zb3JzLXNlbnNvcnMtZGV0ZWN0LXByaW50LWEtc3BlY2lhbC1tZXNzYWdlLXdoZS5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29ycy8wMDAxLXByb2ctRG8tbm90LWxpbWl0LXN5cy1pby5oLWhlYWRlci1pbmNsdWRlLXRvLWp1c3QtZ2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMvMDAwMS1wcm9nLURvLW5vdC1saW1pdC1zeXMtaW8uaC1oZWFkZXItaW5jbHVkZS10by1qdXN0LWdsLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLzAwMDEtcHJvZy1Eby1ub3QtbGltaXQtc3lzLWlvLmgtaGVhZGVyLWluY2x1ZGUtdG8tanVzdC1nbC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzLzAwMDEtcHJvZy1Eby1ub3QtbGltaXQtc3lzLWlvLmgtaGVhZGVyLWluY2x1ZGUtdG8tanVzdC1nbC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29ycy9mYW5jb250cm9sLmluaXQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMvZmFuY29udHJvbC5pbml0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzL2ZhbmNvbnRyb2wuaW5pdApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzL2ZhbmNvbnRyb2wuaW5pdApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29ycy9zZW5zb3JkLmluaXQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMvc2Vuc29yZC5pbml0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzL3NlbnNvcmQuaW5pdApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzL3NlbnNvcmQuaW5pdApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29yc18zLjQuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29yc18zLjQuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29yc18zLjQuMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzXzMuNC4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9sc3NjaS9sc3Njc2lfMC4yOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sc3NjaS9sc3Njc2lfMC4yOC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbHNzY2kvbHNzY3NpXzAuMjguYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sc3NjaS9sc3Njc2lfMC4yOC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDAxLWhvc3RhcGQtQXZvaWQta2V5LXJlaW5zdGFsbGF0aW9uLWluLUZULWhhbmRzaGFrZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwMS1ob3N0YXBkLUF2b2lkLWtleS1yZWluc3RhbGxhdGlvbi1pbi1GVC1oYW5kc2hha2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTUzNWEzYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwMS1ob3N0YXBkLUF2b2lkLWtleS1yZWluc3RhbGxhdGlvbi1pbi1GVC1oYW5kc2hha2UucGF0Y2gKQEAgLTAsMCArMSwxNzcgQEAKK0Zyb20gMDQ0YWUzNWM1Njk0YzM5YTRhY2EyYTMzNTAyY2MzODk3ZTg4Zjc5ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hdGh5IFZhbmhvZWYgPE1hdGh5LlZhbmhvZWZAY3Mua3VsZXV2ZW4uYmU+CitEYXRlOiBGcmksIDE0IEp1bCAyMDE3IDE1OjE1OjM1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMS83XSBob3N0YXBkOiBBdm9pZCBrZXkgcmVpbnN0YWxsYXRpb24gaW4gRlQgaGFuZHNoYWtlCisKK0RvIG5vdCByZWluc3RhbGwgVEsgdG8gdGhlIGRyaXZlciBkdXJpbmcgUmVhc3NvY2lhdGlvbiBSZXNwb25zZSBmcmFtZQorcHJvY2Vzc2luZyBpZiB0aGUgZmlyc3QgYXR0ZW1wdCBvZiBzZXR0aW5nIHRoZSBUSyBzdWNjZWVkZWQuIFRoaXMgYXZvaWRzCitpc3N1ZXMgcmVsYXRlZCB0byBjbGVhcmluZyB0aGUgVFgvUlggUE4gdGhhdCBjb3VsZCByZXN1bHQgaW4gcmV1c2luZworc2FtZSBQTiB2YWx1ZXMgZm9yIHRyYW5zbWl0dGVkIGZyYW1lcyAoZS5nLiwgZHVlIHRvIENDTSBub25jZSByZXVzZSBhbmQKK2Fsc28gaGl0dGluZyByZXBsYXkgcHJvdGVjdGlvbiBvbiB0aGUgcmVjZWl2ZXIpIGFuZCBhY2NlcHRpbmcgcmVwbGF5ZWQKK2ZyYW1lcyBvbiBSWCBzaWRlLgorCitUaGlzIGlzc3VlIHdhcyBpbnRyb2R1Y2VkIGJ5IHRoZSBjb21taXQKKzBlODRjMjU0MzRlNmExZjI4M2M3YjRlNjJlNDgzNzI5MDg1Yjc4ZDIgKCdGVDogRml4IFBUSyBjb25maWd1cmF0aW9uIGluCithdXRoZW50aWNhdG9yJykgd2hpY2ggYWxsb3dlZCB3cGFfZnRfaW5zdGFsbF9wdGsoKSB0byBiZSBjYWxsZWQgbXVsdGlwbGUKK3RpbWVzIHdpdGggdGhlIHNhbWUgUFRLLiBXaGlsZSB0aGUgc2Vjb25kIGNvbmZpZ3VyYXRpb24gYXR0ZW1wdCBpcworbmVlZGVkIHdpdGggc29tZSBkcml2ZXJzLCBpdCBtdXN0IGJlIGRvbmUgb25seSBpZiB0aGUgZmlyc3QgYXR0ZW1wdAorZmFpbGVkLgorCitTaWduZWQtb2ZmLWJ5OiBNYXRoeSBWYW5ob2VmIDxNYXRoeS5WYW5ob2VmQGNzLmt1bGV1dmVuLmJlPgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CitTaWduZWQtb2ZmLWJ5OiBaaGVuZyBSdW9xaW4gPHpoZW5ncnEuZm5zdEBjbi5mdWppdHN1LmNvbT4KKy0tLQorIHNyYy9hcC9pZWVlODAyXzExLmMgIHwgMTYgKysrKysrKysrKysrKy0tLQorIHNyYy9hcC93cGFfYXV0aC5jICAgIHwgMTEgKysrKysrKysrKysKKyBzcmMvYXAvd3BhX2F1dGguaCAgICB8ICAzICsrLQorIHNyYy9hcC93cGFfYXV0aF9mdC5jIHwgMTAgKysrKysrKysrKworIHNyYy9hcC93cGFfYXV0aF9pLmggIHwgIDEgKworIDUgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9hcC9pZWVlODAyXzExLmMgYi9zcmMvYXAvaWVlZTgwMl8xMS5jCitpbmRleCA0ZTA0MTY5Li4zMzMwMzVmIDEwMDY0NAorLS0tIGEvc3JjL2FwL2llZWU4MDJfMTEuYworKysrIGIvc3JjL2FwL2llZWU4MDJfMTEuYworQEAgLTE4NDEsNiArMTg0MSw3IEBAIHN0YXRpYyBpbnQgYWRkX2Fzc29jaWF0ZWRfc3RhKHN0cnVjdCBob3N0YXBkX2RhdGEgKmhhcGQsCisgeworIAlzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcGFiaWxpdGllcyBodF9jYXA7CisgCXN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcGFiaWxpdGllcyB2aHRfY2FwOworKwlpbnQgc2V0ID0gMTsKKyAKKyAJLyoKKyAJICogUmVtb3ZlIHRoZSBTVEEgZW50cnkgdG8gZW5zdXJlIHRoZSBTVEEgUFMgc3RhdGUgZ2V0cyBjbGVhcmVkIGFuZAorQEAgLTE4NDgsOSArMTg0OSwxOCBAQCBzdGF0aWMgaW50IGFkZF9hc3NvY2lhdGVkX3N0YShzdHJ1Y3QgaG9zdGFwZF9kYXRhICpoYXBkLAorIAkgKiBGVC1vdmVyLXRoZS1EUywgd2hlcmUgYSBzdGF0aW9uIHJlLWFzc29jaWF0ZXMgYmFjayB0byB0aGUgc2FtZSBBUCBidXQKKyAJICogc2tpcHMgdGhlIGF1dGhlbnRpY2F0aW9uIGZsb3csIG9yIGlmIHdvcmtpbmcgd2l0aCBhIGRyaXZlciB0aGF0CisgCSAqIGRvZXMgbm90IHN1cHBvcnQgZnVsbCBBUCBjbGllbnQgc3RhdGUuCisrCSAqCisrCSAqIFNraXAgdGhpcyBpZiB0aGUgU1RBIGhhcyBhbHJlYWR5IGNvbXBsZXRlZCBGVCByZWFzc29jaWF0aW9uIGFuZCB0aGUKKysJICogVEsgaGFzIGJlZW4gY29uZmlndXJlZCBzaW5jZSB0aGUgVFgvUlggUE4gbXVzdCBub3QgYmUgcmVzZXQgdG8gMCBmb3IKKysJICogdGhlIHNhbWUga2V5LgorIAkgKi8KKy0JaWYgKCFzdGEtPmFkZGVkX3VuYXNzb2MpCisrCWlmICghc3RhLT5hZGRlZF91bmFzc29jICYmCisrCSAgICAoIShzdGEtPmZsYWdzICYgV0xBTl9TVEFfQVVUSE9SSVpFRCkgfHwKKysJICAgICAhd3BhX2F1dGhfc3RhX2Z0X3RrX2FscmVhZHlfc2V0KHN0YS0+d3BhX3NtKSkpIHsKKyAJCWhvc3RhcGRfZHJ2X3N0YV9yZW1vdmUoaGFwZCwgc3RhLT5hZGRyKTsKKysJCXdwYV9hdXRoX3NtX2V2ZW50KHN0YS0+d3BhX3NtLCBXUEFfRFJWX1NUQV9SRU1PVkVEKTsKKysJCXNldCA9IDA7CisrCX0KKyAKKyAjaWZkZWYgQ09ORklHX0lFRUU4MDIxMU4KKyAJaWYgKHN0YS0+ZmxhZ3MgJiBXTEFOX1NUQV9IVCkKK0BAIC0xODczLDExICsxODgzLDExIEBAIHN0YXRpYyBpbnQgYWRkX2Fzc29jaWF0ZWRfc3RhKHN0cnVjdCBob3N0YXBkX2RhdGEgKmhhcGQsCisgCQkJICAgIHN0YS0+ZmxhZ3MgJiBXTEFOX1NUQV9WSFQgPyAmdmh0X2NhcCA6IE5VTEwsCisgCQkJICAgIHN0YS0+ZmxhZ3MgfCBXTEFOX1NUQV9BU1NPQywgc3RhLT5xb3NpbmZvLAorIAkJCSAgICBzdGEtPnZodF9vcG1vZGUsIHN0YS0+cDJwX2llID8gMSA6IDAsCistCQkJICAgIHN0YS0+YWRkZWRfdW5hc3NvYykpIHsKKysJCQkgICAgc2V0KSkgeworIAkJaG9zdGFwZF9sb2dnZXIoaGFwZCwgc3RhLT5hZGRyLAorIAkJCSAgICAgICBIT1NUQVBEX01PRFVMRV9JRUVFODAyMTEsIEhPU1RBUERfTEVWRUxfTk9USUNFLAorIAkJCSAgICAgICAiQ291bGQgbm90ICVzIFNUQSB0byBrZXJuZWwgZHJpdmVyIiwKKy0JCQkgICAgICAgc3RhLT5hZGRlZF91bmFzc29jID8gInNldCIgOiAiYWRkIik7CisrCQkJICAgICAgIHNldCA/ICJzZXQiIDogImFkZCIpOworIAorIAkJaWYgKHN0YS0+YWRkZWRfdW5hc3NvYykgeworIAkJCWhvc3RhcGRfZHJ2X3N0YV9yZW1vdmUoaGFwZCwgc3RhLT5hZGRyKTsKK2RpZmYgLS1naXQgYS9zcmMvYXAvd3BhX2F1dGguYyBiL3NyYy9hcC93cGFfYXV0aC5jCitpbmRleCAzNTg3MDg2Li43MDc5NzFkIDEwMDY0NAorLS0tIGEvc3JjL2FwL3dwYV9hdXRoLmMKKysrKyBiL3NyYy9hcC93cGFfYXV0aC5jCitAQCAtMTc0NSw2ICsxNzQ1LDkgQEAgaW50IHdwYV9hdXRoX3NtX2V2ZW50KHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20sIGVudW0gd3BhX2V2ZW50IGV2ZW50KQorICNlbHNlIC8qIENPTkZJR19JRUVFODAyMTFSICovCisgCQlicmVhazsKKyAjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVIgKi8KKysJY2FzZSBXUEFfRFJWX1NUQV9SRU1PVkVEOgorKwkJc20tPnRrX2FscmVhZHlfc2V0ID0gRkFMU0U7CisrCQlyZXR1cm4gMDsKKyAJfQorIAorICNpZmRlZiBDT05GSUdfSUVFRTgwMjExUgorQEAgLTMyNTAsNiArMzI1MywxNCBAQCBpbnQgd3BhX2F1dGhfc3RhX3dwYV92ZXJzaW9uKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pCisgfQorIAorIAorK2ludCB3cGFfYXV0aF9zdGFfZnRfdGtfYWxyZWFkeV9zZXQoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSkKKyt7CisrCWlmICghc20gfHwgIXdwYV9rZXlfbWdtdF9mdChzbS0+d3BhX2tleV9tZ210KSkKKysJCXJldHVybiAwOworKwlyZXR1cm4gc20tPnRrX2FscmVhZHlfc2V0OworK30KKysKKysKKyBpbnQgd3BhX2F1dGhfc3RhX2NsZWFyX3Bta3NhKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20sCisgCQkJICAgICBzdHJ1Y3QgcnNuX3Bta3NhX2NhY2hlX2VudHJ5ICplbnRyeSkKKyB7CitkaWZmIC0tZ2l0IGEvc3JjL2FwL3dwYV9hdXRoLmggYi9zcmMvYXAvd3BhX2F1dGguaAoraW5kZXggMGRlOGQ5Ny4uOTc0NjFiMCAxMDA2NDQKKy0tLSBhL3NyYy9hcC93cGFfYXV0aC5oCisrKysgYi9zcmMvYXAvd3BhX2F1dGguaAorQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIHdwYV9yZWNlaXZlKHN0cnVjdCB3cGFfYXV0aGVudGljYXRvciAqd3BhX2F1dGgsCisgCQkgdTggKmRhdGEsIHNpemVfdCBkYXRhX2xlbik7CisgZW51bSB3cGFfZXZlbnQgeworIAlXUEFfQVVUSCwgV1BBX0FTU09DLCBXUEFfRElTQVNTT0MsIFdQQV9ERUFVVEgsIFdQQV9SRUFVVEgsCistCVdQQV9SRUFVVEhfRUFQT0wsIFdQQV9BU1NPQ19GVAorKwlXUEFfUkVBVVRIX0VBUE9MLCBXUEFfQVNTT0NfRlQsIFdQQV9EUlZfU1RBX1JFTU9WRUQKKyB9OworIHZvaWQgd3BhX3JlbW92ZV9wdGsoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSk7CisgaW50IHdwYV9hdXRoX3NtX2V2ZW50KHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20sIGVudW0gd3BhX2V2ZW50IGV2ZW50KTsKK0BAIC0yODAsNiArMjgwLDcgQEAgaW50IHdwYV9hdXRoX3BhaXJ3aXNlX3NldChzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKTsKKyBpbnQgd3BhX2F1dGhfZ2V0X3BhaXJ3aXNlKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pOworIGludCB3cGFfYXV0aF9zdGFfa2V5X21nbXQoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSk7CisgaW50IHdwYV9hdXRoX3N0YV93cGFfdmVyc2lvbihzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKTsKKytpbnQgd3BhX2F1dGhfc3RhX2Z0X3RrX2FscmVhZHlfc2V0KHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pOworIGludCB3cGFfYXV0aF9zdGFfY2xlYXJfcG1rc2Eoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSwKKyAJCQkgICAgIHN0cnVjdCByc25fcG1rc2FfY2FjaGVfZW50cnkgKmVudHJ5KTsKKyBzdHJ1Y3QgcnNuX3Bta3NhX2NhY2hlX2VudHJ5ICoKK2RpZmYgLS1naXQgYS9zcmMvYXAvd3BhX2F1dGhfZnQuYyBiL3NyYy9hcC93cGFfYXV0aF9mdC5jCitpbmRleCA0MjI0MmE1Li5lNjNiOTlhIDEwMDY0NAorLS0tIGEvc3JjL2FwL3dwYV9hdXRoX2Z0LmMKKysrKyBiL3NyYy9hcC93cGFfYXV0aF9mdC5jCitAQCAtNzgwLDYgKzc4MCwxNCBAQCB2b2lkIHdwYV9mdF9pbnN0YWxsX3B0ayhzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKQorIAkJcmV0dXJuOworIAl9CisgCisrCWlmIChzbS0+dGtfYWxyZWFkeV9zZXQpIHsKKysJCS8qIE11c3QgYXZvaWQgVEsgcmVjb25maWd1cmF0aW9uIHRvIHByZXZlbnQgY2xlYXJpbmcgb2YgVFgvUlgKKysJCSAqIFBOIGluIHRoZSBkcml2ZXIgKi8KKysJCXdwYV9wcmludGYoTVNHX0RFQlVHLAorKwkJCSAgICJGVDogRG8gbm90IHJlLWluc3RhbGwgc2FtZSBQVEsgdG8gdGhlIGRyaXZlciIpOworKwkJcmV0dXJuOworKwl9CisrCisgCS8qIEZJWDogYWRkIFNUQSBlbnRyeSB0byBrZXJuZWwvZHJpdmVyIGhlcmU/IFRoZSBzZXRfa2V5IHdpbGwgZmFpbAorIAkgKiBtb3N0IGxpa2VseSB3aXRob3V0IHRoaXMuLiBBdCB0aGUgbW9tZW50LCBTVEEgZW50cnkgaXMgYWRkZWQgb25seQorIAkgKiBhZnRlciBhc3NvY2lhdGlvbiBoYXMgYmVlbiBjb21wbGV0ZWQuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQKK0BAIC03OTIsNiArODAwLDcgQEAgdm9pZCB3cGFfZnRfaW5zdGFsbF9wdGsoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSkKKyAKKyAJLyogRklYOiBNTE1FLVNldFByb3RlY3Rpb24uUmVxdWVzdChUQSwgVHhfUngpICovCisgCXNtLT5wYWlyd2lzZV9zZXQgPSBUUlVFOworKwlzbS0+dGtfYWxyZWFkeV9zZXQgPSBUUlVFOworIH0KKyAKKyAKK0BAIC04OTgsNiArOTA3LDcgQEAgc3RhdGljIGludCB3cGFfZnRfcHJvY2Vzc19hdXRoX3JlcShzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtLAorIAorIAlzbS0+cGFpcndpc2UgPSBwYWlyd2lzZTsKKyAJc20tPlBUS192YWxpZCA9IFRSVUU7CisrCXNtLT50a19hbHJlYWR5X3NldCA9IEZBTFNFOworIAl3cGFfZnRfaW5zdGFsbF9wdGsoc20pOworIAorIAlidWZsZW4gPSAyICsgc2l6ZW9mKHN0cnVjdCByc25fbWRpZSkgKyAyICsgc2l6ZW9mKHN0cnVjdCByc25fZnRpZSkgKworZGlmZiAtLWdpdCBhL3NyYy9hcC93cGFfYXV0aF9pLmggYi9zcmMvYXAvd3BhX2F1dGhfaS5oCitpbmRleCA3MmI3ZWIzLi43ZmQ4ZjA1IDEwMDY0NAorLS0tIGEvc3JjL2FwL3dwYV9hdXRoX2kuaAorKysrIGIvc3JjL2FwL3dwYV9hdXRoX2kuaAorQEAgLTY1LDYgKzY1LDcgQEAgc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lIHsKKyAJc3RydWN0IHdwYV9wdGsgUFRLOworIAlCb29sZWFuIFBUS192YWxpZDsKKyAJQm9vbGVhbiBwYWlyd2lzZV9zZXQ7CisrCUJvb2xlYW4gdGtfYWxyZWFkeV9zZXQ7CisgCWludCBrZXljb3VudDsKKyAJQm9vbGVhbiBQYWlyOworIAlzdHJ1Y3Qgd3BhX2tleV9yZXBsYXlfY291bnRlciB7CistLSAKKzEuOC4zLjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDAyLVByZXZlbnQtcmVpbnN0YWxsYXRpb24tb2YtYW4tYWxyZWFkeS1pbi11c2UtZ3JvdXAta2UucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDItUHJldmVudC1yZWluc3RhbGxhdGlvbi1vZi1hbi1hbHJlYWR5LWluLXVzZS1ncm91cC1rZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTU3YmNhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDAyLVByZXZlbnQtcmVpbnN0YWxsYXRpb24tb2YtYW4tYWxyZWFkeS1pbi11c2UtZ3JvdXAta2UucGF0Y2gKQEAgLTAsMCArMSwyNTMgQEAKK0Zyb20gYzYyM2NjOTczZGU1MjVmNzQxMWRmZmU0MzhlOTU3YmE4NmVmNDczMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hdGh5IFZhbmhvZWYgPE1hdGh5LlZhbmhvZWZAY3Mua3VsZXV2ZW4uYmU+CitEYXRlOiBXZWQsIDEyIEp1bCAyMDE3IDE2OjAzOjI0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMi83XSBQcmV2ZW50IHJlaW5zdGFsbGF0aW9uIG9mIGFuIGFscmVhZHkgaW4tdXNlIGdyb3VwIGtleQorCitUcmFjayB0aGUgY3VycmVudCBHVEsgYW5kIElHVEsgdGhhdCBpcyBpbiB1c2UgYW5kIHdoZW4gcmVjZWl2aW5nIGEKKyhwb3NzaWJseSByZXRyYW5zbWl0dGVkKSBHcm91cCBNZXNzYWdlIDEgb3IgV05NLVNsZWVwIE1vZGUgUmVzcG9uc2UsIGRvCitub3QgaW5zdGFsbCB0aGUgZ2l2ZW4ga2V5IGlmIGl0IGlzIGFscmVhZHkgaW4gdXNlLiBUaGlzIHByZXZlbnRzIGFuCithdHRhY2tlciBmcm9tIHRyeWluZyB0byB0cmljayB0aGUgY2xpZW50IGludG8gcmVzZXR0aW5nIG9yIGxvd2VyaW5nIHRoZQorc2VxdWVuY2UgY291bnRlciBhc3NvY2lhdGVkIHRvIHRoZSBncm91cCBrZXkuCisKK1NpZ25lZC1vZmYtYnk6IE1hdGh5IFZhbmhvZWYgPE1hdGh5LlZhbmhvZWZAY3Mua3VsZXV2ZW4uYmU+CisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKK1NpZ25lZC1vZmYtYnk6IFpoZW5nIFJ1b3FpbiA8emhlbmdycS5mbnN0QGNuLmZ1aml0c3UuY29tPgorLS0tCisgc3JjL2NvbW1vbi93cGFfY29tbW9uLmggfCAgMTEgKysrKysKKyBzcmMvcnNuX3N1cHAvd3BhLmMgICAgICB8IDExNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KKyBzcmMvcnNuX3N1cHAvd3BhX2kuaCAgICB8ICAgNCArKworIDMgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY29tbW9uL3dwYV9jb21tb24uaCBiL3NyYy9jb21tb24vd3BhX2NvbW1vbi5oCitpbmRleCBhZjFkMGYwLi5kMjAwMjg1IDEwMDY0NAorLS0tIGEvc3JjL2NvbW1vbi93cGFfY29tbW9uLmgKKysrKyBiL3NyYy9jb21tb24vd3BhX2NvbW1vbi5oCitAQCAtMjE3LDYgKzIxNywxNyBAQCBzdHJ1Y3Qgd3BhX3B0ayB7CisgCXNpemVfdCB0a19sZW47CisgfTsKKyAKKytzdHJ1Y3Qgd3BhX2d0ayB7CisrCXU4IGd0a1tXUEFfR1RLX01BWF9MRU5dOworKwlzaXplX3QgZ3RrX2xlbjsKKyt9OworKworKyNpZmRlZiBDT05GSUdfSUVFRTgwMjExVworK3N0cnVjdCB3cGFfaWd0ayB7CisrCXU4IGlndGtbV1BBX0lHVEtfTUFYX0xFTl07CisrCXNpemVfdCBpZ3RrX2xlbjsKKyt9OworKyNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLworIAorIC8qIFdQQSBJRSB2ZXJzaW9uIDEKKyAgKiAwMC01MC1mMjoxIChPVUk6T1VJIHR5cGUpCitkaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYS5jIGIvc3JjL3Jzbl9zdXBwL3dwYS5jCitpbmRleCAzYzQ3ODc5Li45NWJkN2JlIDEwMDY0NAorLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYS5jCisrKysgYi9zcmMvcnNuX3N1cHAvd3BhLmMKK0BAIC03MTQsNiArNzE0LDE1IEBAIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc3RydWN0IHdwYV9zbSAqc20sCisgCWNvbnN0IHU4ICpfZ3RrID0gZ2QtPmd0azsKKyAJdTggZ3RrX2J1ZlszMl07CisgCisrCS8qIERldGVjdCBwb3NzaWJsZSBrZXkgcmVpbnN0YWxsYXRpb24gKi8KKysJaWYgKHNtLT5ndGsuZ3RrX2xlbiA9PSAoc2l6ZV90KSBnZC0+Z3RrX2xlbiAmJgorKwkgICAgb3NfbWVtY21wKHNtLT5ndGsuZ3RrLCBnZC0+Z3RrLCBzbS0+Z3RrLmd0a19sZW4pID09IDApIHsKKysJCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLAorKwkJCSJXUEE6IE5vdCByZWluc3RhbGxpbmcgYWxyZWFkeSBpbi11c2UgR1RLIHRvIHRoZSBkcml2ZXIgKGtleWlkeD0lZCB0eD0lZCBsZW49JWQpIiwKKysJCQlnZC0+a2V5aWR4LCBnZC0+dHgsIGdkLT5ndGtfbGVuKTsKKysJCXJldHVybiAwOworKwl9CisrCisgCXdwYV9oZXhkdW1wX2tleShNU0dfREVCVUcsICJXUEE6IEdyb3VwIEtleSIsIGdkLT5ndGssIGdkLT5ndGtfbGVuKTsKKyAJd3BhX2RiZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfREVCVUcsCisgCQkiV1BBOiBJbnN0YWxsaW5nIEdUSyB0byB0aGUgZHJpdmVyIChrZXlpZHg9JWQgdHg9JWQgbGVuPSVkKSIsCitAQCAtNzQ4LDYgKzc1Nyw5IEBAIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc3RydWN0IHdwYV9zbSAqc20sCisgCX0KKyAJb3NfbWVtc2V0KGd0a19idWYsIDAsIHNpemVvZihndGtfYnVmKSk7CisgCisrCXNtLT5ndGsuZ3RrX2xlbiA9IGdkLT5ndGtfbGVuOworKwlvc19tZW1jcHkoc20tPmd0ay5ndGssIGdkLT5ndGssIHNtLT5ndGsuZ3RrX2xlbik7CisrCisgCXJldHVybiAwOworIH0KKyAKK0BAIC04NTQsNiArODY2LDQ4IEBAIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfcGFpcndpc2VfZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAorIH0KKyAKKyAKKysjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKKytzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKKysJCQkJICAgICAgIGNvbnN0IHN0cnVjdCB3cGFfaWd0a19rZGUgKmlndGspCisreworKwlzaXplX3QgbGVuID0gd3BhX2NpcGhlcl9rZXlfbGVuKHNtLT5tZ210X2dyb3VwX2NpcGhlcik7CisrCXUxNiBrZXlpZHggPSBXUEFfR0VUX0xFMTYoaWd0ay0+a2V5aWQpOworKworKwkvKiBEZXRlY3QgcG9zc2libGUga2V5IHJlaW5zdGFsbGF0aW9uICovCisrCWlmIChzbS0+aWd0ay5pZ3RrX2xlbiA9PSBsZW4gJiYKKysJICAgIG9zX21lbWNtcChzbS0+aWd0ay5pZ3RrLCBpZ3RrLT5pZ3RrLCBzbS0+aWd0ay5pZ3RrX2xlbikgPT0gMCkgeworKwkJd3BhX2RiZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfREVCVUcsCisrCQkJIldQQTogTm90IHJlaW5zdGFsbGluZyBhbHJlYWR5IGluLXVzZSBJR1RLIHRvIHRoZSBkcml2ZXIgKGtleWlkeD0lZCkiLAorKwkJCWtleWlkeCk7CisrCQlyZXR1cm4gIDA7CisrCX0KKysKKysJd3BhX2RiZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfREVCVUcsCisrCQkiV1BBOiBJR1RLIGtleWlkICVkIHBuICUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCIsCisrCQlrZXlpZHgsIE1BQzJTVFIoaWd0ay0+cG4pKTsKKysJd3BhX2hleGR1bXBfa2V5KE1TR19ERUJVRywgIldQQTogSUdUSyIsIGlndGstPmlndGssIGxlbik7CisrCWlmIChrZXlpZHggPiA0MDk1KSB7CisrCQl3cGFfbXNnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19XQVJOSU5HLAorKwkJCSJXUEE6IEludmFsaWQgSUdUSyBLZXlJRCAlZCIsIGtleWlkeCk7CisrCQlyZXR1cm4gLTE7CisrCX0KKysJaWYgKHdwYV9zbV9zZXRfa2V5KHNtLCB3cGFfY2lwaGVyX3RvX2FsZyhzbS0+bWdtdF9ncm91cF9jaXBoZXIpLAorKwkJCSAgIGJyb2FkY2FzdF9ldGhlcl9hZGRyLAorKwkJCSAgIGtleWlkeCwgMCwgaWd0ay0+cG4sIHNpemVvZihpZ3RrLT5wbiksCisrCQkJICAgaWd0ay0+aWd0aywgbGVuKSA8IDApIHsKKysJCXdwYV9tc2coc20tPmN0eC0+bXNnX2N0eCwgTVNHX1dBUk5JTkcsCisrCQkJIldQQTogRmFpbGVkIHRvIGNvbmZpZ3VyZSBJR1RLIHRvIHRoZSBkcml2ZXIiKTsKKysJCXJldHVybiAtMTsKKysJfQorKworKwlzbS0+aWd0ay5pZ3RrX2xlbiA9IGxlbjsKKysJb3NfbWVtY3B5KHNtLT5pZ3RrLmlndGssIGlndGstPmlndGssIHNtLT5pZ3RrLmlndGtfbGVuKTsKKysKKysJcmV0dXJuIDA7CisrfQorKyNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLworKworKworIHN0YXRpYyBpbnQgaWVlZTgwMjExd19zZXRfa2V5cyhzdHJ1Y3Qgd3BhX3NtICpzbSwKKyAJCQkgICAgICAgc3RydWN0IHdwYV9lYXBvbF9pZV9wYXJzZSAqaWUpCisgeworQEAgLTg2NCwzMCArOTE4LDE0IEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExd19zZXRfa2V5cyhzdHJ1Y3Qgd3BhX3NtICpzbSwKKyAJaWYgKGllLT5pZ3RrKSB7CisgCQlzaXplX3QgbGVuOworIAkJY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqaWd0azsKKy0JCXUxNiBrZXlpZHg7CisrCisgCQlsZW4gPSB3cGFfY2lwaGVyX2tleV9sZW4oc20tPm1nbXRfZ3JvdXBfY2lwaGVyKTsKKyAJCWlmIChpZS0+aWd0a19sZW4gIT0gV1BBX0lHVEtfS0RFX1BSRUZJWF9MRU4gKyBsZW4pCisgCQkJcmV0dXJuIC0xOworKworIAkJaWd0ayA9IChjb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICopIGllLT5pZ3RrOworLQkJa2V5aWR4ID0gV1BBX0dFVF9MRTE2KGlndGstPmtleWlkKTsKKy0JCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLCAiV1BBOiBJR1RLIGtleWlkICVkICIKKy0JCQkicG4gJTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4IiwKKy0JCQlrZXlpZHgsIE1BQzJTVFIoaWd0ay0+cG4pKTsKKy0JCXdwYV9oZXhkdW1wX2tleShNU0dfREVCVUcsICJXUEE6IElHVEsiLAorLQkJCQlpZ3RrLT5pZ3RrLCBsZW4pOworLQkJaWYgKGtleWlkeCA+IDQwOTUpIHsKKy0JCQl3cGFfbXNnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19XQVJOSU5HLAorLQkJCQkiV1BBOiBJbnZhbGlkIElHVEsgS2V5SUQgJWQiLCBrZXlpZHgpOworLQkJCXJldHVybiAtMTsKKy0JCX0KKy0JCWlmICh3cGFfc21fc2V0X2tleShzbSwgd3BhX2NpcGhlcl90b19hbGcoc20tPm1nbXRfZ3JvdXBfY2lwaGVyKSwKKy0JCQkJICAgYnJvYWRjYXN0X2V0aGVyX2FkZHIsCistCQkJCSAgIGtleWlkeCwgMCwgaWd0ay0+cG4sIHNpemVvZihpZ3RrLT5wbiksCistCQkJCSAgIGlndGstPmlndGssIGxlbikgPCAwKSB7CistCQkJd3BhX21zZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfV0FSTklORywKKy0JCQkJIldQQTogRmFpbGVkIHRvIGNvbmZpZ3VyZSBJR1RLIHRvIHRoZSBkcml2ZXIiKTsKKysJCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc20sIGlndGspIDwgMCkKKyAJCQlyZXR1cm4gLTE7CistCQl9CisgCX0KKyAKKyAJcmV0dXJuIDA7CitAQCAtMjMwNyw3ICsyMzQ1LDcgQEAgdm9pZCB3cGFfc21fZGVpbml0KHN0cnVjdCB3cGFfc20gKnNtKQorICAqLworIHZvaWQgd3BhX3NtX25vdGlmeV9hc3NvYyhzdHJ1Y3Qgd3BhX3NtICpzbSwgY29uc3QgdTggKmJzc2lkKQorIHsKKy0JaW50IGNsZWFyX3B0ayA9IDE7CisrCWludCBjbGVhcl9rZXlzID0gMTsKKyAKKyAJaWYgKHNtID09IE5VTEwpCisgCQlyZXR1cm47CitAQCAtMjMzMywxMSArMjM3MSwxMSBAQCB2b2lkIHdwYV9zbV9ub3RpZnlfYXNzb2Moc3RydWN0IHdwYV9zbSAqc20sIGNvbnN0IHU4ICpic3NpZCkKKyAJCS8qIFByZXBhcmUgZm9yIHRoZSBuZXh0IHRyYW5zaXRpb24gKi8KKyAJCXdwYV9mdF9wcmVwYXJlX2F1dGhfcmVxdWVzdChzbSwgTlVMTCk7CisgCistCQljbGVhcl9wdGsgPSAwOworKwkJY2xlYXJfa2V5cyA9IDA7CisgCX0KKyAjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVIgKi8KKyAKKy0JaWYgKGNsZWFyX3B0aykgeworKwlpZiAoY2xlYXJfa2V5cykgeworIAkJLyoKKyAJCSAqIElFRUUgODAyLjExLCA4LjQuMTA6IERlbGV0ZSBQVEsgU0Egb24gKHJlKWFzc29jaWF0aW9uIGlmCisgCQkgKiB0aGlzIGlzIG5vdCBwYXJ0IG9mIGEgRmFzdCBCU1MgVHJhbnNpdGlvbi4KK0BAIC0yMzQ3LDYgKzIzODUsMTAgQEAgdm9pZCB3cGFfc21fbm90aWZ5X2Fzc29jKHN0cnVjdCB3cGFfc20gKnNtLCBjb25zdCB1OCAqYnNzaWQpCisgCQlvc19tZW1zZXQoJnNtLT5wdGssIDAsIHNpemVvZihzbS0+cHRrKSk7CisgCQlzbS0+dHB0a19zZXQgPSAwOworIAkJb3NfbWVtc2V0KCZzbS0+dHB0aywgMCwgc2l6ZW9mKHNtLT50cHRrKSk7CisrCQlvc19tZW1zZXQoJnNtLT5ndGssIDAsIHNpemVvZihzbS0+Z3RrKSk7CisrI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCisrCQlvc19tZW1zZXQoJnNtLT5pZ3RrLCAwLCBzaXplb2Yoc20tPmlndGspKTsKKysjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KKyAJfQorIAorICNpZmRlZiBDT05GSUdfVERMUworQEAgLTI4NzcsNiArMjkxOSwxMCBAQCB2b2lkIHdwYV9zbV9kcm9wX3NhKHN0cnVjdCB3cGFfc20gKnNtKQorIAlvc19tZW1zZXQoc20tPnBtaywgMCwgc2l6ZW9mKHNtLT5wbWspKTsKKyAJb3NfbWVtc2V0KCZzbS0+cHRrLCAwLCBzaXplb2Yoc20tPnB0aykpOworIAlvc19tZW1zZXQoJnNtLT50cHRrLCAwLCBzaXplb2Yoc20tPnRwdGspKTsKKysJb3NfbWVtc2V0KCZzbS0+Z3RrLCAwLCBzaXplb2Yoc20tPmd0aykpOworKyNpZmRlZiBDT05GSUdfSUVFRTgwMjExVworKwlvc19tZW1zZXQoJnNtLT5pZ3RrLCAwLCBzaXplb2Yoc20tPmlndGspKTsKKysjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KKyAjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVIKKyAJb3NfbWVtc2V0KHNtLT54eGtleSwgMCwgc2l6ZW9mKHNtLT54eGtleSkpOworIAlvc19tZW1zZXQoc20tPnBta19yMCwgMCwgc2l6ZW9mKHNtLT5wbWtfcjApKTsKK0BAIC0yOTQ5LDI5ICsyOTk1LDExIEBAIGludCB3cGFfd25tc2xlZXBfaW5zdGFsbF9rZXkoc3RydWN0IHdwYV9zbSAqc20sIHU4IHN1YmVsZW1faWQsIHU4ICpidWYpCisgCQlvc19tZW1zZXQoJmdkLCAwLCBzaXplb2YoZ2QpKTsKKyAjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKKyAJfSBlbHNlIGlmIChzdWJlbGVtX2lkID09IFdOTV9TTEVFUF9TVUJFTEVNX0lHVEspIHsKKy0JCXN0cnVjdCB3cGFfaWd0a19rZGUgaWdkOworLQkJdTE2IGtleWlkeDsKKy0KKy0JCW9zX21lbXNldCgmaWdkLCAwLCBzaXplb2YoaWdkKSk7CistCQlrZXlsZW4gPSB3cGFfY2lwaGVyX2tleV9sZW4oc20tPm1nbXRfZ3JvdXBfY2lwaGVyKTsKKy0JCW9zX21lbWNweShpZ2Qua2V5aWQsIGJ1ZiArIDIsIDIpOworLQkJb3NfbWVtY3B5KGlnZC5wbiwgYnVmICsgNCwgNik7CistCistCQlrZXlpZHggPSBXUEFfR0VUX0xFMTYoaWdkLmtleWlkKTsKKy0JCW9zX21lbWNweShpZ2QuaWd0aywgYnVmICsgMTAsIGtleWxlbik7CistCistCQl3cGFfaGV4ZHVtcF9rZXkoTVNHX0RFQlVHLCAiSW5zdGFsbCBJR1RLIChXTk0gU0xFRVApIiwKKy0JCQkJaWdkLmlndGssIGtleWxlbik7CistCQlpZiAod3BhX3NtX3NldF9rZXkoc20sIHdwYV9jaXBoZXJfdG9fYWxnKHNtLT5tZ210X2dyb3VwX2NpcGhlciksCistCQkJCSAgIGJyb2FkY2FzdF9ldGhlcl9hZGRyLAorLQkJCQkgICBrZXlpZHgsIDAsIGlnZC5wbiwgc2l6ZW9mKGlnZC5wbiksCistCQkJCSAgIGlnZC5pZ3RrLCBrZXlsZW4pIDwgMCkgeworLQkJCXdwYV9wcmludGYoTVNHX0RFQlVHLCAiRmFpbGVkIHRvIGluc3RhbGwgdGhlIElHVEsgaW4gIgorLQkJCQkgICAiV05NIG1vZGUiKTsKKy0JCQlvc19tZW1zZXQoJmlnZCwgMCwgc2l6ZW9mKGlnZCkpOworKwkJY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqaWd0azsKKysKKysJCWlndGsgPSAoY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqKSAoYnVmICsgMik7CisrCQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHNtLCBpZ3RrKSA8IDApCisgCQkJcmV0dXJuIC0xOworLQkJfQorLQkJb3NfbWVtc2V0KCZpZ2QsIDAsIHNpemVvZihpZ2QpKTsKKyAjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KKyAJfSBlbHNlIHsKKyAJCXdwYV9wcmludGYoTVNHX0RFQlVHLCAiVW5rbm93biBlbGVtZW50IGlkIik7CitkaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYV9pLmggYi9zcmMvcnNuX3N1cHAvd3BhX2kuaAoraW5kZXggZjY1M2JhNi4uYWZjOWUzNyAxMDA2NDQKKy0tLSBhL3NyYy9yc25fc3VwcC93cGFfaS5oCisrKysgYi9zcmMvcnNuX3N1cHAvd3BhX2kuaAorQEAgLTMxLDYgKzMxLDEwIEBAIHN0cnVjdCB3cGFfc20geworIAl1OCByeF9yZXBsYXlfY291bnRlcltXUEFfUkVQTEFZX0NPVU5URVJfTEVOXTsKKyAJaW50IHJ4X3JlcGxheV9jb3VudGVyX3NldDsKKyAJdTggcmVxdWVzdF9jb3VudGVyW1dQQV9SRVBMQVlfQ09VTlRFUl9MRU5dOworKwlzdHJ1Y3Qgd3BhX2d0ayBndGs7CisrI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCisrCXN0cnVjdCB3cGFfaWd0ayBpZ3RrOworKyNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLworIAorIAlzdHJ1Y3QgZWFwb2xfc20gKmVhcG9sOyAvKiBFQVBPTCBzdGF0ZSBtYWNoaW5lIGZyb20gdXBwZXIgbGV2ZWwgY29kZSAqLworIAorLS0gCisxLjguMy4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwMy1FeHRlbmQtcHJvdGVjdGlvbi1vZi1HVEstSUdUSy1yZWluc3RhbGxhdGlvbi1vZi1XTk0tLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDAzLUV4dGVuZC1wcm90ZWN0aW9uLW9mLUdUSy1JR1RLLXJlaW5zdGFsbGF0aW9uLW9mLVdOTS0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM5YmJmNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwMy1FeHRlbmQtcHJvdGVjdGlvbi1vZi1HVEstSUdUSy1yZWluc3RhbGxhdGlvbi1vZi1XTk0tLnBhdGNoCkBAIC0wLDAgKzEsMTg3IEBACitGcm9tIGE2Y2FhYjgwNjBhYjYwODc2ZTIzMzMwNmY1YzU4NjQ1MTE2OWViYTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKb3VuaSBNYWxpbmVuIDxqQHcxLmZpPgorRGF0ZTogU3VuLCAxIE9jdCAyMDE3IDEyOjEyOjI0ICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggMy83XSBFeHRlbmQgcHJvdGVjdGlvbiBvZiBHVEsvSUdUSyByZWluc3RhbGxhdGlvbiBvZiBXTk0tU2xlZXAKKyBNb2RlIGNhc2VzCisKK1RoaXMgZXh0ZW5kcyB0aGUgcHJvdGVjdGlvbiB0byB0cmFjayBsYXN0IGNvbmZpZ3VyZWQgR1RLL0lHVEsgdmFsdWUKK3NlcGFyYXRlbHkgZnJvbSBFQVBPTC1LZXkgZnJhbWVzIGFuZCBXTk0tU2xlZXAgTW9kZSBmcmFtZXMgdG8gY292ZXIgYQorY29ybmVyIGNhc2Ugd2hlcmUgdGhlc2UgdHdvIGRpZmZlcmVudCBtZWNoYW5pc21zIG1heSBnZXQgdXNlZCB3aGVuIHRoZQorR1RLL0lHVEsgaGFzIGNoYW5nZWQgYW5kIHRyYWNraW5nIGEgc2luZ2xlIHZhbHVlIGlzIG5vdCBzdWZmaWNpZW50IHRvCitkZXRlY3QgYSBwb3NzaWJsZSBrZXkgcmVjb25maWd1cmF0aW9uLgorCitTaWduZWQtb2ZmLWJ5OiBKb3VuaSBNYWxpbmVuIDxqQHcxLmZpPgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CitTaWduZWQtb2ZmLWJ5OiBaaGVuZyBSdW9xaW4gPHpoZW5ncnEuZm5zdEBjbi5mdWppdHN1LmNvbT4KKy0tLQorIHNyYy9yc25fc3VwcC93cGEuYyAgIHwgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQorIHNyYy9yc25fc3VwcC93cGFfaS5oIHwgIDIgKysKKyAyIGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYS5jIGIvc3JjL3Jzbl9zdXBwL3dwYS5jCitpbmRleCA5NWJkN2JlLi43YTJjNjhkIDEwMDY0NAorLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYS5jCisrKysgYi9zcmMvcnNuX3N1cHAvd3BhLmMKK0BAIC03MDksMTQgKzcwOSwxNyBAQCBzdHJ1Y3Qgd3BhX2d0a19kYXRhIHsKKyAKKyBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAorIAkJCQkgICAgICBjb25zdCBzdHJ1Y3Qgd3BhX2d0a19kYXRhICpnZCwKKy0JCQkJICAgICAgY29uc3QgdTggKmtleV9yc2MpCisrCQkJCSAgICAgIGNvbnN0IHU4ICprZXlfcnNjLCBpbnQgd25tX3NsZWVwKQorIHsKKyAJY29uc3QgdTggKl9ndGsgPSBnZC0+Z3RrOworIAl1OCBndGtfYnVmWzMyXTsKKyAKKyAJLyogRGV0ZWN0IHBvc3NpYmxlIGtleSByZWluc3RhbGxhdGlvbiAqLworLQlpZiAoc20tPmd0ay5ndGtfbGVuID09IChzaXplX3QpIGdkLT5ndGtfbGVuICYmCistCSAgICBvc19tZW1jbXAoc20tPmd0ay5ndGssIGdkLT5ndGssIHNtLT5ndGsuZ3RrX2xlbikgPT0gMCkgeworKwlpZiAoKHNtLT5ndGsuZ3RrX2xlbiA9PSAoc2l6ZV90KSBnZC0+Z3RrX2xlbiAmJgorKwkgICAgIG9zX21lbWNtcChzbS0+Z3RrLmd0aywgZ2QtPmd0aywgc20tPmd0ay5ndGtfbGVuKSA9PSAwKSB8fAorKwkgICAgKHNtLT5ndGtfd25tX3NsZWVwLmd0a19sZW4gPT0gKHNpemVfdCkgZ2QtPmd0a19sZW4gJiYKKysJICAgICBvc19tZW1jbXAoc20tPmd0a193bm1fc2xlZXAuZ3RrLCBnZC0+Z3RrLAorKwkJICAgICAgIHNtLT5ndGtfd25tX3NsZWVwLmd0a19sZW4pID09IDApKSB7CisgCQl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKKyAJCQkiV1BBOiBOb3QgcmVpbnN0YWxsaW5nIGFscmVhZHkgaW4tdXNlIEdUSyB0byB0aGUgZHJpdmVyIChrZXlpZHg9JWQgdHg9JWQgbGVuPSVkKSIsCisgCQkJZ2QtPmtleWlkeCwgZ2QtPnR4LCBnZC0+Z3RrX2xlbik7CitAQCAtNzU3LDggKzc2MCwxNCBAQCBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAorIAl9CisgCW9zX21lbXNldChndGtfYnVmLCAwLCBzaXplb2YoZ3RrX2J1ZikpOworIAorLQlzbS0+Z3RrLmd0a19sZW4gPSBnZC0+Z3RrX2xlbjsKKy0Jb3NfbWVtY3B5KHNtLT5ndGsuZ3RrLCBnZC0+Z3RrLCBzbS0+Z3RrLmd0a19sZW4pOworKwlpZiAod25tX3NsZWVwKSB7CisrCQlzbS0+Z3RrX3dubV9zbGVlcC5ndGtfbGVuID0gZ2QtPmd0a19sZW47CisrCQlvc19tZW1jcHkoc20tPmd0a193bm1fc2xlZXAuZ3RrLCBnZC0+Z3RrLAorKwkJCSAgc20tPmd0a193bm1fc2xlZXAuZ3RrX2xlbik7CisrCX0gZWxzZSB7CisrCQlzbS0+Z3RrLmd0a19sZW4gPSBnZC0+Z3RrX2xlbjsKKysJCW9zX21lbWNweShzbS0+Z3RrLmd0aywgZ2QtPmd0aywgc20tPmd0ay5ndGtfbGVuKTsKKysJfQorIAorIAlyZXR1cm4gMDsKKyB9CitAQCAtODUyLDcgKzg2MSw3IEBAIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfcGFpcndpc2VfZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAorIAkgICAgKHdwYV9zdXBwbGljYW50X2NoZWNrX2dyb3VwX2NpcGhlcihzbSwgc20tPmdyb3VwX2NpcGhlciwKKyAJCQkJCSAgICAgICBndGtfbGVuLCBndGtfbGVuLAorIAkJCQkJICAgICAgICZnZC5rZXlfcnNjX2xlbiwgJmdkLmFsZykgfHwKKy0JICAgICB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzbSwgJmdkLCBrZXlfcnNjKSkpIHsKKysJICAgICB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzbSwgJmdkLCBrZXlfcnNjLCAwKSkpIHsKKyAJCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLAorIAkJCSJSU046IEZhaWxlZCB0byBpbnN0YWxsIEdUSyIpOworIAkJb3NfbWVtc2V0KCZnZCwgMCwgc2l6ZW9mKGdkKSk7CitAQCAtODY4LDE0ICs4NzcsMTggQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9wYWlyd2lzZV9ndGsoc3RydWN0IHdwYV9zbSAqc20sCisgCisgI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCisgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc3RydWN0IHdwYV9zbSAqc20sCistCQkJCSAgICAgICBjb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICppZ3RrKQorKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqaWd0aywKKysJCQkJICAgICAgIGludCB3bm1fc2xlZXApCisgeworIAlzaXplX3QgbGVuID0gd3BhX2NpcGhlcl9rZXlfbGVuKHNtLT5tZ210X2dyb3VwX2NpcGhlcik7CisgCXUxNiBrZXlpZHggPSBXUEFfR0VUX0xFMTYoaWd0ay0+a2V5aWQpOworIAorIAkvKiBEZXRlY3QgcG9zc2libGUga2V5IHJlaW5zdGFsbGF0aW9uICovCistCWlmIChzbS0+aWd0ay5pZ3RrX2xlbiA9PSBsZW4gJiYKKy0JICAgIG9zX21lbWNtcChzbS0+aWd0ay5pZ3RrLCBpZ3RrLT5pZ3RrLCBzbS0+aWd0ay5pZ3RrX2xlbikgPT0gMCkgeworKwlpZiAoKHNtLT5pZ3RrLmlndGtfbGVuID09IGxlbiAmJgorKwkgICAgIG9zX21lbWNtcChzbS0+aWd0ay5pZ3RrLCBpZ3RrLT5pZ3RrLCBzbS0+aWd0ay5pZ3RrX2xlbikgPT0gMCkgfHwKKysJICAgIChzbS0+aWd0a193bm1fc2xlZXAuaWd0a19sZW4gPT0gbGVuICYmCisrCSAgICAgb3NfbWVtY21wKHNtLT5pZ3RrX3dubV9zbGVlcC5pZ3RrLCBpZ3RrLT5pZ3RrLAorKwkJICAgICAgIHNtLT5pZ3RrX3dubV9zbGVlcC5pZ3RrX2xlbikgPT0gMCkpIHsKKyAJCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLAorIAkJCSJXUEE6IE5vdCByZWluc3RhbGxpbmcgYWxyZWFkeSBpbi11c2UgSUdUSyB0byB0aGUgZHJpdmVyIChrZXlpZHg9JWQpIiwKKyAJCQlrZXlpZHgpOworQEAgLTkwMCw4ICs5MTMsMTQgQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc3RydWN0IHdwYV9zbSAqc20sCisgCQlyZXR1cm4gLTE7CisgCX0KKyAKKy0Jc20tPmlndGsuaWd0a19sZW4gPSBsZW47CistCW9zX21lbWNweShzbS0+aWd0ay5pZ3RrLCBpZ3RrLT5pZ3RrLCBzbS0+aWd0ay5pZ3RrX2xlbik7CisrCWlmICh3bm1fc2xlZXApIHsKKysJCXNtLT5pZ3RrX3dubV9zbGVlcC5pZ3RrX2xlbiA9IGxlbjsKKysJCW9zX21lbWNweShzbS0+aWd0a193bm1fc2xlZXAuaWd0aywgaWd0ay0+aWd0aywKKysJCQkgIHNtLT5pZ3RrX3dubV9zbGVlcC5pZ3RrX2xlbik7CisrCX0gZWxzZSB7CisrCQlzbS0+aWd0ay5pZ3RrX2xlbiA9IGxlbjsKKysJCW9zX21lbWNweShzbS0+aWd0ay5pZ3RrLCBpZ3RrLT5pZ3RrLCBzbS0+aWd0ay5pZ3RrX2xlbik7CisrCX0KKyAKKyAJcmV0dXJuIDA7CisgfQorQEAgLTkyNCw3ICs5NDMsNyBAQCBzdGF0aWMgaW50IGllZWU4MDIxMXdfc2V0X2tleXMoc3RydWN0IHdwYV9zbSAqc20sCisgCQkJcmV0dXJuIC0xOworIAorIAkJaWd0ayA9IChjb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICopIGllLT5pZ3RrOworLQkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzbSwgaWd0aykgPCAwKQorKwkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzbSwgaWd0aywgMCkgPCAwKQorIAkJCXJldHVybiAtMTsKKyAJfQorIAorQEAgLTE1NzQsNyArMTU5Myw3IEBAIHN0YXRpYyB2b2lkIHdwYV9zdXBwbGljYW50X3Byb2Nlc3NfMV9vZl8yKHN0cnVjdCB3cGFfc20gKnNtLAorIAlpZiAod3BhX3N1cHBsaWNhbnRfcnNjX3JlbGF4YXRpb24oc20sIGtleS0+a2V5X3JzYykpCisgCQlrZXlfcnNjID0gbnVsbF9yc2M7CisgCistCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzbSwgJmdkLCBrZXlfcnNjKSB8fAorKwlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc20sICZnZCwga2V5X3JzYywgMCkgfHwKKyAJICAgIHdwYV9zdXBwbGljYW50X3NlbmRfMl9vZl8yKHNtLCBrZXksIHZlciwga2V5X2luZm8pIDwgMCkKKyAJCWdvdG8gZmFpbGVkOworIAlvc19tZW1zZXQoJmdkLCAwLCBzaXplb2YoZ2QpKTsKK0BAIC0yMzg2LDggKzI0MDUsMTAgQEAgdm9pZCB3cGFfc21fbm90aWZ5X2Fzc29jKHN0cnVjdCB3cGFfc20gKnNtLCBjb25zdCB1OCAqYnNzaWQpCisgCQlzbS0+dHB0a19zZXQgPSAwOworIAkJb3NfbWVtc2V0KCZzbS0+dHB0aywgMCwgc2l6ZW9mKHNtLT50cHRrKSk7CisgCQlvc19tZW1zZXQoJnNtLT5ndGssIDAsIHNpemVvZihzbS0+Z3RrKSk7CisrCQlvc19tZW1zZXQoJnNtLT5ndGtfd25tX3NsZWVwLCAwLCBzaXplb2Yoc20tPmd0a193bm1fc2xlZXApKTsKKyAjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKKyAJCW9zX21lbXNldCgmc20tPmlndGssIDAsIHNpemVvZihzbS0+aWd0aykpOworKwkJb3NfbWVtc2V0KCZzbS0+aWd0a193bm1fc2xlZXAsIDAsIHNpemVvZihzbS0+aWd0a193bm1fc2xlZXApKTsKKyAjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KKyAJfQorIAorQEAgLTI5MjAsOCArMjk0MSwxMCBAQCB2b2lkIHdwYV9zbV9kcm9wX3NhKHN0cnVjdCB3cGFfc20gKnNtKQorIAlvc19tZW1zZXQoJnNtLT5wdGssIDAsIHNpemVvZihzbS0+cHRrKSk7CisgCW9zX21lbXNldCgmc20tPnRwdGssIDAsIHNpemVvZihzbS0+dHB0aykpOworIAlvc19tZW1zZXQoJnNtLT5ndGssIDAsIHNpemVvZihzbS0+Z3RrKSk7CisrCW9zX21lbXNldCgmc20tPmd0a193bm1fc2xlZXAsIDAsIHNpemVvZihzbS0+Z3RrX3dubV9zbGVlcCkpOworICNpZmRlZiBDT05GSUdfSUVFRTgwMjExVworIAlvc19tZW1zZXQoJnNtLT5pZ3RrLCAwLCBzaXplb2Yoc20tPmlndGspKTsKKysJb3NfbWVtc2V0KCZzbS0+aWd0a193bm1fc2xlZXAsIDAsIHNpemVvZihzbS0+aWd0a193bm1fc2xlZXApKTsKKyAjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KKyAjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVIKKyAJb3NfbWVtc2V0KHNtLT54eGtleSwgMCwgc2l6ZW9mKHNtLT54eGtleSkpOworQEAgLTI5ODYsNyArMzAwOSw3IEBAIGludCB3cGFfd25tc2xlZXBfaW5zdGFsbF9rZXkoc3RydWN0IHdwYV9zbSAqc20sIHU4IHN1YmVsZW1faWQsIHU4ICpidWYpCisgCisgCQl3cGFfaGV4ZHVtcF9rZXkoTVNHX0RFQlVHLCAiSW5zdGFsbCBHVEsgKFdOTSBTTEVFUCkiLAorIAkJCQlnZC5ndGssIGdkLmd0a19sZW4pOworLQkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHNtLCAmZ2QsIGtleV9yc2MpKSB7CisrCQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc20sICZnZCwga2V5X3JzYywgMSkpIHsKKyAJCQlvc19tZW1zZXQoJmdkLCAwLCBzaXplb2YoZ2QpKTsKKyAJCQl3cGFfcHJpbnRmKE1TR19ERUJVRywgIkZhaWxlZCB0byBpbnN0YWxsIHRoZSBHVEsgaW4gIgorIAkJCQkgICAiV05NIG1vZGUiKTsKK0BAIC0yOTk4LDcgKzMwMjEsNyBAQCBpbnQgd3BhX3dubXNsZWVwX2luc3RhbGxfa2V5KHN0cnVjdCB3cGFfc20gKnNtLCB1OCBzdWJlbGVtX2lkLCB1OCAqYnVmKQorIAkJY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqaWd0azsKKyAKKyAJCWlndGsgPSAoY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqKSAoYnVmICsgMik7CistCQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHNtLCBpZ3RrKSA8IDApCisrCQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHNtLCBpZ3RrLCAxKSA8IDApCisgCQkJcmV0dXJuIC0xOworICNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLworIAl9IGVsc2UgeworZGlmZiAtLWdpdCBhL3NyYy9yc25fc3VwcC93cGFfaS5oIGIvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKK2luZGV4IGFmYzllMzcuLjlhNTQ2MzEgMTAwNjQ0CistLS0gYS9zcmMvcnNuX3N1cHAvd3BhX2kuaAorKysrIGIvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKK0BAIC0zMiw4ICszMiwxMCBAQCBzdHJ1Y3Qgd3BhX3NtIHsKKyAJaW50IHJ4X3JlcGxheV9jb3VudGVyX3NldDsKKyAJdTggcmVxdWVzdF9jb3VudGVyW1dQQV9SRVBMQVlfQ09VTlRFUl9MRU5dOworIAlzdHJ1Y3Qgd3BhX2d0ayBndGs7CisrCXN0cnVjdCB3cGFfZ3RrIGd0a193bm1fc2xlZXA7CisgI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCisgCXN0cnVjdCB3cGFfaWd0ayBpZ3RrOworKwlzdHJ1Y3Qgd3BhX2lndGsgaWd0a193bm1fc2xlZXA7CisgI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCisgCisgCXN0cnVjdCBlYXBvbF9zbSAqZWFwb2w7IC8qIEVBUE9MIHN0YXRlIG1hY2hpbmUgZnJvbSB1cHBlciBsZXZlbCBjb2RlICovCistLSAKKzEuOC4zLjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDA0LVByZXZlbnQtaW5zdGFsbGF0aW9uLW9mLWFuLWFsbC16ZXJvLVRLLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDA0LVByZXZlbnQtaW5zdGFsbGF0aW9uLW9mLWFuLWFsbC16ZXJvLVRLLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMDM2MjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDQtUHJldmVudC1pbnN0YWxsYXRpb24tb2YtYW4tYWxsLXplcm8tVEsucGF0Y2gKQEAgLTAsMCArMSw4MiBAQAorRnJvbSBhYmY5NDE2NDdmMmRjMzNiMGI1OTYxMmY1MjVlMWIyOTIzMzFjYzlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF0aHkgVmFuaG9lZiA8TWF0aHkuVmFuaG9lZkBjcy5rdWxldXZlbi5iZT4KK0RhdGU6IEZyaSwgMjkgU2VwIDIwMTcgMDQ6MjI6NTEgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA0LzddIFByZXZlbnQgaW5zdGFsbGF0aW9uIG9mIGFuIGFsbC16ZXJvIFRLCisKK1Byb3Blcmx5IHRyYWNrIHdoZXRoZXIgYSBQVEsgaGFzIGFscmVhZHkgYmVlbiBpbnN0YWxsZWQgdG8gdGhlIGRyaXZlcgorYW5kIHRoZSBUSyBwYXJ0IGNsZWFyZWQgZnJvbSBtZW1vcnkuIFRoaXMgcHJldmVudHMgYW4gYXR0YWNrZXIgZnJvbQordHJ5aW5nIHRvIHRyaWNrIHRoZSBjbGllbnQgaW50byBpbnN0YWxsaW5nIGFuIGFsbC16ZXJvIFRLLgorCitUaGlzIGZpeGVzIHRoZSBlYXJsaWVyIGZpeCBpbiBjb21taXQKK2FkMDBkNjRlN2Q4ODI3YjNjZWJkNjY1YTBjZWIwOGFkYWJmMTVlMWUgKCdGaXggVEsgY29uZmlndXJhdGlvbiB0byB0aGUKK2RyaXZlciBpbiBFQVBPTC1LZXkgMy80IHJldHJ5IGNhc2UnKSB3aGljaCBkaWQgbm90IHRha2UgaW50byBhY2NvdW50Citwb3NzaWJpbGl0eSBvZiBhbiBleHRyYSBtZXNzYWdlIDEvNCBzaG93aW5nIHVwIGJldHdlZW4gcmV0cmllcyBvZgorbWVzc2FnZSAzLzQuCisKK1NpZ25lZC1vZmYtYnk6IE1hdGh5IFZhbmhvZWYgPE1hdGh5LlZhbmhvZWZAY3Mua3VsZXV2ZW4uYmU+CisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKK1NpZ25lZC1vZmYtYnk6IFpoZW5nIFJ1b3FpbiA8emhlbmdycS5mbnN0QGNuLmZ1aml0c3UuY29tPgorLS0tCisgc3JjL2NvbW1vbi93cGFfY29tbW9uLmggfCAxICsKKyBzcmMvcnNuX3N1cHAvd3BhLmMgICAgICB8IDUgKystLS0KKyBzcmMvcnNuX3N1cHAvd3BhX2kuaCAgICB8IDEgLQorIDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi93cGFfY29tbW9uLmggYi9zcmMvY29tbW9uL3dwYV9jb21tb24uaAoraW5kZXggZDIwMDI4NS4uMTAyMWNjYiAxMDA2NDQKKy0tLSBhL3NyYy9jb21tb24vd3BhX2NvbW1vbi5oCisrKysgYi9zcmMvY29tbW9uL3dwYV9jb21tb24uaAorQEAgLTIxNSw2ICsyMTUsNyBAQCBzdHJ1Y3Qgd3BhX3B0ayB7CisgCXNpemVfdCBrY2tfbGVuOworIAlzaXplX3Qga2VrX2xlbjsKKyAJc2l6ZV90IHRrX2xlbjsKKysJaW50IGluc3RhbGxlZDsgLyogMSBpZiBrZXkgaGFzIGFscmVhZHkgYmVlbiBpbnN0YWxsZWQgdG8gZHJpdmVyICovCisgfTsKKyAKKyBzdHJ1Y3Qgd3BhX2d0ayB7CitkaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYS5jIGIvc3JjL3Jzbl9zdXBwL3dwYS5jCitpbmRleCA3YTJjNjhkLi4wNTUwYTQxIDEwMDY0NAorLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYS5jCisrKysgYi9zcmMvcnNuX3N1cHAvd3BhLmMKK0BAIC01MTAsNyArNTEwLDYgQEAgc3RhdGljIHZvaWQgd3BhX3N1cHBsaWNhbnRfcHJvY2Vzc18xX29mXzQoc3RydWN0IHdwYV9zbSAqc20sCisgCQlvc19tZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7CisgCX0KKyAJc20tPnRwdGtfc2V0ID0gMTsKKy0Jc20tPnRrX3RvX3NldCA9IDE7CisgCisgCWtkZSA9IHNtLT5hc3NvY193cGFfaWU7CisgCWtkZV9sZW4gPSBzbS0+YXNzb2Nfd3BhX2llX2xlbjsKK0BAIC02MTUsNyArNjE0LDcgQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX3B0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKKyAJZW51bSB3cGFfYWxnIGFsZzsKKyAJY29uc3QgdTggKmtleV9yc2M7CisgCistCWlmICghc20tPnRrX3RvX3NldCkgeworKwlpZiAoc20tPnB0ay5pbnN0YWxsZWQpIHsKKyAJCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLAorIAkJCSJXUEE6IERvIG5vdCByZS1pbnN0YWxsIHNhbWUgUFRLIHRvIHRoZSBkcml2ZXIiKTsKKyAJCXJldHVybiAwOworQEAgLTY1OSw3ICs2NTgsNyBAQCBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfcHRrKHN0cnVjdCB3cGFfc20gKnNtLAorIAorIAkvKiBUSyBpcyBub3QgbmVlZGVkIGFueW1vcmUgaW4gc3VwcGxpY2FudCAqLworIAlvc19tZW1zZXQoc20tPnB0ay50aywgMCwgV1BBX1RLX01BWF9MRU4pOworLQlzbS0+dGtfdG9fc2V0ID0gMDsKKysJc20tPnB0ay5pbnN0YWxsZWQgPSAxOworIAorIAlpZiAoc20tPndwYV9wdGtfcmVrZXkpIHsKKyAJCWVsb29wX2NhbmNlbF90aW1lb3V0KHdwYV9zbV9yZWtleV9wdGssIHNtLCBOVUxMKTsKK2RpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhX2kuaCBiL3NyYy9yc25fc3VwcC93cGFfaS5oCitpbmRleCA5YTU0NjMxLi40MWYzNzFmIDEwMDY0NAorLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKKysrKyBiL3NyYy9yc25fc3VwcC93cGFfaS5oCitAQCAtMjQsNyArMjQsNiBAQCBzdHJ1Y3Qgd3BhX3NtIHsKKyAJc3RydWN0IHdwYV9wdGsgcHRrLCB0cHRrOworIAlpbnQgcHRrX3NldCwgdHB0a19zZXQ7CisgCXVuc2lnbmVkIGludCBtc2dfM19vZl80X29rOjE7CistCXVuc2lnbmVkIGludCB0a190b19zZXQ6MTsKKyAJdTggc25vbmNlW1dQQV9OT05DRV9MRU5dOworIAl1OCBhbm9uY2VbV1BBX05PTkNFX0xFTl07IC8qIEFOb25jZSBmcm9tIHRoZSBsYXN0IDEvNCBtc2cgKi8KKyAJaW50IHJlbmV3X3Nub25jZTsKKy0tIAorMS44LjMuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDUtRml4LVBUSy1yZWtleWluZy10by1nZW5lcmF0ZS1hLW5ldy1BTm9uY2UucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDUtRml4LVBUSy1yZWtleWluZy10by1nZW5lcmF0ZS1hLW5ldy1BTm9uY2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBlMWRmMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwNS1GaXgtUFRLLXJla2V5aW5nLXRvLWdlbmVyYXRlLWEtbmV3LUFOb25jZS5wYXRjaApAQCAtMCwwICsxLDY3IEBACitGcm9tIDgwNGI5ZDcyODA4Y2RkZDgyMmU3ZGNlYzRkNjBmNDBjMWFjZWRhODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKb3VuaSBNYWxpbmVuIDxqQHcxLmZpPgorRGF0ZTogU3VuLCAxIE9jdCAyMDE3IDEyOjMyOjU3ICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggNS83XSBGaXggUFRLIHJla2V5aW5nIHRvIGdlbmVyYXRlIGEgbmV3IEFOb25jZQorCitUaGUgQXV0aGVudGljYXRvciBzdGF0ZSBtYWNoaW5lIHBhdGggZm9yIFBUSyByZWtleWluZyBlbmRlZCB1cCBieXBhc3NpbmcKK3RoZSBBVVRIRU5USUNBVElPTjIgc3RhdGUgd2hlcmUgYSBuZXcgQU5vbmNlIGlzIGdlbmVyYXRlZCB3aGVuIGdvaW5nCitkaXJlY3RseSB0byB0aGUgUFRLU1RBUlQgc3RhdGUgc2luY2UgdGhlcmUgaXMgbm8gbmVlZCB0byB0cnkgdG8KK2RldGVybWluZSB0aGUgUE1LIGFnYWluIGluIHN1Y2ggYSBjYXNlLiBUaGlzIGlzIGZhciBmcm9tIGlkZWFsIHNpbmNlIHRoZQorbmV3IFBUSyB3b3VsZCBkZXBlbmQgb24gYSBuZXcgbm9uY2Ugb25seSBmcm9tIHRoZSBzdXBwbGljYW50LgorCitGaXggdGhpcyBieSBnZW5lcmF0aW5nIGEgbmV3IEFOb25jZSB3aGVuIG1vdmluZyB0byB0aGUgUFRLU1RBUlQgc3RhdGUKK2ZvciB0aGUgcHVycG9zZSBvZiBzdGFydGluZyBuZXcgNC13YXkgaGFuZHNoYWtlIHRvIHJla2V5IFBUSy4KKworU2lnbmVkLW9mZi1ieTogSm91bmkgTWFsaW5lbiA8akB3MS5maT4KKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAorU2lnbmVkLW9mZi1ieTogWmhlbmcgUnVvcWluIDx6aGVuZ3JxLmZuc3RAY24uZnVqaXRzdS5jb20+CistLS0KKyBzcmMvYXAvd3BhX2F1dGguYyB8IDI0ICsrKysrKysrKysrKysrKysrKysrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2FwL3dwYV9hdXRoLmMgYi9zcmMvYXAvd3BhX2F1dGguYworaW5kZXggNzA3OTcxZC4uYmYxMGNjMSAxMDA2NDQKKy0tLSBhL3NyYy9hcC93cGFfYXV0aC5jCisrKysgYi9zcmMvYXAvd3BhX2F1dGguYworQEAgLTE5MDEsNiArMTkwMSwyMSBAQCBTTV9TVEFURShXUEFfUFRLLCBBVVRIRU5USUNBVElPTjIpCisgfQorIAorIAorK3N0YXRpYyBpbnQgd3BhX2F1dGhfc21fcHRrX3VwZGF0ZShzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKQorK3sKKysJaWYgKHJhbmRvbV9nZXRfYnl0ZXMoc20tPkFOb25jZSwgV1BBX05PTkNFX0xFTikpIHsKKysJCXdwYV9wcmludGYoTVNHX0VSUk9SLAorKwkJCSAgICJXUEE6IEZhaWxlZCB0byBnZXQgcmFuZG9tIGRhdGEgZm9yIEFOb25jZSIpOworKwkJc20tPkRpc2Nvbm5lY3QgPSBUUlVFOworKwkJcmV0dXJuIC0xOworKwl9CisrCXdwYV9oZXhkdW1wKE1TR19ERUJVRywgIldQQTogQXNzaWduIG5ldyBBTm9uY2UiLCBzbS0+QU5vbmNlLAorKwkJICAgIFdQQV9OT05DRV9MRU4pOworKwlzbS0+VGltZW91dEN0ciA9IDA7CisrCXJldHVybiAwOworK30KKysKKysKKyBTTV9TVEFURShXUEFfUFRLLCBJTklUUE1LKQorIHsKKyAJdTggbXNrWzIgKiBQTUtfTEVOXTsKK0BAIC0yNDU4LDkgKzI0NzMsMTIgQEAgU01fU1RFUChXUEFfUFRLKQorIAkJU01fRU5URVIoV1BBX1BUSywgQVVUSEVOVElDQVRJT04pOworIAllbHNlIGlmIChzbS0+UmVBdXRoZW50aWNhdGlvblJlcXVlc3QpCisgCQlTTV9FTlRFUihXUEFfUFRLLCBBVVRIRU5USUNBVElPTjIpOworLQllbHNlIGlmIChzbS0+UFRLUmVxdWVzdCkKKy0JCVNNX0VOVEVSKFdQQV9QVEssIFBUS1NUQVJUKTsKKy0JZWxzZSBzd2l0Y2ggKHNtLT53cGFfcHRrX3N0YXRlKSB7CisrCWVsc2UgaWYgKHNtLT5QVEtSZXF1ZXN0KSB7CisrCQlpZiAod3BhX2F1dGhfc21fcHRrX3VwZGF0ZShzbSkgPCAwKQorKwkJCVNNX0VOVEVSKFdQQV9QVEssIERJU0NPTk5FQ1RFRCk7CisrCQllbHNlCisrCQkJU01fRU5URVIoV1BBX1BUSywgUFRLU1RBUlQpOworKwl9IGVsc2Ugc3dpdGNoIChzbS0+d3BhX3B0a19zdGF0ZSkgeworIAljYXNlIFdQQV9QVEtfSU5JVElBTElaRToKKyAJCWJyZWFrOworIAljYXNlIFdQQV9QVEtfRElTQ09OTkVDVDoKKy0tIAorMS44LjMuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDYtVERMUy1SZWplY3QtVFBLLVRLLXJlY29uZmlndXJhdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwNi1URExTLVJlamVjdC1UUEstVEstcmVjb25maWd1cmF0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyYzdkNTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDYtVERMUy1SZWplY3QtVFBLLVRLLXJlY29uZmlndXJhdGlvbi5wYXRjaApAQCAtMCwwICsxLDEzNSBAQAorRnJvbSA3ZmQyNmRiMmQ4MTQ3ZWQ2NjJkYjE5MmM0MWQ3YmMxNTc1MmE2MDFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSm91bmkgTWFsaW5lbiA8akB3MS5maT4KK0RhdGU6IEZyaSwgMjIgU2VwIDIwMTcgMTE6MDM6MTUgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCA2LzddIFRETFM6IFJlamVjdCBUUEstVEsgcmVjb25maWd1cmF0aW9uCisKK0RvIG5vdCB0cnkgdG8gcmVjb25maWd1cmUgdGhlIHNhbWUgVFBLLVRLIHRvIHRoZSBkcml2ZXIgYWZ0ZXIgaXQgaGFzCitiZWVuIHN1Y2Nlc3NmdWxseSBjb25maWd1cmVkLiBUaGlzIGlzIGFuIGV4cGxpY2l0IGNoZWNrIHRvIGF2b2lkIGlzc3VlcworcmVsYXRlZCB0byByZXNldHRpbmcgdGhlIFRYL1JYIHBhY2tldCBudW1iZXIuIFRoZXJlIHdhcyBhbHJlYWR5IGEgY2hlY2sKK2ZvciB0aGlzIGZvciBUUEsgTTIgKHJldHJpZXMgb2YgdGhhdCBtZXNzYWdlIGFyZSBpZ25vcmVkIGNvbXBsZXRlbHkpLCBzbwordGhhdCBiZWhhdmlvciBkb2VzIG5vdCBnZXQgbW9kaWZpZWQuCisKK0ZvciBUUEsgTTMsIHRoZSBUUEstVEsgY291bGQgaGF2ZSBiZWVuIHJlY29uZmlndXJlZCwgYnV0IHRoYXQgd2FzCitmb2xsb3dlZCBieSBpbW1lZGlhdGUgdGVhcmRvd24gb2YgdGhlIGxpbmsgZHVlIHRvIGFuIGlzc3VlIGluIHVwZGF0aW5nCit0aGUgU1RBIGVudHJ5LiBGdXJ0aGVybW9yZSwgZm9yIFRETFMgd2l0aCBhbnkgcmVhbCBzZWN1cml0eSAoaS5lLiwKK2lnbm9yaW5nIG9wZW4vV0VQKSwgdGhlIFRQSyBtZXNzYWdlIGV4Y2hhbmdlIGlzIHByb3RlY3RlZCBvbiB0aGUgQVAgcGF0aAorYW5kIHNpbXBsZSByZXBsYXkgYXR0YWNrcyBhcmUgbm90IGZlYXNpYmxlLgorCitBcyBhbiBhZGRpdGlvbmFsIGNvcm5lciBjYXNlLCBtYWtlIHN1cmUgdGhlIGxvY2FsIG5vbmNlIGdldHMgdXBkYXRlZCBpZgordGhlIHBlZXIgdXNlcyBhIHZlcnkgdW5saWtlbHkgInJhbmRvbSBub25jZSIgb2YgYWxsIHplcm9zLgorCitTaWduZWQtb2ZmLWJ5OiBKb3VuaSBNYWxpbmVuIDxqQHcxLmZpPgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CitTaWduZWQtb2ZmLWJ5OiBaaGVuZyBSdW9xaW4gPHpoZW5ncnEuZm5zdEBjbi5mdWppdHN1LmNvbT4KKy0tLQorIHNyYy9yc25fc3VwcC90ZGxzLmMgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQorIDEgZmlsZSBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3RkbHMuYyBiL3NyYy9yc25fc3VwcC90ZGxzLmMKK2luZGV4IGU0MjQxNjguLjllYjk3MzggMTAwNjQ0CistLS0gYS9zcmMvcnNuX3N1cHAvdGRscy5jCisrKysgYi9zcmMvcnNuX3N1cHAvdGRscy5jCitAQCAtMTEyLDYgKzExMiw3IEBAIHN0cnVjdCB3cGFfdGRsc19wZWVyIHsKKyAJCXU4IHRrWzE2XTsgLyogVFBLLVRLOyBhc3N1bWluZyBvbmx5IENDTVAgd2lsbCBiZSB1c2VkICovCisgCX0gdHBrOworIAlpbnQgdHBrX3NldDsKKysJaW50IHRrX3NldDsgLyogVFBLLVRLIGNvbmZpZ3VyZWQgdG8gdGhlIGRyaXZlciAqLworIAlpbnQgdHBrX3N1Y2Nlc3M7CisgCWludCB0cGtfaW5fcHJvZ3Jlc3M7CisgCitAQCAtMTkyLDYgKzE5MywyMCBAQCBzdGF0aWMgaW50IHdwYV90ZGxzX3NldF9rZXkoc3RydWN0IHdwYV9zbSAqc20sIHN0cnVjdCB3cGFfdGRsc19wZWVyICpwZWVyKQorIAl1OCByc2NbNl07CisgCWVudW0gd3BhX2FsZyBhbGc7CisgCisrCWlmIChwZWVyLT50a19zZXQpIHsKKysJCS8qCisrCQkgKiBUaGlzIHNhbWUgVFBLLVRLIGhhcyBhbHJlYWR5IGJlZW4gY29uZmlndXJlZCB0byB0aGUgZHJpdmVyCisrCQkgKiBhbmQgdGhpcyBuZXcgY29uZmlndXJhdGlvbiBhdHRlbXB0IChsaWtlbHkgZHVlIHRvIGFuCisrCQkgKiB1bmV4cGVjdGVkIHJldHJhbnNtaXR0ZWQgZnJhbWUpIHdvdWxkIHJlc3VsdCBpbiBjbGVhcmluZworKwkJICogdGhlIFRYL1JYIHNlcXVlbmNlIG51bWJlciB3aGljaCBjYW4gYnJlYWsgc2VjdXJpdHksIHNvIG11c3QKKysJCSAqIG5vdCBhbGxvdyB0aGF0IHRvIGhhcHBlbi4KKysJCSAqLworKwkJd3BhX3ByaW50ZihNU0dfSU5GTywgIlRETFM6IFRQSy1USyBmb3IgdGhlIHBlZXIgIiBNQUNTVFIKKysJCQkgICAiIGhhcyBhbHJlYWR5IGJlZW4gY29uZmlndXJlZCB0byB0aGUgZHJpdmVyIC0gZG8gbm90IHJlY29uZmlndXJlIiwKKysJCQkgICBNQUMyU1RSKHBlZXItPmFkZHIpKTsKKysJCXJldHVybiAtMTsKKysJfQorKworIAlvc19tZW1zZXQocnNjLCAwLCA2KTsKKyAKKyAJc3dpdGNoIChwZWVyLT5jaXBoZXIpIHsKK0BAIC0yMDksMTIgKzIyNCwxNSBAQCBzdGF0aWMgaW50IHdwYV90ZGxzX3NldF9rZXkoc3RydWN0IHdwYV9zbSAqc20sIHN0cnVjdCB3cGFfdGRsc19wZWVyICpwZWVyKQorIAkJcmV0dXJuIC0xOworIAl9CisgCisrCXdwYV9wcmludGYoTVNHX0RFQlVHLCAiVERMUzogQ29uZmlndXJlIHBhaXJ3aXNlIGtleSBmb3IgcGVlciAiIE1BQ1NUUiwKKysJCSAgIE1BQzJTVFIocGVlci0+YWRkcikpOworIAlpZiAod3BhX3NtX3NldF9rZXkoc20sIGFsZywgcGVlci0+YWRkciwgLTEsIDEsCisgCQkJICAgcnNjLCBzaXplb2YocnNjKSwgcGVlci0+dHBrLnRrLCBrZXlfbGVuKSA8IDApIHsKKyAJCXdwYV9wcmludGYoTVNHX1dBUk5JTkcsICJURExTOiBGYWlsZWQgdG8gc2V0IFRQSyB0byB0aGUgIgorIAkJCSAgICJkcml2ZXIiKTsKKyAJCXJldHVybiAtMTsKKyAJfQorKwlwZWVyLT50a19zZXQgPSAxOworIAlyZXR1cm4gMDsKKyB9CisgCitAQCAtNjk2LDcgKzcxNCw3IEBAIHN0YXRpYyB2b2lkIHdwYV90ZGxzX3BlZXJfY2xlYXIoc3RydWN0IHdwYV9zbSAqc20sIHN0cnVjdCB3cGFfdGRsc19wZWVyICpwZWVyKQorIAlwZWVyLT5jaXBoZXIgPSAwOworIAlwZWVyLT5xb3NfaW5mbyA9IDA7CisgCXBlZXItPndtbV9jYXBhYmxlID0gMDsKKy0JcGVlci0+dHBrX3NldCA9IHBlZXItPnRwa19zdWNjZXNzID0gMDsKKysJcGVlci0+dGtfc2V0ID0gcGVlci0+dHBrX3NldCA9IHBlZXItPnRwa19zdWNjZXNzID0gMDsKKyAJcGVlci0+Y2hhbl9zd2l0Y2hfZW5hYmxlZCA9IDA7CisgCW9zX21lbXNldCgmcGVlci0+dHBrLCAwLCBzaXplb2YocGVlci0+dHBrKSk7CisgCW9zX21lbXNldChwZWVyLT5pbm9uY2UsIDAsIFdQQV9OT05DRV9MRU4pOworQEAgLTExNTksNiArMTE3Nyw3IEBAIHNraXBfcnNuaWU6CisgCQl3cGFfdGRsc19wZWVyX2ZyZWUoc20sIHBlZXIpOworIAkJcmV0dXJuIC0xOworIAl9CisrCXBlZXItPnRrX3NldCA9IDA7IC8qIEEgbmV3IG5vbmNlIHJlc3VsdHMgaW4gYSBuZXcgVEsgKi8KKyAJd3BhX2hleGR1bXAoTVNHX0RFQlVHLCAiVERMUzogSW5pdGlhdG9yIE5vbmNlIGZvciBUUEsgaGFuZHNoYWtlIiwKKyAJCSAgICBwZWVyLT5pbm9uY2UsIFdQQV9OT05DRV9MRU4pOworIAlvc19tZW1jcHkoZnRpZS0+U25vbmNlLCBwZWVyLT5pbm9uY2UsIFdQQV9OT05DRV9MRU4pOworQEAgLTE3NTEsNiArMTc3MCwxOSBAQCBzdGF0aWMgaW50IHdwYV90ZGxzX2FkZHNldF9wZWVyKHN0cnVjdCB3cGFfc20gKnNtLCBzdHJ1Y3Qgd3BhX3RkbHNfcGVlciAqcGVlciwKKyB9CisgCisgCisrc3RhdGljIGludCB0ZGxzX25vbmNlX3NldChjb25zdCB1OCAqbm9uY2UpCisreworKwlpbnQgaTsKKysKKysJZm9yIChpID0gMDsgaSA8IFdQQV9OT05DRV9MRU47IGkrKykgeworKwkJaWYgKG5vbmNlW2ldKQorKwkJCXJldHVybiAxOworKwl9CisrCisrCXJldHVybiAwOworK30KKysKKysKKyBzdGF0aWMgaW50IHdwYV90ZGxzX3Byb2Nlc3NfdHBrX20xKHN0cnVjdCB3cGFfc20gKnNtLCBjb25zdCB1OCAqc3JjX2FkZHIsCisgCQkJCSAgIGNvbnN0IHU4ICpidWYsIHNpemVfdCBsZW4pCisgeworQEAgLTIwMDQsNyArMjAzNiw4IEBAIHNraXBfcnNuOgorIAlwZWVyLT5yc25pZV9pX2xlbiA9IGtkZS5yc25faWVfbGVuOworIAlwZWVyLT5jaXBoZXIgPSBjaXBoZXI7CisgCistCWlmIChvc19tZW1jbXAocGVlci0+aW5vbmNlLCBmdGllLT5Tbm9uY2UsIFdQQV9OT05DRV9MRU4pICE9IDApIHsKKysJaWYgKG9zX21lbWNtcChwZWVyLT5pbm9uY2UsIGZ0aWUtPlNub25jZSwgV1BBX05PTkNFX0xFTikgIT0gMCB8fAorKwkgICAgIXRkbHNfbm9uY2Vfc2V0KHBlZXItPmlub25jZSkpIHsKKyAJCS8qCisgCQkgKiBUaGVyZSBpcyBubyBwb2ludCBpbiB1cGRhdGluZyB0aGUgUk5vbmNlIGZvciBldmVyeSBvYnRhaW5lZAorIAkJICogVFBLIE0xIGZyYW1lIChlLmcuLCByZXRyYW5zbWlzc2lvbiBkdWUgdG8gdGltZW91dCkgd2l0aCB0aGUKK0BAIC0yMDIwLDYgKzIwNTMsNyBAQCBza2lwX3JzbjoKKyAJCQkJIlRETFM6IEZhaWxlZCB0byBnZXQgcmFuZG9tIGRhdGEgZm9yIHJlc3BvbmRlciBub25jZSIpOworIAkJCWdvdG8gZXJyb3I7CisgCQl9CisrCQlwZWVyLT50a19zZXQgPSAwOyAvKiBBIG5ldyBub25jZSByZXN1bHRzIGluIGEgbmV3IFRLICovCisgCX0KKyAKKyAjaWYgMAorLS0gCisxLjguMy4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwNy1GVC1Eby1ub3QtYWxsb3ctbXVsdGlwbGUtUmVhc3NvY2lhdGlvbi1SZXNwb25zZS1mcmFtLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDA3LUZULURvLW5vdC1hbGxvdy1tdWx0aXBsZS1SZWFzc29jaWF0aW9uLVJlc3BvbnNlLWZyYW0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA5NzhjNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwNy1GVC1Eby1ub3QtYWxsb3ctbXVsdGlwbGUtUmVhc3NvY2lhdGlvbi1SZXNwb25zZS1mcmFtLnBhdGNoCkBAIC0wLDAgKzEsODUgQEAKK0Zyb20gYTQyZWI2N2M0MmY4NDVmYWYyNjZiMDYzM2Q1MmUxN2YyYTgyZjUxMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+CitEYXRlOiBGcmksIDIyIFNlcCAyMDE3IDEyOjA2OjM3ICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggNy83XSBGVDogRG8gbm90IGFsbG93IG11bHRpcGxlIFJlYXNzb2NpYXRpb24gUmVzcG9uc2UgZnJhbWVzCisKK1RoZSBkcml2ZXIgaXMgZXhwZWN0ZWQgdG8gbm90IHJlcG9ydCBhIHNlY29uZCBhc3NvY2lhdGlvbiBldmVudCB3aXRob3V0Cit0aGUgc3RhdGlvbiBoYXZpbmcgZXhwbGljaXRseSByZXF1ZXN0IGEgbmV3IGFzc29jaWF0aW9uLiBBcyBzdWNoLCB0aGlzCitjYXNlIHNob3VsZCBub3QgYmUgcmVhY2hhYmxlLiBIb3dldmVyLCBzaW5jZSByZWNvbmZpZ3VyaW5nIHRoZSBzYW1lCitwYWlyd2lzZSBvciBncm91cCBrZXlzIHRvIHRoZSBkcml2ZXIgY291bGQgcmVzdWx0IGluIG5vbmNlIHJldXNlIGlzc3VlcywKK2JlIGV4dHJhIGNhcmVmdWwgaGVyZSBhbmQgZG8gYW4gYWRkaXRpb25hbCBzdGF0ZSBjaGVjayB0byBhdm9pZCB0aGlzCitldmVuIGlmIHRoZSBsb2NhbCBkcml2ZXIgZW5kcyB1cCBzb21laG93IGFjY2VwdGluZyBhbiB1bmV4cGVjdGVkCitSZWFzc29jaWF0aW9uIFJlc3BvbnNlIGZyYW1lLgorCitTaWduZWQtb2ZmLWJ5OiBKb3VuaSBNYWxpbmVuIDxqQHcxLmZpPgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CitTaWduZWQtb2ZmLWJ5OiBaaGVuZyBSdW9xaW4gPHpoZW5ncnEuZm5zdEBjbi5mdWppdHN1LmNvbT4KKy0tLQorIHNyYy9yc25fc3VwcC93cGEuYyAgICB8IDMgKysrCisgc3JjL3Jzbl9zdXBwL3dwYV9mdC5jIHwgOCArKysrKysrKworIHNyYy9yc25fc3VwcC93cGFfaS5oICB8IDEgKworIDMgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYS5jIGIvc3JjL3Jzbl9zdXBwL3dwYS5jCitpbmRleCAwNTUwYTQxLi4yYTUzYzZmIDEwMDY0NAorLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYS5jCisrKysgYi9zcmMvcnNuX3N1cHAvd3BhLmMKK0BAIC0yNDQwLDYgKzI0NDAsOSBAQCB2b2lkIHdwYV9zbV9ub3RpZnlfZGlzYXNzb2Moc3RydWN0IHdwYV9zbSAqc20pCisgI2lmZGVmIENPTkZJR19URExTCisgCXdwYV90ZGxzX2Rpc2Fzc29jKHNtKTsKKyAjZW5kaWYgLyogQ09ORklHX1RETFMgKi8KKysjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVIKKysJc20tPmZ0X3JlYXNzb2NfY29tcGxldGVkID0gMDsKKysjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVIgKi8KKyAKKyAJLyogS2V5cyBhcmUgbm90IG5lZWRlZCBpbiB0aGUgV1BBIHN0YXRlIG1hY2hpbmUgYW55bW9yZSAqLworIAl3cGFfc21fZHJvcF9zYShzbSk7CitkaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYV9mdC5jIGIvc3JjL3Jzbl9zdXBwL3dwYV9mdC5jCitpbmRleCAyMDU3OTNlLi5kNDViYjQ1IDEwMDY0NAorLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYV9mdC5jCisrKysgYi9zcmMvcnNuX3N1cHAvd3BhX2Z0LmMKK0BAIC0xNTMsNiArMTUzLDcgQEAgc3RhdGljIHU4ICogd3BhX2Z0X2dlbl9yZXFfaWVzKHN0cnVjdCB3cGFfc20gKnNtLCBzaXplX3QgKmxlbiwKKyAJdTE2IGNhcGFiOworIAorIAlzbS0+ZnRfY29tcGxldGVkID0gMDsKKysJc20tPmZ0X3JlYXNzb2NfY29tcGxldGVkID0gMDsKKyAKKyAJYnVmX2xlbiA9IDIgKyBzaXplb2Yoc3RydWN0IHJzbl9tZGllKSArIDIgKyBzaXplb2Yoc3RydWN0IHJzbl9mdGllKSArCisgCQkyICsgc20tPnIwa2hfaWRfbGVuICsgcmljX2llc19sZW4gKyAxMDA7CitAQCAtNjgxLDYgKzY4MiwxMSBAQCBpbnQgd3BhX2Z0X3ZhbGlkYXRlX3JlYXNzb2NfcmVzcChzdHJ1Y3Qgd3BhX3NtICpzbSwgY29uc3QgdTggKmllcywKKyAJCXJldHVybiAtMTsKKyAJfQorIAorKwlpZiAoc20tPmZ0X3JlYXNzb2NfY29tcGxldGVkKSB7CisrCQl3cGFfcHJpbnRmKE1TR19ERUJVRywgIkZUOiBSZWFzc29jaWF0aW9uIGhhcyBhbHJlYWR5IGJlZW4gY29tcGxldGVkIGZvciB0aGlzIEZUIHByb3RvY29sIGluc3RhbmNlIC0gaWdub3JlIHVuZXhwZWN0ZWQgcmV0cmFuc21pc3Npb24iKTsKKysJCXJldHVybiAwOworKwl9CisrCisgCWlmICh3cGFfZnRfcGFyc2VfaWVzKGllcywgaWVzX2xlbiwgJnBhcnNlKSA8IDApIHsKKyAJCXdwYV9wcmludGYoTVNHX0RFQlVHLCAiRlQ6IEZhaWxlZCB0byBwYXJzZSBJRXMiKTsKKyAJCXJldHVybiAtMTsKK0BAIC03ODEsNiArNzg3LDggQEAgaW50IHdwYV9mdF92YWxpZGF0ZV9yZWFzc29jX3Jlc3Aoc3RydWN0IHdwYV9zbSAqc20sIGNvbnN0IHU4ICppZXMsCisgCQlyZXR1cm4gLTE7CisgCX0KKyAKKysJc20tPmZ0X3JlYXNzb2NfY29tcGxldGVkID0gMTsKKysKKyAJaWYgKHdwYV9mdF9wcm9jZXNzX2d0a19zdWJlbGVtKHNtLCBwYXJzZS5ndGssIHBhcnNlLmd0a19sZW4pIDwgMCkKKyAJCXJldHVybiAtMTsKKyAKK2RpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhX2kuaCBiL3NyYy9yc25fc3VwcC93cGFfaS5oCitpbmRleCA0MWYzNzFmLi41NmY4OGRjIDEwMDY0NAorLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKKysrKyBiL3NyYy9yc25fc3VwcC93cGFfaS5oCitAQCAtMTI4LDYgKzEyOCw3IEBAIHN0cnVjdCB3cGFfc20geworIAlzaXplX3QgcjBraF9pZF9sZW47CisgCXU4IHIxa2hfaWRbRlRfUjFLSF9JRF9MRU5dOworIAlpbnQgZnRfY29tcGxldGVkOworKwlpbnQgZnRfcmVhc3NvY19jb21wbGV0ZWQ7CisgCWludCBvdmVyX3RoZV9kc19pbl9wcm9ncmVzczsKKyAJdTggdGFyZ2V0X2FwW0VUSF9BTEVOXTsgLyogb3Zlci10aGUtRFMgdGFyZ2V0IEFQICovCisgCWludCBzZXRfcHRrX2FmdGVyX2Fzc29jOworLS0gCisxLjguMy4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQva2V5LXJlcGxheS1jdmUtbXVsdGlwbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkL2tleS1yZXBsYXktY3ZlLW11bHRpcGxlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTRkYThmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQva2V5LXJlcGxheS1jdmUtbXVsdGlwbGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5ODQgKzAsMCBAQAotVGhlIFdQQTIgZm91ci13YXkgaGFuZHNoYWtlIHByb3RvY29sIGlzIHZ1bG5lcmFibGUgdG8gcmVwbGF5IGF0dGFja3Mgd2hpY2ggY2FuCi1yZXN1bHQgaW4gdW5hdXRoZW50aWNhdGVkIGNsaWVudHMgZ2FpbmluZyBhY2Nlc3MgdG8gdGhlIG5ldHdvcmsuCi0KLUJhY2twb3J0IGEgbnVtYmVyIG9mIHBhdGNoZXMgZnJvbSB1cHN0cmVhbSB0byBmaXggdGhpcy4KLQotQ1ZFOiBDVkUtMjAxNy0xMzA3NwotQ1ZFOiBDVkUtMjAxNy0xMzA3OAotQ1ZFOiBDVkUtMjAxNy0xMzA3OQotQ1ZFOiBDVkUtMjAxNy0xMzA4MAotQ1ZFOiBDVkUtMjAxNy0xMzA4MQotQ1ZFOiBDVkUtMjAxNy0xMzA4MgotQ1ZFOiBDVkUtMjAxNy0xMzA4NgotQ1ZFOiBDVkUtMjAxNy0xMzA4NwotQ1ZFOiBDVkUtMjAxNy0xMzA4OAotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci1TaWduZWQtb2ZmLWJ5OiBSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPgotCi1Gcm9tIGNmNGNhYjgwNGM3YWZkNWM0NTUwNTUyOGE4ZDE2ZTQ2MTYzMjQzYTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXRoeSBWYW5ob2VmIDxNYXRoeS5WYW5ob2VmQGNzLmt1bGV1dmVuLmJlPgotRGF0ZTogRnJpLCAxNCBKdWwgMjAxNyAxNToxNTozNSArMDIwMAotU3ViamVjdDogW1BBVENIIDEvOF0gaG9zdGFwZDogQXZvaWQga2V5IHJlaW5zdGFsbGF0aW9uIGluIEZUIGhhbmRzaGFrZQotCi1EbyBub3QgcmVpbnN0YWxsIFRLIHRvIHRoZSBkcml2ZXIgZHVyaW5nIFJlYXNzb2NpYXRpb24gUmVzcG9uc2UgZnJhbWUKLXByb2Nlc3NpbmcgaWYgdGhlIGZpcnN0IGF0dGVtcHQgb2Ygc2V0dGluZyB0aGUgVEsgc3VjY2VlZGVkLiBUaGlzIGF2b2lkcwotaXNzdWVzIHJlbGF0ZWQgdG8gY2xlYXJpbmcgdGhlIFRYL1JYIFBOIHRoYXQgY291bGQgcmVzdWx0IGluIHJldXNpbmcKLXNhbWUgUE4gdmFsdWVzIGZvciB0cmFuc21pdHRlZCBmcmFtZXMgKGUuZy4sIGR1ZSB0byBDQ00gbm9uY2UgcmV1c2UgYW5kCi1hbHNvIGhpdHRpbmcgcmVwbGF5IHByb3RlY3Rpb24gb24gdGhlIHJlY2VpdmVyKSBhbmQgYWNjZXB0aW5nIHJlcGxheWVkCi1mcmFtZXMgb24gUlggc2lkZS4KLQotVGhpcyBpc3N1ZSB3YXMgaW50cm9kdWNlZCBieSB0aGUgY29tbWl0Ci0wZTg0YzI1NDM0ZTZhMWYyODNjN2I0ZTYyZTQ4MzcyOTA4NWI3OGQyICgnRlQ6IEZpeCBQVEsgY29uZmlndXJhdGlvbiBpbgotYXV0aGVudGljYXRvcicpIHdoaWNoIGFsbG93ZWQgd3BhX2Z0X2luc3RhbGxfcHRrKCkgdG8gYmUgY2FsbGVkIG11bHRpcGxlCi10aW1lcyB3aXRoIHRoZSBzYW1lIFBUSy4gV2hpbGUgdGhlIHNlY29uZCBjb25maWd1cmF0aW9uIGF0dGVtcHQgaXMKLW5lZWRlZCB3aXRoIHNvbWUgZHJpdmVycywgaXQgbXVzdCBiZSBkb25lIG9ubHkgaWYgdGhlIGZpcnN0IGF0dGVtcHQKLWZhaWxlZC4KLQotU2lnbmVkLW9mZi1ieTogTWF0aHkgVmFuaG9lZiA8TWF0aHkuVmFuaG9lZkBjcy5rdWxldXZlbi5iZT4KLS0tLQotIHNyYy9hcC9pZWVlODAyXzExLmMgIHwgMTYgKysrKysrKysrKysrKy0tLQotIHNyYy9hcC93cGFfYXV0aC5jICAgIHwgMTEgKysrKysrKysrKysKLSBzcmMvYXAvd3BhX2F1dGguaCAgICB8ICAzICsrLQotIHNyYy9hcC93cGFfYXV0aF9mdC5jIHwgMTAgKysrKysrKysrKwotIHNyYy9hcC93cGFfYXV0aF9pLmggIHwgIDEgKwotIDUgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9hcC9pZWVlODAyXzExLmMgYi9zcmMvYXAvaWVlZTgwMl8xMS5jCi1pbmRleCA0ZTA0MTY5Li4zMzMwMzVmIDEwMDY0NAotLS0tIGEvc3JjL2FwL2llZWU4MDJfMTEuYwotKysrIGIvc3JjL2FwL2llZWU4MDJfMTEuYwotQEAgLTE4NDEsNiArMTg0MSw3IEBAIHN0YXRpYyBpbnQgYWRkX2Fzc29jaWF0ZWRfc3RhKHN0cnVjdCBob3N0YXBkX2RhdGEgKmhhcGQsCi0gewotIAlzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcGFiaWxpdGllcyBodF9jYXA7Ci0gCXN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcGFiaWxpdGllcyB2aHRfY2FwOwotKwlpbnQgc2V0ID0gMTsKLSAKLSAJLyoKLSAJICogUmVtb3ZlIHRoZSBTVEEgZW50cnkgdG8gZW5zdXJlIHRoZSBTVEEgUFMgc3RhdGUgZ2V0cyBjbGVhcmVkIGFuZAotQEAgLTE4NDgsOSArMTg0OSwxOCBAQCBzdGF0aWMgaW50IGFkZF9hc3NvY2lhdGVkX3N0YShzdHJ1Y3QgaG9zdGFwZF9kYXRhICpoYXBkLAotIAkgKiBGVC1vdmVyLXRoZS1EUywgd2hlcmUgYSBzdGF0aW9uIHJlLWFzc29jaWF0ZXMgYmFjayB0byB0aGUgc2FtZSBBUCBidXQKLSAJICogc2tpcHMgdGhlIGF1dGhlbnRpY2F0aW9uIGZsb3csIG9yIGlmIHdvcmtpbmcgd2l0aCBhIGRyaXZlciB0aGF0Ci0gCSAqIGRvZXMgbm90IHN1cHBvcnQgZnVsbCBBUCBjbGllbnQgc3RhdGUuCi0rCSAqCi0rCSAqIFNraXAgdGhpcyBpZiB0aGUgU1RBIGhhcyBhbHJlYWR5IGNvbXBsZXRlZCBGVCByZWFzc29jaWF0aW9uIGFuZCB0aGUKLSsJICogVEsgaGFzIGJlZW4gY29uZmlndXJlZCBzaW5jZSB0aGUgVFgvUlggUE4gbXVzdCBub3QgYmUgcmVzZXQgdG8gMCBmb3IKLSsJICogdGhlIHNhbWUga2V5LgotIAkgKi8KLS0JaWYgKCFzdGEtPmFkZGVkX3VuYXNzb2MpCi0rCWlmICghc3RhLT5hZGRlZF91bmFzc29jICYmCi0rCSAgICAoIShzdGEtPmZsYWdzICYgV0xBTl9TVEFfQVVUSE9SSVpFRCkgfHwKLSsJICAgICAhd3BhX2F1dGhfc3RhX2Z0X3RrX2FscmVhZHlfc2V0KHN0YS0+d3BhX3NtKSkpIHsKLSAJCWhvc3RhcGRfZHJ2X3N0YV9yZW1vdmUoaGFwZCwgc3RhLT5hZGRyKTsKLSsJCXdwYV9hdXRoX3NtX2V2ZW50KHN0YS0+d3BhX3NtLCBXUEFfRFJWX1NUQV9SRU1PVkVEKTsKLSsJCXNldCA9IDA7Ci0rCX0KLSAKLSAjaWZkZWYgQ09ORklHX0lFRUU4MDIxMU4KLSAJaWYgKHN0YS0+ZmxhZ3MgJiBXTEFOX1NUQV9IVCkKLUBAIC0xODczLDExICsxODgzLDExIEBAIHN0YXRpYyBpbnQgYWRkX2Fzc29jaWF0ZWRfc3RhKHN0cnVjdCBob3N0YXBkX2RhdGEgKmhhcGQsCi0gCQkJICAgIHN0YS0+ZmxhZ3MgJiBXTEFOX1NUQV9WSFQgPyAmdmh0X2NhcCA6IE5VTEwsCi0gCQkJICAgIHN0YS0+ZmxhZ3MgfCBXTEFOX1NUQV9BU1NPQywgc3RhLT5xb3NpbmZvLAotIAkJCSAgICBzdGEtPnZodF9vcG1vZGUsIHN0YS0+cDJwX2llID8gMSA6IDAsCi0tCQkJICAgIHN0YS0+YWRkZWRfdW5hc3NvYykpIHsKLSsJCQkgICAgc2V0KSkgewotIAkJaG9zdGFwZF9sb2dnZXIoaGFwZCwgc3RhLT5hZGRyLAotIAkJCSAgICAgICBIT1NUQVBEX01PRFVMRV9JRUVFODAyMTEsIEhPU1RBUERfTEVWRUxfTk9USUNFLAotIAkJCSAgICAgICAiQ291bGQgbm90ICVzIFNUQSB0byBrZXJuZWwgZHJpdmVyIiwKLS0JCQkgICAgICAgc3RhLT5hZGRlZF91bmFzc29jID8gInNldCIgOiAiYWRkIik7Ci0rCQkJICAgICAgIHNldCA/ICJzZXQiIDogImFkZCIpOwotIAotIAkJaWYgKHN0YS0+YWRkZWRfdW5hc3NvYykgewotIAkJCWhvc3RhcGRfZHJ2X3N0YV9yZW1vdmUoaGFwZCwgc3RhLT5hZGRyKTsKLWRpZmYgLS1naXQgYS9zcmMvYXAvd3BhX2F1dGguYyBiL3NyYy9hcC93cGFfYXV0aC5jCi1pbmRleCAzNTg3MDg2Li43MDc5NzFkIDEwMDY0NAotLS0tIGEvc3JjL2FwL3dwYV9hdXRoLmMKLSsrKyBiL3NyYy9hcC93cGFfYXV0aC5jCi1AQCAtMTc0NSw2ICsxNzQ1LDkgQEAgaW50IHdwYV9hdXRoX3NtX2V2ZW50KHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20sIGVudW0gd3BhX2V2ZW50IGV2ZW50KQotICNlbHNlIC8qIENPTkZJR19JRUVFODAyMTFSICovCi0gCQlicmVhazsKLSAjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVIgKi8KLSsJY2FzZSBXUEFfRFJWX1NUQV9SRU1PVkVEOgotKwkJc20tPnRrX2FscmVhZHlfc2V0ID0gRkFMU0U7Ci0rCQlyZXR1cm4gMDsKLSAJfQotIAotICNpZmRlZiBDT05GSUdfSUVFRTgwMjExUgotQEAgLTMyNTAsNiArMzI1MywxNCBAQCBpbnQgd3BhX2F1dGhfc3RhX3dwYV92ZXJzaW9uKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pCi0gfQotIAotIAotK2ludCB3cGFfYXV0aF9zdGFfZnRfdGtfYWxyZWFkeV9zZXQoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSkKLSt7Ci0rCWlmICghc20gfHwgIXdwYV9rZXlfbWdtdF9mdChzbS0+d3BhX2tleV9tZ210KSkKLSsJCXJldHVybiAwOwotKwlyZXR1cm4gc20tPnRrX2FscmVhZHlfc2V0OwotK30KLSsKLSsKLSBpbnQgd3BhX2F1dGhfc3RhX2NsZWFyX3Bta3NhKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20sCi0gCQkJICAgICBzdHJ1Y3QgcnNuX3Bta3NhX2NhY2hlX2VudHJ5ICplbnRyeSkKLSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL2FwL3dwYV9hdXRoLmggYi9zcmMvYXAvd3BhX2F1dGguaAotaW5kZXggMGRlOGQ5Ny4uOTc0NjFiMCAxMDA2NDQKLS0tLSBhL3NyYy9hcC93cGFfYXV0aC5oCi0rKysgYi9zcmMvYXAvd3BhX2F1dGguaAotQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIHdwYV9yZWNlaXZlKHN0cnVjdCB3cGFfYXV0aGVudGljYXRvciAqd3BhX2F1dGgsCi0gCQkgdTggKmRhdGEsIHNpemVfdCBkYXRhX2xlbik7Ci0gZW51bSB3cGFfZXZlbnQgewotIAlXUEFfQVVUSCwgV1BBX0FTU09DLCBXUEFfRElTQVNTT0MsIFdQQV9ERUFVVEgsIFdQQV9SRUFVVEgsCi0tCVdQQV9SRUFVVEhfRUFQT0wsIFdQQV9BU1NPQ19GVAotKwlXUEFfUkVBVVRIX0VBUE9MLCBXUEFfQVNTT0NfRlQsIFdQQV9EUlZfU1RBX1JFTU9WRUQKLSB9OwotIHZvaWQgd3BhX3JlbW92ZV9wdGsoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSk7Ci0gaW50IHdwYV9hdXRoX3NtX2V2ZW50KHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20sIGVudW0gd3BhX2V2ZW50IGV2ZW50KTsKLUBAIC0yODAsNiArMjgwLDcgQEAgaW50IHdwYV9hdXRoX3BhaXJ3aXNlX3NldChzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKTsKLSBpbnQgd3BhX2F1dGhfZ2V0X3BhaXJ3aXNlKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pOwotIGludCB3cGFfYXV0aF9zdGFfa2V5X21nbXQoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSk7Ci0gaW50IHdwYV9hdXRoX3N0YV93cGFfdmVyc2lvbihzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKTsKLStpbnQgd3BhX2F1dGhfc3RhX2Z0X3RrX2FscmVhZHlfc2V0KHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pOwotIGludCB3cGFfYXV0aF9zdGFfY2xlYXJfcG1rc2Eoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSwKLSAJCQkgICAgIHN0cnVjdCByc25fcG1rc2FfY2FjaGVfZW50cnkgKmVudHJ5KTsKLSBzdHJ1Y3QgcnNuX3Bta3NhX2NhY2hlX2VudHJ5ICoKLWRpZmYgLS1naXQgYS9zcmMvYXAvd3BhX2F1dGhfZnQuYyBiL3NyYy9hcC93cGFfYXV0aF9mdC5jCi1pbmRleCA0MjI0MmE1Li5lNjNiOTlhIDEwMDY0NAotLS0tIGEvc3JjL2FwL3dwYV9hdXRoX2Z0LmMKLSsrKyBiL3NyYy9hcC93cGFfYXV0aF9mdC5jCi1AQCAtNzgwLDYgKzc4MCwxNCBAQCB2b2lkIHdwYV9mdF9pbnN0YWxsX3B0ayhzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKQotIAkJcmV0dXJuOwotIAl9Ci0gCi0rCWlmIChzbS0+dGtfYWxyZWFkeV9zZXQpIHsKLSsJCS8qIE11c3QgYXZvaWQgVEsgcmVjb25maWd1cmF0aW9uIHRvIHByZXZlbnQgY2xlYXJpbmcgb2YgVFgvUlgKLSsJCSAqIFBOIGluIHRoZSBkcml2ZXIgKi8KLSsJCXdwYV9wcmludGYoTVNHX0RFQlVHLAotKwkJCSAgICJGVDogRG8gbm90IHJlLWluc3RhbGwgc2FtZSBQVEsgdG8gdGhlIGRyaXZlciIpOwotKwkJcmV0dXJuOwotKwl9Ci0rCi0gCS8qIEZJWDogYWRkIFNUQSBlbnRyeSB0byBrZXJuZWwvZHJpdmVyIGhlcmU/IFRoZSBzZXRfa2V5IHdpbGwgZmFpbAotIAkgKiBtb3N0IGxpa2VseSB3aXRob3V0IHRoaXMuLiBBdCB0aGUgbW9tZW50LCBTVEEgZW50cnkgaXMgYWRkZWQgb25seQotIAkgKiBhZnRlciBhc3NvY2lhdGlvbiBoYXMgYmVlbiBjb21wbGV0ZWQuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQKLUBAIC03OTIsNiArODAwLDcgQEAgdm9pZCB3cGFfZnRfaW5zdGFsbF9wdGsoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSkKLSAKLSAJLyogRklYOiBNTE1FLVNldFByb3RlY3Rpb24uUmVxdWVzdChUQSwgVHhfUngpICovCi0gCXNtLT5wYWlyd2lzZV9zZXQgPSBUUlVFOwotKwlzbS0+dGtfYWxyZWFkeV9zZXQgPSBUUlVFOwotIH0KLSAKLSAKLUBAIC04OTgsNiArOTA3LDcgQEAgc3RhdGljIGludCB3cGFfZnRfcHJvY2Vzc19hdXRoX3JlcShzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtLAotIAotIAlzbS0+cGFpcndpc2UgPSBwYWlyd2lzZTsKLSAJc20tPlBUS192YWxpZCA9IFRSVUU7Ci0rCXNtLT50a19hbHJlYWR5X3NldCA9IEZBTFNFOwotIAl3cGFfZnRfaW5zdGFsbF9wdGsoc20pOwotIAotIAlidWZsZW4gPSAyICsgc2l6ZW9mKHN0cnVjdCByc25fbWRpZSkgKyAyICsgc2l6ZW9mKHN0cnVjdCByc25fZnRpZSkgKwotZGlmZiAtLWdpdCBhL3NyYy9hcC93cGFfYXV0aF9pLmggYi9zcmMvYXAvd3BhX2F1dGhfaS5oCi1pbmRleCA3MmI3ZWIzLi43ZmQ4ZjA1IDEwMDY0NAotLS0tIGEvc3JjL2FwL3dwYV9hdXRoX2kuaAotKysrIGIvc3JjL2FwL3dwYV9hdXRoX2kuaAotQEAgLTY1LDYgKzY1LDcgQEAgc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lIHsKLSAJc3RydWN0IHdwYV9wdGsgUFRLOwotIAlCb29sZWFuIFBUS192YWxpZDsKLSAJQm9vbGVhbiBwYWlyd2lzZV9zZXQ7Ci0rCUJvb2xlYW4gdGtfYWxyZWFkeV9zZXQ7Ci0gCWludCBrZXljb3VudDsKLSAJQm9vbGVhbiBQYWlyOwotIAlzdHJ1Y3Qgd3BhX2tleV9yZXBsYXlfY291bnRlciB7Ci0tLSAKLTIuNy40Ci0KLUZyb20gOTI3Zjg5MTAwN2M0MDJmZWZkMWZmMzg0NjQ1YjNmMDc1OTdjM2VkZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hdGh5IFZhbmhvZWYgPE1hdGh5LlZhbmhvZWZAY3Mua3VsZXV2ZW4uYmU+Ci1EYXRlOiBXZWQsIDEyIEp1bCAyMDE3IDE2OjAzOjI0ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMi84XSBQcmV2ZW50IHJlaW5zdGFsbGF0aW9uIG9mIGFuIGFscmVhZHkgaW4tdXNlIGdyb3VwIGtleQotCi1UcmFjayB0aGUgY3VycmVudCBHVEsgYW5kIElHVEsgdGhhdCBpcyBpbiB1c2UgYW5kIHdoZW4gcmVjZWl2aW5nIGEKLShwb3NzaWJseSByZXRyYW5zbWl0dGVkKSBHcm91cCBNZXNzYWdlIDEgb3IgV05NLVNsZWVwIE1vZGUgUmVzcG9uc2UsIGRvCi1ub3QgaW5zdGFsbCB0aGUgZ2l2ZW4ga2V5IGlmIGl0IGlzIGFscmVhZHkgaW4gdXNlLiBUaGlzIHByZXZlbnRzIGFuCi1hdHRhY2tlciBmcm9tIHRyeWluZyB0byB0cmljayB0aGUgY2xpZW50IGludG8gcmVzZXR0aW5nIG9yIGxvd2VyaW5nIHRoZQotc2VxdWVuY2UgY291bnRlciBhc3NvY2lhdGVkIHRvIHRoZSBncm91cCBrZXkuCi0KLVNpZ25lZC1vZmYtYnk6IE1hdGh5IFZhbmhvZWYgPE1hdGh5LlZhbmhvZWZAY3Mua3VsZXV2ZW4uYmU+Ci0tLS0KLSBzcmMvY29tbW9uL3dwYV9jb21tb24uaCB8ICAxMSArKysrKwotIHNyYy9yc25fc3VwcC93cGEuYyAgICAgIHwgMTE2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQotIHNyYy9yc25fc3VwcC93cGFfaS5oICAgIHwgICA0ICsrCi0gMyBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vd3BhX2NvbW1vbi5oIGIvc3JjL2NvbW1vbi93cGFfY29tbW9uLmgKLWluZGV4IGFmMWQwZjAuLmQyMDAyODUgMTAwNjQ0Ci0tLS0gYS9zcmMvY29tbW9uL3dwYV9jb21tb24uaAotKysrIGIvc3JjL2NvbW1vbi93cGFfY29tbW9uLmgKLUBAIC0yMTcsNiArMjE3LDE3IEBAIHN0cnVjdCB3cGFfcHRrIHsKLSAJc2l6ZV90IHRrX2xlbjsKLSB9OwotIAotK3N0cnVjdCB3cGFfZ3RrIHsKLSsJdTggZ3RrW1dQQV9HVEtfTUFYX0xFTl07Ci0rCXNpemVfdCBndGtfbGVuOwotK307Ci0rCi0rI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCi0rc3RydWN0IHdwYV9pZ3RrIHsKLSsJdTggaWd0a1tXUEFfSUdUS19NQVhfTEVOXTsKLSsJc2l6ZV90IGlndGtfbGVuOwotK307Ci0rI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCi0gCi0gLyogV1BBIElFIHZlcnNpb24gMQotICAqIDAwLTUwLWYyOjEgKE9VSTpPVUkgdHlwZSkKLWRpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhLmMgYi9zcmMvcnNuX3N1cHAvd3BhLmMKLWluZGV4IDNjNDc4NzkuLjk1YmQ3YmUgMTAwNjQ0Ci0tLS0gYS9zcmMvcnNuX3N1cHAvd3BhLmMKLSsrKyBiL3NyYy9yc25fc3VwcC93cGEuYwotQEAgLTcxNCw2ICs3MTQsMTUgQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKLSAJY29uc3QgdTggKl9ndGsgPSBnZC0+Z3RrOwotIAl1OCBndGtfYnVmWzMyXTsKLSAKLSsJLyogRGV0ZWN0IHBvc3NpYmxlIGtleSByZWluc3RhbGxhdGlvbiAqLwotKwlpZiAoc20tPmd0ay5ndGtfbGVuID09IChzaXplX3QpIGdkLT5ndGtfbGVuICYmCi0rCSAgICBvc19tZW1jbXAoc20tPmd0ay5ndGssIGdkLT5ndGssIHNtLT5ndGsuZ3RrX2xlbikgPT0gMCkgewotKwkJd3BhX2RiZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfREVCVUcsCi0rCQkJIldQQTogTm90IHJlaW5zdGFsbGluZyBhbHJlYWR5IGluLXVzZSBHVEsgdG8gdGhlIGRyaXZlciAoa2V5aWR4PSVkIHR4PSVkIGxlbj0lZCkiLAotKwkJCWdkLT5rZXlpZHgsIGdkLT50eCwgZ2QtPmd0a19sZW4pOwotKwkJcmV0dXJuIDA7Ci0rCX0KLSsKLSAJd3BhX2hleGR1bXBfa2V5KE1TR19ERUJVRywgIldQQTogR3JvdXAgS2V5IiwgZ2QtPmd0aywgZ2QtPmd0a19sZW4pOwotIAl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKLSAJCSJXUEE6IEluc3RhbGxpbmcgR1RLIHRvIHRoZSBkcml2ZXIgKGtleWlkeD0lZCB0eD0lZCBsZW49JWQpIiwKLUBAIC03NDgsNiArNzU3LDkgQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKLSAJfQotIAlvc19tZW1zZXQoZ3RrX2J1ZiwgMCwgc2l6ZW9mKGd0a19idWYpKTsKLSAKLSsJc20tPmd0ay5ndGtfbGVuID0gZ2QtPmd0a19sZW47Ci0rCW9zX21lbWNweShzbS0+Z3RrLmd0aywgZ2QtPmd0aywgc20tPmd0ay5ndGtfbGVuKTsKLSsKLSAJcmV0dXJuIDA7Ci0gfQotIAotQEAgLTg1NCw2ICs4NjYsNDggQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9wYWlyd2lzZV9ndGsoc3RydWN0IHdwYV9zbSAqc20sCi0gfQotIAotIAotKyNpZmRlZiBDT05GSUdfSUVFRTgwMjExVwotK3N0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAotKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqaWd0aykKLSt7Ci0rCXNpemVfdCBsZW4gPSB3cGFfY2lwaGVyX2tleV9sZW4oc20tPm1nbXRfZ3JvdXBfY2lwaGVyKTsKLSsJdTE2IGtleWlkeCA9IFdQQV9HRVRfTEUxNihpZ3RrLT5rZXlpZCk7Ci0rCi0rCS8qIERldGVjdCBwb3NzaWJsZSBrZXkgcmVpbnN0YWxsYXRpb24gKi8KLSsJaWYgKHNtLT5pZ3RrLmlndGtfbGVuID09IGxlbiAmJgotKwkgICAgb3NfbWVtY21wKHNtLT5pZ3RrLmlndGssIGlndGstPmlndGssIHNtLT5pZ3RrLmlndGtfbGVuKSA9PSAwKSB7Ci0rCQl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKLSsJCQkiV1BBOiBOb3QgcmVpbnN0YWxsaW5nIGFscmVhZHkgaW4tdXNlIElHVEsgdG8gdGhlIGRyaXZlciAoa2V5aWR4PSVkKSIsCi0rCQkJa2V5aWR4KTsKLSsJCXJldHVybiAgMDsKLSsJfQotKwotKwl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKLSsJCSJXUEE6IElHVEsga2V5aWQgJWQgcG4gJTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4IiwKLSsJCWtleWlkeCwgTUFDMlNUUihpZ3RrLT5wbikpOwotKwl3cGFfaGV4ZHVtcF9rZXkoTVNHX0RFQlVHLCAiV1BBOiBJR1RLIiwgaWd0ay0+aWd0aywgbGVuKTsKLSsJaWYgKGtleWlkeCA+IDQwOTUpIHsKLSsJCXdwYV9tc2coc20tPmN0eC0+bXNnX2N0eCwgTVNHX1dBUk5JTkcsCi0rCQkJIldQQTogSW52YWxpZCBJR1RLIEtleUlEICVkIiwga2V5aWR4KTsKLSsJCXJldHVybiAtMTsKLSsJfQotKwlpZiAod3BhX3NtX3NldF9rZXkoc20sIHdwYV9jaXBoZXJfdG9fYWxnKHNtLT5tZ210X2dyb3VwX2NpcGhlciksCi0rCQkJICAgYnJvYWRjYXN0X2V0aGVyX2FkZHIsCi0rCQkJICAga2V5aWR4LCAwLCBpZ3RrLT5wbiwgc2l6ZW9mKGlndGstPnBuKSwKLSsJCQkgICBpZ3RrLT5pZ3RrLCBsZW4pIDwgMCkgewotKwkJd3BhX21zZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfV0FSTklORywKLSsJCQkiV1BBOiBGYWlsZWQgdG8gY29uZmlndXJlIElHVEsgdG8gdGhlIGRyaXZlciIpOwotKwkJcmV0dXJuIC0xOwotKwl9Ci0rCi0rCXNtLT5pZ3RrLmlndGtfbGVuID0gbGVuOwotKwlvc19tZW1jcHkoc20tPmlndGsuaWd0aywgaWd0ay0+aWd0aywgc20tPmlndGsuaWd0a19sZW4pOwotKwotKwlyZXR1cm4gMDsKLSt9Ci0rI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCi0rCi0rCi0gc3RhdGljIGludCBpZWVlODAyMTF3X3NldF9rZXlzKHN0cnVjdCB3cGFfc20gKnNtLAotIAkJCSAgICAgICBzdHJ1Y3Qgd3BhX2VhcG9sX2llX3BhcnNlICppZSkKLSB7Ci1AQCAtODY0LDMwICs5MTgsMTQgQEAgc3RhdGljIGludCBpZWVlODAyMTF3X3NldF9rZXlzKHN0cnVjdCB3cGFfc20gKnNtLAotIAlpZiAoaWUtPmlndGspIHsKLSAJCXNpemVfdCBsZW47Ci0gCQljb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICppZ3RrOwotLQkJdTE2IGtleWlkeDsKLSsKLSAJCWxlbiA9IHdwYV9jaXBoZXJfa2V5X2xlbihzbS0+bWdtdF9ncm91cF9jaXBoZXIpOwotIAkJaWYgKGllLT5pZ3RrX2xlbiAhPSBXUEFfSUdUS19LREVfUFJFRklYX0xFTiArIGxlbikKLSAJCQlyZXR1cm4gLTE7Ci0rCi0gCQlpZ3RrID0gKGNvbnN0IHN0cnVjdCB3cGFfaWd0a19rZGUgKikgaWUtPmlndGs7Ci0tCQlrZXlpZHggPSBXUEFfR0VUX0xFMTYoaWd0ay0+a2V5aWQpOwotLQkJd3BhX2RiZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfREVCVUcsICJXUEE6IElHVEsga2V5aWQgJWQgIgotLQkJCSJwbiAlMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMngiLAotLQkJCWtleWlkeCwgTUFDMlNUUihpZ3RrLT5wbikpOwotLQkJd3BhX2hleGR1bXBfa2V5KE1TR19ERUJVRywgIldQQTogSUdUSyIsCi0tCQkJCWlndGstPmlndGssIGxlbik7Ci0tCQlpZiAoa2V5aWR4ID4gNDA5NSkgewotLQkJCXdwYV9tc2coc20tPmN0eC0+bXNnX2N0eCwgTVNHX1dBUk5JTkcsCi0tCQkJCSJXUEE6IEludmFsaWQgSUdUSyBLZXlJRCAlZCIsIGtleWlkeCk7Ci0tCQkJcmV0dXJuIC0xOwotLQkJfQotLQkJaWYgKHdwYV9zbV9zZXRfa2V5KHNtLCB3cGFfY2lwaGVyX3RvX2FsZyhzbS0+bWdtdF9ncm91cF9jaXBoZXIpLAotLQkJCQkgICBicm9hZGNhc3RfZXRoZXJfYWRkciwKLS0JCQkJICAga2V5aWR4LCAwLCBpZ3RrLT5wbiwgc2l6ZW9mKGlndGstPnBuKSwKLS0JCQkJICAgaWd0ay0+aWd0aywgbGVuKSA8IDApIHsKLS0JCQl3cGFfbXNnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19XQVJOSU5HLAotLQkJCQkiV1BBOiBGYWlsZWQgdG8gY29uZmlndXJlIElHVEsgdG8gdGhlIGRyaXZlciIpOwotKwkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzbSwgaWd0aykgPCAwKQotIAkJCXJldHVybiAtMTsKLS0JCX0KLSAJfQotIAotIAlyZXR1cm4gMDsKLUBAIC0yMzA3LDcgKzIzNDUsNyBAQCB2b2lkIHdwYV9zbV9kZWluaXQoc3RydWN0IHdwYV9zbSAqc20pCi0gICovCi0gdm9pZCB3cGFfc21fbm90aWZ5X2Fzc29jKHN0cnVjdCB3cGFfc20gKnNtLCBjb25zdCB1OCAqYnNzaWQpCi0gewotLQlpbnQgY2xlYXJfcHRrID0gMTsKLSsJaW50IGNsZWFyX2tleXMgPSAxOwotIAotIAlpZiAoc20gPT0gTlVMTCkKLSAJCXJldHVybjsKLUBAIC0yMzMzLDExICsyMzcxLDExIEBAIHZvaWQgd3BhX3NtX25vdGlmeV9hc3NvYyhzdHJ1Y3Qgd3BhX3NtICpzbSwgY29uc3QgdTggKmJzc2lkKQotIAkJLyogUHJlcGFyZSBmb3IgdGhlIG5leHQgdHJhbnNpdGlvbiAqLwotIAkJd3BhX2Z0X3ByZXBhcmVfYXV0aF9yZXF1ZXN0KHNtLCBOVUxMKTsKLSAKLS0JCWNsZWFyX3B0ayA9IDA7Ci0rCQljbGVhcl9rZXlzID0gMDsKLSAJfQotICNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExUiAqLwotIAotLQlpZiAoY2xlYXJfcHRrKSB7Ci0rCWlmIChjbGVhcl9rZXlzKSB7Ci0gCQkvKgotIAkJICogSUVFRSA4MDIuMTEsIDguNC4xMDogRGVsZXRlIFBUSyBTQSBvbiAocmUpYXNzb2NpYXRpb24gaWYKLSAJCSAqIHRoaXMgaXMgbm90IHBhcnQgb2YgYSBGYXN0IEJTUyBUcmFuc2l0aW9uLgotQEAgLTIzNDcsNiArMjM4NSwxMCBAQCB2b2lkIHdwYV9zbV9ub3RpZnlfYXNzb2Moc3RydWN0IHdwYV9zbSAqc20sIGNvbnN0IHU4ICpic3NpZCkKLSAJCW9zX21lbXNldCgmc20tPnB0aywgMCwgc2l6ZW9mKHNtLT5wdGspKTsKLSAJCXNtLT50cHRrX3NldCA9IDA7Ci0gCQlvc19tZW1zZXQoJnNtLT50cHRrLCAwLCBzaXplb2Yoc20tPnRwdGspKTsKLSsJCW9zX21lbXNldCgmc20tPmd0aywgMCwgc2l6ZW9mKHNtLT5ndGspKTsKLSsjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKLSsJCW9zX21lbXNldCgmc20tPmlndGssIDAsIHNpemVvZihzbS0+aWd0aykpOwotKyNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLwotIAl9Ci0gCi0gI2lmZGVmIENPTkZJR19URExTCi1AQCAtMjg3Nyw2ICsyOTE5LDEwIEBAIHZvaWQgd3BhX3NtX2Ryb3Bfc2Eoc3RydWN0IHdwYV9zbSAqc20pCi0gCW9zX21lbXNldChzbS0+cG1rLCAwLCBzaXplb2Yoc20tPnBtaykpOwotIAlvc19tZW1zZXQoJnNtLT5wdGssIDAsIHNpemVvZihzbS0+cHRrKSk7Ci0gCW9zX21lbXNldCgmc20tPnRwdGssIDAsIHNpemVvZihzbS0+dHB0aykpOwotKwlvc19tZW1zZXQoJnNtLT5ndGssIDAsIHNpemVvZihzbS0+Z3RrKSk7Ci0rI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCi0rCW9zX21lbXNldCgmc20tPmlndGssIDAsIHNpemVvZihzbS0+aWd0aykpOwotKyNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLwotICNpZmRlZiBDT05GSUdfSUVFRTgwMjExUgotIAlvc19tZW1zZXQoc20tPnh4a2V5LCAwLCBzaXplb2Yoc20tPnh4a2V5KSk7Ci0gCW9zX21lbXNldChzbS0+cG1rX3IwLCAwLCBzaXplb2Yoc20tPnBta19yMCkpOwotQEAgLTI5NDksMjkgKzI5OTUsMTEgQEAgaW50IHdwYV93bm1zbGVlcF9pbnN0YWxsX2tleShzdHJ1Y3Qgd3BhX3NtICpzbSwgdTggc3ViZWxlbV9pZCwgdTggKmJ1ZikKLSAJCW9zX21lbXNldCgmZ2QsIDAsIHNpemVvZihnZCkpOwotICNpZmRlZiBDT05GSUdfSUVFRTgwMjExVwotIAl9IGVsc2UgaWYgKHN1YmVsZW1faWQgPT0gV05NX1NMRUVQX1NVQkVMRU1fSUdUSykgewotLQkJc3RydWN0IHdwYV9pZ3RrX2tkZSBpZ2Q7Ci0tCQl1MTYga2V5aWR4OwotLQotLQkJb3NfbWVtc2V0KCZpZ2QsIDAsIHNpemVvZihpZ2QpKTsKLS0JCWtleWxlbiA9IHdwYV9jaXBoZXJfa2V5X2xlbihzbS0+bWdtdF9ncm91cF9jaXBoZXIpOwotLQkJb3NfbWVtY3B5KGlnZC5rZXlpZCwgYnVmICsgMiwgMik7Ci0tCQlvc19tZW1jcHkoaWdkLnBuLCBidWYgKyA0LCA2KTsKLS0KLS0JCWtleWlkeCA9IFdQQV9HRVRfTEUxNihpZ2Qua2V5aWQpOwotLQkJb3NfbWVtY3B5KGlnZC5pZ3RrLCBidWYgKyAxMCwga2V5bGVuKTsKLS0KLS0JCXdwYV9oZXhkdW1wX2tleShNU0dfREVCVUcsICJJbnN0YWxsIElHVEsgKFdOTSBTTEVFUCkiLAotLQkJCQlpZ2QuaWd0aywga2V5bGVuKTsKLS0JCWlmICh3cGFfc21fc2V0X2tleShzbSwgd3BhX2NpcGhlcl90b19hbGcoc20tPm1nbXRfZ3JvdXBfY2lwaGVyKSwKLS0JCQkJICAgYnJvYWRjYXN0X2V0aGVyX2FkZHIsCi0tCQkJCSAgIGtleWlkeCwgMCwgaWdkLnBuLCBzaXplb2YoaWdkLnBuKSwKLS0JCQkJICAgaWdkLmlndGssIGtleWxlbikgPCAwKSB7Ci0tCQkJd3BhX3ByaW50ZihNU0dfREVCVUcsICJGYWlsZWQgdG8gaW5zdGFsbCB0aGUgSUdUSyBpbiAiCi0tCQkJCSAgICJXTk0gbW9kZSIpOwotLQkJCW9zX21lbXNldCgmaWdkLCAwLCBzaXplb2YoaWdkKSk7Ci0rCQljb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICppZ3RrOwotKwotKwkJaWd0ayA9IChjb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICopIChidWYgKyAyKTsKLSsJCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc20sIGlndGspIDwgMCkKLSAJCQlyZXR1cm4gLTE7Ci0tCQl9Ci0tCQlvc19tZW1zZXQoJmlnZCwgMCwgc2l6ZW9mKGlnZCkpOwotICNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLwotIAl9IGVsc2UgewotIAkJd3BhX3ByaW50ZihNU0dfREVCVUcsICJVbmtub3duIGVsZW1lbnQgaWQiKTsKLWRpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhX2kuaCBiL3NyYy9yc25fc3VwcC93cGFfaS5oCi1pbmRleCBmNjUzYmE2Li5hZmM5ZTM3IDEwMDY0NAotLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKLSsrKyBiL3NyYy9yc25fc3VwcC93cGFfaS5oCi1AQCAtMzEsNiArMzEsMTAgQEAgc3RydWN0IHdwYV9zbSB7Ci0gCXU4IHJ4X3JlcGxheV9jb3VudGVyW1dQQV9SRVBMQVlfQ09VTlRFUl9MRU5dOwotIAlpbnQgcnhfcmVwbGF5X2NvdW50ZXJfc2V0OwotIAl1OCByZXF1ZXN0X2NvdW50ZXJbV1BBX1JFUExBWV9DT1VOVEVSX0xFTl07Ci0rCXN0cnVjdCB3cGFfZ3RrIGd0azsKLSsjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKLSsJc3RydWN0IHdwYV9pZ3RrIGlndGs7Ci0rI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCi0gCi0gCXN0cnVjdCBlYXBvbF9zbSAqZWFwb2w7IC8qIEVBUE9MIHN0YXRlIG1hY2hpbmUgZnJvbSB1cHBlciBsZXZlbCBjb2RlICovCi0gCi0tLSAKLTIuNy40Ci0KLUZyb20gODI4MDI5NGU3NDg0NmVhMzQyMzg5YTBjZDE3MjE1MDUwZmE1YWZlOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+Ci1EYXRlOiBTdW4sIDEgT2N0IDIwMTcgMTI6MTI6MjQgKzAzMDAKLVN1YmplY3Q6IFtQQVRDSCAzLzhdIEV4dGVuZCBwcm90ZWN0aW9uIG9mIEdUSy9JR1RLIHJlaW5zdGFsbGF0aW9uIG9mIFdOTS1TbGVlcAotIE1vZGUgY2FzZXMKLQotVGhpcyBleHRlbmRzIHRoZSBwcm90ZWN0aW9uIHRvIHRyYWNrIGxhc3QgY29uZmlndXJlZCBHVEsvSUdUSyB2YWx1ZQotc2VwYXJhdGVseSBmcm9tIEVBUE9MLUtleSBmcmFtZXMgYW5kIFdOTS1TbGVlcCBNb2RlIGZyYW1lcyB0byBjb3ZlciBhCi1jb3JuZXIgY2FzZSB3aGVyZSB0aGVzZSB0d28gZGlmZmVyZW50IG1lY2hhbmlzbXMgbWF5IGdldCB1c2VkIHdoZW4gdGhlCi1HVEsvSUdUSyBoYXMgY2hhbmdlZCBhbmQgdHJhY2tpbmcgYSBzaW5nbGUgdmFsdWUgaXMgbm90IHN1ZmZpY2llbnQgdG8KLWRldGVjdCBhIHBvc3NpYmxlIGtleSByZWNvbmZpZ3VyYXRpb24uCi0KLVNpZ25lZC1vZmYtYnk6IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+Ci0tLS0KLSBzcmMvcnNuX3N1cHAvd3BhLmMgICB8IDUzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KLSBzcmMvcnNuX3N1cHAvd3BhX2kuaCB8ICAyICsrCi0gMiBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9yc25fc3VwcC93cGEuYyBiL3NyYy9yc25fc3VwcC93cGEuYwotaW5kZXggOTViZDdiZS4uN2EyYzY4ZCAxMDA2NDQKLS0tLSBhL3NyYy9yc25fc3VwcC93cGEuYwotKysrIGIvc3JjL3Jzbl9zdXBwL3dwYS5jCi1AQCAtNzA5LDE0ICs3MDksMTcgQEAgc3RydWN0IHdwYV9ndGtfZGF0YSB7Ci0gCi0gc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKLSAJCQkJICAgICAgY29uc3Qgc3RydWN0IHdwYV9ndGtfZGF0YSAqZ2QsCi0tCQkJCSAgICAgIGNvbnN0IHU4ICprZXlfcnNjKQotKwkJCQkgICAgICBjb25zdCB1OCAqa2V5X3JzYywgaW50IHdubV9zbGVlcCkKLSB7Ci0gCWNvbnN0IHU4ICpfZ3RrID0gZ2QtPmd0azsKLSAJdTggZ3RrX2J1ZlszMl07Ci0gCi0gCS8qIERldGVjdCBwb3NzaWJsZSBrZXkgcmVpbnN0YWxsYXRpb24gKi8KLS0JaWYgKHNtLT5ndGsuZ3RrX2xlbiA9PSAoc2l6ZV90KSBnZC0+Z3RrX2xlbiAmJgotLQkgICAgb3NfbWVtY21wKHNtLT5ndGsuZ3RrLCBnZC0+Z3RrLCBzbS0+Z3RrLmd0a19sZW4pID09IDApIHsKLSsJaWYgKChzbS0+Z3RrLmd0a19sZW4gPT0gKHNpemVfdCkgZ2QtPmd0a19sZW4gJiYKLSsJICAgICBvc19tZW1jbXAoc20tPmd0ay5ndGssIGdkLT5ndGssIHNtLT5ndGsuZ3RrX2xlbikgPT0gMCkgfHwKLSsJICAgIChzbS0+Z3RrX3dubV9zbGVlcC5ndGtfbGVuID09IChzaXplX3QpIGdkLT5ndGtfbGVuICYmCi0rCSAgICAgb3NfbWVtY21wKHNtLT5ndGtfd25tX3NsZWVwLmd0aywgZ2QtPmd0aywKLSsJCSAgICAgICBzbS0+Z3RrX3dubV9zbGVlcC5ndGtfbGVuKSA9PSAwKSkgewotIAkJd3BhX2RiZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfREVCVUcsCi0gCQkJIldQQTogTm90IHJlaW5zdGFsbGluZyBhbHJlYWR5IGluLXVzZSBHVEsgdG8gdGhlIGRyaXZlciAoa2V5aWR4PSVkIHR4PSVkIGxlbj0lZCkiLAotIAkJCWdkLT5rZXlpZHgsIGdkLT50eCwgZ2QtPmd0a19sZW4pOwotQEAgLTc1Nyw4ICs3NjAsMTQgQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKLSAJfQotIAlvc19tZW1zZXQoZ3RrX2J1ZiwgMCwgc2l6ZW9mKGd0a19idWYpKTsKLSAKLS0Jc20tPmd0ay5ndGtfbGVuID0gZ2QtPmd0a19sZW47Ci0tCW9zX21lbWNweShzbS0+Z3RrLmd0aywgZ2QtPmd0aywgc20tPmd0ay5ndGtfbGVuKTsKLSsJaWYgKHdubV9zbGVlcCkgewotKwkJc20tPmd0a193bm1fc2xlZXAuZ3RrX2xlbiA9IGdkLT5ndGtfbGVuOwotKwkJb3NfbWVtY3B5KHNtLT5ndGtfd25tX3NsZWVwLmd0aywgZ2QtPmd0aywKLSsJCQkgIHNtLT5ndGtfd25tX3NsZWVwLmd0a19sZW4pOwotKwl9IGVsc2UgewotKwkJc20tPmd0ay5ndGtfbGVuID0gZ2QtPmd0a19sZW47Ci0rCQlvc19tZW1jcHkoc20tPmd0ay5ndGssIGdkLT5ndGssIHNtLT5ndGsuZ3RrX2xlbik7Ci0rCX0KLSAKLSAJcmV0dXJuIDA7Ci0gfQotQEAgLTg1Miw3ICs4NjEsNyBAQCBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X3BhaXJ3aXNlX2d0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKLSAJICAgICh3cGFfc3VwcGxpY2FudF9jaGVja19ncm91cF9jaXBoZXIoc20sIHNtLT5ncm91cF9jaXBoZXIsCi0gCQkJCQkgICAgICAgZ3RrX2xlbiwgZ3RrX2xlbiwKLSAJCQkJCSAgICAgICAmZ2Qua2V5X3JzY19sZW4sICZnZC5hbGcpIHx8Ci0tCSAgICAgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc20sICZnZCwga2V5X3JzYykpKSB7Ci0rCSAgICAgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc20sICZnZCwga2V5X3JzYywgMCkpKSB7Ci0gCQl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKLSAJCQkiUlNOOiBGYWlsZWQgdG8gaW5zdGFsbCBHVEsiKTsKLSAJCW9zX21lbXNldCgmZ2QsIDAsIHNpemVvZihnZCkpOwotQEAgLTg2OCwxNCArODc3LDE4IEBAIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfcGFpcndpc2VfZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAotIAotICNpZmRlZiBDT05GSUdfSUVFRTgwMjExVwotIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAotLQkJCQkgICAgICAgY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqaWd0aykKLSsJCQkJICAgICAgIGNvbnN0IHN0cnVjdCB3cGFfaWd0a19rZGUgKmlndGssCi0rCQkJCSAgICAgICBpbnQgd25tX3NsZWVwKQotIHsKLSAJc2l6ZV90IGxlbiA9IHdwYV9jaXBoZXJfa2V5X2xlbihzbS0+bWdtdF9ncm91cF9jaXBoZXIpOwotIAl1MTYga2V5aWR4ID0gV1BBX0dFVF9MRTE2KGlndGstPmtleWlkKTsKLSAKLSAJLyogRGV0ZWN0IHBvc3NpYmxlIGtleSByZWluc3RhbGxhdGlvbiAqLwotLQlpZiAoc20tPmlndGsuaWd0a19sZW4gPT0gbGVuICYmCi0tCSAgICBvc19tZW1jbXAoc20tPmlndGsuaWd0aywgaWd0ay0+aWd0aywgc20tPmlndGsuaWd0a19sZW4pID09IDApIHsKLSsJaWYgKChzbS0+aWd0ay5pZ3RrX2xlbiA9PSBsZW4gJiYKLSsJICAgICBvc19tZW1jbXAoc20tPmlndGsuaWd0aywgaWd0ay0+aWd0aywgc20tPmlndGsuaWd0a19sZW4pID09IDApIHx8Ci0rCSAgICAoc20tPmlndGtfd25tX3NsZWVwLmlndGtfbGVuID09IGxlbiAmJgotKwkgICAgIG9zX21lbWNtcChzbS0+aWd0a193bm1fc2xlZXAuaWd0aywgaWd0ay0+aWd0aywKLSsJCSAgICAgICBzbS0+aWd0a193bm1fc2xlZXAuaWd0a19sZW4pID09IDApKSB7Ci0gCQl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKLSAJCQkiV1BBOiBOb3QgcmVpbnN0YWxsaW5nIGFscmVhZHkgaW4tdXNlIElHVEsgdG8gdGhlIGRyaXZlciAoa2V5aWR4PSVkKSIsCi0gCQkJa2V5aWR4KTsKLUBAIC05MDAsOCArOTEzLDE0IEBAIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAotIAkJcmV0dXJuIC0xOwotIAl9Ci0gCi0tCXNtLT5pZ3RrLmlndGtfbGVuID0gbGVuOwotLQlvc19tZW1jcHkoc20tPmlndGsuaWd0aywgaWd0ay0+aWd0aywgc20tPmlndGsuaWd0a19sZW4pOwotKwlpZiAod25tX3NsZWVwKSB7Ci0rCQlzbS0+aWd0a193bm1fc2xlZXAuaWd0a19sZW4gPSBsZW47Ci0rCQlvc19tZW1jcHkoc20tPmlndGtfd25tX3NsZWVwLmlndGssIGlndGstPmlndGssCi0rCQkJICBzbS0+aWd0a193bm1fc2xlZXAuaWd0a19sZW4pOwotKwl9IGVsc2UgewotKwkJc20tPmlndGsuaWd0a19sZW4gPSBsZW47Ci0rCQlvc19tZW1jcHkoc20tPmlndGsuaWd0aywgaWd0ay0+aWd0aywgc20tPmlndGsuaWd0a19sZW4pOwotKwl9Ci0gCi0gCXJldHVybiAwOwotIH0KLUBAIC05MjQsNyArOTQzLDcgQEAgc3RhdGljIGludCBpZWVlODAyMTF3X3NldF9rZXlzKHN0cnVjdCB3cGFfc20gKnNtLAotIAkJCXJldHVybiAtMTsKLSAKLSAJCWlndGsgPSAoY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqKSBpZS0+aWd0azsKLS0JCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc20sIGlndGspIDwgMCkKLSsJCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc20sIGlndGssIDApIDwgMCkKLSAJCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLUBAIC0xNTc0LDcgKzE1OTMsNyBAQCBzdGF0aWMgdm9pZCB3cGFfc3VwcGxpY2FudF9wcm9jZXNzXzFfb2ZfMihzdHJ1Y3Qgd3BhX3NtICpzbSwKLSAJaWYgKHdwYV9zdXBwbGljYW50X3JzY19yZWxheGF0aW9uKHNtLCBrZXktPmtleV9yc2MpKQotIAkJa2V5X3JzYyA9IG51bGxfcnNjOwotIAotLQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc20sICZnZCwga2V5X3JzYykgfHwKLSsJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHNtLCAmZ2QsIGtleV9yc2MsIDApIHx8Ci0gCSAgICB3cGFfc3VwcGxpY2FudF9zZW5kXzJfb2ZfMihzbSwga2V5LCB2ZXIsIGtleV9pbmZvKSA8IDApCi0gCQlnb3RvIGZhaWxlZDsKLSAJb3NfbWVtc2V0KCZnZCwgMCwgc2l6ZW9mKGdkKSk7Ci1AQCAtMjM4Niw4ICsyNDA1LDEwIEBAIHZvaWQgd3BhX3NtX25vdGlmeV9hc3NvYyhzdHJ1Y3Qgd3BhX3NtICpzbSwgY29uc3QgdTggKmJzc2lkKQotIAkJc20tPnRwdGtfc2V0ID0gMDsKLSAJCW9zX21lbXNldCgmc20tPnRwdGssIDAsIHNpemVvZihzbS0+dHB0aykpOwotIAkJb3NfbWVtc2V0KCZzbS0+Z3RrLCAwLCBzaXplb2Yoc20tPmd0aykpOwotKwkJb3NfbWVtc2V0KCZzbS0+Z3RrX3dubV9zbGVlcCwgMCwgc2l6ZW9mKHNtLT5ndGtfd25tX3NsZWVwKSk7Ci0gI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCi0gCQlvc19tZW1zZXQoJnNtLT5pZ3RrLCAwLCBzaXplb2Yoc20tPmlndGspKTsKLSsJCW9zX21lbXNldCgmc20tPmlndGtfd25tX3NsZWVwLCAwLCBzaXplb2Yoc20tPmlndGtfd25tX3NsZWVwKSk7Ci0gI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCi0gCX0KLSAKLUBAIC0yOTIwLDggKzI5NDEsMTAgQEAgdm9pZCB3cGFfc21fZHJvcF9zYShzdHJ1Y3Qgd3BhX3NtICpzbSkKLSAJb3NfbWVtc2V0KCZzbS0+cHRrLCAwLCBzaXplb2Yoc20tPnB0aykpOwotIAlvc19tZW1zZXQoJnNtLT50cHRrLCAwLCBzaXplb2Yoc20tPnRwdGspKTsKLSAJb3NfbWVtc2V0KCZzbS0+Z3RrLCAwLCBzaXplb2Yoc20tPmd0aykpOwotKwlvc19tZW1zZXQoJnNtLT5ndGtfd25tX3NsZWVwLCAwLCBzaXplb2Yoc20tPmd0a193bm1fc2xlZXApKTsKLSAjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKLSAJb3NfbWVtc2V0KCZzbS0+aWd0aywgMCwgc2l6ZW9mKHNtLT5pZ3RrKSk7Ci0rCW9zX21lbXNldCgmc20tPmlndGtfd25tX3NsZWVwLCAwLCBzaXplb2Yoc20tPmlndGtfd25tX3NsZWVwKSk7Ci0gI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCi0gI2lmZGVmIENPTkZJR19JRUVFODAyMTFSCi0gCW9zX21lbXNldChzbS0+eHhrZXksIDAsIHNpemVvZihzbS0+eHhrZXkpKTsKLUBAIC0yOTg2LDcgKzMwMDksNyBAQCBpbnQgd3BhX3dubXNsZWVwX2luc3RhbGxfa2V5KHN0cnVjdCB3cGFfc20gKnNtLCB1OCBzdWJlbGVtX2lkLCB1OCAqYnVmKQotIAotIAkJd3BhX2hleGR1bXBfa2V5KE1TR19ERUJVRywgIkluc3RhbGwgR1RLIChXTk0gU0xFRVApIiwKLSAJCQkJZ2QuZ3RrLCBnZC5ndGtfbGVuKTsKLS0JCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzbSwgJmdkLCBrZXlfcnNjKSkgewotKwkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHNtLCAmZ2QsIGtleV9yc2MsIDEpKSB7Ci0gCQkJb3NfbWVtc2V0KCZnZCwgMCwgc2l6ZW9mKGdkKSk7Ci0gCQkJd3BhX3ByaW50ZihNU0dfREVCVUcsICJGYWlsZWQgdG8gaW5zdGFsbCB0aGUgR1RLIGluICIKLSAJCQkJICAgIldOTSBtb2RlIik7Ci1AQCAtMjk5OCw3ICszMDIxLDcgQEAgaW50IHdwYV93bm1zbGVlcF9pbnN0YWxsX2tleShzdHJ1Y3Qgd3BhX3NtICpzbSwgdTggc3ViZWxlbV9pZCwgdTggKmJ1ZikKLSAJCWNvbnN0IHN0cnVjdCB3cGFfaWd0a19rZGUgKmlndGs7Ci0gCi0gCQlpZ3RrID0gKGNvbnN0IHN0cnVjdCB3cGFfaWd0a19rZGUgKikgKGJ1ZiArIDIpOwotLQkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzbSwgaWd0aykgPCAwKQotKwkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzbSwgaWd0aywgMSkgPCAwKQotIAkJCXJldHVybiAtMTsKLSAjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KLSAJfSBlbHNlIHsKLWRpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhX2kuaCBiL3NyYy9yc25fc3VwcC93cGFfaS5oCi1pbmRleCBhZmM5ZTM3Li45YTU0NjMxIDEwMDY0NAotLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKLSsrKyBiL3NyYy9yc25fc3VwcC93cGFfaS5oCi1AQCAtMzIsOCArMzIsMTAgQEAgc3RydWN0IHdwYV9zbSB7Ci0gCWludCByeF9yZXBsYXlfY291bnRlcl9zZXQ7Ci0gCXU4IHJlcXVlc3RfY291bnRlcltXUEFfUkVQTEFZX0NPVU5URVJfTEVOXTsKLSAJc3RydWN0IHdwYV9ndGsgZ3RrOwotKwlzdHJ1Y3Qgd3BhX2d0ayBndGtfd25tX3NsZWVwOwotICNpZmRlZiBDT05GSUdfSUVFRTgwMjExVwotIAlzdHJ1Y3Qgd3BhX2lndGsgaWd0azsKLSsJc3RydWN0IHdwYV9pZ3RrIGlndGtfd25tX3NsZWVwOwotICNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLwotIAotIAlzdHJ1Y3QgZWFwb2xfc20gKmVhcG9sOyAvKiBFQVBPTCBzdGF0ZSBtYWNoaW5lIGZyb20gdXBwZXIgbGV2ZWwgY29kZSAqLwotLS0gCi0yLjcuNAotCi1Gcm9tIDhmODJiYzk0ZTg2OTdhOWQ0N2ZhODc3NGRmZGFhZWRlMTA4NDkxMmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXRoeSBWYW5ob2VmIDxNYXRoeS5WYW5ob2VmQGNzLmt1bGV1dmVuLmJlPgotRGF0ZTogRnJpLCAyOSBTZXAgMjAxNyAwNDoyMjo1MSArMDIwMAotU3ViamVjdDogW1BBVENIIDQvOF0gUHJldmVudCBpbnN0YWxsYXRpb24gb2YgYW4gYWxsLXplcm8gVEsKLQotUHJvcGVybHkgdHJhY2sgd2hldGhlciBhIFBUSyBoYXMgYWxyZWFkeSBiZWVuIGluc3RhbGxlZCB0byB0aGUgZHJpdmVyCi1hbmQgdGhlIFRLIHBhcnQgY2xlYXJlZCBmcm9tIG1lbW9yeS4gVGhpcyBwcmV2ZW50cyBhbiBhdHRhY2tlciBmcm9tCi10cnlpbmcgdG8gdHJpY2sgdGhlIGNsaWVudCBpbnRvIGluc3RhbGxpbmcgYW4gYWxsLXplcm8gVEsuCi0KLVRoaXMgZml4ZXMgdGhlIGVhcmxpZXIgZml4IGluIGNvbW1pdAotYWQwMGQ2NGU3ZDg4MjdiM2NlYmQ2NjVhMGNlYjA4YWRhYmYxNWUxZSAoJ0ZpeCBUSyBjb25maWd1cmF0aW9uIHRvIHRoZQotZHJpdmVyIGluIEVBUE9MLUtleSAzLzQgcmV0cnkgY2FzZScpIHdoaWNoIGRpZCBub3QgdGFrZSBpbnRvIGFjY291bnQKLXBvc3NpYmlsaXR5IG9mIGFuIGV4dHJhIG1lc3NhZ2UgMS80IHNob3dpbmcgdXAgYmV0d2VlbiByZXRyaWVzIG9mCi1tZXNzYWdlIDMvNC4KLQotU2lnbmVkLW9mZi1ieTogTWF0aHkgVmFuaG9lZiA8TWF0aHkuVmFuaG9lZkBjcy5rdWxldXZlbi5iZT4KLS0tLQotIHNyYy9jb21tb24vd3BhX2NvbW1vbi5oIHwgMSArCi0gc3JjL3Jzbl9zdXBwL3dwYS5jICAgICAgfCA1ICsrLS0tCi0gc3JjL3Jzbl9zdXBwL3dwYV9pLmggICAgfCAxIC0KLSAzIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vd3BhX2NvbW1vbi5oIGIvc3JjL2NvbW1vbi93cGFfY29tbW9uLmgKLWluZGV4IGQyMDAyODUuLjEwMjFjY2IgMTAwNjQ0Ci0tLS0gYS9zcmMvY29tbW9uL3dwYV9jb21tb24uaAotKysrIGIvc3JjL2NvbW1vbi93cGFfY29tbW9uLmgKLUBAIC0yMTUsNiArMjE1LDcgQEAgc3RydWN0IHdwYV9wdGsgewotIAlzaXplX3Qga2NrX2xlbjsKLSAJc2l6ZV90IGtla19sZW47Ci0gCXNpemVfdCB0a19sZW47Ci0rCWludCBpbnN0YWxsZWQ7IC8qIDEgaWYga2V5IGhhcyBhbHJlYWR5IGJlZW4gaW5zdGFsbGVkIHRvIGRyaXZlciAqLwotIH07Ci0gCi0gc3RydWN0IHdwYV9ndGsgewotZGlmZiAtLWdpdCBhL3NyYy9yc25fc3VwcC93cGEuYyBiL3NyYy9yc25fc3VwcC93cGEuYwotaW5kZXggN2EyYzY4ZC4uMDU1MGE0MSAxMDA2NDQKLS0tLSBhL3NyYy9yc25fc3VwcC93cGEuYwotKysrIGIvc3JjL3Jzbl9zdXBwL3dwYS5jCi1AQCAtNTEwLDcgKzUxMCw2IEBAIHN0YXRpYyB2b2lkIHdwYV9zdXBwbGljYW50X3Byb2Nlc3NfMV9vZl80KHN0cnVjdCB3cGFfc20gKnNtLAotIAkJb3NfbWVtc2V0KGJ1ZiwgMCwgc2l6ZW9mKGJ1ZikpOwotIAl9Ci0gCXNtLT50cHRrX3NldCA9IDE7Ci0tCXNtLT50a190b19zZXQgPSAxOwotIAotIAlrZGUgPSBzbS0+YXNzb2Nfd3BhX2llOwotIAlrZGVfbGVuID0gc20tPmFzc29jX3dwYV9pZV9sZW47Ci1AQCAtNjE1LDcgKzYxNCw3IEBAIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9wdGsoc3RydWN0IHdwYV9zbSAqc20sCi0gCWVudW0gd3BhX2FsZyBhbGc7Ci0gCWNvbnN0IHU4ICprZXlfcnNjOwotIAotLQlpZiAoIXNtLT50a190b19zZXQpIHsKLSsJaWYgKHNtLT5wdGsuaW5zdGFsbGVkKSB7Ci0gCQl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKLSAJCQkiV1BBOiBEbyBub3QgcmUtaW5zdGFsbCBzYW1lIFBUSyB0byB0aGUgZHJpdmVyIik7Ci0gCQlyZXR1cm4gMDsKLUBAIC02NTksNyArNjU4LDcgQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX3B0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKLSAKLSAJLyogVEsgaXMgbm90IG5lZWRlZCBhbnltb3JlIGluIHN1cHBsaWNhbnQgKi8KLSAJb3NfbWVtc2V0KHNtLT5wdGsudGssIDAsIFdQQV9US19NQVhfTEVOKTsKLS0Jc20tPnRrX3RvX3NldCA9IDA7Ci0rCXNtLT5wdGsuaW5zdGFsbGVkID0gMTsKLSAKLSAJaWYgKHNtLT53cGFfcHRrX3Jla2V5KSB7Ci0gCQllbG9vcF9jYW5jZWxfdGltZW91dCh3cGFfc21fcmVrZXlfcHRrLCBzbSwgTlVMTCk7Ci1kaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYV9pLmggYi9zcmMvcnNuX3N1cHAvd3BhX2kuaAotaW5kZXggOWE1NDYzMS4uNDFmMzcxZiAxMDA2NDQKLS0tLSBhL3NyYy9yc25fc3VwcC93cGFfaS5oCi0rKysgYi9zcmMvcnNuX3N1cHAvd3BhX2kuaAotQEAgLTI0LDcgKzI0LDYgQEAgc3RydWN0IHdwYV9zbSB7Ci0gCXN0cnVjdCB3cGFfcHRrIHB0aywgdHB0azsKLSAJaW50IHB0a19zZXQsIHRwdGtfc2V0OwotIAl1bnNpZ25lZCBpbnQgbXNnXzNfb2ZfNF9vazoxOwotLQl1bnNpZ25lZCBpbnQgdGtfdG9fc2V0OjE7Ci0gCXU4IHNub25jZVtXUEFfTk9OQ0VfTEVOXTsKLSAJdTggYW5vbmNlW1dQQV9OT05DRV9MRU5dOyAvKiBBTm9uY2UgZnJvbSB0aGUgbGFzdCAxLzQgbXNnICovCi0gCWludCByZW5ld19zbm9uY2U7Ci0tLSAKLTIuNy40Ci0KLUZyb20gMTJmYWMwOWI0MzdhMWRjOGEwZjI1M2UyNjU5MzRhOGFhZjRkMmY4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+Ci1EYXRlOiBTdW4sIDEgT2N0IDIwMTcgMTI6MzI6NTcgKzAzMDAKLVN1YmplY3Q6IFtQQVRDSCA1LzhdIEZpeCBQVEsgcmVrZXlpbmcgdG8gZ2VuZXJhdGUgYSBuZXcgQU5vbmNlCi0KLVRoZSBBdXRoZW50aWNhdG9yIHN0YXRlIG1hY2hpbmUgcGF0aCBmb3IgUFRLIHJla2V5aW5nIGVuZGVkIHVwIGJ5cGFzc2luZwotdGhlIEFVVEhFTlRJQ0FUSU9OMiBzdGF0ZSB3aGVyZSBhIG5ldyBBTm9uY2UgaXMgZ2VuZXJhdGVkIHdoZW4gZ29pbmcKLWRpcmVjdGx5IHRvIHRoZSBQVEtTVEFSVCBzdGF0ZSBzaW5jZSB0aGVyZSBpcyBubyBuZWVkIHRvIHRyeSB0bwotZGV0ZXJtaW5lIHRoZSBQTUsgYWdhaW4gaW4gc3VjaCBhIGNhc2UuIFRoaXMgaXMgZmFyIGZyb20gaWRlYWwgc2luY2UgdGhlCi1uZXcgUFRLIHdvdWxkIGRlcGVuZCBvbiBhIG5ldyBub25jZSBvbmx5IGZyb20gdGhlIHN1cHBsaWNhbnQuCi0KLUZpeCB0aGlzIGJ5IGdlbmVyYXRpbmcgYSBuZXcgQU5vbmNlIHdoZW4gbW92aW5nIHRvIHRoZSBQVEtTVEFSVCBzdGF0ZQotZm9yIHRoZSBwdXJwb3NlIG9mIHN0YXJ0aW5nIG5ldyA0LXdheSBoYW5kc2hha2UgdG8gcmVrZXkgUFRLLgotCi1TaWduZWQtb2ZmLWJ5OiBKb3VuaSBNYWxpbmVuIDxqQHcxLmZpPgotLS0tCi0gc3JjL2FwL3dwYV9hdXRoLmMgfCAyNCArKysrKysrKysrKysrKysrKysrKystLS0KLSAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9hcC93cGFfYXV0aC5jIGIvc3JjL2FwL3dwYV9hdXRoLmMKLWluZGV4IDcwNzk3MWQuLmJmMTBjYzEgMTAwNjQ0Ci0tLS0gYS9zcmMvYXAvd3BhX2F1dGguYwotKysrIGIvc3JjL2FwL3dwYV9hdXRoLmMKLUBAIC0xOTAxLDYgKzE5MDEsMjEgQEAgU01fU1RBVEUoV1BBX1BUSywgQVVUSEVOVElDQVRJT04yKQotIH0KLSAKLSAKLStzdGF0aWMgaW50IHdwYV9hdXRoX3NtX3B0a191cGRhdGUoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSkKLSt7Ci0rCWlmIChyYW5kb21fZ2V0X2J5dGVzKHNtLT5BTm9uY2UsIFdQQV9OT05DRV9MRU4pKSB7Ci0rCQl3cGFfcHJpbnRmKE1TR19FUlJPUiwKLSsJCQkgICAiV1BBOiBGYWlsZWQgdG8gZ2V0IHJhbmRvbSBkYXRhIGZvciBBTm9uY2UiKTsKLSsJCXNtLT5EaXNjb25uZWN0ID0gVFJVRTsKLSsJCXJldHVybiAtMTsKLSsJfQotKwl3cGFfaGV4ZHVtcChNU0dfREVCVUcsICJXUEE6IEFzc2lnbiBuZXcgQU5vbmNlIiwgc20tPkFOb25jZSwKLSsJCSAgICBXUEFfTk9OQ0VfTEVOKTsKLSsJc20tPlRpbWVvdXRDdHIgPSAwOwotKwlyZXR1cm4gMDsKLSt9Ci0rCi0rCi0gU01fU1RBVEUoV1BBX1BUSywgSU5JVFBNSykKLSB7Ci0gCXU4IG1za1syICogUE1LX0xFTl07Ci1AQCAtMjQ1OCw5ICsyNDczLDEyIEBAIFNNX1NURVAoV1BBX1BUSykKLSAJCVNNX0VOVEVSKFdQQV9QVEssIEFVVEhFTlRJQ0FUSU9OKTsKLSAJZWxzZSBpZiAoc20tPlJlQXV0aGVudGljYXRpb25SZXF1ZXN0KQotIAkJU01fRU5URVIoV1BBX1BUSywgQVVUSEVOVElDQVRJT04yKTsKLS0JZWxzZSBpZiAoc20tPlBUS1JlcXVlc3QpCi0tCQlTTV9FTlRFUihXUEFfUFRLLCBQVEtTVEFSVCk7Ci0tCWVsc2Ugc3dpdGNoIChzbS0+d3BhX3B0a19zdGF0ZSkgewotKwllbHNlIGlmIChzbS0+UFRLUmVxdWVzdCkgewotKwkJaWYgKHdwYV9hdXRoX3NtX3B0a191cGRhdGUoc20pIDwgMCkKLSsJCQlTTV9FTlRFUihXUEFfUFRLLCBESVNDT05ORUNURUQpOwotKwkJZWxzZQotKwkJCVNNX0VOVEVSKFdQQV9QVEssIFBUS1NUQVJUKTsKLSsJfSBlbHNlIHN3aXRjaCAoc20tPndwYV9wdGtfc3RhdGUpIHsKLSAJY2FzZSBXUEFfUFRLX0lOSVRJQUxJWkU6Ci0gCQlicmVhazsKLSAJY2FzZSBXUEFfUFRLX0RJU0NPTk5FQ1Q6Ci0tLSAKLTIuNy40Ci0KLUZyb20gNmM0YmVkNGY0N2QxOTYwZWMwNDk4MWE5ZDUwZTUwNzZhZWE1MjIzZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+Ci1EYXRlOiBGcmksIDIyIFNlcCAyMDE3IDExOjAzOjE1ICswMzAwCi1TdWJqZWN0OiBbUEFUQ0ggNi84XSBURExTOiBSZWplY3QgVFBLLVRLIHJlY29uZmlndXJhdGlvbgotCi1EbyBub3QgdHJ5IHRvIHJlY29uZmlndXJlIHRoZSBzYW1lIFRQSy1USyB0byB0aGUgZHJpdmVyIGFmdGVyIGl0IGhhcwotYmVlbiBzdWNjZXNzZnVsbHkgY29uZmlndXJlZC4gVGhpcyBpcyBhbiBleHBsaWNpdCBjaGVjayB0byBhdm9pZCBpc3N1ZXMKLXJlbGF0ZWQgdG8gcmVzZXR0aW5nIHRoZSBUWC9SWCBwYWNrZXQgbnVtYmVyLiBUaGVyZSB3YXMgYWxyZWFkeSBhIGNoZWNrCi1mb3IgdGhpcyBmb3IgVFBLIE0yIChyZXRyaWVzIG9mIHRoYXQgbWVzc2FnZSBhcmUgaWdub3JlZCBjb21wbGV0ZWx5KSwgc28KLXRoYXQgYmVoYXZpb3IgZG9lcyBub3QgZ2V0IG1vZGlmaWVkLgotCi1Gb3IgVFBLIE0zLCB0aGUgVFBLLVRLIGNvdWxkIGhhdmUgYmVlbiByZWNvbmZpZ3VyZWQsIGJ1dCB0aGF0IHdhcwotZm9sbG93ZWQgYnkgaW1tZWRpYXRlIHRlYXJkb3duIG9mIHRoZSBsaW5rIGR1ZSB0byBhbiBpc3N1ZSBpbiB1cGRhdGluZwotdGhlIFNUQSBlbnRyeS4gRnVydGhlcm1vcmUsIGZvciBURExTIHdpdGggYW55IHJlYWwgc2VjdXJpdHkgKGkuZS4sCi1pZ25vcmluZyBvcGVuL1dFUCksIHRoZSBUUEsgbWVzc2FnZSBleGNoYW5nZSBpcyBwcm90ZWN0ZWQgb24gdGhlIEFQIHBhdGgKLWFuZCBzaW1wbGUgcmVwbGF5IGF0dGFja3MgYXJlIG5vdCBmZWFzaWJsZS4KLQotQXMgYW4gYWRkaXRpb25hbCBjb3JuZXIgY2FzZSwgbWFrZSBzdXJlIHRoZSBsb2NhbCBub25jZSBnZXRzIHVwZGF0ZWQgaWYKLXRoZSBwZWVyIHVzZXMgYSB2ZXJ5IHVubGlrZWx5ICJyYW5kb20gbm9uY2UiIG9mIGFsbCB6ZXJvcy4KLQotU2lnbmVkLW9mZi1ieTogSm91bmkgTWFsaW5lbiA8akB3MS5maT4KLS0tLQotIHNyYy9yc25fc3VwcC90ZGxzLmMgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQotIDEgZmlsZSBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3RkbHMuYyBiL3NyYy9yc25fc3VwcC90ZGxzLmMKLWluZGV4IGU0MjQxNjguLjllYjk3MzggMTAwNjQ0Ci0tLS0gYS9zcmMvcnNuX3N1cHAvdGRscy5jCi0rKysgYi9zcmMvcnNuX3N1cHAvdGRscy5jCi1AQCAtMTEyLDYgKzExMiw3IEBAIHN0cnVjdCB3cGFfdGRsc19wZWVyIHsKLSAJCXU4IHRrWzE2XTsgLyogVFBLLVRLOyBhc3N1bWluZyBvbmx5IENDTVAgd2lsbCBiZSB1c2VkICovCi0gCX0gdHBrOwotIAlpbnQgdHBrX3NldDsKLSsJaW50IHRrX3NldDsgLyogVFBLLVRLIGNvbmZpZ3VyZWQgdG8gdGhlIGRyaXZlciAqLwotIAlpbnQgdHBrX3N1Y2Nlc3M7Ci0gCWludCB0cGtfaW5fcHJvZ3Jlc3M7Ci0gCi1AQCAtMTkyLDYgKzE5MywyMCBAQCBzdGF0aWMgaW50IHdwYV90ZGxzX3NldF9rZXkoc3RydWN0IHdwYV9zbSAqc20sIHN0cnVjdCB3cGFfdGRsc19wZWVyICpwZWVyKQotIAl1OCByc2NbNl07Ci0gCWVudW0gd3BhX2FsZyBhbGc7Ci0gCi0rCWlmIChwZWVyLT50a19zZXQpIHsKLSsJCS8qCi0rCQkgKiBUaGlzIHNhbWUgVFBLLVRLIGhhcyBhbHJlYWR5IGJlZW4gY29uZmlndXJlZCB0byB0aGUgZHJpdmVyCi0rCQkgKiBhbmQgdGhpcyBuZXcgY29uZmlndXJhdGlvbiBhdHRlbXB0IChsaWtlbHkgZHVlIHRvIGFuCi0rCQkgKiB1bmV4cGVjdGVkIHJldHJhbnNtaXR0ZWQgZnJhbWUpIHdvdWxkIHJlc3VsdCBpbiBjbGVhcmluZwotKwkJICogdGhlIFRYL1JYIHNlcXVlbmNlIG51bWJlciB3aGljaCBjYW4gYnJlYWsgc2VjdXJpdHksIHNvIG11c3QKLSsJCSAqIG5vdCBhbGxvdyB0aGF0IHRvIGhhcHBlbi4KLSsJCSAqLwotKwkJd3BhX3ByaW50ZihNU0dfSU5GTywgIlRETFM6IFRQSy1USyBmb3IgdGhlIHBlZXIgIiBNQUNTVFIKLSsJCQkgICAiIGhhcyBhbHJlYWR5IGJlZW4gY29uZmlndXJlZCB0byB0aGUgZHJpdmVyIC0gZG8gbm90IHJlY29uZmlndXJlIiwKLSsJCQkgICBNQUMyU1RSKHBlZXItPmFkZHIpKTsKLSsJCXJldHVybiAtMTsKLSsJfQotKwotIAlvc19tZW1zZXQocnNjLCAwLCA2KTsKLSAKLSAJc3dpdGNoIChwZWVyLT5jaXBoZXIpIHsKLUBAIC0yMDksMTIgKzIyNCwxNSBAQCBzdGF0aWMgaW50IHdwYV90ZGxzX3NldF9rZXkoc3RydWN0IHdwYV9zbSAqc20sIHN0cnVjdCB3cGFfdGRsc19wZWVyICpwZWVyKQotIAkJcmV0dXJuIC0xOwotIAl9Ci0gCi0rCXdwYV9wcmludGYoTVNHX0RFQlVHLCAiVERMUzogQ29uZmlndXJlIHBhaXJ3aXNlIGtleSBmb3IgcGVlciAiIE1BQ1NUUiwKLSsJCSAgIE1BQzJTVFIocGVlci0+YWRkcikpOwotIAlpZiAod3BhX3NtX3NldF9rZXkoc20sIGFsZywgcGVlci0+YWRkciwgLTEsIDEsCi0gCQkJICAgcnNjLCBzaXplb2YocnNjKSwgcGVlci0+dHBrLnRrLCBrZXlfbGVuKSA8IDApIHsKLSAJCXdwYV9wcmludGYoTVNHX1dBUk5JTkcsICJURExTOiBGYWlsZWQgdG8gc2V0IFRQSyB0byB0aGUgIgotIAkJCSAgICJkcml2ZXIiKTsKLSAJCXJldHVybiAtMTsKLSAJfQotKwlwZWVyLT50a19zZXQgPSAxOwotIAlyZXR1cm4gMDsKLSB9Ci0gCi1AQCAtNjk2LDcgKzcxNCw3IEBAIHN0YXRpYyB2b2lkIHdwYV90ZGxzX3BlZXJfY2xlYXIoc3RydWN0IHdwYV9zbSAqc20sIHN0cnVjdCB3cGFfdGRsc19wZWVyICpwZWVyKQotIAlwZWVyLT5jaXBoZXIgPSAwOwotIAlwZWVyLT5xb3NfaW5mbyA9IDA7Ci0gCXBlZXItPndtbV9jYXBhYmxlID0gMDsKLS0JcGVlci0+dHBrX3NldCA9IHBlZXItPnRwa19zdWNjZXNzID0gMDsKLSsJcGVlci0+dGtfc2V0ID0gcGVlci0+dHBrX3NldCA9IHBlZXItPnRwa19zdWNjZXNzID0gMDsKLSAJcGVlci0+Y2hhbl9zd2l0Y2hfZW5hYmxlZCA9IDA7Ci0gCW9zX21lbXNldCgmcGVlci0+dHBrLCAwLCBzaXplb2YocGVlci0+dHBrKSk7Ci0gCW9zX21lbXNldChwZWVyLT5pbm9uY2UsIDAsIFdQQV9OT05DRV9MRU4pOwotQEAgLTExNTksNiArMTE3Nyw3IEBAIHNraXBfcnNuaWU6Ci0gCQl3cGFfdGRsc19wZWVyX2ZyZWUoc20sIHBlZXIpOwotIAkJcmV0dXJuIC0xOwotIAl9Ci0rCXBlZXItPnRrX3NldCA9IDA7IC8qIEEgbmV3IG5vbmNlIHJlc3VsdHMgaW4gYSBuZXcgVEsgKi8KLSAJd3BhX2hleGR1bXAoTVNHX0RFQlVHLCAiVERMUzogSW5pdGlhdG9yIE5vbmNlIGZvciBUUEsgaGFuZHNoYWtlIiwKLSAJCSAgICBwZWVyLT5pbm9uY2UsIFdQQV9OT05DRV9MRU4pOwotIAlvc19tZW1jcHkoZnRpZS0+U25vbmNlLCBwZWVyLT5pbm9uY2UsIFdQQV9OT05DRV9MRU4pOwotQEAgLTE3NTEsNiArMTc3MCwxOSBAQCBzdGF0aWMgaW50IHdwYV90ZGxzX2FkZHNldF9wZWVyKHN0cnVjdCB3cGFfc20gKnNtLCBzdHJ1Y3Qgd3BhX3RkbHNfcGVlciAqcGVlciwKLSB9Ci0gCi0gCi0rc3RhdGljIGludCB0ZGxzX25vbmNlX3NldChjb25zdCB1OCAqbm9uY2UpCi0rewotKwlpbnQgaTsKLSsKLSsJZm9yIChpID0gMDsgaSA8IFdQQV9OT05DRV9MRU47IGkrKykgewotKwkJaWYgKG5vbmNlW2ldKQotKwkJCXJldHVybiAxOwotKwl9Ci0rCi0rCXJldHVybiAwOwotK30KLSsKLSsKLSBzdGF0aWMgaW50IHdwYV90ZGxzX3Byb2Nlc3NfdHBrX20xKHN0cnVjdCB3cGFfc20gKnNtLCBjb25zdCB1OCAqc3JjX2FkZHIsCi0gCQkJCSAgIGNvbnN0IHU4ICpidWYsIHNpemVfdCBsZW4pCi0gewotQEAgLTIwMDQsNyArMjAzNiw4IEBAIHNraXBfcnNuOgotIAlwZWVyLT5yc25pZV9pX2xlbiA9IGtkZS5yc25faWVfbGVuOwotIAlwZWVyLT5jaXBoZXIgPSBjaXBoZXI7Ci0gCi0tCWlmIChvc19tZW1jbXAocGVlci0+aW5vbmNlLCBmdGllLT5Tbm9uY2UsIFdQQV9OT05DRV9MRU4pICE9IDApIHsKLSsJaWYgKG9zX21lbWNtcChwZWVyLT5pbm9uY2UsIGZ0aWUtPlNub25jZSwgV1BBX05PTkNFX0xFTikgIT0gMCB8fAotKwkgICAgIXRkbHNfbm9uY2Vfc2V0KHBlZXItPmlub25jZSkpIHsKLSAJCS8qCi0gCQkgKiBUaGVyZSBpcyBubyBwb2ludCBpbiB1cGRhdGluZyB0aGUgUk5vbmNlIGZvciBldmVyeSBvYnRhaW5lZAotIAkJICogVFBLIE0xIGZyYW1lIChlLmcuLCByZXRyYW5zbWlzc2lvbiBkdWUgdG8gdGltZW91dCkgd2l0aCB0aGUKLUBAIC0yMDIwLDYgKzIwNTMsNyBAQCBza2lwX3JzbjoKLSAJCQkJIlRETFM6IEZhaWxlZCB0byBnZXQgcmFuZG9tIGRhdGEgZm9yIHJlc3BvbmRlciBub25jZSIpOwotIAkJCWdvdG8gZXJyb3I7Ci0gCQl9Ci0rCQlwZWVyLT50a19zZXQgPSAwOyAvKiBBIG5ldyBub25jZSByZXN1bHRzIGluIGEgbmV3IFRLICovCi0gCX0KLSAKLSAjaWYgMAotLS0gCi0yLjcuNAotCi1Ob3RlOiBbUEFUQ0ggNy84XSBvbmx5IGFwcGxpZXMgdG8gd3BhX3N1cHBsaWNhbnQKLQotRnJvbSBiMzcyYWIwYjdkYWVhNzE5NzQ5MTk0ZGM1NTRiMjZlNjM2NzYwM2YyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSm91bmkgTWFsaW5lbiA8akB3MS5maT4KLURhdGU6IEZyaSwgMjIgU2VwIDIwMTcgMTI6MDY6MzcgKzAzMDAKLVN1YmplY3Q6IFtQQVRDSCA4LzhdIEZUOiBEbyBub3QgYWxsb3cgbXVsdGlwbGUgUmVhc3NvY2lhdGlvbiBSZXNwb25zZSBmcmFtZXMKLQotVGhlIGRyaXZlciBpcyBleHBlY3RlZCB0byBub3QgcmVwb3J0IGEgc2Vjb25kIGFzc29jaWF0aW9uIGV2ZW50IHdpdGhvdXQKLXRoZSBzdGF0aW9uIGhhdmluZyBleHBsaWNpdGx5IHJlcXVlc3QgYSBuZXcgYXNzb2NpYXRpb24uIEFzIHN1Y2gsIHRoaXMKLWNhc2Ugc2hvdWxkIG5vdCBiZSByZWFjaGFibGUuIEhvd2V2ZXIsIHNpbmNlIHJlY29uZmlndXJpbmcgdGhlIHNhbWUKLXBhaXJ3aXNlIG9yIGdyb3VwIGtleXMgdG8gdGhlIGRyaXZlciBjb3VsZCByZXN1bHQgaW4gbm9uY2UgcmV1c2UgaXNzdWVzLAotYmUgZXh0cmEgY2FyZWZ1bCBoZXJlIGFuZCBkbyBhbiBhZGRpdGlvbmFsIHN0YXRlIGNoZWNrIHRvIGF2b2lkIHRoaXMKLWV2ZW4gaWYgdGhlIGxvY2FsIGRyaXZlciBlbmRzIHVwIHNvbWVob3cgYWNjZXB0aW5nIGFuIHVuZXhwZWN0ZWQKLVJlYXNzb2NpYXRpb24gUmVzcG9uc2UgZnJhbWUuCi0KLVNpZ25lZC1vZmYtYnk6IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+Ci0tLS0KLSBzcmMvcnNuX3N1cHAvd3BhLmMgICAgfCAzICsrKwotIHNyYy9yc25fc3VwcC93cGFfZnQuYyB8IDggKysrKysrKysKLSBzcmMvcnNuX3N1cHAvd3BhX2kuaCAgfCAxICsKLSAzIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL3NyYy9yc25fc3VwcC93cGEuYyBiL3NyYy9yc25fc3VwcC93cGEuYwotaW5kZXggMDU1MGE0MS4uMmE1M2M2ZiAxMDA2NDQKLS0tLSBhL3NyYy9yc25fc3VwcC93cGEuYwotKysrIGIvc3JjL3Jzbl9zdXBwL3dwYS5jCi1AQCAtMjQ0MCw2ICsyNDQwLDkgQEAgdm9pZCB3cGFfc21fbm90aWZ5X2Rpc2Fzc29jKHN0cnVjdCB3cGFfc20gKnNtKQotICNpZmRlZiBDT05GSUdfVERMUwotIAl3cGFfdGRsc19kaXNhc3NvYyhzbSk7Ci0gI2VuZGlmIC8qIENPTkZJR19URExTICovCi0rI2lmZGVmIENPTkZJR19JRUVFODAyMTFSCi0rCXNtLT5mdF9yZWFzc29jX2NvbXBsZXRlZCA9IDA7Ci0rI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFSICovCi0gCi0gCS8qIEtleXMgYXJlIG5vdCBuZWVkZWQgaW4gdGhlIFdQQSBzdGF0ZSBtYWNoaW5lIGFueW1vcmUgKi8KLSAJd3BhX3NtX2Ryb3Bfc2Eoc20pOwotZGlmZiAtLWdpdCBhL3NyYy9yc25fc3VwcC93cGFfZnQuYyBiL3NyYy9yc25fc3VwcC93cGFfZnQuYwotaW5kZXggMjA1NzkzZS4uZDQ1YmI0NSAxMDA2NDQKLS0tLSBhL3NyYy9yc25fc3VwcC93cGFfZnQuYwotKysrIGIvc3JjL3Jzbl9zdXBwL3dwYV9mdC5jCi1AQCAtMTUzLDYgKzE1Myw3IEBAIHN0YXRpYyB1OCAqIHdwYV9mdF9nZW5fcmVxX2llcyhzdHJ1Y3Qgd3BhX3NtICpzbSwgc2l6ZV90ICpsZW4sCi0gCXUxNiBjYXBhYjsKLSAKLSAJc20tPmZ0X2NvbXBsZXRlZCA9IDA7Ci0rCXNtLT5mdF9yZWFzc29jX2NvbXBsZXRlZCA9IDA7Ci0gCi0gCWJ1Zl9sZW4gPSAyICsgc2l6ZW9mKHN0cnVjdCByc25fbWRpZSkgKyAyICsgc2l6ZW9mKHN0cnVjdCByc25fZnRpZSkgKwotIAkJMiArIHNtLT5yMGtoX2lkX2xlbiArIHJpY19pZXNfbGVuICsgMTAwOwotQEAgLTY4MSw2ICs2ODIsMTEgQEAgaW50IHdwYV9mdF92YWxpZGF0ZV9yZWFzc29jX3Jlc3Aoc3RydWN0IHdwYV9zbSAqc20sIGNvbnN0IHU4ICppZXMsCi0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLSsJaWYgKHNtLT5mdF9yZWFzc29jX2NvbXBsZXRlZCkgewotKwkJd3BhX3ByaW50ZihNU0dfREVCVUcsICJGVDogUmVhc3NvY2lhdGlvbiBoYXMgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZCBmb3IgdGhpcyBGVCBwcm90b2NvbCBpbnN0YW5jZSAtIGlnbm9yZSB1bmV4cGVjdGVkIHJldHJhbnNtaXNzaW9uIik7Ci0rCQlyZXR1cm4gMDsKLSsJfQotKwotIAlpZiAod3BhX2Z0X3BhcnNlX2llcyhpZXMsIGllc19sZW4sICZwYXJzZSkgPCAwKSB7Ci0gCQl3cGFfcHJpbnRmKE1TR19ERUJVRywgIkZUOiBGYWlsZWQgdG8gcGFyc2UgSUVzIik7Ci0gCQlyZXR1cm4gLTE7Ci1AQCAtNzgxLDYgKzc4Nyw4IEBAIGludCB3cGFfZnRfdmFsaWRhdGVfcmVhc3NvY19yZXNwKHN0cnVjdCB3cGFfc20gKnNtLCBjb25zdCB1OCAqaWVzLAotIAkJcmV0dXJuIC0xOwotIAl9Ci0gCi0rCXNtLT5mdF9yZWFzc29jX2NvbXBsZXRlZCA9IDE7Ci0rCi0gCWlmICh3cGFfZnRfcHJvY2Vzc19ndGtfc3ViZWxlbShzbSwgcGFyc2UuZ3RrLCBwYXJzZS5ndGtfbGVuKSA8IDApCi0gCQlyZXR1cm4gLTE7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYV9pLmggYi9zcmMvcnNuX3N1cHAvd3BhX2kuaAotaW5kZXggNDFmMzcxZi4uNTZmODhkYyAxMDA2NDQKLS0tLSBhL3NyYy9yc25fc3VwcC93cGFfaS5oCi0rKysgYi9zcmMvcnNuX3N1cHAvd3BhX2kuaAotQEAgLTEyOCw2ICsxMjgsNyBAQCBzdHJ1Y3Qgd3BhX3NtIHsKLSAJc2l6ZV90IHIwa2hfaWRfbGVuOwotIAl1OCByMWtoX2lkW0ZUX1IxS0hfSURfTEVOXTsKLSAJaW50IGZ0X2NvbXBsZXRlZDsKLSsJaW50IGZ0X3JlYXNzb2NfY29tcGxldGVkOwotIAlpbnQgb3Zlcl90aGVfZHNfaW5fcHJvZ3Jlc3M7Ci0gCXU4IHRhcmdldF9hcFtFVEhfQUxFTl07IC8qIG92ZXItdGhlLURTIHRhcmdldCBBUCAqLwotIAlpbnQgc2V0X3B0a19hZnRlcl9hc3NvYzsKLS0tIAotMi43LjQKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGRfMi42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZF8yLjYuYmIKaW5kZXggYzNhMWVhZC4uMjUwYWRkOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZF8yLjYuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZF8yLjYuYmIKQEAgLTEsMzQgKzEsNDggQEAKK1NVTU1BUlkgPSAiVXNlciBzcGFjZSBkYWVtb24gZm9yIGV4dGVuZGVkIElFRUUgODAyLjExIG1hbmFnZW1lbnQiCiBIT01FUEFHRSA9ICJodHRwOi8vdzEuZmkvaG9zdGFwZC8iCiBTRUNUSU9OID0gImtlcm5lbC91c2VybGFuZCIKLUxJQ0VOU0UgPSAiR1BMdjIgfCBCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke0J9L1JFQURNRTttZDU9OGFhNGU4Yzc4YjU5YjEyMDE2YzRjYjJkMGE4ZGIzNTAiCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL2hvc3RhcGQvUkVBRE1FO21kNT04YWE0ZThjNzhiNTliMTIwMTZjNGNiMmQwYThkYjM1MCIKKwogREVQRU5EUyA9ICJsaWJubCBvcGVuc3NsIgotU1VNTUFSWSA9ICJVc2VyIHNwYWNlIGRhZW1vbiBmb3IgZXh0ZW5kZWQgSUVFRSA4MDIuMTEgbWFuYWdlbWVudCIKLQotaW5oZXJpdCB1cGRhdGUtcmMuZCBzeXN0ZW1kCi1JTklUU0NSSVBUX05BTUUgPSAiaG9zdGFwZCIKLQotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImhvc3RhcGQuc2VydmljZSIKLVNZU1RFTURfQVVUT19FTkFCTEVfJHtQTn0gPSAiZGlzYWJsZSIKIAogU1JDX1VSSSA9ICIgXAogICAgIGh0dHA6Ly93MS5maS9yZWxlYXNlcy9ob3N0YXBkLSR7UFZ9LnRhci5neiBcCiAgICAgZmlsZTovL2RlZmNvbmZpZyBcCiAgICAgZmlsZTovL2luaXQgXAogICAgIGZpbGU6Ly9ob3N0YXBkLnNlcnZpY2UgXAotICAgIGZpbGU6Ly9rZXktcmVwbGF5LWN2ZS1tdWx0aXBsZS5wYXRjaCBcCisgICAgZmlsZTovLzAwMDEtaG9zdGFwZC1Bdm9pZC1rZXktcmVpbnN0YWxsYXRpb24taW4tRlQtaGFuZHNoYWtlLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMi1QcmV2ZW50LXJlaW5zdGFsbGF0aW9uLW9mLWFuLWFscmVhZHktaW4tdXNlLWdyb3VwLWtlLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMy1FeHRlbmQtcHJvdGVjdGlvbi1vZi1HVEstSUdUSy1yZWluc3RhbGxhdGlvbi1vZi1XTk0tLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNC1QcmV2ZW50LWluc3RhbGxhdGlvbi1vZi1hbi1hbGwtemVyby1USy5wYXRjaCBcCisgICAgZmlsZTovLzAwMDUtRml4LVBUSy1yZWtleWluZy10by1nZW5lcmF0ZS1hLW5ldy1BTm9uY2UucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDA2LVRETFMtUmVqZWN0LVRQSy1USy1yZWNvbmZpZ3VyYXRpb24ucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDA3LUZULURvLW5vdC1hbGxvdy1tdWx0aXBsZS1SZWFzc29jaWF0aW9uLVJlc3BvbnNlLWZyYW0ucGF0Y2ggXAogIgogCitTUkNfVVJJW21kNXN1bV0gPSAiZWFhNTZkY2U5YmQ4ZjFkMTk1ZWI2MjU5NmVhYjM0YzciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDE1MjZiOTBjMWQyM2JlYzRiMGYwNTIwMzljYzQ0NTZjMmZkMTkzNDdiNGQ4MzBkMWQ1OGEwYTZhZWE3MTE3ZCIKKwogUyA9ICIke1dPUktESVJ9L2hvc3RhcGQtJHtQVn0iCiBCID0gIiR7V09SS0RJUn0vaG9zdGFwZC0ke1BWfS9ob3N0YXBkIgogCi1kb19jb25maWd1cmUoKSB7Citpbmhlcml0IHVwZGF0ZS1yYy5kIHN5c3RlbWQgcGtnY29uZmlnIGRpc3Ryb19mZWF0dXJlc19jaGVjaworCitDT05GTElDVF9ESVNUUk9fRkVBVFVSRVMgPSAib3BlbnNzbC1uby13ZWFrLWNpcGhlcnMiCisKK0lOSVRTQ1JJUFRfTkFNRSA9ICJob3N0YXBkIgorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiaG9zdGFwZC5zZXJ2aWNlIgorU1lTVEVNRF9BVVRPX0VOQUJMRV8ke1BOfSA9ICJkaXNhYmxlIgorCitkb19jb25maWd1cmVfYXBwZW5kKCkgewogICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2RlZmNvbmZpZyAke0J9Ly5jb25maWcKIH0KIAogZG9fY29tcGlsZSgpIHsKLSAgICBleHBvcnQgQ0ZMQUdTPSItTU1EIC1PMiAtV2FsbCAtZyAtSSR7U1RBR0lOR19JTkNESVJ9L2xpYm5sMyIKLSAgICBtYWtlCisgICAgZXhwb3J0IENGTEFHUz0iLU1NRCAtTzIgLVdhbGwgLWciCisgICAgZXhwb3J0IEVYVFJBX0NGTEFHUz0iJHtDRkxBR1N9IgorICAgIG1ha2UgVj0xCiB9CiAKIGRvX2luc3RhbGwoKSB7CkBAIC00Miw3ICs1NiwzIEBACiB9CiAKIENPTkZGSUxFU18ke1BOfSArPSAiJHtzeXNjb25mZGlyfS9ob3N0YXBkLmNvbmYiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJlYWE1NmRjZTliZDhmMWQxOTVlYjYyNTk2ZWFiMzRjNyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwMTUyNmI5MGMxZDIzYmVjNGIwZjA1MjAzOWNjNDQ1NmMyZmQxOTM0N2I0ZDgzMGQxZDU4YTBhNmFlYTcxMTdkIgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1LzAwMDEtYWNsb2NhbC1BZGQtcGFyYW1ldGVyLXRvLWRpc2FibGUta2V5dXRpbHMtZGV0ZWN0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS8wMDAxLWFjbG9jYWwtQWRkLXBhcmFtZXRlci10by1kaXNhYmxlLWtleXV0aWxzLWRldGVjdGlvbi5wYXRjaAppbmRleCBmMGMzMTBjLi5jYmQ1ZDcxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1LzAwMDEtYWNsb2NhbC1BZGQtcGFyYW1ldGVyLXRvLWRpc2FibGUta2V5dXRpbHMtZGV0ZWN0aW9uLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUvMDAwMS1hY2xvY2FsLUFkZC1wYXJhbWV0ZXItdG8tZGlzYWJsZS1rZXl1dGlscy1kZXRlY3Rpb24ucGF0Y2gKQEAgLTEsMTggKzEsMTkgQEAKLUZyb20gZWNiNjJmMzQ2N2Y0OTNjYzBkNjc5MzIzZjA1MzY3ZWViYmYwZmI2NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gYTllNDA1N2JmZGExOTBhZDM2NWI1MDNhZjA1OGI0NjBhYjhjNzYxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KIERhdGU6IFR1ZSwgMSBPY3QgMjAxMyAyMjoyMjo1NyArMDIwMAogU3ViamVjdDogW1BBVENIXSBhY2xvY2FsOiBBZGQgcGFyYW1ldGVyIHRvIGRpc2FibGUga2V5dXRpbHMgZGV0ZWN0aW9uCiAKIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KKwogLS0tCiAgYWNsb2NhbC5tNCB8IDQgKysrKwogIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKIAogZGlmZiAtLWdpdCBhL2FjbG9jYWwubTQgYi9hY2xvY2FsLm00Ci1pbmRleCAyMTBjNDczLi44M2IxZjAyIDEwMDY0NAoraW5kZXggZDZkMTI3OS4uODBjZTYwNCAxMDA2NDQKIC0tLSBhL2FjbG9jYWwubTQKICsrKyBiL2FjbG9jYWwubTQKLUBAIC0xNjUwLDExICsxNjUwLDE1IEBAIGZpCitAQCAtMTY3OSwxMiArMTY3OSwxNiBAQCBmaQogIGRubAogIGRubCBJZiBsaWJrZXl1dGlscyBleGlzdHMgKG9uIExpbnV4KSBpbmNsdWRlIGl0IGFuZCB1c2Uga2V5cmluZyBjY2FjaGUKICBBQ19ERUZVTihLUkI1X0FDX0tFWVJJTkdfQ0NBQ0hFLFsKQEAgLTI4LDYgKzI5LDQgQEAKICtmaQogIF0pZG5sCiAgZG5sCi0tLSAKLTEuOC4zLjIKLQorIGRubCBJZiBsaWJrZXl1dGlscyBzdXBwb3J0cyBwZXJzaXN0ZW50IGtleXJpbmdzLCB1c2UgdGhlbQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9DVkUtMjAxNy0xMTQ2Mi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUvQ1ZFLTIwMTctMTE0NjIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiODJmMDIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9DVkUtMjAxNy0xMTQ2Mi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQxOSArMCwwIEBACi1Gcm9tIDU2ZjdiMWJjOTVhMmEzZWViNDIwZTA2OWU3NjU1ZmIxODFhZGU1Y2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBHcmVnIEh1ZHNvbiA8Z2h1ZHNvbkBtaXQuZWR1PgotRGF0ZTogRnJpLCAxNCBKdWwgMjAxNyAxMzowMjo0NiAtMDQwMAotU3ViamVjdDogW1BBVENIXSBQcmVzZXJ2ZSBHU1MgY29udGV4dCBvbiBpbml0L2FjY2VwdCBmYWlsdXJlCi0KLUFmdGVyIGdzc19pbml0X3NlY19jb250ZXh0KCkgb3IgZ3NzX2FjY2VwdF9zZWNfY29udGV4dCgpIGhhcyBjcmVhdGVkIGEKLWNvbnRleHQsIGRvbid0IGRlbGV0ZSB0aGUgbWVjaGdsdWUgY29udGV4dCBvbiBmYWlsdXJlcyBmcm9tIHN1YnNlcXVlbnQKLWNhbGxzLCBldmVuIGlmIHRoZSBtZWNoYW5pc20gZGVsZXRlcyB0aGUgbWVjaC1zcGVjaWZpYyBjb250ZXh0ICh3aGljaAotaXMgYWxsb3dlZCBieSBSRkMgMjc0NCBidXQgbm90IHByZWZlcnJlZCkuICBDaGVjayBmb3IgdW5pb24gY29udGV4dHMKLXdpdGggbm8gbWVjaGFuaXNtIGNvbnRleHQgaW4gZWFjaCBHU1MgZnVuY3Rpb24gd2hpY2ggYWNjZXB0cyBhCi1nc3NfY3R4X2lkX3QuCi0KLUNWRS0yMDE3LTExNDYyOgotCi1SRkMgMjc0NCBwZXJtaXRzIGEgR1NTLUFQSSBpbXBsZW1lbnRhdGlvbiB0byBkZWxldGUgYW4gZXhpc3RpbmcKLXNlY3VyaXR5IGNvbnRleHQgb24gYSBzZWNvbmQgb3Igc3Vic2VxdWVudCBjYWxsIHRvCi1nc3NfaW5pdF9zZWNfY29udGV4dCgpIG9yIGdzc19hY2NlcHRfc2VjX2NvbnRleHQoKSBpZiB0aGUgY2FsbCByZXN1bHRzCi1pbiBhbiBlcnJvci4gIFRoaXMgQVBJIGJlaGF2aW9yIGhhcyBiZWVuIGZvdW5kIHRvIGJlIGRhbmdlcm91cywKLWxlYWRpbmcgdG8gdGhlIHBvc3NpYmlsaXR5IG9mIG1lbW9yeSBlcnJvcnMgaW4gc29tZSBjYWxsZXJzLiAgRm9yCi1zYWZldHksIEdTUy1BUEkgaW1wbGVtZW50YXRpb25zIHNob3VsZCBpbnN0ZWFkIHByZXNlcnZlIGV4aXN0aW5nCi1zZWN1cml0eSBjb250ZXh0cyBvbiBlcnJvciB1bnRpbCB0aGUgY2FsbGVyIGRlbGV0ZXMgdGhlbS4KLQotQWxsIHZlcnNpb25zIG9mIE1JVCBrcmI1IHByaW9yIHRvIHRoaXMgY2hhbmdlIG1heSBkZWxldGUgYWNjZXB0b3IKLWNvbnRleHRzIG9uIGVycm9yLiAgVmVyc2lvbnMgMS4xMy40IHRocm91Z2ggMS4xMy43LCAxLjE0LjEgdGhyb3VnaAotMS4xNC41LCBhbmQgMS4xNSB0aHJvdWdoIDEuMTUuMSBtYXkgYWxzbyBkZWxldGUgaW5pdGlhdG9yIGNvbnRleHRzIG9uCi1lcnJvci4KLQotdGlja2V0OiA4NTk4IChuZXcpCi10YXJnZXRfdmVyc2lvbjogMS4xNS1uZXh0Ci10YXJnZXRfdmVyc2lvbjogMS4xNC1uZXh0Ci10YWdzOiBwdWxsdXAKLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotQ1ZFOiBDVkUtMjAxNy0xMTQ2MgotCi1TaWduZWQtb2ZmLWJ5OiBDYXRhbGluIEVuYWNoZSA8Y2F0YWxpbi5lbmFjaGVAd2luZHJpdmVyLmNvbT4KLS0tLQotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfYWNjZXB0X3NlY19jb250ZXh0LmMgIHwgMjIgKysrKysrKysrKysrKysrLS0tLS0tLQotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfY29tcGxldGVfYXV0aF90b2tlbi5jIHwgIDIgKysKLSBzcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2NvbnRleHRfdGltZS5jICAgICAgICB8ICAyICsrCi0gc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19kZWxldGVfc2VjX2NvbnRleHQuYyAgfCAxNCArKysrKysrKy0tLS0tLQotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfZXhwX3NlY19jb250ZXh0LmMgICAgIHwgIDIgKysKLSBzcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2luaXRfc2VjX2NvbnRleHQuYyAgICB8IDE5ICsrKysrKysrKysrLS0tLS0tLS0KLSBzcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2lucV9jb250ZXh0LmMgICAgICAgICB8ICAyICsrCi0gc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19wcmYuYyAgICAgICAgICAgICAgICAgfCAgMiArKwotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfcHJvY2Vzc19jb250ZXh0LmMgICAgIHwgIDIgKysKLSBzcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3NlYWwuYyAgICAgICAgICAgICAgICB8ICA0ICsrKysKLSBzcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3NpZ24uYyAgICAgICAgICAgICAgICB8ICAyICsrCi0gc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ191bnNlYWwuYyAgICAgICAgICAgICAgfCAgMiArKwotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfdW53cmFwX2FlYWQuYyAgICAgICAgIHwgIDIgKysKLSBzcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vud3JhcF9pb3YuYyAgICAgICAgICB8ICA0ICsrKysKLSBzcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3ZlcmlmeS5jICAgICAgICAgICAgICB8ICAyICsrCi0gc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ193cmFwX2FlYWQuYyAgICAgICAgICAgfCAgMiArKwotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfd3JhcF9pb3YuYyAgICAgICAgICAgIHwgIDggKysrKysrKysKLSAxNyBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfYWNjZXB0X3NlY19jb250ZXh0LmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2FjY2VwdF9zZWNfY29udGV4dC5jCi1pbmRleCBkZGFmODc0Li5mMjhlMmIxIDEwMDY0NAotLS0tIGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19hY2NlcHRfc2VjX2NvbnRleHQuYwotKysrIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19hY2NlcHRfc2VjX2NvbnRleHQuYwotQEAgLTIxNiw2ICsyMTYsOCBAQCBnc3NfY3JlZF9pZF90ICoJCWRfY3JlZDsKLSAgICAgfSBlbHNlIHsKLSAJdW5pb25fY3R4X2lkID0gKGdzc191bmlvbl9jdHhfaWRfdCkqY29udGV4dF9oYW5kbGU7Ci0gCXNlbGVjdGVkX21lY2ggPSB1bmlvbl9jdHhfaWQtPm1lY2hfdHlwZTsKLSsJaWYgKHVuaW9uX2N0eF9pZC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCSAgICByZXR1cm4gKEdTU19TX05PX0NPTlRFWFQpOwotICAgICB9Ci0gCi0gICAgIC8qIE5vdyBjcmVhdGUgYSBuZXcgY29udGV4dCBpZiB3ZSBkaWRuJ3QgZ2V0IG9uZS4gKi8KLUBAIC0yMzQsOSArMjM2LDYgQEAgZ3NzX2NyZWRfaWRfdCAqCQlkX2NyZWQ7Ci0gCSAgICBmcmVlKHVuaW9uX2N0eF9pZCk7Ci0gCSAgICByZXR1cm4gKHN0YXR1cyk7Ci0gCX0KLS0KLS0JLyogc2V0IHRoZSBuZXcgY29udGV4dCBoYW5kbGUgdG8gY2FsbGVyJ3MgZGF0YSAqLwotLQkqY29udGV4dF9oYW5kbGUgPSAoZ3NzX2N0eF9pZF90KXVuaW9uX2N0eF9pZDsKLSAgICAgfQotIAotICAgICAvKgotQEAgLTI3Nyw4ICsyNzYsMTAgQEAgZ3NzX2NyZWRfaWRfdCAqCQlkX2NyZWQ7Ci0gCQkJCQlkX2NyZWQgPyAmdG1wX2RfY3JlZCA6IE5VTEwpOwotIAotIAkgICAgLyogSWYgdGhlcmUncyBtb3JlIHdvcmsgdG8gZG8sIGtlZXAgZ29pbmcuLi4gKi8KLS0JICAgIGlmIChzdGF0dXMgPT0gR1NTX1NfQ09OVElOVUVfTkVFREVEKQotKwkgICAgaWYgKHN0YXR1cyA9PSBHU1NfU19DT05USU5VRV9ORUVERUQpIHsKLSsJCSpjb250ZXh0X2hhbmRsZSA9IChnc3NfY3R4X2lkX3QpdW5pb25fY3R4X2lkOwotIAkJcmV0dXJuIEdTU19TX0NPTlRJTlVFX05FRURFRDsKLSsJICAgIH0KLSAKLSAJICAgIC8qIGlmIHRoZSBjYWxsIGZhaWxlZCwgcmV0dXJuIHdpdGggZmFpbHVyZSAqLwotIAkgICAgaWYgKHN0YXR1cyAhPSBHU1NfU19DT01QTEVURSkgewotQEAgLTM2NCwxNCArMzY1LDIyIEBAIGdzc19jcmVkX2lkX3QgKgkJZF9jcmVkOwotIAkJKm1lY2hfdHlwZSA9IGdzc2ludF9nZXRfcHVibGljX29pZChhY3R1YWxfbWVjaCk7Ci0gCSAgICBpZiAocmV0X2ZsYWdzICE9IE5VTEwpCi0gCQkqcmV0X2ZsYWdzID0gdGVtcF9yZXRfZmxhZ3M7Ci0tCSAgICByZXR1cm4JKHN0YXR1cyk7Ci0rCSAgICAqY29udGV4dF9oYW5kbGUgPSAoZ3NzX2N0eF9pZF90KXVuaW9uX2N0eF9pZDsKLSsJICAgIHJldHVybiBHU1NfU19DT01QTEVURTsKLSAgICAgfSBlbHNlIHsKLSAKLSAJc3RhdHVzID0gR1NTX1NfQkFEX01FQ0g7Ci0gICAgIH0KLSAKLSBlcnJvcl9vdXQ6Ci0tICAgIGlmICh1bmlvbl9jdHhfaWQpIHsKLSsJLyoKLSsJICogUkZDIDI3NDQgNS4xIHJlcXVpcmVzIHRoYXQgd2Ugbm90IGNyZWF0ZSBhIGNvbnRleHQgb24gYSBmYWlsZWQgZmlyc3QKLSsJICogY2FsbCB0byBhY2NlcHQsIGFuZCByZWNvbW1lbmRzIHRoYXQgb24gYSBmYWlsZWQgc3Vic2VxdWVudCBjYWxsIHdlCi0rCSAqIG1ha2UgdGhlIGNhbGxlciByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBnc3NfZGVsZXRlX3NlY19jb250ZXh0LgotKwkgKiBFdmVuIGlmIHRoZSBtZWNoIGRlbGV0ZWQgaXRzIGNvbnRleHQsIGtlZXAgdGhlIHVuaW9uIGNvbnRleHQgYXJvdW5kCi0rCSAqIGZvciB0aGUgY2FsbGVyIHRvIGRlbGV0ZS4KLSsJICovCi0rICAgIGlmICh1bmlvbl9jdHhfaWQgJiYgKmNvbnRleHRfaGFuZGxlID09IEdTU19DX05PX0NPTlRFWFQpIHsKLSAJaWYgKHVuaW9uX2N0eF9pZC0+bWVjaF90eXBlKSB7Ci0gCSAgICBpZiAodW5pb25fY3R4X2lkLT5tZWNoX3R5cGUtPmVsZW1lbnRzKQotIAkJZnJlZSh1bmlvbl9jdHhfaWQtPm1lY2hfdHlwZS0+ZWxlbWVudHMpOwotQEAgLTM4NCw3ICszOTMsNiBAQCBlcnJvcl9vdXQ6Ci0gCQkJCQkgR1NTX0NfTk9fQlVGRkVSKTsKLSAJfQotIAlmcmVlKHVuaW9uX2N0eF9pZCk7Ci0tCSpjb250ZXh0X2hhbmRsZSA9IEdTU19DX05PX0NPTlRFWFQ7Ci0gICAgIH0KLSAKLSAgICAgaWYgKHNyY19uYW1lKQotZGlmZiAtLWdpdCBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfY29tcGxldGVfYXV0aF90b2tlbi5jIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19jb21wbGV0ZV9hdXRoX3Rva2VuLmMKLWluZGV4IDkxODE1NTEuLjRiY2I0N2UgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2NvbXBsZXRlX2F1dGhfdG9rZW4uYwotKysrIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19jb21wbGV0ZV9hdXRoX3Rva2VuLmMKLUBAIC01Miw2ICs1Miw4IEBAIGdzc19jb21wbGV0ZV9hdXRoX3Rva2VuIChPTV91aW50MzIgKm1pbm9yX3N0YXR1cywKLSAgICAgICovCi0gCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpIGNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIEdTU19TX05PX0NPTlRFWFQ7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbSAoY3R4LT5tZWNoX3R5cGUpOwotIAotICAgICBpZiAobWVjaCAhPSBOVUxMKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19jb250ZXh0X3RpbWUuYyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfY29udGV4dF90aW1lLmMKLWluZGV4IDJmZjhkMDkuLmM5NDdlNzYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2NvbnRleHRfdGltZS5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2NvbnRleHRfdGltZS5jCi1AQCAtNTgsNiArNTgsOCBAQCBPTV91aW50MzIgKgkJdGltZV9yZWM7Ci0gICAgICAqLwotIAotICAgICBjdHggPSAoZ3NzX3VuaW9uX2N0eF9pZF90KSBjb250ZXh0X2hhbmRsZTsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCXJldHVybiAoR1NTX1NfTk9fQ09OVEVYVCk7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbSAoY3R4LT5tZWNoX3R5cGUpOwotIAotICAgICBpZiAobWVjaCkgewotZGlmZiAtLWdpdCBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfZGVsZXRlX3NlY19jb250ZXh0LmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2RlbGV0ZV9zZWNfY29udGV4dC5jCi1pbmRleCA0YmYwZGVjLi41NzRmZjAyIDEwMDY0NAotLS0tIGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19kZWxldGVfc2VjX2NvbnRleHQuYwotKysrIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19kZWxldGVfc2VjX2NvbnRleHQuYwotQEAgLTg3LDEyICs4NywxNCBAQCBnc3NfYnVmZmVyX3QJCW91dHB1dF90b2tlbjsKLSAgICAgaWYgKEdTU0lOVF9DSEtfTE9PUChjdHgpKQotIAlyZXR1cm4gKEdTU19TX0NBTExfSU5BQ0NFU1NJQkxFX1JFQUQgfCBHU1NfU19OT19DT05URVhUKTsKLSAKLS0gICAgc3RhdHVzID0gZ3NzaW50X2RlbGV0ZV9pbnRlcm5hbF9zZWNfY29udGV4dChtaW5vcl9zdGF0dXMsCi0tCQkJCQkJY3R4LT5tZWNoX3R5cGUsCi0tCQkJCQkJJmN0eC0+aW50ZXJuYWxfY3R4X2lkLAotLQkJCQkJCW91dHB1dF90b2tlbik7Ci0tICAgIGlmIChzdGF0dXMpCi0tCXJldHVybiBzdGF0dXM7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCAhPSBHU1NfQ19OT19DT05URVhUKSB7Ci0rCXN0YXR1cyA9IGdzc2ludF9kZWxldGVfaW50ZXJuYWxfc2VjX2NvbnRleHQobWlub3Jfc3RhdHVzLAotKwkJCQkJCSAgICBjdHgtPm1lY2hfdHlwZSwKLSsJCQkJCQkgICAgJmN0eC0+aW50ZXJuYWxfY3R4X2lkLAotKwkJCQkJCSAgICBvdXRwdXRfdG9rZW4pOwotKwlpZiAoc3RhdHVzKQotKwkgICAgcmV0dXJuIHN0YXR1czsKLSsgICAgfQotIAotICAgICAvKiBub3cgZnJlZSB1cCB0aGUgc3BhY2UgZm9yIHRoZSB1bmlvbiBjb250ZXh0IHN0cnVjdHVyZSAqLwotICAgICBmcmVlKGN0eC0+bWVjaF90eXBlLT5lbGVtZW50cyk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19leHBfc2VjX2NvbnRleHQuYyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfZXhwX3NlY19jb250ZXh0LmMKLWluZGV4IGI2Mzc0NTIuLjFkNzk5MGIgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2V4cF9zZWNfY29udGV4dC5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2V4cF9zZWNfY29udGV4dC5jCi1AQCAtOTUsNiArOTUsOCBAQCBnc3NfYnVmZmVyX3QJCWludGVycHJvY2Vzc190b2tlbjsKLSAgICAgICovCi0gCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpICpjb250ZXh0X2hhbmRsZTsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCXJldHVybiAoR1NTX1NfTk9fQ09OVEVYVCk7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbSAoY3R4LT5tZWNoX3R5cGUpOwotICAgICBpZiAoIW1lY2gpCi0gCXJldHVybiBHU1NfU19CQURfTUVDSDsKLWRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2luaXRfc2VjX2NvbnRleHQuYyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfaW5pdF9zZWNfY29udGV4dC5jCi1pbmRleCA5ZjE1NGI4Li5lMmRmMWNlIDEwMDY0NAotLS0tIGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19pbml0X3NlY19jb250ZXh0LmMKLSsrKyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfaW5pdF9zZWNfY29udGV4dC5jCi1AQCAtMTkyLDggKzE5MiwxMyBAQCBPTV91aW50MzIgKgkJdGltZV9yZWM7Ci0gCi0gCS8qIGNvcHkgdGhlIHN1cHBsaWVkIGNvbnRleHQgaGFuZGxlICovCi0gCXVuaW9uX2N0eF9pZC0+aW50ZXJuYWxfY3R4X2lkID0gR1NTX0NfTk9fQ09OVEVYVDsKLS0gICAgfSBlbHNlCi0rICAgIH0gZWxzZSB7Ci0gCXVuaW9uX2N0eF9pZCA9IChnc3NfdW5pb25fY3R4X2lkX3QpKmNvbnRleHRfaGFuZGxlOwotKwlpZiAodW5pb25fY3R4X2lkLT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkgewotKwkgICAgc3RhdHVzID0gR1NTX1NfTk9fQ09OVEVYVDsKLSsJICAgIGdvdG8gZW5kOwotKwl9Ci0rICAgIH0KLSAKLSAgICAgLyoKLSAgICAgICogZ2V0IHRoZSBhcHByb3ByaWF0ZSBjcmVkIGhhbmRsZSBmcm9tIHRoZSB1bmlvbiBjcmVkIHN0cnVjdC4KLUBAIC0yMjQsMTUgKzIyOSwxMyBAQCBPTV91aW50MzIgKgkJdGltZV9yZWM7Ci0gCi0gICAgIGlmIChzdGF0dXMgIT0gR1NTX1NfQ09NUExFVEUgJiYgc3RhdHVzICE9IEdTU19TX0NPTlRJTlVFX05FRURFRCkgewotIAkvKgotLQkgKiBUaGUgc3BlYyBzYXlzIHRoZSBwcmVmZXJyZWQgbWV0aG9kIGlzIHRvIGRlbGV0ZSBhbGwgY29udGV4dCBpbmZvIG9uCi0tCSAqIHRoZSBmaXJzdCBjYWxsIHRvIGluaXQsIGFuZCBvbiBhbGwgc3Vic2VxdWVudCBjYWxscyBtYWtlIHRoZSBjYWxsZXIKLS0JICogcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgZ3NzX2RlbGV0ZV9zZWNfY29udGV4dC4gIEhvd2V2ZXIsIGlmIHRoZQotLQkgKiBtZWNoYW5pc20gZGVjaWRlZCB0byBkZWxldGUgdGhlIGludGVybmFsIGNvbnRleHQsIHdlIHNob3VsZCBhbHNvCi0tCSAqIGRlbGV0ZSB0aGUgdW5pb24gY29udGV4dC4KLSsJICogUkZDIDI3NDQgNS4xOSByZXF1aXJlcyB0aGF0IHdlIG5vdCBjcmVhdGUgYSBjb250ZXh0IG9uIGEgZmFpbGVkCi0rCSAqIGZpcnN0IGNhbGwgdG8gaW5pdCwgYW5kIHJlY29tbWVuZHMgdGhhdCBvbiBhIGZhaWxlZCBzdWJzZXF1ZW50IGNhbGwKLSsJICogd2UgbWFrZSB0aGUgY2FsbGVyIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIGdzc19kZWxldGVfc2VjX2NvbnRleHQuCi0rCSAqIEV2ZW4gaWYgdGhlIG1lY2ggZGVsZXRlZCBpdHMgY29udGV4dCwga2VlcCB0aGUgdW5pb24gY29udGV4dCBhcm91bmQKLSsJICogZm9yIHRoZSBjYWxsZXIgdG8gZGVsZXRlLgotIAkgKi8KLSAJbWFwX2Vycm9yKG1pbm9yX3N0YXR1cywgbWVjaCk7Ci0tCWlmICh1bmlvbl9jdHhfaWQtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotLQkgICAgKmNvbnRleHRfaGFuZGxlID0gR1NTX0NfTk9fQ09OVEVYVDsKLSAJaWYgKCpjb250ZXh0X2hhbmRsZSA9PSBHU1NfQ19OT19DT05URVhUKSB7Ci0gCSAgICBmcmVlKHVuaW9uX2N0eF9pZC0+bWVjaF90eXBlLT5lbGVtZW50cyk7Ci0gCSAgICBmcmVlKHVuaW9uX2N0eF9pZC0+bWVjaF90eXBlKTsKLWRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2lucV9jb250ZXh0LmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2lucV9jb250ZXh0LmMKLWluZGV4IDZmMWM3MWUuLjZjMGQ5OGQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2lucV9jb250ZXh0LmMKLSsrKyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfaW5xX2NvbnRleHQuYwotQEAgLTEwNCw2ICsxMDQsOCBAQCBnc3NfaW5xdWlyZV9jb250ZXh0KAotICAgICAgKi8KLSAKLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCkgY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKwlyZXR1cm4gKEdTU19TX05PX0NPTlRFWFQpOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20gKGN0eC0+bWVjaF90eXBlKTsKLSAKLSAgICAgaWYgKCFtZWNoIHx8ICFtZWNoLT5nc3NfaW5xdWlyZV9jb250ZXh0IHx8ICFtZWNoLT5nc3NfZGlzcGxheV9uYW1lIHx8Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19wcmYuYyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfcHJmLmMKLWluZGV4IGZjY2EzZTQuLjllMTY4YWQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3ByZi5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3ByZi5jCi1AQCAtNTksNiArNTksOCBAQCBnc3NfcHNldWRvX3JhbmRvbSAoT01fdWludDMyICptaW5vcl9zdGF0dXMsCi0gICAgICAqLwotIAotICAgICBjdHggPSAoZ3NzX3VuaW9uX2N0eF9pZF90KSBjb250ZXh0X2hhbmRsZTsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCXJldHVybiBHU1NfU19OT19DT05URVhUOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20gKGN0eC0+bWVjaF90eXBlKTsKLSAKLSAgICAgaWYgKG1lY2ggIT0gTlVMTCkgewotZGlmZiAtLWdpdCBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfcHJvY2Vzc19jb250ZXh0LmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Byb2Nlc3NfY29udGV4dC5jCi1pbmRleCBiYzI2MGFlLi4zOTY4YjVkIDEwMDY0NAotLS0tIGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19wcm9jZXNzX2NvbnRleHQuYwotKysrIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19wcm9jZXNzX2NvbnRleHQuYwotQEAgLTYxLDYgKzYxLDggQEAgZ3NzX2J1ZmZlcl90CQl0b2tlbl9idWZmZXI7Ci0gICAgICAqLwotIAotICAgICBjdHggPSAoZ3NzX3VuaW9uX2N0eF9pZF90KSBjb250ZXh0X2hhbmRsZTsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCXJldHVybiAoR1NTX1NfTk9fQ09OVEVYVCk7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbSAoY3R4LT5tZWNoX3R5cGUpOwotIAotICAgICBpZiAobWVjaCkgewotZGlmZiAtLWdpdCBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfc2VhbC5jIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19zZWFsLmMKLWluZGV4IGYxNzI0MWMuLjNkYjFlZTAgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3NlYWwuYwotKysrIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19zZWFsLmMKLUBAIC05Miw2ICs5Miw4IEBAIGdzc193cmFwKCBPTV91aW50MzIgKm1pbm9yX3N0YXR1cywKLSAgICAgICovCi0gCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpIGNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsgICAgICAgIHJldHVybiAoR1NTX1NfTk9fQ09OVEVYVCk7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbSAoY3R4LT5tZWNoX3R5cGUpOwotIAotICAgICBpZiAobWVjaCkgewotQEAgLTIyNiw2ICsyMjgsOCBAQCBnc3Nfd3JhcF9zaXplX2xpbWl0KE9NX3VpbnQzMiAgKm1pbm9yX3N0YXR1cywKLSAgICAgICovCi0gCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpIGNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsgICAgICAgIHJldHVybiAoR1NTX1NfTk9fQ09OVEVYVCk7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbSAoY3R4LT5tZWNoX3R5cGUpOwotIAotICAgICBpZiAoIW1lY2gpCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19zaWduLmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3NpZ24uYwotaW5kZXggODZkNjQxYS4uMDNmYmQ4YyAxMDA2NDQKLS0tLSBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfc2lnbi5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3NpZ24uYwotQEAgLTk0LDYgKzk0LDggQEAgZ3NzX2J1ZmZlcl90CQltc2dfdG9rZW47Ci0gICAgICAqLwotIAotICAgICBjdHggPSAoZ3NzX3VuaW9uX2N0eF9pZF90KSBjb250ZXh0X2hhbmRsZTsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCXJldHVybiAoR1NTX1NfTk9fQ09OVEVYVCk7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbSAoY3R4LT5tZWNoX3R5cGUpOwotIAotICAgICBpZiAobWVjaCkgewotZGlmZiAtLWdpdCBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfdW5zZWFsLmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vuc2VhbC5jCi1pbmRleCAzZTgwNTNjLi5jMjA4NjM1IDEwMDY0NAotLS0tIGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ191bnNlYWwuYwotKysrIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ191bnNlYWwuYwotQEAgLTc2LDYgKzc2LDggQEAgZ3NzX3FvcF90ICoJCXFvcF9zdGF0ZTsKLSAgICAgICogY2FsbCBpdC4KLSAgICAgICovCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpIGNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIChHU1NfU19OT19DT05URVhUKTsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gCi0gICAgIGlmIChtZWNoKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ191bndyYXBfYWVhZC5jIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ191bndyYXBfYWVhZC5jCi1pbmRleCBlNzhiZmYyLi4wNjgyYmQ4IDEwMDY0NAotLS0tIGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ191bndyYXBfYWVhZC5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vud3JhcF9hZWFkLmMKLUBAIC0xODYsNiArMTg2LDggQEAgZ3NzX3FvcF90CQkqcW9wX3N0YXRlOwotICAgICAgKiBjYWxsIGl0LgotICAgICAgKi8KLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCkgY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKwlyZXR1cm4gKEdTU19TX05PX0NPTlRFWFQpOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20gKGN0eC0+bWVjaF90eXBlKTsKLSAKLSAgICAgaWYgKCFtZWNoKQotZGlmZiAtLWdpdCBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfdW53cmFwX2lvdi5jIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ191bndyYXBfaW92LmMKLWluZGV4IGMwZGQzMTQuLjU5OWJlMmMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vud3JhcF9pb3YuYwotKysrIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ191bndyYXBfaW92LmMKLUBAIC04OSw2ICs4OSw4IEBAIGludAkJCWlvdl9jb3VudDsKLSAgICAgICovCi0gCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpIGNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIChHU1NfU19OT19DT05URVhUKTsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gCi0gICAgIGlmIChtZWNoKSB7Ci1AQCAtMTI4LDYgKzEzMCw4IEBAIGdzc192ZXJpZnlfbWljX2lvdihPTV91aW50MzIgKm1pbm9yX3N0YXR1cywgZ3NzX2N0eF9pZF90IGNvbnRleHRfaGFuZGxlLAotIAotICAgICAvKiBTZWxlY3QgdGhlIGFwcHJvcHJhdGUgdW5kZXJseWluZyBtZWNoYW5pc20gcm91dGluZSBhbmQgY2FsbCBpdC4gKi8KLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCljb250ZXh0X2hhbmRsZTsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCXJldHVybiBHU1NfU19OT19DT05URVhUOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20oY3R4LT5tZWNoX3R5cGUpOwotICAgICBpZiAobWVjaCA9PSBOVUxMKQotIAlyZXR1cm4gR1NTX1NfQkFEX01FQ0g7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ192ZXJpZnkuYyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfdmVyaWZ5LmMKLWluZGV4IDE1NzhhZTEuLjg5OTZmY2UgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3ZlcmlmeS5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3ZlcmlmeS5jCi1AQCAtNjUsNiArNjUsOCBAQCBnc3NfcW9wX3QgKgkJcW9wX3N0YXRlOwotICAgICAgKi8KLSAKLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCkgY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKwlyZXR1cm4gKEdTU19TX05PX0NPTlRFWFQpOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20gKGN0eC0+bWVjaF90eXBlKTsKLSAKLSAgICAgaWYgKG1lY2gpIHsKLWRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3dyYXBfYWVhZC5jIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ193cmFwX2FlYWQuYwotaW5kZXggOTZjZGYzYy4uN2ZlM2I3YiAxMDA2NDQKLS0tLSBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfd3JhcF9hZWFkLmMKLSsrKyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfd3JhcF9hZWFkLmMKLUBAIC0yNTYsNiArMjU2LDggQEAgZ3NzX2J1ZmZlcl90CQlvdXRwdXRfbWVzc2FnZV9idWZmZXI7Ci0gICAgICAqIGNhbGwgaXQuCi0gICAgICAqLwotICAgICBjdHggPSAoZ3NzX3VuaW9uX2N0eF9pZF90KWNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIChHU1NfU19OT19DT05URVhUKTsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gICAgIGlmICghbWVjaCkKLSAJcmV0dXJuIChHU1NfU19CQURfTUVDSCk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ193cmFwX2lvdi5jIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ193cmFwX2lvdi5jCi1pbmRleCA0MGNkOThmLi4xNDQ0N2M0IDEwMDY0NAotLS0tIGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ193cmFwX2lvdi5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3dyYXBfaW92LmMKLUBAIC05Myw2ICs5Myw4IEBAIGludAkJCWlvdl9jb3VudDsKLSAgICAgICovCi0gCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpIGNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIChHU1NfU19OT19DT05URVhUKTsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gCi0gICAgIGlmIChtZWNoKSB7Ci1AQCAtMTUxLDYgKzE1Myw4IEBAIGludAkJCWlvdl9jb3VudDsKLSAgICAgICovCi0gCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpIGNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIChHU1NfU19OT19DT05URVhUKTsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gCi0gICAgIGlmIChtZWNoKSB7Ci1AQCAtMTkwLDYgKzE5NCw4IEBAIGdzc19nZXRfbWljX2lvdihPTV91aW50MzIgKm1pbm9yX3N0YXR1cywgZ3NzX2N0eF9pZF90IGNvbnRleHRfaGFuZGxlLAotIAotICAgICAvKiBTZWxlY3QgdGhlIGFwcHJvcHJhdGUgdW5kZXJseWluZyBtZWNoYW5pc20gcm91dGluZSBhbmQgY2FsbCBpdC4gKi8KLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCljb250ZXh0X2hhbmRsZTsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCXJldHVybiBHU1NfU19OT19DT05URVhUOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20oY3R4LT5tZWNoX3R5cGUpOwotICAgICBpZiAobWVjaCA9PSBOVUxMKQotIAlyZXR1cm4gR1NTX1NfQkFEX01FQ0g7Ci1AQCAtMjE4LDYgKzIyNCw4IEBAIGdzc19nZXRfbWljX2lvdl9sZW5ndGgoT01fdWludDMyICptaW5vcl9zdGF0dXMsIGdzc19jdHhfaWRfdCBjb250ZXh0X2hhbmRsZSwKLSAKLSAgICAgLyogU2VsZWN0IHRoZSBhcHByb3ByYXRlIHVuZGVybHlpbmcgbWVjaGFuaXNtIHJvdXRpbmUgYW5kIGNhbGwgaXQuICovCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKwlyZXR1cm4gR1NTX1NfTk9fQ09OVEVYVDsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtKGN0eC0+bWVjaF90eXBlKTsKLSAgICAgaWYgKG1lY2ggPT0gTlVMTCkKLSAJcmV0dXJuIEdTU19TX0JBRF9NRUNIOwotLS0gCi0yLjEwLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9ldGMvZGVmYXVsdC9rcmI1LWFkbWluLXNlcnZlciBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUvZXRjL2RlZmF1bHQva3JiNS1hZG1pbi1zZXJ2ZXIKaW5kZXggMjgzNTkyOS4uZTA5NzM1MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9ldGMvZGVmYXVsdC9rcmI1LWFkbWluLXNlcnZlcgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L2V0Yy9kZWZhdWx0L2tyYjUtYWRtaW4tc2VydmVyCkBAIC0xLDYgKzEsNCBAQAogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gIElmIHlvdSBjaGFuZ2UgYW55dGhpbmcgaW4gdGhpcyBmaWxlIG90aGVyIHRoYW4gdGhlCi0jIHZhbHVlcyBvZiBSVU5fS0FETUlORCBvciBEQUVNT05fQVJHUywgZmlyc3QgcnVuIGRwa2ctcmVjb25maWd1cmUKKyMgdmFsdWVzIG9mIERBRU1PTl9BUkdTLCBmaXJzdCBydW4gZHBrZy1yZWNvbmZpZ3VyZQogIyBrcmI1LWFkbWluLXNlcnZlciBhbmQgZGlzYWJsZSBtYW5hZ2luZyB0aGUga2FkbWluIGNvbmZpZ3VyYXRpb24gd2l0aAogIyBkZWJjb25mLiAgT3RoZXJ3aXNlLCBjaGFuZ2VzIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCi0KLVJVTl9LQURNSU5EPXRydWUKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUvZml4LUNWRS0yMDE3LTExMzY4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9maXgtQ1ZFLTIwMTctMTEzNjgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyZWI3YmMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9maXgtQ1ZFLTIwMTctMTEzNjgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTYgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbaHR0cHM6Ly9naXRodWIuY29tL2tyYjUva3JiNS9jb21taXQvZmZiMzViYWFjNjk4MWY5ZTg5MTRmOGYzYmZmZDM3ZjI4NGI4NTk3MF0KLQotQmFja3BvcnQgcGF0Y2ggdG8gZml4IENWRS0yMDE3LTExMzY4LgotCi1TaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KLS0tLQotRnJvbSBmZmIzNWJhYWM2OTgxZjllODkxNGY4ZjNiZmZkMzdmMjg0Yjg1OTcwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogR3JlZyBIdWRzb24gPGdodWRzb25AbWl0LmVkdT4KLURhdGU6IFRodSwgMTMgSnVsIDIwMTcgMTI6MTQ6MjAgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gUHJldmVudCBLREMgdW5zZXQgc3RhdHVzIGFzc2VydGlvbiBmYWlsdXJlcwotCi1Bc3NpZ24gc3RhdHVzIHZhbHVlcyBpZiBTNFUyU2VsZiBwYWRhdGEgZmFpbHMgdG8gZGVjb2RlLCBpZiBhbgotUzRVMlByb3h5IHJlcXVlc3QgdXNlcyBpbnZhbGlkIEtEQyBvcHRpb25zLCBvciBpZiBhbiBTNFUyUHJveHkgcmVxdWVzdAotdXNlcyBhbiBldmlkZW5jZSB0aWNrZXQgd2hpY2ggZG9lcyBub3QgbWF0Y2ggdGhlIGNhbm9uaWNhbGl6ZWQgcmVxdWVzdAotc2VydmVyIHByaW5jaXBhbCBuYW1lLiAgUmVwb3J0ZWQgYnkgU2FtdWVsIENhYnJlcm8uCi0KLUlmIGEgc3RhdHVzIHZhbHVlIGlzIG5vdCBhc3NpZ25lZCBkdXJpbmcgS0RDIHByb2Nlc3NpbmcsIGRlZmF1bHQgdG8KLSJVTktOT1dOX1JFQVNPTiIgcmF0aGVyIHRoYW4gZmFpbGluZyBhbiBhc3NlcnRpb24uICBUaGlzIGNoYW5nZSB3aWxsCi1wcmV2ZW50IGZ1dHVyZSBkZW5pYWwgb2Ygc2VydmljZSBidWdzIGR1ZSB0byBzaW1pbGFyIG1pc3Rha2VzLCBhbmQKLXdpbGwgYWxsb3cgdXMgdG8gb21pdCBhc3NpZ25pbmcgc3RhdHVzIHZhbHVlcyBmb3IgdW5saWtlbHkgZXJyb3JzIHN1Y2gKLWFzIHNtYWxsIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmVzLgotCi1DVkUtMjAxNy0xMTM2ODoKLQotSW4gTUlUIGtyYjUgMS43IGFuZCBsYXRlciwgYW4gYXV0aGVudGljYXRlZCBhdHRhY2tlciBjYW4gY2F1c2UgYW4KLWFzc2VydGlvbiBmYWlsdXJlIGluIGtyYjVrZGMgYnkgc2VuZGluZyBhbiBpbnZhbGlkIFM0VTJTZWxmIG9yCi1TNFUyUHJveHkgcmVxdWVzdC4KLQotICBDVlNTdjMgVmVjdG9yOiBBVjpOL0FDOkwvUFI6TC9VSTpOL1M6VS9DOk4vSTpOL0E6SC9FOkgvUkw6Ty9SQzpDCi0KLXRpY2tldDogODU5OSAobmV3KQotdGFyZ2V0X3ZlcnNpb246IDEuMTUtbmV4dAotdGFyZ2V0X3ZlcnNpb246IDEuMTQtbmV4dAotdGFnczogcHVsbHVwCi0tLS0KLSBzcmMva2RjL2RvX2FzX3JlcS5jICB8ICA0ICsrLS0KLSBzcmMva2RjL2RvX3Rnc19yZXEuYyB8ICAzICsrLQotIHNyYy9rZGMva2RjX3V0aWwuYyAgIHwgMTAgKysrKysrKystLQotIDMgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9rZGMvZG9fYXNfcmVxLmMgYi9zcmMva2RjL2RvX2FzX3JlcS5jCi1pbmRleCAyZDNhZDEzLi45YjI1NmM4IDEwMDY0NAotLS0tIGEvc3JjL2tkYy9kb19hc19yZXEuYwotKysrIGIvc3JjL2tkYy9kb19hc19yZXEuYwotQEAgLTM2Niw4ICszNjYsOCBAQCBmaW5pc2hfcHJvY2Vzc19hc19yZXEoc3RydWN0IGFzX3JlcV9zdGF0ZSAqc3RhdGUsIGtyYjVfZXJyb3JfY29kZSBlcnJjb2RlKQotICAgICBkaWRfbG9nID0gMTsKLSAKLSBlZ3Jlc3M6Ci0tICAgIGlmIChlcnJjb2RlICE9IDApCi0tICAgICAgICBhc3NlcnQgKHN0YXRlLT5zdGF0dXMgIT0gMCk7Ci0rICAgIGlmIChlcnJjb2RlICE9IDAgJiYgc3RhdGUtPnN0YXR1cyA9PSBOVUxMKQotKyAgICAgICAgc3RhdGUtPnN0YXR1cyA9ICJVTktOT1dOX1JFQVNPTiI7Ci0gCi0gICAgIGF1X3N0YXRlLT5zdGF0dXMgPSBzdGF0ZS0+c3RhdHVzOwotICAgICBhdV9zdGF0ZS0+cmVwbHkgPSAmc3RhdGUtPnJlcGx5OwotZGlmZiAtLWdpdCBhL3NyYy9rZGMvZG9fdGdzX3JlcS5jIGIvc3JjL2tkYy9kb190Z3NfcmVxLmMKLWluZGV4IGNkYzc5YWQuLmQ4ZDY3MTkgMTAwNjQ0Ci0tLS0gYS9zcmMva2RjL2RvX3Rnc19yZXEuYwotKysrIGIvc3JjL2tkYy9kb190Z3NfcmVxLmMKLUBAIC04MjMsNyArODIzLDggQEAgcHJvY2Vzc190Z3NfcmVxKHN0cnVjdCBzZXJ2ZXJfaGFuZGxlICpoYW5kbGUsIGtyYjVfZGF0YSAqcGt0LAotICAgICBmcmVlKHJlcGx5LmVuY19wYXJ0LmNpcGhlcnRleHQuZGF0YSk7Ci0gCi0gY2xlYW51cDoKLS0gICAgYXNzZXJ0KHN0YXR1cyAhPSBOVUxMKTsKLSsgICAgaWYgKHN0YXR1cyA9PSBOVUxMKQotKyAgICAgICAgc3RhdHVzID0gIlVOS05PV05fUkVBU09OIjsKLSAgICAgaWYgKHJlcGx5X2tleSkKLSAgICAgICAgIGtyYjVfZnJlZV9rZXlibG9jayhrZGNfY29udGV4dCwgcmVwbHlfa2V5KTsKLSAgICAgaWYgKGVycmNvZGUpCi1kaWZmIC0tZ2l0IGEvc3JjL2tkYy9rZGNfdXRpbC5jIGIvc3JjL2tkYy9rZGNfdXRpbC5jCi1pbmRleCA3NzhhNjI5Li5iNzEwYWVmIDEwMDY0NAotLS0tIGEvc3JjL2tkYy9rZGNfdXRpbC5jCi0rKysgYi9zcmMva2RjL2tkY191dGlsLmMKLUBAIC0xMjIwLDggKzEyMjAsMTAgQEAga2RjX3Byb2Nlc3NfZm9yX3VzZXIoa2RjX3JlYWxtX3QgKmtkY19hY3RpdmVfcmVhbG0sCi0gICAgIHJlcV9kYXRhLmRhdGEgPSAoY2hhciAqKXBhX2RhdGEtPmNvbnRlbnRzOwotIAotICAgICBjb2RlID0gZGVjb2RlX2tyYjVfcGFfZm9yX3VzZXIoJnJlcV9kYXRhLCAmZm9yX3VzZXIpOwotLSAgICBpZiAoY29kZSkKLSsgICAgaWYgKGNvZGUpIHsKLSsgICAgICAgICpzdGF0dXMgPSAiREVDT0RFX1BBX0ZPUl9VU0VSIjsKLSAgICAgICAgIHJldHVybiBjb2RlOwotKyAgICB9Ci0gCi0gICAgIGNvZGUgPSB2ZXJpZnlfZm9yX3VzZXJfY2hlY2tzdW0oa2RjX2NvbnRleHQsIHRnc19zZXNzaW9uLCBmb3JfdXNlcik7Ci0gICAgIGlmIChjb2RlKSB7Ci1AQCAtMTMyMCw4ICsxMzIyLDEwIEBAIGtkY19wcm9jZXNzX3M0dV94NTA5X3VzZXIoa3JiNV9jb250ZXh0IGNvbnRleHQsCi0gICAgIHJlcV9kYXRhLmRhdGEgPSAoY2hhciAqKXBhX2RhdGEtPmNvbnRlbnRzOwotIAotICAgICBjb2RlID0gZGVjb2RlX2tyYjVfcGFfczR1X3g1MDlfdXNlcigmcmVxX2RhdGEsIHM0dV94NTA5X3VzZXIpOwotLSAgICBpZiAoY29kZSkKLSsgICAgaWYgKGNvZGUpIHsKLSsgICAgICAgICpzdGF0dXMgPSAiREVDT0RFX1BBX1M0VV9YNTA5X1VTRVIiOwotICAgICAgICAgcmV0dXJuIGNvZGU7Ci0rICAgIH0KLSAKLSAgICAgY29kZSA9IHZlcmlmeV9zNHVfeDUwOV91c2VyX2NoZWNrc3VtKGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Z3Nfc3Via2V5ID8gdGdzX3N1YmtleSA6Ci1AQCAtMTYyNCw2ICsxNjI4LDcgQEAga2RjX3Byb2Nlc3NfczR1MnByb3h5X3JlcShrZGNfcmVhbG1fdCAqa2RjX2FjdGl2ZV9yZWFsbSwKLSAgICAgICogdGhhdCBpcyB2YWxpZGF0ZWQgcHJldmlvdXNseSBpbiB2YWxpZGF0ZV90Z3NfcmVxdWVzdCgpLgotICAgICAgKi8KLSAgICAgaWYgKHJlcXVlc3QtPmtkY19vcHRpb25zICYgKE5PTl9UR1RfT1BUSU9OIHwgS0RDX09QVF9FTkNfVEtUX0lOX1NLRVkpKSB7Ci0rICAgICAgICAqc3RhdHVzID0gIklOVkFMSURfUzRVMlBST1hZX09QVElPTlMiOwotICAgICAgICAgcmV0dXJuIEtSQjVLRENfRVJSX0JBRE9QVElPTjsKLSAgICAgfQotIAotQEAgLTE2MzEsNiArMTYzNiw3IEBAIGtkY19wcm9jZXNzX3M0dTJwcm94eV9yZXEoa2RjX3JlYWxtX3QgKmtkY19hY3RpdmVfcmVhbG0sCi0gICAgIGlmICgha3JiNV9wcmluY2lwYWxfY29tcGFyZShrZGNfY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlci0+cHJpbmMsIC8qIGFmdGVyIGNhbm9uICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfcHJpbmMpKSB7Ci0rICAgICAgICAqc3RhdHVzID0gIkVWSURFTkNFX1RJQ0tFVF9NSVNNQVRDSCI7Ci0gICAgICAgICByZXR1cm4gS1JCNUtEQ19FUlJfU0VSVkVSX05PTUFUQ0g7Ci0gICAgIH0KLSAKLS0tIAotMi4xMC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUva3JiNS1hZG1pbi1zZXJ2ZXIuc2VydmljZSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUva3JiNS1hZG1pbi1zZXJ2ZXIuc2VydmljZQppbmRleCAxYjQyNzE2Li4yMTkzOWExIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L2tyYjUtYWRtaW4tc2VydmVyLnNlcnZpY2UKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9rcmI1LWFkbWluLXNlcnZlci5zZXJ2aWNlCkBAIC03LDYgKzcsNyBAQAogVHlwZT1mb3JraW5nCiBFeGVjU3RhcnRQcmU9L2Jpbi9zaCAtYyAidGVzdCAhIC1mIC92YXIvbG9nL2thZG1pbmQubG9nIHx8IHRlc3QgISAteCAvc2Jpbi9yZXN0b3JlY29uIHx8IC9zYmluL3Jlc3RvcmVjb24gLUYgL3Zhci9sb2cva2FkbWluZC5sb2ciCiBFeGVjU3RhcnQ9L3Vzci9zYmluL2thZG1pbmQKK0Vudmlyb25tZW50RmlsZT0tL2V0Yy9kZWZhdWx0L2tyYjUtYWRtaW4tc2VydmVyCiBTdWNjZXNzRXhpdFN0YXR1cz0xIDIgU0lHS0lMTAogVGltZW91dFN0b3BTZWM9MzAKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9rcmI1LWtkYy5zZXJ2aWNlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9rcmI1LWtkYy5zZXJ2aWNlCmluZGV4IGQ1ZTVhOTUuLmJmMzdjNDUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUva3JiNS1rZGMuc2VydmljZQorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L2tyYjUta2RjLnNlcnZpY2UKQEAgLTYsNiArNiw3IEBACiBbU2VydmljZV0KIFR5cGU9Zm9ya2luZwogRXhlY1N0YXJ0PS91c3Ivc2Jpbi9rcmI1a2RjCitFbnZpcm9ubWVudEZpbGU9LS9ldGMvZGVmYXVsdC9rcmI1LWtkYwogU3VjY2Vzc0V4aXRTdGF0dXM9MSAyIFNJR0tJTEwKIFRpbWVvdXRTdG9wU2VjPTMwCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjVfMS4xNS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNV8xLjE1LjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3NWU4NjEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNV8xLjE1LjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxODQgKzAsMCBAQAotU1VNTUFSWSA9ICJBIG5ldHdvcmsgYXV0aGVudGljYXRpb24gcHJvdG9jb2wiCi1ERVNDUklQVElPTiA9ICJLZXJiZXJvcyBpcyBhIHN5c3RlbSBmb3IgYXV0aGVudGljYXRpbmcgdXNlcnMgYW5kIHNlcnZpY2VzIG9uIGEgbmV0d29yay4gXAotIEtlcmJlcm9zIGlzIGEgdHJ1c3RlZCB0aGlyZC1wYXJ0eSBzZXJ2aWNlLiAgVGhhdCBtZWFucyB0aGF0IHRoZXJlIGlzIGEgXAotIHRoaXJkIHBhcnR5ICh0aGUgS2VyYmVyb3Mgc2VydmVyKSB0aGF0IGlzIHRydXN0ZWQgYnkgYWxsIHRoZSBlbnRpdGllcyBvbiBcCi0gdGhlIG5ldHdvcmsgKHVzZXJzIGFuZCBzZXJ2aWNlcywgdXN1YWxseSBjYWxsZWQgInByaW5jaXBhbHMiKS4gXAotIC4gXAotIFRoaXMgaXMgdGhlIE1JVCByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gb2YgS2VyYmVyb3MgVjUuIFwKLSAuIFwKLSBUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIEtlcmJlcm9zIGtleSBzZXJ2ZXIgKEtEQykuICBUaGUgS0RDIG1hbmFnZXMgYWxsIFwKLSBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscyBmb3IgYSBLZXJiZXJvcyByZWFsbSwgaG9sZHMgdGhlIG1hc3RlciBrZXlzIFwKLSBmb3IgdGhlIHJlYWxtLCBhbmQgcmVzcG9uZHMgdG8gYXV0aGVudGljYXRpb24gcmVxdWVzdHMuICBUaGlzIHBhY2thZ2UgXAotIHNob3VsZCBiZSBpbnN0YWxsZWQgb24gYm90aCBtYXN0ZXIgYW5kIHNsYXZlIEtEQ3MuIgotCi1IT01FUEFHRSA9ICJodHRwOi8vd2ViLm1pdC5lZHUvS2VyYmVyb3MvIgotU0VDVElPTiA9ICJjb25zb2xlL25ldHdvcmsiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7U30vLi4vTk9USUNFO21kNT0zZTEyYjhhMDY1Y2NhMjVkZmRjYWM3MzRmYjNlYzBiOSIKLURFUEVORFMgPSAibmN1cnNlcyB1dGlsLWxpbnV4IGUyZnNwcm9ncyBlMmZzcHJvZ3MtbmF0aXZlIgotCi1pbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAgYmluY29uZmlnIHBlcmxuYXRpdmUgc3lzdGVtZCB1cGRhdGUtcmMuZAotCi1TSFJUX1ZFUiA9ICIke0BvZS51dGlscy50cmltX3ZlcnNpb24oIiR7UFZ9IiwgMil9IgotU1JDX1VSSSA9ICJodHRwOi8vd2ViLm1pdC5lZHUva2VyYmVyb3MvZGlzdC8ke0JQTn0vJHtTSFJUX1ZFUn0vJHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtYWNsb2NhbC1BZGQtcGFyYW1ldGVyLXRvLWRpc2FibGUta2V5dXRpbHMtZGV0ZWN0aW9uLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2RlYmlhbi1zdXBwcmVzcy11c3ItbGliLWluLWtyYjUtY29uZmlnLnBhdGNoO3N0cmlwbGV2ZWw9MiBcCi0gICAgICAgICAgIGZpbGU6Ly9jcm9zc2NvbXBpbGVfbm0ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vZXRjL2luaXQuZC9rcmI1LWtkYyBcCi0gICAgICAgICAgIGZpbGU6Ly9ldGMvaW5pdC5kL2tyYjUtYWRtaW4tc2VydmVyIFwKLSAgICAgICAgICAgZmlsZTovL2V0Yy9kZWZhdWx0L2tyYjUta2RjIFwKLSAgICAgICAgICAgZmlsZTovL2V0Yy9kZWZhdWx0L2tyYjUtYWRtaW4tc2VydmVyIFwKLSAgICAgICAgICAgZmlsZTovL2tyYjUta2RjLnNlcnZpY2UgXAotICAgICAgICAgICBmaWxlOi8va3JiNS1hZG1pbi1zZXJ2ZXIuc2VydmljZSBcCi0gICAgICAgICAgIGZpbGU6Ly9maXgtQ1ZFLTIwMTctMTEzNjgucGF0Y2g7c3RyaXBsZXZlbD0yIFwKLSAgICAgICAgICAgZmlsZTovL0NWRS0yMDE3LTExNDYyLnBhdGNoO3N0cmlwbGV2ZWw9MiBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiODAyMmYzYTFjZGU4NDYzZTQ0ZmQzNWVmNDI3MzFmODUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDM3Yzg4MzFkZGQ1ZmRlMmE5OTNmZWY0MjVkZWRiNDg0NjgxMDliYjNkMzI2MWVmODM4Mjk1MDQ1YTg5ZWI0NSIKLQotQ1ZFX1BST0RVQ1QgPSAia2VyYmVyb3MiCi0KLVMgPSAiJHtXT1JLRElSfS8ke0JQfS9zcmMiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICJvcGVuc3NsIgotUEFDS0FHRUNPTkZJR1tsaWJlZGl0XSA9ICItLXdpdGgtbGliZWRpdCwtLXdpdGhvdXQtbGliZWRpdCxsaWJlZGl0IgotUEFDS0FHRUNPTkZJR1tvcGVuc3NsXSA9ICItLXdpdGgtcGtpbml0LWNyeXB0by1pbXBsPW9wZW5zc2wsLG9wZW5zc2wiCi1QQUNLQUdFQ09ORklHW2tleXV0aWxzXSA9ICItLWVuYWJsZS1rZXl1dGlscywtLWRpc2FibGUta2V5dXRpbHMsa2V5dXRpbHMiCi1QQUNLQUdFQ09ORklHW2xkYXBdID0gIi0td2l0aC1sZGFwLC0td2l0aG91dC1sZGFwLG9wZW5sZGFwIgotUEFDS0FHRUNPTkZJR1tyZWFkbGluZV0gPSAiLS13aXRoLXJlYWRsaW5lLC0td2l0aG91dC1yZWFkbGluZSxyZWFkbGluZSIKLQotRVhUUkFfT0VDT05GICs9ICIgLS13aXRob3V0LXRjbCAtLXdpdGgtc3lzdGVtLWV0IC0tZGlzYWJsZS1ycGF0aCIKLUNBQ0hFRF9DT05GSUdVUkVWQVJTICs9ICJrcmI1X2N2X2F0dHJfY29uc3RydWN0b3JfZGVzdHJ1Y3Rvcj15ZXMgYWNfY3ZfZnVuY19yZWdjb21wPXllcyBcCi0gICAgICAgICAgICAgICAgICBhY19jdl9wcmludGZfcG9zaXRpb25hbD15ZXMgYWNfY3ZfZmlsZV9fZXRjX2Vudmlyb25tZW50PXllcyBcCi0gICAgICAgICAgICAgICAgICBhY19jdl9maWxlX19ldGNfVElNRVpPTkU9bm8iCi0KLUNGTEFHU19hcHBlbmQgPSAiIC1mUElDIC1EREVTVFJVQ1RPUl9BVFRSX1dPUktTPTEgLUkke1NUQUdJTkdfSU5DRElSfS9ldCIKLUxERkxBR1NfYXBwZW5kID0gIiAtcHRocmVhZCIKLQotZG9fY29uZmlndXJlKCkgewotICAgIGdudS1jb25maWdpemUgLS1mb3JjZQotICAgIGF1dG9yZWNvbmYKLSAgICBvZV9ydW5jb25mCi19Ci0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIHJtIC1yZiAke0R9LyR7bG9jYWxzdGF0ZWRpcn0vcnVuCi0gICAgcm0gLWYgJHtEfSR7YmluZGlyfS9zY2xpZW50Ci0gICAgcm0gLWYgJHtEfSR7YmluZGlyfS9zaW1fY2xpZW50Ci0gICAgcm0gLWYgJHtEfSR7YmluZGlyfS91dWNsaWVudAotICAgIHJtIC1mICR7RH0ke3NiaW5kaXJ9L2tyYjUtc2VuZC1wcgotICAgIHJtIC1mICR7RH0ke3NiaW5kaXJ9L3NpbV9zZXJ2ZXIKLSAgICBybSAtZiAke0R9JHtzYmluZGlyfS9zc2VydmVyCi0gICAgcm0gLWYgJHtEfSR7c2JpbmRpcn0vdXVzZXJ2ZXIKLQotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdmluaXQnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgotICAgICAgICBta2RpciAtcCAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kICR7RH0vJHtzeXNjb25mZGlyfS9kZWZhdWx0Ci0gICAgICAgIGluc3RhbGwgLW0gMDc1NSAke1dPUktESVJ9L2V0Yy9pbml0LmQvKiAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2V0Yy9kZWZhdWx0LyogJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQKLQotICAgICAgICBta2RpciAtcCAke0R9LyR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMKLSAgICAgICAgZWNobyAiZCByb290IHJvb3QgMDc1NSAke2xvY2Fsc3RhdGVkaXJ9L3J1bi9rcmI1a2RjIG5vbmUiIFwKLSAgICAgICAgICAgICAgPiAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcy84N19rcmI1Ci0gICAgZmkKLSAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgotICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQKLSAgICAgICAgZWNobyAiZCAvcnVuL2tyYjVrZGMgLSAtIC0gLSIgXAotICAgICAgICAgICAgICA+ICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQva3JiNS5jb25mCi0KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfQotICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9rcmI1LWFkbWluLXNlcnZlci5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9Ci0gICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2tyYjUta2RjLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0KLSAgICBmaQotfQotCi1QQUNLQUdFUyA9KyAiJHtQTn0tYWRtaW4tc2VydmVyIFwKLSAgICAgICAgICAgICAke1BOfS1nc3Mtc2FtcGxlcyBcCi0gICAgICAgICAgICAgJHtQTn0tazV0bHMgXAotICAgICAgICAgICAgICR7UE59LWtkYyBcCi0gICAgICAgICAgICAgJHtQTn0ta2RjLWxkYXAgXAotICAgICAgICAgICAgICR7UE59LWtwcm9wZCBcCi0gICAgICAgICAgICAgJHtQTn0tb3RwIFwKLSAgICAgICAgICAgICAke1BOfS1wa2luaXQgXAotICAgICAgICAgICAgICR7UE59LXVzZXIgXAotICAgICAgICAgICAgIGxpYmdzc2FwaS1rcmI1IFwKLSAgICAgICAgICAgICBsaWJnc3NycGMgXAotICAgICAgICAgICAgIGxpYms1Y3J5cHRvIFwKLSAgICAgICAgICAgICBsaWJrYWRtNWNsbnQtbWl0IFwKLSAgICAgICAgICAgICBsaWJrYWRtNXNydi1taXQgXAotICAgICAgICAgICAgIGxpYmtkYjUgXAotICAgICAgICAgICAgIGxpYmtyYWQgXAotICAgICAgICAgICAgIGxpYmtyYjUgXAotICAgICAgICAgICAgIGxpYmtyYjVzdXBwb3J0IFwKLSAgICAgICAgICAgICBsaWJ2ZXJ0byIKLQotRklMRVNfJHtQTn0gPSAiJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy9wcmVhdXRoL3Rlc3Quc28iCi1GSUxFU18ke1BOfS1kb2MgKz0gIiR7ZGF0YWRpcn0vZXhhbXBsZXMiCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9rcmI1L3BsdWdpbnMvKi8uZGVidWciCi0KLUZJTEVTXyR7UE59LWFkbWluLXNlcnZlciA9ICIke3NiaW5kaXJ9L2thZG1pbi5sb2NhbCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtzYmluZGlyfS9rYWRtaW5kIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3NiaW5kaXJ9L2twcm9wIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2RlZmF1bHQva3JiNS1hZG1pbi1zZXJ2ZXIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL2tyYjUtYWRtaW4tc2VydmVyIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L2tyYjUtYWRtaW4tc2VydmVyLnNlcnZpY2UiCi0KLUZJTEVTXyR7UE59LWdzcy1zYW1wbGVzID0gIiR7YmluZGlyfS9nc3MtY2xpZW50IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0vZ3NzLXNlcnZlciIKLQotRklMRVNfJHtQTn0tazV0bHMgPSAiJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy90bHMvazV0bHMuc28iCi0KLUZJTEVTXyR7UE59LWtkYyA9ICIke2xpYmRpcn0va3JiNS9wbHVnaW5zL2tkYi9kYjIuc28gXAotICAgICAgICAgICAgICAgICAgICR7bG9jYWxzdGF0ZWRpcn0va3JiNWtkYyBcCi0gICAgICAgICAgICAgICAgICAgJHtzYmluZGlyfS9rZGI1X3V0aWwgXAotICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0va3Byb3Bsb2cgXAotICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0va3JiNWtkYyBcCi0gICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9kZWZhdWx0L2tyYjUta2RjIFwKLSAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzLzg3X2tyYjUgXAotICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL2tyYjUta2RjIFwKLSAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQva3JiNS5jb25mIFwKLSAgICAgICAgICAgICAgICAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L2tyYjUta2RjLnNlcnZpY2UiCi0KLUZJTEVTXyR7UE59LWtkYy1sZGFwID0gIiR7bGliZGlyfS9rcmI1L2xpYmtkYl9sZGFwJHtTT0xJQlN9IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9rcmI1L3BsdWdpbnMva2RiL2tsZGFwLnNvIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0va2RiNV9sZGFwX3V0aWwiCi0KLUZJTEVTXyR7UE59LWtwcm9wZCA9ICIke3NiaW5kaXJ9L2twcm9wZCIKLUZJTEVTXyR7UE59LW90cCA9ICIke2xpYmRpcn0va3JiNS9wbHVnaW5zL3ByZWF1dGgvb3RwLnNvIgotRklMRVNfJHtQTn0tcGtpbml0ID0gIiR7bGliZGlyfS9rcmI1L3BsdWdpbnMvcHJlYXV0aC9wa2luaXQuc28iCi1GSUxFU18ke1BOfS11c2VyID0gIiR7YmluZGlyfS9rKiIKLQotRklMRVNfbGliZ3NzYXBpLWtyYjUgPSAiJHtsaWJkaXJ9L2xpYmdzc2FwaV9rcmI1JHtTT0xJQlN9IgotRklMRVNfbGliZ3NzcnBjID0gIiR7bGliZGlyfS9saWJnc3NycGMke1NPTElCU30iCi1GSUxFU19saWJrNWNyeXB0byA9ICIke2xpYmRpcn0vbGliazVjcnlwdG8ke1NPTElCU30iCi1GSUxFU19saWJrYWRtNWNsbnQtbWl0ID0gIiR7bGliZGlyfS9saWJrYWRtNWNsbnRfbWl0JHtTT0xJQlN9IgotRklMRVNfbGlia2FkbTVzcnYtbWl0ID0gIiR7bGliZGlyfS9saWJrYWRtNXNydl9taXQke1NPTElCU30iCi1GSUxFU19saWJrZGI1ID0gIiR7bGliZGlyfS9saWJrZGI1JHtTT0xJQlN9IgotRklMRVNfbGlia3JhZCA9ICIke2xpYmRpcn0vbGlia3JhZCR7U09MSUJTfSIKLUZJTEVTX2xpYmtyYjUgPSAiJHtsaWJkaXJ9L2xpYmtyYjUke1NPTElCU30gXAotICAgICAgICAgICAgICAgICAke2xpYmRpcn0va3JiNS9wbHVnaW5zL2F1dGhkYXRhIFwKLSAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy9saWJrcmI1IgotRklMRVNfbGlia3JiNXN1cHBvcnQgPSAiJHtsaWJkaXJ9L2xpYmtyYjVzdXBwb3J0JHtTT0xJQlN9IgotRklMRVNfbGlidmVydG8gPSAiJHtsaWJkaXJ9L2xpYnZlcnRvJHtTT0xJQlN9IgotCi1SREVQRU5EU18ke1BOfS1rYWRtaW4tc2VydmVyID0gIiR7UE59LWtkYyIKLVJERVBFTkRTXyR7UE59LWtwcm9wZCA9ICIke1BOfS1rZGMiCi0KLUlOSVRTQ1JJUFRfUEFDS0FHRVMgPSAiJHtQTn0tYWRtaW4tc2VydmVyICR7UE59LWtkYyIKLUlOSVRTQ1JJUFRfTkFNRV8ke1BOfS1hZG1pbi1zZXJ2ZXIgPSAia3JiNS1hZG1pbi1zZXJ2ZXIiCi1JTklUU0NSSVBUX05BTUVfJHtQTn0ta2RjID0gImtyYjUta2RjIgotCi1TWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59LWFkbWluLXNlcnZlciAke1BOfS1rZGMiCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0tYWRtaW4tc2VydmVyID0gImtyYjUtYWRtaW4tc2VydmVyLnNlcnZpY2UiCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0ta2RjID0gImtyYjUta2RjLnNlcnZpY2UiCi0KLXBrZ19wb3N0aW5zdF8ke1BOfS1rZGMgKCkgewotICAgIGlmIFsgLXogIiREIiBdOyB0aGVuCi0gICAgICAgIGlmIGNvbW1hbmQgLXYgc3lzdGVtZC10bXBmaWxlcyA+L2Rldi9udWxsOyB0aGVuCi0gICAgICAgICAgICBzeXN0ZW1kLXRtcGZpbGVzIC0tY3JlYXRlICR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9rcmI1LmNvbmYKLSAgICAgICAgZWxpZiBbIC1lICR7c3lzY29uZmRpcn0vaW5pdC5kL3BvcHVsYXRlLXZvbGF0aWxlLnNoIF07IHRoZW4KLSAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL3BvcHVsYXRlLXZvbGF0aWxlLnNoIHVwZGF0ZQotICAgICAgICBmaQotICAgIGZpCi19Ci0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjVfMS4xNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjVfMS4xNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTUyNDBmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNV8xLjE2LmJiCkBAIC0wLDAgKzEsMTg4IEBACitTVU1NQVJZID0gIkEgbmV0d29yayBhdXRoZW50aWNhdGlvbiBwcm90b2NvbCIKK0RFU0NSSVBUSU9OID0gIktlcmJlcm9zIGlzIGEgc3lzdGVtIGZvciBhdXRoZW50aWNhdGluZyB1c2VycyBhbmQgc2VydmljZXMgb24gYSBuZXR3b3JrLiBcCisgS2VyYmVyb3MgaXMgYSB0cnVzdGVkIHRoaXJkLXBhcnR5IHNlcnZpY2UuICBUaGF0IG1lYW5zIHRoYXQgdGhlcmUgaXMgYSBcCisgdGhpcmQgcGFydHkgKHRoZSBLZXJiZXJvcyBzZXJ2ZXIpIHRoYXQgaXMgdHJ1c3RlZCBieSBhbGwgdGhlIGVudGl0aWVzIG9uIFwKKyB0aGUgbmV0d29yayAodXNlcnMgYW5kIHNlcnZpY2VzLCB1c3VhbGx5IGNhbGxlZCAicHJpbmNpcGFscyIpLiBcCisgLiBcCisgVGhpcyBpcyB0aGUgTUlUIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiBLZXJiZXJvcyBWNS4gXAorIC4gXAorIFRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgS2VyYmVyb3Mga2V5IHNlcnZlciAoS0RDKS4gIFRoZSBLREMgbWFuYWdlcyBhbGwgXAorIGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzIGZvciBhIEtlcmJlcm9zIHJlYWxtLCBob2xkcyB0aGUgbWFzdGVyIGtleXMgXAorIGZvciB0aGUgcmVhbG0sIGFuZCByZXNwb25kcyB0byBhdXRoZW50aWNhdGlvbiByZXF1ZXN0cy4gIFRoaXMgcGFja2FnZSBcCisgc2hvdWxkIGJlIGluc3RhbGxlZCBvbiBib3RoIG1hc3RlciBhbmQgc2xhdmUgS0RDcy4iCisKK0hPTUVQQUdFID0gImh0dHA6Ly93ZWIubWl0LmVkdS9LZXJiZXJvcy8iCitTRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vJHtTfS8uLi9OT1RJQ0U7bWQ1PTU5YjhkYTY1MmYwNzE4NmI0NDc4MmE4NDU0NTc0ZjMwIgorREVQRU5EUyA9ICJuY3Vyc2VzIHV0aWwtbGludXggZTJmc3Byb2dzIGUyZnNwcm9ncy1uYXRpdmUgb3BlbnNzbCIKKworaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIGJpbmNvbmZpZyBwZXJsbmF0aXZlIHN5c3RlbWQgdXBkYXRlLXJjLmQKKworU0hSVF9WRVIgPSAiJHtAb2UudXRpbHMudHJpbV92ZXJzaW9uKCIke1BWfSIsIDIpfSIKK1NSQ19VUkkgPSAiaHR0cDovL3dlYi5taXQuZWR1L2tlcmJlcm9zL2Rpc3QvJHtCUE59LyR7U0hSVF9WRVJ9LyR7QlB9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWFjbG9jYWwtQWRkLXBhcmFtZXRlci10by1kaXNhYmxlLWtleXV0aWxzLWRldGVjdGlvbi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9kZWJpYW4tc3VwcHJlc3MtdXNyLWxpYi1pbi1rcmI1LWNvbmZpZy5wYXRjaDtzdHJpcGxldmVsPTIgXAorICAgICAgICAgICBmaWxlOi8vY3Jvc3Njb21waWxlX25tLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2V0Yy9pbml0LmQva3JiNS1rZGMgXAorICAgICAgICAgICBmaWxlOi8vZXRjL2luaXQuZC9rcmI1LWFkbWluLXNlcnZlciBcCisgICAgICAgICAgIGZpbGU6Ly9ldGMvZGVmYXVsdC9rcmI1LWtkYyBcCisgICAgICAgICAgIGZpbGU6Ly9ldGMvZGVmYXVsdC9rcmI1LWFkbWluLXNlcnZlciBcCisgICAgICAgICAgIGZpbGU6Ly9rcmI1LWtkYy5zZXJ2aWNlIFwKKyAgICAgICAgICAgZmlsZTovL2tyYjUtYWRtaW4tc2VydmVyLnNlcnZpY2UgXAorIgorU1JDX1VSSVttZDVzdW1dID0gIjIzYzVlOWYwNzY0MmRiNGE2N2Y3YTViNjE2OGIxMzE5IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImZhZWIxMjVmODNiMGZiNGNkYjJmOTlmMDg4MTQwNjMxYmI0N2Q5NzU5ODJkZTA5NTZkMThjODU4NDI5NjllMDgiCisKK0NWRV9QUk9EVUNUID0gImtlcmJlcm9zIgorCitTID0gIiR7V09SS0RJUn0vJHtCUH0vc3JjIgorCitQQUNLQUdFQ09ORklHID8/PSAiIgorUEFDS0FHRUNPTkZJR1tsaWJlZGl0XSA9ICItLXdpdGgtbGliZWRpdCwtLXdpdGhvdXQtbGliZWRpdCxsaWJlZGl0IgorUEFDS0FHRUNPTkZJR1tvcGVuc3NsXSA9ICItLXdpdGgtY3J5cHRvLWltcGw9b3BlbnNzbCwsb3BlbnNzbCIKK1BBQ0tBR0VDT05GSUdba2V5dXRpbHNdID0gIi0tZW5hYmxlLWtleXV0aWxzLC0tZGlzYWJsZS1rZXl1dGlscyxrZXl1dGlscyIKK1BBQ0tBR0VDT05GSUdbbGRhcF0gPSAiLS13aXRoLWxkYXAsLS13aXRob3V0LWxkYXAsb3BlbmxkYXAiCitQQUNLQUdFQ09ORklHW3JlYWRsaW5lXSA9ICItLXdpdGgtcmVhZGxpbmUsLS13aXRob3V0LXJlYWRsaW5lLHJlYWRsaW5lIgorCitFWFRSQV9PRUNPTkYgKz0gIiAtLXdpdGhvdXQtdGNsIC0td2l0aC1zeXN0ZW0tZXQgLS1kaXNhYmxlLXJwYXRoIgorQ0FDSEVEX0NPTkZJR1VSRVZBUlMgKz0gImtyYjVfY3ZfYXR0cl9jb25zdHJ1Y3Rvcl9kZXN0cnVjdG9yPXllcyBhY19jdl9mdW5jX3JlZ2NvbXA9eWVzIFwKKyAgICAgICAgICAgICAgICAgIGFjX2N2X3ByaW50Zl9wb3NpdGlvbmFsPXllcyBhY19jdl9maWxlX19ldGNfZW52aXJvbm1lbnQ9eWVzIFwKKyAgICAgICAgICAgICAgICAgIGFjX2N2X2ZpbGVfX2V0Y19USU1FWk9ORT1ubyIKKworQ0ZMQUdTX2FwcGVuZCA9ICIgLWZQSUMgLURERVNUUlVDVE9SX0FUVFJfV09SS1M9MSAtSSR7U1RBR0lOR19JTkNESVJ9L2V0IgorQ0ZMQUdTX2FwcGVuZF9yaXNjdjY0ID0gIiAtRF9SRUVOVFJBTlQgLXB0aHJlYWQiCitMREZMQUdTX2FwcGVuZCA9ICIgLXB0aHJlYWQiCisKK2RvX2NvbmZpZ3VyZSgpIHsKKyAgICBnbnUtY29uZmlnaXplIC0tZm9yY2UKKyAgICBhdXRvcmVjb25mCisgICAgb2VfcnVuY29uZgorfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBybSAtcmYgJHtEfS8ke2xvY2Fsc3RhdGVkaXJ9L3J1bgorICAgIHJtIC1mICR7RH0ke2JpbmRpcn0vc2NsaWVudAorICAgIHJtIC1mICR7RH0ke2JpbmRpcn0vc2ltX2NsaWVudAorICAgIHJtIC1mICR7RH0ke2JpbmRpcn0vdXVjbGllbnQKKyAgICBybSAtZiAke0R9JHtzYmluZGlyfS9rcmI1LXNlbmQtcHIKKyAgICBybSAtZiAke0R9JHtzYmluZGlyfS9zaW1fc2VydmVyCisgICAgcm0gLWYgJHtEfSR7c2JpbmRpcn0vc3NlcnZlcgorICAgIHJtIC1mICR7RH0ke3NiaW5kaXJ9L3V1c2VydmVyCisKKyAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3Zpbml0JywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KKyAgICAgICAgbWtkaXIgLXAgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZCAke0R9LyR7c3lzY29uZmRpcn0vZGVmYXVsdAorICAgICAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS9ldGMvaW5pdC5kLyogJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZAorICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9ldGMvZGVmYXVsdC8qICR7RH0vJHtzeXNjb25mZGlyfS9kZWZhdWx0CisKKyAgICAgICAgbWtkaXIgLXAgJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzCisgICAgICAgIGVjaG8gImQgcm9vdCByb290IDA3NTUgJHtsb2NhbHN0YXRlZGlyfS9ydW4va3JiNWtkYyBub25lIiBcCisgICAgICAgICAgICAgID4gJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvODdfa3JiNQorCisgICAgICAgIGVjaG8gIlJVTl9LQURNSU5EPXRydWUiID4+ICR7RH0vJHtzeXNjb25mZGlyfS9kZWZhdWx0L2tyYjUtYWRtaW4tc2VydmVyCisgICAgZmkKKyAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgorICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQKKyAgICAgICAgZWNobyAiZCAvcnVuL2tyYjVrZGMgLSAtIC0gLSIgXAorICAgICAgICAgICAgICA+ICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQva3JiNS5jb25mCisKKyAgICAgICAgbWtkaXIgLXAgJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQKKyAgICAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vZXRjL2RlZmF1bHQvKiAke0R9LyR7c3lzY29uZmRpcn0vZGVmYXVsdAorCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0KKyAgICAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0va3JiNS1hZG1pbi1zZXJ2ZXIuc2VydmljZSAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfQorICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9rcmI1LWtkYy5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9CisgICAgZmkKK30KKworUEFDS0FHRVMgPSsgIiR7UE59LWFkbWluLXNlcnZlciBcCisgICAgICAgICAgICAgJHtQTn0tZ3NzLXNhbXBsZXMgXAorICAgICAgICAgICAgICR7UE59LWs1dGxzIFwKKyAgICAgICAgICAgICAke1BOfS1rZGMgXAorICAgICAgICAgICAgICR7UE59LWtkYy1sZGFwIFwKKyAgICAgICAgICAgICAke1BOfS1rcHJvcGQgXAorICAgICAgICAgICAgICR7UE59LW90cCBcCisgICAgICAgICAgICAgJHtQTn0tcGtpbml0IFwKKyAgICAgICAgICAgICAke1BOfS11c2VyIFwKKyAgICAgICAgICAgICBsaWJnc3NhcGkta3JiNSBcCisgICAgICAgICAgICAgbGliZ3NzcnBjIFwKKyAgICAgICAgICAgICBsaWJrNWNyeXB0byBcCisgICAgICAgICAgICAgbGlia2FkbTVjbG50LW1pdCBcCisgICAgICAgICAgICAgbGlia2FkbTVzcnYtbWl0IFwKKyAgICAgICAgICAgICBsaWJrZGI1IFwKKyAgICAgICAgICAgICBsaWJrcmFkIFwKKyAgICAgICAgICAgICBsaWJrcmI1IFwKKyAgICAgICAgICAgICBsaWJrcmI1c3VwcG9ydCBcCisgICAgICAgICAgICAgbGlidmVydG8iCisKK0ZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS9rcmI1L3BsdWdpbnMvcHJlYXV0aC90ZXN0LnNvIgorRklMRVNfJHtQTn0tZG9jICs9ICIke2RhdGFkaXJ9L2V4YW1wbGVzIgorRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0va3JiNS9wbHVnaW5zLyovLmRlYnVnIgorCitGSUxFU18ke1BOfS1hZG1pbi1zZXJ2ZXIgPSAiJHtzYmluZGlyfS9rYWRtaW4ubG9jYWwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0va2FkbWluZCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtzYmluZGlyfS9rcHJvcCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9kZWZhdWx0L2tyYjUtYWRtaW4tc2VydmVyIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2luaXQuZC9rcmI1LWFkbWluLXNlcnZlciBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS9rcmI1LWFkbWluLXNlcnZlci5zZXJ2aWNlIgorCitGSUxFU18ke1BOfS1nc3Mtc2FtcGxlcyA9ICIke2JpbmRpcn0vZ3NzLWNsaWVudCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAke3NiaW5kaXJ9L2dzcy1zZXJ2ZXIiCisKK0ZJTEVTXyR7UE59LWs1dGxzID0gIiR7bGliZGlyfS9rcmI1L3BsdWdpbnMvdGxzL2s1dGxzLnNvIgorCitGSUxFU18ke1BOfS1rZGMgPSAiJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy9rZGIvZGIyLnNvIFwKKyAgICAgICAgICAgICAgICAgICAke2xvY2Fsc3RhdGVkaXJ9L2tyYjVrZGMgXAorICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0va2RiNV91dGlsIFwKKyAgICAgICAgICAgICAgICAgICAke3NiaW5kaXJ9L2twcm9wbG9nIFwKKyAgICAgICAgICAgICAgICAgICAke3NiaW5kaXJ9L2tyYjVrZGMgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vZGVmYXVsdC9rcmI1LWtkYyBcCisgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcy84N19rcmI1IFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2luaXQuZC9rcmI1LWtkYyBcCisgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL2tyYjUuY29uZiBcCisgICAgICAgICAgICAgICAgICAgJHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS9rcmI1LWtkYy5zZXJ2aWNlIgorCitGSUxFU18ke1BOfS1rZGMtbGRhcCA9ICIke2xpYmRpcn0va3JiNS9saWJrZGJfbGRhcCR7U09MSUJTfSBcCisgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0va3JiNS9wbHVnaW5zL2tkYi9rbGRhcC5zbyBcCisgICAgICAgICAgICAgICAgICAgICAgICAke3NiaW5kaXJ9L2tkYjVfbGRhcF91dGlsIgorCitGSUxFU18ke1BOfS1rcHJvcGQgPSAiJHtzYmluZGlyfS9rcHJvcGQiCitGSUxFU18ke1BOfS1vdHAgPSAiJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy9wcmVhdXRoL290cC5zbyIKK0ZJTEVTXyR7UE59LXBraW5pdCA9ICIke2xpYmRpcn0va3JiNS9wbHVnaW5zL3ByZWF1dGgvcGtpbml0LnNvIgorRklMRVNfJHtQTn0tdXNlciA9ICIke2JpbmRpcn0vayoiCisKK0ZJTEVTX2xpYmdzc2FwaS1rcmI1ID0gIiR7bGliZGlyfS9saWJnc3NhcGlfa3JiNSR7U09MSUJTfSIKK0ZJTEVTX2xpYmdzc3JwYyA9ICIke2xpYmRpcn0vbGliZ3NzcnBjJHtTT0xJQlN9IgorRklMRVNfbGliazVjcnlwdG8gPSAiJHtsaWJkaXJ9L2xpYms1Y3J5cHRvJHtTT0xJQlN9IgorRklMRVNfbGlia2FkbTVjbG50LW1pdCA9ICIke2xpYmRpcn0vbGlia2FkbTVjbG50X21pdCR7U09MSUJTfSIKK0ZJTEVTX2xpYmthZG01c3J2LW1pdCA9ICIke2xpYmRpcn0vbGlia2FkbTVzcnZfbWl0JHtTT0xJQlN9IgorRklMRVNfbGlia2RiNSA9ICIke2xpYmRpcn0vbGlia2RiNSR7U09MSUJTfSIKK0ZJTEVTX2xpYmtyYWQgPSAiJHtsaWJkaXJ9L2xpYmtyYWQke1NPTElCU30iCitGSUxFU19saWJrcmI1ID0gIiR7bGliZGlyfS9saWJrcmI1JHtTT0xJQlN9IFwKKyAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy9hdXRoZGF0YSBcCisgICAgICAgICAgICAgICAgICR7bGliZGlyfS9rcmI1L3BsdWdpbnMvbGlia3JiNSIKK0ZJTEVTX2xpYmtyYjVzdXBwb3J0ID0gIiR7bGliZGlyfS9saWJrcmI1c3VwcG9ydCR7U09MSUJTfSIKK0ZJTEVTX2xpYnZlcnRvID0gIiR7bGliZGlyfS9saWJ2ZXJ0byR7U09MSUJTfSIKKworUkRFUEVORFNfJHtQTn0ta2FkbWluLXNlcnZlciA9ICIke1BOfS1rZGMiCitSREVQRU5EU18ke1BOfS1rcHJvcGQgPSAiJHtQTn0ta2RjIgorCitJTklUU0NSSVBUX1BBQ0tBR0VTID0gIiR7UE59LWFkbWluLXNlcnZlciAke1BOfS1rZGMiCitJTklUU0NSSVBUX05BTUVfJHtQTn0tYWRtaW4tc2VydmVyID0gImtyYjUtYWRtaW4tc2VydmVyIgorSU5JVFNDUklQVF9OQU1FXyR7UE59LWtkYyA9ICJrcmI1LWtkYyIKKworU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfS1hZG1pbi1zZXJ2ZXIgJHtQTn0ta2RjIgorU1lTVEVNRF9TRVJWSUNFXyR7UE59LWFkbWluLXNlcnZlciA9ICJrcmI1LWFkbWluLXNlcnZlci5zZXJ2aWNlIgorU1lTVEVNRF9TRVJWSUNFXyR7UE59LWtkYyA9ICJrcmI1LWtkYy5zZXJ2aWNlIgorCitwa2dfcG9zdGluc3RfJHtQTn0ta2RjICgpIHsKKyAgICBpZiBbIC16ICIkRCIgXTsgdGhlbgorICAgICAgICBpZiBjb21tYW5kIC12IHN5c3RlbWQtdG1wZmlsZXMgPi9kZXYvbnVsbDsgdGhlbgorICAgICAgICAgICAgc3lzdGVtZC10bXBmaWxlcyAtLWNyZWF0ZSAke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQva3JiNS5jb25mCisgICAgICAgIGVsaWYgWyAtZSAke3N5c2NvbmZkaXJ9L2luaXQuZC9wb3B1bGF0ZS12b2xhdGlsZS5zaCBdOyB0aGVuCisgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2luaXQuZC9wb3B1bGF0ZS12b2xhdGlsZS5zaCB1cGRhdGUKKyAgICAgICAgZmkKKyAgICBmaQorfQorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlicW1pL2xpYnFtaS8wMDAxLURldGVjdC1jbGFuZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJxbWkvbGlicW1pLzAwMDEtRGV0ZWN0LWNsYW5nLnBhdGNoCmluZGV4IDQwNDdmZmIuLjdhMzQyOWIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJxbWkvbGlicW1pLzAwMDEtRGV0ZWN0LWNsYW5nLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJxbWkvbGlicW1pLzAwMDEtRGV0ZWN0LWNsYW5nLnBhdGNoCkBAIC0xMiw2ICsxMiw3IEBACiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKwogLS0tCiAgbTQvY29tcGlsZXItd2FybmluZ3MubTQgfCAyOSArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogIDEgZmlsZSBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQpAQCAtNTMsNyArNTQsNyBAQAogIAkJICAgICAgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdzdHJpY3QtcHJvdG90eXBlcyBcCiBAQCAtMTcsMjIgKzM3LDIzIEBAIGlmIHRlc3QgIiRHQ0MiID0gInllcyIgLWEgIiRzZXRfbW9yZV93YXJuaW5ncyIgIT0gIm5vIjsgdGhlbgogIAkJICAgICAgLVdtaXNzaW5nLWluY2x1ZGUtZGlycyAtV2FnZ3JlZ2F0ZS1yZXR1cm4gXAotIAkJICAgICAgLVdmb3JtYXQtc2VjdXJpdHk7IGRvCisgCQkgICAgICAtV2Zvcm1hdC1zZWN1cml0eSAtV3R5cGUtbGltaXRzOyBkbwogIAkJU0FWRV9DRkxBR1M9IiRDRkxBR1MiCiAtCQlDRkxBR1M9IiRDRkxBR1MgJG9wdGlvbiIKICsJCUNGTEFHUz0iJENGTEFHUyAkb3B0aW9uICRXRVJST1IiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlicW1pL2xpYnFtaV8xLjE2LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlicW1pL2xpYnFtaV8xLjE2LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwYzI2YzAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYnFtaS9saWJxbWlfMS4xNi4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotU1VNTUFSWSA9ICJsaWJxbWkgaXMgYSBsaWJyYXJ5IGZvciB0YWxraW5nIHRvIFdXQU4gZGV2aWNlcyBieSBRTUkgcHJvdG9jb2wiCi1ERVNDUklQVElPTiA9ICJsaWJxbWkgaXMgYSBnbGliLWJhc2VkIGxpYnJhcnkgZm9yIHRhbGtpbmcgdG8gV1dBTiBtb2RlbXMgYW5kIGRldmljZXMgd2hpY2ggc3BlYWsgdGhlIFF1YWxjb21tIE1TTSBJbnRlcmZhY2UgKFFNSSkgcHJvdG9jb2wiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy93aWtpL1NvZnR3YXJlL2xpYnFtaSIKLUxJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiIFwKLSAgICBmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMgXAotICAgIGZpbGU6Ly9DT1BZSU5HLkxJQjttZDU9NGZiZDY1MzgwY2RkMjU1OTUxMDc5MDA4YjM2NDUxNmMgXAotIgotCi1ERVBFTkRTID0gImdsaWItMi4wIGxpYmd1ZGV2IGxpYm1iaW0gZ2xpYi0yLjAtbmF0aXZlIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgYmFzaC1jb21wbGV0aW9uCi0KLVNSQ19VUkkgPSAiaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvc29mdHdhcmUvJHtCUE59LyR7QlBOfS0ke1BWfS50YXIueHogXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1EZXRlY3QtY2xhbmcucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiNDk3MGMxMTBmMTYwYjMzNjM3YTM1MTUwMDRjNjM3YjIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2FiNmJiNDdmZDIzYmY0ZDNmYTE3NDI0ZTQwZWE1NTUyZDA4YjE5ZTVlZTRmMTI1ZjIxZjMxNmM4MDg2YmEyYSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJxbWkvbGlicW1pXzEuMjAuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJxbWkvbGlicW1pXzEuMjAuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzAxY2JkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYnFtaS9saWJxbWlfMS4yMC4wLmJiCkBAIC0wLDAgKzEsMTggQEAKK1NVTU1BUlkgPSAibGlicW1pIGlzIGEgbGlicmFyeSBmb3IgdGFsa2luZyB0byBXV0FOIGRldmljZXMgYnkgUU1JIHByb3RvY29sIgorREVTQ1JJUFRJT04gPSAibGlicW1pIGlzIGEgZ2xpYi1iYXNlZCBsaWJyYXJ5IGZvciB0YWxraW5nIHRvIFdXQU4gbW9kZW1zIGFuZCBkZXZpY2VzIHdoaWNoIHNwZWFrIHRoZSBRdWFsY29tbSBNU00gSW50ZXJmYWNlIChRTUkpIHByb3RvY29sIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvd2lraS9Tb2Z0d2FyZS9saWJxbWkiCitMSUNFTlNFID0gIkdQTHYyICYgTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gIiBcCisgICAgZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIFwKKyAgICBmaWxlOi8vQ09QWUlORy5MSUI7bWQ1PTRmYmQ2NTM4MGNkZDI1NTk1MTA3OTAwOGIzNjQ1MTZjIFwKKyIKKworREVQRU5EUyA9ICJnbGliLTIuMCBsaWJndWRldiBsaWJtYmltIGdsaWItMi4wLW5hdGl2ZSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGJhc2gtY29tcGxldGlvbgorCitTUkNfVVJJID0gImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3NvZnR3YXJlLyR7QlBOfS8ke0JQTn0tJHtQVn0udGFyLnh6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRGV0ZWN0LWNsYW5nLnBhdGNoIFwKKyAgICAgICAgICAgIgorU1JDX1VSSVttZDVzdW1dID0gIjc5N2UzNjU1MjFkZjc2Yjc3YjA2N2U2MzE3NjE4YjQxIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjIxNDI4Y2QzNzQ5YzU2MjQ2NTY1MTIzZjcwN2ZlZTUxMjM4NjUxYTIyYzYwYmRjODVlYmNlOTczODg2MjZlYjQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlidXYvbGlidXZfMS4xMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYnV2L2xpYnV2XzEuMTEuMC5iYgppbmRleCAwYTU4NDZiLi5jYTQ2ODVhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlidXYvbGlidXZfMS4xMS4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJ1di9saWJ1dl8xLjExLjAuYmIKQEAgLTQsMTAgKzQsMTAgQEAKIExJQ0VOU0UgPSAiTUlUIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YmI1ZWEwZDY1MWY0YzM1MTkzMjcxNzE5MDYwNDU3NzUiCiAKLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2xpYnV2LyR7QlBOfS9hcmNoaXZlL3Yke1BWfS50YXIuZ3o7ZG93bmxvYWRmaWxlbmFtZT0ke0JQfS50YXIuZ3oiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIxNTU1MGE5ZjVmNDVmN2YzMmFlMmQ5YmIwYTIxYTJhNyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI2ZWM3ZWVjNmVjYzI0YjFhOGZmZWRlYmVkYjJmZTkzMTNmZmZiNTQxMGRlODlhYWY3ODRkZDAxMDgwNDExYzdhIgorUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICI3NDUyZWY0ZTA2YTRmOTllZTI2YjY5NGM2NTQ3NjQwMTUzNGYyNzI1IgorQlJBTkNIID0gInYxLngiCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbGlidXYvbGlidXYuZ2l0O3Byb3RvY29sPWh0dHBzO2JyYW5jaD0ke0JSQU5DSH07IgogCiBpbmhlcml0IGF1dG90b29scwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlid2Vic29ja2V0cy9saWJ3ZWJzb2NrZXRzXzIuMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYndlYnNvY2tldHMvbGlid2Vic29ja2V0c18yLjEuMC5iYgppbmRleCA5MzU0Nzk5Li4xMDBmM2EzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlid2Vic29ja2V0cy9saWJ3ZWJzb2NrZXRzXzIuMS4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJ3ZWJzb2NrZXRzL2xpYndlYnNvY2tldHNfMi4xLjAuYmIKQEAgLTUsMTAgKzUsOSBAQAogCiBERVBFTkRTID0gInpsaWIiCiAKLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL3dhcm1jYXQvbGlid2Vic29ja2V0cy9hcmNoaXZlL3Yke1BWfS50YXIuZ3oiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI0ZGYzYmU1N2RlZTQzYWVlYmQ1NGEzZWQ1NjU2OGY1MCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiY2M5NmFhYTYwOWRhYWU0ZDNmN2FiMWVlNDgwMTI2NzA5ZWY0ZjZhOGJmOWM4NWRlNDBhYWU0OGUzOGNjZTY2IgorUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICI3MzU1NzUwOWJkMTVmOTVhMWFkMDgxYTZmNGZhYjQ4ZmY3NzQzMjE1IgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3dhcm1jYXQvbGlid2Vic29ja2V0cy5naXQ7cHJvdG9jb2w9aHR0cHM7IgogCiBpbmhlcml0IGNtYWtlIHBrZ2NvbmZpZwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbW9zcXVpdHRvL2ZpbGVzLzAwMDEtY29uZmlnLm1rLWFsbG93LXByZWZpeC1tYW5kaXItbG9jYWxlZGlyLWZyb20tZW52aXJvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9tb3NxdWl0dG8vZmlsZXMvMDAwMS1jb25maWcubWstYWxsb3ctcHJlZml4LW1hbmRpci1sb2NhbGVkaXItZnJvbS1lbnZpcm9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1YWEyNzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbW9zcXVpdHRvL2ZpbGVzLzAwMDEtY29uZmlnLm1rLWFsbG93LXByZWZpeC1tYW5kaXItbG9jYWxlZGlyLWZyb20tZW52aXJvbi5wYXRjaApAQCAtMCwwICsxLDM1IEBACitGcm9tIDBiZTM4MzAxMjQ5ZDc5N2VjMWY1OTA3MWNjODY4Y2VkYTZkNDcyMGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMERyYXN6aWs/PSA8YW5kcmUuZHJhc3ppa0BqY2kuY29tPgorRGF0ZTogVHVlLCAxMiBBcHIgMjAxNiAxMjo1MDozMiArMDEwMAorU3ViamVjdDogW1BBVENIIDEvMl0gY29uZmlnLm1rOiBhbGxvdyBwcmVmaXggLyBtYW5kaXIgLyBsb2NhbGVkaXIgZnJvbQorIGVudmlyb25tZW50CitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1dlIHdhbnQgdG8gY29udHJvbCB0aGVtIHVzaW5nIE9FIGVudmlyb25tZW50IHZhcmlhYmxlcy4KKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZC1zcGVjaWZpY10KK1NpZ25lZC1vZmYtYnk6IEFuZHLDqSBEcmFzemlrIDxhbmRyZS5kcmFzemlrQGpjaS5jb20+CistLS0KKyBjb25maWcubWsgfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWcubWsgYi9jb25maWcubWsKK2luZGV4IDcxZjE3ZTUuLjgxZDk3MDIgMTAwNjQ0CistLS0gYS9jb25maWcubWsKKysrKyBiL2NvbmZpZy5taworQEAgLTI0OSw3ICsyNDksNyBAQCBpZmVxICgkKFdJVEhfRE9DUykseWVzKQorIGVuZGlmCisgCisgSU5TVEFMTD89aW5zdGFsbAorLXByZWZpeD0vdXNyL2xvY2FsCistbWFuZGlyPSR7cHJlZml4fS9zaGFyZS9tYW4KKy1sb2NhbGVkaXI9JHtwcmVmaXh9L3NoYXJlL2xvY2FsZQorK3ByZWZpeD89L3Vzci9sb2NhbAorK21hbmRpcj89JHtwcmVmaXh9L3NoYXJlL21hbgorK2xvY2FsZWRpcj89JHtwcmVmaXh9L3NoYXJlL2xvY2FsZQorIFNUUklQPz1zdHJpcAorLS0gCisyLjE1LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L21vc3F1aXR0by9maWxlcy8wMDAyLXV0aGFzaC1yZW1vdmUtaW4tdHJlZS12ZXJzaW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L21vc3F1aXR0by9maWxlcy8wMDAyLXV0aGFzaC1yZW1vdmUtaW4tdHJlZS12ZXJzaW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4OWRmZTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbW9zcXVpdHRvL2ZpbGVzLzAwMDItdXRoYXNoLXJlbW92ZS1pbi10cmVlLXZlcnNpb24ucGF0Y2gKQEAgLTAsMCArMSw5NzUgQEAKK0Zyb20gZDlhZWVmOGQ5NWEzMjU5NDJjYzkyZjRkNzI0MTU3NzFkNzVkOTA0YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwRHJhc3ppaz89IDxhbmRyZS5kcmFzemlrQGpjaS5jb20+CitEYXRlOiBUdWUsIDEyIEFwciAyMDE2IDEzOjA1OjEwICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMi8yXSB1dGhhc2g6IHJlbW92ZSBpbi10cmVlIHZlcnNpb24KK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworV2UgZG9uJ3QgbmVlZCBpdCBhcyB3ZSB3YW50IHRvIHVzZSB0aGUgdmVyc2lvbiBwcm92aWRlZCBieQorbWV0YS1vZSBpbnN0ZWFkLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkLXNwZWNpZmljXQorU2lnbmVkLW9mZi1ieTogQW5kcsOpIERyYXN6aWsgPGFuZHJlLmRyYXN6aWtAamNpLmNvbT4KKy0tLQorIHNyYy91dGhhc2guaCB8IDk0OCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA5NDggZGVsZXRpb25zKC0pCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy91dGhhc2guaAorCitkaWZmIC0tZ2l0IGEvc3JjL3V0aGFzaC5oIGIvc3JjL3V0aGFzaC5oCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDkxNWE4MjUuLjAwMDAwMDAKKy0tLSBhL3NyYy91dGhhc2guaAorKysrIC9kZXYvbnVsbAorQEAgLTEsOTQ4ICswLDAgQEAKKy0vKgorLUNvcHlyaWdodCAoYykgMjAwMy0yMDEzLCBUcm95IEQuIEhhbnNvbiAgICAgaHR0cDovL3Ryb3lkaGFuc29uLmdpdGh1Yi5jb20vdXRoYXNoLworLUFsbCByaWdodHMgcmVzZXJ2ZWQuCistCistUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CistbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CistCistICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy0gICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCistCistVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMKKy1JUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQKKy1UTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEKKy1QQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIKKy1PUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKy1FWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCistUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCistUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorLUxJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCistTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCistU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCistKi8KKy0KKy0jaWZuZGVmIFVUSEFTSF9ICistI2RlZmluZSBVVEhBU0hfSCAKKy0KKy0jaW5jbHVkZSA8c3RyaW5nLmg+ICAgLyogbWVtY21wLHN0cmxlbiAqLworLSNpbmNsdWRlIDxzdGRkZWYuaD4gICAvKiBwdHJkaWZmX3QgKi8KKy0jaW5jbHVkZSA8c3RkbGliLmg+ICAgLyogZXhpdCgpICovCistCistLyogVGhlc2UgbWFjcm9zIHVzZSBkZWNsdHlwZSBvciB0aGUgZWFybGllciBfX3R5cGVvZiBHTlUgZXh0ZW5zaW9uLgorLSAgIEFzIGRlY2x0eXBlIGlzIG9ubHkgYXZhaWxhYmxlIGluIG5ld2VyIGNvbXBpbGVycyAoVlMyMDEwIG9yIGdjYyA0LjMrCistICAgd2hlbiBjb21waWxpbmcgYysrIHNvdXJjZSkgdGhpcyBjb2RlIHVzZXMgd2hhdGV2ZXIgbWV0aG9kIGlzIG5lZWRlZAorLSAgIG9yLCBmb3IgVlMyMDA4IHdoZXJlIG5laXRoZXIgaXMgYXZhaWxhYmxlLCB1c2VzIGNhc3Rpbmcgd29ya2Fyb3VuZHMuICovCistI2lmZGVmIF9NU0NfVkVSICAgICAgICAgLyogTVMgY29tcGlsZXIgKi8KKy0jaWYgX01TQ19WRVIgPj0gMTYwMCAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAgLyogVlMyMDEwIG9yIG5ld2VyIGluIEMrKyBtb2RlICovCistI2RlZmluZSBERUNMVFlQRSh4KSAoZGVjbHR5cGUoeCkpCistI2Vsc2UgICAgICAgICAgICAgICAgICAgLyogVlMyMDA4IG9yIG9sZGVyIChvciBWUzIwMTAgaW4gQyBtb2RlKSAqLworLSNkZWZpbmUgTk9fREVDTFRZUEUKKy0jZGVmaW5lIERFQ0xUWVBFKHgpCistI2VuZGlmCistI2Vsc2UgICAgICAgICAgICAgICAgICAgLyogR05VLCBTdW4gYW5kIG90aGVyIGNvbXBpbGVycyAqLworLSNkZWZpbmUgREVDTFRZUEUoeCkgKF9fdHlwZW9mKHgpKQorLSNlbmRpZgorLQorLSNpZmRlZiBOT19ERUNMVFlQRQorLSNkZWZpbmUgREVDTFRZUEVfQVNTSUdOKGRzdCxzcmMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBjaGFyICoqX2RhX2RzdCA9IChjaGFyKiopKCYoZHN0KSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgKl9kYV9kc3QgPSAoY2hhciopKHNyYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlKDApCistI2Vsc2UgCistI2RlZmluZSBERUNMVFlQRV9BU1NJR04oZHN0LHNyYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIChkc3QpID0gREVDTFRZUEUoZHN0KShzcmMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSgwKQorLSNlbmRpZgorLQorLS8qIGEgbnVtYmVyIG9mIHRoZSBoYXNoIGZ1bmN0aW9uIHVzZSB1aW50MzJfdCB3aGljaCBpc24ndCBkZWZpbmVkIG9uIHdpbjMyICovCistI2lmZGVmIF9NU0NfVkVSCistdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDMyX3Q7CistdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVpbnQ4X3Q7CistI2Vsc2UKKy0jaW5jbHVkZSA8aW50dHlwZXMuaD4gICAvKiB1aW50MzJfdCAqLworLSNlbmRpZgorLQorLSNkZWZpbmUgVVRIQVNIX1ZFUlNJT04gMS45LjgKKy0KKy0jaWZuZGVmIHV0aGFzaF9mYXRhbAorLSNkZWZpbmUgdXRoYXNoX2ZhdGFsKG1zZykgZXhpdCgtMSkgICAgICAgIC8qIGZhdGFsIGVycm9yIChvdXQgb2YgbWVtb3J5LGV0YykgKi8KKy0jZW5kaWYKKy0jaWZuZGVmIHV0aGFzaF9tYWxsb2MKKy0jZGVmaW5lIHV0aGFzaF9tYWxsb2Moc3opIG1hbGxvYyhzeikgICAgICAvKiBtYWxsb2MgZmNuICAgICAgICAgICAgICAgICAgICAgICovCistI2VuZGlmCistI2lmbmRlZiB1dGhhc2hfZnJlZQorLSNkZWZpbmUgdXRoYXNoX2ZyZWUocHRyLHN6KSBmcmVlKHB0cikgICAgIC8qIGZyZWUgZmNuICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy0jZW5kaWYKKy0KKy0jaWZuZGVmIHV0aGFzaF9ub2V4cGFuZF9meWkKKy0jZGVmaW5lIHV0aGFzaF9ub2V4cGFuZF9meWkodGJsKSAgICAgICAgICAvKiBjYW4gYmUgZGVmaW5lZCB0byBsb2cgbm9leHBhbmQgICovCistI2VuZGlmCistI2lmbmRlZiB1dGhhc2hfZXhwYW5kX2Z5aQorLSNkZWZpbmUgdXRoYXNoX2V4cGFuZF9meWkodGJsKSAgICAgICAgICAgIC8qIGNhbiBiZSBkZWZpbmVkIHRvIGxvZyBleHBhbmRzICAgKi8KKy0jZW5kaWYKKy0KKy0vKiBpbml0aWFsIG51bWJlciBvZiBidWNrZXRzICovCistI2RlZmluZSBIQVNIX0lOSVRJQUxfTlVNX0JVQ0tFVFMgMzIgICAgICAvKiBpbml0aWFsIG51bWJlciBvZiBidWNrZXRzICAgICAgICAqLworLSNkZWZpbmUgSEFTSF9JTklUSUFMX05VTV9CVUNLRVRTX0xPRzIgNSAgLyogbGcyIG9mIGluaXRpYWwgbnVtYmVyIG9mIGJ1Y2tldHMgKi8KKy0jZGVmaW5lIEhBU0hfQktUX0NBUEFDSVRZX1RIUkVTSCAxMCAgICAgIC8qIGV4cGFuZCB3aGVuIGJ1Y2tldCBjb3VudCByZWFjaGVzICovCistCistLyogY2FsY3VsYXRlIHRoZSBlbGVtZW50IHdob3NlIGhhc2ggaGFuZGxlIGFkZHJlc3MgaXMgaGhlICovCistI2RlZmluZSBFTE1UX0ZST01fSEgodGJsLGhocCkgKCh2b2lkKikoKChjaGFyKikoaGhwKSkgLSAoKHRibCktPmhobykpKQorLQorLSNkZWZpbmUgSEFTSF9GSU5EKGhoLGhlYWQsa2V5cHRyLGtleWxlbixvdXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1bnNpZ25lZCBfaGZfYmt0LF9oZl9oYXNodjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgb3V0PU5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGlmIChoZWFkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICBIQVNIX0ZDTihrZXlwdHIsa2V5bGVuLCAoaGVhZCktPmhoLnRibC0+bnVtX2J1Y2tldHMsIF9oZl9oYXNodiwgX2hmX2JrdCk7ICAgXAorLSAgICAgaWYgKEhBU0hfQkxPT01fVEVTVCgoaGVhZCktPmhoLnRibCwgX2hmX2hhc2h2KSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgSEFTSF9GSU5EX0lOX0JLVCgoaGVhZCktPmhoLnRibCwgaGgsIChoZWFkKS0+aGgudGJsLT5idWNrZXRzWyBfaGZfYmt0IF0sICBcCistICAgICAgICAgICAgICAgICAgICAgICAga2V5cHRyLGtleWxlbixvdXQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSAoMCkKKy0KKy0jaWZkZWYgSEFTSF9CTE9PTQorLSNkZWZpbmUgSEFTSF9CTE9PTV9CSVRMRU4gKDFVTEwgPDwgSEFTSF9CTE9PTSkKKy0jZGVmaW5lIEhBU0hfQkxPT01fQllURUxFTiAoSEFTSF9CTE9PTV9CSVRMRU4vOCkgKyAoKEhBU0hfQkxPT01fQklUTEVOJTgpID8gMTowKQorLSNkZWZpbmUgSEFTSF9CTE9PTV9NQUtFKHRibCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAodGJsKS0+Ymxvb21fbmJpdHMgPSBIQVNIX0JMT09NOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgKHRibCktPmJsb29tX2J2ID0gKHVpbnQ4X3QqKXV0aGFzaF9tYWxsb2MoSEFTSF9CTE9PTV9CWVRFTEVOKTsgICAgICAgICAgICAgICAgIFwKKy0gIGlmICghKCh0YmwpLT5ibG9vbV9idikpICB7IHV0aGFzaF9mYXRhbCggIm91dCBvZiBtZW1vcnkiKTsgfSAgICAgICAgICAgICAgICAgICBcCistICBtZW1zZXQoKHRibCktPmJsb29tX2J2LCAwLCBIQVNIX0JMT09NX0JZVEVMRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgKHRibCktPmJsb29tX3NpZyA9IEhBU0hfQkxPT01fU0lHTkFUVVJFOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlICgwKSAKKy0KKy0jZGVmaW5lIEhBU0hfQkxPT01fRlJFRSh0YmwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgdXRoYXNoX2ZyZWUoKHRibCktPmJsb29tX2J2LCBIQVNIX0JMT09NX0JZVEVMRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlICgwKSAKKy0KKy0jZGVmaW5lIEhBU0hfQkxPT01fQklUU0VUKGJ2LGlkeCkgKGJ2WyhpZHgpLzhdIHw9ICgxVSA8PCAoKGlkeCklOCkpKQorLSNkZWZpbmUgSEFTSF9CTE9PTV9CSVRURVNUKGJ2LGlkeCkgKGJ2WyhpZHgpLzhdICYgKDFVIDw8ICgoaWR4KSU4KSkpCistCistI2RlZmluZSBIQVNIX0JMT09NX0FERCh0YmwsaGFzaHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgSEFTSF9CTE9PTV9CSVRTRVQoKHRibCktPmJsb29tX2J2LCAoaGFzaHYgJiAodWludDMyX3QpKCgxVUxMIDw8ICh0YmwpLT5ibG9vbV9uYml0cykgLSAxKSkpCistCistI2RlZmluZSBIQVNIX0JMT09NX1RFU1QodGJsLGhhc2h2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgSEFTSF9CTE9PTV9CSVRURVNUKCh0YmwpLT5ibG9vbV9idiwgKGhhc2h2ICYgKHVpbnQzMl90KSgoMVVMTCA8PCAodGJsKS0+Ymxvb21fbmJpdHMpIC0gMSkpKQorLQorLSNlbHNlCistI2RlZmluZSBIQVNIX0JMT09NX01BS0UodGJsKSAKKy0jZGVmaW5lIEhBU0hfQkxPT01fRlJFRSh0YmwpIAorLSNkZWZpbmUgSEFTSF9CTE9PTV9BREQodGJsLGhhc2h2KSAKKy0jZGVmaW5lIEhBU0hfQkxPT01fVEVTVCh0YmwsaGFzaHYpICgxKQorLSNkZWZpbmUgSEFTSF9CTE9PTV9CWVRFTEVOIDAKKy0jZW5kaWYKKy0KKy0jZGVmaW5lIEhBU0hfTUFLRV9UQUJMRShoaCxoZWFkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgKGhlYWQpLT5oaC50YmwgPSAoVVRfaGFzaF90YWJsZSopdXRoYXNoX21hbGxvYyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICBzaXplb2YoVVRfaGFzaF90YWJsZSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBpZiAoISgoaGVhZCktPmhoLnRibCkpICB7IHV0aGFzaF9mYXRhbCggIm91dCBvZiBtZW1vcnkiKTsgfSAgICAgICAgICAgICAgICAgICAgXAorLSAgbWVtc2V0KChoZWFkKS0+aGgudGJsLCAwLCBzaXplb2YoVVRfaGFzaF90YWJsZSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIChoZWFkKS0+aGgudGJsLT50YWlsID0gJigoaGVhZCktPmhoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAoaGVhZCktPmhoLnRibC0+bnVtX2J1Y2tldHMgPSBIQVNIX0lOSVRJQUxfTlVNX0JVQ0tFVFM7ICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgKGhlYWQpLT5oaC50YmwtPmxvZzJfbnVtX2J1Y2tldHMgPSBIQVNIX0lOSVRJQUxfTlVNX0JVQ0tFVFNfTE9HMjsgICAgICAgICAgICAgIFwKKy0gIChoZWFkKS0+aGgudGJsLT5oaG8gPSAoY2hhciopKCYoaGVhZCktPmhoKSAtIChjaGFyKikoaGVhZCk7ICAgICAgICAgICAgICAgICAgICBcCistICAoaGVhZCktPmhoLnRibC0+YnVja2V0cyA9IChVVF9oYXNoX2J1Y2tldCopdXRoYXNoX21hbGxvYyggICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICBIQVNIX0lOSVRJQUxfTlVNX0JVQ0tFVFMqc2l6ZW9mKHN0cnVjdCBVVF9oYXNoX2J1Y2tldCkpOyAgICAgICAgICAgICAgIFwKKy0gIGlmICghIChoZWFkKS0+aGgudGJsLT5idWNrZXRzKSB7IHV0aGFzaF9mYXRhbCggIm91dCBvZiBtZW1vcnkiKTsgfSAgICAgICAgICAgICBcCistICBtZW1zZXQoKGhlYWQpLT5oaC50YmwtPmJ1Y2tldHMsIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICBIQVNIX0lOSVRJQUxfTlVNX0JVQ0tFVFMqc2l6ZW9mKHN0cnVjdCBVVF9oYXNoX2J1Y2tldCkpOyAgICAgICAgICAgICAgIFwKKy0gIEhBU0hfQkxPT01fTUFLRSgoaGVhZCktPmhoLnRibCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAoaGVhZCktPmhoLnRibC0+c2lnbmF0dXJlID0gSEFTSF9TSUdOQVRVUkU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkKKy0KKy0jZGVmaW5lIEhBU0hfQUREKGhoLGhlYWQsZmllbGRuYW1lLGtleWxlbl9pbixhZGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBIQVNIX0FERF9LRVlQVFIoaGgsaGVhZCwmKChhZGQpLT5maWVsZG5hbWUpLGtleWxlbl9pbixhZGQpCistCistI2RlZmluZSBIQVNIX1JFUExBQ0UoaGgsaGVhZCxmaWVsZG5hbWUsa2V5bGVuX2luLGFkZCxyZXBsYWNlZCkgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHJlcGxhY2VkPU5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBIQVNIX0ZJTkQoaGgsaGVhZCwmKChhZGQpLT5maWVsZG5hbWUpLGtleWxlbl9pbixyZXBsYWNlZCk7ICAgICAgICAgICAgICAgICAgICAgXAorLSAgaWYgKHJlcGxhY2VkIT1OVUxMKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIEhBU0hfREVMRVRFKGhoLGhlYWQscmVwbGFjZWQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgSEFTSF9BREQoaGgsaGVhZCxmaWVsZG5hbWUsa2V5bGVuX2luLGFkZCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlKDApCistIAorLSNkZWZpbmUgSEFTSF9BRERfS0VZUFRSKGhoLGhlYWQsa2V5cHRyLGtleWxlbl9pbixhZGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIHVuc2lnbmVkIF9oYV9ia3Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAoYWRkKS0+aGgubmV4dCA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gKGFkZCktPmhoLmtleSA9IChjaGFyKilrZXlwdHI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIChhZGQpLT5oaC5rZXlsZW4gPSAodW5zaWduZWQpa2V5bGVuX2luOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gaWYgKCEoaGVhZCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGhlYWQgPSAoYWRkKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAoaGVhZCktPmhoLnByZXYgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgSEFTSF9NQUtFX1RBQkxFKGhoLGhlYWQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAoaGVhZCktPmhoLnRibC0+dGFpbC0+bmV4dCA9IChhZGQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgKGFkZCktPmhoLnByZXYgPSBFTE1UX0ZST01fSEgoKGhlYWQpLT5oaC50YmwsIChoZWFkKS0+aGgudGJsLT50YWlsKTsgICAgICAgICBcCistICAgIChoZWFkKS0+aGgudGJsLT50YWlsID0gJigoYWRkKS0+aGgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gKGhlYWQpLT5oaC50YmwtPm51bV9pdGVtcysrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIChhZGQpLT5oaC50YmwgPSAoaGVhZCktPmhoLnRibDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSBIQVNIX0ZDTihrZXlwdHIsa2V5bGVuX2luLCAoaGVhZCktPmhoLnRibC0+bnVtX2J1Y2tldHMsICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAoYWRkKS0+aGguaGFzaHYsIF9oYV9ia3QpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIEhBU0hfQUREX1RPX0JLVCgoaGVhZCktPmhoLnRibC0+YnVja2V0c1tfaGFfYmt0XSwmKGFkZCktPmhoKTsgICAgICAgICAgICAgICAgICAgXAorLSBIQVNIX0JMT09NX0FERCgoaGVhZCktPmhoLnRibCwoYWRkKS0+aGguaGFzaHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gSEFTSF9FTUlUX0tFWShoaCxoZWFkLGtleXB0cixrZXlsZW5faW4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIEhBU0hfRlNDSyhoaCxoZWFkKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkKKy0KKy0jZGVmaW5lIEhBU0hfVE9fQktUKCBoYXNodiwgbnVtX2JrdHMsIGJrdCApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgYmt0ID0gKChoYXNodikgJiAoKG51bV9ia3RzKSAtIDEpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlKDApCistCistLyogZGVsZXRlICJkZWxwdHIiIGZyb20gdGhlIGhhc2ggdGFibGUuCistICogInRoZSB1c3VhbCIgcGF0Y2gtdXAgcHJvY2VzcyBmb3IgdGhlIGFwcC1vcmRlciBkb3VibHktbGlua2VkLWxpc3QuCistICogVGhlIHVzZSBvZiBfaGRfaGhfZGVsIGJlbG93IGRlc2VydmVzIHNwZWNpYWwgZXhwbGFuYXRpb24uCistICogVGhlc2UgdXNlZCB0byBiZSBleHByZXNzZWQgdXNpbmcgKGRlbHB0cikgYnV0IHRoYXQgbGVkIHRvIGEgYnVnCistICogaWYgc29tZW9uZSB1c2VkIHRoZSBzYW1lIHN5bWJvbCBmb3IgdGhlIGhlYWQgYW5kIGRlbGV0ZWUsIGxpa2UKKy0gKiAgSEFTSF9ERUxFVEUoaGgsdXNlcnMsdXNlcnMpOworLSAqIFdlIHdhbnQgdGhhdCB0byB3b3JrLCBidXQgYnkgY2hhbmdpbmcgdGhlIGhlYWQgKHVzZXJzKSBiZWxvdworLSAqIHdlIHdlcmUgZm9yZmVpdGluZyBvdXIgYWJpbGl0eSB0byBmdXJ0aGVyIHJlZmVyIHRvIHRoZSBkZWxldGVlICh1c2VycykKKy0gKiBpbiB0aGUgcGF0Y2gtdXAgcHJvY2Vzcy4gU29sdXRpb246IHVzZSBzY3JhdGNoIHNwYWNlIHRvCistICogY29weSB0aGUgZGVsZXRlZSBwb2ludGVyLCB0aGVuIHRoZSBsYXR0ZXIgcmVmZXJlbmNlcyBhcmUgdmlhIHRoYXQKKy0gKiBzY3JhdGNoIHBvaW50ZXIgcmF0aGVyIHRoYW4gdGhyb3VnaCB0aGUgcmVwb2ludGVkICh1c2Vycykgc3ltYm9sLgorLSAqLworLSNkZWZpbmUgSEFTSF9ERUxFVEUoaGgsaGVhZCxkZWxwdHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHVuc2lnbmVkIF9oZF9ia3Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBzdHJ1Y3QgVVRfaGFzaF9oYW5kbGUgKl9oZF9oaF9kZWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaWYgKCAoKGRlbHB0ciktPmhoLnByZXYgPT0gTlVMTCkgJiYgKChkZWxwdHIpLT5oaC5uZXh0ID09IE5VTEwpICkgIHsgICAgICAgICBcCistICAgICAgICB1dGhhc2hfZnJlZSgoaGVhZCktPmhoLnRibC0+YnVja2V0cywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgKGhlYWQpLT5oaC50YmwtPm51bV9idWNrZXRzKnNpemVvZihzdHJ1Y3QgVVRfaGFzaF9idWNrZXQpICk7IFwKKy0gICAgICAgIEhBU0hfQkxPT01fRlJFRSgoaGVhZCktPmhoLnRibCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICB1dGhhc2hfZnJlZSgoaGVhZCktPmhoLnRibCwgc2l6ZW9mKFVUX2hhc2hfdGFibGUpKTsgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgaGVhZCA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBfaGRfaGhfZGVsID0gJigoZGVscHRyKS0+aGgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgaWYgKChkZWxwdHIpID09IEVMTVRfRlJPTV9ISCgoaGVhZCktPmhoLnRibCwoaGVhZCktPmhoLnRibC0+dGFpbCkpIHsgICAgIFwKKy0gICAgICAgICAgICAoaGVhZCktPmhoLnRibC0+dGFpbCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgIChVVF9oYXNoX2hhbmRsZSopKChwdHJkaWZmX3QpKChkZWxwdHIpLT5oaC5wcmV2KSArICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAoaGVhZCktPmhoLnRibC0+aGhvKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBpZiAoKGRlbHB0ciktPmhoLnByZXYpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICgoVVRfaGFzaF9oYW5kbGUqKSgocHRyZGlmZl90KSgoZGVscHRyKS0+aGgucHJldikgKyAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT5oaG8pKS0+bmV4dCA9IChkZWxwdHIpLT5oaC5uZXh0OyAgICAgICAgICAgICBcCistICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIERFQ0xUWVBFX0FTU0lHTihoZWFkLChkZWxwdHIpLT5oaC5uZXh0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBpZiAoX2hkX2hoX2RlbC0+bmV4dCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICgoVVRfaGFzaF9oYW5kbGUqKSgocHRyZGlmZl90KV9oZF9oaF9kZWwtPm5leHQgKyAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT5oaG8pKS0+cHJldiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICBfaGRfaGhfZGVsLT5wcmV2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIEhBU0hfVE9fQktUKCBfaGRfaGhfZGVsLT5oYXNodiwgKGhlYWQpLT5oaC50YmwtPm51bV9idWNrZXRzLCBfaGRfYmt0KTsgICBcCistICAgICAgICBIQVNIX0RFTF9JTl9CS1QoaGgsKGhlYWQpLT5oaC50YmwtPmJ1Y2tldHNbX2hkX2JrdF0sIF9oZF9oaF9kZWwpOyAgICAgICAgXAorLSAgICAgICAgKGhlYWQpLT5oaC50YmwtPm51bV9pdGVtcy0tOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIEhBU0hfRlNDSyhoaCxoZWFkKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUgKDApCistCistCistLyogY29udmVuaWVuY2UgZm9ybXMgb2YgSEFTSF9GSU5EL0hBU0hfQUREL0hBU0hfREVMICovCistI2RlZmluZSBIQVNIX0ZJTkRfU1RSKGhlYWQsZmluZHN0cixvdXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBIQVNIX0ZJTkQoaGgsaGVhZCxmaW5kc3RyLHN0cmxlbihmaW5kc3RyKSxvdXQpCistI2RlZmluZSBIQVNIX0FERF9TVFIoaGVhZCxzdHJmaWVsZCxhZGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBIQVNIX0FERChoaCxoZWFkLHN0cmZpZWxkLHN0cmxlbihhZGQtPnN0cmZpZWxkKSxhZGQpCistI2RlZmluZSBIQVNIX1JFUExBQ0VfU1RSKGhlYWQsc3RyZmllbGQsYWRkLHJlcGxhY2VkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgSEFTSF9SRVBMQUNFKGhoLGhlYWQsc3RyZmllbGQsc3RybGVuKGFkZC0+c3RyZmllbGQpLGFkZCxyZXBsYWNlZCkKKy0jZGVmaW5lIEhBU0hfRklORF9JTlQoaGVhZCxmaW5kaW50LG91dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIEhBU0hfRklORChoaCxoZWFkLGZpbmRpbnQsc2l6ZW9mKGludCksb3V0KQorLSNkZWZpbmUgSEFTSF9BRERfSU5UKGhlYWQsaW50ZmllbGQsYWRkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgSEFTSF9BREQoaGgsaGVhZCxpbnRmaWVsZCxzaXplb2YoaW50KSxhZGQpCistI2RlZmluZSBIQVNIX1JFUExBQ0VfSU5UKGhlYWQsaW50ZmllbGQsYWRkLHJlcGxhY2VkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBIQVNIX1JFUExBQ0UoaGgsaGVhZCxpbnRmaWVsZCxzaXplb2YoaW50KSxhZGQscmVwbGFjZWQpCistI2RlZmluZSBIQVNIX0ZJTkRfUFRSKGhlYWQsZmluZHB0cixvdXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBIQVNIX0ZJTkQoaGgsaGVhZCxmaW5kcHRyLHNpemVvZih2b2lkICopLG91dCkKKy0jZGVmaW5lIEhBU0hfQUREX1BUUihoZWFkLHB0cmZpZWxkLGFkZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIEhBU0hfQUREKGhoLGhlYWQscHRyZmllbGQsc2l6ZW9mKHZvaWQgKiksYWRkKQorLSNkZWZpbmUgSEFTSF9SRVBMQUNFX1BUUihoZWFkLHB0cmZpZWxkLGFkZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgSEFTSF9SRVBMQUNFKGhoLGhlYWQscHRyZmllbGQsc2l6ZW9mKHZvaWQgKiksYWRkLHJlcGxhY2VkKQorLSNkZWZpbmUgSEFTSF9ERUwoaGVhZCxkZWxwdHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgSEFTSF9ERUxFVEUoaGgsaGVhZCxkZWxwdHIpCistCistLyogSEFTSF9GU0NLIGNoZWNrcyBoYXNoIGludGVncml0eSBvbiBldmVyeSBhZGQvZGVsZXRlIHdoZW4gSEFTSF9ERUJVRyBpcyBkZWZpbmVkLgorLSAqIFRoaXMgaXMgZm9yIHV0aGFzaCBkZXZlbG9wZXIgb25seTsgaXQgY29tcGlsZXMgYXdheSBpZiBIQVNIX0RFQlVHIGlzbid0IGRlZmluZWQuCistICovCistI2lmZGVmIEhBU0hfREVCVUcKKy0jZGVmaW5lIEhBU0hfT09QUyguLi4pIGRvIHsgZnByaW50ZihzdGRlcnIsX19WQV9BUkdTX18pOyBleGl0KC0xKTsgfSB3aGlsZSAoMCkKKy0jZGVmaW5lIEhBU0hfRlNDSyhoaCxoZWFkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB1bnNpZ25lZCBfYmt0X2k7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdW5zaWduZWQgX2NvdW50LCBfYmt0X2NvdW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGNoYXIgKl9wcmV2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBzdHJ1Y3QgVVRfaGFzaF9oYW5kbGUgKl90aGg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaWYgKGhlYWQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBfY291bnQgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgZm9yKCBfYmt0X2kgPSAwOyBfYmt0X2kgPCAoaGVhZCktPmhoLnRibC0+bnVtX2J1Y2tldHM7IF9ia3RfaSsrKSB7ICAgICAgIFwKKy0gICAgICAgICAgICBfYmt0X2NvdW50ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgX3RoaCA9IChoZWFkKS0+aGgudGJsLT5idWNrZXRzW19ia3RfaV0uaGhfaGVhZDsgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIF9wcmV2ID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICB3aGlsZSAoX3RoaCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgaWYgKF9wcmV2ICE9IChjaGFyKikoX3RoaC0+aGhfcHJldikpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICBIQVNIX09PUFMoImludmFsaWQgaGhfcHJldiAlcCwgYWN0dWFsICVwXG4iLCAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgIF90aGgtPmhoX3ByZXYsIF9wcmV2ICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgIF9ia3RfY291bnQrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICBfcHJldiA9IChjaGFyKikoX3RoaCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgX3RoaCA9IF90aGgtPmhoX25leHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBfY291bnQgKz0gX2JrdF9jb3VudDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgaWYgKChoZWFkKS0+aGgudGJsLT5idWNrZXRzW19ia3RfaV0uY291bnQgIT0gIF9ia3RfY291bnQpIHsgICAgICAgICAgXAorLSAgICAgICAgICAgICAgIEhBU0hfT09QUygiaW52YWxpZCBidWNrZXQgY291bnQgJWQsIGFjdHVhbCAlZFxuIiwgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgKGhlYWQpLT5oaC50YmwtPmJ1Y2tldHNbX2JrdF9pXS5jb3VudCwgX2JrdF9jb3VudCk7ICAgICAgICAgICAgICBcCistICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIGlmIChfY291bnQgIT0gKGhlYWQpLT5oaC50YmwtPm51bV9pdGVtcykgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgSEFTSF9PT1BTKCJpbnZhbGlkIGhoIGl0ZW0gY291bnQgJWQsIGFjdHVhbCAlZFxuIiwgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAoaGVhZCktPmhoLnRibC0+bnVtX2l0ZW1zLCBfY291bnQgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAvKiB0cmF2ZXJzZSBoaCBpbiBhcHAgb3JkZXI7IGNoZWNrIG5leHQvcHJldiBpbnRlZ3JpdHksIGNvdW50ICovICAgICAgICAgXAorLSAgICAgICAgX2NvdW50ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIF9wcmV2ID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBfdGhoID0gICYoaGVhZCktPmhoOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgd2hpbGUgKF90aGgpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgIF9jb3VudCsrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICBpZiAoX3ByZXYgIT0oY2hhciopKF90aGgtPnByZXYpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgSEFTSF9PT1BTKCJpbnZhbGlkIHByZXYgJXAsIGFjdHVhbCAlcFxuIiwgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgIF90aGgtPnByZXYsIF9wcmV2ICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgX3ByZXYgPSAoY2hhciopRUxNVF9GUk9NX0hIKChoZWFkKS0+aGgudGJsLCBfdGhoKTsgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgIF90aGggPSAoIF90aGgtPm5leHQgPyAgKFVUX2hhc2hfaGFuZGxlKikoKGNoYXIqKShfdGhoLT5uZXh0KSArICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT5oaG8pIDogTlVMTCApOyAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIGlmIChfY291bnQgIT0gKGhlYWQpLT5oaC50YmwtPm51bV9pdGVtcykgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgSEFTSF9PT1BTKCJpbnZhbGlkIGFwcCBpdGVtIGNvdW50ICVkLCBhY3R1YWwgJWRcbiIsICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAoaGVhZCktPmhoLnRibC0+bnVtX2l0ZW1zLCBfY291bnQgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUgKDApCistI2Vsc2UKKy0jZGVmaW5lIEhBU0hfRlNDSyhoaCxoZWFkKSAKKy0jZW5kaWYKKy0KKy0vKiBXaGVuIGNvbXBpbGVkIHdpdGggLURIQVNIX0VNSVRfS0VZUywgbGVuZ3RoLXByZWZpeGVkIGtleXMgYXJlIGVtaXR0ZWQgdG8gCistICogdGhlIGRlc2NyaXB0b3IgdG8gd2hpY2ggdGhpcyBtYWNybyBpcyBkZWZpbmVkIGZvciB0dW5pbmcgdGhlIGhhc2ggZnVuY3Rpb24uCistICogVGhlIGFwcCBjYW4gI2luY2x1ZGUgPHVuaXN0ZC5oPiB0byBnZXQgdGhlIHByb3RvdHlwZSBmb3Igd3JpdGUoMikuICovCistI2lmZGVmIEhBU0hfRU1JVF9LRVlTCistI2RlZmluZSBIQVNIX0VNSVRfS0VZKGhoLGhlYWQsa2V5cHRyLGZpZWxkbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdW5zaWduZWQgX2tsZW4gPSBmaWVsZGxlbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHdyaXRlKEhBU0hfRU1JVF9LRVlTLCAmX2tsZW4sIHNpemVvZihfa2xlbikpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB3cml0ZShIQVNIX0VNSVRfS0VZUywga2V5cHRyLCBmaWVsZGxlbik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlICgwKQorLSNlbHNlIAorLSNkZWZpbmUgSEFTSF9FTUlUX0tFWShoaCxoZWFkLGtleXB0cixmaWVsZGxlbikgICAgICAgICAgICAgICAgICAgIAorLSNlbmRpZgorLQorLS8qIGRlZmF1bHQgdG8gSmVua2luJ3MgaGFzaCB1bmxlc3Mgb3ZlcnJpZGRlbiBlLmcuIERIQVNIX0ZVTkNUSU9OPUhBU0hfU0FYICovCistI2lmZGVmIEhBU0hfRlVOQ1RJT04gCistI2RlZmluZSBIQVNIX0ZDTiBIQVNIX0ZVTkNUSU9OCistI2Vsc2UKKy0jZGVmaW5lIEhBU0hfRkNOIEhBU0hfSkVOCistI2VuZGlmCistCistLyogVGhlIEJlcm5zdGVpbiBoYXNoIGZ1bmN0aW9uLCB1c2VkIGluIFBlcmwgcHJpb3IgdG8gdjUuNiAqLworLSNkZWZpbmUgSEFTSF9CRVIoa2V5LGtleWxlbixudW1fYmt0cyxoYXNodixia3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1bnNpZ25lZCBfaGJfa2V5bGVuPWtleWxlbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgY2hhciAqX2hiX2tleT0oY2hhciopKGtleSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIChoYXNodikgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB3aGlsZSAoX2hiX2tleWxlbi0tKSAgeyAoaGFzaHYpID0gKChoYXNodikgKiAzMykgKyAqX2hiX2tleSsrOyB9ICAgICAgICAgICAgICAgXAorLSAgYmt0ID0gKGhhc2h2KSAmIChudW1fYmt0cy0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlICgwKQorLQorLQorLS8qIFNBWC9GTlYvT0FUL0pFTiBoYXNoIGZ1bmN0aW9ucyBhcmUgbWFjcm8gdmFyaWFudHMgb2YgdGhvc2UgbGlzdGVkIGF0IAorLSAqIGh0dHA6Ly9ldGVybmFsbHljb25mdXp6bGVkLmNvbS90dXRzL2FsZ29yaXRobXMvanN3X3R1dF9oYXNoaW5nLmFzcHggKi8KKy0jZGVmaW5lIEhBU0hfU0FYKGtleSxrZXlsZW4sbnVtX2JrdHMsaGFzaHYsYmt0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgdW5zaWduZWQgX3N4X2k7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGNoYXIgKl9oc19rZXk9KGNoYXIqKShrZXkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBoYXNodiA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgZm9yKF9zeF9pPTA7IF9zeF9pIDwga2V5bGVuOyBfc3hfaSsrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICBoYXNodiBePSAoaGFzaHYgPDwgNSkgKyAoaGFzaHYgPj4gMikgKyBfaHNfa2V5W19zeF9pXTsgICAgICAgICAgICAgICAgICAgICBcCistICBia3QgPSBoYXNodiAmIChudW1fYmt0cy0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUgKDApCistCistI2RlZmluZSBIQVNIX0ZOVihrZXksa2V5bGVuLG51bV9ia3RzLGhhc2h2LGJrdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVuc2lnbmVkIF9mbl9pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBjaGFyICpfaGZfa2V5PShjaGFyKikoa2V5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgaGFzaHYgPSAyMTY2MTM2MjYxVUw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGZvcihfZm5faT0wOyBfZm5faSA8IGtleWxlbjsgX2ZuX2krKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgaGFzaHYgPSAoaGFzaHYgKiAxNjc3NzYxOSkgXiBfaGZfa2V5W19mbl9pXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgYmt0ID0gaGFzaHYgJiAobnVtX2JrdHMtMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlKDApIAorLSAKKy0jZGVmaW5lIEhBU0hfT0FUKGtleSxrZXlsZW4sbnVtX2JrdHMsaGFzaHYsYmt0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgdW5zaWduZWQgX2hvX2k7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGNoYXIgKl9ob19rZXk9KGNoYXIqKShrZXkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBoYXNodiA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgZm9yKF9ob19pPTA7IF9ob19pIDwga2V5bGVuOyBfaG9faSsrKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICBoYXNodiArPSBfaG9fa2V5W19ob19pXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgaGFzaHYgKz0gKGhhc2h2IDw8IDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgIGhhc2h2IF49IChoYXNodiA+PiA2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBoYXNodiArPSAoaGFzaHYgPDwgMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgaGFzaHYgXj0gKGhhc2h2ID4+IDExKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGhhc2h2ICs9IChoYXNodiA8PCAxNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBia3QgPSBoYXNodiAmIChudW1fYmt0cy0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkKKy0KKy0jZGVmaW5lIEhBU0hfSkVOX01JWChhLGIsYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgYSAtPSBiOyBhIC09IGM7IGEgXj0gKCBjID4+IDEzICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGIgLT0gYzsgYiAtPSBhOyBiIF49ICggYSA8PCA4ICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBjIC09IGE7IGMgLT0gYjsgYyBePSAoIGIgPj4gMTMgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgYSAtPSBiOyBhIC09IGM7IGEgXj0gKCBjID4+IDEyICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGIgLT0gYzsgYiAtPSBhOyBiIF49ICggYSA8PCAxNiApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBjIC09IGE7IGMgLT0gYjsgYyBePSAoIGIgPj4gNSApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgYSAtPSBiOyBhIC09IGM7IGEgXj0gKCBjID4+IDMgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGIgLT0gYzsgYiAtPSBhOyBiIF49ICggYSA8PCAxMCApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBjIC09IGE7IGMgLT0gYjsgYyBePSAoIGIgPj4gMTUgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUgKDApCistCistI2RlZmluZSBIQVNIX0pFTihrZXksa2V5bGVuLG51bV9ia3RzLGhhc2h2LGJrdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVuc2lnbmVkIF9oal9pLF9oal9qLF9oal9rOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1bnNpZ25lZCBjaGFyICpfaGpfa2V5PSh1bnNpZ25lZCBjaGFyKikoa2V5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgaGFzaHYgPSAweGZlZWRiZWVmOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIF9oal9pID0gX2hqX2ogPSAweDllMzc3OWI5OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBfaGpfayA9ICh1bnNpZ25lZClrZXlsZW47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgd2hpbGUgKF9oal9rID49IDEyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX2hqX2kgKz0gICAgKF9oal9rZXlbMF0gKyAoICh1bnNpZ25lZClfaGpfa2V5WzFdIDw8IDggKSAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICArICggKHVuc2lnbmVkKV9oal9rZXlbMl0gPDwgMTYgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgKyAoICh1bnNpZ25lZClfaGpfa2V5WzNdIDw8IDI0ICkgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX2hqX2ogKz0gICAgKF9oal9rZXlbNF0gKyAoICh1bnNpZ25lZClfaGpfa2V5WzVdIDw8IDggKSAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICArICggKHVuc2lnbmVkKV9oal9rZXlbNl0gPDwgMTYgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgKyAoICh1bnNpZ25lZClfaGpfa2V5WzddIDw8IDI0ICkgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaGFzaHYgKz0gKF9oal9rZXlbOF0gKyAoICh1bnNpZ25lZClfaGpfa2V5WzldIDw8IDggKSAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICArICggKHVuc2lnbmVkKV9oal9rZXlbMTBdIDw8IDE2ICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgKyAoICh1bnNpZ25lZClfaGpfa2V5WzExXSA8PCAyNCApICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICBIQVNIX0pFTl9NSVgoX2hqX2ksIF9oal9qLCBoYXNodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIF9oal9rZXkgKz0gMTI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICBfaGpfayAtPSAxMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGhhc2h2ICs9IGtleWxlbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBzd2l0Y2ggKCBfaGpfayApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgY2FzZSAxMTogaGFzaHYgKz0gKCAodW5zaWduZWQpX2hqX2tleVsxMF0gPDwgMjQgKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIGNhc2UgMTA6IGhhc2h2ICs9ICggKHVuc2lnbmVkKV9oal9rZXlbOV0gPDwgMTYgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICBjYXNlIDk6ICBoYXNodiArPSAoICh1bnNpZ25lZClfaGpfa2V5WzhdIDw8IDggKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgY2FzZSA4OiAgX2hqX2ogKz0gKCAodW5zaWduZWQpX2hqX2tleVs3XSA8PCAyNCApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIGNhc2UgNzogIF9oal9qICs9ICggKHVuc2lnbmVkKV9oal9rZXlbNl0gPDwgMTYgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICBjYXNlIDY6ICBfaGpfaiArPSAoICh1bnNpZ25lZClfaGpfa2V5WzVdIDw8IDggKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgY2FzZSA1OiAgX2hqX2ogKz0gX2hqX2tleVs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIGNhc2UgNDogIF9oal9pICs9ICggKHVuc2lnbmVkKV9oal9rZXlbM10gPDwgMjQgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICBjYXNlIDM6ICBfaGpfaSArPSAoICh1bnNpZ25lZClfaGpfa2V5WzJdIDw8IDE2ICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgY2FzZSAyOiAgX2hqX2kgKz0gKCAodW5zaWduZWQpX2hqX2tleVsxXSA8PCA4ICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIGNhc2UgMTogIF9oal9pICs9IF9oal9rZXlbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgSEFTSF9KRU5fTUlYKF9oal9pLCBfaGpfaiwgaGFzaHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGJrdCA9IGhhc2h2ICYgKG51bV9ia3RzLTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSgwKQorLQorLS8qIFRoZSBQYXVsIEhzaWVoIGhhc2ggZnVuY3Rpb24gKi8KKy0jdW5kZWYgZ2V0MTZiaXRzCistI2lmIChkZWZpbmVkKF9fR05VQ19fKSAmJiBkZWZpbmVkKF9faTM4Nl9fKSkgfHwgZGVmaW5lZChfX1dBVENPTUNfXykgICAgICAgICAgICAgXAorLSAgfHwgZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZCAoX19CT1JMQU5EQ19fKSB8fCBkZWZpbmVkIChfX1RVUkJPQ19fKQorLSNkZWZpbmUgZ2V0MTZiaXRzKGQpICgqKChjb25zdCB1aW50MTZfdCAqKSAoZCkpKQorLSNlbmRpZgorLQorLSNpZiAhZGVmaW5lZCAoZ2V0MTZiaXRzKQorLSNkZWZpbmUgZ2V0MTZiaXRzKGQpICgoKCh1aW50MzJfdCkoKChjb25zdCB1aW50OF90ICopKGQpKVsxXSkpIDw8IDgpICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICsodWludDMyX3QpKCgoY29uc3QgdWludDhfdCAqKShkKSlbMF0pICkKKy0jZW5kaWYKKy0jZGVmaW5lIEhBU0hfU0ZIKGtleSxrZXlsZW4sbnVtX2JrdHMsaGFzaHYsYmt0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgdW5zaWduZWQgY2hhciAqX3NmaF9rZXk9KHVuc2lnbmVkIGNoYXIqKShrZXkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVpbnQzMl90IF9zZmhfdG1wLCBfc2ZoX2xlbiA9IGtleWxlbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgaW50IF9zZmhfcmVtID0gX3NmaF9sZW4gJiAzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIF9zZmhfbGVuID4+PSAyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBoYXNodiA9IDB4Y2FmZWJhYmU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIC8qIE1haW4gbG9vcCAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBmb3IgKDtfc2ZoX2xlbiA+IDA7IF9zZmhfbGVuLS0pIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBoYXNodiAgICArPSBnZXQxNmJpdHMgKF9zZmhfa2V5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX3NmaF90bXAgICAgICAgPSAodWludDMyX3QpKGdldDE2Yml0cyAoX3NmaF9rZXkrMikpIDw8IDExICBeIGhhc2h2OyAgICAgICAgICBcCistICAgIGhhc2h2ICAgICA9IChoYXNodiA8PCAxNikgXiBfc2ZoX3RtcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBfc2ZoX2tleSArPSAyKnNpemVvZiAodWludDE2X3QpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaGFzaHYgICAgKz0gaGFzaHYgPj4gMTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIC8qIEhhbmRsZSBlbmQgY2FzZXMgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBzd2l0Y2ggKF9zZmhfcmVtKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBjYXNlIDM6IGhhc2h2ICs9IGdldDE2Yml0cyAoX3NmaF9rZXkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBoYXNodiBePSBoYXNodiA8PCAxNjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgaGFzaHYgXj0gKHVpbnQzMl90KShfc2ZoX2tleVtzaXplb2YgKHVpbnQxNl90KV0gPDwgMTgpOyAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIGhhc2h2ICs9IGhhc2h2ID4+IDExOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGNhc2UgMjogaGFzaHYgKz0gZ2V0MTZiaXRzIChfc2ZoX2tleSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIGhhc2h2IF49IGhhc2h2IDw8IDExOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBoYXNodiArPSBoYXNodiA+PiAxNzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBjYXNlIDE6IGhhc2h2ICs9ICpfc2ZoX2tleTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBoYXNodiBePSBoYXNodiA8PCAxMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgaGFzaHYgKz0gaGFzaHYgPj4gMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIC8qIEZvcmNlICJhdmFsYW5jaGluZyIgb2YgZmluYWwgMTI3IGJpdHMgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBoYXNodiBePSBoYXNodiA8PCAzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaGFzaHYgKz0gaGFzaHYgPj4gNTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGhhc2h2IF49IGhhc2h2IDw8IDQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBoYXNodiArPSBoYXNodiA+PiAxNzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaGFzaHYgXj0gaGFzaHYgPDwgMjU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGhhc2h2ICs9IGhhc2h2ID4+IDY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBia3QgPSBoYXNodiAmIChudW1fYmt0cy0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlKDApIAorLQorLSNpZmRlZiBIQVNIX1VTSU5HX05PX1NUUklDVF9BTElBU0lORworLS8qIFRoZSBNdXJtdXJIYXNoIGV4cGxvaXRzIHNvbWUgQ1BVJ3MgKHg4Nix4ODZfNjQpIHRvbGVyYW5jZSBmb3IgdW5hbGlnbmVkIHJlYWRzLgorLSAqIEZvciBvdGhlciB0eXBlcyBvZiBDUFUncyAoZS5nLiBTcGFyYykgYW4gdW5hbGlnbmVkIHJlYWQgY2F1c2VzIGEgYnVzIGVycm9yLgorLSAqIE11cm11ckhhc2ggdXNlcyB0aGUgZmFzdGVyIGFwcHJvYWNoIG9ubHkgb24gQ1BVJ3Mgd2hlcmUgd2Uga25vdyBpdCdzIHNhZmUuIAorLSAqCistICogTm90ZSB0aGUgcHJlcHJvY2Vzc29yIGJ1aWx0LWluIGRlZmluZXMgY2FuIGJlIGVtaXR0ZWQgdXNpbmc6CistICoKKy0gKiAgIGdjYyAtbTY0IC1kTSAtRSAtIDwgL2Rldi9udWxsICAgICAgICAgICAgICAgICAgKG9uIGdjYykKKy0gKiAgIGNjIC0jIyBhLmMgKHdoZXJlIGEuYyBpcyBhIHNpbXBsZSB0ZXN0IGZpbGUpICAgKFN1biBTdHVkaW8pCistICovCistI2lmIChkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pICB8fCBkZWZpbmVkKF9NX0lYODYpKQorLSNkZWZpbmUgTVVSX0dFVEJMT0NLKHAsaSkgcFtpXQorLSNlbHNlIC8qIG5vbiBpbnRlbCAqLworLSNkZWZpbmUgTVVSX1BMVVMwX0FMSUdORUQocCkgKCgodW5zaWduZWQgbG9uZylwICYgMHgzKSA9PSAwKQorLSNkZWZpbmUgTVVSX1BMVVMxX0FMSUdORUQocCkgKCgodW5zaWduZWQgbG9uZylwICYgMHgzKSA9PSAxKQorLSNkZWZpbmUgTVVSX1BMVVMyX0FMSUdORUQocCkgKCgodW5zaWduZWQgbG9uZylwICYgMHgzKSA9PSAyKQorLSNkZWZpbmUgTVVSX1BMVVMzX0FMSUdORUQocCkgKCgodW5zaWduZWQgbG9uZylwICYgMHgzKSA9PSAzKQorLSNkZWZpbmUgV1AocCkgKCh1aW50MzJfdCopKCh1bnNpZ25lZCBsb25nKShwKSAmIH4zVUwpKQorLSNpZiAoZGVmaW5lZChfX0JJR19FTkRJQU5fXykgfHwgZGVmaW5lZChTUEFSQykgfHwgZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykpCistI2RlZmluZSBNVVJfVEhSRUVfT05FKHApICgoKCgqV1AocCkpJjB4MDBmZmZmZmYpIDw8IDgpIHwgKCgoKihXUChwKSsxKSkmMHhmZjAwMDAwMCkgPj4gMjQpKQorLSNkZWZpbmUgTVVSX1RXT19UV08ocCkgICAoKCgoKldQKHApKSYweDAwMDBmZmZmKSA8PDE2KSB8ICgoKCooV1AocCkrMSkpJjB4ZmZmZjAwMDApID4+IDE2KSkKKy0jZGVmaW5lIE1VUl9PTkVfVEhSRUUocCkgKCgoKCpXUChwKSkmMHgwMDAwMDBmZikgPDwyNCkgfCAoKCgqKFdQKHApKzEpKSYweGZmZmZmZjAwKSA+PiAgOCkpCistI2Vsc2UgLyogYXNzdW1lIGxpdHRsZSBlbmRpYW4gbm9uLWludGVsICovCistI2RlZmluZSBNVVJfVEhSRUVfT05FKHApICgoKCgqV1AocCkpJjB4ZmZmZmZmMDApID4+IDgpIHwgKCgoKihXUChwKSsxKSkmMHgwMDAwMDBmZikgPDwgMjQpKQorLSNkZWZpbmUgTVVSX1RXT19UV08ocCkgICAoKCgoKldQKHApKSYweGZmZmYwMDAwKSA+PjE2KSB8ICgoKCooV1AocCkrMSkpJjB4MDAwMGZmZmYpIDw8IDE2KSkKKy0jZGVmaW5lIE1VUl9PTkVfVEhSRUUocCkgKCgoKCpXUChwKSkmMHhmZjAwMDAwMCkgPj4yNCkgfCAoKCgqKFdQKHApKzEpKSYweDAwZmZmZmZmKSA8PCAgOCkpCistI2VuZGlmCistI2RlZmluZSBNVVJfR0VUQkxPQ0socCxpKSAoTVVSX1BMVVMwX0FMSUdORUQocCkgPyAoKHApW2ldKSA6ICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIChNVVJfUExVUzFfQUxJR05FRChwKSA/IE1VUl9USFJFRV9PTkUocCkgOiBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTVVSX1BMVVMyX0FMSUdORUQocCkgPyBNVVJfVFdPX1RXTyhwKSA6ICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVVSX09ORV9USFJFRShwKSkpKQorLSNlbmRpZgorLSNkZWZpbmUgTVVSX1JPVEwzMih4LHIpICgoKHgpIDw8IChyKSkgfCAoKHgpID4+ICgzMiAtIChyKSkpKQorLSNkZWZpbmUgTVVSX0ZNSVgoX2gpIFwKKy1kbyB7ICAgICAgICAgICAgICAgICBcCistICBfaCBePSBfaCA+PiAxNjsgICAgXAorLSAgX2ggKj0gMHg4NWViY2E2YjsgIFwKKy0gIF9oIF49IF9oID4+IDEzOyAgICBcCistICBfaCAqPSAweGMyYjJhZTM1bDsgXAorLSAgX2ggXj0gX2ggPj4gMTY7ICAgIFwKKy19IHdoaWxlKDApCistCistI2RlZmluZSBIQVNIX01VUihrZXksa2V5bGVuLG51bV9ia3RzLGhhc2h2LGJrdCkgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBjb25zdCB1aW50OF90ICpfbXVyX2RhdGEgPSAoY29uc3QgdWludDhfdCopKGtleSk7ICAgICAgICAgICAgICAgICAgICBcCistICBjb25zdCBpbnQgX211cl9uYmxvY2tzID0gKGtleWxlbikgLyA0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1aW50MzJfdCBfbXVyX2gxID0gMHhmODhENTM1MzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1aW50MzJfdCBfbXVyX2MxID0gMHhjYzllMmQ1MTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1aW50MzJfdCBfbXVyX2MyID0gMHgxYjg3MzU5MzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1aW50MzJfdCBfbXVyX2sxID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBjb25zdCB1aW50OF90ICpfbXVyX3RhaWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBjb25zdCB1aW50MzJfdCAqX211cl9ibG9ja3MgPSAoY29uc3QgdWludDMyX3QqKShfbXVyX2RhdGErX211cl9uYmxvY2tzKjQpOyBcCistICBpbnQgX211cl9pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBmb3IoX211cl9pID0gLV9tdXJfbmJsb2NrczsgX211cl9pOyBfbXVyX2krKykgeyAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9tdXJfazEgPSBNVVJfR0VUQkxPQ0soX211cl9ibG9ja3MsX211cl9pKTsgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9tdXJfazEgKj0gX211cl9jMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9tdXJfazEgPSBNVVJfUk9UTDMyKF9tdXJfazEsMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9tdXJfazEgKj0gX211cl9jMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9tdXJfaDEgXj0gX211cl9rMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9tdXJfaDEgPSBNVVJfUk9UTDMyKF9tdXJfaDEsMTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9tdXJfaDEgPSBfbXVyX2gxKjUrMHhlNjU0NmI2NDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBfbXVyX3RhaWwgPSAoY29uc3QgdWludDhfdCopKF9tdXJfZGF0YSArIF9tdXJfbmJsb2Nrcyo0KTsgICAgICAgICAgICBcCistICBfbXVyX2sxPTA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBzd2l0Y2goKGtleWxlbikgJiAzKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGNhc2UgMzogX211cl9rMSBePSBfbXVyX3RhaWxbMl0gPDwgMTY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGNhc2UgMjogX211cl9rMSBePSBfbXVyX3RhaWxbMV0gPDwgODsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGNhc2UgMTogX211cl9rMSBePSBfbXVyX3RhaWxbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9tdXJfazEgKj0gX211cl9jMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9tdXJfazEgPSBNVVJfUk9UTDMyKF9tdXJfazEsMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9tdXJfazEgKj0gX211cl9jMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9tdXJfaDEgXj0gX211cl9rMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBfbXVyX2gxIF49IChrZXlsZW4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBNVVJfRk1JWChfbXVyX2gxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBoYXNodiA9IF9tdXJfaDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBia3QgPSBoYXNodiAmIChudW1fYmt0cy0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSgwKQorLSNlbmRpZiAgLyogSEFTSF9VU0lOR19OT19TVFJJQ1RfQUxJQVNJTkcgKi8KKy0KKy0vKiBrZXkgY29tcGFyaXNvbiBmdW5jdGlvbjsgcmV0dXJuIDAgaWYga2V5cyBlcXVhbCAqLworLSNkZWZpbmUgSEFTSF9LRVlDTVAoYSxiLGxlbikgbWVtY21wKGEsYixsZW4pIAorLQorLS8qIGl0ZXJhdGUgb3ZlciBpdGVtcyBpbiBhIGtub3duIGJ1Y2tldCB0byBmaW5kIGRlc2lyZWQgaXRlbSAqLworLSNkZWZpbmUgSEFTSF9GSU5EX0lOX0JLVCh0YmwsaGgsaGVhZCxrZXlwdHIsa2V5bGVuX2luLG91dCkgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIGlmIChoZWFkLmhoX2hlYWQpIERFQ0xUWVBFX0FTU0lHTihvdXQsRUxNVF9GUk9NX0hIKHRibCxoZWFkLmhoX2hlYWQpKTsgICAgICAgICAgXAorLSBlbHNlIG91dD1OVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gd2hpbGUgKG91dCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGlmICgob3V0KS0+aGgua2V5bGVuID09IGtleWxlbl9pbikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBpZiAoKEhBU0hfS0VZQ01QKChvdXQpLT5oaC5rZXksa2V5cHRyLGtleWxlbl9pbikpID09IDApIGJyZWFrOyAgICAgICAgICAgICBcCistICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBpZiAoKG91dCktPmhoLmhoX25leHQpIERFQ0xUWVBFX0FTU0lHTihvdXQsRUxNVF9GUk9NX0hIKHRibCwob3V0KS0+aGguaGhfbmV4dCkpOyBcCistICAgIGVsc2Ugb3V0ID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlKDApCistCistLyogYWRkIGFuIGl0ZW0gdG8gYSBidWNrZXQgICovCistI2RlZmluZSBIQVNIX0FERF9UT19CS1QoaGVhZCxhZGRoaCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gaGVhZC5jb3VudCsrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIChhZGRoaCktPmhoX25leHQgPSBoZWFkLmhoX2hlYWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAoYWRkaGgpLT5oaF9wcmV2ID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gaWYgKGhlYWQuaGhfaGVhZCkgeyAoaGVhZCkuaGhfaGVhZC0+aGhfcHJldiA9IChhZGRoaCk7IH0gICAgICAgICAgICAgICAgICAgICAgICBcCistIChoZWFkKS5oaF9oZWFkPWFkZGhoOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSBpZiAoaGVhZC5jb3VudCA+PSAoKGhlYWQuZXhwYW5kX211bHQrMSkgKiBIQVNIX0JLVF9DQVBBQ0lUWV9USFJFU0gpICAgICAgICAgICAgIFwKKy0gICAgICYmIChhZGRoaCktPnRibC0+bm9leHBhbmQgIT0gMSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgIEhBU0hfRVhQQU5EX0JVQ0tFVFMoKGFkZGhoKS0+dGJsKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlKDApCistCistLyogcmVtb3ZlIGFuIGl0ZW0gZnJvbSBhIGdpdmVuIGJ1Y2tldCAqLworLSNkZWZpbmUgSEFTSF9ERUxfSU5fQktUKGhoLGhlYWQsaGhfZGVsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgKGhlYWQpLmNvdW50LS07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGlmICgoaGVhZCkuaGhfaGVhZCA9PSBoaF9kZWwpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgIChoZWFkKS5oaF9oZWFkID0gaGhfZGVsLT5oaF9uZXh0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGlmIChoaF9kZWwtPmhoX3ByZXYpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgaGhfZGVsLT5oaF9wcmV2LT5oaF9uZXh0ID0gaGhfZGVsLT5oaF9uZXh0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGlmIChoaF9kZWwtPmhoX25leHQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgaGhfZGVsLT5oaF9uZXh0LT5oaF9wcmV2ID0gaGhfZGVsLT5oaF9wcmV2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0KKy0vKiBCdWNrZXQgZXhwYW5zaW9uIGhhcyB0aGUgZWZmZWN0IG9mIGRvdWJsaW5nIHRoZSBudW1iZXIgb2YgYnVja2V0cworLSAqIGFuZCByZWRpc3RyaWJ1dGluZyB0aGUgaXRlbXMgaW50byB0aGUgbmV3IGJ1Y2tldHMuIElkZWFsbHkgdGhlCistICogaXRlbXMgd2lsbCBkaXN0cmlidXRlIG1vcmUgb3IgbGVzcyBldmVubHkgaW50byB0aGUgbmV3IGJ1Y2tldHMKKy0gKiAodGhlIGV4dGVudCB0byB3aGljaCB0aGlzIGlzIHRydWUgaXMgYSBtZWFzdXJlIG9mIHRoZSBxdWFsaXR5IG9mCistICogdGhlIGhhc2ggZnVuY3Rpb24gYXMgaXQgYXBwbGllcyB0byB0aGUga2V5IGRvbWFpbikuIAorLSAqIAorLSAqIFdpdGggdGhlIGl0ZW1zIGRpc3RyaWJ1dGVkIGludG8gbW9yZSBidWNrZXRzLCB0aGUgY2hhaW4gbGVuZ3RoCistICogKGl0ZW0gY291bnQpIGluIGVhY2ggYnVja2V0IGlzIHJlZHVjZWQuIFRodXMgYnkgZXhwYW5kaW5nIGJ1Y2tldHMKKy0gKiB0aGUgaGFzaCBrZWVwcyBhIGJvdW5kIG9uIHRoZSBjaGFpbiBsZW5ndGguIFRoaXMgYm91bmRlZCBjaGFpbiAKKy0gKiBsZW5ndGggaXMgdGhlIGVzc2VuY2Ugb2YgaG93IGEgaGFzaCBwcm92aWRlcyBjb25zdGFudCB0aW1lIGxvb2t1cC4KKy0gKiAKKy0gKiBUaGUgY2FsY3VsYXRpb24gb2YgdGJsLT5pZGVhbF9jaGFpbl9tYXhsZW4gYmVsb3cgZGVzZXJ2ZXMgc29tZQorLSAqIGV4cGxhbmF0aW9uLiBGaXJzdCwga2VlcCBpbiBtaW5kIHRoYXQgd2UncmUgY2FsY3VsYXRpbmcgdGhlIGlkZWFsCistICogbWF4aW11bSBjaGFpbiBsZW5ndGggYmFzZWQgb24gdGhlICpuZXcqIChkb3VibGVkKSBidWNrZXQgY291bnQuCistICogSW4gZnJhY3Rpb25zIHRoaXMgaXMganVzdCBuL2IgKG49bnVtYmVyIG9mIGl0ZW1zLGI9bmV3IG51bSBidWNrZXRzKS4KKy0gKiBTaW5jZSB0aGUgaWRlYWwgY2hhaW4gbGVuZ3RoIGlzIGFuIGludGVnZXIsIHdlIHdhbnQgdG8gY2FsY3VsYXRlIAorLSAqIGNlaWwobi9iKS4gV2UgZG9uJ3QgZGVwZW5kIG9uIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgaW4gdGhpcworLSAqIGhhc2gsIHNvIHRvIGNhbGN1bGF0ZSBjZWlsKG4vYikgd2l0aCBpbnRlZ2VycyB3ZSBjb3VsZCB3cml0ZQorLSAqIAorLSAqICAgICAgY2VpbChuL2IpID0gKG4vYikgKyAoKG4lYik/MTowKQorLSAqIAorLSAqIGFuZCBpbiBmYWN0IGEgcHJldmlvdXMgdmVyc2lvbiBvZiB0aGlzIGhhc2ggZGlkIGp1c3QgdGhhdC4KKy0gKiBCdXQgbm93IHdlIGhhdmUgaW1wcm92ZWQgdGhpbmdzIGEgYml0IGJ5IHJlY29nbml6aW5nIHRoYXQgYiBpcworLSAqIGFsd2F5cyBhIHBvd2VyIG9mIHR3by4gV2Uga2VlcCBpdHMgYmFzZSAyIGxvZyBoYW5keSAoY2FsbCBpdCBsYiksCistICogc28gbm93IHdlIGNhbiB3cml0ZSB0aGlzIHdpdGggYSBiaXQgc2hpZnQgYW5kIGxvZ2ljYWwgQU5EOgorLSAqIAorLSAqICAgICAgY2VpbChuL2IpID0gKG4+PmxiKSArICggKG4gJiAoYi0xKSkgPyAxOjApCistICogCistICovCistI2RlZmluZSBIQVNIX0VYUEFORF9CVUNLRVRTKHRibCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdW5zaWduZWQgX2hlX2JrdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHVuc2lnbmVkIF9oZV9ia3RfaTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBzdHJ1Y3QgVVRfaGFzaF9oYW5kbGUgKl9oZV90aGgsICpfaGVfaGhfbnh0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgVVRfaGFzaF9idWNrZXQgKl9oZV9uZXdfYnVja2V0cywgKl9oZV9uZXdia3Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9oZV9uZXdfYnVja2V0cyA9IChVVF9oYXNoX2J1Y2tldCopdXRoYXNoX21hbGxvYyggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAyICogdGJsLT5udW1fYnVja2V0cyAqIHNpemVvZihzdHJ1Y3QgVVRfaGFzaF9idWNrZXQpKTsgICAgICAgICAgICAgIFwKKy0gICAgaWYgKCFfaGVfbmV3X2J1Y2tldHMpIHsgdXRoYXNoX2ZhdGFsKCAib3V0IG9mIG1lbW9yeSIpOyB9ICAgICAgICAgICAgICAgICAgICBcCistICAgIG1lbXNldChfaGVfbmV3X2J1Y2tldHMsIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIDIgKiB0YmwtPm51bV9idWNrZXRzICogc2l6ZW9mKHN0cnVjdCBVVF9oYXNoX2J1Y2tldCkpOyAgICAgICAgICAgICAgIFwKKy0gICAgdGJsLT5pZGVhbF9jaGFpbl9tYXhsZW4gPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICh0YmwtPm51bV9pdGVtcyA+PiAodGJsLT5sb2cyX251bV9idWNrZXRzKzEpKSArICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAoKHRibC0+bnVtX2l0ZW1zICYgKCh0YmwtPm51bV9idWNrZXRzKjIpLTEpKSA/IDEgOiAwKTsgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdGJsLT5ub25pZGVhbF9pdGVtcyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGZvcihfaGVfYmt0X2kgPSAwOyBfaGVfYmt0X2kgPCB0YmwtPm51bV9idWNrZXRzOyBfaGVfYmt0X2krKykgICAgICAgICAgICAgICAgXAorLSAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIF9oZV90aGggPSB0YmwtPmJ1Y2tldHNbIF9oZV9ia3RfaSBdLmhoX2hlYWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICB3aGlsZSAoX2hlX3RoaCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgX2hlX2hoX254dCA9IF9oZV90aGgtPmhoX25leHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgIEhBU0hfVE9fQktUKCBfaGVfdGhoLT5oYXNodiwgdGJsLT5udW1fYnVja2V0cyoyLCBfaGVfYmt0KTsgICAgICAgICAgICBcCistICAgICAgICAgICBfaGVfbmV3Ymt0ID0gJihfaGVfbmV3X2J1Y2tldHNbIF9oZV9ia3QgXSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgaWYgKCsrKF9oZV9uZXdia3QtPmNvdW50KSA+IHRibC0+aWRlYWxfY2hhaW5fbWF4bGVuKSB7ICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgdGJsLT5ub25pZGVhbF9pdGVtcysrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgIF9oZV9uZXdia3QtPmV4cGFuZF9tdWx0ID0gX2hlX25ld2JrdC0+Y291bnQgLyAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YmwtPmlkZWFsX2NoYWluX21heGxlbjsgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICBfaGVfdGhoLT5oaF9wcmV2ID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgX2hlX3RoaC0+aGhfbmV4dCA9IF9oZV9uZXdia3QtPmhoX2hlYWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgIGlmIChfaGVfbmV3Ymt0LT5oaF9oZWFkKSBfaGVfbmV3Ymt0LT5oaF9oZWFkLT5oaF9wcmV2ID0gICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgIF9oZV90aGg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgX2hlX25ld2JrdC0+aGhfaGVhZCA9IF9oZV90aGg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgIF9oZV90aGggPSBfaGVfaGhfbnh0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdXRoYXNoX2ZyZWUoIHRibC0+YnVja2V0cywgdGJsLT5udW1fYnVja2V0cypzaXplb2Yoc3RydWN0IFVUX2hhc2hfYnVja2V0KSApOyBcCistICAgIHRibC0+bnVtX2J1Y2tldHMgKj0gMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB0YmwtPmxvZzJfbnVtX2J1Y2tldHMrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdGJsLT5idWNrZXRzID0gX2hlX25ld19idWNrZXRzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHRibC0+aW5lZmZfZXhwYW5kcyA9ICh0YmwtPm5vbmlkZWFsX2l0ZW1zID4gKHRibC0+bnVtX2l0ZW1zID4+IDEpKSA/ICAgICAgICAgXAorLSAgICAgICAgKHRibC0+aW5lZmZfZXhwYW5kcysxKSA6IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaWYgKHRibC0+aW5lZmZfZXhwYW5kcyA+IDEpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICB0YmwtPm5vZXhwYW5kPTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgdXRoYXNoX25vZXhwYW5kX2Z5aSh0YmwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHV0aGFzaF9leHBhbmRfZnlpKHRibCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkKKy0KKy0KKy0vKiBUaGlzIGlzIGFuIGFkYXB0YXRpb24gb2YgU2ltb24gVGF0aGFtJ3MgTyhuIGxvZyhuKSkgbWVyZ2Vzb3J0ICovCistLyogTm90ZSB0aGF0IEhBU0hfU09SVCBhc3N1bWVzIHRoZSBoYXNoIGhhbmRsZSBuYW1lIHRvIGJlIGhoLiAKKy0gKiBIQVNIX1NSVCB3YXMgYWRkZWQgdG8gYWxsb3cgdGhlIGhhc2ggaGFuZGxlIG5hbWUgdG8gYmUgcGFzc2VkIGluLiAqLworLSNkZWZpbmUgSEFTSF9TT1JUKGhlYWQsY21wZmNuKSBIQVNIX1NSVChoaCxoZWFkLGNtcGZjbikKKy0jZGVmaW5lIEhBU0hfU1JUKGhoLGhlYWQsY21wZmNuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgdW5zaWduZWQgX2hzX2k7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVuc2lnbmVkIF9oc19sb29waW5nLF9oc19ubWVyZ2VzLF9oc19pbnNpemUsX2hzX3BzaXplLF9oc19xc2l6ZTsgICAgICAgICAgICAgICBcCistICBzdHJ1Y3QgVVRfaGFzaF9oYW5kbGUgKl9oc19wLCAqX2hzX3EsICpfaHNfZSwgKl9oc19saXN0LCAqX2hzX3RhaWw7ICAgICAgICAgICAgXAorLSAgaWYgKGhlYWQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICBfaHNfaW5zaXplID0gMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgX2hzX2xvb3BpbmcgPSAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgIF9oc19saXN0ID0gJigoaGVhZCktPmhoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICB3aGlsZSAoX2hzX2xvb3BpbmcpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgIF9oc19wID0gX2hzX2xpc3Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICBfaHNfbGlzdCA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgX2hzX3RhaWwgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgIF9oc19ubWVyZ2VzID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICB3aGlsZSAoX2hzX3ApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgIF9oc19ubWVyZ2VzKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICBfaHNfcSA9IF9oc19wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgX2hzX3BzaXplID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgIGZvciAoIF9oc19pID0gMDsgX2hzX2kgIDwgX2hzX2luc2l6ZTsgX2hzX2krKyApIHsgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgX2hzX3BzaXplKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIF9oc19xID0gKFVUX2hhc2hfaGFuZGxlKikoKF9oc19xLT5uZXh0KSA/ICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICgodm9pZCopKChjaGFyKikoX2hzX3EtPm5leHQpICsgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAoaGVhZCktPmhoLnRibC0+aGhvKSkgOiBOVUxMKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIGlmICghIChfaHNfcSkgKSBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICBfaHNfcXNpemUgPSBfaHNfaW5zaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgd2hpbGUgKChfaHNfcHNpemUgPiAwKSB8fCAoKF9oc19xc2l6ZSA+IDApICYmIF9oc19xICkpIHsgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICBpZiAoX2hzX3BzaXplID09IDApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgIF9oc19lID0gX2hzX3E7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICBfaHNfcSA9IChVVF9oYXNoX2hhbmRsZSopKChfaHNfcS0+bmV4dCkgPyAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQqKSgoY2hhciopKF9oc19xLT5uZXh0KSArICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhlYWQpLT5oaC50YmwtPmhobykpIDogTlVMTCk7ICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICBfaHNfcXNpemUtLTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCAoX2hzX3FzaXplID09IDApIHx8ICEoX2hzX3EpICkgeyAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgIF9oc19lID0gX2hzX3A7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICBpZiAoX2hzX3ApeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICBfaHNfcCA9IChVVF9oYXNoX2hhbmRsZSopKChfaHNfcC0+bmV4dCkgPyAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQqKSgoY2hhciopKF9oc19wLT5uZXh0KSArICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhlYWQpLT5oaC50YmwtPmhobykpIDogTlVMTCk7ICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgIF9oc19wc2l6ZS0tOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgY21wZmNuKERFQ0xUWVBFKGhlYWQpKEVMTVRfRlJPTV9ISCgoaGVhZCktPmhoLnRibCxfaHNfcCkpLCBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERUNMVFlQRShoZWFkKShFTE1UX0ZST01fSEgoKGhlYWQpLT5oaC50YmwsX2hzX3EpKSkgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA8PSAwKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgX2hzX2UgPSBfaHNfcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgIGlmIChfaHNfcCl7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgIF9oc19wID0gKFVUX2hhc2hfaGFuZGxlKikoKF9oc19wLT5uZXh0KSA/ICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2lkKikoKGNoYXIqKShfaHNfcC0+bmV4dCkgKyAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT5oaG8pKSA6IE5VTEwpOyAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgX2hzX3BzaXplLS07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICBfaHNfZSA9IF9oc19xOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgX2hzX3EgPSAoVVRfaGFzaF9oYW5kbGUqKSgoX2hzX3EtPm5leHQpID8gICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2lkKikoKGNoYXIqKShfaHNfcS0+bmV4dCkgKyAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT5oaG8pKSA6IE5VTEwpOyAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgX2hzX3FzaXplLS07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIGlmICggX2hzX3RhaWwgKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgX2hzX3RhaWwtPm5leHQgPSAoKF9oc19lKSA/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVMTVRfRlJPTV9ISCgoaGVhZCktPmhoLnRibCxfaHNfZSkgOiBOVUxMKTsgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgX2hzX2xpc3QgPSBfaHNfZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIGlmIChfaHNfZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICBfaHNfZS0+cHJldiA9ICgoX2hzX3RhaWwpID8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgRUxNVF9GUk9NX0hIKChoZWFkKS0+aGgudGJsLF9oc190YWlsKSA6IE5VTEwpOyAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICBfaHNfdGFpbCA9IF9oc19lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgX2hzX3AgPSBfaHNfcTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgIGlmIChfaHNfdGFpbCl7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIF9oc190YWlsLT5uZXh0ID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgIGlmICggX2hzX25tZXJnZXMgPD0gMSApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgX2hzX2xvb3Bpbmc9MDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT50YWlsID0gX2hzX3RhaWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICBERUNMVFlQRV9BU1NJR04oaGVhZCxFTE1UX0ZST01fSEgoKGhlYWQpLT5oaC50YmwsIF9oc19saXN0KSk7ICAgICAgXAorLSAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgX2hzX2luc2l6ZSAqPSAyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgIEhBU0hfRlNDSyhoaCxoZWFkKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSAoMCkKKy0KKy0vKiBUaGlzIGZ1bmN0aW9uIHNlbGVjdHMgaXRlbXMgZnJvbSBvbmUgaGFzaCBpbnRvIGFub3RoZXIgaGFzaC4gCistICogVGhlIGVuZCByZXN1bHQgaXMgdGhhdCB0aGUgc2VsZWN0ZWQgaXRlbXMgaGF2ZSBkdWFsIHByZXNlbmNlIAorLSAqIGluIGJvdGggaGFzaGVzLiBUaGVyZSBpcyBubyBjb3B5IG9mIHRoZSBpdGVtcyBtYWRlOyByYXRoZXIgCistICogdGhleSBhcmUgYWRkZWQgaW50byB0aGUgbmV3IGhhc2ggdGhyb3VnaCBhIHNlY29uZGFyeSBoYXNoIAorLSAqIGhhc2ggaGFuZGxlIHRoYXQgbXVzdCBiZSBwcmVzZW50IGluIHRoZSBzdHJ1Y3R1cmUuICovCistI2RlZmluZSBIQVNIX1NFTEVDVChoaF9kc3QsIGRzdCwgaGhfc3JjLCBzcmMsIGNvbmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVuc2lnbmVkIF9zcmNfYmt0LCBfZHN0X2JrdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB2b2lkICpfbGFzdF9lbHQ9TlVMTCwgKl9lbHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgVVRfaGFzaF9oYW5kbGUgKl9zcmNfaGgsICpfZHN0X2hoLCAqX2xhc3RfZWx0X2hoPU5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHB0cmRpZmZfdCBfZHN0X2hobyA9ICgoY2hhciopKCYoZHN0KS0+aGhfZHN0KSAtIChjaGFyKikoZHN0KSk7ICAgICAgICAgICAgICAgICBcCistICBpZiAoc3JjKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBmb3IoX3NyY19ia3Q9MDsgX3NyY19ia3QgPCAoc3JjKS0+aGhfc3JjLnRibC0+bnVtX2J1Y2tldHM7IF9zcmNfYmt0KyspIHsgICAgIFwKKy0gICAgICBmb3IoX3NyY19oaCA9IChzcmMpLT5oaF9zcmMudGJsLT5idWNrZXRzW19zcmNfYmt0XS5oaF9oZWFkOyAgICAgICAgICAgICAgICBcCistICAgICAgICAgIF9zcmNfaGg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICBfc3JjX2hoID0gX3NyY19oaC0+aGhfbmV4dCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgX2VsdCA9IEVMTVRfRlJPTV9ISCgoc3JjKS0+aGhfc3JjLnRibCwgX3NyY19oaCk7ICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgIGlmIChjb25kKF9lbHQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIF9kc3RfaGggPSAoVVRfaGFzaF9oYW5kbGUqKSgoKGNoYXIqKV9lbHQpICsgX2RzdF9oaG8pOyAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBfZHN0X2hoLT5rZXkgPSBfc3JjX2hoLT5rZXk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgX2RzdF9oaC0+a2V5bGVuID0gX3NyY19oaC0+a2V5bGVuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIF9kc3RfaGgtPmhhc2h2ID0gX3NyY19oaC0+aGFzaHY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBfZHN0X2hoLT5wcmV2ID0gX2xhc3RfZWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgX2RzdF9oaC0+bmV4dCA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIGlmIChfbGFzdF9lbHRfaGgpIHsgX2xhc3RfZWx0X2hoLT5uZXh0ID0gX2VsdDsgfSAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBpZiAoIWRzdCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICBERUNMVFlQRV9BU1NJR04oZHN0LF9lbHQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgSEFTSF9NQUtFX1RBQkxFKGhoX2RzdCxkc3QpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICBfZHN0X2hoLT50YmwgPSAoZHN0KS0+aGhfZHN0LnRibDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBIQVNIX1RPX0JLVChfZHN0X2hoLT5oYXNodiwgX2RzdF9oaC0+dGJsLT5udW1fYnVja2V0cywgX2RzdF9ia3QpOyAgICBcCistICAgICAgICAgICAgSEFTSF9BRERfVE9fQktUKF9kc3RfaGgtPnRibC0+YnVja2V0c1tfZHN0X2JrdF0sX2RzdF9oaCk7ICAgICAgICAgICAgXAorLSAgICAgICAgICAgIChkc3QpLT5oaF9kc3QudGJsLT5udW1faXRlbXMrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBfbGFzdF9lbHQgPSBfZWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgX2xhc3RfZWx0X2hoID0gX2RzdF9oaDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIEhBU0hfRlNDSyhoaF9kc3QsZHN0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSAoMCkKKy0KKy0jZGVmaW5lIEhBU0hfQ0xFQVIoaGgsaGVhZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgaWYgKGhlYWQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdXRoYXNoX2ZyZWUoKGhlYWQpLT5oaC50YmwtPmJ1Y2tldHMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT5udW1fYnVja2V0cypzaXplb2Yoc3RydWN0IFVUX2hhc2hfYnVja2V0KSk7ICAgICAgXAorLSAgICBIQVNIX0JMT09NX0ZSRUUoKGhlYWQpLT5oaC50YmwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdXRoYXNoX2ZyZWUoKGhlYWQpLT5oaC50YmwsIHNpemVvZihVVF9oYXNoX3RhYmxlKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIChoZWFkKT1OVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlKDApCistCistI2RlZmluZSBIQVNIX09WRVJIRUFEKGhoLGhlYWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAoc2l6ZV90KSgoKChoZWFkKS0+aGgudGJsLT5udW1faXRlbXMgICAqIHNpemVvZihVVF9oYXNoX2hhbmRsZSkpICAgKyAgICAgICAgICAgIFwKKy0gICAgICAgICAgICgoaGVhZCktPmhoLnRibC0+bnVtX2J1Y2tldHMgKiBzaXplb2YoVVRfaGFzaF9idWNrZXQpKSAgICsgICAgICAgICAgICBcCistICAgICAgICAgICAgKHNpemVvZihVVF9oYXNoX3RhYmxlKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICAgICAgICAgICAgXAorLSAgICAgICAgICAgIChIQVNIX0JMT09NX0JZVEVMRU4pKSkKKy0KKy0jaWZkZWYgTk9fREVDTFRZUEUKKy0jZGVmaW5lIEhBU0hfSVRFUihoaCxoZWFkLGVsLHRtcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZm9yKChlbCk9KGhlYWQpLCAoKihjaGFyKiopKCYodG1wKSkpPShjaGFyKikoKGhlYWQpPyhoZWFkKS0+aGgubmV4dDpOVUxMKTsgICAgICAgXAorLSAgZWw7IChlbCk9KHRtcCksKCooY2hhcioqKSgmKHRtcCkpKT0oY2hhciopKCh0bXApPyh0bXApLT5oaC5uZXh0Ok5VTEwpKSAKKy0jZWxzZQorLSNkZWZpbmUgSEFTSF9JVEVSKGhoLGhlYWQsZWwsdG1wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1mb3IoKGVsKT0oaGVhZCksKHRtcCk9REVDTFRZUEUoZWwpKChoZWFkKT8oaGVhZCktPmhoLm5leHQ6TlVMTCk7ICAgICAgICAgICAgICAgICBcCistICBlbDsgKGVsKT0odG1wKSwodG1wKT1ERUNMVFlQRShlbCkoKHRtcCk/KHRtcCktPmhoLm5leHQ6TlVMTCkpCistI2VuZGlmCistCistLyogb2J0YWluIGEgY291bnQgb2YgaXRlbXMgaW4gdGhlIGhhc2ggKi8KKy0jZGVmaW5lIEhBU0hfQ09VTlQoaGVhZCkgSEFTSF9DTlQoaGgsaGVhZCkgCistI2RlZmluZSBIQVNIX0NOVChoaCxoZWFkKSAoKGhlYWQpPygoaGVhZCktPmhoLnRibC0+bnVtX2l0ZW1zKTowKQorLQorLXR5cGVkZWYgc3RydWN0IFVUX2hhc2hfYnVja2V0IHsKKy0gICBzdHJ1Y3QgVVRfaGFzaF9oYW5kbGUgKmhoX2hlYWQ7CistICAgdW5zaWduZWQgY291bnQ7CistCistICAgLyogZXhwYW5kX211bHQgaXMgbm9ybWFsbHkgc2V0IHRvIDAuIEluIHRoaXMgc2l0dWF0aW9uLCB0aGUgbWF4IGNoYWluIGxlbmd0aAorLSAgICAqIHRocmVzaG9sZCBpcyBlbmZvcmNlZCBhdCBpdHMgZGVmYXVsdCB2YWx1ZSwgSEFTSF9CS1RfQ0FQQUNJVFlfVEhSRVNILiAoSWYKKy0gICAgKiB0aGUgYnVja2V0J3MgY2hhaW4gZXhjZWVkcyB0aGlzIGxlbmd0aCwgYnVja2V0IGV4cGFuc2lvbiBpcyB0cmlnZ2VyZWQpLiAKKy0gICAgKiBIb3dldmVyLCBzZXR0aW5nIGV4cGFuZF9tdWx0IHRvIGEgbm9uLXplcm8gdmFsdWUgZGVsYXlzIGJ1Y2tldCBleHBhbnNpb24KKy0gICAgKiAodGhhdCB3b3VsZCBiZSB0cmlnZ2VyZWQgYnkgYWRkaXRpb25zIHRvIHRoaXMgcGFydGljdWxhciBidWNrZXQpCistICAgICogdW50aWwgaXRzIGNoYWluIGxlbmd0aCByZWFjaGVzIGEgKm11bHRpcGxlKiBvZiBIQVNIX0JLVF9DQVBBQ0lUWV9USFJFU0guCistICAgICogKFRoZSBtdWx0aXBsaWVyIGlzIHNpbXBseSBleHBhbmRfbXVsdCsxKS4gVGhlIHdob2xlIGlkZWEgb2YgdGhpcworLSAgICAqIG11bHRpcGxpZXIgaXMgdG8gcmVkdWNlIGJ1Y2tldCBleHBhbnNpb25zLCBzaW5jZSB0aGV5IGFyZSBleHBlbnNpdmUsIGluCistICAgICogc2l0dWF0aW9ucyB3aGVyZSB3ZSBrbm93IHRoYXQgYSBwYXJ0aWN1bGFyIGJ1Y2tldCB0ZW5kcyB0byBiZSBvdmVydXNlZC4KKy0gICAgKiBJdCBpcyBiZXR0ZXIgdG8gbGV0IGl0cyBjaGFpbiBsZW5ndGggZ3JvdyB0byBhIGxvbmdlciB5ZXQtc3RpbGwtYm91bmRlZAorLSAgICAqIHZhbHVlLCB0aGFuIHRvIGRvIGFuIE8obikgYnVja2V0IGV4cGFuc2lvbiB0b28gb2Z0ZW4uIAorLSAgICAqLworLSAgIHVuc2lnbmVkIGV4cGFuZF9tdWx0OworLQorLX0gVVRfaGFzaF9idWNrZXQ7CistCistLyogcmFuZG9tIHNpZ25hdHVyZSB1c2VkIG9ubHkgdG8gZmluZCBoYXNoIHRhYmxlcyBpbiBleHRlcm5hbCBhbmFseXNpcyAqLworLSNkZWZpbmUgSEFTSF9TSUdOQVRVUkUgMHhhMDExMWZlMQorLSNkZWZpbmUgSEFTSF9CTE9PTV9TSUdOQVRVUkUgMHhiMTIyMjBmMgorLQorLXR5cGVkZWYgc3RydWN0IFVUX2hhc2hfdGFibGUgeworLSAgIFVUX2hhc2hfYnVja2V0ICpidWNrZXRzOworLSAgIHVuc2lnbmVkIG51bV9idWNrZXRzLCBsb2cyX251bV9idWNrZXRzOworLSAgIHVuc2lnbmVkIG51bV9pdGVtczsKKy0gICBzdHJ1Y3QgVVRfaGFzaF9oYW5kbGUgKnRhaWw7IC8qIHRhaWwgaGggaW4gYXBwIG9yZGVyLCBmb3IgZmFzdCBhcHBlbmQgICAgKi8KKy0gICBwdHJkaWZmX3QgaGhvOyAvKiBoYXNoIGhhbmRsZSBvZmZzZXQgKGJ5dGUgcG9zIG9mIGhhc2ggaGFuZGxlIGluIGVsZW1lbnQgKi8KKy0KKy0gICAvKiBpbiBhbiBpZGVhbCBzaXR1YXRpb24gKGFsbCBidWNrZXRzIHVzZWQgZXF1YWxseSksIG5vIGJ1Y2tldCB3b3VsZCBoYXZlCistICAgICogbW9yZSB0aGFuIGNlaWwoI2l0ZW1zLyNidWNrZXRzKSBpdGVtcy4gdGhhdCdzIHRoZSBpZGVhbCBjaGFpbiBsZW5ndGguICovCistICAgdW5zaWduZWQgaWRlYWxfY2hhaW5fbWF4bGVuOworLQorLSAgIC8qIG5vbmlkZWFsX2l0ZW1zIGlzIHRoZSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIGhhc2ggd2hvc2UgY2hhaW4gcG9zaXRpb24KKy0gICAgKiBleGNlZWRzIHRoZSBpZGVhbCBjaGFpbiBtYXhsZW4uIHRoZXNlIGl0ZW1zIHBheSB0aGUgcGVuYWx0eSBmb3IgYW4gdW5ldmVuCistICAgICogaGFzaCBkaXN0cmlidXRpb247IHJlYWNoaW5nIHRoZW0gaW4gYSBjaGFpbiB0cmF2ZXJzYWwgdGFrZXMgPmlkZWFsIHN0ZXBzICovCistICAgdW5zaWduZWQgbm9uaWRlYWxfaXRlbXM7CistCistICAgLyogaW5lZmZlY3RpdmUgZXhwYW5kcyBvY2N1ciB3aGVuIGEgYnVja2V0IGRvdWJsaW5nIHdhcyBwZXJmb3JtZWQsIGJ1dCAKKy0gICAgKiBhZnRlcndhcmQsIG1vcmUgdGhhbiBoYWxmIHRoZSBpdGVtcyBpbiB0aGUgaGFzaCBoYWQgbm9uaWRlYWwgY2hhaW4KKy0gICAgKiBwb3NpdGlvbnMuIElmIHRoaXMgaGFwcGVucyBvbiB0d28gY29uc2VjdXRpdmUgZXhwYW5zaW9ucyB3ZSBpbmhpYml0IGFueQorLSAgICAqIGZ1cnRoZXIgZXhwYW5zaW9uLCBhcyBpdCdzIG5vdCBoZWxwaW5nOyB0aGlzIGhhcHBlbnMgd2hlbiB0aGUgaGFzaAorLSAgICAqIGZ1bmN0aW9uIGlzbid0IGEgZ29vZCBmaXQgZm9yIHRoZSBrZXkgZG9tYWluLiBXaGVuIGV4cGFuc2lvbiBpcyBpbmhpYml0ZWQKKy0gICAgKiB0aGUgaGFzaCB3aWxsIHN0aWxsIHdvcmssIGFsYmVpdCBubyBsb25nZXIgaW4gY29uc3RhbnQgdGltZS4gKi8KKy0gICB1bnNpZ25lZCBpbmVmZl9leHBhbmRzLCBub2V4cGFuZDsKKy0KKy0gICB1aW50MzJfdCBzaWduYXR1cmU7IC8qIHVzZWQgb25seSB0byBmaW5kIGhhc2ggdGFibGVzIGluIGV4dGVybmFsIGFuYWx5c2lzICovCistI2lmZGVmIEhBU0hfQkxPT00KKy0gICB1aW50MzJfdCBibG9vbV9zaWc7IC8qIHVzZWQgb25seSB0byB0ZXN0IGJsb29tIGV4aXN0cyBpbiBleHRlcm5hbCBhbmFseXNpcyAqLworLSAgIHVpbnQ4X3QgKmJsb29tX2J2OworLSAgIGNoYXIgYmxvb21fbmJpdHM7CistI2VuZGlmCistCistfSBVVF9oYXNoX3RhYmxlOworLQorLXR5cGVkZWYgc3RydWN0IFVUX2hhc2hfaGFuZGxlIHsKKy0gICBzdHJ1Y3QgVVRfaGFzaF90YWJsZSAqdGJsOworLSAgIHZvaWQgKnByZXY7ICAgICAgICAgICAgICAgICAgICAgICAvKiBwcmV2IGVsZW1lbnQgaW4gYXBwIG9yZGVyICAgICAgKi8KKy0gICB2b2lkICpuZXh0OyAgICAgICAgICAgICAgICAgICAgICAgLyogbmV4dCBlbGVtZW50IGluIGFwcCBvcmRlciAgICAgICovCistICAgc3RydWN0IFVUX2hhc2hfaGFuZGxlICpoaF9wcmV2OyAgIC8qIHByZXZpb3VzIGhoIGluIGJ1Y2tldCBvcmRlciAgICAqLworLSAgIHN0cnVjdCBVVF9oYXNoX2hhbmRsZSAqaGhfbmV4dDsgICAvKiBuZXh0IGhoIGluIGJ1Y2tldCBvcmRlciAgICAgICAgKi8KKy0gICB2b2lkICprZXk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogcHRyIHRvIGVuY2xvc2luZyBzdHJ1Y3QncyBrZXkgICovCistICAgdW5zaWduZWQga2V5bGVuOyAgICAgICAgICAgICAgICAgIC8qIGVuY2xvc2luZyBzdHJ1Y3QncyBrZXkgbGVuICAgICAqLworLSAgIHVuc2lnbmVkIGhhc2h2OyAgICAgICAgICAgICAgICAgICAvKiByZXN1bHQgb2YgaGFzaC1mY24oa2V5KSAgICAgICAgKi8KKy19IFVUX2hhc2hfaGFuZGxlOworLQorLSNlbmRpZiAvKiBVVEhBU0hfSCAqLworLS0gCisyLjE1LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L21vc3F1aXR0by9maWxlcy9idWlsZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9tb3NxdWl0dG8vZmlsZXMvYnVpbGQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkMDkxMmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L21vc3F1aXR0by9maWxlcy9idWlsZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLUZyb20gZWJkN2M4ZTU0OGU5YjhlMDk2ZWU0YzM5MDE3M2RiOWE3MDFmMjYwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEJydW5vIEJvdHRhenppbmkgPGJydW5vLmJvdHRhenppbmlAaW50ZWwuY29tPgotRGF0ZTogV2VkLCAyMyBNYXIgMjAxNiAxMToxODoyNiAtMDMwMAotU3ViamVjdDogW1BBVENIXSBidWlsZAotCi1EaXNhYmxlIHN0cmlwcGluZyBhbmQgYWxsb3cgZWFzaWx5IG92ZXJyaWRpbmcgcHJlZml4Ci0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBCcnVubyBCb3R0YXp6aW5pIDxicnVuby5ib3R0YXp6aW5pQGludGVsLmNvbT4KLS0tLQotIGNsaWVudC9NYWtlZmlsZSAgfCA0ICsrLS0KLSBjb25maWcubWsgICAgICAgIHwgMiArLQotIGxpYi9NYWtlZmlsZSAgICAgfCAyICstCi0gbGliL2NwcC9NYWtlZmlsZSB8IDIgKy0KLSBzcmMvTWFrZWZpbGUgICAgIHwgNCArKy0tCi0gNSBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9jbGllbnQvTWFrZWZpbGUgYi9jbGllbnQvTWFrZWZpbGUKLWluZGV4IGJkNjUzNTUuLjRlNWE2NDAgMTAwNjQ0Ci0tLS0gYS9jbGllbnQvTWFrZWZpbGUKLSsrKyBiL2NsaWVudC9NYWtlZmlsZQotQEAgLTI0LDggKzI0LDggQEAgY2xpZW50X3NoYXJlZC5vIDogY2xpZW50X3NoYXJlZC5jIGNsaWVudAotIAotIGluc3RhbGwgOiBhbGwKLSAJJChJTlNUQUxMKSAtZCAke0RFU1RESVJ9JChwcmVmaXgpL2JpbgotLQkkKElOU1RBTEwpIC1zIC0tc3RyaXAtcHJvZ3JhbT0ke0NST1NTX0NPTVBJTEV9JHtTVFJJUH0gbW9zcXVpdHRvX3B1YiAke0RFU1RESVJ9JHtwcmVmaXh9L2Jpbi9tb3NxdWl0dG9fcHViCi0tCSQoSU5TVEFMTCkgLXMgLS1zdHJpcC1wcm9ncmFtPSR7Q1JPU1NfQ09NUElMRX0ke1NUUklQfSBtb3NxdWl0dG9fc3ViICR7REVTVERJUn0ke3ByZWZpeH0vYmluL21vc3F1aXR0b19zdWIKLSsJJChJTlNUQUxMKSBtb3NxdWl0dG9fcHViICR7REVTVERJUn0ke3ByZWZpeH0vYmluL21vc3F1aXR0b19wdWIKLSsJJChJTlNUQUxMKSBtb3NxdWl0dG9fc3ViICR7REVTVERJUn0ke3ByZWZpeH0vYmluL21vc3F1aXR0b19zdWIKLSAKLSB1bmluc3RhbGwgOgotIAktcm0gLWYgJHtERVNURElSfSR7cHJlZml4fS9iaW4vbW9zcXVpdHRvX3B1YgotZGlmZiAtLWdpdCBhL2NvbmZpZy5tayBiL2NvbmZpZy5tawotaW5kZXggYzBmMTc1Zi4uMzQyN2I4MyAxMDA2NDQKLS0tLSBhL2NvbmZpZy5tawotKysrIGIvY29uZmlnLm1rCi1AQCAtMjQxLDcgKzI0MSw3IEBAIGlmZXEgKCQoV0lUSF9ET0NTKSx5ZXMpCi0gZW5kaWYKLSAKLSBJTlNUQUxMPz1pbnN0YWxsCi0tcHJlZml4PS91c3IvbG9jYWwKLStwcmVmaXg/PS91c3IKLSBtYW5kaXI9JHtwcmVmaXh9L3NoYXJlL21hbgotIGxvY2FsZWRpcj0ke3ByZWZpeH0vc2hhcmUvbG9jYWxlCi0gU1RSSVA/PXN0cmlwCi1kaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxlIGIvbGliL01ha2VmaWxlCi1pbmRleCA4MjVmY2VhLi45YjdjMDVjIDEwMDY0NAotLS0tIGEvbGliL01ha2VmaWxlCi0rKysgYi9saWIvTWFrZWZpbGUKLUBAIC0yNSw3ICsyNSw3IEBAIGFsbCA6IGxpYm1vc3F1aXR0by5zby4ke1NPVkVSU0lPTn0gbGlibW8KLSAKLSBpbnN0YWxsIDogYWxsCi0gCSQoSU5TVEFMTCkgLWQgJHtERVNURElSfSQocHJlZml4KS9saWIke0xJQl9TVUZGSVh9LwotLQkkKElOU1RBTEwpIC1zIC0tc3RyaXAtcHJvZ3JhbT0ke0NST1NTX0NPTVBJTEV9JHtTVFJJUH0gbGlibW9zcXVpdHRvLnNvLiR7U09WRVJTSU9OfSAke0RFU1RESVJ9JHtwcmVmaXh9L2xpYiR7TElCX1NVRkZJWH0vbGlibW9zcXVpdHRvLnNvLiR7U09WRVJTSU9OfQotKwkkKElOU1RBTEwpIGxpYm1vc3F1aXR0by5zby4ke1NPVkVSU0lPTn0gJHtERVNURElSfSR7cHJlZml4fS9saWIke0xJQl9TVUZGSVh9L2xpYm1vc3F1aXR0by5zby4ke1NPVkVSU0lPTn0KLSAJbG4gLXNmIGxpYm1vc3F1aXR0by5zby4ke1NPVkVSU0lPTn0gJHtERVNURElSfSR7cHJlZml4fS9saWIke0xJQl9TVUZGSVh9L2xpYm1vc3F1aXR0by5zbwotIAkkKElOU1RBTEwpIC1kICR7REVTVERJUn0ke3ByZWZpeH0vaW5jbHVkZS8KLSAJJChJTlNUQUxMKSBtb3NxdWl0dG8uaCAke0RFU1RESVJ9JHtwcmVmaXh9L2luY2x1ZGUvbW9zcXVpdHRvLmgKLWRpZmYgLS1naXQgYS9saWIvY3BwL01ha2VmaWxlIGIvbGliL2NwcC9NYWtlZmlsZQotaW5kZXggOGI2MjdkMy4uY2RiMjkyMyAxMDA2NDQKLS0tLSBhL2xpYi9jcHAvTWFrZWZpbGUKLSsrKyBiL2xpYi9jcHAvTWFrZWZpbGUKLUBAIC0xMCw3ICsxMCw3IEBAIGFsbCA6IGxpYm1vc3F1aXR0b3BwLnNvLiR7U09WRVJTSU9OfQotIAotIGluc3RhbGwgOiBhbGwKLSAJJChJTlNUQUxMKSAtZCAke0RFU1RESVJ9JChwcmVmaXgpL2xpYiR7TElCX1NVRkZJWH0vCi0tCSQoSU5TVEFMTCkgLXMgLS1zdHJpcC1wcm9ncmFtPSR7Q1JPU1NfQ09NUElMRX0ke1NUUklQfSBsaWJtb3NxdWl0dG9wcC5zby4ke1NPVkVSU0lPTn0gJHtERVNURElSfSR7cHJlZml4fS9saWIke0xJQl9TVUZGSVh9L2xpYm1vc3F1aXR0b3BwLnNvLiR7U09WRVJTSU9OfQotKwkkKElOU1RBTEwpIGxpYm1vc3F1aXR0b3BwLnNvLiR7U09WRVJTSU9OfSAke0RFU1RESVJ9JHtwcmVmaXh9L2xpYiR7TElCX1NVRkZJWH0vbGlibW9zcXVpdHRvcHAuc28uJHtTT1ZFUlNJT059Ci0gCWxuIC1zZiBsaWJtb3NxdWl0dG9wcC5zby4ke1NPVkVSU0lPTn0gJHtERVNURElSfSR7cHJlZml4fS9saWIke0xJQl9TVUZGSVh9L2xpYm1vc3F1aXR0b3BwLnNvCi0gCSQoSU5TVEFMTCkgLWQgJHtERVNURElSfSR7cHJlZml4fS9pbmNsdWRlLwotIAkkKElOU1RBTEwpIG1vc3F1aXR0b3BwLmggJHtERVNURElSfSR7cHJlZml4fS9pbmNsdWRlL21vc3F1aXR0b3BwLmgKLWRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUgYi9zcmMvTWFrZWZpbGUKLWluZGV4IDJjZmI3ZDQuLjlhOTc2NDQgMTAwNjQ0Ci0tLS0gYS9zcmMvTWFrZWZpbGUKLSsrKyBiL3NyYy9NYWtlZmlsZQotQEAgLTEwMywxMiArMTAzLDEyIEBAIG1vc3F1aXR0b19wYXNzd2QubyA6IG1vc3F1aXR0b19wYXNzd2QuYwotIAotIGluc3RhbGwgOiBhbGwKLSAJJChJTlNUQUxMKSAtZCAke0RFU1RESVJ9JChwcmVmaXgpL3NiaW4KLS0JJChJTlNUQUxMKSAtcyAtLXN0cmlwLXByb2dyYW09JHtDUk9TU19DT01QSUxFfSR7U1RSSVB9IG1vc3F1aXR0byAke0RFU1RESVJ9JHtwcmVmaXh9L3NiaW4vbW9zcXVpdHRvCi0rCSQoSU5TVEFMTCkgbW9zcXVpdHRvICR7REVTVERJUn0ke3ByZWZpeH0vc2Jpbi9tb3NxdWl0dG8KLQkkKElOU1RBTEwpIC1kICR7REVTVERJUn0kKHByZWZpeCkvaW5jbHVkZQotIAkkKElOU1RBTEwpIG1vc3F1aXR0b19wbHVnaW4uaCAke0RFU1RESVJ9JHtwcmVmaXh9L2luY2x1ZGUvbW9zcXVpdHRvX3BsdWdpbi5oCi0gaWZlcSAoJChXSVRIX1RMUykseWVzKQotCSQoSU5TVEFMTCkgLWQgJHtERVNURElSfSQocHJlZml4KS9iaW4KLS0JJChJTlNUQUxMKSAtcyAtLXN0cmlwLXByb2dyYW09JHtDUk9TU19DT01QSUxFfSR7U1RSSVB9IG1vc3F1aXR0b19wYXNzd2QgJHtERVNURElSfSR7cHJlZml4fS9iaW4vbW9zcXVpdHRvX3Bhc3N3ZAotKwkkKElOU1RBTEwpIG1vc3F1aXR0b19wYXNzd2QgJHtERVNURElSfSR7cHJlZml4fS9iaW4vbW9zcXVpdHRvX3Bhc3N3ZAotIGVuZGlmCi0gCi0gdW5pbnN0YWxsIDoKLS0tIAotMi43LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L21vc3F1aXR0by9tb3NxdWl0dG9fMS40LjE0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L21vc3F1aXR0by9tb3NxdWl0dG9fMS40LjE0LmJiCmluZGV4IDc1NTQyNDguLjEzY2UzODEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9tb3NxdWl0dG8vbW9zcXVpdHRvXzEuNC4xNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbW9zcXVpdHRvL21vc3F1aXR0b18xLjQuMTQuYmIKQEAgLTgsOSArOCwxMSBAQAogICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZXBsLXYxMDttZDU9OGQzODNjMzc5ZTkxZDIwYmExOGE1MmMzZTdkM2E5NzkgXAogICAgICAgICAgICAgICAgICAgICBmaWxlOi8vbm90aWNlLmh0bWw7bWQ1PWEwMGQ2ZjlhYjU0MmJlN2JhYmMyZDhiODBkNWQyYTRjIFwKICIKK0RFUEVORFMgPSAidXRoYXNoIgogCiBTUkNfVVJJID0gImh0dHA6Ly9tb3NxdWl0dG8ub3JnL2ZpbGVzL3NvdXJjZS9tb3NxdWl0dG8tJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL2J1aWxkLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlnLm1rLWFsbG93LXByZWZpeC1tYW5kaXItbG9jYWxlZGlyLWZyb20tZW52aXJvbi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAyLXV0aGFzaC1yZW1vdmUtaW4tdHJlZS12ZXJzaW9uLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovL21vc3F1aXR0by5zZXJ2aWNlIFwKICAgICAgICAgICAgZmlsZTovL21vc3F1aXR0by5pbml0IFwKICIKQEAgLTI2LDYgKzI4LDcgQEAKIFBBQ0tBR0VDT05GSUdbc3NsXSA9ICIsLG9wZW5zc2wiCiBQQUNLQUdFQ09ORklHW3V1aWRdID0gIiwsdXRpbC1saW51eCIKIEVYVFJBX09FTUFLRSA9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdkbnMtc3J2JywgJ1dJVEhfU1JWPXllcycsICdXSVRIX1NSVj1ubycsIGQpfSBcCisgICAgICAgICAgICAgICAgU1RSSVA9L2Jpbi90cnVlIFwKICAgICAgICAgICAgICAgICBXSVRIX0RPQ1M9bm8gXAogICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3NzbCcsICdXSVRIX1RMUz15ZXMgV0lUSF9UTFNfUFNLPXllcycsICdXSVRIX1RMUz1ubyBXSVRIX1RMU19QU0s9bm8nLCBkKX0gXAogICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3V1aWQnLCAnV0lUSF9VVUlEPXllcycsICdXSVRIX1VVSUQ9bm8nLCBkKX0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleC9vYmV4LWRhdGEtc2VydmVyXzAuNC42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L29iZXgvb2JleC1kYXRhLXNlcnZlcl8wLjQuNi5iYgppbmRleCBlMTBiODljLi43MTViMDIzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleC9vYmV4LWRhdGEtc2VydmVyXzAuNC42LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9vYmV4L29iZXgtZGF0YS1zZXJ2ZXJfMC40LjYuYmIKQEAgLTExLDYgKzExLDggQEAKIFNSQ19VUklbbWQ1c3VtXSA9ICI5NjFjYTVkYjZmZTljOTcwMjRlMTMzY2M2MjAzY2M0ZCIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICJiMzk5NDY1ZGRiZDZkMDIxN2FiZWRkOTQxMWQ5ZDc0YTgyMGVmZmEwYTZhMTQyYWRjNDQ4MjY4ZDM5MjAwOTRmIgogCi1pbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAgcGtnY29uZmlnCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9kYnVzLTEvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L29iZXgvb3Blbm9iZXhfMS43LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleC9vcGVub2JleF8xLjcuMi5iYgppbmRleCAyZGI0OGYzLi4xYjU2Njg1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleC9vcGVub2JleF8xLjcuMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleC9vcGVub2JleF8xLjcuMi5iYgpAQCAtMjUsNiArMjUsOCBAQAogCiAjLS1lbmFibGUtYXBwcyAtLWVuYWJsZS1zeXNsb2cKIAorQVNORUVERUQgPSAiIgorCiBkb19pbnN0YWxsX2FwcGVuZCAoKSB7CiAgICAgcm1kaXIgJHtEfSR7YmluZGlyfQogfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L29iZXhmdHAvb2JleGZ0cF8wLjI0LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleGZ0cC9vYmV4ZnRwXzAuMjQuMi5iYgppbmRleCA0ODk4NjFjLi5iNGE5MTRkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleGZ0cC9vYmV4ZnRwXzAuMjQuMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleGZ0cC9vYmV4ZnRwXzAuMjQuMi5iYgpAQCAtMTYsNiArMTYsOCBAQAogCiBpbmhlcml0IGNtYWtlIHBrZ2NvbmZpZwogCitPRUNNQUtFX0dFTkVSQVRPUiA9ICJVbml4IE1ha2VmaWxlcyIKKwogUEFDS0FHRUNPTkZJRyA/PSAiIgogIyBmdXNlIHN1cHBvcnQgd2lsbCBuZWVkIG1ldGEtZmlsZXN5c3RlbXMgbGF5ZXIKIFBBQ0tBR0VDT05GSUdbZnVzZV0gPSAiLURFTkFCTEVfRlVTRT1PTiwtREVOQUJMRV9GVVNFPU9GRixmdXNlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczMvZml4LW1ha2VmaWxlLW92ZXJyaWRlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczMvZml4LW1ha2VmaWxlLW92ZXJyaWRlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMGExZDMzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbXN0b29sczMvc21zdG9vbHMzL2ZpeC1tYWtlZmlsZS1vdmVycmlkZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgW2RlYmlhbl0KLQotLS0tIGEvc3JjL01ha2VmaWxlCi0rKysgYi9zcmMvTWFrZWZpbGUKLUBAIC0zNywxNiArMzcsMTUgQEAKLSAjIFVzZSB0aGUgZm9sbG93aW5nIG9ubHkgb24gR05VL0xpbnV4IGFuZCBvbmx5IGlmIHlvdSBuZWVkIHBzIGxpc3RpbmcgbGlrZSAic21zZDogTUFJTlBST0NFU1MiIGFuZCAic21zZDogR1NNMSIKLSAjIENGTEFHUyArPSAtRCBVU0VfTElOVVhfUFNfVFJJQ0sKLSAKLS1hbGw6IHNtc2QgCi0tCi0tc21zZDogc21zZC5jIGV4dHJhcy5vIGxvY2tpbmcubyBjZmdmaWxlLm8gbG9nZ2luZy5vIGFsYXJtLm8gc21zZF9jZmcubyBjaGFyc2V0Lm8gc3RhdHMubyBibGFja2xpc3QubyB3aGl0ZWxpc3QubyBtb2RlbWluaXQubyBwZHUubwotLQotIGlmbmVxICgsJChmaW5kc3RyaW5nIFNPTEFSSVMsJChDRkxBR1MpKSkKLSBpZmVxICgsJChmaW5kc3RyaW5nIERJU0FCTEVfSU5FVF9TT0NLRVQsJChDRkxBR1MpKSkKLSBvdmVycmlkZSBMRkxBR1MgKz0gLWxzb2NrZXQgLWxuc2wKLSBlbmRpZgotIGVuZGlmCi0gCi0rYWxsOiBzbXNkIAotKwotK3Ntc2Q6IHNtc2QuYyBleHRyYXMubyBsb2NraW5nLm8gY2ZnZmlsZS5vIGxvZ2dpbmcubyBhbGFybS5vIHNtc2RfY2ZnLm8gY2hhcnNldC5vIHN0YXRzLm8gYmxhY2tsaXN0Lm8gd2hpdGVsaXN0Lm8gbW9kZW1pbml0Lm8gcGR1Lm8KLSBpZm5lcSAoLCQoZmluZHN0cmluZyBOT1NUQVRTLCQoQ0ZMQUdTKSkpCi0gCSQoQ0MpICQoQ0ZMQUdTKSAtbyAkQCAkXiAkKExGTEFHUykKLSBlbHNlIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczMvc2NyaXB0c19ub19iYXNoLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczMvc2NyaXB0c19ub19iYXNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5YjRkMWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvc21zdG9vbHMzL3Ntc3Rvb2xzMy9zY3JpcHRzX25vX2Jhc2gucGF0Y2gKQEAgLTAsMCArMSw1MSBAQAorRnJvbSA4NTYwMmMzZTUzMWQzOWU4OWRjOGNlZTBjNGE1OTJmODUwMDZhMDY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmlsbCBSYW5kbGUgPGJpbGwucmFuZGxlQGdtYWlsLmNvbT4KK0RhdGU6IFN1biwgMzEgRGVjIDIwMTcgMDk6MDg6MjMgLTA4MDAKKworLS0tCisgc2NyaXB0cy9zZW5kc21zICAgICB8IDIgKy0KKyBzY3JpcHRzL3NtczJodG1sICAgIHwgMiArLQorIHNjcmlwdHMvc21zMnVuaWNvZGUgfCAyICstCisgc2NyaXB0cy91bmljb2RlMnNtcyB8IDIgKy0KKyA0IGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NjcmlwdHMvc2VuZHNtcyBiL3NjcmlwdHMvc2VuZHNtcworaW5kZXggNTEyMDI2ZC4uYmI1Njg1NiAxMDA3NTUKKy0tLSBhL3NjcmlwdHMvc2VuZHNtcworKysrIGIvc2NyaXB0cy9zZW5kc21zCitAQCAtMSw0ICsxLDQgQEAKKy0jIS9iaW4vYmFzaAorKyMhL2Jpbi9zaAorICMgVGhpcyBzY3JpcHQgc2VuZCBhIHRleHQgc21zIGF0IHRoZSBjb21tYW5kIGxpbmUgYnkgY3JlYXRpbmcKKyAjIGEgc21zIGZpbGUgaW4gdGhlIG91dGdvaW5nIHF1ZXVlLgorIAorZGlmZiAtLWdpdCBhL3NjcmlwdHMvc21zMmh0bWwgYi9zY3JpcHRzL3NtczJodG1sCitpbmRleCBmZjI1M2UzLi45NDYxODVlIDEwMDc1NQorLS0tIGEvc2NyaXB0cy9zbXMyaHRtbAorKysrIGIvc2NyaXB0cy9zbXMyaHRtbAorQEAgLTEsNCArMSw0IEBACistIyEvYmluL2Jhc2gKKysjIS9iaW4vc2gKKyAKKyAjIFRoaXMgc2NyaXB0IGNvbnZlcnRzIGEgcmVjZWl2ZWQgc21zIGZpbGUgaW50byBhIGh0bWwgZmlsZS4gCisgCitkaWZmIC0tZ2l0IGEvc2NyaXB0cy9zbXMydW5pY29kZSBiL3NjcmlwdHMvc21zMnVuaWNvZGUKK2luZGV4IDQ2ZTI3NTYuLjI4MjZkYzEgMTAwNzU1CistLS0gYS9zY3JpcHRzL3NtczJ1bmljb2RlCisrKysgYi9zY3JpcHRzL3NtczJ1bmljb2RlCitAQCAtMSw0ICsxLDQgQEAKKy0jIS9iaW4vYmFzaAorKyMhL2Jpbi9zaAorIAorICMgVGhpcyBzY3JpcHQgY29udmVydHMgYSByZWNlaXZlZCBzbXMgZmlsZSBpbnRvIGEgcHVyZSB1bmljb2RlIHRleHQgZmlsZS4KKyAKK2RpZmYgLS1naXQgYS9zY3JpcHRzL3VuaWNvZGUyc21zIGIvc2NyaXB0cy91bmljb2RlMnNtcworaW5kZXggMmFlODZkYy4uM2ZjY2YwZCAxMDA3NTUKKy0tLSBhL3NjcmlwdHMvdW5pY29kZTJzbXMKKysrKyBiL3NjcmlwdHMvdW5pY29kZTJzbXMKK0BAIC0xLDQgKzEsNCBAQAorLSMhL2Jpbi9iYXNoCisrIyEvYmluL3NoCisgCisgIyBUaGlzIHNjcmlwdCBjb252ZXJ0cyBhIHB1cmUgdW5pY29kZSB0ZXh0IGZpbGUgaW50byBhbiBzbXMgZmlsZSBmb3Igc2VuZGluZy4KKyAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbXN0b29sczMvc21zdG9vbHMzL3Ntc19iaW5wYXRoLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczMvc21zX2JpbnBhdGgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTFkNzlkMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbXN0b29sczMvc21zdG9vbHMzL3Ntc19iaW5wYXRoLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK0Zyb20gOWE0YTg3MmRjYTc4Y2E5Y2I2YmRjMjI4YmU2MWY1YTRjMmQ2OGIxZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEthaSBVbHJpY2ggPGthaXVAZ214LmRlPgorRGF0ZTogV2VkLCAxOCBNYXIgMjAxNSAxMToyMDo1MyArMDEwMAorCistLS0KKyBzY3JpcHRzL3NtczMgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc2NyaXB0cy9zbXMzIGIvc2NyaXB0cy9zbXMzCitpbmRleCA2Yjk5MGJmLi4wOWMwNjNiIDEwMDc1NQorLS0tIGEvc2NyaXB0cy9zbXMzCisrKysgYi9zY3JpcHRzL3NtczMKK0BAIC0yNCw5ICsyNCw5IEBAIElORk9GSUxFPSIvdmFyL3J1bi9zbXNkLndvcmtpbmciCisgIyBMb2dmaWxlIGNhbiBhbHNvIGJlIGRlZmluZWQgaW4gaGVyZToKKyBMT0dGSUxFPSIvdmFyL2xvZy9zbXNkLmxvZyIKKyAKKy1EQUVNT049L3Vzci9sb2NhbC9iaW4vc21zZAorK0RBRU1PTj0vdXNyL2Jpbi9zbXNkCisgIyBBIHByb2dyYW0gd2hpY2ggdHVybnMgcG93ZXIgb2ZmIGZvciBjb3VwbGUgb2Ygc2Vjb25kczoKKy1SRVNFVE1PREVNUz0vdXNyL2xvY2FsL2Jpbi9zbXNkX3Jlc2V0bW9kZW1zCisrUkVTRVRNT0RFTVM9L3Vzci9iaW4vc21zZF9yZXNldG1vZGVtcworIE5BTUU9c21zZAorIFBTT1BUPSItZSIKKyBFQ0hPPWVjaG8KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbXN0b29sczMvc21zdG9vbHMzL3Ntc19iaW5wYXRoX2FuZF9wc29wcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbXN0b29sczMvc21zdG9vbHMzL3Ntc19iaW5wYXRoX2FuZF9wc29wcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZjYWEwOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvc21zdG9vbHMzL3Ntc3Rvb2xzMy9zbXNfYmlucGF0aF9hbmRfcHNvcHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1JbmRleDogc21zdG9vbHMzL3NjcmlwdHMvc21zMwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHNtc3Rvb2xzMy5vcmlnL3NjcmlwdHMvc21zMwkyMDEwLTA1LTA0IDExOjIxOjQ0LjAwMDAwMDAwMCArMDIwMAotKysrIHNtc3Rvb2xzMy9zY3JpcHRzL3NtczMJMjAxNS0wMi0yMiAyMDowNTo1MS42MTUwNzQ0NjkgKzAxMDAKLUBAIC0yNCwxMSArMjQsMTEgQEAKLSAjIExvZ2ZpbGUgY2FuIGFsc28gYmUgZGVmaW5lZCBpbiBoZXJlOgotIExPR0ZJTEU9Ii92YXIvbG9nL3Ntc2QubG9nIgotIAotLURBRU1PTj0vdXNyL2xvY2FsL2Jpbi9zbXNkCi0rREFFTU9OPS91c3IvYmluL3Ntc2QKLSAjIEEgcHJvZ3JhbSB3aGljaCB0dXJucyBwb3dlciBvZmYgZm9yIGNvdXBsZSBvZiBzZWNvbmRzOgotLVJFU0VUTU9ERU1TPS91c3IvbG9jYWwvYmluL3Ntc2RfcmVzZXRtb2RlbXMKLStSRVNFVE1PREVNUz0vdXNyL2Jpbi9zbXNkX3Jlc2V0bW9kZW1zCi0gTkFNRT1zbXNkCi0tUFNPUFQ9Ii1lIgotK1BTT1BUPSIiCi0gRUNITz1lY2hvCi0gY2FzZSBgdW5hbWVgIGluCi0gICAqQlNEfERhcndpbikKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbXN0b29sczMvc21zdG9vbHMzXzMuMS4xNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbXN0b29sczMvc21zdG9vbHMzXzMuMS4xNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzEwYTEzYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvc21zdG9vbHMzL3Ntc3Rvb2xzM18zLjEuMTUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi1TVU1NQVJZID0gIlNNUyBHYXRld2F5IHNvZnR3YXJlIgotREVTQ1JJUFRJT04gPSAiVGhlIFNNUyBTZXJ2ZXIgVG9vbHMgMyBpcyBhIFNNUyBHYXRld2F5IHNvZnR3YXJlIHdoaWNoIGNhbiBzZW5kIGFuZCByZWNlaXZlIHNob3J0IG1lc3NhZ2VzIHRocm91Z2ggR1NNIG1vZGVtcyBhbmQgbW9iaWxlIHBob25lcy4iCi1TRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT00ZDIxZWZhMWJiMmExODYzNjBkZGU0MDM1Zjg2MDY4MiIKLUhPTUVQQUdFID0gImh0dHA6Ly9zbXN0b29sczMua2VrZWthc3ZpLmNvbSIKLQotU1JDX1VSSSA9ICJodHRwOi8vc21zdG9vbHMzLmtla2VrYXN2aS5jb20vcGFja2FnZXMvJHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL3Ntc19iaW5wYXRoX2FuZF9wc29wcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9maXgtbWFrZWZpbGUtb3ZlcnJpZGUucGF0Y2giCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIwMjQxZWY2MGU2NDZmYWMxYTA2MjU0YTg0OGU2MWVkNyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlZDAwZmZhZWFhMzEyYTViNGY5NjlmNGU5N2E2NDYwM2E4NjZiYmUxNmUzOTNlYTAyZjViZjA1MjM0ODE0ZDU5IgotCi0KLVMgPSAiJHtXT1JLRElSfS8ke0JQTn0iCi0KLUVYVFJBX09FTUFLRSArPSAiTEZMQUdTPScke0xERkxBR1N9JyIKLQotUkRFUEVORFNfJHtQTn0gPSAiYmFzaCIKLUlOSVRTQ1JJUFRfTkFNRSA9ICJzbXMzIgotSU5JVFNDUklQVF9QQVJBTVMgPSAiZGVmYXVsdHMiCi0KLWluaGVyaXQgdXBkYXRlLXJjLmQKLQotZG9faW5zdGFsbCAoKSB7Ci0KLSAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0KLSAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3NyYy9zbXNkICIke0R9JHtiaW5kaXJ9L3Ntc2QiCi0KLSAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3NjcmlwdHMvc2VuZHNtcyAiJHtEfSR7YmluZGlyfS9zZW5kc21zIgotICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc2NyaXB0cy9zbXMyaHRtbCAiJHtEfSR7YmluZGlyfS9zbXMyaHRtbCIKLSAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3NjcmlwdHMvc21zMnVuaWNvZGUgIiR7RH0ke2JpbmRpcn0vc21zMnVuaWNvZGUiCi0gICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zY3JpcHRzL3VuaWNvZGUyc21zICIke0R9JHtiaW5kaXJ9L3VuaWNvZGUyc21zIgotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfQotICAgIGluc3RhbGwgLW0gNjQ0ICR7U30vZXhhbXBsZXMvc21zZC5jb25mLmVhc3kgIiR7RH0ke3N5c2NvbmZkaXJ9L3Ntc2QuY29uZiIKLQotICAgIGluc3RhbGwgLWQgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3Nwb29sIgotICAgIGluc3RhbGwgLWQgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3Nwb29sL3NtcyIKLSAgICBpbnN0YWxsIC1kICIke0R9JHtsb2NhbHN0YXRlZGlyfS9zcG9vbC9zbXMvaW5jb21pbmciCi0gICAgaW5zdGFsbCAtZCAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvc21zL291dGdvaW5nIgotICAgIGluc3RhbGwgLWQgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3Nwb29sL3Ntcy9jaGVja2VkIgotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3NjcmlwdHMvc21zMyAiJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kLyR7SU5JVFNDUklQVF9OQU1FfSIKLQotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczNfMy4xLjIxLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczNfMy4xLjIxLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlNjQxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvc21zdG9vbHMzL3Ntc3Rvb2xzM18zLjEuMjEuYmIKQEAgLTAsMCArMSw0NyBAQAorU1VNTUFSWSA9ICJTTVMgR2F0ZXdheSBzb2Z0d2FyZSIKK0RFU0NSSVBUSU9OID0gIlRoZSBTTVMgU2VydmVyIFRvb2xzIDMgaXMgYSBTTVMgR2F0ZXdheSBzb2Z0d2FyZSB3aGljaCBjYW4gc2VuZCBhbmQgcmVjZWl2ZSBzaG9ydCBtZXNzYWdlcyB0aHJvdWdoIEdTTSBtb2RlbXMgYW5kIG1vYmlsZSBwaG9uZXMuIgorU0VDVElPTiA9ICJjb25zb2xlL25ldHdvcmsiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NGQyMWVmYTFiYjJhMTg2MzYwZGRlNDAzNWY4NjA2ODIiCitIT01FUEFHRSA9ICJodHRwOi8vc21zdG9vbHMzLmtla2VrYXN2aS5jb20iCisKK1NSQ19VUkkgPSAiaHR0cDovL3Ntc3Rvb2xzMy5rZWtla2FzdmkuY29tL3BhY2thZ2VzLyR7QlB9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9zbXNfYmlucGF0aC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9zY3JpcHRzX25vX2Jhc2gucGF0Y2giCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI2YTlmMDM4ZmIzOGE0OWNjM2E0ZjhmMTRhODhmYjhhZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJhMjZiYTRjMDJiMTZmNmNmMTMxNzdiZmZjYTZjOTIzMGRjNWZlZmFlYmE4ZTMwMzBjZDRlNDkwNWY2YTkyMDg0IgorCisKK1MgPSAiJHtXT1JLRElSfS8ke0JQTn0iCisKK0VYVFJBX09FTUFLRSArPSAiTEZMQUdTPScke0xERkxBR1N9JyIKKworSU5JVFNDUklQVF9OQU1FID0gInNtczMiCitJTklUU0NSSVBUX1BBUkFNUyA9ICJkZWZhdWx0cyIKKworaW5oZXJpdCB1cGRhdGUtcmMuZAorCitkb19pbnN0YWxsICgpIHsKKworICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfQorICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc3JjL3Ntc2QgIiR7RH0ke2JpbmRpcn0vc21zZCIKKworICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc2NyaXB0cy9zZW5kc21zICIke0R9JHtiaW5kaXJ9L3NlbmRzbXMiCisgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zY3JpcHRzL3NtczJodG1sICIke0R9JHtiaW5kaXJ9L3NtczJodG1sIgorICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc2NyaXB0cy9zbXMydW5pY29kZSAiJHtEfSR7YmluZGlyfS9zbXMydW5pY29kZSIKKyAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3NjcmlwdHMvdW5pY29kZTJzbXMgIiR7RH0ke2JpbmRpcn0vdW5pY29kZTJzbXMiCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9CisgICAgaW5zdGFsbCAtbSA2NDQgJHtTfS9leGFtcGxlcy9zbXNkLmNvbmYuZWFzeSAiJHtEfSR7c3lzY29uZmRpcn0vc21zZC5jb25mIgorCisgICAgaW5zdGFsbCAtZCAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wiCisgICAgaW5zdGFsbCAtZCAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvc21zIgorICAgIGluc3RhbGwgLWQgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3Nwb29sL3Ntcy9pbmNvbWluZyIKKyAgICBpbnN0YWxsIC1kICIke0R9JHtsb2NhbHN0YXRlZGlyfS9zcG9vbC9zbXMvb3V0Z29pbmciCisgICAgaW5zdGFsbCAtZCAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvc21zL2NoZWNrZWQiCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAorICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc2NyaXB0cy9zbXMzICIke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvJHtJTklUU0NSSVBUX05BTUV9IgorCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvdW1pcC9maWxlcy8wMDAxLXJlcGxhY2UtU0lHQ0xELXdpdGgtU0lHQ0hMRC1hbmQtaW5jbHVkZS1zeXMtdHlwZXMuaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS91bWlwL2ZpbGVzLzAwMDEtcmVwbGFjZS1TSUdDTEQtd2l0aC1TSUdDSExELWFuZC1pbmNsdWRlLXN5cy10eXBlcy5oLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxOTIwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvdW1pcC9maWxlcy8wMDAxLXJlcGxhY2UtU0lHQ0xELXdpdGgtU0lHQ0hMRC1hbmQtaW5jbHVkZS1zeXMtdHlwZXMuaC5wYXRjaApAQCAtMCwwICsxLDQ5IEBACitGcm9tIGY1Njc3NDBjZjY0OTc4YWM5ZGIwMTRjNzg2YjZkMDI2N2IyNDRmMzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU3VuLCA0IE1hciAyMDE4IDIyOjMwOjMwIC0wODAwCitTdWJqZWN0OiBbUEFUQ0ggMS8yXSByZXBsYWNlIFNJR0NMRCB3aXRoIFNJR0NITEQgYW5kIGluY2x1ZGUgc3lzL3R5cGVzLmgKKworRml4ZXMKK21haW4uYzoxMjk6MTA6IGVycm9yOiAnU0lHQ0xEJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiAnU0lHQ0hMRCc/CisgICBzaWduYWwoU0lHQ0xELCBzaWdfY2hpbGQpOworICAgICAgICAgIF5+fn5+fgorICAgICAgICAgIFNJR0NITEQKKworbWFpbi5jOjEyNToyOiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAndW1hc2snIFstV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQorICB1bWFzaygwKTsKKyAgXn5+fn4KKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKKyBzcmMvbWFpbi5jIHwgNSArKystLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvbWFpbi5jIGIvc3JjL21haW4uYworaW5kZXggM2NmNDA3Mi4uY2QzNDE5NiAxMDA2NDQKKy0tLSBhL3NyYy9tYWluLmMKKysrKyBiL3NyYy9tYWluLmMKK0BAIC0zMSw2ICszMSw3IEBACisgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorICNpbmNsdWRlIDxzeXMvd2FpdC5oPgorICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKysjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAjaW5jbHVkZSA8ZmNudGwuaD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CitAQCAtMTI2LDkgKzEyNyw5IEBAIHN0YXRpYyB2b2lkIGRhZW1vbl9zdGFydChpbnQgaWduc2lnY2xkKQorIAorIAlpZiAoaWduc2lnY2xkKSB7CisgI2lmZGVmIFNJR1RTVFAKKy0JCXNpZ25hbChTSUdDTEQsIHNpZ19jaGlsZCk7CisrCQlzaWduYWwoU0lHQ0hMRCwgc2lnX2NoaWxkKTsKKyAjZWxzZQorLQkJc2lnbmFsKFNJR0NMRCwgU0lHX0lHTik7CisrCQlzaWduYWwoU0lHQ0hMRCwgU0lHX0lHTik7CisgI2VuZGlmCisgCX0KKyB9CistLSAKKzIuMTYuMgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvdW1pcC9maWxlcy8wMDAyLXJlcGxhY2UtUFRIUkVBRF9NVVRFWF9GQVNUX05QLXdpdGgtUFRIUkVBRF9NVVRFWF9OT1IucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvdW1pcC9maWxlcy8wMDAyLXJlcGxhY2UtUFRIUkVBRF9NVVRFWF9GQVNUX05QLXdpdGgtUFRIUkVBRF9NVVRFWF9OT1IucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBkMTJkYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS91bWlwL2ZpbGVzLzAwMDItcmVwbGFjZS1QVEhSRUFEX01VVEVYX0ZBU1RfTlAtd2l0aC1QVEhSRUFEX01VVEVYX05PUi5wYXRjaApAQCAtMCwwICsxLDE0MyBAQAorRnJvbSAxOWI2Y2Y4MDk5ZTE5NzRiNWZjMzkwODZmYzU0MTAzYjBjYmMyNjU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFN1biwgNCBNYXIgMjAxOCAyMzowMToyNSAtMDgwMAorU3ViamVjdDogW1BBVENIIDIvMl0gcmVwbGFjZSBQVEhSRUFEX01VVEVYX0ZBU1RfTlAgd2l0aCBQVEhSRUFEX01VVEVYX05PUk1BTAorCitQVEhSRUFEX01VVEVYX0ZBU1RfTlAgaXMgbm90IGF2YWlsYWJsZSBvbiBub24tcG9zaXggc3lzdGVtcworZS5nLiBtdXNsCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCisgc3JjL2hhLmMgICAgICAgIHwgMiArLQorIHNyYy9pY21wNi5jICAgICB8IDIgKy0KKyBzcmMvbWguYyAgICAgICAgfCAyICstCisgc3JjL21uLmMgICAgICAgIHwgMiArLQorIHNyYy9tb3ZlbWVudC5jICB8IDIgKy0KKyBzcmMvbXBkaXNjX2hhLmMgfCAyICstCisgc3JjL21wZGlzY19tbi5jIHwgMiArLQorIHNyYy90cXVldWUuYyAgICB8IDIgKy0KKyBzcmMvdHVubmVsY3RsLmMgfCAyICstCisgOSBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvaGEuYyBiL3NyYy9oYS5jCitpbmRleCBmYmRjZmYwLi5iMmY4MTFlIDEwMDY0NAorLS0tIGEvc3JjL2hhLmMKKysrKyBiL3NyYy9oYS5jCitAQCAtMTI0Niw3ICsxMjQ2LDcgQEAgaW50IGhhX2luaXQodm9pZCkKKyB7CisgCXB0aHJlYWRfbXV0ZXhhdHRyX3QgbWF0dHJzOworIAlwdGhyZWFkX211dGV4YXR0cl9pbml0KCZtYXR0cnMpOworLQlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfRkFTVF9OUCk7CisrCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9OT1JNQUwpOworIAlpZiAocHRocmVhZF9tdXRleF9pbml0KCZidV93b3JrZXJfbXV0ZXgsICZtYXR0cnMpIHx8CisgCSAgICBwdGhyZWFkX2NvbmRfaW5pdCgmY29uZCwgTlVMTCkpCisgCQlyZXR1cm4gLTE7CitkaWZmIC0tZ2l0IGEvc3JjL2ljbXA2LmMgYi9zcmMvaWNtcDYuYworaW5kZXggMzY5NTEzNS4uNjQ2MDYzNCAxMDA2NDQKKy0tLSBhL3NyYy9pY21wNi5jCisrKysgYi9zcmMvaWNtcDYuYworQEAgLTI0Myw3ICsyNDMsNyBAQCBpbnQgaWNtcDZfaW5pdCh2b2lkKQorIAkJcmV0dXJuIC0xOworIAkvKiBjcmVhdGUgSUNNUCBsaXN0ZW5lciB0aHJlYWQgKi8KKyAJcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmbWF0dHJzKTsKKy0JcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmbWF0dHJzLCBQVEhSRUFEX01VVEVYX0ZBU1RfTlApOworKwlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfTk9STUFMKTsKKyAJaWYgKHB0aHJlYWRfbXV0ZXhfaW5pdCgmaWNtcDZfc29jay5zZW5kX211dGV4LCAmbWF0dHJzKSB8fAorIAkgICAgcHRocmVhZF9yd2xvY2tfaW5pdCgmaGFuZGxlcl9sb2NrLCBOVUxMKSB8fAorIAkgICAgcHRocmVhZF9jcmVhdGUoJmljbXA2X2xpc3RlbmVyLCBOVUxMLCBpY21wNl9saXN0ZW4sIE5VTEwpKQorZGlmZiAtLWdpdCBhL3NyYy9taC5jIGIvc3JjL21oLmMKK2luZGV4IDYwZTM0NWUuLjc5MjhmNGMgMTAwNjQ0CistLS0gYS9zcmMvbWguYworKysrIGIvc3JjL21oLmMKK0BAIC0yMDQsNyArMjA0LDcgQEAgaW50IG1oX2luaXQodm9pZCkKKyAJCXJldHVybiAtMTsKKyAKKyAJcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmbWF0dHJzKTsKKy0JcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmbWF0dHJzLCBQVEhSRUFEX01VVEVYX0ZBU1RfTlApOworKwlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfTk9STUFMKTsKKyAJaWYgKHB0aHJlYWRfbXV0ZXhfaW5pdCgmbWhfc29jay5zZW5kX211dGV4LCAmbWF0dHJzKSB8fAorIAkgICAgcHRocmVhZF9yd2xvY2tfaW5pdCgmaGFuZGxlcl9sb2NrLCBOVUxMKSB8fAorIAkgICAgcHRocmVhZF9jcmVhdGUoJm1oX2xpc3RlbmVyLCBOVUxMLCBtaF9saXN0ZW4sIE5VTEwpKQorZGlmZiAtLWdpdCBhL3NyYy9tbi5jIGIvc3JjL21uLmMKK2luZGV4IDA5MmNmY2IuLjhmN2Y0NDggMTAwNjQ0CistLS0gYS9zcmMvbW4uYworKysrIGIvc3JjL21uLmMKK0BAIC0xNDc4LDcgKzE0NzgsNyBAQCBzdGF0aWMgc3RydWN0IGhvbWVfYWRkcl9pbmZvICpoYWlfY29weShzdHJ1Y3QgaG9tZV9hZGRyX2luZm8gKmNvbmZfaGFpKQorIAlpZiAoaGFpICE9IE5VTEwpIHsKKyAJCXB0aHJlYWRfbXV0ZXhhdHRyX3QgbWF0dHJzOworIAkJcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmbWF0dHJzKTsKKy0JCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9GQVNUX05QKTsKKysJCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9OT1JNQUwpOworIAorIAkJbWVtY3B5KGhhaSwgY29uZl9oYWksIHNpemVvZihzdHJ1Y3QgaG9tZV9hZGRyX2luZm8pKTsKKyAKK2RpZmYgLS1naXQgYS9zcmMvbW92ZW1lbnQuYyBiL3NyYy9tb3ZlbWVudC5jCitpbmRleCBkOTg1OTM3Li42NDAwNDQ4IDEwMDY0NAorLS0tIGEvc3JjL21vdmVtZW50LmMKKysrKyBiL3NyYy9tb3ZlbWVudC5jCitAQCAtMjAxMyw3ICsyMDEzLDcgQEAgaW50IG1kX2luaXQodm9pZCkKKyAJaW50IHZhbDsKKyAKKyAJcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmbWF0dHJzKTsKKy0JcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmbWF0dHJzLCBQVEhSRUFEX01VVEVYX0ZBU1RfTlApOworKwlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfTk9STUFMKTsKKyAJaWYgKHB0aHJlYWRfbXV0ZXhfaW5pdCgmaWZhY2VfbG9jaywgJm1hdHRycykpCisgCQlyZXR1cm4gLTE7CisgCitkaWZmIC0tZ2l0IGEvc3JjL21wZGlzY19oYS5jIGIvc3JjL21wZGlzY19oYS5jCitpbmRleCA0MGJhMDVmLi5mZDdhOTBkIDEwMDY0NAorLS0tIGEvc3JjL21wZGlzY19oYS5jCisrKysgYi9zcmMvbXBkaXNjX2hhLmMKK0BAIC01NTksNyArNTU5LDcgQEAgaW50IG1wZF9oYV9pbml0KHZvaWQpCisgeworIAlwdGhyZWFkX211dGV4YXR0cl90IG1hdHRyczsKKyAJcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmbWF0dHJzKTsKKy0JcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmbWF0dHJzLCBQVEhSRUFEX01VVEVYX0ZBU1RfTlApOworKwlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfTk9STUFMKTsKKyAJaWYgKHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXBhX2xvY2ssICZtYXR0cnMpIHx8CisgCSAgICBwdGhyZWFkX3J3bG9ja19pbml0KCZwcmVmaXhfbG9jaywgTlVMTCkgfHwKKyAJICAgIGhhc2hfaW5pdCgmbXBhX2hhc2gsIERPVUJMRV9BRERSLCBNUEFfQlVDS0VUUykgPCAwKQorZGlmZiAtLWdpdCBhL3NyYy9tcGRpc2NfbW4uYyBiL3NyYy9tcGRpc2NfbW4uYworaW5kZXggNDg3M2JkNi4uYWRhMDJiZCAxMDA2NDQKKy0tLSBhL3NyYy9tcGRpc2NfbW4uYworKysrIGIvc3JjL21wZGlzY19tbi5jCitAQCAtMjY3LDcgKzI2Nyw3IEBAIGludCBtcGRfbW5faW5pdCh2b2lkKQorIHsKKyAJcHRocmVhZF9tdXRleGF0dHJfdCBtYXR0cnM7CisgCXB0aHJlYWRfbXV0ZXhhdHRyX2luaXQoJm1hdHRycyk7CistCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9GQVNUX05QKTsKKysJcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmbWF0dHJzLCBQVEhSRUFEX01VVEVYX05PUk1BTCk7CisgCWlmIChwdGhyZWFkX211dGV4X2luaXQoJm1wc19sb2NrLCAmbWF0dHJzKSkKKyAJCXJldHVybiAtMTsKKyAJaWYgKGhhc2hfaW5pdCgmbXBzX2hhc2gsIERPVUJMRV9BRERSLCBNUFNfQlVDS0VUUykgPCAwKQorZGlmZiAtLWdpdCBhL3NyYy90cXVldWUuYyBiL3NyYy90cXVldWUuYworaW5kZXggMmY3YWEwYi4uOWMxODViOCAxMDA2NDQKKy0tLSBhL3NyYy90cXVldWUuYworKysrIGIvc3JjL3RxdWV1ZS5jCitAQCAtNjUsNyArNjUsNyBAQCBpbnQgdGFza3F1ZXVlX2luaXQodm9pZCkKKyB7CisgCXB0aHJlYWRfbXV0ZXhhdHRyX3QgbWF0dHJzOworIAlwdGhyZWFkX211dGV4YXR0cl9pbml0KCZtYXR0cnMpOworLQlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfRkFTVF9OUCk7CisrCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9OT1JNQUwpOworIAlpZiAocHRocmVhZF9tdXRleF9pbml0KCZtdXRleCwgJm1hdHRycykgfHwKKyAJICAgIHB0aHJlYWRfY29uZF9pbml0KCZjb25kLCBOVUxMKSB8fAorIAkgICAgcHRocmVhZF9jcmVhdGUoJnRxX3J1bm5lciwgTlVMTCwgcnVubmVyLCBOVUxMKSkKK2RpZmYgLS1naXQgYS9zcmMvdHVubmVsY3RsLmMgYi9zcmMvdHVubmVsY3RsLmMKK2luZGV4IDIzZmMyMGIuLjgxM2I4ZWMgMTAwNjQ0CistLS0gYS9zcmMvdHVubmVsY3RsLmMKKysrKyBiL3NyYy90dW5uZWxjdGwuYworQEAgLTQzMyw3ICs0MzMsNyBAQCBpbnQgdHVubmVsY3RsX2luaXQodm9pZCkKKyAJCXJldHVybiAtMTsKKyAKKyAJcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmbWF0dHJzKTsKKy0JcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmbWF0dHJzLCBQVEhSRUFEX01VVEVYX0ZBU1RfTlApOworKwlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfTk9STUFMKTsKKyAJaWYgKHB0aHJlYWRfbXV0ZXhfaW5pdCgmdG5sX2xvY2ssICZtYXR0cnMpKQorIAkJcmV0dXJuIC0xOworIAorLS0gCisyLjE2LjIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3VtaXAvdW1pcF8xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvdW1pcC91bWlwXzEuMC5iYgppbmRleCAyMTI5ZTM3Li4wYzEyMGJmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvdW1pcC91bWlwXzEuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvdW1pcC91bWlwXzEuMC5iYgpAQCAtMTQsNiArMTQsOCBAQAogICAgICAgICAgICBmaWxlOi8vbWlwNmQgXAogICAgICAgICAgICBmaWxlOi8vbWlwNmQuc2VydmljZSBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLUFkZC1mb3JtYXQtc3RyaW5nLXRvLWZwcmludGYtY2FsbC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLXJlcGxhY2UtU0lHQ0xELXdpdGgtU0lHQ0hMRC1hbmQtaW5jbHVkZS1zeXMtdHlwZXMuaC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAyLXJlcGxhY2UtUFRIUkVBRF9NVVRFWF9GQVNUX05QLXdpdGgtUFRIUkVBRF9NVVRFWF9OT1IucGF0Y2ggXAogICAgICAgICAgICAiCiBTUkNSRVYgPSAiN2Q2NzIwOWNkMWJiYTJkZDBlMTgzYTBmYTA3ZWVlZjA3OTY0ZGQxNCIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3plcm9tcS9jcHB6bXFfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3plcm9tcS9jcHB6bXFfZ2l0LmJiCmluZGV4IGE2NDc0NWMuLjQ5MjBiY2UgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS96ZXJvbXEvY3Bwem1xX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvemVyb21xL2NwcHptcV9naXQuYmIKQEAgLTQsOCArNCw4IEBACiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1kYjE3NGVhZjdiNTVhMzRhN2M4OTU1MTE5N2Y2NmU5NCIKIERFUEVORFMgPSAiemVyb21xIgogCi1TUkNSRVYgPSAiNjhhN2IwOWNmY2UwMWM0YzI3OWZiYTJjZjkxNjg2ZmNmYzU2Njg0OCIKLVBWID0gIjQuMS41K2dpdCR7U1JDUFZ9IgorU1JDUkVWID0gIjZhYTNhYjY4NmU5MTZjYjBlNjJkZjdmYTdkMTJlMGIxM2FlOWZhZTYiCitQViA9ICI0LjIuMytnaXQke1NSQ1BWfSIKIAogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3plcm9tcS9jcHB6bXEuZ2l0IgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvemVyb21xL3plcm9tcV80LjEuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS96ZXJvbXEvemVyb21xXzQuMS42LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTI2ZjMyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS96ZXJvbXEvemVyb21xXzQuMS42LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiWmVyb01RIGxvb2tzIGxpa2UgYW4gZW1iZWRkYWJsZSBuZXR3b3JraW5nIGxpYnJhcnkgYnV0IGFjdHMgbGlrZSBhIGNvbmN1cnJlbmN5IGZyYW1ld29yayIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuemVyb21xLm9yZyIKLUxJQ0VOU0UgPSAiTEdQTHYzKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcuTEVTU0VSO21kNT1kNTMxMTQ5NWQ5NTIwNjJlMGU0ZmJiYTM5Y2JmM2RlMSIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gImxpYnNvZGl1bSIKLVBBQ0tBR0VDT05GSUdbbGlic29kaXVtXSA9ICItLXdpdGgtbGlic29kaXVtLCAtLXdpdGhvdXQtbGlic29kaXVtLCBsaWJzb2RpdW0iCi0KLVNSQ19VUkkgPSAiaHR0cDovL2dpdGh1Yi5jb20vemVyb21xL3plcm9tcTQtMS9yZWxlYXNlcy9kb3dubG9hZC92JHtQVn0vemVyb21xLSR7UFZ9LnRhci5neiBcCi0gICAgZmlsZTovL3J1bi1wdGVzdCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiYzg5ZGI0ZGJjMGI5MGMzNGM5ZjQ5ODNjYmZmNmQzMjEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDJlYmY2MGE0MzAxMWU3NzA3OTkzMzYzNjViY2JjZTJlYjg1NTY5ZTliNWY1MmFhMGQ4Y2MwNDY3MjQzOGEwYSIKLQotUyA9ICIke1dPUktESVJ9L3plcm9tcS0ke1BWfSIKLQotI1VuY29tbWVudCB0byBjaG9vc2UgcG9sbGluZyBzeXN0ZW0gbWFudWFsbHkuIHZhbGlkIHZhbHVlcyBhcmUga3F1ZXVlLCBlcG9sbCwgZGV2cG9sbCwgcG9sbCBvciBzZWxlY3QKLSNFWFRSQV9PRUNPTkYgKz0gIi0td2l0aC1wb2xsZXI9a3F1ZXVlIgotI0NGTEFHU19hcHBlbmQgPSAiIC1PMCIKLSNDWFhGTEFHU19hcHBlbmQgPSAiIC1PMCIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcHRlc3QgcGtnY29uZmlnCi0KLWRvX2NvbXBpbGVfcHRlc3QgKCkgewotICAgIGVjaG8gJ2J1aWxkdGVzdC1URVNUUzogJChjaGVja19QUk9HUkFNUyknID4+ICR7Qn0vTWFrZWZpbGUKLSAgICBvZV9ydW5tYWtlIGJ1aWxkdGVzdC1URVNUUwotfQotCi1kb19pbnN0YWxsX3B0ZXN0ICgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0ke1BURVNUX1BBVEh9L3Rlc3RzCi0gICAgaW5zdGFsbCAtbSAwNzU1ICR7Qn0vLmxpYnMvdGVzdF8qICR7RH0ke1BURVNUX1BBVEh9L3Rlc3RzCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvemVyb21xL3plcm9tcV80LjIuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS96ZXJvbXEvemVyb21xXzQuMi41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1NjM0OGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvemVyb21xL3plcm9tcV80LjIuNS5iYgpAQCAtMCwwICsxLDMyIEBACitERVNDUklQVElPTiA9ICJaZXJvTVEgbG9va3MgbGlrZSBhbiBlbWJlZGRhYmxlIG5ldHdvcmtpbmcgbGlicmFyeSBidXQgYWN0cyBsaWtlIGEgY29uY3VycmVuY3kgZnJhbWV3b3JrIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy56ZXJvbXEub3JnIgorTElDRU5TRSA9ICJMR1BMdjMrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy5MRVNTRVI7bWQ1PWQ1MzExNDk1ZDk1MjA2MmUwZTRmYmJhMzljYmYzZGUxIgorCitQQUNLQUdFQ09ORklHID8/PSAibGlic29kaXVtIgorUEFDS0FHRUNPTkZJR1tsaWJzb2RpdW1dID0gIi0td2l0aC1saWJzb2RpdW0sIC0td2l0aG91dC1saWJzb2RpdW0sIGxpYnNvZGl1bSIKKworU1JDX1VSSSA9ICJodHRwOi8vZ2l0aHViLmNvbS96ZXJvbXEvbGliem1xL3JlbGVhc2VzL2Rvd25sb2FkL3Yke1BWfS96ZXJvbXEtJHtQVn0udGFyLmd6IFwKKyAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhMWM5NWIzNDM4NDI1N2U5ODY4NDJmNGQwMDY5NTdiOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjYzkwOTBiYTM1NzEzZDU5YmIyZjdkNzk2NWY4NzcwMzZjNDljNTU1OGVhMGMyOTBiMGRjYzZmMmExN2U0ODlmIgorCitTID0gIiR7V09SS0RJUn0vemVyb21xLSR7UFZ9IgorCisjVW5jb21tZW50IHRvIGNob29zZSBwb2xsaW5nIHN5c3RlbSBtYW51YWxseS4gdmFsaWQgdmFsdWVzIGFyZSBrcXVldWUsIGVwb2xsLCBkZXZwb2xsLCBwb2xsIG9yIHNlbGVjdAorI0VYVFJBX09FQ09ORiArPSAiLS13aXRoLXBvbGxlcj1rcXVldWUiCisjQ0ZMQUdTX2FwcGVuZCA9ICIgLU8wIgorI0NYWEZMQUdTX2FwcGVuZCA9ICIgLU8wIgorCitpbmhlcml0IGF1dG90b29scyBwdGVzdCBwa2djb25maWcKKworZG9fY29tcGlsZV9wdGVzdCAoKSB7CisgICAgZWNobyAnYnVpbGR0ZXN0LVRFU1RTOiAkKGNoZWNrX1BST0dSQU1TKScgPj4gJHtCfS9NYWtlZmlsZQorICAgIG9lX3J1bm1ha2UgYnVpbGR0ZXN0LVRFU1RTCit9CisKK2RvX2luc3RhbGxfcHRlc3QgKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7UFRFU1RfUEFUSH0vdGVzdHMKKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtCfS90ZXN0cy8ubGlicy90ZXN0XyogJHtEfSR7UFRFU1RfUEFUSH0vdGVzdHMKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZGJ1cy9kYnVzLWJyb2tlci8wMDAxLUNvbW1lbnQtcnN0Mm1hbi1yZWxhdGVkLXN0dWZmLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9kYnVzL2RidXMtYnJva2VyLzAwMDEtQ29tbWVudC1yc3QybWFuLXJlbGF0ZWQtc3R1ZmYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjEwYzQ5ZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZGJ1cy9kYnVzLWJyb2tlci8wMDAxLUNvbW1lbnQtcnN0Mm1hbi1yZWxhdGVkLXN0dWZmLnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK0Zyb20gYTkyZmQ3ZGEzYTI2MmUyMWMwOTcwYTM5MDhlYjBiNDUwMjgxOWEwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFlhbmcgTHl1IDx5YW5nbEBheGlzLmNvbT4KK0RhdGU6IEZyaSwgMjMgRmViIDIwMTggMTY6MzE6NDkgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gQ29tbWVudCByc3QybWFuIHJlbGF0ZWQgc3R1ZmYKKworLS0tCisgbWVzb24uYnVpbGQgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWlsZAoraW5kZXggNTZkMzhlNC4uM2MzYjEwOSAxMDA2NDQKKy0tLSBhL21lc29uLmJ1aWxkCisrKysgYi9tZXNvbi5idWlsZAorQEAgLTE1LDcgKzE1LDcgQEAgYWRkX3Byb2plY3RfYXJndW1lbnRzKCctREJJTkRJUj0iJyArIGpvaW5fcGF0aHMoZ2V0X29wdGlvbigncHJlZml4JyksIGdldF9vcHRpb24KKyBjYyA9IG1lc29uLmdldF9jb21waWxlcignYycpCisgY29uZiA9IGNvbmZpZ3VyYXRpb25fZGF0YSgpCisgbW9kX3BrZ2NvbmZpZyA9IGltcG9ydCgncGtnY29uZmlnJykKKy1wcm9nX3JzdDJtYW4gPSBmaW5kX3Byb2dyYW0oJ3JzdDJtYW4nLCAncnN0Mm1hbi5weScpCisrI3Byb2dfcnN0Mm1hbiA9IGZpbmRfcHJvZ3JhbSgncnN0Mm1hbicsICdyc3QybWFuLnB5JykKKyAKKyBzdWJfY2R2YXIgPSBzdWJwcm9qZWN0KCdjLWR2YXInLCB2ZXJzaW9uOiAnPj0xJykKKyBzdWJfY2xpc3QgPSBzdWJwcm9qZWN0KCdjLWxpc3QnLCB2ZXJzaW9uOiAnPj0zJykKK0BAIC01Niw3ICs1Niw3IEBAIGVuZGlmCisgCisgY29uZi5zZXQoJ2JpbmRpcicsIGpvaW5fcGF0aHMoZ2V0X29wdGlvbigncHJlZml4JyksIGdldF9vcHRpb24oJ2JpbmRpcicpKSkKKyAKKy1zdWJkaXIoJ2RvY3MnKQorKyNzdWJkaXIoJ2RvY3MnKQorIHN1YmRpcignc3JjJykKKyAKKyBpZiB1c2VfbGF1bmNoZXIKKy0tIAorMi4xLjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9kYnVzL2RidXMtYnJva2VyLzAwMDItQ29ycmVjdC1pbmNsdWRpbmctZGlyZWN0b3J5LWZvci1jb25mLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9kYnVzL2RidXMtYnJva2VyLzAwMDItQ29ycmVjdC1pbmNsdWRpbmctZGlyZWN0b3J5LWZvci1jb25mLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5MDlkZWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvZGJ1cy1icm9rZXIvMDAwMi1Db3JyZWN0LWluY2x1ZGluZy1kaXJlY3RvcnktZm9yLWNvbmYucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSA0Yjc5ZjYwM2I5NDg3MDk5MDZjMTA4Nzk2MDg3ZGU3YjU2NDNmNjFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWWFuZyBMeXUgPHlhbmdsQGF4aXMuY29tPgorRGF0ZTogTW9uLCAyNiBGZWIgMjAxOCAxMjo0ODozNCArMDEwMAorU3ViamVjdDogW1BBVENIXSBDb3JyZWN0IGluY2x1ZGluZyBkaXJlY3RvcnkgZm9yIGNvbmYKKworLS0tCisgc3JjL2xhdW5jaC9jb25maWcuYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NyYy9sYXVuY2gvY29uZmlnLmMgYi9zcmMvbGF1bmNoL2NvbmZpZy5jCitpbmRleCA2YTY4Njk5Li41Nzk0NzFiIDEwMDY0NAorLS0tIGEvc3JjL2xhdW5jaC9jb25maWcuYworKysrIGIvc3JjL2xhdW5jaC9jb25maWcuYworQEAgLTEwMjIsNyArMTAyMiw3IEBAIHN0YXRpYyB2b2lkIGNvbmZpZ19wYXJzZXJfZW5kX2ZuKHZvaWQgKnVzZXJkYXRhLCBjb25zdCBYTUxfQ2hhciAqbmFtZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5jdXJyZW50LT5pbmNsdWRlLnNlbGludXhfcm9vdF9yZWxhdGl2ZSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1c19zZWxpbnV4X3BvbGljeV9yb290KCkgOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+ZmlsZS0+cGF0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+Y3VycmVudC0+Y2RhdGEpOworICAgICAgICAgICAgICAgICBpZiAocikgeworICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5lcnJvciA9IGVycm9yX3RyYWNlKHIpOworLS0gCisyLjEuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvZGJ1cy1icm9rZXJfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9kYnVzL2RidXMtYnJva2VyX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjJiY2NmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9kYnVzL2RidXMtYnJva2VyX2dpdC5iYgpAQCAtMCwwICsxLDMyIEBACitTVU1NQVJZID0gImRidXMgYnJva2VyIgorREVTQ1JJUFRJT04gPSAiRHJvcC1pbiByZXBsYWNlbWVudCBmb3IgZGJ1cy1kYWVtb24uIgorCitTRUNUSU9OID0gImJhc2UiCisKK0xJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTdiNDg2YzIzMzhkMjI1YTE0MDVkOTc5ZWQyYzE1Y2U4IgorCitERVBFTkRTID0gImRidXMgZ2xpYi0yLjAgZXhwYXQiCisKK1BWID0gIjkrZ2l0JHtTUkNQVn0iCitTUkNSRVYgPSAiY2NkMDZiMjg0ODkyMTgyYWY1NjllNjkwNDYyNjIzMzExNTBlMzUzNiIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2J1czEvZGJ1cy1icm9rZXI7cHJvdG9jb2w9Z2l0IgorU1JDX1VSSSArPSAiZmlsZTovLzAwMDEtQ29tbWVudC1yc3QybWFuLXJlbGF0ZWQtc3R1ZmYucGF0Y2giCitTUkNfVVJJICs9ICJmaWxlOi8vMDAwMi1Db3JyZWN0LWluY2x1ZGluZy1kaXJlY3RvcnktZm9yLWNvbmYucGF0Y2giCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK2luaGVyaXQgbWVzb24gcGtnY29uZmlnIHN5c3RlbWQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJzeXN0ZW1kIgorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiJHtCUE59LnNlcnZpY2UiCisKK0ZJTEVTXyR7UE59ICs9ICIke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9IgorRklMRVNfJHtQTn0gKz0gIiR7c3lzdGVtZF91c2VyX3VuaXRkaXJ9IgorCitSREVQRU5EU18ke1BOfSA9ICJkYnVzIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9kYnVzL2xpYmRidXMtYysrLTAuOS4wLzAwMDQtdXNlLVBPU0lYLXBvbGwuaC1pbnN0ZWFkLW9mLXN5cy1wb2xsLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvbGliZGJ1cy1jKystMC45LjAvMDAwNC11c2UtUE9TSVgtcG9sbC5oLWluc3RlYWQtb2Ytc3lzLXBvbGwuaC5wYXRjaAppbmRleCAwYzJjNDg3Li5iMTA4YTRjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvbGliZGJ1cy1jKystMC45LjAvMDAwNC11c2UtUE9TSVgtcG9sbC5oLWluc3RlYWQtb2Ytc3lzLXBvbGwuaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvbGliZGJ1cy1jKystMC45LjAvMDAwNC11c2UtUE9TSVgtcG9sbC5oLWluc3RlYWQtb2Ytc3lzLXBvbGwuaC5wYXRjaApAQCAtMzMsMTAgKzMzLDEwIEBACiAgc3JjL3BpcGUuY3BwICAgICAgICAgICAgICAgICAgfCAyICstCiAgMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiAKLWRpZmYgLS1naXQgYS9zcmMvZXZlbnRsb29wLWludGVncmF0aW9uLmNwcCBiL3NyYy9ldmVudGxvb3AtaW50ZWdyYXRpb24uY3BwCi1pbmRleCA1Nzc2OTcxLi4yNzFiNTAzIDEwMDY0NAotLS0tIGEvc3JjL2V2ZW50bG9vcC1pbnRlZ3JhdGlvbi5jcHAKLSsrKyBiL3NyYy9ldmVudGxvb3AtaW50ZWdyYXRpb24uY3BwCitJbmRleDogbGliZGJ1cy1jKystMC45LjAvc3JjL2V2ZW50bG9vcC1pbnRlZ3JhdGlvbi5jcHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBsaWJkYnVzLWMrKy0wLjkuMC5vcmlnL3NyYy9ldmVudGxvb3AtaW50ZWdyYXRpb24uY3BwCisrKysgbGliZGJ1cy1jKystMC45LjAvc3JjL2V2ZW50bG9vcC1pbnRlZ3JhdGlvbi5jcHAKIEBAIC0zNiw3ICszNiw3IEBACiAgLyogU1REICovCiAgI2luY2x1ZGUgPHN0cmluZy5oPgpAQCAtNDQsMTIgKzQ0LDEyIEBACiAtI2luY2x1ZGUgPHN5cy9wb2xsLmg+CiArI2luY2x1ZGUgPHBvbGwuaD4KICAjaW5jbHVkZSA8ZmNudGwuaD4KLSAjaW5jbHVkZSA8dW5pc3RkLmg+CiAgCi1kaWZmIC0tZ2l0IGEvc3JjL2V2ZW50bG9vcC5jcHAgYi9zcmMvZXZlbnRsb29wLmNwcAotaW5kZXggZjYyMjgxMi4uNzc5MGUxZSAxMDA2NDQKLS0tLSBhL3NyYy9ldmVudGxvb3AuY3BwCi0rKysgYi9zcmMvZXZlbnRsb29wLmNwcAorIHVzaW5nIG5hbWVzcGFjZSBEQnVzOworSW5kZXg6IGxpYmRidXMtYysrLTAuOS4wL3NyYy9ldmVudGxvb3AuY3BwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbGliZGJ1cy1jKystMC45LjAub3JpZy9zcmMvZXZlbnRsb29wLmNwcAorKysrIGxpYmRidXMtYysrLTAuOS4wL3NyYy9ldmVudGxvb3AuY3BwCiBAQCAtMjgsNyArMjgsNyBAQAogICNpbmNsdWRlIDxkYnVzLWMrKy9ldmVudGxvb3AuaD4KICAjaW5jbHVkZSA8ZGJ1cy1jKysvZGVidWcuaD4KQEAgLTU5LDEwICs1OSwxMCBAQAogICNpbmNsdWRlIDxzeXMvdGltZS5oPgogIAogICNpbmNsdWRlIDxkYnVzL2RidXMuaD4KLWRpZmYgLS1naXQgYS9zcmMvcGlwZS5jcHAgYi9zcmMvcGlwZS5jcHAKLWluZGV4IDAxMjExYjMuLjQ1YzJiYTYgMTAwNjQ0Ci0tLS0gYS9zcmMvcGlwZS5jcHAKLSsrKyBiL3NyYy9waXBlLmNwcAorSW5kZXg6IGxpYmRidXMtYysrLTAuOS4wL3NyYy9waXBlLmNwcAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGxpYmRidXMtYysrLTAuOS4wLm9yaWcvc3JjL3BpcGUuY3BwCisrKysgbGliZGJ1cy1jKystMC45LjAvc3JjL3BpcGUuY3BwCiBAQCAtMzIsNyArMzIsNyBAQAogIAogIC8qIFNURCAqLwpAQCAtNzIsNiArNzIsMyBAQAogICNpbmNsdWRlIDxmY250bC5oPgogICNpbmNsdWRlIDxlcnJuby5oPgogICNpbmNsdWRlIDxjYXNzZXJ0PgotLS0gCi0yLjEwLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9kYnVzL2xpYmRidXMtYysrLTAuOS4wL2ZpeC1taXNzaW5nLXVuaXN0ZC5oLWluY2x1ZGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvbGliZGJ1cy1jKystMC45LjAvZml4LW1pc3NpbmctdW5pc3RkLmgtaW5jbHVkZS5wYXRjaAppbmRleCA5MDNhNzIwLi5iZjY4NzBlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvbGliZGJ1cy1jKystMC45LjAvZml4LW1pc3NpbmctdW5pc3RkLmgtaW5jbHVkZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvbGliZGJ1cy1jKystMC45LjAvZml4LW1pc3NpbmctdW5pc3RkLmgtaW5jbHVkZS5wYXRjaApAQCAtMjQsMTcgKzI0LDE1IEBACiAgaW5jbHVkZS9kYnVzLWMrKy9ldmVudGxvb3AtaW50ZWdyYXRpb24uaCB8ICAgIDEgKwogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQogCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9kYnVzLWMrKy9ldmVudGxvb3AtaW50ZWdyYXRpb24uaCBiL2luY2x1ZGUvZGJ1cy1jKysvZXZlbnRsb29wLWludGVncmF0aW9uLmgKLWluZGV4IDUxMDgzNDAuLjFiNTZhYjUgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL2RidXMtYysrL2V2ZW50bG9vcC1pbnRlZ3JhdGlvbi5oCi0rKysgYi9pbmNsdWRlL2RidXMtYysrL2V2ZW50bG9vcC1pbnRlZ3JhdGlvbi5oCi1AQCAtMjcsNiArMjcsNyBAQAorSW5kZXg6IGxpYmRidXMtYysrLTAuOS4wL2luY2x1ZGUvZGJ1cy1jKysvZXZlbnRsb29wLWludGVncmF0aW9uLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBsaWJkYnVzLWMrKy0wLjkuMC5vcmlnL2luY2x1ZGUvZGJ1cy1jKysvZXZlbnRsb29wLWludGVncmF0aW9uLmgKKysrKyBsaWJkYnVzLWMrKy0wLjkuMC9pbmNsdWRlL2RidXMtYysrL2V2ZW50bG9vcC1pbnRlZ3JhdGlvbi5oCitAQCAtMjYsNiArMjYsNyBAQAorICNkZWZpbmUgX19EQlVTWFhfRVZFTlRMT09QX0lOVEVHUkFUSU9OX0gKICAKLSAjaW5jbHVkZSA8Y3N0cmluZz4KICAjaW5jbHVkZSA8ZXJybm8uaD4KICsjaW5jbHVkZSA8dW5pc3RkLmg+CiAgI2luY2x1ZGUgImFwaS5oIgogICNpbmNsdWRlICJkaXNwYXRjaGVyLmgiCiAgI2luY2x1ZGUgInV0aWwuaCIKLS0tIAotMS43LjkuNwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9lbGwvZWxsLzAwMDEtZWxsLWZpeC1idWlsZC13aXRoLW11c2wtbGliYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZWxsL2VsbC8wMDAxLWVsbC1maXgtYnVpbGQtd2l0aC1tdXNsLWxpYmMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE3MmE5MwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZWxsL2VsbC8wMDAxLWVsbC1maXgtYnVpbGQtd2l0aC1tdXNsLWxpYmMucGF0Y2gKQEAgLTAsMCArMSwzOSBAQAorRnJvbSA0ZjhjNjg3NTdiMDVkMTIzOTJjZDFhOGFlZDE3NGNiOGU1NmY4MGUzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIk1heGluIEIuIEpvaG4iIDxtYXhpbi5qb2huQGludGVsLmNvbT4KK0RhdGU6IFRodSwgNSBBcHIgMjAxOCAxNzoxOTo0NCArMDMwMAorU3ViamVjdDogW1BBVENIXSBlbGw6IGZpeCBidWlsZCB3aXRoIG11c2wgbGliYworCittdXNsIGxpYmMgZG9lc24ndCBpbXBsZW1lbnQgVEVNUF9GQUlMVVJFX1JFVFJZLiBVc2UgdGhlCitURU1QX0ZBSUxVUkVfUkVUUlkgZnJvbSBnbGliYyB0byBmaXggYnVpbGQuCisKK1Vwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkIFtodHRwczovL2xpc3RzLjAxLm9yZy9waXBlcm1haWwvZWxsLzIwMTgtQXByaWwvMDAxMjA5Lmh0bWxdCisKK1NpZ25lZC1vZmYtYnk6IE1heGluIEIuIEpvaG4gPG1heGluLmpvaG5AaW50ZWwuY29tPgorLS0tCisgZWxsL2RidXMuaCB8IDEwICsrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZWxsL2RidXMuaCBiL2VsbC9kYnVzLmgKK2luZGV4IGE3YzA4ZDIuLjNmZjVlMGYgMTAwNjQ0CistLS0gYS9lbGwvZGJ1cy5oCisrKysgYi9lbGwvZGJ1cy5oCitAQCAtMjgsNiArMjgsMTYgQEAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisgI2luY2x1ZGUgPHN0ZGFyZy5oPgorIAorKy8qIHRha2VuIGZyb20gZ2xpYmMgdW5pc3RkLmggZm9yIG11c2wgc3VwcG9ydCAqLworKyNpZm5kZWYgVEVNUF9GQUlMVVJFX1JFVFJZCisrI2RlZmluZSBURU1QX0ZBSUxVUkVfUkVUUlkoZXhwcmVzc2lvbikgICAgICAgICAgICAgXAorKyAgKF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgKHsgbG9uZyBpbnQgX19yZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgIGRvIF9fcmVzdWx0ID0gKGxvbmcgaW50KSAoZXhwcmVzc2lvbik7ICAgICAgXAorKyAgICAgICB3aGlsZSAoX19yZXN1bHQgPT0gLTFMICYmIGVycm5vID09IEVJTlRSKTsgIFwKKysgICAgICAgX19yZXN1bHQ7IH0pKQorKyNlbmRpZgorKworICNpZmRlZiBfX2NwbHVzcGx1cworIGV4dGVybiAiQyIgeworICNlbmRpZgorLS0gCisyLjQuMAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2VsbC9lbGxfMC40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9lbGwvZWxsXzAuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTI0YmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9lbGwvZWxsXzAuNC5iYgpAQCAtMCwwICsxLDE5IEBACitTVU1NQVJZICA9ICJFbWJlZGRlZCBMaW51eCBMaWJyYXJ5IgorREVTQ1JJUFRJT04gPSAiRUxMIGlzIGEgREJVUyBsaWJyYXJ5IHdoaWNoIHByb3ZpZGVzIERCVVMgYmluZGluZ3MuIgorTElDRU5TRSAgPSAiTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1mYjUwNGI2N2M1MDMzMWZjNzg3MzRmZWQ5MGZiMGUwOSIKK1NFQ1RJT04gPSAibGlicyIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCitTUkNSRVYgPSAiYjRhZWEwNmZhYmIyYWYxYWYwMWY4NjFmOGYzOTRjNzU5NTBiNmQ0NyIKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saWJzL2VsbC9lbGwuZ2l0IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtZWxsLWZpeC1idWlsZC13aXRoLW11c2wtbGliYy5wYXRjaCBcCisgICAgICAgICAgIgorCitkb19jb25maWd1cmVfcHJlcGVuZCAoKSB7CisgICAgbWtkaXIgJHtTfS9idWlsZC1hdXgKK30KKworREVQRU5EUyA9ICJkYnVzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9lbGwvZWxsX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZWxsL2VsbF9naXQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwZGY2ZTEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9lbGwvZWxsX2dpdC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVNVTU1BUlkgID0gIkVtYmVkZGVkIExpbnV4IExpYnJhcnkiCi1ERVNDUklQVElPTiA9ICJFTEwgaXMgYSBEQlVTIGxpYnJhcnkgd2hpY2ggcHJvdmlkZXMgREJVUyBiaW5kaW5ncy4iCi1MSUNFTlNFICA9ICJMR1BMdjIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWZiNTA0YjY3YzUwMzMxZmM3ODczNGZlZDkwZmIwZTA5IgotU0VDVElPTiA9ICJsaWJzIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLVNSQ1JFViA9ICI3YjdjMTVjMmU1Y2FmZjg4ZmM0NWU3YThiODc0YTQ3MTk2YTBlZGRkIgotU1JDX1VSSSA9ICJnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpYnMvZWxsL2VsbC5naXQiCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKLSAgICBta2RpciAke1N9L2J1aWxkLWF1eAotfQotCi1ERVBFTkRTID0gImRidXMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2dsaWItMi4wL2dsaWJtbS8wMDAxLUdsaWItVGhyZWFkcy1Qcml2YXRlLUZpeC1nb2JqLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9nbGliLTIuMC9nbGlibW0vMDAwMS1HbGliLVRocmVhZHMtUHJpdmF0ZS1GaXgtZ29iai5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODk5MDIyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9nbGliLTIuMC9nbGlibW0vMDAwMS1HbGliLVRocmVhZHMtUHJpdmF0ZS1GaXgtZ29iai5wYXRjaApAQCAtMCwwICsxLDQwIEBACitGcm9tIDgzOGZlODRjMmRkY2M5YWY1MWMzNGY3NTFkZWZiZjNkZDBiYThhMDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLamVsbCBBaGxzdGVkdCA8a2plbGxhaGxzdGVkdEBnbWFpbC5jb20+CitEYXRlOiBXZWQsIDIwIERlYyAyMDE3IDIwOjAwOjMyICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIEdsaWI6OlRocmVhZHM6OlByaXZhdGU6IEZpeCBnb2JqKCkKKworQnVnIDc5MTcxMQorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtodHRwczovL2dpdGh1Yi5jb20vR05PTUUvZ2xpYm1tL2NvbW1pdC8zN2Q1N2FlOTU3MmI3ZDc0YWEzODVhMzAzMTNlY2VhZTdmMmQzZmNlXQorIGdsaWIvZ2xpYm1tL3RocmVhZHMuaCB8IDIgKy0KKyBnbGliL3NyYy90aHJlYWRzLmhnICAgfCAyICstCisgMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nbGliL2dsaWJtbS90aHJlYWRzLmggYi9nbGliL2dsaWJtbS90aHJlYWRzLmgKK2luZGV4IGY3ZTJiODJhLi4yYzBjYmU4YyAxMDA2NDQKKy0tLSBhL2dsaWIvZ2xpYm1tL3RocmVhZHMuaAorKysrIGIvZ2xpYi9nbGlibW0vdGhyZWFkcy5oCitAQCAtNjU3LDcgKzY1Nyw3IEBAIHB1YmxpYzoKKyAgICAqLworICAgaW5saW5lIHZvaWQgcmVwbGFjZShUKiBkYXRhKTsKKyAKKy0gIEdQcml2YXRlKiBnb2JqKCkgeyByZXR1cm4gZ29iamVjdF87IH0KKysgIEdQcml2YXRlKiBnb2JqKCkgeyByZXR1cm4gJmdvYmplY3RfOyB9CisgCisgcHJpdmF0ZToKKyAgIEdQcml2YXRlIGdvYmplY3RfOworZGlmZiAtLWdpdCBhL2dsaWIvc3JjL3RocmVhZHMuaGcgYi9nbGliL3NyYy90aHJlYWRzLmhnCitpbmRleCA4NmQ3YTE3Yi4uYzgyYTYxMzAgMTAwNjQ0CistLS0gYS9nbGliL3NyYy90aHJlYWRzLmhnCisrKysgYi9nbGliL3NyYy90aHJlYWRzLmhnCitAQCAtNjI4LDcgKzYyOCw3IEBAIHB1YmxpYzoKKyAgICAqLworICAgaW5saW5lIHZvaWQgcmVwbGFjZShUKiBkYXRhKTsKKyAKKy0gIEdQcml2YXRlKiBnb2JqKCkgeyByZXR1cm4gZ29iamVjdF87IH0KKysgIEdQcml2YXRlKiBnb2JqKCkgeyByZXR1cm4gJmdvYmplY3RfOyB9CisgCisgcHJpdmF0ZToKKyAgIEdQcml2YXRlIGdvYmplY3RfOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9nbGliLTIuMC9nbGlibW0vcmVtb3ZlLWV4YW1wbGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9nbGliLTIuMC9nbGlibW0vcmVtb3ZlLWV4YW1wbGVzLnBhdGNoCmluZGV4IGE1OTQ0YzIuLmQzMmZlNzggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZ2xpYi0yLjAvZ2xpYm1tL3JlbW92ZS1leGFtcGxlcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2dsaWItMi4wL2dsaWJtbS9yZW1vdmUtZXhhbXBsZXMucGF0Y2gKQEAgLTEsNyArMSwxNiBAQAotSW5kZXg6IGdsaWJtbS0yLjIyLjEvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnbGlibW0tMi4yMi4xLm9yaWcvTWFrZWZpbGUuYW0KLSsrKyBnbGlibW0tMi4yMi4xL01ha2VmaWxlLmFtCitGcm9tIGY0OGE2OWZkMTFiMmVkYTZjNDNmZjA0NmMyMDJjYmM0ZGNkNGU5MmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxMSAxMTo0NjozNyArMDIwMAorCistLS0KKyBNYWtlZmlsZS5hbSAgfCA3ICstLS0tLS0KKyBjb25maWd1cmUuYWMgfCAxIC0KKyAyIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQoraW5kZXggYTBkZjhhZi4uYzNkNWUwNiAxMDA2NDQKKy0tLSBhL01ha2VmaWxlLmFtCisrKysgYi9NYWtlZmlsZS5hbQogQEAgLTIzLDEyICsyMyw3IEBAIHNyY19zdWJkaXJzID0gZ2xpYi9zcmMgZ2lvL3NyYwogIGVsc2UKICBzcmNfc3ViZGlycyA9CkBAIC0xNiwxNSArMjUsMTUgQEAKICAKICBnbGlibW1faW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvJChHTElCTU1fTU9EVUxFX05BTUUpCiAgZ2xpYm1tX2luY2x1ZGVfSEVBREVSUyA9IGdsaWIvZ2xpYm1tLmgKLUluZGV4OiBnbGlibW0tMi4yMi4xL2NvbmZpZ3VyZS5hYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdsaWJtbS0yLjIyLjEub3JpZy9jb25maWd1cmUuYWMKLSsrKyBnbGlibW0tMi4yMi4xL2NvbmZpZ3VyZS5hYwotQEAgLTEzNiw3ICsxMzYsNiBAQCBBQ19DT05GSUdfRklMRVMoW01ha2VmaWxlCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCBjMjBlNzc4Li43NDIwM2JlIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0xNjYsNyArMTY2LDYgQEAgQUNfQ09ORklHX0ZJTEVTKFtNYWtlZmlsZQogICAgICAgICAgICAgICAgICAgZ2lvL3NyYy9NYWtlZmlsZQogICAgICAgICAgICAgICAgICAgZ2lvL2dpb21tL01ha2VmaWxlCiAgICAgICAgICAgICAgICAgICB0ZXN0cy9NYWtlZmlsZQogLSAgICAgICAgICAgICAgICAgZXhhbXBsZXMvTWFrZWZpbGUKICAgICAgICAgICAgICAgICAgIGRvY3MvTWFrZWZpbGUKICAgICAgICAgICAgICAgICAgIGRvY3MvcmVmZXJlbmNlL0RveHlmaWxlCi0gICAgICAgICAgICAgICAgICBNU1ZDX05ldDIwMDUvZ2xpYm1tL2dsaWJtbS5yYworICAgICAgICAgICAgICAgICAgTVNWQ19OZXQyMDEzL2dsaWJtbS9nbGlibW0ucmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZ2xpYi0yLjAvZ2xpYm1tXzIuNTAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZ2xpYi0yLjAvZ2xpYm1tXzIuNTAuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWNjNTU4Zi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2dsaWItMi4wL2dsaWJtbV8yLjUwLjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1TVU1NQVJZID0gIkMrKyBiaW5kaW5ncyBmb3IgdGhlIGdsaWIgbGlicmFyeSIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3RrbW0ub3JnLyIKLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiTEdQTHYyLjEgJiBHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQ4MDQ1ZjNiOGY5MjljMWNiMjlhMWUzZmQ3MzdiNDk5IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcudG9vbHM7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgotCi1ERVBFTkRTID0gIm1tLWNvbW1vbiBnbGliLTIuMCBsaWJzaWdjKystMi4wIGdsaWItMi4wLW5hdGl2ZSIKLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1TSFJUX1ZFUiA9ICIke0BkLmdldFZhcignUFYnKS5zcGxpdCgnLicpWzBdfS4ke0BkLmdldFZhcignUFYnKS5zcGxpdCgnLicpWzFdfSIKLQotU1JDX1VSSSA9ICIgXAotICAgIGZ0cDovL2Z0cC5nbm9tZS5vcmcvcHViL0dOT01FL3NvdXJjZXMvZ2xpYm1tLyR7U0hSVF9WRVJ9L2dsaWJtbS0ke1BWfS50YXIueHogXAotICAgIGZpbGU6Ly9yZW1vdmUtZXhhbXBsZXMucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gImE1YjkxNWRjNDJmYzYyOTgzZmE3OGNhODQ4NmY0MzkxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFmZDg1MDUxZGE5Y2I0MDJjYzgzNDhjZWM3MmRmZTRkNzlmOTM0NWRmNGExZGJmNjg3MDNhNGRlZDQ1ODQ2YTQiCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vZ2xpYm1tLTIuNAotICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vYWNsb2NhbAotCi0gICAgaW5zdGFsbCAtbSAwNjQ0IGdsaWIvZ2xpYm1tY29uZmlnLmggJHtEfSR7ZGF0YWRpcn0vZ2xpYm1tLTIuNC8KLSAgICBpbnN0YWxsIC1tIDA2NDQgc2NyaXB0cy9nbGlibW1fY2hlY2tfcGVybC5tNCAke0R9JHtkYXRhZGlyfS9hY2xvY2FsLyB8fCB0cnVlCi0KLSAgICBmb3IgaSBpbiBnZW5lcmF0ZV93cmFwX2luaXQucGwgZ21tcHJvYzsgZG8KLSAgICAgICAgc2VkIC1pIC1lICcxcywuKiwjISR7YmluZGlyfS9lbnYgcGVybCwnICR7RH0ke2xpYmRpcn0vZ2xpYm1tLTIuNC9wcm9jLyRpCi0gICAgZG9uZQotfQotCi1GSUxFU18ke1BOfSA9ICIke2xpYmRpcn0vbGliKi5zby4qIgotRklMRVNfJHtQTn0tZGV2ICs9ICIke2RhdGFkaXJ9L2dsaWJtbS0qICR7bGliZGlyfS9nbGlibW0tMi40L2luY2x1ZGUvICR7bGliZGlyfS9nbGlibW0tMi40L3Byb2MvICR7bGliZGlyfS9naW9tbS0yLjQvaW5jbHVkZS8iCi0KLVJERVBFTkRTXyR7UE59LWRldiA9ICJwZXJsIgotU0VDVVJJVFlfQ0ZMQUdTID0gIiR7U0VDVVJJVFlfTk9fUElFX0NGTEFHU30iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2dsaWItMi4wL2dsaWJtbV8yLjU0LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2dsaWItMi4wL2dsaWJtbV8yLjU0LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDcwNjQzMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZ2xpYi0yLjAvZ2xpYm1tXzIuNTQuMS5iYgpAQCAtMCwwICsxLDM3IEBACitTVU1NQVJZID0gIkMrKyBiaW5kaW5ncyBmb3IgdGhlIGdsaWIgbGlicmFyeSIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3RrbW0ub3JnLyIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiTEdQTHYyLjEgJiBHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTQyZGZmZmViYzU2ZmVjNzUyN2FhYzUzYjdhODlkMWQ4IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcudG9vbHM7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgorCitERVBFTkRTID0gIm1tLWNvbW1vbiBnbGliLTIuMCBsaWJzaWdjKystMi4wIGdsaWItMi4wLW5hdGl2ZSIKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitTSFJUX1ZFUiA9ICIke0BkLmdldFZhcignUFYnKS5zcGxpdCgnLicpWzBdfS4ke0BkLmdldFZhcignUFYnKS5zcGxpdCgnLicpWzFdfSIKKworU1JDX1VSSSA9ICIgXAorICAgIGZ0cDovL2Z0cC5nbm9tZS5vcmcvcHViL0dOT01FL3NvdXJjZXMvZ2xpYm1tLyR7U0hSVF9WRVJ9L2dsaWJtbS0ke1BWfS50YXIueHogXAorICAgIGZpbGU6Ly9yZW1vdmUtZXhhbXBsZXMucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAxLUdsaWItVGhyZWFkcy1Qcml2YXRlLUZpeC1nb2JqLnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkZWU1ZWJlMzA5ZjU5NzZjM2RhY2ZjZjVjNDNhMDYyYiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3Y2MyOGM3MzJiMDRkNzBlZDM0ZjBjOTIzNTQzMTI5MDgzY2ZiOTA1ODBlYTRhMmI0YmU1YjM4ODAyYmY2YTRhIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9L2dsaWJtbS0yLjQKKyAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9L2FjbG9jYWwKKworICAgIGluc3RhbGwgLW0gMDY0NCBnbGliL2dsaWJtbWNvbmZpZy5oICR7RH0ke2RhdGFkaXJ9L2dsaWJtbS0yLjQvCisgICAgaW5zdGFsbCAtbSAwNjQ0IHNjcmlwdHMvZ2xpYm1tX2NoZWNrX3BlcmwubTQgJHtEfSR7ZGF0YWRpcn0vYWNsb2NhbC8gfHwgdHJ1ZQorCisgICAgZm9yIGkgaW4gZ2VuZXJhdGVfd3JhcF9pbml0LnBsIGdtbXByb2M7IGRvCisgICAgICAgIHNlZCAtaSAtZSAnMXMsLiosIyEke2JpbmRpcn0vZW52IHBlcmwsJyAke0R9JHtsaWJkaXJ9L2dsaWJtbS0yLjQvcHJvYy8kaQorICAgIGRvbmUKK30KKworRklMRVNfJHtQTn0gPSAiJHtsaWJkaXJ9L2xpYiouc28uKiIKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtkYXRhZGlyfS9nbGlibW0tKiAke2xpYmRpcn0vZ2xpYm1tLTIuNC9pbmNsdWRlLyAke2xpYmRpcn0vZ2xpYm1tLTIuNC9wcm9jLyAke2xpYmRpcn0vZ2lvbW0tMi40L2luY2x1ZGUvIgorCitSREVQRU5EU18ke1BOfS1kZXYgPSAicGVybCIKK1NFQ1VSSVRZX0NGTEFHUyA9ICIke1NFQ1VSSVRZX05PX1BJRV9DRkxBR1N9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9tbS1jb21tb24vbW0tY29tbW9uXzAuOS4xMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvbW0tY29tbW9uL21tLWNvbW1vbl8wLjkuMTAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5OWViOGEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9tbS1jb21tb24vbW0tY29tbW9uXzAuOS4xMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLWluaGVyaXQgZ25vbWViYXNlCi0KLUdOT01FX0NPTVBSRVNTX1RZUEU9Inh6IgotCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICI0OWRjNDdhZjhjODljZTViM2M3NjgzMDZiOWEwZjkyMiIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjE2YzBlMmJjMTk2YjY3ZmJjMTQ1ZWRhZWNiNWRiZTU4MTgzODY1MDRmZTU3MDNkZTI3MDAyZDc3MTQwZmEyMTciCi0KLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvbW0tY29tbW9uL21tLWNvbW1vbl8wLjkuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL21tLWNvbW1vbi9tbS1jb21tb25fMC45LjExLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MWNhYTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL21tLWNvbW1vbi9tbS1jb21tb25fMC45LjExLmJiCkBAIC0wLDAgKzEsOSBAQAoraW5oZXJpdCBnbm9tZWJhc2UKKworU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiZDZmMmE0MzU4OTQ4MGQyMzE1NjcyZGEwYjU4MzliNTYiCitTUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICIyMGQxZTc0NjZjYTRjODNjOTJlMjlmOWU4ZGZjYzhlNTcyMWZkZjEzMzdmNTMxNTdiZWQ5N2JlM2I3M2IzMmE4IgorCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9wbHltb3V0aC9maWxlcy8wMDAxLU1ha2UtZnVsbC1wYXRoLXRvLXN5c3RlbWQtdHR5LWFzay1wYXNzd29yZC1hZ2VudC1jb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL3BseW1vdXRoL2ZpbGVzLzAwMDEtTWFrZS1mdWxsLXBhdGgtdG8tc3lzdGVtZC10dHktYXNrLXBhc3N3b3JkLWFnZW50LWNvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTg2Yzc2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9wbHltb3V0aC9maWxlcy8wMDAxLU1ha2UtZnVsbC1wYXRoLXRvLXN5c3RlbWQtdHR5LWFzay1wYXNzd29yZC1hZ2VudC1jb24ucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAorRnJvbSA3NDZjNjkwZjU3YjUyZTZmZTIxY2MyYTExYjViYjcxZDI1YWYzMTI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IFdlZCwgMTMgRGVjIDIwMTcgMTY6MTU6NTcgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gTWFrZSBmdWxsIHBhdGggdG8gc3lzdGVtZC10dHktYXNrLXBhc3N3b3JkLWFnZW50IGNvbmZpZ3VyYWJsZQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgY29uZmlndXJlLmFjIHwgNSArKysrLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggYWFkNjczZS4uNmIzNzE3OSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtNDgsNyArNDgsMTAgQEAgUExZTU9VVEhfTElCUz0iLWxtIC1scnQgLWxkbCIKKyBBQ19TVUJTVChQTFlNT1VUSF9DRkxBR1MpCisgQUNfU1VCU1QoUExZTU9VVEhfTElCUykKKyAKKy1BQ19QQVRIX1BST0coW1NZU1RFTURfQVNLX1BBU1NXT1JEX0FHRU5UXSwgW3N5c3RlbWQtdHR5LWFzay1wYXNzd29yZC1hZ2VudF0pCisrQUNfQVJHX1dJVEgoc3lzdGVtZC10dHktYXNrLXBhc3N3b3JkLWFnZW50LCBBU19IRUxQX1NUUklORyhbLS13aXRoLXN5c3RlbWQtdHR5LWFzay1wYXNzd29yZC1hZ2VudF0sW3BhdGggb2Ygc3lzdGVtZC10dHktYXNrLXBhc3N3b3JkLWFnZW50XSksU1lTVEVNRF9BU0tfUEFTU1dPUkRfQUdFTlQ9JHt3aXRodmFsfSxTWVNURU1EX0FTS19QQVNTV09SRF9BR0VOVD0vYmluL3N5c3RlbWQtdHR5LWFzay1wYXNzd29yZC1hZ2VudCkKKytBQ19TVUJTVChTWVNURU1EX0FTS19QQVNTV09SRF9BR0VOVCkKKysKKysjIGNoZWNrZWQ6IFVERVZBRE0gaXMgbm90IHVzZWQKKyBBQ19QQVRIX1BST0coW1VERVZBRE1dLCBbdWRldmFkbV0pCisgCisgQUNfQVJHX0VOQUJMRShwYW5nbywgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXBhbmdvXSxbZW5hYmxlIGJ1aWxkaW5nIHdpdGggcGFuZ28sIGRpc2FibGVkIHRoZXJlIGlzIG5vIGVuY3J5cHRpb24gcHJvbXB0c10pLGVuYWJsZV9wYW5nbz0kZW5hYmxldmFsLGVuYWJsZV9wYW5nbz15ZXMpCistLSAKKzIuOS41CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvcGx5bW91dGgvcGx5bW91dGhfMC45LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL3BseW1vdXRoL3BseW1vdXRoXzAuOS4yLmJiCmluZGV4IDYxNjNjZmYuLjdlOGQ2ZTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvcGx5bW91dGgvcGx5bW91dGhfMC45LjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9wbHltb3V0aC9wbHltb3V0aF8wLjkuMi5iYgpAQCAtMTYsMTMgKzE2LDE2IEBACiBQUk9WSURFUyA9ICJ2aXJ0dWFsL3BzcGxhc2giCiBSUFJPVklERVNfJHtQTn0gPSAidmlydHVhbC1wc3BsYXNoIHZpcnR1YWwtcHNwbGFzaC1zdXBwb3J0IgogCi1TUkNfVVJJID0gImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3NvZnR3YXJlL3BseW1vdXRoL3JlbGVhc2VzLyR7QlBOfS0ke1BWfS50YXIuYnoyIgorU1JDX1VSSSA9ICIgXAorICAgIGh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3NvZnR3YXJlL3BseW1vdXRoL3JlbGVhc2VzLyR7QlBOfS0ke1BWfS50YXIuYnoyIFwKKyAgICBmaWxlOi8vMDAwMS1NYWtlLWZ1bGwtcGF0aC10by1zeXN0ZW1kLXR0eS1hc2stcGFzc3dvcmQtYWdlbnQtY29uLnBhdGNoIFwKKyIKIFNSQ19VUklbbWQ1c3VtXSA9ICJmZjQyMDk5NGRlYjdlYTIwM2RmNjc4ZGY5MmU3YWI3ZCIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICIyZjBjZTgyMDQyY2Y5YzdlYWRkMjUxN2ExZjc0YzhhODVmYTg2OTk3ODFkOWYyOTRhMDZlYWRlMjlmYmVkNTdmIgogCiBFWFRSQV9PRUNPTkYgKz0gIiAtLWVuYWJsZS1zaGFyZWQgLS1kaXNhYmxlLXN0YXRpYyAtLWRpc2FibGUtZ3RrIC0tZGlzYWJsZS1kb2N1bWVudGF0aW9uIFwKICAgICAtLXdpdGgtbG9nbz0ke0xPR099IFwKLSAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAnLS1lbmFibGUtc3lzdGVtZC1pbnRlZ3JhdGlvbiAtLXdpdGgtc3lzdGVtLXJvb3QtaW5zdGFsbCcsICcnLCBkKX0gXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICctLWVuYWJsZS1zeXN0ZW1kLWludGVncmF0aW9uIC0td2l0aC1zeXN0ZW0tcm9vdC1pbnN0YWxsIC0td2l0aC1zeXN0ZW1kLXR0eS1hc2stcGFzc3dvcmQtYWdlbnQ9JHtiYXNlX2JpbmRpcn0vc3lzdGVtZC10dHktYXNrLXBhc3N3b3JkLWFnZW50JywgJycsIGQpfSBcCiAiCiAKIFBBQ0tBR0VDT05GSUcgPz89ICJwYW5nbyBpbml0cmQiCkBAIC0zMSw3ICszNCw3IEBACiAKIFBBQ0tBR0VDT05GSUdbZHJtXSA9ICItLWVuYWJsZS1kcm0sLS1kaXNhYmxlLWRybSxsaWJkcm0iCiBQQUNLQUdFQ09ORklHW3BhbmdvXSA9ICItLWVuYWJsZS1wYW5nbywtLWRpc2FibGUtcGFuZ28scGFuZ28iCi1QQUNLQUdFQ09ORklHW2d0a10gPSAiLS1lbmFibGUtZ3RrLC0tZGlzYWJsZS1ndGssZ3RrKyIKK1BBQ0tBR0VDT05GSUdbZ3RrXSA9ICItLWVuYWJsZS1ndGssLS1kaXNhYmxlLWd0ayxndGsrMyIKIFBBQ0tBR0VDT05GSUdbaW5pdHJkXSA9ICIsLCwiCiAKIExPR08gPz89ICIke2RhdGFkaXJ9L3BseW1vdXRoL2JpemNvbS5wbmciCkBAIC0zOSw5ICs0Miw2IEBACiBpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgc3lzdGVtZAogCiBkb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgaW5zdGFsbCAtbSA2NDQgJHtCfS9zeXN0ZW1kLXVuaXRzLyouc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQotICAgIGluc3RhbGwgLW0gNjQ0ICR7Qn0vc3lzdGVtZC11bml0cy9zeXN0ZW1kLWFzay1wYXNzd29yZC1wbHltb3V0aC5wYXRoICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCiAgICAgIyBSZW1vdmUgL3Zhci9ydW4gZnJvbSBwYWNrYWdlIGFzIHBseW1vdXRoIHdpbGwgcG9wdWxhdGUgaXQgb24gc3RhcnR1cAogICAgIHJtIC1mciAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vcnVuIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL3RveWJveC90b3lib3hfMC43LjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL3RveWJveC90b3lib3hfMC43LjUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ3YzI4NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvdG95Ym94L3RveWJveF8wLjcuNS5iYgpAQCAtMCwwICsxLDcxIEBACitTVU1NQVJZID0gIlRveWJveCBjb21iaW5lcyBjb21tb24gdXRpbGl0aWVzIHRvZ2V0aGVyIGludG8gYSBzaW5nbGUgZXhlY3V0YWJsZS4iCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmxhbmRsZXkubmV0L3RveWJveC8iCitERVBFTkRTID0gImF0dHIiCisKK0xJQ0VOU0UgPSAiQlNELTAtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZjBiOGIzZGQ2NDMxYmNhYTI0NWRhMGEwOGJkMGQ1MTEiCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5sYW5kbGV5Lm5ldC90b3lib3gvZG93bmxvYWRzLyR7QlBOfS0ke1BWfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiYThiYjUwMmExYmU5NDFmMDZkZDI2NDRmZmYyNWY1NDciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiM2FkYTQ1MGFjMWVhYjFkZmMzNTJmZWU5MTVlYTYxMjliOWE0MzQ5YzE4ODVmMTM5NGI2MWJkMmQ4OWE0NmMwNCIKKworU0VDVElPTiA9ICJiYXNlIgorCitUT1lCT1hfQklOID0gImdlbmVyYXRlZC91bnN0cmlwcGVkL3RveWJveCIKKworRVhUUkFfT0VNQUtFID0gJ0hPU1RDQz0iJHtCVUlMRF9DQ30iIENQVVM9JHtAb2UudXRpbHMuY3B1X2NvdW50KCl9JworCitkb19jb25maWd1cmUoKSB7CisgICAgb2VfcnVubWFrZSBkZWZjb25maWcKKworICAgICMgRGlzYWJsZSBraWxsYWxsNSBhcyBpdCBpc24ndCBtYW5hZ2VkIGJ5IHVwZGF0ZS1hbHRlcm5hdGl2ZXMKKyAgICBzZWQgLWUgJ3MvQ09ORklHX0tJTExBTEw1PXkvIyBDT05GSUdfS0lMTEFMTDUgaXMgbm90IHNldC8nIC1pIC5jb25maWcKKworICAgICMgRGlzYWJsZSBzd2Fwb24gYXMgaXQgZG9lc24ndCBoYW5kbGUgdGhlICctYScgYXJndW1lbnQgdXNlZCBkdXJpbmcgYm9vdAorICAgIHNlZCAtZSAncy9DT05GSUdfU1dBUE9OPXkvIyBDT05GSUdfU1dBUE9OIGlzIG5vdCBzZXQvJyAtaSAuY29uZmlnCit9CisKK2RvX2NvbXBpbGUoKSB7CisgICAgb2VfcnVubWFrZSAke1RPWUJPWF9CSU59CisKKyAgICAjIENyZWF0ZSBhIGxpc3Qgb2YgbGlua3MgbmVlZGVkCisgICAgJHtCVUlMRF9DQ30gLUkgLiBzY3JpcHRzL2luc3RhbGwuYyAtbyBnZW5lcmF0ZWQvaW5zdGxpc3QKKyAgICAuL2dlbmVyYXRlZC9pbnN0bGlzdCBsb25nIHwgc2VkIC1lICdzI14jLyMnID4gdG95Ym94LmxpbmtzCit9CisKK2RvX2luc3RhbGwoKSB7CisgICAgIyBJbnN0YWxsIG1hbnVhbGx5IGluc3RlYWQgb2YgdXNpbmcgJ21ha2UgaW5zdGFsbCcKKyAgICBpbnN0YWxsIC1kICR7RH0ke2Jhc2VfYmluZGlyfQorICAgIGlmIGdyZXAgLXEgIkNPTkZJR19UT1lCT1hfU1VJRD15IiAke0J9Ly5jb25maWc7IHRoZW4KKyAgICAgICAgaW5zdGFsbCAtbSA0NzU1ICR7Qn0vJHtUT1lCT1hfQklOfSAke0R9JHtiYXNlX2JpbmRpcn0vdG95Ym94CisgICAgZWxzZQorICAgICAgICBpbnN0YWxsIC1tIDA3NTUgJHtCfS8ke1RPWUJPWF9CSU59ICR7RH0ke2Jhc2VfYmluZGlyfS90b3lib3gKKyAgICBmaQorCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfQorICAgIGluc3RhbGwgLW0gMDY0NCAke0J9L3RveWJveC5saW5rcyAke0R9JHtzeXNjb25mZGlyfQorfQorCitpbmhlcml0IHVwZGF0ZS1hbHRlcm5hdGl2ZXMKKworIyBJZiB5b3UndmUgY2hvc2VuIHRvIGluc3RhbGwgdG95Ym94IHlvdSBwcm9iYWJseSB3YW50IGl0IHRvIHRha2UgcHJlY2VkZW5jZQorIyBvdmVyIGJ1c3lib3ggd2hlcmUgcG9zc2libGUgYnV0IG5vdCBvdmVyIG90aGVyIHBhY2thZ2VzCitBTFRFUk5BVElWRV9QUklPUklUWSA9ICI2MCIKKworcHl0aG9uIGRvX3BhY2thZ2VfcHJlcGVuZCAoKSB7CisgICAgIyBSZWFkIGxpbmtzIGZyb20gL2V0Yy90b3lib3gubGlua3MgYW5kIGNyZWF0ZSBhcHByb3ByaWF0ZQorICAgICMgdXBkYXRlLWFsdGVybmF0aXZlcyB2YXJpYWJsZXMKKworICAgIGR2YXIgPSBkLmdldFZhcignRCcpCisgICAgcG4gPSBkLmdldFZhcignUE4nKQorICAgIHRhcmdldCA9ICIvYmluL3RveWJveCIKKworICAgIGYgPSBvcGVuKCclcy9ldGMvdG95Ym94LmxpbmtzJyAlIChkdmFyKSwgJ3InKQorICAgIGZvciBhbHRfbGlua19uYW1lIGluIGY6CisgICAgICAgIGFsdF9saW5rX25hbWUgPSBhbHRfbGlua19uYW1lLnN0cmlwKCkKKyAgICAgICAgYWx0X25hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGFsdF9saW5rX25hbWUpCisgICAgICAgIGQuYXBwZW5kVmFyKCdBTFRFUk5BVElWRV8lcycgJSAocG4pLCAnICcgKyBhbHRfbmFtZSkKKyAgICAgICAgZC5zZXRWYXJGbGFnKCdBTFRFUk5BVElWRV9MSU5LX05BTUUnLCBhbHRfbmFtZSwgYWx0X2xpbmtfbmFtZSkKKyAgICAgICAgZC5zZXRWYXJGbGFnKCdBTFRFUk5BVElWRV9UQVJHRVQnLCBhbHRfbmFtZSwgdGFyZ2V0KQorICAgIGYuY2xvc2UoKQorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS90b3lib3gvdG95Ym94X2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvdG95Ym94L3RveWJveF9naXQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4Zjk3MTUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS90b3lib3gvdG95Ym94X2dpdC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLVNVTU1BUlkgPSAiVG95Ym94IGNvbWJpbmVzIGNvbW1vbiB1dGlsaXRpZXMgdG9nZXRoZXIgaW50byBhIHNpbmdsZSBleGVjdXRhYmxlLiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cubGFuZGxleS5uZXQvdG95Ym94LyIKLURFUEVORFMgPSAiYXR0ciIKLQotTElDRU5TRSA9ICJCU0QtMC1DbGF1c2UiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1mMGI4YjNkZDY0MzFiY2FhMjQ1ZGEwYTA4YmQwZDUxMSIKLQotUFYgPSAiMC43LjQrZ2l0JHtTUkNQVn0iCi0KLVNSQ1JFViA9ICI3ODI4OTIwMzAzMWFmYzIzNTg1MDM1YzM2MmJlZWMxMGRiNTQ5NThkIgotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2xhbmRsZXkvdG95Ym94O3Byb3RvY29sPWh0dHBzIFwKLSIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLQotU0VDVElPTiA9ICJiYXNlIgotCi1UT1lCT1hfQklOID0gImdlbmVyYXRlZC91bnN0cmlwcGVkL3RveWJveCIKLQotRVhUUkFfT0VNQUtFID0gJ0hPU1RDQz0iJHtCVUlMRF9DQ30iIENQVVM9JHtAb2UudXRpbHMuY3B1X2NvdW50KCl9JwotCi1kb19jb25maWd1cmUoKSB7Ci0gICAgb2VfcnVubWFrZSBkZWZjb25maWcKLQotICAgICMgRGlzYWJsZSBraWxsYWxsNSBhcyBpdCBpc24ndCBtYW5hZ2VkIGJ5IHVwZGF0ZS1hbHRlcm5hdGl2ZXMKLSAgICBzZWQgLWUgJ3MvQ09ORklHX0tJTExBTEw1PXkvIyBDT05GSUdfS0lMTEFMTDUgaXMgbm90IHNldC8nIC1pIC5jb25maWcKLQotICAgICMgRGlzYWJsZSBzd2Fwb24gYXMgaXQgZG9lc24ndCBoYW5kbGUgdGhlICctYScgYXJndW1lbnQgdXNlZCBkdXJpbmcgYm9vdAotICAgIHNlZCAtZSAncy9DT05GSUdfU1dBUE9OPXkvIyBDT05GSUdfU1dBUE9OIGlzIG5vdCBzZXQvJyAtaSAuY29uZmlnCi19Ci0KLWRvX2NvbXBpbGUoKSB7Ci0gICAgb2VfcnVubWFrZSAke1RPWUJPWF9CSU59Ci0KLSAgICAjIENyZWF0ZSBhIGxpc3Qgb2YgbGlua3MgbmVlZGVkCi0gICAgJHtCVUlMRF9DQ30gLUkgLiBzY3JpcHRzL2luc3RhbGwuYyAtbyBnZW5lcmF0ZWQvaW5zdGxpc3QKLSAgICAuL2dlbmVyYXRlZC9pbnN0bGlzdCBsb25nIHwgc2VkIC1lICdzI14jLyMnID4gdG95Ym94LmxpbmtzCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0gICAgIyBJbnN0YWxsIG1hbnVhbGx5IGluc3RlYWQgb2YgdXNpbmcgJ21ha2UgaW5zdGFsbCcKLSAgICBpbnN0YWxsIC1kICR7RH0ke2Jhc2VfYmluZGlyfQotICAgIGlmIGdyZXAgLXEgIkNPTkZJR19UT1lCT1hfU1VJRD15IiAke0J9Ly5jb25maWc7IHRoZW4KLSAgICAgICAgaW5zdGFsbCAtbSA0NzU1ICR7Qn0vJHtUT1lCT1hfQklOfSAke0R9JHtiYXNlX2JpbmRpcn0vdG95Ym94Ci0gICAgZWxzZQotICAgICAgICBpbnN0YWxsIC1tIDA3NTUgJHtCfS8ke1RPWUJPWF9CSU59ICR7RH0ke2Jhc2VfYmluZGlyfS90b3lib3gKLSAgICBmaQotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfQotICAgIGluc3RhbGwgLW0gMDY0NCAke0J9L3RveWJveC5saW5rcyAke0R9JHtzeXNjb25mZGlyfQotfQotCi1pbmhlcml0IHVwZGF0ZS1hbHRlcm5hdGl2ZXMKLQotIyBJZiB5b3UndmUgY2hvc2VuIHRvIGluc3RhbGwgdG95Ym94IHlvdSBwcm9iYWJseSB3YW50IGl0IHRvIHRha2UgcHJlY2VkZW5jZQotIyBvdmVyIGJ1c3lib3ggd2hlcmUgcG9zc2libGUgYnV0IG5vdCBvdmVyIG90aGVyIHBhY2thZ2VzCi1BTFRFUk5BVElWRV9QUklPUklUWSA9ICI2MCIKLQotcHl0aG9uIGRvX3BhY2thZ2VfcHJlcGVuZCAoKSB7Ci0gICAgIyBSZWFkIGxpbmtzIGZyb20gL2V0Yy90b3lib3gubGlua3MgYW5kIGNyZWF0ZSBhcHByb3ByaWF0ZQotICAgICMgdXBkYXRlLWFsdGVybmF0aXZlcyB2YXJpYWJsZXMKLQotICAgIGR2YXIgPSBkLmdldFZhcignRCcpCi0gICAgcG4gPSBkLmdldFZhcignUE4nKQotICAgIHRhcmdldCA9ICIvYmluL3RveWJveCIKLQotICAgIGYgPSBvcGVuKCclcy9ldGMvdG95Ym94LmxpbmtzJyAlIChkdmFyKSwgJ3InKQotICAgIGZvciBhbHRfbGlua19uYW1lIGluIGY6Ci0gICAgICAgIGFsdF9saW5rX25hbWUgPSBhbHRfbGlua19uYW1lLnN0cmlwKCkKLSAgICAgICAgYWx0X25hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGFsdF9saW5rX25hbWUpCi0gICAgICAgIGQuYXBwZW5kVmFyKCdBTFRFUk5BVElWRV8lcycgJSAocG4pLCAnICcgKyBhbHRfbmFtZSkKLSAgICAgICAgZC5zZXRWYXJGbGFnKCdBTFRFUk5BVElWRV9MSU5LX05BTUUnLCBhbHRfbmFtZSwgYWx0X2xpbmtfbmFtZSkKLSAgICAgICAgZC5zZXRWYXJGbGFnKCdBTFRFUk5BVElWRV9UQVJHRVQnLCBhbHRfbmFtZSwgdGFyZ2V0KQotICAgIGYuY2xvc2UoKQotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jcnlwdHNldHVwL2NyeXB0c2V0dXBfMS43LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jcnlwdG8vY3J5cHRzZXR1cC9jcnlwdHNldHVwXzEuNy40LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2NyeXB0c2V0dXAvY3J5cHRzZXR1cF8xLjcuNC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY3J5cHRvL2NyeXB0c2V0dXAvY3J5cHRzZXR1cF8xLjcuNC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY3J5cHRvL2VuZ2luZS1wa2NzMTEvZW5naW5lLXBrY3MxMV8wLjIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNyeXB0by9lbmdpbmUtcGtjczExL2VuZ2luZS1wa2NzMTFfMC4yLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM3OWYzNQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNyeXB0by9lbmdpbmUtcGtjczExL2VuZ2luZS1wa2NzMTFfMC4yLjIuYmIKQEAgLTAsMCArMSwzMSBAQAorU1VNTUFSWSA9ICJBIFBLQ1MiCitERVNDUklQVElPTiA9ICJcCitFbmdpbmVfcGtjczExIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIGFuIGVuZ2luZSBmb3IgT3BlblNTTC4gSXQgY2FuIGJlIFwKK2xvYWRlZCB1c2luZyBjb2RlLCBjb25maWcgZmlsZSBvciBjb21tYW5kIGxpbmUgYW5kIHdpbGwgcGFzcyBhbnkgZnVuY3Rpb24gXAorY2FsbCBieSBvcGVuc3NsIHRvIGEgUEtDUyBjYXJkcyBhbmQgc29mdHdhcmUgZm9yIHVzaW5nIHNtYXJ0IGNhcmRzIGluIFBLQ1MiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vT3BlblNDL2VuZ2luZV9wa2NzMTEiCitTRUNUSU9OID0gIkRldmVsb3BtZW50L0xpYnJhcmllcyIKK0xJQ0VOU0UgPSAiTEdQTHYyLjErIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vc3JjL2VuZ2luZV9wa2NzMTEuaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTI2O21kNT05NzNhMTlmOGE2MTA1ZGUwNDdmMmFkZmJiZmMwNGMzMyIKK0RFUEVORFMgPSAib3BlbnNzbCBsaWJwMTEiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9PcGVuU0MvZW5naW5lX3BrY3MxMS5naXQiCitTUkNSRVYgPSAiMTMyZmNmMmM4YjMxOWY5ZjRiMmViZGM4ZGNiNTRmZjQ5NmRjMDUxOSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK0VYVFJBX09FQ09ORiA9ICJcCisgICAgLS1kaXNhYmxlLXN0YXRpYyBcCisgICAgLS1saWJkaXIgJHtsaWJkaXJ9L2VuZ2luZXMgXAorIgorCitkb19pbnN0YWxsX2FwcGVuZCAoKSB7CisgICAgcm0gLWYgJHtEfSR7bGliZGlyfS9lbmdpbmVzL2xpYnBrY3MxMS5sYQorfQorCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L2VuZ2luZXMvbGlicGtjczExJHtTT0xJQlNERVZ9IgorRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vZW5naW5lcy8uZGVidWcvIgorCitSREVQRU5EU18ke1BOfSArPSAib3BlbnNzbCBsaWJwMTEgb3BlbnNjIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJtY3J5cHQvbGlibWNyeXB0XzIuNS44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY3J5cHRvL2xpYm1jcnlwdC9saWJtY3J5cHRfMi41LjguYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlibWNyeXB0L2xpYm1jcnlwdF8yLjUuOC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY3J5cHRvL2xpYm1jcnlwdC9saWJtY3J5cHRfMi41LjguYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic29kaXVtL2xpYnNvZGl1bV8xLjAuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jcnlwdG8vbGlic29kaXVtL2xpYnNvZGl1bV8xLjAuMTEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic29kaXVtL2xpYnNvZGl1bV8xLjAuMTEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNyeXB0by9saWJzb2RpdW0vbGlic29kaXVtXzEuMC4xMS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wa2NzMTEtaGVscGVyL3BrY3MxMS1oZWxwZXJfMS4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNyeXB0by9wa2NzMTEtaGVscGVyL3BrY3MxMS1oZWxwZXJfMS4xMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wa2NzMTEtaGVscGVyL3BrY3MxMS1oZWxwZXJfMS4xMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY3J5cHRvL3BrY3MxMS1oZWxwZXIvcGtjczExLWhlbHBlcl8xLjExLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9sZXZlbGRiL2xldmVsZGIvMDAwMS1NYWtlZmlsZS1GaXgtcGFyYWxsZWwtYnVpbGQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbGV2ZWxkYi9sZXZlbGRiLzAwMDEtTWFrZWZpbGUtRml4LXBhcmFsbGVsLWJ1aWxkLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9sZXZlbGRiL2xldmVsZGIvMDAwMS1NYWtlZmlsZS1GaXgtcGFyYWxsZWwtYnVpbGQucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9sZXZlbGRiL2xldmVsZGIvMDAwMS1NYWtlZmlsZS1GaXgtcGFyYWxsZWwtYnVpbGQucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xldmVsZGIvbGV2ZWxkYi8wMDAxLWJ1aWxkX2RldGVjdF9wbGF0Zm9ybS1DaGVjay1mb3ItX19TU0U0XzJfXy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9sZXZlbGRiL2xldmVsZGIvMDAwMS1idWlsZF9kZXRlY3RfcGxhdGZvcm0tQ2hlY2stZm9yLV9fU1NFNF8yX18ucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xldmVsZGIvbGV2ZWxkYi8wMDAxLWJ1aWxkX2RldGVjdF9wbGF0Zm9ybS1DaGVjay1mb3ItX19TU0U0XzJfXy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL2xldmVsZGIvbGV2ZWxkYi8wMDAxLWJ1aWxkX2RldGVjdF9wbGF0Zm9ybS1DaGVjay1mb3ItX19TU0U0XzJfXy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGV2ZWxkYi9sZXZlbGRiLzAwMDItbWFrZWZpbGUtYnVpbGQtU0hBUkVEX01FTUVOVkxJQi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9sZXZlbGRiL2xldmVsZGIvMDAwMi1tYWtlZmlsZS1idWlsZC1TSEFSRURfTUVNRU5WTElCLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9sZXZlbGRiL2xldmVsZGIvMDAwMi1tYWtlZmlsZS1idWlsZC1TSEFSRURfTUVNRU5WTElCLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbGV2ZWxkYi9sZXZlbGRiLzAwMDItbWFrZWZpbGUtYnVpbGQtU0hBUkVEX01FTUVOVkxJQi5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGV2ZWxkYi9sZXZlbGRiX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9sZXZlbGRiL2xldmVsZGJfZ2l0LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9sZXZlbGRiL2xldmVsZGJfZ2l0LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbGV2ZWxkYi9sZXZlbGRiX2dpdC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJkYmkvbGliZGJpLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9saWJkYmkvbGliZGJpLmluYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJkYmkvbGliZGJpLmluYwpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL2xpYmRiaS9saWJkYmkuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmRiaS9saWJkYmlfMC45LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbGliZGJpL2xpYmRiaV8wLjkuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJkYmkvbGliZGJpXzAuOS4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbGliZGJpL2xpYmRiaV8wLjkuMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMS1JbnRlbFJERlBNYXRoTGliMjBVMS1DaGVjay1mb3ItX19ERUZJTkVEX3djaGFyX3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDEtSW50ZWxSREZQTWF0aExpYjIwVTEtQ2hlY2stZm9yLV9fREVGSU5FRF93Y2hhcl90LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLUludGVsUkRGUE1hdGhMaWIyMFUxLUNoZWNrLWZvci1fX0RFRklORURfd2NoYXJfdC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAxLUludGVsUkRGUE1hdGhMaWIyMFUxLUNoZWNrLWZvci1fX0RFRklORURfd2NoYXJfdC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAxLVRlbGwtc2NvbnMtdG8tdXNlLWJ1aWxkLXNldHRpbmdzLWZyb20tZW52aXJvbm1lbnQtdmEucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDEtVGVsbC1zY29ucy10by11c2UtYnVpbGQtc2V0dGluZ3MtZnJvbS1lbnZpcm9ubWVudC12YS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTAxZTk1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAxLVRlbGwtc2NvbnMtdG8tdXNlLWJ1aWxkLXNldHRpbmdzLWZyb20tZW52aXJvbm1lbnQtdmEucGF0Y2gKQEAgLTAsMCArMSw2NCBAQAorRnJvbSA1MzM2OGQzZjRhZGMwOWRkODQyMzRhOWFmMzE3NzFiY2Q4Y2EyNzU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU3ZlbiBFYmVuZmVsZCA8c3Zlbi5lYmVuZmVsZEBnbWFpbC5jb20+CitEYXRlOiBGcmksIDE1IEphbiAyMDE2IDIyOjQxOjI4ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFRlbGwgc2NvbnMgdG8gdXNlIGJ1aWxkIHNldHRpbmdzIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzCisKK1NpZ25lZC1vZmYtYnk6IFN2ZW4gRWJlbmZlbGQgPHN2ZW4uZWJlbmZlbGRAZ21haWwuY29tPgorLS0tCisgU0NvbnN0cnVjdCAgICAgICAgICAgICAgICB8IDggKysrKysrLS0KKyBzcmMvbW9uZ28vdXRpbC9TQ29uc2NyaXB0IHwgMiArKworIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitJbmRleDogZ2l0L1NDb25zdHJ1Y3QKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnaXQub3JpZy9TQ29uc3RydWN0CisrKysgZ2l0L1NDb25zdHJ1Y3QKK0BAIC01NDgsNiArNTQ4LDcgQEAgZGVmIHZhcmlhYmxlX2FyY2hfY29udmVydGVyKHZhbCk6CisgICAgICAgICAnYW1kNjQnOiAgJ3g4Nl82NCcsCisgICAgICAgICAnZW10NjQnOiAgICd4ODZfNjQnLAorICAgICAgICAgJ3g4Nic6ICAgICdpMzg2JywKKysgICAgICAgICdhYXJjaDY0JzogJ2FybTY0JywKKyAgICAgfQorICAgICB2YWwgPSB2YWwubG93ZXIoKQorIAorQEAgLTYyNyw3ICs2MjgsOCBAQCBlbnZfdmFycy5BZGQoCisgKQorIAorIGVudl92YXJzLkFkZCgnQ0MnLAorLSAgICBoZWxwPSdTZWxlY3QgdGhlIEMgY29tcGlsZXIgdG8gdXNlJykKKysgICAgaGVscD0nU2VsZWN0IHRoZSBDIGNvbXBpbGVyIHRvIHVzZScsCisrICAgIGRlZmF1bHQ9b3MuZ2V0ZW52KCdDQycpKQorIAorIGVudl92YXJzLkFkZCgnQ0NGTEFHUycsCisgICAgIGhlbHA9J1NldHMgZmxhZ3MgZm9yIHRoZSBDIGFuZCBDKysgY29tcGlsZXInLAorQEAgLTY0Nyw3ICs2NDksOCBAQCBlbnZfdmFycy5BZGQoJ0NQUFBBVEgnLAorICAgICBjb252ZXJ0ZXI9dmFyaWFibGVfc2hsZXhfY29udmVydGVyKQorIAorIGVudl92YXJzLkFkZCgnQ1hYJywKKy0gICAgaGVscD0nU2VsZWN0IHRoZSBDKysgY29tcGlsZXIgdG8gdXNlJykKKysgICAgaGVscD0nU2VsZWN0IHRoZSBDKysgY29tcGlsZXIgdG8gdXNlJywKKysgICAgZGVmYXVsdD1vcy5nZXRlbnYoJ0NYWCcpKQorIAorIGVudl92YXJzLkFkZCgnQ1hYRkxBR1MnLAorICAgICBoZWxwPSdTZXRzIGZsYWdzIGZvciB0aGUgQysrIGNvbXBpbGVyJywKK0BAIC04OTUsNiArODk4LDcgQEAgZW52RGljdCA9IGRpY3QoQlVJTERfUk9PVD1idWlsZERpciwKKyAgICAgICAgICAgICAgICApCisgCisgZW52ID0gRW52aXJvbm1lbnQodmFyaWFibGVzPWVudl92YXJzLCAqKmVudkRpY3QpCisrZW52LlByZXBlbmRFTlZQYXRoKCdQQVRIJywgb3MuZ2V0ZW52KCdQQVRIJykpCisgZGVsIGVudkRpY3QKKyAKKyBlbnYuQWRkTWV0aG9kKGVudl9vc19pc193cmFwcGVyLCAnVGFyZ2V0T1NJcycpCitJbmRleDogZ2l0L3NyYy9tb25nby91dGlsL1NDb25zY3JpcHQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnaXQub3JpZy9zcmMvbW9uZ28vdXRpbC9TQ29uc2NyaXB0CisrKysgZ2l0L3NyYy9tb25nby91dGlsL1NDb25zY3JpcHQKK0BAIC0yNzQsNiArMjc0LDggQEAgaWYgZW52WydNT05HT19BTExPQ0FUT1InXSA9PSAndGNtYWxsb2MnOgorICAgICAgICAgICAgICAgICAnTU9OR09fSEFWRV9HUEVSRlRPT0xTX1NJWkVfQ0xBU1NfU1RBVFMnCisgICAgICAgICAgICAgXQorICAgICAgICAgKQorKyAgICBpZiBub3QgdXNlX3N5c3RlbV92ZXJzaW9uX29mX2xpYnJhcnkoJ3ZhbGdyaW5kJyk6CisrICAgICAgICB0Y21zcEVudi5JbmplY3RUaGlyZFBhcnR5SW5jbHVkZVBhdGhzKCd2YWxncmluZCcpCisgCisgICAgIGlmIG5vdCB1c2Vfc3lzdGVtX3ZlcnNpb25fb2ZfbGlicmFyeSgndmFsZ3JpbmQnKToKKyAgICAgICAgICMgSW5jbHVkZSB2YWxncmluZCBzaW5jZSB0Y21hbGxvYyBkaXNhYmxlcyBpdHNlbGYgd2hpbGUgcnVubmluZyB1bmRlciB2YWxncmluZApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMS1Vc2UtX19HTElCQ19fLXRvLWNvbnRyb2wtdXNlLW9mLWdudV9nZXRfbGliY192ZXJzaW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1fX0dMSUJDX18tdG8tY29udHJvbC11c2Utb2YtZ251X2dldF9saWJjX3ZlcnNpb24ucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDEtVXNlLV9fR0xJQkNfXy10by1jb250cm9sLXVzZS1vZi1nbnVfZ2V0X2xpYmNfdmVyc2lvbi5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1fX0dMSUJDX18tdG8tY29udHJvbC11c2Utb2YtZ251X2dldF9saWJjX3ZlcnNpb24ucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvMDAwMS1Vc2UtbG9uZy1sb25nLWluc3RlYWQtb2YtaW50NjRfdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvMDAwMS1Vc2UtbG9uZy1sb25nLWluc3RlYWQtb2YtaW50NjRfdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODliMzAyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1sb25nLWxvbmctaW5zdGVhZC1vZi1pbnQ2NF90LnBhdGNoCkBAIC0wLDAgKzEsNjQgQEAKK0Zyb20gYTQ5NTE0ODlkNjQ5YzJiNjA5Y2JiODBmNmNmYjQ5ZmRjYWQ4YmQ0MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDIgU2VwIDIwMTcgMTA6MDM6MzcgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIGxvbmcgbG9uZyBpbnN0ZWFkIG9mIGludDY0X3QKKworRml4ZXMKK2Vycm9yOiBjYWxsIHRvIG1lbWJlciBmdW5jdGlvbiAnYXBwZW5kTnVtYmVyJyBpcyBhbWJpZ3VvdXMKK3NpbmNlIHRoaXMgZnVuY3Rpb24gZXhwZWN0cyBsb25nIGxvbmcgYXMgcGFyYW1ldGVyIGFuZCBub3QgaW50NjRfdAorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKyBzcmMvbW9uZ28vdXRpbC9wcm9jcGFyc2VyLmNwcCB8IDEwICsrKysrLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitJbmRleDogZ2l0L3NyYy9tb25nby91dGlsL3Byb2NwYXJzZXIuY3BwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2l0Lm9yaWcvc3JjL21vbmdvL3V0aWwvcHJvY3BhcnNlci5jcHAKKysrKyBnaXQvc3JjL21vbmdvL3V0aWwvcHJvY3BhcnNlci5jcHAKK0BAIC0yNjAsNyArMjYwLDcgQEAgU3RhdHVzIHBhcnNlUHJvY1N0YXQoY29uc3Qgc3RkOjp2ZWN0b3I8UworIAorICAgICAgICAgICAgICAgICAgICAgU3RyaW5nRGF0YSBzdHJpbmdWYWx1ZSgoKnBhcnRJdCkuYmVnaW4oKSwgKCpwYXJ0SXQpLmVuZCgpIC0gKCpwYXJ0SXQpLmJlZ2luKCkpOworIAorLSAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdmFsdWU7CisrICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgIHZhbHVlOworIAorICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nVmFsdWUsICZ2YWx1ZSkuaXNPSygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOworQEAgLTI3Miw3ICsyNzIsNyBAQCBTdGF0dXMgcGFyc2VQcm9jU3RhdChjb25zdCBzdGQ6OnZlY3RvcjxTCisgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgU3RyaW5nRGF0YSBzdHJpbmdWYWx1ZSgoKnBhcnRJdCkuYmVnaW4oKSwgKCpwYXJ0SXQpLmVuZCgpIC0gKCpwYXJ0SXQpLmJlZ2luKCkpOworIAorLSAgICAgICAgICAgICAgICB1aW50NjRfdCB2YWx1ZTsKKysgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbHVlOworIAorICAgICAgICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmdWYWx1ZSwgJnZhbHVlKS5pc09LKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKK0BAIC0zNjUsNyArMzY1LDcgQEAgU3RhdHVzIHBhcnNlUHJvY01lbUluZm8oY29uc3Qgc3RkOjp2ZWN0bworIAorICAgICAgICAgICAgIFN0cmluZ0RhdGEgc3RyaW5nVmFsdWUoKCpwYXJ0SXQpLmJlZ2luKCksICgqcGFydEl0KS5lbmQoKSk7CisgCistICAgICAgICAgICAgdWludDY0X3QgdmFsdWU7CisrICAgICAgICAgICAgbG9uZyBsb25nIHZhbHVlOworIAorICAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZ1ZhbHVlLCAmdmFsdWUpLmlzT0soKSkgeworICAgICAgICAgICAgICAgICB2YWx1ZSA9IDA7CitAQCAtNDI2LDcgKzQyNiw3IEBAIFN0YXR1cyBwYXJzZVByb2NEaXNrU3RhdHMoY29uc3Qgc3RkOjp2ZWMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0RhdGEgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEJTT05PYmpCdWlsZGVyKiBidWlsZGVyKSB7CisgICAgIGJvb2wgZm91bmRLZXlzID0gZmFsc2U7CistICAgIHN0ZDo6dmVjdG9yPHVpbnQ2NF90PiBzdGF0czsKKysgICAgc3RkOjp2ZWN0b3I8bG9uZyBsb25nPiBzdGF0czsKKyAgICAgc3RhdHMucmVzZXJ2ZShrRGlza0ZpZWxkQ291bnQpOworIAorICAgICB1c2luZyBzdHJpbmdfc3BsaXRfaXRlcmF0b3IgPSBib29zdDo6c3BsaXRfaXRlcmF0b3I8U3RyaW5nRGF0YTo6Y29uc3RfaXRlcmF0b3I+OworQEAgLTUwMSw3ICs1MDEsNyBAQCBTdGF0dXMgcGFyc2VQcm9jRGlza1N0YXRzKGNvbnN0IHN0ZDo6dmVjCisgCisgICAgICAgICAgICAgICAgIFN0cmluZ0RhdGEgc3RyaW5nVmFsdWUoKCpwYXJ0SXQpLmJlZ2luKCksICgqcGFydEl0KS5lbmQoKSk7CisgCistICAgICAgICAgICAgICAgIHVpbnQ2NF90IHZhbHVlOworKyAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWU7CisgCisgICAgICAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZ1ZhbHVlLCAmdmFsdWUpLmlzT0soKSkgeworICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMS1Vc2Utc3RyZXJyb3Jfci1vbmx5LW9uLWdsaWJjLXN5c3RlbXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDEtVXNlLXN0cmVycm9yX3Itb25seS1vbi1nbGliYy1zeXN0ZW1zLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1zdHJlcnJvcl9yLW9ubHktb24tZ2xpYmMtc3lzdGVtcy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1zdHJlcnJvcl9yLW9ubHktb24tZ2xpYmMtc3lzdGVtcy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMi1BZGQtYS1kZWZpbml0aW9uLWZvci10aGUtbWFjcm8tX19FTEZfTkFUSVZFX0NMQVNTLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAyLUFkZC1hLWRlZmluaXRpb24tZm9yLXRoZS1tYWNyby1fX0VMRl9OQVRJVkVfQ0xBU1MucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDItQWRkLWEtZGVmaW5pdGlvbi1mb3ItdGhlLW1hY3JvLV9fRUxGX05BVElWRV9DTEFTUy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAyLUFkZC1hLWRlZmluaXRpb24tZm9yLXRoZS1tYWNyby1fX0VMRl9OQVRJVkVfQ0xBU1MucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvMDAwMi1kX3N0YXRlLmNwcC1BZGQtbWlzc2luZy1kZXBlbmRlbm5jeS1vbi1sb2NhbF9zaGFyZGluLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAyLWRfc3RhdGUuY3BwLUFkZC1taXNzaW5nLWRlcGVuZGVubmN5LW9uLWxvY2FsX3NoYXJkaW4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM0ODhhZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvMDAwMi1kX3N0YXRlLmNwcC1BZGQtbWlzc2luZy1kZXBlbmRlbm5jeS1vbi1sb2NhbF9zaGFyZGluLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0Zyb20gNTc1OTg3OGU1ZDI3OGYxMWExMDYzZThmY2NkMWU2YjdiNTRjYWFkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBXZWQsIDIgQXVnIDIwMTcgMTY6MjU6MzcgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSCAyLzJdIGRfc3RhdGUuY3BwOiBBZGQgbWlzc2luZyBkZXBlbmRlbm5jeSBvbgorIGxvY2FsX3NoYXJkaW5nX2luZm8KKworRml4ZXMKK3wgc3JjL21vbmdvL3MvZF9zdGF0ZS5jcHA6ODE6IGVycm9yOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvICdtb25nbzo6ZW5hYmxlTG9jYWxTaGFyZGluZ0luZm8obW9uZ286OlNlcnZpY2VDb250ZXh0Kiwgc3RkOjpmdW5jdGlvbjxib29sIChtb25nbzo6T3BlcmF0aW9uQ29udGV4dCosIHN0ZDo6X19jeHgxMTo6YmFzaWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QmKT4pJworCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCisgc3JjL21vbmdvL3MvU0NvbnNjcmlwdCB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitJbmRleDogZ2l0L3NyYy9tb25nby9zL1NDb25zY3JpcHQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnaXQub3JpZy9zcmMvbW9uZ28vcy9TQ29uc2NyaXB0CisrKysgZ2l0L3NyYy9tb25nby9zL1NDb25zY3JpcHQKK0BAIC0zMTcsNSArMzE3LDYgQEAgZW52LkxpYnJhcnkoCisgICAgICAgICAiJEJVSUxEX0RJUi9tb25nby9kYi9zL3NoYXJkaW5nIiwKKyAgICAgICAgICIkQlVJTERfRElSL21vbmdvL2V4ZWN1dG9yL25ldHdvcmtfaW50ZXJmYWNlX2ZhY3RvcnkiLAorICAgICAgICAgIiRCVUlMRF9ESVIvbW9uZ28vcy9jbGllbnQvc2hhcmRfbG9jYWwiLAorKyAgICAgICAgIiRCVUlMRF9ESVIvbW9uZ28vcy9sb2NhbF9zaGFyZGluZ19pbmZvIiwKKyAgICAgXSwKKyApCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAzLUNvbmRpdGlvbmFsaXplLWdsaWJjLXNwZWNpZmljLXN0cmVycm9yX3IucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDMtQ29uZGl0aW9uYWxpemUtZ2xpYmMtc3BlY2lmaWMtc3RyZXJyb3Jfci5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMy1Db25kaXRpb25hbGl6ZS1nbGliYy1zcGVjaWZpYy1zdHJlcnJvcl9yLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDMtQ29uZGl0aW9uYWxpemUtZ2xpYmMtc3BlY2lmaWMtc3RyZXJyb3Jfci5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwNC13aXJlZHRpZ2VyLURpc2FibGUtc3RydG91cS1vbi1tdXNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDA0LXdpcmVkdGlnZXItRGlzYWJsZS1zdHJ0b3VxLW9uLW11c2wucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDQtd2lyZWR0aWdlci1EaXNhYmxlLXN0cnRvdXEtb24tbXVzbC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDA0LXdpcmVkdGlnZXItRGlzYWJsZS1zdHJ0b3VxLW9uLW11c2wucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiL2FybTY0LXN1cHBvcnQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiL2FybTY0LXN1cHBvcnQucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiL2FybTY0LXN1cHBvcnQucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvYXJtNjQtc3VwcG9ydC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvZGlzYWJsZS1ody1jcmMzMi1vbi1hcm02NC1zMzkweC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvZGlzYWJsZS1ody1jcmMzMi1vbi1hcm02NC1zMzkweC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvZGlzYWJsZS1ody1jcmMzMi1vbi1hcm02NC1zMzkweC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi9kaXNhYmxlLWh3LWNyYzMyLW9uLWFybTY0LXMzOTB4LnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGJfZ2l0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiM2ZmM2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiX2dpdC5iYgpAQCAtMCwwICsxLDc2IEBACitTVU1NQVJZID0gIm1vbmdvZGIiCitMSUNFTlNFID0gIkFHUEwtMy4wICYgQXBhY2hlLTIuMCAmIFpsaWIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9HTlUtQUdQTC0zLjAudHh0O21kNT03M2YxZWIyMDUxN2M1NWJmOTQ5M2I3ZGQ2ZTQ4MDc4OCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9BUEFDSEUtMi4wLnR4dDttZDU9M2I4M2VmOTYzODdmMTQ2NTVmYzg1NGRkYzNjNmJkNTciCisKK0RFUEVORFMgPSAib3BlbnNzbCBsaWJwY3JlIGxpYnBjYXAgemxpYiBweXRob24gYm9vc3QiCisKK2luaGVyaXQgc2NvbnMgZG9zMnVuaXggc2l0ZWluZm8KKworUFYgPSAiMy40LjEzK2dpdCR7U1JDUFZ9IgorU1JDUkVWID0gImZiZGVmMmNjYzUzZTBmY2M5YWZiNTcwMDYzNjMzZDk5MmIyYWFlNDIiCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbW9uZ29kYi9tb25nby5naXQ7YnJhbmNoPXYzLjQgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1UZWxsLXNjb25zLXRvLXVzZS1idWlsZC1zZXR0aW5ncy1mcm9tLWVudmlyb25tZW50LXZhLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDItZF9zdGF0ZS5jcHAtQWRkLW1pc3NpbmctZGVwZW5kZW5uY3ktb24tbG9jYWxfc2hhcmRpbi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLVVzZS1sb25nLWxvbmctaW5zdGVhZC1vZi1pbnQ2NF90LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtVXNlLV9fR0xJQkNfXy10by1jb250cm9sLXVzZS1vZi1nbnVfZ2V0X2xpYmNfdmVyc2lvbi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLVVzZS1zdHJlcnJvcl9yLW9ubHktb24tZ2xpYmMtc3lzdGVtcy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAyLUFkZC1hLWRlZmluaXRpb24tZm9yLXRoZS1tYWNyby1fX0VMRl9OQVRJVkVfQ0xBU1MucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMy1Db25kaXRpb25hbGl6ZS1nbGliYy1zcGVjaWZpYy1zdHJlcnJvcl9yLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2FybTY0LXN1cHBvcnQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1JbnRlbFJERlBNYXRoTGliMjBVMS1DaGVjay1mb3ItX19ERUZJTkVEX3djaGFyX3QucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZGlzYWJsZS1ody1jcmMzMi1vbi1hcm02NC1zMzkweC5wYXRjaCBcCisgICAgICAgICAgICIKK1NSQ19VUklfYXBwZW5kX2xpYmMtbXVzbCA9IlwKKyAgICAgICAgICAgZmlsZTovLzAwMDQtd2lyZWR0aWdlci1EaXNhYmxlLXN0cnRvdXEtb24tbXVzbC5wYXRjaCBcCisgICAgICAgICAgICIKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKKyMgV2lyZWR0aWdlciBzdXBwb3J0cyBvbmx5IDY0LWJpdCBwbGF0Zm9ybXMKK1BBQ0tBR0VDT05GSUdfeDg2LTY0ID8/PSAidGNtYWxsb2Mgd2lyZWR0aWdlciIKK1BBQ0tBR0VDT05GSUdfYWFyY2g2NCA/Pz0gInRjbWFsbG9jIHdpcmVkdGlnZXIiCitQQUNLQUdFQ09ORklHID8/PSAidGNtYWxsb2MiCisjIGdwZXJmdG9vbHMgY29tcGlsYXRpb24gZmFpbHMgZm9yIGFybSBiZWxvdyB2NyBiZWNhdXNlIG9mIG1pc3Npbmcgc3VwcG9ydCBvZgorIyBkbWIgb3BlcmF0aW9uLiBTbyB3ZSB1c2Ugc3lzdGVtLWFsbG9jYXRvciBpbnN0ZWFkIG9mIHRjbWFsbG9jCitQQUNLQUdFQ09ORklHX3JlbW92ZV9hcm12NiA9ICJ0Y21hbGxvYyIKK1BBQ0tBR0VDT05GSUdfcmVtb3ZlX2xpYmMtbXVzbCA9ICJ0Y21hbGxvYyIKKworI3N0ZDo6Y3VycmVudF9leGNlcHRpb24gaXMgdW5kZWZpbmVkIGZvciBhcm0gPCB2NgorQ09NUEFUSUJMRV9NQUNISU5FX2FybXY0ID0gIighLiphcm12NCkuKiIKK0NPTVBBVElCTEVfTUFDSElORV9hcm12NSA9ICIoIS4qYXJtdjUpLioiCitDT01QQVRJQkxFX01BQ0hJTkVfYXJtdjdhID0gIighLiphcm12N2EpLioiCitDT01QQVRJQkxFX01BQ0hJTkVfYXJtdjd2ZSA9ICIoIS4qYXJtdjd2ZSkuKiIKK0NPTVBBVElCTEVfTUFDSElORV9taXBzNjQgPSAiKCEuKm1pcHM2NCkuKiIKK0NPTVBBVElCTEVfTUFDSElORV9wb3dlcnBjID0gIighLipwcGMpLioiCisKK1BBQ0tBR0VDT05GSUdbdGNtYWxsb2NdID0gIi0tdXNlLXN5c3RlbS10Y21hbGxvYywtLWFsbG9jYXRvcj1zeXN0ZW0sZ3BlcmZ0b29scywiCitQQUNLQUdFQ09ORklHW3dpcmVkdGlnZXJdID0gIi0td2lyZWR0aWdlcj1vbiwtLXdpcmVkdGlnZXI9b2ZmLCwiCisKK0VYVFJBX09FU0NPTlMgPSAiLS1wcmVmaXg9JHtEfSR7cHJlZml4fSBcCisgICAgICAgICAgICAgICAgIExJQlBBVEg9JHtTVEFHSU5HX0xJQkRJUn0gXAorICAgICAgICAgICAgICAgICBMSU5LRkxBR1M9JyR7TERGTEFHU30nIFwKKyAgICAgICAgICAgICAgICAgQ1hYRkxBR1M9JyR7Q1hYRkxBR1N9JyBcCisgICAgICAgICAgICAgICAgIFRBUkdFVF9BUkNIPSR7VEFSR0VUX0FSQ0h9IFwKKyAgICAgICAgICAgICAgICAgLS1zc2wgXAorICAgICAgICAgICAgICAgICAtLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzIFwKKyAgICAgICAgICAgICAgICAgLS11c2Utc3lzdGVtLXBjcmUgXAorICAgICAgICAgICAgICAgICAtLXVzZS1zeXN0ZW0temxpYiBcCisgICAgICAgICAgICAgICAgIC0tanMtZW5naW5lPW5vbmUgXAorICAgICAgICAgICAgICAgICAtLW5vc3RyaXAgXAorICAgICAgICAgICAgICAgICAtLWVuZGlhbj0ke0BvZS51dGlscy5jb25kaXRpb25hbCgnU0lURUlORk9fRU5ESUFOTkVTUycsICdsZScsICdsaXR0bGUnLCAnYmlnJywgZCl9IFwKKyAgICAgICAgICAgICAgICAgJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfSBcCisgICAgICAgICAgICAgICAgIG1vbmdvZCBtb25nb3MiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworICAgICAgICAjIHRlc3RzIHVzZSBoZXggZmxvYXRzLCBub3Qgc3VwcG9ydGVkIGluIHBsYWluIEMrKworICAgICAgICBzZWQgLWUgJ3N8LXN0ZD1jKysxMXwtc3RkPWdudSsrMTF8ZycgLWkgJHtTfS9TQ29uc3RydWN0Cit9CitzY29uc19kb19jb21waWxlKCkgeworICAgICAgICAke1NUQUdJTkdfQklORElSX05BVElWRX0vc2NvbnMgJHtQQVJBTExFTF9NQUtFfSAke0VYVFJBX09FU0NPTlN9IHx8IFwKKyAgICAgICAgZGllICJzY29ucyBidWlsZCBleGVjdXRpb24gZmFpbGVkLiIKK30KKworc2NvbnNfZG9faW5zdGFsbCgpIHsKKyAgICAgICAgJHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L3Njb25zIGluc3RhbGwgJHtFWFRSQV9PRVNDT05TfXx8IFwKKyAgICAgICAgZGllICJzY29ucyBpbnN0YWxsIGV4ZWN1dGlvbiBmYWlsZWQuIgorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiLW5hdGl2ZV81LjUuNTcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi1uYXRpdmVfNS41LjU5LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGItbmF0aXZlXzUuNS41Ny5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGItbmF0aXZlXzUuNS41OS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5ZTcwNTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi5pbmMKQEAgLTAsMCArMSwyOTcgQEAKK1NVTU1BUlkgPSAiQSByb2J1c3QsIHNjYWxhYmxlLCBhbmQgcmVsaWFibGUgU1FMIHNlcnZlciIKK0hPTUVQQUdFID0gImh0dHA6Ly9tYXJpYWRiLm9yZyIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKKworU1JDX1VSSSA9ICJodHRwczovL2Rvd25sb2Fkcy5tYXJpYWRiLm9yZy9mLyR7QlB9L3NvdXJjZS8ke0JQfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vZml4LWNtYWtlLW1vZHVsZS1wYXRoLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3JlbW92ZS1iYWQtcGF0aC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9maXgtbXlzcWxjbGllbnQtci12ZXJzaW9uLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL215LmNuZiBcCisgICAgICAgICAgIGZpbGU6Ly9teXNxbGQuc2VydmljZSBcCisgICAgICAgICAgIGZpbGU6Ly9pbnN0YWxsX2RiLnNlcnZpY2UgXAorICAgICAgICAgICBmaWxlOi8vaW5zdGFsbF9kYiBcCisgICAgICAgICAgIGZpbGU6Ly9teXNxbC1zeXN0ZW1kLXN0YXJ0IFwKKyAgICAgICAgICAgZmlsZTovL2NvbmZpZ3VyZS5jbWFrZS1maXgtdmFsZ3JpbmQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZml4LWEtYnVpbGRpbmctZmFpbHVyZS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9jaGFuZ2UtY2MtdG8tY2MtdmVyc2lvbi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWRpc2FibGUtdWNvbnRleHQtb24tbXVzbC5wYXRjaCBcCisgICAgICAgICAgIgorCitTUkNfVVJJW21kNXN1bV0gPSAiM2NlYzRhZmMwNmI0Njg2ODdlZjU3NmM5MDE0OGQxMGQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzMyNjljZTIwYjQ1YjE3NzIzOWZkMWUzZDZkOTQyOGE5NDEzMTcxMWYxMjc1OGViZjVmNjUyMjIyNzhiYjExMCIKKworUyA9ICIke1dPUktESVJ9L21hcmlhZGItJHtQVn0iCisKK0JJTkNPTkZJR19HTE9CID0gIm15c3FsX2NvbmZpZyIKKworaW5oZXJpdCBjbWFrZSBnZXR0ZXh0IGJpbmNvbmZpZyB1cGRhdGUtcmMuZCB1c2VyYWRkIHN5c3RlbWQKKworSU5JVFNDUklQVF9QQUNLQUdFUyA9ICIke1BOfS1zZXJ2ZXIgJHtQTn0tc2V0dXBkYiIKK0lOSVRTQ1JJUFRfTkFNRV8ke1BOfS1zZXJ2ZXIgPSAibXlzcWxkIgorSU5JVFNDUklQVF9QQVJBTVNfJHtQTn0tc2VydmVyID89ICJzdGFydCA0NSA1IC4gc3RvcCA0NSAwIDYgMSAuIgorCitVU0VSQUREX1BBQ0tBR0VTID0gIiR7UE59LXNlcnZlciIKK1VTRVJBRERfUEFSQU1fJHtQTn0tc2VydmVyID0gIi0tc3lzdGVtIC0taG9tZS1kaXIgL3Zhci9teXNxbCAtZyBteXNxbCAtLXNoZWxsIC9iaW4vZmFsc2UgbXlzcWwiCitHUk9VUEFERF9QQVJBTV8ke1BOfS1zZXJ2ZXIgPSAiLS1zeXN0ZW0gbXlzcWwiCisKK0lOSVRTQ1JJUFRfTkFNRV8ke1BOfS1zZXR1cGRiID0gImluc3RhbGxfZGIiCitJTklUU0NSSVBUX1BBUkFNU18ke1BOfS1zZXR1cGRiID89ICJkZWZhdWx0cyA0NCA0NCIKKworU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfS1zZXJ2ZXIgJHtQTn0tc2V0dXBkYiIKK1NZU1RFTURfU0VSVklDRV8ke1BOfS1zZXJ2ZXIgPSAibXlzcWxkLnNlcnZpY2UiCitTWVNURU1EX0FVVE9fRU5BQkxFXyR7UE59LXNlcnZlciA/PSAiZGlzYWJsZSIKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59LXNldHVwZGIgPSAiaW5zdGFsbF9kYi5zZXJ2aWNlIgorU1lTVEVNRF9BVVRPX0VOQUJMRV8ke1BOfS1zZXR1cGRiID89ICJlbmFibGUiCitBTExPV19FTVBUWV8ke1BOfS1zZXR1cGRiID89ICIxIgorRklMRVNfJHtQTn0tc2V0dXBkYiA9ICIke3N5c2NvbmZkaXJ9L2luaXQuZC9pbnN0YWxsX2RiIgorCitFWFRSQV9PRU1BS0UgPSAiJ0dFTl9MRVhfSEFTSD0ke1NUQUdJTkdfQklORElSX05BVElWRX0vZ2VuX2xleF9oYXNoJyIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3BhbScsIGQpfSBzZXR1cGRiIgorUEFDS0FHRUNPTkZJR19jbGFzcy1uYXRpdmUgPSAiIgorUEFDS0FHRUNPTkZJR1twYW1dID0gIiwtRFdJVEhPVVRfQVVUSF9QQU09VFJVRSxsaWJwYW0iCitQQUNLQUdFQ09ORklHW3ZhbGdyaW5kXSA9ICItRFdJVEhfVkFMR1JJTkQ9VFJVRSwtRFdJVEhfVkFMR1JJTkQ9RkFMU0UsdmFsZ3JpbmQiCitQQUNLQUdFQ09ORklHW2xpYmVkaXRdID0gIi1ETElCRURJVF9JTlRFUkZBQ0U9VFJVRSwtRExJQkVESVRfSU5URVJGQUNFPUZBTFNFLGxpYmVkaXQiCitQQUNLQUdFQ09ORklHW2tyYjVdID0gIiwgLGtyYjUiCitQQUNLQUdFQ09ORklHW3NldHVwZGJdID0gIiwgLCwke1BOfS1zZXR1cGRiIgorCisjIE1hcmlhREIgZG9lc24ndCBsaW5rIHByb3Blcmx5IHdpdGggZ29sZAorIyBodHRwczovL21hcmlhZGIuYXRsYXNzaWFuLm5ldC9icm93c2UvTURFVi01OTgyCitUQVJHRVRfQ0ZMQUdTICs9ICItZnVzZS1sZD1iZmQiCisKK0JVSUxEX0NGTEFHUyArPSAiLWZ1c2UtbGQ9YmZkIgorQlVJTERfQ1hYRkxBR1MgKz0gIi1mdXNlLWxkPWJmZCIKKworRVhUUkFfT0VDTUFLRSA9ICItRFdJVEhfRU1CRURERURfU0VSVkVSPU9OIFwKKyAgICAgICAgICAgICAgICAgLURXSVRIX0pFTUFMTE9DPW5vIFwKKyAgICAgICAgICAgICAgICAgLURXSVRIT1VUX1RPS1VEQj1UUlVFIFwKKyAgICAgICAgICAgICAgICAgLURDTUFLRV9ESVNBQkxFX0ZJTkRfUEFDS0FHRV9Cb29zdD1UUlVFIFwKKyAgICAgICAgICAgICAgICAgLURHUk9GRj1GQUxTRSBcCisgICAgICAgICAgICAgICAgIC1ETlJPRkY9RkFMU0UgXAorICAgICAgICAgICAgICAgICAtREVOQUJMRV9EVFJBQ0U9RkFMU0UgXAorICAgICAgICAgICAgICAgICAtRFdJVEhfUElDPU9OIFwKKyAgICAgICAgICAgICAgICAgLURJTlNUQUxMX0xBWU9VVD1SUE0gXAorICAgICAgICAgICAgICAgICAtRElOU1RBTExfRE9DRElSOlBBVEg9JHtkYXRhZGlyfS9kb2MvJHtCUE59IFwKKyAgICAgICAgICAgICAgICAgLURJTlNUQUxMX0xJQkRJUjpQQVRIPSR7YmFzZWxpYn0gXAorICAgICAgICAgICAgICAgICAtRElOU1RBTExfUExVR0lORElSOlBBVEg9JHtiYXNlbGlifS9wbHVnaW4gXAorICAgICAgICAgICAgICAgICAtRElOU1RBTExfU1lTQ09ORkRJUjpQQVRIPSR7c3lzY29uZmRpcn0gXAorICAgICAgICAgICAgICAgICAtRE1ZU1FMX0RBVEFESVI6UEFUSD0vdmFyL215c3FsIFwKKyAgICAgICAgICAgICAgICAgLURDQVRfRVhFQ1VUQUJMRT1gd2hpY2ggY2F0YCBcCisgICAgICAgICAgICAgICAgIC1EQ01BS0VfQVI6RklMRVBBVEg9JHtBUn0iCisKKyMgV2l0aCBOaW5qYSBpdCBmYWlscyB3aXRoOgorIyBtYWtlOiAqKiogTm8gcnVsZSB0byBtYWtlIHRhcmdldCBgaW5zdGFsbCcuICBTdG9wLgorT0VDTUFLRV9HRU5FUkFUT1IgPSAiVW5peCBNYWtlZmlsZXMiCisKK0FSTV9JTlNUUlVDVElPTl9TRVRfYXJtdjQgPSAiYXJtIgorQVJNX0lOU1RSVUNUSU9OX1NFVF9hcm12NSA9ICJhcm0iCisKK2RvX2NvbmZpZ3VyZV9hcHBlbmQoKSB7CisgICAgIyBoYW5kbGUgZGlzdHJvcyB3aXRoIGRpZmZlcmVudCB2YWx1ZXMgb2YgJHtsaWJleGVjZGlyfQorICAgIGxpYmV4ZWNkaXIyPWBlY2hvICR7bGliZXhlY2Rpcn0gfCBzZWQgLWUgJ3MrL3Vzci8rK2cnYAorICAgIHNlZCAtaSAtZSAiczovbGliZXhlYzovJGxpYmV4ZWNkaXIyOmciICR7U30vc2NyaXB0cy9teXNxbF9pbnN0YWxsX2RiLnNoCisgICAgc2VkIC1pIC1lICJzOm15c3FsZCBsaWJleGVjOm15c3FsZCAkbGliZXhlY2RpcjI6ZyIgJHtTfS9zY3JpcHRzL215c3FsX2luc3RhbGxfZGIuc2gKKyAgICBzZWQgLWkgLWUgInM6L2xpYmV4ZWM6LyRsaWJleGVjZGlyMjpnIiAke1N9L3NjcmlwdHMvbXlzcWxkX3NhZmUuc2gKK30KKworZG9fZ2VuZXJhdGVfdG9vbGNoYWluX2ZpbGVfYXBwZW5kX2NsYXNzLW5hdGl2ZSAoKSB7CisgICAgIyBJZiB0aGVzZSBhcmUgc2V0IGNtYWtlIHdpbGwgYXNzdW1lIHdlJ3JlIGNyb3NzLWNvbXBpbGluZywgd2hpY2ggd2lsbAorICAgICMgcmVzdWx0IGluIGNlcnRhaW4gdGhpbmdzIHdlIHdhbnQgYmVpbmcgZGlzYWJsZWQKKyAgICBzZWQgLWkgIi9zZXQoIENNQUtFX1NZU1RFTV9OQU1FL2QiICR7V09SS0RJUn0vdG9vbGNoYWluLmNtYWtlCisgICAgc2VkIC1pICIvc2V0KCBDTUFLRV9TWVNURU1fUFJPQ0VTU09SL2QiICR7V09SS0RJUn0vdG9vbGNoYWluLmNtYWtlCit9CisKK2RvX2NvbXBpbGVfcHJlcGVuZF9jbGFzcy10YXJnZXQgKCkgeworICAgICMgVGhlc2UgbmVlZCB0byBiZSBpbi10cmVlIG9yIG1ha2Ugd2lsbCB0aGluayB0aGV5IG5lZWQgdG8gYmUgYnVpbHQsCisgICAgIyBhbmQgc2luY2Ugd2UncmUgY3Jvc3MtY29tcGlsaW5nIHRoYXQgaXMgZGlzYWJsZWQKKyAgICBjcCAke1NUQUdJTkdfQklORElSX05BVElWRX0vY29tcF9lcnIgJHtTfS9leHRyYQorICAgIGNwICR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9jb21wX3NxbCAke1N9L3NjcmlwdHMKKworICAgIGlmIFsgIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2tyYjUnLCAneWVzJywgJ25vJywgZCl9IiA9ICJubyIgXTsgdGhlbgorICAgICAgICBpZiAhIFsgLWUgJHtCfS9pbmNsdWRlL29wZW5zc2wva3NzbC5oIF0gOyB0aGVuCisgICAgICAgICAgICBta2RpciAtcCAke0J9L2luY2x1ZGUvb3BlbnNzbAorICAgICAgICAgICAgZWNobyAiI2lmbmRlZiBLU1NMX0giID4ke0J9L2luY2x1ZGUvb3BlbnNzbC9rc3NsLmgKKyAgICAgICAgICAgIGVjaG8gIiNkZWZpbmUgS1NTTF9IIiA+PiR7Qn0vaW5jbHVkZS9vcGVuc3NsL2tzc2wuaAorICAgICAgICAgICAgZWNobyAiI2luY2x1ZGUgPG9wZW5zc2wvb3BlbnNzbGNvbmYuaD4iPj4ke0J9L2luY2x1ZGUvb3BlbnNzbC9rc3NsLmgKKyAgICAgICAgICAgIGVjaG8gIiNlbmRpZiIgPj4ke0J9L2luY2x1ZGUvb3BlbnNzbC9rc3NsLmgKKyAgICAgICAgZmkKKyAgICBmaQorfQorCitTWVNST09UX1BSRVBST0NFU1NfRlVOQ1MgKz0gIm1hcmlhZGJfc3lzcm9vdF9wcmVwcm9jZXNzIgorCisjIFdlIG5lZWQgdG8gYXBwZW5kIHRoaXMgc28gaXQgcnVucyAqYWZ0ZXIqIGJpbmNvbmZpZydzIHByZXByb2Nlc3MgZnVuY3Rpb24KKyMKKyMgV2UgcmVhbGx5IGRvbid0IGNhcmUgZXhhY3RseSB3aGF0IHRoZSBkaXJlY3RvcmllcyB3ZXJlIHNldCB0byBvcmlnaW5hbGx5LgorIyBwbHVnaW5kaXIgaXMgbm90IGZpeGVkLCBidXQgd2UgZG9uJ3QgY3JlYXRlIGFueSBwbHVnaW5zLgorIworbWFyaWFkYl9zeXNyb290X3ByZXByb2Nlc3MgKCkgeworICAgIHNlZCAtaSAtZXMsXnBrZ2luY2x1ZGVkaXI9LioscGtnaW5jbHVkZWRpcj1cJyR7U1RBR0lOR19JTkNESVJ9L215c3FsXCcsICR7U1lTUk9PVF9ERVNURElSfSR7YmluZGlyX2Nyb3Nzc2NyaXB0c30vbXlzcWxfY29uZmlnCisgICAgc2VkIC1pIC1lcyxecGtnbGliZGlyPS4qLHBrZ2xpYmRpcj1cJyR7U1RBR0lOR19MSUJESVJ9XCcsICR7U1lTUk9PVF9ERVNURElSfSR7YmluZGlyX2Nyb3Nzc2NyaXB0c30vbXlzcWxfY29uZmlnCit9CisKK2RvX2luc3RhbGwoKSB7CisgICAgb2VfcnVubWFrZSAnREVTVERJUj0ke0R9JyBpbnN0YWxsCisKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9teS5jbmYgJHtEfS8ke3N5c2NvbmZkaXJ9LworICAgIGluc3RhbGwgLW0gMDc1NSAke1dPUktESVJ9L2luc3RhbGxfZGIgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZC8KKyAgICBtdiAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kL215c3FsICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQvbXlzcWxkCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vbXlzcWxkLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9pbnN0YWxsX2RiLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBzZWQgLWkgLWUgJ3MsQEJJTkRJUkAsJHtiaW5kaXJ9LGcnIC1lICdzLEBQUkVGSVhALCR7cHJlZml4fSxnJyAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9teXNxbGQuc2VydmljZSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vaW5zdGFsbF9kYi5zZXJ2aWNlCisKKyAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgorICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQKKyAgICAgICAgZWNobyAiZiAvdmFyL2xvZy9teXNxbGQuZXJyIDA2NDAgbXlzcWwgbXlzcWwgLSIgXAorICAgICAgICAgICAgPiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kLzk5LW15c3FsZC5jb25mCisgICAgZmkKKyAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0KKyAgICBpbnN0YWxsIC1tIDc1NSAke1dPUktESVJ9L215c3FsLXN5c3RlbWQtc3RhcnQgJHtEfSR7YmluZGlyfQorICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vZG9jLyR7UE59CisgICAgaWYgWyAtZiAke0R9JHtkYXRhZGlyfS9kb2MvUkVBRE1FIF07IHRoZW4KKyAgICAgICAgbXYgJHtEfSR7ZGF0YWRpcn0vZG9jL1JFQURNRSAke0R9JHtkYXRhZGlyfS9kb2MvJHtQTn0vCisgICAgZmkKK30KKworUEFDS0FHRVMgPSAiJHtQTn0tZGJnICR7UE59IFwKKyAgICBsaWJteXNxbGNsaWVudC1yIGxpYm15c3FsY2xpZW50LXItZGV2IGxpYm15c3FsY2xpZW50LXItc3RhdGljZGV2IGxpYm15c3FsY2xpZW50LXItZGJnIFwKKyAgICBsaWJteXNxbGNsaWVudCBsaWJteXNxbGNsaWVudC1kZXYgbGlibXlzcWxjbGllbnQtc3RhdGljZGV2IGxpYm15c3FsY2xpZW50LWRiZyBcCisgICAgbGlibXlzcWxkIGxpYm15c3FsZC1kZXYgJHtQTn0tY2xpZW50ICR7UE59LXNlcnZlciAke1BOfS1zZXR1cGRiICR7UE59LWxlZnRvdmVycyIKK0NPTkZGSUxFU18ke1BOfS1zZXJ2ZXIgKz0gIiR7c3lzY29uZmRpcn0vbXkuY25mICR7c3lzY29uZmRpcn0vbXkuY25mLmQvc2VydmVyLmNuZiIKK0NPTkZGSUxFU18ke1BOfS1jbGllbnQgKz0gIiR7c3lzY29uZmRpcn0vbXkuY25mLmQvbXlzcWwtY2xpZW50cy5jbmYiCitDT05GRklMRVNfbGlibXlzcWxjbGllbnQgKz0gIiR7c3lzY29uZmRpcn0vbXkuY25mLmQvY2xpZW50LmNuZiIKKworRklMRVNfJHtQTn0gPSAiICIKK1JERVBFTkRTXyR7UE59ID0gIiR7UE59LWNsaWVudCAke1BOfS1zZXJ2ZXIiCitBTExPV19FTVBUWV8ke1BOfSA9ICIxIgorCitSREVQRU5EU18ke1BOfS1jbGllbnQgPSAicGVybCBwZXJsLW1vZHVsZS1nZXRvcHQtbG9uZyBwZXJsLW1vZHVsZS1maWxlLXRlbXAgXAorICAgIHBlcmwtbW9kdWxlLWZjbnRsIHBlcmwtbW9kdWxlLXN5cy1ob3N0bmFtZSBwZXJsLW1vZHVsZS1pcGMtb3BlbjMgXAorICAgIHBlcmwtbW9kdWxlLWV4cG9ydGVyIgorUkRFUEVORFNfJHtQTn0tc2VydmVyID0gInBlcmwgcGVybC1tb2R1bGUtZ2V0b3B0LWxvbmcgcGVybC1tb2R1bGUtZGF0YS1kdW1wZXIgXAorICAgIHBlcmwtbW9kdWxlLWZpbGUtYmFzZW5hbWUgcGVybC1tb2R1bGUtZmlsZS1wYXRoIHBlcmwtbW9kdWxlLXN5cy1ob3N0bmFtZSBcCisgICAgcGVybC1tb2R1bGUtZmlsZS1jb3B5IHBlcmwtbW9kdWxlLWZpbGUtdGVtcCBwZXJsLW1vZHVsZS1wb3NpeCBcCisgICAgJHtQTn0tY2xpZW50IGxpYmRiaS1wZXJsIGxpYmRiZC1teXNxbC1wZXJsIgorUkRFUEVORFNfJHtQTn0tbGVmdG92ZXJzID0gInBlcmwgcGVybC1tb2R1bGUtY3dkIHBlcmwtbW9kdWxlLWJlbmNobWFyayBwZXJsLW1vZHVsZS1nZXRvcHQtbG9uZyBcCisgICAgcGVybC1tb2R1bGUtcG9zaXggcGVybC1tb2R1bGUtZGF0YS1kdW1wZXIgcGVybC1tb2R1bGUtc2lndHJhcCBwZXJsLW1vZHVsZS10aHJlYWRzIFwKKyAgICBwZXJsLW1vZHVsZS10aHJlYWRzLXNoYXJlZCBwZXJsLW1vZHVsZS1pby1zb2NrZXQgcGVybC1tb2R1bGUtc3lzLWhvc3RuYW1lIHBlcmwtbW9kdWxlLWZpbGUtY29weSBcCisgICAgcGVybC1tb2R1bGUtZmlsZS1zcGVjIHBlcmwtbW9kdWxlLWZpbGUtZmluZCBwZXJsLW1vZHVsZS1maWxlLWJhc2VuYW1lIHBlcmwtbW9kdWxlLWZpbGUtcGF0aCBcCisgICAgcGVybC1tb2R1bGUtY29uc3RhbnQgcGVybC1tb2R1bGUtbGliIHBlcmwtbW9kdWxlLWZpbGUtdGVtcCBwZXJsLW1vZHVsZS1maWxlLXNwZWMtZnVuY3Rpb25zIFwKKyAgICBwZXJsLW1vZHVsZS1pby1zb2NrZXQtaW5ldCBwZXJsLW1vZHVsZS1pby1zZWxlY3QiCitSREVQRU5EU18ke1BOfS1zZXR1cGRiID0gImNvcmV1dGlscyIKKworIyBBbGxvdyBvbGQgY29kZSB0byBsaW5rIHRvIHRoZSBiYWNrd2FyZCBjb21wYXRpYmxlIGxpYnJhcnkKK1JERVBFTkRTX2xpYm15c3FsY2xpZW50LWRldiA9ICJsaWJteXNxbGNsaWVudC1yLWRldiIKKworRklMRVNfbGlibXlzcWxjbGllbnQgPSAiXAorICAgICR7bGliZGlyfS9saWJteXNxbGNsaWVudC5zby4qIFwKKyAgICAke3N5c2NvbmZkaXJ9L215LmNuZi5kL2NsaWVudC5jbmYiCitGSUxFU19saWJteXNxbGNsaWVudC1kZXYgPSAiIFwKKyAgICAke2luY2x1ZGVkaXJ9L215c3FsLyBcCisgICAgJHtsaWJkaXJ9L2xpYm15c3FsY2xpZW50LnNvIFwKKyAgICAke3N5c2NvbmZkaXJ9L2FjbG9jYWwgXAorICAgICR7YmluZGlyfS9teXNxbF9jb25maWciCitGSUxFU19saWJteXNxbGNsaWVudC1zdGF0aWNkZXYgPSAiXAorICAgICR7bGliZGlyfS8qLmEiCitGSUxFU19saWJteXNxbGNsaWVudC1kYmcgPSAiJHtsaWJkaXJ9L3BsdWdpbi8uZGVidWcvIFwKKyAgICAke2RhdGFkaXJ9L215c3FsLXRlc3QvbGliL015L1NhZmVQcm9jZXNzLy5kZWJ1Zy9teV9zYWZlX3Byb2Nlc3MiCisKKyMgQXZvaWQgd2FybmluZ3MgYWJvdXQgaGFfeHRyYWRiLnNvLjAuMC4wIGFuZCBoYV9pbm5vZGJfcGx1Z2luLnNvLjAuMC4wCisjIHdoaWNoIGFyZSBpbnRlbnRpb25hbGx5IG5vbi1QSUMgb24gMzItYml0IHg4NiAoc2VlIGUuZy4KKyMgc3RvcmFnZS94dHJhZGIvcGx1Zy5pbiBpbiB0aGUgc291cmNlKQorSU5TQU5FX1NLSVBfbGlibXlzcWxjbGllbnRfYXBwZW5kX3g4NiA9ICIgdGV4dHJlbCIKKworRklMRVNfbGlibXlzcWxjbGllbnQtciA9ICIke2xpYmRpcn0vbGlibXlzcWxjbGllbnRfci5zby4qIgorRklMRVNfbGlibXlzcWxjbGllbnQtci1kZXYgPSAiXAorICAgICR7bGliZGlyfS9saWJteXNxbGNsaWVudF9yLnNvIgorRklMRVNfbGlibXlzcWxjbGllbnQtci1zdGF0aWNkZXYgPSAiJHtsaWJkaXJ9L2xpYm15c3FsY2xpZW50X3IuYSIKK0ZJTEVTX2xpYm15c3FsY2xpZW50LXItZGJnID0gIiR7bGliZGlyfS9wbHVnaW4vLmRlYnVnbGlibXlzcWxjbGllbnRfci5zby4qIgorCitGSUxFU19saWJteXNxbGQgPSAiXAorICAgICR7bGliZGlyfS9saWJteXNxbGQuc28uKiIKK0ZJTEVTX2xpYm15c3FsZC1kZXYgPSAiXAorICAgICR7bGliZGlyfS9saWJteXNxbGQuc28iCisKK0ZJTEVTXyR7UE59LWNsaWVudCA9ICJcCisgICAgJHtiaW5kaXJ9L215aXNhbV9mdGR1bXAgXAorICAgICR7YmluZGlyfS9teXNxbCBcCisgICAgJHtiaW5kaXJ9L215c3FsX2NsaWVudF90ZXN0IFwKKyAgICAke2JpbmRpcn0vbXlzcWxfY2xpZW50X3Rlc3RfZW1iZWRkZWQgXAorICAgICR7YmluZGlyfS9teXNxbF9maW5kX3Jvd3MgXAorICAgICR7YmluZGlyfS9teXNxbF9maXhfZXh0ZW5zaW9ucyBcCisgICAgJHtiaW5kaXJ9L215c3FsX3dhaXRwaWQgXAorICAgICR7YmluZGlyfS9teXNxbGFjY2VzcyBcCisgICAgJHtiaW5kaXJ9L215c3FsYWRtaW4gXAorICAgICR7YmluZGlyfS9teXNxbGJ1ZyBcCisgICAgJHtiaW5kaXJ9L215c3FsY2hlY2sgXAorICAgICR7YmluZGlyfS9teXNxbGR1bXAgXAorICAgICR7YmluZGlyfS9teXNxbGR1bXBzbG93IFwKKyAgICAke2JpbmRpcn0vbXlzcWxpbXBvcnQgXAorICAgICR7YmluZGlyfS9teXNxbHNob3cgXAorICAgICR7YmluZGlyfS9teXNxbHNsYXAgXAorICAgICR7YmluZGlyfS9teXNxbHRlc3RfZW1iZWRkZWQgXAorICAgICR7bGliZXhlY2Rpcn0vbXlzcWxtYW5hZ2VyIFwKKyAgICAke3N5c2NvbmZkaXJ9L215LmNuZi5kL215c3FsLWNsaWVudHMuY25mIgorCitGSUxFU18ke1BOfS1zZXJ2ZXIgPSAiXAorICAgICR7YmluZGlyfS9jb21wX2VyciBcCisgICAgJHtiaW5kaXJ9L2lzYW1jaGsgXAorICAgICR7YmluZGlyfS9pc2FtbG9nIFwKKyAgICAke2JpbmRpcn0vbXNxbDJteXNxbCBcCisgICAgJHtiaW5kaXJ9L215X3ByaW50X2RlZmF1bHRzIFwKKyAgICAke2JpbmRpcn0vbXlpc2FtY2hrIFwKKyAgICAke2JpbmRpcn0vbXlpc2FtbG9nIFwKKyAgICAke2JpbmRpcn0vbXlpc2FtcGFjayBcCisgICAgJHtiaW5kaXJ9L215c3FsX2NvbnZlcnRfdGFibGVfZm9ybWF0IFwKKyAgICAke2JpbmRpcn0vbXlzcWxfZml4X3ByaXZpbGVnZV90YWJsZXMgXAorICAgICR7YmluZGlyfS9teXNxbF9pbnN0YWxsX2RiIFwKKyAgICAke2JpbmRpcn0vbXlzcWxfc2VjdXJlX2luc3RhbGxhdGlvbiBcCisgICAgJHtiaW5kaXJ9L215c3FsX3NldHBlcm1pc3Npb24gXAorICAgICR7YmluZGlyfS9teXNxbC1zeXN0ZW1kLXN0YXJ0IFwKKyAgICAke2JpbmRpcn0vbXlzcWxfdHppbmZvX3RvX3NxbCBcCisgICAgJHtiaW5kaXJ9L215c3FsX3VwZ3JhZGUgXAorICAgICR7YmluZGlyfS9teXNxbF9wbHVnaW4gXAorICAgICR7YmluZGlyfS9teXNxbF96YXAgXAorICAgICR7YmluZGlyfS9teXNxbGJpbmxvZyBcCisgICAgJHtiaW5kaXJ9L215c3FsZF9tdWx0aSBcCisgICAgJHtiaW5kaXJ9L215c3FsZF9zYWZlIFwKKyAgICAke2JpbmRpcn0vbXlzcWxkX3NhZmVfaGVscGVyIFwKKyAgICAke2JpbmRpcn0vbXlzcWxob3Rjb3B5IFwKKyAgICAke2JpbmRpcn0vbXlzcWx0ZXN0IFwKKyAgICAke2JpbmRpcn0vbmRiX2RlbGV0ZV9hbGwgXAorICAgICR7YmluZGlyfS9uZGJfZGVzYyBcCisgICAgJHtiaW5kaXJ9L25kYl9kcm9wX2luZGV4IFwKKyAgICAke2JpbmRpcn0vbmRiX2Ryb3BfdGFibGUgXAorICAgICR7YmluZGlyfS9uZGJfbWdtIFwKKyAgICAke2JpbmRpcn0vbmRiX3Jlc3RvcmUgXAorICAgICR7YmluZGlyfS9uZGJfc2VsZWN0X2FsbCBcCisgICAgJHtiaW5kaXJ9L25kYl9zZWxlY3RfY291bnQgXAorICAgICR7YmluZGlyfS9uZGJfc2hvd190YWJsZXMgXAorICAgICR7YmluZGlyfS9uZGJfd2FpdGVyIFwKKyAgICAke2JpbmRpcn0vcGFja19pc2FtIFwKKyAgICAke2JpbmRpcn0vcGVycm9yIFwKKyAgICAke2JpbmRpcn0vcmVwbGFjZSBcCisgICAgJHtiaW5kaXJ9L3Jlc29sdmVfc3RhY2tfZHVtcCBcCisgICAgJHtiaW5kaXJ9L3Jlc29sdmVpcCBcCisgICAgJHtsaWJleGVjZGlyfS9teXNxbGQgXAorICAgICR7c2JpbmRpcn0vbXlzcWxkIFwKKyAgICAke3NiaW5kaXJ9L25kYl9jcGNkIFwKKyAgICAke3NiaW5kaXJ9L25kYmQgXAorICAgICR7c2JpbmRpcn0vbmRiX21nbWQgXAorICAgICR7bGliZGlyfS9wbHVnaW4vKi5zbyBcCisgICAgJHtkYXRhZGlyfS9teXNxbC8gXAorICAgICR7bG9jYWxzdGF0ZWRpcn0vbXlzcWwvIFwKKyAgICAke3N5c2NvbmZkaXJ9L2luaXQuZC9teXNxbGQgXAorICAgICR7c3lzY29uZmRpcn0vbXkuY25mIFwKKyAgICAke3N5c2NvbmZkaXJ9L215LmNuZi5kL3NlcnZlci5jbmYgXAorICAgICR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZCIKKworREVTQ1JJUFRJT05fJHtQTn0tbGVmdG92ZXJzID0gInVucGFja2FnZWQgYW5kIHByb2JhYmx5IHVubmVlZGVkIGZpbGVzIGZvciAke1BOfSIKK0ZJTEVTXyR7UE59LWxlZnRvdmVycyA9ICIvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiLzAwMDEtZGlzYWJsZS11Y29udGV4dC1vbi1tdXNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvMDAwMS1kaXNhYmxlLXVjb250ZXh0LW9uLW11c2wucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi8wMDAxLWRpc2FibGUtdWNvbnRleHQtb24tbXVzbC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvMDAwMS1kaXNhYmxlLXVjb250ZXh0LW9uLW11c2wucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9jaGFuZ2UtY2MtdG8tY2MtdmVyc2lvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2NoYW5nZS1jYy10by1jYy12ZXJzaW9uLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvY2hhbmdlLWNjLXRvLWNjLXZlcnNpb24ucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2NoYW5nZS1jYy10by1jYy12ZXJzaW9uLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvY29uZmlndXJlLmNtYWtlLWZpeC12YWxncmluZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2NvbmZpZ3VyZS5jbWFrZS1maXgtdmFsZ3JpbmQucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9jb25maWd1cmUuY21ha2UtZml4LXZhbGdyaW5kLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9jb25maWd1cmUuY21ha2UtZml4LXZhbGdyaW5kLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvZml4LWEtYnVpbGRpbmctZmFpbHVyZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2ZpeC1hLWJ1aWxkaW5nLWZhaWx1cmUucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9maXgtYS1idWlsZGluZy1mYWlsdXJlLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9maXgtYS1idWlsZGluZy1mYWlsdXJlLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvZml4LWNtYWtlLW1vZHVsZS1wYXRoLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvZml4LWNtYWtlLW1vZHVsZS1wYXRoLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvZml4LWNtYWtlLW1vZHVsZS1wYXRoLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9maXgtY21ha2UtbW9kdWxlLXBhdGgucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2ZpeC1teXNxbGNsaWVudC1yLXZlcnNpb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9maXgtbXlzcWxjbGllbnQtci12ZXJzaW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1MTllNDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9maXgtbXlzcWxjbGllbnQtci12ZXJzaW9uLnBhdGNoCkBAIC0wLDAgKzEsMTYwIEBACitGcm9tIDZkYjJhNjA2MTk2ZmIzOGE2ZDEwNmRjNDA5ZWVlMWNiOWE0MGE0NDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBUb3IgRGlkcmlrc2VuIDx0b3IuZGlkcmlrc2VuQG9yYWNsZS5jb20+CitEYXRlOiBNb24sIDI0IEp1biAyMDEzIDE3OjE1OjM1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIEJ1ZyMxNjgwOTA1NSBNWVNRTCA1LjYgQU5EIDUuNyBTVElMTCBVU0UgTElCTVlTUUxDTElFTlQuU08uMTgKKworV2l0aCB0aGlzIHBhdGNoLCB0aGUgbGlibXlzcWwvIGRpcmVjdG9yeSBjb250YWluczoKK2xpYm15c3FsY2xpZW50LmEKK2xpYm15c3FsY2xpZW50X3IuYSAtPiBsaWJteXNxbGNsaWVudC5hCitsaWJteXNxbGNsaWVudF9yLnNvIC0+IGxpYm15c3FsY2xpZW50LnNvKgorbGlibXlzcWxjbGllbnRfci5zby4xOCAtPiBsaWJteXNxbGNsaWVudC5zby4xOCoKK2xpYm15c3FsY2xpZW50X3Iuc28uMTguMS4wIC0+IGxpYm15c3FsY2xpZW50LnNvLjE4LjEuMCoKK2xpYm15c3FsY2xpZW50LnNvIC0+IGxpYm15c3FsY2xpZW50LnNvLjE4KgorbGlibXlzcWxjbGllbnQuc28uMTggLT4gbGlibXlzcWxjbGllbnQuc28uMTguMS4wKgorbGlibXlzcWxjbGllbnQuc28uMTguMS4wKgorCitUaGlzIGZpeGVzIGxpYm15c3FsY2xpZW50X3Igc3ltbGlua3MgcG9pbnRpbmcgdG8gdGhlIHVudmVyc2lvbmVkCitsaWJteXNxbGNsaWVudC5zbyBzeW1saW5rIChsZWFkaW5nIHRvIHBhY2thZ2UgUUEgZXJyb3JzIHNpbmNlIHRoZQorbGlibXlzcWxjbGllbnQtciBwYWNrYWdlIGVuZHMgdXAgZGVwZW5kaW5nIG9uIGxpYm15c3FsY2xpZW50LWRldikuCisKK0JvcnJvd2VkIGZyb20gTXlTUUwgNS42IHRyZWUgYXQgaHR0cHM6Ly9naXRodWIuY29tL3BlcmNvbmEvbXlzcWwvCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBQYXVsIEVnZ2xldG9uIDxwYXVsLmVnZ2xldG9uQGxpbnV4LmludGVsLmNvbT4KKworLS0tCisgY21ha2UvaW5zdGFsbF9tYWNyb3MuY21ha2UgfCAyNSArKysrKysrKysrKysrKystLS0tLS0tLS0tCisgbGlibXlzcWwvQ01ha2VMaXN0cy50eHQgICAgfCAzNCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NtYWtlL2luc3RhbGxfbWFjcm9zLmNtYWtlIGIvY21ha2UvaW5zdGFsbF9tYWNyb3MuY21ha2UKK2luZGV4IGI4ZWZkZjguLmEwZDBlNjggMTAwNjQ0CistLS0gYS9jbWFrZS9pbnN0YWxsX21hY3Jvcy5jbWFrZQorKysrIGIvY21ha2UvaW5zdGFsbF9tYWNyb3MuY21ha2UKK0BAIC0xLDQgKzEsNCBAQAorLSMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDExLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKyMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEzLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICMgCisgIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKK0BAIC0xNjcsMjggKzE2NywzMyBAQCBFTkRGVU5DVElPTigpCisgCisgCisgIyBJbnN0YWxsIHN5bWJvbGljIGxpbmsgdG8gQ01ha2UgdGFyZ2V0LiAKKy0jIHRoZSBsaW5rIGlzIGNyZWF0ZWQgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRhcmdldAorLSMgYW5kIGV4dGVuc2lvbiB3aWxsIGJlIHRoZSBzYW1lIGFzIGZvciB0YXJnZXQgZmlsZS4KKy1NQUNSTyhJTlNUQUxMX1NZTUxJTksgbGlua25hbWUgdGFyZ2V0IGRlc3RpbmF0aW9uIGNvbXBvbmVudCkKKysjIFdlIGRvICdjZCBwYXRoOyBsbiAtcyB0YXJnZXRfbmFtZSBsaW5rX25hbWUnCisrIyBXZSBhbHNvIGFkZCBhbiBJTlNUQUxMIHRhcmdldCBmb3IgIiR7cGF0aH0vJHtsaW5rX25hbWV9IgorK01BQ1JPKElOU1RBTExfU1lNTElOSyB0YXJnZXQgdGFyZ2V0X25hbWUgbGlua19uYW1lIGRlc3RpbmF0aW9uIGNvbXBvbmVudCkKKyBJRihVTklYKQorICAgR0VUX1RBUkdFVF9QUk9QRVJUWShsb2NhdGlvbiAke3RhcmdldH0gTE9DQVRJT04pCisgICBHRVRfRklMRU5BTUVfQ09NUE9ORU5UKHBhdGggJHtsb2NhdGlvbn0gUEFUSCkKKy0gIEdFVF9GSUxFTkFNRV9DT01QT05FTlQobmFtZSAke2xvY2F0aW9ufSBOQU1FKQorLSAgU0VUKG91dHB1dCAke3BhdGh9LyR7bGlua25hbWV9KQorKyAgTUVTU0FHRShTVEFUVVMgInRhcmdldCAke3RhcmdldH0iKQorKyAgTUVTU0FHRShTVEFUVVMgImxpbmtfbmFtZSAke2xpbmtfbmFtZX0iKQorKyAgTUVTU0FHRShTVEFUVVMgInRhcmdldF9uYW1lICR7dGFyZ2V0X25hbWV9IikKKysgIE1FU1NBR0UoU1RBVFVTICJwYXRoICR7cGF0aH0iKQorKyAgTUVTU0FHRShTVEFUVVMgIiIpCisrCisrICBTRVQob3V0cHV0ICR7cGF0aH0vJHtsaW5rX25hbWV9KQorICAgQUREX0NVU1RPTV9DT01NQU5EKAorICAgICBPVVRQVVQgJHtvdXRwdXR9CisgICAgIENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSBBUkdTIC1FIHJlbW92ZSAtZiAke291dHB1dH0KKyAgICAgQ09NTUFORCAke0NNQUtFX0NPTU1BTkR9IEFSR1MgLUUgY3JlYXRlX3N5bWxpbmsgCistICAgICAgJHtuYW1lfSAKKy0gICAgICAke2xpbmtuYW1lfQorKyAgICAgICR7dGFyZ2V0X25hbWV9IAorKyAgICAgICR7bGlua19uYW1lfQorICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke3BhdGh9CisgICAgIERFUEVORFMgJHt0YXJnZXR9CisgICAgICkKKyAgIAorLSAgQUREX0NVU1RPTV9UQVJHRVQoc3ltbGlua18ke2xpbmtuYW1lfQorKyAgQUREX0NVU1RPTV9UQVJHRVQoc3ltbGlua18ke2xpbmtfbmFtZX0KKyAgICAgQUxMCisgICAgIERFUEVORFMgJHtvdXRwdXR9KQorLSAgU0VUX1RBUkdFVF9QUk9QRVJUSUVTKHN5bWxpbmtfJHtsaW5rbmFtZX0gUFJPUEVSVElFUyBDTEVBTl9ESVJFQ1RfT1VUUFVUIDEpCisrICBTRVRfVEFSR0VUX1BST1BFUlRJRVMoc3ltbGlua18ke2xpbmtfbmFtZX0gUFJPUEVSVElFUyBDTEVBTl9ESVJFQ1RfT1VUUFVUIDEpCisgICBJRihDTUFLRV9HRU5FUkFUT1IgTUFUQ0hFUyAiWGNvZGUiKQorICAgICAjIEZvciBYY29kZSwgcmVwbGFjZSBwcm9qZWN0IGNvbmZpZyB3aXRoIGluc3RhbGwgY29uZmlnCisgICAgIFNUUklORyhSRVBMQUNFICIke0NNQUtFX0NGR19JTlRESVJ9IiAKK2RpZmYgLS1naXQgYS9saWJteXNxbC9DTWFrZUxpc3RzLnR4dCBiL2xpYm15c3FsL0NNYWtlTGlzdHMudHh0CitpbmRleCBiZTU3NjBmLi45NjI4NmZmIDEwMDY0NAorLS0tIGEvbGlibXlzcWwvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYm15c3FsL0NNYWtlTGlzdHMudHh0CitAQCAtNDMzLDYgKzQzMywxMiBAQCBJRihNU1ZDKQorICBJTlNUQUxMX0RFQlVHX1RBUkdFVChjbGllbnRsaWIgREVTVElOQVRJT04gJHtJTlNUQUxMX0xJQkRJUn0vZGVidWcpCisgRU5ESUYoKQorIAorK01BQ1JPKEdFVF9UQVJHRVRfTkFNRSB0YXJnZXQgb3V0X25hbWUpCisrICBHRVRfVEFSR0VUX1BST1BFUlRZKGxvY2F0aW9uICR7dGFyZ2V0fSBMT0NBVElPTikKKysgIEdFVF9GSUxFTkFNRV9DT01QT05FTlQobmFtZSAke2xvY2F0aW9ufSBOQU1FKQorKyAgU0VUKCR7b3V0X25hbWV9ICR7bmFtZX0pCisrRU5ETUFDUk8oKQorKworIElGKFVOSVgpCisgICBNQUNSTyhHRVRfVkVSU0lPTkVEX0xJQk5BTUUgTElCTkFNRSBFWFRFTlNJT04gVkVSU0lPTiBPVVROQU1FKQorICAgICBTRVQoRE9UX1ZFUlNJT04gIi4ke1ZFUlNJT059IikKK0BAIC00NDUsNyArNDUxLDEzIEBAIElGKFVOSVgpCisgICAgICAgU0VUKCR7T1VUTkFNRX0gJHtMSUJOQU1FfSR7RVhURU5TSU9OfSR7RE9UX1ZFUlNJT059KQorICAgICBFTkRJRigpIAorICAgRU5ETUFDUk8oKQorLSAgSU5TVEFMTF9TWU1MSU5LKCR7Q01BS0VfU1RBVElDX0xJQlJBUllfUFJFRklYfW15c3FsY2xpZW50X3IuYSBteXNxbGNsaWVudCAke0lOU1RBTExfTElCRElSfSBEZXZlbG9wbWVudCkKKytFTkRJRigpCisrCisrSUYoVU5JWCkKKysgIEdFVF9UQVJHRVRfTkFNRShteXNxbGNsaWVudCBsaWJfbmFtZSkKKysgIElOU1RBTExfU1lNTElOSyhteXNxbGNsaWVudAorKyAgICAke2xpYl9uYW1lfSAke0NNQUtFX1NUQVRJQ19MSUJSQVJZX1BSRUZJWH1teXNxbGNsaWVudF9yLmEKKysgICAgJHtJTlNUQUxMX0xJQkRJUn0gRGV2ZWxvcG1lbnQpCisgRU5ESUYoKQorIAorIElGKE5PVCBESVNBQkxFX1NIQVJFRCkKK0BAIC00NTYsMTAgKzQ2OCw5IEBAIElGKE5PVCBESVNBQkxFX1NIQVJFRCkKKyAgICAgIyBsaWJ0b29sIGNvbXBhdGFiaWxpdHkKKyAgICAgSUYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiRnJlZUJTRCIgT1IgQVBQTEUpCisgICAgICAgU0VUKE9TX1NIQVJFRF9MSUJfVkVSU0lPTiAiJHtTSEFSRURfTElCX01BSk9SX1ZFUlNJT059IikKKy0gICAgRUxTRUlGKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIkhQLVVYIikKKy0gICAgICBTRVQoT1NfU0hBUkVEX0xJQl9WRVJTSU9OICIke1NIQVJFRF9MSUJfTUFKT1JfVkVSU0lPTn0uMCIpCisgICAgIEVMU0UoKQorLSAgICAgIFNFVChPU19TSEFSRURfTElCX1ZFUlNJT04gIiR7U0hBUkVEX0xJQl9NQUpPUl9WRVJTSU9OfS4wLjAiKQorKyAgICAgIFNFVChPU19TSEFSRURfTElCX1ZFUlNJT04KKysgICAgICAgICIke1NIQVJFRF9MSUJfTUFKT1JfVkVSU0lPTn0uJHtTSEFSRURfTElCX01JTk9SX1ZFUlNJT059LjAiKQorICAgICBFTkRJRigpCisgICAgICMgTmFtZSBvZiBzaGFyZWQgbGlicmFyeSBpcyBteXNxbGNsaWVudCBvbiBVbml4CisgICAgIFNFVF9UQVJHRVRfUFJPUEVSVElFUyhsaWJteXNxbCBQUk9QRVJUSUVTIAorQEAgLTQ4Miw4ICs0OTMsMTMgQEAgSUYoTk9UIERJU0FCTEVfU0hBUkVEKQorICAgICAgICIke0NNQUtFX1NIQVJFRF9MSUJSQVJZX1NVRkZJWH0iCisgICAgICAgIiIKKyAgICAgICBsaW5rbmFtZSkKKy0gICAgSU5TVEFMTF9TWU1MSU5LKCR7bGlua25hbWV9IGxpYm15c3FsICR7SU5TVEFMTF9MSUJESVJ9IFNoYXJlZExpYnJhcmllcykKKy0gICAgU0VUKE9TX1NIQVJFRF9MSUJfU1lNTElOS1MgIiR7U0hBUkVEX0xJQl9NQUpPUl9WRVJTSU9OfSIgIiR7T1NfU0hBUkVEX0xJQl9WRVJTSU9OfSIpCisrICAgIEdFVF9UQVJHRVRfTkFNRShsaWJteXNxbCBsaWJfbmFtZSkKKysgICAgR0VUX0ZJTEVOQU1FX0NPTVBPTkVOVChsaWJfbmFtZV93ZSAke2xpYl9uYW1lfSBOQU1FX1dFKQorKyAgICBJTlNUQUxMX1NZTUxJTksobGlibXlzcWwKKysgICAgICAke2xpYl9uYW1lfSAke2xpbmtuYW1lfQorKyAgICAgICR7SU5TVEFMTF9MSUJESVJ9IFNoYXJlZExpYnJhcmllcykKKysgICAgU0VUKE9TX1NIQVJFRF9MSUJfU1lNTElOS1MKKysgICAgICAiJHtTSEFSRURfTElCX01BSk9SX1ZFUlNJT059IiAiJHtPU19TSEFSRURfTElCX1ZFUlNJT059IikKKyAgICAgTElTVChSRU1PVkVfRFVQTElDQVRFUyBPU19TSEFSRURfTElCX1NZTUxJTktTKQorICAgICBGT1JFQUNIKHZlciAke09TX1NIQVJFRF9MSUJfU1lNTElOS1N9KQorICAgICAgIEdFVF9WRVJTSU9ORURfTElCTkFNRSgKK0BAIC00OTEsNyArNTA3LDExIEBAIElGKE5PVCBESVNBQkxFX1NIQVJFRCkKKyAgICAgICAgICIke0NNQUtFX1NIQVJFRF9MSUJSQVJZX1NVRkZJWH0iCisgICAgICAgICAiJHt2ZXJ9IgorICAgICAgICAgbGlua25hbWUpCistICAgICAgSU5TVEFMTF9TWU1MSU5LKCR7bGlua25hbWV9IGxpYm15c3FsICR7SU5TVEFMTF9MSUJESVJ9IFNoYXJlZExpYnJhcmllcykKKysgICAgICBHRVRfVkVSU0lPTkVEX0xJQk5BTUUoCisrICAgICAgICAke2xpYl9uYW1lX3dlfSAiJHtDTUFLRV9TSEFSRURfTElCUkFSWV9TVUZGSVh9IiAiJHt2ZXJ9IiBsaWJfbmFtZV92ZXIpCisrICAgICAgSU5TVEFMTF9TWU1MSU5LKGxpYm15c3FsCisrICAgICAgICAke2xpYl9uYW1lX3Zlcn0gJHtsaW5rbmFtZX0KKysgICAgICAgICR7SU5TVEFMTF9MSUJESVJ9IFNoYXJlZExpYnJhcmllcykKKyAgICAgRU5ERk9SRUFDSCgpCisgICBFTkRJRigpCisgRU5ESUYoKQorLS0gCisyLjAuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvaW5zdGFsbF9kYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2luc3RhbGxfZGIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9pbnN0YWxsX2RiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9pbnN0YWxsX2RiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvaW5zdGFsbF9kYi5zZXJ2aWNlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvaW5zdGFsbF9kYi5zZXJ2aWNlCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvaW5zdGFsbF9kYi5zZXJ2aWNlCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9pbnN0YWxsX2RiLnNlcnZpY2UKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9teS5jbmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9teS5jbmYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9teS5jbmYKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL215LmNuZgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL215c3FsLXN5c3RlbWQtc3RhcnQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9teXNxbC1zeXN0ZW1kLXN0YXJ0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvbXlzcWwtc3lzdGVtZC1zdGFydApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvbXlzcWwtc3lzdGVtZC1zdGFydApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL215c3FsZC5zZXJ2aWNlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvbXlzcWxkLnNlcnZpY2UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9teXNxbGQuc2VydmljZQpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvbXlzcWxkLnNlcnZpY2UKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9yZW1vdmUtYmFkLXBhdGgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9yZW1vdmUtYmFkLXBhdGgucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9yZW1vdmUtYmFkLXBhdGgucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL3JlbW92ZS1iYWQtcGF0aC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiXzUuNS41Ny5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiXzUuNS41OS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiXzUuNS41Ny5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGJfNS41LjU5LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL215c3FsLXB5dGhvbl8xLjIuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9teXNxbC1weXRob25fMS4yLjUuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbXlzcWwtcHl0aG9uXzEuMi41LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbXlzcWwtcHl0aG9uXzEuMi41LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9maWxlcy8wMDAxLVVzZS1wa2ctY29uZmlnLWZvci1saWJ4bWwyLWRldGVjdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzLzAwMDEtVXNlLXBrZy1jb25maWctZm9yLWxpYnhtbDItZGV0ZWN0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlMmE2MGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9maWxlcy8wMDAxLVVzZS1wa2ctY29uZmlnLWZvci1saWJ4bWwyLWRldGVjdGlvbi5wYXRjaApAQCAtMCwwICsxLDQwIEBACitGcm9tIGQ1MmUzMzBiZTg5NWJiOGM1ZjBmYjNlMjg4NDc2NmFjYmQ5NDJhODUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQaGlsaXAgQmFsaXN0ZXIgPHBoaWxpcEBiYWxpc3Rlci5vcmc+CitEYXRlOiBUdWUsIDEgSnVsIDIwMTQgMDk6NDA6NDQgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIHBrZy1jb25maWcgZm9yIGxpYnhtbDIgZGV0ZWN0aW9uLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCisKK3htbDItY29uZmlnIGRvZXMgbm90IHdvcmsuIFVzZSBwa2djb25maWcgdG8gc2V0IENQUEZMQUdTIGFuZCBMSUJTLgorCitTaWduZWQtb2ZmLWJ5OiBQaGlsaXAgQmFsaXN0ZXIgPHBoaWxpcEBiYWxpc3Rlci5vcmc+CistLS0KKyBjb25maWd1cmUuaW4gfCAxNSArKy0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKKworSW5kZXg6IHBvc3RncmVzcWwtOS40LjE1L2NvbmZpZ3VyZS5pbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHBvc3RncmVzcWwtOS40LjE1Lm9yaWcvY29uZmlndXJlLmluCisrKysgcG9zdGdyZXNxbC05LjQuMTUvY29uZmlndXJlLmluCitAQCAtNzU5LDE5ICs3NTksOCBAQCBQR0FDX0FSR19CT09MKHdpdGgsIGxpYnhtbCwgbm8sIFtidWlsZCB3CisgICAgICAgICAgICAgICBbQUNfREVGSU5FKFtVU0VfTElCWE1MXSwgMSwgW0RlZmluZSB0byAxIHRvIGJ1aWxkIHdpdGggWE1MIHN1cHBvcnQuICgtLXdpdGgtbGlieG1sKV0pXSkKKyAKKyBpZiB0ZXN0ICIkd2l0aF9saWJ4bWwiID0geWVzIDsgdGhlbgorLSAgQUNfQ0hFQ0tfUFJPR1MoWE1MMl9DT05GSUcsIHhtbDItY29uZmlnKQorLSAgaWYgdGVzdCAtbiAiJFhNTDJfQ09ORklHIjsgdGhlbgorLSAgICBmb3IgcGdhY19vcHRpb24gaW4gYCRYTUwyX0NPTkZJRyAtLWNmbGFnc2A7IGRvCistICAgICAgY2FzZSAkcGdhY19vcHRpb24gaW4KKy0gICAgICAgIC1JKnwtRCopIENQUEZMQUdTPSIkQ1BQRkxBR1MgJHBnYWNfb3B0aW9uIjs7CistICAgICAgZXNhYworLSAgICBkb25lCistICAgIGZvciBwZ2FjX29wdGlvbiBpbiBgJFhNTDJfQ09ORklHIC0tbGlic2A7IGRvCistICAgICAgY2FzZSAkcGdhY19vcHRpb24gaW4KKy0gICAgICAgIC1MKikgTERGTEFHUz0iJExERkxBR1MgJHBnYWNfb3B0aW9uIjs7CistICAgICAgZXNhYworLSAgICBkb25lCistICBmaQorKyAgQ1BQRkxBR1M9IiRDUFBGTEFHUyBgcGtnLWNvbmZpZyAtLXNob3J0LWVycm9ycyAtLXByaW50LWVycm9ycyAtLWNmbGFncyAibGlieG1sLTIuMCIgMj4mMWAiCisrICBMSUJTPSJgcGtnLWNvbmZpZyAtLXNob3J0LWVycm9ycyAtLXByaW50LWVycm9ycyAtLWxpYnMgImxpYnhtbC0yLjAiIDI+JjFgICRMSUJTIgorIGZpCisgCisgQUNfU1VCU1Qod2l0aF9saWJ4bWwpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9maWxlcy9ub3QtY2hlY2stbGlicGVybC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzL25vdC1jaGVjay1saWJwZXJsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3MTUxMDkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9maWxlcy9ub3QtY2hlY2stbGlicGVybC5wYXRjaApAQCAtMCwwICsxLDI4IEBACitbUEFUQ0hdIG5vdCBjaGVjayBsaWJwZXJsIHVuZGVyIGNyb3NzIGNvbXBpbGluZworCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCisKK2xpYnBlcmwgbGRmbGFncyByZXR1cm5lZCBieSBQR0FDX0NIRUNLX1BFUkxfRU1CRURfTERGTEFHUyBhcmUgbmF0aXZlLAorY2FuIG5vdCBiZSB1c2VkIHRvIGNoZWNrIHRhcmdldCBsaWJyYXJ5LgorCitwb3N0cHJlc3FsIGhhcyB0aGUgZGVwZW5kZW5jeSBvbiBwZXJsLCBzbyBub3QgbmVlZCB0byBjaGVjayBsaWJwZXJsCithZ2FpbiwgbGlrZSBpbiBwb3N0Z3Jlc3FsLTkuMi40IAorCitTaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CistLS0KKyBjb25maWd1cmUuaW4gfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK0luZGV4OiBwb3N0Z3Jlc3FsLTkuNC4xNS9jb25maWd1cmUuaW4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBwb3N0Z3Jlc3FsLTkuNC4xNS5vcmlnL2NvbmZpZ3VyZS5pbgorKysrIHBvc3RncmVzcWwtOS40LjE1L2NvbmZpZ3VyZS5pbgorQEAgLTE4NzksNyArMTg3OSw3IEBAIGlmIHRlc3QgIiR3aXRoX3RjbCIgPSB5ZXM7IHRoZW4KKyBmaQorIAorICMgY2hlY2sgZm9yIDxwZXJsLmg+CistaWYgdGVzdCAiJHdpdGhfcGVybCIgPSB5ZXM7IHRoZW4KKytpZiB0ZXN0ICIkd2l0aF9wZXJsIiA9IHllcyAmJiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IG5vOyB0aGVuCisgICBhY19zYXZlX0NQUEZMQUdTPSRDUFBGTEFHUworICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRwZXJsX2FyY2hsaWJleHAvQ09SRSIKKyAgIEFDX0NIRUNLX0hFQURFUihwZXJsLmgsIFtdLCBbQUNfTVNHX0VSUk9SKFtoZWFkZXIgZmlsZSA8cGVybC5oPiBpcyByZXF1aXJlZCBmb3IgUGVybF0pXSwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLWJhc2hwcm9maWxlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvZmlsZXMvcG9zdGdyZXNxbC1iYXNocHJvZmlsZQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwtYmFzaHByb2ZpbGUKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwtYmFzaHByb2ZpbGUKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLXNldHVwIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvZmlsZXMvcG9zdGdyZXNxbC1zZXR1cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwtc2V0dXAKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwtc2V0dXAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLmluaXQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLmluaXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLmluaXQKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwuaW5pdApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwucGFtIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvZmlsZXMvcG9zdGdyZXNxbC5wYW0Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLnBhbQpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvZmlsZXMvcG9zdGdyZXNxbC5wYW0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLnNlcnZpY2UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLnNlcnZpY2UKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwuc2VydmljZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL3Bvc3RncmVzcWwuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvcG9zdGdyZXNxbC5pbmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9wb3N0Z3Jlc3FsLmluYwpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvcG9zdGdyZXNxbC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL3Bvc3RncmVzcWxfOS40LjE3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvcG9zdGdyZXNxbF85LjQuMTcuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDYxMTg0YQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL3Bvc3RncmVzcWxfOS40LjE3LmJiCkBAIC0wLDAgKzEsMTQgQEAKK3JlcXVpcmUgcG9zdGdyZXNxbC5pbmMKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWVJJR0hUO21kNT02ZGM5NWU2M2FhNGQ3MjUwMmZmODE5M2RmZTJkZGQzOCIKKworU1JDX1VSSSArPSAiXAorICAgIGZpbGU6Ly9ub3QtY2hlY2stbGlicGVybC5wYXRjaCBcCisiCisKK2RvX2NvbXBpbGVfcHJlcGVuZF9saWJjLW11c2woKSB7CisgICAgc2VkIC1pIC1lICdzL1wtbG5zbC8vZycgJHtCfS9zcmMvTWFrZWZpbGUuZ2xvYmFsCit9CisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwYTA4ZjQwNzhmNWU0YTU0ZTc2NGY2M2FkMzhhNmRlMyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3YTMyMGNkMzM1MDUyYjg0MGQyMDlkYzk2ODhmMDk5NjU3NjMzNTFjNTkwZTNjYzdiZjU3NzU5MTE3OWZkN2M2IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wc3Fsb2RiYy9maWxlcy9wc3Fsb2RiYy1kb25vdC11c2UtdGhlLWhhcmRjb2RlLWxpYmRpci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wc3Fsb2RiYy9maWxlcy9wc3Fsb2RiYy1kb25vdC11c2UtdGhlLWhhcmRjb2RlLWxpYmRpci5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wc3Fsb2RiYy9maWxlcy9wc3Fsb2RiYy1kb25vdC11c2UtdGhlLWhhcmRjb2RlLWxpYmRpci5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3BzcWxvZGJjL2ZpbGVzL3BzcWxvZGJjLWRvbm90LXVzZS10aGUtaGFyZGNvZGUtbGliZGlyLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BzcWxvZGJjL2ZpbGVzL3BzcWxvZGJjLWZpeC1mb3ItcHRlc3Qtc3VwcG9ydC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wc3Fsb2RiYy9maWxlcy9wc3Fsb2RiYy1maXgtZm9yLXB0ZXN0LXN1cHBvcnQucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcHNxbG9kYmMvZmlsZXMvcHNxbG9kYmMtZml4LWZvci1wdGVzdC1zdXBwb3J0LnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcHNxbG9kYmMvZmlsZXMvcHNxbG9kYmMtZml4LWZvci1wdGVzdC1zdXBwb3J0LnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BzcWxvZGJjL2ZpbGVzL3BzcWxvZGJjLXJlbW92ZS1zb21lLWNoZWNrcy1mb3ItY3Jvc3MtY29tcGlsaW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3BzcWxvZGJjL2ZpbGVzL3BzcWxvZGJjLXJlbW92ZS1zb21lLWNoZWNrcy1mb3ItY3Jvc3MtY29tcGlsaW5nLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BzcWxvZGJjL2ZpbGVzL3BzcWxvZGJjLXJlbW92ZS1zb21lLWNoZWNrcy1mb3ItY3Jvc3MtY29tcGlsaW5nLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcHNxbG9kYmMvZmlsZXMvcHNxbG9kYmMtcmVtb3ZlLXNvbWUtY2hlY2tzLWZvci1jcm9zcy1jb21waWxpbmcucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcHNxbG9kYmMvZmlsZXMvcnVuLXB0ZXN0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3BzcWxvZGJjL2ZpbGVzL3J1bi1wdGVzdApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wc3Fsb2RiYy9maWxlcy9ydW4tcHRlc3QKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wc3Fsb2RiYy9maWxlcy9ydW4tcHRlc3QKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcHNxbG9kYmMvcHNxbG9kYmMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3BzcWxvZGJjL3BzcWxvZGJjLmluYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wc3Fsb2RiYy9wc3Fsb2RiYy5pbmMKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wc3Fsb2RiYy9wc3Fsb2RiYy5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcHNxbG9kYmMvcHNxbG9kYmNfMDkuMDUuMDMwMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wc3Fsb2RiYy9wc3Fsb2RiY18wOS4wNS4wMzAwLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BzcWxvZGJjL3BzcWxvZGJjXzA5LjA1LjAzMDAuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wc3Fsb2RiYy9wc3Fsb2RiY18wOS4wNS4wMzAwLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcm9ja3NkYi9yb2Nrc2RiX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9yb2Nrc2RiL3JvY2tzZGJfZ2l0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNmNiYWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcm9ja3NkYi9yb2Nrc2RiX2dpdC5iYgpAQCAtMCwwICsxLDMyIEBACitTVU1NQVJZID0gIlJvY2tzREIgYW4gZW1iZWRkYWJsZSwgcGVyc2lzdGVudCBrZXktdmFsdWUgc3RvcmUiCitERVNDUklQVElPTiA9ICJSb2Nrc0RCIGlzIGxpYnJhcnkgdGhhdCBwcm92aWRlcyBhbiBlbWJlZGRhYmxlLCBwZXJzaXN0ZW50IGtleS12YWx1ZSBzdG9yZSBmb3IgZmFzdCBzdG9yYWdlLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9yb2Nrc2RiLm9yZy8iCitMSUNFTlNFID0gIihBcGFjaGUtMi4wIHwgR1BMLTIuMCkgJiBCU0QtMy1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLkFwYWNoZTttZDU9M2I4M2VmOTYzODdmMTQ2NTVmYzg1NGRkYzNjNmJkNTcgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vTElDRU5TRS5sZXZlbGRiO21kNT1mYjA0ZmY1N2ExNGYzMDhmMmVlZDRhOWI4N2Q0NTgzNyIKKworU1JDUkVWID0gIjg5Njk0NDU2NDIwMzk1NjYyMTRkNjUwY2M2NjE0ODQ5ZTdkZDVlMTciCitTUkNCUkFOQ0ggPSAiNS4xMi5mYiIKK1BWID0gIjUuMTIuMiIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2ZhY2Vib29rLyR7QlBOfS5naXQ7YnJhbmNoPSR7U1JDQlJBTkNIfSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBjbWFrZQorCitQQUNLQUdFQ09ORklHID8/PSAiYnppcDIgemxpYiBsejQiCitQQUNLQUdFQ09ORklHW2J6aXAyXSA9ICItRFdJVEhfQloyPU9OLC1EV0lUSF9CWjI9T0ZGLGJ6aXAyIgorUEFDS0FHRUNPTkZJR1tsejRdID0gIi1EV0lUSF9MWjQ9T04sLURXSVRIX0xaND1PRkYsbHo0IgorUEFDS0FHRUNPTkZJR1t6bGliXSA9ICItRFdJVEhfWkxJQj1PTiwtRFdJVEhfWkxJQj1PRkYsemxpYiIKK1BBQ0tBR0VDT05GSUdbbGl0ZV0gPSAiLURST0NLU0RCX0xJVEU9T04sLURST0NLU0RCX0xJVEU9T0ZGIgorCisjIFRvb2xzIGFuZCB0ZXN0cyBjdXJyZW50bHkgZG9uJ3QgY29tcGlsZSBvbiBhcm12NSBzbyB3ZSBkaXNhYmxlIHRoZW0KK0VYVFJBX09FQ01BS0UgPSAiXAorICAgIC1EUE9SVEFCTEU9T04gXAorICAgIC1EV0lUSF9URVNUUz1PRkYgXAorICAgIC1EV0lUSF9UT09MUz1PRkYgXAorIgorCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9jbWFrZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc29jaS9zb2NpL3NvY2lfbGliZGlyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3NvY2kvc29jaS9zb2NpX2xpYmRpci5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zb2NpL3NvY2kvc29jaV9saWJkaXIucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9zb2NpL3NvY2kvc29jaV9saWJkaXIucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9zb2NpL3NvY2lfMy4yLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvc29jaS9zb2NpXzMuMi4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMjJkMzgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvc29jaS9zb2NpXzMuMi4zLmJiCkBAIC0wLDAgKzEsNDkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE1IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisjIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSAoc2VlIENPUFlJTkcuTUlUIGZvciB0aGUgdGVybXMpCisKK0RFU0NSSVBUSU9OID0gIlRoZSBDKysgRGF0YWJhc2UgQWNjZXNzIExpYnJhcnkiCitIT01FUEFHRSA9ICJodHRwOi8vc29jaS5zb3VyY2Vmb3JnZS5uZXQiCitMSUNFTlNFID0gIkJTTC0xLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFXzFfMC50eHQ7bWQ1PWU0MjI0Y2NhZWNiMTRkOTQyYzcxZDMxYmVmMjBkNzhjIgorU0VDVElPTiA9ICJsaWJzIgorREVQRU5EUyA9ICJib29zdCIKKworCitTUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9wcm9qZWN0LyR7QlBOfS8ke0JQTn0vJHtCUH0vJHtCUH0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL3NvY2lfbGliZGlyLnBhdGNoIFwKKyAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiYWNmYmNjZjE3NmNkMjBlMDY4MzNhODAzN2EyZDM2OTkiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMmM2NTlkYjBmNGY3YjQyNGJiY2ZmZTE5NWMwM2MyOTNhMWRiZjY3NjE4OWEyN2IwNzdmYjJhYWI0ZDUzYTYxMCIKKworVEVTVENPTkZJRyA9ICctRFNPQ0lfVEVTVF9FTVBUWV9DT05OU1RSPSJkdW1teSIgLURTT0NJX1RFU1RfU1FMSVRFM19DT05OU1RSPSJ0ZXN0LmRiIiBcCisgICAgICAgICAgICAgIC1EU09DSV9URVNUX1BPU1RHUkVTUUxfQ09OTlNUUjpTVFJJTkc9ImRibmFtZT1zb2NpX3Rlc3QiIFwKKyAgICAgICAgICAgICAgLURTT0NJX1RFU1RfTVlTUUxfQ09OTlNUUjpTVFJJTkc9ImRiPXNvY2lfdGVzdCB1c2VyPW9lIHBhc3N3b3JkPW9lIicKKworT0JBU0VESVIgPz0gIi9vcHQvb3JhY2xlIgorT0lOQ0RJUiA9ICJyZGJtcy9wdWJsaWMiCitPTElCRElSID0gImxpYiIKKworUEFDS0FHRUNPTkZJR1tzcWxpdGUzXSA9ICItRFNPQ0lfU1FMSVRFMz1PTiwtRFNPQ0lfU1FMSVRFMz1PRkYsc3FsaXRlMywiCitQQUNLQUdFQ09ORklHW215c3FsXSA9ICItRFNPQ0lfTVlTUUw9T04sLURTT0NJX01ZU1FMPU9GRixtYXJpYWRiLCIKK1BBQ0tBR0VDT05GSUdbcG9zdGdyZXNxbF0gPSAiLURTT0NJX1BPU1RHUkVTUUw9T04sLURTT0NJX1BPU1RHUkVTUUw9T0ZGLHBvc3RncmVzcWwsIgorUEFDS0FHRUNPTkZJR1tvZGJjXSA9ICItRFNPQ0lfT0RCQz1PTiwtRFNPQ0lfT0RCQz1PRkYsLCIKK1BBQ0tBR0VDT05GSUdbZW1wdHldID0gIi1EU09DSV9FTVBUWT1PTiwtRFNPQ0lfRU1QVFk9T0ZGLCwiCitQQUNLQUdFQ09ORklHW29yYWNsZV0gPSAiLURXSVRIX09SQUNMRT1PTiAtLXdpdGgtb3JhY2xlLWluY2x1ZGU9JHtPSU5DRElSfSAtLXdpdGgtb3JhY2xlLWxpYj0ke09MSUJESVJ9LC1EV0lUSF9PUkFDTEU9T0ZGLCwiCitQQUNLQUdFQ09ORklHW3B0ZXN0XSA9ICIke1RFU1RDT05GSUd9LCwsIgorCisjIGVuYWJsZSB5b3VyIGJhY2tlbmQgYnkgZGVmYXVsdCB3ZSBlbmFibGUgJ2VtcHR5JworUEFDS0FHRUNPTkZJRyA/Pz0gImVtcHR5IgorCisjIFRha2UgdGhlIGZsYWdzIGFkZGVkIGJ5IFBBQ0tBR0VDT05GSUcgYW5kIHBhc3MgdGhlbSB0byBjbWFrZS4KK0VYVFJBX09FQ01BS0UgPSAiJHtFWFRSQV9PRUNPTkZ9IC1EU09DSV9MSUJESVI9JHtsaWJkaXJ9IgorRElTQUJMRV9TVEFUSUMgPSAiIgorCitpbmhlcml0IGRvczJ1bml4IGNtYWtlCisKK1BBQ0tBR0VTICs9ICIke1BOfS1zcWxpdGUzICR7UE59LW15c3FsICR7UE59LXBvc3RncmVzcWwgJHtQTn0tb2RiYyAke1BOfS1vcmFjbGUiCisKK0ZJTEVTXyR7UE59LXNxbGl0ZTMgPSAiJHtsaWJkaXJ9L2xpYiR7QlBOfV9zcWxpdGUzLnNvLioiCitGSUxFU18ke1BOfS1teXNxbCA9ICIke2xpYmRpcn0vbGliJHtCUE59X215c3FsLnNvLioiCitGSUxFU18ke1BOfS1wb3N0Z3Jlc3FsID0gIiR7bGliZGlyfS9saWIke0JQTn1fcG9zdGdyZXNxbC5zby4qIgorRklMRVNfJHtQTn0tb2RiYyA9ICIke2xpYmRpcn0vbGliJHtCUE59X29kYmMuc28uKiIKK0ZJTEVTXyR7UE59LW9yYWNsZSA9ICIke2xpYmRpcn0vbGliJHtCUE59X29yYWNsZS5zby4qIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcWxpdGUvc3FsaXRlLTIuOC4xNy8wMDAxLXNoZWxsLmMtRml4LWZvcm1hdC1ub3QtYS1zdHJpbmctbGl0ZXJhbC13YXJuaW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3NxbGl0ZS9zcWxpdGUtMi44LjE3LzAwMDEtc2hlbGwuYy1GaXgtZm9ybWF0LW5vdC1hLXN0cmluZy1saXRlcmFsLXdhcm5pbmcucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3FsaXRlL3NxbGl0ZS0yLjguMTcvMDAwMS1zaGVsbC5jLUZpeC1mb3JtYXQtbm90LWEtc3RyaW5nLWxpdGVyYWwtd2FybmluZy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3NxbGl0ZS9zcWxpdGUtMi44LjE3LzAwMDEtc2hlbGwuYy1GaXgtZm9ybWF0LW5vdC1hLXN0cmluZy1saXRlcmFsLXdhcm5pbmcucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3FsaXRlL3NxbGl0ZS0yLjguMTcvbWFpbm1rX2J1aWxkX2R5bmFtaWMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvc3FsaXRlL3NxbGl0ZS0yLjguMTcvbWFpbm1rX2J1aWxkX2R5bmFtaWMucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3FsaXRlL3NxbGl0ZS0yLjguMTcvbWFpbm1rX2J1aWxkX2R5bmFtaWMucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9zcWxpdGUvc3FsaXRlLTIuOC4xNy9tYWlubWtfYnVpbGRfZHluYW1pYy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcWxpdGUvc3FsaXRlLTIuOC4xNy9tYWlubWtfbm9fdGNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3NxbGl0ZS9zcWxpdGUtMi44LjE3L21haW5ta19ub190Y2wucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3FsaXRlL3NxbGl0ZS0yLjguMTcvbWFpbm1rX25vX3RjbC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3NxbGl0ZS9zcWxpdGUtMi44LjE3L21haW5ta19ub190Y2wucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3FsaXRlL3NxbGl0ZS0yLjguMTcvc3FsaXRlLnBjIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3NxbGl0ZS9zcWxpdGUtMi44LjE3L3NxbGl0ZS5wYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcWxpdGUvc3FsaXRlLTIuOC4xNy9zcWxpdGUucGMKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9zcWxpdGUvc3FsaXRlLTIuOC4xNy9zcWxpdGUucGMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3FsaXRlL3NxbGl0ZV8yLjguMTcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvc3FsaXRlL3NxbGl0ZV8yLjguMTcuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3FsaXRlL3NxbGl0ZV8yLjguMTcuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9zcWxpdGUvc3FsaXRlXzIuOC4xNy5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvYW5kcm9pZC10b29scy9hbmRyb2lkLXRvb2xzL3ByZXNlcnZlLW93bmVyc2hpcC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2FuZHJvaWQtdG9vbHMvYW5kcm9pZC10b29scy9wcmVzZXJ2ZS1vd25lcnNoaXAucGF0Y2gKaW5kZXggODVhZjgxZi4uNWM5MDM5NyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvYW5kcm9pZC10b29scy9hbmRyb2lkLXRvb2xzL3ByZXNlcnZlLW93bmVyc2hpcC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9hbmRyb2lkLXRvb2xzL2FuZHJvaWQtdG9vbHMvcHJlc2VydmUtb3duZXJzaGlwLnBhdGNoCkBAIC0xLDE5ICsxLDUwIEBACitGcm9tIGFhNjY5MzEyYTM4MDYxMWQyODBkMTI2Y2I1MDlmYTI4MjA4MDcwN2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXJrdXMgTWF5ZXIgPG1tYXllckBtbWF5ZXIubmV0PgorRGF0ZTogV2VkLCA3IFNlcCAyMDE2IDEyOjU4OjQ3ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIGFuZHJvaWQtdG9vbHM6IGFkZCByZWNpcGUgZnJvbSBBT1NQIHRhZyBhbmRyb2lkLTUuMS4xX3IzNworCiBEZXNjcmlwdGlvbjogYWRkIC1vIGFyZ3VtZW50IHRvIHByZXNlcnZlIG93bmVyc2hpcAotQXV0aG9yOiBNYXJrdXMgTWF5ZXIgPG1tYXllckBtbWF5ZXIubmV0PgogCiBTZWUgYWxzbyBodHRwczovL2FuZHJvaWQtcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vIy9jLzEwMDMxMi8KIAogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlCisKIC0tLQotIHN5c3RlbS9leHRyYXMvZXh0NF91dGlscy9tYWtlX2V4dDRmcy5jICAgICAgfCAgICA2ICsrKysrKwotIHN5c3RlbS9leHRyYXMvZXh0NF91dGlscy9tYWtlX2V4dDRmc19tYWluLmMgfCAgIDEwICsrKysrKysrLS0KKyBleHQ0X3V0aWxzL21ha2VfZXh0NGZzLmMgICAgICB8ICA2ICsrKysrKworIGV4dDRfdXRpbHMvbWFrZV9leHQ0ZnNfbWFpbi5jIHwgMTAgKysrKysrKystLQogIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIAotLS0tIGEvc3lzdGVtL2V4dHJhcy9leHQ0X3V0aWxzL21ha2VfZXh0NGZzX21haW4uYwotKysrIGIvc3lzdGVtL2V4dHJhcy9leHQ0X3V0aWxzL21ha2VfZXh0NGZzX21haW4uYwotQEAgLTQ5LDEzICs0OSwxNSBAQCBleHRlcm4gc3RydWN0IGZzX2luZm8gaW5mbzsKK2RpZmYgLS1naXQgYS9leHQ0X3V0aWxzL21ha2VfZXh0NGZzLmMgYi9leHQ0X3V0aWxzL21ha2VfZXh0NGZzLmMKK2luZGV4IDJmODlhZThhLi5jYzQxZDYyMyAxMDA2NDQKKy0tLSBhL2V4dDRfdXRpbHMvbWFrZV9leHQ0ZnMuYworKysrIGIvZXh0NF91dGlscy9tYWtlX2V4dDRmcy5jCitAQCAtNjgsNiArNjgsOCBAQAogIAotIGV4dGVybiBzdHJ1Y3Qgc2VsYWJlbF9oYW5kbGUqIHNlbGludXhfYW5kcm9pZF9maWxlX2NvbnRleHRfaGFuZGxlKHZvaWQpOworICNlbmRpZgorIAorK2ludCBwcmVzZXJ2ZV9vd25lciA9IDA7CisrCisgLyogVE9ETzogTm90IGltcGxlbWVudGVkOgorICAgIEFsbG9jYXRpbmcgYmxvY2tzIGluIHRoZSBzYW1lIGJsb2NrIGdyb3VwIGFzIHRoZSBmaWxlIGlub2RlCisgICAgSGFzaCBvciBiaW5hcnkgdHJlZSBkaXJlY3RvcmllcworQEAgLTE4Niw2ICsxODgsMTAgQEAgc3RhdGljIHUzMiBidWlsZF9kaXJlY3Rvcnlfc3RydWN0dXJlKGNvbnN0IGNoYXIgKmZ1bGxfcGF0aCwgY29uc3QgY2hhciAqZGlyX3BhdGgKKyAJCX0gZWxzZSB7CisgCQkJZGVudHJpZXNbaV0ubXRpbWUgPSBmaXhlZF90aW1lOworIAkJfQorKwkJaWYgKHByZXNlcnZlX293bmVyKSB7CisrCQkJZGVudHJpZXNbaV0udWlkID0gc3RhdC5zdF91aWQ7CisrCQkJZGVudHJpZXNbaV0uZ2lkID0gc3RhdC5zdF9naWQ7CisrCQl9CisgCQl1aW50NjRfdCBjYXBhYmlsaXRpZXM7CisgCQlpZiAoZnNfY29uZmlnX2Z1bmMgIT0gTlVMTCkgeworICNpZmRlZiBBTkRST0lECitkaWZmIC0tZ2l0IGEvZXh0NF91dGlscy9tYWtlX2V4dDRmc19tYWluLmMgYi9leHQ0X3V0aWxzL21ha2VfZXh0NGZzX21haW4uYworaW5kZXggYTZjNWY2MTYuLjdhZjBkZGRmIDEwMDY0NAorLS0tIGEvZXh0NF91dGlscy9tYWtlX2V4dDRmc19tYWluLmMKKysrKyBiL2V4dDRfdXRpbHMvbWFrZV9leHQ0ZnNfbWFpbi5jCitAQCAtNDgsMTMgKzQ4LDE1IEBAIHN0cnVjdCBzZWxhYmVsX2hhbmRsZTsKKyBleHRlcm4gc3RydWN0IGZzX2luZm8gaW5mbzsKKyAKICAKICtleHRlcm4gaW50IHByZXNlcnZlX293bmVyOwogKwpAQCAtMjgsNyArNTksNyBAQAogIAlmcHJpbnRmKHN0ZGVyciwgIiAgICA8ZmlsZW5hbWU+IFs8ZGlyZWN0b3J5Pl1cbiIpOwogIH0KICAKLUBAIC04MSw3ICs4Myw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK0BAIC04MCw3ICs4Miw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAJc3RydWN0IHNlbGludXhfb3B0IHNlb3B0c1tdID0geyB7IFNFTEFCRUxfT1BUX1BBVEgsICIiIH0gfTsKICAjZW5kaWYKICAKQEAgLTM3LDcgKzY4LDcgQEAKICAJCXN3aXRjaCAob3B0KSB7CiAgCQljYXNlICdsJzoKICAJCQlpbmZvLmxlbiA9IHBhcnNlX251bShvcHRhcmcpOwotQEAgLTE0NCw2ICsxNDYsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorQEAgLTE0Myw2ICsxNDUsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogIAkJCX0KICAjZW5kaWYKICAJCQlicmVhazsKQEAgLTQ4LDI1ICs3OSwzIEBACiAgCQljYXNlICd2JzoKICAJCQl2ZXJib3NlID0gMTsKICAJCQlicmVhazsKLS0tLSBhL3N5c3RlbS9leHRyYXMvZXh0NF91dGlscy9tYWtlX2V4dDRmcy5jCi0rKysgYi9zeXN0ZW0vZXh0cmFzL2V4dDRfdXRpbHMvbWFrZV9leHQ0ZnMuYwotQEAgLTY3LDYgKzY3LDggQEAKLSAKLSAjZW5kaWYKLSAKLStpbnQgcHJlc2VydmVfb3duZXIgPSAwOwotKwotIC8qIFRPRE86IE5vdCBpbXBsZW1lbnRlZDoKLSAgICBBbGxvY2F0aW5nIGJsb2NrcyBpbiB0aGUgc2FtZSBibG9jayBncm91cCBhcyB0aGUgZmlsZSBpbm9kZQotICAgIEhhc2ggb3IgYmluYXJ5IHRyZWUgZGlyZWN0b3JpZXMKLUBAIC0xODUsNiArMTg3LDEwIEBAIHN0YXRpYyB1MzIgYnVpbGRfZGlyZWN0b3J5X3N0cnVjdHVyZShjb24KLSAJCX0gZWxzZSB7Ci0gCQkJZGVudHJpZXNbaV0ubXRpbWUgPSBmaXhlZF90aW1lOwotIAkJfQotKwkJaWYgKHByZXNlcnZlX293bmVyKSB7Ci0rCQkJZGVudHJpZXNbaV0udWlkID0gc3RhdC5zdF91aWQ7Ci0rCQkJZGVudHJpZXNbaV0uZ2lkID0gc3RhdC5zdF9naWQ7Ci0rCQl9Ci0gCQl1aW50NjRfdCBjYXBhYmlsaXRpZXM7Ci0gCQlpZiAoZnNfY29uZmlnX2Z1bmMgIT0gTlVMTCkgewotICNpZmRlZiBBTkRST0lECmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9hbmRyb2lkLXRvb2xzL2FuZHJvaWQtdG9vbHNfNS4xLjEucjM3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvYW5kcm9pZC10b29scy9hbmRyb2lkLXRvb2xzXzUuMS4xLnIzNy5iYgppbmRleCBkM2NjZDFkLi43ODBlY2FhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9hbmRyb2lkLXRvb2xzL2FuZHJvaWQtdG9vbHNfNS4xLjEucjM3LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2FuZHJvaWQtdG9vbHMvYW5kcm9pZC10b29sc181LjEuMS5yMzcuYmIKQEAgLTksNyArOSw2IEBACiAiCiBERVBFTkRTID0gImxpYmJzZCBsaWJwY3JlIG9wZW5zc2wgemxpYiBsaWJjYXAiCiAKLUFORFJPSURfVEFHID0gImFuZHJvaWQtNS4xLjFfcjM3IgogQU5EUk9JRF9NSVJST1IgPSAiYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tIgogQ09SRV9SRVBPID0gIiR7QU5EUk9JRF9NSVJST1J9L3BsYXRmb3JtL3N5c3RlbS9jb3JlIgogRVhUUkFTX1JFUE8gPSAiJHtBTkRST0lEX01JUlJPUn0vcGxhdGZvcm0vc3lzdGVtL2V4dHJhcyIKQEAgLTE3LDE2ICsxNiwyMyBAQAogTElCU0VMSU5VWF9SRVBPID0gIiR7QU5EUk9JRF9NSVJST1J9L3BsYXRmb3JtL2V4dGVybmFsL2xpYnNlbGludXgiCiBCVUlMRF9SRVBPID0gIiR7QU5EUk9JRF9NSVJST1J9L3BsYXRmb3JtL2J1aWxkIgogCisjIG1hdGNoZXMgd2l0aCBhbmRyb2lkLTUuMS4xX3IzNworU1JDUkVWX2NvcmUgPSAiMjMxNGIxMTBiZGViZGJmZDJkOTRjNTAyMjgyZjllNTdjODQ5ODk3ZSIKK1NSQ1JFVl9leHRyYXMgPSAiM2VjYmU4ZDg0MWRmOTYxMjdkNzg1NTY2MTI5M2U1YWI2YmE2YzIwNSIKK1NSQ1JFVl9saWJoYXJkd2FyZSA9ICJiZTU1ZWIxZjRkODQwYzgyZmZhZjdjNDc0NjBkZjE3ZmY1YmM0ZDliIgorU1JDUkVWX2xpYnNlbGludXggPSAiMDdlOWUxMzM5YWQxYmE2MDhhY2ZiYTlkY2UyZDBmNDc0YjI1MmZlYiIKK1NSQ1JFVl9idWlsZCA9ICIxNmU5ODdkZWYzZDdkOGY3ZDMwODA1ZWI5NWNlZjY5ZTUyYTg3ZGJjIgorCiBTUkNfVVJJID0gIiBcCi0gICAgZ2l0Oi8vJHtDT1JFX1JFUE99O25hbWU9Y29yZTtwcm90b2NvbD1odHRwcztub2JyYW5jaD0xO2Rlc3RzdWZmaXg9Z2l0L3N5c3RlbS9jb3JlO3RhZz0ke0FORFJPSURfVEFHfSBcCi0gICAgZ2l0Oi8vJHtFWFRSQVNfUkVQT307bmFtZT1leHRyYXM7cHJvdG9jb2w9aHR0cHM7bm9icmFuY2g9MTtkZXN0c3VmZml4PWdpdC9zeXN0ZW0vZXh0cmFzO3RhZz0ke0FORFJPSURfVEFHfSBcCi0gICAgZ2l0Oi8vJHtMSUJIQVJEV0FSRV9SRVBPfTtuYW1lPWxpYmhhcmR3YXJlO3Byb3RvY29sPWh0dHBzO25vYnJhbmNoPTE7ZGVzdHN1ZmZpeD1naXQvaGFyZHdhcmUvbGliaGFyZHdhcmU7dGFnPSR7QU5EUk9JRF9UQUd9IFwKLSAgICBnaXQ6Ly8ke0xJQlNFTElOVVhfUkVQT307bmFtZT1saWJzZWxpbnV4O3Byb3RvY29sPWh0dHBzO25vYnJhbmNoPTE7ZGVzdHN1ZmZpeD1naXQvZXh0ZXJuYWwvbGlic2VsaW51eDt0YWc9JHtBTkRST0lEX1RBR30gXAotICAgIGdpdDovLyR7QlVJTERfUkVQT307bmFtZT1idWlsZDtwcm90b2NvbD1odHRwcztub2JyYW5jaD0xO2Rlc3RzdWZmaXg9Z2l0L2J1aWxkO3RhZz0ke0FORFJPSURfVEFHfSBcCisgICAgZ2l0Oi8vJHtDT1JFX1JFUE99O25hbWU9Y29yZTtwcm90b2NvbD1odHRwcztub2JyYW5jaD0xO2Rlc3RzdWZmaXg9Z2l0L3N5c3RlbS9jb3JlIFwKKyAgICBnaXQ6Ly8ke0VYVFJBU19SRVBPfTtuYW1lPWV4dHJhcztwcm90b2NvbD1odHRwcztub2JyYW5jaD0xO2Rlc3RzdWZmaXg9Z2l0L3N5c3RlbS9leHRyYXMgXAorICAgIGdpdDovLyR7TElCSEFSRFdBUkVfUkVQT307bmFtZT1saWJoYXJkd2FyZTtwcm90b2NvbD1odHRwcztub2JyYW5jaD0xO2Rlc3RzdWZmaXg9Z2l0L2hhcmR3YXJlL2xpYmhhcmR3YXJlIFwKKyAgICBnaXQ6Ly8ke0xJQlNFTElOVVhfUkVQT307bmFtZT1saWJzZWxpbnV4O3Byb3RvY29sPWh0dHBzO25vYnJhbmNoPTE7ZGVzdHN1ZmZpeD1naXQvZXh0ZXJuYWwvbGlic2VsaW51eCBcCisgICAgZ2l0Oi8vJHtCVUlMRF9SRVBPfTtuYW1lPWJ1aWxkO3Byb3RvY29sPWh0dHBzO25vYnJhbmNoPTE7ZGVzdHN1ZmZpeD1naXQvYnVpbGQgXAogICAgIGZpbGU6Ly9yZW1vdmUtc2VsaW51eC1hbmRyb2lkLnBhdGNoIFwKICAgICBmaWxlOi8vdXNlLWNhcGFiaWxpdHkucGF0Y2ggXAogICAgIGZpbGU6Ly91c2UtbG9jYWwtc29ja2V0LnBhdGNoIFwKLSAgICBmaWxlOi8vcHJlc2VydmUtb3duZXJzaGlwLnBhdGNoIFwKKyAgICBmaWxlOi8vcHJlc2VydmUtb3duZXJzaGlwLnBhdGNoO3BhdGNoZGlyPXN5c3RlbS9leHRyYXMgXAogICAgIGZpbGU6Ly9ta2Jvb3RpbWctQWRkLWR0LXBhcmFtZXRlci10by1zcGVjaWZ5LURULWltYWdlLnBhdGNoIFwKICAgICBmaWxlOi8vcmVtb3ZlLWJpb25pYy1hbmRyb2lkLnBhdGNoIFwKICAgICBmaWxlOi8vZGVmaW5lLXNoZWxsLWNvbW1hbmQucGF0Y2ggXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvYnJlYWtwYWQvYnJlYWtwYWQvMDAwMS1kaXNhYmxlLWNhbGxzLXRvLWdldGNvbnRleHQtd2l0aC1tdXNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvYnJlYWtwYWQvYnJlYWtwYWQvMDAwMS1kaXNhYmxlLWNhbGxzLXRvLWdldGNvbnRleHQtd2l0aC1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3NjI3NTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9icmVha3BhZC9icmVha3BhZC8wMDAxLWRpc2FibGUtY2FsbHMtdG8tZ2V0Y29udGV4dC13aXRoLW11c2wucGF0Y2gKQEAgLTAsMCArMSw1MiBAQAorRnJvbSA1N2VjZjcyMDVmZWVkZDIzZjkwMWUxYmI5ZDE5Mzc4N2U1NTllNDMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmUgTWNDdXJkeSA8YXJtY2N1cmR5QGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgMjMgSmFuIDIwMTggMTU6MTM6MjYgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gZGlzYWJsZSBjYWxscyB0byBnZXRjb250ZXh0KCkgd2l0aCBtdXNsCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlIE1jQ3VyZHkgPGFybWNjdXJkeUBnbWFpbC5jb20+CistLS0KKyBzcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MgfCAxNyArKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MgYi9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK2luZGV4IGNjYTAyM2YuLmYzZTQ2MGMgMTAwNjQ0CistLS0gYS9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKKysrKyBiL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworQEAgLTQ5NSw3ICs0OTUsMTkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpTaW11bGF0ZVNpZ25hbERlbGl2ZXJ5KGludCBzaWcpIHsKKyAgIHNpZ2luZm8uc2lfY29kZSA9IFNJX1VTRVI7CisgICBzaWdpbmZvLnNpX3BpZCA9IGdldHBpZCgpOworICAgdWNvbnRleHRfdCBjb250ZXh0OworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGdldGNvbnRleHQoJmNvbnRleHQpOworKyNlbHNlCisrICAvLyBFeHRyZW1lIGhhY2s6IEFsbG93IG11c2wgYnVpbGRzIHRvIGNvbXBpbGUgLSBidXQgZG9uJ3QgZXhwZWN0IHRoZW0gdG8gd29yay4KKysgIC8vIEFsdGhvdWdoIG11c2wgcHJvdmlkZXMgYSBkZWZpbml0aW9uIGZvciBnZXRjb250ZXh0KCkgaW4gdWNvbnRleHQuaCAod2hpY2gKKysgIC8vIGVub3VnaCB0byBidWlsZCBsaWJicmVha3BhZF9jbGllbnQpIG11c2wgZG9lcyBub3QgcHJvdmlkZSBhIGNvcnJlc3BvbmRpbmcKKysgIC8vIGdldGNvbnRleHQoKSBmdW5jdGlvbiwgc28gYnVpbGRzIHdpbGwgZmFpbCB3aGVuIGF0dGVtcHRpbmcgdG8gbGluayBhbnl0aGluZworKyAgLy8gd2l0aCBsaWJicmVha3BhZF9jbGllbnQuIERpc2FibGluZyBjYWxscyB0byBnZXRjb250ZXh0KCkgaXMgYSB0ZW1wb3JhcnkKKysgIC8vIGhhY2suIFRoZSByZWFsIGZpeCBpcyBwcm9iYWJseSB0byBlbmFibGUgQnJlYWtwYWQncyBvd24gaW1wbGVtZW50YXRpb24gb2YKKysgIC8vIGdldGNvbnRleHQoKSB3aGVuIGJ1aWxkaW5nIGZvciBtdXNsIChpdCdzIGN1cnJlbnRseSBvbmx5IGVuYWJsZWQgd2hlbgorKyAgLy8gYnVpbGRpbmcgZm9yIEFuZHJvaWQpLgorKyAgbWVtc2V0ICgmY29udGV4dCwgMCwgc2l6ZW9mKGNvbnRleHQpKTsKKysjZW5kaWYKKyAgIHJldHVybiBIYW5kbGVTaWduYWwoc2lnLCAmc2lnaW5mbywgJmNvbnRleHQpOworIH0KKyAKK0BAIC02ODAsOSArNjkyLDE0IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKKyAgIHN5c19wcmN0bChQUl9TRVRfRFVNUEFCTEUsIDEsIDAsIDAsIDApOworIAorICAgQ3Jhc2hDb250ZXh0IGNvbnRleHQ7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgaW50IGdldGNvbnRleHRfcmVzdWx0ID0gZ2V0Y29udGV4dCgmY29udGV4dC5jb250ZXh0KTsKKyAgIGlmIChnZXRjb250ZXh0X3Jlc3VsdCkKKyAgICAgcmV0dXJuIGZhbHNlOworKyNlbHNlCisrICAvLyBFeHRyZW1lIGhhY2sgLSBzZWUgY29tbWVudHMgYWJvdmUuCisrICBtZW1zZXQgKCZjb250ZXh0LmNvbnRleHQsIDAsIHNpemVvZigmY29udGV4dC5jb250ZXh0KSk7CisrI2VuZGlmCisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pCisgICAvLyBJbiBDUFVGaWxsRnJvbVVDb250ZXh0IGluIG1pbmlkdW1wd3JpdGVyLmNjIHRoZSBzdGFjayBwb2ludGVyIGlzIHJldHJpZXZlZAorLS0gCisxLjkuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9icmVha3BhZC9icmVha3BhZC8wMDA1LUltcG9ydC1uZWNlc3NhcnktZGVmaW5pdGlvbnMtZnJvbS1zdGFiLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9icmVha3BhZC9icmVha3BhZC8wMDA1LUltcG9ydC1uZWNlc3NhcnktZGVmaW5pdGlvbnMtZnJvbS1zdGFiLmgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwZGU4YzYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvYnJlYWtwYWQvYnJlYWtwYWQvMDAwNS1JbXBvcnQtbmVjZXNzYXJ5LWRlZmluaXRpb25zLWZyb20tc3RhYi5oLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTk5ICswLDAgQEAKLUZyb20gZmE3YTNiNzMxMjMwN2FjYWQwMDQ1NTQ5ZDVmMzA2ZTdmZDExNzgwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEZlbGl4IEphbmRhIDxmZWxpeC5qYW5kYUBwb3N0ZW8uZGU+Ci1EYXRlOiBTdW4sIDEgRmViIDIwMTUgMTQ6MzQ6NDQgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA1LzZdIEltcG9ydCBuZWNlc3NhcnkgZGVmaW5pdGlvbnMgZnJvbSBzdGFiLmgKLQotLS0tCi0gY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgLQotIHNyYy9jb21tb24vYW5kcm9pZC9pbmNsdWRlL3N0YWIuaCAgIHwgMTAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHNyYy9jb21tb24vY29tbW9uLmd5cCAgICAgICAgICAgICAgIHwgICAxIC0KLSBzcmMvY29tbW9uL3N0YWJzX3JlYWRlci5jYyAgICAgICAgICB8ICAgMSAtCi0gc3JjL2NvbW1vbi9zdGFic19yZWFkZXIuaCAgICAgICAgICAgfCAgMTMgKysrLS0KLSBzcmMvY29tbW9uL3N0YWJzX3JlYWRlcl91bml0dGVzdC5jYyB8ICAgMSAtCi0gNiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAxMDcgZGVsZXRpb25zKC0pCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9jb21tb24vYW5kcm9pZC9pbmNsdWRlL3N0YWIuaAotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCAyMjIzOTIwLi4wZTU1Y2Q5IDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC03Myw3ICs3Myw2IEBAIEFDX0hFQURFUl9TVERDCi0gQUNfU1lTX0xBUkdFRklMRQotIG00X2luY2x1ZGUobTQvYXhfcHRocmVhZC5tNCkKLSBBWF9QVEhSRUFECi0tQUNfQ0hFQ0tfSEVBREVSUyhbYS5vdXQuaF0pCi0gCi0gIyBPbmx5IGJ1aWxkIExpbnV4IGNsaWVudCBsaWJzIHdoZW4gY29tcGlsaW5nIGZvciBMaW51eAotIGNhc2UgJGhvc3QgaW4KLWRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2FuZHJvaWQvaW5jbHVkZS9zdGFiLmggYi9zcmMvY29tbW9uL2FuZHJvaWQvaW5jbHVkZS9zdGFiLmgKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggY2Q5MjkwMi4uMDAwMDAwMAotLS0tIGEvc3JjL2NvbW1vbi9hbmRyb2lkL2luY2x1ZGUvc3RhYi5oCi0rKysgL2Rldi9udWxsCi1AQCAtMSwxMDAgKzAsMCBAQAotLS8vIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4KLS0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLS8vCi0tLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0tLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLS8vIG1ldDoKLS0vLwotLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0tLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0tLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLS8vIGRpc3RyaWJ1dGlvbi4KLS0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0tLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLS8vCi0tLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0tLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0tLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0tLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0tLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0tLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tCi0tI2lmbmRlZiBHT09HTEVfQlJFQUtQQURfQ09NTU9OX0FORFJPSURfSU5DTFVERV9TVEFCX0gKLS0jZGVmaW5lIEdPT0dMRV9CUkVBS1BBRF9DT01NT05fQU5EUk9JRF9JTkNMVURFX1NUQUJfSAotLQotLSNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLS0KLS0jaWZkZWYgX19CSU9OSUNfSEFWRV9TVEFCX0gKLS0jaW5jbHVkZSA8c3RhYi5oPgotLSNlbHNlCi0tCi0tI2lmZGVmIF9fY3BsdXNwbHVzCi0tZXh0ZXJuICJDIiB7Ci0tI2VuZGlmICAvLyBfX2NwbHVzcGx1cwotLQotLSNkZWZpbmUgX1NUQUJfQ09ERV9MSVNUICAgICAgIFwKLS0gIF9TVEFCX0NPREVfREVGKFVOREYsMHgwMCkgICBcCi0tICBfU1RBQl9DT0RFX0RFRihHU1lNLDB4MjApICAgXAotLSAgX1NUQUJfQ09ERV9ERUYoRk5BTUUsMHgyMikgIFwKLS0gIF9TVEFCX0NPREVfREVGKEZVTiwweDI0KSAgICBcCi0tICBfU1RBQl9DT0RFX0RFRihTVFNZTSwweDI2KSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoTENTWU0sMHgyOCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKE1BSU4sMHgyYSkgICBcCi0tICBfU1RBQl9DT0RFX0RFRihQQywweDMwKSAgICAgXAotLSAgX1NUQUJfQ09ERV9ERUYoTlNZTVMsMHgzMikgIFwKLS0gIF9TVEFCX0NPREVfREVGKE5PTUFQLDB4MzQpICBcCi0tICBfU1RBQl9DT0RFX0RFRihPQkosMHgzOCkgICAgXAotLSAgX1NUQUJfQ09ERV9ERUYoT1BULDB4M2MpICAgIFwKLS0gIF9TVEFCX0NPREVfREVGKFJTWU0sMHg0MCkgICBcCi0tICBfU1RBQl9DT0RFX0RFRihNMkMsMHg0MikgICAgXAotLSAgX1NUQUJfQ09ERV9ERUYoU0xJTkUsMHg0NCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKERTTElORSwweDQ2KSBcCi0tICBfU1RBQl9DT0RFX0RFRihCU0xJTkUsMHg0OCkgXAotLSAgX1NUQUJfQ09ERV9ERUYoQlJPV1MsMHg0OCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKERFRkQsMHg0YSkgICBcCi0tICBfU1RBQl9DT0RFX0RFRihFSERFQ0wsMHg1MCkgXAotLSAgX1NUQUJfQ09ERV9ERUYoTU9EMiwweDUwKSAgIFwKLS0gIF9TVEFCX0NPREVfREVGKENBVENILDB4NTQpICBcCi0tICBfU1RBQl9DT0RFX0RFRihTU1lNLDB4NjApICAgXAotLSAgX1NUQUJfQ09ERV9ERUYoU08sMHg2NCkgICAgIFwKLS0gIF9TVEFCX0NPREVfREVGKExTWU0sMHg4MCkgICBcCi0tICBfU1RBQl9DT0RFX0RFRihCSU5DTCwweDgyKSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoU09MLDB4ODQpICAgIFwKLS0gIF9TVEFCX0NPREVfREVGKFBTWU0sMHhhMCkgICBcCi0tICBfU1RBQl9DT0RFX0RFRihFSU5DTCwweGEyKSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoRU5UUlksMHhhNCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKExCUkFDLDB4YzApICBcCi0tICBfU1RBQl9DT0RFX0RFRihFWENMLDB4YzIpICAgXAotLSAgX1NUQUJfQ09ERV9ERUYoU0NPUEUsMHhjNCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKFJCUkFDLDB4ZTApICBcCi0tICBfU1RBQl9DT0RFX0RFRihCQ09NTSwweGUyKSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoRUNPTU0sMHhlNCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKEVDT01MLDB4ZTgpICBcCi0tICBfU1RBQl9DT0RFX0RFRihOQlRFWFQsMHhmMCkgXAotLSAgX1NUQUJfQ09ERV9ERUYoTkJEQVRBLDB4ZjIpIFwKLS0gIF9TVEFCX0NPREVfREVGKE5CQlNTLDB4ZjQpICBcCi0tICBfU1RBQl9DT0RFX0RFRihOQlNUUywweGY2KSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoTkJMQ1MsMHhmOCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKExFTkcsMHhmZSkKLS0KLS1lbnVtIF9fc3RhYl9kZWJ1Z19jb2RlIHsKLS0jZGVmaW5lIF9TVEFCX0NPREVfREVGKHgseSkgIE5fIyN4ID0geSwKLS1fU1RBQl9DT0RFX0xJU1QKLS0jdW5kZWYgX1NUQUJfQ09ERV9ERUYKLS19OwotLQotLSNpZmRlZiBfX2NwbHVzcGx1cwotLX0gIC8vIGV4dGVybiAiQyIKLS0jZW5kaWYgIC8vIF9fY3BsdXNwbHVzCi0tCi0tI2VuZGlmICAvLyBfX0JJT05JQ19IQVZFX1NUQUJfSAotLQotLSNlbmRpZiAgLy8gR09PR0xFX0JSRUFLUEFEX0NPTU1PTl9BTkRST0lEX0lOQ0xVREVfU1RBQl9ICi1kaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9jb21tb24uZ3lwIGIvc3JjL2NvbW1vbi9jb21tb24uZ3lwCi1pbmRleCBmMDFlZGU1Li5jNDlmZjg1IDEwMDY0NAotLS0tIGEvc3JjL2NvbW1vbi9jb21tb24uZ3lwCi0rKysgYi9zcmMvY29tbW9uL2NvbW1vbi5neXAKLUBAIC00Niw3ICs0Niw2IEBACi0gICAgICAgICAnYW5kcm9pZC9pbmNsdWRlL2VsZi5oJywKLSAgICAgICAgICdhbmRyb2lkL2luY2x1ZGUvbGluay5oJywKLSAgICAgICAgICdhbmRyb2lkL2luY2x1ZGUvc2dpZGVmcy5oJywKLS0gICAgICAgICdhbmRyb2lkL2luY2x1ZGUvc3RhYi5oJywKLSAgICAgICAgICdhbmRyb2lkL2luY2x1ZGUvc3lzL3Byb2Nmcy5oJywKLSAgICAgICAgICdhbmRyb2lkL2luY2x1ZGUvc3lzL3NpZ25hbC5oJywKLSAgICAgICAgICdhbmRyb2lkL2luY2x1ZGUvc3lzL3VzZXIuaCcsCi1kaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9zdGFic19yZWFkZXIuY2MgYi9zcmMvY29tbW9uL3N0YWJzX3JlYWRlci5jYwotaW5kZXggNjAxOWZjNy4uOTU2MmNhYSAxMDA2NDQKLS0tLSBhL3NyYy9jb21tb24vc3RhYnNfcmVhZGVyLmNjCi0rKysgYi9zcmMvY29tbW9uL3N0YWJzX3JlYWRlci5jYwotQEAgLTM0LDcgKzM0LDYgQEAKLSAjaW5jbHVkZSAiY29tbW9uL3N0YWJzX3JlYWRlci5oIgotIAotICNpbmNsdWRlIDxhc3NlcnQuaD4KLS0jaW5jbHVkZSA8c3RhYi5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSAKLSAjaW5jbHVkZSA8c3RyaW5nPgotZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vc3RhYnNfcmVhZGVyLmggYi9zcmMvY29tbW9uL3N0YWJzX3JlYWRlci5oCi1pbmRleCBkODlhZmMwLi41OTFmMDA3IDEwMDY0NAotLS0tIGEvc3JjL2NvbW1vbi9zdGFic19yZWFkZXIuaAotKysrIGIvc3JjL2NvbW1vbi9zdGFic19yZWFkZXIuaAotQEAgLTUzLDEyICs1MywxOSBAQAotICNpbmNsdWRlIDxjb25maWcuaD4KLSAjZW5kaWYKLSAKLS0jaWZkZWYgSEFWRV9BX09VVF9ICi0tI2luY2x1ZGUgPGEub3V0Lmg+Ci0tI2VuZGlmCi0gI2lmZGVmIEhBVkVfTUFDSF9PX05MSVNUX0gKLSAjaW5jbHVkZSA8bWFjaC1vL25saXN0Lmg+Ci0gI2VuZGlmCi0rLy8gRGVmaW5pdGlvbnMgZnJvbSA8c3RhYi5oPiBhbmQgPGEub3V0Lmg+IGZvciBzeXN0ZW1zIHdoaWNoCi0rLy8gZG8gbm90IGhhdmUgdGhlbQotKyN1bmRlZiBOX1VOREYKLSsjZGVmaW5lIE5fVU5ERiAweDAKLSsjZGVmaW5lIE5fRlVOIDB4MjQKLSsjZGVmaW5lIE5fU0xJTkUgMHg0NAotKyNkZWZpbmUgTl9TTyAweDY0Ci0rI2RlZmluZSBOX0xTWU0gMHg4MAotKyNkZWZpbmUgTl9CSU5DTCAweDgyCi0rI2RlZmluZSBOX1NPTCAweDg0Ci0gCi0gI2luY2x1ZGUgPHN0cmluZz4KLSAjaW5jbHVkZSA8dmVjdG9yPgotZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vc3RhYnNfcmVhZGVyX3VuaXR0ZXN0LmNjIGIvc3JjL2NvbW1vbi9zdGFic19yZWFkZXJfdW5pdHRlc3QuY2MKLWluZGV4IGE4NGRhMWMuLjg1NGFjNDIgMTAwNjQ0Ci0tLS0gYS9zcmMvY29tbW9uL3N0YWJzX3JlYWRlcl91bml0dGVzdC5jYwotKysrIGIvc3JjL2NvbW1vbi9zdGFic19yZWFkZXJfdW5pdHRlc3QuY2MKLUBAIC0zMyw3ICszMyw2IEBACi0gCi0gI2luY2x1ZGUgPGFzc2VydC5oPgotICNpbmNsdWRlIDxlcnJuby5oPgotLSNpbmNsdWRlIDxzdGFiLmg+Ci0gI2luY2x1ZGUgPHN0ZGFyZy5oPgotICNpbmNsdWRlIDxzdGRsaWIuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0tLSAKLTIuMC41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2JyZWFrcGFkL2JyZWFrcGFkX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2JyZWFrcGFkL2JyZWFrcGFkX2dpdC5iYgppbmRleCA1ZjZkODJjLi5kOTc3M2M5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9icmVha3BhZC9icmVha3BhZF9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvYnJlYWtwYWQvYnJlYWtwYWRfZ2l0LmJiCkBAIC00MSw2ICs0MSw3IEBACiAgICAgICAgICAgIGZpbGU6Ly8wMDA1LW1kMmNvcmUtUmVwbGFjZS1iYXNlbmFtZS5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAyLVVzZS1fZnBzdGF0ZS1pbnN0ZWFkLW9mLV9saWJjX2Zwc3RhdGUtb24tbGludXgucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vbWNvbnRleHQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1kaXNhYmxlLWNhbGxzLXRvLWdldGNvbnRleHQtd2l0aC1tdXNsLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtbHNzLU1hdGNoLXN5c2NhbGxzLXRvLW1hdGNoLW11c2wucGF0Y2g7cGF0Y2hkaXI9c3JjL3RoaXJkX3BhcnR5L2xzcyBcCiAgICAgICAgICAgIGZpbGU6Ly9taXBzX2FzbV9zZ2lkZWZzLnBhdGNoO3BhdGNoZGlyPXNyYy90aGlyZF9wYXJ0eS9sc3MgXAogIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvY29uY3VycmVuY3lraXQvY29uY3VycmVuY3lraXQvY3Jvc3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jb25jdXJyZW5jeWtpdC9jb25jdXJyZW5jeWtpdC9jcm9zcy5wYXRjaAppbmRleCBkM2JmYWI3Li45ZTUwNThmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jb25jdXJyZW5jeWtpdC9jb25jdXJyZW5jeWtpdC9jcm9zcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jb25jdXJyZW5jeWtpdC9jb25jdXJyZW5jeWtpdC9jcm9zcy5wYXRjaApAQCAtMSw4ICsxLDE2IEBACi1JbmRleDogZ2l0L2NvbmZpZ3VyZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL2NvbmZpZ3VyZQkyMDEyLTExLTE5IDIxOjA3OjUxLjkxNzQyOTQ2NSAtMDgwMAotKysrIGdpdC9jb25maWd1cmUJMjAxMi0xMS0xOSAyMToxMzoxOS4zMzc0MzcyNzggLTA4MDAKLUBAIC00MzksMTQgKzQ0MiwxOCBAQAorRnJvbSBhYjBlZWM3ODM4MmJkMDBjZTUzM2FlYzJjODRmZDUwYzE3MzMwMzNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFNhdCwgNSBKYW4gMjAxMyAxOTo0Mjo1MSAtMDgwMAorCistLS0KKyBjb25maWd1cmUgfCAzMiArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQoraW5kZXggNzZjMjgxMi4uNzhjZTJmZiAxMDA3NTUKKy0tLSBhL2NvbmZpZ3VyZQorKysrIGIvY29uZmlndXJlCitAQCAtNTM1LDE0ICs1MzUsMTggQEAgZWxzZQogIAlHWklQX1NVRkZJWD0iLmd6IgogIGZpCiAgCkBAIC0yNSwxMiArMzMsMTYgQEAKICsJY2F0IDw8IEVPRiA+IC4xLmMKICAjaW5jbHVkZSA8c3RkaW8uaD4KICBpbnQgbWFpbih2b2lkKSB7Ci0gI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+PSA0KQotQEAgLTU2OSwxNiArNTc2LDE2IEBACisgI2lmIGRlZmluZWQoX1dJTjMyKQorQEAgLTU2OSwxNiArNTczLDE2IEBAIGludCBtYWluKHZvaWQpIHsKICAjZW5kaWYKICB9CiAgRU9GCi0tCisrCSRDQyAtbyAuMSAuMS5jCisrCUNPTVBJTEVSPWAuLy4xYAorKwlyPSQ/CisrCXJtIC1mIC4xLmMgLjEKKyAKIC0kQ0MgLW8gLjEgLjEuYwogLUNPTVBJTEVSPWAuLy4xYAogLXI9JD8KQEAgLTQwLDExICs1Miw2IEBACiAtCWFzc2VydCAiIiAidXBkYXRlIGNvbXBpbGVyIgogLWVsc2UKIC0JZWNobyAic3VjY2VzcyBbJENDXSIKLSsJJENDIC1vIC4xIC4xLmMKLSsJQ09NUElMRVI9YC4vLjFgCi0rCXI9JD8KLSsJcm0gLWYgLjEuYyAuMQotKwogKwlpZiB0ZXN0ICIkciIgLW5lIDA7IHRoZW4KICsJCWFzc2VydCAiIiAidXBkYXRlIGNvbXBpbGVyIgogKwllbHNlCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jcHVpZC9jcHVpZF8yMDE3MDEyMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2NwdWlkL2NwdWlkXzIwMTcwMTIyLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhNzBmNzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jcHVpZC9jcHVpZF8yMDE3MDEyMi5iYgpAQCAtMCwwICsxLDIyIEBACitTVU1NQVJZID0gIkxpbnV4IHRvb2wgdG8gZHVtcCB4ODYgQ1BVSUQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIENQVShzKSIKK0RFU0NSSVBUSU9OID0gImNwdWlkIGR1bXBzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBDUFUocykgZ2F0aGVyZWQgXAorZnJvbSB0aGUgQ1BVSUQgaW5zdHJ1Y3Rpb24sIGFuZCBhbHNvIGRldGVybWluZXMgdGhlIGV4YWN0IG1vZGVsIG9mIENQVShzKS4gXAorSXQgc3VwcG9ydHMgSW50ZWwsIEFNRCwgYW5kIFZJQSBDUFVzLCBhcyB3ZWxsIGFzIG9sZGVyIFRyYW5zbWV0YSwgQ3lyaXgsIFwKK1VNQywgTmV4R2VuLCBSaXNlLCBhbmQgU2lTIENQVXMiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMiCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5ldGFsbGVuLmNvbS8ke0JQTn0vJHtCUH0uc3JjLnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICIxYzQ2YTY2NjI2MjZjNWE2ZWFjYTYyNmYyM2E1YTdkNyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2Njc2MTJhYWU2NzA0MzQxZGQxMDg0NGU5N2M4NGM1YzVjODcwMDgxN2E1OTM3YTNjMjkzYjU1MDEzYmM0ODY1IgorCitDT01QQVRJQkxFX0hPU1QgPSAiKGkuODZ8eDg2XzY0KS4qLWxpbnV4IgorCisjIFRoZSBpbnN0YWxsIHJ1bGUgZnJvbSB0aGUgTWFrZWZpbGUgaGFzIGhhcmRjb2RlZCBwYXRocywgc28gd2UgZHVwbGljYXRlCisjIHRoZSBhY3Rpb25zIHRvIGFjY29tbW9kYXRlIGRpZmZlcmVudCBwYXRocy4KK2RvX2luc3RhbGwgKCkgeworICAgIGluc3RhbGwgLWQgLW03NTUgJHtEfS8ke2JpbmRpcn0KKyAgICBpbnN0YWxsIC1tNzU1ICR7Qn0vY3B1aWQgJHtEfS8ke2JpbmRpcn0vY3B1aWQKKyAgICBpbnN0YWxsIC1kIC1tNzU1ICR7RH0vJHttYW5kaXJ9CisgICAgaW5zdGFsbCAtbTQ0NCAke0J9L2NwdWlkLm1hbi5neiAke0R9LyR7bWFuZGlyfQorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZmxhdGJ1ZmZlcnMvZmxhdGJ1ZmZlcnNfMS43LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9mbGF0YnVmZmVycy9mbGF0YnVmZmVyc18xLjkuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZmxhdGJ1ZmZlcnMvZmxhdGJ1ZmZlcnNfMS43LjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2ZsYXRidWZmZXJzL2ZsYXRidWZmZXJzXzEuOS4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nZWFueS9nZWFueS1wbHVnaW5zXzEuMzEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nZWFueS9nZWFueS1wbHVnaW5zXzEuMzEuYmIKaW5kZXggMjdmZTg2MC4uZDhmMmY4OSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ2VhbnkvZ2VhbnktcGx1Z2luc18xLjMxLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dlYW55L2dlYW55LXBsdWdpbnNfMS4zMS5iYgpAQCAtMTEsNiArMTEsNyBAQAogfQogCiBERVBFTkRTID0gIiBcCisgICAgZnJpYmlkaSBcCiAgICAgZ2VhbnkgXAogICAgIGxpYnhtbDIgXAogICAgIGxpYnNvdXAtMi40IFwKQEAgLTIyLDcgKzIzLDkgQEAKICAgICBsaWJnaXQyIFwKICIKIAotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGd0ay1pY29uLWNhY2hlCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBhdXRvdG9vbHMgcGtnY29uZmlnIGd0ay1pY29uLWNhY2hlCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIFNSQ19VUkkgPSAiaHR0cDovL3BsdWdpbnMuZ2Vhbnkub3JnLyR7UE59LyR7UE59LSR7UFZ9LnRhci5iejIiCiBTUkNfVVJJW21kNXN1bV0gPSAiODA4ZjkwNDhiNzdmZDk3MDQ1NjllZDJiYTEyYTU2ZTkiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nZWFueS9nZWFueV8xLjMxLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ2VhbnkvZ2VhbnlfMS4zMS5iYgppbmRleCBjZTM2ZTFlLi5iYjlkOGJjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nZWFueS9nZWFueV8xLjMxLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dlYW55L2dlYW55XzEuMzEuYmIKQEAgLTUsNyArNSw5IEBACiAKIERFUEVORFMgPSAiZ3RrKyBsaWJ4bWwtcGFyc2VyLXBlcmwtbmF0aXZlIHB5dGhvbjMtZG9jdXRpbHMtbmF0aXZlIGludGx0b29sLW5hdGl2ZSIKIAotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIHBlcmxuYXRpdmUgcHl0aG9ubmF0aXZlIGdldHRleHQKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcgcGVybG5hdGl2ZSBweXRob25uYXRpdmUgZ2V0dGV4dAorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBTUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZC5nZWFueS5vcmcvJHtCUH0udGFyLmJ6MiIKIFNSQ19VUklbbWQ1c3VtXSA9ICIzODYwMDBiZTZiMjY5NzJjNmE2OTk5MzljMzdjZGEzNCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlM18zLjguNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlM18zLjguNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRmNjAwMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTNfMy44LjUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1TVU1NQVJZID0gIkdsYWRlIC0gQSBVc2VyIEludGVyZmFjZSBEZXNpZ25lciIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9nbmFzaCIKLUxJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1hYWJlODc1OTFjYjhhZTBmM2M2OGJlNjk3N2JiNTUyMiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkdQTDttZDU9OWFjMmU3Y2ZmMWRkYWY0OGI2ZWFiNjAyOGYyM2VmODggXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5MR1BMO21kNT0yNTI4OTBkOWVlZTI2YWFiN2I0MzJlOGI4YTYxNjQ3NSIKLURFUEVORFMgPSAiZ3RrKyBnbm9tZS1kb2MtdXRpbHMgZ25vbWUtY29tbW9uIGxpYnhtbDIgaW50bHRvb2wtbmF0aXZlIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgcHl0aG9ubmF0aXZlIGd0ay1pY29uLWNhY2hlCi0KLVNSQ19VUkkgPSAiaHR0cDovL2Z0cC5nbm9tZS5vcmcvcHViL0dOT01FL3NvdXJjZXMvZ2xhZGUzLzMuOC9nbGFkZTMtJHtQVn0udGFyLnh6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtZ25vbWUtZG9jLXV0aWxzLm1ha2Utc3lzcm9vdGVkLXBrZy1jb25maWcucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1maXgtZ2NjLTYtYnVpbGQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1BZGQtR19HTlVDX1BSSU5URi1vbi1mdW5jdGlvbnMtd2l0aC1mb3JtYXQtc3RyaW5ncy5wYXRjaCBcCi0gICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICI0ZTRiNGY1ZWUzNGEwM2UwMTdlNGNlZjk3ZDc5NmMxZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1OGE1ZjZlNGRmNDAyODIzMGRkZWNjNzRjNTY0ODA4YjdlYzQ0NzFiMTkyNTA1OGUyOTMwNGY3NzhiNmIyNzM1IgotCi1FWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1zY3JvbGxrZWVwZXIiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIiCi1QQUNLQUdFQ09ORklHW2dub21lXSA9ICItLWVuYWJsZS1nbm9tZSwtLWRpc2FibGUtZ25vbWUsbGliYm9ub2JvdWkgbGliZ25vbWV1aSIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vaWNvbnMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZV8zLjIwLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZV8zLjIwLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzM2I2ZTMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGVfMy4yMC4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotU1VNTUFSWSA9ICJHbGFkZSAtIEEgVXNlciBJbnRlcmZhY2UgRGVzaWduZXIiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ25hc2giCi1MSUNFTlNFID0gIkdQTHYyICYgTEdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YWFiZTg3NTkxY2I4YWUwZjNjNjhiZTY5NzdiYjU1MjIgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5HUEw7bWQ1PTlhYzJlN2NmZjFkZGFmNDhiNmVhYjYwMjhmMjNlZjg4IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuTEdQTDttZDU9MjUyODkwZDllZWUyNmFhYjdiNDMyZThiOGE2MTY0NzUiCi1ERVBFTkRTID0gImd0aysgZ3RrKzMgZ2xpYi0yLjAgbGlieG1sMiBpbnRsdG9vbC1uYXRpdmUgXAotICAgICAgICAgICBnbm9tZS1jb21tb24tbmF0aXZlIFwKLSIKLQotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ25vbWViYXNlIGdvYmplY3QtaW50cm9zcGVjdGlvbgotCi1TUkNfVVJJID0gImh0dHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9HTk9NRS9zb3VyY2VzL2dsYWRlLzMuMjAvZ2xhZGUtJHtQVn0udGFyLnh6IFwKLSAgICAgICAgICAgZmlsZTovL3JlbW92ZS15ZWxwLWhlbHAtcnVsZXMtdmFyLnBhdGNoIFwKLSAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiOTk2NGEyZGExNGM1Zjg0NWVhZTM2Mzg4OTU4NmNhNDMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiODJkOTZkY2E1ZGVjNDBlZTM0ZTJmNDFkNDljMTNiNGVhNTBkYThmMzJhM2E0OWNhMmRhODAyZmYxNGRjMThmZSIKLQotRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUtbWFuLXBhZ2VzIgotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS8qICR7bGliZGlyfS9nbGFkZS9tb2R1bGVzL2xpYmdsYWRlZ3RrLnNvIgotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vZ2xhZGUvbW9kdWxlcy9saWJnbGFkZWd0ay5sYSIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2dsYWRlL21vZHVsZXMvLmRlYnVnL2xpYmdsYWRlZ3RrLnNvIgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZV8zLjIwLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZV8zLjIwLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVlMTczNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlXzMuMjAuMi5iYgpAQCAtMCwwICsxLDI3IEBACitTVU1NQVJZID0gIkdsYWRlIC0gQSBVc2VyIEludGVyZmFjZSBEZXNpZ25lciIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9nbmFzaCIKK0xJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1hYWJlODc1OTFjYjhhZTBmM2M2OGJlNjk3N2JiNTUyMiBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkdQTDttZDU9OWFjMmU3Y2ZmMWRkYWY0OGI2ZWFiNjAyOGYyM2VmODggXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5MR1BMO21kNT0yNTI4OTBkOWVlZTI2YWFiN2I0MzJlOGI4YTYxNjQ3NSIKK0RFUEVORFMgPSAiZ3RrKyBndGsrMyBnbGliLTIuMCBsaWJ4bWwyIGludGx0b29sLW5hdGl2ZSBcCisgICAgICAgICAgIGdub21lLWNvbW1vbi1uYXRpdmUgXAorIgorCisKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcgZ25vbWViYXNlIGdvYmplY3QtaW50cm9zcGVjdGlvbgorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJID0gImh0dHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9HTk9NRS9zb3VyY2VzL2dsYWRlLzMuMjAvZ2xhZGUtJHtQVn0udGFyLnh6IFwKKyAgICAgICAgICAgZmlsZTovL3JlbW92ZS15ZWxwLWhlbHAtcnVsZXMtdmFyLnBhdGNoIFwKKyAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiZDNkZDliYTMzYzdkN2M4NTRhYjIwN2UxYmE4NDRkZGEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDdkMTU0NTU3MDk1MWFlZGVkMjBlOWZkYzZkM2Q4YTU2YWVlZmUyNTM4NzM0NTY4YzUzMzViZTMzNmM2YWJlZCIKKworRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUtbWFuLXBhZ2VzIgorCitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS8qICR7bGliZGlyfS9nbGFkZS9tb2R1bGVzL2xpYmdsYWRlZ3RrLnNvIgorRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vZ2xhZGUvbW9kdWxlcy9saWJnbGFkZWd0ay5sYSIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2dsYWRlL21vZHVsZXMvLmRlYnVnL2xpYmdsYWRlZ3RrLnNvIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ncnBjL2dycGMvMDAwMS1DTWFrZUxpc3RzLnR4dC1GaXgtZ3JwY19jcHBfcGx1Z2luLXBhdGgtZHVyaW5nLWNyb3NzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ3JwYy9ncnBjLzAwMDEtQ01ha2VMaXN0cy50eHQtRml4LWdycGNfY3BwX3BsdWdpbi1wYXRoLWR1cmluZy1jcm9zcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Nzc0ZTYyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ3JwYy9ncnBjLzAwMDEtQ01ha2VMaXN0cy50eHQtRml4LWdycGNfY3BwX3BsdWdpbi1wYXRoLWR1cmluZy1jcm9zcy5wYXRjaApAQCAtMCwwICsxLDY4IEBACitGcm9tIGNjNmRiYWJlYTBlNDUyZWJjOTM2ODJkZjg2MGE3OWVkOWE0NTcyMmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbGV4ZXkgRmlyYWdvIDxhbGV4ZXlfZmlyYWdvQG1lbnRvci5jb20+CitEYXRlOiBGcmksIDIwIE9jdCAyMDE3IDAwOjA0OjE5ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIENNYWtlTGlzdHMudHh0OiBGaXggZ3JwY19jcHBfcGx1Z2luIHBhdGggZHVyaW5nCisgY3Jvc3MtY29tcGlsYXRpb24KKworU2lnbmVkLW9mZi1ieTogQWxleGV5IEZpcmFnbyA8YWxleGV5X2ZpcmFnb0BtZW50b3IuY29tPgorLS0tCisgQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgIHwgOSArKysrKysrKy0KKyB0ZW1wbGF0ZXMvQ01ha2VMaXN0cy50eHQudGVtcGxhdGUgfCA5ICsrKysrKysrLQorIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IGY5Y2Q2MzAuLjk2NjM5MzQgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC0zMjgsNiArMzI4LDEzIEBAIGZ1bmN0aW9uKHByb3RvYnVmX2dlbmVyYXRlX2dycGNfY3BwKQorICAgICByZXR1cm4oKQorICAgZW5kaWYoKQorCisrICAjaWYgY3Jvc3MtY29tcGlsaW5nLCBmaW5kIGhvc3QgcGx1Z2luCisrICBpZihDTUFLRV9DUk9TU0NPTVBJTElORykKKysgICAgICBmaW5kX3Byb2dyYW0oZ1JQQ19DUFBfUExVR0lOIGdycGNfY3BwX3BsdWdpbikKKysgIGVsc2UoKQorKyAgICAgIHNldChnUlBDX0NQUF9QTFVHSU4gJDxUQVJHRVRfRklMRTpncnBjX2NwcF9wbHVnaW4+KQorKyAgZW5kaWYoKQorKworICAgc2V0KF9wcm90b2J1Zl9pbmNsdWRlX3BhdGggLUkgLiAtSSAke1BST1RPQlVGX1dFTExLTk9XTl9JTVBPUlRfRElSfSkKKyAgIGZvcmVhY2goRklMICR7QVJHTn0pCisgICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoQUJTX0ZJTCAke0ZJTH0gQUJTT0xVVEUpCitAQCAtMzQ1LDcgKzM1Miw3IEBAIGZ1bmN0aW9uKHByb3RvYnVmX2dlbmVyYXRlX2dycGNfY3BwKQorICAgICAgIENPTU1BTkQgJHtfZ1JQQ19QUk9UT0JVRl9QUk9UT0NfRVhFQ1VUQUJMRX0KKyAgICAgICBBUkdTIC0tZ3JwY19vdXQ9Z2VuZXJhdGVfbW9ja19jb2RlPXRydWU6JHtfZ1JQQ19QUk9UT19HRU5TX0RJUn0KKyAgICAgICAgICAgIC0tY3BwX291dD0ke19nUlBDX1BST1RPX0dFTlNfRElSfQorLSAgICAgICAgICAgLS1wbHVnaW49cHJvdG9jLWdlbi1ncnBjPSQ8VEFSR0VUX0ZJTEU6Z3JwY19jcHBfcGx1Z2luPgorKyAgICAgICAgICAgLS1wbHVnaW49cHJvdG9jLWdlbi1ncnBjPSR7Z1JQQ19DUFBfUExVR0lOfQorICAgICAgICAgICAgJHtfcHJvdG9idWZfaW5jbHVkZV9wYXRofQorICAgICAgICAgICAgJHtSRUxfRklMfQorICAgICAgIERFUEVORFMgJHtBQlNfRklMfSAke19nUlBDX1BST1RPQlVGX1BST1RPQ30gZ3JwY19jcHBfcGx1Z2luCitkaWZmIC0tZ2l0IGEvdGVtcGxhdGVzL0NNYWtlTGlzdHMudHh0LnRlbXBsYXRlIGIvdGVtcGxhdGVzL0NNYWtlTGlzdHMudHh0LnRlbXBsYXRlCitpbmRleCA2NGRhZjA0Li5hN2U4NjI5IDEwMDY0NAorLS0tIGEvdGVtcGxhdGVzL0NNYWtlTGlzdHMudHh0LnRlbXBsYXRlCisrKysgYi90ZW1wbGF0ZXMvQ01ha2VMaXN0cy50eHQudGVtcGxhdGUKK0BAIC0zNzMsNiArMzczLDEzIEBACisgICAgICAgcmV0dXJuKCkKKyAgICAgZW5kaWYoKQorCisrICAgICNpZiBjcm9zcy1jb21waWxpbmcsIGZpbmQgaG9zdCBwbHVnaW4KKysgICAgaWYoQ01BS0VfQ1JPU1NDT01QSUxJTkcpCisrICAgICAgICBmaW5kX3Byb2dyYW0oZ1JQQ19DUFBfUExVR0lOIGdycGNfY3BwX3BsdWdpbikKKysgICAgZWxzZSgpCisrICAgICAgICBzZXQoZ1JQQ19DUFBfUExVR0lOICQ8VEFSR0VUX0ZJTEU6Z3JwY19jcHBfcGx1Z2luPikKKysgICAgZW5kaWYoKQorKworICAgICBzZXQoX3Byb3RvYnVmX2luY2x1ZGVfcGF0aCAtSSAuIC1JIDwldGV4dD4ke1BST1RPQlVGX1dFTExLTk9XTl9JTVBPUlRfRElSfTwvJXRleHQ+KQorICAgICBmb3JlYWNoKEZJTCA8JXRleHQ+JHtBUkdOfTwvJXRleHQ+KQorICAgICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoQUJTX0ZJTCA8JXRleHQ+JHtGSUx9PC8ldGV4dD4gQUJTT0xVVEUpCitAQCAtMzkwLDcgKzM5Nyw3IEBACisgICAgICAgICBDT01NQU5EIDwldGV4dD4ke19nUlBDX1BST1RPQlVGX1BST1RPQ19FWEVDVVRBQkxFfTwvJXRleHQ+CisgICAgICAgICBBUkdTIC0tZ3JwY19vdXQ9PCV0ZXh0PmdlbmVyYXRlX21vY2tfY29kZT10cnVlOiR7X2dSUENfUFJPVE9fR0VOU19ESVJ9PC8ldGV4dD4KKyAgICAgICAgICAgICAgLS1jcHBfb3V0PTwldGV4dD4ke19nUlBDX1BST1RPX0dFTlNfRElSfTwvJXRleHQ+CistICAgICAgICAgICAgIC0tcGx1Z2luPXByb3RvYy1nZW4tZ3JwYz0kPFRBUkdFVF9GSUxFOmdycGNfY3BwX3BsdWdpbj4KKysgICAgICAgICAgICAgLS1wbHVnaW49cHJvdG9jLWdlbi1ncnBjPSR7Z1JQQ19DUFBfUExVR0lOfQorICAgICAgICAgICAgICA8JXRleHQ+JHtfcHJvdG9idWZfaW5jbHVkZV9wYXRofTwvJXRleHQ+CisgICAgICAgICAgICAgIDwldGV4dD4ke1JFTF9GSUx9PC8ldGV4dD4KKyAgICAgICAgIERFUEVORFMgPCV0ZXh0PiR7QUJTX0ZJTH08LyV0ZXh0PiA8JXRleHQ+JHtfZ1JQQ19QUk9UT0JVRl9QUk9UT0N9PC8ldGV4dD4gZ3JwY19jcHBfcGx1Z2luCistLQorMi43LjQKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dycGMvZ3JwYy8wMDAxLUNNYWtlTGlzdHMudHh0LUZpeC1saWJyYXJpZXMtaW5zdGFsbGF0aW9uLWZvci1MaW51eC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dycGMvZ3JwYy8wMDAxLUNNYWtlTGlzdHMudHh0LUZpeC1saWJyYXJpZXMtaW5zdGFsbGF0aW9uLWZvci1MaW51eC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGQ5NjUyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ3JwYy9ncnBjLzAwMDEtQ01ha2VMaXN0cy50eHQtRml4LWxpYnJhcmllcy1pbnN0YWxsYXRpb24tZm9yLUxpbnV4LnBhdGNoCkBAIC0wLDAgKzEsMTY2IEBACitGcm9tIDhlOWJmOTYyYTQ1YTgyZjFjMmViNTg1OGUyOWZhODlhM2E2MGI1NjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbGV4ZXkgRmlyYWdvIDxhbGV4ZXlfZmlyYWdvQG1lbnRvci5jb20+CitEYXRlOiBNb24sIDMwIE9jdCAyMDE3IDIzOjI0OjQ5ICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggMS80XSBDTWFrZUxpc3RzLnR4dDogRml4IGxpYnJhcmllcyBpbnN0YWxsYXRpb24gZm9yIExpbnV4CisKKyogU2V0IGxpYnMgdmVyc2lvbnMgYXMgaW4gTWFrZWZpbGUKKworU2lnbmVkLW9mZi1ieTogQWxleGV5IEZpcmFnbyA8YWxleGV5X2ZpcmFnb0BtZW50b3IuY29tPgorCislJSBvcmlnaW5hbCBwYXRjaDogMDAwMS1DTWFrZUxpc3RzLnR4dC1GaXgtbGlicmFyaWVzLWluc3RhbGxhdGlvbi1mb3ItTGludXgucGF0Y2gKKy0tLQorIENNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgICAgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIENNYWtlTGlzdHMudHh0ID0+IENNYWtlTGlzdHMudHh0Lm9yaWcgfCAgMAorIDIgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKQorIGNvcHkgQ01ha2VMaXN0cy50eHQgPT4gQ01ha2VMaXN0cy50eHQub3JpZyAoMTAwJSkKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IGIxYTQ5ZGYuLjEzZTY0YWMgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC0zMCw2ICszMCwxNSBAQCBzZXQoUEFDS0FHRV9UQVJOQU1FICAgIiR7UEFDS0FHRV9OQU1FfS0ke1BBQ0tBR0VfVkVSU0lPTn0iKQorIHNldChQQUNLQUdFX0JVR1JFUE9SVCAiaHR0cHM6Ly9naXRodWIuY29tL2dycGMvZ3JwYy9pc3N1ZXMvIikKKyBwcm9qZWN0KCR7UEFDS0FHRV9OQU1FfSBDIENYWCkKKyAKKytzZXQgKENPUkVfVkVSU0lPTl9NQUpPUiAiNCIpCisrc2V0IChDT1JFX1ZFUlNJT04gIjQuMC4wIikKKysKKytzZXQgKENQUF9WRVJTSU9OX01BSk9SICIxIikKKytzZXQgKENQUF9WRVJTSU9OICIke1BBQ0tBR0VfVkVSU0lPTn0iKQorKworK3NldCAoQ1NIQVJQX1ZFUlNJT05fTUFKT1IgIjEiKQorK3NldCAoQ1NIQVJQX1ZFUlNJT04gIiR7UEFDS0FHRV9WRVJTSU9OfSIpCisrCisgc2V0KGdSUENfSU5TVEFMTF9CSU5ESVIgIiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L2JpbiIgQ0FDSEUgUEFUSCAiSW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBmb3IgZXhlY3V0YWJsZXMiKQorIHNldChnUlBDX0lOU1RBTExfTElCRElSICIke0NNQUtFX0lOU1RBTExfUFJFRklYfS9saWIiIENBQ0hFIFBBVEggIkluc3RhbGxhdGlvbiBkaXJlY3RvcnkgZm9yIGxpYnJhcmllcyIpCisgc2V0KGdSUENfSU5TVEFMTF9JTkNMVURFRElSICIke0NNQUtFX0lOU1RBTExfUFJFRklYfS9pbmNsdWRlIiBDQUNIRSBQQVRIICJJbnN0YWxsYXRpb24gZGlyZWN0b3J5IGZvciBoZWFkZXJzIikKK0BAIC04NDEsNiArODUwLDEwIEBAIGlmKFdJTjMyIEFORCBNU1ZDKQorICAgZW5kaWYoKQorIGVuZGlmKCkKKyAKKytpZihfZ1JQQ19QTEFURk9STV9MSU5VWCkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3ByIFBST1BFUlRZIFZFUlNJT04gJHtDT1JFX1ZFUlNJT059KQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncHIgUFJPUEVSVFkgU09WRVJTSU9OICR7Q09SRV9WRVJTSU9OX01BSk9SfSkKKytlbmRpZigpCisgCisgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoZ3ByCisgICBQVUJMSUMgJDxJTlNUQUxMX0lOVEVSRkFDRToke2dSUENfSU5TVEFMTF9JTkNMVURFRElSfT4gJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGU+CitAQCAtMTIyMSw2ICsxMjM0LDEwIEBAIGlmKFdJTjMyIEFORCBNU1ZDKQorICAgZW5kaWYoKQorIGVuZGlmKCkKKyAKKytpZihfZ1JQQ19QTEFURk9STV9MSU5VWCkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwYyBQUk9QRVJUWSBWRVJTSU9OICR7Q09SRV9WRVJTSU9OfSkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwYyBQUk9QRVJUWSBTT1ZFUlNJT04gJHtDT1JFX1ZFUlNJT05fTUFKT1J9KQorK2VuZGlmKCkKKyAKKyB0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhncnBjCisgICBQVUJMSUMgJDxJTlNUQUxMX0lOVEVSRkFDRToke2dSUENfSU5TVEFMTF9JTkNMVURFRElSfT4gJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGU+CitAQCAtMTUzNSw2ICsxNTUyLDEwIEBAIGlmKFdJTjMyIEFORCBNU1ZDKQorICAgZW5kaWYoKQorIGVuZGlmKCkKKyAKKytpZihfZ1JQQ19QTEFURk9STV9MSU5VWCkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwY19jcm9uZXQgUFJPUEVSVFkgVkVSU0lPTiAke0NPUkVfVkVSU0lPTn0pCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGNfY3JvbmV0IFBST1BFUlRZIFNPVkVSU0lPTiAke0NPUkVfVkVSU0lPTl9NQUpPUn0pCisrZW5kaWYoKQorIAorIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGdycGNfY3JvbmV0CisgICBQVUJMSUMgJDxJTlNUQUxMX0lOVEVSRkFDRToke2dSUENfSU5TVEFMTF9JTkNMVURFRElSfT4gJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGU+CitAQCAtMjM3Nyw2ICsyMzk4LDEwIEBAIGlmKFdJTjMyIEFORCBNU1ZDKQorICAgZW5kaWYoKQorIGVuZGlmKCkKKyAKKytpZihfZ1JQQ19QTEFURk9STV9MSU5VWCkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwY191bnNlY3VyZSBQUk9QRVJUWSBWRVJTSU9OICR7Q09SRV9WRVJTSU9OfSkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwY191bnNlY3VyZSBQUk9QRVJUWSBTT1ZFUlNJT04gJHtDT1JFX1ZFUlNJT05fTUFKT1J9KQorK2VuZGlmKCkKKyAKKyB0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhncnBjX3Vuc2VjdXJlCisgICBQVUJMSUMgJDxJTlNUQUxMX0lOVEVSRkFDRToke2dSUENfSU5TVEFMTF9JTkNMVURFRElSfT4gJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGU+CitAQCAtMjU5Miw2ICsyNjE3LDEwIEBAIGlmKFdJTjMyIEFORCBNU1ZDKQorICAgZW5kaWYoKQorIGVuZGlmKCkKKyAKKytpZihfZ1JQQ19QTEFURk9STV9MSU5VWCkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwYysrIFBST1BFUlRZIFZFUlNJT04gJHtDUFBfVkVSU0lPTn0pCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGMrKyBQUk9QRVJUWSBTT1ZFUlNJT04gJHtDUFBfVkVSU0lPTl9NQUpPUn0pCisrZW5kaWYoKQorIAorIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGdycGMrKworICAgUFVCTElDICQ8SU5TVEFMTF9JTlRFUkZBQ0U6JHtnUlBDX0lOU1RBTExfSU5DTFVERURJUn0+ICQ8QlVJTERfSU5URVJGQUNFOiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9pbmNsdWRlPgorQEAgLTMwNzgsNiArMzEwNywxMCBAQCBpZihXSU4zMiBBTkQgTVNWQykKKyAgIGVuZGlmKCkKKyBlbmRpZigpCisgCisraWYoX2dSUENfUExBVEZPUk1fTElOVVgpCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGMrK19jcm9uZXQgUFJPUEVSVFkgVkVSU0lPTiAke0NQUF9WRVJTSU9OfSkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwYysrX2Nyb25ldCBQUk9QRVJUWSBTT1ZFUlNJT04gJHtDUFBfVkVSU0lPTl9NQUpPUn0pCisrZW5kaWYoKQorIAorIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGdycGMrK19jcm9uZXQKKyAgIFBVQkxJQyAkPElOU1RBTExfSU5URVJGQUNFOiR7Z1JQQ19JTlNUQUxMX0lOQ0xVREVESVJ9PiAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5jbHVkZT4KK0BAIC0zMjgyLDYgKzMzMTUsMTEgQEAgcHJvdG9idWZfZ2VuZXJhdGVfZ3JwY19jcHAoCisgICBzcmMvcHJvdG8vZ3JwYy9zdGF0dXMvc3RhdHVzLnByb3RvCisgKQorIAorK2lmKF9nUlBDX1BMQVRGT1JNX0xJTlVYKQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjKytfZXJyb3JfZGV0YWlscyBQUk9QRVJUWSBWRVJTSU9OICR7Q1BQX1ZFUlNJT059KQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjKytfZXJyb3JfZGV0YWlscyBQUk9QRVJUWSBTT1ZFUlNJT04gJHtDUFBfVkVSU0lPTl9NQUpPUn0pCisrZW5kaWYoKQorKworIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGdycGMrK19lcnJvcl9kZXRhaWxzCisgICBQVUJMSUMgJDxJTlNUQUxMX0lOVEVSRkFDRToke2dSUENfSU5TVEFMTF9JTkNMVURFRElSfT4gJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGU+CisgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfQorQEAgLTM0MDgsNiArMzQ0NiwxMSBAQCBwcm90b2J1Zl9nZW5lcmF0ZV9ncnBjX2NwcCgKKyAgIHNyYy9wcm90by9ncnBjL3JlZmxlY3Rpb24vdjFhbHBoYS9yZWZsZWN0aW9uLnByb3RvCisgKQorIAorK2lmKF9nUlBDX1BMQVRGT1JNX0xJTlVYKQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjKytfcmVmbGVjdGlvbiBQUk9QRVJUWSBWRVJTSU9OICR7Q1BQX1ZFUlNJT059KQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjKytfcmVmbGVjdGlvbiBQUk9QRVJUWSBTT1ZFUlNJT04gJHtDUFBfVkVSU0lPTl9NQUpPUn0pCisrZW5kaWYoKQorKworIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGdycGMrK19yZWZsZWN0aW9uCisgICBQVUJMSUMgJDxJTlNUQUxMX0lOVEVSRkFDRToke2dSUENfSU5TVEFMTF9JTkNMVURFRElSfT4gJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGU+CisgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfQorQEAgLTM4MjcsNiArMzg3MCwxMCBAQCBpZihXSU4zMiBBTkQgTVNWQykKKyAgIGVuZGlmKCkKKyBlbmRpZigpCisgCisraWYoX2dSUENfUExBVEZPUk1fTElOVVgpCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGMrK191bnNlY3VyZSBQUk9QRVJUWSBWRVJTSU9OICR7Q1BQX1ZFUlNJT059KQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjKytfdW5zZWN1cmUgUFJPUEVSVFkgU09WRVJTSU9OICR7Q1BQX1ZFUlNJT05fTUFKT1J9KQorK2VuZGlmKCkKKyAKKyB0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhncnBjKytfdW5zZWN1cmUKKyAgIFBVQkxJQyAkPElOU1RBTExfSU5URVJGQUNFOiR7Z1JQQ19JTlNUQUxMX0lOQ0xVREVESVJ9PiAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5jbHVkZT4KK0BAIC00MTQwLDYgKzQxODcsMTAgQEAgaWYoV0lOMzIgQU5EIE1TVkMpCisgICBlbmRpZigpCisgZW5kaWYoKQorIAorK2lmKF9nUlBDX1BMQVRGT1JNX0xJTlVYKQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjX3BsdWdpbl9zdXBwb3J0IFBST1BFUlRZIFZFUlNJT04gJHtDT1JFX1ZFUlNJT059KQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjX3BsdWdpbl9zdXBwb3J0IFBST1BFUlRZIFNPVkVSU0lPTiAke0NPUkVfVkVSU0lPTl9NQUpPUn0pCisrZW5kaWYoKQorIAorIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGdycGNfcGx1Z2luX3N1cHBvcnQKKyAgIFBVQkxJQyAkPElOU1RBTExfSU5URVJGQUNFOiR7Z1JQQ19JTlNUQUxMX0lOQ0xVREVESVJ9PiAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5jbHVkZT4KK0BAIC00NjQ5LDYgKzQ3MDAsMTAgQEAgaWYoV0lOMzIgQU5EIE1TVkMpCisgICBlbmRpZigpCisgZW5kaWYoKQorIAorK2lmKF9nUlBDX1BMQVRGT1JNX0xJTlVYKQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjX2NzaGFycF9leHQgUFJPUEVSVFkgVkVSU0lPTiAke0NTSEFSUF9WRVJTSU9OfSkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwY19jc2hhcnBfZXh0IFBST1BFUlRZIFNPVkVSU0lPTiAke0NTSEFSUF9WRVJTSU9OX01BSk9SfSkKKytlbmRpZigpCisgCisgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoZ3JwY19jc2hhcnBfZXh0CisgICBQVUJMSUMgJDxJTlNUQUxMX0lOVEVSRkFDRToke2dSUENfSU5TVEFMTF9JTkNMVURFRElSfT4gJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGU+CitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dC5vcmlnCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK2NvcHkgZnJvbSBDTWFrZUxpc3RzLnR4dAorY29weSB0byBDTWFrZUxpc3RzLnR4dC5vcmlnCistLSAKKzIuMTYuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ncnBjL2dycGMvMDAwNC1DTWFrZUxpc3RzLnR4dC1GaW5kLWMtYXJlcy1pbi10YXJnZXQtc3lzcm9vdC1hbG9uZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dycGMvZ3JwYy8wMDA0LUNNYWtlTGlzdHMudHh0LUZpbmQtYy1hcmVzLWluLXRhcmdldC1zeXNyb290LWFsb25lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ODUwMjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ncnBjL2dycGMvMDAwNC1DTWFrZUxpc3RzLnR4dC1GaW5kLWMtYXJlcy1pbi10YXJnZXQtc3lzcm9vdC1hbG9uZS5wYXRjaApAQCAtMCwwICsxLDQyIEBACitGcm9tIGE0OThiNTZiYTk2OTQ4MDE1ZjBmMjc4NGIyYWI4Mjk2OTQ2NzE2ZWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogVGh1LCAxIEZlYiAyMDE4IDIzOjI4OjE3IC0wODAwCitTdWJqZWN0OiBbUEFUQ0ggNC80XSBDTWFrZUxpc3RzLnR4dDogRmluZCBjLWFyZXMgaW4gdGFyZ2V0IHN5c3Jvb3QgYWxvbmUKKworQ3VycmVudCBjb2RlIGxldHMgaXQgbG9vayBpbnRvIG5hdGl2ZSBzeXNyb290IGFzIHdlbGwKK3doaWNoIGlzIHRoZW4gcHJlZmVycmVkIGR1cmluZyBjcm9zcyBjb21waWxlIGFuZCBpdCBhZGRzCithYnNvbHV0ZSBwYXRoIHRvIGxpYmNhcmVzIGludG8gbGlua2VyIGZsYWdzCitvbiBoZXRlcm9nZW5vdXMgYXJjaGl0ZWN0dXJlcyBsaW5rZXIgY29tcGxhaW5zIGFuZCBidWlsZAorZmFpbHMKKworfCAvbW50L2Evb2UvYnVpbGQvdG1wL3dvcmsvY29ydGV4YTd0MmhmLW5lb24tdmZwdjQtYmVjLWxpbnV4LWdudWVhYmkvZ3JwYy8xLjguNS1yMC9yZWNpcGUtc3lzcm9vdC1uYXRpdmUvdXNyL2xpYi9saWIKK2NhcmVzLnNvLjIuMi4wOiBmaWxlIG5vdCByZWNvZ25pemVkOiBGaWxlIGZvcm1hdCBub3QgcmVjb2duaXplZAorfCBjb2xsZWN0MjogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KKyBDTWFrZUxpc3RzLnR4dCB8IDYgKystLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IDFkN2VlZjEuLjA1ODQyM2QgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC0xNTMsMTAgKzE1Myw4IEBAIGlmKCIke2dSUENfQ0FSRVNfUFJPVklERVJ9IiBTVFJFUVVBTCAibW9kdWxlIikKKyAgICAgc2V0KGdSUENfSU5TVEFMTCBGQUxTRSkKKyAgIGVuZGlmKCkKKyBlbHNlaWYoIiR7Z1JQQ19DQVJFU19QUk9WSURFUn0iIFNUUkVRVUFMICJwYWNrYWdlIikKKy0gIGZpbmRfcGFja2FnZShjLWFyZXMgUkVRVUlSRUQgQ09ORklHKQorLSAgaWYoVEFSR0VUIGMtYXJlczo6Y2FyZXMpCistICAgIHNldChfZ1JQQ19DQVJFU19MSUJSQVJJRVMgYy1hcmVzOjpjYXJlcykKKy0gIGVuZGlmKCkKKysgIGZpbmRfcGFja2FnZShjLWFyZXMgUkVRVUlSRUQpCisrICBzZXQoX2dSUENfQ0FSRVNfTElCUkFSSUVTIGNhcmVzKQorICAgc2V0KF9nUlBDX0ZJTkRfQ0FSRVMgImlmKE5PVCBjLWFyZXNfRk9VTkQpXG4gIGZpbmRfcGFja2FnZShjLWFyZXMgQ09ORklHKVxuZW5kaWYoKSIpCisgZW5kaWYoKQorIAorLS0gCisyLjE2LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ3JwYy9ncnBjXzEuOC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ3JwYy9ncnBjXzEuOC41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ODNlYzEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ncnBjL2dycGNfMS44LjUuYmIKQEAgLTAsMCArMSwzNiBAQAorREVTQ1JJUFRJT04gPSAiQSBoaWdoIHBlcmZvcm1hbmNlLCBvcGVuIHNvdXJjZSwgZ2VuZXJhbC1wdXJwb3NlIFJQQyBmcmFtZXdvcmsuIFwKK1Byb3ZpZGVzIGdSUEMgbGlicmFyaWVzIGZvciBtdWx0aXBsZSBsYW5ndWFnZXMgd3JpdHRlbiBvbiB0b3Agb2Ygc2hhcmVkIEMgY29yZSBsaWJyYXJ5IFwKKyhDKyssIE5vZGUuanMsIFB5dGhvbiwgUnVieSwgT2JqZWN0aXZlLUMsIFBIUCwgQyMpIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2dycGMvZ3JwYyIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiQXBhY2hlLTIiCisKK0RFUEVORFMgPSAiZ2ZsYWdzIGMtYXJlcyBwcm90b2J1ZiBwcm90b2J1Zi1uYXRpdmUgcHJvdG9idWYtYyBwcm90b2J1Zi1jLW5hdGl2ZSBvcGVuc3NsIgorREVQRU5EU19hcHBlbmRfY2xhc3MtdGFyZ2V0ID0gIiBndGVzdCBncnBjLW5hdGl2ZSAiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTNiODNlZjk2Mzg3ZjE0NjU1ZmM4NTRkZGMzYzZiZDU3IgorCitTUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9ncnBjL2dycGMvYXJjaGl2ZS92JHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtQ01ha2VMaXN0cy50eHQtRml4LWxpYnJhcmllcy1pbnN0YWxsYXRpb24tZm9yLUxpbnV4LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDQtQ01ha2VMaXN0cy50eHQtRmluZC1jLWFyZXMtaW4tdGFyZ2V0LXN5c3Jvb3QtYWxvbmUucGF0Y2ggXAorICAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiYjU2NWZhNjc4N2U0MmY0OTY5Mzk1ODcwYzJhZDQzNmUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGY5MTY4ZGE3NjBmZDJlZTk3MGM3NGM5ZDFiNjMzNzdlMDAyNGJlMjQ4ZGVhYTg0NGU3ODRkMGRmNDc1OTlkZSIKKworU1JDX1VSSV9hcHBlbmRfY2xhc3MtdGFyZ2V0ID0gIiBmaWxlOi8vMDAwMS1DTWFrZUxpc3RzLnR4dC1GaXgtZ3JwY19jcHBfcGx1Z2luLXBhdGgtZHVyaW5nLWNyb3NzLnBhdGNoIgorCitpbmhlcml0IGNtYWtlCisKK0VYVFJBX09FQ01BS0UgPSAiIFwKKyAgICAtRGdSUENfQ0FSRVNfUFJPVklERVI9cGFja2FnZSBcCisgICAgLURnUlBDX1pMSUJfUFJPVklERVI9cGFja2FnZSBcCisgICAgLURnUlBDX1NTTF9QUk9WSURFUj1wYWNrYWdlIFwKKyAgICAtRGdSUENfUFJPVE9CVUZfUFJPVklERVI9cGFja2FnZSBcCisgICAgLURnUlBDX0dGTEFHU19QUk9WSURFUj1wYWNrYWdlIFwKKyAgICAtRGdSUENfSU5TVEFMTD0xIFwKKyAgICAtREJVSUxEX1NIQVJFRF9MSUJTPU9OIFwKKyAgICAiCisKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2NtYWtlIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2pzb25jcHAvanNvbmNwcF8xLjguMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2pzb25jcHAvanNvbmNwcF8xLjguMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjdhMDJlZi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9qc29uY3BwL2pzb25jcHBfMS44LjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1TVU1NQVJZID0gIkpTT04gQysrIGxpYiB1c2VkIHRvIHJlYWQgYW5kIHdyaXRlIGpzb24gZmlsZS4iCi1ERVNDUklQVElPTiA9ICJKc29uY3BwIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIGEgSlNPTiAoaHR0cDovL2pzb24ub3JnKSByZWFkZXIgXAotICAgICAgICAgICAgICAgYW5kIHdyaXRlciBpbiBDKysuIEpTT04gKEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uKSBpcyBhIFwKLSAgICAgICAgICAgICAgIGxpZ2h0d2VpZ2h0IGRhdGEtaW50ZXJjaGFuZ2UgZm9ybWF0LiBJdCBpcyBlYXN5IGZvciBodW1hbnMgdG8gXAotICAgICAgICAgICAgICAgcmVhZCBhbmQgd3JpdGUuIEl0IGlzIGVhc3kgZm9yIG1hY2hpbmVzIHRvIHBhcnNlIGFuZCBnZW5lcmF0ZS4iCi0KLUhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZS1wYXJzZXJzL2pzb25jcHAiCi0KLVNFQ1RJT04gPSAibGlicyIKLQotTElDRU5TRSA9ICJNSVQiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1mYTJhMjNkZDFkYzZjMTM5ZjM1MTA1Mzc5ZDc2ZGYyYiIKLQotU1JDUkVWID0gIjJkZTE4MDIxZmNiMTEzNzBlOWI1YTFmYmU3ZGNmZDY3MzUzM2ExMzQiCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwIgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1pbmhlcml0IGNtYWtlCi0KLUVYVFJBX09FQ01BS0UgKz0gIi1EQlVJTERfU0hBUkVEX0xJQlM9T04gLURKU09OQ1BQX1dJVEhfVEVTVFM9T0ZGIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvanNvbmNwcC9qc29uY3BwXzEuOC40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvanNvbmNwcC9qc29uY3BwXzEuOC40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4ZTMzMjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9qc29uY3BwL2pzb25jcHBfMS44LjQuYmIKQEAgLTAsMCArMSwyMSBAQAorU1VNTUFSWSA9ICJKU09OIEMrKyBsaWIgdXNlZCB0byByZWFkIGFuZCB3cml0ZSBqc29uIGZpbGUuIgorREVTQ1JJUFRJT04gPSAiSnNvbmNwcCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBhIEpTT04gKGh0dHA6Ly9qc29uLm9yZykgcmVhZGVyIFwKKyAgICAgICAgICAgICAgIGFuZCB3cml0ZXIgaW4gQysrLiBKU09OIChKYXZhU2NyaXB0IE9iamVjdCBOb3RhdGlvbikgaXMgYSBcCisgICAgICAgICAgICAgICBsaWdodHdlaWdodCBkYXRhLWludGVyY2hhbmdlIGZvcm1hdC4gSXQgaXMgZWFzeSBmb3IgaHVtYW5zIHRvIFwKKyAgICAgICAgICAgICAgIHJlYWQgYW5kIHdyaXRlLiBJdCBpcyBlYXN5IGZvciBtYWNoaW5lcyB0byBwYXJzZSBhbmQgZ2VuZXJhdGUuIgorCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwIgorCitTRUNUSU9OID0gImxpYnMiCisKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZmEyYTIzZGQxZGM2YzEzOWYzNTEwNTM3OWQ3NmRmMmIiCisKK1NSQ1JFViA9ICJkZGFiZjUwZjcyY2YzNjliZjY1MmE5NWM0ZDlmZTMxYTE4NjVhNzgxIgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMvanNvbmNwcCIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBjbWFrZQorCitFWFRSQV9PRUNNQUtFICs9ICItREJVSUxEX1NIQVJFRF9MSUJTPU9OIC1ESlNPTkNQUF9XSVRIX1RFU1RTPU9GRiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2xpYnJjZi9saWJyY2ZfMi4yLjAuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2xpYnJjZi9saWJyY2ZfMi4yLjAuMC5iYgppbmRleCA0M2VmZjcyLi4yNjdjMGU3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9saWJyY2YvbGlicmNmXzIuMi4wLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbGlicmNmL2xpYnJjZl8yLjIuMC4wLmJiCkBAIC01MCwzICs1MCw1IEBACiBGSUxFU18ke1BOfS1kZXYgKz0gIiR7ZGF0YWRpcn0vY21ha2UvTW9kdWxlcy9GaW5kTGliUmNmLmNtYWtlIgogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZXNkayIKKworUE5CTEFDS0xJU1RbbGlicmNmXSA9ICIgZXJyb3I6IGludmFsaWQgdXNlIG9mIGluY29tcGxldGUgdHlwZSAnUkNGOjpBc2lvSW9TZXJ2aWNlIHtha2EgY2xhc3MgYm9vc3Q6OmFzaW86OmlvX3NlcnZpY2V9OyBhbW9uZyBvdGhlcnM/IiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2x1YWppdC9sdWFqaXRfMi4wLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9sdWFqaXQvbHVhaml0XzIuMC41LmJiCmluZGV4IDczYzM4MTEuLjFkNjliM2MgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2x1YWppdC9sdWFqaXRfMi4wLjUuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbHVhaml0L2x1YWppdF8yLjAuNS5iYgpAQCAtNTMsNiArNTMsNyBAQAogICAgIFwKICAgICAnUFJFRklYPSR7cHJlZml4fScgXAogICAgICdNVUxUSUxJQj0ke2Jhc2VsaWJ9JyBcCisgICAgJ0xEQ09ORklHPTonIFwKICIKIAogZG9fY29tcGlsZSAoKSB7CkBAIC05MCwzICs5MSw1IEBACiAiCiBGSUxFU19sdWFqaXQtY29tbW9uID0gIiR7ZGF0YWRpcn0vJHtCUE59LSR7UFZ9IgogCisjIEFhcmNoNjQgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIHJlbGVhc2UgCitDT01QQVRJQkxFX0hPU1QgPSAiXig/IWFhcmNoNjQpLioiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tZXJjdXJpYWwvZmlsZXMvbWVyY3VyaWFsLUNWRS0yMDE3LTk0NjIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tZXJjdXJpYWwvZmlsZXMvbWVyY3VyaWFsLUNWRS0yMDE3LTk0NjIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1NjQ2NjEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbWVyY3VyaWFsL2ZpbGVzL21lcmN1cmlhbC1DVkUtMjAxNy05NDYyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLSMgSEcgY2hhbmdlc2V0IHBhdGNoCi0jIFVzZXIgQXVnaWUgRmFja2xlciA8YXVnaWVAZ29vZ2xlLmNvbT4KLSMgRGF0ZSAxNDkyMDIxNDM1IDI1MjAwCi0jICAgICAgV2VkIEFwciAxMiAxMToyMzo1NSAyMDE3IC0wNzAwCi0jIEJyYW5jaCBzdGFibGUKLSMgTm9kZSBJRCA3N2VhZjk1Mzk0OTlhMWI4YmUyNTlmZmU3YWRhNzg3ZDA3ODU3ZjgwCi0jIFBhcmVudCAgNjhmMjYzZjUyZDJlM2UyNzk4YjRmMWU1NWNiNjY1YzZiMDQzZjkzYgotZGlzcGF0Y2g6IHByb3RlY3QgYWdhaW5zdCBtYWxpY2lvdXMgJ2hnIHNlcnZlIC0tc3RkaW8nIGludm9jYXRpb25zIChzZWMpCi0KLVNvbWUgc2hhcmVkLXNzaCBpbnN0YWxsYXRpb25zIGFzc3VtZSB0aGF0ICdoZyBzZXJ2ZSAtLXN0ZGlvJyBpcyBhIHNhZmUKLWNvbW1hbmQgdG8gcnVuIGZvciBtaW5pbWFsbHkgdHJ1c3RlZCB1c2Vycy4gVW5mb3J0dW5hdGVseSwgdGhlIG1lc3N5Ci1pbXBsZW1lbnRhdGlvbiBvZiBhcmd1bWVudCBwYXJzaW5nIGhlcmUgbWVhbnQgdGhhdCB0cnlpbmcgdG8gYWNjZXNzIGEKLXJlcG8gbmFtZWQgJy0tZGVidWdnZXInIHdvdWxkIGdpdmUgdGhlIHVzZXIgYSBwZGIgcHJvbXB0LCB0aGVyZWJ5Ci1zaWRlc3RlcHBpbmcgYW55IGhvcGVkLWZvciBzYW5kYm94aW5nLiBTZXJ2aW5nIHJlcG9zaXRvcmllcyBvdmVyIEhUVFAoUykKLWlzIHVuYWZmZWN0ZWQuCi0KLVdlJ3JlIG5vdCBjdXJyZW50bHkgaGFyZGVuaW5nIGFueSBzdWJjb21tYW5kcyBvdGhlciB0aGFuICdzZXJ2ZScuIElmCi15b3VyIHNlcnZpY2UgZXhwb3NlcyBvdGhlciBjb21tYW5kcyB0byB1c2VycyB3aXRoIGFyYml0cmFyeSByZXBvc2l0b3J5Ci1uYW1lcywgaXQgaXMgaW1wZXJhdGl2ZSB0aGF0IHlvdSBkZWZlbmQgYWdhaW5zdCByZXBvc2l0b3J5IG5hbWVzIG9mCi0nLS1kZWJ1Z2dlcicgYW5kIGFueXRoaW5nIHN0YXJ0aW5nIHdpdGggJy0tY29uZmlnJy4KLQotVGhlIHJlYWQtb25seSBtb2RlIG9mIGhnLXNzaCBzdG9wcGVkIHdvcmtpbmcgYmVjYXVzZSBpdCBwcm92aWRlZCBpdHMgaG9vawotY29uZmlndXJhdGlvbiB0byAiaGcgc2VydmUgLS1zdGRpbyIgdmlhIC0tY29uZmlnIHBhcmFtZXRlci4gVGhpcyBpcyBiYW5uZWQgZm9yCi1zZWN1cml0eSByZWFzb25zIG5vdy4gVGhpcyBwYXRjaCBzd2l0Y2hlcyBpdCB0byBkaXJlY3RseSBjYWxsIHVpLnNldGNvbmZpZygpLgotSWYgeW91ciBjdXN0b20gaG9zdGluZyBpbmZyYXN0cnVjdHVyZSByZWxpZXMgb24gcGFzc2luZyAtLWNvbmZpZyB0bwotImhnIHNlcnZlIC0tc3RkaW8iLCB5b3UnbGwgbmVlZCB0byBmaW5kIGEgZGlmZmVyZW50IHdheSB0byBnZXQgdGhhdCBjb25maWd1cmF0aW9uCi1pbnRvIE1lcmN1cmlhbCwgZWl0aGVyIGJ5IHVzaW5nIHVpLnNldGNvbmZpZygpIGFzIGhnLXNzaCBkb2VzIGluIHRoaXMgcGF0Y2gsCi1vciBieSBwbGFjaW5nIGFuIGhncmMgZmlsZSBzb21lcGxhY2Ugd2hlcmUgTWVyY3VyaWFsIHdpbGwgcmVhZCBpdC4KLQotbWl0cmFuZGlyQGZiLmNvbSBwcm92aWRlZCBzb21lIGV4dHJhIGZpeGVzIGZvciB0aGUgZGlzcGF0Y2ggY29kZSBhbmQKLWZvciBoZy1zc2ggaW4gcGxhY2VzIHRoYXQgSSBvdmVybG9va2VkLgotCi1DVkU6IENWRS0yMDE3LTk0NjIKLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotCi1kaWZmIC0tZ2l0IGEvY29udHJpYi9oZy1zc2ggYi9jb250cmliL2hnLXNzaAotLS0tIGEvY29udHJpYi9oZy1zc2gKLSsrKyBiL2NvbnRyaWIvaGctc3NoCi1AQCAtMzIsNyArMzIsNyBAQAotICMgZW5hYmxlIGltcG9ydGluZyBvbiBkZW1hbmQgdG8gcmVkdWNlIHN0YXJ0dXAgdGltZQotIGZyb20gbWVyY3VyaWFsIGltcG9ydCBkZW1hbmRpbXBvcnQ7IGRlbWFuZGltcG9ydC5lbmFibGUoKQotIAotLWZyb20gbWVyY3VyaWFsIGltcG9ydCBkaXNwYXRjaAotK2Zyb20gbWVyY3VyaWFsIGltcG9ydCBkaXNwYXRjaCwgdWkgYXMgdWltb2QKLSAKLSBpbXBvcnQgc3lzLCBvcywgc2hsZXgKLSAKLUBAIC02MSwxNCArNjEsMTUgQEAKLSAgICAgICAgIHJlcG8gPSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9pbihjd2QsIG9zLnBhdGguZXhwYW5kdXNlcihwYXRoKSkpCi0gICAgICAgICBpZiByZXBvIGluIGFsbG93ZWRfcGF0aHM6Ci0gICAgICAgICAgICAgY21kID0gWyctUicsIHJlcG8sICdzZXJ2ZScsICctLXN0ZGlvJ10KLSsgICAgICAgICAgICByZXEgPSBkaXNwYXRjaC5yZXF1ZXN0KGNtZCkKLSAgICAgICAgICAgICBpZiByZWFkb25seToKLS0gICAgICAgICAgICAgICAgY21kICs9IFsKLS0gICAgICAgICAgICAgICAgICAgICctLWNvbmZpZycsCi0tICAgICAgICAgICAgICAgICAgICAnaG9va3MucHJldHhub3Blbi5oZy1zc2g9cHl0aG9uOl9fbWFpbl9fLnJlamVjdHB1c2gnLAotLSAgICAgICAgICAgICAgICAgICAgJy0tY29uZmlnJywKLS0gICAgICAgICAgICAgICAgICAgICdob29rcy5wcmVwdXNoa2V5LmhnLXNzaD1weXRob246X19tYWluX18ucmVqZWN0cHVzaCcKLS0gICAgICAgICAgICAgICAgICAgIF0KLS0gICAgICAgICAgICBkaXNwYXRjaC5kaXNwYXRjaChkaXNwYXRjaC5yZXF1ZXN0KGNtZCkpCi0rICAgICAgICAgICAgICAgIGlmIG5vdCByZXEudWk6Ci0rICAgICAgICAgICAgICAgICAgICByZXEudWkgPSB1aW1vZC51aS5sb2FkKCkKLSsgICAgICAgICAgICAgICAgcmVxLnVpLnNldGNvbmZpZygnaG9va3MnLCAncHJldHhub3Blbi5oZy1zc2gnLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdweXRob246X19tYWluX18ucmVqZWN0cHVzaCcsICdoZy1zc2gnKQotKyAgICAgICAgICAgICAgICByZXEudWkuc2V0Y29uZmlnKCdob29rcycsICdwcmVwdXNoa2V5LmhnLXNzaCcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B5dGhvbjpfX21haW5fXy5yZWplY3RwdXNoJywgJ2hnLXNzaCcpCi0rICAgICAgICAgICAgZGlzcGF0Y2guZGlzcGF0Y2gocmVxKQotICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdJbGxlZ2FsIHJlcG9zaXRvcnkgIiVzIlxuJyAlIHJlcG8pCi0gICAgICAgICAgICAgc3lzLmV4aXQoMjU1KQotZGlmZiAtLWdpdCBhL21lcmN1cmlhbC9kaXNwYXRjaC5weSBiL21lcmN1cmlhbC9kaXNwYXRjaC5weQotLS0tIGEvbWVyY3VyaWFsL2Rpc3BhdGNoLnB5Ci0rKysgYi9tZXJjdXJpYWwvZGlzcGF0Y2gucHkKLUBAIC0xNTUsNiArMTU1LDM3IEBACi0gICAgICAgICBwYXNzICMgaGFwcGVucyBpZiBjYWxsZWQgaW4gYSB0aHJlYWQKLSAKLSAgICAgZGVmIF9ydW5jYXRjaGZ1bmMoKToKLSsgICAgICAgIHJlYWxjbWQgPSBOb25lCi0rICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgY21kYXJncyA9IGZhbmN5b3B0cy5mYW5jeW9wdHMocmVxLmFyZ3NbOl0sIGNvbW1hbmRzLmdsb2JhbG9wdHMsIHt9KQotKyAgICAgICAgICAgIGNtZCA9IGNtZGFyZ3NbMF0KLSsgICAgICAgICAgICBhbGlhc2VzLCBlbnRyeSA9IGNtZHV0aWwuZmluZGNtZChjbWQsIGNvbW1hbmRzLnRhYmxlLCBGYWxzZSkKLSsgICAgICAgICAgICByZWFsY21kID0gYWxpYXNlc1swXQotKyAgICAgICAgZXhjZXB0IChlcnJvci5Vbmtub3duQ29tbWFuZCwgZXJyb3IuQW1iaWd1b3VzQ29tbWFuZCwKLSsgICAgICAgICAgICAgICAgSW5kZXhFcnJvciwgZ2V0b3B0LkdldG9wdEVycm9yKToKLSsgICAgICAgICAgICAjIERvbid0IGhhbmRsZSB0aGlzIGhlcmUuIFdlIGtub3cgdGhlIGNvbW1hbmQgaXMKLSsgICAgICAgICAgICAjIGludmFsaWQsIGJ1dCBhbGwgd2UncmUgd29ycmllZCBhYm91dCBmb3Igbm93IGlzIHRoYXQKLSsgICAgICAgICAgICAjIGl0J3Mgbm90IGEgY29tbWFuZCB0aGF0IHNlcnZlciBvcGVyYXRvcnMgZXhwZWN0IHRvCi0rICAgICAgICAgICAgIyBiZSBzYWZlIHRvIG9mZmVyIHRvIHVzZXJzIGluIGEgc2FuZGJveC4KLSsgICAgICAgICAgICBwYXNzCi0rICAgICAgICBpZiByZWFsY21kID09ICdzZXJ2ZScgYW5kICctLXN0ZGlvJyBpbiBjbWRhcmdzOgotKyAgICAgICAgICAgICMgV2Ugd2FudCB0byBjb25zdHJhaW4gJ2hnIHNlcnZlIC0tc3RkaW8nIGluc3RhbmNlcyBwcmV0dHkKLSsgICAgICAgICAgICAjIGNsb3NlbHksIGFzIG1hbnkgc2hhcmVkLXNzaCBhY2Nlc3MgdG9vbHMgd2FudCB0byBncmFudAotKyAgICAgICAgICAgICMgYWNjZXNzIHRvIHJ1biAqb25seSogJ2hnIC1SICRyZXBvIHNlcnZlIC0tc3RkaW8nLiBXZQotKyAgICAgICAgICAgICMgcmVzdHJpY3QgdG8gZXhhY3RseSB0aGF0IHNldCBvZiBhcmd1bWVudHMsIGFuZCBwcm9oaWJpdAotKyAgICAgICAgICAgICMgYW55IHJlcG8gbmFtZSB0aGF0IHN0YXJ0cyB3aXRoICctLScgdG8gcHJldmVudAotKyAgICAgICAgICAgICMgc2hlbmFuaWdhbnMgd2hlcmVpbiBhIHVzZXIgZG9lcyBzb21ldGhpbmcgbGlrZSBwYXNzCi0rICAgICAgICAgICAgIyAtLWRlYnVnZ2VyIG9yIC0tY29uZmlnPXVpLmRlYnVnZ2VyPTEgYXMgYSByZXBvCi0rICAgICAgICAgICAgIyBuYW1lLiBUaGlzIHVzZWQgdG8gYWN0dWFsbHkgcnVuIHRoZSBkZWJ1Z2dlci4KLSsgICAgICAgICAgICBpZiAobGVuKHJlcS5hcmdzKSAhPSA0IG9yCi0rICAgICAgICAgICAgICAgIHJlcS5hcmdzWzBdICE9ICctUicgb3IKLSsgICAgICAgICAgICAgICAgcmVxLmFyZ3NbMV0uc3RhcnRzd2l0aCgnLS0nKSBvcgotKyAgICAgICAgICAgICAgICByZXEuYXJnc1syXSAhPSAnc2VydmUnIG9yCi0rICAgICAgICAgICAgICAgIHJlcS5hcmdzWzNdICE9ICctLXN0ZGlvJyk6Ci0rICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkFib3J0KAotKyAgICAgICAgICAgICAgICAgICAgXygncG90ZW50aWFsbHkgdW5zYWZlIHNlcnZlIC0tc3RkaW8gaW52b2NhdGlvbjogJXInKSAlCi0rICAgICAgICAgICAgICAgICAgICAocmVxLmFyZ3MsKSkKLSsKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBkZWJ1Z2dlciA9ICdwZGInCi0gICAgICAgICAgICAgZGVidWd0cmFjZSA9IHsKLWRpZmYgLS1naXQgYS90ZXN0cy90ZXN0LXNzaC50IGIvdGVzdHMvdGVzdC1zc2gudAotLS0tIGEvdGVzdHMvdGVzdC1zc2gudAotKysrIGIvdGVzdHMvdGVzdC1zc2gudAotQEAgLTM1Nyw2ICszNTcsMTkgQEAKLSAgIGFib3J0OiBkZXN0aW5hdGlvbiAnYSByZXBvJyBpcyBub3QgZW1wdHkKLSAgIFsyNTVdCi0gCi0rTWFrZSBzdXJlIGhnIGlzIHJlYWxseSBwYXJhbm9pZCBpbiBzZXJ2ZSAtLXN0ZGlvIG1vZGUuIEl0IHVzZWQgdG8gYmUKLStwb3NzaWJsZSB0byBnZXQgYSBkZWJ1Z2dlciBSRVBMIGJ5IHNwZWNpZnlpbmcgYSByZXBvIG5hbWVkIC0tZGVidWdnZXIuCi0rICAkIGhnIC1SIC0tZGVidWdnZXIgc2VydmUgLS1zdGRpbwotKyAgYWJvcnQ6IHBvdGVudGlhbGx5IHVuc2FmZSBzZXJ2ZSAtLXN0ZGlvIGludm9jYXRpb246IFsnLVInLCAnLS1kZWJ1Z2dlcicsICdzZXJ2ZScsICctLXN0ZGlvJ10KLSsgIFsyNTVdCi0rICAkIGhnIC1SIC0tY29uZmlnPXVpLmRlYnVnZ2VyPXllcyBzZXJ2ZSAtLXN0ZGlvCi0rICBhYm9ydDogcG90ZW50aWFsbHkgdW5zYWZlIHNlcnZlIC0tc3RkaW8gaW52b2NhdGlvbjogWyctUicsICctLWNvbmZpZz11aS5kZWJ1Z2dlcj15ZXMnLCAnc2VydmUnLCAnLS1zdGRpbyddCi0rICBbMjU1XQotK0FiYnJldmlhdGlvbnMgb2YgJ3NlcnZlJyBhbHNvIGRvbid0IHdvcmssIHRvIGF2b2lkIHNoZW5hbmlnYW5zLgotKyAgJCBoZyAtUiBuYXJmIHNlcnYgLS1zdGRpbwotKyAgYWJvcnQ6IHBvdGVudGlhbGx5IHVuc2FmZSBzZXJ2ZSAtLXN0ZGlvIGludm9jYXRpb246IFsnLVInLCAnbmFyZicsICdzZXJ2JywgJy0tc3RkaW8nXQotKyAgWzI1NV0KLSsKLSBUZXN0IGhnLXNzaCB1c2luZyBhIGhlbHBlciBzY3JpcHQgdGhhdCB3aWxsIHJlc3RvcmUgUFlUSE9OUEFUSCAod2hpY2ggbWlnaHQKLSBoYXZlIGJlZW4gY2xlYXJlZCBieSBhIGhnLmV4ZSB3cmFwcGVyKSBhbmQgaW52b2tlIGhnLXNzaCB3aXRoIHRoZSByaWdodAotIHBhcmFtZXRlcnM6CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tZXJjdXJpYWwvbWVyY3VyaWFsLW5hdGl2ZV80LjAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21lcmN1cmlhbC9tZXJjdXJpYWwtbmF0aXZlXzQuMC4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDhhY2Q5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21lcmN1cmlhbC9tZXJjdXJpYWwtbmF0aXZlXzQuMC4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotU1VNTUFSWSA9ICJUaGUgTWVyY3VyaWFsIGRpc3RyaWJ1dGVkIFNDTSIKLUhPTUVQQUdFID0gImh0dHA6Ly9tZXJjdXJpYWwuc2VsZW5pYy5jb20vIgotU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotREVQRU5EUyA9ICJweXRob24tbmF0aXZlIgotCi1TUkNfVVJJID0gImh0dHBzOi8vd3d3Lm1lcmN1cmlhbC1zY20ub3JnL3JlbGVhc2UvJHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL21lcmN1cmlhbC1DVkUtMjAxNy05NDYyLnBhdGNoIFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICIyMmE5YjFkN2MwYzA2YTUzZjBhZTViMzg2ZDUzNmQwOCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI2YWE0YWRlOTNjMWI1ZTExOTM3ODIwODgwYTQ2NmViZjFjODI0MDg2ZDQ0M2NkNzk5ZmM0NmUyNjE3MjUwZDQwIgotCi1TID0gIiR7V09SS0RJUn0vbWVyY3VyaWFsLSR7UFZ9IgotCi1pbmhlcml0IG5hdGl2ZQotCi1FWFRSQV9PRU1BS0UgPSAiU1RBR0lOR19MSUJESVI9JHtTVEFHSU5HX0xJQkRJUn0gU1RBR0lOR19JTkNESVI9JHtTVEFHSU5HX0lOQ0RJUn0gXAotICAgIFBSRUZJWD0ke3ByZWZpeH0iCi0KLWRvX2NvbmZpZ3VyZV9hcHBlbmQgKCkgewotICAgIHNlZCAtaSAtZSAnczpQWVRIT049cHl0aG9uOlBZVEhPTj0ke1NUQUdJTkdfQklORElSX05BVElWRX0vcHl0aG9uLW5hdGl2ZS9weXRob246ZycgJHtTfS9NYWtlZmlsZQotfQotCi1kb19pbnN0YWxsICgpIHsKLSAgICBvZV9ydW5tYWtlIC1lIGluc3RhbGwtYmluIERFU1RESVI9JHtEfSBQUkVGSVg9JHtwcmVmaXh9Ci19Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21lcmN1cmlhbC9tZXJjdXJpYWxfNC40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbWVyY3VyaWFsL21lcmN1cmlhbF80LjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA1MjQ5NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21lcmN1cmlhbC9tZXJjdXJpYWxfNC40LmJiCkBAIC0wLDAgKzEsMzEgQEAKK1NVTU1BUlkgPSAiVGhlIE1lcmN1cmlhbCBkaXN0cmlidXRlZCBTQ00iCitIT01FUEFHRSA9ICJodHRwOi8vbWVyY3VyaWFsLnNlbGVuaWMuY29tLyIKK1NFQ1RJT04gPSAiY29uc29sZS91dGlscyIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKK0RFUEVORFMgPSAicHl0aG9uIHB5dGhvbi1uYXRpdmUiCitERVBFTkRTX2NsYXNzLW5hdGl2ZSA9ICJweXRob24tbmF0aXZlIgorUkRFUEVORFNfJHtQTn0gPSAicHl0aG9uIHB5dGhvbi1tb2R1bGVzIgorCitpbmhlcml0IHB5dGhvbi1kaXIKKworU1JDX1VSSSA9ICJodHRwczovL3d3dy5tZXJjdXJpYWwtc2NtLm9yZy9yZWxlYXNlLyR7QlB9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJjMWQ5ZmFkMWI3ZWQ3MDc3YjBkNGFlODJlNzExNTRkYiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyMzRhZjRhNjc1NjVjODU5MjNiMGExOTEwYzcwNGFiNDRiY2YxMmY2OWI4NTUzMjY4NzIwODc3NjU2M2Q4N2RlIgorCitTID0gIiR7V09SS0RJUn0vbWVyY3VyaWFsLSR7UFZ9IgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKKworRVhUUkFfT0VNQUtFID0gIlNUQUdJTkdfTElCRElSPSR7U1RBR0lOR19MSUJESVJ9IFNUQUdJTkdfSU5DRElSPSR7U1RBR0lOR19JTkNESVJ9IFwKKyAgICBQUkVGSVg9JHtwcmVmaXh9IgorCitkb19jb25maWd1cmVfYXBwZW5kICgpIHsKKyAgICBzZWQgLWkgLWUgJ3M6UFlUSE9OPXB5dGhvbjpQWVRIT049JHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L3B5dGhvbi1uYXRpdmUvcHl0aG9uOmcnICR7U30vTWFrZWZpbGUKK30KKworZG9faW5zdGFsbCAoKSB7CisgICAgb2VfcnVubWFrZSAtZSBpbnN0YWxsLWJpbiBERVNURElSPSR7RH0gUFJFRklYPSR7cHJlZml4fQorfQorCitGSUxFU18ke1BOfSArPSAiJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tZXNvbi9tZXNvbi9uYXRpdmVfYmluZGlyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbWVzb24vbWVzb24vbmF0aXZlX2JpbmRpci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTkzZTk3NS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tZXNvbi9tZXNvbi9uYXRpdmVfYmluZGlyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotVGhlcmUgYXJlIHNvbWUgZGlzY3Vzc2lvbnMgdXBzdHJlYW0gdG8gbWVyZ2UgdGhpcyBwYXRjaCwgYnV0IEkgcHJlc29uYWx5IGJlbGlldmUKLXRoYXQgaXMgaXMgT0Ugb25seS4gaHR0cHM6Ly9naXRodWIuY29tL21lc29uYnVpbGQvbWVzb24vaXNzdWVzLzE4NDkjaXNzdWVjb21tZW50LTMwMzczMDMyMwotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQotU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUBnbWFpbC5jb20+Ci1kaWZmIC0tZ2l0IGEvbWVzb25idWlsZC9kZXBlbmRlbmNpZXMucHkgYi9tZXNvbmJ1aWxkL2RlcGVuZGVuY2llcy5weQotaW5kZXggMDRhMjJmOTg1OTQxLi4zZTMzYmM0YTc5ZTcgMTAwNjQ0Ci0tLS0gYS9tZXNvbmJ1aWxkL2RlcGVuZGVuY2llcy5weQotKysrIGIvbWVzb25idWlsZC9kZXBlbmRlbmNpZXMucHkKLUBAIC05NSw3ICs5NSw3IEBAIGNsYXNzIERlcGVuZGVuY3k6Ci0gICAgIGRlZiBuZWVkX3RocmVhZHMoc2VsZik6Ci0gICAgICAgICByZXR1cm4gRmFsc2UKLSAKLS0gICAgZGVmIGdldF9wa2djb25maWdfdmFyaWFibGUoc2VsZiwgdmFyaWFibGVfbmFtZSk6Ci0rICAgIGRlZiBnZXRfcGtnY29uZmlnX3ZhcmlhYmxlKHNlbGYsIHZhcmlhYmxlX25hbWUsIHVzZV9uYXRpdmU9RmFsc2UpOgotICAgICAgICAgcmFpc2UgTWVzb25FeGNlcHRpb24oJ1RyaWVkIHRvIGdldCBhIHBrZy1jb25maWcgdmFyaWFibGUgZnJvbSBhIG5vbi1wa2djb25maWcgZGVwZW5kZW5jeS4nKQotIAotIGNsYXNzIEludGVybmFsRGVwZW5kZW5jeShEZXBlbmRlbmN5KToKLUBAIC0yMjQsOCArMjI0LDEyIEBAIGNsYXNzIFBrZ0NvbmZpZ0RlcGVuZGVuY3koRGVwZW5kZW5jeSk6Ci0gICAgICAgICByZXR1cm4gcy5mb3JtYXQoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYubmFtZSwgc2VsZi5pc19mb3VuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZlcnNpb25fcmVxcykKLSAKLS0gICAgZGVmIF9jYWxsX3BrZ2JpbihzZWxmLCBhcmdzKToKLS0gICAgICAgIHAsIG91dCA9IFBvcGVuX3NhZmUoW3NlbGYucGtnYmluXSArIGFyZ3MsIGVudj1vcy5lbnZpcm9uKVswOjJdCi0rICAgIGRlZiBfY2FsbF9wa2diaW4oc2VsZiwgYXJncywgdXNlX25hdGl2ZT1GYWxzZSk6Ci0rICAgICAgICBpZiB1c2VfbmF0aXZlOgotKyAgICAgICAgICAgIHBrZ2JpbiA9IFtzZWxmLnBrZ2JpbiArICItbmF0aXZlIl0KLSsgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgcGtnYmluID0gW3NlbGYucGtnYmluXQotKyAgICAgICAgcCwgb3V0ID0gUG9wZW5fc2FmZShwa2diaW4gKyBhcmdzLCBlbnY9b3MuZW52aXJvbilbMDoyXQotICAgICAgICAgcmV0dXJuIHAucmV0dXJuY29kZSwgb3V0LnN0cmlwKCkKLSAKLSAgICAgZGVmIF9zZXRfY2FyZ3Moc2VsZik6Ci1AQCAtMjU5LDggKzI2Myw4IEBAIGNsYXNzIFBrZ0NvbmZpZ0RlcGVuZGVuY3koRGVwZW5kZW5jeSk6Ci0gICAgICAgICAgICAgICAgIHNlbGYuaXNfbGlidG9vbCA9IFRydWUKLSAgICAgICAgICAgICBzZWxmLmxpYnMuYXBwZW5kKGxpYikKLSAKLS0gICAgZGVmIGdldF9wa2djb25maWdfdmFyaWFibGUoc2VsZiwgdmFyaWFibGVfbmFtZSk6Ci0tICAgICAgICByZXQsIG91dCA9IHNlbGYuX2NhbGxfcGtnYmluKFsnLS12YXJpYWJsZT0nICsgdmFyaWFibGVfbmFtZSwgc2VsZi5uYW1lXSkKLSsgICAgZGVmIGdldF9wa2djb25maWdfdmFyaWFibGUoc2VsZiwgdmFyaWFibGVfbmFtZSwgdXNlX25hdGl2ZT1GYWxzZSk6Ci0rICAgICAgICByZXQsIG91dCA9IHNlbGYuX2NhbGxfcGtnYmluKFsnLS12YXJpYWJsZT0nICsgdmFyaWFibGVfbmFtZSwgc2VsZi5uYW1lXSwgdXNlX25hdGl2ZT11c2VfbmF0aXZlKQotICAgICAgICAgdmFyaWFibGUgPSAnJwotICAgICAgICAgaWYgcmV0ICE9IDA6Ci0gICAgICAgICAgICAgaWYgc2VsZi5yZXF1aXJlZDoKLUBAIC0xMDkxLDcgKzEwOTUsNyBAQCBjbGFzcyBRdEJhc2VEZXBlbmRlbmN5KERlcGVuZGVuY3kpOgotICAgICAgICAgc2VsZi5iaW5kaXIgPSBzZWxmLmdldF9wa2djb25maWdfaG9zdF9iaW5zKGNvcmUpCi0gICAgICAgICBpZiBub3Qgc2VsZi5iaW5kaXI6Ci0gICAgICAgICAgICAgIyBJZiBleGVjX3ByZWZpeCBpcyBub3QgZGVmaW5lZCwgdGhlIHBrZy1jb25maWcgZmlsZSBpcyBicm9rZW4KLS0gICAgICAgICAgICBwcmVmaXggPSBjb3JlLmdldF9wa2djb25maWdfdmFyaWFibGUoJ2V4ZWNfcHJlZml4JykKLSsgICAgICAgICAgICBwcmVmaXggPSBjb3JlLmdldF9wa2djb25maWdfdmFyaWFibGUoJ2V4ZWNfcHJlZml4JywgdXNlX25hdGl2ZT1UcnVlKQotICAgICAgICAgICAgIGlmIHByZWZpeDoKLSAgICAgICAgICAgICAgICAgc2VsZi5iaW5kaXIgPSBvcy5wYXRoLmpvaW4ocHJlZml4LCAnYmluJykKLSAKLUBAIC0xMjAyLDcgKzEyMDYsNyBAQCBjbGFzcyBRdDVEZXBlbmRlbmN5KFF0QmFzZURlcGVuZGVuY3kpOgotICAgICAgICAgUXRCYXNlRGVwZW5kZW5jeS5fX2luaXRfXyhzZWxmLCAncXQ1JywgZW52LCBrd2FyZ3MpCi0gCi0gICAgIGRlZiBnZXRfcGtnY29uZmlnX2hvc3RfYmlucyhzZWxmLCBjb3JlKToKLS0gICAgICAgIHJldHVybiBjb3JlLmdldF9wa2djb25maWdfdmFyaWFibGUoJ2hvc3RfYmlucycpCi0rICAgICAgICByZXR1cm4gY29yZS5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCdob3N0X2JpbnMnLCB1c2VfbmF0aXZlPVRydWUpCi0gCi0gY2xhc3MgUXQ0RGVwZW5kZW5jeShRdEJhc2VEZXBlbmRlbmN5KToKLSAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudiwga3dhcmdzKToKLUBAIC0xMjE2LDcgKzEyMjAsNyBAQCBjbGFzcyBRdDREZXBlbmRlbmN5KFF0QmFzZURlcGVuZGVuY3kpOgotICAgICAgICAgYXBwbGljYXRpb25zID0gWydtb2MnLCAndWljJywgJ3JjYycsICdsdXBkYXRlJywgJ2xyZWxlYXNlJ10KLSAgICAgICAgIGZvciBhcHBsaWNhdGlvbiBpbiBhcHBsaWNhdGlvbnM6Ci0gICAgICAgICAgICAgdHJ5OgotLSAgICAgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5kaXJuYW1lKGNvcmUuZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgnJXNfbG9jYXRpb24nICUgYXBwbGljYXRpb24pKQotKyAgICAgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5kaXJuYW1lKGNvcmUuZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgnJXNfbG9jYXRpb24nICUgYXBwbGljYXRpb24sIHVzZV9uYXRpdmU9VHJ1ZSkpCi0gICAgICAgICAgICAgZXhjZXB0IE1lc29uRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgICBwYXNzCi0gCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tZXNvbi9tZXNvbl8wLjQwLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tZXNvbi9tZXNvbl8wLjQwLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0NjQ0YmEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbWVzb24vbWVzb25fMC40MC4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotSE9NRVBBR0UgPSAiaHR0cDovL21lc29uYnVpbGQuY29tIgotU1VNTUFSWSA9ICJBIGhpZ2ggcGVyZm9ybWFuY2UgYnVpbGQgc3lzdGVtIgotCi1MSUNFTlNFID0gIkFwYWNoZS0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0zYjgzZWY5NjM4N2YxNDY1NWZjODU0ZGRjM2M2YmQ1NyIKLQotU1JDX1VSSSA9ICIgXAotICAgIGdpdDovL2dpdGh1Yi5jb20vbWVzb25idWlsZC9tZXNvbi5naXQgXAotICAgIGZpbGU6Ly9uYXRpdmVfYmluZGlyLnBhdGNoIFwKLSIKLQotU1JDUkVWID0gImIyNWQzZTRkM2YyYjRkMzcwMjlhNTA3Y2MwODliZGRlNjQzYzYyNDAiCi0KLVMgPSAiJHtXT1JLRElSfS9naXQiCi0KLWluaGVyaXQgc2V0dXB0b29sczMKLQotUkRFUEVORFNfJHtQTn0gPSAibmluamEgcHl0aG9uMy1jb3JlIHB5dGhvbjMtbW9kdWxlcyIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tcGljaC9tcGljaF8zLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tcGljaC9tcGljaF8zLjIuYmIKaW5kZXggNGEyYzM3Ny4uNTFiMzEzYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbXBpY2gvbXBpY2hfMy4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21waWNoL21waWNoXzMuMi5iYgpAQCAtMzEsNiArMzEsMTEgQEAKIGluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBnZXR0ZXh0CiAKIGRvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworICAgIGZvciBkIGluIGNvbmZkYiB0ZXN0L21waS9jb25mZGIgc3JjL29wZW5wYS9jb25mZGIgc3JjL3BtL2h5ZHJhL2NvbmZkYiBzcmMvcG0vaHlkcmEvdG9vbHMvdG9wby9od2xvYy9od2xvYy9jb25maWcgc3JjL3BtL2h5ZHJhL21wbC9jb25mZGIgc3JjL21wbC9jb25mZGIgc3JjL21waS9yb21pby9jb25mZGI7ICBkbworICAgICAgICBpbnN0YWxsIC1tIDA3NTUgJHtTVEFHSU5HX0RBVEFESVJfTkFUSVZFfS9nbnUtY29uZmlnL2NvbmZpZy5ndWVzcyAke1N9LyRkCisgICAgICAgIGluc3RhbGwgLW0gMDc1NSAke1NUQUdJTkdfREFUQURJUl9OQVRJVkV9L2dudS1jb25maWcvY29uZmlnLnN1YiAke1N9LyRkCisgICAgZG9uZQorCiAgICAgYXV0b3JlY29uZiAtLXZlcmJvc2UgLS1pbnN0YWxsIC0tZm9yY2UgLUkgLiAtSSBjb25mZGIvIC1JIG1haW50LwogICAgIG9lX3J1bmNvbmYKICAgICBleGl0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tc2dwYWNrL21zZ3BhY2stYy8wMDAxLUZpeC1XZXJyb3ItY2xhc3MtbWVtYWNjZXNzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbXNncGFjay9tc2dwYWNrLWMvMDAwMS1GaXgtV2Vycm9yLWNsYXNzLW1lbWFjY2Vzcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGQ3NzJkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbXNncGFjay9tc2dwYWNrLWMvMDAwMS1GaXgtV2Vycm9yLWNsYXNzLW1lbWFjY2Vzcy5wYXRjaApAQCAtMCwwICsxLDM1IEBACitGcm9tIGEwNWQ5MmFlODUwMjRkMDY0OGY2OWY5NTMwN2ExZDNlOGU1MTEwOWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU3VuLCAxIEFwciAyMDE4IDE5OjU1OjM4IC0wNzAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCAtV2Vycm9yPWNsYXNzLW1lbWFjY2VzcworCitDYXN0aW5nIHRvIHZvaWQqIG1ha2UgZ2NjIGhhcHB5IHNpbmNlIGl0cyB1cHNldCBhYm91dAorb2JqZWN0IHR5cGVzIGFuZCByaWdodGx5IHNvCisKK0ZpeGVzCisKKyd2b2lkKiBtZW1jcHkodm9pZCosIGNvbnN0IHZvaWQqLCBzaXplX3QpJyBjb3B5aW5nIGFuIG9iamVjdCBvZiBub24tdHJpdmlhbCB0eXBlICdzdHJ1Y3QgbXNncGFjazo6djI6Om9iamVjdCcgZnJvbSBhbiBhcnJheSBvZiAnY29uc3QgbXNncGFja19vYmplY3QnIHtha2EgJ2NvbnN0IHN0cnVjdCBtc2dwYWNrX29iamVjdCd9IFstV2Vycm9yPWNsYXNzLW1lbWFjY2Vzc10KKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9tc2dwYWNrL21zZ3BhY2stYy9wdWxsLzY1OV0KKworIGluY2x1ZGUvbXNncGFjay92MS9vYmplY3QuaHBwIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tc2dwYWNrL3YxL29iamVjdC5ocHAgYi9pbmNsdWRlL21zZ3BhY2svdjEvb2JqZWN0LmhwcAoraW5kZXggNjRkYThjNTMuLjk3MjFmNzA1IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9tc2dwYWNrL3YxL29iamVjdC5ocHAKKysrKyBiL2luY2x1ZGUvbXNncGFjay92MS9vYmplY3QuaHBwCitAQCAtNjYxLDcgKzY2MSw3IEBAIGlubGluZSBvYmplY3Q6Om9iamVjdChjb25zdCBtc2dwYWNrX29iamVjdCYgbykKKyBpbmxpbmUgdm9pZCBvcGVyYXRvcjw8IChtc2dwYWNrOjpvYmplY3QmIG8sIGNvbnN0IG1zZ3BhY2tfb2JqZWN0JiB2KQorIHsKKyAgICAgLy8gRklYTUUgYmV0ZXIgd2F5PworLSAgICBzdGQ6Om1lbWNweSgmbywgJnYsIHNpemVvZih2KSk7CisrICAgIHN0ZDo6bWVtY3B5KHN0YXRpY19jYXN0PHZvaWQqPigmbyksICZ2LCBzaXplb2YodikpOworIH0KKyAKKyBpbmxpbmUgb2JqZWN0OjpvcGVyYXRvciBtc2dwYWNrX29iamVjdCgpIGNvbnN0CistLSAKKzIuMTYuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tc2dwYWNrL21zZ3BhY2stY18yLjEuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21zZ3BhY2svbXNncGFjay1jXzIuMS41LmJiCmluZGV4IGQ5ZjY5NTYuLjAyYzBjZDIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21zZ3BhY2svbXNncGFjay1jXzIuMS41LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21zZ3BhY2svbXNncGFjay1jXzIuMS41LmJiCkBAIC05LDkgKzksMTAgQEAKIAogUFYgLj0gIitnaXQke1NSQ1BWfSIKIAotU1JDUkVWID0gIjdhOTgxMzhmMjdmMjcyOTBlNjgwYmY4ZmJmMWY4ZDFiMDg5YmYxMzgiCitTUkNSRVYgPSAiMjA4NTk1YjI2MjBjZjYyNjBjZTNkNmQ0Y2Y4NTQzZjEzYjIwNjQ0OSIKIAogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL21zZ3BhY2svbXNncGFjay1jIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRml4LVdlcnJvci1jbGFzcy1tZW1hY2Nlc3MucGF0Y2ggXAogICAgICAgICAgICAiCiAKIGluaGVyaXQgY21ha2UgcGtnY29uZmlnCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ub2RlanMvMDAwMS1EaXNhYmxlLXJ1bm5pbmctZ3lwLWZpbGVzLWZvci1idW5kbGVkLWRlcHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ub2RlanMvMDAwMS1EaXNhYmxlLXJ1bm5pbmctZ3lwLWZpbGVzLWZvci1idW5kbGVkLWRlcHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyNGE0NjguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbm9kZWpzLzAwMDEtRGlzYWJsZS1ydW5uaW5nLWd5cC1maWxlcy1mb3ItYnVuZGxlZC1kZXBzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotRnJvbSBjMmFmZjE2Y2MxOTZhNjFmNGFiMWNkYWU0YTkxYzc5MjYxMjNjMjM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogWnV6YW5hIFN2ZXRsaWtvdmEgPHpzdmV0bGlrQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDI3IEFwciAyMDE3IDE0OjI1OjQyICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIERpc2FibGUgcnVubmluZyBneXAgb24gc2hhcmVkIGRlcHMKLQotLS0tCi0gTWFrZWZpbGUgfCA3ICsrKy0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQotaW5kZXggMGEyMTdiZDg5My4uZTEyMjlhZDA3ZiAxMDA2NDQKLS0tLSBhL01ha2VmaWxlCi0rKysgYi9NYWtlZmlsZQotQEAgLTc5LDEwICs3OSw5IEBAICQoTk9ERV9HX0VYRSk6IGNvbmZpZy5neXBpIG91dC9NYWtlZmlsZQotIAkkKE1BS0UpIC1DIG91dCBCVUlMRFRZUEU9RGVidWcgVj0kKFYpCi0gCWlmIFsgISAtciAkQCAtbyAhIC1MICRAIF07IHRoZW4gbG4gLWZzIG91dC9EZWJ1Zy8kKE5PREVfRVhFKSAkQDsgZmkKLSAKLS1vdXQvTWFrZWZpbGU6IGNvbW1vbi5neXBpIGRlcHMvdXYvdXYuZ3lwIGRlcHMvaHR0cF9wYXJzZXIvaHR0cF9wYXJzZXIuZ3lwIFwKLS0gICAgICAgICAgICAgIGRlcHMvemxpYi96bGliLmd5cCBkZXBzL3Y4L2d5cGZpbGVzL3Rvb2xjaGFpbi5neXBpIFwKLS0gICAgICAgICAgICAgIGRlcHMvdjgvZ3lwZmlsZXMvZmVhdHVyZXMuZ3lwaSBkZXBzL3Y4L3NyYy92OC5neXAgbm9kZS5neXAgXAotLSAgICAgICAgICAgICAgY29uZmlnLmd5cGkKLStvdXQvTWFrZWZpbGU6IGNvbW1vbi5neXBpIGRlcHMvaHR0cF9wYXJzZXIvaHR0cF9wYXJzZXIuZ3lwIFwKLSsgICAgICAgICAgICAgIGRlcHMvdjgvZ3lwZmlsZXMvdG9vbGNoYWluLmd5cGkgZGVwcy92OC9neXBmaWxlcy9mZWF0dXJlcy5neXBpIFwKLSsJCQkgIGRlcHMvdjgvc3JjL3Y4Lmd5cCBub2RlLmd5cCBjb25maWcuZ3lwaQotIAkkKFBZVEhPTikgdG9vbHMvZ3lwX25vZGUucHkgLWYgbWFrZQotIAotIGNvbmZpZy5neXBpOiBjb25maWd1cmUKLS0tIAotMi4xMi4yCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ub2RlanMvbm9kZWpzL25vLXJlZ2lzdHJ5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbm9kZWpzL25vZGVqcy9uby1yZWdpc3RyeS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQyNDczOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ub2RlanMvbm9kZWpzL25vLXJlZ2lzdHJ5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotQnVnZml4IGZvciAtLW5vLXJlZ2lzdHJ5IGluIG5vZGVqcy12MC4xMi4yCi0KLWRpZmYgLXUgLXIgbm9kZS12MC4xMi4yX2RlZi9kZXBzL25wbS9saWIvY2FjaGUvY2FjaGluZy1jbGllbnQuanMgbm9kZS12MC4xMi4yL2RlcHMvbnBtL2xpYi9jYWNoZS9jYWNoaW5nLWNsaWVudC5qcwotLS0tIG5vZGUtdjAuMTIuMl9kZWYvZGVwcy9ucG0vbGliL2NhY2hlL2NhY2hpbmctY2xpZW50LmpzCTIwMTUtMDQtMDEgMDE6MTM6MDEuMDAwMDAwMDAwICswMzAwCi0rKysgbm9kZS12MC4xMi4yL2RlcHMvbnBtL2xpYi9jYWNoZS9jYWNoaW5nLWNsaWVudC5qcwkyMDE1LTA1LTE4IDAwOjQ3OjEwLjczODU5OTY4NiArMDMwMAotQEAgLTY3LDYgKzY3LDIyIEBACi0gICB2YXIgY2FjaGVCYXNlID0gY2FjaGVGaWxlKG5wbS5jb25maWcuZ2V0KCJjYWNoZSIpKSh1cmkpCi0gICB2YXIgY2FjaGVQYXRoID0gcGF0aC5qb2luKGNhY2hlQmFzZSwgIi5jYWNoZS5qc29uIikKLSAKLSsgIGlmIChwYXJzZWQuaG9zdCA9PT0gIm5vcmVnaXN0cnkiKSAoZnVuY3Rpb24oKSB7Ci0rICAgIHZhciBzdGF0ID0gbnVsbAotKyAgICB2YXIgZmlsZSA9IG5wbS5jb25maWcuZ2V0KCJjYWNoZSIpICsgcGFyc2VkLnBhdGhuYW1lICsgIi8uY2FjaGUuanNvbiIKLSsgICAgdHJ5IHsKLSsgICAgICBzdGF0ID0gZnMuc3RhdFN5bmMoY2FjaGVQYXRoKQotKyAgICB9IGNhdGNoIChleCkge30KLSsgICAgaWYgKCFzdGF0KSB0cnkgewotKyAgICAgIHN0YXQgPSBmcy5zdGF0U3luYyhmaWxlKSAKLSsgICAgICBjYWNoZVBhdGggPSBmaWxlCi0rICAgIH0gY2F0Y2ggKGV4KSB7Ci0rICAgICAgc3RhdCA9ICJSZWdpc3RyeSBub3QgZGVmaW5lZCBhbmQgcmVnaXN0cnkgZmlsZXMgbm90IGZvdW5kOiBcIiIgKwotKyAgICAgICAgICAgICBjYWNoZVBhdGggKyAiXCIsIFwiIiArIGZpbGUgKyAiXCIuIgotKyAgICAgIHRocm93IG5ldyBFcnJvcihzdGF0KQotKyAgICB9Ci0rICB9KSgpCi0rCi0gICAvLyBJZiB0aGUgR0VUIGlzIHBhcnQgb2YgYSB3cml0ZSBvcGVyYXRpb24gKFBVVCBvciBERUxFVEUpLCB0aGVuCi0gICAvLyBza2lwIHBhc3QgdGhlIGNhY2hlIGVudGlyZWx5LCBidXQgc3RpbGwgc2F2ZSB0aGUgcmVzdWx0cy4KLSAgIGlmICh1cmkubWF0Y2goL1w/d3JpdGU9dHJ1ZSQvKSkgewotQEAgLTgzLDEyICs5OSwxNyBAQAotICAgICAgICAgfQotICAgICAgICAgY2F0Y2ggKGV4KSB7Ci0gICAgICAgICAgIGRhdGEgPSBudWxsCi0rICAgICAgICAgIGlmIChwYXJzZWQuaG9zdCA9PT0gIm5vcmVnaXN0cnkiKQotKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmlsZSBcIiIgKyBjYWNoZVBhdGgrIlwiIiArICIgY29ycnVwdGVkLiIpCi0gICAgICAgICB9Ci0gCi0gICAgICAgICBwYXJhbXMuc3RhdCA9IHN0YXQKLSAgICAgICAgIHBhcmFtcy5kYXRhID0gZGF0YQotIAotLSAgICAgICAgZ2V0Xy5jYWxsKGNsaWVudCwgdXJpLCBjYWNoZVBhdGgsIHBhcmFtcywgY2IpCi0rICAgICAgICBpZiAocGFyc2VkLmhvc3QgPT09ICJub3JlZ2lzdHJ5IikKLSsgICAgICAgICAgY2IobnVsbCwgZGF0YSwgSlNPTi5zdHJpbmdpZnkoZGF0YSksIHsgc3RhdHVzQ29kZSA6IDMwNCB9KQotKyAgICAgICAgZWxzZQotKyAgICAgICAgICBnZXRfLmNhbGwoY2xpZW50LCB1cmksIGNhY2hlUGF0aCwgcGFyYW1zLCBjYikKLSAgICAgICB9KQotICAgICB9Ci0gICAgIGVsc2UgewotZGlmZiAtdSAtciBub2RlLXYwLjEyLjJfZGVmL2RlcHMvbnBtL2xpYi91dGlscy9tYXAtdG8tcmVnaXN0cnkuanMgbm9kZS12MC4xMi4yL2RlcHMvbnBtL2xpYi91dGlscy9tYXAtdG8tcmVnaXN0cnkuanMKLS0tLSBub2RlLXYwLjEyLjJfZGVmL2RlcHMvbnBtL2xpYi91dGlscy9tYXAtdG8tcmVnaXN0cnkuanMJMjAxNS0wNC0wMSAwMToxMzowMS4wMDAwMDAwMDAgKzAzMDAKLSsrKyBub2RlLXYwLjEyLjIvZGVwcy9ucG0vbGliL3V0aWxzL21hcC10by1yZWdpc3RyeS5qcwkyMDE1LTA1LTE4IDAxOjE1OjEwLjAzMDU2OTYxMyArMDMwMAotQEAgLTQ1LDYgKzQ1LDggQEAKLSAKLSAgIGxvZy5zaWxseSgibWFwVG9SZWdpc3RyeSIsICJyZWdpc3RyeSIsIHJlZ2lzdHJ5KQotIAotKyAgaWYgKCFyZWdpc3RyeSkgcmV0dXJuIGNiKG51bGwsICJodHRwOi8vbm9yZWdpc3RyeS8iICsgbmFtZSwge30pCi0rCi0gICB2YXIgYXV0aCA9IGNvbmZpZy5nZXRDcmVkZW50aWFsc0J5VVJJKHJlZ2lzdHJ5KQotIAotICAgLy8gbm9ybWFsaXplIHJlZ2lzdHJ5IFVSTCBzbyByZXNvbHV0aW9uIGRvZXNuJ3QgZHJvcCBhIHBpZWNlIG9mIHJlZ2lzdHJ5IFVSTApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbm9kZWpzL25vZGVqc184LjQuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL25vZGVqcy9ub2RlanNfOC40LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViY2JjMDAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbm9kZWpzL25vZGVqc184LjQuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLURFU0NSSVBUSU9OID0gIm5vZGVKUyBFdmVudGVkIEkvTyBmb3IgVjggSmF2YVNjcmlwdCIKLUhPTUVQQUdFID0gImh0dHA6Ly9ub2RlanMub3JnIgotTElDRU5TRSA9ICJNSVQgJiBCU0QgJiBBcnRpc3RpYy0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1lNGQzNWM2MTIwZjE3NWUxZmJlNWZmOTA4YjFjZjJkNiIKLQotREVQRU5EUyA9ICJvcGVuc3NsMTAgemxpYiIKLQotQ09NUEFUSUJMRV9NQUNISU5FX2FybXY0ID0gIighLiphcm12NCkuKiIKLUNPTVBBVElCTEVfTUFDSElORV9hcm12NSA9ICIoIS4qYXJtdjUpLioiCi1DT01QQVRJQkxFX01BQ0hJTkVfbWlwczY0ID0gIighLiptaXBzNjQpLioiCi0KLVNSQ19VUkkgPSAiaHR0cDovL25vZGVqcy5vcmcvZGlzdC92JHtQVn0vbm9kZS12JHtQVn0udGFyLnh6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtRGlzYWJsZS1ydW5uaW5nLWd5cC1maWxlcy1mb3ItYnVuZGxlZC1kZXBzLnBhdGNoIFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICJlNmM4NWM4MzAwMTM0MGIzMDY3MWU5NDMyZTFiZDMzNyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1ZDVhYTJhMTAxZGNjNjE3MjMxYTQ3NTgxMmViOGVkODdjYWMyMTQ5MWYxZGNjNzk5N2I5ZGQ0NjM1NjNmMzYxIgotCi1TID0gIiR7V09SS0RJUn0vbm9kZS12JHtQVn0iCi0KLSMgdjggZXJyb3JzIG91dCBpZiB5b3UgaGF2ZSBzZXQgQ0NBQ0hFCi1DQ0FDSEUgPSAiIgotCi1kZWYgbWFwX25vZGVqc19hcmNoKGEsIGQpOgotICAgIGltcG9ydCByZQotCi0gICAgaWYgICByZS5tYXRjaCgnaS44NiQnLCBhKTogcmV0dXJuICdpYTMyJwotICAgIGVsaWYgcmUubWF0Y2goJ3g4Nl82NCQnLCBhKTogcmV0dXJuICd4NjQnCi0gICAgZWxpZiByZS5tYXRjaCgnYWFyY2g2NCQnLCBhKTogcmV0dXJuICdhcm02NCcKLSAgICBlbGlmIHJlLm1hdGNoKCdwb3dlcnBjNjQkJywgYSk6IHJldHVybiAncHBjNjQnCi0gICAgZWxpZiByZS5tYXRjaCgncG93ZXJwYyQnLCBhKTogcmV0dXJuICdwcGMnCi0gICAgcmV0dXJuIGEKLQotQVJDSEZMQUdTX2FybSA9ICIke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICdjYWxsY29udmVudGlvbi1oYXJkJywgJy0td2l0aC1hcm0tZmxvYXQtYWJpPWhhcmQnLCAnLS13aXRoLWFybS1mbG9hdC1hYmk9c29mdGZwJywgZCl9IFwKLSAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAnbmVvbicsICctLXdpdGgtYXJtLWZwdT1uZW9uJywgXAotICAgICAgICAgICAgICAgICAgICBiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICd2ZnB2M2QxNicsICctLXdpdGgtYXJtLWZwdT12ZnB2My1kMTYnLCBcCi0gICAgICAgICAgICAgICAgICAgIGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ3ZmcHYzJywgJy0td2l0aC1hcm0tZnB1PXZmcHYzJywgXAotICAgICAgICAgICAgICAgICAgICAnLS13aXRoLWFybS1mcHU9dmZwJywgZCksIGQpLCBkKX0iCi1HWVBfREVGSU5FU19hcHBlbmRfbWlwc2VsID0gIiBtaXBzX2FyY2hfdmFyaWFudD0ncjEnICIKLUFSQ0hGTEFHUyA/PSAiIgotCi0jIE5vZGUgaXMgd2F5IHRvbyBjb29sIHRvIHVzZSBwcm9wZXIgYXV0b3Rvb2xzLCBzbyB3ZSBpbnN0YWxsIHR3byB3cmFwcGVycyB0byBmb3JjZWZ1bGx5IGluamVjdCBwcm9wZXIgYXJjaCBjZmxhZ3MgdG8gd29ya2Fyb3VuZCBneXBpCi1kb19jb25maWd1cmUgKCkgewotICAgIHJtIC1yZiAke1N9L2RlcHMvb3BlbnNzbAotICAgIGV4cG9ydCBMRD0iJHtDWFh9IgotICAgIEdZUF9ERUZJTkVTPSIke0dZUF9ERUZJTkVTfSIgZXhwb3J0IEdZUF9ERUZJTkVTCi0gICAgIyAkVEFSR0VUX0FSQ0ggc2V0dGluZ3MgZG9uJ3QgbWF0Y2ggLS1kZXN0LWNwdSBzZXR0aW5ncwotICAgLi9jb25maWd1cmUgLS1wcmVmaXg9JHtwcmVmaXh9IC0td2l0aG91dC1pbnRsIC0td2l0aG91dC1zbmFwc2hvdCAtLXNoYXJlZC1vcGVuc3NsIC0tc2hhcmVkLXpsaWIgXAotICAgICAgICAgICAgICAgLS1kZXN0LWNwdT0iJHtAbWFwX25vZGVqc19hcmNoKGQuZ2V0VmFyKCdUQVJHRVRfQVJDSCcpLCBkKX0iIFwKLSAgICAgICAgICAgICAgIC0tZGVzdC1vcz1saW51eCBcCi0gICAgICAgICAgICAgICAke0FSQ0hGTEFHU30KLX0KLQotZG9fY29tcGlsZSAoKSB7Ci0gICAgZXhwb3J0IExEPSIke0NYWH0iCi0gICAgb2VfcnVubWFrZSBCVUlMRFRZUEU9UmVsZWFzZQotfQotCi1kb19pbnN0YWxsICgpIHsKLSAgICBvZV9ydW5tYWtlIGluc3RhbGwgREVTVERJUj0ke0R9Ci19Ci0KLWRvX2luc3RhbGxfYXBwZW5kX2NsYXNzLW5hdGl2ZSgpIHsKLSAgICAjIHVzZSBub2RlIGZyb20gUEFUSCBpbnN0ZWFkIG9mIGFic29sdXRlIHBhdGggdG8gc3lzcm9vdAotICAgICMgbm9kZS12MC4xMC4yNS90b29scy9pbnN0YWxsLnB5IGlzIHVzaW5nOgotICAgICMgc2hlYmFuZyA9IG9zLnBhdGguam9pbihub2RlX3ByZWZpeCwgJ2Jpbi9ub2RlJykKLSAgICAjIHVwZGF0ZV9zaGViYW5nKGxpbmtfcGF0aCwgc2hlYmFuZykKLSAgICAjIGFuZCBub2RlX3ByZWZpeCBjYW4gYmUgdmVyeSBsb25nIHBhdGggdG8gYmluZGlyIGluIG5hdGl2ZSBzeXNyb290IGFuZAotICAgICMgd2hlbiBpdCBleGNlZWRzIDEyOCBjaGFyYWN0ZXIgc2hlYmFuZyBsaW1pdCBpdCdzIHN0cmlwcGVkIHRvIGluY29ycmVjdCBwYXRoCi0gICAgIyBhbmQgbnBtIGZhaWxzIHRvIGV4ZWN1dGUgbGlrZSBpbiB0aGlzIGNhc2Ugd2l0aCAxMzMgY2hhcmFjdGVycyBzaG93IGluIGxvZy5kb19pbnN0YWxsOgotICAgICMgdXBkYXRpbmcgc2hlYmFuZyBvZiAvaG9tZS9qZW5raW5zL3dvcmtzcGFjZS9idWlsZC13ZWJvcy1uaWdodGx5L2RldmljZS9xZW11eDg2L2xhYmVsL29wZW4td2Vib3MtYnVpbGRlci9CVUlMRC1xZW11eDg2L3dvcmsveDg2XzY0LWxpbnV4L25vZGVqcy1uYXRpdmUvMC4xMC4xNS1yMC9pbWFnZS9ob21lL2plbmtpbnMvd29ya3NwYWNlL2J1aWxkLXdlYm9zLW5pZ2h0bHkvZGV2aWNlL3FlbXV4ODYvbGFiZWwvb3Blbi13ZWJvcy1idWlsZGVyL0JVSUxELXFlbXV4ODYvc3lzcm9vdHMveDg2XzY0LWxpbnV4L3Vzci9iaW4vbnBtIHRvIC9ob21lL2plbmtpbnMvd29ya3NwYWNlL2J1aWxkLXdlYm9zLW5pZ2h0bHkvZGV2aWNlL3FlbXV4ODYvbGFiZWwvb3Blbi13ZWJvcy1idWlsZGVyL0JVSUxELXFlbXV4ODYvc3lzcm9vdHMveDg2XzY0LWxpbnV4L3Vzci9iaW4vbm9kZQotICAgICMgL3Vzci9iaW4vbnBtIGlzIHN5bWxpbmsgdG8gL3Vzci9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcwotICAgICMgdXNlIHNlZCBvbiBucG0tY2xpLmpzIGJlY2F1c2Ugb3RoZXJ3aXNlIHN5bWxpbmsgaXMgcmVwbGFjZWQgd2l0aCBub3JtYWwgZmlsZSBhbmQKLSAgICAjIG5wbS1jbGkuanMgY29udGludWVzIHRvIHVzZSBvbGQgc2hlYmFuZwotICAgIHNlZCAiMXNeLipeI1whL3Vzci9iaW4vZW52IG5vZGVeZyIgLWkgJHtEfSR7ZXhlY19wcmVmaXh9L2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzCi19Ci0KLWRvX2luc3RhbGxfYXBwZW5kX2NsYXNzLXRhcmdldCgpIHsKLSAgICBzZWQgIjFzXi4qXiNcISR7YmluZGlyfS9lbnYgbm9kZV5nIiAtaSAke0R9JHtleGVjX3ByZWZpeH0vbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMKLX0KLQotUEFDS0FHRVMgPSsgIiR7UE59LW5wbSIKLUZJTEVTXyR7UE59LW5wbSA9ICIke2V4ZWNfcHJlZml4fS9saWIvbm9kZV9tb2R1bGVzICR7YmluZGlyfS9ucG0gJHtiaW5kaXJ9L25weCIKLVJERVBFTkRTXyR7UE59LW5wbSA9ICJiYXNoIHB5dGhvbi1zaGVsbCBweXRob24tZGF0ZXRpbWUgcHl0aG9uLXN1YnByb2Nlc3MgcHl0aG9uLXRleHR1dGlscyIKLQotUEFDS0FHRVMgPSsgIiR7UE59LXN5c3RlbXRhcCIKLUZJTEVTXyR7UE59LXN5c3RlbXRhcCA9ICIke2RhdGFkaXJ9L3N5c3RlbXRhcCIKLQotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL25vZGVqcy9ub2RlanNfOC45LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ub2RlanMvbm9kZWpzXzguOS40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5MzBjZDkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ub2RlanMvbm9kZWpzXzguOS40LmJiCkBAIC0wLDAgKzEsOTAgQEAKK0RFU0NSSVBUSU9OID0gIm5vZGVKUyBFdmVudGVkIEkvTyBmb3IgVjggSmF2YVNjcmlwdCIKK0hPTUVQQUdFID0gImh0dHA6Ly9ub2RlanMub3JnIgorTElDRU5TRSA9ICJNSVQgJiBCU0QgJiBBcnRpc3RpYy0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0yNzBmNzQ3N2ExNzA1ZjdjZDNlMjlkM2Q0NTEyOTE1ZCIKKworREVQRU5EUyA9ICJvcGVuc3NsMTAgemxpYiIKKworQ09NUEFUSUJMRV9NQUNISU5FX2FybXY0ID0gIighLiphcm12NCkuKiIKK0NPTVBBVElCTEVfTUFDSElORV9hcm12NSA9ICIoIS4qYXJtdjUpLioiCitDT01QQVRJQkxFX01BQ0hJTkVfbWlwczY0ID0gIighLiptaXBzNjQpLioiCisKK1NSQ19VUkkgPSAiaHR0cDovL25vZGVqcy5vcmcvZGlzdC92JHtQVn0vbm9kZS12JHtQVn0udGFyLnh6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRGlzYWJsZS1ydW5uaW5nLWd5cC1maWxlcy1mb3ItYnVuZGxlZC1kZXBzLnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICI2MzFlZDEwMmZlNThjMTNjZjYzYmM5MmE2OGNmNDc1OSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2Y2RjZGU5YzljMWNhOWY0NTBhMGIyNGVhZmEyMjljYTc1OWU1NzZkYWEwZmFlODkyY2U3NGQ1NDFlY2RjODZmIgorCitTID0gIiR7V09SS0RJUn0vbm9kZS12JHtQVn0iCisKKyMgdjggZXJyb3JzIG91dCBpZiB5b3UgaGF2ZSBzZXQgQ0NBQ0hFCitDQ0FDSEUgPSAiIgorCitkZWYgbWFwX25vZGVqc19hcmNoKGEsIGQpOgorICAgIGltcG9ydCByZQorCisgICAgaWYgICByZS5tYXRjaCgnaS44NiQnLCBhKTogcmV0dXJuICdpYTMyJworICAgIGVsaWYgcmUubWF0Y2goJ3g4Nl82NCQnLCBhKTogcmV0dXJuICd4NjQnCisgICAgZWxpZiByZS5tYXRjaCgnYWFyY2g2NCQnLCBhKTogcmV0dXJuICdhcm02NCcKKyAgICBlbGlmIHJlLm1hdGNoKCcocG93ZXJwYzY0fHBwYzY0bGUpJCcsIGEpOiByZXR1cm4gJ3BwYzY0JworICAgIGVsaWYgcmUubWF0Y2goJ3Bvd2VycGMkJywgYSk6IHJldHVybiAncHBjJworICAgIHJldHVybiBhCisKK0FSQ0hGTEFHU19hcm0gPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAnY2FsbGNvbnZlbnRpb24taGFyZCcsICctLXdpdGgtYXJtLWZsb2F0LWFiaT1oYXJkJywgJy0td2l0aC1hcm0tZmxvYXQtYWJpPXNvZnRmcCcsIGQpfSBcCisgICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ25lb24nLCAnLS13aXRoLWFybS1mcHU9bmVvbicsIFwKKyAgICAgICAgICAgICAgICAgICAgYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAndmZwdjNkMTYnLCAnLS13aXRoLWFybS1mcHU9dmZwdjMtZDE2JywgXAorICAgICAgICAgICAgICAgICAgICBiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICd2ZnB2MycsICctLXdpdGgtYXJtLWZwdT12ZnB2MycsIFwKKyAgICAgICAgICAgICAgICAgICAgJy0td2l0aC1hcm0tZnB1PXZmcCcsIGQpLCBkKSwgZCl9IgorR1lQX0RFRklORVNfYXBwZW5kX21pcHNlbCA9ICIgbWlwc19hcmNoX3ZhcmlhbnQ9J3IxJyAiCitBUkNIRkxBR1MgPz0gIiIKKworIyBOb2RlIGlzIHdheSB0b28gY29vbCB0byB1c2UgcHJvcGVyIGF1dG90b29scywgc28gd2UgaW5zdGFsbCB0d28gd3JhcHBlcnMgdG8gZm9yY2VmdWxseSBpbmplY3QgcHJvcGVyIGFyY2ggY2ZsYWdzIHRvIHdvcmthcm91bmQgZ3lwaQorZG9fY29uZmlndXJlICgpIHsKKyAgICBybSAtcmYgJHtTfS9kZXBzL29wZW5zc2wKKyAgICBleHBvcnQgTEQ9IiR7Q1hYfSIKKyAgICBHWVBfREVGSU5FUz0iJHtHWVBfREVGSU5FU30iIGV4cG9ydCBHWVBfREVGSU5FUworICAgICMgJFRBUkdFVF9BUkNIIHNldHRpbmdzIGRvbid0IG1hdGNoIC0tZGVzdC1jcHUgc2V0dGluZ3MKKyAgIC4vY29uZmlndXJlIC0tcHJlZml4PSR7cHJlZml4fSAtLXdpdGhvdXQtaW50bCAtLXdpdGhvdXQtc25hcHNob3QgLS1zaGFyZWQtb3BlbnNzbCAtLXNoYXJlZC16bGliIFwKKyAgICAgICAgICAgICAgIC0tZGVzdC1jcHU9IiR7QG1hcF9ub2RlanNfYXJjaChkLmdldFZhcignVEFSR0VUX0FSQ0gnKSwgZCl9IiBcCisgICAgICAgICAgICAgICAtLWRlc3Qtb3M9bGludXggXAorICAgICAgICAgICAgICAgJHtBUkNIRkxBR1N9Cit9CisKK2RvX2NvbXBpbGUgKCkgeworICAgIGV4cG9ydCBMRD0iJHtDWFh9IgorICAgIG9lX3J1bm1ha2UgQlVJTERUWVBFPVJlbGVhc2UKK30KKworZG9faW5zdGFsbCAoKSB7CisgICAgb2VfcnVubWFrZSBpbnN0YWxsIERFU1RESVI9JHtEfQorfQorCitkb19pbnN0YWxsX2FwcGVuZF9jbGFzcy1uYXRpdmUoKSB7CisgICAgIyB1c2Ugbm9kZSBmcm9tIFBBVEggaW5zdGVhZCBvZiBhYnNvbHV0ZSBwYXRoIHRvIHN5c3Jvb3QKKyAgICAjIG5vZGUtdjAuMTAuMjUvdG9vbHMvaW5zdGFsbC5weSBpcyB1c2luZzoKKyAgICAjIHNoZWJhbmcgPSBvcy5wYXRoLmpvaW4obm9kZV9wcmVmaXgsICdiaW4vbm9kZScpCisgICAgIyB1cGRhdGVfc2hlYmFuZyhsaW5rX3BhdGgsIHNoZWJhbmcpCisgICAgIyBhbmQgbm9kZV9wcmVmaXggY2FuIGJlIHZlcnkgbG9uZyBwYXRoIHRvIGJpbmRpciBpbiBuYXRpdmUgc3lzcm9vdCBhbmQKKyAgICAjIHdoZW4gaXQgZXhjZWVkcyAxMjggY2hhcmFjdGVyIHNoZWJhbmcgbGltaXQgaXQncyBzdHJpcHBlZCB0byBpbmNvcnJlY3QgcGF0aAorICAgICMgYW5kIG5wbSBmYWlscyB0byBleGVjdXRlIGxpa2UgaW4gdGhpcyBjYXNlIHdpdGggMTMzIGNoYXJhY3RlcnMgc2hvdyBpbiBsb2cuZG9faW5zdGFsbDoKKyAgICAjIHVwZGF0aW5nIHNoZWJhbmcgb2YgL2hvbWUvamVua2lucy93b3Jrc3BhY2UvYnVpbGQtd2Vib3MtbmlnaHRseS9kZXZpY2UvcWVtdXg4Ni9sYWJlbC9vcGVuLXdlYm9zLWJ1aWxkZXIvQlVJTEQtcWVtdXg4Ni93b3JrL3g4Nl82NC1saW51eC9ub2RlanMtbmF0aXZlLzAuMTAuMTUtcjAvaW1hZ2UvaG9tZS9qZW5raW5zL3dvcmtzcGFjZS9idWlsZC13ZWJvcy1uaWdodGx5L2RldmljZS9xZW11eDg2L2xhYmVsL29wZW4td2Vib3MtYnVpbGRlci9CVUlMRC1xZW11eDg2L3N5c3Jvb3RzL3g4Nl82NC1saW51eC91c3IvYmluL25wbSB0byAvaG9tZS9qZW5raW5zL3dvcmtzcGFjZS9idWlsZC13ZWJvcy1uaWdodGx5L2RldmljZS9xZW11eDg2L2xhYmVsL29wZW4td2Vib3MtYnVpbGRlci9CVUlMRC1xZW11eDg2L3N5c3Jvb3RzL3g4Nl82NC1saW51eC91c3IvYmluL25vZGUKKyAgICAjIC91c3IvYmluL25wbSBpcyBzeW1saW5rIHRvIC91c3IvbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMKKyAgICAjIHVzZSBzZWQgb24gbnBtLWNsaS5qcyBiZWNhdXNlIG90aGVyd2lzZSBzeW1saW5rIGlzIHJlcGxhY2VkIHdpdGggbm9ybWFsIGZpbGUgYW5kCisgICAgIyBucG0tY2xpLmpzIGNvbnRpbnVlcyB0byB1c2Ugb2xkIHNoZWJhbmcKKyAgICBzZWQgIjFzXi4qXiNcIS91c3IvYmluL2VudiBub2RlXmciIC1pICR7RH0ke2V4ZWNfcHJlZml4fS9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcworfQorCitkb19pbnN0YWxsX2FwcGVuZF9jbGFzcy10YXJnZXQoKSB7CisgICAgc2VkICIxc14uKl4jXCEke2JpbmRpcn0vZW52IG5vZGVeZyIgLWkgJHtEfSR7ZXhlY19wcmVmaXh9L2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzCit9CisKK1BBQ0tBR0VTID0rICIke1BOfS1ucG0iCitGSUxFU18ke1BOfS1ucG0gPSAiJHtleGVjX3ByZWZpeH0vbGliL25vZGVfbW9kdWxlcyAke2JpbmRpcn0vbnBtICR7YmluZGlyfS9ucHgiCitSREVQRU5EU18ke1BOfS1ucG0gPSAiYmFzaCBweXRob24tc2hlbGwgcHl0aG9uLWRhdGV0aW1lIHB5dGhvbi1zdWJwcm9jZXNzIHB5dGhvbi10ZXh0dXRpbHMgXAorICAgIHB5dGhvbi1jb21waWxlciBweXRob24tbWlzYyBweXRob24tbXVsdGlwcm9jZXNzaW5nIgorCitQQUNLQUdFUyA9KyAiJHtQTn0tc3lzdGVtdGFwIgorRklMRVNfJHtQTn0tc3lzdGVtdGFwID0gIiR7ZGF0YWRpcn0vc3lzdGVtdGFwIgorCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAtc2RrLXRhcmdldC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLXNkay10YXJnZXQuYmIKaW5kZXggMWJlN2Y2YS4uNTNmYzE1OSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAtc2RrLXRhcmdldC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1zZGstdGFyZ2V0LmJiCkBAIC00LDcgKzQsNyBAQAogCiBQUiA9ICJyMSIKIAotaW5oZXJpdCBwYWNrYWdlZ3JvdXAgYWxsYXJjaAoraW5oZXJpdCBwYWNrYWdlZ3JvdXAKIAogUlBST1ZJREVTXyR7UE59ICs9ICJwYWNrYWdlZ3JvdXAtbmF0aXZlLXNkayIKIFJSRVBMQUNFU18ke1BOfSArPSAicGFja2FnZWdyb3VwLW5hdGl2ZS1zZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wZXJsL2lwYy1ydW5fMC45NC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvaXBjLXJ1bl8wLjk0LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjU4OTM5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvaXBjLXJ1bl8wLjk0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiXAotSVBDOjpSdW4gYWxsb3dzIHlvdSBydW4gYW5kIGludGVyYWN0IHdpdGggY2hpbGQgcHJvY2Vzc2VzIFwKLXVzaW5nIGZpbGVzLCBwaXBlcywgYW5kIHBzZXVkby10dHlzLiBCb3RoIHN5c3RlbSgpLXN0eWxlIGFuZCBzY3JpcHRlZCBcCi11c2FnZXMgYXJlIHN1cHBvcnRlZCBhbmQgbWF5IGJlIG1peGVkLiBMaWtld2lzZSwgZnVuY3Rpb25hbCBhbmQgT08gQVBJIFwKLXN0eWxlcyBhcmUgYm90aCBzdXBwb3J0ZWQgYW5kIG1heSBiZSBtaXhlZC4iCi1IT01FUEFHRSA9ICJodHRwczovL21ldGFjcGFuLm9yZy9yZWxlYXNlL0lQQy1SdW4iCi1TRUNUSU9OID0gImxpYnMiCi1MSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MGViZDM3Y2FmNTM3ODFlOGI3MjIzZTZiOTliNjNmNGUiCi1ERVBFTkRTID0gInBlcmwiCi0KLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS90b2Rkci9JUEMtUnVuLmdpdCIKLVNSQ1JFViA9ICI2YmRmNDFlMjc2ZTA2ZDIzZTE0MDc4M2IxM2E2ZWFlZjQ3NDVjMjE2IgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1pbmhlcml0IGNwYW4KLQotRVhUUkFfQ1BBTkZMQUdTID0gIkVYUEFUTElCUEFUSD0ke1NUQUdJTkdfTElCRElSfSBFWFBBVElOQ1BBVEg9JHtTVEFHSU5HX0lOQ0RJUn0iCi0KLWRvX2NvbXBpbGUoKSB7Ci0gICAgZXhwb3J0IExJQkM9IiQoZmluZCAke1NUQUdJTkdfRElSX1RBUkdFVH0vJHtiYXNlX2xpYmRpcn0vIC1uYW1lICdsaWJjLSouc28nKSIKLSAgICBjcGFuX2RvX2NvbXBpbGUKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvaXBjLXJ1bl8wLjk2LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9pcGMtcnVuXzAuOTYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhjOTY2ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvaXBjLXJ1bl8wLjk2LmJiCkBAIC0wLDAgKzEsMjQgQEAKK0RFU0NSSVBUSU9OID0gIlwKK0lQQzo6UnVuIGFsbG93cyB5b3UgcnVuIGFuZCBpbnRlcmFjdCB3aXRoIGNoaWxkIHByb2Nlc3NlcyBcCit1c2luZyBmaWxlcywgcGlwZXMsIGFuZCBwc2V1ZG8tdHR5cy4gQm90aCBzeXN0ZW0oKS1zdHlsZSBhbmQgc2NyaXB0ZWQgXAordXNhZ2VzIGFyZSBzdXBwb3J0ZWQgYW5kIG1heSBiZSBtaXhlZC4gTGlrZXdpc2UsIGZ1bmN0aW9uYWwgYW5kIE9PIEFQSSBcCitzdHlsZXMgYXJlIGJvdGggc3VwcG9ydGVkIGFuZCBtYXkgYmUgbWl4ZWQuIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcmVsZWFzZS9JUEMtUnVuIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTBlYmQzN2NhZjUzNzgxZThiNzIyM2U2Yjk5YjYzZjRlIgorREVQRU5EUyA9ICJwZXJsIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vdG9kZHIvSVBDLVJ1bi5naXQiCitTUkNSRVYgPSAiOTYwNjYzNjZhYzhjNDAxZGZmOWM5NzlkMDRmMjVkYzgyMTlmZmNjMSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBjcGFuCisKK0VYVFJBX0NQQU5GTEFHUyA9ICJFWFBBVExJQlBBVEg9JHtTVEFHSU5HX0xJQkRJUn0gRVhQQVRJTkNQQVRIPSR7U1RBR0lOR19JTkNESVJ9IgorCitkb19jb21waWxlKCkgeworICAgIGV4cG9ydCBMSUJDPSIkKGZpbmQgJHtTVEFHSU5HX0RJUl9UQVJHRVR9LyR7YmFzZV9saWJkaXJ9LyAtbmFtZSAnbGliYy0qLnNvJykiCisgICAgY3Bhbl9kb19jb21waWxlCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wZXJsL2xpYmRiZC1teXNxbC1wZXJsXzQuMDM2LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9saWJkYmQtbXlzcWwtcGVybF80LjAzNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjVkYmVmMi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wZXJsL2xpYmRiZC1teXNxbC1wZXJsXzQuMDM2LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotU1VNTUFSWSA9ICJBIFBlcmwgREJJIGRyaXZlciBmb3IgTXlTUUwiCi1ERVNDUklQVElPTiA9ICJEQkQ6Om15c3FsIGlzIHRoZSBQZXJsNSBEYXRhYmFzZSBJbnRlcmZhY2UgZHJpdmVyIGZvciBcCi10aGUgTXlTUUwgZGF0YWJhc2UuIEluIG90aGVyIHdvcmRzOiBEQkQ6Om15c3FsIGlzIGFuIGludGVyZmFjZSBiZXR3ZWVuIFwKLXRoZSBQZXJsIHByb2dyYW1taW5nIGxhbmd1YWdlIGFuZCB0aGUgTXlTUUwgcHJvZ3JhbW1pbmcgQVBJIHRoYXQgY29tZXMgXAotd2l0aCB0aGUgTXlTUUwgcmVsYXRpb25hbCBkYXRhYmFzZSBtYW5hZ2VtZW50IHN5c3RlbS4gTW9zdCBmdW5jdGlvbnMgXAotcHJvdmlkZWQgYnkgdGhpcyBwcm9ncmFtbWluZyBBUEkgYXJlIHN1cHBvcnRlZC4gU29tZSByYXJlbHkgdXNlZCBcCi1mdW5jdGlvbnMgYXJlIG1pc3NpbmcsIG1haW5seSBiZWNhdXNlIG5vLW9uZSBldmVyIHJlcXVlc3RlZCB0aGVtLiBcCi0iCi1IT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL35taWNoaWVsYi9EQkQtbXlzcWwtNC4wMzYvbGliL0RCRC9teXNxbC5wbSIKLQotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKLURFUEVORFMgKz0gImxpYmRiaS1wZXJsLW5hdGl2ZSBsaWJteXNxbGNsaWVudCIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZDBhMDY5NjQzNDBlNWMwY2RlODhiN2FmNjExZjc1NWMiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvTS9NSS9NSUNISUVMQi9EQkQtbXlzcWwtJHtQVn0udGFyLmd6IFwKLSIKLQotU1JDX1VSSVttZDVzdW1dID0gImZkZWUxZDhkYzRhZTU0YmM2Y2I3Y2Q1YTNmM2QzMzQyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVjNDhhODIzZjg2YjgxMTBjY2I2NTA0YzYxNzZjYTI0OGI1MmY1NjgyOWRkNDU0OGJjMzljMzUwOWY0MTU0Y2YiCi0KLVMgPSAiJHtXT1JLRElSfS9EQkQtbXlzcWwtJHtQVn0iCi0KLWluaGVyaXQgY3BhbgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9saWJkYmQtbXlzcWwtcGVybF80LjA0My5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvbGliZGJkLW15c3FsLXBlcmxfNC4wNDMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQ4YmE3OAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvbGliZGJkLW15c3FsLXBlcmxfNC4wNDMuYmIKQEAgLTAsMCArMSwyNSBAQAorU1VNTUFSWSA9ICJBIFBlcmwgREJJIGRyaXZlciBmb3IgTXlTUUwiCitERVNDUklQVElPTiA9ICJEQkQ6Om15c3FsIGlzIHRoZSBQZXJsNSBEYXRhYmFzZSBJbnRlcmZhY2UgZHJpdmVyIGZvciBcCit0aGUgTXlTUUwgZGF0YWJhc2UuIEluIG90aGVyIHdvcmRzOiBEQkQ6Om15c3FsIGlzIGFuIGludGVyZmFjZSBiZXR3ZWVuIFwKK3RoZSBQZXJsIHByb2dyYW1taW5nIGxhbmd1YWdlIGFuZCB0aGUgTXlTUUwgcHJvZ3JhbW1pbmcgQVBJIHRoYXQgY29tZXMgXAord2l0aCB0aGUgTXlTUUwgcmVsYXRpb25hbCBkYXRhYmFzZSBtYW5hZ2VtZW50IHN5c3RlbS4gTW9zdCBmdW5jdGlvbnMgXAorcHJvdmlkZWQgYnkgdGhpcyBwcm9ncmFtbWluZyBBUEkgYXJlIHN1cHBvcnRlZC4gU29tZSByYXJlbHkgdXNlZCBcCitmdW5jdGlvbnMgYXJlIG1pc3NpbmcsIG1haW5seSBiZWNhdXNlIG5vLW9uZSBldmVyIHJlcXVlc3RlZCB0aGVtLiBcCisiCitIT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL35taWNoaWVsYi9EQkQtbXlzcWwtNC4wMzYvbGliL0RCRC9teXNxbC5wbSIKKworU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKK0RFUEVORFMgKz0gImxpYmRiaS1wZXJsLW5hdGl2ZSBsaWJteXNxbGNsaWVudCIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZDBhMDY5NjQzNDBlNWMwY2RlODhiN2FmNjExZjc1NWMiCisKK1NSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvTS9NSS9NSUNISUVMQi9EQkQtbXlzcWwtJHtQVn0udGFyLmd6IFwKKyIKKworU1JDX1VSSVttZDVzdW1dID0gIjRhMDBkZDdmMWMwNTc5MzExNDdjNjVkZmM0OTAxYzM2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjYyOWY4NjVlODMxN2Y1MjYwMmIyZjJlZmQyYjY4ODAwMjkwM2QyZTRiYmNiYTU0MjdjYjYxODhiMDQzZDZmOTkiCisKK1MgPSAiJHtXT1JLRElSfS9EQkQtbXlzcWwtJHtQVn0iCisKK2luaGVyaXQgY3BhbgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9saWJkYmktcGVybF8xLjYzNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvbGliZGJpLXBlcmxfMS42MzYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4NWI5MDQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9saWJkYmktcGVybF8xLjYzNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVNVTU1BUlkgPSAiVGhlIFBlcmwgRGF0YWJhc2UgSW50ZXJmYWNlIgotREVTQ1JJUFRJT04gPSAiREJJIGlzIGEgZGF0YWJhc2UgYWNjZXNzIEFwcGxpY2F0aW9uIFByb2dyYW1taW5nIEludGVyZmFjZSBcCi0oQVBJKSBmb3IgdGhlIFBlcmwgTGFuZ3VhZ2UuIFRoZSBEQkkgQVBJIFNwZWNpZmljYXRpb24gZGVmaW5lcyBhIHNldCBcCi1vZiBmdW5jdGlvbnMsIHZhcmlhYmxlcyBhbmQgY29udmVudGlvbnMgdGhhdCBwcm92aWRlIGEgY29uc2lzdGVudCBcCi1kYXRhYmFzZSBpbnRlcmZhY2UgaW5kZXBlbmRlbnQgb2YgdGhlIGFjdHVhbCBkYXRhYmFzZSBiZWluZyB1c2VkLiBcCi0iCi1IT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL2Rpc3QvREJJLyIKLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCi1SREVQRU5EU18ke1BOfSA9ICIgcGVybC1tb2R1bGUtY2FycCBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZXhwb3J0ZXIgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWV4cG9ydGVyLWhlYXZ5IFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1keW5hbG9hZGVyIFwKLSIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vREJJLnBtO2JlZ2lubGluZT04MTQ3O2VuZGxpbmU9ODE1MTttZDU9MmU1ZjZjZjQ3ZTVhZDdiNzdkY2I2MTcyZWRjMjkyOTIiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvVC9USS9USU1CL0RCSS0ke1BWfS50YXIuZ3oiCi1TUkNfVVJJW21kNXN1bV0gPSAiNjBmMjkxZTVmMDE1NTUwZGRlNzFkMTg1OGRmZTkzYmEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGY3ZGRjZTk3YzA0YjRiN2EwMDBlNjVlNWQwNWY2NzljOTY0ZDYyYzhiMDJjOTRjMWE3ZDgxNWJiMmRkNjc2YyIKLQotUyA9ICIke1dPUktESVJ9L0RCSS0ke1BWfSIKLQotaW5oZXJpdCBjcGFuCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9saWJkYmktcGVybF8xLjY0MS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvbGliZGJpLXBlcmxfMS42NDEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRhMTI0NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvbGliZGJpLXBlcmxfMS42NDEuYmIKQEAgLTAsMCArMSwzNiBAQAorU1VNTUFSWSA9ICJUaGUgUGVybCBEYXRhYmFzZSBJbnRlcmZhY2UiCitERVNDUklQVElPTiA9ICJEQkkgaXMgYSBkYXRhYmFzZSBhY2Nlc3MgQXBwbGljYXRpb24gUHJvZ3JhbW1pbmcgSW50ZXJmYWNlIFwKKyhBUEkpIGZvciB0aGUgUGVybCBMYW5ndWFnZS4gVGhlIERCSSBBUEkgU3BlY2lmaWNhdGlvbiBkZWZpbmVzIGEgc2V0IFwKK29mIGZ1bmN0aW9ucywgdmFyaWFibGVzIGFuZCBjb252ZW50aW9ucyB0aGF0IHByb3ZpZGUgYSBjb25zaXN0ZW50IFwKK2RhdGFiYXNlIGludGVyZmFjZSBpbmRlcGVuZGVudCBvZiB0aGUgYWN0dWFsIGRhdGFiYXNlIGJlaW5nIHVzZWQuIFwKKyIKK0hPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvZGlzdC9EQkkvIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKK1JERVBFTkRTXyR7UE59ID0gIiBwZXJsLW1vZHVsZS1jYXJwIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1leHBvcnRlciBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZXhwb3J0ZXItaGVhdnkgXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWR5bmFsb2FkZXIgXAorIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0xMDk4MmM3MTQ4ZTBhMDEyYzBmZDgwNTM0NTIyZjVjNSIKKworU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9UL1RJL1RJTUIvREJJLSR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJlNzdmZDM3ZmNmNzdmYzg4ZmRlMDI5YzFiNzVkZWQ1NCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1NTA5ZTUzMmNkZDBlM2Q5MWVkYTU1MDU3OGRlYWFjMjllMmYwMDhhMTJiNjQ1NzZlOGMyNjFiYjkyZThjMmMxIgorCitTID0gIiR7V09SS0RJUn0vREJJLSR7UFZ9IgorCitpbmhlcml0IGNwYW4gcHRlc3QtcGVybAorCitkb19pbnN0YWxsX3ByZXBlbmQoKSB7CisJIyB0ZXN0IHJlcXVpcmVzICItVCIgKHRhaW50KSBjb21tYW5kIGxpbmUgb3B0aW9uCisJcm0gLXJmICR7Qn0vdC9wb2QtY292ZXJhZ2UudAorCXJtIC1yZiAke0J9L3QvMTN0YWludC50CisJIyBzb3VyY2Ugb2YgdGVzdCBmYWlsdXJlIG5vdCBvYnZpb3VzCisJcm0gLXJmICR7Qn0vdC84NWdvZmVyLnQKKwkjIHVuY2xlYXIgd2h5IHRoZXJlIGFyZSBzZXZlcmFsIGR1cGxpY2F0ZXMgb2YgdGVzdHMgaW4gdGFyYmFsbAorCXJtIC1yZiAke0J9L3QveioudAorfQorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAtNS42LjMxL2NoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC01LjYuMzEvY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5YzMzNGYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC01LjYuMzEvY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1bUEFUQ0hdIGNvbmZpZy5tNDogY2hhbmdlIEFDX1RSWV9SVU4gdG8gQUNfVFJZX0xJTksKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLUFDX1RSWV9SVU4gaXMgbm90IHN1aXRhYmxlIGZvciBjcm9zcy1jb21waWxlCi0KLVNpZ25lZC1vZmYtYnk6IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KLS0tLQotIGV4dC9maWxlaW5mby9jb25maWcubTQgfCAzMSArKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9leHQvZmlsZWluZm8vY29uZmlnLm00IGIvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNAotaW5kZXggN2U5OGQ2Mi4uOGE4ZWEwZSAxMDA2NDQKLS0tLSBhL2V4dC9maWxlaW5mby9jb25maWcubTQKLSsrKyBiL2V4dC9maWxlaW5mby9jb25maWcubTQKLUBAIC0xNCwzMSArMTQsMTIgQEAgaWYgdGVzdCAiJFBIUF9GSUxFSU5GTyIgIT0gIm5vIjsgdGhlbgotICAgICBsaWJtYWdpYy9yZWFkY2RmLmMgbGlibWFnaWMvc29mdG1hZ2ljLmMiCi0gCi0gICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzdHJjYXNlc3RyXSkKLS0gIEFDX1RSWV9SVU4oWwotLSNpbmNsdWRlIDxzdHJpbmcuaD4KLS0jaW5jbHVkZSA8c3RyaW5ncy5oPgotLSNpbmNsdWRlIDxzdGRsaWIuaD4KLS0KLS1pbnQgbWFpbih2b2lkKQotLXsKLS0gICAgICAgIGNoYXIgKnMwLCAqczEsICpyZXQ7Ci0tCi0tICAgICAgICBzMCA9IChjaGFyICopIG1hbGxvYyg0Mik7Ci0tICAgICAgICBzMSA9IChjaGFyICopIG1hbGxvYyg4KTsKLS0KLS0gICAgICAgIG1lbXNldChzMCwgJ1gnLCA0Mik7Ci0tICAgICAgICBzMFsyNF0gPSAnWSc7Ci0tICAgICAgICBzMFsyNl0gPSAnWic7Ci0tICAgICAgICBzMFs0MV0gPSAnXDAnOwotLSAgICAgICAgbWVtc2V0KHMxLCAneCcsIDgpOwotLSAgICAgICAgczFbMF0gPSAneSc7Ci0tICAgICAgICBzMVsyXSA9ICdaJzsKLS0gICAgICAgIHMxWzddID0gJ1wwJzsKLS0KLS0gICAgICAgIHJldCA9IHN0cmNhc2VzdHIoczAsIHMxKTsKLS0KLS0gICAgICAgIHJldHVybiAhKE5VTEwgIT0gcmV0KTsKLS19Ci0rICBBQ19UUllfQ09NUElMRShbCi0rICAgICAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rICAgICAjaW5jbHVkZSA8c3RyaW5ncy5oPgotKyAgICAgI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyAgXSxbCi0rICAgICBzdHJjYXNlc3RyKE5VTEwsIE5VTEwpOwotICAgXSxbCi0gICAgIGRubCB1c2luZyB0aGUgcGxhdGZvcm0gaW1wbGVtZW50YXRpb24KLSAgICAgQUNfTVNHX1JFU1VMVCh5ZXMpCi0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAtNy4xLjkvMDAwMS1TcGVjaWZ5LXRhZy13aXRoLWxpYnRvb2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLTcuMS45LzAwMDEtU3BlY2lmeS10YWctd2l0aC1saWJ0b29sLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOGI0OTM3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAtNy4xLjkvMDAwMS1TcGVjaWZ5LXRhZy13aXRoLWxpYnRvb2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi1Gcm9tIDVjODRiMDM5ZTk3YWJkODhmNmExOGRhMGU2ZDI3MzgzYzAwZmVhOTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogV2VkLCAyNiBKdWwgMjAxNyAyMzowNjo1NiAtMDcwMAotU3ViamVjdDogW1BBVENIXSBTcGVjaWZ5IC0tdGFnIHdpdGggbGlidG9vbAotCi1UaGlzIGhlbHBzIGluIGNvbXBpbGluZyB3aXRoIGV4dGVybmFsIHRvb2xjaGFpbnMKLXdpdGggLWZQSUUgYXBwZW5kZWQgdG8gQ0MgZS5nLiB2aWEgaGFyZGVuaW5nIGZsYWdzCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBhY2luY2x1ZGUubTQgfCA4ICsrKystLS0tCi0gY29uZmlndXJlLmluIHwgNCArKy0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9hY2luY2x1ZGUubTQgYi9hY2luY2x1ZGUubTQKLWluZGV4IGExMTRhOTguLjFjYzdhMjYgMTAwNjQ0Ci0tLS0gYS9hY2luY2x1ZGUubTQKLSsrKyBiL2FjaW5jbHVkZS5tNAotQEAgLTgwNiwxMCArODA2LDEwIEBAIGRubAotIGRubCBQSFBfQlVJTERfUFJPR1JBTQotIGRubAotIEFDX0RFRlVOKFtQSFBfQlVJTERfUFJPR1JBTV0sWwotLSAgcGhwX2NfcHJlPSckKExJQlRPT0wpIC0tbW9kZT1jb21waWxlICQoQ0MpJwotKyAgcGhwX2NfcHJlPSckKExJQlRPT0wpIC0tdGFnPUNDIC0tbW9kZT1jb21waWxlICQoQ0MpJwotICAgcGhwX2NfbWV0YT0nJChDT01NT05fRkxBR1MpICQoQ0ZMQUdTX0NMRUFOKSAkKEVYVFJBX0NGTEFHUyknCi0gICBwaHBfY19wb3N0PQotLSAgcGhwX2N4eF9wcmU9JyQoTElCVE9PTCkgLS1tb2RlPWNvbXBpbGUgJChDWFgpJwotKyAgcGhwX2N4eF9wcmU9JyQoTElCVE9PTCkgLS10YWc9Q1hYIC0tbW9kZT1jb21waWxlICQoQ1hYKScKLSAgIHBocF9jeHhfbWV0YT0nJChDT01NT05fRkxBR1MpICQoQ1hYRkxBR1NfQ0xFQU4pICQoRVhUUkFfQ1hYRkxBR1MpJwotICAgcGhwX2N4eF9wb3N0PQotICAgcGhwX2xvPWxvCi1AQCAtODE5LDEwICs4MTksMTAgQEAgQUNfREVGVU4oW1BIUF9CVUlMRF9QUk9HUkFNXSxbCi0gICAgIG5vKSAgcGljX3NldHRpbmc9Jy1wcmVmZXItbm9uLXBpYyc7OwotICAgZXNhYwotIAotLSAgc2hhcmVkX2NfcHJlPSckKExJQlRPT0wpIC0tbW9kZT1jb21waWxlICQoQ0MpJwotKyAgc2hhcmVkX2NfcHJlPSckKExJQlRPT0wpIC0tdGFnPUNDIC0tbW9kZT1jb21waWxlICQoQ0MpJwotICAgc2hhcmVkX2NfbWV0YT0nJChDT01NT05fRkxBR1MpICQoQ0ZMQUdTX0NMRUFOKSAkKEVYVFJBX0NGTEFHUykgJyRwaWNfc2V0dGluZwotICAgc2hhcmVkX2NfcG9zdD0KLS0gIHNoYXJlZF9jeHhfcHJlPSckKExJQlRPT0wpIC0tbW9kZT1jb21waWxlICQoQ1hYKScKLSsgIHNoYXJlZF9jeHhfcHJlPSckKExJQlRPT0wpIC0tdGFnPUNYWCAtLW1vZGU9Y29tcGlsZSAkKENYWCknCi0gICBzaGFyZWRfY3h4X21ldGE9JyQoQ09NTU9OX0ZMQUdTKSAkKENYWEZMQUdTX0NMRUFOKSAkKEVYVFJBX0NYWEZMQUdTKSAnJHBpY19zZXR0aW5nCi0gICBzaGFyZWRfY3h4X3Bvc3Q9Ci0gICBzaGFyZWRfbG89bG8KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KLWluZGV4IDdkNjViNjMuLjcyMjFhZjkgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuaW4KLSsrKyBiL2NvbmZpZ3VyZS5pbgotQEAgLTE0MzEsOCArMTQzMSw4IEBAIFBIUF9TRVRfTElCVE9PTF9WQVJJQUJMRShbLS1zaWxlbnRdKQotIGRubCBsaWJ0b29sIDEuNC4zIG5lZWRzIHRoaXMuCi0gUEhQX1NFVF9MSUJUT09MX1ZBUklBQkxFKFstLXByZXNlcnZlLWR1cC1kZXBzXSkKLSAKLS10ZXN0IC16ICIkUEhQX0NPTVBJTEUiICYmIFBIUF9DT01QSUxFPSckKExJQlRPT0wpIC0tbW9kZT1jb21waWxlICQoQ09NUElMRSkgLWMgJDwnCi0tdGVzdCAteiAiJENYWF9QSFBfQ09NUElMRSIgJiYgQ1hYX1BIUF9DT01QSUxFPSckKExJQlRPT0wpIC0tbW9kZT1jb21waWxlICQoQ1hYX0NPTVBJTEUpIC1jICQ8JwotK3Rlc3QgLXogIiRQSFBfQ09NUElMRSIgJiYgUEhQX0NPTVBJTEU9JyQoTElCVE9PTCkgLS10YWc9Q0MgLS1tb2RlPWNvbXBpbGUgJChDT01QSUxFKSAtYyAkPCcKLSt0ZXN0IC16ICIkQ1hYX1BIUF9DT01QSUxFIiAmJiBDWFhfUEhQX0NPTVBJTEU9JyQoTElCVE9PTCkgLS10YWc9Q1hYIC0tbW9kZT1jb21waWxlICQoQ1hYX0NPTVBJTEUpIC1jICQ8JwotIFNIQVJFRF9MSUJUT09MPSckKExJQlRPT0wpJwotIAotIENDPSRvbGRfQ0MKLS0tIAotMi4xMy4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAtNy4xLjkvQ1ZFLTIwMTctMTY2NDIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLTcuMS45L0NWRS0yMDE3LTE2NjQyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MWQyYTBmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAtNy4xLjkvQ1ZFLTIwMTctMTY2NDIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1MjQxICswLDAgQEAKLUZyb20gZjJmOTA3NjczMTEzNTVjYWZhYmZmNjA0YTdhODU3Y2E2MGVlM2YwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IExpIFpob3UgPGxpLnpob3VAd2luZHJpdmVyLmNvbT4KLURhdGU6IFdlZCwgMjIgTm92IDIwMTcgMjE6MTQ6NTkgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4ZWQgYnVnICM3NTA1NSBPdXQtT2YtQm91bmRzIFJlYWQgaW4gdGltZWxpYl9tZXJpZGlhbigpCi0KLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKLUNWRTogQ1ZFLTIwMTctMTY2NDIKLVNpZ25lZC1vZmYtYnk6IExpIFpob3UgPGxpLnpob3VAd2luZHJpdmVyLmNvbT4KLS0tLQotIGV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMgICAgICAgICB8IDE1NDQgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQotIGV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlICAgICAgICB8ICAgIDQgKy0KLSBleHQvZGF0ZS90ZXN0cy9idWc1MzQzN192YXIzLnBocHQgfCAgICAyICstCi0gZXh0L3dkZHgvdGVzdHMvYnVnNzUwNTUucGhwdCAgICAgIHwgICAyMCArCi0gZXh0L3dkZHgvdGVzdHMvYnVnNzUwNTUud2RkeCAgICAgIHwgICAxMyArCi0gNSBmaWxlcyBjaGFuZ2VkLCA5MTEgaW5zZXJ0aW9ucygrKSwgNjcyIGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBleHQvd2RkeC90ZXN0cy9idWc3NTA1NS5waHB0Ci0gY3JlYXRlIG1vZGUgMTAwNjQ0IGV4dC93ZGR4L3Rlc3RzL2J1Zzc1MDU1LndkZHgKLQotZGlmZiAtLWdpdCBhL2V4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMgYi9leHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jCi1pbmRleCBmOTI5NjE5Li42YjExNDE4IDEwMDY0NAotLS0tIGEvZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYwotKysrIGIvZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYwotQEAgLTEsNCArMSw1IEBACi0tLyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4xNS4zIG9uIFR1ZSBKdWwgIDQgMjE6MTU6MTcgMjAxNyAqLwotKy8qIEdlbmVyYXRlZCBieSByZTJjIDAuMTUuMyBvbiBXZWQgTm92IDIyIDIxOjE0OjQ3IDIwMTcgKi8KLSsjbGluZSAxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAvKgotICAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKQotICAqCi1AQCAtODM3LDkgKzgzOCwxMSBAQCBzdGF0aWMgaW50IHNjYW4oU2Nhbm5lciAqcywgdGltZWxpYl90el9nZXRfd3JhcHBlciB0el9nZXRfd3JhcHBlcikKLSBzdGQ6Ci0gCXMtPnRvayA9IGN1cnNvcjsKLSAJcy0+bGVuID0gMDsKLSsjbGluZSA5NjUgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAotIAotIAotKyNsaW5lIDg0NiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB7Ci0gCVlZQ1RZUEUgeXljaDsKLSAJdW5zaWduZWQgaW50IHl5YWNjZXB0ID0gMDsKLUBAIC05NjIsMTggKzk2NSwxOSBAQCB5eTI6Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTY1OwotLQkJCWdvdG8geXkxNTIxOwotKwkJCWdvdG8geXkxNTIzOwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2QnKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY1OwotIAkJCWlmICh5eWNoID49ICdhJykgZ290byB5eTE3MDsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTUzMDsKLSsJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNTMyOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MDsKLSAJCX0KLSAJfQotIHl5MzoKLSsjbGluZSAxNjczICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IHR6X25vdF9mb3VuZDsKLSAJCURFQlVHX09VVFBVVCgidHpjb3JyZWN0aW9uIHwgdHoiKTsKLUBAIC05ODYsNiArOTkwLDcgQEAgeXkzOgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9USU1FWk9ORTsKLSAJfQotKyNsaW5lIDk5NCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTQ6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0UnKSB7Ci1AQCAtOTk1LDcgKzEwMDAsNyBAQCB5eTQ6Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTY1OwotLQkJCWdvdG8geXkxNTIxOwotKwkJCWdvdG8geXkxNTIzOwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2QnKSB7Ci1AQCAtMTAwMyw3ICsxMDA4LDcgQEAgeXk0OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NTsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTUyMTsKLSsJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNTIzOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NTsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLUBAIC0xMDE3LDEyICsxMDIyLDEyIEBAIHl5NToKLSAJCQlnb3RvIHl5MTY1OwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnSCcpIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ0UnKSBnb3RvIHl5MTQ5MjsKLSsJCQkJaWYgKHl5Y2ggPD0gJ0UnKSBnb3RvIHl5MTQ5NDsKLSAJCQkJZ290byB5eTE2NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnSScpIGdvdG8geXkxNDkzOwotKwkJCQlpZiAoeXljaCA8PSAnSScpIGdvdG8geXkxNDk1OwotIAkJCQlpZiAoeXljaCA8PSAnTicpIGdvdG8geXkxNjU7Ci0tCQkJCWdvdG8geXkxNDkxOwotKwkJCQlnb3RvIHl5MTQ5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0gZWxzZSB7Ci1AQCAtMTAzMSwxNSArMTAzNiwxNSBAQCB5eTU6Ci0gCQkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ2UnKSBnb3RvIHl5MTUwODsKLSsJCQkJaWYgKHl5Y2ggPT0gJ2UnKSBnb3RvIHl5MTUxMDsKLSAJCQkJZ290byB5eTE3MDsKLSAJCQl9Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICduJykgewotLQkJCQlpZiAoeXljaCA8PSAnaScpIGdvdG8geXkxNTA5OwotKwkJCQlpZiAoeXljaCA8PSAnaScpIGdvdG8geXkxNTExOwotIAkJCQlnb3RvIHl5MTcwOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdvJykgZ290byB5eTE1MDc7Ci0rCQkJCWlmICh5eWNoIDw9ICdvJykgZ290byB5eTE1MDk7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MDsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotQEAgLTEwNTQsMTIgKzEwNTksMTIgQEAgeXk2OgotIAkJCWdvdG8geXkxNjU7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdIJykgewotLQkJCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNDkyOwotKwkJCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNDk0OwotIAkJCQlnb3RvIHl5MTY1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdJJykgZ290byB5eTE0OTM7Ci0rCQkJCWlmICh5eWNoIDw9ICdJJykgZ290byB5eTE0OTU7Ci0gCQkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE2NTsKLS0JCQkJZ290byB5eTE0OTE7Ci0rCQkJCWdvdG8geXkxNDkzOwotIAkJCX0KLSAJCX0KLSAJfSBlbHNlIHsKLUBAIC0xMDY4LDE1ICsxMDczLDE1IEBAIHl5NjoKLSAJCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA9PSAnZScpIGdvdG8geXkxNDkyOwotKwkJCQlpZiAoeXljaCA9PSAnZScpIGdvdG8geXkxNDk0OwotIAkJCQlnb3RvIHl5MTY1OwotIAkJCX0KLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ24nKSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdpJykgZ290byB5eTE0OTM7Ci0rCQkJCWlmICh5eWNoIDw9ICdpJykgZ290byB5eTE0OTU7Ci0gCQkJCWdvdG8geXkxNjU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTQ5MTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTQ5MzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci1AQCAtMTA4OCwyNCArMTA5MywyNCBAQCB5eTc6Ci0gCQlpZiAoeXljaCA8PSAnQScpIHsKLSAJCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLS0JCQlnb3RvIHl5MTQ2MTsKLSsJCQlnb3RvIHl5MTQ2MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTQ2MjsKLSsJCQlpZiAoeXljaCA9PSAnSScpIGdvdG8geXkxNDY0OwotIAkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE2NTsKLS0JCQlnb3RvIHl5MTQ2MzsKLSsJCQlnb3RvIHl5MTQ2NTsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdoJykgewotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NTsKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0NzY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQ3ODsKLSAJCQlnb3RvIHl5MTcwOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnbicpIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2knKSBnb3RvIHl5MTQ3NzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2knKSBnb3RvIHl5MTQ3OTsKLSAJCQkJZ290byB5eTE3MDsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnbycpIGdvdG8geXkxNDc4OwotKwkJCQlpZiAoeXljaCA8PSAnbycpIGdvdG8geXkxNDgwOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzA7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLUBAIC0xMTE3LDI0ICsxMTIyLDI0IEBAIHl5ODoKLSAJCWlmICh5eWNoIDw9ICdBJykgewotIAkJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotLQkJCWdvdG8geXkxNDYxOwotKwkJCWdvdG8geXkxNDYzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAnSScpIGdvdG8geXkxNDYyOwotKwkJCWlmICh5eWNoID09ICdJJykgZ290byB5eTE0NjQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJ04nKSBnb3RvIHl5MTY1OwotLQkJCWdvdG8geXkxNDYzOwotKwkJCWdvdG8geXkxNDY1OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2gnKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY1OwotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQ2MTsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxNDYzOwotIAkJCWdvdG8geXkxNjU7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICduJykgewotLQkJCQlpZiAoeXljaCA8PSAnaScpIGdvdG8geXkxNDYyOwotKwkJCQlpZiAoeXljaCA8PSAnaScpIGdvdG8geXkxNDY0OwotIAkJCQlnb3RvIHl5MTY1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdvJykgZ290byB5eTE0NjM7Ci0rCQkJCWlmICh5eWNoIDw9ICdvJykgZ290byB5eTE0NjU7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotQEAgLTExNDYsMTUgKzExNTEsMTUgQEAgeXk5OgotIAlzd2l0Y2ggKHl5Y2gpIHsKLSAJY2FzZSAnKSc6CWdvdG8geXkxNjQ7Ci0gCWNhc2UgJzAnOgotLQljYXNlICcxJzoJZ290byB5eTEzOTE7Ci0tCWNhc2UgJzInOglnb3RvIHl5MTM5MjsKLSsJY2FzZSAnMSc6CWdvdG8geXkxMzkzOwotKwljYXNlICcyJzoJZ290byB5eTEzOTQ7Ci0gCWNhc2UgJzMnOgotIAljYXNlICc0JzoKLSAJY2FzZSAnNSc6Ci0gCWNhc2UgJzYnOgotIAljYXNlICc3JzoKLSAJY2FzZSAnOCc6Ci0tCWNhc2UgJzknOglnb3RvIHl5MTM5MzsKLSsJY2FzZSAnOSc6CWdvdG8geXkxMzk1OwotIAljYXNlICdBJzoKLSAJY2FzZSAnQic6Ci0gCWNhc2UgJ0MnOgotQEAgLTExNzYsMTEgKzExODEsMTEgQEAgeXk5OgotIAljYXNlICdYJzoKLSAJY2FzZSAnWSc6Ci0gCWNhc2UgJ1onOglnb3RvIHl5MTY1OwotLQljYXNlICdFJzoJZ290byB5eTEzODY7Ci0tCWNhc2UgJ0gnOglnb3RvIHl5MTM4NzsKLS0JY2FzZSAnTyc6CWdvdG8geXkxMzg4OwotLQljYXNlICdVJzoJZ290byB5eTEzODk7Ci0tCWNhc2UgJ1cnOglnb3RvIHl5MTM5MDsKLSsJY2FzZSAnRSc6CWdvdG8geXkxMzg4OwotKwljYXNlICdIJzoJZ290byB5eTEzODk7Ci0rCWNhc2UgJ08nOglnb3RvIHl5MTM5MDsKLSsJY2FzZSAnVSc6CWdvdG8geXkxMzkxOwotKwljYXNlICdXJzoJZ290byB5eTEzOTI7Ci0gCWNhc2UgJ2EnOgotIAljYXNlICdiJzoKLSAJY2FzZSAnYyc6Ci1AQCAtMTIwMiwxMSArMTIwNywxMSBAQCB5eTk6Ci0gCWNhc2UgJ3gnOgotIAljYXNlICd5JzoKLSAJY2FzZSAneic6CWdvdG8geXkxNzA7Ci0tCWNhc2UgJ2UnOglnb3RvIHl5MTQyOTsKLS0JY2FzZSAnaCc6CWdvdG8geXkxNDMwOwotLQljYXNlICdvJzoJZ290byB5eTE0MzE7Ci0tCWNhc2UgJ3UnOglnb3RvIHl5MTQzMjsKLS0JY2FzZSAndyc6CWdvdG8geXkxNDMzOwotKwljYXNlICdlJzoJZ290byB5eTE0MzE7Ci0rCWNhc2UgJ2gnOglnb3RvIHl5MTQzMjsKLSsJY2FzZSAnbyc6CWdvdG8geXkxNDMzOwotKwljYXNlICd1JzoJZ290byB5eTE0MzQ7Ci0rCWNhc2UgJ3cnOglnb3RvIHl5MTQzNTsKLSAJZGVmYXVsdDoJZ290byB5eTM7Ci0gCX0KLSB5eTEwOgotQEAgLTEyMTUsMTUgKzEyMjAsMTUgQEAgeXkxMDoKLSAJc3dpdGNoICh5eWNoKSB7Ci0gCWNhc2UgJyknOglnb3RvIHl5MTY0OwotIAljYXNlICcwJzoKLS0JY2FzZSAnMSc6CWdvdG8geXkxMzkxOwotLQljYXNlICcyJzoJZ290byB5eTEzOTI7Ci0rCWNhc2UgJzEnOglnb3RvIHl5MTM5MzsKLSsJY2FzZSAnMic6CWdvdG8geXkxMzk0OwotIAljYXNlICczJzoKLSAJY2FzZSAnNCc6Ci0gCWNhc2UgJzUnOgotIAljYXNlICc2JzoKLSAJY2FzZSAnNyc6Ci0gCWNhc2UgJzgnOgotLQljYXNlICc5JzoJZ290byB5eTEzOTM7Ci0rCWNhc2UgJzknOglnb3RvIHl5MTM5NTsKLSAJY2FzZSAnQSc6Ci0gCWNhc2UgJ0InOgotIAljYXNlICdDJzoKLUBAIC0xMjY3LDI4ICsxMjcyLDMwIEBAIHl5MTA6Ci0gCWNhc2UgJ3knOgotIAljYXNlICd6JzoJZ290byB5eTE2NTsKLSAJY2FzZSAnRSc6Ci0tCWNhc2UgJ2UnOglnb3RvIHl5MTM4NjsKLSsJY2FzZSAnZSc6CWdvdG8geXkxMzg4OwotIAljYXNlICdIJzoKLS0JY2FzZSAnaCc6CWdvdG8geXkxMzg3OwotKwljYXNlICdoJzoJZ290byB5eTEzODk7Ci0gCWNhc2UgJ08nOgotLQljYXNlICdvJzoJZ290byB5eTEzODg7Ci0rCWNhc2UgJ28nOglnb3RvIHl5MTM5MDsKLSAJY2FzZSAnVSc6Ci0tCWNhc2UgJ3UnOglnb3RvIHl5MTM4OTsKLSsJY2FzZSAndSc6CWdvdG8geXkxMzkxOwotIAljYXNlICdXJzoKLS0JY2FzZSAndyc6CWdvdG8geXkxMzkwOwotKwljYXNlICd3JzoJZ290byB5eTEzOTI7Ci0gCWRlZmF1bHQ6CWdvdG8geXkzOwotIAl9Ci0geXkxMToKLSAJeXlhY2NlcHQgPSAxOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotLQlpZiAoeXljaCA9PSAnLScpIGdvdG8geXkxMzc0OwotKwlpZiAoeXljaCA9PSAnLScpIGdvdG8geXkxMzc2OwotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxMjsKLS0JaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5MTM3NTsKLSsJaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5MTM3NzsKLSB5eTEyOgotKyNsaW5lIDE3NjggImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlhZGRfZXJyb3IocywgIlVuZXhwZWN0ZWQgY2hhcmFjdGVyIik7Ci0gCQlnb3RvIHN0ZDsKLSAJfQotKyNsaW5lIDEyOTkgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXkxMzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnUicpIHsKLUBAIC0xMjk5LDE2ICsxMzA2LDE2IEBAIHl5MTM6Ci0gCQkJfSBlbHNlIHsKLSAJCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTY1OwotLQkJCQlnb3RvIHl5MTMxMDsKLSsJCQkJZ290byB5eTEzMTE7Ci0gCQkJfQotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnTicpIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTMxMTsKLSsJCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTMxMjsKLSAJCQkJZ290byB5eTE2NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxMzEyOwotKwkJCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxMzEzOwotIAkJCQlpZiAoeXljaCA8PSAnUScpIGdvdG8geXkxNjU7Ci0tCQkJCWdvdG8geXkxMzEzOwotKwkJCQlnb3RvIHl5MTMxNDsKLSAJCQl9Ci0gCQl9Ci0gCX0gZWxzZSB7Ci1AQCAtMTMxOCwxNiArMTMyNSwxNiBAQCB5eTEzOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTcwOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTEzNTE7Ci0rCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTEzNTM7Ci0gCQkJCWlmICh5eWNoIDw9ICdoJykgZ290byB5eTE3MDsKLS0JCQkJZ290byB5eTEzNTI7Ci0rCQkJCWdvdG8geXkxMzU0OwotIAkJCX0KLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3EnKSB7Ci0tCQkJCWlmICh5eWNoID09ICdvJykgZ290byB5eTEzNTM7Ci0rCQkJCWlmICh5eWNoID09ICdvJykgZ290byB5eTEzNTU7Ci0gCQkJCWdvdG8geXkxNzA7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTM1NDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTM1NjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcwOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci1AQCAtMTM0MywxNiArMTM1MCwxNiBAQCB5eTE0OgotIAkJCX0gZWxzZSB7Ci0gCQkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTE2NTsKLS0JCQkJZ290byB5eTEzMTA7Ci0rCQkJCWdvdG8geXkxMzExOwotIAkJCX0KLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ04nKSB7Ci0tCQkJCWlmICh5eWNoID09ICdJJykgZ290byB5eTEzMTE7Ci0rCQkJCWlmICh5eWNoID09ICdJJykgZ290byB5eTEzMTI7Ci0gCQkJCWdvdG8geXkxNjU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ08nKSBnb3RvIHl5MTMxMjsKLSsJCQkJaWYgKHl5Y2ggPD0gJ08nKSBnb3RvIHl5MTMxMzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ1EnKSBnb3RvIHl5MTY1OwotLQkJCQlnb3RvIHl5MTMxMzsKLSsJCQkJZ290byB5eTEzMTQ7Ci0gCQkJfQotIAkJfQotIAl9IGVsc2UgewotQEAgLTEzNjIsMTYgKzEzNjksMTYgQEAgeXkxNDoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE2NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxMzEwOwotKwkJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxMzExOwotIAkJCQlpZiAoeXljaCA8PSAnaCcpIGdvdG8geXkxNjU7Ci0tCQkJCWdvdG8geXkxMzExOwotKwkJCQlnb3RvIHl5MTMxMjsKLSAJCQl9Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdxJykgewotLQkJCQlpZiAoeXljaCA9PSAnbycpIGdvdG8geXkxMzEyOwotKwkJCQlpZiAoeXljaCA9PSAnbycpIGdvdG8geXkxMzEzOwotIAkJCQlnb3RvIHl5MTY1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTEzMTM7Ci0rCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTEzMTQ7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotQEAgLTEzODIsMTMgKzEzODksMTMgQEAgeXkxNToKLSAJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotLQkJZ290byB5eTEyOTY7Ci0rCQlnb3RvIHl5MTI5NzsKLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NTsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTMwNzsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzA4OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MDsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLUBAIC0xMzk4LDEzICsxNDA1LDEzIEBAIHl5MTY6Ci0gCWlmICh5eWNoIDw9ICdBJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLS0JCWdvdG8geXkxMjk2OwotKwkJZ290byB5eTEyOTc7Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnYCcpIHsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjU7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEyOTY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTI5NzsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjU7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci1AQCAtMTQyMCw3ICsxNDI3LDcgQEAgeXkxNzoKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjU7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEyOTM7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTI5NDsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzA7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci1AQCAtMjQ5NSwxOCArMjUwMiwyMiBAQCB5eTQ4OgotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk0OTsKLSAJaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5NTQ7Ci0geXk0OToKLSsjbGluZSAxNzU3ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJZ290byBzdGQ7Ci0gCX0KLSsjbGluZSAyNTEwICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NTA6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJZ290byB5eTQ5OwotIHl5NTE6Ci0gCSsrWVlDVVJTT1I7Ci0rI2xpbmUgMTc2MiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCXMtPnBvcyA9IGN1cnNvcjsgcy0+bGluZSsrOwotIAkJZ290byBzdGQ7Ci0gCX0KLSsjbGluZSAyNTIxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NTM6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJZ290byB5eTEyOwotQEAgLTI2OTMsMjMgKzI3MDQsMjMgQEAgeXk1NjoKLSAJCQkJCX0KLSAJCQkJfSBlbHNlIHsKLSAJCQkJCWlmICh5eWFjY2VwdCA9PSAyOCkgewotLQkJCQkJCWdvdG8geXkxMzc3OwotKwkJCQkJCWdvdG8geXkxMzc5OwotIAkJCQkJfSBlbHNlIHsKLS0JCQkJCQlnb3RvIHl5MTQxNTsKLSsJCQkJCQlnb3RvIHl5MTQxNzsKLSAJCQkJCX0KLSAJCQkJfQotIAkJCX0gZWxzZSB7Ci0gCQkJCWlmICh5eWFjY2VwdCA8PSAzMSkgewotIAkJCQkJaWYgKHl5YWNjZXB0ID09IDMwKSB7Ci0tCQkJCQkJZ290byB5eTE0MTg7Ci0rCQkJCQkJZ290byB5eTE0MjA7Ci0gCQkJCQl9IGVsc2UgewotLQkJCQkJCWdvdG8geXkxNDk4OwotKwkJCQkJCWdvdG8geXkxNTAwOwotIAkJCQkJfQotIAkJCQl9IGVsc2UgewotIAkJCQkJaWYgKHl5YWNjZXB0ID09IDMyKSB7Ci0tCQkJCQkJZ290byB5eTE1MDY7Ci0rCQkJCQkJZ290byB5eTE1MDg7Ci0gCQkJCQl9IGVsc2UgewotLQkJCQkJCWdvdG8geXkxNTI5OwotKwkJCQkJCWdvdG8geXkxNTMxOwotIAkJCQkJfQotIAkJCQl9Ci0gCQkJfQotQEAgLTI5MjAsNiArMjkzMSw3IEBAIHl5NzM6Ci0gCWlmICh5eWNoID09ICdTJykgZ290byB5eTc1OwotIAlpZiAoeXljaCA9PSAncycpIGdvdG8geXk3NTsKLSB5eTc0OgotKyNsaW5lIDE3NDEgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQl0aW1lbGliX3VsbCBpOwotIAkJREVCVUdfT1VUUFVUKCJyZWxhdGl2ZSIpOwotQEAgLTI5MzQsNiArMjk0Niw3IEBAIHl5NzQ6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1JFTEFUSVZFOwotIAl9Ci0rI2xpbmUgMjk1MCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTc1OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoID09ICdEJykgZ290byB5eTc2OwotQEAgLTM3MTksNiArMzczMiw3IEBAIHl5MTkwOgotIAkJfQotIAl9Ci0geXkxOTE6Ci0rI2xpbmUgMTYwNCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWNvbnN0IHRpbWVsaWJfcmVsdW5pdCogcmVsdW5pdDsKLSAJCURFQlVHX09VVFBVVCgiZGF5dGV4dCIpOwotQEAgLTM3MzUsNiArMzc0OSw3IEBAIHl5MTkxOgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9XRUVLREFZOwotIAl9Ci0rI2xpbmUgMzc1MyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTE5MjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnSycpIHsKLUBAIC00MjI3LDYgKzQyNDIsNyBAQCB5eTIxNzoKLSAJCX0KLSAJfQotIHl5MjE4OgotKyNsaW5lIDE2NjMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlERUJVR19PVVRQVVQoIm1vbnRodGV4dCIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTQyMzUsNiArNDI1MSw3IEBAIHl5MjE4OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9EQVRFX1RFWFQ7Ci0gCX0KLSsjbGluZSA0MjU1ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5MjE5OgotIAkrK1lZQ1VSU09SOwotIAlpZiAoKFlZTElNSVQgLSBZWUNVUlNPUikgPCAyMykgWVlGSUxMKDIzKTsKLUBAIC00NDY5LDYgKzQ0ODYsNyBAQCB5eTIzMToKLSAJaWYgKHl5Y2ggPT0gJ3QnKSBnb3RvIHl5MzE5OwotIAlnb3RvIHl5MjM3OwotIHl5MjMyOgotKyNsaW5lIDE0MDkgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgbGVuZ3RoID0gMDsKLSAJCURFQlVHX09VVFBVVCgiZGF0ZXRleHR1YWwgfCBkYXRlbm95ZWFyIik7Ci1AQCAtNDQ4MSw2ICs0NDk5LDcgQEAgeXkyMzI6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0RBVEVfVEVYVDsKLSAJfQotKyNsaW5lIDQ1MDMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXkyMzM6Ci0gCXl5YWNjZXB0ID0gNjsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC00NTkzLDYgKzQ2MTIsNyBAQCB5eTI0NToKLSAJCWlmICh5eWNoIDw9ICc6JykgZ290byB5eTI0ODsKLSAJfQotIHl5MjQ2OgotKyNsaW5lIDE3MTEgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgdHpfbm90X2ZvdW5kOwotIAkJREVCVUdfT1VUUFVUKCJkYXRlc2hvcnR3aXRodGltZXNob3J0IHwgZGF0ZXNob3J0d2l0aHRpbWVsb25nIHwgZGF0ZXNob3J0d2l0aHRpbWVsb25ndHoiKTsKLUBAIC00NjIxLDYgKzQ2NDEsNyBAQCB5eTI0NjoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfU0hPUlREQVRFX1dJVEhfVElNRTsKLSAJfQotKyNsaW5lIDQ2NDUgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXkyNDc6Ci0gCXl5YWNjZXB0ID0gNzsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC00ODkzLDYgKzQ5MTQsNyBAQCB5eTI2OToKLSAJfQotIHl5MjcwOgotIAkrK1lZQ1VSU09SOwotKyNsaW5lIDE2ODcgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlERUJVR19PVVRQVVQoImRhdGVzaG9ydHdpdGh0aW1lc2hvcnQxMiB8IGRhdGVzaG9ydHdpdGh0aW1lbG9uZzEyIik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtNDkxNSw2ICs0OTM3LDcgQEAgeXkyNzA6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1NIT1JUREFURV9XSVRIX1RJTUU7Ci0gCX0KLSsjbGluZSA0OTQxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5MjcyOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9IDB4MUYpIHsKLUBAIC01NDcwLDYgKzU0OTMsNyBAQCB5eTMyMDoKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5NTY7Ci0gCWlmICh5eWNoID49ICc6JykgZ290byB5eTU2OwotIAkrK1lZQ1VSU09SOwotKyNsaW5lIDEzODEgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgbGVuZ3RoID0gMDsKLSAJCURFQlVHX09VVFBVVCgiZGF0ZW5vZGF5Iik7Ci1AQCAtNTQ4Miw2ICs1NTA2LDcgQEAgeXkzMjA6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0RBVEVfTk9fREFZOwotIAl9Ci0rI2xpbmUgNTUxMCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTMyMzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnOScpIHsKLUBAIC01NzA0LDYgKzU3MjksNyBAQCB5eTMyNzoKLSAJaWYgKCh5eWNoID0gKllZQ1VSU09SKSA8PSAnLycpIGdvdG8geXkzMzA7Ci0gCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTMzMTsKLSB5eTMzMDoKLSsjbGluZSAxNTI1ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IGxlbmd0aCA9IDA7Ci0gCQlERUJVR19PVVRQVVQoInBndGV4dHNob3J0Iik7Ci1AQCAtNTcxNiw2ICs1NzQyLDcgQEAgeXkzMzA6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1BHX1RFWFQ7Ci0gCX0KLSsjbGluZSA1NzQ2ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5MzMxOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTMzMDsKLUBAIC02MjcwLDYgKzYyOTcsNyBAQCB5eTM1NjoKLSAJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJfQotIHl5MzU3OgotKyNsaW5lIDE1ODMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlERUJVR19PVVRQVVQoImFnbyIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTYyODksNiArNjMxNyw3IEBAIHl5MzU3OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9BR087Ci0gCX0KLSsjbGluZSA2MzIxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5MzU4OgotIAl5eWFjY2VwdCA9IDU7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci1AQCAtODAwOSw2ICs4MDM4LDcgQEAgeXk0MTc6Ci0geXk0MTg6Ci0gCSsrWVlDVVJTT1I7Ci0geXk0MTk6Ci0rI2xpbmUgMTI4NiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgiaXNvODYwMWRhdGU0IHwgaXNvODYwMWRhdGUyIHwgaXNvODYwMWRhdGVzbGFzaCB8IGRhdGVzbGFzaCIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTgwMTksNiArODA0OSw3IEBAIHl5NDE5OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9JU09fREFURTsKLSAJfQotKyNsaW5lIDgwNTMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk0MjA6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC04NjQxLDYgKzg2NzIsNyBAQCB5eTQzOToKLSAJCX0KLSAJfQotIHl5NDQwOgotKyNsaW5lIDE0MjMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlERUJVR19PVVRQVVQoImRhdGVub3llYXJyZXYiKTsKLSAJCVRJTUVMSUJfSU5JVDsKLUBAIC04NjUxLDYgKzg2ODMsNyBAQCB5eTQ0MDoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfREFURV9URVhUOwotIAl9Ci0rI2xpbmUgODY4NyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTQ0MToKLSAJeXlhY2NlcHQgPSA5OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotQEAgLTg3NzgsNiArODgxMSw3IEBAIHl5NDUwOgotIAl9Ci0geXk0NTI6Ci0gCSsrWVlDVVJTT1I7Ci0rI2xpbmUgMTE0MSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgidGltZXRpbnkxMiB8IHRpbWVzaG9ydDEyIHwgdGltZWxvbmcxMiIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTg3OTMsNiArODgyNyw3IEBAIHl5NDUyOgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9USU1FMTI7Ci0gCX0KLSsjbGluZSA4ODMxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NDU0OgotIAl5eWFjY2VwdCA9IDEwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotQEAgLTg4MDMsNiArODgzOCw3IEBAIHl5NDU0OgotIAkJaWYgKHl5Y2ggPD0gJzonKSBnb3RvIHl5NDU3OwotIAl9Ci0geXk0NTU6Ci0rI2xpbmUgMTE3OCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWludCB0el9ub3RfZm91bmQ7Ci0gCQlERUJVR19PVVRQVVQoInRpbWVzaG9ydDI0IHwgdGltZWxvbmcyNCB8IGlzbzg2MDFsb25nIik7Ci1AQCAtODgyNyw2ICs4ODYzLDcgQEAgeXk0NTU6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1RJTUUyNF9XSVRIX1pPTkU7Ci0gCX0KLSsjbGluZSA4ODY3ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NDU2OgotIAl5eWFjY2VwdCA9IDEwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotQEAgLTkxMDMsNiArOTE0MCw3IEBAIHl5NDg1OgotIAl9Ci0geXk0ODc6Ci0gCSsrWVlDVVJTT1I7Ci0rI2xpbmUgMTE1OCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgibXNzcWx0aW1lIik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtOTEyMSw2ICs5MTU5LDcgQEAgeXk0ODc6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1RJTUUyNF9XSVRIX1pPTkU7Ci0gCX0KLSsjbGluZSA5MTYzICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NDg5OgotIAl5eWFjY2VwdCA9IDEwOwotIAlZWU1BUktFUiA9ICsrWVlDVVJTT1I7Ci1AQCAtOTIxNSw2ICs5MjU0LDcgQEAgeXk0OTg6Ci0gCWlmICgoeXljaCA9ICpZWUNVUlNPUikgPD0gJy8nKSBnb3RvIHl5NDk5OwotIAlpZiAoeXljaCA8PSAnOScpIGdvdG8geXk1MDU7Ci0geXk0OTk6Ci0rI2xpbmUgMTM0MCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWludCBsZW5ndGggPSAwOwotIAkJREVCVUdfT1VUUFVUKCJkYXRlZnVsbCIpOwotQEAgLTkyMjgsNiArOTI2OCw3IEBAIHl5NDk5OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9EQVRFX0ZVTEw7Ci0gCX0KLSsjbGluZSA5MjcyICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NTAwOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoID09ICdNJykgZ290byB5eTUwMTsKLUBAIC05ODkxLDYgKzk5MzIsNyBAQCB5eTU2OToKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5NTY7Ci0gCWlmICh5eWNoID49ICc6JykgZ290byB5eTU2OwotIAkrK1lZQ1VSU09SOwotKyNsaW5lIDEzNTUgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlERUJVR19PVVRQVVQoInBvaW50ZWQgZGF0ZSBZWVlZIik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtOTkwMSw2ICs5OTQzLDcgQEAgeXk1Njk6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0RBVEVfRlVMTF9QT0lOVEVEOwotIAl9Ci0rI2xpbmUgOTk0NyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTU3MjoKLSAJeXlhY2NlcHQgPSAxMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC05OTMxLDYgKzk5NzQsNyBAQCB5eTU3NToKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5NTc2OwotIAlpZiAoeXljaCA8PSAnOScpIGdvdG8geXk1Njk7Ci0geXk1NzY6Ci0rI2xpbmUgMTM2NyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWludCBsZW5ndGggPSAwOwotIAkJREVCVUdfT1VUUFVUKCJwb2ludGVkIGRhdGUgWVkiKTsKLUBAIC05OTQzLDYgKzk5ODcsNyBAQCB5eTU3NjoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfREFURV9GVUxMX1BPSU5URUQ7Ci0gCX0KLSsjbGluZSA5OTkxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NTc3OgotIAl5eWFjY2VwdCA9IDEwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotQEAgLTEwNTM4LDYgKzEwNTgzLDcgQEAgeXk2MjA6Ci0gCQl9Ci0gCX0KLSB5eTYyMToKLSsjbGluZSAxMzI2ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IGxlbmd0aCA9IDA7Ci0gCQlERUJVR19PVVRQVVQoImdudWRhdGVzaG9ydCIpOwotQEAgLTEwNTUwLDYgKzEwNTk2LDcgQEAgeXk2MjE6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0lTT19EQVRFOwotIAl9Ci0rI2xpbmUgMTA2MDAgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk2MjI6Ci0gCXl5YWNjZXB0ID0gMTI7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci1AQCAtMTA2NDUsNiArMTA2OTIsNyBAQCB5eTYzMDoKLSAJCX0KLSAJfQotIHl5NjMxOgotKyNsaW5lIDEyNzAgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgbGVuZ3RoID0gMDsKLSAJCURFQlVHX09VVFBVVCgiYW1lcmljYW5zaG9ydCB8IGFtZXJpY2FuIik7Ci1AQCAtMTA2NTksNiArMTA3MDcsNyBAQCB5eTYzMToKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfQU1FUklDQU47Ci0gCX0KLSsjbGluZSAxMDcxMSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTYzMjoKLSAJeXlhY2NlcHQgPSAxMzsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC0xMDg1Nyw2ICsxMDkwNiw3IEBAIHl5NjY0OgotIAlpZiAoeXljaCA8PSAnOScpIGdvdG8geXk2Njc7Ci0gCWlmICh5eWNoIDw9ICc6JykgZ290byB5eTY2ODsKLSB5eTY2NToKLSsjbGluZSAxNTUzICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IHR6X25vdF9mb3VuZDsKLSAJCURFQlVHX09VVFBVVCgiY2xmIik7Ci1AQCAtMTA4NzYsNiArMTA5MjYsNyBAQCB5eTY2NToKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfQ0xGOwotIAl9Ci0rI2xpbmUgMTA5MzAgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk2NjY6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJzUnKSB7Ci1AQCAtMTEzNjIsNiArMTE0MTMsNyBAQCB5eTcyNzoKLSAJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTYyNzsKLSAJfQotIHl5NzI4OgotKyNsaW5lIDEyOTggImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgbGVuZ3RoID0gMDsKLSAJCURFQlVHX09VVFBVVCgiaXNvODYwMWRhdGUyIik7Ci1AQCAtMTEzNzQsNiArMTE0MjYsNyBAQCB5eTcyODoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfSVNPX0RBVEU7Ci0gCX0KLSsjbGluZSAxMTQzMCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTcyOToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA9PSAnQycpIGdvdG8geXk3MzA7Ci1AQCAtMTE0MDQsNiArMTE0NTcsNyBAQCB5eTczNDoKLSAJaWYgKHl5Y2ggPj0gJzInKSBnb3RvIHl5NTY7Ci0geXk3MzU6Ci0gCSsrWVlDVVJTT1I7Ci0rI2xpbmUgMTUzOSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWludCBsZW5ndGggPSAwOwotIAkJREVCVUdfT1VUUFVUKCJwZ3RleHRyZXZlcnNlIik7Ci1AQCAtMTE0MTYsNiArMTE0NzAsNyBAQCB5eTczNToKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfUEdfVEVYVDsKLSAJfQotKyNsaW5lIDExNDc0ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NzM3OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoID09ICdWJykgZ290byB5eTczMDsKLUBAIC0xMTU2OCw2ICsxMTYyMyw3IEBAIHl5NzQ3OgotIAkJfQotIAl9Ci0geXk3NDg6Ci0rI2xpbmUgMTU3NCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgieWVhcjQiKTsKLSAJCVRJTUVMSUJfSU5JVDsKLUBAIC0xMTU3NSw2ICsxMTYzMSw3IEBAIHl5NzQ4OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9DTEY7Ci0gCX0KLSsjbGluZSAxMTYzNSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTc0OToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlzd2l0Y2ggKHl5Y2gpIHsKLUBAIC0xMTc2OSw2ICsxMTgyNiw3IEBAIHl5NzU3OgotIAkJaWYgKHl5Y2ggPD0gJ1gnKSBnb3RvIHl5ODQ4OwotIAl9Ci0geXk3NTg6Ci0rI2xpbmUgMTM5NSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWludCBsZW5ndGggPSAwOwotIAkJREVCVUdfT1VUUFVUKCJkYXRlbm9kYXlyZXYiKTsKLUBAIC0xMTc4MSw2ICsxMTgzOSw3IEBAIHl5NzU4OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9EQVRFX05PX0RBWTsKLSAJfQotKyNsaW5lIDExODQzICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NzU5OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoID09ICdJJykgZ290byB5eTg5MjsKLUBAIC0xMTk4MCw2ICsxMjAzOSw3IEBAIHl5Nzc4OgotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk3Nzk7Ci0gCWlmICh5eWNoIDw9ICc3JykgZ290byB5eTc4MTsKLSB5eTc3OToKLSsjbGluZSAxNTA2ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJdGltZWxpYl9zbGwgdywgZDsKLSAJCURFQlVHX09VVFBVVCgiaXNvd2VlayIpOwotQEAgLTExOTk3LDEyICsxMjA1NywxNCBAQCB5eTc3OToKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfSVNPX1dFRUs7Ci0gCX0KLSsjbGluZSAxMjA2MSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTc4MDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk1NjsKLSAJaWYgKHl5Y2ggPj0gJzgnKSBnb3RvIHl5NTY7Ci0geXk3ODE6Ci0gCSsrWVlDVVJTT1I7Ci0rI2xpbmUgMTQ4NyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCXRpbWVsaWJfc2xsIHcsIGQ7Ci0gCQlERUJVR19PVVRQVVQoImlzb3dlZWtkYXkiKTsKLUBAIC0xMjAyMCw2ICsxMjA4Miw3IEBAIHl5NzgxOgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9JU09fV0VFSzsKLSAJfQotKyNsaW5lIDEyMDg2ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NzgzOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTYwOwotQEAgLTEyMDg1LDYgKzEyMTQ4LDcgQEAgeXk3ODU6Ci0gCQl9Ci0gCX0KLSB5eTc4NjoKLSsjbGluZSAxNDczICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IGxlbmd0aCA9IDA7Ci0gCQlERUJVR19PVVRQVVQoInBneWRvdGQiKTsKLUBAIC0xMjA5Nyw2ICsxMjE2MSw3IEBAIHl5Nzg2OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9QR19ZRUFSREFZOwotIAl9Ci0rI2xpbmUgMTIxNjUgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk3ODc6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5NjA7Ci1AQCAtMTIxNzgsNiArMTIyNDMsNyBAQCB5eTgwNToKLSB5eTgwNjoKLSAJKytZWUNVUlNPUjsKLSB5eTgwNzoKLSsjbGluZSAxNDQ3ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IHR6X25vdF9mb3VuZDsKLSAJCURFQlVHX09VVFBVVCgieG1scnBjIHwgeG1scnBjbm9jb2xvbiB8IHNvYXAgfCB3ZGR4IHwgZXhpZiIpOwotQEAgLTEyMjAyLDYgKzEyMjY4LDcgQEAgeXk4MDc6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1hNTFJQQ19TT0FQOwotIAl9Ci0rI2xpbmUgMTIyNzIgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk4MDg6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJzInKSB7Ci1AQCAtMTI0OTAsNiArMTI1NTcsNyBAQCB5eTgxMjoKLSAJCX0KLSAJfQotIHl5ODEzOgotKyNsaW5lIDE0MzUgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlERUJVR19PVVRQVVQoImRhdGVub2NvbG9uIik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtMTI1MDAsNiArMTI1NjgsNyBAQCB5eTgxMzoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfREFURV9OT0NPTE9OOwotIAl9Ci0rI2xpbmUgMTI1NzIgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk4MTQ6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0gnKSB7Ci1AQCAtMTMyOTMsNiArMTMzNjIsNyBAQCB5eTkzNzoKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5OTM4OwotIAlpZiAoeXljaCA8PSAnOScpIGdvdG8geXk5NjA7Ci0geXk5Mzg6Ci0rI2xpbmUgMTMxMiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWludCBsZW5ndGggPSAwOwotIAkJREVCVUdfT1VUUFVUKCJnbnVkYXRlc2hvcnRlciIpOwotQEAgLTEzMzA1LDYgKzEzMzc1LDcgQEAgeXk5Mzg6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0lTT19EQVRFOwotIAl9Ci0rI2xpbmUgMTMzNzkgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk5Mzk6Ci0gCXl5YWNjZXB0ID0gMjE7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci1AQCAtMTQzMDMsNiArMTQzNzQsNyBAQCB5eTEwMzA6Ci0gCQl9Ci0gCX0KLSB5eTEwMzI6Ci0rI2xpbmUgMTIwNCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgiZ251bm9jb2xvbiIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTE0MzI0LDYgKzE0Mzk2LDcgQEAgeXkxMDMyOgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9HTlVfTk9DT0xPTjsKLSAJfQotKyNsaW5lIDE0NDAwICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5MTAzMzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk2MDsKLUBAIC0xNDQxMyw2ICsxNDQ4Niw3IEBAIHl5MTAzOToKLSAJCX0KLSAJfQotIHl5MTA0MDoKLSsjbGluZSAxMjUwICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IHR6X25vdF9mb3VuZDsKLSAJCURFQlVHX09VVFBVVCgiaXNvODYwMW5vY29sb24iKTsKLUBAIC0xNDQzMSw2ICsxNDUwNSw3IEBAIHl5MTA0MDoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfSVNPX05PQ09MT047Ci0gCX0KLSsjbGluZSAxNDUwOSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTEwNDE6Ci0gCXl5YWNjZXB0ID0gMjQ7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci1AQCAtMTUzNjIsNiArMTU0MzcsNyBAQCB5eTEwODM6Ci0gCQl9Ci0gCX0KLSB5eTEwODQ6Ci0rI2xpbmUgMTY0NiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCXRpbWVsaWJfc2xsIGk7Ci0gCQlpbnQgICAgICAgICBiZWhhdmlvciA9IDA7Ci1AQCAtMTUzNzcsNiArMTU0NTMsNyBAQCB5eTEwODQ6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1JFTEFUSVZFOwotIAl9Ci0rI2xpbmUgMTU0NTcgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXkxMDg1OgotIAkrK1lZQ1VSU09SOwotIAlpZiAoKFlZTElNSVQgLSBZWUNVUlNPUikgPCAyKSBZWUZJTEwoMik7Ci1AQCAtMTU0MTgsNiArMTU0OTUsNyBAQCB5eTEwOTE6Ci0gCWlmICh5eWNoICE9ICdmJykgZ290byB5eTU2OwotIHl5MTA5MjoKLSAJKytZWUNVUlNPUjsKLSsjbGluZSAxMTE5ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJdGltZWxpYl9zbGwgaTsKLSAJCWludCAgICAgICAgIGJlaGF2aW9yID0gMDsKLUBAIC0xNTQzOCw2ICsxNTUxNiw3IEBAIHl5MTA5MjoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfV0VFS19EQVlfT0ZfTU9OVEg7Ci0gCX0KLSsjbGluZSAxNTUyMCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTEwOTQ6Ci0gCXl5YWNjZXB0ID0gMjU7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci1AQCAtMTU1MzAsNiArMTU2MDksNyBAQCB5eTExMDc6Ci0gCQl9Ci0gCX0KLSB5eTExMDg6Ci0rI2xpbmUgMTYyMiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCXRpbWVsaWJfc2xsIGk7Ci0gCQlpbnQgICAgICAgICBiZWhhdmlvciA9IDA7Ci1AQCAtMTU1NTIsNiArMTU2MzIsNyBAQCB5eTExMDg6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1JFTEFUSVZFOwotIAl9Ci0rI2xpbmUgMTU2MzYgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXkxMTA5OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWdvdG8geXkxMDg0OwotQEAgLTE4MjA2LDEwICsxODI4NywyNSBAQCB5eTEyODE6Ci0geXkxMjgzOgotIAl5eWFjY2VwdCA9IDI3OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotLQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxMjg3OwotLQlpZiAoeXljaCA8PSAnOScpIGdvdG8geXkxMjg2OwotLQlnb3RvIHl5MTI4NzsKLSsJaWYgKHl5Y2ggPD0gJ0AnKSB7Ci0rCQlpZiAoeXljaCA8PSAweDFGKSB7Ci0rCQkJaWYgKHl5Y2ggPT0gJ1x0JykgZ290byB5eTEyODc7Ci0rCQl9IGVsc2UgewotKwkJCWlmICh5eWNoIDw9ICcgJykgZ290byB5eTEyODc7Ci0rCQkJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTI4NDsKLSsJCQlpZiAoeXljaCA8PSAnOScpIGdvdG8geXkxMjg2OwotKwkJfQotKwl9IGVsc2UgewotKwkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTI4OTsKLSsJCQlpZiAoeXljaCA9PSAnUCcpIGdvdG8geXkxMjg5OwotKwkJfSBlbHNlIHsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMjg5OwotKwkJCWlmICh5eWNoID09ICdwJykgZ290byB5eTEyODk7Ci0rCQl9Ci0rCX0KLSB5eTEyODQ6Ci0rI2xpbmUgMTA5NiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgiYmFja29mIHwgZnJvbnRvZiIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTE4MjMxLDY2ICsxODMyNywxMDQgQEAgeXkxMjg0OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9MRl9EQVlfT0ZfTU9OVEg7Ci0gCX0KLSsjbGluZSAxODMzMSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTEyODU6Ci0gCXl5YWNjZXB0ID0gMjc7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0tCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTEyODc7Ci0tCWlmICh5eWNoID49ICc1JykgZ290byB5eTEyODc7Ci0rCWlmICh5eWNoIDw9ICdAJykgewotKwkJaWYgKHl5Y2ggPD0gMHgxRikgewotKwkJCWlmICh5eWNoID09ICdcdCcpIGdvdG8geXkxMjg3OwotKwkJCWdvdG8geXkxMjg0OwotKwkJfSBlbHNlIHsKLSsJCQlpZiAoeXljaCA8PSAnICcpIGdvdG8geXkxMjg3OwotKwkJCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTEyODQ7Ci0rCQkJaWYgKHl5Y2ggPj0gJzUnKSBnb3RvIHl5MTI4NDsKLSsJCX0KLSsJfSBlbHNlIHsKLSsJCWlmICh5eWNoIDw9ICdgJykgewotKwkJCWlmICh5eWNoIDw9ICdBJykgZ290byB5eTEyODk7Ci0rCQkJaWYgKHl5Y2ggPT0gJ1AnKSBnb3RvIHl5MTI4OTsKLSsJCQlnb3RvIHl5MTI4NDsKLSsJCX0gZWxzZSB7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTI4OTsKLSsJCQlpZiAoeXljaCA9PSAncCcpIGdvdG8geXkxMjg5OwotKwkJCWdvdG8geXkxMjg0OwotKwkJfQotKwl9Ci0geXkxMjg2OgotIAl5eWFjY2VwdCA9IDI3OwotLQlZWU1BUktFUiA9ICsrWVlDVVJTT1I7Ci0rCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0rCWlmICh5eWNoIDw9ICdBJykgewotKwkJaWYgKHl5Y2ggPD0gMHgxRikgewotKwkJCWlmICh5eWNoICE9ICdcdCcpIGdvdG8geXkxMjg0OwotKwkJfSBlbHNlIHsKLSsJCQlpZiAoeXljaCA8PSAnICcpIGdvdG8geXkxMjg3OwotKwkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTEyODQ7Ci0rCQkJZ290byB5eTEyODk7Ci0rCQl9Ci0rCX0gZWxzZSB7Ci0rCQlpZiAoeXljaCA8PSAnYCcpIHsKLSsJCQlpZiAoeXljaCA9PSAnUCcpIGdvdG8geXkxMjg5OwotKwkJCWdvdG8geXkxMjg0OwotKwkJfSBlbHNlIHsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMjg5OwotKwkJCWlmICh5eWNoID09ICdwJykgZ290byB5eTEyODk7Ci0rCQkJZ290byB5eTEyODQ7Ci0rCQl9Ci0rCX0KLSt5eTEyODc6Ci0rCSsrWVlDVVJTT1I7Ci0gCWlmICgoWVlMSU1JVCAtIFlZQ1VSU09SKSA8IDUpIFlZRklMTCg1KTsKLSAJeXljaCA9ICpZWUNVUlNPUjsKLS15eTEyODc6Ci0gCWlmICh5eWNoIDw9ICdBJykgewotIAkJaWYgKHl5Y2ggPD0gMHgxRikgewotLQkJCWlmICh5eWNoID09ICdcdCcpIGdvdG8geXkxMjg2OwotLQkJCWdvdG8geXkxMjg0OwotKwkJCWlmICh5eWNoID09ICdcdCcpIGdvdG8geXkxMjg3OwotKwkJCWdvdG8geXk1NjsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJyAnKSBnb3RvIHl5MTI4NjsKLS0JCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkxMjg0OwotKwkJCWlmICh5eWNoIDw9ICcgJykgZ290byB5eTEyODc7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5NTY7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnYCcpIHsKLS0JCQlpZiAoeXljaCAhPSAnUCcpIGdvdG8geXkxMjg0OwotKwkJCWlmICh5eWNoICE9ICdQJykgZ290byB5eTU2OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMjg4OwotLQkJCWlmICh5eWNoICE9ICdwJykgZ290byB5eTEyODQ7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTI4OTsKLSsJCQlpZiAoeXljaCAhPSAncCcpIGdvdG8geXk1NjsKLSAJCX0KLSAJfQotLXl5MTI4ODoKLSt5eTEyODk6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0wnKSB7Ci0gCQlpZiAoeXljaCAhPSAnLicpIGdvdG8geXk1NjsKLSAJfSBlbHNlIHsKLS0JCWlmICh5eWNoIDw9ICdNJykgZ290byB5eTEyOTA7Ci0tCQlpZiAoeXljaCA9PSAnbScpIGdvdG8geXkxMjkwOwotKwkJaWYgKHl5Y2ggPD0gJ00nKSBnb3RvIHl5MTI5MTsKLSsJCWlmICh5eWNoID09ICdtJykgZ290byB5eTEyOTE7Ci0gCQlnb3RvIHl5NTY7Ci0gCX0KLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnTScpIGdvdG8geXkxMjkwOwotKwlpZiAoeXljaCA9PSAnTScpIGdvdG8geXkxMjkxOwotIAlpZiAoeXljaCAhPSAnbScpIGdvdG8geXk1NjsKLS15eTEyOTA6Ci0reXkxMjkxOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9IDB4MUYpIHsKLS0JCWlmICh5eWNoIDw9IDB4MDApIGdvdG8geXkxMjkyOwotLQkJaWYgKHl5Y2ggPT0gJ1x0JykgZ290byB5eTEyOTI7Ci0rCQlpZiAoeXljaCA8PSAweDAwKSBnb3RvIHl5MTI5MzsKLSsJCWlmICh5eWNoID09ICdcdCcpIGdvdG8geXkxMjkzOwotIAkJZ290byB5eTU2OwotIAl9IGVsc2UgewotLQkJaWYgKHl5Y2ggPD0gJyAnKSBnb3RvIHl5MTI5MjsKLSsJCWlmICh5eWNoIDw9ICcgJykgZ290byB5eTEyOTM7Ci0gCQlpZiAoeXljaCAhPSAnLicpIGdvdG8geXk1NjsKLSAJfQotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdcdCcpIHsKLS0JCWlmICh5eWNoIDw9IDB4MDApIGdvdG8geXkxMjkyOwotKwkJaWYgKHl5Y2ggPD0gMHgwMCkgZ290byB5eTEyOTM7Ci0gCQlpZiAoeXljaCA8PSAweDA4KSBnb3RvIHl5NTY7Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCAhPSAnICcpIGdvdG8geXk1NjsKLSAJfQotLXl5MTI5MjoKLSt5eTEyOTM6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJZ290byB5eTEyODQ7Ci0teXkxMjkzOgotK3l5MTI5NDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQicpIHsKLUBAIC0xODMxNCwxMyArMTg0NDgsMTMgQEAgeXkxMjkzOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdjJykgZ290byB5eTEyOTQ7Ci0rCQkJCWlmICh5eWNoIDw9ICdjJykgZ290byB5eTEyOTU7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMjk0OgotK3l5MTI5NToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnSicpIHsKLUBAIC0xODM0NCwxMyArMTg0NzgsMTMgQEAgeXkxMjk0OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdrJykgZ290byB5eTEyOTU7Ci0rCQkJCWlmICh5eWNoIDw9ICdrJykgZ290byB5eTEyOTY7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMjk1OgotK3l5MTI5NjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnLicpIHsKLUBAIC0xODM3NSw3ICsxODUwOSw3IEBAIHl5MTI5NToKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTI5NjoKLSt5eTEyOTc6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1MnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0xODM5MSwxMiArMTg1MjUsMTIgQEAgeXkxMjk2OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NjsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTI5NzsKLSsJCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxMjk4OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTI5NzoKLSt5eTEyOTg6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1QnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0xODQxMiwxMiArMTg1NDYsMTIgQEAgeXkxMjk3OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTI5ODsKLSsJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMjk5OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTI5ODoKLSt5eTEyOTk6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJygnKSB7Ci1AQCAtMTg0MzgsMTkgKzE4NTcyLDE5IEBAIHl5MTI5ODoKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTI5OToKLSt5eTEzMDA6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ0QnKSBnb3RvIHl5MTMwMDsKLSsJaWYgKHl5Y2ggPT0gJ0QnKSBnb3RvIHl5MTMwMTsKLSAJaWYgKHl5Y2ggIT0gJ2QnKSBnb3RvIHl5MTA3MDsKLS15eTEzMDA6Ci0reXkxMzAxOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdBJykgZ290byB5eTEzMDE7Ci0rCWlmICh5eWNoID09ICdBJykgZ290byB5eTEzMDI7Ci0gCWlmICh5eWNoICE9ICdhJykgZ290byB5eTU2OwotLXl5MTMwMToKLSt5eTEzMDI6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ1knKSBnb3RvIHl5MTMwMjsKLSsJaWYgKHl5Y2ggPT0gJ1knKSBnb3RvIHl5MTMwMzsKLSAJaWYgKHl5Y2ggIT0gJ3knKSBnb3RvIHl5NTY7Ci0teXkxMzAyOgotK3l5MTMwMzoKLSAJeXlhY2NlcHQgPSAyNTsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1InKSB7Ci1AQCAtMTg0NjEsMTQgKzE4NTk1LDE1IEBAIHl5MTMwMjoKLSAJCWdvdG8geXkxMDg0OwotIAl9Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ08nKSBnb3RvIHl5MTMwNDsKLSsJaWYgKHl5Y2ggPT0gJ08nKSBnb3RvIHl5MTMwNTsKLSAJaWYgKHl5Y2ggIT0gJ28nKSBnb3RvIHl5NTY7Ci0teXkxMzA0OgotK3l5MTMwNToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnRicpIGdvdG8geXkxMzA1OwotKwlpZiAoeXljaCA9PSAnRicpIGdvdG8geXkxMzA2OwotIAlpZiAoeXljaCAhPSAnZicpIGdvdG8geXk1NjsKLS15eTEzMDU6Ci0reXkxMzA2OgotIAkrK1lZQ1VSU09SOwotKyNsaW5lIDEwNzkgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlERUJVR19PVVRQVVQoImZpcnN0ZGF5b2YgfCBsYXN0ZGF5b2YiKTsKLSAJCVRJTUVMSUJfSU5JVDsKLUBAIC0xODQ4NCw3ICsxODYxOSw4IEBAIHl5MTMwNToKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfTEZfREFZX09GX01PTlRIOwotIAl9Ci0teXkxMzA3OgotKyNsaW5lIDE4NjIzICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotK3l5MTMwODoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUicpIHsKLUBAIC0xODQ5OSw3ICsxODYzNSw3IEBAIHl5MTMwNzoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdTJykgZ290byB5eTEyOTc7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1MnKSBnb3RvIHl5MTI5ODsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTE4NTA4LDEzICsxODY0NCwxMyBAQCB5eTEzMDc6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzE7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTMwODsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTMwOTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzMDg6Ci0reXkxMzA5OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdTJykgewotQEAgLTE4NTI5LDcgKzE4NjY1LDcgQEAgeXkxMzA4OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTI5ODsKLSsJCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxMjk5OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMTg1MzgsMjAgKzE4Njc0LDIwIEBAIHl5MTMwODoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMzA5OwotKwkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMzEwOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTMwOToKLSt5eTEzMTA6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJy0nKSB7Ci0gCQlpZiAoeXljaCA8PSAnICcpIHsKLSAJCQlpZiAoeXljaCA9PSAnXHQnKSBnb3RvIHl5MTA2OTsKLSAJCQlpZiAoeXljaCA8PSAweDFGKSBnb3RvIHl5MzsKLS0JCQlnb3RvIHl5MTI5OTsKLSsJCQlnb3RvIHl5MTMwMDsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJCWlmICh5eWNoIDw9ICcsJykgZ290byB5eTM7Ci1AQCAtMTg1NzMsNyArMTg3MDksNyBAQCB5eTEzMDk6Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzEwOgotK3l5MTMxMToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnQicpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4NTgyLDcgKzE4NzE4LDcgQEAgeXkxMzEwOgotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdBJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTM0NjsKLSsJCQlnb3RvIHl5MTM0ODsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdhJykgewotQEAgLTE4NTkwLDM1ICsxODcyNiwzNSBAQCB5eTEzMTA6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY2OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnYicpIGdvdG8geXkxMzQ2OwotKwkJCWlmICh5eWNoIDw9ICdiJykgZ290byB5eTEzNDg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzExOgotK3l5MTMxMjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnUicpIHsKLSAJCWlmICh5eWNoIDw9ICdAJykgewotIAkJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ0YnKSBnb3RvIHl5MTMzNjsKLSsJCQlpZiAoeXljaCA9PSAnRicpIGdvdG8geXkxMzM4OwotIAkJCWlmICh5eWNoIDw9ICdRJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTMzNTsKLSsJCQlnb3RvIHl5MTMzNzsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdmJykgewotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NjsKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTMzNjsKLSsJCQlnb3RvIHl5MTMzODsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ3InKSBnb3RvIHl5MTMzNTsKLSsJCQlpZiAoeXljaCA9PSAncicpIGdvdG8geXkxMzM3OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTMxMjoKLSt5eTEzMTM6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1UnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0xODYyNyw3ICsxODc2Myw3IEBAIHl5MTMxMjoKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxNjY7Ci0tCQkJZ290byB5eTEzMzI7Ci0rCQkJZ290byB5eTEzMzQ7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAndCcpIHsKLUBAIC0xODYzNSwxOSArMTg3NzEsMTkgQEAgeXkxMzEyOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NjsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3UnKSBnb3RvIHl5MTMzMjsKLSsJCQlpZiAoeXljaCA8PSAndScpIGdvdG8geXkxMzM0OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTMxMzoKLSt5eTEzMTQ6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ08nKSB7Ci0gCQlpZiAoeXljaCA8PSAnQCcpIHsKLSAJCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICdJJykgZ290byB5eTEzMTU7Ci0rCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTMxNjsKLSAJCQlpZiAoeXljaCA8PSAnTicpIGdvdG8geXkxNjY7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci1AQCAtMTg2NTUsMTQgKzE4NzkxLDE0IEBAIHl5MTMxMzoKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnaCcpIGdvdG8geXkxNjY7Ci0tCQkJZ290byB5eTEzMTU7Ci0rCQkJZ290byB5eTEzMTY7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICdvJykgZ290byB5eTEzMTQ7Ci0rCQkJaWYgKHl5Y2ggPT0gJ28nKSBnb3RvIHl5MTMxNTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjY7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzMTQ6Ci0reXkxMzE1OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdOJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTg2NzEsNyArMTg4MDcsNyBAQCB5eTEzMTQ6Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ00nKSBnb3RvIHl5MTY3OwotLQkJCWdvdG8geXkxMzE4OwotKwkJCWdvdG8geXkxMzE5OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ20nKSB7Ci1AQCAtMTg2NzksMTIgKzE4ODE1LDEyIEBAIHl5MTMxNDoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTEzMTg7Ci0rCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTMxOTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzMTU6Ci0reXkxMzE2OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdEJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTg3MDAsMTIgKzE4ODM2LDEyIEBAIHl5MTMxNToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkxOTE7Ci0gCQkJZ290byB5eTE2NzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTMxNjsKLSsJCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxMzE3OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJCQlnb3RvIHl5MTkxOwotIAkJfQotIAl9Ci0teXkxMzE2OgotK3l5MTMxNzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnQScpIHsKLSAJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLUBAIC0xODcxNSwxMiArMTg4NTEsMTIgQEAgeXkxMzE2OgotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTMxNzsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzE4OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2ODsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTMxNzoKLSt5eTEzMTg6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1knKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0xODc0Miw3ICsxODg3OCw3IEBAIHl5MTMxNzoKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTMxODoKLSt5eTEzMTk6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1QnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0xODc1OCwxNiArMTg4OTQsMTYgQEAgeXkxMzE4OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2ODsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTMxOTsKLSsJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMzIwOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2ODsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTMxOToKLSt5eTEzMjA6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJyknKSB7Ci0tCQlpZiAoeXljaCA9PSAnICcpIGdvdG8geXkxMzIwOwotKwkJaWYgKHl5Y2ggPT0gJyAnKSBnb3RvIHl5MTMyMTsKLSAJCWlmICh5eWNoIDw9ICcoJykgZ290byB5eTM7Ci0gCQlnb3RvIHl5MTY0OwotIAl9IGVsc2UgewotQEAgLTE4NzgwLDg4ICsxODkxNiwxNDMgQEAgeXkxMzE5OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzIwOgotK3l5MTMyMToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnTycpIGdvdG8geXkxMzIxOwotKwlpZiAoeXljaCA9PSAnTycpIGdvdG8geXkxMzIyOwotIAlpZiAoeXljaCAhPSAnbycpIGdvdG8geXk1NjsKLS15eTEzMjE6Ci0reXkxMzIyOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdGJykgZ290byB5eTEzMjI7Ci0rCWlmICh5eWNoID09ICdGJykgZ290byB5eTEzMjM7Ci0gCWlmICh5eWNoICE9ICdmJykgZ290byB5eTU2OwotLXl5MTMyMjoKLSt5eTEzMjM6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggIT0gJyAnKSBnb3RvIHl5NTY7Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5NTY7Ci0tCWlmICh5eWNoIDw9ICcxJykgZ290byB5eTEzMjQ7Ci0tCWlmICh5eWNoIDw9ICcyJykgZ290byB5eTEzMjU7Ci0tCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTEzMjY7Ci0rCWlmICh5eWNoIDw9ICcxJykgZ290byB5eTEzMjU7Ci0rCWlmICh5eWNoIDw9ICcyJykgZ290byB5eTEzMjY7Ci0rCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTEzMjc7Ci0gCWdvdG8geXk1NjsKLS15eTEzMjQ6Ci0tCXl5YWNjZXB0ID0gMjc7Ci0tCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0tCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTEzMjc7Ci0tCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTEzMjY7Ci0tCWdvdG8geXkxMzI3OwotIHl5MTMyNToKLSAJeXlhY2NlcHQgPSAyNzsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLS0JaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTMyNzsKLS0JaWYgKHl5Y2ggPj0gJzUnKSBnb3RvIHl5MTMyNzsKLSsJaWYgKHl5Y2ggPD0gJ0AnKSB7Ci0rCQlpZiAoeXljaCA8PSAweDFGKSB7Ci0rCQkJaWYgKHl5Y2ggPT0gJ1x0JykgZ290byB5eTEzMjg7Ci0rCQkJZ290byB5eTEyODQ7Ci0rCQl9IGVsc2UgewotKwkJCWlmICh5eWNoIDw9ICcgJykgZ290byB5eTEzMjg7Ci0rCQkJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTI4NDsKLSsJCQlpZiAoeXljaCA8PSAnOScpIGdvdG8geXkxMzI3OwotKwkJCWdvdG8geXkxMjg0OwotKwkJfQotKwl9IGVsc2UgewotKwkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTMzMDsKLSsJCQlpZiAoeXljaCA9PSAnUCcpIGdvdG8geXkxMzMwOwotKwkJCWdvdG8geXkxMjg0OwotKwkJfSBlbHNlIHsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzMwOwotKwkJCWlmICh5eWNoID09ICdwJykgZ290byB5eTEzMzA7Ci0rCQkJZ290byB5eTEyODQ7Ci0rCQl9Ci0rCX0KLSB5eTEzMjY6Ci0gCXl5YWNjZXB0ID0gMjc7Ci0tCVlZTUFSS0VSID0gKytZWUNVUlNPUjsKLS0JaWYgKChZWUxJTUlUIC0gWVlDVVJTT1IpIDwgNSkgWVlGSUxMKDUpOwotLQl5eWNoID0gKllZQ1VSU09SOwotKwl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotKwlpZiAoeXljaCA8PSAnQCcpIHsKLSsJCWlmICh5eWNoIDw9IDB4MUYpIHsKLSsJCQlpZiAoeXljaCA9PSAnXHQnKSBnb3RvIHl5MTMyODsKLSsJCQlnb3RvIHl5MTI4NDsKLSsJCX0gZWxzZSB7Ci0rCQkJaWYgKHl5Y2ggPD0gJyAnKSBnb3RvIHl5MTMyODsKLSsJCQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxMjg0OwotKwkJCWlmICh5eWNoID49ICc1JykgZ290byB5eTEyODQ7Ci0rCQl9Ci0rCX0gZWxzZSB7Ci0rCQlpZiAoeXljaCA8PSAnYCcpIHsKLSsJCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxMzMwOwotKwkJCWlmICh5eWNoID09ICdQJykgZ290byB5eTEzMzA7Ci0rCQkJZ290byB5eTEyODQ7Ci0rCQl9IGVsc2UgewotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEzMzA7Ci0rCQkJaWYgKHl5Y2ggPT0gJ3AnKSBnb3RvIHl5MTMzMDsKLSsJCQlnb3RvIHl5MTI4NDsKLSsJCX0KLSsJfQotIHl5MTMyNzoKLSsJeXlhY2NlcHQgPSAyNzsKLSsJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci0gCQlpZiAoeXljaCA8PSAweDFGKSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ1x0JykgZ290byB5eTEzMjY7Ci0tCQkJZ290byB5eTEyODQ7Ci0rCQkJaWYgKHl5Y2ggIT0gJ1x0JykgZ290byB5eTEyODQ7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICcgJykgZ290byB5eTEzMjY7Ci0rCQkJaWYgKHl5Y2ggPD0gJyAnKSBnb3RvIHl5MTMyODsKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkxMjg0OwotKwkJCWdvdG8geXkxMzMwOwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0tCQkJaWYgKHl5Y2ggIT0gJ1AnKSBnb3RvIHl5MTI4NDsKLSsJCQlpZiAoeXljaCA9PSAnUCcpIGdvdG8geXkxMzMwOwotKwkJCWdvdG8geXkxMjg0OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzI4OwotLQkJCWlmICh5eWNoICE9ICdwJykgZ290byB5eTEyODQ7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTMzMDsKLSsJCQlpZiAoeXljaCA9PSAncCcpIGdvdG8geXkxMzMwOwotKwkJCWdvdG8geXkxMjg0OwotIAkJfQotIAl9Ci0geXkxMzI4OgotKwkrK1lZQ1VSU09SOwotKwlpZiAoKFlZTElNSVQgLSBZWUNVUlNPUikgPCA1KSBZWUZJTEwoNSk7Ci0rCXl5Y2ggPSAqWVlDVVJTT1I7Ci0rCWlmICh5eWNoIDw9ICdBJykgewotKwkJaWYgKHl5Y2ggPD0gMHgxRikgewotKwkJCWlmICh5eWNoID09ICdcdCcpIGdvdG8geXkxMzI4OwotKwkJCWdvdG8geXk1NjsKLSsJCX0gZWxzZSB7Ci0rCQkJaWYgKHl5Y2ggPD0gJyAnKSBnb3RvIHl5MTMyODsKLSsJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXk1NjsKLSsJCX0KLSsJfSBlbHNlIHsKLSsJCWlmICh5eWNoIDw9ICdgJykgewotKwkJCWlmICh5eWNoICE9ICdQJykgZ290byB5eTU2OwotKwkJfSBlbHNlIHsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzMwOwotKwkJCWlmICh5eWNoICE9ICdwJykgZ290byB5eTU2OwotKwkJfQotKwl9Ci0reXkxMzMwOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdMJykgewotIAkJaWYgKHl5Y2ggIT0gJy4nKSBnb3RvIHl5NTY7Ci0gCX0gZWxzZSB7Ci0tCQlpZiAoeXljaCA8PSAnTScpIGdvdG8geXkxMzMwOwotLQkJaWYgKHl5Y2ggPT0gJ20nKSBnb3RvIHl5MTMzMDsKLSsJCWlmICh5eWNoIDw9ICdNJykgZ290byB5eTEzMzI7Ci0rCQlpZiAoeXljaCA9PSAnbScpIGdvdG8geXkxMzMyOwotIAkJZ290byB5eTU2OwotIAl9Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ00nKSBnb3RvIHl5MTMzMDsKLSsJaWYgKHl5Y2ggPT0gJ00nKSBnb3RvIHl5MTMzMjsKLSAJaWYgKHl5Y2ggIT0gJ20nKSBnb3RvIHl5NTY7Ci0teXkxMzMwOgotK3l5MTMzMjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAweDFGKSB7Ci0tCQlpZiAoeXljaCA8PSAweDAwKSBnb3RvIHl5MTI5MjsKLS0JCWlmICh5eWNoID09ICdcdCcpIGdvdG8geXkxMjkyOwotKwkJaWYgKHl5Y2ggPD0gMHgwMCkgZ290byB5eTEyOTM7Ci0rCQlpZiAoeXljaCA9PSAnXHQnKSBnb3RvIHl5MTI5MzsKLSAJCWdvdG8geXk1NjsKLSAJfSBlbHNlIHsKLS0JCWlmICh5eWNoIDw9ICcgJykgZ290byB5eTEyOTI7Ci0rCQlpZiAoeXljaCA8PSAnICcpIGdvdG8geXkxMjkzOwotIAkJaWYgKHl5Y2ggIT0gJy4nKSBnb3RvIHl5NTY7Ci0gCX0KLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnXHQnKSB7Ci0tCQlpZiAoeXljaCA8PSAweDAwKSBnb3RvIHl5MTI5MjsKLSsJCWlmICh5eWNoIDw9IDB4MDApIGdvdG8geXkxMjkzOwotIAkJaWYgKHl5Y2ggPD0gMHgwOCkgZ290byB5eTU2OwotLQkJZ290byB5eTEyOTI7Ci0rCQlnb3RvIHl5MTI5MzsKLSAJfSBlbHNlIHsKLS0JCWlmICh5eWNoID09ICcgJykgZ290byB5eTEyOTI7Ci0rCQlpZiAoeXljaCA9PSAnICcpIGdvdG8geXkxMjkzOwotIAkJZ290byB5eTU2OwotIAl9Ci0teXkxMzMyOgotK3l5MTMzNDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnUicpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4ODc3LDEyICsxOTA2OCwxMiBAQCB5eTEzMzI6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxMzMzOwotKwkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTEzMzU7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzMzOgotK3l5MTMzNToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnVCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4ODk4LDEyICsxOTA4OSwxMiBAQCB5eTEzMzM6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY4OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMzM0OwotKwkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzMzY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzM0OgotK3l5MTMzNjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnSCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4OTI1LDcgKzE5MTE2LDcgQEAgeXkxMzM0OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzM1OgotK3l5MTMzNzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4OTM0LDcgKzE5MTI1LDcgQEAgeXkxMzM1OgotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTE2NzsKLS0JCQlnb3RvIHl5MTMzODsKLSsJCQlnb3RvIHl5MTM0MDsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdyJykgewotQEAgLTE4OTQyLDEyICsxOTEzMywxMiBAQCB5eTEzMzU6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxMzM4OwotKwkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTEzNDA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzM2OgotK3l5MTMzODoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnVCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4OTYzLDEyICsxOTE1NCwxMiBAQCB5eTEzMzY6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMzM3OwotKwkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzMzk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzM3OgotK3l5MTMzOToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnSCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4OTkwLDcgKzE5MTgxLDcgQEAgeXkxMzM3OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzM4OgotK3l5MTM0MDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnVCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE5MDA2LDEyICsxOTE5NywxMiBAQCB5eTEzMzg6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY4OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMzM5OwotKwkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzNDE7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzM5OgotK3l5MTM0MToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnKCcpIHsKLUBAIC0xOTAzMiwxOSArMTkyMjMsMTkgQEAgeXkxMzM5OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzQwOgotK3l5MTM0MjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnRCcpIGdvdG8geXkxMzQxOwotKwlpZiAoeXljaCA9PSAnRCcpIGdvdG8geXkxMzQzOwotIAlpZiAoeXljaCAhPSAnZCcpIGdvdG8geXkxMTk3OwotLXl5MTM0MToKLSt5eTEzNDM6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ0EnKSBnb3RvIHl5MTM0MjsKLSsJaWYgKHl5Y2ggPT0gJ0EnKSBnb3RvIHl5MTM0NDsKLSAJaWYgKHl5Y2ggIT0gJ2EnKSBnb3RvIHl5NTY7Ci0teXkxMzQyOgotK3l5MTM0NDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnWScpIGdvdG8geXkxMzQzOwotKwlpZiAoeXljaCA9PSAnWScpIGdvdG8geXkxMzQ1OwotIAlpZiAoeXljaCAhPSAneScpIGdvdG8geXk1NjsKLS15eTEzNDM6Ci0reXkxMzQ1OgotIAl5eWFjY2VwdCA9IDI1OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUicpIHsKLUBAIC0xOTA1NSwxNCArMTkyNDYsMTQgQEAgeXkxMzQzOgotIAkJZ290byB5eTEwODQ7Ci0gCX0KLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnTycpIGdvdG8geXkxMzQ1OwotKwlpZiAoeXljaCA9PSAnTycpIGdvdG8geXkxMzQ3OwotIAlpZiAoeXljaCAhPSAnbycpIGdvdG8geXk1NjsKLS15eTEzNDU6Ci0reXkxMzQ3OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdGJykgZ290byB5eTEzMDU7Ci0tCWlmICh5eWNoID09ICdmJykgZ290byB5eTEzMDU7Ci0rCWlmICh5eWNoID09ICdGJykgZ290byB5eTEzMDY7Ci0rCWlmICh5eWNoID09ICdmJykgZ290byB5eTEzMDY7Ci0gCWdvdG8geXk1NjsKLS15eTEzNDY6Ci0reXkxMzQ4OgotIAl5eWFjY2VwdCA9IDU7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICcvJykgewotQEAgLTE5MDk3LDEzICsxOTI4OCwxMyBAQCB5eTEzNDY6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTIxODsKLSAJCQkJZ290byB5eTE2NzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxMzQ3OwotKwkJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxMzQ5OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJCWdvdG8geXkyMTg7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzQ3OgotK3l5MTM0OToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnVScpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE5MTE5LDEyICsxOTMxMCwxMiBAQCB5eTEzNDc6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY4OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAndScpIGdvdG8geXkxMzQ4OwotKwkJCWlmICh5eWNoIDw9ICd1JykgZ290byB5eTEzNTA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzQ4OgotK3l5MTM1MDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnQScpIHsKLSAJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLUBAIC0xOTEzNCwyNyArMTkzMjUsMjcgQEAgeXkxMzQ4OgotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2OTsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTM0OTsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzUxOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2OTsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTM0OToKLSt5eTEzNTE6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1EnKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQlnb3RvIHl5MzsKLSAJfSBlbHNlIHsKLS0JCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTEzNTA7Ci0rCQlpZiAoeXljaCA8PSAnUicpIGdvdG8geXkxMzUyOwotIAkJaWYgKHl5Y2ggIT0gJ3InKSBnb3RvIHl5MzsKLSAJfQotLXl5MTM1MDoKLSt5eTEzNTI6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPT0gJ1knKSBnb3RvIHl5MjI5OwotIAlpZiAoeXljaCA9PSAneScpIGdvdG8geXkyMjk7Ci0gCWdvdG8geXk1NjsKLS15eTEzNTE6Ci0reXkxMzUzOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdBJykgewotQEAgLTE5MTY5LDcgKzE5MzYwLDcgQEAgeXkxMzUxOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0InKSBnb3RvIHl5MTM0NjsKLSsJCQlpZiAoeXljaCA8PSAnQicpIGdvdG8geXkxMzQ4OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NjsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMTkxNzgsMTMgKzE5MzY5LDEzIEBAIHl5MTM1MToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3MTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnYicpIGdvdG8geXkxMzY5OwotKwkJCQlpZiAoeXljaCA8PSAnYicpIGdvdG8geXkxMzcxOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM1MjoKLSt5eTEzNTQ6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1EnKSB7Ci1AQCAtMTkyMDEsMTQgKzE5MzkyLDE0IEBAIHl5MTM1MjoKLSAJCQkJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTcyOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA9PSAnRicpIGdvdG8geXkxMzM2OwotKwkJCQlpZiAoeXljaCA9PSAnRicpIGdvdG8geXkxMzM4OwotIAkJCQlnb3RvIHl5MTY2OwotIAkJCX0KLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotIAkJCWlmICh5eWNoIDw9ICdaJykgewotLQkJCQlpZiAoeXljaCA8PSAnUicpIGdvdG8geXkxMzM1OwotKwkJCQlpZiAoeXljaCA8PSAnUicpIGdvdG8geXkxMzM3OwotIAkJCQlnb3RvIHl5MTY2OwotIAkJCX0gZWxzZSB7Ci0gCQkJCWlmICh5eWNoID09ICdfJykgZ290byB5eTE3MjsKLUBAIC0xOTIxNiwxNiArMTk0MDcsMTYgQEAgeXkxMzUyOgotIAkJCX0KLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3EnKSB7Ci0tCQkJCWlmICh5eWNoID09ICdmJykgZ290byB5eTEzNjU7Ci0rCQkJCWlmICh5eWNoID09ICdmJykgZ290byB5eTEzNjc7Ci0gCQkJCWdvdG8geXkxNzE7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTM2NDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTM2NjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNTM6Ci0reXkxMzU1OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdUJykgewotQEAgLTE5MjQwLDcgKzE5NDMxLDcgQEAgeXkxMzUzOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1UnKSBnb3RvIHl5MTMzMjsKLSsJCQlpZiAoeXljaCA8PSAnVScpIGdvdG8geXkxMzM0OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NjsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMTkyNDksMTMgKzE5NDQwLDEzIEBAIHl5MTM1MzoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3MTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAndScpIGdvdG8geXkxMzYxOwotKwkJCQlpZiAoeXljaCA8PSAndScpIGdvdG8geXkxMzYzOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM1NDoKLSt5eTEzNTY6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ04nKSB7Ci1AQCAtMTkyNzIsMTQgKzE5NDYzLDE0IEBAIHl5MTM1NDoKLSAJCQkJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTcyOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA9PSAnSScpIGdvdG8geXkxMzE1OwotKwkJCQlpZiAoeXljaCA9PSAnSScpIGdvdG8geXkxMzE2OwotIAkJCQlnb3RvIHl5MTY2OwotIAkJCX0KLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotIAkJCWlmICh5eWNoIDw9ICdaJykgewotLQkJCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxMzE0OwotKwkJCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxMzE1OwotIAkJCQlnb3RvIHl5MTY2OwotIAkJCX0gZWxzZSB7Ci0gCQkJCWlmICh5eWNoID09ICdfJykgZ290byB5eTE3MjsKLUBAIC0xOTI4NywxNiArMTk0NzgsMTYgQEAgeXkxMzU0OgotIAkJCX0KLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ24nKSB7Ci0tCQkJCWlmICh5eWNoID09ICdpJykgZ290byB5eTEzNTY7Ci0rCQkJCWlmICh5eWNoID09ICdpJykgZ290byB5eTEzNTg7Ci0gCQkJCWdvdG8geXkxNzE7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTM1NTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTM1NzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNTU6Ci0reXkxMzU3OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdNJykgewotQEAgLTE5MzExLDcgKzE5NTAyLDcgQEAgeXkxMzU1OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ04nKSBnb3RvIHl5MTMxODsKLSsJCQlpZiAoeXljaCA8PSAnTicpIGdvdG8geXkxMzE5OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMTkzMjAsMTMgKzE5NTExLDEzIEBAIHl5MTM1NToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxMzU5OwotKwkJCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxMzYxOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM1NjoKLSt5eTEzNTg6Ci0gCXl5YWNjZXB0ID0gNDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0MnKSB7Ci1AQCAtMTkzNDEsNyArMTk1MzIsNyBAQCB5eTEzNTY6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxMzE2OwotKwkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTEzMTc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTE5MTsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTE5MzUwLDEzICsxOTU0MSwxMyBAQCB5eTEzNTY6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE5MTsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxMzU3OwotKwkJCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxMzU5OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkxOTE7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzU3OgotK3l5MTM1OToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQCcpIHsKLUBAIC0xOTM3MCwxOCArMTk1NjEsMTggQEAgeXkxMzU3OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTMxNzsKLSsJCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxMzE4OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTM1ODsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzYwOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTM1ODoKLSt5eTEzNjA6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1gnKSB7Ci1AQCAtMTk0MTEsNyArMTk2MDIsNyBAQCB5eTEzNTg6Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzU5OgotK3l5MTM2MToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLUBAIC0xOTQyNiw3ICsxOTYxNyw3IEBAIHl5MTM1OToKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTEzMTk7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTMyMDsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTE5NDM1LDE4ICsxOTYyNiwxOCBAQCB5eTEzNTk6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzY7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTM2MDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTM2MjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc2OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNjA6Ci0reXkxMzYyOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICcuJykgewotIAkJaWYgKHl5Y2ggPD0gJygnKSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJyAnKSBnb3RvIHl5MTMyMDsKLSsJCQlpZiAoeXljaCA9PSAnICcpIGdvdG8geXkxMzIxOwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnKScpIGdvdG8geXkxNjQ7Ci1AQCAtMTk0NjYsNyArMTk2NTcsNyBAQCB5eTEzNjA6Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzNjE6Ci0reXkxMzYzOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdRJykgewotQEAgLTE5NDgxLDcgKzE5NjcyLDcgQEAgeXkxMzYxOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTMzMzsKLSsJCQlpZiAoeXljaCA8PSAnUicpIGdvdG8geXkxMzM1OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMTk0OTAsMTMgKzE5NjgxLDEzIEBAIHl5MTM2MToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxMzYyOwotKwkJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxMzY0OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM2MjoKLSt5eTEzNjQ6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1MnKSB7Ci1AQCAtMTk1MTEsNyArMTk3MDIsNyBAQCB5eTEzNjI6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxMzM0OwotKwkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTEzMzY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY4OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0xOTUyMCwxMyArMTk3MTEsMTMgQEAgeXkxMzYyOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc2OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzNjM7Ci0rCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzNjU7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NjsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzYzOgotK3l5MTM2NToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnRycpIHsKLUBAIC0xOTU1Niw3ICsxOTc0Nyw3IEBAIHl5MTM2MzoKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNjQ6Ci0reXkxMzY2OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdSJykgewotQEAgLTE5NTcxLDcgKzE5NzYyLDcgQEAgeXkxMzY0OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1MnKSBnb3RvIHl5MTMzODsKLSsJCQlpZiAoeXljaCA8PSAnUycpIGdvdG8geXkxMzQwOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMTk1ODAsMTMgKzE5NzcxLDEzIEBAIHl5MTM2NDoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxMzY3OwotKwkJCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxMzY5OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM2NToKLSt5eTEzNjc6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1MnKSB7Ci1AQCAtMTk2MDEsNyArMTk3OTIsNyBAQCB5eTEzNjU6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxMzM3OwotKwkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTEzMzk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0xOTYxMCwxMyArMTk4MDEsMTMgQEAgeXkxMzY1OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzNjY7Ci0rCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzNjg7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzY2OgotK3l5MTM2ODoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnRycpIHsKLUBAIC0xOTY0Niw3ICsxOTgzNyw3IEBAIHl5MTM2NjoKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNjc6Ci0reXkxMzY5OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdTJykgewotQEAgLTE5NjYxLDcgKzE5ODUyLDcgQEAgeXkxMzY3OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTMzOTsKLSsJCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxMzQxOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMTk2NzAsMjAgKzE5ODYxLDIwIEBAIHl5MTM2NzoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMzY4OwotKwkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMzcwOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM2ODoKLSt5eTEzNzA6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJy0nKSB7Ci0gCQlpZiAoeXljaCA8PSAnICcpIHsKLSAJCQlpZiAoeXljaCA9PSAnXHQnKSBnb3RvIHl5MTE5NjsKLSAJCQlpZiAoeXljaCA8PSAweDFGKSBnb3RvIHl5MzsKLS0JCQlnb3RvIHl5MTM0MDsKLSsJCQlnb3RvIHl5MTM0MjsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJCWlmICh5eWNoIDw9ICcsJykgZ290byB5eTM7Ci1AQCAtMTk3MDUsNyArMTk4OTYsNyBAQCB5eTEzNjg6Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzY5OgotK3l5MTM3MToKLSAJeXlhY2NlcHQgPSA1OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnOScpIHsKLUBAIC0xOTczMyw3ICsxOTkyNCw3IEBAIHl5MTM2OToKLSAJCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MjE4OwotIAkJCQlnb3RvIHl5MTY3OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTEzNDc7Ci0rCQkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTEzNDk7Ci0gCQkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQkJZ290byB5eTIxODsKLSAJCQl9Ci1AQCAtMTk3NDMsMTMgKzE5OTM0LDEzIEBAIHl5MTM2OToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MjE4OwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTEzNzA7Ci0rCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTEzNzI7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTIxODsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNzA6Ci0reXkxMzcyOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdUJykgewotQEAgLTE5NzY0LDcgKzE5OTU1LDcgQEAgeXkxMzcwOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1UnKSBnb3RvIHl5MTM0ODsKLSsJCQlpZiAoeXljaCA8PSAnVScpIGdvdG8geXkxMzUwOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMTk3NzMsMTMgKzE5OTY0LDEzIEBAIHl5MTM3MDoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAndScpIGdvdG8geXkxMzcxOwotKwkJCQlpZiAoeXljaCA8PSAndScpIGdvdG8geXkxMzczOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM3MToKLSt5eTEzNzM6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0AnKSB7Ci1AQCAtMTk3OTMsMTggKzE5OTg0LDE4IEBAIHl5MTM3MToKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdBJykgZ290byB5eTEzNDk7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTM1MTsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEzNzI7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTM3NDsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzNzI6Ci0reXkxMzc0OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdRJykgewotQEAgLTE5ODE4LDMzICsyMDAwOSwzNCBAQCB5eTEzNzI6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnYCcpIHsKLS0JCQlpZiAoeXljaCA8PSAnUicpIGdvdG8geXkxMzUwOwotKwkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTEzNTI7Ci0gCQkJaWYgKHl5Y2ggPT0gJ18nKSBnb3RvIHl5MTcyOwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAncicpIGdvdG8geXkxMzczOwotKwkJCWlmICh5eWNoID09ICdyJykgZ290byB5eTEzNzU7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzczOgotK3l5MTM3NToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA9PSAnWScpIGdvdG8geXkyMjk7Ci0gCWlmICh5eWNoID09ICd5JykgZ290byB5eTM0MTsKLSAJZ290byB5eTE3OTsKLS15eTEzNzQ6Ci0reXkxMzc2OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTU2OwotIAlpZiAoeXljaCA+PSAnOicpIGdvdG8geXk1NjsKLS15eTEzNzU6Ci0reXkxMzc3OgotIAl5eWFjY2VwdCA9IDI4OwotIAlZWU1BUktFUiA9ICsrWVlDVVJTT1I7Ci0gCWlmICgoWVlMSU1JVCAtIFlZQ1VSU09SKSA8IDcpIFlZRklMTCg3KTsKLSAJeXljaCA9ICpZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJy4nKSBnb3RvIHl5MTM3ODsKLS0JaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTM3NzsKLS0JaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5MTM3NTsKLS15eTEzNzc6Ci0rCWlmICh5eWNoID09ICcuJykgZ290byB5eTEzODA7Ci0rCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTEzNzk7Ci0rCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTEzNzc7Ci0reXkxMzc5OgotKyNsaW5lIDEwMjUgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQl0aW1lbGliX3VsbCBpOwotIAotQEAgLTE5ODY5LDcgKzIwMDYxLDggQEAgeXkxMzc3OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9SRUxBVElWRTsKLSAJfQotLXl5MTM3ODoKLSsjbGluZSAyMDA2NSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSt5eTEzODA6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5NTY7Ci0gCWlmICh5eWNoID49ICc6JykgZ290byB5eTU2OwotQEAgLTE5ODg5LDYgKzIwMDgyLDcgQEAgeXkxMzc4OgotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk1NjsKLSAJaWYgKHl5Y2ggPj0gJzonKSBnb3RvIHl5NTY7Ci0gCSsrWVlDVVJTT1I7Ci0rI2xpbmUgMTA1MSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCXRpbWVsaWJfdWxsIGksIG1zOwotIAotQEAgLTE5OTE1LDcgKzIwMTA5LDggQEAgeXkxMzc4OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9SRUxBVElWRTsKLSAJfQotLXl5MTM4NjoKLSsjbGluZSAyMDExMyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSt5eTEzODg6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ04nKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0xOTkyNCw3ICsyMDExOSw3IEBAIHl5MTM4NjoKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnTScpIGdvdG8geXkxNjY7Ci0tCQkJZ290byB5eTE0Mjc7Ci0rCQkJZ290byB5eTE0Mjk7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnbScpIHsKLUBAIC0xOTkzMiw1OCArMjAxMjcsNTggQEAgeXkxMzg2OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NjsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTQyNzsKLSsJCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNDI5OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTM4NzoKLSt5eTEzODk6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1UnKSB7Ci0gCQlpZiAoeXljaCA8PSAnQCcpIHsKLSAJCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICdJJykgZ290byB5eTE0MTk7Ci0rCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTQyMTsKLSAJCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxNjY7Ci0tCQkJZ290byB5eTE0MjA7Ci0rCQkJZ290byB5eTE0MjI7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnaScpIHsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnaCcpIGdvdG8geXkxNjY7Ci0tCQkJZ290byB5eTE0MTk7Ci0rCQkJZ290byB5eTE0MjE7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICd1JykgZ290byB5eTE0MjA7Ci0rCQkJaWYgKHl5Y2ggPT0gJ3UnKSBnb3RvIHl5MTQyMjsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjY7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzODg6Ci0reXkxMzkwOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdNJykgewotIAkJaWYgKHl5Y2ggPD0gJ0AnKSB7Ci0gCQkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAnRCcpIGdvdG8geXkxNDA4OwotKwkJCWlmICh5eWNoID09ICdEJykgZ290byB5eTE0MTA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0wnKSBnb3RvIHl5MTY2OwotLQkJCWdvdG8geXkxNDA5OwotKwkJCWdvdG8geXkxNDExOwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2QnKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ2MnKSBnb3RvIHl5MTY2OwotLQkJCWdvdG8geXkxNDA4OwotKwkJCWdvdG8geXkxNDEwOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAnbScpIGdvdG8geXkxNDA5OwotKwkJCWlmICh5eWNoID09ICdtJykgZ290byB5eTE0MTE7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzg5OgotK3l5MTM5MToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnRScpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE5OTkyLDcgKzIwMTg3LDcgQEAgeXkxMzg5OgotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTQwNDsKLSsJCQlnb3RvIHl5MTQwNjsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdkJykgewotQEAgLTIwMDAwLDEyICsyMDE5NSwxMiBAQCB5eTEzODk6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY2OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNDA0OwotKwkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE0MDY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzkwOgotK3l5MTM5MjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnRScpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIwMDE0LDcgKzIwMjA5LDcgQEAgeXkxMzkwOgotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTQwMDsKLSsJCQlnb3RvIHl5MTQwMjsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdkJykgewotQEAgLTIwMDIyLDY4ICsyMDIxNyw2OCBAQCB5eTEzOTA6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY2OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNDAwOwotKwkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE0MDI7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzkxOgotK3l5MTM5MzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnLycpIHsKLSAJCWlmICh5eWNoID09ICcuJykgZ290byB5eTEwMjk7Ci0gCQlnb3RvIHl5NTY7Ci0gCX0gZWxzZSB7Ci0tCQlpZiAoeXljaCA8PSAnOScpIGdvdG8geXkxMzk0OwotKwkJaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5MTM5NjsKLSAJCWlmICh5eWNoIDw9ICc6JykgZ290byB5eTEwMjk7Ci0gCQlnb3RvIHl5NTY7Ci0gCX0KLS15eTEzOTI6Ci0reXkxMzk0OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICcvJykgewotIAkJaWYgKHl5Y2ggPT0gJy4nKSBnb3RvIHl5MTAyOTsKLSAJCWdvdG8geXk1NjsKLSAJfSBlbHNlIHsKLS0JCWlmICh5eWNoIDw9ICc0JykgZ290byB5eTEzOTQ7Ci0rCQlpZiAoeXljaCA8PSAnNCcpIGdvdG8geXkxMzk2OwotIAkJaWYgKHl5Y2ggPT0gJzonKSBnb3RvIHl5MTAyOTsKLSAJCWdvdG8geXk1NjsKLSAJfQotLXl5MTM5MzoKLSt5eTEzOTU6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPT0gJy4nKSBnb3RvIHl5MTAyOTsKLSAJaWYgKHl5Y2ggPT0gJzonKSBnb3RvIHl5MTAyOTsKLSAJZ290byB5eTU2OwotLXl5MTM5NDoKLSt5eTEzOTY6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJy8nKSB7Ci0gCQlpZiAoeXljaCA9PSAnLicpIGdvdG8geXkxMDI5OwotIAkJZ290byB5eTU2OwotIAl9IGVsc2UgewotLQkJaWYgKHl5Y2ggPD0gJzUnKSBnb3RvIHl5MTM5NTsKLSsJCWlmICh5eWNoIDw9ICc1JykgZ290byB5eTEzOTc7Ci0gCQlpZiAoeXljaCA9PSAnOicpIGdvdG8geXkxMDI5OwotIAkJZ290byB5eTU2OwotIAl9Ci0teXkxMzk1OgotK3l5MTM5NzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk1NjsKLSAJaWYgKHl5Y2ggPj0gJzonKSBnb3RvIHl5NTY7Ci0gCXl5YWNjZXB0ID0gMjM7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTEwMzI7Ci0tCWlmICh5eWNoIDw9ICc1JykgZ290byB5eTEzOTc7Ci0tCWlmICh5eWNoIDw9ICc2JykgZ290byB5eTEzOTg7Ci0rCWlmICh5eWNoIDw9ICc1JykgZ290byB5eTEzOTk7Ci0rCWlmICh5eWNoIDw9ICc2JykgZ290byB5eTE0MDA7Ci0gCWdvdG8geXkxMDMyOwotLXl5MTM5NzoKLSt5eTEzOTk6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5NTY7Ci0tCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTEzOTk7Ci0rCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTE0MDE7Ci0gCWdvdG8geXk1NjsKLS15eTEzOTg6Ci0reXkxNDAwOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoICE9ICcwJykgZ290byB5eTU2OwotLXl5MTM5OToKLSt5eTE0MDE6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJZ290byB5eTEwNDA7Ci0teXkxNDAwOgotK3l5MTQwMjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnTCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIwMDk5LDEyICsyMDI5NCwxMiBAQCB5eTE0MDA6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnbCcpIGdvdG8geXkxNDAxOwotKwkJCWlmICh5eWNoIDw9ICdsJykgZ290byB5eTE0MDM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDAxOgotK3l5MTQwMzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnRicpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIwMTIwLDEyICsyMDMxNSwxMiBAQCB5eTE0MDE6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY4OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnZicpIGdvdG8geXkxNDAyOwotKwkJCWlmICh5eWNoIDw9ICdmJykgZ290byB5eTE0MDQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDAyOgotK3l5MTQwNDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnVCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIwMTQxLDEyICsyMDMzNiwxMiBAQCB5eTE0MDI6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY5OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNDAzOwotKwkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTE0MDU7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY5OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDAzOgotK3l5MTQwNToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnRycpIHsKLUBAIC0yMDE1Nyw3ICsyMDM1Miw3IEBAIHl5MTQwMzoKLSAJCWlmICh5eWNoID09ICdoJykgZ290byB5eTExOTU7Ci0gCQlnb3RvIHl5MzsKLSAJfQotLXl5MTQwNDoKLSt5eTE0MDY6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1MnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMDE3MywxMiArMjAzNjgsMTIgQEAgeXkxNDA0OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE5MTsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxNDA1OwotKwkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE0MDc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkxOTE7Ci0gCQl9Ci0gCX0KLS15eTE0MDU6Ci0reXkxNDA3OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdEJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjAxOTQsMTIgKzIwMzg5LDEyIEBAIHl5MTQwNToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjg7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTE0MDY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQwODsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MDY6Ci0reXkxNDA4OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdBJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotQEAgLTIwMjA5LDEyICsyMDQwNCwxMiBAQCB5eTE0MDY6Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY5OwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxNDA3OwotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0MDk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY5OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDA3OgotK3l5MTQwOToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnWCcpIHsKLSAJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLUBAIC0yMDIyNCwyMyArMjA0MTksMjMgQEAgeXkxNDA3OgotIAkJaWYgKHl5Y2ggPT0gJ3knKSBnb3RvIHl5MTk3OwotIAkJZ290byB5eTM7Ci0gCX0KLS15eTE0MDg6Ci0reXkxNDEwOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdBJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLS0JCWdvdG8geXkxNDE2OwotKwkJZ290byB5eTE0MTg7Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnYCcpIHsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0MTY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQxODsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MDk6Ci0reXkxNDExOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdPJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjAyNTYsMTIgKzIwNDUxLDEyIEBAIHl5MTQwOToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdvJykgZ290byB5eTE0MTA7Ci0rCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTQxMjsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MTA6Ci0reXkxNDEyOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdSJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjAyNzcsMTIgKzIwNDcyLDEyIEBAIHl5MTQxMDoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjg7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE0MTE7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQxMzsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MTE6Ci0reXkxNDEzOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdSJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjAyOTgsMjggKzIwNDkzLDI5IEBAIHl5MTQxMToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjk7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE0MTI7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQxNDsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjk7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MTI6Ci0reXkxNDE0OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdOJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJZ290byB5eTM7Ci0gCX0gZWxzZSB7Ci0tCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxNDEzOwotKwkJaWYgKHl5Y2ggPD0gJ08nKSBnb3RvIHl5MTQxNTsKLSAJCWlmICh5eWNoICE9ICdvJykgZ290byB5eTM7Ci0gCX0KLS15eTE0MTM6Ci0reXkxNDE1OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdXJykgZ290byB5eTE0MTQ7Ci0rCWlmICh5eWNoID09ICdXJykgZ290byB5eTE0MTY7Ci0gCWlmICh5eWNoICE9ICd3JykgZ290byB5eTU2OwotLXl5MTQxNDoKLSt5eTE0MTY6Ci0gCSsrWVlDVVJTT1I7Ci0teXkxNDE1OgotK3l5MTQxNzoKLSsjbGluZSAxMDEzICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJREVCVUdfT1VUUFVUKCJ0b21vcnJvdyIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTIwMzMwLDcgKzIwNTI2LDggQEAgeXkxNDE1OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9SRUxBVElWRTsKLSAJfQotLXl5MTQxNjoKLSsjbGluZSAyMDUzMCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSt5eTE0MTg6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1knKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMDM0NiwyMSArMjA1NDMsMjIgQEAgeXkxNDE2OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2ODsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3knKSBnb3RvIHl5MTQxNzsKLSsJCQlpZiAoeXljaCA8PSAneScpIGdvdG8geXkxNDE5OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2ODsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQxNzoKLSt5eTE0MTk6Ci0gCSsrWVlDVVJTT1I7Ci0gCWlmICgoeXljaCA9ICpZWUNVUlNPUikgPD0gJ0AnKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjk7Ci0tCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkxNDE4OwotKwkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTQyMDsKLSAJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2OTsKLSAJfQotLXl5MTQxODoKLSt5eTE0MjA6Ci0rI2xpbmUgMTAwMyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgibWlkbmlnaHQgfCB0b2RheSIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTIwMzY5LDcgKzIwNTY3LDggQEAgeXkxNDE4OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9SRUxBVElWRTsKLSAJfQotLXl5MTQxOToKLSsjbGluZSAyMDU3MSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSt5eTE0MjE6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1MnKSB7Ci0gCQlpZiAoeXljaCA8PSAnQCcpIHsKLUBAIC0yMDM3Nyw4ICsyMDU3Niw4IEBAIHl5MTQxOToKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1EnKSBnb3RvIHl5MTY3OwotLQkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTE0MjU7Ci0tCQkJZ290byB5eTE0MjY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTQyNzsKLSsJCQlnb3RvIHl5MTQyODsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdxJykgewotQEAgLTIwMzg2LDEzICsyMDU4NSwxMyBAQCB5eTE0MTk6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxNDI1OwotLQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE0MjY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQyNzsKLSsJCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxNDI4OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQyMDoKLSt5eTE0MjI6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1InKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMDQwOCwxMiArMjA2MDcsMTIgQEAgeXkxNDIwOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE5MTsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxNDIxOwotKwkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE0MjM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkxOTE7Ci0gCQl9Ci0gCX0KLS15eTE0MjE6Ci0reXkxNDIzOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdTJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjA0MjksMTIgKzIwNjI4LDEyIEBAIHl5MTQyMToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjg7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE0MjI7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTQyNDsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MjI6Ci0reXkxNDI0OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdEJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjA0NTAsMjcgKzIwNjQ5LDI3IEBAIHl5MTQyMjoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjk7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTE0MjM7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQyNTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjk7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MjM6Ci0reXkxNDI1OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdAJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJZ290byB5eTM7Ci0gCX0gZWxzZSB7Ci0tCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxNDI0OwotKwkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTQyNjsKLSAJCWlmICh5eWNoICE9ICdhJykgZ290byB5eTM7Ci0gCX0KLS15eTE0MjQ6Ci0reXkxNDI2OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoID09ICdZJykgZ290byB5eTE5NzsKLSAJaWYgKHl5Y2ggPT0gJ3knKSBnb3RvIHl5MTk3OwotIAlnb3RvIHl5NTY7Ci0teXkxNDI1OgotK3l5MTQyNzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnRCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIwNDkyLDcgKzIwNjkxLDcgQEAgeXkxNDI1OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDI2OgotK3l5MTQyODoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnKCcpIHsKLUBAIC0yMDUxNCw3ICsyMDcxMyw3IEBAIHl5MTQyNjoKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQyNzoKLSt5eTE0Mjk6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1QnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMDUzMCwxMiArMjA3MjksMTIgQEAgeXkxNDI3OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQyODsKLSsJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNDMwOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQyODoKLSt5eTE0MzA6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0gnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMDU1Nyw3ICsyMDc1Niw3IEBAIHl5MTQyODoKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQyOToKLSt5eTE0MzE6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ00nKSB7Ci1AQCAtMjA1NzIsNyArMjA3NzEsNyBAQCB5eTE0Mjk6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnTicpIGdvdG8geXkxNDI3OwotKwkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE0Mjk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMDU4MSwxMyArMjA3ODAsMTMgQEAgeXkxNDI5OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE0NTk7Ci0rCQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE0NjE7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDMwOgotK3l5MTQzMjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnVCcpIHsKLUBAIC0yMDYwNCwxNCArMjA4MDMsMTQgQEAgeXkxNDMwOgotIAkJCQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxNzI7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoID09ICdJJykgZ290byB5eTE0MTk7Ci0rCQkJCWlmICh5eWNoID09ICdJJykgZ290byB5eTE0MjE7Ci0gCQkJCWdvdG8geXkxNjY7Ci0gCQkJfQotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdVJykgZ290byB5eTE0MjA7Ci0rCQkJCWlmICh5eWNoIDw9ICdVJykgZ290byB5eTE0MjI7Ci0gCQkJCWdvdG8geXkxNjY7Ci0gCQkJfSBlbHNlIHsKLSAJCQkJaWYgKHl5Y2ggPT0gJ18nKSBnb3RvIHl5MTcyOwotQEAgLTIwNjE5LDE2ICsyMDgxOCwxNiBAQCB5eTE0MzA6Ci0gCQkJfQotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAndCcpIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ2knKSBnb3RvIHl5MTQ1MTsKLSsJCQkJaWYgKHl5Y2ggPT0gJ2knKSBnb3RvIHl5MTQ1MzsKLSAJCQkJZ290byB5eTE3MTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAndScpIGdvdG8geXkxNDUyOwotKwkJCQlpZiAoeXljaCA8PSAndScpIGdvdG8geXkxNDU0OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQzMToKLSt5eTE0MzM6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0wnKSB7Ci1AQCAtMjA2NDUsMTQgKzIwODQ0LDE0IEBAIHl5MTQzMToKLSAJCQkJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTcyOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA9PSAnRCcpIGdvdG8geXkxNDA4OwotKwkJCQlpZiAoeXljaCA9PSAnRCcpIGdvdG8geXkxNDEwOwotIAkJCQlnb3RvIHl5MTY2OwotIAkJCX0KLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotIAkJCWlmICh5eWNoIDw9ICdaJykgewotLQkJCQlpZiAoeXljaCA8PSAnTScpIGdvdG8geXkxNDA5OwotKwkJCQlpZiAoeXljaCA8PSAnTScpIGdvdG8geXkxNDExOwotIAkJCQlnb3RvIHl5MTY2OwotIAkJCX0gZWxzZSB7Ci0gCQkJCWlmICh5eWNoID09ICdfJykgZ290byB5eTE3MjsKLUBAIC0yMDY2MCwxNiArMjA4NTksMTYgQEAgeXkxNDMxOgotIAkJCX0KLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ2wnKSB7Ci0tCQkJCWlmICh5eWNoID09ICdkJykgZ290byB5eTE0NDI7Ci0rCQkJCWlmICh5eWNoID09ICdkJykgZ290byB5eTE0NDQ7Ci0gCQkJCWdvdG8geXkxNzE7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ20nKSBnb3RvIHl5MTQ0MzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ20nKSBnb3RvIHl5MTQ0NTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0MzI6Ci0reXkxNDM0OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdEJykgewotQEAgLTIwNjg0LDcgKzIwODgzLDcgQEAgeXkxNDMyOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0UnKSBnb3RvIHl5MTQwNDsKLSsJCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNDA2OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NjsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjA2OTMsMTMgKzIwODkyLDEzIEBAIHl5MTQzMjoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3MTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNDM4OwotKwkJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNDQwOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQzMzoKLSt5eTE0MzU6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0QnKSB7Ci1AQCAtMjA3MTQsNyArMjA5MTMsNyBAQCB5eTE0MzM6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNDAwOwotKwkJCWlmICh5eWNoIDw9ICdFJykgZ290byB5eTE0MDI7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMDcyMywxMyArMjA5MjIsMTMgQEAgeXkxNDMzOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE0MzQ7Ci0rCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE0MzY7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDM0OgotK3l5MTQzNjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnSycpIHsKLUBAIC0yMDc0NCw3ICsyMDk0Myw3IEBAIHl5MTQzNDoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdMJykgZ290byB5eTE0MDE7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0wnKSBnb3RvIHl5MTQwMzsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIwNzUzLDEzICsyMDk1MiwxMyBAQCB5eTE0MzQ6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2wnKSBnb3RvIHl5MTQzNTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2wnKSBnb3RvIHl5MTQzNzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0MzU6Ci0reXkxNDM3OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdFJykgewotQEAgLTIwNzc0LDcgKzIwOTczLDcgQEAgeXkxNDM1OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0YnKSBnb3RvIHl5MTQwMjsKLSsJCQlpZiAoeXljaCA8PSAnRicpIGdvdG8geXkxNDA0OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjA3ODMsMTMgKzIwOTgyLDEzIEBAIHl5MTQzNToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnZicpIGdvdG8geXkxNDM2OwotKwkJCQlpZiAoeXljaCA8PSAnZicpIGdvdG8geXkxNDM4OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQzNjoKLSt5eTE0Mzg6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1MnKSB7Ci1AQCAtMjA4MDQsNyArMjEwMDMsNyBAQCB5eTE0MzY6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxNDAzOwotKwkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTE0MDU7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY5OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMDgxMywxMyArMjEwMTIsMTMgQEAgeXkxNDM2OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc3OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTE0Mzc7Ci0rCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTE0Mzk7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NzsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDM3OgotK3l5MTQzOToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnRycpIHsKLUBAIC0yMDg0Miw3ICsyMTA0MSw3IEBAIHl5MTQzNzoKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQzODoKLSt5eTE0NDA6Ci0gCXl5YWNjZXB0ID0gNDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1InKSB7Ci1AQCAtMjA4NTcsNyArMjEwNTYsNyBAQCB5eTE0Mzg6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnUycpIGdvdG8geXkxNDA1OwotKwkJCWlmICh5eWNoIDw9ICdTJykgZ290byB5eTE0MDc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTE5MTsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIwODY2LDEzICsyMTA2NSwxMyBAQCB5eTE0Mzg6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE5MTsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxNDM5OwotKwkJCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxNDQxOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkxOTE7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDM5OgotK3l5MTQ0MToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQycpIHsKLUBAIC0yMDg4Nyw3ICsyMTA4Niw3IEBAIHl5MTQzOToKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTE0MDY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTQwODsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIwODk2LDEzICsyMTA5NSwxMyBAQCB5eTE0Mzk6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzY7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQ0MDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQ0MjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc2OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0NDA6Ci0reXkxNDQyOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdAJykgewotQEAgLTIwOTE2LDE4ICsyMTExNSwxOCBAQCB5eTE0NDA6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxNDA3OwotKwkJCWlmICh5eWNoIDw9ICdBJykgZ290byB5eTE0MDk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY5OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLS0JCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxNDQxOwotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0NDM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc3OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDQxOgotK3l5MTQ0MzoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnWCcpIHsKLUBAIC0yMDk1MCw3ICsyMTE0OSw3IEBAIHl5MTQ0MToKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ0MjoKLSt5eTE0NDQ6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0AnKSB7Ci1AQCAtMjA5NjQsMTggKzIxMTYzLDE4IEBAIHl5MTQ0MjoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdBJykgZ290byB5eTE0MTY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTQxODsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0NDk7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQ1MTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0NDM6Ci0reXkxNDQ1OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdOJykgewotQEAgLTIwOTkwLDcgKzIxMTg5LDcgQEAgeXkxNDQzOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ08nKSBnb3RvIHl5MTQxMDsKLSsJCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxNDEyOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjA5OTksMTMgKzIxMTk4LDEzIEBAIHl5MTQ0MzoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnbycpIGdvdG8geXkxNDQ0OwotKwkJCQlpZiAoeXljaCA8PSAnbycpIGdvdG8geXkxNDQ2OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ0NDoKLSt5eTE0NDY6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1EnKSB7Ci1AQCAtMjEwMjAsNyArMjEyMTksNyBAQCB5eTE0NDQ6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnUicpIGdvdG8geXkxNDExOwotKwkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTE0MTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY4OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMTAyOSwxMyArMjEyMjgsMTMgQEAgeXkxNDQ0OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc2OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE0NDU7Ci0rCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE0NDc7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NjsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDQ1OgotK3l5MTQ0NzoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUScpIHsKLUBAIC0yMTA1MCw3ICsyMTI0OSw3IEBAIHl5MTQ0NToKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTE0MTI7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTQxNDsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIxMDU5LDEzICsyMTI1OCwxMyBAQCB5eTE0NDU6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzc7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQ0NjsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQ0ODsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc3OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0NDY6Ci0reXkxNDQ4OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdOJykgewotQEAgLTIxMDc5LDE4ICsyMTI3OCwxOCBAQCB5eTE0NDY6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnYCcpIHsKLS0JCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxNDEzOwotKwkJCWlmICh5eWNoIDw9ICdPJykgZ290byB5eTE0MTU7Ci0gCQkJaWYgKHl5Y2ggPT0gJ18nKSBnb3RvIHl5MTcyOwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAnbycpIGdvdG8geXkxNDQ3OwotKwkJCWlmICh5eWNoID09ICdvJykgZ290byB5eTE0NDk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDQ3OgotK3l5MTQ0OToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnVycpIGdvdG8geXkxNDE0OwotKwlpZiAoeXljaCA9PSAnVycpIGdvdG8geXkxNDE2OwotIAlpZiAoeXljaCAhPSAndycpIGdvdG8geXkxNzk7Ci0gCXl5YWNjZXB0ID0gMjk7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci1AQCAtMjEwOTksMTMgKzIxMjk4LDEzIEBAIHl5MTQ0NzoKLSAJfQotIAlpZiAoeXljaCA8PSAnLicpIHsKLSAJCWlmICh5eWNoID09ICctJykgZ290byB5eTE3MjsKLS0JCWdvdG8geXkxNDE1OwotKwkJZ290byB5eTE0MTc7Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxNzI7Ci0gCQlpZiAoeXljaCA9PSAnXycpIGdvdG8geXkxNzI7Ci0tCQlnb3RvIHl5MTQxNTsKLSsJCWdvdG8geXkxNDE3OwotIAl9Ci0teXkxNDQ5OgotK3l5MTQ1MToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnWCcpIHsKLUBAIC0yMTEyMCw3ICsyMTMxOSw3IEBAIHl5MTQ0OToKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdZJykgZ290byB5eTE0MTc7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1knKSBnb3RvIHl5MTQxOTsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIxMTI5LDM2ICsyMTMyOCwzNiBAQCB5eTE0NDk6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzY7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3knKSBnb3RvIHl5MTQ1MDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3knKSBnb3RvIHl5MTQ1MjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc2OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0NTA6Ci0reXkxNDUyOgotIAl5eWFjY2VwdCA9IDMwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnLycpIHsKLSAJCWlmICh5eWNoIDw9ICcsJykgewotIAkJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLS0JCQlnb3RvIHl5MTQxODsKLSsJCQlnb3RvIHl5MTQyMDsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJy4nKSBnb3RvIHl5MTQxODsKLSsJCQlpZiAoeXljaCA9PSAnLicpIGdvdG8geXkxNDIwOwotIAkJCWdvdG8geXkxNzI7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXicpIHsKLS0JCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkxNDE4OwotKwkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTE0MjA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY5OwotLQkJCWdvdG8geXkxNDE4OwotKwkJCWdvdG8geXkxNDIwOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnXycpIGdvdG8geXkxNzI7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTQxODsKLSsJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkxNDIwOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NzsKLS0JCQlnb3RvIHl5MTQxODsKLSsJCQlnb3RvIHl5MTQyMDsKLSAJCX0KLSAJfQotLXl5MTQ1MToKLSt5eTE0NTM6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1InKSB7Ci1AQCAtMjExNzMsMTMgKzIxMzcyLDEzIEBAIHl5MTQ1MToKLSAJCQl9IGVsc2UgewotIAkJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCQlpZiAoeXljaCA8PSAnUScpIGdvdG8geXkxNjc7Ci0tCQkJCWdvdG8geXkxNDI1OwotKwkJCQlnb3RvIHl5MTQyNzsKLSAJCQl9Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnYCcpIHsKLSAJCQlpZiAoeXljaCA8PSAnWicpIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ1MnKSBnb3RvIHl5MTQyNjsKLSsJCQkJaWYgKHl5Y2ggPD0gJ1MnKSBnb3RvIHl5MTQyODsKLSAJCQkJZ290byB5eTE2NzsKLSAJCQl9IGVsc2UgewotIAkJCQlpZiAoeXljaCA9PSAnXycpIGdvdG8geXkxNzI7Ci1AQCAtMjExODgsMTUgKzIxMzg3LDE1IEBAIHl5MTQ1MToKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3InKSB7Ci0gCQkJCWlmICh5eWNoIDw9ICdxJykgZ290byB5eTE3NTsKLS0JCQkJZ290byB5eTE0NTc7Ci0rCQkJCWdvdG8geXkxNDU5OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE0NTg7Ci0rCQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE0NjA7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDUyOgotK3l5MTQ1NDoKLSAJeXlhY2NlcHQgPSA0OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUScpIHsKLUBAIC0yMTIxMSw3ICsyMTQxMCw3IEBAIHl5MTQ1MjoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTE0MjE7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTQyMzsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MTkxOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjEyMjAsMTMgKzIxNDE5LDEzIEBAIHl5MTQ1MjoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTkxOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE0NTM7Ci0rCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE0NTU7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTE5MTsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0NTM6Ci0reXkxNDU1OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdSJykgewotQEAgLTIxMjQxLDcgKzIxNDQwLDcgQEAgeXkxNDUzOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1MnKSBnb3RvIHl5MTQyMjsKLSsJCQlpZiAoeXljaCA8PSAnUycpIGdvdG8geXkxNDI0OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjEyNTAsMTMgKzIxNDQ5LDEzIEBAIHl5MTQ1MzoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxNDU0OwotKwkJCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxNDU2OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ1NDoKLSt5eTE0NTY6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0MnKSB7Ci1AQCAtMjEyNzEsNyArMjE0NzAsNyBAQCB5eTE0NTQ6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxNDIzOwotKwkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTE0MjU7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY5OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMTI4MCwxMyArMjE0NzksMTMgQEAgeXkxNDU0OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc3OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTE0NTU7Ci0rCQkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTE0NTc7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NzsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDU1OgotK3l5MTQ1NzoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQCcpIHsKLUBAIC0yMTMwMCwyMiArMjE0OTksMjIgQEAgeXkxNDU1OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTQyNDsKLSsJCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxNDI2OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLS0JCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxNDU2OwotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0NTg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDU2OgotK3l5MTQ1ODoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA9PSAnWScpIGdvdG8geXkxOTc7Ci0gCWlmICh5eWNoID09ICd5JykgZ290byB5eTIxMDsKLSAJZ290byB5eTE3OTsKLS15eTE0NTc6Ci0reXkxNDU5OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdDJykgewotQEAgLTIxMzQ1LDcgKzIxNTQ0LDcgQEAgeXkxNDU3OgotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ1ODoKLSt5eTE0NjA6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJy0nKSB7Ci1AQCAtMjEzNzQsNyArMjE1NzMsNyBAQCB5eTE0NTg6Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDU5OgotK3l5MTQ2MToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLUBAIC0yMTM4OSw3ICsyMTU4OCw3IEBAIHl5MTQ1OToKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTE0Mjg7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTQzMDsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIxMzk4LDEzICsyMTU5NywxMyBAQCB5eTE0NTk6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQ2MDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQ2MjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0NjA6Ci0reXkxNDYyOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdHJykgewotQEAgLTIxNDM0LDMwICsyMTYzMywzMCBAQCB5eTE0NjA6Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDYxOgotK3l5MTQ2MzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnWScpIHsKLSAJCWlmICh5eWNoIDw9ICdAJykgewotIAkJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ1InKSBnb3RvIHl5MTQ3MzsKLSsJCQlpZiAoeXljaCA9PSAnUicpIGdvdG8geXkxNDc1OwotIAkJCWlmICh5eWNoIDw9ICdYJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTQ3NDsKLSsJCQlnb3RvIHl5MTQ3NjsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdyJykgewotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NjsKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdxJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTQ3MzsKLSsJCQlnb3RvIHl5MTQ3NTsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ3knKSBnb3RvIHl5MTQ3NDsKLSsJCQlpZiAoeXljaCA9PSAneScpIGdvdG8geXkxNDc2OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ2MjoKLSt5eTE0NjQ6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0QnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMTQ2Niw3ICsyMTY2NSw3IEBAIHl5MTQ2MjoKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnQycpIGdvdG8geXkxNjY7Ci0tCQkJZ290byB5eTE0Njc7Ci0rCQkJZ290byB5eTE0Njk7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnYycpIHsKLUBAIC0yMTQ3NCwxMiArMjE2NzMsMTIgQEAgeXkxNDYyOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NjsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQ2NzsKLSsJCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxNDY5OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ2MzoKLSt5eTE0NjU6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ04nKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMTQ5NSwxMiArMjE2OTQsMTIgQEAgeXkxNDYzOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NjsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTQ2NDsKLSsJCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNDY2OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ2NDoKLSt5eTE0NjY6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0QnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMTUxNiwxMiArMjE3MTUsMTIgQEAgeXkxNDY0OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE5MTsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxNDY1OwotKwkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTE0Njc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkxOTE7Ci0gCQl9Ci0gCX0KLS15eTE0NjU6Ci0reXkxNDY3OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdBJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotQEAgLTIxNTMxLDEyICsyMTczMCwxMiBAQCB5eTE0NjU6Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxNDY2OwotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0Njg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDY2OgotK3l5MTQ2ODoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnWScpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIxNTU4LDcgKzIxNzU3LDcgQEAgeXkxNDY2OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDY3OgotK3l5MTQ2OToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnTicpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIxNTc0LDEyICsyMTc3MywxMiBAQCB5eTE0Njc6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNDY4OwotKwkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE0NzA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDY4OgotK3l5MTQ3MDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnSScpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIxNTk1LDEyICsyMTc5NCwxMiBAQCB5eTE0Njg6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY4OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnaScpIGdvdG8geXkxNDY5OwotKwkJCWlmICh5eWNoIDw9ICdpJykgZ290byB5eTE0NzE7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDY5OgotK3l5MTQ3MToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnRycpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIxNjE2LDI5ICsyMTgxNSwyOSBAQCB5eTE0Njk6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY5OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnZycpIGdvdG8geXkxNDcwOwotKwkJCWlmICh5eWNoIDw9ICdnJykgZ290byB5eTE0NzI7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY5OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDcwOgotK3l5MTQ3MjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnRycpIHsKLSAJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJCWdvdG8geXkzOwotIAl9IGVsc2UgewotLQkJaWYgKHl5Y2ggPD0gJ0gnKSBnb3RvIHl5MTQ3MTsKLSsJCWlmICh5eWNoIDw9ICdIJykgZ290byB5eTE0NzM7Ci0gCQlpZiAoeXljaCAhPSAnaCcpIGdvdG8geXkzOwotIAl9Ci0teXkxNDcxOgotK3l5MTQ3MzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnVCcpIGdvdG8geXkxNDcyOwotKwlpZiAoeXljaCA9PSAnVCcpIGdvdG8geXkxNDc0OwotIAlpZiAoeXljaCAhPSAndCcpIGdvdG8geXk1NjsKLS15eTE0NzI6Ci0reXkxNDc0OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWdvdG8geXkxNDE4OwotLXl5MTQ3MzoKLSsJZ290byB5eTE0MjA7Ci0reXkxNDc1OgotIAl5eWFjY2VwdCA9IDU7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICcvJykgewotQEAgLTIxNjY2LDcgKzIxODY1LDcgQEAgeXkxNDczOgotIAkJCQlpZiAoeXljaCA8PSAnOScpIGdvdG8geXkyMjA7Ci0gCQkJCWdvdG8geXkyMTg7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ0MnKSBnb3RvIHl5MTQ3NTsKLSsJCQkJaWYgKHl5Y2ggPT0gJ0MnKSBnb3RvIHl5MTQ3NzsKLSAJCQkJZ290byB5eTE2NzsKLSAJCQl9Ci0gCQl9IGVsc2UgewotQEAgLTIxNjc0LDEzICsyMTg3MywxMyBAQCB5eTE0NzM6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTIxODsKLSAJCQkJZ290byB5eTE2NzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnYycpIGdvdG8geXkxNDc1OwotKwkJCQlpZiAoeXljaCA8PSAnYycpIGdvdG8geXkxNDc3OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJCWdvdG8geXkyMTg7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDc0OgotK3l5MTQ3NjoKLSAJeXlhY2NlcHQgPSA1OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnLScpIHsKLUBAIC0yMTcwNSw3ICsyMTkwNCw3IEBAIHl5MTQ3NDoKLSAJCQlnb3RvIHl5MjE4OwotIAkJfQotIAl9Ci0teXkxNDc1OgotK3l5MTQ3NzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnSCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIxNzI3LDcgKzIxOTI2LDcgQEAgeXkxNDc1OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDc2OgotK3l5MTQ3ODoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnWCcpIHsKLUBAIC0yMTc0NCwxNCArMjE5NDMsMTQgQEAgeXkxNDc2OgotIAkJCQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxNzI7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoID09ICdSJykgZ290byB5eTE0NzM7Ci0rCQkJCWlmICh5eWNoID09ICdSJykgZ290byB5eTE0NzU7Ci0gCQkJCWdvdG8geXkxNjY7Ci0gCQkJfQotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdZJykgZ290byB5eTE0NzQ7Ci0rCQkJCWlmICh5eWNoIDw9ICdZJykgZ290byB5eTE0NzY7Ci0gCQkJCWdvdG8geXkxNjY7Ci0gCQkJfSBlbHNlIHsKLSAJCQkJaWYgKHl5Y2ggPT0gJ18nKSBnb3RvIHl5MTcyOwotQEAgLTIxNzU5LDE2ICsyMTk1OCwxNiBAQCB5eTE0NzY6Ci0gCQkJfQotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAneCcpIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ3InKSBnb3RvIHl5MTQ4ODsKLSsJCQkJaWYgKHl5Y2ggPT0gJ3InKSBnb3RvIHl5MTQ5MDsKLSAJCQkJZ290byB5eTE3MTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAneScpIGdvdG8geXkxNDg5OwotKwkJCQlpZiAoeXljaCA8PSAneScpIGdvdG8geXkxNDkxOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ3NzoKLSt5eTE0Nzk6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0MnKSB7Ci1AQCAtMjE3ODMsNyArMjE5ODIsNyBAQCB5eTE0Nzc6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxNDY3OwotKwkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTE0Njk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMTc5MiwxMyArMjE5OTEsMTMgQEAgeXkxNDc3OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTE0ODI7Ci0rCQkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTE0ODQ7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDc4OgotK3l5MTQ4MDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnTScpIHsKLUBAIC0yMTgxMyw3ICsyMjAxMiw3IEBAIHl5MTQ3ODoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE0NjQ7Ci0rCQkJaWYgKHl5Y2ggPD0gJ04nKSBnb3RvIHl5MTQ2NjsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIxODIyLDEzICsyMjAyMSwxMyBAQCB5eTE0Nzg6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzE7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTQ3OTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTQ4MTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0Nzk6Ci0reXkxNDgxOgotIAl5eWFjY2VwdCA9IDQ7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdDJykgewotQEAgLTIxODQzLDcgKzIyMDQyLDcgQEAgeXkxNDc5OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTQ2NTsKLSsJCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxNDY3OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkxOTE7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMTg1MiwxMyArMjIwNTEsMTMgQEAgeXkxNDc5OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkxOTE7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQ4MDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQ4MjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MTkxOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ4MDoKLSt5eTE0ODI6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0AnKSB7Ci1AQCAtMjE4NzIsMTggKzIyMDcxLDE4IEBAIHl5MTQ4MDoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdBJykgZ290byB5eTE0NjY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTQ2ODsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0ODE7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQ4MzsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0ODE6Ci0reXkxNDgzOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdYJykgewotQEAgLTIxOTEzLDcgKzIyMTEyLDcgQEAgeXkxNDgxOgotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ4MjoKLSt5eTE0ODQ6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ00nKSB7Ci1AQCAtMjE5MjgsNyArMjIxMjcsNyBAQCB5eTE0ODI6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnTicpIGdvdG8geXkxNDY4OwotKwkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE0NzA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMTkzNywxMyArMjIxMzYsMTMgQEAgeXkxNDgyOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE0ODM7Ci0rCQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE0ODU7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDgzOgotK3l5MTQ4NToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnSCcpIHsKLUBAIC0yMTk1OCw3ICsyMjE1Nyw3IEBAIHl5MTQ4MzoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdJJykgZ290byB5eTE0Njk7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0knKSBnb3RvIHl5MTQ3MTsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIxOTY3LDEzICsyMjE2NiwxMyBAQCB5eTE0ODM6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzY7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2knKSBnb3RvIHl5MTQ4NDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2knKSBnb3RvIHl5MTQ4NjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc2OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0ODQ6Ci0reXkxNDg2OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdGJykgewotQEAgLTIxOTg4LDcgKzIyMTg3LDcgQEAgeXkxNDg0OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0cnKSBnb3RvIHl5MTQ3MDsKLSsJCQlpZiAoeXljaCA8PSAnRycpIGdvdG8geXkxNDcyOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2OTsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjE5OTcsMTMgKzIyMTk2LDEzIEBAIHl5MTQ4NDoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnZycpIGdvdG8geXkxNDg1OwotKwkJCQlpZiAoeXljaCA8PSAnZycpIGdvdG8geXkxNDg3OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzc7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ4NToKLSt5eTE0ODc6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0cnKSB7Ci1AQCAtMjIwMTcsMTggKzIyMjE2LDE4IEBAIHl5MTQ4NToKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotLQkJCWlmICh5eWNoIDw9ICdIJykgZ290byB5eTE0NzE7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0gnKSBnb3RvIHl5MTQ3MzsKLSAJCQlpZiAoeXljaCA9PSAnXycpIGdvdG8geXkxNzI7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICdoJykgZ290byB5eTE0ODY7Ci0rCQkJaWYgKHl5Y2ggPT0gJ2gnKSBnb3RvIHl5MTQ4ODsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0ODY6Ci0reXkxNDg4OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdUJykgZ290byB5eTE0NzI7Ci0rCWlmICh5eWNoID09ICdUJykgZ290byB5eTE0NzQ7Ci0gCWlmICh5eWNoICE9ICd0JykgZ290byB5eTE3OTsKLSAJeXlhY2NlcHQgPSAzMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC0yMjAzNywxMyArMjIyMzYsMTMgQEAgeXkxNDg2OgotIAl9Ci0gCWlmICh5eWNoIDw9ICcuJykgewotIAkJaWYgKHl5Y2ggPT0gJy0nKSBnb3RvIHl5MTcyOwotLQkJZ290byB5eTE0MTg7Ci0rCQlnb3RvIHl5MTQyMDsKLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTE3MjsKLSAJCWlmICh5eWNoID09ICdfJykgZ290byB5eTE3MjsKLS0JCWdvdG8geXkxNDE4OwotKwkJZ290byB5eTE0MjA7Ci0gCX0KLS15eTE0ODg6Ci0reXkxNDkwOgotIAl5eWFjY2VwdCA9IDU7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICc5JykgewotQEAgLTIyMDcxLDcgKzIyMjcwLDcgQEAgeXkxNDg4OgotIAkJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkyMTg7Ci0gCQkJCWdvdG8geXkxNjc7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ0MnKSBnb3RvIHl5MTQ3NTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ0MnKSBnb3RvIHl5MTQ3NzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCQlnb3RvIHl5MjE4OwotIAkJCX0KLUBAIC0yMjA4MSwxMyArMjIyODAsMTMgQEAgeXkxNDg4OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkyMTg7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2MnKSBnb3RvIHl5MTQ5MDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2MnKSBnb3RvIHl5MTQ5MjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MjE4OwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ4OToKLSt5eTE0OTE6Ci0gCXl5YWNjZXB0ID0gNTsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJy4nKSB7Ci1AQCAtMjIxMjIsNyArMjIzMjEsNyBAQCB5eTE0ODk6Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDkwOgotK3l5MTQ5MjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnRycpIHsKLUBAIC0yMjE1Miw3ICsyMjM1MSw3IEBAIHl5MTQ5MDoKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0OTE6Ci0reXkxNDkzOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdXJykgewotIAkJaWYgKHl5Y2ggPD0gJ04nKSB7Ci1AQCAtMjIxNjAsMjkgKzIyMzU5LDI5IEBAIHl5MTQ5MToKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjY7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdPJykgZ290byB5eTE0OTk7Ci0rCQkJaWYgKHl5Y2ggPD0gJ08nKSBnb3RvIHl5MTUwMTsKLSAJCQlpZiAoeXljaCA8PSAnVScpIGdvdG8geXkxNjY7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1YnKSBnb3RvIHl5MTUwMDsKLS0JCQlnb3RvIHl5MTQ5NzsKLSsJCQlpZiAoeXljaCA8PSAnVicpIGdvdG8geXkxNTAyOwotKwkJCWdvdG8geXkxNDk5OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ28nKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTY2OwotLQkJCWdvdG8geXkxNDk5OwotKwkJCWdvdG8geXkxNTAxOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAndicpIHsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3UnKSBnb3RvIHl5MTY2OwotLQkJCQlnb3RvIHl5MTUwMDsKLSsJCQkJZ290byB5eTE1MDI7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3cnKSBnb3RvIHl5MTQ5NzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3cnKSBnb3RvIHl5MTQ5OTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0OTI6Ci0reXkxNDk0OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdYJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjIxOTEsNyArMjIzOTAsNyBAQCB5eTE0OTI6Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1cnKSBnb3RvIHl5MTY2OwotLQkJCWdvdG8geXkxNDk2OwotKwkJCWdvdG8geXkxNDk4OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ3cnKSB7Ci1AQCAtMjIxOTksMTIgKzIyMzk4LDEyIEBAIHl5MTQ5MjoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjY7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICd4JykgZ290byB5eTE0OTY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3gnKSBnb3RvIHl5MTQ5ODsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjY7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0OTM6Ci0reXkxNDk1OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdOJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjIyMjAsMTIgKzIyNDE5LDEyIEBAIHl5MTQ5MzoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjY7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE0OTQ7Ci0rCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTQ5NjsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjY7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0OTQ6Ci0reXkxNDk2OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdUJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjIyNDEsMTIgKzIyNDQwLDEyIEBAIHl5MTQ5NDoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTE0OTU7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQ5NzsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0OTU6Ci0reXkxNDk3OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdIJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjIyNjgsNyArMjI0NjcsNyBAQCB5eTE0OTU6Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0OTY6Ci0reXkxNDk4OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdUJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjIyNzcsNyArMjI0NzYsNyBAQCB5eTE0OTY6Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1MnKSBnb3RvIHl5MTY3OwotLQkJCWdvdG8geXkxNDI2OwotKwkJCWdvdG8geXkxNDI4OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ3MnKSB7Ci1AQCAtMjIyODUsMjEgKzIyNDg0LDIyIEBAIHl5MTQ5NjoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTE0MjY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQyODsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0OTc6Ci0reXkxNDk5OgotIAkrK1lZQ1VSU09SOwotIAlpZiAoKHl5Y2ggPSAqWVlDVVJTT1IpIDw9ICdAJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotLQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTQ5ODsKLSsJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE1MDA7Ci0gCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCX0KLS15eTE0OTg6Ci0reXkxNTAwOgotKyNsaW5lIDk4MiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgibm93Iik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtMjIzMDcsNyArMjI1MDcsOCBAQCB5eTE0OTg6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1JFTEFUSVZFOwotIAl9Ci0teXkxNDk5OgotKyNsaW5lIDIyNTExICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotK3l5MTUwMToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnTicpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIyMzE2LDcgKzIyNTE3LDcgQEAgeXkxNDk5OgotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdNJykgZ290byB5eTE2NzsKLS0JCQlnb3RvIHl5MTUwNTsKLSsJCQlnb3RvIHl5MTUwNzsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdtJykgewotQEAgLTIyMzI0LDEyICsyMjUyNSwxMiBAQCB5eTE0OTk6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNTA1OwotKwkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE1MDc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNTAwOgotK3l5MTUwMjoKLSAJeXlhY2NlcHQgPSA1OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnLycpIHsKLUBAIC0yMjM2NCwxMyArMjI1NjUsMTMgQEAgeXkxNTAwOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkyMTg7Ci0gCQkJCWdvdG8geXkxNjc7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTUwMTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTUwMzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCQlnb3RvIHl5MjE4OwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTUwMToKLSt5eTE1MDM6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ00nKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMjM4NiwxMiArMjI1ODcsMTIgQEAgeXkxNTAxOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2ODsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ20nKSBnb3RvIHl5MTUwMjsKLSsJCQlpZiAoeXljaCA8PSAnbScpIGdvdG8geXkxNTA0OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2ODsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTUwMjoKLSt5eTE1MDQ6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0InKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMjQwNywzNiArMjI2MDgsMzcgQEAgeXkxNTAyOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2OTsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2InKSBnb3RvIHl5MTUwMzsKLSsJCQlpZiAoeXljaCA8PSAnYicpIGdvdG8geXkxNTA1OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2OTsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTUwMzoKLSt5eTE1MDU6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0QnKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQlnb3RvIHl5MzsKLSAJfSBlbHNlIHsKLS0JCWlmICh5eWNoIDw9ICdFJykgZ290byB5eTE1MDQ7Ci0rCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNTA2OwotIAkJaWYgKHl5Y2ggIT0gJ2UnKSBnb3RvIHl5MzsKLSAJfQotLXl5MTUwNDoKLSt5eTE1MDY6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPT0gJ1InKSBnb3RvIHl5MjI5OwotIAlpZiAoeXljaCA9PSAncicpIGdvdG8geXkyMjk7Ci0gCWdvdG8geXk1NjsKLS15eTE1MDU6Ci0reXkxNTA3OgotIAkrK1lZQ1VSU09SOwotIAlpZiAoKHl5Y2ggPSAqWVlDVVJTT1IpIDw9ICdAJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY4OwotLQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTUwNjsKLSsJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE1MDg7Ci0gCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjg7Ci0gCX0KLS15eTE1MDY6Ci0reXkxNTA4OgotKyNsaW5lIDk5MSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgibm9vbiIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTIyNDQ3LDcgKzIyNjQ5LDggQEAgeXkxNTA2OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9SRUxBVElWRTsKLSAJfQotLXl5MTUwNzoKLSsjbGluZSAyMjY1MyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSt5eTE1MDk6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1YnKSB7Ci1AQCAtMjI0NjUsMTUgKzIyNjY4LDE1IEBAIHl5MTUwNzoKLSAJCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE2NjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxNDk5OwotKwkJCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxNTAxOwotIAkJCQlpZiAoeXljaCA8PSAnVScpIGdvdG8geXkxNjY7Ci0tCQkJCWdvdG8geXkxNTAwOwotKwkJCQlnb3RvIHl5MTUwMjsKLSAJCQl9Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnbicpIHsKLSAJCQlpZiAoeXljaCA8PSAnXicpIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ1cnKSBnb3RvIHl5MTQ5NzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ1cnKSBnb3RvIHl5MTQ5OTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9IGVsc2UgewotQEAgLTIyNDgzLDE3ICsyMjY4NiwxNyBAQCB5eTE1MDc6Ci0gCQkJfQotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAndicpIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTUxNDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTUxNjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3UnKSBnb3RvIHl5MTcxOwotLQkJCQlnb3RvIHl5MTUxNTsKLSsJCQkJZ290byB5eTE1MTc7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3cnKSBnb3RvIHl5MTUxMzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3cnKSBnb3RvIHl5MTUxNTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE1MDg6Ci0reXkxNTEwOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdXJykgewotQEAgLTIyNTA4LDcgKzIyNzExLDcgQEAgeXkxNTA4OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1gnKSBnb3RvIHl5MTQ5NjsKLSsJCQlpZiAoeXljaCA8PSAnWCcpIGdvdG8geXkxNDk4OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NjsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjI1MTcsMTMgKzIyNzIwLDEzIEBAIHl5MTUwODoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3MTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAneCcpIGdvdG8geXkxNTEyOwotKwkJCQlpZiAoeXljaCA8PSAneCcpIGdvdG8geXkxNTE0OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTUwOToKLSt5eTE1MTE6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ00nKSB7Ci1AQCAtMjI1MzgsNyArMjI3NDEsNyBAQCB5eTE1MDk6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnTicpIGdvdG8geXkxNDk0OwotKwkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE0OTY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMjU0NywxMyArMjI3NTAsMTMgQEAgeXkxNTA5OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE1MTA7Ci0rCQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE1MTI7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNTEwOgotK3l5MTUxMjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLUBAIC0yMjU2OCw3ICsyMjc3MSw3IEBAIHl5MTUxMDoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTE0OTU7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTQ5NzsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIyNTc3LDEzICsyMjc4MCwxMyBAQCB5eTE1MTA6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTUxMTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTUxMzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE1MTE6Ci0reXkxNTEzOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdHJykgewotQEAgLTIyNjEzLDcgKzIyODE2LDcgQEAgeXkxNTExOgotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTUxMjoKLSt5eTE1MTQ6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1MnKSB7Ci1AQCAtMjI2MjgsNyArMjI4MzEsNyBAQCB5eTE1MTI6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxNDI2OwotKwkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTE0Mjg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMjYzNywzNiArMjI4NDAsMzYgQEAgeXkxNTEyOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTE0NTg7Ci0rCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTE0NjA7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNTEzOgotK3l5MTUxNToKLSAJeXlhY2NlcHQgPSAzMTsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJy8nKSB7Ci0gCQlpZiAoeXljaCA8PSAnLCcpIHsKLSAJCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0tCQkJZ290byB5eTE0OTg7Ci0rCQkJZ290byB5eTE1MDA7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICcuJykgZ290byB5eTE0OTg7Ci0rCQkJaWYgKHl5Y2ggPT0gJy4nKSBnb3RvIHl5MTUwMDsKLSAJCQlnb3RvIHl5MTcyOwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ14nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MTQ5ODsKLSsJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkxNTAwOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLS0JCQlnb3RvIHl5MTQ5ODsKLSsJCQlnb3RvIHl5MTUwMDsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ18nKSBnb3RvIHl5MTcyOwotLQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE0OTg7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTUwMDsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0tCQkJZ290byB5eTE0OTg7Ci0rCQkJZ290byB5eTE1MDA7Ci0gCQl9Ci0gCX0KLS15eTE1MTQ6Ci0reXkxNTE2OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdNJykgewotQEAgLTIyNjgxLDcgKzIyODg0LDcgQEAgeXkxNTE0OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ04nKSBnb3RvIHl5MTUwNTsKLSsJCQlpZiAoeXljaCA8PSAnTicpIGdvdG8geXkxNTA3OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjI2OTAsMTMgKzIyODkzLDEzIEBAIHl5MTUxNDoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNTIwOwotKwkJCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNTIyOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTUxNToKLSt5eTE1MTc6Ci0gCXl5YWNjZXB0ID0gNTsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJzknKSB7Ci1AQCAtMjI3MjQsNyArMjI5MjcsNyBAQCB5eTE1MTU6Ci0gCQkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTIxODsKLSAJCQkJZ290byB5eTE2NzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNTAxOwotKwkJCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNTAzOwotIAkJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJCWdvdG8geXkyMTg7Ci0gCQkJfQotQEAgLTIyNzM0LDEzICsyMjkzNywxMyBAQCB5eTE1MTU6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTIxODsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNTE2OwotKwkJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNTE4OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkyMTg7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNTE2OgotK3l5MTUxODoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnTCcpIHsKLUBAIC0yMjc1NSw3ICsyMjk1OCw3IEBAIHl5MTUxNjoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdNJykgZ290byB5eTE1MDI7Ci0rCQkJaWYgKHl5Y2ggPD0gJ00nKSBnb3RvIHl5MTUwNDsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIyNzY0LDEzICsyMjk2NywxMyBAQCB5eTE1MTY6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzY7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ20nKSBnb3RvIHl5MTUxNzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ20nKSBnb3RvIHl5MTUxOTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc2OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE1MTc6Ci0reXkxNTE5OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdBJykgewotQEAgLTIyNzg1LDcgKzIyOTg4LDcgQEAgeXkxNTE3OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0InKSBnb3RvIHl5MTUwMzsKLSsJCQlpZiAoeXljaCA8PSAnQicpIGdvdG8geXkxNTA1OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2OTsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjI3OTQsMTMgKzIyOTk3LDEzIEBAIHl5MTUxNzoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnYicpIGdvdG8geXkxNTE4OwotKwkJCQlpZiAoeXljaCA8PSAnYicpIGdvdG8geXkxNTIwOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzc7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTUxODoKLSt5eTE1MjA6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0QnKSB7Ci1AQCAtMjI4MTQsNDQgKzIzMDE3LDQ0IEBAIHl5MTUxODoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotLQkJCWlmICh5eWNoIDw9ICdFJykgZ290byB5eTE1MDQ7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0UnKSBnb3RvIHl5MTUwNjsKLSAJCQlpZiAoeXljaCA9PSAnXycpIGdvdG8geXkxNzI7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICdlJykgZ290byB5eTE1MTk7Ci0rCQkJaWYgKHl5Y2ggPT0gJ2UnKSBnb3RvIHl5MTUyMTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE1MTk6Ci0reXkxNTIxOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoID09ICdSJykgZ290byB5eTIyOTsKLSAJaWYgKHl5Y2ggPT0gJ3InKSBnb3RvIHl5MzQxOwotIAlnb3RvIHl5MTc5OwotLXl5MTUyMDoKLSt5eTE1MjI6Ci0gCXl5YWNjZXB0ID0gMzI7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICcvJykgewotIAkJaWYgKHl5Y2ggPD0gJywnKSB7Ci0gCQkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotLQkJCWdvdG8geXkxNTA2OwotKwkJCWdvdG8geXkxNTA4OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAnLicpIGdvdG8geXkxNTA2OwotKwkJCWlmICh5eWNoID09ICcuJykgZ290byB5eTE1MDg7Ci0gCQkJZ290byB5eTE3MjsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdeJykgewotLQkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTE1MDY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MTUwODsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjg7Ci0tCQkJZ290byB5eTE1MDY7Ci0rCQkJZ290byB5eTE1MDg7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdfJykgZ290byB5eTE3MjsKLS0JCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkxNTA2OwotKwkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE1MDg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc2OwotLQkJCWdvdG8geXkxNTA2OwotKwkJCWdvdG8geXkxNTA4OwotIAkJfQotIAl9Ci0teXkxNTIxOgotK3l5MTUyMzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIyODY3LDEyICsyMzA3MCwxMiBAQCB5eTE1MjE6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY2OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxNTIyOwotKwkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE1MjQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNTIyOgotK3l5MTUyNDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnVCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIyODg4LDEyICsyMzA5MSwxMiBAQCB5eTE1MjI6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNTIzOwotKwkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTE1MjU7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNTIzOgotK3l5MTUyNToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnRScpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIyOTA5LDEyICsyMzExMiwxMiBAQCB5eTE1MjM6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY4OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNTI0OwotKwkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE1MjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNTI0OgotK3l5MTUyNjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnUicpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIyOTMwLDMyICsyMzEzMywzMyBAQCB5eTE1MjQ6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY5OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxNTI1OwotKwkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE1Mjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY5OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNTI1OgotK3l5MTUyNzoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQycpIHsKLSAJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJCWdvdG8geXkzOwotIAl9IGVsc2UgewotLQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTUyNjsKLSsJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTE1Mjg7Ci0gCQlpZiAoeXljaCAhPSAnZCcpIGdvdG8geXkzOwotIAl9Ci0teXkxNTI2OgotK3l5MTUyODoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnQScpIGdvdG8geXkxNTI3OwotKwlpZiAoeXljaCA9PSAnQScpIGdvdG8geXkxNTI5OwotIAlpZiAoeXljaCAhPSAnYScpIGdvdG8geXk1NjsKLS15eTE1Mjc6Ci0reXkxNTI5OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdZJykgZ290byB5eTE1Mjg7Ci0rCWlmICh5eWNoID09ICdZJykgZ290byB5eTE1MzA7Ci0gCWlmICh5eWNoICE9ICd5JykgZ290byB5eTU2OwotLXl5MTUyODoKLSt5eTE1MzA6Ci0gCSsrWVlDVVJTT1I7Ci0teXkxNTI5OgotK3l5MTUzMToKLSsjbGluZSA5NzAgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlERUJVR19PVVRQVVQoInllc3RlcmRheSIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTIyOTY2LDcgKzIzMTcwLDggQEAgeXkxNTI5OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9SRUxBVElWRTsKLSAJfQotLXl5MTUzMDoKLSsjbGluZSAyMzE3NCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSt5eTE1MzI6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1InKSB7Ci1AQCAtMjI5ODEsNyArMjMxODYsNyBAQCB5eTE1MzA6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnUycpIGdvdG8geXkxNTIyOwotKwkJCWlmICh5eWNoIDw9ICdTJykgZ290byB5eTE1MjQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMjk5MCwxMyArMjMxOTUsMTMgQEAgeXkxNTMwOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE1MzE7Ci0rCQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE1MzM7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNTMxOgotK3l5MTUzMzoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLUBAIC0yMzAxMSw3ICsyMzIxNiw3IEBAIHl5MTUzMToKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTE1MjM7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTUyNTsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIzMDIwLDEzICsyMzIyNSwxMyBAQCB5eTE1MzE6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTUzMjsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTUzNDsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE1MzI6Ci0reXkxNTM0OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdEJykgewotQEAgLTIzMDQxLDcgKzIzMjQ2LDcgQEAgeXkxNTMyOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0UnKSBnb3RvIHl5MTUyNDsKLSsJCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNTI2OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjMwNTAsMTMgKzIzMjU1LDEzIEBAIHl5MTUzMjoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNTMzOwotKwkJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNTM1OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTUzMzoKLSt5eTE1MzU6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1EnKSB7Ci1AQCAtMjMwNzEsNyArMjMyNzYsNyBAQCB5eTE1MzM6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnUicpIGdvdG8geXkxNTI1OwotKwkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTE1Mjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY5OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMzA4MCwxMyArMjMyODUsMTMgQEAgeXkxNTMzOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc3OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE1MzQ7Ci0rCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE1MzY7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NzsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNTM0OgotK3l5MTUzNjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQycpIHsKLUBAIC0yMzEwMCwyMSArMjMzMDUsMjEgQEAgeXkxNTM0OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTUyNjsKLSsJCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxNTI4OwotIAkJCWlmICh5eWNoID09ICdfJykgZ290byB5eTE3MjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ2QnKSBnb3RvIHl5MTUzNTsKLSsJCQlpZiAoeXljaCA9PSAnZCcpIGdvdG8geXkxNTM3OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3ODsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTUzNToKLSt5eTE1Mzc6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ0EnKSBnb3RvIHl5MTUyNzsKLSsJaWYgKHl5Y2ggPT0gJ0EnKSBnb3RvIHl5MTUyOTsKLSAJaWYgKHl5Y2ggIT0gJ2EnKSBnb3RvIHl5MTc5OwotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdZJykgZ290byB5eTE1Mjg7Ci0rCWlmICh5eWNoID09ICdZJykgZ290byB5eTE1MzA7Ci0gCWlmICh5eWNoICE9ICd5JykgZ290byB5eTE3OTsKLSAJeXlhY2NlcHQgPSAzMzsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC0yMzEyMywxMyArMjMzMjgsMTQgQEAgeXkxNTM1OgotIAl9Ci0gCWlmICh5eWNoIDw9ICcuJykgewotIAkJaWYgKHl5Y2ggPT0gJy0nKSBnb3RvIHl5MTcyOwotLQkJZ290byB5eTE1Mjk7Ci0rCQlnb3RvIHl5MTUzMTsKLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTE3MjsKLSAJCWlmICh5eWNoID09ICdfJykgZ290byB5eTE3MjsKLS0JCWdvdG8geXkxNTI5OwotKwkJZ290byB5eTE1MzE7Ci0gCX0KLSB9Ci0rI2xpbmUgMTc3MiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCi0gfQotIAotZGlmZiAtLWdpdCBhL2V4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIGIvZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUKLWluZGV4IDc0ZDllYTMuLmYyNmUyNzYgMTAwNjQ0Ci0tLS0gYS9leHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZQotKysrIGIvZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUKLUBAIC05MzEsOCArOTMxLDggQEAgaXNvd2VlayAgICAgICAgICA9IHllYXI0ICItIj8gIlciIHdlZWtvZnllYXI7Ci0gZXhpZiAgICAgICAgICAgICA9IHllYXI0ICI6IiBtb250aGx6ICI6IiBkYXlseiAiICIgaG91cjI0bHogIjoiIG1pbnV0ZWx6ICI6IiBzZWNvbmRsejsKLSBmaXJzdGRheW9mICAgICAgID0gJ2ZpcnN0IGRheSBvZic7Ci0gbGFzdGRheW9mICAgICAgICA9ICdsYXN0IGRheSBvZic7Ci0tYmFja29mICAgICAgICAgICA9ICdiYWNrIG9mICcgaG91cjI0IHNwYWNlPyBtZXJpZGlhbj87Ci0tZnJvbnRvZiAgICAgICAgICA9ICdmcm9udCBvZiAnIGhvdXIyNCBzcGFjZT8gbWVyaWRpYW4/OwotK2JhY2tvZiAgICAgICAgICAgPSAnYmFjayBvZiAnIGhvdXIyNCAoc3BhY2U/IG1lcmlkaWFuKT87Ci0rZnJvbnRvZiAgICAgICAgICA9ICdmcm9udCBvZiAnIGhvdXIyNCAoc3BhY2U/IG1lcmlkaWFuKT87Ci0gCi0gLyogQ29tbW9uIExvZyBGb3JtYXQ6IDEwL09jdC8yMDAwOjEzOjU1OjM2IC0wNzAwICovCi0gY2xmICAgICAgICAgICAgICA9IGRheSAiLyIgbW9udGhhYmJyICIvIiB5ZWFyNCAiOiIgaG91cjI0bHogIjoiIG1pbnV0ZWx6ICI6IiBzZWNvbmRseiBzcGFjZSB0emNvcnJlY3Rpb247Ci1kaWZmIC0tZ2l0IGEvZXh0L2RhdGUvdGVzdHMvYnVnNTM0MzdfdmFyMy5waHB0IGIvZXh0L2RhdGUvdGVzdHMvYnVnNTM0MzdfdmFyMy5waHB0Ci1pbmRleCA4ZjQ4YjFiLi44ZGNkNGM4IDEwMDY0NAotLS0tIGEvZXh0L2RhdGUvdGVzdHMvYnVnNTM0MzdfdmFyMy5waHB0Ci0rKysgYi9leHQvZGF0ZS90ZXN0cy9idWc1MzQzN192YXIzLnBocHQKLUBAIC00MCw3ICs0MCw3IEBAIG9iamVjdChEYXRlSW50ZXJ2YWwpIyVkICgxNikgewotICAgWyJzcGVjaWFsX2Ftb3VudCJdPT4KLSAgIGludCgtMSkKLSAgIFsiaGF2ZV93ZWVrZGF5X3JlbGF0aXZlIl09PgotLSAgaW50KDkpCi0rICBpbnQoMCkKLSAgIFsiaGF2ZV9zcGVjaWFsX3JlbGF0aXZlIl09PgotICAgaW50KDApCi0gICBbImYiXT0+Ci1kaWZmIC0tZ2l0IGEvZXh0L3dkZHgvdGVzdHMvYnVnNzUwNTUucGhwdCBiL2V4dC93ZGR4L3Rlc3RzL2J1Zzc1MDU1LnBocHQKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4yOTU2Mjg0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9leHQvd2RkeC90ZXN0cy9idWc3NTA1NS5waHB0Ci1AQCAtMCwwICsxLDIwIEBACi0rLS1URVNULS0KLStCdWcgIzc1MDU1IE91dC1PZi1Cb3VuZHMgUmVhZCBpbiB0aW1lbGliX21lcmlkaWFuKCkKLSstLVNLSVBJRi0tCi0rPD9waHAgaWYgKCFleHRlbnNpb25fbG9hZGVkKCJ3ZGR4IikpIHByaW50ICJza2lwIjsgPz4KLSstLUZJTEUtLQotKzw/cGhwCi0rCi0rJGZpbGVfc3RyID0gZGlybmFtZShfX0ZJTEVfXykgLiAiL2J1Zzc1MDU1LndkZHgiOwotKwotKyR3ZGR4X3N0ciA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlX3N0cik7Ci0rcHJpbnQgc3RybGVuKCR3ZGR4X3N0cikgLiAiIGJ5dGVzIHJlYWQuXG4iOwotKwotK3Zhcl9kdW1wKHdkZHhfZGVzZXJpYWxpemUoJHdkZHhfc3RyKSk7Ci0rPz4KLSstLUVYUEVDVC0tCi0rMzIzIGJ5dGVzIHJlYWQuCi0rYXJyYXkoMSkgewotKyAgWyJhRGF0ZVRpbWUiXT0+Ci0rICBzdHJpbmcoMTIpICJmck9OdCBvZiAwIDAiCi0rfQotZGlmZiAtLWdpdCBhL2V4dC93ZGR4L3Rlc3RzL2J1Zzc1MDU1LndkZHggYi9leHQvd2RkeC90ZXN0cy9idWc3NTA1NS53ZGR4Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uNjQ5MzM1MgotLS0tIC9kZXYvbnVsbAotKysrIGIvZXh0L3dkZHgvdGVzdHMvYnVnNzUwNTUud2RkeAotQEAgLTAsMCArMSwxMyBAQAotKzw/eG1sIHZlcnNpb249JzEuMCc/PgotKzwhRE9DVFlQRSB3ZGR4UGFja2V0IFNZU1RFTSAnd2RkeF8wMTAwLmR0ZCc+Ci0rPHdkZHhQYWNrZXQgdmVyc2lvbj0nMS4wJz4KLSs8aGVhZGVyLz4KLSsJPGRhdGE+Ci0rICAgICAgICAJPHN0cnVjdD4KLSsgICAgICAgICAgICAgICAgICAgIDx2YXIgbmFtZT0nYURhdGVUaW1lJz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgPGRhdGVUaW1lPmZyT050IG9mIDAgMDwvZGF0ZVRpbWU+Ci0rICAgICAgICAgICAgICAgICAgICAgPC92YXI+Ci0rICAgICAgICAgICAgICAgIDwvc3RydWN0PgotKwk8L2RhdGE+Ci0rPC93ZGR4UGFja2V0PgotKwotLS0gCi0yLjExLjAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC03LjEuOS9jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAtNy4xLjkvY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5YzMzNGYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC03LjEuOS9jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLVtQQVRDSF0gY29uZmlnLm00OiBjaGFuZ2UgQUNfVFJZX1JVTiB0byBBQ19UUllfTElOSwotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotQUNfVFJZX1JVTiBpcyBub3Qgc3VpdGFibGUgZm9yIGNyb3NzLWNvbXBpbGUKLQotU2lnbmVkLW9mZi1ieTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgotLS0tCi0gZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNCB8IDMxICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2V4dC9maWxlaW5mby9jb25maWcubTQgYi9leHQvZmlsZWluZm8vY29uZmlnLm00Ci1pbmRleCA3ZTk4ZDYyLi44YThlYTBlIDEwMDY0NAotLS0tIGEvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNAotKysrIGIvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNAotQEAgLTE0LDMxICsxNCwxMiBAQCBpZiB0ZXN0ICIkUEhQX0ZJTEVJTkZPIiAhPSAibm8iOyB0aGVuCi0gICAgIGxpYm1hZ2ljL3JlYWRjZGYuYyBsaWJtYWdpYy9zb2Z0bWFnaWMuYyIKLSAKLSAgIEFDX01TR19DSEVDS0lORyhbZm9yIHN0cmNhc2VzdHJdKQotLSAgQUNfVFJZX1JVTihbCi0tI2luY2x1ZGUgPHN0cmluZy5oPgotLSNpbmNsdWRlIDxzdHJpbmdzLmg+Ci0tI2luY2x1ZGUgPHN0ZGxpYi5oPgotLQotLWludCBtYWluKHZvaWQpCi0tewotLSAgICAgICAgY2hhciAqczAsICpzMSwgKnJldDsKLS0KLS0gICAgICAgIHMwID0gKGNoYXIgKikgbWFsbG9jKDQyKTsKLS0gICAgICAgIHMxID0gKGNoYXIgKikgbWFsbG9jKDgpOwotLQotLSAgICAgICAgbWVtc2V0KHMwLCAnWCcsIDQyKTsKLS0gICAgICAgIHMwWzI0XSA9ICdZJzsKLS0gICAgICAgIHMwWzI2XSA9ICdaJzsKLS0gICAgICAgIHMwWzQxXSA9ICdcMCc7Ci0tICAgICAgICBtZW1zZXQoczEsICd4JywgOCk7Ci0tICAgICAgICBzMVswXSA9ICd5JzsKLS0gICAgICAgIHMxWzJdID0gJ1onOwotLSAgICAgICAgczFbN10gPSAnXDAnOwotLQotLSAgICAgICAgcmV0ID0gc3RyY2FzZXN0cihzMCwgczEpOwotLQotLSAgICAgICAgcmV0dXJuICEoTlVMTCAhPSByZXQpOwotLX0KLSsgIEFDX1RSWV9DT01QSUxFKFsKLSsgICAgICNpbmNsdWRlIDxzdHJpbmcuaD4KLSsgICAgICNpbmNsdWRlIDxzdHJpbmdzLmg+Ci0rICAgICAjaW5jbHVkZSA8c3RkbGliLmg+Ci0rICBdLFsKLSsgICAgIHN0cmNhc2VzdHIoTlVMTCwgTlVMTCk7Ci0gICBdLFsKLSAgICAgZG5sIHVzaW5nIHRoZSBwbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbgotICAgICBBQ19NU0dfUkVTVUxUKHllcykKLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLmluYwppbmRleCAyODNkNjMwLi4wNjZiOTdjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLmluYwpAQCAtNiwyNiArNiwyMiBAQAogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKIERFUEVORFMgPSAiemxpYiBiemlwMiBsaWJ4bWwyIHZpcnR1YWwvbGliaWNvbnYgcGhwLW5hdGl2ZSBsZW1vbi1uYXRpdmUgXAotICAgICAgICAgICBvcGVuc3NsIGxpYm1jcnlwdCIKKyAgICAgICAgICAgb3BlbnNzbCIKIERFUEVORFNfY2xhc3MtbmF0aXZlID0gInpsaWItbmF0aXZlIGxpYnhtbDItbmF0aXZlIgogCiBQSFBfTUFKT1JfVkVSU0lPTiA9ICIke0BkLmdldFZhcignUFYnLCBUcnVlKS5zcGxpdCgnLicpWzBdfSIKIAogU1JDX1VSSSA9ICJodHRwOi8vcGhwLm5ldC9kaXN0cmlidXRpb25zL3BocC0ke1BWfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovL2FjaW5jbHVkZS14bWwyLWNvbmZpZy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLXBocC1kb24tdC11c2UtYnJva2VuLXdyYXBwZXItZm9yLW1rZGlyLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtYWNpbmNsdWRlLXVzZS1wa2djb25maWctZm9yLWxpYnhtbDItY29uZmlnLnBhdGNoIFwKICAgICAgICAgICAiCiAKIFNSQ19VUklfYXBwZW5kX2NsYXNzLXRhcmdldCA9ICIgXAogICAgICAgICAgICAgZmlsZTovL2ljb252LnBhdGNoIFwKICAgICAgICAgICAgIGZpbGU6Ly9pbWFwLWZpeC1hdXRvZm9vLnBhdGNoIFwKLSAgICAgICAgICAgIGZpbGU6Ly9wZWFyLW1ha2VmaWxlLnBhdGNoIFwKLSAgICAgICAgICAgIGZpbGU6Ly9waGFyLW1ha2VmaWxlLnBhdGNoIFwKICAgICAgICAgICAgIGZpbGU6Ly9waHBfZXhlY19uYXRpdmUucGF0Y2ggXAogICAgICAgICAgICAgZmlsZTovL3BocC1mcG0uY29uZiBcCiAgICAgICAgICAgICBmaWxlOi8vcGhwLWZwbS1hcGFjaGUuY29uZiBcCi0gICAgICAgICAgICBmaWxlOi8vY29uZmlndXJlLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWFjaW5jbHVkZS5tNC1kb24tdC11bnNldC1jYWNoZS12YXJpYWJsZXMucGF0Y2ggXAogICAgICAgICAgICAgZmlsZTovLzcwX21vZF9waHAke1BIUF9NQUpPUl9WRVJTSU9OfS5jb25mIFwKICAgICAgICAgICAgIGZpbGU6Ly9waHAtZnBtLnNlcnZpY2UgXAogICAgICAgICAgICIKQEAgLTQ0LDcgKzQwLDYgQEAKIENPTU1PTl9FWFRSQV9PRUNPTkYgPSAiLS1lbmFibGUtc29ja2V0cyBcCiAgICAgICAgICAgICAgICAgICAgICAgIC0tZW5hYmxlLXBjbnRsIFwKICAgICAgICAgICAgICAgICAgICAgICAgLS1lbmFibGUtc2hhcmVkIFwKLSAgICAgICAgICAgICAgICAgICAgICAgLS1kaXNhYmxlLW9wY2FjaGUgXAogICAgICAgICAgICAgICAgICAgICAgICAtLWRpc2FibGUtcnBhdGggXAogICAgICAgICAgICAgICAgICAgICAgICAtLXdpdGgtcGljIFwKICAgICAgICAgICAgICAgICAgICAgICAgLS1saWJkaXI9JHtQSFBfTElCRElSfSBcCkBAIC01NywyMCArNTIsMjIgQEAKICAgICAgICAgICAgICAgICAtLXdpdGgtZ2V0dGV4dD0ke1NUQUdJTkdfTElCRElSfS8uLiBcCiAgICAgICAgICAgICAgICAgLS13aXRoLXpsaWI9JHtTVEFHSU5HX0xJQkRJUn0vLi4gXAogICAgICAgICAgICAgICAgIC0td2l0aC1pY29udj0ke1NUQUdJTkdfTElCRElSfS8uLiBcCi0gICAgICAgICAgICAgICAgLS13aXRoLW1jcnlwdD0ke1NUQUdJTkdfRElSX1RBUkdFVH0ke2V4ZWNfcHJlZml4fSBcCiAgICAgICAgICAgICAgICAgLS13aXRoLWJ6Mj0ke1NUQUdJTkdfRElSX1RBUkdFVH0ke2V4ZWNfcHJlZml4fSBcCiAgICAgICAgICAgICAgICAgLS13aXRoLWNvbmZpZy1maWxlLXBhdGg9JHtzeXNjb25mZGlyfS9waHAvYXBhY2hlMi1waHAke1BIUF9NQUpPUl9WRVJTSU9OfSBcCi0gICAgICAgICAgICAgICAgJHtAYmFzZV9jb25kaXRpb25hbCgnU0lURUlORk9fRU5ESUFOTkVTUycsICdsZScsICdhY19jdl9jX2JpZ2VuZGlhbl9waHA9bm8nLCAnYWNfY3ZfY19iaWdlbmRpYW5fcGhwPXllcycsIGQpfSBcCisgICAgICAgICAgICAgICAgJHtAb2UudXRpbHMuY29uZGl0aW9uYWwoJ1NJVEVJTkZPX0VORElBTk5FU1MnLCAnbGUnLCAnYWNfY3ZfY19iaWdlbmRpYW5fcGhwPW5vJywgJ2FjX2N2X2NfYmlnZW5kaWFuX3BocD15ZXMnLCBkKX0gXAogICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3BhbScsICcnLCAnYWNfY3ZfbGliX3BhbV9wYW1fc3RhcnQ9bm8nLCBkKX0gXAogICAgICAgICAgICAgICAgICR7Q09NTU9OX0VYVFJBX09FQ09ORn0gXAogIgorCitDQUNIRURfQ09ORklHVVJFVkFSUyArPSAiYWNfY3ZfZnVuY19kbG9wZW49eWVzIGFjX2N2X2xpYl9kbF9kbG9wZW49eWVzIgorCiBFWFRSQV9PRUNPTkZfY2xhc3MtbmF0aXZlID0gIiBcCiAgICAgICAgICAgICAgICAgLS13aXRoLXpsaWI9JHtTVEFHSU5HX0xJQkRJUl9OQVRJVkV9Ly4uIFwKICAgICAgICAgICAgICAgICAtLXdpdGhvdXQtaWNvbnYgXAogICAgICAgICAgICAgICAgICR7Q09NTU9OX0VYVFJBX09FQ09ORn0gXAogIgogCi1QQUNLQUdFQ09ORklHID8/PSAibXlzcWwgc3FsaXRlMyBpbWFwIFwKK1BBQ0tBR0VDT05GSUcgPz89ICJteXNxbCBzcWxpdGUzIGltYXAgb3BjYWNoZSBcCiAgICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnaXB2NiBwYW0nLCBkKX0gXAogIgogUEFDS0FHRUNPTkZJR19jbGFzcy1uYXRpdmUgPSAiIgpAQCAtOTQsNyArOTEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAsLS13aXRob3V0LWltYXAgLS13aXRob3V0LWltYXAtc3NsIFwKICAgICAgICAgICAgICAgICAgICAgICAgLHV3LWltYXAiCiBQQUNLQUdFQ09ORklHW2lwdjZdID0gIi0tZW5hYmxlLWlwdjYsLS1kaXNhYmxlLWlwdjYsIgotCitQQUNLQUdFQ09ORklHW29wY2FjaGVdID0gIiwtLWRpc2FibGUtb3BjYWNoZSIKIAogZXhwb3J0IFBIUF9OQVRJVkVfRElSID0gIiR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfSIKIGV4cG9ydCBQSFBfUEVBUl9QSFBfQklOID0gIiR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9waHAiCkBAIC0yMDEsMTQgKzE5OCwxNCBAQAogCiBNT0RQSFBfUEFDS0FHRSA9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdhcGFjaGUyJywgJyR7UE59LW1vZHBocCcsICcnLCBkKX0iCiAKLVBBQ0tBR0VTID0gIiR7UE59LWRiZyAke1BOfS1jbGkgJHtQTn0tY2dpICR7UE59LWZwbSAke1BOfS1mcG0tYXBhY2hlMiAke1BOfS1wZWFyICR7UE59LXBoYXIgJHtNT0RQSFBfUEFDS0FHRX0gJHtQTn0tZGV2ICR7UE59LXN0YXRpY2RldiAke1BOfS1kb2MgJHtQTn0iCitQQUNLQUdFUyA9ICIke1BOfS1kYmcgJHtQTn0tY2xpICR7UE59LWNnaSAke1BOfS1mcG0gJHtQTn0tZnBtLWFwYWNoZTIgJHtQTn0tcGVhciAke1BOfS1waGFyICR7TU9EUEhQX1BBQ0tBR0V9ICR7UE59LWRldiAke1BOfS1zdGF0aWNkZXYgJHtQTn0tZG9jICR7UE59LW9wY2FjaGUgJHtQTn0iCiAKIFJERVBFTkRTXyR7UE59ICs9ICJsaWJnY2MiCiBSREVQRU5EU18ke1BOfS1wZWFyID0gIiR7UE59IgogUkRFUEVORFNfJHtQTn0tcGhhciA9ICIke1BOfS1jbGkiCiBSREVQRU5EU18ke1BOfS1jbGkgPSAiJHtQTn0iCiBSREVQRU5EU18ke1BOfS1tb2RwaHAgPSAiJHtQTn0gYXBhY2hlMiIKLVJERVBFTkRTXyR7UE59LWRldiA9ICIke1BOfSIKK1JERVBFTkRTXyR7UE59LW9wY2FjaGUgPSAiJHtQTn0iCiAKIElOSVRTQ1JJUFRfUEFDS0FHRVMgPSAiJHtQTn0tZnBtIgogaW5oZXJpdCB1cGRhdGUtcmMuZApAQCAtMjM3LDYgKzIzNCw4IEBACiAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3BocC1jb25maWcgJHtQSFBfTElCRElSfS9waHAvLmRlcGRiIFwKICAgICAgICAgICAgICAgICAke1BIUF9MSUJESVJ9L3BocC8uZGVwZGJsb2NrICR7UEhQX0xJQkRJUn0vcGhwLy5maWxlbWFwIFwKICAgICAgICAgICAgICAgICAke1BIUF9MSUJESVJ9L3BocC8ubG9jayAke1BIUF9MSUJESVJ9L3BocC90ZXN0IgorRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke1BIUF9MSUJESVJ9L2V4dGVuc2lvbnMvKi8qLmEiCitGSUxFU18ke1BOfS1vcGNhY2hlID0gIiR7UEhQX0xJQkRJUn0vZXh0ZW5zaW9ucy8qL29wY2FjaGUke1NPTElCU0RFVn0iCiBGSUxFU18ke1BOfSA9ICIke1BIUF9MSUJESVJ9L3BocCIKIEZJTEVTXyR7UE59ICs9ICIke2JpbmRpcn0iCiAKQEAgLTI1MywxOCArMjUyLDYgQEAKICAgICAgICAgUEhQX1BFQVJfU1lTQ09ORl9ESVI9JHtzeXNjb25mZGlyfS8KIH0KIAotU1NUQVRFUE9TVElOU1RGVU5DU19hcHBlbmRfY2xhc3MtbmF0aXZlID0gIiBwaHBfc3N0YXRlX3Bvc3RpbnN0ICIKLQotcGhwX3NzdGF0ZV9wb3N0aW5zdCgpIHsKLSAgICBpZiBbICIke0JCX0NVUlJFTlRUQVNLfSIgPSAicG9wdWxhdGVfc3lzcm9vdF9zZXRzY2VuZSIgXQotICAgIHRoZW4KLSAgICAgICAgaGVhZCAtbjEgJHtzeXNjb25mZGlyfS9wZWFyLmNvbmYgPiAke3N5c2NvbmZkaXJ9L3BlYXIudG1wLmNvbmYKLSAgICAgICAgZm9yIHAgaW4gYHRhaWwgLW4xICAke3N5c2NvbmZkaXJ9L3BlYXIuY29uZiB8IHNlZCAtcyAncy87LyAvZydgOyBkbwotICAgICAgICAgICAgZWNobyAkcCB8IGF3ayAtRjogJ0JFR0lOIHtPRlMgPSAiOiI7IE9SUyA9ICI7In17aWYoTkY9PTMpe3ByaW50ICQxLCBsZW5ndGgoJDMpLTIqbWF0Y2goJDMsIC9eIi8pLCAkM30gZWxzZSB7cHJpbnQgJDB9fSc7Ci0gICAgICAgIGRvbmUgPj4gJHtzeXNjb25mZGlyfS9wZWFyLnRtcC5jb25mCi0gICAgICAgIG12IC1mICR7c3lzY29uZmRpcn0vcGVhci50bXAuY29uZiAke3N5c2NvbmZkaXJ9L3BlYXIuY29uZgotICAgIGZpCi19CiAKICMgRmFpbHMgdG8gYnVpbGQgd2l0aCB0aHVtYi0xIChxZW11YXJtKQogIyB8IHtzdGFuZGFyZCBpbnB1dH06IEFzc2VtYmxlciBtZXNzYWdlczoKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAtNS42LjMxLzAwMDEtQWRkLWxwdGhyZWFkLXRvLWxpbmsucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtQWRkLWxwdGhyZWFkLXRvLWxpbmsucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAtNS42LjMxLzAwMDEtQWRkLWxwdGhyZWFkLXRvLWxpbmsucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvMDAwMS1BZGQtbHB0aHJlYWQtdG8tbGluay5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC8wMDAxLWFjaW5jbHVkZS5tNC1kb24tdC11bnNldC1jYWNoZS12YXJpYWJsZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtYWNpbmNsdWRlLm00LWRvbi10LXVuc2V0LWNhY2hlLXZhcmlhYmxlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjUwY2FjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC8wMDAxLWFjaW5jbHVkZS5tNC1kb24tdC11bnNldC1jYWNoZS12YXJpYWJsZXMucGF0Y2gKQEAgLTAsMCArMSwzOSBAQAorRnJvbSBkZmViZTgxZjk0NmE4M2ZlMjQ5OWZjODRkNGYzZGJkYzU2MTIyNzZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW51aiBNaXR0YWwgPGFudWoubWl0dGFsQGludGVsLmNvbT4KK0RhdGU6IFR1ZSwgMyBBcHIgMjAxOCAxMTozNTowMyArMDgwMAorU3ViamVjdDogW1BBVENIXSBhY2luY2x1ZGUubTQ6IGRvbid0IHVuc2V0IGNhY2hlIHZhcmlhYmxlcworCitVbnNldHRpbmcgcHJldmVudHMgY2FjaGUgdmFyaWFibGUgZnJvbSBiZWluZyBwYXNzZWQgdG8gY29uZmlndXJlLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FLXNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbnVqIE1pdHRhbCA8YW51ai5taXR0YWxAaW50ZWwuY29tPgorLS0tCisgYWNpbmNsdWRlLm00IHwgNCAtLS0tCisgMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9hY2luY2x1ZGUubTQgYi9hY2luY2x1ZGUubTQKK2luZGV4IGY2YTU1ZWMuLmQzMzQ2ZGYgMTAwNjQ0CistLS0gYS9hY2luY2x1ZGUubTQKKysrKyBiL2FjaW5jbHVkZS5tNAorQEAgLTE4OTAsOCArMTg5MCw2IEBAIGRlZmluZShbcGhwc2hpZnRdLFtpZmVsc2UoaW5kZXgoWyRAXSxbLF0pLC0xLCxbc3Vic3RyKFskQF0saW5jcihpbmRleChbJEBdLFssXSkpCisgZG5sCisgQUNfREVGVU4oW1BIUF9DSEVDS19GVU5DX0xJQl0sWworICAgaWZlbHNlKCQyLCw6LFsKKy0gIHVuc2V0IGFjX2N2X2xpYl8kMltdXyQxCistICB1bnNldCBhY19jdl9saWJfJDJbXV9fXyQxCisgICB1bnNldCBmb3VuZAorICAgQUNfQ0hFQ0tfTElCKCQyLCAkMSwgW2ZvdW5kPXllc10sIFsKKyAgICAgQUNfQ0hFQ0tfTElCKCQyLCBfXyQxLCBbZm91bmQ9eWVzXSwgW2ZvdW5kPW5vXSkKK0BAIC0xOTIzLDggKzE5MjEsNiBAQCBkbmwgaW4gdGhlIGRlZmF1bHQgbGlicmFyaWVzIGFuZCBhcyBhIGZhbGwgYmFjayBpbiB0aGUgc3BlY2lmaWVkIGxpYnJhcnkuCisgZG5sIERlZmluZXMgSEFWRV9mdW5jIGFuZCBIQVZFX2xpYnJhcnkgaWYgZm91bmQgYW5kIGFkZHMgdGhlIGxpYnJhcnkgdG8gTElCUy4KKyBkbmwKKyBBQ19ERUZVTihbUEhQX0NIRUNLX0ZVTkNdLFsKKy0gIHVuc2V0IGFjX2N2X2Z1bmNfJDEKKy0gIHVuc2V0IGFjX2N2X2Z1bmNfX18kMQorICAgdW5zZXQgZm91bmQKKyAgIAorICAgQUNfQ0hFQ0tfRlVOQygkMSwgW2ZvdW5kPXllc10sWyBBQ19DSEVDS19GVU5DKF9fJDEsW2ZvdW5kPXllc10sW2ZvdW5kPW5vXSkgXSkKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC8wMDAxLWFjaW5jbHVkZS5tNC1za2lwLWJpbmNvbmZpZy1jaGVjay1mb3ItbGlieG1sLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC8wMDAxLWFjaW5jbHVkZS5tNC1za2lwLWJpbmNvbmZpZy1jaGVjay1mb3ItbGlieG1sLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1MzI5MjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtYWNpbmNsdWRlLm00LXNraXAtYmluY29uZmlnLWNoZWNrLWZvci1saWJ4bWwucGF0Y2gKQEAgLTAsMCArMSw1NiBAQAorRnJvbSBhMmQxNDZiOGRkOWQwMmY1MjNkMWUyMDVkNzk3OTI2MjZhNzFkZWMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW51aiBNaXR0YWwgPGFudWoubWl0dGFsQGludGVsLmNvbT4KK0RhdGU6IE1vbiwgMiBBcHIgMjAxOCAxNToyNzowOSArMDgwMAorU3ViamVjdDogW1BBVENIXSBhY2luY2x1ZGUubTQ6IHNraXAgYmluY29uZmlnIGNoZWNrIGZvciBsaWJ4bWwKKworV2Ugd2FudCBsaWJ4bWwgZmxhZ3MgdG8gYmUgcGlja2VkIHVwIHVzaW5nIHBrZy1jb25maWcgaW5zdGVhZCBvZiB0aGUKK3htbDItY29uZmlnIGZpbGUuCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbT0Utc3BlY2lmaWNdCisKK1NpZ25lZC1vZmYtYnk6IEFudWogTWl0dGFsIDxhbnVqLm1pdHRhbEBpbnRlbC5jb20+CisKKy0tLQorIGFjaW5jbHVkZS5tNCB8IDI5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDI5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvYWNpbmNsdWRlLm00IGIvYWNpbmNsdWRlLm00CitpbmRleCBkNDJkNzA4Li5kMzI3NjZhIDEwMDY0NAorLS0tIGEvYWNpbmNsdWRlLm00CisrKysgYi9hY2luY2x1ZGUubTQKK0BAIC0yNTI1LDM1ICsyNTI1LDYgQEAgZG5sCisgQUNfREVGVU4oW1BIUF9TRVRVUF9MSUJYTUxdLCBbCisgICBmb3VuZF9saWJ4bWw9bm8KKyAKKy0gIGRubCBGaXJzdCB0cnkgdG8gZmluZCB4bWwyLWNvbmZpZworLSAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciB4bWwyLWNvbmZpZyBwYXRoXSwgYWNfY3ZfcGhwX3htbDJfY29uZmlnX3BhdGgsCistICBbCistICAgIGZvciBpIGluICRQSFBfTElCWE1MX0RJUiAvdXNyL2xvY2FsIC91c3I7IGRvCistICAgICAgaWYgdGVzdCAteCAiJGkvYmluL3htbDItY29uZmlnIjsgdGhlbgorLSAgICAgICAgYWNfY3ZfcGhwX3htbDJfY29uZmlnX3BhdGg9IiRpL2Jpbi94bWwyLWNvbmZpZyIKKy0gICAgICAgIGJyZWFrCistICAgICAgZmkKKy0gICAgZG9uZQorLSAgXSkKKy0KKy0gIGlmIHRlc3QgLXggIiRhY19jdl9waHBfeG1sMl9jb25maWdfcGF0aCI7IHRoZW4KKy0gICAgWE1MMl9DT05GSUc9IiRhY19jdl9waHBfeG1sMl9jb25maWdfcGF0aCIKKy0gICAgbGlieG1sX2Z1bGxfdmVyc2lvbj1gJFhNTDJfQ09ORklHIC0tdmVyc2lvbmAKKy0gICAgYWNfSUZTPSRJRlMKKy0gICAgSUZTPSIuIgorLSAgICBzZXQgJGxpYnhtbF9mdWxsX3ZlcnNpb24KKy0gICAgSUZTPSRhY19JRlMKKy0gICAgTElCWE1MX1ZFUlNJT049YGV4cHIgWyRdMSBcKiAxMDAwMDAwICsgWyRdMiBcKiAxMDAwICsgWyRdM2AKKy0gICAgaWYgdGVzdCAiJExJQlhNTF9WRVJTSU9OIiAtZ2UgIjIwMDYwMTEiOyB0aGVuCistICAgICAgZm91bmRfbGlieG1sPXllcworLSAgICAgIExJQlhNTF9MSUJTPWAkWE1MMl9DT05GSUcgLS1saWJzYAorLSAgICAgIExJQlhNTF9JTkNTPWAkWE1MMl9DT05GSUcgLS1jZmxhZ3NgCistICAgIGVsc2UKKy0gICAgICBBQ19NU0dfRVJST1IoW2xpYnhtbDIgdmVyc2lvbiAyLjYuMTEgb3IgZ3JlYXRlciByZXF1aXJlZC5dKQorLSAgICBmaQorLSAgZmkKKy0KKy0gIGRubCBJZiB4bWwyLWNvbmZpZyBmYWlscywgdHJ5IHBrZy1jb25maWcKKyAgIGlmIHRlc3QgIiRmb3VuZF9saWJ4bWwiID0gIm5vIjsgdGhlbgorICAgICBpZiB0ZXN0IC16ICIkUEtHX0NPTkZJRyI7IHRoZW4KKyAgICAgICBBQ19QQVRIX1BST0coUEtHX0NPTkZJRywgcGtnLWNvbmZpZywgbm8pCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtZml4LWVycm9yLWNhdXNlZC1ieS1hLW5ldy12YXJpYWJsZS1pcy1kZWNsYXJlZC1hZnRlci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvMDAwMS1maXgtZXJyb3ItY2F1c2VkLWJ5LWEtbmV3LXZhcmlhYmxlLWlzLWRlY2xhcmVkLWFmdGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhYjEwMWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtZml4LWVycm9yLWNhdXNlZC1ieS1hLW5ldy12YXJpYWJsZS1pcy1kZWNsYXJlZC1hZnRlci5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitGcm9tIDBkODhkNzM1ODg3YzZmMmZhMDBhNzQzYzI3MTI0YzdhNTIwMDZhNDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+CitEYXRlOiBTdW4sIDE1IEFwciAyMDE4IDE5OjE3OjI3IC0wNzAwCitTdWJqZWN0OiBbUEFUQ0hdIGZpeCBlcnJvciBjYXVzZWQgYnkgYSBuZXcgdmFyaWFibGUgaXMgZGVjbGFyZWQgYWZ0ZXIgdGhlCisgbGFiZWwKKworVGhlcmUgaXMgYSBidWlsZCBmYWlsdXJlIG9uIG1pcHM6CisuLi4KK3xzbGppdE5hdGl2ZU1JUFNfY29tbW9uLmM6IEluIGZ1bmN0aW9uICdzbGppdF9oYXNfY3B1X2ZlYXR1cmUnOgorfHNsaml0TmF0aXZlTUlQU19jb21tb24uYzo1MDY6MzogZXJyb3I6IGEgbGFiZWwgY2FuIG9ubHkgYmUgcGFydAorb2YgYSBzdGF0ZW1lbnQgYW5kIGEgZGVjbGFyYXRpb24gaXMgbm90IGEgc3RhdGVtZW50Cit8ICAgc2xqaXRfc3cgZmlyOworfCAgIF5+fn5+fn5+CisuLi4KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KKy0tLQorIGV4dC9wY3JlL3BjcmVsaWIvc2xqaXQvc2xqaXROYXRpdmVNSVBTX2NvbW1vbi5jIHwgNCArKystCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZXh0L3BjcmUvcGNyZWxpYi9zbGppdC9zbGppdE5hdGl2ZU1JUFNfY29tbW9uLmMgYi9leHQvcGNyZS9wY3JlbGliL3Nsaml0L3Nsaml0TmF0aXZlTUlQU19jb21tb24uYworaW5kZXggZWUyMDdmZS4uYWRmZDM0MiAxMDA2NDQKKy0tLSBhL2V4dC9wY3JlL3BjcmVsaWIvc2xqaXQvc2xqaXROYXRpdmVNSVBTX2NvbW1vbi5jCisrKysgYi9leHQvcGNyZS9wY3JlbGliL3Nsaml0L3Nsaml0TmF0aXZlTUlQU19jb21tb24uYworQEAgLTQ5OCwxMiArNDk4LDE0IEBAIFNMSklUX0FQSV9GVU5DX0FUVFJJQlVURSB2b2lkKiBzbGppdF9nZW5lcmF0ZV9jb2RlKHN0cnVjdCBzbGppdF9jb21waWxlciAqY29tcGlsCisgCisgU0xKSVRfQVBJX0ZVTkNfQVRUUklCVVRFIHNsaml0X3MzMiBzbGppdF9oYXNfY3B1X2ZlYXR1cmUoc2xqaXRfczMyIGZlYXR1cmVfdHlwZSkKKyB7CisrI2lmIGRlZmluZWQoX19HTlVDX18pCisrCXNsaml0X3N3IGZpcjsKKysjZW5kaWYKKyAJc3dpdGNoIChmZWF0dXJlX3R5cGUpIHsKKyAJY2FzZSBTTEpJVF9IQVNfRlBVOgorICNpZmRlZiBTTEpJVF9JU19GUFVfQVZBSUxBQkxFCisgCQlyZXR1cm4gU0xKSVRfSVNfRlBVX0FWQUlMQUJMRTsKKyAjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorLQkJc2xqaXRfc3cgZmlyOworIAkJYXNtICgiY2ZjMSAlMCwgJDAiIDogIj1yIihmaXIpKTsKKyAJCXJldHVybiAoZmlyID4+IDIyKSAmIDB4MTsKKyAjZWxzZQorLS0gCisyLjEwLjIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC8wMDAxLW1haW4tcGhwX2luaS5jLWJ1aWxkLWVtcHR5LXBocF9sb2FkX3plbmRfZXh0ZW5zaW9uX2MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtbWFpbi1waHBfaW5pLmMtYnVpbGQtZW1wdHktcGhwX2xvYWRfemVuZF9leHRlbnNpb25fYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2U5NzM4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC8wMDAxLW1haW4tcGhwX2luaS5jLWJ1aWxkLWVtcHR5LXBocF9sb2FkX3plbmRfZXh0ZW5zaW9uX2MucGF0Y2gKQEAgLTAsMCArMSw2MyBAQAorRnJvbSAyODQyYWEyYTA3OGViMWNhZDU1NTQwYjYxZTdlZGYxMTEzOTUxNTBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVGhvbWFzIFBldGF6em9uaSA8dGhvbWFzLnBldGF6em9uaUBib290bGluLmNvbT4KK0RhdGU6IE1vbiwgMjYgRmViIDIwMTggMTk6MzA6NTUgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gbWFpbi9waHBfaW5pLmM6IGJ1aWxkIGVtcHR5IHBocF9sb2FkX3plbmRfZXh0ZW5zaW9uX2NiKCkgd2hlbgorICFIQVZFX0xJQkRMCisKK0NvbW1pdCAwNzgyYTdmYzYzMTRjOGJkM2NiZmQ1N2YxMmQwNDc5YmY5Y2M4ZGM3ICgiRml4ZWQgYnVnICM3NDg2NgorZXh0ZW5zaW9uX2RpciA9ICIuL2V4dCIgbm93IHVzZSBjdXJyZW50IGRpcmVjdG9yeSBmb3IgYmFzZSIpIG1vZGlmaWVkCit0aGUgcGhwX2xvYWRfemVuZF9leHRlbnNpb25fY2IoKSBmdW5jdGlvbiB0byB1c2UgcGhwX2xvYWRfc2hsaWIoKSwgYW5kCitwYXNzIGEgaGFuZGxlIHRvIHRoZSBuZXdseSBpbnRyb2R1Y2VkIHplbmRfbG9hZF9leHRlbnNpb25faGFuZGxlKCkKK2Z1bmN0aW9uIGluc3RlYWQgb2YgcGFzc2luZyB0aGUgZXh0ZW5zaW9uIHBhdGggdG8KK3plbmRfbG9hZF9leHRlbnNpb24oKS4KKworV2hpbGUgZG9pbmcgc28sIGl0IGludHJvZHVjZWQgYSBjYWxsIHRvIHBocF9sb2FkX3NobGliKCkgZnJvbSBjb2RlCit0aGF0IGlzIGJ1aWx0IGV2ZW4gd2hlbiBIQVZFX0xJQkRMIGlzIG5vdCBkZWZpbmVkLiBIb3dldmVyLAorcGhwX2xvYWRfc2hsaWIoKSBpcyBub3QgaW1wbGVtZW50ZWQgd2hlbiBIQVZFX0xJQkRMIGlzIG5vdCBkZWZpbmVkLAorZm9yIG9idmlvdXMgcmVhc29ucy4KKworSXQgdHVybnMgb3V0IHRoYXQgemVuZF9sb2FkX2V4dGVuc2lvbl9oYW5kbGUoKSBhbnl3YXkgZG9lc24ndCBkbworYW55dGhpbmcgd2hlbiBaRU5EX0VYVEVOU0lPTlNfU1VQUE9SVCBpcyBkZWZpbmVkIHRvIDAsIGFuZAorWkVORF9FWFRFTlNJT05TX1NVUFBPUlQgaXMgbm90IGRlZmluZWQgd2hlbiBIQVZFX0xJQkRMIGlzIG5vdCBkZWZpbmVkCisoWmVuZC96ZW5kX3BvcnRhYmlsaXR5LmgpLgorCitGaXhlcyB0aGUgZm9sbG93aW5nIGJ1aWxkIGZhaWx1cmUgd2hlbiBidWlsZGluZyBvbiBhIHN5c3RlbSB0aGF0Citkb2Vzbid0IGhhdmUgbGliZGw6CisKK21haW4vcGhwX2luaS5vOiBJbiBmdW5jdGlvbiBgcGhwX2xvYWRfemVuZF9leHRlbnNpb25fY2InOgorcGhwX2luaS5jOigudGV4dCsweDQ3OCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHBocF9sb2FkX3NobGliJworcGhwX2luaS5jOigudGV4dCsweDRiMCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHBocF9sb2FkX3NobGliJworY29sbGVjdDI6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgW2h0dHA6Ly9naXQucGhwLm5ldC8/cD1waHAtc3JjLmdpdDthPWNvbW1pdDtoPTI4NDJhYTJhMDc4ZWIxY2FkNTU1NDBiNjFlN2VkZjExMTM5NTE1MGRdCitTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgUGV0YXp6b25pIDx0aG9tYXMucGV0YXp6b25pQGJvb3RsaW4uY29tPgorU2lnbmVkLW9mZi1ieTogQW51aiBNaXR0YWwgPGFudWoubWl0dGFsQGludGVsLmNvbT4KKy0tLQorIG1haW4vcGhwX2luaS5jIHwgNCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvbWFpbi9waHBfaW5pLmMgYi9tYWluL3BocF9pbmkuYworaW5kZXggYmE1OGViMS4uZmNhMjYzZSAxMDA2NDQKKy0tLSBhL21haW4vcGhwX2luaS5jCisrKysgYi9tYWluL3BocF9pbmkuYworQEAgLTM1MCw2ICszNTAsNyBAQCBzdGF0aWMgdm9pZCBwaHBfbG9hZF9waHBfZXh0ZW5zaW9uX2NiKHZvaWQgKmFyZykKKyAKKyAvKiB7e3sgcGhwX2xvYWRfemVuZF9leHRlbnNpb25fY2IKKyAgKi8KKysjaWZkZWYgSEFWRV9MSUJETAorIHN0YXRpYyB2b2lkIHBocF9sb2FkX3plbmRfZXh0ZW5zaW9uX2NiKHZvaWQgKmFyZykKKyB7CisgCWNoYXIgKmZpbGVuYW1lID0gKigoY2hhciAqKikgYXJnKTsKK0BAIC00MDksNiArNDEwLDkgQEAgc3RhdGljIHZvaWQgcGhwX2xvYWRfemVuZF9leHRlbnNpb25fY2Iodm9pZCAqYXJnKQorIAkJZWZyZWUobGlicGF0aCk7CisgCX0KKyB9CisrI2Vsc2UKKytzdGF0aWMgdm9pZCBwaHBfbG9hZF96ZW5kX2V4dGVuc2lvbl9jYih2b2lkICphcmcpIHsgfQorKyNlbmRpZgorIC8qIH19fSAqLworIAorIC8qIHt7eyBwaHBfaW5pdF9jb25maWcKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC8wMDAxLW9wY2FjaGUtY29uZmlnLm00LWVuYWJsZS1vcGNhY2hlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC8wMDAxLW9wY2FjaGUtY29uZmlnLm00LWVuYWJsZS1vcGNhY2hlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMjRkMzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtb3BjYWNoZS1jb25maWcubTQtZW5hYmxlLW9wY2FjaGUucGF0Y2gKQEAgLTAsMCArMSwzODUgQEAKK0Zyb20gYjJmYjcyNWRjNDA0ZDQ3MTM3MTczMWI2NjMyMzRlODdjYjBmY2E4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFudWogTWl0dGFsIDxhbnVqLm1pdHRhbEBpbnRlbC5jb20+CitEYXRlOiBNb24sIDIgQXByIDIwMTggMTc6NTQ6NTIgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gb3BjYWNoZS9jb25maWcubTQ6IGVuYWJsZSBvcGNhY2hlCisKK1dlIGNhbid0IHVzZSBBQ19UUllfUlVOIHRvIHJ1biBwcm9ncmFtcyBpbiBhIGNyb3NzIGNvbXBpbGUgZW52aXJvbm1lbnQuIFNldAordGhlIHZhcmlhYmxlcyBkaXJlY3RseSBpbnN0ZWFkIHNpbmNlIHdlIGtub3cgdGhhdCB3ZSdkIGJlIHJ1bm5pbmcgb24gbGF0ZXN0Citlbm91Z2ggbGludXgga2VybmVsLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW0NvbmZpZ3VyYXRpb25dCisKK1NpZ25lZC1vZmYtYnk6IEFudWogTWl0dGFsIDxhbnVqLm1pdHRhbEBpbnRlbC5jb20+CistLS0KKyBleHQvb3BjYWNoZS9jb25maWcubTQgfCAzNDkgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAzNDEgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvb3BjYWNoZS9jb25maWcubTQgYi9leHQvb3BjYWNoZS9jb25maWcubTQKK2luZGV4IDdiNTAwZjAuLjEwYmI5OWEgMTAwNjQ0CistLS0gYS9leHQvb3BjYWNoZS9jb25maWcubTQKKysrKyBiL2V4dC9vcGNhY2hlL2NvbmZpZy5tNAorQEAgLTI4LDM1MyArMjgsMjAgQEAgaWYgdGVzdCAiJFBIUF9PUENBQ0hFIiAhPSAibm8iOyB0aGVuCisgCisgICBBQ19DSEVDS19IRUFERVJTKFt1bmlzdGQuaCBzeXMvdWlvLmhdKQorIAorLSAgQUNfTVNHX0NIRUNLSU5HKGZvciBzeXN2aXBjIHNoYXJlZCBtZW1vcnkgc3VwcG9ydCkKKy0gIEFDX1RSWV9SVU4oWworLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKy0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KKy0jaW5jbHVkZSA8c3lzL2lwYy5oPgorLSNpbmNsdWRlIDxzeXMvc2htLmg+CistI2luY2x1ZGUgPHVuaXN0ZC5oPgorLSNpbmNsdWRlIDxzdHJpbmcuaD4KKysgIEFDX0RFRklORShIQVZFX1NITV9JUEMsIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgU3lzViBJUEMgU0hNIHN1cHBvcnRdKQorIAorLWludCBtYWluKCkgeworLSAgcGlkX3QgcGlkOworLSAgaW50IHN0YXR1czsKKy0gIGludCBpcGNfaWQ7CistICBjaGFyICpzaG07CistICBzdHJ1Y3Qgc2htaWRfZHMgc2htYnVmOworKyAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfQU5PTiwgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBtbWFwKE1BUF9BTk9OKSBTSE0gc3VwcG9ydF0pCisgCistICBpcGNfaWQgPSBzaG1nZXQoSVBDX1BSSVZBVEUsIDQwOTYsIChJUENfQ1JFQVQgfCBTSE1fUiB8IFNITV9XKSk7CistICBpZiAoaXBjX2lkID09IC0xKSB7CistICAgIHJldHVybiAxOworLSAgfQorKyAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfWkVSTywgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBtbWFwKCIvZGV2L3plcm8iKSBTSE0gc3VwcG9ydF0pCisgCistICBzaG0gPSBzaG1hdChpcGNfaWQsIE5VTEwsIDApOworLSAgaWYgKHNobSA9PSAodm9pZCAqKS0xKSB7CistICAgIHNobWN0bChpcGNfaWQsIElQQ19STUlELCBOVUxMKTsKKy0gICAgcmV0dXJuIDI7CistICB9CistCistICBpZiAoc2htY3RsKGlwY19pZCwgSVBDX1NUQVQsICZzaG1idWYpICE9IDApIHsKKy0gICAgc2htZHQoc2htKTsKKy0gICAgc2htY3RsKGlwY19pZCwgSVBDX1JNSUQsIE5VTEwpOworLSAgICByZXR1cm4gMzsKKy0gIH0KKy0KKy0gIHNobWJ1Zi5zaG1fcGVybS51aWQgPSBnZXR1aWQoKTsKKy0gIHNobWJ1Zi5zaG1fcGVybS5naWQgPSBnZXRnaWQoKTsKKy0gIHNobWJ1Zi5zaG1fcGVybS5tb2RlID0gMDYwMDsKKy0KKy0gIGlmIChzaG1jdGwoaXBjX2lkLCBJUENfU0VULCAmc2htYnVmKSAhPSAwKSB7CistICAgIHNobWR0KHNobSk7CistICAgIHNobWN0bChpcGNfaWQsIElQQ19STUlELCBOVUxMKTsKKy0gICAgcmV0dXJuIDQ7CistICB9CistCistICBzaG1jdGwoaXBjX2lkLCBJUENfUk1JRCwgTlVMTCk7CistCistICBzdHJjcHkoc2htLCAiaGVsbG8iKTsKKy0KKy0gIHBpZCA9IGZvcmsoKTsKKy0gIGlmIChwaWQgPCAwKSB7CistICAgIHJldHVybiA1OworLSAgfSBlbHNlIGlmIChwaWQgPT0gMCkgeworLSAgICBzdHJjcHkoc2htLCAiYnllIik7CistICAgIHJldHVybiA2OworLSAgfQorLSAgaWYgKHdhaXQoJnN0YXR1cykgIT0gcGlkKSB7CistICAgIHJldHVybiA3OworLSAgfQorLSAgaWYgKCFXSUZFWElURUQoc3RhdHVzKSB8fCBXRVhJVFNUQVRVUyhzdGF0dXMpICE9IDYpIHsKKy0gICAgcmV0dXJuIDg7CistICB9CistICBpZiAoc3RyY21wKHNobSwgImJ5ZSIpICE9IDApIHsKKy0gICAgcmV0dXJuIDk7CistICB9CistICByZXR1cm4gMDsKKy19CistXSxkbmwKKy0gICAgQUNfREVGSU5FKEhBVkVfU0hNX0lQQywgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBTeXNWIElQQyBTSE0gc3VwcG9ydF0pCistICAgIG1zZz15ZXMsbXNnPW5vLG1zZz1ubykKKy0gIEFDX01TR19SRVNVTFQoWyRtc2ddKQorLQorLSAgQUNfTVNHX0NIRUNLSU5HKGZvciBtbWFwKCkgdXNpbmcgTUFQX0FOT04gc2hhcmVkIG1lbW9yeSBzdXBwb3J0KQorLSAgQUNfVFJZX1JVTihbCistI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgorLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgorLSNpbmNsdWRlIDx1bmlzdGQuaD4KKy0jaW5jbHVkZSA8c3RyaW5nLmg+CistCistI2lmbmRlZiBNQVBfQU5PTgorLSMgaWZkZWYgTUFQX0FOT05ZTU9VUworLSMgIGRlZmluZSBNQVBfQU5PTiBNQVBfQU5PTllNT1VTCistIyBlbmRpZgorLSNlbmRpZgorLSNpZm5kZWYgTUFQX0ZBSUxFRAorLSMgZGVmaW5lIE1BUF9GQUlMRUQgKCh2b2lkKiktMSkKKy0jZW5kaWYKKy0KKy1pbnQgbWFpbigpIHsKKy0gIHBpZF90IHBpZDsKKy0gIGludCBzdGF0dXM7CistICBjaGFyICpzaG07CistCistICBzaG0gPSBtbWFwKE5VTEwsIDQwOTYsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQgfCBNQVBfQU5PTiwgLTEsIDApOworLSAgaWYgKHNobSA9PSBNQVBfRkFJTEVEKSB7CistICAgIHJldHVybiAxOworLSAgfQorLQorLSAgc3RyY3B5KHNobSwgImhlbGxvIik7CistCistICBwaWQgPSBmb3JrKCk7CistICBpZiAocGlkIDwgMCkgeworLSAgICByZXR1cm4gNTsKKy0gIH0gZWxzZSBpZiAocGlkID09IDApIHsKKy0gICAgc3RyY3B5KHNobSwgImJ5ZSIpOworLSAgICByZXR1cm4gNjsKKy0gIH0KKy0gIGlmICh3YWl0KCZzdGF0dXMpICE9IHBpZCkgeworLSAgICByZXR1cm4gNzsKKy0gIH0KKy0gIGlmICghV0lGRVhJVEVEKHN0YXR1cykgfHwgV0VYSVRTVEFUVVMoc3RhdHVzKSAhPSA2KSB7CistICAgIHJldHVybiA4OworLSAgfQorLSAgaWYgKHN0cmNtcChzaG0sICJieWUiKSAhPSAwKSB7CistICAgIHJldHVybiA5OworLSAgfQorLSAgcmV0dXJuIDA7CistfQorLV0sZG5sCistICAgIEFDX0RFRklORShIQVZFX1NITV9NTUFQX0FOT04sIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgbW1hcChNQVBfQU5PTikgU0hNIHN1cHBvcnRdKQorLSAgICBtc2c9eWVzLG1zZz1ubyxtc2c9bm8pCistICBBQ19NU0dfUkVTVUxUKFskbXNnXSkKKy0KKy0gIEFDX01TR19DSEVDS0lORyhmb3IgbW1hcCgpIHVzaW5nIC9kZXYvemVybyBzaGFyZWQgbWVtb3J5IHN1cHBvcnQpCistICBBQ19UUllfUlVOKFsKKy0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CistI2luY2x1ZGUgPHN5cy93YWl0Lmg+CistI2luY2x1ZGUgPHN5cy9tbWFuLmg+CistI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CistI2luY2x1ZGUgPGZjbnRsLmg+CistI2luY2x1ZGUgPHVuaXN0ZC5oPgorLSNpbmNsdWRlIDxzdHJpbmcuaD4KKy0KKy0jaWZuZGVmIE1BUF9GQUlMRUQKKy0jIGRlZmluZSBNQVBfRkFJTEVEICgodm9pZCopLTEpCistI2VuZGlmCistCistaW50IG1haW4oKSB7CistICBwaWRfdCBwaWQ7CistICBpbnQgc3RhdHVzOworLSAgaW50IGZkOworLSAgY2hhciAqc2htOworLQorLSAgZmQgPSBvcGVuKCIvZGV2L3plcm8iLCBPX1JEV1IsIFNfSVJVU1IgfCBTX0lXVVNSKTsKKy0gIGlmIChmZCA9PSAtMSkgeworLSAgICByZXR1cm4gMTsKKy0gIH0KKy0KKy0gIHNobSA9IG1tYXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgZmQsIDApOworLSAgaWYgKHNobSA9PSBNQVBfRkFJTEVEKSB7CistICAgIHJldHVybiAyOworLSAgfQorLQorLSAgc3RyY3B5KHNobSwgImhlbGxvIik7CistCistICBwaWQgPSBmb3JrKCk7CistICBpZiAocGlkIDwgMCkgeworLSAgICByZXR1cm4gNTsKKy0gIH0gZWxzZSBpZiAocGlkID09IDApIHsKKy0gICAgc3RyY3B5KHNobSwgImJ5ZSIpOworLSAgICByZXR1cm4gNjsKKy0gIH0KKy0gIGlmICh3YWl0KCZzdGF0dXMpICE9IHBpZCkgeworLSAgICByZXR1cm4gNzsKKy0gIH0KKy0gIGlmICghV0lGRVhJVEVEKHN0YXR1cykgfHwgV0VYSVRTVEFUVVMoc3RhdHVzKSAhPSA2KSB7CistICAgIHJldHVybiA4OworLSAgfQorLSAgaWYgKHN0cmNtcChzaG0sICJieWUiKSAhPSAwKSB7CistICAgIHJldHVybiA5OworLSAgfQorLSAgcmV0dXJuIDA7CistfQorLV0sZG5sCistICAgIEFDX0RFRklORShIQVZFX1NITV9NTUFQX1pFUk8sIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgbW1hcCgiL2Rldi96ZXJvIikgU0hNIHN1cHBvcnRdKQorLSAgICBtc2c9eWVzLG1zZz1ubyxtc2c9bm8pCistICBBQ19NU0dfUkVTVUxUKFskbXNnXSkKKy0KKy0gIEFDX01TR19DSEVDS0lORyhmb3IgbW1hcCgpIHVzaW5nIHNobV9vcGVuKCkgc2hhcmVkIG1lbW9yeSBzdXBwb3J0KQorLSAgQUNfVFJZX1JVTihbCistI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgorLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgorLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgorLSNpbmNsdWRlIDxmY250bC5oPgorLSNpbmNsdWRlIDx1bmlzdGQuaD4KKy0jaW5jbHVkZSA8c3RyaW5nLmg+CistI2luY2x1ZGUgPHN0ZGxpYi5oPgorLSNpbmNsdWRlIDxzdGRpby5oPgorLQorLSNpZm5kZWYgTUFQX0ZBSUxFRAorLSMgZGVmaW5lIE1BUF9GQUlMRUQgKCh2b2lkKiktMSkKKy0jZW5kaWYKKy0KKy1pbnQgbWFpbigpIHsKKy0gIHBpZF90IHBpZDsKKy0gIGludCBzdGF0dXM7CistICBpbnQgZmQ7CistICBjaGFyICpzaG07CistICBjaGFyIHRtcG5hbWVbNDA5Nl07CistCistICBzcHJpbnRmKHRtcG5hbWUsInRlc3Quc2htLiVkWFhYWFhYIiwgZ2V0cGlkKCkpOworLSAgaWYgKG1rdGVtcCh0bXBuYW1lKSA9PSBOVUxMKSB7CistICAgIHJldHVybiAxOworLSAgfQorLSAgZmQgPSBzaG1fb3Blbih0bXBuYW1lLCBPX1JEV1IgfCBPX0NSRUFULCBTX0lSVVNSIHwgU19JV1VTUik7CistICBpZiAoZmQgPT0gLTEpIHsKKy0gICAgcmV0dXJuIDI7CistICB9CistICBpZiAoZnRydW5jYXRlKGZkLCA0MDk2KSA8IDApIHsKKy0gICAgY2xvc2UoZmQpOworLSAgICBzaG1fdW5saW5rKHRtcG5hbWUpOworLSAgICByZXR1cm4gMzsKKy0gIH0KKy0KKy0gIHNobSA9IG1tYXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgZmQsIDApOworLSAgaWYgKHNobSA9PSBNQVBfRkFJTEVEKSB7CistICAgIHJldHVybiA0OworLSAgfQorLSAgc2htX3VubGluayh0bXBuYW1lKTsKKy0gIGNsb3NlKGZkKTsKKy0KKy0gIHN0cmNweShzaG0sICJoZWxsbyIpOworLQorLSAgcGlkID0gZm9yaygpOworLSAgaWYgKHBpZCA8IDApIHsKKy0gICAgcmV0dXJuIDU7CistICB9IGVsc2UgaWYgKHBpZCA9PSAwKSB7CistICAgIHN0cmNweShzaG0sICJieWUiKTsKKy0gICAgcmV0dXJuIDY7CistICB9CistICBpZiAod2FpdCgmc3RhdHVzKSAhPSBwaWQpIHsKKy0gICAgcmV0dXJuIDc7CistICB9CistICBpZiAoIVdJRkVYSVRFRChzdGF0dXMpIHx8IFdFWElUU1RBVFVTKHN0YXR1cykgIT0gNikgeworLSAgICByZXR1cm4gODsKKy0gIH0KKy0gIGlmIChzdHJjbXAoc2htLCAiYnllIikgIT0gMCkgeworLSAgICByZXR1cm4gOTsKKy0gIH0KKy0gIHJldHVybiAwOworLX0KKy1dLGRubAorLSAgICBBQ19ERUZJTkUoSEFWRV9TSE1fTU1BUF9QT1NJWCwgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBQT1NJWCBtbWFwKCkgU0hNIHN1cHBvcnRdKQorLSAgICBtc2c9eWVzLG1zZz1ubyxtc2c9bm8pCistICBBQ19NU0dfUkVTVUxUKFskbXNnXSkKKysgIEFDX0RFRklORShIQVZFX1NITV9NTUFQX1BPU0lYLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIFBPU0lYIG1tYXAoKSBTSE0gc3VwcG9ydF0pCisgCisgICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIG1tYXAoKSB1c2luZyByZWd1bGFyIGZpbGUgc2hhcmVkIG1lbW9yeSBzdXBwb3J0KQorLSAgQUNfVFJZX1JVTihbCistI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgorLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgorLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgorLSNpbmNsdWRlIDxmY250bC5oPgorLSNpbmNsdWRlIDx1bmlzdGQuaD4KKy0jaW5jbHVkZSA8c3RyaW5nLmg+CistI2luY2x1ZGUgPHN0ZGxpYi5oPgorLSNpbmNsdWRlIDxzdGRpby5oPgorLQorLSNpZm5kZWYgTUFQX0ZBSUxFRAorLSMgZGVmaW5lIE1BUF9GQUlMRUQgKCh2b2lkKiktMSkKKy0jZW5kaWYKKy0KKy1pbnQgbWFpbigpIHsKKy0gIHBpZF90IHBpZDsKKy0gIGludCBzdGF0dXM7CistICBpbnQgZmQ7CistICBjaGFyICpzaG07CistICBjaGFyIHRtcG5hbWVbNDA5Nl07CistCistICBzcHJpbnRmKHRtcG5hbWUsInRlc3Quc2htLiVkWFhYWFhYIiwgZ2V0cGlkKCkpOworLSAgaWYgKG1rdGVtcCh0bXBuYW1lKSA9PSBOVUxMKSB7CistICAgIHJldHVybiAxOworLSAgfQorLSAgZmQgPSBvcGVuKHRtcG5hbWUsIE9fUkRXUiB8IE9fQ1JFQVQsIFNfSVJVU1IgfCBTX0lXVVNSKTsKKy0gIGlmIChmZCA9PSAtMSkgeworLSAgICByZXR1cm4gMjsKKy0gIH0KKy0gIGlmIChmdHJ1bmNhdGUoZmQsIDQwOTYpIDwgMCkgeworLSAgICBjbG9zZShmZCk7CistICAgIHVubGluayh0bXBuYW1lKTsKKy0gICAgcmV0dXJuIDM7CistICB9CistCistICBzaG0gPSBtbWFwKE5VTEwsIDQwOTYsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIGZkLCAwKTsKKy0gIGlmIChzaG0gPT0gTUFQX0ZBSUxFRCkgeworLSAgICByZXR1cm4gNDsKKy0gIH0KKy0gIHVubGluayh0bXBuYW1lKTsKKy0gIGNsb3NlKGZkKTsKKy0KKy0gIHN0cmNweShzaG0sICJoZWxsbyIpOworLQorLSAgcGlkID0gZm9yaygpOworLSAgaWYgKHBpZCA8IDApIHsKKy0gICAgcmV0dXJuIDU7CistICB9IGVsc2UgaWYgKHBpZCA9PSAwKSB7CistICAgIHN0cmNweShzaG0sICJieWUiKTsKKy0gICAgcmV0dXJuIDY7CistICB9CistICBpZiAod2FpdCgmc3RhdHVzKSAhPSBwaWQpIHsKKy0gICAgcmV0dXJuIDc7CistICB9CistICBpZiAoIVdJRkVYSVRFRChzdGF0dXMpIHx8IFdFWElUU1RBVFVTKHN0YXR1cykgIT0gNikgeworLSAgICByZXR1cm4gODsKKy0gIH0KKy0gIGlmIChzdHJjbXAoc2htLCAiYnllIikgIT0gMCkgeworLSAgICByZXR1cm4gOTsKKy0gIH0KKy0gIHJldHVybiAwOworLX0KKy1dLGRubAorLSAgICBBQ19ERUZJTkUoSEFWRV9TSE1fTU1BUF9GSUxFLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIG1tYXAoKSBTSE0gc3VwcG9ydF0pCistICAgIG1zZz15ZXMsbXNnPW5vLG1zZz1ubykKKy0gIEFDX01TR19SRVNVTFQoWyRtc2ddKQorLQorLWZsb2NrX3R5cGU9dW5rbm93bgorLUFDX01TR19DSEVDS0lORygid2hldGhlciBmbG9jayBzdHJ1Y3QgaXMgbGludXggb3JkZXJlZCIpCistQUNfVFJZX1JVTihbCistICAjaW5jbHVkZSA8ZmNudGwuaD4KKy0gIHN0cnVjdCBmbG9jayBsb2NrID0geyAxLCAyLCAzLCA0LCA1IH07CistICBpbnQgbWFpbigpIHsgCistICAgIGlmKGxvY2subF90eXBlID09IDEgJiYgbG9jay5sX3doZW5jZSA9PSAyICYmIGxvY2subF9zdGFydCA9PSAzICYmIGxvY2subF9sZW4gPT0gNCkgeworLQkJcmV0dXJuIDA7CistICAgIH0KKy0gICAgcmV0dXJuIDE7CistICB9IAorLV0sIFsKKy0JZmxvY2tfdHlwZT1saW51eAorLSAgICBBQ19ERUZJTkUoW0hBVkVfRkxPQ0tfTElOVVhdLCBbXSwgW1N0cnVjdCBmbG9jayBpcyBMaW51eC10eXBlXSkKKy0gICAgQUNfTVNHX1JFU1VMVCgieWVzIikKKy1dLCBBQ19NU0dfUkVTVUxUKCJubyIpICkKKysgIAorKyAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfRklMRSwgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBtbWFwKCkgU0hNIHN1cHBvcnRdKQorIAorLUFDX01TR19DSEVDS0lORygid2hldGhlciBmbG9jayBzdHJ1Y3QgaXMgQlNEIG9yZGVyZWQiKQorLUFDX1RSWV9SVU4oWworLSAgI2luY2x1ZGUgPGZjbnRsLmg+CistICBzdHJ1Y3QgZmxvY2sgbG9jayA9IHsgMSwgMiwgMywgNCwgNSB9OworLSAgaW50IG1haW4oKSB7IAorLSAgICBpZihsb2NrLmxfc3RhcnQgPT0gMSAmJiBsb2NrLmxfbGVuID09IDIgJiYgbG9jay5sX3R5cGUgPT0gNCAmJiBsb2NrLmxfd2hlbmNlID09IDUpIHsKKy0JCXJldHVybiAwOworLSAgICB9CistICAgIHJldHVybiAxOworLSAgfSAKKy1dLCBbCistCWZsb2NrX3R5cGU9YnNkCistICAgIEFDX0RFRklORShbSEFWRV9GTE9DS19CU0RdLCBbXSwgW1N0cnVjdCBmbG9jayBpcyBCU0QtdHlwZV0pIAorLSAgICBBQ19NU0dfUkVTVUxUKCJ5ZXMiKQorLV0sIEFDX01TR19SRVNVTFQoIm5vIikgKQorKyAgZmxvY2tfdHlwZT1saW51eAorKyAgQUNfREVGSU5FKFtIQVZFX0ZMT0NLX0xJTlVYXSwgW10sIFtTdHJ1Y3QgZmxvY2sgaXMgTGludXgtdHlwZV0pCisgCisgaWYgdGVzdCAiJGZsb2NrX3R5cGUiID0gInVua25vd24iOyB0aGVuCisgCUFDX01TR19FUlJPUihbRG9uJ3Qga25vdyBob3cgdG8gZGVmaW5lIHN0cnVjdCBmbG9jayBvbiB0aGlzIHN5c3RlbVssXSBzZXQgLS1lbmFibGUtb3BjYWNoZT1ub10pCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL2NoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlOTAxODQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL2NoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoCkBAIC0wLDAgKzEsNjEgQEAKK0Zyb20gM2JmY2M3ZmRkMjIyNjFlYWVkMTA5NDk3MTRkZTBhOTBkMzFlMTBhYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFRodSwgMjAgQXVnIDIwMTUgMTY6Mjk6MzUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gW1BBVENIXSBjb25maWcubTQ6IGNoYW5nZSBBQ19UUllfUlVOIHRvIEFDX1RSWV9MSU5LCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitBQ19UUllfUlVOIGlzIG5vdCBzdWl0YWJsZSBmb3IgY3Jvc3MtY29tcGlsZQorCitTaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CisKKyUlIG9yaWdpbmFsIHBhdGNoOiBjaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaAorLS0tCisgZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNCB8IDMxICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2V4dC9maWxlaW5mby9jb25maWcubTQgYi9leHQvZmlsZWluZm8vY29uZmlnLm00CitpbmRleCA1MjNiNGZkLi4wYWFhNGM4IDEwMDY0NAorLS0tIGEvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNAorKysrIGIvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNAorQEAgLTE0LDMxICsxNCwxMiBAQCBpZiB0ZXN0ICIkUEhQX0ZJTEVJTkZPIiAhPSAibm8iOyB0aGVuCisgICAgIGxpYm1hZ2ljL3JlYWRjZGYuYyBsaWJtYWdpYy9zb2Z0bWFnaWMuYyBsaWJtYWdpYy9kZXIuYyIKKyAKKyAgIEFDX01TR19DSEVDS0lORyhbZm9yIHN0cmNhc2VzdHJdKQorLSAgQUNfVFJZX1JVTihbCistI2luY2x1ZGUgPHN0cmluZy5oPgorLSNpbmNsdWRlIDxzdHJpbmdzLmg+CistI2luY2x1ZGUgPHN0ZGxpYi5oPgorLQorLWludCBtYWluKHZvaWQpCisteworLSAgICAgICAgY2hhciAqczAsICpzMSwgKnJldDsKKy0KKy0gICAgICAgIHMwID0gKGNoYXIgKikgbWFsbG9jKDQyKTsKKy0gICAgICAgIHMxID0gKGNoYXIgKikgbWFsbG9jKDgpOworLQorLSAgICAgICAgbWVtc2V0KHMwLCAnWCcsIDQyKTsKKy0gICAgICAgIHMwWzI0XSA9ICdZJzsKKy0gICAgICAgIHMwWzI2XSA9ICdaJzsKKy0gICAgICAgIHMwWzQxXSA9ICdcMCc7CistICAgICAgICBtZW1zZXQoczEsICd4JywgOCk7CistICAgICAgICBzMVswXSA9ICd5JzsKKy0gICAgICAgIHMxWzJdID0gJ1onOworLSAgICAgICAgczFbN10gPSAnXDAnOworLQorLSAgICAgICAgcmV0ID0gc3RyY2FzZXN0cihzMCwgczEpOworLQorLSAgICAgICAgcmV0dXJuICEoTlVMTCAhPSByZXQpOworLX0KKysgIEFDX1RSWV9DT01QSUxFKFsKKysgICAgICNpbmNsdWRlIDxzdHJpbmcuaD4KKysgICAgICNpbmNsdWRlIDxzdHJpbmdzLmg+CisrICAgICAjaW5jbHVkZSA8c3RkbGliLmg+CisrICBdLFsKKysgICAgIHN0cmNhc2VzdHIoTlVMTCwgTlVMTCk7CisgICBdLFsKKyAgICAgZG5sIHVzaW5nIHRoZSBwbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbgorICAgICBBQ19NU0dfUkVTVUxUKHllcykKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9jb25maWd1cmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL2NvbmZpZ3VyZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzUzMzRjNy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL2NvbmZpZ3VyZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBwaHAtNS4xLjYvY29uZmlndXJlLm9sZAkyMDA2LTA5LTEyIDA3OjU0OjE0LjAwMDAwMDAwMCAtMDcwMAotKysrIHBocC01LjEuNi9jb25maWd1cmUJMjAwNi0wOS0xMiAwNzo1NDozNy4wMDAwMDAwMDAgLTA3MDAKLUBAIC0xNDcxNSw4ICsxNDcxNSw2IEBACi0gCi0gCi0gCi0tICB1bnNldCBhY19jdl9mdW5jX2Rsb3BlbgotLSAgdW5zZXQgYWNfY3ZfZnVuY19fX2Rsb3BlbgotICAgdW5zZXQgZm91bmQKLSAgIAotICAgZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiIiLi4uICRhY19jIiAxPiY2CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL2ljb252LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9pY29udi5wYXRjaAppbmRleCAyNTVmYmIwLi5iNmUzY2ViIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL2ljb252LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvaWNvbnYucGF0Y2gKQEAgLTEsMTAgKzEsMTggQEAKLVVwc3RyZWFtLXN0YXR1czogVW5rbm93bgorRnJvbSAxN2NjNTY0NWYzYWNmOTQzYTVhMDY0NjVkMDlkMGViY2ZlYTk4N2JkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK0RhdGU6IFdlZCwgMiBOb3YgMjAxMSAxNjo1NDo1NyArMDEwMAorU3ViamVjdDogW1BBVENIXSBVcHN0cmVhbS1zdGF0dXM6IFVua25vd24KKworLS0tCisgYWNpbmNsdWRlLm00ICAgICAgICB8IDMgKystCisgZXh0L2ljb252L2NvbmZpZy5tNCB8IDIgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2FjaW5jbHVkZS5tNCBiL2FjaW5jbHVkZS5tNAotaW5kZXggYTZjMGQ4NC4uZGYxMWFiZCAxMDA2NDQKK2luZGV4IGQzMjc2NmEuLmFkNTE2NmUgMTAwNjQ0CiAtLS0gYS9hY2luY2x1ZGUubTQKICsrKyBiL2FjaW5jbHVkZS5tNAotQEAgLTI0NTIsNyArMjQ1Miw4IEBAIEFDX0RFRlVOKFtQSFBfU0VUVVBfSUNPTlZdLCBbCitAQCAtMjQ0NSw3ICsyNDQ1LDggQEAgQUNfREVGVU4oW1BIUF9TRVRVUF9JQ09OVl0sIFsKICAgIGRubCBDaGVjayBsaWJjIGZpcnN0IGlmIG5vIHBhdGggaXMgcHJvdmlkZWQgaW4gLS13aXRoLWljb252CiAgICBkbmwKICAKQEAgLTE1LDcgKzIzLDcgQEAKICAgICAgZG5sIC1saWNvbnYgaW4uCiAgICAgIExJQlNfc2F2ZT0iJExJQlMiCiBkaWZmIC0tZ2l0IGEvZXh0L2ljb252L2NvbmZpZy5tNCBiL2V4dC9pY29udi9jb25maWcubTQKLWluZGV4IGQ2NzNiMGEuLjFmYmVmMTMgMTAwNjQ0CitpbmRleCA2YTA1Njk3Li45NzNlNzUwIDEwMDY0NAogLS0tIGEvZXh0L2ljb252L2NvbmZpZy5tNAogKysrIGIvZXh0L2ljb252L2NvbmZpZy5tNAogQEAgLTE1LDcgKzE1LDcgQEAgaWYgdGVzdCAiJFBIUF9JQ09OViIgIT0gIm5vIjsgdGhlbgpAQCAtMjcsNiArMzUsMyBAQAogICAgICAgICAgaWYgdGVzdCAtZiAiJGkvaW5jbHVkZS9pY29udi5oIiB8fCB0ZXN0IC1mICIkaS9pbmNsdWRlL2dpY29udi5oIjsgdGhlbgogICAgICAgICAgICBQSFBfSUNPTlZfUFJFRklYPSIkaSIKICAgICAgICAgICAgYnJlYWsKLS0tIAotMS45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9pbWFwLWZpeC1hdXRvZm9vLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9pbWFwLWZpeC1hdXRvZm9vLnBhdGNoCmluZGV4IGRhMDRjMmQuLmI1ZmI3ZDQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvaW1hcC1maXgtYXV0b2Zvby5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL2ltYXAtZml4LWF1dG9mb28ucGF0Y2gKQEAgLTEsMTAgKzEsMTggQEAKLVVwc3RyZWFtLXN0YXR1czogVW5rbm93bgorRnJvbSBjMDg0YzgzNDlkMTc4MDk4MGUyMzJjYjI4YjYwYTEwOWUzZDg5NDM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK0RhdGU6IFdlZCwgMiBOb3YgMjAxMSAxNjo1NDo1NyArMDEwMAorU3ViamVjdDogW1BBVENIXSBVcHN0cmVhbS1zdGF0dXM6IFVua25vd24KKworLS0tCisgYWNpbmNsdWRlLm00ICAgICAgIHwgIDIgKy0KKyBleHQvaW1hcC9jb25maWcubTQgfCAxMCArKy0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9hY2luY2x1ZGUubTQgYi9hY2luY2x1ZGUubTQKLWluZGV4IGRmMTFhYmQuLjA2ZTcyMzYgMTAwNjQ0CitpbmRleCBhZDUxNjZlLi5mNmE1NWVjIDEwMDY0NAogLS0tIGEvYWNpbmNsdWRlLm00CiArKysgYi9hY2luY2x1ZGUubTQKLUBAIC0yMzU3LDcgKzIzNTcsNyBAQCBBQ19ERUZVTihbUEhQX1NFVFVQX09QRU5TU0xdLFsKK0BAIC0yMzUwLDcgKzIzNTAsNyBAQCBBQ19ERUZVTihbUEhQX1NFVFVQX09QRU5TU0xdLFsKICAgICAgICBQSFBfT1BFTlNTTF9ESVI9Ii91c3IvbG9jYWwvc3NsIC91c3IvbG9jYWwgL3VzciAvdXNyL2xvY2FsL29wZW5zc2wiCiAgICAgIGZpCiAgCkBAIC0xNCw3ICsyMiw3IEBACiAgICAgICAgICBPUEVOU1NMX0lOQ0RJUj0kaS9pbmNsdWRlCiAgICAgICAgZmkKIGRpZmYgLS1naXQgYS9leHQvaW1hcC9jb25maWcubTQgYi9leHQvaW1hcC9jb25maWcubTQKLWluZGV4IDNmY2Y2NzQuLmYwOGNhZjcgMTAwNjQ0CitpbmRleCBiYWRiNmUyLi44ZmY4MDNjIDEwMDY0NAogLS0tIGEvZXh0L2ltYXAvY29uZmlnLm00CiArKysgYi9leHQvaW1hcC9jb25maWcubTQKIEBAIC0xMDksNyArMTA5LDcgQEAgaWYgdGVzdCAiJFBIUF9JTUFQIiAhPSAibm8iOyB0aGVuCkBAIC00MSw2ICs0OSwzIEBACiAgICAgICAgSU1BUF9MSUI9JGxpYgogICAgICAgIElNQVBfTElCX0NISygkUEhQX0xJQkRJUikKICAgICAgICBJTUFQX0xJQl9DSEsoYy1jbGllbnQpCi0tLSAKLTEuOS4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGVhci1tYWtlZmlsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGVhci1tYWtlZmlsZS5wYXRjaAppbmRleCA5OTI3ZDJkLi40YmMxMDI1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BlYXItbWFrZWZpbGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9wZWFyLW1ha2VmaWxlLnBhdGNoCkBAIC0xLDExICsxLDE4IEBACi1VcHN0cmVhbS1zdGF0dXM6IFVua25vd24KK0Zyb20gZWRkNTc1YTU0NmQ1NmJiNTY4M2FmZjE5NzgyYjE2OTYzZDYxZmQwYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+CitEYXRlOiBXZWQsIDIgTm92IDIwMTEgMTY6NTQ6NTcgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXBzdHJlYW0tc3RhdHVzOiBVbmtub3duCisKKy0tLQorIHBlYXIvTWFrZWZpbGUuZnJhZyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL3BlYXIvTWFrZWZpbGUuZnJhZyBiL3BlYXIvTWFrZWZpbGUuZnJhZwotaW5kZXggMDBiYWNhZS4uNzM5ZWVjYSAxMDA2NDQKK2luZGV4IGJiZThlYzMuLjE2ZjQzZTIgMTAwNjQ0CiAtLS0gYS9wZWFyL01ha2VmaWxlLmZyYWcKICsrKyBiL3BlYXIvTWFrZWZpbGUuZnJhZwotQEAgLTExLDcgKzExLDcgQEAgUEVBUl9QUkVGSVggPSAtZHAgYSR7cHJvZ3JhbV9wcmVmaXh9Ci0gUEVBUl9TVUZGSVggPSAtZHMgYSQocHJvZ3JhbV9zdWZmaXgpCitAQCAtMTIsNyArMTIsNyBAQCBQRUFSX1NVRkZJWCA9IC1kcyBhJChwcm9ncmFtX3N1ZmZpeCkKKyBQRUFSX0lOU1RBTExFUl9VUkwgPSBodHRwczovL3BlYXIucGhwLm5ldC9pbnN0YWxsLXBlYXItbm96bGliLnBoYXIKICAKICBpbnN0YWxsLXBlYXItaW5zdGFsbGVyOiAkKFNBUElfQ0xJX1BBVEgpCiAtCUAkKHRvcF9idWlsZGRpcikvc2FwaS9jbGkvcGhwICQoUEVBUl9JTlNUQUxMX0ZMQUdTKSBwZWFyL2luc3RhbGwtcGVhci1ub3psaWIucGhhciAtZCAiJChwZWFyZGlyKSIgLWIgIiQoYmluZGlyKSIgJHtQRUFSX1BSRUZJWH0gJHtQRUFSX1NVRkZJWH0KQEAgLTEzLDYgKzIwLDMgQEAKICAKICBpbnN0YWxsLXBlYXI6CiAgCUBlY2hvICJJbnN0YWxsaW5nIFBFQVIgZW52aXJvbm1lbnQ6ICAgICAgJChJTlNUQUxMX1JPT1QpJChwZWFyZGlyKS8iCi0tLSAKLTEuOS4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhhci1tYWtlZmlsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhhci1tYWtlZmlsZS5wYXRjaAppbmRleCAyZjdmZTM0Li4zMzZjZjBkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BoYXItbWFrZWZpbGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waGFyLW1ha2VmaWxlLnBhdGNoCkBAIC0xLDE3ICsxLDI0IEBACi1GaXggcGhhciBwYWNrYWdpbmcKK0Zyb20gMDg5NjJhNTZmNjk5NjNlMDE4OTJkOThjYTViNzVkZTgzNTRiZDNmNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+CitEYXRlOiBXZWQsIDIgTm92IDIwMTEgMTY6NTQ6NTcgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IHBoYXIgcGFja2FnaW5nCiAKIEluaGVyaXRlZCBmcm9tIE9FLUNsYXNzaWMsIHdpdGggc29tZSBhZGRpdGlvbnMgdG8gZml4IGhvc3QgcGF0aHMgbGVha2luZwogaW50byB0aGUgdGFyZ2V0IHBhY2thZ2UuCiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlnXQogCistLS0KKyBleHQvcGhhci9NYWtlZmlsZS5mcmFnIHwgMTcgKysrLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKKwogZGlmZiAtLWdpdCBhL2V4dC9waGFyL01ha2VmaWxlLmZyYWcgYi9leHQvcGhhci9NYWtlZmlsZS5mcmFnCi1pbmRleCA2NTE2ZGRmLi4zNmU2Y2Y0IDEwMDY0NAoraW5kZXggMGUzNzEzZi4uMjJmNzg5OCAxMDA2NDQKIC0tLSBhL2V4dC9waGFyL01ha2VmaWxlLmZyYWcKICsrKyBiL2V4dC9waGFyL01ha2VmaWxlLmZyYWcKLUBAIC01LDIwICs1LDkgQEAgcGhhcmNtZDogJChidWlsZGRpcikvcGhhci5waHAgJChidWlsZGRpcikvcGhhci5waGFyCitAQCAtMTAsMjAgKzEwLDkgQEAgcGhhcmNtZDogJChidWlsZGRpcikvcGhhci5waHAgJChidWlsZGRpcikvcGhhci5waGFyCiAgCi0gUEhQX1BIQVJDTURfU0VUVElOR1MgPSAtZCAnb3Blbl9iYXNlZGlyPScgLWQgJ291dHB1dF9idWZmZXJpbmc9MCcgLWQgJ21lbW9yeV9saW1pdD0tMScgLWQgcGhhci5yZWFkb25seT0wIC1kICdzYWZlX21vZGU9MCcKKyBQSFBfUEhBUkNNRF9TRVRUSU5HUyA9IC1uIC1kICdvcGVuX2Jhc2VkaXI9JyAtZCAnb3V0cHV0X2J1ZmZlcmluZz0wJyAtZCAnbWVtb3J5X2xpbWl0PS0xJyAtZCBwaGFyLnJlYWRvbmx5PTAgLWQgJ3NhZmVfbW9kZT0wJwogIFBIUF9QSEFSQ01EX0VYRUNVVEFCTEUgPSBgIFwKIC0JaWYgdGVzdCAteCAiJCh0b3BfYnVpbGRkaXIpLyQoU0FQSV9DTElfUEFUSCkiOyB0aGVuIFwKIC0JCSQodG9wX3NyY2RpcikvYnVpbGQvc2h0b29sIGVjaG8gLW4gLS0gIiQodG9wX2J1aWxkZGlyKS8kKFNBUElfQ0xJX1BBVEgpIC1uIjsgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHA1LTAwMDEtb3BjYWNoZS1jb25maWcubTQtZW5hYmxlLW9wY2FjaGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BocDUtMDAwMS1vcGNhY2hlLWNvbmZpZy5tNC1lbmFibGUtb3BjYWNoZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmU2N2VhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHA1LTAwMDEtb3BjYWNoZS1jb25maWcubTQtZW5hYmxlLW9wY2FjaGUucGF0Y2gKQEAgLTAsMCArMSwzODcgQEAKK0Zyb20gZmFmY2ZhYzA5MzNjMTdlMWJmNTUxNjAwMDgwZWIwNTQxMTg2Y2FmNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFudWogTWl0dGFsIDxhbnVqLm1pdHRhbEBpbnRlbC5jb20+CitEYXRlOiBNb24sIDIgQXByIDIwMTggMTc6NTQ6NTIgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gb3BjYWNoZS9jb25maWcubTQ6IGVuYWJsZSBvcGNhY2hlCisKK1dlIGNhbid0IHVzZSBBQ19UUllfUlVOIHRvIHJ1biBwcm9ncmFtcyBpbiBhIGNyb3NzIGNvbXBpbGUgZW52aXJvbm1lbnQuIFNldAordGhlIHZhcmlhYmxlcyBkaXJlY3RseSBpbnN0ZWFkIHNpbmNlIHdlIGtub3cgdGhhdCB3ZSdkIGJlIHJ1bm5pbmcgb24gbGF0ZXN0Citlbm91Z2ggbGludXgga2VybmVsLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW0NvbmZpZ3VyYXRpb25dCisKK1NpZ25lZC1vZmYtYnk6IEFudWogTWl0dGFsIDxhbnVqLm1pdHRhbEBpbnRlbC5jb20+CisKKyUlIG9yaWdpbmFsIHBhdGNoOiBwaHA1LTAwMDEtb3BjYWNoZS1jb25maWcubTQtZW5hYmxlLW9wY2FjaGUucGF0Y2gKKy0tLQorIGV4dC9vcGNhY2hlL2NvbmZpZy5tNCB8IDM0OSArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDM0MSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2V4dC9vcGNhY2hlL2NvbmZpZy5tNCBiL2V4dC9vcGNhY2hlL2NvbmZpZy5tNAoraW5kZXggNWE4Yjg2Yy4uNmU4N2ZhNSAxMDA2NDQKKy0tLSBhL2V4dC9vcGNhY2hlL2NvbmZpZy5tNAorKysrIGIvZXh0L29wY2FjaGUvY29uZmlnLm00CitAQCAtMTEsMzUzICsxMSwyMCBAQCBpZiB0ZXN0ICIkUEhQX09QQ0FDSEUiICE9ICJubyI7IHRoZW4KKyAgICAgQUNfREVGSU5FKEhBVkVfTVBST1RFQ1QsIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgbXByb3RlY3QoKSBmdW5jdGlvbl0pCisgICBdKQorIAorLSAgQUNfTVNHX0NIRUNLSU5HKGZvciBzeXN2aXBjIHNoYXJlZCBtZW1vcnkgc3VwcG9ydCkKKy0gIEFDX1RSWV9SVU4oWworLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKy0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KKy0jaW5jbHVkZSA8c3lzL2lwYy5oPgorLSNpbmNsdWRlIDxzeXMvc2htLmg+CistI2luY2x1ZGUgPHVuaXN0ZC5oPgorLSNpbmNsdWRlIDxzdHJpbmcuaD4KKysgIEFDX0RFRklORShIQVZFX1NITV9JUEMsIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgU3lzViBJUEMgU0hNIHN1cHBvcnRdKQorIAorLWludCBtYWluKCkgeworLSAgcGlkX3QgcGlkOworLSAgaW50IHN0YXR1czsKKy0gIGludCBpcGNfaWQ7CistICBjaGFyICpzaG07CistICBzdHJ1Y3Qgc2htaWRfZHMgc2htYnVmOworKyAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfQU5PTiwgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBtbWFwKE1BUF9BTk9OKSBTSE0gc3VwcG9ydF0pCisgCistICBpcGNfaWQgPSBzaG1nZXQoSVBDX1BSSVZBVEUsIDQwOTYsIChJUENfQ1JFQVQgfCBTSE1fUiB8IFNITV9XKSk7CistICBpZiAoaXBjX2lkID09IC0xKSB7CistICAgIHJldHVybiAxOworLSAgfQorKyAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfWkVSTywgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBtbWFwKCIvZGV2L3plcm8iKSBTSE0gc3VwcG9ydF0pCisgCistICBzaG0gPSBzaG1hdChpcGNfaWQsIE5VTEwsIDApOworLSAgaWYgKHNobSA9PSAodm9pZCAqKS0xKSB7CistICAgIHNobWN0bChpcGNfaWQsIElQQ19STUlELCBOVUxMKTsKKy0gICAgcmV0dXJuIDI7CistICB9CistCistICBpZiAoc2htY3RsKGlwY19pZCwgSVBDX1NUQVQsICZzaG1idWYpICE9IDApIHsKKy0gICAgc2htZHQoc2htKTsKKy0gICAgc2htY3RsKGlwY19pZCwgSVBDX1JNSUQsIE5VTEwpOworLSAgICByZXR1cm4gMzsKKy0gIH0KKy0KKy0gIHNobWJ1Zi5zaG1fcGVybS51aWQgPSBnZXR1aWQoKTsKKy0gIHNobWJ1Zi5zaG1fcGVybS5naWQgPSBnZXRnaWQoKTsKKy0gIHNobWJ1Zi5zaG1fcGVybS5tb2RlID0gMDYwMDsKKy0KKy0gIGlmIChzaG1jdGwoaXBjX2lkLCBJUENfU0VULCAmc2htYnVmKSAhPSAwKSB7CistICAgIHNobWR0KHNobSk7CistICAgIHNobWN0bChpcGNfaWQsIElQQ19STUlELCBOVUxMKTsKKy0gICAgcmV0dXJuIDQ7CistICB9CistCistICBzaG1jdGwoaXBjX2lkLCBJUENfUk1JRCwgTlVMTCk7CistCistICBzdHJjcHkoc2htLCAiaGVsbG8iKTsKKy0KKy0gIHBpZCA9IGZvcmsoKTsKKy0gIGlmIChwaWQgPCAwKSB7CistICAgIHJldHVybiA1OworLSAgfSBlbHNlIGlmIChwaWQgPT0gMCkgeworLSAgICBzdHJjcHkoc2htLCAiYnllIik7CistICAgIHJldHVybiA2OworLSAgfQorLSAgaWYgKHdhaXQoJnN0YXR1cykgIT0gcGlkKSB7CistICAgIHJldHVybiA3OworLSAgfQorLSAgaWYgKCFXSUZFWElURUQoc3RhdHVzKSB8fCBXRVhJVFNUQVRVUyhzdGF0dXMpICE9IDYpIHsKKy0gICAgcmV0dXJuIDg7CistICB9CistICBpZiAoc3RyY21wKHNobSwgImJ5ZSIpICE9IDApIHsKKy0gICAgcmV0dXJuIDk7CistICB9CistICByZXR1cm4gMDsKKy19CistXSxkbmwKKy0gICAgQUNfREVGSU5FKEhBVkVfU0hNX0lQQywgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBTeXNWIElQQyBTSE0gc3VwcG9ydF0pCistICAgIG1zZz15ZXMsbXNnPW5vLG1zZz1ubykKKy0gIEFDX01TR19SRVNVTFQoWyRtc2ddKQorLQorLSAgQUNfTVNHX0NIRUNLSU5HKGZvciBtbWFwKCkgdXNpbmcgTUFQX0FOT04gc2hhcmVkIG1lbW9yeSBzdXBwb3J0KQorLSAgQUNfVFJZX1JVTihbCistI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgorLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgorLSNpbmNsdWRlIDx1bmlzdGQuaD4KKy0jaW5jbHVkZSA8c3RyaW5nLmg+CistCistI2lmbmRlZiBNQVBfQU5PTgorLSMgaWZkZWYgTUFQX0FOT05ZTU9VUworLSMgIGRlZmluZSBNQVBfQU5PTiBNQVBfQU5PTllNT1VTCistIyBlbmRpZgorLSNlbmRpZgorLSNpZm5kZWYgTUFQX0ZBSUxFRAorLSMgZGVmaW5lIE1BUF9GQUlMRUQgKCh2b2lkKiktMSkKKy0jZW5kaWYKKy0KKy1pbnQgbWFpbigpIHsKKy0gIHBpZF90IHBpZDsKKy0gIGludCBzdGF0dXM7CistICBjaGFyICpzaG07CistCistICBzaG0gPSBtbWFwKE5VTEwsIDQwOTYsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQgfCBNQVBfQU5PTiwgLTEsIDApOworLSAgaWYgKHNobSA9PSBNQVBfRkFJTEVEKSB7CistICAgIHJldHVybiAxOworLSAgfQorLQorLSAgc3RyY3B5KHNobSwgImhlbGxvIik7CistCistICBwaWQgPSBmb3JrKCk7CistICBpZiAocGlkIDwgMCkgeworLSAgICByZXR1cm4gNTsKKy0gIH0gZWxzZSBpZiAocGlkID09IDApIHsKKy0gICAgc3RyY3B5KHNobSwgImJ5ZSIpOworLSAgICByZXR1cm4gNjsKKy0gIH0KKy0gIGlmICh3YWl0KCZzdGF0dXMpICE9IHBpZCkgeworLSAgICByZXR1cm4gNzsKKy0gIH0KKy0gIGlmICghV0lGRVhJVEVEKHN0YXR1cykgfHwgV0VYSVRTVEFUVVMoc3RhdHVzKSAhPSA2KSB7CistICAgIHJldHVybiA4OworLSAgfQorLSAgaWYgKHN0cmNtcChzaG0sICJieWUiKSAhPSAwKSB7CistICAgIHJldHVybiA5OworLSAgfQorLSAgcmV0dXJuIDA7CistfQorLV0sZG5sCistICAgIEFDX0RFRklORShIQVZFX1NITV9NTUFQX0FOT04sIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgbW1hcChNQVBfQU5PTikgU0hNIHN1cHBvcnRdKQorLSAgICBtc2c9eWVzLG1zZz1ubyxtc2c9bm8pCistICBBQ19NU0dfUkVTVUxUKFskbXNnXSkKKy0KKy0gIEFDX01TR19DSEVDS0lORyhmb3IgbW1hcCgpIHVzaW5nIC9kZXYvemVybyBzaGFyZWQgbWVtb3J5IHN1cHBvcnQpCistICBBQ19UUllfUlVOKFsKKy0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CistI2luY2x1ZGUgPHN5cy93YWl0Lmg+CistI2luY2x1ZGUgPHN5cy9tbWFuLmg+CistI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CistI2luY2x1ZGUgPGZjbnRsLmg+CistI2luY2x1ZGUgPHVuaXN0ZC5oPgorLSNpbmNsdWRlIDxzdHJpbmcuaD4KKy0KKy0jaWZuZGVmIE1BUF9GQUlMRUQKKy0jIGRlZmluZSBNQVBfRkFJTEVEICgodm9pZCopLTEpCistI2VuZGlmCistCistaW50IG1haW4oKSB7CistICBwaWRfdCBwaWQ7CistICBpbnQgc3RhdHVzOworLSAgaW50IGZkOworLSAgY2hhciAqc2htOworLQorLSAgZmQgPSBvcGVuKCIvZGV2L3plcm8iLCBPX1JEV1IsIFNfSVJVU1IgfCBTX0lXVVNSKTsKKy0gIGlmIChmZCA9PSAtMSkgeworLSAgICByZXR1cm4gMTsKKy0gIH0KKy0KKy0gIHNobSA9IG1tYXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgZmQsIDApOworLSAgaWYgKHNobSA9PSBNQVBfRkFJTEVEKSB7CistICAgIHJldHVybiAyOworLSAgfQorLQorLSAgc3RyY3B5KHNobSwgImhlbGxvIik7CistCistICBwaWQgPSBmb3JrKCk7CistICBpZiAocGlkIDwgMCkgeworLSAgICByZXR1cm4gNTsKKy0gIH0gZWxzZSBpZiAocGlkID09IDApIHsKKy0gICAgc3RyY3B5KHNobSwgImJ5ZSIpOworLSAgICByZXR1cm4gNjsKKy0gIH0KKy0gIGlmICh3YWl0KCZzdGF0dXMpICE9IHBpZCkgeworLSAgICByZXR1cm4gNzsKKy0gIH0KKy0gIGlmICghV0lGRVhJVEVEKHN0YXR1cykgfHwgV0VYSVRTVEFUVVMoc3RhdHVzKSAhPSA2KSB7CistICAgIHJldHVybiA4OworLSAgfQorLSAgaWYgKHN0cmNtcChzaG0sICJieWUiKSAhPSAwKSB7CistICAgIHJldHVybiA5OworLSAgfQorLSAgcmV0dXJuIDA7CistfQorLV0sZG5sCistICAgIEFDX0RFRklORShIQVZFX1NITV9NTUFQX1pFUk8sIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgbW1hcCgiL2Rldi96ZXJvIikgU0hNIHN1cHBvcnRdKQorLSAgICBtc2c9eWVzLG1zZz1ubyxtc2c9bm8pCistICBBQ19NU0dfUkVTVUxUKFskbXNnXSkKKy0KKy0gIEFDX01TR19DSEVDS0lORyhmb3IgbW1hcCgpIHVzaW5nIHNobV9vcGVuKCkgc2hhcmVkIG1lbW9yeSBzdXBwb3J0KQorLSAgQUNfVFJZX1JVTihbCistI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgorLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgorLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgorLSNpbmNsdWRlIDxmY250bC5oPgorLSNpbmNsdWRlIDx1bmlzdGQuaD4KKy0jaW5jbHVkZSA8c3RyaW5nLmg+CistI2luY2x1ZGUgPHN0ZGxpYi5oPgorLSNpbmNsdWRlIDxzdGRpby5oPgorLQorLSNpZm5kZWYgTUFQX0ZBSUxFRAorLSMgZGVmaW5lIE1BUF9GQUlMRUQgKCh2b2lkKiktMSkKKy0jZW5kaWYKKy0KKy1pbnQgbWFpbigpIHsKKy0gIHBpZF90IHBpZDsKKy0gIGludCBzdGF0dXM7CistICBpbnQgZmQ7CistICBjaGFyICpzaG07CistICBjaGFyIHRtcG5hbWVbNDA5Nl07CistCistICBzcHJpbnRmKHRtcG5hbWUsInRlc3Quc2htLiVkWFhYWFhYIiwgZ2V0cGlkKCkpOworLSAgaWYgKG1rdGVtcCh0bXBuYW1lKSA9PSBOVUxMKSB7CistICAgIHJldHVybiAxOworLSAgfQorLSAgZmQgPSBzaG1fb3Blbih0bXBuYW1lLCBPX1JEV1IgfCBPX0NSRUFULCBTX0lSVVNSIHwgU19JV1VTUik7CistICBpZiAoZmQgPT0gLTEpIHsKKy0gICAgcmV0dXJuIDI7CistICB9CistICBpZiAoZnRydW5jYXRlKGZkLCA0MDk2KSA8IDApIHsKKy0gICAgY2xvc2UoZmQpOworLSAgICBzaG1fdW5saW5rKHRtcG5hbWUpOworLSAgICByZXR1cm4gMzsKKy0gIH0KKy0KKy0gIHNobSA9IG1tYXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgZmQsIDApOworLSAgaWYgKHNobSA9PSBNQVBfRkFJTEVEKSB7CistICAgIHJldHVybiA0OworLSAgfQorLSAgc2htX3VubGluayh0bXBuYW1lKTsKKy0gIGNsb3NlKGZkKTsKKy0KKy0gIHN0cmNweShzaG0sICJoZWxsbyIpOworLQorLSAgcGlkID0gZm9yaygpOworLSAgaWYgKHBpZCA8IDApIHsKKy0gICAgcmV0dXJuIDU7CistICB9IGVsc2UgaWYgKHBpZCA9PSAwKSB7CistICAgIHN0cmNweShzaG0sICJieWUiKTsKKy0gICAgcmV0dXJuIDY7CistICB9CistICBpZiAod2FpdCgmc3RhdHVzKSAhPSBwaWQpIHsKKy0gICAgcmV0dXJuIDc7CistICB9CistICBpZiAoIVdJRkVYSVRFRChzdGF0dXMpIHx8IFdFWElUU1RBVFVTKHN0YXR1cykgIT0gNikgeworLSAgICByZXR1cm4gODsKKy0gIH0KKy0gIGlmIChzdHJjbXAoc2htLCAiYnllIikgIT0gMCkgeworLSAgICByZXR1cm4gOTsKKy0gIH0KKy0gIHJldHVybiAwOworLX0KKy1dLGRubAorLSAgICBBQ19ERUZJTkUoSEFWRV9TSE1fTU1BUF9QT1NJWCwgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBQT1NJWCBtbWFwKCkgU0hNIHN1cHBvcnRdKQorLSAgICBtc2c9eWVzLG1zZz1ubyxtc2c9bm8pCistICBBQ19NU0dfUkVTVUxUKFskbXNnXSkKKysgIEFDX0RFRklORShIQVZFX1NITV9NTUFQX1BPU0lYLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIFBPU0lYIG1tYXAoKSBTSE0gc3VwcG9ydF0pCisgCisgICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIG1tYXAoKSB1c2luZyByZWd1bGFyIGZpbGUgc2hhcmVkIG1lbW9yeSBzdXBwb3J0KQorLSAgQUNfVFJZX1JVTihbCistI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgorLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgorLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgorLSNpbmNsdWRlIDxmY250bC5oPgorLSNpbmNsdWRlIDx1bmlzdGQuaD4KKy0jaW5jbHVkZSA8c3RyaW5nLmg+CistI2luY2x1ZGUgPHN0ZGxpYi5oPgorLSNpbmNsdWRlIDxzdGRpby5oPgorLQorLSNpZm5kZWYgTUFQX0ZBSUxFRAorLSMgZGVmaW5lIE1BUF9GQUlMRUQgKCh2b2lkKiktMSkKKy0jZW5kaWYKKy0KKy1pbnQgbWFpbigpIHsKKy0gIHBpZF90IHBpZDsKKy0gIGludCBzdGF0dXM7CistICBpbnQgZmQ7CistICBjaGFyICpzaG07CistICBjaGFyIHRtcG5hbWVbNDA5Nl07CistCistICBzcHJpbnRmKHRtcG5hbWUsInRlc3Quc2htLiVkWFhYWFhYIiwgZ2V0cGlkKCkpOworLSAgaWYgKG1rdGVtcCh0bXBuYW1lKSA9PSBOVUxMKSB7CistICAgIHJldHVybiAxOworLSAgfQorLSAgZmQgPSBvcGVuKHRtcG5hbWUsIE9fUkRXUiB8IE9fQ1JFQVQsIFNfSVJVU1IgfCBTX0lXVVNSKTsKKy0gIGlmIChmZCA9PSAtMSkgeworLSAgICByZXR1cm4gMjsKKy0gIH0KKy0gIGlmIChmdHJ1bmNhdGUoZmQsIDQwOTYpIDwgMCkgeworLSAgICBjbG9zZShmZCk7CistICAgIHVubGluayh0bXBuYW1lKTsKKy0gICAgcmV0dXJuIDM7CistICB9CistCistICBzaG0gPSBtbWFwKE5VTEwsIDQwOTYsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIGZkLCAwKTsKKy0gIGlmIChzaG0gPT0gTUFQX0ZBSUxFRCkgeworLSAgICByZXR1cm4gNDsKKy0gIH0KKy0gIHVubGluayh0bXBuYW1lKTsKKy0gIGNsb3NlKGZkKTsKKy0KKy0gIHN0cmNweShzaG0sICJoZWxsbyIpOworLQorLSAgcGlkID0gZm9yaygpOworLSAgaWYgKHBpZCA8IDApIHsKKy0gICAgcmV0dXJuIDU7CistICB9IGVsc2UgaWYgKHBpZCA9PSAwKSB7CistICAgIHN0cmNweShzaG0sICJieWUiKTsKKy0gICAgcmV0dXJuIDY7CistICB9CistICBpZiAod2FpdCgmc3RhdHVzKSAhPSBwaWQpIHsKKy0gICAgcmV0dXJuIDc7CistICB9CistICBpZiAoIVdJRkVYSVRFRChzdGF0dXMpIHx8IFdFWElUU1RBVFVTKHN0YXR1cykgIT0gNikgeworLSAgICByZXR1cm4gODsKKy0gIH0KKy0gIGlmIChzdHJjbXAoc2htLCAiYnllIikgIT0gMCkgeworLSAgICByZXR1cm4gOTsKKy0gIH0KKy0gIHJldHVybiAwOworLX0KKy1dLGRubAorLSAgICBBQ19ERUZJTkUoSEFWRV9TSE1fTU1BUF9GSUxFLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIG1tYXAoKSBTSE0gc3VwcG9ydF0pCistICAgIG1zZz15ZXMsbXNnPW5vLG1zZz1ubykKKy0gIEFDX01TR19SRVNVTFQoWyRtc2ddKQorLQorLWZsb2NrX3R5cGU9dW5rbm93bgorLUFDX01TR19DSEVDS0lORygid2hldGhlciBmbG9jayBzdHJ1Y3QgaXMgbGludXggb3JkZXJlZCIpCistQUNfVFJZX1JVTihbCistICAjaW5jbHVkZSA8ZmNudGwuaD4KKy0gIHN0cnVjdCBmbG9jayBsb2NrID0geyAxLCAyLCAzLCA0LCA1IH07CistICBpbnQgbWFpbigpIHsgCistICAgIGlmKGxvY2subF90eXBlID09IDEgJiYgbG9jay5sX3doZW5jZSA9PSAyICYmIGxvY2subF9zdGFydCA9PSAzICYmIGxvY2subF9sZW4gPT0gNCkgeworLQkJcmV0dXJuIDA7CistICAgIH0KKy0gICAgcmV0dXJuIDE7CistICB9IAorLV0sIFsKKy0JZmxvY2tfdHlwZT1saW51eAorLSAgICBBQ19ERUZJTkUoW0hBVkVfRkxPQ0tfTElOVVhdLCBbXSwgW1N0cnVjdCBmbG9jayBpcyBMaW51eC10eXBlXSkKKy0gICAgQUNfTVNHX1JFU1VMVCgieWVzIikKKy1dLCBBQ19NU0dfUkVTVUxUKCJubyIpICkKKysgIAorKyAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfRklMRSwgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBtbWFwKCkgU0hNIHN1cHBvcnRdKQorIAorLUFDX01TR19DSEVDS0lORygid2hldGhlciBmbG9jayBzdHJ1Y3QgaXMgQlNEIG9yZGVyZWQiKQorLUFDX1RSWV9SVU4oWworLSAgI2luY2x1ZGUgPGZjbnRsLmg+CistICBzdHJ1Y3QgZmxvY2sgbG9jayA9IHsgMSwgMiwgMywgNCwgNSB9OworLSAgaW50IG1haW4oKSB7IAorLSAgICBpZihsb2NrLmxfc3RhcnQgPT0gMSAmJiBsb2NrLmxfbGVuID09IDIgJiYgbG9jay5sX3R5cGUgPT0gNCAmJiBsb2NrLmxfd2hlbmNlID09IDUpIHsKKy0JCXJldHVybiAwOworLSAgICB9CistICAgIHJldHVybiAxOworLSAgfSAKKy1dLCBbCistCWZsb2NrX3R5cGU9YnNkCistICAgIEFDX0RFRklORShbSEFWRV9GTE9DS19CU0RdLCBbXSwgW1N0cnVjdCBmbG9jayBpcyBCU0QtdHlwZV0pIAorLSAgICBBQ19NU0dfUkVTVUxUKCJ5ZXMiKQorLV0sIEFDX01TR19SRVNVTFQoIm5vIikgKQorKyAgZmxvY2tfdHlwZT1saW51eAorKyAgQUNfREVGSU5FKFtIQVZFX0ZMT0NLX0xJTlVYXSwgW10sIFtTdHJ1Y3QgZmxvY2sgaXMgTGludXgtdHlwZV0pCisgCisgaWYgdGVzdCAiJGZsb2NrX3R5cGUiID0gInVua25vd24iOyB0aGVuCisgCUFDX01TR19FUlJPUihbRG9uJ3Qga25vdyBob3cgdG8gZGVmaW5lIHN0cnVjdCBmbG9jayBvbiB0aGlzIHN5c3RlbVssXSBzZXQgLS1lbmFibGUtb3BjYWNoZT1ub10pCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhwNS1jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhwNS1jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDIxZjhjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHA1LWNoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoCkBAIC0wLDAgKzEsNjMgQEAKK0Zyb20gNWY0OTk4N2U4OGRmY2JkYjg0YmU2ZTBjOTAyNTQzMmZiZDk5ODcwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFRodSwgMjAgQXVnIDIwMTUgMTY6Mjk6MzUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gY29uZmlnLm00OiBjaGFuZ2UgQUNfVFJZX1JVTiB0byBBQ19UUllfTElOSworCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworQUNfVFJZX1JVTiBpcyBub3Qgc3VpdGFibGUgZm9yIGNyb3NzLWNvbXBpbGUKKworU2lnbmVkLW9mZi1ieTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorCislJSBvcmlnaW5hbCBwYXRjaDogY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2gKKworJSUgb3JpZ2luYWwgcGF0Y2g6IHBocDUtY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2gKKy0tLQorIGV4dC9maWxlaW5mby9jb25maWcubTQgfCAzMSArKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvZmlsZWluZm8vY29uZmlnLm00IGIvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNAoraW5kZXggN2U5OGQ2Mi4uOGE4ZWEwZSAxMDA2NDQKKy0tLSBhL2V4dC9maWxlaW5mby9jb25maWcubTQKKysrKyBiL2V4dC9maWxlaW5mby9jb25maWcubTQKK0BAIC0xNCwzMSArMTQsMTIgQEAgaWYgdGVzdCAiJFBIUF9GSUxFSU5GTyIgIT0gIm5vIjsgdGhlbgorICAgICBsaWJtYWdpYy9yZWFkY2RmLmMgbGlibWFnaWMvc29mdG1hZ2ljLmMiCisgCisgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzdHJjYXNlc3RyXSkKKy0gIEFDX1RSWV9SVU4oWworLSNpbmNsdWRlIDxzdHJpbmcuaD4KKy0jaW5jbHVkZSA8c3RyaW5ncy5oPgorLSNpbmNsdWRlIDxzdGRsaWIuaD4KKy0KKy1pbnQgbWFpbih2b2lkKQorLXsKKy0gICAgICAgIGNoYXIgKnMwLCAqczEsICpyZXQ7CistCistICAgICAgICBzMCA9IChjaGFyICopIG1hbGxvYyg0Mik7CistICAgICAgICBzMSA9IChjaGFyICopIG1hbGxvYyg4KTsKKy0KKy0gICAgICAgIG1lbXNldChzMCwgJ1gnLCA0Mik7CistICAgICAgICBzMFsyNF0gPSAnWSc7CistICAgICAgICBzMFsyNl0gPSAnWic7CistICAgICAgICBzMFs0MV0gPSAnXDAnOworLSAgICAgICAgbWVtc2V0KHMxLCAneCcsIDgpOworLSAgICAgICAgczFbMF0gPSAneSc7CistICAgICAgICBzMVsyXSA9ICdaJzsKKy0gICAgICAgIHMxWzddID0gJ1wwJzsKKy0KKy0gICAgICAgIHJldCA9IHN0cmNhc2VzdHIoczAsIHMxKTsKKy0KKy0gICAgICAgIHJldHVybiAhKE5VTEwgIT0gcmV0KTsKKy19CisrICBBQ19UUllfQ09NUElMRShbCisrICAgICAjaW5jbHVkZSA8c3RyaW5nLmg+CisrICAgICAjaW5jbHVkZSA8c3RyaW5ncy5oPgorKyAgICAgI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyAgXSxbCisrICAgICBzdHJjYXNlc3RyKE5VTEwsIE5VTEwpOworICAgXSxbCisgICAgIGRubCB1c2luZyB0aGUgcGxhdGZvcm0gaW1wbGVtZW50YXRpb24KKyAgICAgQUNfTVNHX1JFU1VMVCh5ZXMpCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhwNS1wZWFyLW1ha2VmaWxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHA1LXBlYXItbWFrZWZpbGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZmNjQyNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhwNS1wZWFyLW1ha2VmaWxlLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKK0Zyb20gNzk3MjVlODJkNTk4MWZjOTRlYjY1N2YwZjQ2YTQ5OWRiZmMxY2M0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+CitEYXRlOiBXZWQsIDIgTm92IDIwMTEgMTY6NTQ6NTcgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXBzdHJlYW0tc3RhdHVzOiBVbmtub3duCisKKyUlIG9yaWdpbmFsIHBhdGNoOiBwaHA1LXBlYXItbWFrZWZpbGUucGF0Y2gKKy0tLQorIHBlYXIvTWFrZWZpbGUuZnJhZyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3BlYXIvTWFrZWZpbGUuZnJhZyBiL3BlYXIvTWFrZWZpbGUuZnJhZworaW5kZXggMDBiYWNhZS4uNzM5ZWVjYSAxMDA2NDQKKy0tLSBhL3BlYXIvTWFrZWZpbGUuZnJhZworKysrIGIvcGVhci9NYWtlZmlsZS5mcmFnCitAQCAtMTEsNyArMTEsNyBAQCBQRUFSX1BSRUZJWCA9IC1kcCBhJHtwcm9ncmFtX3ByZWZpeH0KKyBQRUFSX1NVRkZJWCA9IC1kcyBhJChwcm9ncmFtX3N1ZmZpeCkKKyAKKyBpbnN0YWxsLXBlYXItaW5zdGFsbGVyOiAkKFNBUElfQ0xJX1BBVEgpCistCUAkKHRvcF9idWlsZGRpcikvc2FwaS9jbGkvcGhwICQoUEVBUl9JTlNUQUxMX0ZMQUdTKSBwZWFyL2luc3RhbGwtcGVhci1ub3psaWIucGhhciAtZCAiJChwZWFyZGlyKSIgLWIgIiQoYmluZGlyKSIgJHtQRUFSX1BSRUZJWH0gJHtQRUFSX1NVRkZJWH0KKysJQCQoUEhQX05BVElWRV9ESVIpL3BocCAkKFBFQVJfSU5TVEFMTF9GTEFHUykgJChidWlsZGRpcikvaW5zdGFsbC1wZWFyLW5vemxpYi5waGFyIC1kICIkKHBlYXJkaXIpIiAtYiAiJChiaW5kaXIpIiAke1BFQVJfUFJFRklYfSAke1BFQVJfU1VGRklYfQorIAorIGluc3RhbGwtcGVhcjoKKyAJQGVjaG8gIkluc3RhbGxpbmcgUEVBUiBlbnZpcm9ubWVudDogICAgICAkKElOU1RBTExfUk9PVCkkKHBlYXJkaXIpLyIKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHA1LXBoYXItbWFrZWZpbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BocDUtcGhhci1tYWtlZmlsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTFlZmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHA1LXBoYXItbWFrZWZpbGUucGF0Y2gKQEAgLTAsMCArMSw0NiBAQAorRnJvbSAzZWE2MjZhOGQwODFmNTZiMDEwMDRiNzk5MjUzNGQ0ZTZiODFhOWNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK0RhdGU6IFdlZCwgMiBOb3YgMjAxMSAxNjo1NDo1NyArMDEwMAorU3ViamVjdDogW1BBVENIXSBGaXggcGhhciBwYWNrYWdpbmcKKworSW5oZXJpdGVkIGZyb20gT0UtQ2xhc3NpYywgd2l0aCBzb21lIGFkZGl0aW9ucyB0byBmaXggaG9zdCBwYXRocyBsZWFraW5nCitpbnRvIHRoZSB0YXJnZXQgcGFja2FnZS4KKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWddCisKKyUlIG9yaWdpbmFsIHBhdGNoOiBwaHA1LXBoYXItbWFrZWZpbGUucGF0Y2gKKy0tLQorIGV4dC9waGFyL01ha2VmaWxlLmZyYWcgfCAxNyArKystLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZXh0L3BoYXIvTWFrZWZpbGUuZnJhZyBiL2V4dC9waGFyL01ha2VmaWxlLmZyYWcKK2luZGV4IGI4YjFiNDIuLjEwMDViMmQgMTAwNjQ0CistLS0gYS9leHQvcGhhci9NYWtlZmlsZS5mcmFnCisrKysgYi9leHQvcGhhci9NYWtlZmlsZS5mcmFnCitAQCAtNSwyMCArNSw5IEBAIHBoYXJjbWQ6ICQoYnVpbGRkaXIpL3BoYXIucGhwICQoYnVpbGRkaXIpL3BoYXIucGhhcgorIAorIFBIUF9QSEFSQ01EX1NFVFRJTkdTID0gLWQgJ29wZW5fYmFzZWRpcj0nIC1kICdvdXRwdXRfYnVmZmVyaW5nPTAnIC1kICdtZW1vcnlfbGltaXQ9LTEnIC1kIHBoYXIucmVhZG9ubHk9MCAtZCAnc2FmZV9tb2RlPTAnCisgUEhQX1BIQVJDTURfRVhFQ1VUQUJMRSA9IGAgXAorLQlpZiB0ZXN0IC14ICIkKHRvcF9idWlsZGRpcikvJChTQVBJX0NMSV9QQVRIKSI7IHRoZW4gXAorLQkJJCh0b3Bfc3JjZGlyKS9idWlsZC9zaHRvb2wgZWNobyAtbiAtLSAiJCh0b3BfYnVpbGRkaXIpLyQoU0FQSV9DTElfUEFUSCkgLW4iOyBcCistCQlpZiB0ZXN0ICJ4JChQSFBfTU9EVUxFUykiICE9ICJ4IjsgdGhlbiBcCistCQkkKHRvcF9zcmNkaXIpL2J1aWxkL3NodG9vbCBlY2hvIC1uIC0tICIgLWQgZXh0ZW5zaW9uX2Rpcj0kKHRvcF9idWlsZGRpcikvbW9kdWxlcyI7IFwKKy0JCWZvciBpIGluIGJ6MiB6bGliIHBoYXI7IGRvIFwKKy0JCQlpZiB0ZXN0IC1mICIkKHRvcF9idWlsZGRpcikvbW9kdWxlcy8kJGkubGEiOyB0aGVuIFwKKy0JCQkJLiAkKHRvcF9idWlsZGRpcikvbW9kdWxlcy8kJGkubGE7ICQodG9wX3NyY2RpcikvYnVpbGQvc2h0b29sIGVjaG8gLW4gLS0gIiAtZCBleHRlbnNpb249JCRkbG5hbWUiOyBcCistCQkJZmk7IFwKKy0JCWRvbmU7IFwKKy0JCWZpOyBcCistCWVsc2UgXAorLQkJJCh0b3Bfc3JjZGlyKS9idWlsZC9zaHRvb2wgZWNobyAtbiAtLSAiJChQSFBfRVhFQ1VUQUJMRSkiOyBcCistCWZpO2AKKy1QSFBfUEhBUkNNRF9CQU5HID0gYCQodG9wX3NyY2RpcikvYnVpbGQvc2h0b29sIGVjaG8gLW4gLS0gIiQoSU5TVEFMTF9ST09UKSQoYmluZGlyKS8kKHByb2dyYW1fcHJlZml4KXBocCQocHJvZ3JhbV9zdWZmaXgpJChFWEVFWFQpIjtgCisrCQkkKHRvcF9zcmNkaXIpL2J1aWxkL3NodG9vbCBlY2hvIC1uIC0tICIkKFBIUF9FWEVDVVRBQkxFKSI7IGAKKysKKytQSFBfUEhBUkNNRF9CQU5HID0gYCQodG9wX3NyY2RpcikvYnVpbGQvc2h0b29sIGVjaG8gLW4gLS0gIiQoYmluZGlyKS8kKHByb2dyYW1fcHJlZml4KXBocCQocHJvZ3JhbV9zdWZmaXgpJChFWEVFWFQpIjtgCisgCisgJChidWlsZGRpcikvcGhhci9waGFyLmluYzogJChzcmNkaXIpL3BoYXIvcGhhci5pbmMKKyAJLUB0ZXN0IC1kICQoYnVpbGRkaXIpL3BoYXIgfHwgbWtkaXIgJChidWlsZGRpcikvcGhhcgorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BocF9leGVjX25hdGl2ZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhwX2V4ZWNfbmF0aXZlLnBhdGNoCmluZGV4IDA1MDZiZGQuLjZhZjBkYzggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhwX2V4ZWNfbmF0aXZlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhwX2V4ZWNfbmF0aXZlLnBhdGNoCkBAIC0xLDEwICsxLDE3IEBACi1VcHN0cmVhbS1zdGF0dXM6IEluYXBwcmlhdGUKK0Zyb20gZDI1MWI1YWEzZDIzODAzZDAxNmNhMTY4MThlMmUxZDJmMmI3MGEwMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+CitEYXRlOiBXZWQsIDIgTm92IDIwMTEgMTY6NTQ6NTcgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXBzdHJlYW0tc3RhdHVzOiBJbmFwcHJpYXRlCisKKy0tLQorIHNhcGkvY2xpL2NvbmZpZy5tNCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL3NhcGkvY2xpL2NvbmZpZy5tNCBiL3NhcGkvY2xpL2NvbmZpZy5tNAotaW5kZXggY2RmYTFmNy4uMGZlMTFlMyAxMDA2NDQKK2luZGV4IDIxNjgxNTEuLjIwYTgxZGIgMTAwNjQ0CiAtLS0gYS9zYXBpL2NsaS9jb25maWcubTQKICsrKyBiL3NhcGkvY2xpL2NvbmZpZy5tNAotQEAgLTM2LDcgKzM2LDcgQEAgaWYgdGVzdCAiJFBIUF9DTEkiICE9ICJubyI7IHRoZW4KK0BAIC01MCw3ICs1MCw3IEBAIGlmIHRlc3QgIiRQSFBfQ0xJIiAhPSAibm8iOyB0aGVuCiAgICBlc2FjCiAgCiAgICBkbmwgU2V0IGV4ZWN1dGFibGUgZm9yIHRlc3RzCkBAIC0xMyw2ICsyMCwzIEBACiAgICBQSFBfU1VCU1QoUEhQX0VYRUNVVEFCTEUpCiAgCiAgICBkbmwgRXhwb3NlIHRvIE1ha2VmaWxlCi0tLSAKLTEuOS4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHBfNS42LjMxLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocF81LjYuMzEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkODA0N2IuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocF81LjYuMzEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1yZXF1aXJlIHBocC5pbmMKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YjYwMjYzNmQ0NmE2MWMwYWMwNDMyYmJmNWMwNzhmZTQiCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly9jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaCBcCi0gICAgICAgICAgICBmaWxlOi8vcHRocmVhZC1jaGVjay10aHJlYWRzLW00LnBhdGNoIFwKLSAgICAgICAgICAgIGZpbGU6Ly8wMDAxLUFkZC1scHRocmVhZC10by1saW5rLnBhdGNoIFwKLSAgICAgICAgICAgIgotU1JDX1VSSVttZDVzdW1dID0gIjYyMGFiZTI1ZTBkNmNkNWYwNDFhMzYwYTMwY2U1NzgzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjhmMzk3MTY5Y2I2NWYwNTM5ZjNiY2IwNDA2MGY5Nzc3MGQ3M2UxOTA3NGEzN2JkMmM1OGI5OGViZjZlY2IxMGYiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwXzUuNi4zNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHBfNS42LjM1LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxN2MwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwXzUuNi4zNS5iYgpAQCAtMCwwICsxLDIzIEBACityZXF1aXJlIHBocC5pbmMKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YjYwMjYzNmQ0NmE2MWMwYWMwNDMyYmJmNWMwNzhmZTQiCisKK1NSQ19VUkkgKz0gImZpbGU6Ly9waHA1LWNoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly9wdGhyZWFkLWNoZWNrLXRocmVhZHMtbTQucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovLzAwMDEtQWRkLWxwdGhyZWFkLXRvLWxpbmsucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovL2FjaW5jbHVkZS14bWwyLWNvbmZpZy5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vMDAwMS1hY2luY2x1ZGUtdXNlLXBrZ2NvbmZpZy1mb3ItbGlieG1sMi1jb25maWcucGF0Y2ggXAorICAgICAgICAgICAgIgorCitTUkNfVVJJX2FwcGVuZF9jbGFzcy10YXJnZXQgPSAiIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTovL3BocDUtcGVhci1tYWtlZmlsZS5wYXRjaCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9waHA1LXBoYXItbWFrZWZpbGUucGF0Y2ggXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlOi8vcGhwNS0wMDAxLW9wY2FjaGUtY29uZmlnLm00LWVuYWJsZS1vcGNhY2hlLnBhdGNoIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgorCitTUkNfVVJJW21kNXN1bV0gPSAiOTA1YWU1ZjU4NjM1MWYzY2EyOWQwNDRjOTQ4NGQ0NzUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZWU3OGE3ZTljYTIxZDhlYTM5NGQwMzdjNTVlZmZmZjQ3N2E0OWRiYWUzMWM3NzUzYzU0NzAzNmY1YmQ3M2I5MiIKKworREVQRU5EUyArPSAibGlibWNyeXB0IgorRVhUUkFfT0VDT05GICs9ICItLXdpdGgtbWNyeXB0PSR7U1RBR0lOR19ESVJfVEFSR0VUfSR7ZXhlY19wcmVmaXh9IFwKKyAgICAgICAgICAgICAgICAgIiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHBfNy4xLjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwXzcuMS45LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2Y2OGEwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHBfNy4xLjkuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1yZXF1aXJlIHBocC5pbmMKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YzBhZjU5OWY2NmQwNDYxYzU4MzdjNjk1ZmNiYzVjMWUiCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly9jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaCBcCi0gICAgICAgICAgICBmaWxlOi8vMDAwMS1TcGVjaWZ5LXRhZy13aXRoLWxpYnRvb2wucGF0Y2ggXAotICAgICAgICAgICAgZmlsZTovL0NWRS0yMDE3LTE2NjQyLnBhdGNoIFwKLSAgICAgICAgICAgIgotU1JDX1VSSVttZDVzdW1dID0gIjIzOTdiZTU0ZjMyODFjZGYzMGM3ZWYwNzZiMjhmN2QwIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMxNGRjYzEwZGZkZDdjNDQ0M2VkYjRmZTFlMTMzYTQ0ZjJiMmE4MzUxYmU4YzllYjZhYjkyMjJkNDVmZDliYWUiCi0KLVBBQ0tBR0VDT05GSUdbbXlzcWxdID0gIi0td2l0aC1teXNxbGk9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vbXlzcWxfY29uZmlnIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIC0td2l0aC1wZG8tbXlzcWw9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vbXlzcWxfY29uZmlnIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICwtLXdpdGhvdXQtbXlzcWxpIC0td2l0aG91dC1wZG8tbXlzcWwgXAotICAgICAgICAgICAgICAgICAgICAgICAgLG15c3FsNSIKLQotRklMRVNfJHtQTn0tZnBtICs9ICIke3N5c2NvbmZkaXJ9L3BocC1mcG0uZC93d3cuY29uZi5kZWZhdWx0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocF83LjIuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHBfNy4yLjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZkMWU2NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHBfNy4yLjQuYmIKQEAgLTAsMCArMSwyNCBAQAorcmVxdWlyZSBwaHAuaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTY3ZTM2OWJjOGQxZjJlNjQxMjM2YjgwMDIwMzlhNmEyIgorCitTUkNfVVJJICs9ICJmaWxlOi8vY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovLzAwMDEtYWNpbmNsdWRlLm00LXNraXAtYmluY29uZmlnLWNoZWNrLWZvci1saWJ4bWwucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovLzAwMDEtbWFpbi1waHBfaW5pLmMtYnVpbGQtZW1wdHktcGhwX2xvYWRfemVuZF9leHRlbnNpb25fYy5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vMDAwMS1maXgtZXJyb3ItY2F1c2VkLWJ5LWEtbmV3LXZhcmlhYmxlLWlzLWRlY2xhcmVkLWFmdGVyLnBhdGNoIFwKKyAgICAgICAgICAgIgorU1JDX1VSSV9hcHBlbmRfY2xhc3MtdGFyZ2V0ID0gIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9wZWFyLW1ha2VmaWxlLnBhdGNoIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTovL3BoYXItbWFrZWZpbGUucGF0Y2ggXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlOi8vMDAwMS1vcGNhY2hlLWNvbmZpZy5tNC1lbmFibGUtb3BjYWNoZS5wYXRjaCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKKworU1JDX1VSSVttZDVzdW1dID0gIjg2NGM2NGZmZDJmMTY4NmIwMzVlZjhjZTZhNmQ4NDc4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjExNjU4YTBkNzY0ZGM5NDAyM2I5ZmI2MGQ0YjVlYjc1ZDQzOGFkMTc5ODFlZmU3MGFiYjBkMGQwOWE0NDdlZjMiCisKK1BBQ0tBR0VDT05GSUdbbXlzcWxdID0gIi0td2l0aC1teXNxbGk9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vbXlzcWxfY29uZmlnIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIC0td2l0aC1wZG8tbXlzcWw9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vbXlzcWxfY29uZmlnIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICwtLXdpdGhvdXQtbXlzcWxpIC0td2l0aG91dC1wZG8tbXlzcWwgXAorICAgICAgICAgICAgICAgICAgICAgICAgLG15c3FsNSIKKworRklMRVNfJHtQTn0tZnBtICs9ICIke3N5c2NvbmZkaXJ9L3BocC1mcG0uZC93d3cuY29uZi5kZWZhdWx0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHJvdG9idWYvcHJvdG9idWYvcnVuLXB0ZXN0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHJvdG9idWYvcHJvdG9idWYvcnVuLXB0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjM2E4ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wcm90b2J1Zi9wcm90b2J1Zi9ydW4tcHRlc3QKQEAgLTAsMCArMSwzOCBAQAorIyEvYmluL2Jhc2gKK0RJUj0iJCggY2QgIiQoIGRpcm5hbWUgIiR7QkFTSF9TT1VSQ0VbMF19IiApIiAmJiBwd2QgKSIKK1RFU1RfRklMRT0iL3RtcC90ZXN0LmRhdGEiCisKK1JFVFZBTD0wCisjIFRlc3QgZXZlcnkgd3JpdGluZyB0ZXN0IGFwcGxpY2F0aW9uCitmb3Igd3JpdGVfZXhlX2Z1bGxfcGF0aCBpbiAke0RJUn0vYWRkX3BlcnNvbl8qOyBkbworCWlmIFsgLXggIiR7d3JpdGVfZXhlX2Z1bGxfcGF0aH0iIF07IHRoZW4KKwkJd3JpdGVfZXhlPWBiYXNlbmFtZSAke3dyaXRlX2V4ZV9mdWxsX3BhdGh9YAorCQllY2hvICJHZW5lcmF0aW5nIG5ldyB0ZXN0IGZpbGUgdXNpbmcgJHt3cml0ZV9leGV9Li4uIgorCQkke3dyaXRlX2V4ZV9mdWxsX3BhdGh9ICIke1RFU1RfRklMRX0iCisJCVJFVFZBTD0kPworCQlbICRSRVRWQUwgLWVxIDAgXSB8fCBleGl0ICRSRVRWQUwKKworCQkjIFRlc3QgZXZlcnkgcmVhZGluZyB0ZXN0IGFwcGxpY2F0aW9uCisJCWZvciByZWFkX2V4ZV9mdWxsX3BhdGggaW4gJHtESVJ9L2xpc3RfcGVvcGxlXyo7IGRvCisJCQlyZWFkX2V4ZT1gYmFzZW5hbWUgJHtyZWFkX2V4ZV9mdWxsX3BhdGh9YAorCQkJZWNobyAiVGVzdDogV3JpdGUgd2l0aCAke3dyaXRlX2V4ZX07IFJlYWQgd2l0aCAke3JlYWRfZXhlfS4uLiIKKwkJCWlmIFsgLXggIiR7cmVhZF9leGVfZnVsbF9wYXRofSIgXTsgdGhlbgorCQkJCSR7cmVhZF9leGVfZnVsbF9wYXRofSAiJHtURVNUX0ZJTEV9IgorCQkJCVJFVFZBTD0kPworCQkJCVsgJFJFVFZBTCAtZXEgMCBdIHx8IGV4aXQgJFJFVFZBTAorCQkJZmkKKwkJZG9uZQorCisJCSMgQ2xlYW51cC4uLgorCQlpZiBbIC1lICIke1RFU1RfRklMRX0iIF07IHRoZW4KKwkJCXJtICIke1RFU1RfRklMRX0iCisJCWZpCisJZmkKK2RvbmUKKworaWYgWyAkUkVUVkFMIC1lcSAwIF0gOyB0aGVuCisgICAgZWNobyAiUEFTUzogcHJvdG9idWYiCitlbHNlCisgICAgZWNobyAiRkFJTDogcHJvdG9idWYiCitmaQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wcm90b2J1Zi9wcm90b2J1Zl8zLjQuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3Byb3RvYnVmL3Byb3RvYnVmXzMuNC4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYWU3YzE4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3Byb3RvYnVmL3Byb3RvYnVmXzMuNC4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotU1VNTUFSWSA9ICJQcm90b2NvbCBCdWZmZXJzIC0gc3RydWN0dXJlZCBkYXRhIHNlcmlhbGlzYXRpb24gbWVjaGFuaXNtIgotREVTQ1JJUFRJT04gPSAiUHJvdG9jb2wgQnVmZmVycyBhcmUgYSB3YXkgb2YgZW5jb2Rpbmcgc3RydWN0dXJlZCBkYXRhIGluIGFuIFwKLWVmZmljaWVudCB5ZXQgZXh0ZW5zaWJsZSBmb3JtYXQuIEdvb2dsZSB1c2VzIFByb3RvY29sIEJ1ZmZlcnMgZm9yIGFsbW9zdCBcCi1hbGwgb2YgaXRzIGludGVybmFsIFJQQyBwcm90b2NvbHMgYW5kIGZpbGUgZm9ybWF0cy4iCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3Byb3RvYnVmIgotU0VDVElPTiA9ICJjb25zb2xlL3Rvb2xzIgotTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCi0KLVBBQ0tBR0VfQkVGT1JFX1BOID0gIiR7UE59LWNvbXBpbGVyICR7UE59LWxpdGUiCi0KLURFUEVORFMgPSAiemxpYiIKLVJERVBFTkRTXyR7UE59LWNvbXBpbGVyID0gIiR7UE59IgotUkRFUEVORFNfJHtQTn0tZGV2ICs9ICIke1BOfS1jb21waWxlciIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MzU5NTNjNzUyZWZjOTI5OWIxODRmOTFiZWY1NDAwOTUiCi0KLVNSQ1JFViA9ICJiMDRlNWNiYTM1NjIxMmU0ZThjNjZjNjFiYmUwYzNhMjA1MzdjNWI5IgotCi1QViA9ICIzLjQuMStnaXQke1NSQ1BWfSIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2dvb2dsZS9wcm90b2J1Zi5naXQ7YnJhbmNoPTMuNC54IgotCi1FWFRSQV9PRUNPTkYgKz0gIiAtLXdpdGgtcHJvdG9jPWVjaG8iCi0KLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcAotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1GSUxFU18ke1BOfS1jb21waWxlciA9ICIke2JpbmRpcn0gJHtsaWJkaXJ9L2xpYnByb3RvYyR7U09MSUJTfSIKLUZJTEVTXyR7UE59LWxpdGUgPSAiJHtiaW5kaXJ9ICR7bGliZGlyfS9saWJwcm90b2J1Zi1saXRlJHtTT0xJQlN9IgotCi1NSVBTX0lOU1RSVUNUSU9OX1NFVCA9ICJtaXBzIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wcm90b2J1Zi9wcm90b2J1Zl8zLjUuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3Byb3RvYnVmL3Byb3RvYnVmXzMuNS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmZmI3OWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wcm90b2J1Zi9wcm90b2J1Zl8zLjUuMS5iYgpAQCAtMCwwICsxLDg0IEBACitTVU1NQVJZID0gIlByb3RvY29sIEJ1ZmZlcnMgLSBzdHJ1Y3R1cmVkIGRhdGEgc2VyaWFsaXNhdGlvbiBtZWNoYW5pc20iCitERVNDUklQVElPTiA9ICJQcm90b2NvbCBCdWZmZXJzIGFyZSBhIHdheSBvZiBlbmNvZGluZyBzdHJ1Y3R1cmVkIGRhdGEgaW4gYW4gXAorZWZmaWNpZW50IHlldCBleHRlbnNpYmxlIGZvcm1hdC4gR29vZ2xlIHVzZXMgUHJvdG9jb2wgQnVmZmVycyBmb3IgYWxtb3N0IFwKK2FsbCBvZiBpdHMgaW50ZXJuYWwgUlBDIHByb3RvY29scyBhbmQgZmlsZSBmb3JtYXRzLiIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvcHJvdG9idWYiCitTRUNUSU9OID0gImNvbnNvbGUvdG9vbHMiCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKKworUEFDS0FHRV9CRUZPUkVfUE4gPSAiJHtQTn0tY29tcGlsZXIgJHtQTn0tbGl0ZSIKKworREVQRU5EUyA9ICJ6bGliIgorREVQRU5EU19hcHBlbmRfY2xhc3MtdGFyZ2V0ICA9ICIgcHJvdG9idWYtbmF0aXZlIgorUkRFUEVORFNfJHtQTn0tY29tcGlsZXIgPSAiJHtQTn0iCitSREVQRU5EU18ke1BOfS1kZXYgKz0gIiR7UE59LWNvbXBpbGVyIgorUkRFUEVORFNfJHtQTn0tcHRlc3QgPSAiYmFzaCBweXRob24tcHJvdG9idWYiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTM1OTUzYzc1MmVmYzkyOTliMTg0ZjkxYmVmNTQwMDk1IgorCitTUkNSRVYgPSAiMTA2ZmZjMDRiZTFhYmYzZmYzMzk5ZjU0Y2NmMTQ5ODE1YjI4N2RkOSIKKworUFYgPSAiMy41LjErZ2l0JHtTUkNQVn0iCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9nb29nbGUvcHJvdG9idWYuZ2l0O2JyYW5jaD0zLjUueCBcCisJICAgZmlsZTovL3J1bi1wdGVzdCBcCisgICAgICAgICAgIgorCitFWFRSQV9PRUNPTkYgKz0gIiAtLXdpdGgtcHJvdG9jPWVjaG8iCisKK2luaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcgcHRlc3QKKworUyA9ICIke1dPUktESVJ9L2dpdCIKK1RFU1RfU1JDX0RJUj0iZXhhbXBsZXMiCitMQU5HX1NVUFBPUlQ9ImNwcCBweXRob24iCisKK2RvX2NvbXBpbGVfcHRlc3QoKSB7CisJIyBNb2RpZnkgbWFrZWZpbGUgdG8gdXNlIHRoZSBjcm9zcy1jb21waWxlcgorCXNlZCAtZSAic3xjKyt8JHtDWFh9IFwkKExERkxBR1MpfGciIC1pICIke1N9LyR7VEVTVF9TUkNfRElSfS9NYWtlZmlsZSIKKworCW1rZGlyIC1wICIke0J9LyR7VEVTVF9TUkNfRElSfSIKKworCSMgQWRkIHRoZSBsb2NhdGlvbiBvZiB0aGUgY3Jvc3MtY29tcGlsZWQgaGVhZGVyIGFuZCBsaWJyYXJ5IGZpbGVzCisJIyB3aGljaCBoYXZlbid0IGJlZW4gaW5zdGFsbGVkIHlldC4KKwljcCAiJHtCfS9wcm90b2J1Zi5wYyIgIiR7Qn0vJHtURVNUX1NSQ19ESVJ9L3Byb3RvYnVmLnBjIgorCXNlZCAtZSAnc3xsaWJkaXI9fGxpYmRpcj0ke1BLR19DT05GSUdfU1lTUk9PVF9ESVJ9fCcgLWkgIiR7Qn0vJHtURVNUX1NSQ19ESVJ9L3Byb3RvYnVmLnBjIgorCXNlZCAtZSAnc3xDZmxhZ3M6fENmbGFnczogLUkke1N9L3NyY3wnIC1pICIke0J9LyR7VEVTVF9TUkNfRElSfS9wcm90b2J1Zi5wYyIKKwlzZWQgLWUgJ3N8TGliczp8TGliczogLUwke0J9L3NyYy8ubGlic3wnIC1pICIke0J9LyR7VEVTVF9TUkNfRElSfS9wcm90b2J1Zi5wYyIKKwlleHBvcnQgUEtHX0NPTkZJR19QQVRIPSIke0J9LyR7VEVTVF9TUkNfRElSfSIKKworCSMgU2F2ZSB0aGUgcGtnY2ZnIHN5c3Jvb3QgdmFyaWFibGUsIGFuZCB1cGRhdGUgaXQgdG8gbm90aGluZyBzbworCSMgdGhhdCBpdCBkb2Vzbid0IGFwcGVuZCB0aGUgc3lzcm9vdCB0byB0aGUgYmVnaW5uaW5nIG9mIHBhdGhzLgorCSMgVGhlIGhlYWRlciBhbmQgbGlicmFyeSBmaWxlcyBhcmVuJ3QgaW5zdGFsbGVkIHRvIHRoZSB0YXJnZXQKKwkjIHN5c3RlbSB5ZXQuICBTbyB0aGUgYWJzb2x1dGUgcGF0aHMgd2VyZSBzcGVjaWZpZWQgYWJvdmUuCisJc2F2ZV9wa2dfY29uZmlnX3N5c3Jvb3RfZGlyPSRQS0dfQ09ORklHX1NZU1JPT1RfRElSCisJZXhwb3J0IFBLR19DT05GSUdfU1lTUk9PVF9ESVI9CisKKwkjIENvbXBpbGUgdGhlIHRlc3RzCisJZm9yIGxhbmcgaW4gJHtMQU5HX1NVUFBPUlR9OyBkbworCQlvZV9ydW5tYWtlIC1DICIke1N9LyR7VEVTVF9TUkNfRElSfSIgJHtsYW5nfQorCWRvbmUKKworCSMgUmVzdG9yZSB0aGUgcGtnY29uZmlnIHN5c3Jvb3QgdmFyaWFibGUKKwlleHBvcnQgUEtHX0NPTkZJR19TWVNST09UX0RJUj0kc2F2ZV9wa2dfY29uZmlnX3N5c3Jvb3RfZGlyCit9CisKK2RvX2luc3RhbGxfcHRlc3QoKSB7CisJbG9jYWwgb2xkZGlyPWBwd2RgCisKKwljZCAiJHtTfS8ke1RFU1RfU1JDX0RJUn0iCisJaW5zdGFsbCAtZCAiJHtEfS8ke1BURVNUX1BBVEh9IgorCWZvciBpIGluIGFkZF9wZXJzb24qIGxpc3RfcGVvcGxlKjsgZG8KKwkJaWYgWyAteCAiJGkiIF07IHRoZW4KKwkJCWluc3RhbGwgIiRpIiAiJHtEfS8ke1BURVNUX1BBVEh9IgorCQlmaQorCWRvbmUKKwljcCAiJHtTfS8ke1RFU1RfU1JDX0RJUn0vYWRkcmVzc2Jvb2tfcGIyLnB5IiAiJHtEfS8ke1BURVNUX1BBVEh9IgorCWNkICIkb2xkZGlyIgorfQorCitGSUxFU18ke1BOfS1jb21waWxlciA9ICIke2JpbmRpcn0gJHtsaWJkaXJ9L2xpYnByb3RvYyR7U09MSUJTfSIKK0ZJTEVTXyR7UE59LWxpdGUgPSAiJHtiaW5kaXJ9ICR7bGliZGlyfS9saWJwcm90b2J1Zi1saXRlJHtTT0xJQlN9IgorCitNSVBTX0lOU1RSVUNUSU9OX1NFVCA9ICJtaXBzIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNwdXNldF8xLjUuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3B1c2V0XzEuNS43LmJiCmluZGV4IDhmNjUzMmMuLjE1NmU1MmEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3B1c2V0XzEuNS43LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3B1c2V0XzEuNS43LmJiCkBAIC0zLDE0ICszLDkgQEAKIExJQ0VOU0UgPSAiR1BMdjIiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKIAotU1JDTkFNRSA9ICJjcHVzZXQiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2xwZWNoYWNlay8ke1NSQ05BTUV9L2FyY2hpdmUvdiR7UFZ9LnRhci5neiIKLQotU1JDX1VSSVttZDVzdW1dID0gIjZhZDc5YjI2YmEwM2Y1NTk2MDRkNzQ1MTNjYzM0MzkyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMyMzM0ZTE2NDQxNWVkNWFlYzgzYzVmZmMzZGMwMWM0MTg0MDZlYjAyZDk2ZDg4MWZkZmQ0OTU1ODdmZjBjMDEiCi0KLVMgPSAiJHtXT1JLRElSfS8ke1NSQ05BTUV9LSR7UFZ9IgorUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICJhZTYyOWFhMWRjOTU5MzQyNzQ1YWQ5NzQwNmFkZGRmNjNiYjZkYmRkIgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2xwZWNoYWNlay9jcHVzZXQuZ2l0O3Byb3RvY29sPWh0dHBzOyIKIAogaW5oZXJpdCBkaXN0dXRpbHMKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mdXR1cmVzXzMuMC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mdXR1cmVzXzMuMC41LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODVmYzU2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZnV0dXJlc18zLjAuNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLURFU0NSSVBUSU9OID0gIlRoZSBjb25jdXJyZW50LmZ1dHVyZXMgbW9kdWxlIHByb3ZpZGVzIGEgaGlnaC1sZXZlbCBpbnRlcmZhY2UgZm9yIGFzeW5jaHJvbm91c2x5IGV4ZWN1dGluZyBjYWxsYWJsZXMuIgotU0VDVElPTiA9ICJkZXZlbC9weXRob24iCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT0zZDc4YzViYjE1YWM2NDFkMzRmMmRkYzNiZDdmNTFmYSIKLUhPTUVQQUdFID0gImh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9weXRob25mdXR1cmVzIgotREVQRU5EUyA9ICJweXRob24iCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL2YvZnV0dXJlcy9mdXR1cmVzLSR7UFZ9LnRhci5neiIKLVNSQ19VUklbbWQ1c3VtXSA9ICJjZWQyYzM2NWU1MTgyNDI1MTJkN2EzOThiNTE1ZmY5NSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwNTQyNTI1MTQ1ZDVhZmM5ODRjODhmOTE0YTBjODVjNzc1MjdmNjU5NDY2MTdlZGI1Mjc0ZjcyNDA2Zjk4MWRmIgotCi1TID0gIiR7V09SS0RJUn0vZnV0dXJlcy0ke1BWfSIKLQotaW5oZXJpdCBzZXR1cHRvb2xzCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mdXR1cmVzXzMuMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mdXR1cmVzXzMuMi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlZTk0NWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZ1dHVyZXNfMy4yLjAuYmIKQEAgLTAsMCArMSwxMyBAQAorREVTQ1JJUFRJT04gPSAiVGhlIGNvbmN1cnJlbnQuZnV0dXJlcyBtb2R1bGUgcHJvdmlkZXMgYSBoaWdoLWxldmVsIGludGVyZmFjZSBmb3IgYXN5bmNocm9ub3VzbHkgZXhlY3V0aW5nIGNhbGxhYmxlcy4iCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0xJQ0VOU0UgPSAiUFNGIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ODM0ZDk4MmY5NzNjNDhiNmQ2NjJiNTk0NGM1YWI1NjciCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vYWdyb25ob2xtL3B5dGhvbmZ1dHVyZXMiCitERVBFTkRTID0gInB5dGhvbiIKKworU1JDX1VSSVttZDVzdW1dID0gImQxYjI5OWEwNmI5NmNjYjU5ZjcwMzI0NzE2ZGMwMDE2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjllYzAyYWE3ZDY3NGFjYjg2MThhZmIxMjdlMjdmZGU3ZmM2ODk5NGMwNDM3YWQ3NTlmYTA5NGE1NzRhZGIyNjUiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlnb2JqZWN0LzAwMDEtY29uZmlndXJlLmFjLWFkZC1zeXNyb290LXBhdGgtdG8tR0lfREFUQURJUi1kb24tdC1zZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlnb2JqZWN0LzAwMDEtY29uZmlndXJlLmFjLWFkZC1zeXNyb290LXBhdGgtdG8tR0lfREFUQURJUi1kb24tdC1zZS5wYXRjaAppbmRleCBhMzkxZjdlLi45YTExNDQyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z29iamVjdC8wMDAxLWNvbmZpZ3VyZS5hYy1hZGQtc3lzcm9vdC1wYXRoLXRvLUdJX0RBVEFESVItZG9uLXQtc2UucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdvYmplY3QvMDAwMS1jb25maWd1cmUuYWMtYWRkLXN5c3Jvb3QtcGF0aC10by1HSV9EQVRBRElSLWRvbi10LXNlLnBhdGNoCkBAIC0xNCwyOCArMTQsMTUgQEAKIGluZGV4IDJjMGNmYmQuLmNmY2IzYmYgMTAwNjQ0CiAtLS0gYS9jb25maWd1cmUuYWMKICsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTE5NCw3ICsxOTQsNyBAQCBQS0dfQ0hFQ0tfTU9EVUxFUyhHSSwKLSAgICAgZ29iamVjdC1pbnRyb3NwZWN0aW9uLTEuMCA+PSBpbnRyb3NwZWN0aW9uX3JlcXVpcmVkX3ZlcnNpb24KLSApCitAQCAtMTU1LDcgKzE1NSw3IEBAIFBLR19DSEVDS19NT0RVTEVTKEdJLAorIAorIEdPQkpFQ1RfSU5UUk9TUEVDVElPTl9DSEVDSyhpbnRyb3NwZWN0aW9uX3JlcXVpcmVkX3ZlcnNpb24pCiAgCiAtR0lfREFUQURJUj0kKCRQS0dfQ09ORklHIC0tdmFyaWFibGU9Z2lkYXRhZGlyIGdvYmplY3QtaW50cm9zcGVjdGlvbi0xLjApCiArR0lfREFUQURJUj0kUEtHX0NPTkZJR19TWVNST09UX0RJUiQoJFBLR19DT05GSUcgLS12YXJpYWJsZT1naWRhdGFkaXIgZ29iamVjdC1pbnRyb3NwZWN0aW9uLTEuMCkKICBBQ19TVUJTVChHSV9EQVRBRElSKQogIAogIGlmIHRlc3QgIiRlbmFibGVfY2Fpcm8iICE9IG5vOyB0aGVuCi1AQCAtMjE5LDEyICsyMTksNiBAQCBBQ19BUkdfV0lUSChjb21tb24sCi0gICAgIHdpdGhfY29tbW9uPXllcykKLSBBTV9DT05ESVRJT05BTChXSVRIX0NPTU1PTiwgdGVzdCAiJHdpdGhfY29tbW9uIiA9ICJ5ZXMiKQotIAotLUlOVFJPU1BFQ1RJT05fU0NBTk5FUj1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1nX2lyX3NjYW5uZXIgZ29iamVjdC1pbnRyb3NwZWN0aW9uLTEuMGAKLS1JTlRST1NQRUNUSU9OX0NPTVBJTEVSPWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWdfaXJfY29tcGlsZXIgZ29iamVjdC1pbnRyb3NwZWN0aW9uLTEuMGAKLS0KLS1BQ19TVUJTVChJTlRST1NQRUNUSU9OX1NDQU5ORVIpCi0tQUNfU1VCU1QoSU5UUk9TUEVDVElPTl9DT01QSUxFUikKLS0KLSAjIGNvbXBpbGVyIHdhcm5pbmdzLCBlcnJvcnMsIHJlcXVpcmVkIGNmbGFncywgYW5kIGNvZGUgY292ZXJhZ2Ugc3VwcG9ydAotIEdOT01FX0NPTVBJTEVfV0FSTklOR1MoW21heGltdW1dKQotIEFDX01TR19DSEVDS0lORyhmb3IgR25vbWUgY29kZSBjb3ZlcmFnZSBzdXBwb3J0KQogLS0gCiAyLjEuNAogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z29iamVjdF8zLjIyLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z29iamVjdF8zLjIyLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkMmUxNjUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdvYmplY3RfMy4yMi4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotU1VNTUFSWSA9ICJQeXRob24gR09iamVjdCBiaW5kaW5ncyIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cucHlndGsub3JnLyIKLVNFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgotTElDRU5TRSA9ICJMR1BMdjIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWE5MTY0NjdiOTEwNzZlNjMxZGQ4ZWRiNzQyNDc2OWM3IgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ25vbWViYXNlIGRpc3R1dGlscy1iYXNlIGdvYmplY3QtaW50cm9zcGVjdGlvbgotCi1QWVRIT05fQkFTRVZFUlNJT04gPSAiMi43IgotUFlUSE9OX1BOID0gInB5dGhvbiIKLQotREVQRU5EUyArPSAiZ25vbWUtY29tbW9uLW5hdGl2ZSBweXRob24gZ2xpYi0yLjAiCi0KLVNSQ05BTUU9InB5Z29iamVjdCIKLVNSQ19VUkkgPSAiIFwKLSAgICBodHRwOi8vZnRwLmdub21lLm9yZy9wdWIvR05PTUUvc291cmNlcy8ke1NSQ05BTUV9LyR7QGdub21lX3ZlcmRpcigiJHtQVn0iKX0vJHtTUkNOQU1FfS0ke1BWfS50YXIueHogXAotICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS5hYy1hZGQtc3lzcm9vdC1wYXRoLXRvLUdJX0RBVEFESVItZG9uLXQtc2UucGF0Y2ggXAotIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZWQ0MTE3ZWQ1ZDU1NGQyNWZkNzcxODgwN2ZiZjgxOWYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDhiMjljZmIwOGVmYzgwZjdhODYzMGEyNzM0ZGVjNjVhOTljMWI1OWYxZTU3NzFjNjcxZDJlNGVkOGE1Y2JlNyIKLQotUyA9ICIke1dPUktESVJ9LyR7U1JDTkFNRX0tJHtQVn0iCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgotCi1FWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLWNhaXJvIC0td2l0aC1weXRob249JHtQWVRIT059IgotCi1SREVQRU5EU18ke1BOfSArPSAicHl0aG9uLXNldHVwdG9vbHMgcHl0aG9uLWltcG9ydGxpYiIKLVJERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgICMgUmVtb3ZlIGZpbGVzIHRoYXQgY2xhc2ggd2l0aCBweXRob24zLXB5Z29iamVjdDsgdGhlaXIgY29udGVudCBpcyBzYW1lCi0gICAgcm0gLXJmICR7RH0ke2luY2x1ZGVkaXJ9L3B5Z29iamVjdC0zLjAvL3B5Z29iamVjdC5oICR7RH0ke2xpYmRpcn0vcGtnY29uZmlnCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z29iamVjdF8zLjI4LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z29iamVjdF8zLjI4LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWI2NWJhMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlnb2JqZWN0XzMuMjguMC5iYgpAQCAtMCwwICsxLDM1IEBACitTVU1NQVJZID0gIlB5dGhvbiBHT2JqZWN0IGJpbmRpbmdzIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5weWd0ay5vcmcvIgorU0VDVElPTiA9ICJkZXZlbC9weXRob24iCitMSUNFTlNFID0gIkxHUEx2Mi4xIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTkxNjQ2N2I5MTA3NmU2MzFkZDhlZGI3NDI0NzY5YzciCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnbm9tZWJhc2UgZGlzdHV0aWxzLWJhc2UgZ29iamVjdC1pbnRyb3NwZWN0aW9uCisKK1BZVEhPTl9CQVNFVkVSU0lPTiA9ICIyLjciCitQWVRIT05fUE4gPSAicHl0aG9uIgorCitERVBFTkRTICs9ICJnbm9tZS1jb21tb24tbmF0aXZlIHB5dGhvbiBnbGliLTIuMCIKKworU1JDTkFNRT0icHlnb2JqZWN0IgorU1JDX1VSSSA9ICIgXAorICAgIGh0dHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9HTk9NRS9zb3VyY2VzLyR7U1JDTkFNRX0vJHtAZ25vbWVfdmVyZGlyKCIke1BWfSIpfS8ke1NSQ05BTUV9LSR7UFZ9LnRhci54eiBcCisgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLmFjLWFkZC1zeXNyb290LXBhdGgtdG8tR0lfREFUQURJUi1kb24tdC1zZS5wYXRjaCBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJiMjlkNjllZGI2M2FlMWY1NTVhZmViMTlmOTBiOTk5NiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0MmI0N2IyNjFiNDVhZWRmYzc3ZTAyZTNjOTBhMDFjZDc0ZDZmODZjMzI3M2MxODYwYTA1NGQ1MzFkNjA2ZTVhIgorCitTID0gIiR7V09SS0RJUn0vJHtTUkNOQU1FfS0ke1BWfSIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtY2Fpcm8gLS13aXRoLXB5dGhvbj0ke1BZVEhPTn0iCisKK1JERVBFTkRTXyR7UE59ICs9ICJweXRob24tc2V0dXB0b29scyIKK1JERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgICMgUmVtb3ZlIGZpbGVzIHRoYXQgY2xhc2ggd2l0aCBweXRob24zLXB5Z29iamVjdDsgdGhlaXIgY29udGVudCBpcyBzYW1lCisgICAgcm0gLXJmICR7RH0ke2luY2x1ZGVkaXJ9L3B5Z29iamVjdC0zLjAvL3B5Z29iamVjdC5oICR7RH0ke2xpYmRpcn0vcGtnY29uZmlnCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9zaXAvc2lwXzQuMTkuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3NpcC9zaXBfNC4xOS4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZDgzN2M1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3NpcC9zaXBfNC4xOS4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotU1VNTUFSWSA9ICJTSVAgaXMgYSBDKysvUHl0aG9uIFdyYXBwZXIgR2VuZXJhdG9yIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5yaXZlcmJhbmtjb21wdXRpbmcuY28udWsvc2lwIgotU0VDVElPTiA9ICJkZXZlbCIKLUxJQ0VOU0UgPSAiR1BMdjIrIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS1HUEwyO21kNT1lOTEzNTVkOGE2ZjhiZDhmN2M2OTlkNjI4NjNjNzMwMyIKLQotaW5oZXJpdCBweXRob24tZGlyCi0KLURFUEVORFMgPSAicHl0aG9uIgotCi1TUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9wcm9qZWN0L3B5cXQvc2lwL3NpcC0ke1BWfS9zaXAtJHtQVn0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gIjRmNDhlMjEyODkwZWJlNTg0ZThkODA0Y2ZiY2ZjNjFlIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQzMmI0YWFkMjUyNTRlNjk5NzkxM2UzM2IxY2EzY2Y1ZmQyMWQ1NzI5YTUwYTNjZTJlZGNjYmVhODJjODA1MzMiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgotCi1QQUNLQUdFUyArPSAicHl0aG9uLXNpcCIKLQotZG9fY29uZmlndXJlX3ByZXBlbmRfY2xhc3MtdGFyZ2V0KCkgewotICAgIGVjaG8gInB5X3BsYXRmb3JtID0gbGludXgiID4gc2lwLmNmZwotICAgIGVjaG8gInB5X2luY19kaXIgPSAlKHN5c3Jvb3QpLyR7aW5jbHVkZWRpcn0vcHl0aG9uJShweV9tYWpvcikuJShweV9taW5vcikiID4+IHNpcC5jZmcKLSAgICBlY2hvICJzaXBfYmluX2RpciA9ICR7RH0vJHtiaW5kaXJ9IiA+PiBzaXAuY2ZnCi0gICAgZWNobyAic2lwX2luY19kaXIgPSAke0R9LyR7aW5jbHVkZWRpcn0iID4+IHNpcC5jZmcKLSAgICBlY2hvICJzaXBfbW9kdWxlX2RpciA9ICR7RH0vJHtsaWJkaXJ9L3B5dGhvbiUocHlfbWFqb3IpLiUocHlfbWlub3IpL3NpdGUtcGFja2FnZXMiID4+IHNpcC5jZmcKLSAgICBlY2hvICJzaXBfc2lwX2RpciA9ICR7RH0vJHtkYXRhZGlyfS9zaXAiID4+IHNpcC5jZmcKLSAgICBweXRob24gY29uZmlndXJlLnB5IC0tY29uZmlndXJhdGlvbiBzaXAuY2ZnIC0tc3lzcm9vdCAke1NUQUdJTkdfRElSX0hPU1R9IENDPSIke0NDfSIgQ1hYPSIke0NYWH0iIExJTks9IiR7Q1hYfSIgU1RSSVA9IiIgTElOS19TSExJQj0iJHtDWFh9IiBDRkxBR1M9IiR7Q0ZMQUdTfSIgQ1hYRkxBR1M9IiR7Q1hYRkxBR1N9IiBMRkxBR1M9IiR7TERGTEFHU30iCi19Ci1kb19jb25maWd1cmVfcHJlcGVuZF9jbGFzcy1uYXRpdmUoKSB7Ci0gICAgZWNobyAicHlfcGxhdGZvcm0gPSBsaW51eCIgPiBzaXAuY2ZnCi0gICAgZWNobyAicHlfaW5jX2RpciA9ICR7aW5jbHVkZWRpcn0vcHl0aG9uJShweV9tYWpvcikuJShweV9taW5vcikiID4+IHNpcC5jZmcKLSAgICBlY2hvICJzaXBfYmluX2RpciA9ICR7RH0vJHtiaW5kaXJ9IiA+PiBzaXAuY2ZnCi0gICAgZWNobyAic2lwX2luY19kaXIgPSAke0R9LyR7aW5jbHVkZWRpcn0iID4+IHNpcC5jZmcKLSAgICBlY2hvICJzaXBfbW9kdWxlX2RpciA9ICR7RH0vJHtsaWJkaXJ9L3B5dGhvbiUocHlfbWFqb3IpLiUocHlfbWlub3IpL3NpdGUtcGFja2FnZXMiID4+IHNpcC5jZmcKLSAgICBlY2hvICJzaXBfc2lwX2RpciA9ICR7RH0vJHtkYXRhZGlyfS9zaXAiID4+IHNpcC5jZmcKLSAgICBweXRob24gY29uZmlndXJlLnB5IC0tY29uZmlndXJhdGlvbiBzaXAuY2ZnIC0tc3lzcm9vdCAke1NUQUdJTkdfRElSX05BVElWRX0KLX0KLWRvX2luc3RhbGwoKSB7Ci0gICAgb2VfcnVubWFrZSBpbnN0YWxsCi19Ci0KLUZJTEVTX3B5dGhvbi1zaXAgPSAiJHtsaWJkaXJ9LyR7UFlUSE9OX0RJUn0vc2l0ZS1wYWNrYWdlcy8iCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS8ke1BZVEhPTl9ESVJ9L3NpdGUtcGFja2FnZXMvLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvc2lwL3NpcF80LjE5LjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9zaXAvc2lwXzQuMTkuOC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTk0NGIzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvc2lwL3NpcF80LjE5LjguYmIKQEAgLTAsMCArMSw0MiBAQAorU1VNTUFSWSA9ICJTSVAgaXMgYSBDKysvUHl0aG9uIFdyYXBwZXIgR2VuZXJhdG9yIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5yaXZlcmJhbmtjb21wdXRpbmcuY28udWsvc2lwIgorU0VDVElPTiA9ICJkZXZlbCIKK0xJQ0VOU0UgPSAiR1BMdjIrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS1HUEwyO21kNT1lOTEzNTVkOGE2ZjhiZDhmN2M2OTlkNjI4NjNjNzMwMyIKKworaW5oZXJpdCBweXRob24tZGlyCisKK0RFUEVORFMgPSAicHl0aG9uIgorCitTUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9wcm9qZWN0L3B5cXQvc2lwL3NpcC0ke1BWfS9zaXAtJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjA2MjVmYjIwMzQ3ZDRmZjFiNWRhNTUxNTM5YmUwNzI3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdlYWY3YTJlYTdkNGQzOGE1NmRkNmQyNTA2NTc0NDY0YmRkZjdjZjI4NGM5NjA4MDE2Nzk5NDIzNzdjMjk3YmMiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgorCitQQUNLQUdFUyArPSAicHl0aG9uLXNpcCIKKworZG9fY29uZmlndXJlX3ByZXBlbmRfY2xhc3MtdGFyZ2V0KCkgeworICAgIGVjaG8gInB5X3BsYXRmb3JtID0gbGludXgiID4gc2lwLmNmZworICAgIGVjaG8gInB5X2luY19kaXIgPSAlKHN5c3Jvb3QpLyR7aW5jbHVkZWRpcn0vcHl0aG9uJShweV9tYWpvcikuJShweV9taW5vcikiID4+IHNpcC5jZmcKKyAgICBlY2hvICJzaXBfYmluX2RpciA9ICR7RH0vJHtiaW5kaXJ9IiA+PiBzaXAuY2ZnCisgICAgZWNobyAic2lwX2luY19kaXIgPSAke0R9LyR7aW5jbHVkZWRpcn0iID4+IHNpcC5jZmcKKyAgICBlY2hvICJzaXBfbW9kdWxlX2RpciA9ICR7RH0vJHtsaWJkaXJ9L3B5dGhvbiUocHlfbWFqb3IpLiUocHlfbWlub3IpL3NpdGUtcGFja2FnZXMiID4+IHNpcC5jZmcKKyAgICBlY2hvICJzaXBfc2lwX2RpciA9ICR7RH0vJHtkYXRhZGlyfS9zaXAiID4+IHNpcC5jZmcKKyAgICBweXRob24gY29uZmlndXJlLnB5IC0tY29uZmlndXJhdGlvbiBzaXAuY2ZnIC0tc3lzcm9vdCAke1NUQUdJTkdfRElSX0hPU1R9IENDPSIke0NDfSIgQ1hYPSIke0NYWH0iIExJTks9IiR7Q1hYfSIgU1RSSVA9IiIgTElOS19TSExJQj0iJHtDWFh9IiBDRkxBR1M9IiR7Q0ZMQUdTfSIgQ1hYRkxBR1M9IiR7Q1hYRkxBR1N9IiBMRkxBR1M9IiR7TERGTEFHU30iCit9Citkb19jb25maWd1cmVfcHJlcGVuZF9jbGFzcy1uYXRpdmUoKSB7CisgICAgZWNobyAicHlfcGxhdGZvcm0gPSBsaW51eCIgPiBzaXAuY2ZnCisgICAgZWNobyAicHlfaW5jX2RpciA9ICR7aW5jbHVkZWRpcn0vcHl0aG9uJShweV9tYWpvcikuJShweV9taW5vcikiID4+IHNpcC5jZmcKKyAgICBlY2hvICJzaXBfYmluX2RpciA9ICR7RH0vJHtiaW5kaXJ9IiA+PiBzaXAuY2ZnCisgICAgZWNobyAic2lwX2luY19kaXIgPSAke0R9LyR7aW5jbHVkZWRpcn0iID4+IHNpcC5jZmcKKyAgICBlY2hvICJzaXBfbW9kdWxlX2RpciA9ICR7RH0vJHtsaWJkaXJ9L3B5dGhvbiUocHlfbWFqb3IpLiUocHlfbWlub3IpL3NpdGUtcGFja2FnZXMiID4+IHNpcC5jZmcKKyAgICBlY2hvICJzaXBfc2lwX2RpciA9ICR7RH0vJHtkYXRhZGlyfS9zaXAiID4+IHNpcC5jZmcKKyAgICBweXRob24gY29uZmlndXJlLnB5IC0tY29uZmlndXJhdGlvbiBzaXAuY2ZnIC0tc3lzcm9vdCAke1NUQUdJTkdfRElSX05BVElWRX0KK30KK2RvX2luc3RhbGwoKSB7CisgICAgb2VfcnVubWFrZSBpbnN0YWxsCit9CisKK0ZJTEVTX3B5dGhvbi1zaXAgPSAiJHtsaWJkaXJ9LyR7UFlUSE9OX0RJUn0vc2l0ZS1wYWNrYWdlcy8iCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS8ke1BZVEhPTl9ESVJ9L3NpdGUtcGFja2FnZXMvLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvdGNsdGsvdGsvY29uZnNlYXJjaC5kaWZmIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvdGNsdGsvdGsvY29uZnNlYXJjaC5kaWZmCmluZGV4IGM1MWU0NzUuLjRkYmQ5YTQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3RjbHRrL3RrL2NvbmZzZWFyY2guZGlmZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy90Y2x0ay90ay9jb25mc2VhcmNoLmRpZmYKQEAgLTQsMjkgKzQsMzIgQEAKIAogLS0tIHRrOC41LTguNS44Lm9yaWcvdW5peC9jb25maWd1cmUKICsrKyB0azguNS04LjUuOC91bml4L2NvbmZpZ3VyZQotQEAgLTE0MzEsNiArMTQzMSw3IEBACi0gCQkJYGxzIC1kICR7cHJlZml4fS9saWIgMj4vZGV2L251bGxgIFwKLSAJCQlgbHMgLWQgL3Vzci9sb2NhbC9saWIgMj4vZGV2L251bGxgIFwKK0BAIC0xNDMxLDcgKzE0MzEsOCBAQAogIAkJCWBscyAtZCAvdXNyL2NvbnRyaWIvbGliIDI+L2Rldi9udWxsYCBcCisgCQkJYGxzIC1kIC91c3IvbG9jYWwvbGliIDI+L2Rldi9udWxsYCBcCisgCQkJYGxzIC1kIC91c3IvcGtnL2xpYiAyPi9kZXYvbnVsbGAgXAogKwkJCWBscyAtZCAvdXNyL3NoYXJlL3RjbHRrL3RjbDguNSAyPi9kZXYvbnVsbGAgXAogIAkJCWBscyAtZCAvdXNyL2xpYiAyPi9kZXYvbnVsbGAgXAorIAkJCWBscyAtZCAvdXNyL2xpYjY0IDI+L2Rldi9udWxsYCBcCiAgCQkJOyBkbwogIAkJICAgIGlmIHRlc3QgLWYgIiRpL3RjbENvbmZpZy5zaCIgOyB0aGVuCiAtLS0gdGs4LjUtOC41Ljgub3JpZy91bml4L3RjbC5tNAogKysrIHRrOC41LTguNS44L3VuaXgvdGNsLm00Ci1AQCAtOTMsNiArOTMsNyBAQAotIAkJCWBscyAtZCAke3ByZWZpeH0vbGliIDI+L2Rldi9udWxsYCBcCi0gCQkJYGxzIC1kIC91c3IvbG9jYWwvbGliIDI+L2Rldi9udWxsYCBcCitAQCAtOTMsNyArOTMsOCBAQAogIAkJCWBscyAtZCAvdXNyL2NvbnRyaWIvbGliIDI+L2Rldi9udWxsYCBcCisgCQkJYGxzIC1kIC91c3IvbG9jYWwvbGliIDI+L2Rldi9udWxsYCBcCisgCQkJYGxzIC1kIC91c3IvcGtnL2xpYiAyPi9kZXYvbnVsbGAgXAogKwkJCWBscyAtZCAvdXNyL3NoYXJlL3RjbHRrL3RjbDguNSAyPi9kZXYvbnVsbGAgXAogIAkJCWBscyAtZCAvdXNyL2xpYiAyPi9kZXYvbnVsbGAgXAorIAkJCWBscyAtZCAvdXNyL2xpYjY0IDI+L2Rldi9udWxsYCBcCiAgCQkJOyBkbwogIAkJICAgIGlmIHRlc3QgLWYgIiRpL3RjbENvbmZpZy5zaCIgOyB0aGVuCi1AQCAtMjIzLDYgKzIyNCw3IEBACitAQCAtMjIzLDcgKzIyNCw4IEBACiAgCQkJYGxzIC1kICR7cHJlZml4fS9saWIgMj4vZGV2L251bGxgIFwKICAJCQlgbHMgLWQgL3Vzci9sb2NhbC9saWIgMj4vZGV2L251bGxgIFwKICAJCQlgbHMgLWQgL3Vzci9jb250cmliL2xpYiAyPi9kZXYvbnVsbGAgXAogKwkJCWBscyAtZCAvdXNyL3NoYXJlL3RjbHRrL3RrOC41IDI+L2Rldi9udWxsYCBcCiAgCQkJYGxzIC1kIC91c3IvbGliIDI+L2Rldi9udWxsYCBcCisgCQkJYGxzIC1kIC91c3IvbGliNjQgMj4vZGV2L251bGxgIFwKICAJCQk7IGRvCiAgCQkgICAgaWYgdGVzdCAtZiAiJGkvdGtDb25maWcuc2giIDsgdGhlbgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvdGNsdGsvdGtfOC42LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy90Y2x0ay90a184LjYuNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNiZjM5Ny4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy90Y2x0ay90a184LjYuNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLVNVTU1BUlkgPSAiVG9vbCBDb21tYW5kIExhbmd1YWdlIFRvb2xLaXQgRXh0ZW5zaW9uIgotSE9NRVBBR0UgPSAiaHR0cDovL3RjbC5zb3VyY2Vmb3JnZS5uZXQiCi1TRUNUSU9OID0gImRldmVsL3RjbHRrIgotCi0jIGh0dHA6Ly93d3cudGNsLnRrL3NvZnR3YXJlL3RjbHRrL2xpY2Vuc2UuaHRtbAotTElDRU5TRSA9ICJ0Y2wiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8uLi9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCi0gICAgZmlsZTovLy4uL2NvbXBhdC9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCi0gICAgZmlsZTovLy4uL2RvYy9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCi0gICAgZmlsZTovLy4uL2xpYnJhcnkvbGljZW5zZS50ZXJtczttZDU9Yzg4Zjk5ZGVjZWMxMWFmYTk2N2FkMzNkMzE0Zjg3ZmUgXAotICAgIGZpbGU6Ly8uLi9tYWNvc3gvbGljZW5zZS50ZXJtczttZDU9Yzg4Zjk5ZGVjZWMxMWFmYTk2N2FkMzNkMzE0Zjg3ZmUgXAotICAgIGZpbGU6Ly8uLi90ZXN0cy9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCi0gICAgZmlsZTovLy4uL3VuaXgvbGljZW5zZS50ZXJtczttZDU9Yzg4Zjk5ZGVjZWMxMWFmYTk2N2FkMzNkMzE0Zjg3ZmUgXAotICAgIGZpbGU6Ly8uLi93aW4vbGljZW5zZS50ZXJtczttZDU9Yzg4Zjk5ZGVjZWMxMWFmYTk2N2FkMzNkMzE0Zjg3ZmUgXAotICAgIGZpbGU6Ly8uLi94bGliL2xpY2Vuc2UudGVybXM7bWQ1PWM4OGY5OWRlY2VjMTFhZmE5NjdhZDMzZDMxNGY4N2ZlIFwKLSIKLQotREVQRU5EUyA9ICJ0Y2wgdmlydHVhbC9saWJ4MTEgbGlieHQiCi0KLVNSQ19VUkkgPSAiXAotICAgICR7U09VUkNFRk9SR0VfTUlSUk9SfS90Y2wvJHtCUE59JHtQVn0tc3JjLnRhci5neiBcCi0gICAgZmlsZTovL2NvbmZzZWFyY2guZGlmZjtzdHJpcGxldmVsPTIgXAotICAgIGZpbGU6Ly9ub24tbGludXguZGlmZjtzdHJpcGxldmVsPTIgXAotICAgIGZpbGU6Ly90a2xpYnJhcnkuZGlmZjtzdHJpcGxldmVsPTIgXAotICAgIGZpbGU6Ly90a3ByaXZhdGUuZGlmZjtzdHJpcGxldmVsPTIgXAotICAgIGZpbGU6Ly9maXgteGZ0LmRpZmYgXAotICAgIGZpbGU6Ly9jb25maWd1cmUudXNlLmZvbnRjb25maWcud2l0aC54ZnQucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gImRkN2RiYjNhNjUyM2M0MmQwNWY2YWI2ZTg2MDk2ZTk5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImQ2MmMzNzFhNzFiNDc0NGVkODMwZTNjMjFkMjc5NjhjMzFkYmE3NGRkMmM0NWYzNmI5YjA3MWU2ZDg4ZWIxOWQiCi0KLVMgPSAiJHtXT1JLRElSfS8ke0JQTn0ke1BWfS91bml4IgotCi0jIFNob3J0IHZlcnNpb24gZm9ybWF0OiAiOC42IgotVkVSID0gIiR7QG9zLnBhdGguc3BsaXRleHQoZC5nZXRWYXIoJ1BWJykpWzBdfSIKLQotTERGTEFHUyArPSAiLVdsLC1ycGF0aCwke2xpYmRpcn0vdGNsdGsvJHtQVn0vbGliIgotaW5oZXJpdCBhdXRvdG9vbHMgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCi0jIGRlcGVuZHMgb24gdmlydHVhbC9saWJ4MTEKLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCi0KLUVYVFJBX09FQ09ORiA9ICJcCi0gICAgLS1lbmFibGUtdGhyZWFkcyBcCi0gICAgLS13aXRoLXggXAotICAgIC0td2l0aC10Y2w9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30gXAotICAgIC0tbGliZGlyPSR7bGliZGlyfSBcCi0iCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGxuIC1zZiBsaWJ0ayR7VkVSfS5zbyAke0R9JHtsaWJkaXJ9L2xpYnRrJHtWRVJ9LnNvLjAKLSAgICBvZV9saWJpbnN0YWxsIC1zbyBsaWJ0ayR7VkVSfSAke0R9JHtsaWJkaXJ9Ci0gICAgbG4gLXNmIHdpc2gke1ZFUn0gJHtEfSR7YmluZGlyfS93aXNoCi0KLSAgICAjIEV2ZW4gYWZ0ZXIgcGFzc2luZyBsaWJkaXI9JHtsaWJkaXJ9IGF0IGNvbmZpZywgc29tZSBpbmNvcnJlY3QgZGlycyBhcmUgc3RpbGwgZ2VuZXJhdGVkIGZvciB0aGUgbXVsdGlsaWIgYnVpbGQKLSAgICBpZiBbICIkbGliZGlyIiAhPSAiL3Vzci9saWIiIF07IHRoZW4KLSAgICAgICAgIyBNb3ZlIGZpbGVzIHRvIGNvcnJlY3QgbGlicmFyeSBkaXJlY3RvcnkKLSAgICAgICAgbXYgJHtEfS91c3IvbGliL3RrJHtWRVJ9LyogJHtEfS8ke2xpYmRpcn0vdGske1ZFUn0vCi0gICAgICAgICMgUmVtb3ZlIHVubmVlZGVkL2luY29ycmVjdCBkaXIgKCd1c3IvbGliLycpCi0gICAgICAgIHJtIC1yZiAke0R9L3Vzci9saWIKLSAgICBmaQotfQotCi1QQUNLQUdFQ09ORklHID8/PSAieGZ0IgotUEFDS0FHRUNPTkZJR1t4ZnRdID0gIi0tZW5hYmxlLXhmdCwtLWRpc2FibGUteGZ0LHhmdCIKLVBBQ0tBR0VDT05GSUdbeHNzXSA9ICItLWVuYWJsZS14c3MsLS1kaXNhYmxlLXhzcyxsaWJ4c2NybnNhdmVyIGxpYnhleHQiCi0KLVBBQ0tBR0VTID0rICIke1BOfS1saWIiCi0KLUZJTEVTXyR7UE59LWxpYiA9ICIke2xpYmRpcn0vbGlidGske1ZFUn0uc28qIgotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS90ayoiCi0KLSMgaXNuJ3QgZ2V0dGluZyBwaWNrZWQgdXAgYnkgc2hsaWJzIGNvZGUKLVJERVBFTkRTXyR7UE59ICs9ICJ0ay1saWIiCi1SREVQRU5EU18ke1BOfV9jbGFzcy1uYXRpdmUgPSAiIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKLQotIyBGaXggdGhlIHBhdGggaW4gc3N0YXRlCi1TU1RBVEVfU0NBTl9GSUxFUyArPSAiKkNvbmZpZy5zaCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3RjbHRrL3RrXzguNi44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvdGNsdGsvdGtfOC42LjguYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNkYzRkNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3RjbHRrL3RrXzguNi44LmJiCkBAIC0wLDAgKzEsNzkgQEAKK1NVTU1BUlkgPSAiVG9vbCBDb21tYW5kIExhbmd1YWdlIFRvb2xLaXQgRXh0ZW5zaW9uIgorSE9NRVBBR0UgPSAiaHR0cDovL3RjbC5zb3VyY2Vmb3JnZS5uZXQiCitTRUNUSU9OID0gImRldmVsL3RjbHRrIgorCisjIGh0dHA6Ly93d3cudGNsLnRrL3NvZnR3YXJlL3RjbHRrL2xpY2Vuc2UuaHRtbAorTElDRU5TRSA9ICJ0Y2wiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8uLi9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCisgICAgZmlsZTovLy4uL2NvbXBhdC9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCisgICAgZmlsZTovLy4uL2RvYy9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCisgICAgZmlsZTovLy4uL2xpYnJhcnkvbGljZW5zZS50ZXJtczttZDU9Yzg4Zjk5ZGVjZWMxMWFmYTk2N2FkMzNkMzE0Zjg3ZmUgXAorICAgIGZpbGU6Ly8uLi9tYWNvc3gvbGljZW5zZS50ZXJtczttZDU9Yzg4Zjk5ZGVjZWMxMWFmYTk2N2FkMzNkMzE0Zjg3ZmUgXAorICAgIGZpbGU6Ly8uLi90ZXN0cy9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCisgICAgZmlsZTovLy4uL3VuaXgvbGljZW5zZS50ZXJtczttZDU9Yzg4Zjk5ZGVjZWMxMWFmYTk2N2FkMzNkMzE0Zjg3ZmUgXAorICAgIGZpbGU6Ly8uLi93aW4vbGljZW5zZS50ZXJtczttZDU9Yzg4Zjk5ZGVjZWMxMWFmYTk2N2FkMzNkMzE0Zjg3ZmUgXAorICAgIGZpbGU6Ly8uLi94bGliL2xpY2Vuc2UudGVybXM7bWQ1PWM4OGY5OWRlY2VjMTFhZmE5NjdhZDMzZDMxNGY4N2ZlIFwKKyIKKworREVQRU5EUyA9ICJ0Y2wgdmlydHVhbC9saWJ4MTEgbGlieHQiCisKK1NSQ19VUkkgPSAiXAorICAgICR7U09VUkNFRk9SR0VfTUlSUk9SfS90Y2wvJHtCUE59JHtQVn0tc3JjLnRhci5neiBcCisgICAgZmlsZTovL2NvbmZzZWFyY2guZGlmZjtzdHJpcGxldmVsPTIgXAorICAgIGZpbGU6Ly9ub24tbGludXguZGlmZjtzdHJpcGxldmVsPTIgXAorICAgIGZpbGU6Ly90a2xpYnJhcnkuZGlmZjtzdHJpcGxldmVsPTIgXAorICAgIGZpbGU6Ly90a3ByaXZhdGUuZGlmZjtzdHJpcGxldmVsPTIgXAorICAgIGZpbGU6Ly9maXgteGZ0LmRpZmYgXAorICAgIGZpbGU6Ly9jb25maWd1cmUudXNlLmZvbnRjb25maWcud2l0aC54ZnQucGF0Y2ggXAorIgorU1JDX1VSSVttZDVzdW1dID0gIjVlMGZhZWNiYTQ1OGVlMTM4NjA3OGZiMjI4ZDAwOGJhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ5ZTdiY2EwOGRkZTk1MTk1YTI3ZjU5NGY3Yzg1MGIwODhiZTM1N2E3YzcwOTZlNDRlMTE1OGM3YTVmZDdiMzMiCisKK1MgPSAiJHtXT1JLRElSfS8ke0JQTn0ke1BWfS91bml4IgorCisjIFNob3J0IHZlcnNpb24gZm9ybWF0OiAiOC42IgorVkVSID0gIiR7QG9zLnBhdGguc3BsaXRleHQoZC5nZXRWYXIoJ1BWJykpWzBdfSIKKworTERGTEFHUyArPSAiLVdsLC1ycGF0aCwke2xpYmRpcn0vdGNsdGsvJHtQVn0vbGliIgoraW5oZXJpdCBhdXRvdG9vbHMgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisjIGRlcGVuZHMgb24gdmlydHVhbC9saWJ4MTEKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK0VYVFJBX09FQ09ORiA9ICJcCisgICAgLS1lbmFibGUtdGhyZWFkcyBcCisgICAgLS13aXRoLXggXAorICAgIC0td2l0aC10Y2w9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30gXAorICAgIC0tbGliZGlyPSR7bGliZGlyfSBcCisiCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGxuIC1zZiBsaWJ0ayR7VkVSfS5zbyAke0R9JHtsaWJkaXJ9L2xpYnRrJHtWRVJ9LnNvLjAKKyAgICBvZV9saWJpbnN0YWxsIC1zbyBsaWJ0ayR7VkVSfSAke0R9JHtsaWJkaXJ9CisgICAgbG4gLXNmIHdpc2gke1ZFUn0gJHtEfSR7YmluZGlyfS93aXNoCisKKyAgICAjIEV2ZW4gYWZ0ZXIgcGFzc2luZyBsaWJkaXI9JHtsaWJkaXJ9IGF0IGNvbmZpZywgc29tZSBpbmNvcnJlY3QgZGlycyBhcmUgc3RpbGwgZ2VuZXJhdGVkIGZvciB0aGUgbXVsdGlsaWIgYnVpbGQKKyAgICBpZiBbICIkbGliZGlyIiAhPSAiL3Vzci9saWIiIF07IHRoZW4KKyAgICAgICAgIyBNb3ZlIGZpbGVzIHRvIGNvcnJlY3QgbGlicmFyeSBkaXJlY3RvcnkKKyAgICAgICAgbXYgJHtEfS91c3IvbGliL3RrJHtWRVJ9LyogJHtEfS8ke2xpYmRpcn0vdGske1ZFUn0vCisgICAgICAgICMgUmVtb3ZlIHVubmVlZGVkL2luY29ycmVjdCBkaXIgKCd1c3IvbGliLycpCisgICAgICAgIHJtIC1yZiAke0R9L3Vzci9saWIKKyAgICBmaQorfQorCitQQUNLQUdFQ09ORklHID8/PSAieGZ0IgorUEFDS0FHRUNPTkZJR1t4ZnRdID0gIi0tZW5hYmxlLXhmdCwtLWRpc2FibGUteGZ0LHhmdCIKK1BBQ0tBR0VDT05GSUdbeHNzXSA9ICItLWVuYWJsZS14c3MsLS1kaXNhYmxlLXhzcyxsaWJ4c2NybnNhdmVyIGxpYnhleHQiCisKK1BBQ0tBR0VTID0rICIke1BOfS1saWIiCisKK0ZJTEVTXyR7UE59LWxpYiA9ICIke2xpYmRpcn0vbGlidGske1ZFUn0uc28qIgorRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS90ayoiCisKKyMgaXNuJ3QgZ2V0dGluZyBwaWNrZWQgdXAgYnkgc2hsaWJzIGNvZGUKK1JERVBFTkRTXyR7UE59ICs9ICJ0ay1saWIiCitSREVQRU5EU18ke1BOfV9jbGFzcy1uYXRpdmUgPSAiIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKKworIyBGaXggdGhlIHBhdGggaW4gc3N0YXRlCitTU1RBVEVfU0NBTl9GSUxFUyArPSAiKkNvbmZpZy5zaCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NmZW5naW5lL2NmZW5naW5lLW1hc3RlcmZpbGVzL3JlbW92ZS1wb2xpY3ktb2YtdXNyLWxvY2FsLXNiaW4ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9jZmVuZ2luZS9jZmVuZ2luZS1tYXN0ZXJmaWxlcy9yZW1vdmUtcG9saWN5LW9mLXVzci1sb2NhbC1zYmluLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjhkZWJjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NmZW5naW5lL2NmZW5naW5lLW1hc3RlcmZpbGVzL3JlbW92ZS1wb2xpY3ktb2YtdXNyLWxvY2FsLXNiaW4ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCi0KLURpcmVjdG9yeSAvdXNyL2xvY2FsIGlzIG5vdCB1c2VkIGZvciB1cy4gUmVtb3ZlIHRoZSBwb2xpY3kgdGhhdCBub3QgdG8gaW5zdGFsbAotYmluYXJpZXMgdG8gL3Vzci9sb2NhbC9zYmluLgotCi1TaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KLS0tLQotZGlmZiAtLWdpdCBhL2NmZV9pbnRlcm5hbC91cGRhdGUvdXBkYXRlX2JpbnMuY2YgYi9jZmVfaW50ZXJuYWwvdXBkYXRlL3VwZGF0ZV9iaW5zLmNmCi1pbmRleCAxNzk2Y2FhLi42OTdhZjBkIDEwMDY0NAotLS0tIGEvY2ZlX2ludGVybmFsL3VwZGF0ZS91cGRhdGVfYmlucy5jZgotKysrIGIvY2ZlX2ludGVybmFsL3VwZGF0ZS91cGRhdGVfYmlucy5jZgotQEAgLTU1LDE2ICs1NSw2IEBAIGJ1bmRsZSBhZ2VudCBjZmVfaW50ZXJuYWxfYmlucwotICAgICAgIGRlcHRoX3NlYXJjaCA9PiB1X3JlY3Vyc2VfYmFzZWRpcigiaW5mIiksCi0gICAgICAgYWN0aW9uID0+IHVfaW1tZWRpYXRlOwotIAotLSAgICAgICIvdXNyL2xvY2FsL3NiaW4vJChhZ2VudHMpIgotLSAgICAgIGNvbW1lbnQgPT4gIkNyZWF0ZSBzeW1saW5rcyBvZiBDRkUgYmluYXJpZXMgaW4gL3Vzci9sb2NhbC9zYmluIiwKLS0gICAgICBoYW5kbGUgPT4gY2Fub25pZnkoImNmZV9pbnRlcm5hbF9iaW5zX2ZpbGVzX3NiaW5fJChhZ2VudHMpIiksCi0tICAgICAgbW92ZV9vYnN0cnVjdGlvbnMgPT4gInRydWUiLAotLSAgICAgIGxpbmtfZnJvbSA9PiB1X2xuX3MoIiQoc3lzLndvcmtkaXIpL2Jpbi8kKGFnZW50cykiKTsKLS0KLS0gICAgICAiL3Vzci9sb2NhbC9zYmluLyQoYWdlbnRzKS5jZnNhdmVkIgotLSAgICAgIGNvbW1lbnQgPT4gIlJlbW92ZSBhbGwgLmNmc2F2ZWQgZmlsZSBleHRlbnNpb24iLAotLSAgICAgIGhhbmRsZSA9PiBjYW5vbmlmeSgiY2ZlX2ludGVybmFsX2JpbnNfZmlsZXNfcmVtb3ZlXyQoYWdlbnQpX2Nmc2F2ZWQiKSwKLS0gICAgICBkZWxldGUgPT4gdV90aWR5OwotIH0KLSAKLSBidW5kbGUgYWdlbnQgY2ZlX2ludGVybmFsX3VwZGF0ZV9iaW5zCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9jZmVuZ2luZS9jZmVuZ2luZS1tYXN0ZXJmaWxlc18zLjEwLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9jZmVuZ2luZS9jZmVuZ2luZS1tYXN0ZXJmaWxlc18zLjEwLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjUyZTdjYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NmZW5naW5lL2NmZW5naW5lLW1hc3RlcmZpbGVzXzMuMTAuMi5iYgpAQCAtMCwwICsxLDM2IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNCAtIDIwMTcgV2luZCBSaXZlciBTeXN0ZW1zLCBJbmMuCisjCitTVU1NQVJZID0gIkJhc2UgcG9saWN5IGZvciBDRkVuZ2luZSIKKworREVTQ1JJUFRJT04gPSAiQ0ZFbmdpbmUgaXMgYW4gSVQgaW5mcmFzdHJ1Y3R1cmUgYXV0b21hdGlvbiBmcmFtZXdvcmsgXAordGhhdCBoZWxwcyBlbmdpbmVlcnMsIHN5c3RlbSBhZG1pbmlzdHJhdG9ycyBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIFwKK2luIGFuIElUIHN5c3RlbSB0byBtYW5hZ2UgYW5kIHVuZGVyc3RhbmQgSVQgaW5mcmFzdHJ1Y3R1cmUgdGhyb3VnaG91dCBcCitpdHMgbGlmZWN5Y2xlLiBDRkVuZ2luZSB0YWtlcyBzeXN0ZW1zIGZyb20gQnVpbGQgdG8gRGVwbG95LCBNYW5hZ2UgYW5kIEF1ZGl0LiBcCisgXAorVGhpcyBwYWNrYWdlIGlzIGludGVuZGVkIHRvIHByb3ZpZGUgYSBzdGFibGUgYmFzZSBwb2xpY3kgZm9yIFwKK2luc3RhbGxhdGlvbnMgYW5kIHVwZ3JhZGVzLCBhbmQgaXMgdXNlZCBieSBDRkVuZ2luZSAzLjYgYW5kIG5ld2VyLiBcCisgXAorVGhlIGNvbnRlbnRzIG9mIHRoaXMgcGFja2dlIGFyZSBpbnRlbmRlZCB0byBsaXZlIGluIGAvdmFyL2NmZW5naW5lL21hc3RlcmZpbGVzYCBcCitvciB3aGVyZXZlciBgJChzeXMubWFzdGVyZGlyKWAgcG9pbnRzLiBcCisiCisKK0hPTUVQQUdFID0gImh0dHA6Ly9jZmVuZ2luZS5jb20iCisKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9OWY3NjQyNmY5ZWY4YzZmNjczOWZhZGQyMWQ4MTdhNGYiCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9jZmVuZ2luZS1wYWNrYWdlLXJlcG9zLnMzLmFtYXpvbmF3cy5jb20vdGFyYmFsbHMvJHtCUH0udGFyLmd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMTI0N2VmNGU4ZjNjZWU1ZWZhOThkYTUwYzMyNmU1YTQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWQxOGE4ZDcxZjQ1MWQwYjVkZDFmNWU1Nzk0NTJiMjliOTliNjY0ZjJiYjA4MjdkYmJhOWE2MTVmMjc2NGRmNiIKKworaW5oZXJpdCBhdXRvdG9vbHMKKworZXhwb3J0IEVYUExJQ0lUX1ZFUlNJT049IiR7UFZ9IgorCitFWFRSQV9PRUNPTkYgPSAiLS1wcmVmaXg9JHtkYXRhZGlyfS9jZmVuZ2luZSIKKworRklMRVNfJHtQTn0gPSAiJHtkYXRhZGlyfS9jZmVuZ2luZSIKKworUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi1jb3JlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY2ZlbmdpbmUvY2ZlbmdpbmUtbWFzdGVyZmlsZXNfMy45LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9jZmVuZ2luZS9jZmVuZ2luZS1tYXN0ZXJmaWxlc18zLjkuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWQwMWM1MS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9jZmVuZ2luZS9jZmVuZ2luZS1tYXN0ZXJmaWxlc18zLjkuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDE0IC0gMjAxNiBXaW5kIFJpdmVyIFN5c3RlbXMsIEluYy4KLSMKLVNVTU1BUlkgPSAiQmFzZSBwb2xpY3kgZm9yIENGRW5naW5lIgotCi1ERVNDUklQVElPTiA9ICJDRkVuZ2luZSBpcyBhbiBJVCBpbmZyYXN0cnVjdHVyZSBhdXRvbWF0aW9uIGZyYW1ld29yayBcCi10aGF0IGhlbHBzIGVuZ2luZWVycywgc3lzdGVtIGFkbWluaXN0cmF0b3JzIGFuZCBvdGhlciBzdGFrZWhvbGRlcnMgXAotaW4gYW4gSVQgc3lzdGVtIHRvIG1hbmFnZSBhbmQgdW5kZXJzdGFuZCBJVCBpbmZyYXN0cnVjdHVyZSB0aHJvdWdob3V0IFwKLWl0cyBsaWZlY3ljbGUuIENGRW5naW5lIHRha2VzIHN5c3RlbXMgZnJvbSBCdWlsZCB0byBEZXBsb3ksIE1hbmFnZSBhbmQgQXVkaXQuIFwKLSBcCi1UaGlzIHBhY2thZ2UgaXMgaW50ZW5kZWQgdG8gcHJvdmlkZSBhIHN0YWJsZSBiYXNlIHBvbGljeSBmb3IgXAotaW5zdGFsbGF0aW9ucyBhbmQgdXBncmFkZXMsIGFuZCBpcyB1c2VkIGJ5IENGRW5naW5lIDMuNiBhbmQgbmV3ZXIuIFwKLSBcCi1UaGUgY29udGVudHMgb2YgdGhpcyBwYWNrZ2UgYXJlIGludGVuZGVkIHRvIGxpdmUgaW4gYC92YXIvY2ZlbmdpbmUvbWFzdGVyZmlsZXNgIFwKLW9yIHdoZXJldmVyIGAkKHN5cy5tYXN0ZXJkaXIpYCBwb2ludHMuIFwKLSIKLQotSE9NRVBBR0UgPSAiaHR0cDovL2NmZW5naW5lLmNvbSIKLQotTElDRU5TRSA9ICJNSVQiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT01MmNkM2QxM2FmOTMxODA4MjI4ODhhYjAwODhlOTMyOCIKLQotU1JDX1VSSSA9ICJodHRwczovL2NmZW5naW5lLXBhY2thZ2UtcmVwb3MuczMuYW1hem9uYXdzLmNvbS90YXJiYWxscy8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vcmVtb3ZlLXBvbGljeS1vZi11c3ItbG9jYWwtc2Jpbi5wYXRjaCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiYjEwMWRkY2Q1NDY3MzhhZjZlYzkxYmU1YzI5N2NiMjQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjNkZWMyZjg2NDlmNWYyNzg4Y2Q0NjNkY2NmNDdmOGRiZTk0MTUyMmFjZmNmMzA5MzUxN2Y5ODNiYmZhMDYwNiIKLQotaW5oZXJpdCBhdXRvdG9vbHMKLQotZXhwb3J0IEVYUExJQ0lUX1ZFUlNJT049IiR7UFZ9IgotCi1FWFRSQV9PRUNPTkYgPSAiLS1wcmVmaXg9JHtsb2NhbHN0YXRlZGlyfS9jZmVuZ2luZSIKLQotRklMRVNfJHtQTn0gKz0gIiR7bG9jYWxzdGF0ZWRpcn0vY2ZlbmdpbmUiCi0KLVJERVBFTkRTXyR7UE59ICs9ICJweXRob24tY29yZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NmZW5naW5lL2NmZW5naW5lXzMuMTAuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NmZW5naW5lL2NmZW5naW5lXzMuMTAuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODZiMGExCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY2ZlbmdpbmUvY2ZlbmdpbmVfMy4xMC4yLmJiCkBAIC0wLDAgKzEsNzMgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE0IC0gMjAxNyBXaW5kIFJpdmVyIFN5c3RlbXMsIEluYy4KKyMKK1NVTU1BUlkgPSAiQ0ZFbmdpbmUgaXMgYW4gSVQgaW5mcmFzdHJ1Y3R1cmUgYXV0b21hdGlvbiBmcmFtZXdvcmsiCisKK0RFU0NSSVBUSU9OID0gIkNGRW5naW5lIGlzIGFuIElUIGluZnJhc3RydWN0dXJlIGF1dG9tYXRpb24gZnJhbWV3b3JrIFwKK3RoYXQgaGVscHMgZW5naW5lZXJzLCBzeXN0ZW0gYWRtaW5pc3RyYXRvcnMgYW5kIG90aGVyIHN0YWtlaG9sZGVycyBcCitpbiBhbiBJVCBzeXN0ZW0gdG8gbWFuYWdlIGFuZCB1bmRlcnN0YW5kIElUIGluZnJhc3RydWN0dXJlIHRocm91Z2hvdXQgXAoraXRzIGxpZmVjeWNsZS4gQ0ZFbmdpbmUgdGFrZXMgc3lzdGVtcyBmcm9tIEJ1aWxkIHRvIERlcGxveSwgTWFuYWdlIGFuZCBBdWRpdC4iCisKK0hPTUVQQUdFID0gImh0dHA6Ly9jZmVuZ2luZS5jb20iCisKK0xJQ0VOU0UgPSAiR1BMdjMiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1mOGIzNDgyOGFiMzczZDZiMWJiNGIwZmM2MGE3ODQ5NCIKKworREVQRU5EUyA9ICJhdHRyIHRva3lvY2FiaW5ldCIKKworU1JDX1VSSSA9ICJodHRwczovL2NmZW5naW5lLXBhY2thZ2UtcmVwb3MuczMuYW1hem9uYXdzLmNvbS90YXJiYWxscy8ke0JQfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vY2hhbmdlLWhhcmQtY29kZWQtbGliLXBhdGgucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vc2V0LXBhdGgtb2YtZGVmYXVsdC1jb25maWctZmlsZS5wYXRjaCBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJjMTZiYWYwODE4OWExYWY2ZmNmMmUyZmY2MTEwMjk5MiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkNGZhOWFjNzI3NmRiYTdiODVkNjc1N2FhYjJmMDkyOWFiOGQzYjExNWNiMGU3YjBjZjk4NDc2MDM0NzQyOWQ3IgorCitpbmhlcml0IGF1dG90b29scyBzeXN0ZW1kCisKK2V4cG9ydCBFWFBMSUNJVF9WRVJTSU9OPSIke1BWfSIKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImNmZW5naW5lMy5zZXJ2aWNlIGNmLWFwYWNoZS5zZXJ2aWNlIGNmLWh1Yi5zZXJ2aWNlIGNmLXBvc3RncmVzLnNlcnZpY2UgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGNmLXJ1bmFsZXJ0cy5zZXJ2aWNlIGNmLWNvbnN1bWVyLnNlcnZpY2UgY2YtZXhlY2Quc2VydmljZSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgY2YtbW9uaXRvcmQuc2VydmljZSAgY2YtcmVkaXMtc2VydmVyLnNlcnZpY2UgIGNmLXNlcnZlcmQuc2VydmljZSBcCisiCitTWVNURU1EX0FVVE9fRU5BQkxFXyR7UE59ID0gImRpc2FibGUiCisKK1BBQ0tBR0VDT05GSUcgPz89ICJsaWJwY3JlIG9wZW5zc2wgXAorICAgICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3BhbSBzeXN0ZW1kJywgZCl9IFwKKyIKK1BBQ0tBR0VDT05GSUdbbGlieG1sMl0gPSAiLS13aXRoLWxpYnhtbDI9eWVzLC0td2l0aC1saWJ4bWwyPW5vLGxpYnhtbDIsIgorUEFDS0FHRUNPTkZJR1tteXNxbF0gPSAiLS13aXRoLW15c3FsPXllcywtLXdpdGgtbXlzcWw9bm8sbXlzcWwsIgorUEFDS0FHRUNPTkZJR1twb3N0Z3Jlc3FsXSA9ICItLXdpdGgtcG9zdGdyZXNxbD15ZXMsLS13aXRoLXBvc3RncmVzcWw9bm8scG9zdGdyZXNxbCwiCitQQUNLQUdFQ09ORklHW2FjbF0gPSAiLS13aXRoLWxpYmFjbD15ZXMsLS13aXRoLWxpYmFjbD1ubyxhY2wsIgorUEFDS0FHRUNPTkZJR1tsaWJ2aXJ0XSA9ICItLXdpdGgtbGlidmlydD15ZXMsLS13aXRoLWxpYnZpcnQ9bm8sbGlidmlydCwiCitQQUNLQUdFQ09ORklHW2xpYnBjcmVdID0gIi0td2l0aC1wY3JlPXllcywtLXdpdGgtcGNyZT1ubyxsaWJwY3JlLCIKK1BBQ0tBR0VDT05GSUdbb3BlbnNzbF0gPSAiLS13aXRoLW9wZW5zc2w9eWVzLC0td2l0aC1vcGVuc3NsPW5vLG9wZW5zc2wsIgorUEFDS0FHRUNPTkZJR1twYW1dID0gIi0td2l0aC1wYW09eWVzLC0td2l0aC1wYW09bm8sbGlicGFtLCIKK1BBQ0tBR0VDT05GSUdbbGlieWFtbF0gPSAiLS13aXRoLWxpYnlhbWwsLS13aXRob3V0LWxpYnlhbWwsbGlieWFtbCwiCitQQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0td2l0aC1zeXN0ZW1kLXNlcnZpY2U9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfSwtLXdpdGhvdXQtc3lzdGVtZC1zZXJ2aWNlIgorUEFDS0FHRUNPTkZJR1tsaWJjdXJsXSA9ICItLXdpdGgtbGliY3VybCwtLXdpdGhvdXQtbGliY3VybCxjdXJsLCIKKworRVhUUkFfT0VDT05GID0gImh3X2N2X2Z1bmNfdmFfY29weT15ZXMgLS13aXRoLWluaXQtc2NyaXB0PSR7c3lzY29uZmRpcn0vaW5pdC5kIC0td2l0aC10b2t5b2NhYmluZXQiCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vJHtCUE59L2JpbgorICAgIGZvciBmIGluIGBscyAke0R9JHtiaW5kaXJ9YDsgZG8KKyAgICAgICAgbG4gLXMgJHtiaW5kaXJ9L2BiYXNlbmFtZSAkZmAgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vJHtCUE59L2Jpbi8KKyAgICBkb25lCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQKKyAgICBjYXQgPDwgRU9GID4gJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC9jZmVuZ2luZTMKK1JVTl9DRl9TRVJWRVJEPTEKK1JVTl9DRl9FWEVDRD0xCitSVU5fQ0ZfTU9OSVRPUkQ9MQorUlVOX0NGX0hVQj0wCitFT0YKKworICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCisgICAgICAgIGluc3RhbGwgLW0gMDc1NSAtRCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvY2ZlbmdpbmUzICR7RH0ke2RhdGFkaXJ9LyR7QlBOfS9jZmVuZ2luZTMKKyAgICAgICAgc2VkIC1pIC1lICdzIy9ldGMvaW5pdC5kIyR7ZGF0YWRpcn0vJHtCUE59IycgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0vKi5zZXJ2aWNlCisgICAgZmkKK30KKworUkRFUEVORFNfJHtQTn0gKz0gIiR7QlBOfS1tYXN0ZXJmaWxlcyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NmZW5naW5lL2NmZW5naW5lXzMuOS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY2ZlbmdpbmUvY2ZlbmdpbmVfMy45LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhYThkZWQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY2ZlbmdpbmUvY2ZlbmdpbmVfMy45LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0jCi0jIENvcHlyaWdodCAoQykgMjAxNCAtIDIwMTYgV2luZCBSaXZlciBTeXN0ZW1zLCBJbmMuCi0jCi1TVU1NQVJZID0gIkNGRW5naW5lIGlzIGFuIElUIGluZnJhc3RydWN0dXJlIGF1dG9tYXRpb24gZnJhbWV3b3JrIgotCi1ERVNDUklQVElPTiA9ICJDRkVuZ2luZSBpcyBhbiBJVCBpbmZyYXN0cnVjdHVyZSBhdXRvbWF0aW9uIGZyYW1ld29yayBcCi10aGF0IGhlbHBzIGVuZ2luZWVycywgc3lzdGVtIGFkbWluaXN0cmF0b3JzIGFuZCBvdGhlciBzdGFrZWhvbGRlcnMgXAotaW4gYW4gSVQgc3lzdGVtIHRvIG1hbmFnZSBhbmQgdW5kZXJzdGFuZCBJVCBpbmZyYXN0cnVjdHVyZSB0aHJvdWdob3V0IFwKLWl0cyBsaWZlY3ljbGUuIENGRW5naW5lIHRha2VzIHN5c3RlbXMgZnJvbSBCdWlsZCB0byBEZXBsb3ksIE1hbmFnZSBhbmQgQXVkaXQuIgotCi1IT01FUEFHRSA9ICJodHRwOi8vY2ZlbmdpbmUuY29tIgotCi1MSUNFTlNFID0gIkdQTHYzIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9Y2Q1OWMzNjUwYzhiN2ZmMzZiYWIxY2M2NTg3YjA5N2EiCi0KLURFUEVORFMgPSAiYXR0ciB0b2t5b2NhYmluZXQiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9jZmVuZ2luZS1wYWNrYWdlLXJlcG9zLnMzLmFtYXpvbmF3cy5jb20vdGFyYmFsbHMvJHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL2NoYW5nZS1oYXJkLWNvZGVkLWxpYi1wYXRoLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL3NldC1wYXRoLW9mLWRlZmF1bHQtY29uZmlnLWZpbGUucGF0Y2ggXAotIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNjNkYTM5NjU1Y2ZjYTMwY2E4ODVmY2M0YTFiZjhhYTQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzJhMzhhZWRmMTE5OWMyMzYxZTEzMzVlMGQ0YTFkOThmOWVmYTdjZDU5MWJjYjY0N2YzNWM3Mzk1YmI2NmYyZCIKLQotaW5oZXJpdCBhdXRvdG9vbHMgc3lzdGVtZAotCi1leHBvcnQgRVhQTElDSVRfVkVSU0lPTj0iJHtQVn0iCi0KLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJjZmVuZ2luZTMuc2VydmljZSBjZmVuZ2luZTMtd2ViLnNlcnZpY2UiCi1TWVNURU1EX0FVVE9fRU5BQkxFXyR7UE59ID0gImRpc2FibGUiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICJsaWJwY3JlIG9wZW5zc2wgXAotICAgICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3BhbSBzeXN0ZW1kJywgZCl9IFwKLSIKLVBBQ0tBR0VDT05GSUdbbGlieG1sMl0gPSAiLS13aXRoLWxpYnhtbDI9eWVzLC0td2l0aC1saWJ4bWwyPW5vLGxpYnhtbDIsIgotUEFDS0FHRUNPTkZJR1tteXNxbF0gPSAiLS13aXRoLW15c3FsPXllcywtLXdpdGgtbXlzcWw9bm8sbXlzcWwsIgotUEFDS0FHRUNPTkZJR1twb3N0Z3Jlc3FsXSA9ICItLXdpdGgtcG9zdGdyZXNxbD15ZXMsLS13aXRoLXBvc3RncmVzcWw9bm8scG9zdGdyZXNxbCwiCi1QQUNLQUdFQ09ORklHW2FjbF0gPSAiLS13aXRoLWxpYmFjbD15ZXMsLS13aXRoLWxpYmFjbD1ubyxhY2wsIgotUEFDS0FHRUNPTkZJR1tsaWJ2aXJ0XSA9ICItLXdpdGgtbGlidmlydD15ZXMsLS13aXRoLWxpYnZpcnQ9bm8sbGlidmlydCwiCi1QQUNLQUdFQ09ORklHW2xpYnBjcmVdID0gIi0td2l0aC1wY3JlPXllcywtLXdpdGgtcGNyZT1ubyxsaWJwY3JlLCIKLVBBQ0tBR0VDT05GSUdbb3BlbnNzbF0gPSAiLS13aXRoLW9wZW5zc2w9eWVzLC0td2l0aC1vcGVuc3NsPW5vLG9wZW5zc2wsIgotUEFDS0FHRUNPTkZJR1twYW1dID0gIi0td2l0aC1wYW09eWVzLC0td2l0aC1wYW09bm8sbGlicGFtLCIKLVBBQ0tBR0VDT05GSUdbbGlieWFtbF0gPSAiLS13aXRoLWxpYnlhbWwsLS13aXRob3V0LWxpYnlhbWwsbGlieWFtbCwiCi1QQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0td2l0aC1zeXN0ZW1kLXNlcnZpY2U9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfSwtLXdpdGhvdXQtc3lzdGVtZC1zZXJ2aWNlIgotUEFDS0FHRUNPTkZJR1tsaWJjdXJsXSA9ICItLXdpdGgtbGliY3VybCwtLXdpdGhvdXQtbGliY3VybCxjdXJsLCIKLQotRVhUUkFfT0VDT05GID0gImh3X2N2X2Z1bmNfdmFfY29weT15ZXMgLS13aXRoLWluaXQtc2NyaXB0PSR7c3lzY29uZmRpcn0vaW5pdC5kIC0td2l0aC10b2t5b2NhYmluZXQiCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGluc3RhbGwgLWQgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vJHtCUE59L2JpbgotICAgIGZvciBmIGluIGBscyAke0R9JHtiaW5kaXJ9YDsgZG8KLSAgICAgICAgbG4gLXMgJHtiaW5kaXJ9L2BiYXNlbmFtZSAkZmAgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vJHtCUE59L2Jpbi8KLSAgICBkb25lCi0KLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQKLSAgICBjYXQgPDwgRU9GID4gJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC9jZmVuZ2luZTMKLVJVTl9DRl9TRVJWRVJEPTEKLVJVTl9DRl9FWEVDRD0xCi1SVU5fQ0ZfTU9OSVRPUkQ9MQotUlVOX0NGX0hVQj0wCi1FT0YKLQotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCi0gICAgICAgIGluc3RhbGwgLW0gMDc1NSAtRCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvY2ZlbmdpbmUzICR7RH0ke2RhdGFkaXJ9LyR7QlBOfS9jZmVuZ2luZTMKLSAgICAgICAgc2VkIC1pIC1lICdzIy9ldGMvaW5pdC5kIyR7ZGF0YWRpcn0vJHtCUE59IycgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0vKi5zZXJ2aWNlCi0gICAgZmkKLX0KLQotUkRFUEVORFNfJHtQTn0gKz0gIiR7QlBOfS1tYXN0ZXJmaWxlcyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NtcGktYmluZGluZ3MvY21waS1iaW5kaW5nc19naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9jbXBpLWJpbmRpbmdzL2NtcGktYmluZGluZ3NfZ2l0LmJiCmluZGV4IDI1MTY2YWIuLjk4N2MwOWYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NtcGktYmluZGluZ3MvY21waS1iaW5kaW5nc19naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY21waS1iaW5kaW5ncy9jbXBpLWJpbmRpbmdzX2dpdC5iYgpAQCAtMjQsNiArMjQsMTAgQEAKIEVYVFJBX09FQ01BS0UgPSAiLURMSUI9JyR7YmFzZWxpYn0nIFwKICAgICAgICAgICAgICAgICAgLURQWVRIT05fSU5DTFVERV9QQVRIPSR7U1RBR0lOR19JTkNESVJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfSIKIAorIyBXaXRoIE5pbmphIGl0IGZhaWxzIHdpdGg6CisjIG5pbmphOiBlcnJvcjogYnVpbGQubmluamE6MjgyOiBiYWQgJC1lc2NhcGUgKGxpdGVyYWwgJCBtdXN0IGJlIHdyaXR0ZW4gYXMgJCQpCitPRUNNQUtFX0dFTkVSQVRPUiA9ICJVbml4IE1ha2VmaWxlcyIKKwogZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7CiAgICAgZXhwb3J0IFNUQUdJTkdfTElCRElSPSR7U1RBR0lOR19MSUJESVJ9CiAgICAgZXhwb3J0IFNUQUdJTkdfSU5DRElSPSR7U1RBR0lOR19JTkNESVJ9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kYXNoL2Rhc2hfMC41LjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kYXNoL2Rhc2hfMC41LjguYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4Y2E2MGQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZGFzaC9kYXNoXzAuNS44LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotU1VNTUFSWSA9ICJTbWFsbCBhbmQgZmFzdCBQT1NJWC1jb21wbGlhbnQgc2hlbGwiCi1IT01FUEFHRSA9ICJodHRwOi8vZ29uZG9yLmFwYW5hLm9yZy5hdS9+aGVyYmVydC9kYXNoLyIKLVNFQ1RJT04gPSAiU3lzdGVtIEVudmlyb25tZW50L1NoZWxscyIKLQotTElDRU5TRSA9ICJCU0QgJiBHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iNTI2MmI0YTFhMWJmZjcyYjQ4ZTkzNTUzMTk3NmQyZSIKLQotaW5oZXJpdCBhdXRvdG9vbHMgdXBkYXRlLWFsdGVybmF0aXZlcwotCi1TUkNfVVJJID0gImh0dHA6Ly9nb25kb3IuYXBhbmEub3JnLmF1L35oZXJiZXJ0LyR7QlBOfS9maWxlcy8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1GaXgtcHJpbnRmLWZvcm1hdC1lcnJvcnMtd2l0aC1jbGFuZy5wYXRjaCBcCi0gICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICI1YzE1MjIwOTY4MGRhYjNjMzE5ZTg5MjNmNmM1MTM3OCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJjNmRiM2EyMzc3NDdiMDJkMjAzODJhNzYxMzk3NTYzZDgxM2IzMDZjMDIwYWUyOGNlMjVhMWMzOTE1ZmFjNjBmIgotCi1FWFRSQV9PRUNPTkYgKz0gIi0tYmluZGlyPSR7YmFzZV9iaW5kaXJ9IgotCi1BTFRFUk5BVElWRV8ke1BOfSA9ICJzaCIKLUFMVEVSTkFUSVZFX0xJTktfTkFNRVtzaF0gPSAiJHtiYXNlX2JpbmRpcn0vc2giCi1BTFRFUk5BVElWRV9UQVJHRVRbc2hdID0gIiR7YmFzZV9iaW5kaXJ9L2Rhc2giCi1BTFRFUk5BVElWRV9QUklPUklUWSA9ICIxMCIKLQotcGtnX3Bvc3RpbnN0XyR7UE59ICgpIHsKLSAgICBncmVwIC1xICJeJHtiYXNlX2JpbmRpcn0vZGFzaCQiICREJHtzeXNjb25mZGlyfS9zaGVsbHMgfHwgZWNobyAke2Jhc2VfYmluZGlyfS9kYXNoID4+ICREJHtzeXNjb25mZGlyfS9zaGVsbHMKLX0KLQotcGtnX3Bvc3RybV8ke1BOfSAoKSB7Ci0gICAgcHJpbnRmICIkKGdyZXAgLXYgIl4ke2Jhc2VfYmluZGlyfS9kYXNoJCIgJEQke3N5c2NvbmZkaXJ9L3NoZWxscylcbiIgPiAkRCR7c3lzY29uZmRpcn0vc2hlbGxzCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kZHJlc2N1ZS9kZHJlc2N1ZV8xLjE5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZGRyZXNjdWUvZGRyZXNjdWVfMS4xOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjdlMDBhNS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kZHJlc2N1ZS9kZHJlc2N1ZV8xLjE5LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotU1VNTUFSWSA9ICJEYXRhIHJlY292ZXJ5IHRvb2wiCi1ERVNDUklQVElPTiA9ICJHTlUgZGRyZXNjdWUgaXMgYSBkYXRhIHJlY292ZXJ5IHRvb2wuIEl0IGNvcGllcyBkYXRhIFwKLSAgICBmcm9tIG9uZSBmaWxlIG9yIGJsb2NrIGRldmljZSAoaGFyZCBkaXNjLCBjZHJvbSwgZXRjKSB0byBhbm90aGVyLCBcCi0gICAgdHJ5aW5nIGhhcmQgdG8gcmVzY3VlIGRhdGEgaW4gY2FzZSBvZiByZWFkIGVycm9ycy4iCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZGRyZXNjdWUvZGRyZXNjdWUuaHRtbCIKLVNFQ1RJT04gPSAiY29uc29sZSIKLUxJQ0VOU0UgPSAiR1BMdjIrIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NmQ2ZTMwMGZmZDhmYjlkMThiZDliMTM2YTliYmExMyBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9tYWluX2NvbW1vbi5jYztiZWdpbmxpbmU9NTtlbmRsaW5lPTE2O21kNT0zZWMyODhiMjY3NjUyOGNkMmIwNjkzNjRlMzEzMDE2ZiIKLQotU1JDX1VSSSA9ICIke0dOVV9NSVJST1J9LyR7QlBOfS8ke0JQfS50YXIubHoiCi1TUkNfVVJJW21kNXN1bV0gPSAiZWQ2YjViODJkNzRjYmQ5MjVkYjJiODI5MzUwZTc0YjEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZWQ4ZDBjOWQ5YWFjODBhOTExMGU5Y2IwZDBhOTFhNzM5MGQzYmY5ZjgxNmI2N2E2MmNhNGViMTQwZjQ3NDdiOCIKLQotIyBUaGlzIGlzbid0IGFscmVhZHkgYWRkZWQgYnkgYmFzZS5iYmNsYXNzCi1kb191bnBhY2tbZGVwZW5kc10gKz0gImx6aXAtbmF0aXZlOmRvX3BvcHVsYXRlX3N5c3Jvb3QiCi0KLUNPTkZJR1VSRU9QVFMgPSAiXAotICAgICctLXNyY2Rpcj0ke1N9JyBcCi0gICAgJy0tcHJlZml4PSR7cHJlZml4fScgXAotICAgICctLWV4ZWMtcHJlZml4PSR7ZXhlY19wcmVmaXh9JyBcCi0gICAgJy0tYmluZGlyPSR7YmluZGlyfScgXAotICAgICctLWRhdGFkaXI9JHtkYXRhZGlyfScgXAotICAgICctLWluZm9kaXI9JHtpbmZvZGlyfScgXAotICAgICctLXN5c2NvbmZkaXI9JHtzeXNjb25mZGlyfScgXAotICAgICdDWFg9JHtDWFh9JyBcCi0gICAgJ0NQUEZMQUdTPSR7Q1BQRkxBR1N9JyBcCi0gICAgJ0NYWEZMQUdTPSR7Q1hYRkxBR1N9JyBcCi0gICAgJ0xERkxBR1M9JHtMREZMQUdTfScgXAotIgotRVhUUkFfT0VNQUtFID0gIiIKLQotZG9fY29uZmlndXJlICgpIHsKLSAgICAke1N9L2NvbmZpZ3VyZSAke0NPTkZJR1VSRU9QVFN9Ci19Ci0KLWRvX2luc3RhbGwgKCkgewotICAgIG9lX3J1bm1ha2UgJ0RFU1RESVI9JHtEfScgaW5zdGFsbAotICAgICMgSW5mbyBkaXIgbGlzdGluZyBpc24ndCBpbnRlcmVzdGluZyBhdCB0aGlzIHBvaW50IHNvIHJlbW92ZSBpdCBpZiBpdCBleGlzdHMuCi0gICAgaWYgWyAtZSAiJHtEfSR7aW5mb2Rpcn0vZGlyIiBdOyB0aGVuCi0gICAgICAgIHJtIC1mICR7RH0ke2luZm9kaXJ9L2RpcgotICAgIGZpCi19Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2RkcmVzY3VlL2RkcmVzY3VlXzEuMjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kZHJlc2N1ZS9kZHJlc2N1ZV8xLjIyLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkZjdkYjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kZHJlc2N1ZS9kZHJlc2N1ZV8xLjIyLmJiCkBAIC0wLDAgKzEsNDUgQEAKK1NVTU1BUlkgPSAiRGF0YSByZWNvdmVyeSB0b29sIgorREVTQ1JJUFRJT04gPSAiR05VIGRkcmVzY3VlIGlzIGEgZGF0YSByZWNvdmVyeSB0b29sLiBJdCBjb3BpZXMgZGF0YSBcCisgICAgZnJvbSBvbmUgZmlsZSBvciBibG9jayBkZXZpY2UgKGhhcmQgZGlzYywgY2Ryb20sIGV0YykgdG8gYW5vdGhlciwgXAorICAgIHRyeWluZyBoYXJkIHRvIHJlc2N1ZSBkYXRhIGluIGNhc2Ugb2YgcmVhZCBlcnJvcnMuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2RkcmVzY3VlL2RkcmVzY3VlLmh0bWwiCitTRUNUSU9OID0gImNvbnNvbGUiCitMSUNFTlNFID0gIkdQTHYyKyIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzZkNmUzMDBmZmQ4ZmI5ZDE4YmQ5YjEzNmE5YmJhMTMgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vbWFpbl9jb21tb24uY2M7YmVnaW5saW5lPTU7ZW5kbGluZT0xNjttZDU9M2VjMjg4YjI2NzY1MjhjZDJiMDY5MzY0ZTMxMzAxNmYiCisKK1NSQ19VUkkgPSAiJHtHTlVfTUlSUk9SfS8ke0JQTn0vJHtCUH0udGFyLmx6IgorU1JDX1VSSVttZDVzdW1dID0gIjQ5Yzg0NWVkODlkMjViNTM0ODQyZTQwMzY2MTU0Y2I0IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjA5ODU3YjJlODA3NDgxM2FjMTlkYTVkMjYyODkwZjcyMmU1Zjc5MDBlNTIxYTRjNjAzNTRjZWY5NWVlYTEwYTciCisKKyMgVGhpcyBpc24ndCBhbHJlYWR5IGFkZGVkIGJ5IGJhc2UuYmJjbGFzcworZG9fdW5wYWNrW2RlcGVuZHNdICs9ICJsemlwLW5hdGl2ZTpkb19wb3B1bGF0ZV9zeXNyb290IgorCitDT05GSUdVUkVPUFRTID0gIlwKKyAgICAnLS1zcmNkaXI9JHtTfScgXAorICAgICctLXByZWZpeD0ke3ByZWZpeH0nIFwKKyAgICAnLS1leGVjLXByZWZpeD0ke2V4ZWNfcHJlZml4fScgXAorICAgICctLWJpbmRpcj0ke2JpbmRpcn0nIFwKKyAgICAnLS1kYXRhZGlyPSR7ZGF0YWRpcn0nIFwKKyAgICAnLS1pbmZvZGlyPSR7aW5mb2Rpcn0nIFwKKyAgICAnLS1zeXNjb25mZGlyPSR7c3lzY29uZmRpcn0nIFwKKyAgICAnQ1hYPSR7Q1hYfScgXAorICAgICdDUFBGTEFHUz0ke0NQUEZMQUdTfScgXAorICAgICdDWFhGTEFHUz0ke0NYWEZMQUdTfScgXAorICAgICdMREZMQUdTPSR7TERGTEFHU30nIFwKKyIKK0VYVFJBX09FTUFLRSA9ICIiCisKK2RvX2NvbmZpZ3VyZSAoKSB7CisgICAgJHtTfS9jb25maWd1cmUgJHtDT05GSUdVUkVPUFRTfQorfQorCitkb19pbnN0YWxsICgpIHsKKyAgICBvZV9ydW5tYWtlICdERVNURElSPSR7RH0nIGluc3RhbGwKKyAgICAjIEluZm8gZGlyIGxpc3RpbmcgaXNuJ3QgaW50ZXJlc3RpbmcgYXQgdGhpcyBwb2ludCBzbyByZW1vdmUgaXQgaWYgaXQgZXhpc3RzLgorICAgIGlmIFsgLWUgIiR7RH0ke2luZm9kaXJ9L2RpciIgXTsgdGhlbgorICAgICAgICBybSAtZiAke0R9JHtpbmZvZGlyfS9kaXIKKyAgICBmaQorfQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kaWFsb2cvZGlhbG9nXzEuMy0yMDE2MDgyOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2RpYWxvZy9kaWFsb2dfMS4zLTIwMTYwODI4LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NWRlZGUxLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2RpYWxvZy9kaWFsb2dfMS4zLTIwMTYwODI4LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotU1VNTUFSWSA9ICJkaXNwbGF5IGRpYWxvZyBib3hlcyBmcm9tIHNoZWxsIHNjcmlwdHMiCi1ERVNDUklQVElPTiA9ICJEaWFsb2cgbGV0cyB5b3UgdG8gcHJlc2VudCBhIHZhcmlldHkgb2YgcXVlc3Rpb25zIFwKLW9yIGRpc3BsYXkgbWVzc2FnZXMgdXNpbmcgZGlhbG9nIGJveGVzIGZyb20gYSBzaGVsbCBcCi1zY3JpcHQgKG9yIGFueSBzY3JpcHRpbmcgbGFuZ3VhZ2UpLiIKLUhPTUVQQUdFID0gImh0dHA6Ly9pbnZpc2libGUtaXNsYW5kLm5ldC9kaWFsb2cvIgotU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgotREVQRU5EUyA9ICJuY3Vyc2VzIgotTElDRU5TRSA9ICJMR1BMLTIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWE2Zjg5ZTIxMDBkOWI2Y2RmZmNlYTRmMzk4ZTM3MzQzIgotCi1TUkNfVVJJID0gImZ0cDovL2Z0cC5pbnZpc2libGUtaXNsYW5kLm5ldC8ke0JQTn0vJHtCUH0udGd6IFwKLSAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiYTM5ZWMxODM1MTdiYzFmZWFmZjAxN2QwNjczMDBiOGMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDUzMDk1YWJhZWMyODhiZmJjMWNhOWZhY2VkOTE3ZTE3NzQyY2ZmMWVhNDVlYzQ2MjEwMDcxYWMxNTM1NjJmOSIKLQotIyBoYXJkY29kZWQgaGVyZSBmb3IgdXNlIGluIGRpYWxvZy1zdGF0aWMgcmVjaXBlCi1TID0gIiR7V09SS0RJUn0vZGlhbG9nLSR7UFZ9IgotCi1pbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAgcGtnY29uZmlnCi0KLUVYVFJBX09FQ09ORiA9ICItLXdpdGgtbmN1cnNlcyBcCi0gICAgICAgICAgICAgICAgLS1kaXNhYmxlLXJwYXRoLWhhY2siCi0KLWRvX2NvbmZpZ3VyZSgpIHsKLSAgICBnbnUtY29uZmlnaXplIC0tZm9yY2UKLSAgICBzZWQgLWkgJ3MsJHtjZl9uY3Vjb25maWdfcm9vdH02LWNvbmZpZywke2NmX25jdWNvbmZpZ19yb290fS1jb25maWcsZycgLWkgY29uZmlndXJlCi0gICAgc2VkIC1pICdzLGNmX2hhdmVfbmN1Y29uZmlnPXVua25vd24sY2ZfaGF2ZV9uY3Vjb25maWc9eWVzLGcnIC1pIGNvbmZpZ3VyZQotICAgIG9lX3J1bmNvbmYKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2RpYWxvZy9kaWFsb2dfMS4zLTIwMTcxMjA5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZGlhbG9nL2RpYWxvZ18xLjMtMjAxNzEyMDkuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjNjNjVjNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2RpYWxvZy9kaWFsb2dfMS4zLTIwMTcxMjA5LmJiCkBAIC0wLDAgKzEsMjkgQEAKK1NVTU1BUlkgPSAiZGlzcGxheSBkaWFsb2cgYm94ZXMgZnJvbSBzaGVsbCBzY3JpcHRzIgorREVTQ1JJUFRJT04gPSAiRGlhbG9nIGxldHMgeW91IHRvIHByZXNlbnQgYSB2YXJpZXR5IG9mIHF1ZXN0aW9ucyBcCitvciBkaXNwbGF5IG1lc3NhZ2VzIHVzaW5nIGRpYWxvZyBib3hlcyBmcm9tIGEgc2hlbGwgXAorc2NyaXB0IChvciBhbnkgc2NyaXB0aW5nIGxhbmd1YWdlKS4iCitIT01FUEFHRSA9ICJodHRwOi8vaW52aXNpYmxlLWlzbGFuZC5uZXQvZGlhbG9nLyIKK1NFQ1RJT04gPSAiY29uc29sZS91dGlscyIKK0RFUEVORFMgPSAibmN1cnNlcyIKK0xJQ0VOU0UgPSAiTEdQTC0yLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1hNmY4OWUyMTAwZDliNmNkZmZjZWE0ZjM5OGUzNzM0MyIKKworU1JDX1VSSSA9ICJmdHA6Ly9mdHAuaW52aXNpYmxlLWlzbGFuZC5uZXQvJHtCUE59LyR7QlB9LnRneiBcCisgICAgICAgICAgIgorU1JDX1VSSVttZDVzdW1dID0gImY2NmYyOGJlY2E5MDBiNTRmNWZjOTBmZGNjZTkzNTA4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjIwMTM5NDQyMTE5ZTJlZmY1YzM1MjM2ZThlNWUzMTNjOTAxNTM5MDA4ZDljY2NmOGM4YWIzODUxYjQxMjY3ZTYiCisKKyMgaGFyZGNvZGVkIGhlcmUgZm9yIHVzZSBpbiBkaWFsb2ctc3RhdGljIHJlY2lwZQorUyA9ICIke1dPUktESVJ9L2RpYWxvZy0ke1BWfSIKKworaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZworCitFWFRSQV9PRUNPTkYgPSAiLS13aXRoLW5jdXJzZXMgXAorICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1ycGF0aC1oYWNrIgorCitkb19jb25maWd1cmUoKSB7CisgICAgZ251LWNvbmZpZ2l6ZSAtLWZvcmNlCisgICAgc2VkIC1pICdzLCR7Y2ZfbmN1Y29uZmlnX3Jvb3R9Ni1jb25maWcsJHtjZl9uY3Vjb25maWdfcm9vdH0tY29uZmlnLGcnIC1pIGNvbmZpZ3VyZQorICAgIHNlZCAtaSAncyxjZl9oYXZlX25jdWNvbmZpZz11bmtub3duLGNmX2hhdmVfbmN1Y29uZmlnPXllcyxnJyAtaSBjb25maWd1cmUKKyAgICBvZV9ydW5jb25mCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kdW1iLWluaXQvZHVtYi1pbml0XzEuMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZHVtYi1pbml0L2R1bWItaW5pdF8xLjIuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWE2ZDk1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZHVtYi1pbml0L2R1bWItaW5pdF8xLjIuMC5iYgpAQCAtMCwwICsxLDE1IEBACitTVU1NQVJZID0gIlNpbXBsZSB3cmFwcGVyIHNjcmlwdCB3aGljaCBwcm94aWVzIHNpZ25hbHMgdG8gYSBjaGlsZCIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9ZZWxwL2R1bWItaW5pdC8iCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTU5NDBkMzk5OTVlYTY4NTdkMDFiODIyNzEwOWMyZTljIgorCitTUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9ZZWxwL2R1bWItaW5pdC9hcmNoaXZlL3Yke1BWfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiNGViN2Y0M2Q3ODIzNjg2NzIzZmY3YWMxYmFkMDk3Y2IiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzQ0ODY5OTczMjFiZDkzOWNhZDJlZTZhZjAzMGY0ODFkMzk3NTFiYzlhYTBlY2U4NGVkNTVmODY0ZTMwOWEzZiIKKworRVhUUkFfT0VNQUtFID0gIkNDPScke0NDfScgQ0ZMQUdTPScke0NGTEFHU30gJHtMREZMQUdTfSciCisKK2RvX2luc3RhbGwoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9JHtiYXNlX3NiaW5kaXJ9CisgICAgaW5zdGFsbCAke1N9L2R1bWItaW5pdCAke0R9JHtiYXNlX3NiaW5kaXJ9LworfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci8wMDAxLWVmaXZhci1kcC5oLUFkZC1XdW5rbm93bi1hdHRyaWJ1dGVzLXdoZW4tdXNpbmctY2xhbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyLzAwMDEtZWZpdmFyLWRwLmgtQWRkLVd1bmtub3duLWF0dHJpYnV0ZXMtd2hlbi11c2luZy1jbGFuZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWI4ODE1ZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyLzAwMDEtZWZpdmFyLWRwLmgtQWRkLVd1bmtub3duLWF0dHJpYnV0ZXMtd2hlbi11c2luZy1jbGFuZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLUZyb20gM2Q0M2M1ZWZkYjYzMmRhNWQ3Mzg3ZGNhZGNlNGU4N2I4MzkyOWM2NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDI0IEF1ZyAyMDE3IDE1OjU0OjQ3IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIGVmaXZhci1kcC5oOiBBZGQgLVd1bmtub3duLWF0dHJpYnV0ZXMgd2hlbiB1c2luZyBjbGFuZwotCi1jaGFuZ2UgIWRwIGNoZWNrIHRvIGEgY29tcGFyaXNpb24gYWdhaW5zdCBOVUxMIHRvIHNpbGVudCBjbGFuZyB3YXJuaW5nCi1ub25udWxsIHBhcmFtZXRlciAnZHAnIHdpbGwgZXZhbHVhdGUgdG8gJ3RydWUnIG9uIGZpcnN0IGVuY291bnRlcgotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gc3JjL2luY2x1ZGUvZWZpdmFyL2VmaXZhci1kcC5oIHwgMTIgKysrKysrKy0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotSW5kZXg6IGdpdC9zcmMvaW5jbHVkZS9lZml2YXIvZWZpdmFyLWRwLmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnaXQub3JpZy9zcmMvaW5jbHVkZS9lZml2YXIvZWZpdmFyLWRwLmgKLSsrKyBnaXQvc3JjL2luY2x1ZGUvZWZpdmFyL2VmaXZhci1kcC5oCi1AQCAtNzgzLDkgKzc4MywxNCBAQCBleHRlcm4gaW50IGVmaWRwX2FwcGVuZF9pbnN0YW5jZShjb25zdF9lCi0gICogdGhvdWdoIG9sZGVyIG9yIG90aGVyIGNvbXBpbGVycyBtaWdodCBqdXN0IGlnbm9yZSB0aGF0IGF0dHJpYnV0ZSBpZiB0aGV5Ci0gICogZG9uJ3Qgc3VwcG9ydCBpdC4gIFVnaC4KLSAgKi8KLSsjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSAjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgX19HTlVDX18gPj0gNgotICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxsLWNvbXBhcmUiCi0gI2VuZGlmCi0rI2lmIGRlZmluZWQoX19jbGFuZ19fKQotKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLWF0dHJpYnV0ZXMiCi0rI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3BvaW50ZXItYm9vbC1jb252ZXJzaW9uIgotKyNlbmRpZgotIAotIHN0YXRpYyBpbmxpbmUgaW50MTZfdAotIF9fYXR0cmlidXRlX18oKF9fYXJ0aWZpY2lhbF9fKSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvMDAwMS1lZml2YXItZml4LWZvci1jcm9zcy1jb21waWxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci8wMDAxLWVmaXZhci1maXgtZm9yLWNyb3NzLWNvbXBpbGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmNmNhNjQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci8wMDAxLWVmaXZhci1maXgtZm9yLWNyb3NzLWNvbXBpbGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi1Gcm9tIDlhM2M0ODBhZjY1M2IzN2U2MmQxYmUwNGQ0OWZlN2E2MGE4MDE2OGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KLURhdGU6IEZyaSwgMjUgU2VwIDIwMTUgMTg6MTQ6MzEgKzA4MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzJdIGVmaXZhcjogZml4IGZvciBjcm9zcyBjb21waWxlCi0KLUl0IGJ1aWxkcyBhbmQgY2FsbHMgZWxmIGZpbGUgbWFrZWd1aWRzIHRvIGdlbmVyYXRlIGEgaGVhZGVyIGZpbGUgd2hpY2gKLWRvZXNuJ3Qgd29yayBmb3IgY3Jvc3MgY29tcGlsZS4gRml4IGl0LgotCi1TaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi1TaWduZWQtb2ZmLWJ5OiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+Ci0KLS0tLQotIHNyYy9NYWtlZmlsZSB8IDQgKystLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUgYi9zcmMvTWFrZWZpbGUKLWluZGV4IDVmYzc4ODcuLjE4MjlkMjIgMTAwNjQ0Ci0tLS0gYS9zcmMvTWFrZWZpbGUKLSsrKyBiL3NyYy9NYWtlZmlsZQotQEAgLTI5LDggKzI5LDggQEAgYWxsIDogZGVwcyAkKFRBUkdFVFMpCi0gLi9ndWlkLXN5bWJvbHMuYyA6IGluY2x1ZGUvZWZpdmFyL2VmaXZhci1ndWlkcy5oCi0gLi9ndWlkcy5iaW4gOiBpbmNsdWRlL2VmaXZhci9lZml2YXItZ3VpZHMuaAotIC4vbmFtZXMuYmluIDogaW5jbHVkZS9lZml2YXIvZWZpdmFyLWd1aWRzLmgKLS1pbmNsdWRlL2VmaXZhci9lZml2YXItZ3VpZHMuaCA6IG1ha2VndWlkcyBndWlkcy50eHQKLS0JLi9tYWtlZ3VpZHMgZ3VpZHMudHh0IGd1aWRzLmJpbiBuYW1lcy5iaW4gXAotK2luY2x1ZGUvZWZpdmFyL2VmaXZhci1ndWlkcy5oIDogZ3VpZHMudHh0Ci0rCW1ha2VndWlkcyBndWlkcy50eHQgZ3VpZHMuYmluIG5hbWVzLmJpbiBcCi0gCQlndWlkLXN5bWJvbHMuYyBpbmNsdWRlL2VmaXZhci9lZml2YXItZ3VpZHMuaAotIAotIG1ha2VndWlkcyA6IENQUEZMQUdTKz0tREVGSVZBUl9CVUlMRF9FTlZJUk9OTUVOVAotLS0gCi0yLjQuMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyLzAwMDEtbWFrZWd1aWRzLURvLW5vdC11c2UtX19ic3dhcF9jb25zdGFudF8tMTYtMzItbWFjcm9zLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci8wMDAxLW1ha2VndWlkcy1Eby1ub3QtdXNlLV9fYnN3YXBfY29uc3RhbnRfLTE2LTMyLW1hY3Jvcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNhNzcyMS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyLzAwMDEtbWFrZWd1aWRzLURvLW5vdC11c2UtX19ic3dhcF9jb25zdGFudF8tMTYtMzItbWFjcm9zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotRnJvbSA5OGIzM2Q0MTkzOTk4Njg3YWEzYTc4YzA5N2Y3YmQ0YzM5M2UwYzg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFNhdCwgMTUgSnVsIDIwMTcgMDA6Mjk6NDIgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gbWFrZWd1aWRzOiBEbyBub3QgdXNlIF9fYnN3YXBfY29uc3RhbnRfezE2fDMyfSBtYWNyb3MKLQotbm90IGF2YWlsYWJsZSBvbiBtdXNsCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvbWFrZWd1aWRzLmMgfCA4ICsrKystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9tYWtlZ3VpZHMuYyBiL3NyYy9tYWtlZ3VpZHMuYwotaW5kZXggZGEyZjVmNy4uZGFmODIxYSAxMDA2NDQKLS0tLSBhL3NyYy9tYWtlZ3VpZHMuYwotKysrIGIvc3JjL21ha2VndWlkcy5jCi1AQCAtMTU1LDEzICsxNTUsMTMgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotICNpZiBCWVRFX09SREVSID09IEJJR19FTkRJQU5cblwKLSAjZGVmaW5lIGNwdV90b19iZTMyKG4pIChuKVxuXAotICNkZWZpbmUgY3B1X3RvX2JlMTYobikgKG4pXG5cCi0tI2RlZmluZSBjcHVfdG9fbGUzMihuKSAoX19ic3dhcF9jb25zdGFudF8zMihuKSlcblwKLS0jZGVmaW5lIGNwdV90b19sZTE2KG4pIChfX2Jzd2FwX2NvbnN0YW50XzE2KG4pKVxuXAotKyNkZWZpbmUgY3B1X3RvX2xlMzIobikgKCh1aW50MzJfdCkgKChuKT4+MjQgfCAobik+PjgmMHhmZjAwIHwgKG4pPDw4JjB4ZmYwMDAwIHwgKG4pPDwyNCkpXG5cCi0rI2RlZmluZSBjcHVfdG9fbGUxNihuKSAoKHVpbnQxNl90KSAoKG4pPDw4IHwgKG4pPj44KSlcblwKLSAjZWxzZVxuXAotICNkZWZpbmUgY3B1X3RvX2xlMzIobikgKG4pXG5cCi0gI2RlZmluZSBjcHVfdG9fbGUxNihuKSAobilcblwKLS0jZGVmaW5lIGNwdV90b19iZTMyKG4pIChfX2Jzd2FwX2NvbnN0YW50XzMyKG4pKVxuXAotLSNkZWZpbmUgY3B1X3RvX2JlMTYobikgKF9fYnN3YXBfY29uc3RhbnRfMTYobikpXG5cCi0rI2RlZmluZSBjcHVfdG9fYmUzMihuKSAoKHVpbnQzMl90KSAoKG4pPj4yNCB8IChuKT4+OCYweGZmMDAgfCAobik8PDgmMHhmZjAwMDAgfCAobik8PDI0KSlcblwKLSsjZGVmaW5lIGNwdV90b19iZTE2KG4pICgodWludDE2X3QpICgobik8PDggfCAobik+PjgpKVxuXAotICNlbmRpZlxuXAotICIiIik7Ci0gCi0tLSAKLTIuMTMuMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyLzAwMDMtZWZpdmFyLWZpeC1mb3ItY3Jvc3MtY29tcGlsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvMDAwMy1lZml2YXItZml4LWZvci1jcm9zcy1jb21waWxlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjQzZjJhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvMDAwMy1lZml2YXItZml4LWZvci1jcm9zcy1jb21waWxlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotRnJvbSA3ZWFkMjljYTZiYjVlMjgwYWUwNzU1MWNjMzUyMTI4MWVjZjczNjgyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgotRGF0ZTogU2F0LCA3IE1heSAyMDE2IDAyOjA2OjQ3IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIE1ha2VmaWxlOiBmaXggZWZpdmFyLnBjIG5vdCBmb3VuZAotCi1JdCBmaXhlcyBlZml2YXIucGMgbm90IGZvdW5kOgotLi4uCi18IGluc3RhbGwgLWQgLW0gNzU1IGVmaXZhci8wLjIzLXIwL2ltYWdlL3Vzci9saWIvcGtnY29uZmlnLwotfCBpbnN0YWxsIC1tIDY0NCBlZml2YXIucGMgZWZpdmFyLzAuMjMtcjAvaW1hZ2UvdXNyL2xpYi9wa2djb25maWcvCi07ICBpbnN0YWxsIC1tIDY0NCBlZmlib290LnBjIGVmaXZhci8wLjIzLXIwL2ltYWdlL3Vzci9saWIvcGtnY29uZmlnLwotOwotfCBpbnN0YWxsOiBjYW5ub3Qgc3RhdCAnZWZpdmFyLnBjJzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotfCBpbnN0YWxsOiBjYW5ub3Qgc3RhdCAnZWZpYm9vdC5wYyc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLXwgbWFrZVsxXTogKioqIFtpbnN0YWxsXSBFcnJvciAxCi18IG1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5IGBlZml2YXIvMC4yMy1yMC9naXQvc3JjJwotfCBtYWtlOiAqKiogW2luc3RhbGxdIEVycm9yIDIKLXwgRVJST1I6IG9lX3J1bm1ha2UgZmFpbGVkCi0uLi4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KLS0tLQotIHNyYy9NYWtlZmlsZSB8IDQgKysrLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZSBiL3NyYy9NYWtlZmlsZQotaW5kZXggYzdhMGNhMy4uYWQ5YzQyNyAxMDA2NDQKLS0tLSBhL3NyYy9NYWtlZmlsZQotKysrIGIvc3JjL01ha2VmaWxlCi1AQCAtNzgsNyArNzgsOSBAQCBpbnN0YWxsIDogYWxsCi0gCQlsbiAtZnMgJCh4KS4kKFZFUlNJT04pICQoREVTVERJUikkKGxpYmRpcikvJCh4KS4kKE1BSk9SX1ZFUlNJT04pO1wKLSAJCWxuIC1mcyAkKHgpLiQoVkVSU0lPTikgJChERVNURElSKSQobGliZGlyKS8kKHgpOyApCi0gCSQoSU5TVEFMTCkgLWQgLW0gNzU1ICQoREVTVERJUikkKFBDRElSKQotLQkkKGZvcmVhY2ggeCwgJChQQ1RBUkdFVFMpLCAkKElOU1RBTEwpIC1tIDY0NCAkKHgpICQoREVTVERJUikkKFBDRElSKSA7KQotKwkkKGZvcmVhY2ggeCwgJChQQ1RBUkdFVFMpLCAkKElOU1RBTEwpIC1tIDY0NCAkKFRPUERJUikvc3JjLyQoeCkuaW4gJChERVNURElSKSQoUENESVIpLyQoeCkgO1wKLSsJCXNlZCAtaSAtZSAiczpAQExJQkRJUkBAOiQobGliZGlyKTpnIiAtZSAiczpAQFZFUlNJT05AQDokKFZFUlNJT04pOmciIFwKLSsJCQkkKERFU1RESVIpJChQQ0RJUikvJCh4KTsgKQotIAkkKElOU1RBTEwpIC1kIC1tIDc1NSAkKERFU1RESVIpJChpbmNsdWRlZGlyKS9lZml2YXIKLSAJJChmb3JlYWNoIHgsICQod2lsZGNhcmQgJChUT1BESVIpL3NyYy9pbmNsdWRlL2VmaXZhci8qLmgpLCAkKElOU1RBTEwpIC1tIDY0NCAkKHgpICQoREVTVERJUikkKGluY2x1ZGVkaXIpL2VmaXZhci8kKG5vdGRpciAkKHgpKTspCi0gCSQoSU5TVEFMTCkgLWQgLW0gNzU1ICQoREVTVERJUikkKGJpbmRpcikKLS0tIAotMi44LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci9hbGxvdy1tdWx0aS1kZWZpbml0aW9ucy1mb3ItbmF0aXZlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci9hbGxvdy1tdWx0aS1kZWZpbml0aW9ucy1mb3ItbmF0aXZlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2Y1NTU1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvYWxsb3ctbXVsdGktZGVmaW5pdGlvbnMtZm9yLW5hdGl2ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1JdCBmYWlscyB0byBjcmVhdGUgLnNvIGZpbGUgd2hlbiBidWlsZCBlZml2YXItbmF0aXZlOgotCi18IGxpYi5vOigqSU5EKisweDApOiBtdWx0aXBsZSBkZWZpbml0aW9uIG9mIGBlZmlfc2V0X3ZhcmlhYmxlJwotfCBsaWIubzpsaWIuYzooLnRleHQrMHhhMCk6IGZpcnN0IGRlZmluZWQgaGVyZQotCi1BZGQgbGluayBvcHRpb24gJy16IG11bGRlZnMnIHRvIGZpeCBpdC4KLQotU2lnbmVkLW9mZi1ieTogS2FpIEthbmcgPGthaS5rYW5nQHdpbmRyaXZlci5jb20+Ci0tLS0KLWRpZmYgLS1naXQgYS9NYWtlLnJ1bGVzIGIvTWFrZS5ydWxlcwotaW5kZXggZDljMDYwOS4uODc0YmNlMCAxMDA2NDQKLS0tLSBhL01ha2UucnVsZXMKLSsrKyBiL01ha2UucnVsZXMKLUBAIC0yMCw2ICsyMCw3IEBAIGluY2x1ZGUgJChUT1BESVIpL01ha2UudmVyc2lvbgotIAkkKENDTEQpICQoY2NsZGZsYWdzKSAkKENQUEZMQUdTKSAkKFNPRkxBR1MpIFwKLSAJICAtV2wsLXNvbmFtZSwkQC4kKE1BSk9SX1ZFUlNJT04pIFwKLSAJICAtV2wsLS12ZXJzaW9uLXNjcmlwdD0kKE1BUCkgXAotKwkgIC1XbCwteixtdWxkZWZzIFwKLSAJICAtbyAkQCAkXiAkKExETElCUykKLSAKLSAlLm8gOiAlLmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvZml4LWNvbXBpbGUtZmFpbHVyZS13aXRoLWhvc3QtZ2NjLTQuNi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvZml4LWNvbXBpbGUtZmFpbHVyZS13aXRoLWhvc3QtZ2NjLTQuNi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNmYTJlMS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyL2ZpeC1jb21waWxlLWZhaWx1cmUtd2l0aC1ob3N0LWdjYy00LjYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi1Gcm9tIDEzNjEyMjVhYmJhYmE4Nzg5NjBmOTcwZGYzOWE0NTcwYmJjMzk1NTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+Ci1EYXRlOiBUaHUsIDI2IE1heSAyMDE2IDIxOjUwOjAxIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZpeCBjb21waWxlIGZhaWx1cmUgd2l0aCBvbGRlciBob3N0IGdjYyAoPD00LjYpCi0KLVdoaWxlIGhvc3QgZ2NjIHZlcnNpb24gaXMgNC42LjMgaW4gdWJ1bnR1IDEyMDQsIGl0Ci1kaWQgbm90IHJlY29nbml6ZSAtc3RkPWdudTExIGFuZCAtV21heWJlLXVuaW5pdGlhbGl6ZWQuCi0KLVdoaWxlIGhvc3QgZ2NjIHZlcnNpb24gaXMgNC40LjcgaW4gY2VudG9zNiwgaXQKLWRpZCBub3QgcmVjb2duaXplIC1zdGQ9Z251MTEsIC1XbWF5YmUtdW5pbml0aWFsaXplZCwKLWFuZCAtZmx0by4KLQotRm9yIG5hdGl2ZSBidWlsZCwgdXNlIC1zdGQ9Z251OTkgdG8gcmVwbGFjZSAtc3RkPWdudTExLAotYW5kIGRpcmVjdGx5IHJlbW92ZSAtV21heWJlLXVuaW5pdGlhbGl6ZWQgYW5kIC1mbHRvLgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgotLS0tCi0gZ2NjLnNwZWNzIHwgNCArKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotSW5kZXg6IGdpdC9nY2Muc3BlY3MKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnaXQub3JpZy9nY2Muc3BlY3MKLSsrKyBnaXQvZ2NjLnNwZWNzCi1AQCAtMiwxMyArMiwxMyBAQAotICsgLURfR05VX1NPVVJDRQotIAotICplZml2YXJfY3BwX29wdGlvbnM6Ci0tIC1XZXJyb3IgLVdhbGwgLXN0ZD1nbnUxMSAtV2V4dHJhCi0rIC1XZXJyb3IgLVdhbGwgLXN0ZD1nbnU5OSAtV2V4dHJhCi0gCi0gKmNwcF9vcHRpb25zOgotICsgJShlZml2YXJfY3BwX29wdGlvbnMpCi0gCi0gKmNjMV9vcHRpb25zOgotLSsgJShlZml2YXJfY3BwX29wdGlvbnMpIC1XbWF5YmUtdW5pbml0aWFsaXplZCAtZm5vLW1lcmdlLWNvbnN0YW50cyAtZnZpc2liaWxpdHk9aGlkZGVuICV7IXI6JXshZnBpZToleyFmUElFOiV7IWZwaWM6JXshZlBJQzoleyFmbm8tcGljOi1mUElFfX19fX19Ci0rKyAlKGVmaXZhcl9jcHBfb3B0aW9ucykgLWZuby1tZXJnZS1jb25zdGFudHMgLWZ2aXNpYmlsaXR5PWhpZGRlbiAleyFyOiV7IWZwaWU6JXshZlBJRToleyFmcGljOiV7IWZQSUM6JXshZm5vLXBpYzotZlBJRX19fX19fQotIAotICpzZWxmX3NwZWM6Ci0gKyAleyFzaGFyZWQ6JXshc3RhdGljOiV7IXI6LXBpZX19fSAle3N0YXRpYzotV2wsLW5vLWZhdGFsLXdhcm5pbmdzIC1XbCwtc3RhdGljIC1zdGF0aWMgLVdsLC16LHJlbHJvLC16LG5vd30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvbXVzbC1zdHJuZHVwYS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvbXVzbC1zdHJuZHVwYS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmM4ZjhjOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyL211c2wtc3RybmR1cGEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UYWtlbiBmcm9tIHZvaWQgbGludXgKLQotSW5kZXg6IGdpdC9zcmMvbGludXguYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL3NyYy9saW51eC5jCi0rKysgZ2l0L3NyYy9saW51eC5jCi1AQCAtNDAsNiArNDAsMTAgQEAKLSAjaW5jbHVkZSA8ZWZpdmFyLmg+Ci0gI2luY2x1ZGUgPGVmaWJvb3QuaD4KLSAKLSsjaWYgIWRlZmluZWQoX19HTElCQ19fKQotKyNkZWZpbmUgc3RybmR1cGEoeCxzKSBzdHJuY3B5KGFsbG9jYShzdHJsZW4oeCkrMSkseCxzKQotKyNlbmRpZgotKwotICNpbmNsdWRlICJkcC5oIgotICNpbmNsdWRlICJsaW51eC5oIgotICNpbmNsdWRlICJ1dGlsLmgiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9mbGFzaHJvbS9mbGFzaHJvbS8wMDAxLVJlbW92ZS11bmRlZmluZWQtYmVoYXZpb3IucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9mbGFzaHJvbS9mbGFzaHJvbS8wMDAxLVJlbW92ZS11bmRlZmluZWQtYmVoYXZpb3IucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxMzk3ZGMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZmxhc2hyb20vZmxhc2hyb20vMDAwMS1SZW1vdmUtdW5kZWZpbmVkLWJlaGF2aW9yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotRnJvbSBkMmEwM2IzZTQzMDQzYjU5NmE3OTgwM2JjYjkzZjcwZTUxM2JiYjUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGF0cmljayBHZW9yZ2kgPHBnZW9yZ2lAZ29vZ2xlLmNvbT4KLURhdGU6IE1vbiwgMTMgTWFyIDIwMTcgMTM6NDg6MDMgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gUmVtb3ZlIHVuZGVmaW5lZCBiZWhhdmlvcgotCi1QZXIgY2xhbmctMy45LCB0aGUgY29tcGlsZXIgZmFpbHMgb24gI2RlZmluZSAuLi5kZWZpbmVkKC4uLikgc3RhdGVtZW50cwotYXMgdGhleSdyZSB1bmRlZmluZWQgYmVoYXZpb3IgKGFwcGFyZW50bHkgd2l0aCBkaWZmZXJlbnQgYmVoYXZpb3IKLWJldHdlZW4gZ2NjL2NsYW5nIGFuZCBtc3ZjLCB0b28pLgotCi1TZWUgY2xhbmcncyBjZmUgcmVwbyBjb21taXQgcjI1ODEyOCBmb3IgZGV0YWlscy4KLQotQ2hhbmdlLUlkOiBJODJiNjIzNWUxMWI0MjVmYWU0NWVlYmJlMDZiMDhmODFjNWJkYmI5OAotU2lnbmVkLW9mZi1ieTogUGF0cmljayBHZW9yZ2kgPHBnZW9yZ2lAZ29vZ2xlLmNvbT4KLVJldmlld2VkLW9uOiBodHRwczovL3Jldmlldy5jb3JlYm9vdC5vcmcvMTg3OTIKLVJldmlld2VkLWJ5OiBTdGVmYW4gUmVpbmF1ZXIgPHN0ZWZhbi5yZWluYXVlckBjb3JlYm9vdC5vcmc+Ci1UZXN0ZWQtYnk6IGJ1aWxkIGJvdCAoSmVua2lucykgPG5vLXJlcGx5QGNvcmVib290Lm9yZz4KLS0tLQotIGh3YWNjZXNzLmMgfCAxOCArKysrKysrKysrKysrKystLS0KLSBwbGF0Zm9ybS5oIHwgMTggKysrKysrKysrKysrKysrLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvaHdhY2Nlc3MuYyBiL2h3YWNjZXNzLmMKLWluZGV4IGFlZGU3ZTMuLjJiZjZmNDIgMTAwNjQ0Ci0tLS0gYS9od2FjY2Vzcy5jCi0rKysgYi9od2FjY2Vzcy5jCi1AQCAtMzcsOSArMzcsMjEgQEAKLSAjZXJyb3IgIlVua25vd24gb3BlcmF0aW5nIHN5c3RlbSIKLSAjZW5kaWYKLSAKLS0jZGVmaW5lIFVTRV9JT1BMCShJU19MSU5VWCB8fCBJU19NQUNPU1ggfHwgZGVmaW5lZChfX05ldEJTRF9fKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKSkKLS0jZGVmaW5lIFVTRV9ERVZfSU8JKGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKSB8fCBkZWZpbmVkKF9fRHJhZ29uRmx5X18pKQotLSNkZWZpbmUgVVNFX0lPUEVSTQkoZGVmaW5lZChfX2dudV9odXJkX18pKQotKyNpZiBJU19MSU5VWCB8fCBJU19NQUNPU1ggfHwgZGVmaW5lZChfX05ldEJTRF9fKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKQotKyNkZWZpbmUgVVNFX0lPUEwgMQotKyNlbHNlCi0rI2RlZmluZSBVU0VfSU9QTCAwCi0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKSB8fCBkZWZpbmVkKF9fRHJhZ29uRmx5X18pCi0rI2RlZmluZSBVU0VfREVWX0lPIDEKLSsjZWxzZQotKyNkZWZpbmUgVVNFX0RFVl9JTyAwCi0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX19nbnVfaHVyZF9fKQotKyNkZWZpbmUgVVNFX0lPUEVSTSAxCi0rI2Vsc2UKLSsjZGVmaW5lIFVTRV9JT1BFUk0gMAotKyNlbmRpZgotIAotICNpZiBVU0VfSU9QRVJNCi0gI2luY2x1ZGUgPHN5cy9pby5oPgotZGlmZiAtLWdpdCBhL3BsYXRmb3JtLmggYi9wbGF0Zm9ybS5oCi1pbmRleCBjNWE1MmVmLi5iMmZkY2QwIDEwMDY0NAotLS0tIGEvcGxhdGZvcm0uaAotKysrIGIvcGxhdGZvcm0uaAotQEAgLTI1LDkgKzI1LDIxIEBACi0gI2RlZmluZSBfX1BMQVRGT1JNX0hfXyAxCi0gCi0gLy8gSGVscGVyIGRlZmluZXMgZm9yIG9wZXJhdGluZyBzeXN0ZW1zCi0tI2RlZmluZSBJU19MSU5VWAkoZGVmaW5lZChfX2dudV9saW51eF9fKSB8fCBkZWZpbmVkKF9fbGludXhfXykpCi0tI2RlZmluZSBJU19NQUNPU1gJKGRlZmluZWQoX19BUFBMRV9fKSAmJiBkZWZpbmVkKF9fTUFDSF9fKSkgLyogeWVzLCBib3RoLiAqLwotLSNkZWZpbmUgSVNfV0lORE9XUwkoZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX1dJTjY0KSB8fCBkZWZpbmVkKF9fV0lOMzJfXykgfHwgZGVmaW5lZChfX1dJTkRPV1NfXykpCi0rI2lmIGRlZmluZWQoX19nbnVfbGludXhfXykgfHwgZGVmaW5lZChfX2xpbnV4X18pCi0rI2RlZmluZSBJU19MSU5VWCAxCi0rI2Vsc2UKLSsjZGVmaW5lIElTX0xJTlVYIDAKLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChfX0FQUExFX18pICYmIGRlZmluZWQoX19NQUNIX18pIC8qIHllcywgYm90aC4gKi8KLSsjZGVmaW5lIElTX01BQ09TWCAxCi0rI2Vsc2UKLSsjZGVmaW5lIElTX01BQ09TWCAwCi0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9XSU42NCkgfHwgZGVmaW5lZChfX1dJTjMyX18pIHx8IGRlZmluZWQoX19XSU5ET1dTX18pCi0rI2RlZmluZSBJU19XSU5ET1dTIDEKLSsjZWxzZQotKyNkZWZpbmUgSVNfV0lORE9XUyAwCi0rI2VuZGlmCi0gCi0gLy8gTGlrZXdpc2UgZm9yIHRhcmdldCBhcmNoaXRlY3R1cmVzCi0gI2lmIGRlZmluZWQgKF9faTM4Nl9fKSB8fCBkZWZpbmVkIChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYW1kNjRfXykKLS0tIAotMi4xMy4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsYXNocm9tL2ZsYXNocm9tLzAwMDEtc3BpLURlZmluZS1fWE9QRU5fU09VUkNFLXRvLWVuYWJsZS1mZnMtbGliYy1BUEkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9mbGFzaHJvbS9mbGFzaHJvbS8wMDAxLXNwaS1EZWZpbmUtX1hPUEVOX1NPVVJDRS10by1lbmFibGUtZmZzLWxpYmMtQVBJLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTcwZmVmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsYXNocm9tL2ZsYXNocm9tLzAwMDEtc3BpLURlZmluZS1fWE9QRU5fU09VUkNFLXRvLWVuYWJsZS1mZnMtbGliYy1BUEkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1Gcm9tIDdjNjVhNDY1YTNkZGViN2FmYjlhN2M0OWQwMTBhZTdlNWQ1YjFhZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogVHVlLCAxOCBKdWwgMjAxNyAyMDoyNTo0OSAtMDcwMAotU3ViamVjdDogW1BBVENIXSBzcGk6IERlZmluZSBfWE9QRU5fU09VUkNFIHRvIGVuYWJsZSBmZnMoKSBsaWJjIEFQSQotCi1tdXNsIGV4cG9zZXMgdGhpcyBpc3N1ZQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gc3BpLmMgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zcGkuYyBiL3NwaS5jCi1pbmRleCA4OTRmNzNmLi5hZWI2NTE4IDEwMDY0NAotLS0tIGEvc3BpLmMKLSsrKyBiL3NwaS5jCi1AQCAtMjEsNyArMjEsNyBAQAotIC8qCi0gICogQ29udGFpbnMgdGhlIGdlbmVyaWMgU1BJIGZyYW1ld29yawotICAqLwotLQotKyNkZWZpbmUgX1hPUEVOX1NPVVJDRQotICNpbmNsdWRlIDxzdHJpbmdzLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotICNpbmNsdWRlICJmbGFzaC5oIgotLS0gCi0yLjEzLjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZmxhc2hyb20vZmxhc2hyb21fMC45LjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9mbGFzaHJvbS9mbGFzaHJvbV8wLjkuOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGNkZDhhZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9mbGFzaHJvbS9mbGFzaHJvbV8wLjkuOS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLURFU0NSSVBUSU9OID0gImZsYXNocm9tIGlzIGEgdXRpbGl0eSBmb3IgaWRlbnRpZnlpbmcsIHJlYWRpbmcsIHdyaXRpbmcsIHZlcmlmeWluZyBhbmQgZXJhc2luZyBmbGFzaCBjaGlwcyIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1IT01FUEFHRSA9ICJodHRwOi8vZmxhc2hyb20ub3JnIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKLURFUEVORFMgPSAicGNpdXRpbHMgbGlidXNiIGxpYnVzYi1jb21wYXQiCi0KLVNSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2FkLmZsYXNocm9tLm9yZy9yZWxlYXNlcy9mbGFzaHJvbS0ke1BWfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtc3BpLURlZmluZS1fWE9QRU5fU09VUkNFLXRvLWVuYWJsZS1mZnMtbGliYy1BUEkucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vc3N0MjYucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1SZW1vdmUtdW5kZWZpbmVkLWJlaGF2aW9yLnBhdGNoIFwKLSAgICAgICAgICAgIgotU1JDX1VSSVttZDVzdW1dID0gImFhYjljOTg5MjVkOWNmYjVmZmIyOGI2N2E2MTEyNTMwIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImNiMzE1NmIwZjYzZWIxOTIwMjRiNzZjMDgxNDEzNTkzMDI5N2FhYzQxZjgwNzYxYTVkMjkzZGU3Njk3ODNjNDUiCi0KLWluaGVyaXQgcGtnY29uZmlnCi0KLWRvX2luc3RhbGwoKSB7Ci0gICAgb2VfcnVubWFrZSBQUkVGSVg9JHtwcmVmaXh9IERFU1RESVI9JHtEfSBpbnN0YWxsCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9mbHVlbnRiaXQvZmx1ZW50Yml0XzAuMTIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsdWVudGJpdC9mbHVlbnRiaXRfMC4xMi4xLmJiCmluZGV4IGUyZWRkMDkuLjk5ZjY4MGYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsdWVudGJpdC9mbHVlbnRiaXRfMC4xMi4xLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsdWVudGJpdC9mbHVlbnRiaXRfMC4xMi4xLmJiCkBAIC0yMSw2ICsyMSwxMCBAQAogCiBFWFRSQV9PRUNNQUtFID0gIi1ER05VX0hPU1Q9JHtIT1NUX1NZU30gLURGTEJfQUxMPU9OIC1ERkxCX1REPTEiCiAKKyMgV2l0aCBOaW5qYSBpdCBmYWlscyB3aXRoOgorIyBuaW5qYTogZXJyb3I6IGJ1aWxkLm5pbmphOjEzNDogYmFkICQtZXNjYXBlIChsaXRlcmFsICQgbXVzdCBiZSB3cml0dGVuIGFzICQkKQorT0VDTUFLRV9HRU5FUkFUT1IgPSAiVW5peCBNYWtlZmlsZXMiCisKIFNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJ0ZC1hZ2VudC1iaXQuc2VydmljZSIKIAogVEFSR0VUX0NDX0FSQ0hfYXBwZW5kID0gIiAke1NFTEVDVEVEX09QVElNSVpBVElPTn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90LmluYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTllZTg3NC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QuaW5jCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiR251cGxvdCBpcyBhIHBvcnRhYmxlIGNvbW1hbmQtbGluZSBkcml2ZW4gaW50ZXJhY3RpdmUgZGF0YWZpbGUgXAotKHRleHQgb3IgYmluYXJ5KSBhbmQgZnVuY3Rpb24gcGxvdHRpbmcgdXRpbGl0eS4iCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmdudXBsb3QuaW5mby8iCi1TRUNUSU9OID0gImNvbnNvbGUvc2NpZW50aWZpYyIKLUxJQ0VOU0UgPSAiZ251cGxvdCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NvcHlyaWdodDttZDU9MjQzYTE4NmZjMmZkM2I5OTIxMjVkNjBkNWIxYmFiOGYiCi1ERVBFTkRTID0gInZpcnR1YWwvbGlieDExIGdkIHJlYWRsaW5lIgotCi1pbmhlcml0IGF1dG90b29scyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLSMgZGVwZW5kcyBvbiB2aXJ0dWFsL2xpYngxMQotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKLQotYWNwYXRocyA9ICIiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICJjYWlybyIKLVBBQ0tBR0VDT05GSUdbY2Fpcm9dID0gIi0td2l0aC1jYWlybywtLXdpdGhvdXQtY2Fpcm8sY2Fpcm8gcGFuZ28iCi1QQUNLQUdFQ09ORklHW2x1YV0gPSAiLS13aXRoLWx1YSwtLXdpdGhvdXQtbHVhLGx1YSIKLSMgdGhlcmUncyBjb21waWxhdGlvbiBmYWlsdXJlIGlmIHF0NCBpcyBlbmFibGVkCi1QQUNLQUdFQ09ORklHW3F0NF0gPSAiLS13aXRoLXF0LC0td2l0aG91dC1xdCxxdDQteDExLWZyZWUiCi0KLUVYVFJBX09FQ09ORiA9ICItLXdpdGgtcmVhZGxpbmU9JHtTVEFHSU5HX0xJQkRJUn0vLi4gXAotICAgICAgICAgICAgICAgIC0td2l0aG91dC10dXRvcmlhbCBcCi0gICAgICAgICAgICAgICAgLS1kaXNhYmxlLXd4d2lkZ2V0cyIKLQotZG9fY29tcGlsZV9wcmVwZW5kKCkgewotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3F0cGxvdC0wLjIvcXRvcGlhLnRybSAke1N9L3Rlcm0vCi19Ci0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vYXBwbGljYXRpb25zLwotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2dudXBsb3QuZGVza3RvcCAke0R9JHtkYXRhZGlyfS9hcHBsaWNhdGlvbnMvCi0gICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9waXhtYXBzLwotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2dudXBsb3QucG5nICR7RH0ke2RhdGFkaXJ9L3BpeG1hcHMvCi19Ci0KLVBBQ0tBR0VTID0rICIke1BOfS14MTEtZGJnICR7UE59LXgxMSIKLURFU0NSSVBUSU9OXyR7UE59LXgxMSA9ICJYMTEgZGlzcGxheSB0ZXJtaW5hbCBmb3IgR251cGxvdC4iCi1TRUNUSU9OXyR7UE59LXgxMSA9ICJ4MTEvc2NpZW50aWZpYyIKLUZJTEVTXyR7UE59LXgxMSA9ICIke2xpYmV4ZWNkaXJ9ICR7ZGF0YWRpcn0vYXBwbGljYXRpb25zICR7ZGF0YWRpcn0vcGl4bWFwcyAke2xpYmRpcn0vWDExICIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vdGV4bWYiCi1GSUxFU18ke1BOfS14MTEtZGJnICs9ICIke2xpYmV4ZWNkaXJ9L2dudXBsb3QvKi8uZGVidWciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvMDAwMS1yZWR1Y2UtYnVpbGQtdG8tY29udmVyc2lvbi10b29scy1mb3ItbmF0aXZlLWJ1aWxkLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90LzAwMDEtcmVkdWNlLWJ1aWxkLXRvLWNvbnZlcnNpb24tdG9vbHMtZm9yLW5hdGl2ZS1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGYxZmQwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90LzAwMDEtcmVkdWNlLWJ1aWxkLXRvLWNvbnZlcnNpb24tdG9vbHMtZm9yLW5hdGl2ZS1idWlsZC5wYXRjaApAQCAtMCwwICsxLDMxIEBACitGcm9tIGEyYWM5NjY4MTNmZGMwNGI3ODhiZTljODQ3NGE0YzVlMzZjMTA5YTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogVHVlLCA2IE1hciAyMDE4IDIxOjUzOjI2ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIHJlZHVjZSBidWlsZCB0byBjb252ZXJzaW9uIHRvb2xzIGZvciBuYXRpdmUgYnVpbGQKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKy0tLQorIE1ha2VmaWxlLmFtIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQoraW5kZXggOTI0MWNlNS4uYjI0ZTI5MSAxMDA2NDQKKy0tLSBhL01ha2VmaWxlLmFtCisrKysgYi9NYWtlZmlsZS5hbQorQEAgLTEsNyArMSw3IEBACisgIyMgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvbWFrZSB0byBwcm9kdWNlIE1ha2VmaWxlLmluIC0qLU1ha2VmaWxlLSotCisgQVVUT01BS0VfT1BUSU9OUyA9IGZvcmVpZ24KKyAKKy1TVUJESVJTID0gY29uZmlnIG00IHRlcm0gc3JjIGRvY3MgbWFuIGRlbW8gdHV0b3JpYWwgc2hhcmUKKytTVUJESVJTID0gZG9jcworIAorIEVYVFJBX0RJU1QgPSBCVUdTIENvcHlyaWdodCBGQVEucGRmIEdOVW1ha2VmaWxlIElOU1RBTEwgSU5TVEFMTC5nbnUgXAorIE1ha2VmaWxlLm1haW50IFBBVENITEVWRUwgUEdQS0VZUyBSRUFETUUgUkVMRUFTRV9OT1RFUyBcCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvMDAwMi1kby1ub3QtYnVpbGQtZGVtb3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvMDAwMi1kby1ub3QtYnVpbGQtZGVtb3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGUwYjRhMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC8wMDAyLWRvLW5vdC1idWlsZC1kZW1vcy5wYXRjaApAQCAtMCwwICsxLDMxIEBACitGcm9tIGEyYWM5NjY4MTNmZGMwNGI3ODhiZTljODQ3NGE0YzVlMzZjMTA5YTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogVHVlLCA2IE1hciAyMDE4IDIxOjUzOjI2ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIERvIG5vdCBidWlsZCBkZW1vcworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgTWFrZWZpbGUuYW0gfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCitpbmRleCA5MjQxY2U1Li5iMjRlMjkxIDEwMDY0NAorLS0tIGEvTWFrZWZpbGUuYW0KKysrKyBiL01ha2VmaWxlLmFtCitAQCAtMSw3ICsxLDcgQEAKKyAjIyBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9tYWtlIHRvIHByb2R1Y2UgTWFrZWZpbGUuaW4gLSotTWFrZWZpbGUtKi0KKyBBVVRPTUFLRV9PUFRJT05TID0gZm9yZWlnbgorIAorLVNVQkRJUlMgPSBjb25maWcgbTQgdGVybSBzcmMgZG9jcyBtYW4gZGVtbyB0dXRvcmlhbCBzaGFyZQorK1NVQkRJUlMgPSBjb25maWcgbTQgdGVybSBzcmMgZG9jcyBtYW4gdHV0b3JpYWwgc2hhcmUKKyAKKyBFWFRSQV9ESVNUID0gQlVHUyBDb3B5cmlnaHQgRkFRLnBkZiBHTlVtYWtlZmlsZSBJTlNUQUxMIElOU1RBTEwuZ251IFwKKyBNYWtlZmlsZS5tYWludCBQQVRDSExFVkVMIFBHUEtFWVMgUkVBRE1FIFJFTEVBU0VfTk9URVMgXAorLS0gCisyLjE0LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90LzAwMDMtVXNlLW5hdGl2ZS10b29scy10by1idWlsZC1kb2NzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90LzAwMDMtVXNlLW5hdGl2ZS10b29scy10by1idWlsZC1kb2NzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0MDM5YzMxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90LzAwMDMtVXNlLW5hdGl2ZS10b29scy10by1idWlsZC1kb2NzLnBhdGNoCkBAIC0wLDAgKzEsMTExIEBACitGcm9tIDExMjhhOThmZDE2NzY5ODFlNTM2ZDg3NzNmMzYzY2I4MzJjZmE2YmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogVHVlLCA2IE1hciAyMDE4IDIyOjI4OjU2ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVzZSBuYXRpdmUgdG9vbHMgdG8gYnVpbGQgZG9jcworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgZG9jcy9NYWtlZmlsZS5hbSB8IDIyICsrKysrKysrKysrLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kb2NzL01ha2VmaWxlLmFtIGIvZG9jcy9NYWtlZmlsZS5hbQoraW5kZXggM2JhZjBjNC4uZTgyZjg3ZCAxMDA2NDQKKy0tLSBhL2RvY3MvTWFrZWZpbGUuYW0KKysrKyBiL2RvY3MvTWFrZWZpbGUuYW0KK0BAIC0xNTIsNyArMTUyLDcgQEAgZ251cGxvdC1ncm9mZi5wczogZ251cGxvdC5tcyAkKHNyY2RpcikvdGl0bGVwYWcubXMKKyAKKyAjIyMgZG9jMnh4eCBkZXBlbmRlbmNpZXMKKyBnbnVwbG90Lm1zOiBkb2MybXMkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jCistCSQoQU1fVl9HRU4pIC4vZG9jMm1zJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYyBnbnVwbG90Lm1zICIkKHNyY2RpcikvdGl0bGVwYWcubXMiCisrCSQoQU1fVl9HRU4pIGRvYzJtcyQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5tcyAiJChzcmNkaXIpL3RpdGxlcGFnLm1zIgorIAorIGRvYzJtc19TT1VSQ0VTID0gZG9jMm1zLmMgdGVybWRvYy5jCisgZG9jMm1zX0NQUEZMQUdTID0gLURBTExfVEVSTV9ET0MgJChBTV9DUFBGTEFHUykKK0BAIC0xNzMsMTAgKzE3MywxMCBAQCBwZGZfZmlndXJlczogJChHTlVQTE9UX0VYRSkgJChzcmNkaXIpL3Bsb3RzdHlsZXMuZ251CisgCSQoQU1fVl9HRU4pdG91Y2ggJEAKKyAKKyBmaWd1cmVzLnRleDogYWxsdGVybS5oIGRvYzJ0ZXgkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jCistCSQoQU1fVl9HRU4pLi9kb2MydGV4JChFWEVFWFQpIC1maWd1cmVzICQoc3JjZGlyKS9nbnVwbG90LmRvYyAkQAorKwkkKEFNX1ZfR0VOKSBkb2MydGV4JChFWEVFWFQpIC1maWd1cmVzICQoc3JjZGlyKS9nbnVwbG90LmRvYyAkQAorIAorIG5vZmlndXJlcy50ZXg6IGFsbHRlcm0uaCBkb2MydGV4JChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYworLQkkKEFNX1ZfR0VOKS4vZG9jMnRleCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgJEAKKysJJChBTV9WX0dFTikgZG9jMnRleCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgJEAKKyAKKyBwZGY6IGdudXBsb3QucGRmCisgcGRmX25vZmlnOiBub2ZpZ3VyZXMucGRmCitAQCAtMjU2LDcgKzI1Niw3IEBAIGdudXBsb3QucHM6IGdudXBsb3QuZHZpCisgaGxwOiBnbnVwbG90LmhscAorIAorIGdudXBsb3QuaGxwOiBkb2MyaGxwJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYworLQkkKEFNX1ZfR0VOKS4vZG9jMmhscCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5obHAKKysJJChBTV9WX0dFTilkb2MyaGxwJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYyBnbnVwbG90LmhscAorIAorIGRvYzJobHBfU09VUkNFUyA9IGRvYzJobHAuYyB0ZXJtZG9jLmMKKyAKK0BAIC0yNjQsMTQgKzI2NCwxNCBAQCBkb2MyaGxwX1NPVVJDRVMgPSBkb2MyaGxwLmMgdGVybWRvYy5jCisgZ2loOiBnbnVwbG90LmdpaAorIAorIGdudXBsb3QuZ2loOiBkb2MyZ2loJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYworLQkkKEFNX1ZfR0VOKS4vZG9jMmdpaCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5naWgKKysJJChBTV9WX0dFTilkb2MyZ2loJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYyBnbnVwbG90LmdpaAorIAorIGRvYzJnaWhfU09VUkNFUyA9IGRvYzJnaWguYyB0ZXJtZG9jLmMKKyAKKyAjIFRvIGluY2x1ZGUgYWxsIHRlcm1pbmFscyBpbiB0aGUgLmdpaCBmaWxlCisgYWxsZ2loOiBhbGxkb2MyZ2loJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYworIAlAZWNobyAiZ2VuZXJhdGUgZ251cGxvdC5naWggd2l0aCBhbGwgdGVybWluYWxzIgorLQkkKEFNX1ZfYXQpLi9hbGxkb2MyZ2loJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYyBnbnVwbG90LmdpaAorKwkkKEFNX1ZfYXQpYWxsZG9jMmdpaCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5naWgKKyAKKyBhbGxkb2MyZ2loX1NPVVJDRVMgPSBkb2MyZ2loLmMgdGVybWRvYy5jCisgYWxsZG9jMmdpaF9DUFBGTEFHUyA9IC1EQUxMX1RFUk1fRE9DICQoQU1fQ1BQRkxBR1MpCitAQCAtMjg2LDcgKzI4Niw3IEBAICQoc3JjZGlyKS93aW5kb3dzL3dnbnVwbG90LmhoaworIHd4aGVscC93Z251cGxvdC5oaGMgd3hoZWxwL3dnbnVwbG90LmhoayB3eGhlbHAvKi5odG1sIHdpbmRvd3MvKi5wbmcKKyAKKyB3eGhlbHAvd2dudXBsb3QuaHRtbDogZG9jMnd4aHRtbCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgCistCSQoQU1fVl9HRU4pIC4vZG9jMnd4aHRtbCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2Mgd3hoZWxwLworKwkkKEFNX1ZfR0VOKSBkb2Myd3hodG1sJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYyB3eGhlbHAvCisgCisgI2RvYzJ3eGh0bWxfU09VUkNFUyA9IHdpbmRvd3MvZG9jMmh0bWwuYyB0ZXJtZG9jLmMgeHJlZi5jIGFsbHRlcm0uaAorICNkb2Myd3hodG1sX0NQUEZMQUdTID0gLURBTExfVEVSTV9ET0MgLURXWEhFTFAgLUkuLi9zcmMgJChBTV9DUFBGTEFHUykKK0BAIC0zMzYsNyArMzM2LDcgQEAgaW5zdGFsbC1pbmZvOiBnbnVwbG90LmluZm8KKyBpcGY6IGdudXBsb3QuaXBmCisgCisgZ251cGxvdC5pcGY6IGRvYzJpcGYkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jCistCSQoQU1fVl9HRU4pIC4vZG9jMmlwZiQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5pcGYKKysJJChBTV9WX0dFTikgZG9jMmlwZiQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5pcGYKKyAKKyBkb2MyaXBmX1NPVVJDRVMgPSBkb2MyaXBmLmMgdGVybWRvYy5jIHhyZWYuYworIAorQEAgLTM0NCw3ICszNDQsNyBAQCBkb2MyaXBmX1NPVVJDRVMgPSBkb2MyaXBmLmMgdGVybWRvYy5jIHhyZWYuYworIHJ0ZjogZ251cGxvdC5ydGYKKyAKKyBnbnVwbG90LnJ0ZjogZG9jMnJ0ZiQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MKKy0JJChBTV9WX0dFTikgLi9kb2MycnRmJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYyBnbnVwbG90LnJ0ZgorKwkkKEFNX1ZfR0VOKSBkb2MycnRmJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYyBnbnVwbG90LnJ0ZgorIAorIGRvYzJydGZfU09VUkNFUyA9IGRvYzJydGYuYyB0ZXJtZG9jLmMgeHJlZi5jCisgCitAQCAtMzUyLDEzICszNTIsMTMgQEAgZG9jMnJ0Zl9TT1VSQ0VTID0gZG9jMnJ0Zi5jIHRlcm1kb2MuYyB4cmVmLmMKKyBybmg6IGdudXBsb3Qucm5oCisgCisgZ251cGxvdC5ybmg6IGRvYzJybmgkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jCistCSQoQU1fVl9HRU4pIC4vZG9jMnJuaCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5ybmgKKysJJChBTV9WX0dFTikgZG9jMnJuaCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5ybmgKKyAKKyBkb2Mycm5oX1NPVVJDRVMgPSBkb2Mycm5oLmMgdGVybWRvYy5jCisgCisgIyB0aGlzIGlzIGhvdyB0byBjaGVjayB0aGUgZ251cGxvdC5kb2MgZmlsZQorIGNoZWNrLWxvY2FsOiBjaGVja2RvYyQoRVhFRVhUKQorLQkkKEFNX1ZfYXQpLi9jaGVja2RvYyQoRVhFRVhUKSA8ICQoc3JjZGlyKS9nbnVwbG90LmRvYzsgXAorKwkkKEFNX1ZfYXQpY2hlY2tkb2MkKEVYRUVYVCkgPCAkKHNyY2RpcikvZ251cGxvdC5kb2M7IFwKKyAJaWYgdGVzdCAkJD8gLWVxIDA7IHRoZW4gXAorIAkgIGVjaG8gIlBBU1M6IGdudXBsb3QuZG9jIjsgXAorIAllbHNlIFwKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC8wMDA0LUFkZC1jb25maWd1cmUtb3B0aW9uLXRvLWZpbmQtcXQ1LW5hdGl2ZS10b29scy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC8wMDA0LUFkZC1jb25maWd1cmUtb3B0aW9uLXRvLWZpbmQtcXQ1LW5hdGl2ZS10b29scy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWQ5ZTc2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90LzAwMDQtQWRkLWNvbmZpZ3VyZS1vcHRpb24tdG8tZmluZC1xdDUtbmF0aXZlLXRvb2xzLnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAKK0Zyb20gNTc3ZTIxNjIyNDc1ZmEyOWZkNDcxMTQ5Y2YyMzgwYzUzZmRiZmNiZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDYgTWFyIDIwMTggMjI6MjY6NDggKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIGNvbmZpZ3VyZSBvcHRpb24gdG8gZmluZCBxdDUgbmF0aXZlIHRvb2xzCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1BrZy1jb25maWcgY2hlY2tzIGZvciB0YXJnZXQgbG9jYXRpb25zLiBXaXRoIHRoZXNlIHF0NSB0b29scyBhcyB1aWMvbW9jLi4KK2Nhbm5vdCBiZSB1c2VkLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgY29uZmlndXJlLmFjIHwgNiArKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IGNkZDgzMWEuLmZkZDE5MmIgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTExMzMsMTEgKzExMzMsMTUgQEAgaWYgdGVzdCAiJHtlbmFibGVfcXR9IiA9IHllcyA7IHRoZW4KKyAgIGVsc2UKKyAgICAgdHJ5X3F0ND15ZXMKKyAgIGZpCisrICBBQ19BUkdfV0lUSChxdDVuYXRpdmVzeXNyb290LAorKyAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLXF0NW5hdGl2ZXN5c3Jvb3Q9UEFUSF0sIFtwcmVwZW5kIHBhdGggLSBmb3IgbmF0aXZlIHF0NSB0b29sc10pLAorKyAgICBbUVQ1TkFUSVZFU1lTUk9PVD0iJHdpdGh2YWwiXSwgW1FUNU5BVElWRVNZU1JPT1Q9IiJdKQorKworICAgaWYgdGVzdCAieCR7d2l0aF9xdH0iICE9ICJ4cXQ0IjsgdGhlbgorICAgICBQS0dfQ0hFQ0tfTU9EVUxFU19OT0ZBSUwoUVQsIFtRdDVDb3JlIFF0NUd1aSBRdDVOZXR3b3JrIFF0NVN2ZyBRdDVQcmludFN1cHBvcnRdKQorICAgICBpZiB0ZXN0ICRwa2dfZmFpbGVkID0gbm87IHRoZW4KKyAgICAgICB0cnlfcXQ0PW5vCistICAgICAgUVQ1TE9DPWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWhvc3RfYmlucyBRdDVDb3JlYAorKyAgICAgIFFUNUxPQz0ke1FUNU5BVElWRVNZU1JPT1R9YCRQS0dfQ09ORklHIC0tdmFyaWFibGU9aG9zdF9iaW5zIFF0NUNvcmVgCisgICAgICAgaWYgdGVzdCAieCR7UVQ1TE9DfSIgIT0gIngiOyB0aGVuCisgICAgICAgICBVSUM9JHtRVDVMT0N9L3VpYworICAgICAgICAgTU9DPSR7UVQ1TE9DfS9tb2MKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC9nbnVwbG90LmRlc2t0b3AgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvZ251cGxvdC5kZXNrdG9wCmluZGV4IGY2N2RmOWUuLjEwMTJlNDcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC9nbnVwbG90LmRlc2t0b3AKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90L2dudXBsb3QuZGVza3RvcApAQCAtMSw4ICsxLDggQEAKIFtEZXNrdG9wIEVudHJ5XQogTmFtZT1HbnVwbG90CiBDb21tZW50PVBsb3QgZGF0YSBhbmQgZnVuY3Rpb24gZ3JhcGhzCi1FeGVjPXgtdGVybWluYWwtZW11bGF0b3IgLWUgZ251cGxvdAotVGVybWluYWw9ZmFsc2UKK0V4ZWM9Z251cGxvdAorVGVybWluYWw9dHJ1ZQogVHlwZT1BcHBsaWNhdGlvbgogSWNvbj1nbnVwbG90CiBDYXRlZ29yaWVzPVNjaWVuY2U7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvbHVhLWxvYWRsaWJzLWNvbmZpZ3VyZS1pbi1maXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvbHVhLWxvYWRsaWJzLWNvbmZpZ3VyZS1pbi1maXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzZjJjZDIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90L2x1YS1sb2FkbGlicy1jb25maWd1cmUtaW4tZml4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotSW5kZXg6IGdudXBsb3QtNC42LjUvY29uZmlndXJlLmluCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ251cGxvdC00LjYuNS5vcmlnL2NvbmZpZ3VyZS5pbgotKysrIGdudXBsb3QtNC42LjUvY29uZmlndXJlLmluCi1AQCAtNjkwLDYgKzY5MCwxMSBAQCBpZiB0ZXN0ICIke3dpdGhfbHVhfSIgPSB5ZXMgOyB0aGVuCi0gICBmaQotIAotICAgaWYgdGVzdCAiJHdpdGhfbHVhIiAhPSBubzsgdGhlbgotKyAgICBkbmwgY2hlY2sgZm9yIGRsb3Blbi9kbCB0byBmaXggbG9hZGxpYnMgbGluayBmYWlsdXJlCi0rICAgIEFDX0NIRUNLX0ZVTkMoW2Rsb3Blbl0sIFtdLAotKyAgICAgIEFDX0NIRUNLX0xJQihbZGxdLCBbZGxvcGVuXSwgRExPUEVOX0xJQlM9Ii1sZGwiKSkKLSsgICAgQUNfU1VCU1QoRExPUEVOX0xJQlMpCi0rICAgIExVQV9MSUJTPSIkTFVBX0xJQlMgJERMT1BFTl9MSUJTIgotICAgICBURVJNTElCUz0iJFRFUk1MSUJTICRMVUFfTElCUyIKLSAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAkTFVBX0NGTEFHUyIKLSAgIGVsc2UKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC9xdG9waWEudHJtIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90L3F0b3BpYS50cm0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1MmY5YmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90L3F0b3BpYS50cm0KKysrIC9kZXYvbnVsbApAQCAtMSw0ODMgKzAsMCBAQAotLyoKLSAqICRJZDogZHVtYi50cm0sdiAxLjE2IDIwMDQvMDQvMTMgMTc6MjQ6MTYgYnJvZWtlciBFeHAgJAotICoKLSAqLwotCi0vKiBHTlVQTE9UIC0gcXRvcGlhLnRybSAqLwotCi0vKlsKLSAqIENvcHlyaWdodCAxOTkxIC0gMTk5MywgMTk5OCwgMjAwNCAgIFRob21hcyBXaWxsaWFtcywgQ29saW4gS2VsbGV5Ci0gKgotICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgYW5kIGl0cwotICogZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwKLSAqIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kCi0gKiB0aGF0IGJvdGggdGhhdCBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhcgotICogaW4gc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLgotICoKLSAqIFBlcm1pc3Npb24gdG8gbW9kaWZ5IHRoZSBzb2Z0d2FyZSBpcyBncmFudGVkLCBidXQgbm90IHRoZSByaWdodCB0bwotICogZGlzdHJpYnV0ZSB0aGUgY29tcGxldGUgbW9kaWZpZWQgc291cmNlIGNvZGUuICBNb2RpZmljYXRpb25zIGFyZSB0bwotICogYmUgZGlzdHJpYnV0ZWQgYXMgcGF0Y2hlcyB0byB0aGUgcmVsZWFzZWQgdmVyc2lvbi4gIFBlcm1pc3Npb24gdG8KLSAqIGRpc3RyaWJ1dGUgYmluYXJpZXMgcHJvZHVjZWQgYnkgY29tcGlsaW5nIG1vZGlmaWVkIHNvdXJjZXMgaXMgZ3JhbnRlZCwKLSAqIHByb3ZpZGVkIHlvdQotICogICAxLiBkaXN0cmlidXRlIHRoZSBjb3JyZXNwb25kaW5nIHNvdXJjZSBtb2RpZmljYXRpb25zIGZyb20gdGhlCi0gKiAgICByZWxlYXNlZCB2ZXJzaW9uIGluIHRoZSBmb3JtIG9mIGEgcGF0Y2ggZmlsZSBhbG9uZyB3aXRoIHRoZSBiaW5hcmllcywKLSAqICAgMi4gYWRkIHNwZWNpYWwgdmVyc2lvbiBpZGVudGlmaWNhdGlvbiB0byBkaXN0aW5ndWlzaCB5b3VyIHZlcnNpb24KLSAqICAgIGluIGFkZGl0aW9uIHRvIHRoZSBiYXNlIHJlbGVhc2UgdmVyc2lvbiBudW1iZXIsCi0gKiAgIDMuIHByb3ZpZGUgeW91ciBuYW1lIGFuZCBhZGRyZXNzIGFzIHRoZSBwcmltYXJ5IGNvbnRhY3QgZm9yIHRoZQotICogICAgc3VwcG9ydCBvZiB5b3VyIG1vZGlmaWVkIHZlcnNpb24sIGFuZAotICogICA0LiByZXRhaW4gb3VyIGNvbnRhY3QgaW5mb3JtYXRpb24gaW4gcmVnYXJkIHRvIHVzZSBvZiB0aGUgYmFzZQotICogICAgc29mdHdhcmUuCi0gKiBQZXJtaXNzaW9uIHRvIGRpc3RyaWJ1dGUgdGhlIHJlbGVhc2VkIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBjb2RlIGFsb25nCi0gKiB3aXRoIGNvcnJlc3BvbmRpbmcgc291cmNlIG1vZGlmaWNhdGlvbnMgaW4gdGhlIGZvcm0gb2YgYSBwYXRjaCBmaWxlIGlzCi0gKiBncmFudGVkIHdpdGggc2FtZSBwcm92aXNpb25zIDIgdGhyb3VnaCA0IGZvciBiaW5hcnkgZGlzdHJpYnV0aW9ucy4KLSAqCi0gKiBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkKLSAqIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LgotXSovCi0KLS8qCi0gKiBUaGlzIGZpbGUgaXMgaW5jbHVkZWQgYnkgLi4vdGVybS5jLgotICoKLSAqIFRoaXMgdGVybWluYWwgZHJpdmVyIHN1cHBvcnRzOgotICogICBxdG9waWEgdGVybWluYWxzCi0gKgotICogQVVUSE9SUwotICogICBNaWNoYWVsIE5ldXJvdGgsIDIwMDQtMDUtMTYKLSAqICAgICAgICAgICBJTlRFUk5FVDogbWljaGFlbC5uZXVyb3RoQGZyZWVuZXQuZGUKLSAqCi0gKiBzZW5kIHlvdXIgY29tbWVudHMgb3Igc3VnZ2VzdGlvbnMgdG8gKGdudXBsb3QtaW5mb0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQpLgotICoKLSAqLwotI2luY2x1ZGUgImRyaXZlci5oIgotCi0jZGVmaW5lIE5PX1FUT1BJQV9FTkhBTkNFRF9TVVBQT1JUCi0KLSNpZmRlZiBURVJNX1JFR0lTVEVSCi1yZWdpc3Rlcl90ZXJtKHF0b3BpYV9kcml2ZXIpCi0jZW5kaWYKLQotI2lmZGVmIFRFUk1fUFJPVE8KLVRFUk1fUFVCTElDIHZvaWQgUVRPUElBX29wdGlvbnMgX19QUk9UTygodm9pZCkpOwotVEVSTV9QVUJMSUMgdm9pZCBRVE9QSUFfaW5pdCBfX1BST1RPKCh2b2lkKSk7Ci1URVJNX1BVQkxJQyB2b2lkIFFUT1BJQV9ncmFwaGljcyBfX1BST1RPKCh2b2lkKSk7Ci1URVJNX1BVQkxJQyB2b2lkIFFUT1BJQV90ZXh0IF9fUFJPVE8oKHZvaWQpKTsKLVRFUk1fUFVCTElDIHZvaWQgUVRPUElBX3Jlc2V0IF9fUFJPVE8oKHZvaWQpKTsKLVRFUk1fUFVCTElDIHZvaWQgUVRPUElBX2xpbmV0eXBlIF9fUFJPVE8oKGludCBsaW5ldHlwZSkpOwotVEVSTV9QVUJMSUMgdm9pZCBRVE9QSUFfbW92ZSBfX1BST1RPKCh1bnNpZ25lZCBpbnQgeCwgdW5zaWduZWQgaW50IHkpKTsKLVRFUk1fUFVCTElDIHZvaWQgUVRPUElBX3BvaW50IF9fUFJPVE8oKHVuc2lnbmVkIGludCB4LCB1bnNpZ25lZCBpbnQgeSwKLQkJCQkgICAgIGludCBwb2ludCkpOwotVEVSTV9QVUJMSUMgdm9pZCBRVE9QSUFfdmVjdG9yIF9fUFJPVE8oKHVuc2lnbmVkIGludCB4LCB1bnNpZ25lZCBpbnQgeSkpOwotVEVSTV9QVUJMSUMgdm9pZCBRVE9QSUFfcHV0X3RleHQgX19QUk9UTygodW5zaWduZWQgaW50IHgsIHVuc2lnbmVkIGludCB5LAotCQkJCQljb25zdCBjaGFyICpzdHIpKTsKLVRFUk1fUFVCTElDIHZvaWQgUVRPUElBX2Fycm93IF9fUFJPVE8oKHVuc2lnbmVkIGludCBzeCwgdW5zaWduZWQgaW50IHN5LAotCQkJCSAgICAgdW5zaWduZWQgaW50IGV4LCB1bnNpZ25lZCBpbnQgZXksCi0JCQkJICAgICBpbnQgaGVhZCkpOwotCi0jZGVmaW5lIEVOSHF0b3BpYV9wdXRfdGV4dCBOVUxMCi0KLQotI2RlZmluZSBRVE9QSUFfWE1BWCA0MDk2Ci0jZGVmaW5lIFFUT1BJQV9ZTUFYIDQwOTYKLQotI2lmZGVmIFpBVVJVUwotI2RlZmluZSBRVE9QSUFfVkNIQVIgKFFUT1BJQV9ZTUFYLzI1KQotI2RlZmluZSBRVE9QSUFfSENIQVIgKFFUT1BJQV9YTUFYLzQwKQotI2RlZmluZSBRVE9QSUFfVlRJQyAoUVRPUElBX1lNQVgvNTApCi0jZGVmaW5lIFFUT1BJQV9IVElDIChRVE9QSUFfWE1BWC80MCkKLSNlbHNlCi0jZGVmaW5lIFFUT1BJQV9WQ0hBUiAoUVRPUElBX1lNQVgvMjUpCi0jZGVmaW5lIFFUT1BJQV9IQ0hBUiAoUVRPUElBX1hNQVgvNTApCi0jZGVmaW5lIFFUT1BJQV9WVElDIChRVE9QSUFfWU1BWC8xMDApCi0jZGVmaW5lIFFUT1BJQV9IVElDIChRVE9QSUFfWE1BWC8xNTApCi0jZW5kaWYKLQotI2VuZGlmIC8qIFRFUk1fUFJPVE8gKi8KLQotI2lmZGVmIFRFUk1fQk9EWQotCi0vKiNpbmNsdWRlIDx3aW5zb2NrMi5oPiovCi0vKiBuZWVkczogd3MyXzMyLmxpYiAqLwotI2lmbmRlZiBfTVNDX1ZFUgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxuZXRpbmV0L2luLmg+Ci0jaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0jZW5kaWYKLQotI2RlZmluZSBRVE9QSUFfTUFYX0JVRkZFUgkJNTEyCi0jZGVmaW5lIFFUT1BJQV9NQVhfREVMQVlfQ09VTlQJMjAJLyogKiAxMDAgbXMgPSAyIHMgKi8KLQotI2lmZGVmIF9NU0NfVkVSCi0jZGVmaW5lIFFUT1BJQV9CQURfU09DS0VUCQlJTlZBTElEX1NPQ0tFVAkJLyogLTEgKi8KLSNkZWZpbmUgUVRPUElBX0JBRF9DT05ORUNUCQlTT0NLRVRfRVJST1IKLSNlbHNlCi0jZGVmaW5lIFFUT1BJQV9CQURfU09DS0VUCQktMQotI2RlZmluZSBRVE9QSUFfQkFEX0NPTk5FQ1QJCS0xCi0jZW5kaWYKLSNkZWZpbmUgUVRPUElBX1BPUlRfTk8JCQk1MDUwCi0KLXN0YXRpYyBpbnQgcXRvcGlhX2NsaWVudF9zb2NrZXQgPSBRVE9QSUFfQkFEX1NPQ0tFVDsKLXN0YXRpYyB1bnNpZ25lZCBzaG9ydCBxdG9waWFfcG9ydF9ubyA9IFFUT1BJQV9QT1JUX05POwotc3RhdGljIGNoYXIgcXRvcGlhX2hvc3RfbmFtZVtRVE9QSUFfTUFYX0JVRkZFUisxXSA9IHsgImxvY2FsaG9zdCIgfTsKLQotc3RhdGljIGludCBPcGVuQ2xpZW50IF9fUFJPVE8oKCBpbnQgdGVzdCkpOwotc3RhdGljIHZvaWQgQ2xvc2VDbGllbnQoKTsKLQotc3RhdGljIHZvaWQgTXlTbGVlcCggZGVsYXkgKQotaW50IGRlbGF5OwotewotI2lmZGVmIF9NU0NfVkVSCi0JU2xlZXAoIGRlbGF5ICk7Ci0jZWxzZQotCXVzbGVlcCggZGVsYXkgKTsKLSNlbmRpZgotfQotCi1zdGF0aWMgdm9pZCBJbml0U29ja2V0cygpCi17Ci0jaWZkZWYgX01TQ19WRVIKLQlXT1JEIHdWZXJzaW9uUmVxdWVzdGVkOwotCVdTQURBVEEgd3NhRGF0YTsKLQlpbnQgZXJyOwotCi0Jd1ZlcnNpb25SZXF1ZXN0ZWQgPSBNQUtFV09SRCggMiwgMiApOwotCi0JZXJyID0gV1NBU3RhcnR1cCggd1ZlcnNpb25SZXF1ZXN0ZWQsICZ3c2FEYXRhICk7Ci0jZW5kaWYKLX0KLQotc3RhdGljIHZvaWQgRXhpdFNvY2tldHMoKQotewotI2lmZGVmIF9NU0NfVkVSCi0JV1NBQ2xlYW51cCgpOwotI2VuZGlmCi19Ci0KLXN0YXRpYyBpbnQgQ2hlY2tGb3JRdHBsb3QoIGNvdW50ICkKLWludCBjb3VudDsKLXsKLQkvKiB0ZXN0ICh2aWEgc29ja2V0cykgaWYgcXRwbG90IGlzIGFsbHJlYWR5IHJ1bm5pbmcgKi8KLQlpZiggIU9wZW5DbGllbnQoIDEgKSApCi0JewotCQkvKiBnaXZlIHF0cGxvdCBhIGxpdGxlIGJpdCB0aW1lIHRvIHN0YXJ0Li4uICovCi0JCWlmKCBjb3VudCA8IFFUT1BJQV9NQVhfREVMQVlfQ09VTlQgKQotCQl7Ci0JCQlpZiggY291bnQgPT0gMCApCi0JCQl7Ci0jaWZkZWYgX01TQ19WRVIKLQkJCQlzeXN0ZW0oICJzdGFydCBxdHBsb3QiICk7Ci0jZWxzZQotCQkJCXN5c3RlbSggInF0cGxvdCYiICk7Ci0jZW5kaWYKLQkJCX0KLQkJCi0JCQlNeVNsZWVwKDEwMCk7Ci0KLQkJCXJldHVybiBDaGVja0ZvclF0cGxvdCggY291bnQrMSApOwotCQl9Ci0JCWVsc2UKLQkJewotCQkJcmV0dXJuIDA7Ci0JCX0KLQl9Ci0JZWxzZQotCXsKLQkJQ2xvc2VDbGllbnQoKTsKLQotCQlyZXR1cm4gMTsKLQl9Ci19Ci0KLXN0YXRpYyBpbnQgT3BlbkNsaWVudCggdGVzdCApCi1pbnQgdGVzdDsKLXsKLSAgICBpbnQgbGVuOwotICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBhZGRyZXNzOwotICAgIGludCByZXN1bHQ7Ci0KLQkvKiAgQ3JlYXRlIGEgc29ja2V0IGZvciB0aGUgY2xpZW50LiAgKi8KLQotICAgIHF0b3BpYV9jbGllbnRfc29ja2V0ID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKLQotCWlmKCBxdG9waWFfY2xpZW50X3NvY2tldCAhPSBRVE9QSUFfQkFEX1NPQ0tFVCApCi0JewotCQkvKiAgTmFtZSB0aGUgc29ja2V0LCBhcyBhZ3JlZWQgd2l0aCB0aGUgc2VydmVyLiAgKi8KLQotCQlhZGRyZXNzLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwotCQlhZGRyZXNzLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcigvKnF0b3BpYV9ob3N0X25hbWUqLyIxMjcuMC4wLjEiKTsJLyogbG9jYWxob3N0ICovCi0JCWFkZHJlc3Muc2luX3BvcnQgPSBodG9ucyhxdG9waWFfcG9ydF9ubyk7Ci0JCWxlbiA9IHNpemVvZihhZGRyZXNzKTsKLQotCQkvKiAgTm93IGNvbm5lY3Qgb3VyIHNvY2tldCB0byB0aGUgc2VydmVyJ3Mgc29ja2V0LiAgKi8KLQotCQlyZXN1bHQgPSBjb25uZWN0KHF0b3BpYV9jbGllbnRfc29ja2V0LCAoc3RydWN0IHNvY2thZGRyICopJmFkZHJlc3MsIGxlbik7Ci0JCQotCQlpZiggcmVzdWx0ID09IFFUT1BJQV9CQURfU09DS0VUICkKLQkJewotCQkJLyogbWFyayB0aGlzIHNvY2tldCBhcyBiYWQgKi8KLQotCQkJY2xvc2UoIHF0b3BpYV9jbGllbnRfc29ja2V0ICk7Ci0KLQkJCXF0b3BpYV9jbGllbnRfc29ja2V0ID0gUVRPUElBX0JBRF9TT0NLRVQ7Ci0KLQkJCWlmKCAhdGVzdCApCi0JCQl7Ci0JCQkJZnByaW50ZiggZ3BvdXRmaWxlLCAiZXJyb3IgY29ubmVjdGluZyB0byBzZXJ2ZXIgIVxuIiApOwotCQkJfQotCQkJcmV0dXJuIDA7CS8qIHNvbWV0aGluZyB3ZW50IHdyb25nICovCi0JCX0KLQl9Ci0JZWxzZQotCXsKLQkJaWYoICF0ZXN0ICkKLQkJewotCQkJZnByaW50ZiggZ3BvdXRmaWxlLCAiZXJyb3IgY3JlYXRpbmcgc29ja2V0ICFcbiIgKTsKLQkJfQotCQlyZXR1cm4gMDsJLyogc29tZXRoaW5nIHdlbnQgd3JvbmcgKi8KLQl9Ci0KLQlyZXR1cm4gMTsJLyogZXZlcnl0aGluZyBpc3Qgb2sgISAqLwotfQotCi1zdGF0aWMgdm9pZCBDbG9zZUNsaWVudCgpCi17Ci0gICAgY2xvc2UoIHF0b3BpYV9jbGllbnRfc29ja2V0ICk7Ci19Ci0KLXN0YXRpYyBpbnQgSXNDbGllbnRPaygpCi17Ci0JcmV0dXJuIHF0b3BpYV9jbGllbnRfc29ja2V0ICE9IFFUT1BJQV9CQURfU09DS0VUOwotfQotCi1zdGF0aWMgdm9pZCBTZW5kRGF0YVRvU29ja2V0KCBzTGluZSApCi1jb25zdCBjaGFyICogc0xpbmU7Ci17Ci0JaWYoIElzQ2xpZW50T2soKSApCi0JewotCQlpbnQgc2VuZF9jb3VudDsKLQotCQlzZW5kX2NvdW50ID0gc2VuZCggcXRvcGlhX2NsaWVudF9zb2NrZXQsIHNMaW5lLCBzdHJsZW4oIHNMaW5lICksIDAgKTsKLQotCQlpZiggc2VuZF9jb3VudCA8PSAwICkKLQkJewotCQkJZnByaW50ZiggZ3BvdXRmaWxlLCAiZXJyb3Igd3JpdGluZyB0byBzb2NrZXQgc3RyPSVzIVxuIiwgc0xpbmUgKTsKLQkJfQotCQkvKgotCQllbHNlCi0JCXsKLQkJCWZwcmludGYoIGdwb3V0ZmlsZSwgIndyb3RlICVkIGJ5dGVzXG4iLCBzZW5kX2NvdW50ICk7Ci0JCX0KLQkJKi8KLQl9Ci0JZWxzZQotCXsKLQkJLyogZm9yIHRlc3RpbmcuLi4gKi8KLQkJLypmcHJpbnRmKCBncG91dGZpbGUsIHNMaW5lICk7Ki8KLQl9Ci19Ci0KLS8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCi0KLWVudW0gUVRPUElBX2lkIHsgUVRPUElBX1BPUlQsIFFUT1BJQV9IT1NULCBRVE9QSUFfT1RIRVIgfTsKLQotc3RhdGljIHN0cnVjdCBnZW5fdGFibGUgUVRPUElBX29wdHNbXSA9Ci17Ci0gICAgeyAicG8kcnQiLCBRVE9QSUFfUE9SVCB9LAotICAgIHsgImhvJHN0IiwgUVRPUElBX0hPU1QgfSwKLSAgICB7IE5VTEwsIFFUT1BJQV9PVEhFUiB9Ci19OwotCi1URVJNX1BVQkxJQyB2b2lkCi1RVE9QSUFfb3B0aW9ucygpCi17Ci0gICAgLyogdGhpcyBpcyBub3QgZm9yIHRoZSBxdG9waWEgdGVybWluYWwgISAqLwotCS8qU2VuZERhdGFUb1NvY2tldCggInF0ZCBvcHRpb25zXG4iICk7Ki8KLQotICAgIGludCB4LCB5OwotICAgIHN0cnVjdCB2YWx1ZSBhOwotCi0gICAgd2hpbGUgKCFFTkRfT0ZfQ09NTUFORCkgCi0JewotCQlzd2l0Y2gobG9va3VwX3RhYmxlKCZRVE9QSUFfb3B0c1swXSxjX3Rva2VuKSkgCi0JCXsKLQkJCWNhc2UgUVRPUElBX1BPUlQ6Ci0JCQkJY190b2tlbisrOwotCQkJCWlmIChFTkRfT0ZfQ09NTUFORCkKLQkJCQkJaW50X2Vycm9yKGNfdG9rZW4sICJleHBlY3RpbmcgcG9ydCBudW1iZXIiKTsKLQkJCQlxdG9waWFfcG9ydF9ubyA9IChpbnQpIHJlYWwoY29uc3RfZXhwcmVzcygmYSkpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBRVE9QSUFfSE9TVDoKLQkJCQljX3Rva2VuKys7Ci0JCQkJaWYgKEVORF9PRl9DT01NQU5EKQotCQkJCQlpbnRfZXJyb3IoY190b2tlbiwgImV4cGVjdGluZyBob3N0IG5hbWUiKTsKLQkJCQlpZiAoaXNzdHJpbmcoY190b2tlbikpCi0JCQkJCXF1b3RlX3N0ciggcXRvcGlhX2hvc3RfbmFtZSwgY190b2tlbiwgc2l6ZW9mKHF0b3BpYV9ob3N0X25hbWUpICk7Ci0JCQkJZWxzZQotIAkJCQkJY29weV9zdHIoIHF0b3BpYV9ob3N0X25hbWUsIGNfdG9rZW4sIHNpemVvZihxdG9waWFfaG9zdF9uYW1lKSApOwotCQkJCWNfdG9rZW4rKzsKLQkJCQlicmVhazsKLQkJCWNhc2UgUVRPUElBX09USEVSOgotCQkJZGVmYXVsdDoKLQkJCQlicmVhazsKLQkJfQotICAgIH0KLQotICAgIHNwcmludGYodGVybV9vcHRpb25zLCAiaG9zdD0lcyBwb3J0PSVkIixxdG9waWFfaG9zdF9uYW1lLHF0b3BpYV9wb3J0X25vKTsKLX0KLQotCi1URVJNX1BVQkxJQyB2b2lkCi1RVE9QSUFfaW5pdCgpCi17Ci0JLyogaW5pdGlhbGl6ZSBsaWIgKGlmIG5lY2Fzc2FyeSkgKi8KLQlJbml0U29ja2V0cygpOwotCUNoZWNrRm9yUXRwbG90KCAwICk7Ci0JT3BlbkNsaWVudCggMCApOyAKLQotCVNlbmREYXRhVG9Tb2NrZXQoICJxdGQgaW5pdFxuIiApOwotfQotCi0KLVRFUk1fUFVCTElDIHZvaWQKLVFUT1BJQV9ncmFwaGljcygpCi17Ci0JU2VuZERhdGFUb1NvY2tldCggInF0ZCBncmFwaGljc1xuIiApOwotfQotCi1URVJNX1BVQkxJQyB2b2lkCi1RVE9QSUFfdGV4dCgpCi17Ci0JU2VuZERhdGFUb1NvY2tldCggInF0ZCB0ZXh0XG4iICk7Ci19Ci0KLQotVEVSTV9QVUJMSUMgdm9pZAotUVRPUElBX3Jlc2V0KCkKLXsKLQlTZW5kRGF0YVRvU29ja2V0KCAicXRkIHJlc2V0XG4iICk7Ci0KLQkvKiBnaXZlIHRoZSBxdHBsb3QgYSBsaXRsZSBiaXQgdGltZSB0byBzaHV0ZG93biAqLwotCU15U2xlZXAoMTAwKTsKLQotCUNsb3NlQ2xpZW50KCk7Ci0JRXhpdFNvY2tldHMoKTsKLX0KLQotCi1URVJNX1BVQkxJQyB2b2lkCi1RVE9QSUFfbGluZXR5cGUobGluZXR5cGUpCi1pbnQgbGluZXR5cGU7Ci17Ci0JY2hhciBzQnVmZmVyW1FUT1BJQV9NQVhfQlVGRkVSXTsKLQotCXNwcmludGYoIHNCdWZmZXIsICJxdGQgbGluZXR5cGUgdHlwZT0lZFxuIixsaW5ldHlwZSApOwotCi0JU2VuZERhdGFUb1NvY2tldCggc0J1ZmZlciApOwotfQotCi0KLVRFUk1fUFVCTElDIHZvaWQKLVFUT1BJQV9tb3ZlKHgsIHkpCi11bnNpZ25lZCBpbnQgeCwgeTsKLXsKLQljaGFyIHNCdWZmZXJbUVRPUElBX01BWF9CVUZGRVJdOwotCi0Jc3ByaW50Ziggc0J1ZmZlciwgInF0ZCBtb3ZlIHg9JWQgeT0lZFxuIix4LHkgKTsKLQotCVNlbmREYXRhVG9Tb2NrZXQoIHNCdWZmZXIgKTsKLX0KLQotCi1URVJNX1BVQkxJQyB2b2lkCi1RVE9QSUFfcG9pbnQoeCwgeSwgcG9pbnQpCi11bnNpZ25lZCBpbnQgeCwgeTsKLWludCBwb2ludDsKLXsKLQljaGFyIHNCdWZmZXJbUVRPUElBX01BWF9CVUZGRVJdOwotCi0Jc3ByaW50Ziggc0J1ZmZlciwgInF0ZCBwb2ludCB4PSVkIHk9JWQgcG9pbnQ9JWRcbiIseCx5LHBvaW50ICk7Ci0KLQlTZW5kRGF0YVRvU29ja2V0KCBzQnVmZmVyICk7Ci19Ci0KLQotVEVSTV9QVUJMSUMgdm9pZAotUVRPUElBX3ZlY3RvcihfeCwgX3kpCi11bnNpZ25lZCBpbnQgX3gsIF95OwotewotCWNoYXIgc0J1ZmZlcltRVE9QSUFfTUFYX0JVRkZFUl07Ci0KLQlzcHJpbnRmKCBzQnVmZmVyLCAicXRkIHZlY3RvciB4PSVkIHk9JWRcbiIsX3gsX3kgKTsKLQotCVNlbmREYXRhVG9Tb2NrZXQoIHNCdWZmZXIgKTsKLX0KLQotCi1URVJNX1BVQkxJQyB2b2lkCi1RVE9QSUFfcHV0X3RleHQoeCwgeSwgc3RyKQotdW5zaWduZWQgaW50IHgsIHk7Ci1jb25zdCBjaGFyICpzdHI7Ci17Ci0JY2hhciBzQnVmZmVyW1FUT1BJQV9NQVhfQlVGRkVSXTsKLQotCXNwcmludGYoIHNCdWZmZXIsICJxdGQgcHV0X3RleHQgeD0lZCB5PSVkIHN0cj0lc1xuIix4LHksc3RyICk7Ci0KLQlTZW5kRGF0YVRvU29ja2V0KCBzQnVmZmVyICk7Ci19Ci0KLS8qIG5vdCBzdXBvcnRlZCB5ZXQgISAqLwotVEVSTV9QVUJMSUMgdm9pZAotUVRPUElBX2Fycm93KHN4LCBzeSwgZXgsIGV5LCBoZWFkKQotICAgIHVuc2lnbmVkIGludCBzeCwgc3ksIGV4LCBleTsKLSAgICBpbnQgaGVhZDsJCS8qIGlnbm9yZWQgKi8KLXsKLQljaGFyIHNCdWZmZXJbUVRPUElBX01BWF9CVUZGRVJdOwotCi0Jc3ByaW50Ziggc0J1ZmZlciwgInF0ZCBhcnJvdyBzeD0lZCBzeT0lZCBleD0lZCBleT0lZCBoZWFkPSVkXG4iLHN4LHN5LGV4LGV5LGhlYWQgKTsKLQotCVNlbmREYXRhVG9Tb2NrZXQoIHNCdWZmZXIgKTsKLX0KLQotCi0jZW5kaWYgLyogVEVSTV9CT0RZICovCi0KLSNpZmRlZiBURVJNX1RBQkxFCi1URVJNX1RBQkxFX1NUQVJUKHF0b3BpYV9kcml2ZXIpCi0gICAgInF0b3BpYSIsICJxdG9waWEgb3IgUXQiLAotICAgIFFUT1BJQV9YTUFYLCBRVE9QSUFfWU1BWCwgUVRPUElBX1ZDSEFSLCBRVE9QSUFfSENIQVIsCi0gICAgUVRPUElBX1ZUSUMsIFFUT1BJQV9IVElDLCBRVE9QSUFfb3B0aW9ucywgUVRPUElBX2luaXQsIFFUT1BJQV9yZXNldCwKLSAgICBRVE9QSUFfdGV4dCwgbnVsbF9zY2FsZSwgUVRPUElBX2dyYXBoaWNzLCBRVE9QSUFfbW92ZSwgUVRPUElBX3ZlY3RvciwKLSAgICBRVE9QSUFfbGluZXR5cGUsIFFUT1BJQV9wdXRfdGV4dCwgbnVsbF90ZXh0X2FuZ2xlLAotICAgIG51bGxfanVzdGlmeV90ZXh0LCBRVE9QSUFfcG9pbnQsIC8qUVRPUElBX2Fycm93Ki8wLCBzZXRfZm9udF9udWxsLAotICAgIDAsCQkJCS8qIHBvaW50c2l6ZSAqLwotICAgIFRFUk1fQ0FOX01VTFRJUExPVCwKLSAgICBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMCi0jaWZkZWYgVVNFX01PVVNFCi0gICAgLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMCi0jZW5kaWYKLSNpZmRlZiBQTTNECi0gICAgLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMCi0jZW5kaWYKLVRFUk1fVEFCTEVfRU5EKHF0b3BpYV9kcml2ZXIpCi0KLSN1bmRlZiBMQVNUX1RFUk0KLSNkZWZpbmUgTEFTVF9URVJNIHF0b3BpYV9kcml2ZXIKLQotI2VuZGlmIC8qIFRFUk1fVEFCTEUgKi8KLQotI2lmZGVmIFRFUk1fSEVMUAotU1RBUlRfSEVMUChxdG9waWEpCi0iMSBxdG9waWEiLAotIj9jb21tYW5kcyBzZXQgdGVybWluYWwgcXRvcGlhIiwKLSI/c2V0IHRlcm1pbmFsIHF0b3BpYSIsCi0iP3NldCB0ZXJtIHF0b3BpYSIsCi0iP3Rlcm1pbmFsIHF0b3BpYSIsCi0iP3Rlcm0gcXRvcGlhIiwKLSI/cXRvcGlhIiwKLSIgVGhlIGBxdG9waWFgIHRlcm1pbmFsIGRyaXZlciBoYXMgbm8gYWRkaXRpb25hbCBvcHRpb25zLiIsCi0iIiwKLSIgU3ludGF4OiIsCi0iICAgICAgIHNldCB0ZXJtaW5hbCBxdG9waWEiLAotIiIKLUVORF9IRUxQKHF0b3BpYSkKLSNlbmRpZiAvKiBURVJNX0hFTFAgKi8KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC9zdWJkaXJzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90L3N1YmRpcnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjN2QxZjAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90L3N1YmRpcnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gL3RtcC9NYWtlZmlsZS5hbQkyMDA3LTA4LTIzIDEzOjEwOjE1LjU2MDY1OTAyMyArMDIwMAotKysrIGdudXBsb3QtNC4yLjAvTWFrZWZpbGUuYW0JMjAwNy0wOC0yMyAxMzoxMDozNC45NjE3NjQ2MjkgKzAyMDAKLUBAIC0xLDcgKzEsNyBAQAotICMjIFByb2Nlc3MgdGhpcyBmaWxlIHdpdGggYXV0b21ha2UgdG8gcHJvZHVjZSBNYWtlZmlsZS5pbiAtKi1NYWtlZmlsZS0qLQotIEFVVE9NQUtFX09QVElPTlMgPSBmb3JlaWduIDEuMmgKLSAKLS1TVUJESVJTID0gY29uZmlnIG00IHRlcm0gc3JjIGRvY3MgJChMSVNQRElSKSBtYW4gZGVtbyB0dXRvcmlhbCBzaGFyZQotK1NVQkRJUlMgPSBjb25maWcgbTQgdGVybSBzcmMgICQoTElTUERJUikgbWFuIHNoYXJlCi0gCi0gRVhUUkFfRElTVCA9IEJVR1MgQ29kZVN0eWxlIENvcHlyaWdodCBGQVEgR05VbWFrZWZpbGUgSU5TVEFMTCBJTlNUQUxMLmdudSBcCi0gTWFrZWZpbGUubWFpbnQgUEFUQ0hMRVZFTCBQR1BLRVlTIFBPUlRJTkcgUkVBRE1FIFJFQURNRS4xU1QgUkVBRE1FLmV4cCBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3RfNS4wLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3RfNS4wLjUuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMzA4YmEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90XzUuMC41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotcmVxdWlyZSBnbnVwbG90LmluYwotCi1TUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9nbnVwbG90LyR7QlB9LnRhci5nejtuYW1lPWFyY2hpdmUgXAotICAgIGh0dHA6Ly93d3cubW5ldXJvdGguZGUvcHJpdmF0L3phdXJ1cy9xdHBsb3QtMC4yLnRhci5nejtuYW1lPXF0cGxvdCBcCi0gICAgZmlsZTovL3N1YmRpcnMucGF0Y2ggXAotICAgIGZpbGU6Ly9sdWEtbG9hZGxpYnMtY29uZmlndXJlLWluLWZpeC5wYXRjaCBcCi0gICAgZmlsZTovL2dudXBsb3QuZGVza3RvcCBcCi0gICAgZmlsZTovL2dudXBsb3QucG5nIFwKLSIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiYzVlOTZmY2E3M2FmYmVlNGY1N2NiYzFiZmNlNmIzYjgiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICIyNWYzZTBiZjE5MmUwMTExNWM1ODBmMjc4YzM3MjVkN2E1NjllYjg0ODc4NmUxMmI0NTVhM2ZkYTcwMzEyMDUzIgotU1JDX1VSSVtxdHBsb3QubWQ1c3VtXSA9ICIwYTQ4MTg4NWE0OTYwOTJjNzdlYjQwMTc1NDBiNWNmNiIKLVNSQ19VUklbcXRwbG90LnNoYTI1NnN1bV0gPSAiNmRmMzE3MTgzZmY2MmNjODJmM2RjZjg4MjA3YTI2N2NkNjQ3OGNiNTE0N2Y1NWQ3NTMwYzk0ZjFhZDVmNDEzMiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdF81LjIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdF81LjIuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2MyODlkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90XzUuMi4yLmJiCkBAIC0wLDAgKzEsNjkgQEAKK1NVTU1BUlkgPSAiR251cGxvdCBpcyBhIHBvcnRhYmxlIGNvbW1hbmQtbGluZSBkcml2ZW4gZ3JhcGhpbmcgdXRpbGl0eSIKK0RFU0NSSVBUSU9OID0gIkdudXBsb3QgaXMgYSBwb3J0YWJsZSBjb21tYW5kLWxpbmUgZHJpdmVuIGludGVyYWN0aXZlIGRhdGFmaWxlIFwKKyh0ZXh0IG9yIGJpbmFyeSkgYW5kIGZ1bmN0aW9uIHBsb3R0aW5nIHV0aWxpdHkuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbnVwbG90LmluZm8vIgorU0VDVElPTiA9ICJjb25zb2xlL3NjaWVudGlmaWMiCitMSUNFTlNFID0gImdudXBsb3QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9Db3B5cmlnaHQ7bWQ1PTI0M2ExODZmYzJmZDNiOTkyMTI1ZDYwZDViMWJhYjhmIgorREVQRU5EUyA9ICIke0JQTn0tbmF0aXZlIHZpcnR1YWwvbGlieDExIGdkIHJlYWRsaW5lIgorCitpbmhlcml0IGF1dG90b29scyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKyMgZGVwZW5kcyBvbiB2aXJ0dWFsL2xpYngxMQorUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vZ251cGxvdC8ke0JQfS50YXIuZ3o7bmFtZT1hcmNoaXZlIFwKKyAgICBodHRwOi8vd3d3Lm1uZXVyb3RoLmRlL3ByaXZhdC96YXVydXMvcXRwbG90LTAuMi50YXIuZ3o7bmFtZT1xdHBsb3QgXAorICAgIGZpbGU6Ly9nbnVwbG90LmRlc2t0b3AgXAorICAgIGZpbGU6Ly9nbnVwbG90LnBuZyBcCisiCitTUkNfVVJJX2FwcGVuZF9jbGFzcy10YXJnZXQgPSAiIFwKKyAgICBmaWxlOi8vMDAwMi1kby1ub3QtYnVpbGQtZGVtb3MucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAzLVVzZS1uYXRpdmUtdG9vbHMtdG8tYnVpbGQtZG9jcy5wYXRjaCBcCisgICAgZmlsZTovLzAwMDQtQWRkLWNvbmZpZ3VyZS1vcHRpb24tdG8tZmluZC1xdDUtbmF0aXZlLXRvb2xzLnBhdGNoIFwKKyIKKworU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiNjBhZWRkMDg5OTgxNjA1OTMxOTk0NTlkZWE4NDY3ZmUiCitTUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICJhNDE2ZDIyZjAyYmRmMzg3M2VmODJjNWViN2Y4ZTk0MTQ2Nzk1ODExZWY4MDhlMTJiMDM1YWRhODhlZjdiMWExIgorU1JDX1VSSVtxdHBsb3QubWQ1c3VtXSA9ICIwYTQ4MTg4NWE0OTYwOTJjNzdlYjQwMTc1NDBiNWNmNiIKK1NSQ19VUklbcXRwbG90LnNoYTI1NnN1bV0gPSAiNmRmMzE3MTgzZmY2MmNjODJmM2RjZjg4MjA3YTI2N2NkNjQ3OGNiNTE0N2Y1NWQ3NTMwYzk0ZjFhZDVmNDEzMiIKKworIyBmb3IgYnVpbGRpbmcgZG9jcyAodGhleSBkZXNlcnZlIGl0KSB3ZSBuZWVkICpkb2MyKiB0b29scyBuYXRpdmUKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgorREVQRU5EU19jbGFzcy1uYXRpdmUgPSAicmVhZGxpbmUtbmF0aXZlIgorUEFDS0FHRUNPTkZJR19jbGFzcy1uYXRpdmUgPSAiIgorCitTUkNfVVJJX2FwcGVuZF9jbGFzcy1uYXRpdmUgPSAiZmlsZTovLzAwMDEtcmVkdWNlLWJ1aWxkLXRvLWNvbnZlcnNpb24tdG9vbHMtZm9yLW5hdGl2ZS1idWlsZC5wYXRjaCIKKworZG9faW5zdGFsbF9jbGFzcy1uYXRpdmUoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9JHtiaW5kaXJ9CisJaW5zdGFsbCAke0J9L2RvY3MvKmRvYyogJHtEfSR7YmluZGlyfQorICAgIHJtICR7RH0ke2JpbmRpcn0vKi5vCit9CisKK1BBQ0tBR0VDT05GSUcgPz89ICJjYWlybyIKK1BBQ0tBR0VDT05GSUdbY2Fpcm9dID0gIi0td2l0aC1jYWlybywtLXdpdGhvdXQtY2Fpcm8sY2Fpcm8gcGFuZ28iCitQQUNLQUdFQ09ORklHW2x1YV0gPSAiLS13aXRoLWx1YSwtLXdpdGhvdXQtbHVhLGx1YSIKK1BBQ0tBR0VDT05GSUdbcXQ1XSA9ICItLXdpdGgtcXQgLS13aXRoLXF0NW5hdGl2ZXN5c3Jvb3Q9JHtTVEFHSU5HX0RJUl9OQVRJVkV9LC0td2l0aG91dC1xdCxxdGJhc2UtbmF0aXZlIHF0YmFzZSBxdHN2ZyBxdHRvb2xzLW5hdGl2ZSIKKworRVhUUkFfT0VDT05GID0gIi0td2l0aC1yZWFkbGluZT0ke1NUQUdJTkdfTElCRElSfS8uLiBcCisgICAgICAgICAgICAgICAgLS13aXRob3V0LXR1dG9yaWFsIFwKKyAgICAgICAgICAgICAgICAtLWRpc2FibGUtd3h3aWRnZXRzIgorCitkb19jb21waWxlX3ByZXBlbmQoKSB7CisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vcXRwbG90LTAuMi9xdG9waWEudHJtICR7U30vdGVybS8KK30KKworZG9faW5zdGFsbF9hcHBlbmRfY2xhc3MtdGFyZ2V0KCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vYXBwbGljYXRpb25zLworICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2dudXBsb3QuZGVza3RvcCAke0R9JHtkYXRhZGlyfS9hcHBsaWNhdGlvbnMvCisgICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9waXhtYXBzLworICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2dudXBsb3QucG5nICR7RH0ke2RhdGFkaXJ9L3BpeG1hcHMvCit9CisKK1BBQ0tBR0VTID0rICIke1BOfS14MTEtZGJnICR7UE59LXgxMSIKK0RFU0NSSVBUSU9OXyR7UE59LXgxMSA9ICJYMTEgZGlzcGxheSB0ZXJtaW5hbCBmb3IgR251cGxvdC4iCitTRUNUSU9OXyR7UE59LXgxMSA9ICJ4MTEvc2NpZW50aWZpYyIKK0ZJTEVTXyR7UE59LXgxMSA9ICIke2xpYmV4ZWNkaXJ9ICR7ZGF0YWRpcn0vYXBwbGljYXRpb25zICR7ZGF0YWRpcn0vcGl4bWFwcyAke2xpYmRpcn0vWDExICIKKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vdGV4bWYiCitGSUxFU18ke1BOfS14MTEtZGJnICs9ICIke2xpYmV4ZWNkaXJ9L2dudXBsb3QvKi8uZGVidWciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oYXZlZ2VkL2hhdmVnZWQvaGF2ZWdlZC1pbml0LmQtTWFrZWZpbGUuYW0tYWRkLW1pc3NpbmctZGVwZW5kZW5jeS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hhdmVnZWQvaGF2ZWdlZC9oYXZlZ2VkLWluaXQuZC1NYWtlZmlsZS5hbS1hZGQtbWlzc2luZy1kZXBlbmRlbmN5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2ZmQ1N2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oYXZlZ2VkL2hhdmVnZWQvaGF2ZWdlZC1pbml0LmQtTWFrZWZpbGUuYW0tYWRkLW1pc3NpbmctZGVwZW5kZW5jeS5wYXRjaApAQCAtMCwwICsxLDMyIEBACitGcm9tIGIwNGVlZWE3NzdkZjMyMzY0ZGY3NGJkNjNmYzViN2ZiMDVkMjFjOGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgorRGF0ZTogVHVlLCAyNyBNYXIgMjAxOCAxMDoyMTowOSArMDgwMAorU3ViamVjdDogW1BBVENIXSBpbml0LmQvTWFrZWZpbGUuYW06IGFkZCBtaXNzaW5nIGRlcGVuZGVuY3kKKworaW5zdGFsbC1kYXRhLWhvb2sgc2hvdWxkIGVwZW5kIG9uIGluc3RhbGwtZXhlYy1ob29rLCBvciB0aGUKK2hhdmVnZWQuc2VydmljZSBtaWdodCBiZSBpbnN0YWxsZWQgaW5jb3JyZWN0bHkgd2hlbiBidWlsZAord2l0aCAtaiBvcHRpb24uCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbbm8gdXBzdHJlYW0gbWFpbGluZyBsaXN0XQorCitTaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgorLS0tCisgaW5pdC5kL01ha2VmaWxlLmFtIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvaW5pdC5kL01ha2VmaWxlLmFtIGIvaW5pdC5kL01ha2VmaWxlLmFtCitpbmRleCA1OTQwZjc4Li4wN2JjZGY3IDEwMDY0NAorLS0tIGEvaW5pdC5kL01ha2VmaWxlLmFtCisrKysgYi9pbml0LmQvTWFrZWZpbGUuYW0KK0BAIC0zMyw3ICszMyw3IEBAIGlmIEVOQUJMRV9TWVNURU1ECisgaW5zdGFsbC1leGVjLWhvb2s6CisgCSQoZG9fc3Vic3QpIDwgJChzcmNkaXIpLyQoc3JjX3RtcGwpID4gaGF2ZWdlZC5zZXJ2aWNlOworIAorLWluc3RhbGwtZGF0YS1ob29rOgorK2luc3RhbGwtZGF0YS1ob29rOiBpbnN0YWxsLWV4ZWMtaG9vaworIGlmIEVOQUJMRV9TWVNURU1EX0xPT0tVUAorIAlpbnN0YWxsIC1wIC1EIC1tNjQ0IGhhdmVnZWQuc2VydmljZSAkKERFU1RESVIpYHBrZy1jb25maWcgLS12YXJpYWJsZT1zeXN0ZW1kc3lzdGVtdW5pdGRpciBzeXN0ZW1kYC9oYXZlZ2VkLnNlcnZpY2U7CisgZWxzZQorLS0gCisyLjExLjAKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGF2ZWdlZC9oYXZlZ2VkL3JlbW92ZS1zeXN0ZW1kLXVuaXQtNTAzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGF2ZWdlZC9oYXZlZ2VkL3JlbW92ZS1zeXN0ZW1kLXVuaXQtNTAzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjI3YmNiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hhdmVnZWQvaGF2ZWdlZC9yZW1vdmUtc3lzdGVtZC11bml0LTUwMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLSBhL2luaXQuZC9NYWtlZmlsZS5hbQkyMDE0LTAxLTAyIDE4OjU1OjUzLjAwMDAwMDAwMCArMDEwMAotKysrIGIvaW5pdC5kL01ha2VmaWxlLmFtCTIwMTQtMDgtMTEgMTA6NTk6NDAuMDAwMDAwMDAwICswMjAwCi1AQCAtMzQsMTEgKzM0LDExIEBACi0gCSQoZG9fc3Vic3QpIDwgJChzcmNkaXIpLyQoc3JjX3RtcGwpID4gaGF2ZWdlZC5zZXJ2aWNlOwotIAotIGluc3RhbGwtZGF0YS1ob29rOgotLWlmIEVOQUJMRV9TWVNURU1EX0xPT0tVUAotLQlpbnN0YWxsIC1wIC1tNjQ0IGhhdmVnZWQuc2VydmljZSBgcGtnLWNvbmZpZyAtLXZhcmlhYmxlPXN5c3RlbWRzeXN0ZW11bml0ZGlyIHN5c3RlbWRgL2hhdmVnZWQuc2VydmljZTsKLS1lbHNlCi0tCWluc3RhbGwgLXAgLW02NDQgaGF2ZWdlZC5zZXJ2aWNlICgkdW5pdF9kaXIpL2hhdmVnZWQuc2VydmljZTsKLS1lbmRpZgotLQlzeXN0ZW1jdGwgZW5hYmxlIGhhdmVnZWQuc2VydmljZTsKLSsjaWYgRU5BQkxFX1NZU1RFTURfTE9PS1VQCi0rIwlpbnN0YWxsIC1wIC1tNjQ0IGhhdmVnZWQuc2VydmljZSBgcGtnLWNvbmZpZyAtLXZhcmlhYmxlPXN5c3RlbWRzeXN0ZW11bml0ZGlyIHN5c3RlbWRgL2hhdmVnZWQuc2VydmljZTsKLSsjZWxzZQotKyMJaW5zdGFsbCAtcCAtbTY0NCBoYXZlZ2VkLnNlcnZpY2UgKCR1bml0X2RpcikvaGF2ZWdlZC5zZXJ2aWNlOwotKyNlbmRpZgotKyMJc3lzdGVtY3RsIGVuYWJsZSBoYXZlZ2VkLnNlcnZpY2U7Ci0gCi0gZW5kaWYKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hhdmVnZWQvaGF2ZWdlZF8xLjkuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hhdmVnZWQvaGF2ZWdlZF8xLjkuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI0NGM0MS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oYXZlZ2VkL2hhdmVnZWRfMS45LjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1TVU1NQVJZID0gImhhdmVnZWQgLSBBIHNpbXBsZSBlbnRyb3B5IGRhZW1vbiIKLURFU0NSSVBUSU9OID0gIlRoZSBoYXZlZ2VkIHByb2plY3QgaXMgYW4gYXR0ZW1wdCB0byBwcm92aWRlIGFuIGVhc3ktdG8tdXNlLCB1bnByZWRpY3RhYmxlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIGJhc2VkIHVwb24gYW4gYWRhcHRhdGlvbiBvZiB0aGUgSEFWRUdFIGFsZ29yaXRobS4gSGF2ZWdlZCB3YXMgY3JlYXRlZCB0byByZW1lZHkgbG93LWVudHJvcHkgY29uZGl0aW9ucyBpbiB0aGUgTGludXggcmFuZG9tIGRldmljZSB0aGF0IGNhbiBvY2N1ciB1bmRlciBzb21lIHdvcmtsb2FkcywgZXNwZWNpYWxseSBvbiBoZWFkbGVzcyBzZXJ2ZXJzLiIKLUFVVEhPUiA9ICJHYXJ5IFd1ZXJ0eiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuaXNzaWhvc3RzLmNvbS9oYXZlZ2VkL2luZGV4Lmh0bWwiCi1MSUNFTlNFID0gIkdQTHYzIgotTElDX0ZJTEVTX0NIS1NVTT0iZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgotCi1TUkNfVVJJID0gImh0dHA6Ly93d3cuaXNzaWhvc3RzLmNvbS9oYXZlZ2VkL2hhdmVnZWQtJHtQVn0udGFyLmd6IFwKLSAgICBmaWxlOi8vcmVtb3ZlLXN5c3RlbWQtdW5pdC01MDMucGF0Y2ggXAotIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMDE1ZmY1OGNkMTA2MDdkYjBlMGRlNjBhZWNhMmY1ZjgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOWMyMzYzZWQ5NTQyYTY3ODRmZjA4ZTI0NzE4MjEzN2U3MWYyZGRiNzllOGU2YzFhYzRhZDUwZDIxY2VkMzcxNSIKLQotaW5oZXJpdCBhdXRvdG9vbHMgc3lzdGVtZAotCi1FWFRSQV9PRUNPTkYgPSAiXAotICAgIC0tZW5hYmxlLWluaXQ9c2VydmljZS5yZWRoYXQgXAotICAgIC0tZW5hYmxlLW5pc3Rlc3Q9eWVzIFwKLSAgICAtLWVuYWJsZS1vbHQ9eWVzIFwKLSAgICAtLWVuYWJsZS10aHJlYWRzPW5vIFwKLSIKLQotU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfSIKLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJoYXZlZ2VkLnNlcnZpY2UiCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIG1rZGlyIC1wICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgaW5zdGFsbCAtcCAtbTY0NCAke0J9L2luaXQuZC9oYXZlZ2VkLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLX0KLQotTUlQU19JTlNUUlVDVElPTl9TRVQgPSAibWlwcyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hhdmVnZWQvaGF2ZWdlZF8xLjkuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hhdmVnZWQvaGF2ZWdlZF8xLjkuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWVlODQyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGF2ZWdlZC9oYXZlZ2VkXzEuOS4yLmJiCkBAIC0wLDAgKzEsNDAgQEAKK1NVTU1BUlkgPSAiaGF2ZWdlZCAtIEEgc2ltcGxlIGVudHJvcHkgZGFlbW9uIgorREVTQ1JJUFRJT04gPSAiVGhlIGhhdmVnZWQgcHJvamVjdCBpcyBhbiBhdHRlbXB0IHRvIHByb3ZpZGUgYW4gZWFzeS10by11c2UsIHVucHJlZGljdGFibGUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgYmFzZWQgdXBvbiBhbiBhZGFwdGF0aW9uIG9mIHRoZSBIQVZFR0UgYWxnb3JpdGhtLiBIYXZlZ2VkIHdhcyBjcmVhdGVkIHRvIHJlbWVkeSBsb3ctZW50cm9weSBjb25kaXRpb25zIGluIHRoZSBMaW51eCByYW5kb20gZGV2aWNlIHRoYXQgY2FuIG9jY3VyIHVuZGVyIHNvbWUgd29ya2xvYWRzLCBlc3BlY2lhbGx5IG9uIGhlYWRsZXNzIHNlcnZlcnMuIgorQVVUSE9SID0gIkdhcnkgV3VlcnR6IgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5pc3NpaG9zdHMuY29tL2hhdmVnZWQvaW5kZXguaHRtbCIKK0xJQ0VOU0UgPSAiR1BMdjMiCitMSUNfRklMRVNfQ0hLU1VNPSJmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQiCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5pc3NpaG9zdHMuY29tL2hhdmVnZWQvaGF2ZWdlZC0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vaGF2ZWdlZC1pbml0LmQtTWFrZWZpbGUuYW0tYWRkLW1pc3NpbmctZGVwZW5kZW5jeS5wYXRjaCBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJmYjFkOGIzZGNiYjlkMDZiMzBlY2NkOGFhNTAwZmQzMSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJmNzdkOWFkYmRmNDIxYjYxNjAxZmEyOWZhYTljZTNiNDc5ZDkxMGY3M2M2NmI5ZTM2NGJhODY0MmNjYmZiZTcwIgorCitpbmhlcml0IGF1dG90b29scyB1cGRhdGUtcmMuZCBzeXN0ZW1kCisKK0VYVFJBX09FQ09ORiA9ICJcCisgICAgLS1lbmFibGUtbmlzdGVzdD15ZXMgXAorICAgIC0tZW5hYmxlLW9sdD15ZXMgXAorICAgIC0tZW5hYmxlLXRocmVhZHM9bm8gXAorIgorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsIGQpfSIKK1BBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiLS1lbmFibGUtaW5pdD1zZXJ2aWNlLnJlZGhhdCAtLWVuYWJsZS1pbml0ZGlyPSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0sIC0tZW5hYmxlLWluaXQ9c3lzdi5yZWRoYXQsIHN5c3RlbWQiCisKK0lOSVRTQ1JJUFRfUEFDS0FHRVMgPSAiJHtQTn0iCitJTklUU0NSSVBUX05BTUUgPSAiaGF2ZWdlZCIKK0lOSVRTQ1JJUFRfUEFSQU1TXyR7UE59ID0gImRlZmF1bHRzIDkiCisKK1NZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0iCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiaGF2ZWdlZC5zZXJ2aWNlIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICAjIFRoZSBleGl0IHN0YXR1cyBpcyAxNDMgd2hlbiB0aGUgc2VydmljZSBpcyBzdG9wcGVkCisgICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KKyAgICAgICAgc2VkIC1pICcvRXhlY1N0YXJ0L2EgU3VjY2Vzc0V4aXRTdGF0dXM9MTQzJyAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS9oYXZlZ2VkLnNlcnZpY2UKKyAgICBmaQorfQorCitNSVBTX0lOU1RSVUNUSU9OX1NFVCA9ICJtaXBzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGV4ZWRpdC9oZXhlZGl0LzAwMDEtZG9uLXQtc3RyaXAtd2hlbi1pbnN0YWxsaW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGV4ZWRpdC9oZXhlZGl0LzAwMDEtZG9uLXQtc3RyaXAtd2hlbi1pbnN0YWxsaW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMzg0YjA1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hleGVkaXQvaGV4ZWRpdC8wMDAxLWRvbi10LXN0cmlwLXdoZW4taW5zdGFsbGluZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLUZyb20gY2M2NzI0NmNhNjgzOWU1YjNmNmEyODZmMTBlZDI0YzIyNWI3N2E1ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9FcmljPTIwQj1DMz1BOW5hcmQ/PSA8ZXJpY0BldWtyZWEuY29tPgotRGF0ZTogVGh1LCA0IEp1bCAyMDEzIDEyOjM0OjMyICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGRvbid0IHN0cmlwIHdoZW4gaW5zdGFsbGluZwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1TaWduZWQtb2ZmLWJ5OiBFcmljIELDqW5hcmQgPGVyaWNAZXVrcmVhLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQotLS0tCi0gTWFrZWZpbGUuaW4gfCAgICAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZS5pbiBiL01ha2VmaWxlLmluCi1pbmRleCAxNTk0NjNlLi43MzVjYzcyIDEwMDY0NAotLS0tIGEvTWFrZWZpbGUuaW4KLSsrKyBiL01ha2VmaWxlLmluCi1AQCAtNDIsNiArNDIsNiBAQCBkaXN0Y2xlYW46IGNsZWFuCi0gCi0gaW5zdGFsbDogJChQUk9EVUNUKQotIAkkKElOU1RBTEwpIC1kIC1tIDc1NSAkKERFU1RESVIpJChiaW5kaXIpCi0tCSQoSU5TVEFMTCkgLXMgLW0gNzU1ICQoUFJPRFVDVCkgJChERVNURElSKSQoYmluZGlyKQotKwkkKElOU1RBTEwpIC1tIDc1NSAkKFBST0RVQ1QpICQoREVTVERJUikkKGJpbmRpcikKLSAJJChJTlNUQUxMKSAtZCAtbSA3NTUgJChERVNURElSKSQobWFuZGlyKS9tYW4xCi0gCSQoSU5TVEFMTCkgLW0gNjQ0ICQoUFJPRFVDVCkuMSAkKERFU1RESVIpJChtYW5kaXIpL21hbjEKLS0tIAotMS43LjEwLjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGV4ZWRpdC9oZXhlZGl0XzEuMi4xMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hleGVkaXQvaGV4ZWRpdF8xLjIuMTMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5ZGY1YjIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGV4ZWRpdC9oZXhlZGl0XzEuMi4xMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVNVTU1BUlkgPSAidmlldyBhbmQgZWRpdCBmaWxlcyBpbiBoZXhhZGVjaW1hbCBvciBpbiBBU0NJSSIKLUhPTUVQQUdFID0gImh0dHA6Ly9yaWdhdXgub3JnL2hleGVkaXQuaHRtbCIKLVNFQ1RJT04gPSAiY29uc29sZS91dGlscyIKLUxJQ0VOU0UgPSAiR1BMdjIrIgotREVQRU5EUyA9ICJuY3Vyc2VzIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wNjM2ZTczZmYwMjE1ZThkNjcyZGM0YzMyYzMxN2JiMyIKLQotU1JDX1VSSSA9ICJodHRwOi8vcmlnYXV4Lm9yZy8ke0JQfS5zcmMudGd6IFwKLSAgICBmaWxlOi8vMDAwMS1kb24tdC1zdHJpcC13aGVuLWluc3RhbGxpbmcucGF0Y2ggIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiYTVhZjEzNzhkMDI4NTEyYTljYWQyN2E1YmEzZTE1ZjkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNmExMjZkYTMwYTc3ZjVjMGIwODAzOGFhN2E4ODFkOTEwZTNiNjVkMTM3NjdmYjU0YzU4Yzk4Mzk2M2I4OGRkNyIKLQotaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwCi0KLVMgPSAiJHtXT1JLRElSfS8ke0JQTn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oZXhlZGl0L2hleGVkaXRfMS40LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oZXhlZGl0L2hleGVkaXRfMS40LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDUwYjdkYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hleGVkaXQvaGV4ZWRpdF8xLjQuMi5iYgpAQCAtMCwwICsxLDE2IEBACitTVU1NQVJZID0gInZpZXcgYW5kIGVkaXQgZmlsZXMgaW4gaGV4YWRlY2ltYWwgb3IgaW4gQVNDSUkiCitIT01FUEFHRSA9ICJodHRwOi8vcmlnYXV4Lm9yZy9oZXhlZGl0Lmh0bWwiCitTRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCitMSUNFTlNFID0gIkdQTHYyKyIKK0RFUEVORFMgPSAibmN1cnNlcyIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MDYzNmU3M2ZmMDIxNWU4ZDY3MmRjNGMzMmMzMTdiYjMiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9waXhlbC9oZXhlZGl0LmdpdCBcCisgICAgIgorCitTUkNSRVYgPSAiODAwZTRiMmU2MjgwNTMxYTg0ZmQyM2VlMGI0OGUxNmJhZWI5MDg3OCIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9rb25rcmV0Y21waS9rb25rcmV0Y21waV8wLjkuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2tvbmtyZXRjbXBpL2tvbmtyZXRjbXBpXzAuOS4yLmJiCmluZGV4IGNiZjA0NzMuLjBmNzk4ZDIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2tvbmtyZXRjbXBpL2tvbmtyZXRjbXBpXzAuOS4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2tvbmtyZXRjbXBpL2tvbmtyZXRjbXBpXzAuOS4yLmJiCkBAIC0yMCw4ICsyMCw4IEBACiBpbmhlcml0IGNtYWtlCiAKIEVYVFJBX09FQ01BS0UgPSAiLURXSVRIX1BZVEhPTj1PTiBcCi0gICAgICAgICAgICAgICAgICR7QGJhc2VfY29uZGl0aW9uYWwoImxpYmRpciIsICIvdXNyL2xpYjY0IiwgIi1ETElCX1NVRkZJWD02NCIsICIiLCBkKX0gXAotICAgICAgICAgICAgICAgICAke0BiYXNlX2NvbmRpdGlvbmFsKCJsaWJkaXIiLCAiL3Vzci9saWIzMiIsICItRExJQl9TVUZGSVg9MzIiLCAiIiwgZCl9IFwKKyAgICAgICAgICAgICAgICAgJHtAb2UudXRpbHMuY29uZGl0aW9uYWwoImxpYmRpciIsICIvdXNyL2xpYjY0IiwgIi1ETElCX1NVRkZJWD02NCIsICIiLCBkKX0gXAorICAgICAgICAgICAgICAgICAke0BvZS51dGlscy5jb25kaXRpb25hbCgibGliZGlyIiwgIi91c3IvbGliMzIiLCAiLURMSUJfU1VGRklYPTMyIiwgIiIsIGQpfSBcCiAgICAgICAgICAgICAgICAgIgogCiBMREZMQUdTX2FwcGVuZCA9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ2xkLWlzLWdvbGQnLCAnIC1mdXNlLWxkPWJmZCAnLCAnJywgZCl9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvZmlsZXMvMDAwMS1maXgtY29uZmlndXJlLWFuZC1jb21waWxlLWZhaWx1cmVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvZmlsZXMvMDAwMS1maXgtY29uZmlndXJlLWFuZC1jb21waWxlLWZhaWx1cmVzLnBhdGNoCmluZGV4IDkxNGVlOTkuLjc0NTg4M2UgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2ZpbGVzLzAwMDEtZml4LWNvbmZpZ3VyZS1hbmQtY29tcGlsZS1mYWlsdXJlcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9maWxlcy8wMDAxLWZpeC1jb25maWd1cmUtYW5kLWNvbXBpbGUtZmFpbHVyZXMucGF0Y2gKQEAgLTMzLDcgKzMzLDcgQEAKICAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCAwMjcwYzk5Li5iN2M3MzY4IDEwMDY0NAoraW5kZXggZDQxYTMwNy4uYjAzNmUwNCAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCiBAQCAtOSw2ICs5LDggQEAgQUNfRElTQUJMRV9TVEFUSUMKQEAgLTQ1LDcgKzQ1LDcgQEAKICBBTV9QQVRIX1BZVEhPTgogIAogIEFNX1BST0dfQVIKLUBAIC0xMjksNyArMTMxLDYgQEAgTElCQkxPQ0tERVZfUEtHX0NIRUNLX01PRFVMRVMoW1VERVZdLCBbbGlidWRldiA+PSAyMTZdKQorQEAgLTE1NCw3ICsxNTYsNiBAQCBMSUJCTE9DS0RFVl9QS0dfQ0hFQ0tfTU9EVUxFUyhbS01PRF0sIFtsaWJrbW9kID49IDE5XSkKICBBU19JRihbdGVzdCAieCR3aXRoX2NyeXB0byIgIT0gInhubyJdLAogICAgICAgIFtMSUJCTE9DS0RFVl9QS0dfQ0hFQ0tfTU9EVUxFUyhbQ1JZUFRTRVRVUF0sIFtsaWJjcnlwdHNldHVwID49IDEuNi43XSkKICAgICAgICAgTElCQkxPQ0tERVZfUEtHX0NIRUNLX01PRFVMRVMoW05TU10sIFtuc3MgPj0gMy4xOC4wXSkKQEAgLTUzLDcgKzUzLDcgQEAKICAgICAgICBdLAogICAgICAgIFtdKQogIAotQEAgLTEzNywxMCArMTM4LDYgQEAgQVNfSUYoW3Rlc3QgIngkd2l0aF9kbSIgIT0gInhubyIgLW8gIngkd2l0aF9sdm0iICE9ICJ4bm8iIC1vICJ4JHdpdGhfbHZtX2RidXMiICEKK0BAIC0xNjIsMTAgKzE2Myw2IEBAIEFTX0lGKFt0ZXN0ICJ4JHdpdGhfZG0iICE9ICJ4bm8iIC1vICJ4JHdpdGhfbHZtIiAhPSAieG5vIiAtbyAieCR3aXRoX2x2bV9kYnVzIiAhCiAgICAgICAgW0xJQkJMT0NLREVWX1BLR19DSEVDS19NT0RVTEVTKFtERVZNQVBQRVJdLCBbZGV2bWFwcGVyID49IDEuMDIuOTNdKV0sCiAgICAgICAgW10pCiAgCkBAIC02MSwxMCArNjEsMTAgQEAKIC0gICAgICBbTElCQkxPQ0tERVZfQ0hFQ0tfSEVBREVSKFtkbXJhaWQvZG1yYWlkLmhdLCBbXSwgW2RtcmFpZC5oIG5vdCBhdmFpbGFibGVdKV0sCiAtICAgICAgW10pCiAtCi0gQVNfSUYoW3Rlc3QgIngkd2l0aF9rYmQiICE9ICJ4bm8iXSwKLSAgICAgICBbTElCQkxPQ0tERVZfUEtHX0NIRUNLX01PRFVMRVMoW0tNT0RdLCBbbGlia21vZCA+PSAxOV0pXSwKKyBBU19JRihbdGVzdCAieCR3aXRoX3BhcnQiICE9ICJ4bm8iIC1vICJ4JHdpdGhfZnMiICE9ICJ4bm8iXSwKKyAgICAgICBbTElCQkxPQ0tERVZfUEtHX0NIRUNLX01PRFVMRVMoW1BBUlRFRF0sIFtsaWJwYXJ0ZWQgPj0gMy4xXSldCiAgICAgICAgW10pCi1AQCAtMTU0LDcgKzE1MSw4IEBAIEFTX0lGKFt0ZXN0ICJ4JHdpdGhfZnMiICE9ICJ4bm8iXSwKK0BAIC0xNzQsNyArMTcxLDggQEAgQVNfSUYoW3Rlc3QgIngkd2l0aF9mcyIgIT0gInhubyJdLAogICAgICAgIFtMSUJCTE9DS0RFVl9QS0dfQ0hFQ0tfTU9EVUxFUyhbTU9VTlRdLCBbbW91bnQgPj0gMi4yMy4wXSkKICAgICAgICAgIyBuZXcgdmVyc2lvbnMgb2YgbGlibW91bnQgaGFzIHNvbWUgbmV3IGZ1bmN0aW9ucyB3ZSBjYW4gdXNlCiAgICAgICAgIEFTX0lGKFskUEtHX0NPTkZJRyAtLWF0bGVhc3QtdmVyc2lvbj0yLjMwLjAgbW91bnRdLApAQCAtNzUsNSArNzUsNSBAQAogICAgICAgICBMSUJCTE9DS0RFVl9QS0dfQ0hFQ0tfTU9EVUxFUyhbQkxLSURdLCBbYmxraWQgPj0gMi4yMy4wXSkKICAgICAgICAgIyBvbGRlciB2ZXJzaW9ucyBvZiBsaWJibGtpZCBkb24ndCBzdXBwb3J0IEJMS0lEX1NVQkxLU19CQURDU1VNIHNvIGxldCdzIGp1c3QKIC0tIAotMS44LjMuMQorMi4xNC4zCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2ZpbGVzLzAwMDMtcmVtb3ZlLWRtcmFpZC13aGlsZS1jb21waWxpbmctd2l0aC13aXRoLWRtLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvZmlsZXMvMDAwMy1yZW1vdmUtZG1yYWlkLXdoaWxlLWNvbXBpbGluZy13aXRoLXdpdGgtZG0ucGF0Y2gKaW5kZXggM2Q5Y2I2ZC4uYWM1YjVlMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvZmlsZXMvMDAwMy1yZW1vdmUtZG1yYWlkLXdoaWxlLWNvbXBpbGluZy13aXRoLXdpdGgtZG0ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvZmlsZXMvMDAwMy1yZW1vdmUtZG1yYWlkLXdoaWxlLWNvbXBpbGluZy13aXRoLXdpdGgtZG0ucGF0Y2gKQEAgLTIyLDIxICsyMiwyMiBAQAogCiBTaWduZWQtb2ZmLWJ5OiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+CiAtLS0KLSBzcmMvbGliL3BsdWdpbl9hcGlzL2RtLmFwaSAgICAgICAgICB8ICA0MSAtLS0tLQorIHNyYy9saWIvcGx1Z2luX2FwaXMvZG0uYXBpICAgICAgICAgIHwgIDUwIC0tLS0tLQogIHNyYy9wbHVnaW5zL01ha2VmaWxlLmFtICAgICAgICAgICAgIHwgICAyICstCi0gc3JjL3BsdWdpbnMvZG0uYyAgICAgICAgICAgICAgICAgICAgfCAzMTggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgc3JjL3BsdWdpbnMvZG0uYyAgICAgICAgICAgICAgICAgICAgfCAzMzAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgc3JjL3BsdWdpbnMvZG0uaCAgICAgICAgICAgICAgICAgICAgfCAgIDUgLQogIHNyYy9weXRob24vZ2kvb3ZlcnJpZGVzL0Jsb2NrRGV2LnB5IHwgICA2IC0KLSA1IGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAzNzEgZGVsZXRpb25zKC0pCisgNSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMzkyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvc3JjL2xpYi9wbHVnaW5fYXBpcy9kbS5hcGkgYi9zcmMvbGliL3BsdWdpbl9hcGlzL2RtLmFwaQotaW5kZXggYTg4NWJiYS4uZWM4NmI4MCAxMDA2NDQKK2luZGV4IDA0ZmQ4ZDguLjVkMzBiNmEgMTAwNjQ0CiAtLS0gYS9zcmMvbGliL3BsdWdpbl9hcGlzL2RtLmFwaQogKysrIGIvc3JjL2xpYi9wbHVnaW5fYXBpcy9kbS5hcGkKLUBAIC02OCw0NCArNjgsMyBAQCBnY2hhciogYmRfZG1fbm9kZV9mcm9tX25hbWUgKGNvbnN0IGdjaGFyICptYXBfbmFtZSwgR0Vycm9yICoqZXJyb3IpOworQEAgLTExMSw1MyArMTExLDMgQEAgZ2NoYXIqIGJkX2RtX2dldF9zdWJzeXN0ZW1fZnJvbV9uYW1lIChjb25zdCBnY2hhciAqZGV2aWNlX25hbWUsIEdFcnJvciAqKmVycm9yKTsKKyAgKiBUZWNoIGNhdGVnb3J5OiAlQkRfRE1fVEVDSF9NQVAtJUJEX0RNX1RFQ0hfTU9ERV9RVUVSWQogICAqLwogIGdib29sZWFuIGJkX2RtX21hcF9leGlzdHMgKGNvbnN0IGdjaGFyICptYXBfbmFtZSwgZ2Jvb2xlYW4gbGl2ZV9vbmx5LCBnYm9vbGVhbiBhY3RpdmVfb25seSwgR0Vycm9yICoqZXJyb3IpOwotIAorLQogLS8qKgogLSAqIGJkX2RtX2dldF9tZW1iZXJfcmFpZF9zZXRzOgogLSAqIEBuYW1lOiAoYWxsb3ctbm9uZSk6IG5hbWUgb2YgdGhlIG1lbWJlcgpAQCAtNDksNiArNTAsOCBAQAogLSAqIHRoZSBtZW1iZXIgb3IgJU5VTEwgaW4gY2FzZSBvZiBlcnJvcgogLSAqCiAtICogT25lIG9mIEBuYW1lLCBAdXVpZCBvciBAbWFqb3I6QG1pbm9yIGhhcyB0byBiZSBnaXZlbi4KKy0gKgorLSAqIFRlY2ggY2F0ZWdvcnk6ICVCRF9ETV9URUNIX1JBSUQtJUJEX0RNX1RFQ0hfTU9ERV9RVUVSWQogLSAqLwogLWdjaGFyKiogYmRfZG1fZ2V0X21lbWJlcl9yYWlkX3NldHMgKGNvbnN0IGdjaGFyICpuYW1lLCBjb25zdCBnY2hhciAqdXVpZCwgZ2ludCBtYWpvciwgZ2ludCBtaW5vciwgR0Vycm9yICoqZXJyb3IpOwogLQpAQCAtNTgsNiArNjEsOCBAQAogLSAqIEBlcnJvcjogKG91dCk6IHZhcmlhYmxlIHRvIHN0b3JlIGVycm9yIChpZiBhbnkpCiAtICoKIC0gKiBSZXR1cm5zOiB3aGV0aGVyIHRoZSBSQUlEIHNldCBAbmFtZSB3YXMgc3VjY2Vzc2Z1bGx5IGFjdGl2YXRlIG9yIG5vdAorLSAqCistICogVGVjaCBjYXRlZ29yeTogJUJEX0RNX1RFQ0hfUkFJRC0lQkRfRE1fVEVDSF9DUkVBVEVfQUNUSVZBVEUKIC0gKi8KIC1nYm9vbGVhbiBiZF9kbV9hY3RpdmF0ZV9yYWlkX3NldCAoY29uc3QgZ2NoYXIgKm5hbWUsIEdFcnJvciAqKmVycm9yKTsKIC0KQEAgLTY3LDYgKzcyLDggQEAKIC0gKiBAZXJyb3I6IChvdXQpOiB2YXJpYWJsZSB0byBzdG9yZSBlcnJvciAoaWYgYW55KQogLSAqCiAtICogUmV0dXJuczogd2hldGhlciB0aGUgUkFJRCBzZXQgQG5hbWUgd2FzIHN1Y2Nlc3NmdWxseSBkZWFjdGl2YXRlIG9yIG5vdAorLSAqCistICogVGVjaCBjYXRlZ29yeTogJUJEX0RNX1RFQ0hfUkFJRC0lQkRfRE1fVEVDSF9SRU1PVkVfREVBQ1RJVkFURQogLSAqLwogLWdib29sZWFuIGJkX2RtX2RlYWN0aXZhdGVfcmFpZF9zZXQgKGNvbnN0IGdjaGFyICpuYW1lLCBHRXJyb3IgKiplcnJvcik7CiAtCkBAIC03NiwxMyArODMsMTUgQEAKIC0gKiBAZXJyb3I6IChvdXQpOiB2YXJpYWJsZSB0byBzdG9yZSBlcnJvciAoaWYgYW55KQogLSAqCiAtICogUmV0dXJuczogc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBAbmFtZSBSQUlEIHNldCdzIHR5cGUKKy0gKgorLSAqIFRlY2ggY2F0ZWdvcnk6ICVCRF9ETV9URUNIX1JBSUQtJUJEX0RNX1RFQ0hfUVVFUlkKIC0gKi8KIC1nY2hhciogYmRfZG1fZ2V0X3JhaWRfc2V0X3R5cGUgKGNvbnN0IGdjaGFyICpuYW1lLCBHRXJyb3IgKiplcnJvcik7CiBkaWZmIC0tZ2l0IGEvc3JjL3BsdWdpbnMvTWFrZWZpbGUuYW0gYi9zcmMvcGx1Z2lucy9NYWtlZmlsZS5hbQotaW5kZXggNmM0MDM4Zi4uNTlkYzVlMyAxMDA2NDQKK2luZGV4IGI2OWM4ZjcuLjc1NzVmNGEgMTAwNjQ0CiAtLS0gYS9zcmMvcGx1Z2lucy9NYWtlZmlsZS5hbQogKysrIGIvc3JjL3BsdWdpbnMvTWFrZWZpbGUuYW0KLUBAIC03Niw3ICs3Niw3IEBAIGVuZGlmCitAQCAtNzUsNyArNzUsNyBAQCBlbmRpZgogIAogIGlmIFdJVEhfRE0KICBsaWJiZF9kbV9sYV9DRkxBR1MgPSAkKEdMSUJfQ0ZMQUdTKSAkKERFVk1BUFBFUl9DRkxBR1MpICQoVURFVl9DRkxBR1MpIC1XYWxsIC1XZXh0cmEgLVdlcnJvcgpAQCAtOTIsMTAgKzEwMSwxMCBAQAogICMgRGVhciBhdXRob3Igb2YgbGliZG1kcmFpZCwgVkVSU0lPTiByZWFsbHkgaXMgbm90IGEgZ29vZCBuYW1lIGZvciBhbiBlbnVtIG1lbWJlciEKICBsaWJiZF9kbV9sYV9DUFBGTEFHUyA9IC1JJHtidWlsZGRpcn0vLi4vLi4vaW5jbHVkZS8gLVVWRVJTSU9OCiBkaWZmIC0tZ2l0IGEvc3JjL3BsdWdpbnMvZG0uYyBiL3NyYy9wbHVnaW5zL2RtLmMKLWluZGV4IDljZWU3NDIuLmZkN2M3YmEgMTAwNjQ0CitpbmRleCAwZTU0NjZjLi4zMWViZTk2IDEwMDY0NAogLS0tIGEvc3JjL3BsdWdpbnMvZG0uYwogKysrIGIvc3JjL3BsdWdpbnMvZG0uYwotQEAgLTIxLDE2ICsyMSwxMCBAQAorQEAgLTIxLDE3ICsyMSwxMSBAQAogICNpbmNsdWRlIDx1bmlzdGQuaD4KICAjaW5jbHVkZSA8YmxvY2tkZXYvdXRpbHMuaD4KICAjaW5jbHVkZSA8bGliZGV2bWFwcGVyLmg+CkBAIC0xMDMsNiArMTEyLDcgQEAKICAjaW5jbHVkZSA8bGlidWRldi5oPgogIAogICNpbmNsdWRlICJkbS5oIgorICNpbmNsdWRlICJjaGVja19kZXBzLmgiCiAgCiAtLyogbWFjcm9zIHRha2VuIGZyb20gdGhlIHB5YmxvY2svZG1yYWlkLmggZmlsZSBwbHVzIG9uZSBtb3JlKi8KIC0jZGVmaW5lIGZvcl9lYWNoX3JhaWRzZXQoX2MsIF9uKSBsaXN0X2Zvcl9lYWNoX2VudHJ5KF9uLCBMQ19SUyhfYyksIGxpc3QpCkBAIC0xMTIsMTAgKzEyMiwxMSBAQAogIC8qKgogICAqIFNFQ1RJT046IGRtCiAgICogQHNob3J0X2Rlc2NyaXB0aW9uOiBwbHVnaW4gZm9yIGJhc2ljIG9wZXJhdGlvbnMgd2l0aCBkZXZpY2UgbWFwcGVyCi1AQCAtMjg2LDMxNSArMjgwLDMgQEAgZ2Jvb2xlYW4gYmRfZG1fbWFwX2V4aXN0cyAoY29uc3QgZ2NoYXIgKm1hcF9uYW1lLCBnYm9vbGVhbiBsaXZlX29ubHksIGdib29sZWFuIGEKK0BAIC0zODAsMzI3ICszNzQsMyBAQCBnYm9vbGVhbiBiZF9kbV9tYXBfZXhpc3RzIChjb25zdCBnY2hhciAqbWFwX25hbWUsIGdib29sZWFuIGxpdmVfb25seSwgZ2Jvb2xlYW4gYQorIAogICAgICByZXR1cm4gcmV0OwogIH0KLSAKKy0KIC0vKioKIC0gKiBpbml0X2RtcmFpZF9zdGFjazogKHNraXApCiAtICoKQEAgLTE5MSw2ICsyMDIsOSBAQAogLSAgICAvKiBpZiB3ZSBkb24ndCBoYXZlIHRoZSBuYW1lLCB3ZSBjYW5ub3QgY2hlY2sgYW55IG1hdGNoICovCiAtICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChkZXZfbmFtZSwgRkFMU0UpOwogLQorLSAgICAvKiBnX3JldHVybl92YWxfaWZfZmFpbCBhYm92ZSBjaGVja3MgdmFsdWUgb2YgZGV2X25hbWUgYW5kIHJldHVybnMgRkFMU0UgaWYKKy0gICAgICogaXQgaXMgTlVMTCBzbyB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrIGl0IGhlcmUgKi8KKy0gICAgLyogY292ZXJpdHlbdmFyX2RlcmVmX21vZGVsXSAqLwogLSAgICBpZiAobmFtZSAmJiBzdHJjbXAgKGRldl9uYW1lLCBuYW1lKSAhPSAwKSB7CiAtICAgICAgICByZXR1cm4gRkFMU0U7CiAtICAgIH0KQEAgLTIyMCw4ICsyMzQsOCBAQAogLSAqIGZpbmRfcmFpZF9zZXRzX2Zvcl9kZXY6IChza2lwKQogLSAqLwogLXN0YXRpYyB2b2lkIGZpbmRfcmFpZF9zZXRzX2Zvcl9kZXYgKGNvbnN0IGdjaGFyICpuYW1lLCBjb25zdCBnY2hhciAqdXVpZCwgZ2ludCBtYWpvciwgZ2ludCBtaW5vciwgc3RydWN0IGxpYl9jb250ZXh0ICpsYywgc3RydWN0IHJhaWRfc2V0ICpycywgR1B0ckFycmF5ICpyZXRfc2V0cykgewotLSAgICBzdHJ1Y3QgcmFpZF9zZXQgKnN1YnNldDsKLS0gICAgc3RydWN0IHJhaWRfZGV2ICpkZXY7CistICAgIHN0cnVjdCByYWlkX3NldCAqc3Vic2V0ID0gTlVMTDsKKy0gICAgc3RydWN0IHJhaWRfZGV2ICpkZXYgPSBOVUxMOwogLQogLSAgICBpZiAoVF9HUk9VUChycykgfHwgIWxpc3RfZW1wdHkoJihycy0+c2V0cykpKSB7CiAtICAgICAgICBmb3JfZWFjaF9zdWJzZXQgKHJzLCBzdWJzZXQpCkBAIC0yNDYsNiArMjYwLDggQEAKIC0gKiB0aGUgbWVtYmVyIG9yICVOVUxMIGluIGNhc2Ugb2YgZXJyb3IKIC0gKgogLSAqIE9uZSBvZiBAbmFtZSwgQHV1aWQgb3IgQG1ham9yOkBtaW5vciBoYXMgdG8gYmUgZ2l2ZW4uCistICoKKy0gKiBUZWNoIGNhdGVnb3J5OiAlQkRfRE1fVEVDSF9SQUlELSVCRF9ETV9URUNIX01PREVfUVVFUlkKIC0gKi8KIC1nY2hhcioqIGJkX2RtX2dldF9tZW1iZXJfcmFpZF9zZXRzIChjb25zdCBnY2hhciAqbmFtZSwgY29uc3QgZ2NoYXIgKnV1aWQsIGdpbnQgbWFqb3IsIGdpbnQgbWlub3IsIEdFcnJvciAqKmVycm9yKSB7CiAtICAgIGd1aW50NjQgaSA9IDA7CkBAIC0zMTIsOCArMzI4LDggQEAKIC0KIC1zdGF0aWMgZ2Jvb2xlYW4gY2hhbmdlX3NldF9ieV9uYW1lIChjb25zdCBnY2hhciAqbmFtZSwgZW51bSBhY3RpdmF0ZV90eXBlIGFjdGlvbiwgR0Vycm9yICoqZXJyb3IpIHsKIC0gICAgZ2ludCByYyA9IDA7Ci0tICAgIHN0cnVjdCBsaWJfY29udGV4dCAqbGM7Ci0tICAgIHN0cnVjdCByYWlkX3NldCAqaXRlcl9yczsKKy0gICAgc3RydWN0IGxpYl9jb250ZXh0ICpsYyA9IE5VTEw7CistICAgIHN0cnVjdCByYWlkX3NldCAqaXRlcl9ycyA9IE5VTEw7CiAtICAgIHN0cnVjdCByYWlkX3NldCAqbWF0Y2hfcnMgPSBOVUxMOwogLQogLSAgICBsYyA9IGluaXRfZG1yYWlkX3N0YWNrIChlcnJvcik7CkBAIC0zNTIsNiArMzY4LDggQEAKIC0gKiBAZXJyb3I6IChvdXQpOiB2YXJpYWJsZSB0byBzdG9yZSBlcnJvciAoaWYgYW55KQogLSAqCiAtICogUmV0dXJuczogd2hldGhlciB0aGUgUkFJRCBzZXQgQG5hbWUgd2FzIHN1Y2Nlc3NmdWxseSBhY3RpdmF0ZSBvciBub3QKKy0gKgorLSAqIFRlY2ggY2F0ZWdvcnk6ICVCRF9ETV9URUNIX1JBSUQtJUJEX0RNX1RFQ0hfQ1JFQVRFX0FDVElWQVRFCiAtICovCiAtZ2Jvb2xlYW4gYmRfZG1fYWN0aXZhdGVfcmFpZF9zZXQgKGNvbnN0IGdjaGFyICpuYW1lLCBHRXJyb3IgKiplcnJvcikgewogLSAgICBndWludDY0IHByb2dyZXNzX2lkID0gMDsKQEAgLTM3Miw2ICszOTAsOCBAQAogLSAqIEBlcnJvcjogKG91dCk6IHZhcmlhYmxlIHRvIHN0b3JlIGVycm9yIChpZiBhbnkpCiAtICoKIC0gKiBSZXR1cm5zOiB3aGV0aGVyIHRoZSBSQUlEIHNldCBAbmFtZSB3YXMgc3VjY2Vzc2Z1bGx5IGRlYWN0aXZhdGUgb3Igbm90CistICoKKy0gKiBUZWNoIGNhdGVnb3J5OiAlQkRfRE1fVEVDSF9SQUlELSVCRF9ETV9URUNIX1JFTU9WRV9ERUFDVElWQVRFCiAtICovCiAtZ2Jvb2xlYW4gYmRfZG1fZGVhY3RpdmF0ZV9yYWlkX3NldCAoY29uc3QgZ2NoYXIgKm5hbWUsIEdFcnJvciAqKmVycm9yKSB7CiAtICAgIGd1aW50NjQgcHJvZ3Jlc3NfaWQgPSAwOwpAQCAtMzkyLDEwICs0MTIsMTIgQEAKIC0gKiBAZXJyb3I6IChvdXQpOiB2YXJpYWJsZSB0byBzdG9yZSBlcnJvciAoaWYgYW55KQogLSAqCiAtICogUmV0dXJuczogc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBAbmFtZSBSQUlEIHNldCdzIHR5cGUKKy0gKgorLSAqIFRlY2ggY2F0ZWdvcnk6ICVCRF9ETV9URUNIX1JBSUQtJUJEX0RNX1RFQ0hfUVVFUlkKIC0gKi8KIC1nY2hhciogYmRfZG1fZ2V0X3JhaWRfc2V0X3R5cGUgKGNvbnN0IGdjaGFyICpuYW1lLCBHRXJyb3IgKiplcnJvcikgewotLSAgICBzdHJ1Y3QgbGliX2NvbnRleHQgKmxjOwotLSAgICBzdHJ1Y3QgcmFpZF9zZXQgKml0ZXJfcnM7CistICAgIHN0cnVjdCBsaWJfY29udGV4dCAqbGMgPSBOVUxMOworLSAgICBzdHJ1Y3QgcmFpZF9zZXQgKml0ZXJfcnMgPSBOVUxMOwogLSAgICBzdHJ1Y3QgcmFpZF9zZXQgKm1hdGNoX3JzID0gTlVMTDsKIC0gICAgY29uc3QgZ2NoYXIgKnR5cGUgPSBOVUxMOwogLQpAQCAtNDI5LDcgKzQ1MSw3IEBACiAtICAgIHJldHVybiBnX3N0cmR1cCAodHlwZSk7CiAtfQogZGlmZiAtLWdpdCBhL3NyYy9wbHVnaW5zL2RtLmggYi9zcmMvcGx1Z2lucy9kbS5oCi1pbmRleCA4NTlmYjgwLi44MGFjZDQ5IDEwMDY0NAoraW5kZXggMGRjZTZhYy4uMWVlMzc4OCAxMDA2NDQKIC0tLSBhL3NyYy9wbHVnaW5zL2RtLmgKICsrKyBiL3NyYy9wbHVnaW5zL2RtLmgKIEBAIC0xLDUgKzEsNCBAQApAQCAtNDM4LDEwICs0NjAsMTAgQEAKICAKICAjaWZuZGVmIEJEX0RNCiAgI2RlZmluZSBCRF9ETQotQEAgLTM1LDkgKzM0LDUgQEAgZ2Jvb2xlYW4gYmRfZG1fcmVtb3ZlIChjb25zdCBnY2hhciAqbWFwX25hbWUsIEdFcnJvciAqKmVycm9yKTsKK0BAIC00OCw5ICs0Nyw1IEBAIGdib29sZWFuIGJkX2RtX21hcF9leGlzdHMgKGNvbnN0IGdjaGFyICptYXBfbmFtZSwgZ2Jvb2xlYW4gbGl2ZV9vbmx5LCBnYm9vbGVhbiBhCiAgZ2NoYXIqIGJkX2RtX25hbWVfZnJvbV9ub2RlIChjb25zdCBnY2hhciAqZG1fbm9kZSwgR0Vycm9yICoqZXJyb3IpOwogIGdjaGFyKiBiZF9kbV9ub2RlX2Zyb21fbmFtZSAoY29uc3QgZ2NoYXIgKm1hcF9uYW1lLCBHRXJyb3IgKiplcnJvcik7Ci0gZ2Jvb2xlYW4gYmRfZG1fbWFwX2V4aXN0cyAoY29uc3QgZ2NoYXIgKm1hcF9uYW1lLCBnYm9vbGVhbiBsaXZlX29ubHksIGdib29sZWFuIGFjdGl2ZV9vbmx5LCBHRXJyb3IgKiplcnJvcik7CisgZ2NoYXIqIGJkX2RtX2dldF9zdWJzeXN0ZW1fZnJvbV9uYW1lIChjb25zdCBnY2hhciAqZGV2aWNlX25hbWUsIEdFcnJvciAqKmVycm9yKTsKIC1nY2hhcioqIGJkX2RtX2dldF9tZW1iZXJfcmFpZF9zZXRzIChjb25zdCBnY2hhciAqbmFtZSwgY29uc3QgZ2NoYXIgKnV1aWQsIGdpbnQgbWFqb3IsIGdpbnQgbWlub3IsIEdFcnJvciAqKmVycm9yKTsKIC1nYm9vbGVhbiBiZF9kbV9hY3RpdmF0ZV9yYWlkX3NldCAoY29uc3QgZ2NoYXIgKm5hbWUsIEdFcnJvciAqKmVycm9yKTsKIC1nYm9vbGVhbiBiZF9kbV9kZWFjdGl2YXRlX3JhaWRfc2V0IChjb25zdCBnY2hhciAqbmFtZSwgR0Vycm9yICoqZXJyb3IpOwpAQCAtNDY2LDUgKzQ4OCw1IEBACiAgX2xvb3Bfc2V0dXAgPSBCbG9ja0Rldi5sb29wX3NldHVwCiAgQG92ZXJyaWRlKEJsb2NrRGV2Lmxvb3Bfc2V0dXApCiAtLSAKLTEuOC4zLjEKKzIuMTQuMwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9maWxlcy8wMDA0LWZpeC1jb21waWxlLWZhaWx1cmUtYWdhaW5zdC1tdXNsLUMtbGlicmFyeS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2ZpbGVzLzAwMDQtZml4LWNvbXBpbGUtZmFpbHVyZS1hZ2FpbnN0LW11c2wtQy1saWJyYXJ5LnBhdGNoCmluZGV4IGYxOGI1NjkuLjBiNWI4MDkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2ZpbGVzLzAwMDQtZml4LWNvbXBpbGUtZmFpbHVyZS1hZ2FpbnN0LW11c2wtQy1saWJyYXJ5LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2ZpbGVzLzAwMDQtZml4LWNvbXBpbGUtZmFpbHVyZS1hZ2FpbnN0LW11c2wtQy1saWJyYXJ5LnBhdGNoCkBAIC0xMiw3ICsxMiw3IEBACiAgMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9zcmMvcGx1Z2lucy9jcnlwdG8uYyBiL3NyYy9wbHVnaW5zL2NyeXB0by5jCi1pbmRleCA4ZmJjZTRmLi42NmUxMWU1IDEwMDY0NAoraW5kZXggYjk2MTQ3MS4uMmQzZDI1MSAxMDA2NDQKIC0tLSBhL3NyYy9wbHVnaW5zL2NyeXB0by5jCiArKysgYi9zcmMvcGx1Z2lucy9jcnlwdG8uYwogQEAgLTIyLDcgKzIyLDcgQEAKQEAgLTI1LDcgKzI1LDcgQEAKICAjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CiAgI2luY2x1ZGUgPGxvY2FsZS5oPgogZGlmZiAtLWdpdCBhL3NyYy9wbHVnaW5zL3BhcnQuYyBiL3NyYy9wbHVnaW5zL3BhcnQuYwotaW5kZXggMTJkMmVmNy4uM2FmZTI5NyAxMDA2NDQKK2luZGV4IDZiMmE2OTAuLmFiNDkwZDkgMTAwNjQ0CiAtLS0gYS9zcmMvcGx1Z2lucy9wYXJ0LmMKICsrKyBiL3NyYy9wbHVnaW5zL3BhcnQuYwogQEAgLTI1LDYgKzI1LDcgQEAKQEAgLTMzLDEwICszMywxMCBAQAogICNpbmNsdWRlIDx1bmlzdGQuaD4KICAjaW5jbHVkZSA8c3lzL2ZpbGUuaD4KICsjaW5jbHVkZSA8ZmNudGwuaD4KKyAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisgI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAgI2luY2x1ZGUgPGJsb2NrZGV2L3V0aWxzLmg+Ci0gI2luY2x1ZGUgPHBhcnRfZXJyLmg+Ci0gCi1AQCAtMTIyNCw3ICsxMjI1LDcgQEAgc3RhdGljIGdib29sZWFuIHNldF9ncHRfZmxhZ3MgKGNvbnN0IGdjaGFyICpkZXZpY2UsIGludCBwYXJ0X251bSwgZ3VpbnQ2NCBmbGFncywKK0BAIC0xMzU0LDcgKzEzNTUsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gc2V0X2dwdF9mbGFncyAoY29uc3QgZ2NoYXIgKmRldmljZSwgaW50IHBhcnRfbnVtLCBndWludDY0IGZsYWdzLAogICAgICAgICAgcmVhbF9mbGFncyB8PSAweDQwMDAwMDAwMDAwMDAwMDA7IC8qIDEgPDwgNjIgKi8KICAgICAgaWYgKGZsYWdzICYgQkRfUEFSVF9GTEFHX0dQVF9OT19BVVRPTU9VTlQpCiAgICAgICAgICByZWFsX2ZsYWdzIHw9IDB4ODAwMDAwMDAwMDAwMDAwMDsgLyogMSA8PCA2MyAqLwpAQCAtNDYsNSArNDYsNSBAQAogICAgICBhcmdzWzJdID0gZ19zdHJkdXBfcHJpbnRmICgiJWQ6PTolcyIsIHBhcnRfbnVtLCBtYXNrX3N0cik7CiAgICAgIGdfZnJlZSAobWFza19zdHIpOwogLS0gCi0xLjguMy4xCisyLjE0LjMKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvZmlsZXMvMDAwNS1maXgtYS1jbGFuZy1jb21waWxpbmctaXNzdWUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9maWxlcy8wMDA1LWZpeC1hLWNsYW5nLWNvbXBpbGluZy1pc3N1ZS5wYXRjaAppbmRleCAzODE4OTM2Li5iMjE0ZjBiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9maWxlcy8wMDA1LWZpeC1hLWNsYW5nLWNvbXBpbGluZy1pc3N1ZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9maWxlcy8wMDA1LWZpeC1hLWNsYW5nLWNvbXBpbGluZy1pc3N1ZS5wYXRjaApAQCAtMTksMTcgKzE5LDE3IEBACiAKIFNpZ25lZC1vZmYtYnk6IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KIC0tLQotIHNyYy9wbHVnaW5zL2NyeXB0by5jIHwgNiArKystLS0KLSBzcmMvcGx1Z2lucy9mcy5jICAgICB8IDQgKystLQotIHNyYy9wbHVnaW5zL3BhcnQuYyAgIHwgNCArKy0tCi0gc3JjL3V0aWxzL2V4ZWMuYyAgICAgfCAyICstCisgc3JjL3BsdWdpbnMvY3J5cHRvLmMgIHwgNiArKystLS0KKyBzcmMvcGx1Z2lucy9mcy92ZmF0LmMgfCA0ICsrLS0KKyBzcmMvcGx1Z2lucy9wYXJ0LmMgICAgfCA0ICsrLS0KKyBzcmMvdXRpbHMvZXhlYy5jICAgICAgfCAyICstCiAgNCBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9zcmMvcGx1Z2lucy9jcnlwdG8uYyBiL3NyYy9wbHVnaW5zL2NyeXB0by5jCi1pbmRleCA4ZmJjZTRmLi43ZWU3Y2RjIDEwMDY0NAoraW5kZXggNTYzMDkzZS4uYjk2MTQ3MSAxMDA2NDQKIC0tLSBhL3NyYy9wbHVnaW5zL2NyeXB0by5jCiArKysgYi9zcmMvcGx1Z2lucy9jcnlwdG8uYwotQEAgLTg4MSw3ICs4ODEsNyBAQCBnYm9vbGVhbiBiZF9jcnlwdG9fdGNfb3BlbiAoY29uc3QgZ2NoYXIgKmRldmljZSwgY29uc3QgZ2NoYXIgKm5hbWUsIGNvbnN0IGd1aW50OAorQEAgLTk3MCw3ICs5NzAsNyBAQCBnYm9vbGVhbiBiZF9jcnlwdG9fdGNfb3BlbiAoY29uc3QgZ2NoYXIgKmRldmljZSwgY29uc3QgZ2NoYXIgKm5hbWUsIGNvbnN0IGd1aW50OAogICAgICBnaW50IHJldCA9IDA7CiAgICAgIGd1aW50NjQgcHJvZ3Jlc3NfaWQgPSAwOwogICAgICBnY2hhciAqbXNnID0gTlVMTDsKQEAgLTM4LDcgKzM4LDcgQEAKICAKICAgICAgbXNnID0gZ19zdHJkdXBfcHJpbnRmICgiU3RhcnRlZCBvcGVuaW5nICclcycgVHJ1ZUNyeXB0L1ZlcmFDcnlwdCBkZXZpY2UiLCBkZXZpY2UpOwogICAgICBwcm9ncmVzc19pZCA9IGJkX3V0aWxzX3JlcG9ydF9zdGFydGVkIChtc2cpOwotQEAgLTk5OSw3ICs5OTksNyBAQCBzdGF0aWMgZ2NoYXIgKnJlcGxhY2VfY2hhciAoZ2NoYXIgKnN0ciwgZ2NoYXIgb3JpZywgZ2NoYXIgbmV3KSB7CitAQCAtMTA5MCw3ICsxMDkwLDcgQEAgc3RhdGljIGdjaGFyICpyZXBsYWNlX2NoYXIgKGdjaGFyICpzdHIsIGdjaGFyIG9yaWcsIGdjaGFyIG5ldykgewogICAgICByZXR1cm4gc3RyOwogIH0KICAKQEAgLTQ3LDcgKzQ3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0VSVENlcnRpZmljYXRlICpjZXJ0LCBHRXJyb3IgKiplcnJvcikgewogICAgICBncG9pbnRlciBwYWNrZXRfZGF0YSA9IE5VTEw7CiAgICAgIGdzaXplIHBhY2tldF9kYXRhX3NpemUgPSAwOwotQEAgLTEwMDgsNyArMTAwOCw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3cml0ZV9lc2Nyb3dfZGF0YV9maWxlIChzdHJ1Y3QgbGlidmtfdm9sdW1lICp2b2x1bWUsIHN0cnVjdCBsaWJ2CitAQCAtMTA5OSw3ICsxMDk5LDcgQEAgc3RhdGljIGdib29sZWFuIHdyaXRlX2VzY3Jvd19kYXRhX2ZpbGUgKHN0cnVjdCBsaWJ2a192b2x1bWUgKnZvbHVtZSwgc3RydWN0IGxpYnYKICAgICAgZ3NpemUgYnl0ZXNfd3JpdHRlbiA9IDA7CiAgICAgIEdFcnJvciAqdG1wX2Vycm9yID0gTlVMTDsKICAKQEAgLTU2LDExICs1NiwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpLCBMSUJWS19QQUNLRVRfRk9STUFUX0FTWU1NRVRSSUNfV1JBUF9TRUNSRVRfT05MWSwgZXJyb3IpOwogIAogICAgICBpZiAoIXBhY2tldF9kYXRhKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL3BsdWdpbnMvZnMuYyBiL3NyYy9wbHVnaW5zL2ZzLmMKLWluZGV4IGM0YjZhYzguLjY0NzA5NmQgMTAwNjQ0Ci0tLS0gYS9zcmMvcGx1Z2lucy9mcy5jCi0rKysgYi9zcmMvcGx1Z2lucy9mcy5jCi1AQCAtMjYxNCw4ICsyNjE0LDggQEAgQkRGU1ZmYXRJbmZvKiBiZF9mc192ZmF0X2dldF9pbmZvIChjb25zdCBnY2hhciAqZGV2aWNlLCBHRXJyb3IgKiplcnJvcikgeworZGlmZiAtLWdpdCBhL3NyYy9wbHVnaW5zL2ZzL3ZmYXQuYyBiL3NyYy9wbHVnaW5zL2ZzL3ZmYXQuYworaW5kZXggM2VkN2Q0YS4uNWZmNzc5NSAxMDA2NDQKKy0tLSBhL3NyYy9wbHVnaW5zL2ZzL3ZmYXQuYworKysrIGIvc3JjL3BsdWdpbnMvZnMvdmZhdC5jCitAQCAtMzc2LDggKzM3Niw4IEBAIEJERlNWZmF0SW5mbyogYmRfZnNfdmZhdF9nZXRfaW5mbyAoY29uc3QgZ2NoYXIgKmRldmljZSwgR0Vycm9yICoqZXJyb3IpIHsKICAgKi8KICBnYm9vbGVhbiBiZF9mc192ZmF0X3Jlc2l6ZSAoY29uc3QgZ2NoYXIgKmRldmljZSwgZ3VpbnQ2NCBuZXdfc2l6ZSwgR0Vycm9yICoqZXJyb3IpIHsKICAgICAgUGVkRGV2aWNlICpwZWRfZGV2ID0gTlVMTDsKQEAgLTcyLDEwICs3MiwxMCBAQAogICAgICBQZWRTZWN0b3Igc3RhcnQgPSAwOwogICAgICBQZWRTZWN0b3IgbGVuZ3RoID0gMDsKIGRpZmYgLS1naXQgYS9zcmMvcGx1Z2lucy9wYXJ0LmMgYi9zcmMvcGx1Z2lucy9wYXJ0LmMKLWluZGV4IDEyZDJlZjcuLmQyNzc2ODggMTAwNjQ0CitpbmRleCBmZWQ4MzAwLi42YjJhNjkwIDEwMDY0NAogLS0tIGEvc3JjL3BsdWdpbnMvcGFydC5jCiArKysgYi9zcmMvcGx1Z2lucy9wYXJ0LmMKLUBAIC04NDksNyArODQ5LDcgQEAgc3RhdGljIFBlZFBhcnRpdGlvbiogYWRkX3BhcnRfdG9fZGlzayAoUGVkRGV2aWNlICpkZXYsIFBlZERpc2sgKmRpc2ssIEJEUGFydFR5cGUKK0BAIC05MjYsNyArOTI2LDcgQEAgc3RhdGljIFBlZFBhcnRpdGlvbiogYWRkX3BhcnRfdG9fZGlzayAoUGVkRGV2aWNlICpkZXYsIFBlZERpc2sgKmRpc2ssIEJEUGFydFR5cGUKICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICB9CiAgCkBAIC04NCw3ICs4NCw3IEBACiAgICAgIGlmICghcGFydCkgewogICAgICAgICAgc2V0X3BhcnRlZF9lcnJvciAoZXJyb3IsIEJEX1BBUlRfRVJST1JfRkFJTCk7CiAgICAgICAgICBnX3ByZWZpeF9lcnJvciAoZXJyb3IsICJGYWlsZWQgdG8gY3JlYXRlIG5ldyBwYXJ0aXRpb24gb24gZGV2aWNlICclcyciLCBkZXYtPnBhdGgpOwotQEAgLTE0MjcsNyArMTQyNyw3IEBAIGdib29sZWFuIGJkX3BhcnRfc2V0X3BhcnRfZmxhZ3MgKGNvbnN0IGdjaGFyICpkaXNrLCBjb25zdCBnY2hhciAqcGFydCwgZ3VpbnQ2NCBmCitAQCAtMTU2NCw3ICsxNTY0LDcgQEAgZ2Jvb2xlYW4gYmRfcGFydF9zZXRfcGFydF9mbGFncyAoY29uc3QgZ2NoYXIgKmRpc2ssIGNvbnN0IGdjaGFyICpwYXJ0LCBndWludDY0IGYKICAgICAgUGVkUGFydGl0aW9uICpwZWRfcGFydCA9IE5VTEw7CiAgICAgIGNvbnN0IGdjaGFyICpwYXJ0X251bV9zdHIgPSBOVUxMOwogICAgICBnaW50IHBhcnRfbnVtID0gMDsKQEAgLTk0LDcgKzk0LDcgQEAKICAgICAgZ2Jvb2xlYW4gcmV0ID0gRkFMU0U7CiAgICAgIGd1aW50NjQgcHJvZ3Jlc3NfaWQgPSAwOwogZGlmZiAtLWdpdCBhL3NyYy91dGlscy9leGVjLmMgYi9zcmMvdXRpbHMvZXhlYy5jCi1pbmRleCA3YWM0NGZkLi4wYTMwOTRjIDEwMDY0NAoraW5kZXggMTFjMTQ4OS4uZGNmODdlNSAxMDA2NDQKIC0tLSBhL3NyYy91dGlscy9leGVjLmMKICsrKyBiL3NyYy91dGlscy9leGVjLmMKIEBAIC0zNTQsNyArMzU0LDcgQEAgZ2Jvb2xlYW4gYmRfdXRpbHNfZXhlY19hbmRfcmVwb3J0X3Byb2dyZXNzIChjb25zdCBnY2hhciAqKmFyZ3YsIGNvbnN0IEJERXh0cmFBcmcKQEAgLTEwNyw1ICsxMDcsNSBAQAogICAgICBnYm9vbGVhbiBlcnJfZG9uZSA9IEZBTFNFOwogICAgICBHU3RyaW5nICpzdGRvdXRfZGF0YSA9IGdfc3RyaW5nX25ldyAoTlVMTCk7CiAtLSAKLTEuOC4zLjEKKzIuMTQuMwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9saWJibG9ja2Rldl8yLjEwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvbGliYmxvY2tkZXZfMi4xMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmE5MjM1NC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9saWJibG9ja2Rldl8yLjEwLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAibGliYmxvY2tkZXYgaXMgYSBDIGxpYnJhcnkgc3VwcG9ydGluZyBHT2JqZWN0IGludHJvc3BlY3Rpb24gZm9yIG1hbmlwdWxhdGlvbiBvZiBcCi1ibG9jayBkZXZpY2VzLiBJdCBoYXMgYSBwbHVnaW4tYmFzZWQgYXJjaGl0ZWN0dXJlIHdoZXJlIGVhY2ggdGVjaG5vbG9neSAobGlrZSBcCi1MVk0sIEJ0cmZzLCBNRCBSQUlELCBTd2FwLC4uLikgaXMgaW1wbGVtZW50ZWQgaW4gYSBzZXBhcmF0ZSBwbHVnaW4sIHBvc3NpYmx5IFwKLXdpdGggbXVsdGlwbGUgaW1wbGVtZW50YXRpb25zIChlLmcuIHVzaW5nIExWTSBDTEkgb3IgdGhlIG5ldyBMVk0gREJ1cyBBUEkpLiIKLUhPTUVQQUdFID0gImh0dHA6Ly9yaGluc3RhbGxlci5naXRodWIuaW8vbGliYmxvY2tkZXYvIgotTElDRU5TRSA9ICJMR1BMdjIrIgotU0VDVElPTiA9ICJkZXZlbC9saWIiCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWMwN2NiNDk5ZDI1OTQ1MmYzMjRiYjkwYzMwNjdkODVjIgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotQiA9ICIke1N9IgotCi1TUkNSRVYgPSAiYzFkZGE0NTAwMTU0MmVkZDdkN2YxZmZjNjQ1MWM1YTc0NjIzZjgwNSIKLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9yaGluc3RhbGxlci9saWJibG9ja2RldjticmFuY2g9bWFzdGVyIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtZml4LWNvbmZpZ3VyZS1hbmQtY29tcGlsZS1mYWlsdXJlcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAyLXJlbW92ZS1weXRob24yLXN1cHBvcnQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMy1yZW1vdmUtZG1yYWlkLXdoaWxlLWNvbXBpbGluZy13aXRoLXdpdGgtZG0ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwNS1maXgtYS1jbGFuZy1jb21waWxpbmctaXNzdWUucGF0Y2ggXAotIgotU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA0LWZpeC1jb21waWxlLWZhaWx1cmUtYWdhaW5zdC1tdXNsLUMtbGlicmFyeS5wYXRjaCBcCi0iCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHB5dGhvbjNuYXRpdmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0KLURFUEVORFMgKz0gIiBcCi0gICAgY3J5cHRzZXR1cCBcCi0gICAgbnNzIFwKLSAgICB2b2x1bWUta2V5IFwKLSAgICBsaWJieXRlc2l6ZSBcCi0gICAgYnRyZnMtdG9vbHMgXAotIgotUkRFUEVORFNfJHtQTn0gKz0gIiBcCi0gICAgbHZtMiBcCi0iCi0KLUZJTEVTXyR7UE59ICs9ICIke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfSIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gInB5dGhvbjMgbHZtIGRtIGttb2QgcGFydGVkIGZzIgotUEFDS0FHRUNPTkZJR1tweXRob24zXSA9ICItLXdpdGgtcHl0aG9uMywgLS13aXRob3V0LXB5dGhvbjMsLHB5dGhvbjMiCi1QQUNLQUdFQ09ORklHW2x2bV0gPSAiLS13aXRoLWx2bSwgLS13aXRob3V0LWx2bSwgbXVsdGlwYXRoLXRvb2xzIgotUEFDS0FHRUNPTkZJR1tkbV0gPSAiLS13aXRoLWRtLCAtLXdpdGhvdXQtZG0iCi1QQUNLQUdFQ09ORklHW2ttb2RdID0gIi0td2l0aC1rYmQsIC0td2l0aG91dC1rYmQsIGttb2QiCi1QQUNLQUdFQ09ORklHW3BhcnRlZF0gPSAiLS13aXRoLXBhcnQsIC0td2l0aG91dC1wYXJ0LCBwYXJ0ZWQiCi1QQUNLQUdFQ09ORklHW2ZzXSA9ICItLXdpdGgtZnMsIC0td2l0aG91dC1mcywgdXRpbC1saW51eCIKLVBBQ0tBR0VDT05GSUdbZG9jXSA9ICItLXdpdGgtZ3RrLWRvYywgLS13aXRob3V0LWd0ay1kb2MsIGd0ay1kb2MtbmF0aXZlIgotCi1leHBvcnQgU1RBR0lOR19JTkNESVIKLWV4cG9ydCBHSVJfRVhUUkFfTElCU19QQVRIPSIke0J9L3NyYy91dGlscy8ubGlicyIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvbGliYmxvY2tkZXZfMi4xNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2xpYmJsb2NrZGV2XzIuMTYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM5NTRhYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2xpYmJsb2NrZGV2XzIuMTYuYmIKQEAgLTAsMCArMSw1MSBAQAorREVTQ1JJUFRJT04gPSAibGliYmxvY2tkZXYgaXMgYSBDIGxpYnJhcnkgc3VwcG9ydGluZyBHT2JqZWN0IGludHJvc3BlY3Rpb24gZm9yIG1hbmlwdWxhdGlvbiBvZiBcCitibG9jayBkZXZpY2VzLiBJdCBoYXMgYSBwbHVnaW4tYmFzZWQgYXJjaGl0ZWN0dXJlIHdoZXJlIGVhY2ggdGVjaG5vbG9neSAobGlrZSBcCitMVk0sIEJ0cmZzLCBNRCBSQUlELCBTd2FwLC4uLikgaXMgaW1wbGVtZW50ZWQgaW4gYSBzZXBhcmF0ZSBwbHVnaW4sIHBvc3NpYmx5IFwKK3dpdGggbXVsdGlwbGUgaW1wbGVtZW50YXRpb25zIChlLmcuIHVzaW5nIExWTSBDTEkgb3IgdGhlIG5ldyBMVk0gREJ1cyBBUEkpLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9yaGluc3RhbGxlci5naXRodWIuaW8vbGliYmxvY2tkZXYvIgorTElDRU5TRSA9ICJMR1BMdjIrIgorU0VDVElPTiA9ICJkZXZlbC9saWIiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWMwN2NiNDk5ZDI1OTQ1MmYzMjRiYjkwYzMwNjdkODVjIgorCitpbmhlcml0IGF1dG90b29scyBweXRob24zbmF0aXZlIGdvYmplY3QtaW50cm9zcGVjdGlvbgorCitERVBFTkRTICs9ICIgXAorICAgIGNyeXB0c2V0dXAgXAorICAgIG5zcyBcCisgICAgdm9sdW1lLWtleSBcCisgICAgbGliYnl0ZXNpemUgXAorICAgIGJ0cmZzLXRvb2xzIFwKKyIKKworU1JDUkVWID0gImUyZTA4OTllZmU4ZGQzZjExMWZmOTU1ZmI2YzFkYzEwYjBiZDIwNzUiCitTUkNfVVJJID0gIiBcCisgICAgZ2l0Oi8vZ2l0aHViLmNvbS9yaGluc3RhbGxlci9saWJibG9ja2RldjticmFuY2g9bWFzdGVyIFwKKyAgICBmaWxlOi8vMDAwMS1maXgtY29uZmlndXJlLWFuZC1jb21waWxlLWZhaWx1cmVzLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMi1yZW1vdmUtcHl0aG9uMi1zdXBwb3J0LnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMy1yZW1vdmUtZG1yYWlkLXdoaWxlLWNvbXBpbGluZy13aXRoLXdpdGgtZG0ucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDA1LWZpeC1hLWNsYW5nLWNvbXBpbGluZy1pc3N1ZS5wYXRjaCBcCisiCitTUkNfVVJJX2FwcGVuZF9saWJjLW11c2wgPSAiIFwKKyAgICBmaWxlOi8vMDAwNC1maXgtY29tcGlsZS1mYWlsdXJlLWFnYWluc3QtbXVzbC1DLWxpYnJhcnkucGF0Y2ggXAorIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICBsdm0yIFwKKyIKKworRklMRVNfJHtQTn0gKz0gIiR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9IgorCitQQUNLQUdFQ09ORklHID8/PSAicHl0aG9uMyBsdm0gZG0ga21vZCBwYXJ0ZWQgZnMiCitQQUNLQUdFQ09ORklHW3B5dGhvbjNdID0gIi0td2l0aC1weXRob24zLCAtLXdpdGhvdXQtcHl0aG9uMywscHl0aG9uMyIKK1BBQ0tBR0VDT05GSUdbbHZtXSA9ICItLXdpdGgtbHZtLCAtLXdpdGhvdXQtbHZtLCBtdWx0aXBhdGgtdG9vbHMiCitQQUNLQUdFQ09ORklHW2RtXSA9ICItLXdpdGgtZG0sIC0td2l0aG91dC1kbSIKK1BBQ0tBR0VDT05GSUdba21vZF0gPSAiLS13aXRoLWtiZCwgLS13aXRob3V0LWtiZCwga21vZCIKK1BBQ0tBR0VDT05GSUdbcGFydGVkXSA9ICItLXdpdGgtcGFydCwgLS13aXRob3V0LXBhcnQsIHBhcnRlZCIKK1BBQ0tBR0VDT05GSUdbZnNdID0gIi0td2l0aC1mcywgLS13aXRob3V0LWZzLCB1dGlsLWxpbnV4IgorUEFDS0FHRUNPTkZJR1tkb2NdID0gIi0td2l0aC1ndGstZG9jLCAtLXdpdGhvdXQtZ3RrLWRvYywgZ3RrLWRvYy1uYXRpdmUiCisKK2V4cG9ydCBHSVJfRVhUUkFfTElCU19QQVRIPSIke0J9L3NyYy91dGlscy8ubGlicyIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliZGl2ZWNvbXB1dGVyL2ZpbGVzL2ZpeC1hci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmRpdmVjb21wdXRlci9maWxlcy9maXgtYXIucGF0Y2gKaW5kZXggY2MzZjVkNC4uZjY1ZDI2YSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliZGl2ZWNvbXB1dGVyL2ZpbGVzL2ZpeC1hci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJkaXZlY29tcHV0ZXIvZmlsZXMvZml4LWFyLnBhdGNoCkBAIC0yLDExICsyLDExIEBACiAgY29uZmlndXJlLmFjIHwgICAgMSArCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCiAKK0luZGV4OiBnaXQvY29uZmlndXJlLmFjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gZ2l0Lm9yaWcvY29uZmlndXJlLmFjCiArKysgZ2l0L2NvbmZpZ3VyZS5hYwotQEAgLTI0LDEwICsyNCwxMSBAQCBMVF9JTklUKFt3aW4zMi1kbGxdKQotIExUX1BST0dfUkMKLSAKK0BAIC01Niw2ICs1Niw3IEBAIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfRVhBTVBMRVNdLCBbdGVzdAogICMgQ2hlY2tzIGZvciBwcm9ncmFtcy4KICBBQ19QUk9HX0NDCiAgQUNfUFJPR19DQ19DOTkKQEAgLTE0LDUgKzE0LDMgQEAKICAKICAjIEVuYWJsZSBhdXRvbWFrZSBzaWxlbnQgYnVpbGQgcnVsZXMuCiAgbTRfaWZkZWYoW0FNX1NJTEVOVF9SVUxFU10sW0FNX1NJTEVOVF9SVUxFUyhbeWVzXSldKQotIAotICMgQ2hlY2tzIGZvciBuYXRpdmUgV2luZG93cy4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmd4aW0vbGliZ3hpbV8wLjUuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmd4aW0vbGliZ3hpbV8wLjUuMC5iYgppbmRleCA1YmY3YzZlLi43ZTRjMzMwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJneGltL2xpYmd4aW1fMC41LjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliZ3hpbS9saWJneGltXzAuNS4wLmJiCkBAIC0yNiw0ICsyNiw2IEBACiBFWFRSQV9PRUNPTkYgPSAiIC0tZGlzYWJsZS1zdGF0aWMgLS1kaXNhYmxlLXJlYnVpbGRzIC0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKIERFUEVORFMgKz0gImd0aysgZ2xpYi0yLjAgZ2xpYi0yLjAtbmF0aXZlIHJ1YnktbmF0aXZlIGludGx0b29sLW5hdGl2ZSBnbm9tZS1jb21tb24tbmF0aXZlIgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ2V0dGV4dAoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnZXR0ZXh0CisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJxYi9saWJxYi8wMDAxLVJlbW92ZS1ydW50aW1lLWNoZWNrLWZvci1DTE9DS19NT05PVE9OSUMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJxYi9saWJxYi8wMDAxLVJlbW92ZS1ydW50aW1lLWNoZWNrLWZvci1DTE9DS19NT05PVE9OSUMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4YmM1YzAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicWIvbGlicWIvMDAwMS1SZW1vdmUtcnVudGltZS1jaGVjay1mb3ItQ0xPQ0tfTU9OT1RPTklDLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotRnJvbSBlNmZiYWQwYzEyMmJhOGU4N2I2N2E5ZTI0NDc1MDVhZGNhYWZlMjA0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMjkgTWFyIDIwMTcgMTY6MzE6MzggLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gUmVtb3ZlIHJ1bnRpbWUgY2hlY2sgZm9yIENMT0NLX01PTk9UT05JQwotCi1Eb2VzIG5vdCB3b3JrIGR1cmluZyBjcm9zcyBjb21waWxlCi0KLXVzZSBhIGNvbXBpbGUtdGltZSBjaGVjayB0byBkZXRlY3Qgd2hldGhlciB0aGUKLW1vbm90b25pYyBjbG9jayBpcyBhdmFpbGFibGUuIFRoaXMgY2hlY2sgY2FuIHJ1biBqdXN0IGZpbmUgd2hlbiB3ZSBhcmUKLWNyb3NzLWNvbXBpbGluZy4KLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIGNvbmZpZ3VyZS5hYyB8IDEyICsrKysrKysrKystLQotIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBmYTEzYWU2Li5mNGYwZjQ2IDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC0xNzUsOSArMTc1LDE3IEBAIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oCi0gICAgICAgICAgICAgICAgICApCi0gCi0gQUNfTVNHX0NIRUNLSU5HKGZvciBhIHdvcmtpbmcgY2xvY2tfZ2V0cmVzKENMT0NLX01PTk9UT05JQywgJnRzKSkKLS1BQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oCi0rQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTSgKLSBbWyNpbmNsdWRlIDx0aW1lLmg+XV0sCi0tW1tzdHJ1Y3QgdGltZXNwZWMgdHM7IGlmKGNsb2NrX2dldHJlcyhDTE9DS19NT05PVE9OSUMsICZ0cykpIHJldHVybiAtMTtdXSldLAotK1tbCi0rI2luY2x1ZGUgPHVuaXN0ZC5oPgotK2ludCBtYWluKCkgewotKyNpZiAhKGRlZmluZWQoX1BPU0lYX01PTk9UT05JQ19DTE9DSykgJiYgX1BPU0lYX01PTk9UT05JQ19DTE9DSyA+PSAwICYmIGRlZmluZWQoQ0xPQ0tfTU9OT1RPTklDKSkKLSsgICAgICAgICNlcnJvciBObyBtb25vdG9uaWMgY2xvY2sKLSsjZW5kaWYKLSsgICAgcmV0dXJuIDA7Ci0rCi0rXV0pXSwKLSAgICAgICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSAgICAgICAgICAgICAgICAgICAgICAgQUNfREVGSU5FX1VOUVVPVEVEKFtIQVZFX0NMT0NLX0dFVFJFU19NT05PVE9OSUNdLCAxLCBbRGVmaW5lIHRvIDEgaWYgY2xvY2tfZ2V0cmVzKENMT0NLX01PTk9UT05JQywgJnRzKSB3b3Jrc10pCi0tLSAKLTIuMTIuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJxYi9saWJxYi8wMDAxLWJ1aWxkLWZpeC1jb25maWd1cmUtc2NyaXB0LW5lZ2xlY3RpbmctcmUtZW5hYmxlLW91dC0ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJxYi9saWJxYi8wMDAxLWJ1aWxkLWZpeC1jb25maWd1cmUtc2NyaXB0LW5lZ2xlY3RpbmctcmUtZW5hYmxlLW91dC0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzgyZjNiZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnFiL2xpYnFiLzAwMDEtYnVpbGQtZml4LWNvbmZpZ3VyZS1zY3JpcHQtbmVnbGVjdGluZy1yZS1lbmFibGUtb3V0LS5wYXRjaApAQCAtMCwwICsxLDU2IEBACitGcm9tIDczZDJhZWEzM2UzMjI3MmJhYzY5MzU1MGU4YTNiMGUzYWQ4OTcwN2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/SmFuPTIwUG9rb3JuPUMzPUJEPz0gPGpwb2tvcm55QHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDI2IERlYyAyMDE3IDAwOjAyOjI2ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIGJ1aWxkOiBmaXggY29uZmlndXJlIHNjcmlwdCBuZWdsZWN0aW5nLCByZS1lbmFibGUgb3V0LW9mLXRyZWUKKyBidWlsZHMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworRm9yIHRoZSBmb3JtZXIsIGEgcHJvdG90eXBlIGFuZCB0aGUgZmluYWwgY29kZSBnb3QgKGhtLCBteXN0ZXJpb3VzbHkpCitpbnRlcnR3aXN0ZWQuICBGb3IgdGhlIGxhdHRlciwgSSBhbSBjbGVhcmx5IGd1aWx0eSBvZiAocmFyZSwgYW55d2F5KQordGVzdGluZyBvZiB0aGUgb3V0LW9mLXRyZWUgYnVpbGRzIG9ubHkgd2l0aCBsaWJxYi1hbHJlYWR5LXN5c3RlbS13aWRlCitzY2VuYXJpbywgd2hpY2ggaXMgcmF0aGVyIHNob3J0c2lnaHRlZC4KKworVGhhbmtzIEZhYmlvIGFuZCBoaXMgY2kua3Jvbm9zbmV0Lm9yZyBwcm9qZWN0IGZvciBzcG90dGluZyB0aGF0LgorCitYLW1hcy1wcmVzZW50LWZvcjogRmFiaW8gTS4gRGkgTml0dG8gPGZkaW5pdHRvQHJlZGhhdC5jb20+CitTaWduZWQtb2ZmLWJ5OiBKYW4gUG9rb3Juw70gPGpwb2tvcm55QHJlZGhhdC5jb20+CistLS0KK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKKworIGNvbmZpZ3VyZS5hYyAgICB8IDIgKy0KKyBsaWIvTWFrZWZpbGUuYW0gfCA0ICsrKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggOTkwMDMxMC4uZjk3NjFjYyAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtNzEwLDcgKzcxMCw3IEBAIGlmIHRlc3QgIngke0dDQ30iID0geHllczsgdGhlbgorIAkJCSAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgX19zdG9wX19fdmVyYm9zZSB8IGN1dCAtZCIgIiAtZiAzKQorIAkJCSB0ZXN0ICIke3ZlcmJvc2Vfc3RhcnRfYWRkcn0iID0gIiR7dmVyYm9zZV9zdG9wX2FkZHJ9IiBcCisgCQkJICAgJiYgZ2NjX2hhc19hdHRyaWJ1dGVfc2VjdGlvbl92aXNpYmxlPW5vIFwKKy0JCQkgICB8fCB7IHZlcmJvc2Vfc3RhcnRfdHlwZT0kKCR7UkVBREVMRn0gLXMgYmFja3VwIFwKKysJCQkgICB8fCB7IHZlcmJvc2Vfc3RhcnRfdHlwZT0kKCR7UkVBREVMRn0gLXMgImNvbmZ0ZXN0JHtzaHJleHRfY21kc30iIFwKKyAJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1uICcvX19zdGFydF9fX3ZlcmJvc2Uve3MvXlxzKi8vcDtxfScgXAorIAkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0ciAtcyAnICcgXAorIAkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjdXQgLWQiICIgLWY2KQorZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZS5hbSBiL2xpYi9NYWtlZmlsZS5hbQoraW5kZXggNmNhNmIxNS4uYjAzNWYwYiAxMDA2NDQKKy0tLSBhL2xpYi9NYWtlZmlsZS5hbQorKysrIGIvbGliL01ha2VmaWxlLmFtCitAQCAtMTAxLDcgKzEwMSw5IEBAIGVuZGlmCisgZW5kaWYKKyAKKyBxYmxvZ19zY3JpcHQubGQ6ICUubGQ6ICUubGQuaW4KKy0JJChBTV9WX0dFTikkKENQUCkgLXhjIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIC1EX0dOVV9TT1VSQ0UgLUMgLVAgJDwgXAorKwkkKEFNX1ZfR0VOKSQoQ1BQKSAtQyAtRF9HTlVfU09VUkNFIC1QIFwKKysJICAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSAtSSQodG9wX2J1aWxkZGlyKS9pbmNsdWRlIFwKKysJICAteGMgJDwgXAorIAkgIHwgc2VkIC1uICIvJCQoc2VkIC1uICcvXlteI10ve3MvWypcL10vXFwmL2c7cDtxO30nICQ8KS8sJCQgcCIgXAorIAkgID4gJEAKKyAKKy0tIAorMi4xNi4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnFiL2xpYnFiXzEuMC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicWIvbGlicWJfMS4wLjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3NGY2NjAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicWIvbGlicWJfMS4wLjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1TVU1NQVJZID0gIkFuIElQQyBsaWJyYXJ5IGZvciBoaWdoIHBlcmZvcm1hbmNlIHNlcnZlcnMiCi1ERVNDUklQVElPTiA9ICJsaWJxYiBpcyBhIGxpYnJhcnkgd2l0aCB0aGUgcHJpbWFyeSBwdXJwb3NlIG9mIHByb3ZpZGluZyBoaWdoIHBlcmZvcm1hbmNlIGNsaWVudCBzZXJ2ZXIgcmV1c2FibGUgZmVhdHVyZXMuIFwKLUl0IHByb3ZpZGVzIGhpZ2ggcGVyZm9ybWFuY2UgbG9nZ2luZywgdHJhY2luZywgaXBjLCBhbmQgcG9sbC4iCi0KLUhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9jbHVzdGVybGFicy9saWJxYi93aWtpIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJMR1BMLTIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTMyMWJmNDFmMjgwY2Y4MDUwODZkZDVhNzIwYjM3Nzg1IgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKLQotUFYgLj0gIitnaXQke1NSQ1BWfSIKLQotU1JDUkVWID0gIjYwOGRlNmQ1OWEzZGUwZWVmMGZiY2JkOGYyODRhY2JjMDE4ZGFhOWEiCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vQ2x1c3RlckxhYnMvJHtCUE59LmdpdCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLVJlbW92ZS1ydW50aW1lLWNoZWNrLWZvci1DTE9DS19NT05PVE9OSUMucGF0Y2ggXAotICAgICAgICAgICIKLVMgPSAiJHtXT1JLRElSfS9naXQiCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgewotICAgICggY2QgJHtTfQotICAgICR7U30vYXV0b2dlbi5zaCApCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJxYi9saWJxYl8xLjAuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnFiL2xpYnFiXzEuMC4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczY2VhNWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJxYi9saWJxYl8xLjAuMy5iYgpAQCAtMCwwICsxLDI1IEBACitTVU1NQVJZID0gIkFuIElQQyBsaWJyYXJ5IGZvciBoaWdoIHBlcmZvcm1hbmNlIHNlcnZlcnMiCitERVNDUklQVElPTiA9ICJsaWJxYiBpcyBhIGxpYnJhcnkgd2l0aCB0aGUgcHJpbWFyeSBwdXJwb3NlIG9mIHByb3ZpZGluZyBoaWdoIHBlcmZvcm1hbmNlIGNsaWVudCBzZXJ2ZXIgcmV1c2FibGUgZmVhdHVyZXMuIFwKK0l0IHByb3ZpZGVzIGhpZ2ggcGVyZm9ybWFuY2UgbG9nZ2luZywgdHJhY2luZywgaXBjLCBhbmQgcG9sbC4iCisKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9jbHVzdGVybGFicy9saWJxYi93aWtpIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJMR1BMLTIuMSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTMyMWJmNDFmMjgwY2Y4MDUwODZkZDVhNzIwYjM3Nzg1IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworUFYgLj0gIitnaXQke1NSQ1BWfSIKKworIyB2MS4wLjMKK1NSQ1JFViA9ICIyOGRmZjA5MGM3NGI2YmE4NjA5YzQ3OTcyOTRhNWFmZTNmZTczOTg3IgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL0NsdXN0ZXJMYWJzLyR7QlBOfS5naXQgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1idWlsZC1maXgtY29uZmlndXJlLXNjcmlwdC1uZWdsZWN0aW5nLXJlLWVuYWJsZS1vdXQtLnBhdGNoIFwKKyAgICAgICAgICAiCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitDRkxBR1MgKz0gIi1wdGhyZWFkIC1EX1JFRU5UUkFOVCIKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworICAgICggY2QgJHtTfQorICAgICR7U30vYXV0b2dlbi5zaCApCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJyZXBvcnQvbGlicmVwb3J0XzIuOS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicmVwb3J0L2xpYnJlcG9ydF8yLjkuMi5iYgppbmRleCA1MjU0MzdiLi5mMmM2NjFjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJyZXBvcnQvbGlicmVwb3J0XzIuOS4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnJlcG9ydC9saWJyZXBvcnRfMi45LjIuYmIKQEAgLTUsNyArNSw3IEBACiBMSUNFTlNFID0gIkdQTHYyKyIKIERFUEVORFMgPSAieG1scnBjLWMgeG1scnBjLWMtbmF0aXZlIGludGx0b29sLW5hdGl2ZSBcCiAgICAgICAgIGpzb24tYyBsaWJ0YXIgbGlibmV3dCBsaWJwcm94eSBycG0gXAotICAgICAgICBhdWdlYXMgc2F0eXIgc3lzdGVtZCBndGsrMyBcCisgICAgICAgIGF1Z2VhcyBzYXR5ciBzeXN0ZW1kIFwKICIKIAogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCkBAIC0yNiw2ICsyNiw5IEBACiAKIGluaGVyaXQgZ2V0dGV4dCBhdXRvdG9vbHMgcHl0aG9uM25hdGl2ZSBwa2djb25maWcKIAorUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCd4MTEnLCdndGsnLCcnLGQpfSIKK1BBQ0tBR0VDT05GSUdbZ3RrXSA9ICItLXdpdGgtZ3RrLCAtLXdpdGhvdXQtZ3RrLCBndGsrMywiCisKIFJERVBFTkRTX3B5dGhvbjMtbGlicmVwb3J0ICs9ICIke1BOfSIKIAogZG9fcGF0Y2hbcHJlZnVuY3NdICs9ICJkb19nZW5fdmVyc2lvbiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYndtZi9saWJ3bWZfMC4yLjguNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYndtZi9saWJ3bWZfMC4yLjguNC5iYgppbmRleCA4YWQ1NDU3Li4yYzMxYTIxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJ3bWYvbGlid21mXzAuMi44LjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlid21mL2xpYndtZl8wLjIuOC40LmJiCkBAIC0xMiw3ICsxMiw5IEBACiAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vd3Z3YXJlLyR7QlBOfS8ke1BWfS8ke0JQTn0tJHtQVn0udGFyLmd6O25hbWU9dGFyYmFsbCBcCiAgICAgICAgICAgIGZpbGU6Ly9saWJ3bWYtMC4yLjguNC1pbnRvdmVyZmxvdy5wYXRjaCBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9tbWwtd2lkZ2V0L2d0a21hdGh2aWV3XzAuOC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbW1sLXdpZGdldC9ndGttYXRodmlld18wLjguMC5iYgppbmRleCAxNTkzNWM4Li5kZjgyYmVmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9tbWwtd2lkZ2V0L2d0a21hdGh2aWV3XzAuOC4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL21tbC13aWRnZXQvZ3RrbWF0aHZpZXdfMC44LjAuYmIKQEAgLTE3LDcgKzE3LDkgQEAKIAogUyA9ICIke1dPUktESVJ9L2dpdCIKIAotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBhdXRvdG9vbHMgcGtnY29uZmlnCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIGRvX2NvbmZpZ3VyZV9hcHBlbmQoKSB7CiAgICAgIyBhdm9pZCBob3N0IHBvbHV0aW9uIGluZiBwa2ctY29uZmlnIGZpbGVzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9tb3pqcy9tb3pqcy9NYW51YWxseV9tbWFwX2hlYXBfbWVtb3J5X2VzcjE3LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbW96anMvbW96anMvTWFudWFsbHlfbW1hcF9oZWFwX21lbW9yeV9lc3IxNy5wYXRjaAppbmRleCAxNWFkMDNmLi44M2Y0NTQzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9tb3pqcy9tb3pqcy9NYW51YWxseV9tbWFwX2hlYXBfbWVtb3J5X2VzcjE3LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL21vempzL21vempzL01hbnVhbGx5X21tYXBfaGVhcF9tZW1vcnlfZXNyMTcucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIGEwYzBmMzIyOTk0MTkzNTliNDRhYzBmODgwYzFlYTkwNzNhZTUxZTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDFkMWZhOTVjOGZmNzY5N2U0NjM0MzM4NWE3OWE4ZjdlNWM1MTRhODcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBaaGVuZyBYdSA8emhlbmcueHVAbGluYXJvLm9yZz4KIERhdGU6IEZyaSwgMiBTZXAgMjAxNiAxNzo0MDowNSArMDgwMAogU3ViamVjdDogW1BBVENIXSBCdWcgMTE0MzAyMiAtIE1hbnVhbGx5IG1tYXAgb24gYXJtNjQgdG8gZW5zdXJlIGhpZ2ggMTcgYml0cwpAQCAtMTYsMTEgKzE2LDExIEBACiAgMSBmaWxlIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9qcy9zcmMvZ2MvTWVtb3J5LmNwcCBiL2pzL3NyYy9nYy9NZW1vcnkuY3BwCi1pbmRleCA1YjM4NmEyLi4zODEwMWNmIDEwMDY0NAoraW5kZXggZTVhZDAxOC4uNDE0OWFkZiAxMDA2NDQKIC0tLSBhL2pzL3NyYy9nYy9NZW1vcnkuY3BwCiArKysgYi9qcy9zcmMvZ2MvTWVtb3J5LmNwcAotQEAgLTMwNiw2ICszMDYsNzUgQEAgSW5pdE1lbW9yeVN1YnN5c3RlbSgpCi0gICAgICAgICBNT1pfQ1JBU0goKTsKK0BAIC0zMDksNiArMzA5LDc1IEBAIEluaXRNZW1vcnlTdWJzeXN0ZW0oKQorICNlbmRpZgogIH0KICAKICtzdGF0aWMgaW5saW5lIHZvaWQgKgpAQCAtOTUsNyArOTUsNyBAQAogIHZvaWQgKgogIE1hcEFsaWduZWRQYWdlcyhzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKICB7Ci1AQCAtMzE5LDEyICszODgsMTIgQEAgTWFwQWxpZ25lZFBhZ2VzKHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQorQEAgLTMyMiwxMiArMzkxLDEyIEBAIE1hcEFsaWduZWRQYWdlcyhzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKICAKICAgICAgLyogU3BlY2lhbCBjYXNlOiBJZiB3ZSB3YW50IHBhZ2UgYWxpZ25tZW50LCBubyBmdXJ0aGVyIHdvcmsgaXMgbmVlZGVkLiAqLwogICAgICBpZiAoYWxpZ25tZW50ID09IFBhZ2VTaXplKSB7CkBAIC0xMTAsNiArMTEwLDMgQEAKICAgICAgaWYgKHJlZ2lvbiA9PSBNQVBfRkFJTEVEKQogICAgICAgICAgcmV0dXJuIE5VTEw7CiAgCi0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL21yYWEvbXJhYV9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9tcmFhL21yYWFfZ2l0LmJiCmluZGV4IDYxNjA0OGYuLjkzMGMwNDEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL21yYWEvbXJhYV9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbXJhYS9tcmFhX2dpdC5iYgpAQCAtMywxMiArMywxMyBAQAogU0VDVElPTiA9ICJsaWJzIgogCiBMSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTY2NDkzZDU0ZTY1YmZjMTJjNzk4M2ZmMmU4ODRmMzdmIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NGI5MmEzYjQ5N2Q3OTQzMDQyYTZkYjQwYzA4OGMzZjIiCiAKLVNSQ1JFViA9ICI4ZGRiY2RlODRlMmQxNDZiYzBmOWUzODUwNGQ2Yzg5YzE0MjkxNDgwIgotUFYgPSAiMS43LjAtZ2l0JHtTUkNQVn0iCitTUkNSRVYgPSAiZmJiN2Q5MjMyMDY3ZWFjM2Y0NTA4YTM3YThmN2VhMGM0ZmNlYmFjYiIKK1BWID0gIjEuOS4wLWdpdCR7U1JDUFZ9IgogCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vaW50ZWwtaW90LWRldmtpdC8ke0JQTn0uZ2l0O3Byb3RvY29sPWh0dHAiCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vaW50ZWwtaW90LWRldmtpdC8ke0JQTn0uZ2l0O3Byb3RvY29sPWh0dHAgXAorICAgICAgICAgICAiCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKQEAgLTMxLDcgKzMyLDEzIEBACiAjIG92ZXJyaWRlIHRoaXMgaW4gbG9jYWwuY29uZiB0byBnZXQgbmVlZGVkIGJpbmRpbmdzLgogIyBCSU5ESU5HU19wbi1tcmFhPSJweXRob24iCiAjIHdpbGwgcmVzdWx0IGluIG9ubHkgdGhlIHB5dGhvbiBiaW5kaW5ncyBiZWluZyBidWlsdC9wYWNrYWdlZC4KLUJJTkRJTkdTID8/PSAicHl0aG9uICR7QCAnbm9kZWpzJyBpZiBvZS50eXBlcy5ib29sZWFuKGQuZ2V0VmFyKCdIQVZFX05PREVKUycpIG9yICcwJykgZWxzZSAnJyB9IgorIyBOb3RlOiAnbm9kZWpzJyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGJlY2F1c2UgdGhlIGJpbmRpbmdzCisjIGdlbmVyYXRpb24gY3VycmVudGx5IGZhaWxzIHdpdGggbm9kZWpzICg+djcueCkuCitCSU5ESU5HUyA/Pz0gInB5dGhvbiIKKworIyBub2RlanMgaXNuJ3QgYXZhaWxhYmxlIGZvciBhcm12NC9hcm12NSBhcmNoaXRlY3R1cmVzCitCSU5ESU5HU19hcm12NCA/Pz0gInB5dGhvbiIKK0JJTkRJTkdTX2FybXY1ID8/PSAicHl0aG9uIgogCiBQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VTJywgJ25vZGUtJHtQTn0nLCAnbm9kZWpzJywgJycsIGQpfSBcCiAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VTJywgJyR7UFlUSE9OX1BOfS0ke1BOfScsICdweXRob24nLCAnJywgZCl9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvb3BlbndzbWFuL29wZW53c21hbl8yLjYuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL29wZW53c21hbi9vcGVud3NtYW5fMi42LjMuYmIKaW5kZXggYzQ3NzhjYS4uZjYxOGYwMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvb3BlbndzbWFuL29wZW53c21hbl8yLjYuMy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9vcGVud3NtYW4vb3BlbndzbWFuXzIuNi4zLmJiCkBAIC0xMiw2ICsxMiw5IEBACiAKIERFUEVORFMgPSAiY3VybCBsaWJ4bWwyIG9wZW5zc2wgbGlicGFtIgogCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjaworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInBhbSIKKwogU1JDUkVWID0gImZlYjdlYzliMDA0ZmNhZWEwZGJlNjVjZThhMWE3OWNjMjlkZDk5NGMiCiBQViA9ICIyLjYuMyIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcDd6aXAvZmlsZXMvMDAwMS1GaXgtbmFycm93aW5nLWVycm9ycy1XYy0xMS1uYXJyb3dpbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wN3ppcC9maWxlcy8wMDAxLUZpeC1uYXJyb3dpbmctZXJyb3JzLVdjLTExLW5hcnJvd2luZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTI3NTE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcDd6aXAvZmlsZXMvMDAwMS1GaXgtbmFycm93aW5nLWVycm9ycy1XYy0xMS1uYXJyb3dpbmcucGF0Y2gKQEAgLTAsMCArMSw0OCBAQAorRnJvbSBiNmIxNzgyYWY0YWE3ZjkwODRkMzJlNDE0NDczOGRjMjUzNWM4ZDZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IE1vbiwgMjMgQXByIDIwMTggMjM6MDc6MjEgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IG5hcnJvd2luZyBlcnJvcnMgLVdjKysxMS1uYXJyb3dpbmcKKworQ2xhbmcgNi54IGZpbmRzIHRoZXNlIGVycm9ycworCisgICAgLi4vLi4vLi4vLi4vQ1BQL1dpbmRvd3MvRXJyb3JNc2cuY3BwOjI0OjEwOiBlcnJvcjogY2FzZSB2YWx1ZSBldmFsdWF0ZXMgdG8gLTIxNDcwMjQ4MDksIHdoaWNoIGNhbm5vdCBiZSBuYXJyb3dlZCB0byB0eXBlICdEV09SRCcgKGFrYSAndW5zaWduZWQgaW50JykgWy1XYysrMTEtbmFycm93aW5nXQorICAgICAgICBjYXNlIEVfSU5WQUxJREFSRyAgICAgICAgICA6IHR4dCA9ICJFX0lOVkFMSURBUkciOyBicmVhayA7CisgICAgICAgICAgICAgXgorCitIUkVTVUxUIGNhdXNlcyB0aGUgbWFjcm8gdG8gYmUgcGFyc2VkIGFzIGEgc2lnbmVkIGxvbmcsIHNvIHdlIG5lZWQgdG8gZm9yY2UgaXQKK3RvIGJlIGNoZWNrZWQgYXMgYW4gdW5zaWduZWQgbG9uZyBpbnN0ZWFkLgorCithbHNvIHJlcG9ydGVkIGhlcmUgaHR0cHM6Ly9idWdzLmZyZWVic2Qub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yMjQ5MzAKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KKyBDUFAvV2luZG93cy9FcnJvck1zZy5jcHAgfCAxNCArKysrKysrLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9DUFAvV2luZG93cy9FcnJvck1zZy5jcHAgYi9DUFAvV2luZG93cy9FcnJvck1zZy5jcHAKK2luZGV4IDk5Njg0YWUuLjc4YTY0YmEgMTAwNjQ0CistLS0gYS9DUFAvV2luZG93cy9FcnJvck1zZy5jcHAKKysrKyBiL0NQUC9XaW5kb3dzL0Vycm9yTXNnLmNwcAorQEAgLTE1LDEzICsxNSwxMyBAQCBVU3RyaW5nIE15Rm9ybWF0TWVzc2FnZShEV09SRCBlcnJvckNvZGUpCisgCisgICBzd2l0Y2goZXJyb3JDb2RlKSB7CisgICAgIGNhc2UgRVJST1JfTk9fTU9SRV9GSUxFUyAgIDogdHh0ID0gIk5vIG1vcmUgZmlsZXMiOyBicmVhayA7CistICAgIGNhc2UgRV9OT1RJTVBMICAgICAgICAgICAgIDogdHh0ID0gIkVfTk9USU1QTCI7IGJyZWFrIDsKKy0gICAgY2FzZSBFX05PSU5URVJGQUNFICAgICAgICAgOiB0eHQgPSAiRV9OT0lOVEVSRkFDRSI7IGJyZWFrIDsKKy0gICAgY2FzZSBFX0FCT1JUICAgICAgICAgICAgICAgOiB0eHQgPSAiRV9BQk9SVCI7IGJyZWFrIDsKKy0gICAgY2FzZSBFX0ZBSUwgICAgICAgICAgICAgICAgOiB0eHQgPSAiRV9GQUlMIjsgYnJlYWsgOworLSAgICBjYXNlIFNUR19FX0lOVkFMSURGVU5DVElPTiA6IHR4dCA9ICJTVEdfRV9JTlZBTElERlVOQ1RJT04iOyBicmVhayA7CistICAgIGNhc2UgRV9PVVRPRk1FTU9SWSAgICAgICAgIDogdHh0ID0gIkVfT1VUT0ZNRU1PUlkiOyBicmVhayA7CistICAgIGNhc2UgRV9JTlZBTElEQVJHICAgICAgICAgIDogdHh0ID0gIkVfSU5WQUxJREFSRyI7IGJyZWFrIDsKKysgICAgY2FzZSAoRFdPUkQpIEVfTk9USU1QTCAgICAgICAgICAgICA6IHR4dCA9ICJFX05PVElNUEwiOyBicmVhayA7CisrICAgIGNhc2UgKERXT1JEKSBFX05PSU5URVJGQUNFICAgICAgICAgOiB0eHQgPSAiRV9OT0lOVEVSRkFDRSI7IGJyZWFrIDsKKysgICAgY2FzZSAoRFdPUkQpIEVfQUJPUlQgICAgICAgICAgICAgICA6IHR4dCA9ICJFX0FCT1JUIjsgYnJlYWsgOworKyAgICBjYXNlIChEV09SRCkgRV9GQUlMICAgICAgICAgICAgICAgIDogdHh0ID0gIkVfRkFJTCI7IGJyZWFrIDsKKysgICAgY2FzZSAoRFdPUkQpIFNUR19FX0lOVkFMSURGVU5DVElPTiA6IHR4dCA9ICJTVEdfRV9JTlZBTElERlVOQ1RJT04iOyBicmVhayA7CisrICAgIGNhc2UgKERXT1JEKSBFX09VVE9GTUVNT1JZICAgICAgICAgOiB0eHQgPSAiRV9PVVRPRk1FTU9SWSI7IGJyZWFrIDsKKysgICAgY2FzZSAoRFdPUkQpIEVfSU5WQUxJREFSRyAgICAgICAgICA6IHR4dCA9ICJFX0lOVkFMSURBUkciOyBicmVhayA7CisgICAgIGNhc2UgRVJST1JfRElSRUNUT1JZICAgICAgICAgIDogdHh0ID0gIkVycm9yIERpcmVjdG9yeSI7IGJyZWFrIDsKKyAgICAgZGVmYXVsdDoKKyAgICAgICB0eHQgPSBzdHJlcnJvcihlcnJvckNvZGUpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcDd6aXAvZmlsZXMvQ1ZFLTIwMTctMTc5NjkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wN3ppcC9maWxlcy9DVkUtMjAxNy0xNzk2OS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzdkMTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcDd6aXAvZmlsZXMvQ1ZFLTIwMTctMTc5NjkucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorcDd6aXA6IEZpeCBDVkUtMjAxNy0xNzk2OQorCitbTm8gdXBzdHJlYW0gdHJhY2tpbmddIC0tIGh0dHBzOi8vYnVncy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNnaT9idWc9ODg4Mjk3CisKK0hlYXAtYmFzZWQgYnVmZmVyIG92ZXJmbG93IGluIDd6aXAKKworQ29tcHJlc3MvU2hyaW5rRGVjb2Rlci5jcHA6IEhlYXAtYmFzZWQgYnVmZmVyIG92ZXJmbG93CitpbiB0aGUgTkNvbXByZXNzOjpOU2hyaW5rOjpDRGVjb2Rlcjo6Q29kZVJlYWwgbWV0aG9kCitpbiA3LVppcCBiZWZvcmUgMTguMDAgYW5kIHA3emlwIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzCit0byBjYXVzZSBhIGRlbmlhbCBvZiBzZXJ2aWNlIChvdXQtb2YtYm91bmRzIHdyaXRlKQorb3IgcG90ZW50aWFsbHkgZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSB2aWEgYSBjcmFmdGVkIFpJUCBhcmNoaXZlLiAKKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9wN3ppcC9idWdzL19kaXNjdXNzL3RocmVhZC8wOTIwZjM2OS84MzE2L2F0dGFjaG1lbnQvQ1ZFLTIwMTctMTc5NjkucGF0Y2hdCitDVkU6IENWRS0yMDE3LTE3OTY5CitTaWduZWQtb2ZmLWJ5OiBSYWRvdmFuIFNjYXNueSA8cmFkb3Zhbi5zY2FzbnlAc2llbWVucy5jb20+CisKKy0tLSBhL0NQUC83emlwL0NvbXByZXNzL1Nocmlua0RlY29kZXIuY3BwCisrKysgYi9DUFAvN3ppcC9Db21wcmVzcy9TaHJpbmtEZWNvZGVyLmNwcAorQEAgLTEyMSw3ICsxMjEsMTIgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKKyAgICAgeworICAgICAgIF9zdGFja1tpKytdID0gX3N1ZmZpeGVzW2N1cl07CisgICAgICAgY3VyID0gX3BhcmVudHNbY3VyXTsKKysJICBpZiAoY3VyID49IGtOdW1JdGVtcyB8fCBpID49IGtOdW1JdGVtcykKKysJICAJYnJlYWs7CisgICAgIH0KKysJCisrCWlmIChjdXIgPj0ga051bUl0ZW1zIHx8IGkgPj0ga051bUl0ZW1zKQorKwkJYnJlYWs7CisgICAgIAorICAgICBfc3RhY2tbaSsrXSA9IChCeXRlKWN1cjsKKyAgICAgbGFzdENoYXIyID0gKEJ5dGUpY3VyOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcDd6aXAvcDd6aXBfMTYuMDIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wN3ppcC9wN3ppcF8xNi4wMi5iYgppbmRleCA2N2ZmYmM2Li5kOTg2ZGE5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wN3ppcC9wN3ppcF8xNi4wMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wN3ppcC9wN3ppcF8xNi4wMi5iYgpAQCAtNiw3ICs2LDEwIEBACiAgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9ET0MvTGljZW5zZS50eHQ7bWQ1PTg3OTU5OGVkZjFmNTRkZGRiNjkzMGQ3NTgxMzU3ZjhiIgogCiBTUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L3A3emlwL3A3emlwLyR7UFZ9L3A3emlwXyR7UFZ9X3NyY19hbGwudGFyLmJ6MiBcCi0gICAgICAgICAgZmlsZTovL2RvX25vdF9vdmVycmlkZV9jb21waWxlcl9hbmRfZG9fbm90X3N0cmlwLnBhdGNoIgorICAgICAgICAgICBmaWxlOi8vZG9fbm90X292ZXJyaWRlX2NvbXBpbGVyX2FuZF9kb19ub3Rfc3RyaXAucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vQ1ZFLTIwMTctMTc5NjkucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1GaXgtbmFycm93aW5nLWVycm9ycy1XYy0xMS1uYXJyb3dpbmcucGF0Y2ggXAorICAgICAgICAgICAiCiAKIFNSQ19VUklbbWQ1c3VtXSA9ICJhMDEyOGQ2NjFjZmU3Y2M4YzEyMWU3MzUxOWM1NGZiZiIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICI1ZWIyMGFjMGUyOTQ0ZjZjYjljMmQ1MWRkNmM0NTE4OTQxYzE4NTM0N2Q0MDg5ZWE4OTA4N2ZmZGQ2ZTIzNDFmIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcGFtL3BhbS1zc2gtYWdlbnQtYXV0aF8wLjEwLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wYW0vcGFtLXNzaC1hZ2VudC1hdXRoXzAuMTAuMy5iYgppbmRleCBmZjg4NTMzLi4xNjM4YzQxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wYW0vcGFtLXNzaC1hZ2VudC1hdXRoXzAuMTAuMy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wYW0vcGFtLXNzaC1hZ2VudC1hdXRoXzAuMTAuMy5iYgpAQCAtMTMsNiArMTMsOSBAQAogCiBERVBFTkRTICs9ICJsaWJwYW0gb3BlbnNzbCIKIAoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJwYW0iCisKICMgVGhpcyBnZXRzIHVzIHNzaC1hZ2VudCwgd2hpY2ggd2UgYXJlIGFsbW9zdCBjZXJ0YWluIHRvIHdhbnQuCiAjCiBSREVQRU5EU18ke1BOfSArPSAib3BlbnNzaC1taXNjIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcG9sa2l0L2ZpbGVzL2d0ay1kb2MtY2hlY2sucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wb2xraXQvZmlsZXMvZ3RrLWRvYy1jaGVjay5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGI2YWQ3NS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wb2xraXQvZmlsZXMvZ3RrLWRvYy1jaGVjay5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLSBwb2xraXQtZ25vbWUtMC4xMDUvY29uZmlndXJlLmFjLm9yZwkyMDE1LTA1LTA0IDIyOjMzOjAzLjkyNTk3Nzk1MyAtMDcwMAotKysrIHBvbGtpdC1nbm9tZS0wLjEwNS9jb25maWd1cmUuYWMJMjAxNS0wNS0wNCAyMjozMzoxNi44NjIyODgwMzAgLTA3MDAKLUBAIC0xMjAsNiArMTIwLDkgQEAKLSAjIENoZWNrIGZvciByZXF1aXJlZCBwYWNrYWdlcwotICMgKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gCi0rIyBjaGVjayBmb3IgZ3RrLWRvYwotK0dUS19ET0NfQ0hFQ0soWzEuMTRdLFstLWZsYXZvdXIgbm8tdG1wbF0pCi0rCi0gUE9MS0lUX0FHRU5UX1JFUVVJUkVEPTAuOTcKLSBQT0xLSVRfR09CSkVDVF9SRVFVSVJFRD0wLjk3Ci0gR1RLX1JFUVVJUkVEPTMuMC4wCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wb2xraXQvcG9sa2l0LWdub21lXzAuMTA1LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcG9sa2l0L3BvbGtpdC1nbm9tZV8wLjEwNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU5OTczMS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9wb2xraXQvcG9sa2l0LWdub21lXzAuMTA1LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotU1VNTUFSWSA9ICJHTk9NRSBBdXRoZW50aWNhdGlvbiBBZ2VudCBmb3IgUG9saWN5S2l0IgotREVTQ1JJUFRJT04gPSAiUG9saWN5S2l0LWdub21lIHByb3ZpZGVzIGFuIEF1dGhlbnRpY2F0aW9uIEFnZW50IGZvciBQb2xpY3lLaXQgdGhhdCBpbnRlZ3JhdGVzIHdlbGwgd2l0aCB0aGUgR05PTUUgZGVza3RvcCBlbnZpcm9ubWVudCIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cucGFja2FnZWtpdC5vcmcvIgotQlVHVFJBQ0tFUiA9ICJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnLyIKLURFUEVORFMgPSAicG9sa2l0IGRidXMtZ2xpYiBnY29uZiBndGsrIGludGx0b29sLW5hdGl2ZSBnbm9tZS1jb21tb24iCi1MSUNFTlNFID0gIkxHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NDU3OWZhYjE3M2U0YzVlMTJhYWMwY2Q4M2VlOThlYyBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvbWFpbi5jO2JlZ2lubGluZT0xO2VuZGxpbmU9MjA7bWQ1PWFiYTE0NWQxODAyZjIzMjliYTU2MWUzZTQ4ZWNiNzk1IgotCi1TUkNfVVJJID0gImh0dHBzOi8vZG93bmxvYWQuZ25vbWUub3JnL3NvdXJjZXMvcG9sa2l0LWdub21lLyR7UFZ9L3BvbGtpdC1nbm9tZS0ke1BWfS50YXIueHogXAotICAgICAgICAgICBmaWxlOi8vZ3RrLWRvYy1jaGVjay5wYXRjaCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiNTBlY2FkMzdjODM0MmZiNGE1MmY1OTBkYjc1MzA2MjEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTc4NDQ5NDk2M2I4YmY5YTAwZWVkYzZjZDNhMjg2OGZiMTIzYjhhNWU1MTZlNjZjNWVkYTQ4ZGYxN2FiOTM2OSIKLQotRVhUUkFfT0VDT05GID0gIlwKLSAgICAtLWRpc2FibGUtc3RhdGljIFwKLSIKLQotREVQRU5EUyArPSAiZ3RrKzMiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIGd0ay1kb2MgcGtnY29uZmlnCi0KLUZJTEVTXyR7UE59ICs9ICIgJHtkYXRhZGlyfS9kYnVzLTEgXAotICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L1BvbGljeUtpdCBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yYXJwZC9yYXJwZF9zczk4MTEwNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JhcnBkL3JhcnBkX3NzOTgxMTA3LmJiCmluZGV4IDQwMjViODAuLjdjOWYyZGYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JhcnBkL3JhcnBkX3NzOTgxMTA3LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JhcnBkL3JhcnBkX3NzOTgxMTA3LmJiCkBAIC0zOCwxMyArMzgsMTEgQEAKICAgICBpbnN0YWxsIC1tIDY0NCByYXJwZC44ICR7RH0ke21hbmRpcn0vbWFuOC9yYXJwZC44CiAgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9ldGhlcnMuc2FtcGxlICR7RH0ke3N5c2NvbmZkaXJ9L2V0aGVycwogCi0gICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLCd0cnVlJywnZmFsc2UnLGQpfTsgdGhlbgotICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3JhcnBkLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCi0gICAgZmkKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vcmFycGQuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KIH0KIAotaW5oZXJpdCAke0BiYi51dGlscy5maWx0ZXIoJ1ZJUlRVQUwtUlVOVElNRV9pbml0X21hbmFnZXInLCAnc3lzdGVtZCcsIGQpfQoraW5oZXJpdCBzeXN0ZW1kCiAKIFNZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0iCiBTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAicmFycGQuc2VydmljZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JvY2tzZGIvcm9ja3NkYl9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yb2Nrc2RiL3JvY2tzZGJfZ2l0LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjE5YzFhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JvY2tzZGIvcm9ja3NkYl9naXQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1TVU1NQVJZID0gIlJvY2tzREIgYW4gZW1iZWRkYWJsZSwgcGVyc2lzdGVudCBrZXktdmFsdWUgc3RvcmUiCi1ERVNDUklQVElPTiA9ICJSb2Nrc0RCIGlzIGxpYnJhcnkgdGhhdCBwcm92aWRlcyBhbiBlbWJlZGRhYmxlLCBwZXJzaXN0ZW50IGtleS12YWx1ZSBzdG9yZSBmb3IgZmFzdCBzdG9yYWdlLiIKLUhPTUVQQUdFID0gImh0dHA6Ly9yb2Nrc2RiLm9yZy8iCi1MSUNFTlNFID0gIihBcGFjaGUtMi4wIHwgR1BMLTIuMCkgJiBCU0QtMy1DbGF1c2UiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLkFwYWNoZTttZDU9M2I4M2VmOTYzODdmMTQ2NTVmYzg1NGRkYzNjNmJkNTcgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vTElDRU5TRS5sZXZlbGRiO21kNT1mYjA0ZmY1N2ExNGYzMDhmMmVlZDRhOWI4N2Q0NTgzNyIKLQotU1JDUkVWID0gIjI2NmFjMjQ1YWZmZDY5NTU1NjQzYjczNWQxOWQzNzE1YzRlZmY5MWEiCi1QViA9ICI1LjgrZ2l0JHtTUkNQVn0iCi0KLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9mYWNlYm9vay8ke0JQTn0uZ2l0IgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1pbmhlcml0IGNtYWtlCi0KLVBBQ0tBR0VDT05GSUcgPz89ICJiemlwMiB6bGliIGx6NCIKLVBBQ0tBR0VDT05GSUdbYnppcDJdID0gIi1EV0lUSF9CWjI9T04sLURXSVRIX0JaMj1PRkYsYnppcDIiCi1QQUNLQUdFQ09ORklHW2x6NF0gPSAiLURXSVRIX0xaND1PTiwtRFdJVEhfTFo0PU9GRixsejQiCi1QQUNLQUdFQ09ORklHW3psaWJdID0gIi1EV0lUSF9aTElCPU9OLC1EV0lUSF9aTElCPU9GRix6bGliIgotUEFDS0FHRUNPTkZJR1tsaXRlXSA9ICItRFJPQ0tTREJfTElURT1PTiwtRFJPQ0tTREJfTElURT1PRkYiCi0KLSMgVG9vbHMgYW5kIHRlc3RzIGN1cnJlbnRseSBkb24ndCBjb21waWxlIG9uIGFybXY1IHNvIHdlIGRpc2FibGUgdGhlbQotRVhUUkFfT0VDTUFLRSA9ICJcCi0gICAgLURQT1JUQUJMRT1PTiBcCi0gICAgLURXSVRIX1RFU1RTPU9GRiBcCi0gICAgLURXSVRIX1RPT0xTPU9GRiBcCi0iCi0KLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2NtYWtlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcnN5c2xvZy9yc3lzbG9nLzAwMDEtSW5jbHVkZS1zeXMtdGltZS1oLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcnN5c2xvZy9yc3lzbG9nLzAwMDEtSW5jbHVkZS1zeXMtdGltZS1oLnBhdGNoCmluZGV4IDIzYzBmMjUuLmNhODhkZDMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZy8wMDAxLUluY2x1ZGUtc3lzLXRpbWUtaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvMDAwMS1JbmNsdWRlLXN5cy10aW1lLWgucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDNjM2MyMWY0NzM1ZWIyMTUyMDYyNzNiYzcxNGM1N2M5Njk5MjZkM2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDk3MzkwOTVkZTZhZTVmODQ0MzU0NzU2YWU5NjhmNWY4ODY0ZWIzZTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBNaW5nIExpdSA8cGV0ZXIueC5saXVAZXh0ZXJuYWwuYXRsYXNjb3Bjby5jb20+CiBEYXRlOiBTdW4sIDI2IEZlYiAyMDE3IDE0OjEwOjIxICswMTAwCiBTdWJqZWN0OiBbUEFUQ0hdIEluY2x1ZGUgc3lzL3RpbWUuaApAQCAtOCw2ICs4LDcgQEAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbbXVzbCBsaWJjIHNwZWNpZmljXQogCiBTaWduZWQtb2ZmLWJ5OiBNaW5nIExpdSA8cGV0ZXIueC5saXVAZXh0ZXJuYWwuYXRsYXNjb3Bjby5jb20+CisKIC0tLQogIHRlc3RzL21zbGVlcC5jIHwgNCAtLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCkBAIC0yOCw2ICsyOSwzIEBACiAgCiAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICB7Ci0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZy8wMDAxLVVuZGVmaW5lLUdMT0JfQlJBQ0UucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvMDAwMS1VbmRlZmluZS1HTE9CX0JSQUNFLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTAzYmIxLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZy8wMDAxLVVuZGVmaW5lLUdMT0JfQlJBQ0UucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi1Gcm9tIDY3NDZlM2E5NjE1ZDE1NjZiZjIyOGU5MDEyZDA4NDFiMTUxNzg4MTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNaW5nIExpdSA8bGl1Lm1pbmc1MEBnbWFpbC5jb20+Ci1EYXRlOiBTdW4sIDI2IEZlYiAyMDE3IDEzOjUwOjMzICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVuZGVmaW5lIEdMT0JfQlJBQ0UKLQotR0xPQl9CUkFDRSBpcyBub3QgZGVmaW5lZCBpbiBwb3NpeCBhbmQgdGh1cyBub3QgaW1wbGVtZW50ZWQgaW4gbXVzbCBsaWJjLgotCi1GaXhlZCBieSBkZWZpbmluZyBpdCB0byAwIGlmIGl0IGlzIHVuZGVmaW5lZC4KLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFttdXNsIGxpYmMgc3BlY2lmaWNdCi0KLVNpZ25lZC1vZmYtYnk6IE1pbmcgTGl1IDxwZXRlci54LmxpdUBleHRlcm5hbC5hdGxhc2NvcGNvLmNvbT4KLS0tLQotIHBsdWdpbnMvaW1maWxlL2ltZmlsZS5jIHwgNSArKysrKwotIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL3BsdWdpbnMvaW1maWxlL2ltZmlsZS5jIGIvcGx1Z2lucy9pbWZpbGUvaW1maWxlLmMKLWluZGV4IGQyMDQ3MWYuLmY5YWZmODEgMTAwNjQ0Ci0tLS0gYS9wbHVnaW5zL2ltZmlsZS9pbWZpbGUuYwotKysrIGIvcGx1Z2lucy9pbWZpbGUvaW1maWxlLmMKLUBAIC04NSw2ICs4NSwxMSBAQCBzdGF0aWMgaW50IGJMZWdhY3lDbmZNb2RHbG9iYWxzUGVybWl0dGVkOy8qIGFyZSBsZWdhY3kgbW9kdWxlLWdsb2JhbCBjb25maWcgcGFyYQotIAotICNkZWZpbmUgQUREX01FVEFEQVRBX1VOU1BFQ0lGSUVEIC0xCi0gCi0rLyogZml4ZXMgYnVpbGQgd2l0aCBtdXNsIGxpYmMgKi8KLSsjaWZuZGVmIEdMT0JfQlJBQ0UKLSsjZGVmaW5lIEdMT0JfQlJBQ0UgMAotKyNlbmRpZgotKwotIC8qIHRoaXMgc3RydWN0dXJlIGlzIHVzZWQgaW4gcHVyZSBwb2xsaW5nIG1vZGUgYXMgd2VsbCBvbmUgb2YgdGhlIHN1cHBvcnQKLSAgKiBzdHJ1Y3R1cmVzIGZvciBpbm90aWZ5LgotICAqLwotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvcnN5c2xvZy1maXgtcHRlc3Qtbm90LWZpbmlzaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZy9yc3lzbG9nLWZpeC1wdGVzdC1ub3QtZmluaXNoLnBhdGNoCmluZGV4IGJkY2I2ZTIuLmEyNDhmNzUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZy9yc3lzbG9nLWZpeC1wdGVzdC1ub3QtZmluaXNoLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZy9yc3lzbG9nLWZpeC1wdGVzdC1ub3QtZmluaXNoLnBhdGNoCkBAIC0xLDMgKzEsOCBAQAorRnJvbSAwN2FkMmExOTA1MDg5YjkxMjQ2MjMzMjRhOTk2OWU0NTIyMzE3MTEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KK0RhdGU6IEZyaSwgMTIgU2VwIDIwMTQgMDM6NDE6MTEgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSF0gcnN5c2xvZzogdXBkYXRlIGNvbmZpZ3VyZSB0byBmaXggcHRlc3QKKwogJE1heE1lc3NhZ2VTaXplIGRvZXNuJ3Qgd29yayBpZiBiZWZvcmUgJEluY2x1ZGVDb25maWcgZGlhZy1jb21tb24uY29uZiwgdGhlbgogdGVzdCBjYXNlcyBmYWxsIGludG8gaW5maW5pdGUgbG9vcCB3aXRoIGVycm9yIG1lc3NhZ2U6CiAKQEAgLTYsMTMgKzExLDI0IEBACiAKIFVwZGF0ZSBjb25maWd1cmUgdG8gZml4IGl0LgogCi1VcHN0cmVhbS1TdGF0dXM6IHBlbmRpbmcKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCi1LYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgorCiAtLS0KLWRpZmYgLU5ydSByc3lzbG9nLTcuNC40L3Rlc3RzL3Rlc3RzdWl0ZXMvY29tcGxleDEuY29uZiByc3lzbG9nLTcuNC40Lm5ldy90ZXN0cy90ZXN0c3VpdGVzL2NvbXBsZXgxLmNvbmYKLS0tLSByc3lzbG9nLTcuNC40L3Rlc3RzL3Rlc3RzdWl0ZXMvY29tcGxleDEuY29uZgkyMDEzLTA4LTMxIDAwOjMwOjQxLjAwMDAwMDAwMCArMDgwMAotKysrIHJzeXNsb2ctNy40LjQubmV3L3Rlc3RzL3Rlc3RzdWl0ZXMvY29tcGxleDEuY29uZgkyMDEzLTEyLTE4IDE0OjI4OjEwLjY0NDAwNDE4NCArMDgwMAorIHRlc3RzL3Rlc3RzdWl0ZXMvY29tcGxleDEuY29uZiAgICAgICAgICAgICB8IDIgKy0KKyB0ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZS5jb25mICAgICAgICAgfCAyICstCisgdGVzdHMvdGVzdHN1aXRlcy9nemlwd3JfbGFyZ2VfZHluZmlsZS5jb25mIHwgMiArLQorIHRlc3RzL3Rlc3RzdWl0ZXMvaW1wdGNwX2Nvbm5kcm9wLmNvbmYgICAgICB8IDIgKy0KKyB0ZXN0cy90ZXN0c3VpdGVzL2ltcHRjcF9sYXJnZS5jb25mICAgICAgICAgfCAyICstCisgdGVzdHMvdGVzdHN1aXRlcy9pbXRjcF9jb25uZHJvcC5jb25mICAgICAgIHwgMiArLQorIHRlc3RzL3Rlc3RzdWl0ZXMvd3JfbGFyZ2UuY29uZiAgICAgICAgICAgICB8IDIgKy0KKyA3IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzdWl0ZXMvY29tcGxleDEuY29uZiBiL3Rlc3RzL3Rlc3RzdWl0ZXMvY29tcGxleDEuY29uZgoraW5kZXggOWI2YTlmMy4uZTAwY2FhNCAxMDA2NDQKKy0tLSBhL3Rlc3RzL3Rlc3RzdWl0ZXMvY29tcGxleDEuY29uZgorKysrIGIvdGVzdHMvdGVzdHN1aXRlcy9jb21wbGV4MS5jb25mCiBAQCAtMSw3ICsxLDcgQEAKICAjIGNvbXBsZXggdGVzdCBjYXNlIHdpdGggbXVsdGlwbGUgYWN0aW9ucyBpbiBnemlwIG1vZGUKICAjIHJnZXJoYXJkcywgMjAwOS0wNS0yMgpAQCAtMjIsOSArMzgsMTAgQEAKICAKICAkTWFpbk1zZ1F1ZXVlVGltZW91dEVucXVldWUgNTAwMAogIAotZGlmZiAtTnJ1IHJzeXNsb2ctNy40LjQvdGVzdHMvdGVzdHN1aXRlcy9nemlwd3JfbGFyZ2UuY29uZiByc3lzbG9nLTcuNC40Lm5ldy90ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZS5jb25mCi0tLS0gcnN5c2xvZy03LjQuNC90ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZS5jb25mCTIwMTItMDQtMDQgMTQ6Mjk6NTUuMDAwMDAwMDAwICswODAwCi0rKysgcnN5c2xvZy03LjQuNC5uZXcvdGVzdHMvdGVzdHN1aXRlcy9nemlwd3JfbGFyZ2UuY29uZgkyMDEzLTEyLTE4IDE0OjI4OjEwLjY0NTAwNDE4NiArMDgwMAorZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlLmNvbmYgYi90ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZS5jb25mCitpbmRleCA1NGFkM2JiLi5lODI0N2E5IDEwMDY0NAorLS0tIGEvdGVzdHMvdGVzdHN1aXRlcy9nemlwd3JfbGFyZ2UuY29uZgorKysrIGIvdGVzdHMvdGVzdHN1aXRlcy9nemlwd3JfbGFyZ2UuY29uZgogQEAgLTEsNyArMSw3IEBACiAgIyBzaW1wbGUgYXN5bmMgd3JpdGluZyB0ZXN0CiAgIyByZ2VyaGFyZHMsIDIwMTAtMDMtMDkKQEAgLTM0LDkgKzUxLDEwIEBACiAgCiAgJE1vZExvYWQgLi4vcGx1Z2lucy9pbXRjcC8ubGlicy9pbXRjcAogICRNYWluTXNnUXVldWVUaW1lb3V0U2h1dGRvd24gMTAwMDAKLWRpZmYgLU5ydSByc3lzbG9nLTcuNC40L3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlX2R5bmZpbGUuY29uZiByc3lzbG9nLTcuNC40Lm5ldy90ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZV9keW5maWxlLmNvbmYKLS0tLSByc3lzbG9nLTcuNC40L3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlX2R5bmZpbGUuY29uZgkyMDEyLTA0LTA0IDE0OjI5OjU1LjAwMDAwMDAwMCArMDgwMAotKysrIHJzeXNsb2ctNy40LjQubmV3L3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlX2R5bmZpbGUuY29uZgkyMDEzLTEyLTE4IDE0OjI4OjEwLjY0NTAwNDE4NiArMDgwMAorZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlX2R5bmZpbGUuY29uZiBiL3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlX2R5bmZpbGUuY29uZgoraW5kZXggM2ExYjI1NS4uMjk3Y2I3MCAxMDA2NDQKKy0tLSBhL3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlX2R5bmZpbGUuY29uZgorKysrIGIvdGVzdHMvdGVzdHN1aXRlcy9nemlwd3JfbGFyZ2VfZHluZmlsZS5jb25mCiBAQCAtMSw3ICsxLDcgQEAKICAjIHNpbXBsZSBhc3luYyB3cml0aW5nIHRlc3QKICAjIHJnZXJoYXJkcywgMjAxMC0wMy0wOQpAQCAtNDYsOSArNjQsMTAgQEAKICAKICAkTW9kTG9hZCAuLi9wbHVnaW5zL2ltdGNwLy5saWJzL2ltdGNwCiAgJE1haW5Nc2dRdWV1ZVRpbWVvdXRTaHV0ZG93biAxMDAwMAotZGlmZiAtTnJ1IHJzeXNsb2ctNy40LjQvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfY29ubmRyb3AuY29uZiByc3lzbG9nLTcuNC40Lm5ldy90ZXN0cy90ZXN0c3VpdGVzL2ltcHRjcF9jb25uZHJvcC5jb25mCi0tLS0gcnN5c2xvZy03LjQuNC90ZXN0cy90ZXN0c3VpdGVzL2ltcHRjcF9jb25uZHJvcC5jb25mCTIwMTMtMDgtMzEgMDA6MzA6NDEuMDAwMDAwMDAwICswODAwCi0rKysgcnN5c2xvZy03LjQuNC5uZXcvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfY29ubmRyb3AuY29uZgkyMDEzLTEyLTE4IDE0OjI4OjEwLjY0NjAwNDE4OSArMDgwMAorZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzdWl0ZXMvaW1wdGNwX2Nvbm5kcm9wLmNvbmYgYi90ZXN0cy90ZXN0c3VpdGVzL2ltcHRjcF9jb25uZHJvcC5jb25mCitpbmRleCA3N2E1ZDc5Li5kOWExNGE4IDEwMDY0NAorLS0tIGEvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfY29ubmRyb3AuY29uZgorKysrIGIvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfY29ubmRyb3AuY29uZgogQEAgLTEsNyArMSw3IEBACiAgIyBzaW1wbGUgYXN5bmMgd3JpdGluZyB0ZXN0CiAgIyByZ2VyaGFyZHMsIDIwMTAtMDMtMDkKQEAgLTU4LDkgKzc3LDEwIEBACiAgCiAgJE1vZExvYWQgLi4vcGx1Z2lucy9pbXB0Y3AvLmxpYnMvaW1wdGNwCiAgJE1haW5Nc2dRdWV1ZVRpbWVvdXRTaHV0ZG93biAxMDAwMAotZGlmZiAtTnJ1IHJzeXNsb2ctNy40LjQvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfbGFyZ2UuY29uZiByc3lzbG9nLTcuNC40Lm5ldy90ZXN0cy90ZXN0c3VpdGVzL2ltcHRjcF9sYXJnZS5jb25mCi0tLS0gcnN5c2xvZy03LjQuNC90ZXN0cy90ZXN0c3VpdGVzL2ltcHRjcF9sYXJnZS5jb25mCTIwMTMtMDgtMzEgMDA6MzA6NDEuMDAwMDAwMDAwICswODAwCi0rKysgcnN5c2xvZy03LjQuNC5uZXcvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfbGFyZ2UuY29uZgkyMDEzLTEyLTE4IDE0OjI4OjEwLjY0NjAwNDE4OSArMDgwMAorZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzdWl0ZXMvaW1wdGNwX2xhcmdlLmNvbmYgYi90ZXN0cy90ZXN0c3VpdGVzL2ltcHRjcF9sYXJnZS5jb25mCitpbmRleCA3N2E1ZDc5Li5kOWExNGE4IDEwMDY0NAorLS0tIGEvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfbGFyZ2UuY29uZgorKysrIGIvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfbGFyZ2UuY29uZgogQEAgLTEsNyArMSw3IEBACiAgIyBzaW1wbGUgYXN5bmMgd3JpdGluZyB0ZXN0CiAgIyByZ2VyaGFyZHMsIDIwMTAtMDMtMDkKQEAgLTcwLDkgKzkwLDEwIEBACiAgCiAgJE1vZExvYWQgLi4vcGx1Z2lucy9pbXB0Y3AvLmxpYnMvaW1wdGNwCiAgJE1haW5Nc2dRdWV1ZVRpbWVvdXRTaHV0ZG93biAxMDAwMAotZGlmZiAtTnJ1IHJzeXNsb2ctNy40LjQvdGVzdHMvdGVzdHN1aXRlcy9pbXRjcF9jb25uZHJvcC5jb25mIHJzeXNsb2ctNy40LjQubmV3L3Rlc3RzL3Rlc3RzdWl0ZXMvaW10Y3BfY29ubmRyb3AuY29uZgotLS0tIHJzeXNsb2ctNy40LjQvdGVzdHMvdGVzdHN1aXRlcy9pbXRjcF9jb25uZHJvcC5jb25mCTIwMTMtMDctMTkgMjA6NTk6MDMuMDAwMDAwMDAwICswODAwCi0rKysgcnN5c2xvZy03LjQuNC5uZXcvdGVzdHMvdGVzdHN1aXRlcy9pbXRjcF9jb25uZHJvcC5jb25mCTIwMTMtMTItMTggMTQ6Mjg6MTAuNjQ2MDA0MTg5ICswODAwCitkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHN1aXRlcy9pbXRjcF9jb25uZHJvcC5jb25mIGIvdGVzdHMvdGVzdHN1aXRlcy9pbXRjcF9jb25uZHJvcC5jb25mCitpbmRleCBkZTQxYmM0Li43ODQ0ZGM3IDEwMDY0NAorLS0tIGEvdGVzdHMvdGVzdHN1aXRlcy9pbXRjcF9jb25uZHJvcC5jb25mCisrKysgYi90ZXN0cy90ZXN0c3VpdGVzL2ltdGNwX2Nvbm5kcm9wLmNvbmYKIEBAIC0xLDcgKzEsNyBAQAogICMgc2ltcGxlIGFzeW5jIHdyaXRpbmcgdGVzdAogICMgcmdlcmhhcmRzLCAyMDEwLTAzLTA5CkBAIC04Miw5ICsxMDMsMTAgQEAKICAKICAkTW9kTG9hZCAuLi9wbHVnaW5zL2ltdGNwLy5saWJzL2ltdGNwCiAgJE1haW5Nc2dRdWV1ZVRpbWVvdXRTaHV0ZG93biAxMDAwMAotZGlmZiAtTnJ1IHJzeXNsb2ctNy40LjQvdGVzdHMvdGVzdHN1aXRlcy93cl9sYXJnZS5jb25mIHJzeXNsb2ctNy40LjQubmV3L3Rlc3RzL3Rlc3RzdWl0ZXMvd3JfbGFyZ2UuY29uZgotLS0tIHJzeXNsb2ctNy40LjQvdGVzdHMvdGVzdHN1aXRlcy93cl9sYXJnZS5jb25mCTIwMTItMDQtMDQgMTQ6Mjk6NTUuMDAwMDAwMDAwICswODAwCi0rKysgcnN5c2xvZy03LjQuNC5uZXcvdGVzdHMvdGVzdHN1aXRlcy93cl9sYXJnZS5jb25mCTIwMTMtMTItMTggMTQ6Mjg6MTAuNjQ3MDA0MTkwICswODAwCitkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHN1aXRlcy93cl9sYXJnZS5jb25mIGIvdGVzdHMvdGVzdHN1aXRlcy93cl9sYXJnZS5jb25mCitpbmRleCBiNjRmMTMyLi5iMGFlMjY0IDEwMDY0NAorLS0tIGEvdGVzdHMvdGVzdHN1aXRlcy93cl9sYXJnZS5jb25mCisrKysgYi90ZXN0cy90ZXN0c3VpdGVzL3dyX2xhcmdlLmNvbmYKIEBAIC0xLDcgKzEsNyBAQAogICMgc2ltcGxlIGFzeW5jIHdyaXRpbmcgdGVzdAogICMgcmdlcmhhcmRzLCAyMDEwLTAzLTA5CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvdXNlLXBrZ2NvbmZpZy10by1jaGVjay1saWJnY3J5cHQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvdXNlLXBrZ2NvbmZpZy10by1jaGVjay1saWJnY3J5cHQucGF0Y2gKaW5kZXggNDZlZGRkNi4uMTYyZDIzOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcnN5c2xvZy9yc3lzbG9nL3VzZS1wa2djb25maWctdG8tY2hlY2stbGliZ2NyeXB0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZy91c2UtcGtnY29uZmlnLXRvLWNoZWNrLWxpYmdjcnlwdC5wYXRjaApAQCAtMSw1ICsxLDUgQEAKLUZyb20gNWMzYmE3OTE3N2Y3ZDE3NjNkYjMzYzQzNThhZjJhZjYwZmYyMTRiNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4gCitGcm9tIGQwODUyMDA2YmYzZDMwNWU4OTg0Yjg1YjQxOTk3ZDQzZDQ0NzY5MzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CiBEYXRlOiBXZWQsIDE4IEp1biAyMDE0IDEzOjQ2OjUyICswODAwCiBTdWJqZWN0OiBbUEFUQ0hdIHVzZSBwa2djb25maWcgdG8gY2hlY2sgbGliZ2NyeXB0CiAKQEAgLTEwLDE1ICsxMCwxNiBAQAogCiBTaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CiBTaWduZWQtb2ZmLWJ5OiBXZW56b25nIEZhbiA8d2Vuem9uZy5mYW5Ad2luZHJpdmVyLmNvbT4KKwogLS0tCiAgY29uZmlndXJlLmFjIHwgMTUgKy0tLS0tLS0tLS0tLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxNCBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggMGYzMTg2OS4uZDM1ZGI0MiAxMDA2NDQKK2luZGV4IDYyMTc4YzMuLmI1NmM5YzcgMTAwNjQ0CiAtLS0gYS9jb25maWd1cmUuYWMKICsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTc3NywyMCArNzc3LDcgQEAgQUNfQVJHX0VOQUJMRShsaWJnY3J5cHQsCitAQCAtODg5LDIwICs4ODksNyBAQCBBQ19BUkdfRU5BQkxFKGxpYmdjcnlwdCwKICAgICAgICAgIFtlbmFibGVfbGliZ2NyeXB0PXllc10KICApCiAgaWYgdGVzdCAieCRlbmFibGVfbGliZ2NyeXB0IiA9ICJ4eWVzIjsgdGhlbgpAQCAtNDAsNiArNDEsMyBAQAogIGZpCiAgQU1fQ09ORElUSU9OQUwoRU5BQkxFX0xJQkdDUllQVCwgdGVzdCB4JGVuYWJsZV9saWJnY3J5cHQgPSB4eWVzKQogIEFDX1NVQlNUKExJQkdDUllQVF9DRkxBR1MpCi0tLSAKLTIuOC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZ184LjI5LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2dfOC4yOS4wLmJiCmluZGV4IDcwNTZlMWMuLjQ3NjU0MGQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZ184LjI5LjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcnN5c2xvZy9yc3lzbG9nXzguMjkuMC5iYgpAQCAtMjcsNyArMjcsNiBAQAogIgogCiBTUkNfVVJJX2FwcGVuZF9saWJjLW11c2wgPSAiIFwKLSAgICBmaWxlOi8vMDAwMS1VbmRlZmluZS1HTE9CX0JSQUNFLnBhdGNoIFwKICAgICBmaWxlOi8vMDAwMS1JbmNsdWRlLXN5cy10aW1lLWgucGF0Y2ggXAogIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zYmxpbS1zZmNiL3NibGltLXNmY2JfMS40LjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zYmxpbS1zZmNiL3NibGltLXNmY2JfMS40LjkuYmIKaW5kZXggYzZiOWYxMC4uMTBmZmFhYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvc2JsaW0tc2ZjYi9zYmxpbS1zZmNiXzEuNC45LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3NibGltLXNmY2Ivc2JsaW0tc2ZjYl8xLjQuOS5iYgpAQCAtMTEsNiArMTEsOSBAQAogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZjMwMGFmZDU5ODU0NmFkZDAzNDM2NGNkMGE1MzMyNjEiCiBERVBFTkRTID0gImN1cmwgbGlicGFtIG9wZW5zc2wgc2JsaW0tc2ZjLWNvbW1vbiB1bnppcC1uYXRpdmUiCiAKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAicGFtIgorCiBTUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L3NibGltLyR7QlB9LnRhci5iejIgXAogICAgICAgICAgICBmaWxlOi8vc2ZjYi5zZXJ2aWNlIFwKICAgICAgICAgICAgZmlsZTovL3NibGltLXNmY2ItMS4zLjktc2ZjYnJlcG9zLXNjaGVtYS1sb2NhdGlvbi5wYXRjaCBcCkBAIC0yOCw3ICszMSw3IEBACiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjM0YTY3YjJmN2FjM2IzODZhNzkxNjBlYjQ0NDEzZDYxOGUzM2U0ZTdmYzc0YWU2OGIwMjQwNDg0YWYxNDlkZCIKIAogaW5oZXJpdCBhdXRvdG9vbHMKLWluaGVyaXQgJHtAYmIudXRpbHMuZmlsdGVyKCdWSVJUVUFMLVJVTlRJTUVfaW5pdF9tYW5hZ2VyJywgJ3N5c3RlbWQnLCBkKX0KK2luaGVyaXQgc3lzdGVtZAogCiBTWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59IgogU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInNibGltLXNmY2Iuc2VydmljZSIKQEAgLTUzLDEwICs1Niw4IEBACiAKICAgICBvZV9ydW5tYWtlIERFU1RESVI9JHtEfSBpbnN0YWxsCiAKLSAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywnc3lzdGVtZCcsJ3RydWUnLCdmYWxzZScsZCl9OyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vc2ZjYi5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL3NibGltLXNmY2Iuc2VydmljZQotICAgIGZpCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3NmY2Iuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9zYmxpbS1zZmNiLnNlcnZpY2UKIAogICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCiAgICAgbXYgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NmY2IgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NibGltLXNmY2IKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3NtYXJ0bW9udG9vbHMvc21hcnRtb250b29sc182LjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zbWFydG1vbnRvb2xzL3NtYXJ0bW9udG9vbHNfNi41LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTcwZDJhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3NtYXJ0bW9udG9vbHMvc21hcnRtb250b29sc182LjUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi1TVU1NQVJZID0gIkNvbnRyb2wgYW5kIG1vbml0b3Igc3RvcmFnZSBzeXN0ZW1zIHVzaW5nIFMuTS5BLlIuVCIKLURFU0NSSVBUSU9OID0gXAotIlRoZSBzbWFydG1vbnRvb2xzIHBhY2thZ2UgY29udGFpbnMgdHdvIHV0aWxpdHkgcHJvZ3JhbXMgKHNtYXJ0Y3RsIFwKLWFuZCBzbWFydGQpIHRvIGNvbnRyb2wgYW5kIG1vbml0b3Igc3RvcmFnZSBzeXN0ZW1zIHVzaW5nIHRoZSBTZWxmLVwKLU1vbml0b3JpbmcsIEFuYWx5c2lzIGFuZCBSZXBvcnRpbmcgVGVjaG5vbG9neSBTeXN0ZW0gKFNNQVJUKSBidWlsdCBcCi1pbnRvIG1vc3QgbW9kZXJuIEFUQSBhbmQgU0NTSSBoYXJkIGRpc2tzLiBJbiBtYW55IGNhc2VzLCB0aGVzZSBcCi11dGlsaXRpZXMgd2lsbCBwcm92aWRlIGFkdmFuY2VkIHdhcm5pbmcgb2YgZGlzayBkZWdyYWRhdGlvbiBhbmQgZmFpbHVyZS4iCi0KLUhPTUVQQUdFID0gImh0dHA6Ly9zbWFydG1vbnRvb2xzLnNvdXJjZWZvcmdlLm5ldC8iCi1TRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCi0KLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKLQotU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vc21hcnRtb250b29scy9zbWFydG1vbnRvb2xzLSR7UFZ9LnRhci5neiBcCi0gICAgZmlsZTovL2luaXRkLnNtYXJ0ZCBcCi0gICAgZmlsZTovL3NtYXJ0bW9udG9vbHMuZGVmYXVsdCBcCi0gICAgZmlsZTovL3NtYXJ0ZC5zZXJ2aWNlIFwKLSIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2xpYmNhcC1uZyBzZWxpbnV4JywgZCl9IgotUEFDS0FHRUNPTkZJR1tsaWJjYXAtbmddID0gIi0td2l0aC1saWJjYXAtbmc9eWVzLC0td2l0aC1saWJjYXAtbmc9bm8sbGliY2FwLW5nIgotUEFDS0FHRUNPTkZJR1tzZWxpbnV4XSA9ICItLXdpdGgtc2VsaW51eD15ZXMsLS13aXRoLXNlbGludXg9bm8sbGlic2VsaW51eCIKLQotU1JDX1VSSVttZDVzdW1dID0gIjA5M2FlZWMzZjhmMzlmYTlhMzc1OTNjNDAxMmQzMTU2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg5ZThiYjA4MDEzMGJjNmNlMTQ4NTczYmE1YmI5MWJmZTMwMjM2YjY0YjFiNWJiY2EyNjUxNWQ0YjVjOTQ1YmMiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHVwZGF0ZS1yYy5kIHN5c3RlbWQKLQotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInNtYXJ0ZC5zZXJ2aWNlIgotU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgotCi1kb19pbnN0YWxsX2FwcGVuZCAoKSB7Ci0gICAgI2luc3RhbGwgdGhlIGluaXQuZC9zbWFydGQKLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAotICAgIGluc3RhbGwgLXAgLW0gMDc1NSAke1dPUktESVJ9L2luaXRkLnNtYXJ0ZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvc21hcnRkCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0Ci0gICAgaW5zdGFsbCAtcCAtbSAwNjQ0ICR7V09SS0RJUn0vc21hcnRtb250b29scy5kZWZhdWx0ICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvc21hcnRtb250b29scwotCi0gICAgI2luc3RhbGwgc3lzdGVtZCBzZXJ2aWNlIGZpbGUKLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vc21hcnRkLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICBzZWQgLWkgLWUgJ3MsQEJBU0VfQklORElSQCwke2Jhc2VfYmluZGlyfSxnJyBcCi0gICAgICAgIC1lICdzLEBTWVNDT05GRElSQCwke3N5c2NvbmZkaXJ9LGcnIFwKLSAgICAgICAgLWUgJ3MsQFNCSU5ESVJALCR7c2JpbmRpcn0sZycgXAotICAgICAgICAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9zbWFydGQuc2VydmljZQotfQotCi1JTklUU0NSSVBUX05BTUUgPSAic21hcnRkIgotSU5JVFNDUklQVF9QQVJBTVMgPSAic3RhcnQgNjAgMiAzIDQgNSAuIHN0b3AgNjAgMCAxIDYgLiIKLQotUkRFUEVORFNfJHtQTn0gKz0gIm1haWx4IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvc21hcnRtb250b29scy9zbWFydG1vbnRvb2xzXzYuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3NtYXJ0bW9udG9vbHMvc21hcnRtb250b29sc182LjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWExNzY3ZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3NtYXJ0bW9udG9vbHMvc21hcnRtb250b29sc182LjYuYmIKQEAgLTAsMCArMSw1MiBAQAorU1VNTUFSWSA9ICJDb250cm9sIGFuZCBtb25pdG9yIHN0b3JhZ2Ugc3lzdGVtcyB1c2luZyBTLk0uQS5SLlQiCitERVNDUklQVElPTiA9IFwKKyJUaGUgc21hcnRtb250b29scyBwYWNrYWdlIGNvbnRhaW5zIHR3byB1dGlsaXR5IHByb2dyYW1zIChzbWFydGN0bCBcCithbmQgc21hcnRkKSB0byBjb250cm9sIGFuZCBtb25pdG9yIHN0b3JhZ2Ugc3lzdGVtcyB1c2luZyB0aGUgU2VsZi1cCitNb25pdG9yaW5nLCBBbmFseXNpcyBhbmQgUmVwb3J0aW5nIFRlY2hub2xvZ3kgU3lzdGVtIChTTUFSVCkgYnVpbHQgXAoraW50byBtb3N0IG1vZGVybiBBVEEgYW5kIFNDU0kgaGFyZCBkaXNrcy4gSW4gbWFueSBjYXNlcywgdGhlc2UgXAordXRpbGl0aWVzIHdpbGwgcHJvdmlkZSBhZHZhbmNlZCB3YXJuaW5nIG9mIGRpc2sgZGVncmFkYXRpb24gYW5kIGZhaWx1cmUuIgorCitIT01FUEFHRSA9ICJodHRwOi8vc21hcnRtb250b29scy5zb3VyY2Vmb3JnZS5uZXQvIgorU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgorCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMiCisKK1NSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3NtYXJ0bW9udG9vbHMvc21hcnRtb250b29scy0ke1BWfS50YXIuZ3ogXAorICAgIGZpbGU6Ly9pbml0ZC5zbWFydGQgXAorICAgIGZpbGU6Ly9zbWFydG1vbnRvb2xzLmRlZmF1bHQgXAorICAgIGZpbGU6Ly9zbWFydGQuc2VydmljZSBcCisiCisKK1BBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdsaWJjYXAtbmcgc2VsaW51eCcsIGQpfSIKK1BBQ0tBR0VDT05GSUdbbGliY2FwLW5nXSA9ICItLXdpdGgtbGliY2FwLW5nPXllcywtLXdpdGgtbGliY2FwLW5nPW5vLGxpYmNhcC1uZyIKK1BBQ0tBR0VDT05GSUdbc2VsaW51eF0gPSAiLS13aXRoLXNlbGludXg9eWVzLC0td2l0aC1zZWxpbnV4PW5vLGxpYnNlbGludXgiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI5YWUyYzZlNzEzMWNkMjgxM2VkY2M2NWNiZTVmMjIzZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1MWY0M2QwZmIwNjRmY2NhZjgyM2JiZTY4Y2YwZDMxN2QwODk1ZmY4OTVhYTM1M2IzMzM5YTNiMzE2YTUzMDU0IgorCitpbmhlcml0IGF1dG90b29scyB1cGRhdGUtcmMuZCBzeXN0ZW1kCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJzbWFydGQuc2VydmljZSIKK1NZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKKworZG9faW5zdGFsbF9hcHBlbmQgKCkgeworICAgICNpbnN0YWxsIHRoZSBpbml0LmQvc21hcnRkCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBpbnN0YWxsIC1wIC1tIDA3NTUgJHtXT1JLRElSfS9pbml0ZC5zbWFydGQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NtYXJ0ZAorICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdAorICAgIGluc3RhbGwgLXAgLW0gMDY0NCAke1dPUktESVJ9L3NtYXJ0bW9udG9vbHMuZGVmYXVsdCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3NtYXJ0bW9udG9vbHMKKworICAgICNpbnN0YWxsIHN5c3RlbWQgc2VydmljZSBmaWxlCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3NtYXJ0ZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgc2VkIC1pIC1lICdzLEBCQVNFX0JJTkRJUkAsJHtiYXNlX2JpbmRpcn0sZycgXAorICAgICAgICAtZSAncyxAU1lTQ09ORkRJUkAsJHtzeXNjb25mZGlyfSxnJyBcCisgICAgICAgIC1lICdzLEBTQklORElSQCwke3NiaW5kaXJ9LGcnIFwKKyAgICAgICAgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vc21hcnRkLnNlcnZpY2UKK30KKworSU5JVFNDUklQVF9OQU1FID0gInNtYXJ0ZCIKK0lOSVRTQ1JJUFRfUEFSQU1TID0gInN0YXJ0IDYwIDIgMyA0IDUgLiBzdG9wIDYwIDAgMSA2IC4iCisKK1JERVBFTkRTXyR7UE59ICs9ICJtYWlseCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3NvY2tldGNhbi9jYW4taXNvdHBfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvc29ja2V0Y2FuL2Nhbi1pc290cF9naXQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2MwMTllYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3NvY2tldGNhbi9jYW4taXNvdHBfZ2l0LmJiCkBAIC0wLDAgKzEsMTIgQEAKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03MmQ5NzdkNjk3YzNjMDU4MzBmZGZmMDBhNzQ0ODkzMSIKK1NSQ1JFViA9ICJkMTI0OGIwZjIyZWE4ZGMzYjlkODRhNjFiZDM1YTgzMzA5YmRiNGI0IgorUFYgPSAiMS4wK2dpdCR7U1JDUFZ9IgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vaGFydGtvcHAvY2FuLWlzb3RwLmdpdDtwcm90b2NvbD1odHRwcyIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBtb2R1bGUKKworRVhUUkFfT0VNQUtFICs9ICJLRVJORUxESVI9JHtTVEFHSU5HX0tFUk5FTF9ESVJ9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvc3lzZGlnL3N5c2RpZ19naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zeXNkaWcvc3lzZGlnX2dpdC5iYgppbmRleCBiYzZmZWMwLi40ZjU4MjgxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zeXNkaWcvc3lzZGlnX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zeXNkaWcvc3lzZGlnX2dpdC5iYgpAQCAtOCw2ICs4LDggQEAKIAogaW5oZXJpdCBjbWFrZSBwa2djb25maWcKIAorT0VDTUFLRV9HRU5FUkFUT1IgPSAiVW5peCBNYWtlZmlsZXMiCisKIERFUEVORFMgPSAibHVhaml0IHpsaWIgbmN1cnNlcyIKIFJERVBFTkRTXyR7UE59ID0gImJhc2giCiAKQEAgLTMzLDMgKzM1LDcgQEAKICAgICAke2RhdGFkaXJ9L3pzaC8qIFwKICAgICAke3ByZWZpeH0vc3JjLyogIFwKICIKKworIyBsdWFqaXQgbm90IHN1cHBvcnRlZCBvbiBBYXJjaDY0CitDT01QQVRJQkxFX0hPU1QgPSAiXig/IWFhcmNoNjQpLioiCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3QxbGliL3QxbGliLTUuMS4yL2NvbmZpZ3VyZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3QxbGliL3QxbGliLTUuMS4yL2NvbmZpZ3VyZS5wYXRjaAppbmRleCA4Yjk4NzA3Li45NzZlMDM4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90MWxpYi90MWxpYi01LjEuMi9jb25maWd1cmUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdDFsaWIvdDFsaWItNS4xLjIvY29uZmlndXJlLnBhdGNoCkBAIC0xLDExICsxLDIxIEBACitGcm9tIDgxYzFiYTk0MDQxNTU5NTU4NGE4MzdhYjEwNzhjNjQ4NTUwNzJmMGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgorRGF0ZTogTW9uLCAyMSBOb3YgMjAxMSAxMjowMDo1NCArMDEwMAorU3ViamVjdDogW1BBVENIXSB0MWxpYjogYWRkIDUuMS4yCiAKICMKICMgUGF0Y2ggbWFuYWdlZCBieSBodHRwOi8vd3d3LmhvbGdlcnNjaHVyaWcuZGUvcGF0Y2hlci5odG1sCiAjCiAKLS0tLSB0MWxpYi01LjAuMi9jb25maWd1cmUuaW5+Y29uZmlndXJlLnBhdGNoCi0rKysgdDFsaWItNS4wLjIvY29uZmlndXJlLmluCi1AQCAtNzUsOSArNzUsOSBAQAorLS0tCisgY29uZmlndXJlLmluIHwgOTUgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCitpbmRleCBlYWRlNGMwLi5lNjQ5ZWE5IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmluCisrKysgYi9jb25maWd1cmUuaW4KK0BAIC03NCw5ICs3NCw5IEBAIFQxTElCX1BBVENITEVWRUw9YnVpbHRpbihldmFsLCBNQUNST19UMUxJQl9MVF9SRVZJU0lPTikKICBUMUxJQl9WRVJTSU9OU1RSSU5HPVwiTUFDUk9fVDFMSUJfSURFTlRJRklFUlwiCiAgCiAgCkBAIC0xOCw3ICsyOCw3IEBACiAgCiAgZG5sIFdlIHdhbnQgdGhlc2UgYmVmb3JlIHRoZSBjaGVja3MsIHNvIHRoZSBjaGVja3MgY2FuIG1vZGlmeSB0aGVpciB2YWx1ZXMuCiAgdGVzdCAteiAiJExETElCUyIgJiYgTERMSUJTPS1sbSAgIEFDX1NVQlNUKExETElCUykKLUBAIC0xNjEsNiArMTYxLDcgQEAKK0BAIC0xNjIsNiArMTYyLDcgQEAgZmkKICAKICBkbmwgKioqKiBDaGVjayBmb3IgdW5kZXJzY29yZSBvbiBleHRlcm5hbCBzeW1ib2xzICoqKioKICAKQEAgLTI2LDIxICszNiwxMiBAQAogIEFDX0NBQ0hFX0NIRUNLKCJ3aGV0aGVyIGV4dGVybmFsIHN5bWJvbHMgbmVlZCBhbiB1bmRlcnNjb3JlIHByZWZpeCIsCiAgICAgICAgICAgICAgICAgYWNfY3ZfY19leHRlcm5fcHJlZml4LAogIFtzYXZlZF9saWJzPSRMSUJTCi1AQCAtMTc4LDY4ICsxNzksNDggQEAKK0BAIC0xNzksNjggKzE4MCw0OCBAQCB0aGVuCiAgICBBQ19ERUZJTkUoTkVFRF9VTkRFUlNDT1JFX1BSRUZJWCkKICBmaQogIAogLWRubCAqKioqIENoZWNrIHdoaWNoIEFOU0kgaW50ZWdlciB0eXBlIGlzIDE2IGJpdCAKLStkbmwgKioqKiBDaGVjayB3aGljaCBBTlNJIGludGVnZXIgdHlwZSBpcyAxNiBiaXQKLStUMV9BQV9UWVBFMTY9IiIKLStmb3IgdHlwZSBpbiBzaG9ydCBpbnQ7IGRvCi0rCWlmIHRlc3QgeCJgZXZhbCBlY2hvIFxcJGFjX2N2X3NpemVvZl8kdHlwZWAiID0gIngyIjsgdGhlbgotKwkJVDFfQUFfVFlQRTE2PSItRFQxX0FBX1RZUEUxNj0kdHlwZSIKLSsJCVQxX0lOVDE2PSIkdHlwZSIKLSsJCWJyZWFrCi0rCWZpCi0rZG9uZQotIAorLQogLUFDX0NBQ0hFX0NIRUNLKCAid2hpY2ggQU5TSSBpbnRlZ2VyIHR5cGUgaXMgMTYgYml0IiwgYWNfMTZiaXRfdHlwZSwKIC0JCUFDX1RSWV9SVU4oWwogLWludCBtYWluKHZvaWQpIHsKQEAgLTU4LDIxICs1OSwyMyBAQAogLWVsc2UKIC0gIFQxX0FBX1RZUEUxNj0iLURUMV9BQV9UWVBFMTY9aW50IgogLSAgVDFfSU5UMTY9ImludCIKKytkbmwgKioqKiBDaGVjayB3aGljaCBBTlNJIGludGVnZXIgdHlwZSBpcyAxNiBiaXQKKytUMV9BQV9UWVBFMTY9IiIKKytmb3IgdHlwZSBpbiBzaG9ydCBpbnQ7IGRvCisrCWlmIHRlc3QgeCJgZXZhbCBlY2hvIFxcJGFjX2N2X3NpemVvZl8kdHlwZWAiID0gIngyIjsgdGhlbgorKwkJVDFfQUFfVFlQRTE2PSItRFQxX0FBX1RZUEUxNj0kdHlwZSIKKysJCVQxX0lOVDE2PSIkdHlwZSIKKysJCWJyZWFrCisrCWZpCisrZG9uZQorKwogK2lmIHRlc3QgeCIkVDFfQUFfVFlQRTE2IiA9ICJ4IjsgdGhlbgogKwlBQ19NU0dfRVJST1IoIlVuYWJsZSB0byBkZXRlcm1pbmUgd2hpY2ggaW50ZWdlciB0eXBlIGlzIDE2IGJpdC4iKQogIGZpCiAgCiAtCiAgZG5sICoqKiogQ2hlY2sgd2hpY2ggQU5TSSBpbnRlZ2VyIHR5cGUgaXMgMzIgYml0IAotK1QxX0FBX1RZUEUzMj0iIgotK2ZvciB0eXBlIGluIGludCBsb25nOyBkbwotKwlpZiB0ZXN0IHgiYGV2YWwgZWNobyBcXCRhY19jdl9zaXplb2ZfJHR5cGVgIiA9ICJ4NCI7IHRoZW4KLSsJCVQxX0FBX1RZUEUzMj0iLURUMV9BQV9UWVBFMzI9JHR5cGUiCi0rCQlUMV9JTlQzMj0iJHR5cGUiCi0rCQlicmVhawotKwlmaQotK2RvbmUKLSAKKy0KIC1BQ19DQUNIRV9DSEVDSyggIndoaWNoIEFOU0kgaW50ZWdlciB0eXBlIGlzIDMyIGJpdCIsIGFjXzMyYml0X3R5cGUsCiAtCQlBQ19UUllfUlVOKFsKIC1pbnQgbWFpbih2b2lkKSB7CkBAIC05MCwyMSArOTMsMjIgQEAKIC1lbHNlCiAtICBUMV9BQV9UWVBFMzI9Ii1EVDFfQUFfVFlQRTMyPWxvbmciCiAtICBUMV9JTlQzMj0ibG9uZyIKKytUMV9BQV9UWVBFMzI9IiIKKytmb3IgdHlwZSBpbiBpbnQgbG9uZzsgZG8KKysJaWYgdGVzdCB4ImBldmFsIGVjaG8gXFwkYWNfY3Zfc2l6ZW9mXyR0eXBlYCIgPSAieDQiOyB0aGVuCisrCQlUMV9BQV9UWVBFMzI9Ii1EVDFfQUFfVFlQRTMyPSR0eXBlIgorKwkJVDFfSU5UMzI9IiR0eXBlIgorKwkJYnJlYWsKKysJZmkKKytkb25lCisrCiAraWYgdGVzdCB4IiRUMV9BQV9UWVBFMzIiID0gIngiOyB0aGVuCiArCUFDX01TR19FUlJPUigiVW5hYmxlIHRvIGRldGVybWluZSB3aGljaCBpbnRlZ2VyIHR5cGUgaXMgMzIgYml0LiIpCiAgZmkKICAKIC0KICBkbmwgKioqKiBDaGVjayB3aGljaCBBTlNJIGludGVnZXIgdHlwZSBpcyA2NCBiaXQgCi0rVDFfQUFfVFlQRTY0PSIiCi0rZm9yIHR5cGUgaW4gbG9uZyBsb25nX2xvbmc7IGRvCi0rCWlmIHRlc3QgeCJgZXZhbCBlY2hvIFxcJGFjX2N2X3NpemVvZl8kdHlwZWAiID0gIng4IjsgdGhlbgotKwkJQUNfTVNHX1dBUk4oIiR0eXBlIGlzIDY0IGJpdCIpCi0rCQlUMV9BQV9UWVBFNjQ9Ii1EVDFfQUFfVFlQRTY0PVwiYGVjaG8gJHR5cGV8dHIgJ18nICcgJ2BcIiIKLSsJCWJyZWFrCi0rCWZpCi0rZG9uZQotIAorLQogLUFDX0NBQ0hFX0NIRUNLKCAid2hpY2ggQU5TSSBpbnRlZ2VyIHR5cGUgaXMgNjQgYml0IiwgYWNfNjRiaXRfdHlwZSwKIC0JCUFDX1RSWV9SVU4oWwogLWludCBtYWluKHZvaWQpIHsKQEAgLTExOCw2ICsxMjIsMTUgQEAKIC0gIFQxX0FBX1RZUEU2ND0iLURUMV9BQV9UWVBFNjQ9bG9uZyIKIC1lbHNlCiAtICBUMV9BQV9UWVBFNjQ9CisrVDFfQUFfVFlQRTY0PSIiCisrZm9yIHR5cGUgaW4gbG9uZyBsb25nX2xvbmc7IGRvCisrCWlmIHRlc3QgeCJgZXZhbCBlY2hvIFxcJGFjX2N2X3NpemVvZl8kdHlwZWAiID0gIng4IjsgdGhlbgorKwkJQUNfTVNHX1dBUk4oIiR0eXBlIGlzIDY0IGJpdCIpCisrCQlUMV9BQV9UWVBFNjQ9Ii1EVDFfQUFfVFlQRTY0PVwiYGVjaG8gJHR5cGV8dHIgJ18nICcgJ2BcIiIKKysJCWJyZWFrCisrCWZpCisrZG9uZQorKwogK2lmIHRlc3QgeCIkVDFfQUFfVFlQRTY0IiA9ICJ4IjsgdGhlbgogKwlBQ19NU0dfRVJST1IoIlVuYWJsZSB0byBkZXRlcm1pbmUgd2hpY2ggaW50ZWdlciB0eXBlIGlzIDY0IGJpdC4iKQogIGZpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90MWxpYi90MWxpYi01LjEuMi9mb3JtYXRfc2VjdXJpdHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90MWxpYi90MWxpYi01LjEuMi9mb3JtYXRfc2VjdXJpdHkucGF0Y2gKaW5kZXggOGI0Y2U0MC4uYmMyNDc2YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdDFsaWIvdDFsaWItNS4xLjIvZm9ybWF0X3NlY3VyaXR5LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3QxbGliL3QxbGliLTUuMS4yL2Zvcm1hdF9zZWN1cml0eS5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gY2VhODMwMDNkZTNmZmViZGU5MmJlY2QxZTU5OWZlM2IyOGYwYTdjNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBNb24sIDYgTWFyIDIwMTcgMjM6MTM6MzYgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gdDFsaWI6IEZpeCBwcmludGYgZm9ybWF0IHN0cmluZyBlcnJvcnMKKwogRml4IHByaW50ZiBmb3JtYXRzIHRvIHVzZSBmb3JtYXQgcXVhbGlmaWVycwogZml4ZXMKIApAQCAtNiwyMCArMTEsMTcgQEAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAotLS0tIGEvbGliL3R5cGUxL29iamVjdHMuYwotKysrIGIvbGliL3R5cGUxL29iamVjdHMuYwotQEAgLTk1Nyw3ICs5NTcsNyBAQAotICAKLSAgICAgICAgc3ByaW50Zih0eXBlbXNnLCAiV3Jvbmcgb2JqZWN0IHR5cGUgaW4gJXM7IGV4cGVjdGVkICVzLCBmb3VuZCAlcy5cbiIsCi0gICAgICAgICAgICAgICAgICAgbmFtZSwgVHlwZUZtdChleHBlY3QpLCBUeXBlRm10KG9iai0+dHlwZSkpOwotLSAgICAgICBJZlRyYWNlMChUUlVFLHR5cGVtc2cpOwotKyAgICAgICBJZlRyYWNlMShUUlVFLCAiJXMiLCB0eXBlbXNnKTsKLSAgCi0gICAgICAgIE9iamVjdFBvc3RNb3J0ZW0ob2JqKTsKLSAgCistLS0KKyBsaWIvdDFsaWIvdDFzdWJzZXQuYyB8IDIgKy0KKyBsaWIvdHlwZTEvb2JqZWN0cy5jICB8IDIgKy0KKyBsaWIvdHlwZTEvb2JqZWN0cy5oICB8IDIgKy0KKyAzIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYi90MWxpYi90MXN1YnNldC5jIGIvbGliL3QxbGliL3Qxc3Vic2V0LmMKK2luZGV4IGRhNDI3YjIuLmU3Njk3NGYgMTAwNjQ0CiAtLS0gYS9saWIvdDFsaWIvdDFzdWJzZXQuYwogKysrIGIvbGliL3QxbGliL3Qxc3Vic2V0LmMKLUBAIC03NTksNyArNzU5LDcgQEAKK0BAIC03NTksNyArNzU5LDcgQEAgY2hhciAqVDFfU3Vic2V0Rm9udCggaW50IEZvbnRJRCwKICAJICAgICB0cl9sZW4pOwogICAgICBUMV9QcmludExvZyggIlQxX1N1YnNldEZvbnQoKSIsIGVycl93YXJuX21zZ19idWYsCiAgCQkgVDFMT0dfREVCVUcpOwpAQCAtMjgsOSArMzAsMjQgQEAKICAgIH0KICAgIAogICAgLyogY29tcHV0ZSBzaXplIG9mIG91dHB1dCBmaWxlICovCitkaWZmIC0tZ2l0IGEvbGliL3R5cGUxL29iamVjdHMuYyBiL2xpYi90eXBlMS9vYmplY3RzLmMKK2luZGV4IGM0MTNhMGYuLmY4MjhlNmEgMTAwNjQ0CistLS0gYS9saWIvdHlwZTEvb2JqZWN0cy5jCisrKysgYi9saWIvdHlwZTEvb2JqZWN0cy5jCitAQCAtOTU3LDcgKzk1Nyw3IEBAIHN0cnVjdCB4b2JqZWN0ICpUeXBlRXJyKG5hbWUsIG9iaiwgZXhwZWN0LCByZXQpIC8qIG5vbi1BTlNJIGF2b2lkcyBvdmVybHkgc3RyaWN0CisgIAorICAgICAgICBzcHJpbnRmKHR5cGVtc2csICJXcm9uZyBvYmplY3QgdHlwZSBpbiAlczsgZXhwZWN0ZWQgJXMsIGZvdW5kICVzLlxuIiwKKyAgICAgICAgICAgICAgICAgICBuYW1lLCBUeXBlRm10KGV4cGVjdCksIFR5cGVGbXQob2JqLT50eXBlKSk7CistICAgICAgIElmVHJhY2UwKFRSVUUsdHlwZW1zZyk7CisrICAgICAgIElmVHJhY2UxKFRSVUUsICIlcyIsIHR5cGVtc2cpOworICAKKyAgICAgICAgT2JqZWN0UG9zdE1vcnRlbShvYmopOworICAKK2RpZmYgLS1naXQgYS9saWIvdHlwZTEvb2JqZWN0cy5oIGIvbGliL3R5cGUxL29iamVjdHMuaAoraW5kZXggMTNjYmFlNy4uM2ExZDMzNyAxMDA2NDQKIC0tLSBhL2xpYi90eXBlMS9vYmplY3RzLmgKICsrKyBiL2xpYi90eXBlMS9vYmplY3RzLmgKLUBAIC0yMTQsNyArMjE0LDcgQEAKK0BAIC0yMTQsNyArMjE0LDcgQEAgc3RydWN0IHhvYmplY3QgewogIC8qU0hBUkVEKi8KICAvKiBORFc6IHBlcnNvbmFsbHksIEkgd2FudCB0byBzZWUgc3RhdHVzIGFuZCBlcnJvciBtZXNzYWdlcyEgKi8KICAjZGVmaW5lIElmVHJhY2UwKGNvbmRpdGlvbixtb2RlbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90MWxpYi90MWxpYi01LjEuMi9saWJ0b29sLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdDFsaWIvdDFsaWItNS4xLjIvbGlidG9vbC5wYXRjaAppbmRleCBlMDUwMDI1Li5kYTU0Zjg3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90MWxpYi90MWxpYi01LjEuMi9saWJ0b29sLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3QxbGliL3QxbGliLTUuMS4yL2xpYnRvb2wucGF0Y2gKQEAgLTEsMTIgKzEsMjggQEAKK0Zyb20gYmFiNDFmNWUxZmMxZmM4MDlkYTEzNzFlNmEwMjIyZTBlYjIxZTVmMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+CitEYXRlOiBNb24sIDIxIE5vdiAyMDExIDEyOjAwOjU0ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIHQxbGliOiBhZGQgNS4xLjIKIAogIwogIyBQYXRjaCBtYW5hZ2VkIGJ5IGh0dHA6Ly93d3cuaG9sZ2Vyc2NodXJpZy5kZS9wYXRjaGVyLmh0bWwKICMKIAotLS0tIHQxbGliLTUuMC4yL01ha2VmaWxlLmlufmxpYnRvb2wKLSsrKyB0MWxpYi01LjAuMi9NYWtlZmlsZS5pbgorLS0tCisgTWFrZWZpbGUuaW4gICAgICAgICAgIHwgNSArKystLQorIGV4YW1wbGVzL01ha2VmaWxlLmluICB8IDUgKysrLS0KKyBsaWIvTWFrZWZpbGUuaW4gICAgICAgfCA2ICsrKystLQorIGxpYi90MWxpYi9NYWtlZmlsZS5pbiB8IDYgKysrKy0tCisgbGliL3R5cGUxL01ha2VmaWxlLmluIHwgNiArKysrLS0KKyB0eXBlMWFmbS9NYWtlZmlsZS5pbiAgfCA2ICsrKystLQorIHhnbHlwaC9NYWtlZmlsZS5pbiAgICB8IDYgKysrKy0tCisgNyBmaWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL01ha2VmaWxlLmluIGIvTWFrZWZpbGUuaW4KK2luZGV4IDI5YzM0NjguLjM5NmMwMjAgMTAwNjQ0CistLS0gYS9NYWtlZmlsZS5pbgorKysrIGIvTWFrZWZpbGUuaW4KIEBAIC0xOCw3ICsxOCw4IEBACi0gIyBMYXN0IG1vZGlmaWVkOiAgICAgICAyMDAxLTA0LTAxCisgIyBMYXN0IG1vZGlmaWVkOiAgICAgICAyMDA1LTA1LTAxCiAgIwogIAogLVNIRUxMICAgICA9IC9iaW4vc2gKQEAgLTE1LDcgKzMxLDcgQEAKICBDQyAgICAgICAgPSBAQ0NACiAgQ1BQICAgICAgID0gQENQUEAKICBDRkxBR1MgICAgPSBAQ0ZMQUdTQAotQEAgLTE1MCw3ICsxNTEsNyBAQAorQEAgLTE0OSw3ICsxNTAsNyBAQCBkaXN0Y2xlYW46IGNsZWFuCiAgCSQoUk0pIGV4YW1wbGVzL01ha2VmaWxlCiAgCSQoUk0pIHhnbHlwaC9NYWtlZmlsZQogIAkkKFJNKSBkb2MvTWFrZWZpbGUKQEAgLTI0LDggKzQwLDEwIEBACiAgCiAgCiAgIyBUaGUgZm9sbG93aW5nIHR3byB0YXJnZXRzIGFyZSBmb3IgYnVpbGRpbmcgYW5kIGNsZWFuaW5nIHRoZSBweXRob24tCi0tLS0gdDFsaWItNS4wLjIvZXhhbXBsZXMvTWFrZWZpbGUuaW5+bGlidG9vbAotKysrIHQxbGliLTUuMC4yL2V4YW1wbGVzL01ha2VmaWxlLmluCitkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvTWFrZWZpbGUuaW4gYi9leGFtcGxlcy9NYWtlZmlsZS5pbgoraW5kZXggYjMwMWRiNS4uN2E2YTUxNCAxMDA2NDQKKy0tLSBhL2V4YW1wbGVzL01ha2VmaWxlLmluCisrKysgYi9leGFtcGxlcy9NYWtlZmlsZS5pbgogQEAgLTE0LDkgKzE0LDEwIEBACiAgIyBMYXN0IG1vZGlmaWVkOiAgICAgICAyMDAxLTA0LTAxCiAgIwpAQCAtMzksOCArNTcsMTAgQEAKICBDQyAgICAgICAgPSBAQ0NACiAgQ1BQICAgICAgID0gQENQUEAKICBDRkxBR1MgICAgPSBAQ0ZMQUdTQAotLS0tIHQxbGliLTUuMC4yL2xpYi9NYWtlZmlsZS5pbn5saWJ0b29sCi0rKysgdDFsaWItNS4wLjIvbGliL01ha2VmaWxlLmluCitkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxlLmluIGIvbGliL01ha2VmaWxlLmluCitpbmRleCA4OWU1ZTg2Li42ZTBmOTYwIDEwMDY0NAorLS0tIGEvbGliL01ha2VmaWxlLmluCisrKysgYi9saWIvTWFrZWZpbGUuaW4KIEBAIC0xNSw4ICsxNSwxMCBAQAogICMKICAjIENvbnRyaWJ1dGlvbnMgYnkgSC5LYWt1Z2F3YSB0byB1c2UgbGlidG9vbCEKQEAgLTU0LDggKzc0LDEwIEBACiAgQ0MgICAgICAgID0gQENDQAogIENQUCAgICAgICA9IEBDUFBACiAgQ0ZMQUdTICAgID0gQENGTEFHU0AKLS0tLSB0MWxpYi01LjAuMi9saWIvdDFsaWIvTWFrZWZpbGUuaW5+bGlidG9vbAotKysrIHQxbGliLTUuMC4yL2xpYi90MWxpYi9NYWtlZmlsZS5pbgorZGlmZiAtLWdpdCBhL2xpYi90MWxpYi9NYWtlZmlsZS5pbiBiL2xpYi90MWxpYi9NYWtlZmlsZS5pbgoraW5kZXggYTZjMjQ3OC4uMzI0MzRiMyAxMDA2NDQKKy0tLSBhL2xpYi90MWxpYi9NYWtlZmlsZS5pbgorKysrIGIvbGliL3QxbGliL01ha2VmaWxlLmluCiBAQCAtMTQsOCArMTQsMTAgQEAKICAjCiAgIyBNb2RpZmllZCBieSBILktha3VnYXdhIHRvIHVzZSBsaWJ0b29sCkBAIC02OSw4ICs5MSwxMCBAQAogIENDICAgICAgICA9IEBDQ0AKICBDUFAgICAgICAgPSBAQ1BQQAogIENGTEFHUyAgICA9IEBDRkxBR1NACi0tLS0gdDFsaWItNS4wLjIvbGliL3R5cGUxL01ha2VmaWxlLmlufmxpYnRvb2wKLSsrKyB0MWxpYi01LjAuMi9saWIvdHlwZTEvTWFrZWZpbGUuaW4KK2RpZmYgLS1naXQgYS9saWIvdHlwZTEvTWFrZWZpbGUuaW4gYi9saWIvdHlwZTEvTWFrZWZpbGUuaW4KK2luZGV4IDI0MWYxMjQuLjQyZWZhOTQgMTAwNjQ0CistLS0gYS9saWIvdHlwZTEvTWFrZWZpbGUuaW4KKysrKyBiL2xpYi90eXBlMS9NYWtlZmlsZS5pbgogQEAgLTE0LDggKzE0LDEwIEBACiAgIwogICMgTW9kaWZpZWQgYnkgSC5LYWt1Z2F3YSB0byB1c2UgbGlidG9vbApAQCAtODQsOCArMTA4LDEwIEBACiAgQ0MgICAgICAgID0gQENDQAogIENQUCAgICAgICA9IEBDUFBACiAgQ0ZMQUdTICAgID0gQENGTEFHU0AKLS0tLSB0MWxpYi01LjAuMi90eXBlMWFmbS9NYWtlZmlsZS5pbn5saWJ0b29sCi0rKysgdDFsaWItNS4wLjIvdHlwZTFhZm0vTWFrZWZpbGUuaW4KK2RpZmYgLS1naXQgYS90eXBlMWFmbS9NYWtlZmlsZS5pbiBiL3R5cGUxYWZtL01ha2VmaWxlLmluCitpbmRleCA2MTYxMWUxLi45YjUxNDA2IDEwMDY0NAorLS0tIGEvdHlwZTFhZm0vTWFrZWZpbGUuaW4KKysrKyBiL3R5cGUxYWZtL01ha2VmaWxlLmluCiBAQCAtMTUsOCArMTUsMTAgQEAKICAjCiAgIyBNb2RpZmllZCBieSBILktha3VnYXdhIHRvIHVzZSBsaWJ0b29sCkBAIC05OSw4ICsxMjUsMTAgQEAKICBDQyAgICAgICAgPSBAQ0NACiAgQ1BQICAgICAgID0gQENQUEAKICBDRkxBR1MgICAgPSBAQ0ZMQUdTQAotLS0tIHQxbGliLTUuMC4yL3hnbHlwaC9NYWtlZmlsZS5pbn5saWJ0b29sCi0rKysgdDFsaWItNS4wLjIveGdseXBoL01ha2VmaWxlLmluCitkaWZmIC0tZ2l0IGEveGdseXBoL01ha2VmaWxlLmluIGIveGdseXBoL01ha2VmaWxlLmluCitpbmRleCA4ZGE5YjYzLi43NDEzMzRjIDEwMDY0NAorLS0tIGEveGdseXBoL01ha2VmaWxlLmluCisrKysgYi94Z2x5cGgvTWFrZWZpbGUuaW4KIEBAIC0xNSw4ICsxNSwxMCBAQAogICMKICAjIE1vZGlmaWVkIGJ5IEguS2FrdWdhd2EgdG8gdXNlIGxpYnRvb2wKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3RpcGN1dGlscy90aXBjdXRpbHMvMDAwMS1tdWx0aWNhc3RfYmxhc3QtdGlwY2MtRml4LXN0cnVjdC10eXBlLWZvci1USVBDX0dST1VQLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGlwY3V0aWxzL3RpcGN1dGlscy8wMDAxLW11bHRpY2FzdF9ibGFzdC10aXBjYy1GaXgtc3RydWN0LXR5cGUtZm9yLVRJUENfR1JPVVAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ5NTI4NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3RpcGN1dGlscy90aXBjdXRpbHMvMDAwMS1tdWx0aWNhc3RfYmxhc3QtdGlwY2MtRml4LXN0cnVjdC10eXBlLWZvci1USVBDX0dST1VQLnBhdGNoCkBAIC0wLDAgKzEsMzMgQEAKK0Zyb20gMWNlODkyNzQ5ZTRmNTNiZDBhZWFhNGMzY2U0NWY4MDE3ODc5OTQxMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDMgTWFyIDIwMTggMTc6NTI6NTEgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gbXVsdGljYXN0X2JsYXN0L3RpcGNjOiBGaXggc3RydWN0IHR5cGUgZm9yIFRJUENfR1JPVVBfSk9JTgorCitLZXJuZWwgZGVmaW5lcyBpdCBhcyB0aXBjX2dyb3VwX3JlcSBhbmQgbm90IHRpcGNfbXJlcQordGhpcyBjb2RlIHdhcyBub3QgZXhjZXJjaXNlZCB3aXRoIG9sZGVyIGtlcm5lbHMgc28gd2UKK25ldmVyIHJhbiBpbnRvIHRoZSBjb21waWxlciBmYWlsdXJlcyBzaW5jZSBUSVBDX0dST1VQX0pPSU4KK2lzIG9ubHkgZGVmaW5lZCBpbiBrZXJuZWwgc3RhcnRpbmcgNC4xNQorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworIG11bHRpY2FzdF9ibGFzdC90aXBjYy5jIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvbXVsdGljYXN0X2JsYXN0L3RpcGNjLmMgYi9tdWx0aWNhc3RfYmxhc3QvdGlwY2MuYworaW5kZXggOTA2NDRkMy4uOTExYzc1OSAxMDA3NTUKKy0tLSBhL211bHRpY2FzdF9ibGFzdC90aXBjYy5jCisrKysgYi9tdWx0aWNhc3RfYmxhc3QvdGlwY2MuYworQEAgLTIxMyw3ICsyMTMsNyBAQCBpbnQgdGlwY19hY2NlcHQoaW50IHNkLCBzdHJ1Y3QgdGlwY19hZGRyICpzcmMpCisgaW50IHRpcGNfam9pbihpbnQgc2QsIHN0cnVjdCB0aXBjX2FkZHIgKm1lbWJlcikKKyB7CisgI2lmZGVmIFRJUENfR1JPVVBfSk9JTgorLQlzdHJ1Y3QgdGlwY19tcmVxIG1yZXEgPSB7CisrCXN0cnVjdCB0aXBjX2dyb3VwX3JlcSBtcmVxID0geworIAkJLnR5cGUgPSBtZW1iZXItPnR5cGUsCisgCQkuaW5zdGFuY2UgPSBtZW1iZXItPmluc3RhbmNlLAorIAkJLnNjb3BlID0gZG9tYWluMnNjb3BlKG1lbWJlci0+ZG9tYWluKQorLS0gCisyLjE2LjIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGlwY3V0aWxzL3RpcGN1dGlsc19naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90aXBjdXRpbHMvdGlwY3V0aWxzX2dpdC5iYgppbmRleCA3MjBhYTNjLi41NGVkMDQzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90aXBjdXRpbHMvdGlwY3V0aWxzX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90aXBjdXRpbHMvdGlwY3V0aWxzX2dpdC5iYgpAQCAtNSw2ICs1LDcgQEAKIFNSQ19VUkkgPSAiZ2l0Oi8vZ2l0LmNvZGUuc2YubmV0L3AvdGlwYy90aXBjdXRpbHMgXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1pbmNsdWRlLXN5cy1zZWxlY3QuaC1mb3ItRkRfLWRlZmluaXRpb25zLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDItcmVwbGFjZS1ub24tc3RhbmRhcmQtdWludC13aXRoLXVuc2lnbmVkLWludC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLW11bHRpY2FzdF9ibGFzdC10aXBjYy1GaXgtc3RydWN0LXR5cGUtZm9yLVRJUENfR1JPVVAucGF0Y2ggXAogICAgICAgICAgICAiCiBTUkNSRVYgPSAiN2FiMjIxMWI4NzQxNGJhMjQwYjBiMmU0YWYyMTljMTA1N2M5Y2Y5YSIKIFBWID0gIjIuMi4wK2dpdCR7U1JDUFZ9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGlwdG9wL3RpcHRvcF8yLjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3RpcHRvcC90aXB0b3BfMi4zLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGEwMGEzNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3RpcHRvcC90aXB0b3BfMi4zLjEuYmIKQEAgLTAsMCArMSwyNiBAQAorU1VNTUFSWSA9ICJIYXJkd2FyZSBwZXJmb3JtYW5jZSBtb25pdG9yaW5nIGNvdW50ZXJzIgorSE9NRVBBR0UgPSAiaHR0cDovL3RpcHRvcC5nZm9yZ2UuaW5yaWEuZnIvIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgorREVQRU5EUyA9ICJuY3Vyc2VzIGxpYnhtbDIiCisKK1NSQ19VUkkgPSAiaHR0cDovL3RpcHRvcC5nZm9yZ2UuaW5yaWEuZnIvcmVsZWFzZXMvJHtCUH0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjQ2Y2EwZmRmMDIzNmYwMmRkMmI5NmQzNDc2MjZkMmEyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjUxYzQ0NDljOTViYmEzNGYxNmI0Mjk3MjljMmY1ODQzMTQ5MDY2NWQ4MDkzZWZhYTg2NDNiMmUxZDEwODQxODIiCisKK2luaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcAorRVhUUkFfT0VDT05GID0gIkNGTEFHUz0iJENGTEFHUyAtSSR7U1RBR0lOR19JTkNESVJ9L2xpYnhtbDIiIgorQ09NUEFUSUJMRV9IT1NUID0gIihpLjg2fHg4Nl82NHxhcm18cG93ZXJwYykuKi1saW51eCIKKworZG9fY29uZmlndXJlX3ByZXBlbmQgKCkgeworICAgICMgVHdvIGJ1Z3MgaW4gY29uZmlndXJlLmFjIHdoZW4gY3Jvc3MtY29tcGlsaW5nLgorICAgICMgMS4gVGhlIHBhdGggb2YgbGlieG1sMi4gU3BlY2lmeSBpdCBpbiBFWFRSQV9PRUNPTkYuCisgICAgIyAyLiBodydzIHZhbHVlIG9uIG90aGVyIHBsYXRmb3Jtcy4gUmVwbGFjZSBpdCBpZiB0aGUgdGFyZ2V0IGlzCisgICAgIyAgICBub3QgaSo4Ni94ODZfNjQuCisgICAgaWYgKCBlY2hvICIke1RBUkdFVF9BUkNIfSIgfCBncmVwIC1xIC1lICdpLjg2JyAtZSAneDg2XzY0JyApOyB0aGVuCisgICAgICAgIHNlZCAtaSAncz0gLUkvdXNyL2luY2x1ZGUvbGlieG1sMj09JyAgICAke1N9L2NvbmZpZ3VyZS5hYworICAgIGVsc2UKKyAgICAgICAgc2VkIC1pICdzL2h3PWB1bmFtZSAtbWAvaHc9InVua25vd24iLycgICR7U30vY29uZmlndXJlLmFjCisgICAgICAgIHNlZCAtaSAncz0gLUkvdXNyL2luY2x1ZGUvbGlieG1sMj09JyAgICAke1N9L2NvbmZpZ3VyZS5hYworICAgIGZpCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90aXB0b3AvdGlwdG9wXzIuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3RpcHRvcC90aXB0b3BfMi4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzI5ZGU5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3RpcHRvcC90aXB0b3BfMi4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotU1VNTUFSWSA9ICJIYXJkd2FyZSBwZXJmb3JtYW5jZSBtb25pdG9yaW5nIGNvdW50ZXJzIgotSE9NRVBBR0UgPSAiaHR0cDovL3RpcHRvcC5nZm9yZ2UuaW5yaWEuZnIvIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotREVQRU5EUyA9ICJuY3Vyc2VzIGxpYnhtbDIiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3RpcHRvcC5nZm9yZ2UuaW5yaWEuZnIvcmVsZWFzZXMvJHtCUH0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gImYxZmJhMWU5MDQ2NWIwZTVhMzg2NWIxOTEzM2ZhMTlkIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjNmMDdlOTU4YjQwYWNhZWFiOThlOWViMTMyNmM5ZjkxYjBiZTBhNzgyYzFjYzJiZDdhOWUxOGQzMWZhYjE4Y2EiCi0KLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcAotRVhUUkFfT0VDT05GID0gIkNGTEFHUz0iJENGTEFHUyAtSSR7U1RBR0lOR19JTkNESVJ9L2xpYnhtbDIiIgotQ09NUEFUSUJMRV9IT1NUID0gIihpLjg2fHg4Nl82NHxhcm18cG93ZXJwYykuKi1saW51eCIKLQotZG9fY29uZmlndXJlX3ByZXBlbmQgKCkgewotICAgICMgVHdvIGJ1Z3MgaW4gY29uZmlndXJlLmFjIHdoZW4gY3Jvc3MtY29tcGlsaW5nLgotICAgICMgMS4gVGhlIHBhdGggb2YgbGlieG1sMi4gU3BlY2lmeSBpdCBpbiBFWFRSQV9PRUNPTkYuCi0gICAgIyAyLiBodydzIHZhbHVlIG9uIG90aGVyIHBsYXRmb3Jtcy4gUmVwbGFjZSBpdCBpZiB0aGUgdGFyZ2V0IGlzCi0gICAgIyAgICBub3QgaSo4Ni94ODZfNjQuCi0gICAgaWYgKCBlY2hvICIke1RBUkdFVF9BUkNIfSIgfCBncmVwIC1xIC1lICdpLjg2JyAtZSAneDg2XzY0JyApOyB0aGVuCi0gICAgICAgIHNlZCAtaSAncz0gLUkvdXNyL2luY2x1ZGUvbGlieG1sMj09JyAgICAke1N9L2NvbmZpZ3VyZS5hYwotICAgIGVsc2UKLSAgICAgICAgc2VkIC1pICdzL2h3PWB1bmFtZSAtbWAvaHc9InVua25vd24iLycgICR7U30vY29uZmlndXJlLmFjCi0gICAgICAgIHNlZCAtaSAncz0gLUkvdXNyL2luY2x1ZGUvbGlieG1sMj09JyAgICAke1N9L2NvbmZpZ3VyZS5hYwotICAgIGZpCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90bXV4L3RtdXhfMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdG11eC90bXV4XzIuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmYyMWRlNS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90bXV4L3RtdXhfMi4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotU1VNTUFSWSA9ICJUZXJtaW5hbCBtdWx0aXBsZXhlciIKLUhPTUVQQUdFID0gImh0dHA6Ly90bXV4LnNvdXJjZWZvcmdlLm5ldCIKLVNFQ1RJT04gPSAiY29uc29sZS91dGlscyIKLQotTElDRU5TRSA9ICJJU0MiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly90bXV4LmM7YmVnaW5saW5lPTM7ZW5kbGluZT0xNzttZDU9ODY4NWI0NDU1MzMwYTk0MGZhYjFmZjQ1MWFhOTQxYTAiCi0KLURFUEVORFMgPSAibmN1cnNlcyBsaWJldmVudCIKLQotCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vdG11eC90bXV4LmdpdDticmFuY2g9bWFzdGVyIgotU1JDUkVWID89ICIzMTBmMGE5NjBjYTY0ZmEzODA5NTQ1YmFkYzYyOWMwYzE2NmM2Y2QyIgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotQiA9ICIke1dPUktESVJ9L2J1aWxkIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiIKLVBBQ0tBR0VDT05GSUdbdXRlbXB0ZXJdID0gImFjX2N2X2hlYWRlcl91dGVtcHRlcl9oPXllcyxhY19jdl9oZWFkZXJfdXRlbXB0ZXJfaD1ubyxsaWJ1dGVtcHRlciwiCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3RtdXgvdG11eF8yLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90bXV4L3RtdXhfMi42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiYTUxNTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90bXV4L3RtdXhfMi42LmJiCkBAIC0wLDAgKzEsMjMgQEAKK1NVTU1BUlkgPSAiVGVybWluYWwgbXVsdGlwbGV4ZXIiCitIT01FUEFHRSA9ICJodHRwOi8vdG11eC5zb3VyY2Vmb3JnZS5uZXQiCitTRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCisKK0xJQ0VOU0UgPSAiSVNDIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vdG11eC5jO2JlZ2lubGluZT0zO2VuZGxpbmU9MTc7bWQ1PWYyNTZiNzZkNTJlN2I0ZDAyYmYxOTE0NGJkYWNhMTA3IgorCitERVBFTkRTID0gIm5jdXJzZXMgbGliZXZlbnQiCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL3RtdXgvdG11eC9yZWxlYXNlcy9kb3dubG9hZC8ke1BWfS90bXV4LSR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkNTQxZmYzOTIyNDlmOTRjNGYzNjM1NzkzNTU2ZjgyNyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJiMTdjZDE3MGE5NGQ3YjU4YzA2OTg3NTJlMWY0ZjI2M2FiNmRjNDc0MjUyMzBkZjdlNTNhNjQzNWNjN2NkN2U4IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiIKK1BBQ0tBR0VDT05GSUdbdXRlbXB0ZXJdID0gImFjX2N2X2hlYWRlcl91dGVtcHRlcl9oPXllcyxhY19jdl9oZWFkZXJfdXRlbXB0ZXJfaD1ubyxsaWJ1dGVtcHRlciwiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworICAgICMgVGhlICdjb21wYXQnIGRpcmVjdG9yeSBpcyBuZWVkZWQgZm9yIG91dHB1dCBkdXJpbmcgdGhlIGJ1aWxkIGJ1dCBpdCdzCisgICAgIyBub3QgYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4gYnVpbGRpbmcgb3V0c2lkZSB0aGUgc291cmNlIGRpcmVjdG9yeS4KKyAgICBta2RpciAke0J9L2NvbXBhdAorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdXBtL2ZpbGVzL2FkczF4MTUtZml4ZWQtY2FzZS1sb2dpYy1pbi1nZXRUaHJlc2gtZnVuY3Rpb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC91cG0vZmlsZXMvYWRzMXgxNS1maXhlZC1jYXNlLWxvZ2ljLWluLWdldFRocmVzaC1mdW5jdGlvbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzYxN2QxNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC91cG0vZmlsZXMvYWRzMXgxNS1maXhlZC1jYXNlLWxvZ2ljLWluLWdldFRocmVzaC1mdW5jdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLUZyb20gYzY0ZDA0ZDA4NGY0N2I0Y2IzZTFjZGVlNmU5NjM0OGZjYzZhNzU2ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1paGFpIFR1ZG9yIFBhbnUgPG1paGFpLnR1ZG9yLnBhbnVAaW50ZWwuY29tPgotRGF0ZTogVHVlLCAzMCBNYXkgMjAxNyAxNToxNDowOSAtMDcwMAotU3ViamVjdDogW1BBVENIIDEvMV0gYWRzMXgxNTogZml4ZWQgY2FzZSBsb2dpYyBpbiBnZXRUaHJlc2goKSBmdW5jdGlvbgotCi1TaWduZWQtb2ZmLWJ5OiBNaWhhaSBUdWRvciBQYW51IDxtaWhhaS50dWRvci5wYW51QGludGVsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydGVkIFtjNjRkMDRkMDg0ZjQ3YjRjYjNlMWNkZWU2ZTk2MzQ4ZmNjNmE3NTZlXQotCi1TaWduZWQtb2ZmLWJ5OiBQYXRyaWNrIE9obHkgPHBhdHJpY2sub2hseUBpbnRlbC5jb20+Ci0KLS0tLQotIHNyYy9hZHMxeDE1L2FkczF4MTUuY3h4IHwgNCArKy0tCi0gc3JjL2FkczF4MTUvYWRzMXgxNS5ocHAgfCAyICstCi0gMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvYWRzMXgxNS9hZHMxeDE1LmN4eCBiL3NyYy9hZHMxeDE1L2FkczF4MTUuY3h4Ci1pbmRleCAzNTc4MjcwOS4uNDc3MDFiMmEgMTAwNjQ0Ci0tLS0gYS9zcmMvYWRzMXgxNS9hZHMxeDE1LmN4eAotKysrIGIvc3JjL2FkczF4MTUvYWRzMXgxNS5jeHgKLUBAIC0xMTYsNyArMTE2LDcgQEAgQURTMVgxNTo6c2V0Q29udGludW91cyhib29sIG1vZGUpewotIAotIGZsb2F0Ci0gQURTMVgxNTo6Z2V0VGhyZXNoKEFEU1RIUkVTSCByZWcpewotLSAgICAgaWYoIFRIUkVTSF9ISUdIICYmIFRIUkVTSF9MT1cpIHJldHVybiBnZXRMYXN0U2FtcGxlKHJlZyk7Ci0rICAgICBpZihyZWcgPT0gVEhSRVNIX0hJR0ggfHwgcmVnID09IFRIUkVTSF9MT1cpIHJldHVybiBnZXRMYXN0U2FtcGxlKHJlZyk7Ci0gICAgICBlbHNlIHJldHVybiAwLjA7Ci0gfQotIAotQEAgLTEzNyw3ICsxMzcsNyBAQCBBRFMxWDE1OjpzZXRUaHJlc2goQURTVEhSRVNIIHJlZywgZmxvYXQgdmFsdWUpewotICAgICAgY2FzZSAyOgotICAgICAgY2FzZSAzOgotICAgICAgICAgICBzZXRfdmFsdWUgPSB2YWx1ZSAvIGdldE11bHRpcGxpZXIoKTsKLS0gICAgICAgICBzZXRfdmFsdWUgPSBzZXRfdmFsdWUgPDwgbV9iaXRTaGlmdDsKLSsgICAgICAgICAgc2V0X3ZhbHVlID0gc2V0X3ZhbHVlIDw8IG1fYml0U2hpZnQ7Ci0gICAgICAgICAgIGlmKGkyYy0+d3JpdGVXb3JkUmVnKHJlZywgc3dhcFdvcmQoc2V0X3ZhbHVlKSkgIT0gbXJhYTo6U1VDQ0VTUyl7Ci0gICAgICAgICAgICAgdGhyb3cgc3RkOjpydW50aW1lX2Vycm9yKHN0ZDo6c3RyaW5nKF9fRlVOQ1RJT05fXykgKyAiOiBJMmMud3JpdGUoKSBmYWlsZWQiKTsKLSAgICAgICAgICAgICByZXR1cm47Ci1kaWZmIC0tZ2l0IGEvc3JjL2FkczF4MTUvYWRzMXgxNS5ocHAgYi9zcmMvYWRzMXgxNS9hZHMxeDE1LmhwcAotaW5kZXggNzUyNDU3MmQuLmVmZDhjOGVjIDEwMDY0NAotLS0tIGEvc3JjL2FkczF4MTUvYWRzMXgxNS5ocHAKLSsrKyBiL3NyYy9hZHMxeDE1L2FkczF4MTUuaHBwCi1AQCAtMzkwLDcgKzM5MCw3IEBAIG5hbWVzcGFjZSB1cG0gewotICAgICAgICAgICAgICAqIEBwYXJhbSByZWcgQURTVEhSRVMgZW51bSB2YWx1ZS4KLSAgICAgICAgICAgICAgKiBSZXR1cm5zIDAuMCB1bmxlc3MgVEhSRVNIX0hJR0ggb3IgVEhSRVNIX0xPVyByZXF1ZXN0ZWQuCi0gICAgICAgICAgICAgICovCi0tICAgICAgICAgICAgZmxvYXQgZ2V0VGhyZXNoKEFEU1RIUkVTSCByZWcgPSBUSFJFU0hfTE9XKTsKLSsgICAgICAgICAgICBmbG9hdCBnZXRUaHJlc2goQURTVEhSRVNIIHJlZyA9IFRIUkVTSF9ERUZBVUxUKTsKLSAKLSAgICAgICAgICAgICAvKioKLSAgICAgICAgICAgICAgKiBTZXRzIHRocmVzaG9sZCBsZXZlbHMgb3IgY29uZmlndXJlcyBmb3IgY29udmVyc2lvbiByZWFkeQotLS0gCi0yLjExLjAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdXBtL3VwbV9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC91cG0vdXBtX2dpdC5iYgppbmRleCAzODA2NWNlLi5kNzQyYTVlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC91cG0vdXBtX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC91cG0vdXBtX2dpdC5iYgpAQCAtNywxMiArNywxMSBAQAogCiBERVBFTkRTID0gImxpYmpwZWctdHVyYm8gbXJhYSIKIAotU1JDUkVWID0gIjEwNmI2YzcwNjI2ODUyMmFiMDE2OGE0ZGRiMTllODljZTgzMmUwODQiCi1QViA9ICIxLjMuMC1naXQke1NSQ1BWfSIKK1NSQ1JFViA9ICJjYzdmZWM5YWUwMjI4YWRkOTAxMWJmMWMyY2Q1ZTBjYTJiYTBkNGYwIgorUFYgPSAiMS42LjAtZ2l0JHtTUkNQVn0iCiAKIFNSQ19VUkkgPSAiIFwKICAgICBnaXQ6Ly9naXRodWIuY29tL2ludGVsLWlvdC1kZXZraXQvJHtCUE59LmdpdDtwcm90b2NvbD1odHRwIFwKLSAgICBmaWxlOi8vYWRzMXgxNS1maXhlZC1jYXNlLWxvZ2ljLWluLWdldFRocmVzaC1mdW5jdGlvbi5wYXRjaCBcCiAiCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCkBAIC0yNiw3ICsyNSwxMyBAQAogIyBvdmVycmlkZSB0aGlzIGluIGxvY2FsLmNvbmYgdG8gZ2V0IG5lZWRlZCBiaW5kaW5ncy4KICMgQklORElOR1NfcG4tdXBtPSJweXRob24iCiAjIHdpbGwgcmVzdWx0IGluIG9ubHkgdGhlIHB5dGhvbiBiaW5kaW5ncyBiZWluZyBidWlsdC9wYWNrYWdlZC4KLUJJTkRJTkdTID8/PSAicHl0aG9uICR7QCAnbm9kZWpzJyBpZiBvZS50eXBlcy5ib29sZWFuKGQuZ2V0VmFyKCdIQVZFX05PREVKUycpIG9yICcwJykgZWxzZSAnJyB9IgorIyBOb3RlOiAnbm9kZWpzJyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGJlY2F1c2UgdGhlIGJpbmRpbmdzCisjIGdlbmVyYXRpb24gY3VycmVudGx5IGZhaWxzIHdpdGggbm9kZWpzICg+djcueCkuCitCSU5ESU5HUyA/Pz0gInB5dGhvbiIKKworIyBub2RlanMgaXNuJ3QgYXZhaWxhYmxlIGZvciBhcm12NC9hcm12NSBhcmNoaXRlY3R1cmVzCitCSU5ESU5HU19hcm12NCA/Pz0gInB5dGhvbiIKK0JJTkRJTkdTX2FybXY1ID8/PSAicHl0aG9uIgogCiBQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VTJywgJ25vZGUtJHtQTn0nLCAnbm9kZWpzJywgJycsIGQpfSBcCiAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VTJywgJyR7UFlUSE9OX1BOfS0ke1BOfScsICdweXRob24nLCAnJywgZCl9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdmxvY2svdmxvY2stMi4yLjMvZGlzYWJsZV92bG9ja3JjLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdmxvY2svdmxvY2stMi4yLjMvZGlzYWJsZV92bG9ja3JjLnBhdGNoCmluZGV4IGVlMGQwNzQuLjI0MTJiYjggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Zsb2NrL3Zsb2NrLTIuMi4zL2Rpc2FibGVfdmxvY2tyYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC92bG9jay92bG9jay0yLjIuMy9kaXNhYmxlX3Zsb2NrcmMucGF0Y2gKQEAgLTEsMTMgKzEsMjMgQEAKK0Zyb20gZjcxY2M5MjA1MjhjMzQ5NmIwMTE4OTY0ZWJiY2Y1NDQwY2RhNGVkMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CitEYXRlOiBXZWQsIDE2IEF1ZyAyMDE3IDEzOjM3OjQwICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHZsb2NrOiBhZGQgbmV3IHJlY2lwZQorCiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCiAKIHdyaXR0ZW4gYnk6IEplZmYgUG9sayA8amVmZi5wb2xrQHdpbmRyaXZlci5jb20+CiBTaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgogCi1JbmRleDogdmxvY2stMi4yLjIvbWFuL3Zsb2NrLjEKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSB2bG9jay0yLjIuMi5vcmlnL21hbi92bG9jay4xCTIwMTAtMDctMjYgMTQ6MTI6NDIuMDAwMDAwMDAwIC0wNDAwCi0rKysgdmxvY2stMi4yLjIvbWFuL3Zsb2NrLjEJMjAxMC0wNy0yNiAxNDoxMzowNi4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xMTEsMTEgKzExMSw2IEBACistLS0KKyBtYW4vdmxvY2suMSAgfCA1IC0tLS0tCisgc3JjL3Zsb2NrLnNoIHwgNSAtLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMTAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9tYW4vdmxvY2suMSBiL21hbi92bG9jay4xCitpbmRleCAwZDI5YjQ5Li4wMWNiOTQ0IDEwMDY0NAorLS0tIGEvbWFuL3Zsb2NrLjEKKysrKyBiL21hbi92bG9jay4xCitAQCAtMTExLDExICsxMTEsNiBAQCBlbnRlciB5b3VyIHBhc3N3b3JkIGF0IHRoZSBwYXNzd29yZCBwcm9tcHQuICBJZiB0aGlzIHZhcmlhYmxlIGlzIHVuc2V0IG9yIHNldAogIHRvIGFuIGludmFsaWQgdmFsdWUgb3IgMCBubyB0aW1lb3V0IGlzIHVzZWQuICBcZkJXYXJuaW5nXGZSOiBJZiB0aGlzIHZhbHVlIGlzCiAgdG9vIGxvdywgeW91IG1heSBub3QgYmUgYWJsZSB0byB1bmxvY2sgeW91ciBzZXNzaW9uLgogIC5QUApAQCAtMTksMTEgKzI5LDExIEBACiAgLlNIIFNFQ1VSSVRZCiAgU2VlIHRoZSBTRUNVUklUWSBmaWxlIGluIHRoZSBcZkJ2bG9ja1xmUiBkaXN0cmlidXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgLlBQCi1JbmRleDogdmxvY2stMi4yLjIvc3JjL3Zsb2NrLnNoCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gdmxvY2stMi4yLjIub3JpZy9zcmMvdmxvY2suc2gJMjAxMC0wNy0yNiAxNDoxMjozMi4wMDAwMDAwMDAgLTA0MDAKLSsrKyB2bG9jay0yLjIuMi9zcmMvdmxvY2suc2gJMjAxMC0wNy0yNiAxNDoxMzozMy4wMDAwMDAwMDAgLTA0MDAKLUBAIC0zNSwxMSArMzUsNiBAQAorZGlmZiAtLWdpdCBhL3NyYy92bG9jay5zaCBiL3NyYy92bG9jay5zaAoraW5kZXggNzVmMTM2OS4uZjU3Mjc3NiAxMDA2NDQKKy0tLSBhL3NyYy92bG9jay5zaAorKysrIGIvc3JjL3Zsb2NrLnNoCitAQCAtMzUsMTEgKzM1LDYgQEAgVGhpcyBUVFkgaXMgbm93IGxvY2tlZC4KICAKICAke1ZMT0NLX0VOVEVSX1BST01QVH0iCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC92bG9jay92bG9jay0yLjIuMy92bG9jay1ub190YWxseS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Zsb2NrL3Zsb2NrLTIuMi4zL3Zsb2NrLW5vX3RhbGx5LnBhdGNoCmluZGV4IDZlOGE2YTkuLjNhMzQ0YjIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Zsb2NrL3Zsb2NrLTIuMi4zL3Zsb2NrLW5vX3RhbGx5LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Zsb2NrL3Zsb2NrLTIuMi4zL3Zsb2NrLW5vX3RhbGx5LnBhdGNoCkBAIC0xLDggKzEsMjEgQEAKK0Zyb20gMTdlNWM4ZDMyYWJjMjE0YWVhNDA4ZjA4MzdiZTQxZTg4YmNlN2ViMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CitEYXRlOiBXZWQsIDE2IEF1ZyAyMDE3IDEzOjM3OjQwICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHZsb2NrOiBhZGQgbmV3IHJlY2lwZQorCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAogd3JpdHRlbiBieTogSmVmZiBQb2xrIDxqZWZmLnBvbGtAd2luZHJpdmVyLmNvbT4KIFNpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CiAKKy0tLQorIE1ha2VmaWxlICAgICAgICAgfCA0ICsrKysKKyBjb25maWd1cmUgICAgICAgIHwgOSArKysrKysrKysKKyBzcmMvdmxvY2stbWFpbi5jIHwgOCArKysrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQoraW5kZXggNGVlYjQyYS4uODM0Y2QyYyAxMDA2NDQKIC0tLSBhL01ha2VmaWxlCiArKysgYi9NYWtlZmlsZQogQEAgLTEyNiw2ICsxMjYsMTAgQEAgaWZlcSAoJChBVVRIX01FVEhPRCksc2hhZG93KQpAQCAtMTYsNiArMjksOCBAQAogIGlmZXEgKCQoRU5BQkxFX1BMVUdJTlMpLHllcykKICB2bG9jay1tYWluOiBwbHVnaW5zLm8gcGx1Z2luLm8gbW9kdWxlLm8gcHJvY2Vzcy5vIHNjcmlwdC5vIHRzb3J0Lm8gbGlzdC5vCiAgIyAtcmR5bmFtaWMgaXMgbmVlZGVkIHNvIHRoYXQgdGhlIGFsbCBwbHVnaW4gY2FuIGFjY2VzcyB0aGUgc3ltYm9scyBmcm9tIGNvbnNvbGVfc3dpdGNoLm8KK2RpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKK2luZGV4IGQ1ZDg0ZDYuLjEzMDM1OTggMTAwNzU1CiAtLS0gYS9jb25maWd1cmUKICsrKyBiL2NvbmZpZ3VyZQogQEAgLTQ0LDYgKzQ0LDcgQEAgT3B0aW9uYWwgRmVhdHVyZXM6CkBAIC0zNiw3ICs1MSw3IEBACiAgICAgIHBhbXxzaGFkb3cpCiAgICAgICAgaWYgWyAiJDIiID0gInllcyIgXSA7IHRoZW4KICAgICAgICAgIGlmIFsgLW4gIiRhdXRoX21ldGhvZCIgXSAmJiBbICIkYXV0aF9tZXRob2QiICE9ICIkMSIgXSA7IHRoZW4KLUBAIC0yMzIsNiArMjMyLDcgQEAgc2V0X2RlZmF1bHRzKCkgeworQEAgLTIyOCw2ICsyMzIsNyBAQCBzZXRfZGVmYXVsdHMoKSB7CiAgICBBVVRIX01FVEhPRD0icGFtIgogICAgRU5BQkxFX1JPT1RfUEFTU1dPUkQ9InllcyIKICAgIEVOQUJMRV9QTFVHSU5TPSJ5ZXMiCkBAIC00NCw5ICs1OSw3IEBACiAgICBTQ1JJUFRTPSIiCiAgCiAgICBWTE9DS19HUk9VUD0idmxvY2siCi1AQCAtMzU2LDEwICszNTYsMTQgQEAgRU5BQkxFX1BMVUdJTlMgPSAke0VOQUJMRV9QTFVHSU5TfQotICMgd2hpY2ggcGx1Z2lucyBzaG91bGQgYmUgYnVpbGQKLSBNT0RVTEVTID0gJHtNT0RVTEVTfQorQEAgLTM1Myw2ICszNTgsMTAgQEAgTU9EVUxFUyA9ICR7TU9EVUxFU30KICAjIHdoaWNoIHNjcmlwdHMgc2hvdWxkIGJlIGluc3RhbGxlZAogIFNDUklQVFMgPSAke1NDUklQVFN9CiAgCkBAIC01NywxMiArNzAsMTIgQEAKICAjIHJvb3QncyBncm91cAogIFJPT1RfR1JPVVAgPSAke1JPT1RfR1JPVVB9CiAgCi0gIyBncm91cCBmb3IgcHJpdmlsZWdlZCBwbHVnaW5zCi0gVkxPQ0tfR1JPVVAgPSAke1ZMT0NLX0dST1VQfQorZGlmZiAtLWdpdCBhL3NyYy92bG9jay1tYWluLmMgYi9zcmMvdmxvY2stbWFpbi5jCitpbmRleCAwMDhmNmYwLi4xMDhjZThiIDEwMDY0NAogLS0tIGEvc3JjL3Zsb2NrLW1haW4uYwogKysrIGIvc3JjL3Zsb2NrLW1haW4uYwotQEAgLTExMSw3ICsxMTEsOSBAQCBzdGF0aWMgdm9pZCByZXN0b3JlX3Rlcm1pbmFsKHZvaWQpCi0gICAodm9pZCkgdGNzZXRhdHRyKFNURElOX0ZJTEVOTywgVENTQU5PVywgJnRlcm0pOworQEAgLTExMiw3ICsxMTIsOSBAQCBzdGF0aWMgdm9pZCByZXN0b3JlX3Rlcm1pbmFsKHZvaWQpCisgICAodm9pZCkgdGNzZXRhdHRyKFNURElOX0ZJTEVOTywgVENTQU5PVywgJm9sZF90ZXJtKTsKICB9CiAgCiArI2lmZGVmIEVOQUJMRV9GQUlMX0NPVU5UCkBAIC03MSw3ICs4NCw3IEBACiAgCiAgc3RhdGljIHZvaWQgYXV0aF9sb29wKGNvbnN0IGNoYXIgKnVzZXJuYW1lKQogIHsKLUBAIC0xODEsNyArMTgzLDkgQEAgc3RhdGljIHZvaWQgYXV0aF9sb29wKGNvbnN0IGNoYXIgKnVzZXJuYQorQEAgLTE4Miw3ICsxODQsOSBAQCBzdGF0aWMgdm9pZCBhdXRoX2xvb3AoY29uc3QgY2hhciAqdXNlcm5hbWUpCiAgICAgIH0KICAjZW5kaWYKICAKQEAgLTgxLDcgKzk0LDcgQEAKICAgIH0KICAKICAgIC8qIEZyZWUgdGltZW91dHMgbWVtb3J5LiAqLwotQEAgLTE4OSwxMSArMTkzLDEzIEBAIHN0YXRpYyB2b2lkIGF1dGhfbG9vcChjb25zdCBjaGFyICp1c2VybmEKK0BAIC0xOTAsMTEgKzE5NCwxMyBAQCBzdGF0aWMgdm9pZCBhdXRoX2xvb3AoY29uc3QgY2hhciAqdXNlcm5hbWUpCiAgICBmcmVlKHByb21wdF90aW1lb3V0KTsKICB9CiAgCkBAIC05NSw3ICsxMDgsNyBAQAogIAogICNpZmRlZiBVU0VfUExVR0lOUwogIHN0YXRpYyB2b2lkIGNhbGxfZW5kX2hvb2sodm9pZCkKLUBAIC0yMTYsNyArMjIyLDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmNvbnN0IGFyZ3ZbXSkKK0BAIC0yMTcsNyArMjIzLDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmNvbnN0IGFyZ3ZbXSkKICAgIGlmICh1c2VybmFtZSA9PSBOVUxMKQogICAgICBmYXRhbF9wZXJyb3IoInZsb2NrOiBjb3VsZCBub3QgZ2V0IHVzZXJuYW1lIik7CiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC92bG9jay92bG9jay0yLjIuMy92bG9ja19wYW1fdGFsbHkyX3Jlc2V0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdmxvY2svdmxvY2stMi4yLjMvdmxvY2tfcGFtX3RhbGx5Ml9yZXNldC5wYXRjaAppbmRleCA0Y2UwYWJjLi40NjBiMjkyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC92bG9jay92bG9jay0yLjIuMy92bG9ja19wYW1fdGFsbHkyX3Jlc2V0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Zsb2NrL3Zsb2NrLTIuMi4zL3Zsb2NrX3BhbV90YWxseTJfcmVzZXQucGF0Y2gKQEAgLTEsMTMgKzEsMjIgQEAKK0Zyb20gZmNlYzRlN2ZlODk5ZjhjMDA3N2IzMDA0ZWVjY2I3MjkyYTk0NWE2NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CitEYXRlOiBXZWQsIDE2IEF1ZyAyMDE3IDEzOjM3OjQwICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHZsb2NrOiBhZGQgbmV3IHJlY2lwZQorCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAogd3JpdHRlbiBieTogSmVmZiBQb2xrIDxqZWZmLnBvbGtAd2luZHJpdmVyLmNvbT4KIFNpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CiAKLUluZGV4OiB2bG9jay0yLjIuMi9zcmMvYXV0aC1wYW0uYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHZsb2NrLTIuMi4yLm9yaWcvc3JjL2F1dGgtcGFtLmMJMjAxMC0wNi0xNCAxNDozODo1MS4wMDAwMDAwMDAgLTA0MDAKLSsrKyB2bG9jay0yLjIuMi9zcmMvYXV0aC1wYW0uYwkyMDEwLTA2LTE0IDE0OjM5OjEyLjAwMDAwMDAwMCAtMDQwMAotQEAgLTE0OCw2ICsxNDgsOSBAQAorLS0tCisgc3JjL2F1dGgtcGFtLmMgfCAzICsrKworIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3NyYy9hdXRoLXBhbS5jIGIvc3JjL2F1dGgtcGFtLmMKK2luZGV4IDVjZjkzZjYuLmM1Y2M2N2EgMTAwNjQ0CistLS0gYS9zcmMvYXV0aC1wYW0uYworKysrIGIvc3JjL2F1dGgtcGFtLmMKK0BAIC0xNDgsNiArMTQ4LDkgQEAgYm9vbCBhdXRoKGNvbnN0IGNoYXIgKnVzZXIsIHN0cnVjdCB0aW1lc3BlYyAqdGltZW91dCkKICAKICAgIGlmIChwYW1fc3RhdHVzICE9IFBBTV9TVUNDRVNTKSB7CiAgICAgIGZwcmludGYoc3RkZXJyLCAidmxvY2s6ICVzXG4iLCBwYW1fc3RyZXJyb3IocGFtaCwgcGFtX3N0YXR1cykpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvenJhbS96cmFtL2luaXQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC96cmFtL3pyYW0vaW5pdAppbmRleCA3YjZjYmY0Li5hMmM5YzIxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC96cmFtL3pyYW0vaW5pdAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC96cmFtL3pyYW0vaW5pdApAQCAtMzQsNyArMzQsNyBAQAogICAgIG1lbV9ieV9jcHU9JCgoJG1lbXRvdGFsLyRudW1fY3B1cyokZmFjdG9yLzEwMCoxMDI0KSkKIAogICAgICMgbG9hZCBkZXBlbmRlbmN5IG1vZHVsZXMKLSAgICBtb2Rwcm9iZSB6cmFtIHpyYW1fbnVtX2RldmljZXM9JG51bV9jcHVzCisgICAgbW9kcHJvYmUgenJhbSBudW1fZGV2aWNlcz0kbnVtX2NwdXMKICAgICBlY2hvICJ6cmFtIGRldmljZXMgcHJvYmVkIHN1Y2Nlc3NmdWxseSIKIAogICAgICMgaW5pdGlhbGl6ZSB0aGUgZGV2aWNlcwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvenNoL3pzaF81LjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3pzaC96c2hfNS4zLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmNWUzOTAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvenNoL3pzaF81LjMuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLVNVTU1BUlkgPSAiVU5JWCBTaGVsbCBzaW1pbGFyIHRvIHRoZSBLb3JuIHNoZWxsIgotREVTQ1JJUFRJT04gPSAiWnNoIGlzIGEgc2hlbGwgZGVzaWduZWQgZm9yIGludGVyYWN0aXZlIHVzZSwgYWx0aG91Z2ggaXQgaXMgYWxzbyBhIFwKLSAgICAgICAgICAgICAgIHBvd2VyZnVsIHNjcmlwdGluZyBsYW5ndWFnZS4gTWFueSBvZiB0aGUgdXNlZnVsIGZlYXR1cmVzIG9mIGJhc2gsIFwKLSAgICAgICAgICAgICAgIGtzaCwgYW5kIHRjc2ggd2VyZSBpbmNvcnBvcmF0ZWQgaW50byB6c2g7IG1hbnkgb3JpZ2luYWwgZmVhdHVyZXMgd2VyZSBhZGRlZC4iCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LnpzaC5vcmciCi1TRUNUSU9OID0gImJhc2Uvc2hlbGwiCi0KLUxJQ0VOU0UgPSAienNoIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5DRTttZDU9YjdiYzg1Mzg5NDY2NGJlNDU1YTkyMmRiOTgwNTI4OGUiCi0KLURFUEVORFMgPSAibmN1cnNlcyBiaXNvbi1uYXRpdmUgbGliY2FwIGxpYnBjcmUgZ2RibSBncm9mZi1uYXRpdmUiCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9LyR7QlBOfS8ke0JQfS50YXIuZ3oiCi1TUkNfVVJJW21kNXN1bV0gPSAiZDU4M2ZiY2EwYzI0MTBiZjk1NDJjZThhNjUxYzI2Y2EiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiM2Q5NGE1OTBmZjNjNTYyZWNmMzg3ZGE3OGFjMzU2ZDZiZWE3OWIwNTBhOWVmODFlM2VjYjlmOGVlNTEzMDQwZSIKLQotaW5oZXJpdCBhdXRvdG9vbHMgZ2V0dGV4dCB1cGRhdGUtYWx0ZXJuYXRpdmVzCi0KLUVYVFJBX09FQ09ORiA9ICIgXAotICAgIC0tYmluZGlyPSR7YmFzZV9iaW5kaXJ9IFwKLSAgICAtLWVuYWJsZS1ldGNkaXI9JHtzeXNjb25mZGlyfSBcCi0gICAgLS1lbmFibGUtZm5kaXI9JHtkYXRhZGlyfS8ke1BOfS8ke1BWfS9mdW5jdGlvbnMgXAotICAgIC0tZW5hYmxlLXNpdGUtZm5kaXI9JHtkYXRhZGlyfS8ke1BOfS9zaXRlLWZ1bmN0aW9ucyBcCi0gICAgLS13aXRoLXRlcm0tbGliPSduY3Vyc2VzdyBuY3Vyc2VzJyBcCi0gICAgLS13aXRoLXRjc2V0cGdycCBcCi0gICAgLS1lbmFibGUtY2FwIFwKLSAgICAtLWVuYWJsZS1tdWx0aWJ5dGUgXAotICAgIC0tZGlzYWJsZS1nZGJtIFwKLSAgICAtLWRpc2FibGUtZHluYW1pYyBcCi0gICAgenNoX2N2X3NoYXJlZF9lbnZpcm9uPXllcyBcCi0iCi0KLUVYVFJBX09FTUFLRSA9ICItZSBNQUtFRkxBR1M9IgotCi1BTFRFUk5BVElWRV8ke1BOfSA9ICJzaCIKLUFMVEVSTkFUSVZFX0xJTktfTkFNRVtzaF0gPSAiJHtiYXNlX2JpbmRpcn0vc2giCi1BTFRFUk5BVElWRV9UQVJHRVRbc2hdID0gIiR7YmFzZV9iaW5kaXJ9LyR7QlBOfSIKLUFMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjEwMCIKLQotZXhwb3J0IEFVVE9IRUFERVIgPSAidHJ1ZSIKLQotZG9fY29uZmlndXJlICgpIHsKLSAgICBnbnUtY29uZmlnaXplIC0tZm9yY2UgJHtTfQotICAgIG9lX3J1bmNvbmYKLX0KLQotZG9faW5zdGFsbF9hcHBlbmQgKCkgewotICAgIHJtIC1mciAke0R9L3Vzci9zaGFyZQotfQotCi1wa2dfcG9zdGluc3RfJHtQTn0gKCkgewotICAgIHRvdWNoICREJHtzeXNjb25mZGlyfS9zaGVsbHMKLSAgICBncmVwIC1xICJiaW4venNoIiAkRCR7c3lzY29uZmRpcn0vc2hlbGxzIHx8IGVjaG8gL2Jpbi96c2ggPj4gJEQke3N5c2NvbmZkaXJ9L3NoZWxscwotICAgIGdyZXAgLXEgImJpbi9zaCIgJEQke3N5c2NvbmZkaXJ9L3NoZWxscyB8fCBlY2hvIC9iaW4vc2ggPj4gJEQke3N5c2NvbmZkaXJ9L3NoZWxscwotfQotCi1GSUxFU18ke1BOfS1kYmcgKz0gIlwKLSAgICAke2xpYmRpcn0vJHtQTn0vJHtQVn0vJHtQTn0vLmRlYnVnLyouc28gXAotICAgICR7bGliZGlyfS8ke1BOfS8ke1BWfS8ke1BOfS9kYi8uZGVidWcvKi5zbyBcCi0gICAgJHtsaWJkaXJ9LyR7UE59LyR7UFZ9LyR7UE59L25ldC8uZGVidWcvKi5zbyBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9hdGsvYXRrbW1fMi4yNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvYXRrL2F0a21tXzIuMjQuMi5iYgppbmRleCAzMGFjOTBhLi4zMDc3NzRiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9hdGsvYXRrbW1fMi4yNC4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2F0ay9hdGttbV8yLjI0LjIuYmIKQEAgLTcsNyArNyw5IEBACiAKIERFUEVORFMgPSAiYXRrIGdsaWJtbSIKIAotaW5oZXJpdCBnbm9tZSBhdXRvdG9vbHMgcGtnY29uZmlnCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBnbm9tZSBhdXRvdG9vbHMgcGtnY29uZmlnCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIFNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gImQ1M2I2MGIwZjFiZTU5N2U4NjA3MDk1NGE0OWNmMGMzIgogU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiZmY5NTM4NTc1OWUyYWYyMzgyOGQ0MDU2MzU2ZjI1Mzc2Y2ZhYmM0MWU2OTBhYzFkZjA1NTM3MTUzN2U0NThiZCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2dub21lLWNvbW1vbi9nbm9tZS1jb21tb25fMy4xOC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvZ25vbWUtY29tbW9uL2dub21lLWNvbW1vbl8zLjE4LjAuYmIKaW5kZXggMDZmM2JiMy4uZDg3NDE2NCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvZ25vbWUtY29tbW9uL2dub21lLWNvbW1vbl8zLjE4LjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvZ25vbWUtY29tbW9uL2dub21lLWNvbW1vbl8zLjE4LjAuYmIKQEAgLTE0LDYgKzE0LDEwIEBACiBFWFRSQV9BVVRPUkVDT05GID0gIiIKIERFUEVORFMgPSAiIgogCisjIERlZmF1bHQgdG8gZW5hYmxlIGF1dG9jb25mLWFyY2hpdmUgdG8gYXZvaWQgY29uZmxpY3RzCitQQUNLQUdFQ09ORklHID8/PSAiYXV0b2NvbmYtYXJjaGl2ZSIKK1BBQ0tBR0VDT05GSUdbYXV0b2NvbmYtYXJjaGl2ZV0gPSAiLS13aXRoLWF1dG9jb25mLWFyY2hpdmUsIC0td2l0aG91dC1hdXRvY29uZi1hcmNoaXZlLCBhdXRvY29uZi1hcmNoaXZlIgorCiBGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9hY2xvY2FsIgogRklMRVNfJHtQTn0tZGV2ID0gIiIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvZ3RrKy9maWxlcy8wMDAxLWRvLW5vdC1idWlsZC1kZW1vcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2d0aysvZmlsZXMvMDAwMS1kby1ub3QtYnVpbGQtZGVtb3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc2ZTk3OQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2d0aysvZmlsZXMvMDAwMS1kby1ub3QtYnVpbGQtZGVtb3MucGF0Y2gKQEAgLTAsMCArMSw1MSBAQAorRnJvbSA2OTE0ZWNjZWUzNDM3NmY5MDY3YjBlZTlmMTcwMzlmZTE4MjEyNWU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IFNhdCwgMzEgTWFyIDIwMTggMjI6Mjk6MTYgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZG8gbm90IGJ1aWxkIGRlbW9zCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1RoZXkgYXJlIG5vdCBpbnN0YWxsZWQgYW55d2F5IGFuZCBhZGQgbGliZXBveHkgZGVwZW5kZW5jeQorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKy0tLQorIE1ha2VmaWxlLmFtICB8IDMgKystCisgY29uZmlndXJlLmFjIHwgMyAtLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KK2luZGV4IDk4NGI2YTcuLjZjNzU0YTYgMTAwNjQ0CistLS0gYS9NYWtlZmlsZS5hbQorKysrIGIvTWFrZWZpbGUuYW0KK0BAIC0yOCw3ICsyOCw4IEBAIGRvY19zdWJkaXJzID0gZG9jcworIGVsc2UKKyBkb2Nfc3ViZGlycyA9CisgZW5kaWYKKy1TVUJESVJTID0gdG9vbHMgJChzcmNfc3ViZGlycykgZ2RrL2dka21tIGd0ay9ndGttbSB0ZXN0cyBkZW1vcyAkKGRvY19zdWJkaXJzKQorKworK1NVQkRJUlMgPSB0b29scyAkKHNyY19zdWJkaXJzKSBnZGsvZ2RrbW0gZ3RrL2d0a21tIHRlc3RzICQoZG9jX3N1YmRpcnMpCisgCisgZ2RrbW1faW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvJChHREtNTV9NT0RVTEVfTkFNRSkKKyBnZGttbV9pbmNsdWRlX0hFQURFUlMgPSBnZGsvZ2RrbW0uaAorZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggZTVlODJkYy4uYzFjNzY1OCAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtMTA5LDExICsxMDksOCBAQCBBU19JRihbdGVzdCAieCRndGttbV9lbmFibGVfYXBpX2F0a21tIiAhPSB4bm9dLAorICAgICAgIFtHVEtNTV9NT0RVTEVTPSJhdGttbS0xLjYgPj0gMi4yNC4yICRHVEtNTV9NT0RVTEVTIl0pCisgQUNfU1VCU1QoW0dUS01NX01PRFVMRVNdKQorIAorLUFDX1NVQlNUKFtHVEtNTV9ERU1PU19FWFRSQV9NT0RVTEVTXSwgWydlcG94eSA+PSAxLjInXSkKKy0KKyBQS0dfQ0hFQ0tfTU9EVUxFUyhbR0RLTU1dLCBbJEdES01NX01PRFVMRVNdKQorIFBLR19DSEVDS19NT0RVTEVTKFtHVEtNTV0sIFskR1RLTU1fTU9EVUxFU10pCistUEtHX0NIRUNLX01PRFVMRVMoW0dUS01NX0RFTU9TX0VYVFJBXSwgWyRHVEtNTV9ERU1PU19FWFRSQV9NT0RVTEVTXSkKKyAKKyBNTV9QS0dfQ09ORklHX1NVQlNUKFtHVEhSRUFEX0NGTEFHU10sIFstLWNmbGFncy1vbmx5LW90aGVyIGd0aHJlYWQtMi4wXSkKKyBNTV9QS0dfQ09ORklHX1NVQlNUKFtHVEhSRUFEX0xJQlNdLCBbLS1saWJzIGd0aHJlYWQtMi4wXSkKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2d0aysvZ3RrbW0zXzMuMjIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2d0aysvZ3RrbW0zXzMuMjIuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmI1NGRkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvZ3RrKy9ndGttbTNfMy4yMi4yLmJiCkBAIC0wLDAgKzEsMjMgQEAKK1NVTU1BUlkgPSAiQysrIGJpbmRpbmdzIGZvciB0aGUgR1RLKyB0b29sa2l0IFYzIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5ndGttbS5vcmcvIgorU0VDVElPTiA9ICJsaWJzIgorCitMSUNFTlNFID0gIkxHUEx2Mi4xICYgR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT00ZmJkNjUzODBjZGQyNTU5NTEwNzkwMDhiMzY0NTE2YyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLnRvb2xzO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKKworREVQRU5EUyA9ICJhdGttbSBwYW5nb21tIGdsaWJtbSBndGsrMyBjYWlyb21tIgorCitCUE4gPSAiZ3RrbW0iCisKK2luaGVyaXQgZ25vbWViYXNlIGRpc3Ryb19mZWF0dXJlc19jaGVjaworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICI4ODNlOTA0Njc2OGIzYTVhZmM4ZTM2NTk4ODgyM2U3NyIKK1NSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjkxYWZkOThhMzE1MTk1MzZmNWYzOTdjMmQ3OTY5NmUzZDUzMTQzYjgwYjc1Nzc4NTIxY2E3YjQ4Y2IyODAwOTAiCitTUkNfVVJJICs9ICJmaWxlOi8vMDAwMS1kby1ub3QtYnVpbGQtZGVtb3MucGF0Y2giCisKK0VYVFJBX09FQ09ORiA9ICIgLS1kaXNhYmxlLWRvY3VtZW50YXRpb24gIgorCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS8qL2luY2x1ZGUgJHtsaWJkaXJ9LyovcHJvYy9tNCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2d0aysvZ3RrbW1fMi4yNC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvZ3RrKy9ndGttbV8yLjI0LjUuYmIKaW5kZXggMTk1YmIyMS4uYjc4MGQwOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvZ3RrKy9ndGttbV8yLjI0LjUuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvZ3RrKy9ndGttbV8yLjI0LjUuYmIKQEAgLTgsMTIgKzgsMTAgQEAKIAogREVQRU5EUyA9ICJhdGttbSBwYW5nb21tIGdsaWJtbSBndGsrIGNhaXJvbW0iCiAKLWluaGVyaXQgZ25vbWUgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKK2luaGVyaXQgZ25vbWViYXNlIGRpc3Ryb19mZWF0dXJlc19jaGVjawogCiBSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCi1HTk9NRV9DT01QUkVTU19UWVBFID0gInh6IgotCiBTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICI2YzU5YWU4YmJmZjQ4ZmFkOTEzMmYyM2FmMzQ3YWNmMSIKIFNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjA2ODBhNTNiN2JmOTBiNGU0YmY0NDRkMWQ4OWU2ZGY0MWM3NzdlMGJhY2M5NmU5YzA5ZmM0ZGQyZjVmZTZiNzIiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYmdsYWRlL2xpYmdsYWRlLTIuNi40LzAwMDEtY29uZmlndXJlLmluLXJlbW92ZS1kZXByZWNhdGVkLUdOT01FX0NPTU1PTl9JTklULnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGliZ2xhZGUvbGliZ2xhZGUtMi42LjQvMDAwMS1jb25maWd1cmUuaW4tcmVtb3ZlLWRlcHJlY2F0ZWQtR05PTUVfQ09NTU9OX0lOSVQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MzgyNzQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGliZ2xhZGUvbGliZ2xhZGUtMi42LjQvMDAwMS1jb25maWd1cmUuaW4tcmVtb3ZlLWRlcHJlY2F0ZWQtR05PTUVfQ09NTU9OX0lOSVQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1Gcm9tIGNlZWZjYjE5Y2ViZjhiYzNkNDVlZTUwMmY4ZWFiZDNiYzViZDBhYWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDExIEZlYiAyMDE3IDE2OjQyOjEyICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNvbmZpZ3VyZS5pbjogcmVtb3ZlIGRlcHJlY2F0ZWQgR05PTUVfQ09NTU9OX0lOSVQKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLS0tLQotIGNvbmZpZ3VyZS5pbiB8IDEgLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KLWluZGV4IDg5MDVmMWMuLjM5MDEzOTggMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuaW4KLSsrKyBiL2NvbmZpZ3VyZS5pbgotQEAgLTE1LDcgKzE1LDYgQEAgQUNfQ09ORklHX0hFQURFUlMoW2NvbmZpZy5oXSkKLSAKLSBBTV9JTklUX0FVVE9NQUtFKFsxLjkgbm8tZGlzdC1nemlwIGRpc3QtYnppcDJdKQotIAotLUdOT01FX0NPTU1PTl9JTklUCi0gCi0gaWYgdGVzdCAiJGVuYWJsZV9kZWJ1ZyIgIT0gIm5vIjsgdGhlbgotICAgQUNfREVGSU5FKFtERUJVR10sWzFdLFtlbmFibGUgdXNlIG9mIExJQkdMQURFX0RFQlVHIGVudmlyb25tZW50IHZhcmlhYmxlXSkKLS0tIAotMi45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGliZ2xhZGUvbGliZ2xhZGUtMi42LjQvZ2xhZGUtY3J1ZnQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJnbGFkZS9saWJnbGFkZS0yLjYuNC9nbGFkZS1jcnVmdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzVkNTg2NC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJnbGFkZS9saWJnbGFkZS0yLjYuNC9nbGFkZS1jcnVmdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotZGlmZiAtdXIgbGliZ2xhZGUtMi40LjB+L2NvbmZpZ3VyZS5pbiBsaWJnbGFkZS0yLjQuMC9jb25maWd1cmUuaW4KLS0tLSBsaWJnbGFkZS0yLjQuMH4vY29uZmlndXJlLmluCTIwMDQtMDUtMTcgMTI6Mzg6MzEuMDAwMDAwMDAwICswMTAwCi0rKysgbGliZ2xhZGUtMi40LjAvY29uZmlndXJlLmluCTIwMDQtMDctMjggMTY6NTM6MDkuMDAwMDAwMDAwICswMTAwCi1AQCAtMTQ3LDYgKzE0NywxOCBAQAotIEFNX0NPTkRJVElPTkFMKEhBVkVfUFlUSE9OLCAkaGF2ZV9weXRob24pCi0gQUNfU1VCU1QoUFlUSE9OKQotIAotK0FDX01TR19DSEVDS0lORyhbZm9yIGNydWZ0IGluIGxpYmd0a10pCi0rQUNfVFJZX0xJTksoWwotKyNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rXSwgICAgICBbIGd0a190cmVlX2dldF90eXBlICgpOyByZXR1cm4gMDsgXSwKLSsgICAgICAgIFsgQUNfTVNHX1JFU1VMVCh5ZXMpCi0rICAgICAgICAgIGhhdmVfY3J1ZnQ9eWVzIF0sCi0rICAgICAgICBbIEFDX01TR19SRVNVTFQobm8pCi0rCSAgQUNfREVGSU5FKERJU0FCTEVfQ1JVRlQsLFtsZWF2ZSBvdXQgc3VwcG9ydCBmb3Igb2xkLCBicm9rZW4gd2lkZ2V0c10pCi0rICAgICAgICAgIGhhdmVfY3J1ZnQ9bm8gXSkKLStBQ19TVUJTVChESVNBQkxFX0NSVUZUKQotKwotIGRubCBhZGQgZGVidWdnaW5nIG9wdGlvbnMgLi4uCi0gY2hhbmdlcXVvdGUoLClkbmwKLSBpZiB0ZXN0ICJ4JEdDQyIgPSB4eWVzOyB0aGVuCi1Pbmx5IGluIGxpYmdsYWRlLTIuNC4wOiBjb25maWd1cmUuaW4ub3JpZwotZGlmZiAtdXIgbGliZ2xhZGUtMi40LjB+L2dsYWRlL2dsYWRlLWd0ay5jIGxpYmdsYWRlLTIuNC4wL2dsYWRlL2dsYWRlLWd0ay5jCi0tLS0gbGliZ2xhZGUtMi40LjB+L2dsYWRlL2dsYWRlLWd0ay5jCTIwMDQtMDMtMTMgMTM6NDc6MzUuMDAwMDAwMDAwICswMDAwCi0rKysgbGliZ2xhZGUtMi40LjAvZ2xhZGUvZ2xhZGUtZ3RrLmMJMjAwNC0wNy0yOCAxNjo1Mzo1Mi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0yMTMsNiArMjEzLDggQEAKLSAJZ3RrX2NsaXN0X2NvbHVtbl90aXRsZXNfaGlkZSAoR1RLX0NMSVNUICh3KSk7Ci0gfQotIAotKyNpZm5kZWYgRElTQUJMRV9DUlVGVAotKwotIHN0YXRpYyB2b2lkCi0gdHJlZV9zZXRfc2VsZWN0aW9uX21vZGUgKEdsYWRlWE1MICp4bWwsIEd0a1dpZGdldCAqdywKLSAJCQkgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCi1AQCAtMjM4LDYgKzI0MCw4IEBACi0gICAgIGd0a190cmVlX3NldF92aWV3X2xpbmVzIChHVEtfVFJFRSAodyksIEJPT0wgKHZhbHVlKSk7Ci0gfQotIAotKyNlbmRpZgotKwotIHN0YXRpYyB2b2lkCi0gbGlzdF9zZXRfc2VsZWN0aW9uX21vZGUgKEdsYWRlWE1MICp4bWwsIEd0a1dpZGdldCAqdywKLSAJCQkgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCi1AQCAtMjU0LDYgKzI1OCw3IEBACi0gICAgIGd0a19jaGVja19tZW51X2l0ZW1fc2V0X3Nob3dfdG9nZ2xlIChHVEtfQ0hFQ0tfTUVOVV9JVEVNICh3KSwgQk9PTCAodmFsdWUpKTsKLSB9Ci0gCi0rI2lmbmRlZiBESVNBQkxFX0NSVUZUCi0gc3RhdGljIHZvaWQKLSB0ZXh0X3NldF90ZXh0IChHbGFkZVhNTCAqeG1sLCBHdGtXaWRnZXQgKncsCi0gCSAgICAgICBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKLUBAIC0yNjIsNiArMjY3LDcgQEAKLSAKLSAgICAgZ3RrX2VkaXRhYmxlX2luc2VydF90ZXh0IChHVEtfRURJVEFCTEUgKHcpLCB2YWx1ZSwgLTEsICZwb3MpOwotIH0KLSsjZW5kaWYKLSAKLSBzdGF0aWMgdm9pZAotIHJhZGlvX21lbnVfaXRlbV9zZXRfZ3JvdXAgKEdsYWRlWE1MICp4bWwsIEd0a1dpZGdldCAqdywKLUBAIC0xMTI1LDEzICsxMTMxLDE3IEBACi0gICAgIGdsYWRlX3JlZ2lzdGVyX2N1c3RvbV9wcm9wIChHVEtfVFlQRV9DTElTVCwgInNlbGVjdGlvbl9tb2RlIiwgY2xpc3Rfc2V0X3NlbGVjdGlvbl9tb2RlKTsKLSAgICAgZ2xhZGVfcmVnaXN0ZXJfY3VzdG9tX3Byb3AgKEdUS19UWVBFX0NMSVNULCAic2hhZG93X3R5cGUiLCBjbGlzdF9zZXRfc2hhZG93X3R5cGUpOwotICAgICBnbGFkZV9yZWdpc3Rlcl9jdXN0b21fcHJvcCAoR1RLX1RZUEVfQ0xJU1QsICJzaG93X3RpdGxlcyIsIGNsaXN0X3NldF9zaG93X3RpdGxlcyk7Ci0rI2lmbmRlZiBESVNBQkxFX0NSVUZUCi0gICAgIGdsYWRlX3JlZ2lzdGVyX2N1c3RvbV9wcm9wIChHVEtfVFlQRV9UUkVFLCAic2VsZWN0aW9uX21vZGUiLCB0cmVlX3NldF9zZWxlY3Rpb25fbW9kZSk7Ci0gICAgIGdsYWRlX3JlZ2lzdGVyX2N1c3RvbV9wcm9wIChHVEtfVFlQRV9UUkVFLCAidmlld19tb2RlIiwgdHJlZV9zZXRfdmlld19tb2RlKTsKLSAgICAgZ2xhZGVfcmVnaXN0ZXJfY3VzdG9tX3Byb3AgKEdUS19UWVBFX1RSRUUsICJ2aWV3X2xpbmUiLCB0cmVlX3NldF92aWV3X2xpbmUpOwotKyNlbmRpZgotICAgICBnbGFkZV9yZWdpc3Rlcl9jdXN0b21fcHJvcCAoR1RLX1RZUEVfTElTVCwgInNlbGVjdGlvbl9tb2RlIiwgbGlzdF9zZXRfc2VsZWN0aW9uX21vZGUpOwotICAgICBnbGFkZV9yZWdpc3Rlcl9jdXN0b21fcHJvcCAoR1RLX1RZUEVfQ0hFQ0tfTUVOVV9JVEVNLCAiYWx3YXlzX3Nob3dfdG9nZ2xlIiwKLSAJCQkJY2hlY2tfbWVudV9pdGVtX3NldF9hbHdheXNfc2hvd190b2dnbGUpOwotKyNpZm5kZWYgRElTQUJMRV9DUlVGVAotICAgICBnbGFkZV9yZWdpc3Rlcl9jdXN0b21fcHJvcCAoR1RLX1RZUEVfVEVYVCwgInRleHQiLCB0ZXh0X3NldF90ZXh0KTsKLSsjZW5kaWYKLSAgICAgZ2xhZGVfcmVnaXN0ZXJfY3VzdG9tX3Byb3AgKEdUS19UWVBFX1JBRElPX01FTlVfSVRFTSwgImdyb3VwIiwKLSAJCQkJcmFkaW9fbWVudV9pdGVtX3NldF9ncm91cCk7Ci0gICAgIGdsYWRlX3JlZ2lzdGVyX2N1c3RvbV9wcm9wIChHVEtfVFlQRV9UT09MQkFSLCAidG9vbHRpcHMiLCB0b29sYmFyX3NldF90b29sdGlwcyk7Ci1AQCAtMTI4OCw4ICsxMjk4LDEwIEBACi0gCQkJICAgZ2xhZGVfc3RhbmRhcmRfYnVpbGRfY2hpbGRyZW4sIE5VTEwpOwotICAgICBnbGFkZV9yZWdpc3Rlcl93aWRnZXQgKEdUS19UWVBFX1RFQVJPRkZfTUVOVV9JVEVNLCBnbGFkZV9zdGFuZGFyZF9idWlsZF93aWRnZXQsCi0gCQkJICAgTlVMTCwgTlVMTCk7Ci0rI2lmbmRlZiBESVNBQkxFX0NSVUZUCi0gICAgIGdsYWRlX3JlZ2lzdGVyX3dpZGdldCAoR1RLX1RZUEVfVEVYVCwgZ2xhZGVfc3RhbmRhcmRfYnVpbGRfd2lkZ2V0LAotIAkJCSAgIE5VTEwsIE5VTEwpOwotKyNlbmRpZgotICAgICBnbGFkZV9yZWdpc3Rlcl93aWRnZXQgKEdUS19UWVBFX1RFWFRfVklFVywgZ2xhZGVfc3RhbmRhcmRfYnVpbGRfd2lkZ2V0LAotIAkJCSAgIE5VTEwsIE5VTEwpOwotICAgICBnbGFkZV9yZWdpc3Rlcl93aWRnZXQgKEdUS19UWVBFX1RJUFNfUVVFUlksIGdsYWRlX3N0YW5kYXJkX2J1aWxkX3dpZGdldCwKLUBAIC0xMzA0LDggKzEzMTYsMTAgQEAKLSAJCQkgICBnbGFkZV9zdGFuZGFyZF9idWlsZF9jaGlsZHJlbiwgTlVMTCk7Ci0gICAgIGdsYWRlX3JlZ2lzdGVyX3dpZGdldCAoR1RLX1RZUEVfVE9PTF9CVVRUT04sIGdsYWRlX3N0YW5kYXJkX2J1aWxkX3dpZGdldCwKLSAJCQkgICBOVUxMLCBOVUxMKTsKLSsjaWZuZGVmIERJU0FCTEVfQ1JVRlQKLSAgICAgZ2xhZGVfcmVnaXN0ZXJfd2lkZ2V0IChHVEtfVFlQRV9UUkVFLCBnbGFkZV9zdGFuZGFyZF9idWlsZF93aWRnZXQsCi0gCQkJICAgTlVMTCwgTlVMTCk7Ci0rI2VuZGlmCi0gICAgIGdsYWRlX3JlZ2lzdGVyX3dpZGdldCAoR1RLX1RZUEVfVFJFRV9WSUVXLCBnbGFkZV9zdGFuZGFyZF9idWlsZF93aWRnZXQsCi0gCQkJICAgTlVMTCwgTlVMTCk7Ci0gICAgIGdsYWRlX3JlZ2lzdGVyX3dpZGdldCAoR1RLX1RZUEVfVkJVVFRPTl9CT1gsIGdsYWRlX3N0YW5kYXJkX2J1aWxkX3dpZGdldCwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYmdsYWRlL2xpYmdsYWRlLTIuNi40L25vLXhtbDIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJnbGFkZS9saWJnbGFkZS0yLjYuNC9uby14bWwyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzRjMDkyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYmdsYWRlL2xpYmdsYWRlLTIuNi40L25vLXhtbDIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1MDEgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQotCi1kaWZmIC11ck4gbGliZ2xhZGUtMi40LjIub3JpZy9jb25maWd1cmUuaW4gbGliZ2xhZGUtMi40LjIvY29uZmlndXJlLmluCi0tLS0gbGliZ2xhZGUtMi40LjIub3JpZy9jb25maWd1cmUuaW4JMjAwNS0wMi0xMSAxMjo0Mjo1OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsaWJnbGFkZS0yLjQuMi9jb25maWd1cmUuaW4JMjAwNS0wMy0yMiAwMToyMjowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC01MiwxMSArNTIsMzMgQEAKLSBBQ19QQVRIX1BST0coUEtHX0NPTkZJRywgcGtnLWNvbmZpZywgbm8pCi0gCi0gUEtHX0NIRUNLX01PRFVMRVMoTElCR0xBREUsIFtkbmwKLS0gIGxpYnhtbC0yLjAgPj0gcmVxdWlyZWRfbGlieG1sX3ZlcnNpb24gZG5sCi0gICBhdGsgPj0gcmVxdWlyZWRfYXRrX3ZlcnNpb24gZG5sCi0gICBndGsrLTIuMCA+PSByZXF1aXJlZF9ndGtfdmVyc2lvbiBkbmwKLSAgIGdsaWItMi4wID49IHJlcXVpcmVkX2dsaWJfdmVyc2lvbl0pCi0gCi0rZGlzYWJsZV94bWwyPW5vCi0rQUNfQVJHX1dJVEgoW2xpYnhtbDJdLAotKyAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aG91dC1saWJ4bWwyXSwgW0Rvbid0IHVzZSBsaWJ4bWwyLCB1c2UgR2xpYidzIEdNYXJrdXBQYXJzZXIgaW5zdGVhZF0pLAotKyAgW2Rpc2FibGVfeG1sMj15ZXNdLAotKyAgW2Rpc2FibGVfeG1sMj1ub10pCi0rCi0rQUNfTVNHX0NIRUNLSU5HKFtpZiB3ZSBhcmUgdXNpbmcgbGlieG1sMl0pCi0raWYgdGVzdCAieCRkaXNhYmxlX3htbDIiID09ICJ4bm8iOyB0aGVuCi0rICBBQ19NU0dfUkVTVUxUKHllcykKLSsgIFBLR19DSEVDS19NT0RVTEVTKFhNTDIsIGxpYnhtbC0yLjAgPj0gMi40LjEwKQotKyAgUEtHQ0ZHX1JFUVVJUkVfTElCWE1MMj0ibGlieG1sLTIuMCIKLSsgIExJQkdMQURFX0NGTEFHUz0iJExJQkdMQURFX0NGTEFHUyAkWE1MMl9DRkxBR1MiCi0rICBMSUJHTEFERV9MSUJTPSIkTElCR0xBREVfTElCUyAkWE1MMl9MSUJTIgotK2Vsc2UKLSsgIExJQkdMQURFX0NGTEFHUz0iJExJQkdMQURFX0NGTEFHUyAtRFVTRV9HTUFSS1VQX1BBUlNFUiIKLSsgIFBLR0NGR19SRVFVSVJFX0xJQlhNTDI9IiIKLSsgIEFDX01TR19SRVNVTFQobm8pCi0rZmkKLSsKLStBQ19TVUJTVChYTUwyX0xJQlMpCi0rQUNfU1VCU1QoWE1MMl9DRkxBR1MpCi0rQUNfU1VCU1QoUEtHQ0ZHX1JFUVVJUkVfTElCWE1MMikKLSsKLSBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBuYXRpdmUgV2luMzJdKQotIGNhc2UgIiRob3N0IiBpbgotICAgKi0qLW1pbmd3KikKLUBAIC0xMTYsNiArMTM4LDIxIEBACi0gICBmaQotIGZpCi0gCi0raWYgdGVzdCAieCRkaXNhYmxlX3htbDIiID09ICJ4eWVzIjsgdGhlbgotKyAgZWNobyAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioiCi0rICBlY2hvICIgIFlvdSBjaG9zZSB0byBkaXNhYmxlIGxpYnhtbDIgYW5kIHVzZSBHbGliJ3MiCi0rICBlY2hvICIgIEdNYXJrdXBQYXJzZXIgaW5zdGVhZC4iIAotKyAgZWNobyAgCi0rICBlY2hvICIgIFBsZWFzZSBiZWFyIGluIG1pbmQgdGhhdCB1c2luZyBsaWJnbGFkZSB3aXRoIgotKyAgZWNobyAiICBHTWFya3VwUGFyc2VyIGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlIG9ubHkuIgotKyAgZWNobwotKyAgZWNobyAiICBQbGVhc2UgcG9zdCBwcm9ibGVtcyBvciBzdWNjZXNzIHN0b3JpZXMgdG8iCi0rICBlY2hvICIgIHRoZSBnbGFkZS1kZXZlbCBtYWlsaW5nIGxpc3QuIFRoYW5rIHlvdS4iCi0rICBlY2hvICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIKLStmaQotKwotKwotKwotIEdUS19ET0NfQ0hFQ0soMS4wKQotIAotIGRubCBnZXR0ZXh0IHN0dWZmIC4uLiB0aGVyZSBpcyBubyBtZXNzYWdlIGNhdGFsb2cgZm9yIGxpYmdsYWRlIC0tIGxpYmdsYWRlCi1kaWZmIC11ck4gbGliZ2xhZGUtMi40LjIub3JpZy9nbGFkZS9nbGFkZS1wYXJzZXIuYyBsaWJnbGFkZS0yLjQuMi9nbGFkZS9nbGFkZS1wYXJzZXIuYwotLS0tIGxpYmdsYWRlLTIuNC4yLm9yaWcvZ2xhZGUvZ2xhZGUtcGFyc2VyLmMJMjAwNC0xMS0xMSAxMTo1NjoxMy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsaWJnbGFkZS0yLjQuMi9nbGFkZS9nbGFkZS1wYXJzZXIuYwkyMDA1LTAzLTIyIDAxOjIwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTM0LDcgKzM0LDE1IEBACi0gIyAgZGVmaW5lIGRnZXR0ZXh0KERvbWFpbiwgU3RyaW5nKSAoU3RyaW5nKQotICNlbmRpZgotIAotLSNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+Ci0rI2lmZGVmIFVTRV9HTUFSS1VQX1BBUlNFUgotKyMgIGluY2x1ZGUgPHpsaWIuaD4KLSsjZWxzZQotKyMgIGluY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KLSsjZW5kaWYKLSsKLSsjaWZkZWYgVVNFX0dNQVJLVVBfUEFSU0VSCi0rIyAgZGVmaW5lIHhtbENoYXIgZ2NoYXIKLSsjZW5kaWYKLSAKLSAjaW5jbHVkZSAiZ2xhZGUtcGFyc2VyLmgiCi0gI2luY2x1ZGUgImdsYWRlLXByaXZhdGUuaCIKLUBAIC01MDgsNyArNTE2LDkgQEAKLSAgICAgY2FzZSBQQVJTRVJfU1RBUlQ6Ci0gCWlmICghc3RyY21wKG5hbWUsICJnbGFkZS1pbnRlcmZhY2UiKSkgewotIAkgICAgc3RhdGUtPnN0YXRlID0gUEFSU0VSX0dMQURFX0lOVEVSRkFDRTsKLS0jaWYgMAotKwotKyNpZm5kZWYgVVNFX0dNQVJLVVBfUEFSU0VSCi0rICNpZiAwCi0gCSAgICAvKiBjaGVjayBmb3IgY29ycmVjdCBYTUwgbmFtZXNwYWNlICovCi0gCSAgICBmb3IgKGkgPSAwOyBhdHRycyAmJiBhdHRyc1tpXSAhPSBOVUxMOyBpICs9IDIpIHsKLSAJCWlmICghc3RyY21wKGF0dHJzW2ldLCAieG1sbnMiKSAmJgotQEAgLTUxOCw3ICs1MjgsOSBAQAotIAkJICAgIGdfd2FybmluZygidW5rbm93biBhdHRyaWJ1dGUgYCVzJyBmb3IgPGdsYWRlLWludGVyZmFjZT4iLAotIAkJCSAgICAgIGF0dHJzW2ldKTsKLSAJICAgIH0KLSsgI2VuZGlmCi0gI2VuZGlmCi0rCi0gCX0gZWxzZSB7Ci0gCSAgICBnX3dhcm5pbmcoIkV4cGVjdGVkIDxnbGFkZS1pbnRlcmZhY2U+LiAgR290IDwlcz4uIiwgbmFtZSk7Ci0gCSAgICBzdGF0ZS0+cHJldl9zdGF0ZSA9IHN0YXRlLT5zdGF0ZTsKLUBAIC0xMDYzLDEyICsxMDc1LDE4IEBACi0gICAgIH0KLSB9Ci0gCi0rI2lmbmRlZiBVU0VfR01BUktVUF9QQVJTRVIKLSsKLSBzdGF0aWMgeG1sRW50aXR5UHRyCi0gZ2xhZGVfcGFyc2VyX2dldF9lbnRpdHkoR2xhZGVQYXJzZVN0YXRlICpzdGF0ZSwgY29uc3QgeG1sQ2hhciAqbmFtZSkKLSB7Ci0gICAgIHJldHVybiB4bWxHZXRQcmVkZWZpbmVkRW50aXR5KG5hbWUpOwotIH0KLSAKLSsjZW5kaWYgLyogIWRlZmluZWQoVVNFX0dNQVJLVVBfUEFSU0VSKSAqLwotKwotKyNpZm5kZWYgVVNFX0dNQVJLVVBfUEFSU0VSCi0rCi0gc3RhdGljIHZvaWQKLSBnbGFkZV9wYXJzZXJfd2FybmluZyhHbGFkZVBhcnNlU3RhdGUgKnN0YXRlLCBjb25zdCBjaGFyICptc2csIC4uLikKLSB7Ci1AQCAtMTA3OSw2ICsxMDk3LDEwIEBACi0gICAgIHZhX2VuZChhcmdzKTsKLSB9Ci0gCi0rI2VuZGlmIC8qICFkZWZpbmVkKFVTRV9HTUFSS1VQX1BBUlNFUikgKi8KLSsKLSsjaWZuZGVmIFVTRV9HTUFSS1VQX1BBUlNFUgotKwotIHN0YXRpYyB2b2lkCi0gZ2xhZGVfcGFyc2VyX2Vycm9yKEdsYWRlUGFyc2VTdGF0ZSAqc3RhdGUsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQotIHsKLUBAIC0xMDg5LDYgKzExMTEsMTAgQEAKLSAgICAgdmFfZW5kKGFyZ3MpOwotIH0KLSAKLSsjZW5kaWYgLyogIWRlZmluZWQoVVNFX0dNQVJLVVBfUEFSU0VSKSAqLwotKwotKyNpZm5kZWYgVVNFX0dNQVJLVVBfUEFSU0VSCi0rCi0gc3RhdGljIHZvaWQKLSBnbGFkZV9wYXJzZXJfZmF0YWxfZXJyb3IoR2xhZGVQYXJzZVN0YXRlICpzdGF0ZSwgY29uc3QgY2hhciAqbXNnLCAuLi4pCi0gewotQEAgLTEwOTksNiArMTEyNSwxMCBAQAotICAgICB2YV9lbmQoYXJncyk7Ci0gfQotIAotKyNlbmRpZiAvKiAhZGVmaW5lZChVU0VfR01BUktVUF9QQVJTRVIpICovCi0rCi0rI2lmbmRlZiBVU0VfR01BUktVUF9QQVJTRVIKLSsKLSBzdGF0aWMgeG1sU0FYSGFuZGxlciBnbGFkZV9wYXJzZXIgPSB7Ci0gICAgIChpbnRlcm5hbFN1YnNldFNBWEZ1bmMpTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIGludGVybmFsU3Vic2V0ICovCi0gICAgIChpc1N0YW5kYWxvbmVTQVhGdW5jKU5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGlzU3RhbmRhbG9uZSAqLwotQEAgLTExMjYsNiArMTE1Niw4MiBAQAotICAgICAoZmF0YWxFcnJvclNBWEZ1bmMpZ2xhZGVfcGFyc2VyX2ZhdGFsX2Vycm9yLCAgICAgICAvKiBmYXRhbEVycm9yICovCi0gfTsKLSAKLSsjZWxzZSAvKiBVU0VfR01BUktVUF9QQVJTRVIgKi8KLSsKLStzdGF0aWMgdm9pZAotK2dsYWRlX3BhcnNlcl9zdGFydF9lbGVtZW50X3dyYXBwZXIoR01hcmt1cFBhcnNlQ29udGV4dCAqY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgKm5hbWUsIAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICoqYXR0cl9uYW1lcywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAqKmF0dHJfdmFsdWVzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICAgc3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgKiplcnJvcikKLSt7Ci0rICAgIGd1aW50IGkgPSAwOwotKwotKyAgICAvKiBQYWNrIGF0dHJpYnV0ZSBuYW1lcy92YWx1ZXMgZnJvbSB0d28gc2VwYXJhdGUKLSsgICAgICogIGFycmF5cyAoR01hcmt1cFBhcnNlciBzdHlsZSkgaW50byBvbmUgc2luZ2xlCi0rICAgICAqICBhcnJheSAobGlieG1sIFNBWFBhcnNlciBzdHlsZSkuIFRoaXMgaXMgbm90Ci0rICAgICAqICB2ZXJ5IGVmZmljaWVudCwgYnV0IHdlIGRvIGl0IHRvIG1ha2UgdGhlCi0rICAgICAqICBHTWFya3VwUGFyc2VyIGNvZGUgYXMgbGl0dGxlIGludmFzaXZlIGFzCi0rICAgICAqICBwb3NzaWJsZS4gKi8KLSsKLSsgICAgd2hpbGUgKGF0dHJfbmFtZXNbaV0gIT0gTlVMTCkgewotKyAgICAgICsraTsKLSsgICAgfQotKwotKyAgICBpZiAoMSkKLSsgICAgewotKyAgICAgICAgY29uc3QgZ2NoYXIgKmF0dHJbKGkqMikrMV07Ci0rICAgICAgICBndWludCBqLCBrOwotKyAgICAgICAKLSsgICAgICAgIGZvciAoaj0wLCBrPTA7ICBrIDwgaTsgIGogKz0gMikKLSsgICAgICAgIHsKLSsgICAgICAgICAgICBhdHRyW2pdID0gYXR0cl9uYW1lc1trXTsKLSsgICAgICAgICAgICBhdHRyW2orMV0gPSBhdHRyX3ZhbHVlc1trXTsKLSsgICAgICAgICAgICArK2s7Ci0rICAgICAgICB9Ci0rICAgICAgICBhdHRyW2kqMl0gPSBOVUxMOwotKwotKyAgICAgICAgZ2xhZGVfcGFyc2VyX3N0YXJ0X2VsZW1lbnQoKEdsYWRlUGFyc2VTdGF0ZSopc3RhdGUsIG5hbWUsIGF0dHIpOwotKyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZ2xhZGVfcGFyc2VyX2VuZF9lbGVtZW50X3dyYXBwZXIoR01hcmt1cFBhcnNlQ29udGV4dCAqY29udGV4dCwgCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAqbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgICAgICBzdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgKiplcnIpCi0rewotKyAgICBnbGFkZV9wYXJzZXJfZW5kX2VsZW1lbnQoKEdsYWRlUGFyc2VTdGF0ZSopc3RhdGUsIG5hbWUpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2dsYWRlX3BhcnNlcl9jaGFyYWN0ZXJzX3dyYXBwZXIoR01hcmt1cFBhcnNlQ29udGV4dCAqY29udGV4dCwgCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICpjaGFycywgCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSAgICAgICAgICAgICAgICBsZW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgICAgICBzdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAqKmVycikKLSt7Ci0rICAgIGdsYWRlX3BhcnNlcl9jaGFyYWN0ZXJzKChHbGFkZVBhcnNlU3RhdGUqKXN0YXRlLCBjaGFycywgKGludCkgbGVuKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStnbGFkZV9wYXJzZXJfZXJyb3IoR01hcmt1cFBhcnNlQ29udGV4dCAqY29udGV4dCwgR0Vycm9yICplcnIsIGdwb2ludGVyIGRhdGEpCi0rewotKyAgICBnX2xvZygiR2xhZGUtUGFyc2VyIiwgR19MT0dfTEVWRUxfQ1JJVElDQUwsICIlcyIsIGVyci0+bWVzc2FnZSk7Ci0rfQotKwotK3N0YXRpYyBjb25zdCBHTWFya3VwUGFyc2VyICAgZ2xhZGVfcGFyc2VyID0gewotKyAgICBnbGFkZV9wYXJzZXJfc3RhcnRfZWxlbWVudF93cmFwcGVyLCAgLyogZWxlbWVudCBvcGVuICAgKi8KLSsgICAgZ2xhZGVfcGFyc2VyX2VuZF9lbGVtZW50X3dyYXBwZXIsICAgIC8qIGVsZW1lbnQgY2xvc2UgICovCi0rICAgIGdsYWRlX3BhcnNlcl9jaGFyYWN0ZXJzX3dyYXBwZXIsICAgICAvKiB0ZXh0IGNvbnRlbnQgICAqLwotKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcGFzc3Rocm91Z2ggICAgKi8KLSsgICAgZ2xhZGVfcGFyc2VyX2Vycm9yLCAgICAgICAgICAgICAgICAgIC8qIHBhcnNlIGVycm9yICAgICovCi0rfTsKLSsKLSsjZW5kaWYgLyogVVNFX0dNQVJLVVBfUEFSU0VSICovCi0rCi0rCi0gc3RhdGljIHZvaWQKLSB3aWRnZXRfaW5mb19mcmVlKEdsYWRlV2lkZ2V0SW5mbyAqaW5mbykKLSB7Ci1AQCAtMTE5MSw2ICsxMjk3LDkgQEAKLSAgKgotICAqIFJldHVybnM6IHRoZSBHbGFkZUludGVyZmFjZSBzdHJ1Y3R1cmUgZm9yIHRoZSBYTUwgZmlsZS4KLSAgKi8KLSsKLSsjaWZuZGVmIFVTRV9HTUFSS1VQX1BBUlNFUgotKwotIEdsYWRlSW50ZXJmYWNlICoKLSBnbGFkZV9wYXJzZXJfcGFyc2VfZmlsZShjb25zdCBnY2hhciAqZmlsZSwgY29uc3QgZ2NoYXIgKmRvbWFpbikKLSB7Ci1AQCAtMTIyMiw2ICsxMzMxLDMxIEBACi0gICAgIHJldHVybiBzdGF0ZS5pbnRlcmZhY2U7Ci0gfQotIAotKyNlbHNlIC8qIGRlZmluZWQoVVNFX0dNQVJLVVBfUEFSU0VSKSAqLwotKwotK0dsYWRlSW50ZXJmYWNlICoKLStnbGFkZV9wYXJzZXJfcGFyc2VfZmlsZShjb25zdCBnY2hhciAqZmlsZSwgY29uc3QgZ2NoYXIgKmRvbWFpbikKLSt7Ci0rICAgIEdsYWRlSW50ZXJmYWNlICAqaW50ZXJmYWNlOwotKyAgICBHRXJyb3IgICAgICAgICAgKmVyciAgICAgPSBOVUxMOwotKyAgICBnY2hhciAgICAgICAgICAgKmNvbnRlbnQgPSBOVUxMOwotKyAgICBnc2l6ZSAgICAgICAgICAgIGNsZW47Ci0rCi0rICAgIGlmICghZ19maWxlX2dldF9jb250ZW50cyhmaWxlLCAmY29udGVudCwgJmNsZW4sICZlcnIpKSB7Ci0rICAgICAgICBnX3dhcm5pbmcoImNvdWxkIG5vdCBsb2FkIGdsYWRlIGZpbGU6ICVzIiwgZXJyLT5tZXNzYWdlKTsKLSsgICAgICAgIGdfZXJyb3JfZnJlZShlcnIpOwotKyAgICAgICAgcmV0dXJuIE5VTEw7Ci0rICAgIH0KLSsKLSsgICAgaW50ZXJmYWNlID0gZ2xhZGVfcGFyc2VyX3BhcnNlX2J1ZmZlcihjb250ZW50LCAoZ2ludCkgY2xlbiwgZG9tYWluKTsKLSsKLSsgICAgZ19mcmVlKGNvbnRlbnQpOwotKwotKyAgICByZXR1cm4gaW50ZXJmYWNlOwotK30KLSsKLSsjZW5kaWYgLyogVVNFX0dNQVJLVVBfUEFSU0VSICovCi0rCi0gLyoqCi0gICogZ2xhZGVfcGFyc2VyX3BhcnNlX2J1ZmZlcgotICAqIEBidWZmZXI6IGEgYnVmZmVyIGluIG1lbW9yeSBjb250YWluaW5nIFhNTCBkYXRhLgotQEAgLTEyMzcsNiArMTM3MSw5IEBACi0gICoKLSAgKiBSZXR1cm5zOiB0aGUgR2xhZGVJbnRlcmZhY2Ugc3RydWN0dXJlIGZvciB0aGUgWE1MIGJ1ZmZlci4KLSAgKi8KLSsKLSsjaWZuZGVmIFVTRV9HTUFSS1VQX1BBUlNFUgotKwotIEdsYWRlSW50ZXJmYWNlICoKLSBnbGFkZV9wYXJzZXJfcGFyc2VfYnVmZmVyKGNvbnN0IGdjaGFyICpidWZmZXIsIGdpbnQgbGVuLCBjb25zdCBnY2hhciAqZG9tYWluKQotIHsKLUBAIC0xMjYzLDYgKzE0MDAsMTYxIEBACi0gICAgIHJldHVybiBzdGF0ZS5pbnRlcmZhY2U7Ci0gfQotIAotKyNlbHNlIC8qIGRlZmluZWQoVVNFX0dNQVJLVVBfUEFSU0VSKSAqLwotKwotKwotK3N0YXRpYyBHbGFkZUludGVyZmFjZSAqCi0rZ2xhZGVfcGFyc2VyX3BhcnNlX2J1ZmZlcl9pbnRlcm5hbChjb25zdCBnY2hhciAqYnVmZmVyLCBnaW50IGxlbiwgY29uc3QgZ2NoYXIgKmRvbWFpbikKLSt7Ci0rCUdNYXJrdXBQYXJzZUNvbnRleHQgICpjb250ZXh0OwotKwlHbGFkZVBhcnNlU3RhdGUgICAgICAgc3RhdGUgPSB7IDAgfTsKLSsJR0Vycm9yICAgICAgICAgICAgICAgKmVyciAgID0gTlVMTDsKLSsKLSsJc3RhdGUuaW50ZXJmYWNlID0gTlVMTDsKLSsJaWYgKGRvbWFpbikKLSsJCXN0YXRlLmRvbWFpbiA9IGRvbWFpbjsKLSsJZWxzZQotKwkJc3RhdGUuZG9tYWluID0gdGV4dGRvbWFpbihOVUxMKTsKLSsKLSsJLyogRklYTUU6IFRoaXMgc3Ryc3RyKCkgaXMgbm90IHNhZmUsIGFzIGl0IGlnbm9yZXMgdGhlIGxlbgotKwkgKiAgICAgICAgYXJndW1lbnQgYW5kIGFzc3VtZXMgdGhlIGJ1ZmZlciBpcyBOVUwtdGVybWluYXRlZCAqLwotKwlpZiAoc3Ryc3RyKGJ1ZmZlciwgIjw/eG1sIikgPT0gTlVMTCkgewotKwkJZ193YXJuaW5nKCJObyBYTUwgaGVhZGVyIGZvdW5kIGluIGRvY3VtZW50ISIpOwotKwkJcmV0dXJuIE5VTEw7Ci0rCX0KLSsKLSsJY29udGV4dCA9IGdfbWFya3VwX3BhcnNlX2NvbnRleHRfbmV3KCZnbGFkZV9wYXJzZXIsIChHTWFya3VwUGFyc2VGbGFncykgMCwgJnN0YXRlLCBOVUxMKTsKLSsKLSsJZ2xhZGVfcGFyc2VyX3N0YXJ0X2RvY3VtZW50KCZzdGF0ZSk7Ci0rCi0rCWlmICghZ19tYXJrdXBfcGFyc2VfY29udGV4dF9wYXJzZShjb250ZXh0LCBidWZmZXIsIChnc3NpemUpIGxlbiwgJmVycikpIHsKLSsJCWdfd2FybmluZygiZG9jdW1lbnQgbm90IHdlbGwgZm9ybWVkOiAlcyIsIGVyci0+bWVzc2FnZSk7Ci0rCQlnX2Vycm9yX2ZyZWUoZXJyKTsKLSsJCWlmIChzdGF0ZS5pbnRlcmZhY2UpCi0rCQkJZ2xhZGVfaW50ZXJmYWNlX2Rlc3Ryb3kgKHN0YXRlLmludGVyZmFjZSk7Ci0rCQlyZXR1cm4gTlVMTDsKLSsJfQotKwotKwlnbGFkZV9wYXJzZXJfZW5kX2RvY3VtZW50KCZzdGF0ZSk7Ci0rCi0rCWlmIChzdGF0ZS5zdGF0ZSAhPSBQQVJTRVJfRklOSVNIKSB7Ci0rCQlnX3dhcm5pbmcoImRpZCBub3QgZmluaXNoIGluIFBBUlNFUl9GSU5JU0ggc3RhdGUhIik7Ci0rCi0rCQlpZiAoc3RhdGUuaW50ZXJmYWNlKQotKwkJCWdsYWRlX2ludGVyZmFjZV9kZXN0cm95KHN0YXRlLmludGVyZmFjZSk7Ci0rCi0rCQlyZXR1cm4gTlVMTDsKLSsJfQotKwotKwlyZXR1cm4gc3RhdGUuaW50ZXJmYWNlOwotK30KLSsKLStzdHJ1Y3QgX2d6aXBfcmZjMTk1Ml9oZHIKLSt7Ci0rCWd1aW50OAlpZDEsIGlkMiwgY20sIGZsYWdzOwotKwlndWludDMyIG10aW1lOwotKwlndWludDggIHhmbGFnczsKLSsJZ3VpbnQ4ICBvczsKLSt9OwotKwotK3N0YXRpYyBHbGFkZUludGVyZmFjZSAqCi0rZ2xhZGVfcGFyc2VyX3BhcnNlX2d6aXBwZWRfYnVmZmVyKGNvbnN0IGdjaGFyICpidWZmZXIsIGdpbnQgbGVuLCBjb25zdCBnY2hhciAqZG9tYWluKQotK3sKLSsJc3RydWN0IF9nemlwX3JmYzE5NTJfaGRyICpoZHIgPSAoc3RydWN0IF9nemlwX3JmYzE5NTJfaGRyKilidWZmZXI7Ci0rCXN0cnVjdCB6X3N0cmVhbV9zICAgICAgICAgenN0cmVhbTsKLSsJR2xhZGVJbnRlcmZhY2UgICAgICAgICAgICppbnRlcmZhY2U7Ci0rCWNvbnN0IGd1aW50OCAgICAgICAgICAgICAqY2J1ZjsgICAgICAgICAgICAgIC8qIHN0YXJ0IG9mIGNvbXByZXNzZWQgZGF0YSAqLwotKwlndWludDggICAgICAgICAgICAgICAgICAgKmRlY29tcHJlc3NfYnVmOwotKwlndWxvbmcgICAgICAgICAgICAgICAgICAgIGRlY29tcHJlc3NfbGVuID0gMDsKLSsJZ2ludCAgICAgICAgICAgICAgICAgICAgICByZXQ7Ci0rCi0rCWdfYXNzZXJ0KGhkciAhPSBOVUxMICYmIGhkci0+aWQxID09IDB4MWYgJiYgaGRyLT5pZDIgPT0gMHg4Yik7Ci0rCi0rCWlmIChoZHItPmNtICE9IFpfREVGTEFURUQpIHsKLSsJCWdfd2FybmluZygiVW5rbm93biBkZWNvbXByZXNzaW9uIG1ldGhvZCAldSIsIChndWludCkgaGRyLT5jbSk7Ci0rCQlyZXR1cm4gTlVMTDsKLSsJfQotKwotKwkvKiBVbmNvbXByZXNzZWQgc2l6ZSAobW9kdWxvIDJeMzIpIGlzIGxhc3QKLSsJICogIDQgYnl0ZXMgb2YgZ3ppcHBlZCBmaWxlLCBhbmQgbGl0dGxlIGVuZGlhbi4KLSsJICogIFNlZSBSRkMgMTk1MiAqLwotKwlkZWNvbXByZXNzX2xlbiA9IEdVSU5UMzJfRlJPTV9MRSgqKChndWludDMyKikoKChndWludDgqKWJ1ZmZlcikgKyBsZW4gLSA0KSkpOwotKwotKwkvKiBwYXJhbm9pZCBtb2RlOiBnbGFkZSBmaWxlcyA+IDVNQiBhcmUgdW5saWtlbHkgKi8KLSsJZ19yZXR1cm5fdmFsX2lmX2ZhaWwoZGVjb21wcmVzc19sZW4gPCA1KjEwMjQqMTAyNCwgTlVMTCk7Ci0rCi0rCWRlY29tcHJlc3NfYnVmID0gZ19tYWxsb2MwKGRlY29tcHJlc3NfbGVuICsgMSk7IC8qICsxIGZvciBOVUwtdGVybWluYXRvciAqLwotKwotKwkvKiBmaW5kIHN0YXJ0IG9mIGNvbXByZXNzZWQgZGF0YSwgc2tpcHBpbmcgaGVhZGVyIHN0dWZmICovCi0rCWNidWYgPSAoZ3VpbnQ4KilidWZmZXIgKyAxMDsKLSsJaWYgKGhkci0+ZmxhZ3MgJiAweDA0KSB7Ci0rCQlndWludDE2IHhsZW4gPSBHVUlOVDE2X0ZST01fTEUoKigoZ3VpbnQxNiopY2J1ZikpOwotKwkJY2J1ZiArPSB4bGVuICsgMjsKLSsJfQotKwlpZiAoaGRyLT5mbGFncyAmIDB4MDgpIHsKLSsJCWd1aW50MTYgb25hbWVsZW4gPSBzdHJsZW4oY2J1Zik7Ci0rCQljYnVmICs9IG9uYW1lbGVuICsgMTsKLSsJfQotKwlpZiAoaGRyLT5mbGFncyAmIDB4MTApIHsKLSsJCWd1aW50MTYgY29tbWVudGxlbiA9IHN0cmxlbihjYnVmKTsKLSsJCWNidWYgKz0gY29tbWVudGxlbiArIDE7Ci0rCX0KLSsJaWYgKGhkci0+ZmxhZ3MgJiAweDAyKQotKwl7Ci0rCQljYnVmICs9IDI7IC8qIHNraXAgaGVhZGVyIENSQzE2ICovCi0rCX0KLSsKLSsJenN0cmVhbS5uZXh0X2luICA9ICh2b2lkKiljYnVmOwotKwl6c3RyZWFtLmF2YWlsX2luID0gKHVMb25nZikgbGVuIC0gKCh2b2lkKiljYnVmLSh2b2lkKilidWZmZXIpIC0gNCAtIDQgKzE7IAotKwl6c3RyZWFtLm5leHRfb3V0ID0gZGVjb21wcmVzc19idWY7Ci0rCXpzdHJlYW0uYXZhaWxfb3V0PSBkZWNvbXByZXNzX2xlbjsKLSsJenN0cmVhbS56YWxsb2MgICA9IFpfTlVMTDsKLSsJenN0cmVhbS56ZnJlZSAgICA9IFpfTlVMTDsKLSsJenN0cmVhbS5vcGFxdWUgICA9IFpfTlVMTDsKLSsKLSsJcmV0ID0gaW5mbGF0ZUluaXQyKCZ6c3RyZWFtLCAtTUFYX1dCSVRTKTsKLSsKLSsJaWYgKHJldCAhPSBaX09LKSB7Ci0rCQlnX3dhcm5pbmcoImluZmxhdGVJbml0MigpIGZhaWxlZC4gemxpYiBlcnJvciBjb2RlOiAlZCIsIHJldCk7Ci0rCQlnX2ZyZWUoZGVjb21wcmVzc19idWYpOwotKwkJcmV0dXJuIE5VTEw7Ci0rCX0KLSsKLSsJcmV0ID0gaW5mbGF0ZSgmenN0cmVhbSwgWl9GSU5JU0gpOwotKwotKwlpZiAocmV0ICE9IFpfU1RSRUFNX0VORCkgewotKwkJZ193YXJuaW5nKCJ6bGliIGRlY29tcHJlc3Npb24gZmFpbGVkLiB6bGliIGVycm9yIGNvZGU6ICVkIiwgcmV0KTsKLSsJCWdfZnJlZShkZWNvbXByZXNzX2J1Zik7Ci0rCQlyZXR1cm4gTlVMTDsKLSsJfQotKwotKwlpbnRlcmZhY2UgPSBnbGFkZV9wYXJzZXJfcGFyc2VfYnVmZmVyX2ludGVybmFsKGRlY29tcHJlc3NfYnVmLCBkZWNvbXByZXNzX2xlbiwgZG9tYWluKTsKLSsKLSsJZ19mcmVlKGRlY29tcHJlc3NfYnVmKTsKLSsKLSsJcmV0dXJuIGludGVyZmFjZTsKLSt9Ci0rCi0rR2xhZGVJbnRlcmZhY2UgKgotK2dsYWRlX3BhcnNlcl9wYXJzZV9idWZmZXIoY29uc3QgZ2NoYXIgKmJ1ZmZlciwgZ2ludCBsZW4sIGNvbnN0IGdjaGFyICpkb21haW4pCi0rewotKwlnX3JldHVybl92YWxfaWZfZmFpbChidWZmZXIgIT0gTlVMTCwgTlVMTCk7Ci0rCWdfcmV0dXJuX3ZhbF9pZl9mYWlsKGxlbiA+IDAsIE5VTEwpOwotKwotKwkvKiBDaGVjayBpZiBidWZmZXIgaXMgZ3ppcHBlZCAqLwotKwlpZiAoYnVmZmVyWzBdID09IDB4MWYgJiYgYnVmZmVyWzFdID09IChnY2hhcikweDhiKSB7Ci0rCQlyZXR1cm4gZ2xhZGVfcGFyc2VyX3BhcnNlX2d6aXBwZWRfYnVmZmVyKGJ1ZmZlciwgbGVuLCBkb21haW4pOwotKwl9Ci0rCi0rCS8qIEJ1ZmZlciBpcyBjbGVhcnRleHQuICovCi0rCXJldHVybiBnbGFkZV9wYXJzZXJfcGFyc2VfYnVmZmVyX2ludGVybmFsKGJ1ZmZlciwgbGVuLCBkb21haW4pOwotK30KLSsKLSsjZW5kaWYgLyogVVNFX0dNQVJLVVBfUEFSU0VSICovCi0rCi0rCi0rI2lmbmRlZiBVU0VfR01BUktVUF9QQVJTRVIKLSsKLSBzdGF0aWMgdm9pZAotIGR1bXBfd2lkZ2V0KHhtbE5vZGUgKnBhcmVudCwgR2xhZGVXaWRnZXRJbmZvICppbmZvLCBnaW50IGluZGVudCkKLSB7Ci1AQCAtMTM4Miw2ICsxNjc0LDggQEAKLSAJeG1sTm9kZUFkZENvbnRlbnQod2lkZ2V0LCAiICAiKTsKLSB9Ci0gCi0rI2VuZGlmIC8qICFkZWZpbmVkKFVTRV9HTUFSS1VQX1BBUlNFUikgKi8KLSsKLSAvKioKLSAgKiBnbGFkZV9pbnRlcmZhY2VfZHVtcAotICAqIEBpbnRlcmZhY2U6IHRoZSBHbGFkZUludGVyZmFjZQotQEAgLTEzOTAsNiArMTY4NCw5IEBACi0gICogVGhpcyBmdW5jdGlvbiBkdW1wcyB0aGUgY29udGVudHMgb2YgYSBHbGFkZUludGVyZmFjZSBpbnRvIGEgZmlsZSBhcwotICAqIFhNTC4gIEl0IGlzIGludGVuZGVkIG1haW5seSBhcyBhIGRlYnVnZ2luZyB0b29sLgotICAqLwotKwotKyNpZm5kZWYgVVNFX0dNQVJLVVBfUEFSU0VSCi0rCi0gdm9pZAotIGdsYWRlX2ludGVyZmFjZV9kdW1wKEdsYWRlSW50ZXJmYWNlICppbnRlcmZhY2UsIGNvbnN0IGdjaGFyICpmaWxlbmFtZSkKLSB7Ci1AQCAtMTQyOCw2ICsxNzI1LDE3IEBACi0gICAgIHhtbEZyZWVEb2MoZG9jKTsKLSB9Ci0gCi0rI2Vsc2UgLyogZGVmaW5lZChVU0VfR01BUktVUF9QQVJTRVIpICovCi0rCi0rdm9pZAotK2dsYWRlX2ludGVyZmFjZV9kdW1wKEdsYWRlSW50ZXJmYWNlICppbnRlcmZhY2UsIGNvbnN0IGdjaGFyICpmaWxlbmFtZSkKLSt7Ci0rICAgIGdfd2FybmluZygiZ2xhZGVfaW50ZXJmYWNlX2R1bXAoKSBpcyBvbmx5IGF2YWlsYWJsZSB3aXRoIGxpYnhtbDIuIik7Ci0rfQotKwotKyNlbmRpZiAvKiBVU0VfR01BUktVUF9QQVJTRVIgKi8KLSsKLSsKLSAjaWYgMAotIGludAotIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci1kaWZmIC11ck4gbGliZ2xhZGUtMi40LjIub3JpZy9saWJnbGFkZS0yLjAucGMuaW4gbGliZ2xhZGUtMi40LjIvbGliZ2xhZGUtMi4wLnBjLmluCi0tLS0gbGliZ2xhZGUtMi40LjIub3JpZy9saWJnbGFkZS0yLjAucGMuaW4JMjAwMS0xMi0xMiAxNToyODoyMy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsaWJnbGFkZS0yLjQuMi9saWJnbGFkZS0yLjAucGMuaW4JMjAwNS0wMy0yMiAwMToyMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xMSw3ICsxMSw3IEBACi0gTmFtZTogTGliZ2xhZGUKLSBEZXNjcmlwdGlvbjogYSBsaWJyYXJ5IGZvciBkeW5hbWljYWxseSBsb2FkaW5nIEdMQURFIGludGVyZmFjZSBmaWxlcwotIFZlcnNpb246IEBWRVJTSU9OQAotLVJlcXVpcmVzOiBndGsrLTIuMCBsaWJ4bWwtMi4wCi0rUmVxdWlyZXM6IGd0aystMi4wIEBQS0dDRkdfUkVRVUlSRV9MSUJYTUwyQAotIExpYnM6IC1MJHtsaWJkaXJ9IC1sZ2xhZGUtMi4wCi0gQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0vbGliZ2xhZGUtMi4wCi0gCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJnbGFkZS9saWJnbGFkZS0yLjYuNC9weXRob25fZW52aXJvbm1lbnQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJnbGFkZS9saWJnbGFkZS0yLjYuNC9weXRob25fZW52aXJvbm1lbnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1YjJlYzQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGliZ2xhZGUvbGliZ2xhZGUtMi42LjQvcHl0aG9uX2Vudmlyb25tZW50LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVXNpbmcgQFBZVEhPTkAgZm9yIHRoaXMgcGF0aCB3b3VsZCByZXN1bHQgaW4gdGhlIGJ1aWxkIHN5c3RlbSBweXRob24gYmVpbmcgCi1yZWZlcnJlZCB0by4gSW5zdGVhZCB3ZSB3YW50IHRvIGxvY2F0ZSBweXRob24gZnJvbSB0aGUgZW52aXJvbm1lbnQuCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotZGlmZiAtcnVOIGxpYmdsYWRlLTIuNi40LW9yaWcvL2xpYmdsYWRlLWNvbnZlcnQuaW4gbGliZ2xhZGUtMi42LjQvbGliZ2xhZGUtY29udmVydC5pbgotLS0tIGxpYmdsYWRlLTIuNi40LW9yaWcvL2xpYmdsYWRlLWNvbnZlcnQuaW4JMjAxMS0wOS0yMiAxMDoxODoyOC45OTExNjQwMDMgKzA4MDAKLSsrKyBsaWJnbGFkZS0yLjYuNC9saWJnbGFkZS1jb252ZXJ0LmluCTIwMTEtMDktMjIgMTA6MTg6NTUuNDMxMTY0MDAzICswODAwCi1AQCAtMSw0ICsxLDQgQEAKLS0jIUBQWVRIT05ACi0rIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0gIyAtKi0gbW9kZTogcHl0aG9uIC0qLQotIAotICMgeWVzLCB0aGlzIHJlcXVpcmVzIHB5dGhvbiAyLnggYW5kIGFuIFhNTCBwYXJzZXIgbW9kdWxlIChlZy4gUHlFeHBhdCkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYmdsYWRlL2xpYmdsYWRlXzIuNi40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGliZ2xhZGUvbGliZ2xhZGVfMi42LjQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkYjlmOGEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGliZ2xhZGUvbGliZ2xhZGVfMi42LjQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi1TVU1NQVJZID0gIlJ1bnRpbWUgc3VwcG9ydCBmb3IgdGhlIEdUSysgaW50ZXJmYWNlIGJ1aWxkZXIiCi1IT01FUEFHRSA9ICJodHRwOi8vbGlicmFyeS5nbm9tZS5vcmcvZGV2ZWwvbGliZ2xhZGUvIgotQlVHVFJBQ0tFUiA9ICJodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8iCi0KLUxJQ0VOU0UgPSAiTEdQTHYyICYgTEdQTHYyKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU1Y2E4MTdjY2I3ZDViNWI2NjM1NTY5MGU5YWJjNjA1IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2dsYWRlL2dsYWRlLmg7ZW5kbGluZT0yMjttZDU9YTA0ZjQ2MWM5NjRiYTRiNTdhMTcyZDFmYmNkOGY4ZmMgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZ2xhZGUvZ2xhZGUtZ3RrLmM7ZW5kbGluZT0yMjttZDU9NzY2Zjk5MzQzM2UyNjQyZmVjODc5MzZkMzE5OTkwZmYiCi0KLVNFQ1RJT04gPSAibGlicyIKLVBSID0gInI1IgotREVQRU5EUyA9ICJ6bGliIGdkay1waXhidWYgZ3RrKyIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdub21lYmFzZSBndGstZG9jIGRpc3Ryb19mZWF0dXJlc19jaGVjawotQU5ZX09GX0RJU1RST19GRUFUVVJFUyA9ICIke0dUSzJESVNUUk9GRUFUVVJFU30iCi1HTk9NRV9DT01QUkVTU19UWVBFPSJiejIiCi0KLVNSQ19VUkkgKz0gIiBcCi0gICAgZmlsZTovL2dsYWRlLWNydWZ0LnBhdGNoIFwKLSAgICBmaWxlOi8vbm8teG1sMi5wYXRjaCBcCi0gICAgZmlsZTovL3B5dGhvbl9lbnZpcm9ubWVudC5wYXRjaCBcCi0gICAgZmlsZTovLzAwMDEtY29uZmlndXJlLmluLXJlbW92ZS1kZXByZWNhdGVkLUdOT01FX0NPTU1PTl9JTklULnBhdGNoIFwKLSIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiZDE3NzZiNDBmNGUxNjZiNWU5YzEwN2YxYzhmZTQxMzkiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICI2NDM2MWU3NjQ3ODM5ZDM2ZWQ4MzM2ZDk5MmZkMjEwZDNlODEzOTg4MjI2OWJlZDQ3ZGM0Njc0OTgwMTY1ZGVjIgotCi1FWFRSQV9PRUNPTkYgKz0gIi0td2l0aG91dC1saWJ4bWwyIC0tZGlzYWJsZS1ndGstZG9jIgotCi1DRkxBR1MgKz0gIi1seiAtbGdtb2R1bGUtMi4wIgotCi1QQUNLQUdFUyArPSAiICR7UE59LWRhdGEiCi1GSUxFU18ke1BOfSA9ICIke2xpYmRpcn0vbGliKi5zby4qIgotRklMRVNfJHtQTn0tZGF0YSA9ICIke2RhdGFkaXJ9L3htbC9saWJnbGFkZS9nbGFkZS0yLjAuZHRkIgotRklMRVNfJHtQTn0tZGV2ICs9ICIke2JpbmRpcn0vbGliZ2xhZGUtY29udmVydCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYnVuaXF1ZS9saWJ1bmlxdWVfMS4xLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJ1bmlxdWUvbGlidW5pcXVlXzEuMS42LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTMzY2NjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYnVuaXF1ZS9saWJ1bmlxdWVfMS4xLjYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1TVU1NQVJZID0gIkxpYnJhcnkgZm9yIHN1cHBvcnRpbmcgc2luZ2xlIGluc3RhbmNlIEdUSysgYXBwbGljYXRpb25zIgotREVTQ1JJUFRJT04gPSAiVW5pcXVlIGlzIGEgbGlicmFyeSBmb3Igd3JpdGluZyBzaW5nbGUgaW5zdGFuY2UgR1RLKyBhcHBsaWNhdGlvbnMuIElmIHlvdSBsYXVuY2ggYSBzaW5nbGUgaW5zdGFuY2UgYXBwbGljYXRpb24gdHdpY2UsIHRoZSBzZWNvbmQgaW5zdGFuY2Ugd2lsbCBlaXRoZXIganVzdCBxdWl0IG9yIHdpbGwgc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIHJ1bm5pbmcgaW5zdGFuY2UuIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BdHRpYy9MaWJVbmlxdWUiCi1CVUdUUkFDS0VSID0gImh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD1saWJ1bmlxdWUiCi0KLVNSQ19VUkkgPSAiJHtHTk9NRV9NSVJST1J9L2xpYnVuaXF1ZS8xLjEvbGlidW5pcXVlLSR7UFZ9LnRhci5iejIgXAotICAgICAgICAgICBmaWxlOi8vZml4X2Zvcl9jb21waWxlX3dpdGhfZ2NjLTQuNi4wLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL25vY29uc3QucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vYnVpbGQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1NYWtlZmlsZS5hbS11c2UtTElCVE9PTC1pbnN0ZWFkLW9mLWhhcmRjb2RlZC1saWJ0b29sLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtdGVzdC11bmlxdWUtQWRkLWZvcm1hdC1xdWFsaWZpZXItcy1mb3Itc3RyaW5nLnBhdGNoIFwKLSAgICAgICAgICAgIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNzk1NTc2OWVmMzFmMWJjNGY4MzQ0NmRiYjM2MjVlNmQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTVjODA0MWNlZjhlMzNjNTU3MzJmMDZhMjkyMzgxY2IzNDVkYjk0NmNmNzkyYTRhZTE4YWE1YzY2Y2RkNGZiYiIKLQotUFIgPSAicjciCi0KLURFUEVORFMgPSAiZGJ1cy1nbGliLW5hdGl2ZSBnbGliLTIuMCBndGsrIgotCi1QQUNLQUdFQ09ORklHID8/PSAiZGJ1cyIKLVBBQ0tBR0VDT05GSUdbZGJ1c10gPSAiLS1lbmFibGUtZGJ1cywtLWRpc2FibGUtZGJ1cyxkYnVzIGRidXMtZ2xpYiIKLQotTElDRU5TRSA9ICJMR1BMdjIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTJkNTAyNWQ0YWEzNDk1YmVmZWY4ZjE3MjA2YTViMGExIgotCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnb2JqZWN0LWludHJvc3BlY3Rpb24gZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCi0KLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kaXJlY3RmYi9kaXJlY3RmYi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kaXJlY3RmYi9kaXJlY3RmYi5pbmMKaW5kZXggYmZiZDljMi4uYmQ2NmEyOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZGlyZWN0ZmIvZGlyZWN0ZmIuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RpcmVjdGZiL2RpcmVjdGZiLmluYwpAQCAtNDEsMTYgKzQxLDE2IEBACiBQQUNLQUdFQ09ORklHW3RzbGliXSA9ICItLXdpdGgtaW5wdXRkcml2ZXJzPXRzbGliLCx0c2xpYiIKIFBBQ0tBR0VDT05GSUdbbGludXhpbnB1dF0gPSAiLS13aXRoLWlucHV0ZHJpdmVycz1saW51eGlucHV0LCwiCiBQQUNLQUdFQ09ORklHW25vaW5wdXRdID0gIi0td2l0aC1pbnB1dGRyaXZlcnM9bm9uZSwsIgorUEFDS0FHRUNPTkZJR1ttZXNhXSA9ICItLWVuYWJsZS1tZXNhLC0tZGlzYWJsZS1tZXNhLHZpcnR1YWwvbWVzYSwiCitQQUNLQUdFQ09ORklHW3gxMV0gPSAiLS1lbmFibGUteDExLC0tZGlzYWJsZS14MTEseHNlcnZlci14b3JnLCIKIAogRVhUUkFfT0VDT05GID0gIlwKICAgLS13aXRoLWdmeGRyaXZlcnM9bm9uZSBcCiAgIC0tZW5hYmxlLWZyZWV0eXBlPXllcyBcCiAgIC0tZW5hYmxlLXpsaWIgXAogICAtLWRpc2FibGUtaW1saWIyIFwKLSAgLS1kaXNhYmxlLW1lc2EgXAogICAtLWRpc2FibGUtc2RsIFwKICAgLS1kaXNhYmxlLXZuYyBcCi0gIC0tZGlzYWJsZS14MTEgXAogICAtLWRpc2FibGUteDExdmRwYXUgXAogICAtLWRpc2FibGUteGluZS12ZHBhdSBcCiAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kbmZkcmFnb3JhL2RuZmRyYWdvcmEvMDAwMS1Eby1ub3Qtc2V0LVBZVEhPTl9JTlNUQUxMX0RJUi1ieS1ydW5uaW5nLXB5dGhvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RuZmRyYWdvcmEvZG5mZHJhZ29yYS8wMDAxLURvLW5vdC1zZXQtUFlUSE9OX0lOU1RBTExfRElSLWJ5LXJ1bm5pbmctcHl0aG9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2ZDRkYmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kbmZkcmFnb3JhL2RuZmRyYWdvcmEvMDAwMS1Eby1ub3Qtc2V0LVBZVEhPTl9JTlNUQUxMX0RJUi1ieS1ydW5uaW5nLXB5dGhvbi5wYXRjaApAQCAtMCwwICsxLDI2IEBACitGcm9tIDgwMTc5YzI5N2FiYjlkZTI4MjliZDAyMzU2MjU3MjQxZGQ0MTRkNzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CitEYXRlOiBNb24sIDE4IERlYyAyMDE3IDE2OjI1OjU0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIERvIG5vdCBzZXQgUFlUSE9OX0lOU1RBTExfRElSIGJ5IHJ1bm5pbmcgcHl0aG9uLgorCitTaWduZWQtb2ZmLWJ5OiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CistLS0KKyBDTWFrZUxpc3RzLnR4dCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IDdjNjZiMzkuLjE0ODllZjYgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC0xOSw3ICsxOSw3IEBAIGVsc2UoTk9UIFNQSElOWF9FWEVDVVRBQkxFLU5PVEZPVU5EKQorIAltZXNzYWdlKFNUQVRVUyAiQ291bGQgTk9UIGZpbmQgc3BoaW54LWJ1aWxkLiIpCisgZW5kaWYoTk9UIFNQSElOWF9FWEVDVVRBQkxFLU5PVEZPVU5EKQorIAorLWV4ZWN1dGVfcHJvY2VzcyhDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9IC1jICJmcm9tIGRpc3R1dGlscy5zeXNjb25maWcgaW1wb3J0IGdldF9weXRob25fbGliOyBwcmludChnZXRfcHl0aG9uX2xpYigpLCBlbmQ9JycpIiBPVVRQVVRfVkFSSUFCTEUgUFlUSE9OX0lOU1RBTExfRElSKQorKyNleGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAtYyAiZnJvbSBkaXN0dXRpbHMuc3lzY29uZmlnIGltcG9ydCBnZXRfcHl0aG9uX2xpYjsgcHJpbnQoZ2V0X3B5dGhvbl9saWIoKSwgZW5kPScnKSIgT1VUUFVUX1ZBUklBQkxFIFBZVEhPTl9JTlNUQUxMX0RJUikKKyBzdHJpbmcoUkVHRVggUkVQTEFDRSAiXG4kIiAiIiAke1BZVEhPTl9JTlNUQUxMX0RJUn0gIiR7UFlUSE9OX0lOU1RBTExfRElSfSIpCisgZXhlY3V0ZV9wcm9jZXNzKENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gLWMgImltcG9ydCBzeXM7IHN5cy5zdGRvdXQud3JpdGUoJyVzLiVzJyAlIChzeXMudmVyc2lvbl9pbmZvLm1ham9yLCBzeXMudmVyc2lvbl9pbmZvLm1pbm9yKSkiIE9VVFBVVF9WQVJJQUJMRSBQWVRIT05fTUFKT1JfRE9UX01JTk9SX1ZFUlNJT04pCisgbWVzc2FnZShTVEFUVVMgIlB5dGhvbiBpbnN0YWxsIGRpciBpcyAke1BZVEhPTl9JTlNUQUxMX0RJUn0iKQorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kbmZkcmFnb3JhL2RuZmRyYWdvcmEvMDAwMS1SdW4tcHl0aG9uLXNjcmlwdHMtdXNpbmctZW52LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZG5mZHJhZ29yYS9kbmZkcmFnb3JhLzAwMDEtUnVuLXB5dGhvbi1zY3JpcHRzLXVzaW5nLWVudi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWI2YjhmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZG5mZHJhZ29yYS9kbmZkcmFnb3JhLzAwMDEtUnVuLXB5dGhvbi1zY3JpcHRzLXVzaW5nLWVudi5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIDE1ZDBhZmNmYTQ4NjhiN2IwNzJiMzQzNGJhYzAwNjQ2MTdkNjFmOTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CitEYXRlOiBUdWUsIDE5IERlYyAyMDE3IDE0OjUzOjE0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIFJ1biBweXRob24gc2NyaXB0cyB1c2luZyBlbnYKKworT3RoZXJ3aXNlIHRoZSBidWlsZCB0b29scyBoYXJkY29kZSB0aGUgcHl0aG9uIHBhdGggaW50byB0aGVtLgorCitTaWduZWQtb2ZmLWJ5OiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CistLS0KKyBiaW4vZG5mZHJhZ29yYSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2Jpbi9kbmZkcmFnb3JhIGIvYmluL2RuZmRyYWdvcmEKK2luZGV4IGI4ZTA1NTAuLmNkODBmN2YgMTAwNzU1CistLS0gYS9iaW4vZG5mZHJhZ29yYQorKysrIGIvYmluL2RuZmRyYWdvcmEKK0BAIC0xLDQgKzEsNCBAQAorLSMhL3Vzci9iaW4vcHl0aG9uMworKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKyAjIHZpbTogc2V0IGV0IHRzPTQgc3c9NDoKKyAjICAgIENvcHlyaWdodCAyMDE2LTIwMTcgQW5nZWxvIE5hc2VsbGkgPGFuYXNlbGxpQGxpbnV4Lml0PgorICMKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZG5mZHJhZ29yYS9kbmZkcmFnb3JhLzAwMDEtVG8tZml4LWVycm9yLXdoZW4tZG9fcGFja2FnZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RuZmRyYWdvcmEvZG5mZHJhZ29yYS8wMDAxLVRvLWZpeC1lcnJvci13aGVuLWRvX3BhY2thZ2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBjZTFkMAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RuZmRyYWdvcmEvZG5mZHJhZ29yYS8wMDAxLVRvLWZpeC1lcnJvci13aGVuLWRvX3BhY2thZ2UucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorRnJvbSA1NmQ5YjgzOGIzNDc1NzI5ZDdlZDljNmMxNTZkNzJjMjg5NDNjMmI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgorRGF0ZTogVHVlLCAxOSBEZWMgMjAxNyAxMToxNToyOSArMDkwMAorU3ViamVjdDogW1BBVENIXSBUbyBmaXggZXJyb3Igd2hlbiBkb19wYWNrYWdlCisKK1FBIElzc3VlOiBuYXRpdmVzZGstZG5mZHJhZ29yYTogRmlsZXMvZGlyZWN0b3JpZXMgd2VyZSBpbnN0YWxsZWQgYnV0IG5vdCBzaGlwcGVkIGluIGFueSBwYWNrYWdlOgorICAvZXRjCisgIC9ldGMvZG5mZHJhZ29yYQorICAvZXRjL2RuZmRyYWdvcmEvZG5mZHJhZ29yYS55YW1sCisKK1NpZ25lZC1vZmYtYnk6IExlaSBNYW9odWkgPGxlaW1hb2h1aUBjbi5mdWppdHN1LmNvbT4KKy0tLQorIENNYWtlTGlzdHMudHh0IHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggN2M2NmIzOS4uYTU2NTlmNyAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTUyLDcgKzUyLDcgQEAgZW5kaWYoRU5BQkxFX0NPTVBTKQorIHNldChDTUFLRV9JTlNUQUxMX0JJTkRJUiAiJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vYmluIikKKyBzZXQoQ01BS0VfSU5TVEFMTF9EQVRBUk9PVERJUiAiJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vc2hhcmUiKQorIHNldChDTUFLRV9JTlNUQUxMX0xPQ0FMRURJUiAiJHtDTUFLRV9JTlNUQUxMX0RBVEFST09URElSfS9sb2NhbGUiKQorLXNldChDTUFLRV9JTlNUQUxMX0ZVTExfU1lTQ09ORkRJUiAiL2V0YyIpCisrc2V0KENNQUtFX0lOU1RBTExfRlVMTF9TWVNDT05GRElSICIke0NNQUtFX0lOU1RBTExfUFJFRklYfS8uLi9ldGMiKQorIAorICMgQ29uZmlndXJlIGZpbGVzCisgY29uZmlndXJlX2ZpbGUoJHtDTUFLRV9TT1VSQ0VfRElSfS9ldGMvZG5mZHJhZ29yYS55YW1sLmluICR7Q01BS0VfQklOQVJZX0RJUn0vZXRjL2RuZmRyYWdvcmEueWFtbCBAT05MWSkKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZG5mZHJhZ29yYS9kbmZkcmFnb3JhLzAwMDEtZGlzYWJsZS1idWlsZC1tYW5wYWdlcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RuZmRyYWdvcmEvZG5mZHJhZ29yYS8wMDAxLWRpc2FibGUtYnVpbGQtbWFucGFnZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhiYjYzNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RuZmRyYWdvcmEvZG5mZHJhZ29yYS8wMDAxLWRpc2FibGUtYnVpbGQtbWFucGFnZXMucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSAyZTZhMGRiMjRiZTM3M2E1Yjc3NDFkYzVhMGQzMjJhMjgzODlmYmYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWmhlbmcgUnVvcWluIDx6aGVuZ3JxLmZuc3RAY24uZnVqaXRzdS5jb20+CitEYXRlOiBUaHUsIDIzIE5vdiAyMDE3IDE2OjM1OjQ0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIGRpc2FibGUgYnVpbGQgbWFucGFnZXMuCisKK1NpZ25lZC1vZmYtYnk6IFpoZW5nIFJ1b3FpbiA8emhlbmdycS5mbnN0QGNuLmZ1aml0c3UuY29tPgorLS0tCisgQ01ha2VMaXN0cy50eHQgfCAxIC0KKyAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggN2M2NmIzOS4uZmMzMjc1MCAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTY1LDcgKzY1LDYgQEAgZW5kaWYoR0VUVEVYVF9GT1VORCkKKyAKKyAjIEJ1aWxkIGFuZCBpbnN0YWxsIHRoZSBtYW4tcGFnZXMKKyBpZihOT1QgU1BISU5YX0VYRUNVVEFCTEUtTk9URk9VTkQpCistCWFkZF9zdWJkaXJlY3RvcnkobWFuKQorIGVuZGlmKE5PVCBTUEhJTlhfRVhFQ1VUQUJMRS1OT1RGT1VORCkKKyAKKyAjIEluc3RhbGxpbmcgYXBwbGljYXRpb24gY29kZQorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kbmZkcmFnb3JhL2RuZmRyYWdvcmFfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZG5mZHJhZ29yYS9kbmZkcmFnb3JhX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2QxZWZiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZG5mZHJhZ29yYS9kbmZkcmFnb3JhX2dpdC5iYgpAQCAtMCwwICsxLDMwIEBACitTVU1NQVJZID0gImRuZmRyYWdvcmEgaXMgYSBETkYgZnJvbnRlbmQsIGJhc2VkIG9uIHJwbWRyYWdvcmEgZnJvbSBNYWdlaWEgKG9yaWdpbmFsbHkgcnBtZHJha2UpIFBlcmwgY29kZS4iCitMSUNFTlNFID0gIkdQTHYzIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQgXAorICAgICAgICAgICAgICAgICAgICIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL21hbmF0b29scy9kbmZkcmFnb3JhLmdpdCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWRpc2FibGUtYnVpbGQtbWFucGFnZXMucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1Eby1ub3Qtc2V0LVBZVEhPTl9JTlNUQUxMX0RJUi1ieS1ydW5uaW5nLXB5dGhvbi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLVRvLWZpeC1lcnJvci13aGVuLWRvX3BhY2thZ2UucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1SdW4tcHl0aG9uLXNjcmlwdHMtdXNpbmctZW52LnBhdGNoIFwKKyAgICAgICAgICAgIgorCitQViA9ICIxLjAuMStnaXQke1NSQ1BWfSIKK1NSQ1JFViA9ICI0ZmVmNGNlODg5YjhlNGZhMDMxOTFkNDE0ZjYzYmZkNTA3OTYxNTJhIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitpbmhlcml0IGNtYWtlIGdldHRleHQgcGtnY29uZmlnIHB5dGhvbjMtZGlyIHB5dGhvbjNuYXRpdmUgZGlzdHV0aWxzMy1iYXNlCisKK0RFUEVORFMgKz0gImRuZiBweXRob24zICIKKyNERVBFTkRTX2NsYXNzLW5hdGl2ZXNkayArPSAibmF0aXZlc2RrLXB5dGhvbjMiCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCA9ICIgcHl0aG9uMy1jb3JlIGxpYnl1aSBsaWJ5dWktbmN1cnNlcyAiCisKKyMgbWFucGFnZXMgZ2VuZXJhdGlvbiByZXF1aXJlcyBodHRwOi8vd3d3LnNwaGlueC1kb2Mub3JnLworRVhUUkFfT0VDTUFLRSA9ICIgLURXSVRIX01BTj1PRkYgLURQWVRIT05fSU5TVEFMTF9ESVI9JHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0gLURQWVRIT05fREVTSVJFRD0zIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZXNkayIKKworRklMRVNfJHtQTn0gPSAiJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vICR7ZGF0YWRpcn0vICR7YmluZGlyfS8gJHtzeXNjb25mZGlyfS9kbmZkcmFnb3JhICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2ZvbnRmb3JnZS9mb250Zm9yZ2VfMjAxNzA3MzEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9mb250Zm9yZ2UvZm9udGZvcmdlXzIwMTcwNzMxLmJiCmluZGV4IGQ5ZjA4NjcuLjQ4MWZlZGYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2ZvbnRmb3JnZS9mb250Zm9yZ2VfMjAxNzA3MzEuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZm9udGZvcmdlL2ZvbnRmb3JnZV8yMDE3MDczMS5iYgpAQCAtNiw3ICs2LDcgQEAKICAgICBmaWxlOi8vTElDRU5TRTttZDU9M2Y5MjJiNDJlZDAwMzNmYTBmZDRjZDMyNjhmNjQyOWMgXAogIgogCi1ERVBFTkRTID0gImdsaWItMi4wIHBhbmdvIGdpZmxpYiB0aWZmIGxpYnhtbDIganBlZyBweXRob24gbGlidG9vbCB1dGhhc2ggZ251bGliIgorREVQRU5EUyA9ICJnbGliLTIuMCBwYW5nbyBnaWZsaWIgdGlmZiBsaWJ4bWwyIGpwZWcgcHl0aG9uIGxpYnRvb2wgdXRoYXNoIGdudWxpYiBnZXR0ZXh0LW5hdGl2ZSIKIERFUEVORFNfYXBwZW5kX2NsYXNzLXRhcmdldCA9ICIgbGlieGkiCiAKIGluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBweXRob25uYXRpdmUgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGdldHRleHQKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2Z2d20vZnZ3bS8wMDAxLUZpeC1jb21waWxhdGlvbi1mb3ItZGlzYWJsZWQtZ25vbWUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9mdndtL2Z2d20vMDAwMS1GaXgtY29tcGlsYXRpb24tZm9yLWRpc2FibGVkLWdub21lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNzY0NzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9mdndtL2Z2d20vMDAwMS1GaXgtY29tcGlsYXRpb24tZm9yLWRpc2FibGVkLWdub21lLnBhdGNoCkBAIC0wLDAgKzEsNjkgQEAKK0Zyb20gNjBjMTdlYjQ5MTIxYmYyYWE0ODVhY2QzMDc1MGIyZmM2YzhlYjYxZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphcm1vIEphYWtrb2xhIDxqYXJtby5qYWFra29sYUB2aW5jaXQuZmk+CitEYXRlOiBNb24sIDE5IEp1biAyMDE3IDE2OjQxOjM2ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBjb21waWxhdGlvbiBmb3IgSGVsaXguCisKK0dub21lIHN1cHBvcnQsIGluY2x1ZGluZyBHTk9NRV9JTklUX0hPT0ssIGhhcyBiZWVuIHJlbW92ZWQsIGJ1dCBpdCB3YXMKK3N0aWxsIGJlaW5nIGNhbGxlZC4KKworQ09NUEFUX09MRF9LRVlTWU1ERUYgaXMgYSBjaGVjayBmb3IgYSBsZWdhY3kgc3lzdGVtLCB3aGljaCBvdXIgc3lzdGVtCittb3N0IGRlZmluaXRlbHkgaXMgbm90LiAgSXQgaXMgYWNjb21wbGlzaGVkIGJ5IHRyeWluZyB0byBleGVjdXRlCithIHByb2dyYW0sIHdoaWNoIGRvZXMgbm90IHdvcmsgd2hlbiBjcm9zcyBjb21waWxpbmcuCisKK1RoZSBmdndtKDEpIG1hbiBwYWdlIGlzIGNyZWF0ZWQgZnJvbSBEb2Nib29rIFhNTCB3aGljaCBpcyBzZXQgZm9yCithIFdpbmRvd3MgY29kZSBwYWdlIHRoYXQgaXMgbm90IGF2YWlsYWJsZSB3aGVuIGNvbXBpbGluZy4gIEVhc2llc3QgaXMKK3RvIGp1c3Qgbm90IGNyZWF0ZSB0aGUgbWFuIHBhZ2UgYXMgdGhvc2UgYXJlIG5vdCBuZWVkZWQgb24gdGhlIG1vbml0b3IuCisKK1Vwc3RyZWFtLVN0YXR1czogaW5hcHByb3ByaWF0ZSBbT0Ugc3BlY2lmaWNdCitTaWduZWQtb2ZmLWJ5OiBKYXJtbyBKYWFra29sYSA8amFybW8uamFha2tvbGFAdmluY2l0LmZpPgorU2lnbmVkLW9mZi1ieTogUmlrdSBIw6Rtw6Rsw6RpbmVuIDxyaWt1LmhhbWFsYWluZW5AZ2UuY29tPgorU2lnbmVkLW9mZi1ieTogU2ViYXN0aWFuIFJlaWNoZWwgPHNlYmFzdGlhbi5yZWljaGVsQGNvbGxhYm9yYS5jby51az4KKy0tLQorIGNvbmZpZ3VyZS5hYyAgICAgICAgIHwgMjAgKysrKy0tLS0tLS0tLS0tLS0tLS0KKyBkb2MvZnZ3bS9NYWtlZmlsZS5hbSB8ICAyICstCisgMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA0OGNlMjY0Li5mYWI3YjQ0IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0xNDEzLDIzICsxNDEzLDcgQEAgZWxzZQorICAgcHJvYmxlbV9nZGtpbWxpYj0iOiBGYWlsZWQgb24gZ2RrLWltbGliLCBzZWUgY29uZmlnLmxvZyIKKyBmaQorIAorLUdOT01FX0lOSVRfSE9PSworLQorLSMgVW5mb3J0dW5hdGVseSB3ZSBoYXZlIDIgZ25vbWUgc3VwcG9ydHM6IFdNIGhpbnRzIGFuZCBnbm9tZSBsaWJzLgorLSMgVGhlICR3aXRoX2dub21laGludHMgYmVsb3cgcmVmZXJzIHRvIHRoZSBmaXJzdCwgbm90IEdOT01FX0lOSVRfSE9PSy4KKy1pZiB0ZXN0ICEgeCIkZW5hYmxlX2dub21lX2hpbnRzIiA9IHhubzsgdGhlbgorLSAgd2l0aF9nbm9tZWhpbnRzPXllcworLSAgcHJvYmxlbV9nbm9tZWhpbnRzPSIiCistZWxzZQorLSAgd2l0aF9nbm9tZWhpbnRzPW5vCistICBwcm9ibGVtX2dub21laGludHM9IjogRXhwbGljaXRseSBkaXNhYmxlZCIKKy1maQorLQorICMgRGVmaW5lIHNvbWUgY29tcGF0aWJpbGl0eSBtYWNyb3MgbmVlZGVkIGZvciBjb25maWcuaC4KKy1tZ19ERUZJTkVfSUZfTk9UKFsjaW5jbHVkZSA8WDExL2tleXN5bS5oPl0sCistICBbZGVmaW5lZCBYS19QYWdlX1VwICYmIGRlZmluZWQgWEtfUGFnZV9Eb3duXSwKKy0gIFtDT01QQVRfT0xEX0tFWVNZTURFRl0sIFskWF9DRkxBR1NdLAorLSAgW09sZCBBSVggc3lzdGVtcyAoMy4yLjUpIGRvbid0IGRlZmluZSBzb21lIGNvbW1vbiBrZXlzeW1zLl0pCisgQUhfVkVSQkFUSU0oW19DT01QQVRfT0xEX0tFWVNZTURFRl0sCisgWyNpZmRlZiBDT01QQVRfT0xEX0tFWVNZTURFRgorICMgIGRlZmluZSBYS19QYWdlX1VwICAgWEtfUHJpb3IKK2RpZmYgLS1naXQgYS9kb2MvZnZ3bS9NYWtlZmlsZS5hbSBiL2RvYy9mdndtL01ha2VmaWxlLmFtCitpbmRleCBjZGRiMTAyLi5mZjAwMTQ5IDEwMDc1NQorLS0tIGEvZG9jL2Z2d20vTWFrZWZpbGUuYW0KKysrKyBiL2RvYy9mdndtL01ha2VmaWxlLmFtCitAQCAtMTAsNyArMTAsNyBAQCBYU0xfUFJPRklMRSA9ICQoc3JjZGlyKS8uLi9kb2Nib29rLXhzbC9wcm9maWxpbmcvcHJvZmlsZS54c2wKKyBIVE1MX0ZJTEVTID0gZnZ3bS5tYW4uaHRtbAorIFhNTF9GSUxFUyA9IEBET0NfU0VDVElPTlNfWE1MX1BBVEhACisgRVhUUkFfRElTVCA9IEBET0NfU0VDVElPTlNfWE1MQCAkKG1hbl9NQU5TKSBzZWN0aW9ucworLW1hbl9NQU5TID0gZnZ3bS4xCisrbWFuX01BTlMgPQorIAorIGlmIEZWV01fQlVJTERfSFRNTERPQworIGRvY19EQVRBID0gJChIVE1MX0ZJTEVTKQorLS0gCisxLjkuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9mdndtL2Z2d20vMDAwMi1Bdm9pZC1hYnNvbHV0ZS1zeW1saW5rcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2Z2d20vZnZ3bS8wMDAyLUF2b2lkLWFic29sdXRlLXN5bWxpbmtzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NmNjODYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9mdndtL2Z2d20vMDAwMi1Bdm9pZC1hYnNvbHV0ZS1zeW1saW5rcy5wYXRjaApAQCAtMCwwICsxLDI3IEBACitGcm9tOiBTZWJhc3RpYW4gUmVpY2hlbCA8c2ViYXN0aWFuLnJlaWNoZWxAY29sbGFib3JhLmNvLnVrPgorRGF0ZTogVHVlLCAyOSBBdWYgMjAxNyAxNjowODo0MiArMDIwMAorU3ViamVjdDogW1BBVENIXSBBdm9pZCBhYnNvbHV0ZSBzeW1saW5rcworCitBdm9pZCB1c2FnZSBvZiBhYnNvbHV0ZSBzeW1saW5rcywgd2hpY2ggYnJlYWtzIHlvY3RvIGJ1aWxkcworc2luY2UgcHlyby4KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCitTaWduZWQtb2ZmLWJ5OiBTZWJhc3RpYW4gUmVpY2hlbCA8c2ViYXN0aWFuLnJlaWNoZWxAY29sbGFib3JhLmNvLnVrPgorCitkaWZmIC0tZ2l0IGEvZGVmYXVsdC1jb25maWcvTWFrZWZpbGUuYW0gYi9kZWZhdWx0LWNvbmZpZy9NYWtlZmlsZS5hbQoraW5kZXggNWUxNmQwOTVhMTM3Li41NDA0MTQ1YTc0MmMgMTAwNjQ0CistLS0gYS9kZWZhdWx0LWNvbmZpZy9NYWtlZmlsZS5hbQorKysrIGIvZGVmYXVsdC1jb25maWcvTWFrZWZpbGUuYW0KK0BAIC0xNyw5ICsxNyw5IEBAIEVYVFJBX0RJU1QgID0gaW1hZ2VzIFwKKyAKKyBpbnN0YWxsLWRhdGEtaG9vazoKKyAJY3AgLXIgJChzcmNkaXIpL2ltYWdlcyAkKGluc3RfbG9jYXRpb24pCistCWxuIC1zZiAkKGluc3RfbG9jYXRpb24pL0Z2d21TY3JpcHQtRGF0ZVRpbWUgJChpbnN0X2xvY2F0aW9uKS8uLgorLQlsbiAtc2YgJChpbnN0X2xvY2F0aW9uKS9GdndtU2NyaXB0LUNvbmZpcm1RdWl0ICQoaW5zdF9sb2NhdGlvbikvLi4KKy0JbG4gLXNmICQoaW5zdF9sb2NhdGlvbikvRnZ3bVNjcmlwdC1Db25maXJtQ29weUNvbmZpZyAkKGluc3RfbG9jYXRpb24pLy4uCisrCWxuIC1zZiBkZWZhdWx0LWNvbmZpZy9GdndtU2NyaXB0LURhdGVUaW1lICQoaW5zdF9sb2NhdGlvbikvLi4KKysJbG4gLXNmIGRlZmF1bHQtY29uZmlnL0Z2d21TY3JpcHQtQ29uZmlybVF1aXQgJChpbnN0X2xvY2F0aW9uKS8uLgorKwlsbiAtc2YgZGVmYXVsdC1jb25maWcvRnZ3bVNjcmlwdC1Db25maXJtQ29weUNvbmZpZyAkKGluc3RfbG9jYXRpb24pLy4uCisgCisgdW5pbnN0YWxsLWhvb2s6CisgCXJtIC1mciAkKERFU1RESVIpLyQoY29uZmlnZGlyKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZnZ3bS9mdndtXzIuNi43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZnZ3bS9mdndtXzIuNi43LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiODUxYmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9mdndtL2Z2d21fMi42LjcuYmIKQEAgLTAsMCArMSwxMTQgQEAKK1NVTU1BUlkgPSAiRiBWaXJ0dWFsIFdpbmRvdyBNYW5hZ2VyICIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZnZ3bS5vcmcvIgorU0VDVElPTiA9ICJ4MTEvd20iCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MzYzZmJjZmI1OTEyNDY4OWFmNzJjOTE0NTYwZWFmNmUiCisKK0RFUEVORFMgPSAiIFwKKyAgICBiaXNvbi1uYXRpdmUgXAorICAgIGZsZXgtbmF0aXZlIFwKKyAgICBmcmVldHlwZS1uYXRpdmUgXAorICAgIGdldHRleHQtbmF0aXZlIFwKKyAgICBsaWJ4c2x0LW5hdGl2ZSBcCisgICAgZm9udGNvbmZpZyBcCisgICAgbGliaWNlIFwKKyAgICBsaWJwbmcgXAorICAgIGxpYnJzdmcgXAorICAgIGxpYnNtIFwKKyAgICBsaWJ4YXUgXAorICAgIGxpYnhjYiBcCisgICAgbGlieGN1cnNvciBcCisgICAgbGlieGRtY3AgXAorICAgIGxpYnhleHQgXAorICAgIGxpYnhmaXhlcyBcCisgICAgbGlieGZ0IFwKKyAgICBsaWJ4aW5lcmFtYSBcCisgICAgbGlieG1sMiBcCisgICAgbGlieHJlbmRlciBcCisgICAgbGlieHQgXAorICAgIHZpcnR1YWwvbGlieDExIFwKKyAgICB4cmFuZHIgXAorICAgIHpsaWIgXAorIgorCitQViA9ICIyLjYuNytnaXQke1NSQ1BWfSIKKworU1JDX1VSSSA9ICIgXAorICAgIGdpdDovL2dpdGh1Yi5jb20vZnZ3bW9yZy9mdndtLmdpdDtwcm90b2NvbD1odHRwcyBcCisgICAgZmlsZTovLzAwMDEtRml4LWNvbXBpbGF0aW9uLWZvci1kaXNhYmxlZC1nbm9tZS5wYXRjaCBcCisgICAgZmlsZTovLzAwMDItQXZvaWQtYWJzb2x1dGUtc3ltbGlua3MucGF0Y2ggXAorIgorCitTUkNSRVYgPSAiNTk3YTRlMjk2ZGE0ZjIxZTcxYTE3ZmFjYWIyOTdlMDE2YTNhODBhOCIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBhdXRvdG9vbHMgZ2V0dGV4dCB1cGRhdGUtYWx0ZXJuYXRpdmVzIHBrZ2NvbmZpZyBweXRob25uYXRpdmUgcGVybG5hdGl2ZSBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKyMgZGVwZW5kcyBvbiB2aXJ0dWFsL2xpYngxMQorUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworQUxURVJOQVRJVkVfJHtQTn0gPSAieC13aW5kb3ctbWFuYWdlciIKK0FMVEVSTkFUSVZFX1RBUkdFVFt4LXdpbmRvdy1tYW5hZ2VyXSA9ICIke2JpbmRpcn0vZnZ3bSIKK0FMVEVSTkFUSVZFX1BSSU9SSVRZW3gtd2luZG93LW1hbmFnZXJdID0gIjIwIgorCitFWFRSQV9PRUNPTkYgPSAiIFwKKyAgICAtLWRpc2FibGUtYmlkaSBcCisgICAgLS1kaXNhYmxlLWZvbnRjb25maWd0ZXN0IFwKKyAgICAtLWRpc2FibGUtZnJlZXR5cGV0ZXN0IFwKKyAgICAtLWRpc2FibGUtaHRtbGRvYyBcCisgICAgLS1kaXNhYmxlLWltbGlidGVzdCBcCisgICAgLS1kaXNhYmxlLW1hbmRvYyBcCisgICAgLS1kaXNhYmxlLW5scyBcCisgICAgLS1kaXNhYmxlLXBlcmxsaWIgXAorICAgIC0tZGlzYWJsZS1yc3ZnIFwKKyAgICAtLWRpc2FibGUtc2hhcGUgXAorICAgIC0tZGlzYWJsZS1zbSBcCisgICAgLS1kaXNhYmxlLXhmdHRlc3QgXAorICAgIC0td2l0aC1pbWxpYi1leGVjLXByZWZpeD0vbm9uZXhpc3RlbnQgXAorICAgIC0td2l0aC1pbWxpYi1wcmVmaXg9L25vbmV4aXN0ZW50IFwKKyAgICAtLXdpdGhvdXQtbmN1cnNlcy1saWJyYXJ5IFwKKyAgICAtLXdpdGhvdXQtcmVhZGxpbmUtbGlicmFyeSBcCisgICAgLS13aXRob3V0LXJwbGF5LWxpYnJhcnkgXAorICAgIC0td2l0aG91dC1zdHJva2UtbGlicmFyeSBcCisgICAgLS13aXRob3V0LXRlcm1jYXAtbGlicmFyeSBcCisgICAgLS13aXRob3V0LXhwbS1saWJyYXJ5IFwKKyAgICBhY19jdl9mdW5jX21rc3RlbXA9bm8gXAorICAgIGhhc19zYWZldHlfbWtzdGVtcD15ZXMgXAorIgorCisjIHNob3cgdGhlIGV4YWN0IGNvbW1hbmRzIGluIHRoZSBsb2cgZmlsZQorRVhUUkFfT0VNQUtFID0gIiBcCisgICAgVj0xIFwKKyIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgaW5zdGFsbCAtZCAtbSAwNzU1ICR7RH0vJHtzeXNjb25mZGlyfS94ZGcvZnZ3bQorICAgICMgWW91IGNhbiBpbnN0YWxsIHRoZSBjb25maWcgZmlsZSBoZXJlCisKKyAgICBpbnN0YWxsIC1kIC1tIDA3NTUgJHtEfS8ke2RhdGFkaXJ9L2Z2d20KKyAgICB0b3VjaCAke0R9LyR7ZGF0YWRpcn0vZnZ3bS9Db25maWdGdndtRGVmYXVsdHMKK30KKworIyB0aGUgb25seSBuZWVkZWQgcGFja2FnZXMgKG5vdGU6IGxvY2FsZSBwYWNrYWdlcyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQKKyMgYXMgd2VsbCkKK1BBQ0tBR0VTID0gIiBcCisgICAgJHtQTn0gXAorICAgICR7UE59LWRiZyBcCisiCisKKyMgbWluaW1hbCBzZXQgb2YgYmluYXJpZXMKK0ZJTEVTXyR7UE59ID0gIiBcCisgICAgJHtiaW5kaXJ9L2Z2d20gXAorICAgICR7YmluZGlyfS9mdndtLXJvb3QgXAorICAgICR7ZGF0YWRpcn0vZnZ3bS9Db25maWdGdndtRGVmYXVsdHMgXAorIgorCitSREVQRU5EU18ke1BOfSA9ICIgXAorICAgIHh1c2VyLWFjY291bnQgXAorIgorCisjIGJ5IGRlZmF1bHQgYSBsb3Qgb2Ygc3R1ZmYgaXMgaW5zdGFsbGVkIGFuZCBpdCdzIG5vdCBlYXN5IHRvIGNvbnRyb2wgd2hhdCB0bworIyBpbnN0YWxsLCBzbyBpbnN0YWxsIGV2ZXJ5dGhpbmcsIGJ1dCBza2lwIHRoZSBjaGVjaworSU5TQU5FX1NLSVBfJHtQTn0gPSAiIFwKKyAgICBpbnN0YWxsZWQtdnMtc2hpcHBlZCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nZWdsL2dlZ2xfMC4zLjE4LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2VnbC9nZWdsXzAuMy4xOC5iYgppbmRleCA2Y2MyMGY1Li4wMDUzYzBjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nZWdsL2dlZ2xfMC4zLjE4LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dlZ2wvZ2VnbF8wLjMuMTguYmIKQEAgLTUsNyArNSw5IEBACiAKIEVYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtZG9jcyIKIAotaW5oZXJpdCBnbm9tZWJhc2UgdmFsYSBnb2JqZWN0LWludHJvc3BlY3Rpb24KK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGdub21lYmFzZSB2YWxhIGdvYmplY3QtaW50cm9zcGVjdGlvbgorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBQQUNLQUdFQ09ORklHID8/PSAiIgogUEFDS0FHRUNPTkZJR1tqYXNwZXJdID0gIi0td2l0aC1qYXNwZXIsLS13aXRob3V0LWphc3BlcixqYXNwZXIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9naW1wL2dpbXBfMi44LjIyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2ltcC9naW1wXzIuOC4yMi5iYgppbmRleCBjZDdlMjdhLi45NDM5ODZlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9naW1wL2dpbXBfMi44LjIyLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dpbXAvZ2ltcF8yLjguMjIuYmIKQEAgLTI0LDcgKzI0LDkgQEAKICIKIERFUEVORFMgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneDExJywgJ2xpYnhtdSBsaWJ4cG0nLCAnJywgZCl9IgogCi1pbmhlcml0IGdub21lIGd0ay1kb2MKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGdub21lIGd0ay1kb2MKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogU1JDX1VSSSA9ICJodHRwOi8vZnRwLmdpbXAub3JnL3B1Yi9naW1wL3YyLjgvZ2ltcC0ke1BWfS50YXIuYnoyIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLWFjLWRvLW5vdC1jaGVjay1mb3ItZnJlZXR5cGUtY29uZmlnLnBhdGNoIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dsbS9maWxlcy8wMDAxLU1ha2UtR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwtYS1jb25maWd1cmFibGUtb3B0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2xtL2ZpbGVzLzAwMDEtTWFrZS1HTE1fRU5BQkxFX0VYUEVSSU1FTlRBTC1hLWNvbmZpZ3VyYWJsZS1vcHRpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY5YzVhZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dsbS9maWxlcy8wMDAxLU1ha2UtR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwtYS1jb25maWd1cmFibGUtb3B0aW9uLnBhdGNoCkBAIC0wLDAgKzEsODYwIEBACitGcm9tIDk5YTk2NzZhMDE5M2Y2MjkxZDcyMDJkN2FmNzJlMjQ1ODBhYmU1NjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogRnJpLCAxNiBNYXIgMjAxOCAxMzo1NToyOSArMDEwMAorU3ViamVjdDogW1BBVENIIDEvMl0gTWFrZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBhIGNvbmZpZ3VyYWJsZSBvcHRpb24KK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworSXQgc2VlbXMgdGhhdCBlcnJvcmluZyBvdXQgaWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgaXMgbm90IHNldCB0dXJucyBpbnRvCitwYWNrYWdlcnMgbmlnaHRtYXJlOiBUaGVyZSBhcmUgcGFja2FnZXMgYXJvdW5kIGV4cGVjdGluZyBnbHggaGVhZGVycy4gRS5nCitsaWJnbHRmIFsxXSBmYWlscyBkdXJpbmcgY29uZmlndXJlIGNoZWNraW5nIGZvciB1c2FibGUgaGVhZGVycyBBTkQgZHVyaW5nCitjb21waWxlLiBQYXRpY3VsYXJseSBmaXhpbmcgY29uZmlndXJlIGZvciB0aG9zZSBwYWNrYWdlcyBpcyB0aW1lLWNvbnN1bWluZzoKK1RoZSBvbmx5IHdheSAoY29ycmVjdCBtZSBpZiBJIGFtIHdyb25nKSBpcyBjcmVhdGluZyBhIHBhdGNoIGFkZGluZworCitBQ19ERUZJTkUoW0dMTV9FTkFCTEVfRVhQRVJJTUVOVEFMXSwgWzFdLCBbZ2xtIG5lZWRzIHRoaXMgZm9yIGd0eCBoZWFkZXJzXSkKKworQnkgYWRkaW5nIGEgY29uZmlndXJlIG9wdGlvbiAnR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwnLCB0aGUgZGVjaXNpb24gdG8gdXNlCitnbG0vZ2x4IGlzIGRvbmUgYXQgb25lIChhbmQgdGhlIHJpZ2h0KSBwbGFjZS4KKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKworWzFdIGh0dHBzOi8vZ2Vycml0LmxpYnJlb2ZmaWNlLm9yZy9naXR3ZWI/cD1saWJnbHRmLmdpdAorCitVcHRyZWFtLVN0YXR1czogU3VibWl0dGVkIFsyXQorCitbMl0gaHR0cHM6Ly9naXRodWIuY29tL2ctdHJ1Yy9nbG0vcHVsbC83NDEKKy0tLQorIENNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgIHwgNiArKysrKysKKyBnbG0vQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICB8IDIgKysKKyBnbG0vZXhwZXJpbWVudGFsLmhwcC5pbiAgICAgICAgICAgICB8IDEgKworIGdsbS9leHQuaHBwICAgICAgICAgICAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9hc3NvY2lhdGVkX21pbl9tYXguaHBwICAgICAgfCAxICsKKyBnbG0vZ3R4L2JpdC5ocHAgICAgICAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvY2xvc2VzdF9wb2ludC5ocHAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9jb2xvcl9zcGFjZS5ocHAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2NvbG9yX3NwYWNlX1lDb0NnLmhwcCAgICAgICB8IDEgKworIGdsbS9ndHgvY29tbW9uLmhwcCAgICAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9jb21wYXRpYmlsaXR5LmhwcCAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2NvbXBvbmVudF93aXNlLmhwcCAgICAgICAgICB8IDEgKworIGdsbS9ndHgvZHVhbF9xdWF0ZXJuaW9uLmhwcCAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9ldWxlcl9hbmdsZXMuaHBwICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2V4dGVuZC5ocHAgICAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvZXh0ZW5kZWRfbWluX21heC5ocHAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9mYXN0X2V4cG9uZW50aWFsLmhwcCAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2Zhc3Rfc3F1YXJlX3Jvb3QuaHBwICAgICAgICB8IDEgKworIGdsbS9ndHgvZmFzdF90cmlnb25vbWV0cnkuaHBwICAgICAgIHwgMSArCisgZ2xtL2d0eC9ncmFkaWVudF9wYWludC5ocHAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2hhbmRlZF9jb29yZGluYXRlX3NwYWNlLmhwcCB8IDEgKworIGdsbS9ndHgvaGFzaC5ocHAgICAgICAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9pbnRlZ2VyLmhwcCAgICAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2ludGVyc2VjdC5ocHAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvaW8uaHBwICAgICAgICAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9sb2dfYmFzZS5ocHAgICAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L21hdHJpeF9jcm9zc19wcm9kdWN0LmhwcCAgICB8IDEgKworIGdsbS9ndHgvbWF0cml4X2RlY29tcG9zZS5ocHAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9tYXRyaXhfZmFjdG9yaXNhdGlvbi5ocHAgICAgfCAxICsKKyBnbG0vZ3R4L21hdHJpeF9pbnRlcnBvbGF0aW9uLmhwcCAgICB8IDEgKworIGdsbS9ndHgvbWF0cml4X21ham9yX3N0b3JhZ2UuaHBwICAgIHwgMSArCisgZ2xtL2d0eC9tYXRyaXhfb3BlcmF0aW9uLmhwcCAgICAgICAgfCAxICsKKyBnbG0vZ3R4L21hdHJpeF9xdWVyeS5ocHAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvbWF0cml4X3RyYW5zZm9ybV8yZC5ocHAgICAgIHwgMSArCisgZ2xtL2d0eC9taXhlZF9wcm9kdWN0LmhwcCAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L25vcm0uaHBwICAgICAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvbm9ybWFsLmhwcCAgICAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9ub3JtYWxpemVfZG90LmhwcCAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L251bWJlcl9wcmVjaXNpb24uaHBwICAgICAgICB8IDEgKworIGdsbS9ndHgvb3B0aW11bV9wb3cuaHBwICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9vcnRob25vcm1hbGl6ZS5ocHAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3BlcnBlbmRpY3VsYXIuaHBwICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvcG9sYXJfY29vcmRpbmF0ZXMuaHBwICAgICAgIHwgMSArCisgZ2xtL2d0eC9wcm9qZWN0aW9uLmhwcCAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3F1YXRlcm5pb24uaHBwICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvcmFuZ2UuaHBwICAgICAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9yYXdfZGF0YS5ocHAgICAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3JvdGF0ZV9ub3JtYWxpemVkX2F4aXMuaHBwICB8IDEgKworIGdsbS9ndHgvcm90YXRlX3ZlY3Rvci5ocHAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9zY2FsYXJfbXVsdGlwbGljYXRpb24uaHBwICAgfCAxICsKKyBnbG0vZ3R4L3NjYWxhcl9yZWxhdGlvbmFsLmhwcCAgICAgICB8IDEgKworIGdsbS9ndHgvc3BsaW5lLmhwcCAgICAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9zdGRfYmFzZWRfdHlwZS5ocHAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3N0cmluZ19jYXN0LmhwcCAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvdGV4dHVyZS5ocHAgICAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC90cmFuc2Zvcm0uaHBwICAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3RyYW5zZm9ybTIuaHBwICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvdHlwZV9hbGlnbmVkLmhwcCAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC90eXBlX3RyYWl0LmhwcCAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3ZlY19zd2l6emxlLmhwcCAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvdmVjdG9yX2FuZ2xlLmhwcCAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC92ZWN0b3JfcXVlcnkuaHBwICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3dyYXAuaHBwICAgICAgICAgICAgICAgICAgICB8IDEgKworIDYzIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2xtL2V4cGVyaW1lbnRhbC5ocHAuaW4KKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IGU1MTU5YjBmLi5iZDRkZDY1NCAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTgyLDYgKzgyLDExIEBAIG9wdGlvbihHTE1fVEVTVF9FTkFCTEVfU0lNRF9BVlggIkVuYWJsZSBBVlggb3B0aW1pemF0aW9ucyIgT0ZGKQorIG9wdGlvbihHTE1fVEVTVF9FTkFCTEVfU0lNRF9BVlgyICJFbmFibGUgQVZYMiBvcHRpbWl6YXRpb25zIiBPRkYpCisgb3B0aW9uKEdMTV9URVNUX0ZPUkNFX1BVUkUgIkZvcmNlICdwdXJlJyBpbnN0cnVjdGlvbnMiIE9GRikKKyAKKytvcHRpb24oR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgIkVuYWJsZSBleHBlcmltZW50YWwgR0xNX0dUWCIgT0ZGKQorK2NvbmZpZ3VyZV9maWxlKGdsbS9leHBlcmltZW50YWwuaHBwLmluIGV4cGVyaW1lbnRhbC5ocHAgQE9OTFkpCisraW5jbHVkZV9kaXJlY3Rvcmllcygke0NNQUtFX0JJTkFSWV9ESVJ9L2dsbSkKKytpbmNsdWRlX2RpcmVjdG9yaWVzKCR7Q01BS0VfQklOQVJZX0RJUn0pCisrCisgaWYoR0xNX1RFU1RfRk9SQ0VfUFVSRSkKKyAJYWRkX2RlZmluaXRpb25zKC1ER0xNX0ZPUkNFX1BVUkUpCisgCitAQCAtMTY3LDYgKzE3Miw3IEBAIG9wdGlvbihHTE1fSU5TVEFMTF9FTkFCTEUgIkdMTSBpbnN0YWxsIiBPTikKKyBzZXQoR0xNX0lOU1RBTExfQ09ORklHRElSICIke0NNQUtFX0lOU1RBTExfTElCRElSfS9jbWFrZS9nbG0iKQorIGlmIChHTE1fSU5TVEFMTF9FTkFCTEUpCisgCWluc3RhbGwoRElSRUNUT1JZIGdsbSBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0pCisrCWluc3RhbGwoRklMRVMgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9leHBlcmltZW50YWwuaHBwIiBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0vZ2xtKQorIGVuZGlmKCkKKyAKKyB3cml0ZV9iYXNpY19wYWNrYWdlX3ZlcnNpb25fZmlsZSgiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2dsbUNvbmZpZ1ZlcnNpb24uY21ha2UiIFZFUlNJT04gJHtHTE1fVkVSU0lPTn0gQ09NUEFUSUJJTElUWSBBbnlOZXdlclZlcnNpb24pCitkaWZmIC0tZ2l0IGEvZ2xtL0NNYWtlTGlzdHMudHh0IGIvZ2xtL0NNYWtlTGlzdHMudHh0CitpbmRleCBkZjljOWVlNS4uZGM1ZGI0YmMgMTAwNjQ0CistLS0gYS9nbG0vQ01ha2VMaXN0cy50eHQKKysrKyBiL2dsbS9DTWFrZUxpc3RzLnR4dAorQEAgLTQzLDYgKzQzLDggQEAgc291cmNlX2dyb3VwKCJTSU1EIEZpbGVzIiBGSUxFUyAke1NJTURfSU5MSU5FfSkKKyBzb3VyY2VfZ3JvdXAoIlNJTUQgRmlsZXMiIEZJTEVTICR7U0lNRF9IRUFERVJ9KQorIAorIGluY2x1ZGVfZGlyZWN0b3JpZXMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uKQorKyMgbWFrZSBvdXQtb2YgdHJlZSBidWlsZHMgZmluZCBleHBlcmltZW50YWwuaHBwCisraW5jbHVkZV9kaXJlY3Rvcmllcygke0NNQUtFX0JJTkFSWV9ESVJ9L2dsbSkKKyAKKyBpZihHTE1fU1RBVElDX0xJQlJBUllfRU5BQkxFIE9SIEdMTV9EWU5BTUlDX0xJQlJBUllfRU5BQkxFKQorIAlpZihHTE1fU1RBVElDX0xJQlJBUllfRU5BQkxFKQorZGlmZiAtLWdpdCBhL2dsbS9leHBlcmltZW50YWwuaHBwLmluIGIvZ2xtL2V4cGVyaW1lbnRhbC5ocHAuaW4KK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uYmZhYjUxMzgKKy0tLSAvZGV2L251bGwKKysrKyBiL2dsbS9leHBlcmltZW50YWwuaHBwLmluCitAQCAtMCwwICsxIEBACisrI2NtYWtlZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCitkaWZmIC0tZ2l0IGEvZ2xtL2V4dC5ocHAgYi9nbG0vZXh0LmhwcAoraW5kZXggZDA4NWJmZDUuLmEyOTQ4NDQ3IDEwMDY0NAorLS0tIGEvZ2xtL2V4dC5ocHAKKysrKyBiL2dsbS9leHQuaHBwCitAQCAtMzksNiArMzksNyBAQAorICMJaW5jbHVkZSAiLi9ndGMvdHlwZV9hbGlnbmVkLmhwcCIKKyAjZW5kaWYKKyAKKysjaW5jbHVkZSAiZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZkZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjaW5jbHVkZSAiLi9ndHgvYXNzb2NpYXRlZF9taW5fbWF4LmhwcCIKKyAjaW5jbHVkZSAiLi9ndHgvYml0LmhwcCIKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2Fzc29jaWF0ZWRfbWluX21heC5ocHAgYi9nbG0vZ3R4L2Fzc29jaWF0ZWRfbWluX21heC5ocHAKK2luZGV4IDBjOTkzNWYzLi5kMDBjMmJjNCAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvYXNzb2NpYXRlZF9taW5fbWF4LmhwcAorKysrIGIvZ2xtL2d0eC9hc3NvY2lhdGVkX21pbl9tYXguaHBwCitAQCAtMTYsNiArMTYsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR1RYX2Fzc29jaWF0ZWRfbWluX21heCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvYml0LmhwcCBiL2dsbS9ndHgvYml0LmhwcAoraW5kZXggMTQ0N2ZhMDAuLjMxOTU3MDgzIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9iaXQuaHBwCisrKysgYi9nbG0vZ3R4L2JpdC5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jaWVzCisgI2luY2x1ZGUgIi4uL2d0Yy9iaXRmaWVsZC5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9iaXQgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2Nsb3Nlc3RfcG9pbnQuaHBwIGIvZ2xtL2d0eC9jbG9zZXN0X3BvaW50LmhwcAoraW5kZXggNjg1OWJiOTYuLmViZDlmZTVhIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9jbG9zZXN0X3BvaW50LmhwcAorKysrIGIvZ2xtL2d0eC9jbG9zZXN0X3BvaW50LmhwcAorQEAgLTE1LDYgKzE1LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfY2xvc2VzdF9wb2ludCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvY29sb3Jfc3BhY2UuaHBwIGIvZ2xtL2d0eC9jb2xvcl9zcGFjZS5ocHAKK2luZGV4IGQxZTY1NWMzLi41MTQxNjgxOSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvY29sb3Jfc3BhY2UuaHBwCisrKysgYi9nbG0vZ3R4L2NvbG9yX3NwYWNlLmhwcAorQEAgLTE1LDYgKzE1LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfY29sb3Jfc3BhY2UgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2NvbG9yX3NwYWNlX1lDb0NnLmhwcCBiL2dsbS9ndHgvY29sb3Jfc3BhY2VfWUNvQ2cuaHBwCitpbmRleCBlODJjYmQ4Yi4uN2FlNzEwNDEgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2NvbG9yX3NwYWNlX1lDb0NnLmhwcAorKysrIGIvZ2xtL2d0eC9jb2xvcl9zcGFjZV9ZQ29DZy5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2NvbG9yX3NwYWNlX1lDb0NnIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9jb21tb24uaHBwIGIvZ2xtL2d0eC9jb21tb24uaHBwCitpbmRleCA4MDgxYmZmNy4uNTdhNjhhOGQgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2NvbW1vbi5ocHAKKysrKyBiL2dsbS9ndHgvY29tbW9uLmhwcAorQEAgLTE4LDYgKzE4LDcgQEAKKyAjaW5jbHVkZSAiLi4vdmVjNC5ocHAiCisgI2luY2x1ZGUgIi4uL2d0Yy92ZWMxLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2NvbW1vbiBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvY29tcGF0aWJpbGl0eS5ocHAgYi9nbG0vZ3R4L2NvbXBhdGliaWxpdHkuaHBwCitpbmRleCBlNWI2MDM5OS4uOTg3NjY2OWMgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2NvbXBhdGliaWxpdHkuaHBwCisrKysgYi9nbG0vZ3R4L2NvbXBhdGliaWxpdHkuaHBwCitAQCAtMTYsNiArMTYsNyBAQAorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorICNpbmNsdWRlICIuLi9ndGMvcXVhdGVybmlvbi5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9jb21wYXRpYmlsaXR5IGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9jb21wb25lbnRfd2lzZS5ocHAgYi9nbG0vZ3R4L2NvbXBvbmVudF93aXNlLmhwcAoraW5kZXggMzliYWI1ZDUuLjRmZTBlNGUyIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9jb21wb25lbnRfd2lzZS5ocHAKKysrKyBiL2dsbS9ndHgvY29tcG9uZW50X3dpc2UuaHBwCitAQCAtMTgsNiArMTgsNyBAQAorICNpbmNsdWRlICIuLi9kZXRhaWwvc2V0dXAuaHBwIgorICNpbmNsdWRlICIuLi9kZXRhaWwvcXVhbGlmaWVyLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2NvbXBvbmVudF93aXNlIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9kdWFsX3F1YXRlcm5pb24uaHBwIGIvZ2xtL2d0eC9kdWFsX3F1YXRlcm5pb24uaHBwCitpbmRleCBjNDM0M2U5ZC4uZDU5ZmI0NTkgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2R1YWxfcXVhdGVybmlvbi5ocHAKKysrKyBiL2dsbS9ndHgvZHVhbF9xdWF0ZXJuaW9uLmhwcAorQEAgLTIwLDYgKzIwLDcgQEAKKyAjaW5jbHVkZSAiLi4vZ3RjL2NvbnN0YW50cy5ocHAiCisgI2luY2x1ZGUgIi4uL2d0Yy9xdWF0ZXJuaW9uLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2R1YWxfcXVhdGVybmlvbiBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvZXVsZXJfYW5nbGVzLmhwcCBiL2dsbS9ndHgvZXVsZXJfYW5nbGVzLmhwcAoraW5kZXggZTY2ZTkyODEuLmFkNTk4OGMxIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9ldWxlcl9hbmdsZXMuaHBwCisrKysgYi9nbG0vZ3R4L2V1bGVyX2FuZ2xlcy5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2V1bGVyX2FuZ2xlcyBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvZXh0ZW5kLmhwcCBiL2dsbS9ndHgvZXh0ZW5kLmhwcAoraW5kZXggZWRhNGU0NzAuLmNkZTZkYjYzIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9leHRlbmQuaHBwCisrKysgYi9nbG0vZ3R4L2V4dGVuZC5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2V4dGVuZCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvZXh0ZW5kZWRfbWluX21heC5ocHAgYi9nbG0vZ3R4L2V4dGVuZGVkX21pbl9tYXguaHBwCitpbmRleCAzZTc2N2IwYy4uMGJjZmZjYzYgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2V4dGVuZGVkX21pbl9tYXguaHBwCisrKysgYi9nbG0vZ3R4L2V4dGVuZGVkX21pbl9tYXguaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9leHRlbnRlZF9taW5fbWF4IGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9mYXN0X2V4cG9uZW50aWFsLmhwcCBiL2dsbS9ndHgvZmFzdF9leHBvbmVudGlhbC5ocHAKK2luZGV4IDJkNDkxOGU3Li5lNmQxMWYwYSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvZmFzdF9leHBvbmVudGlhbC5ocHAKKysrKyBiL2dsbS9ndHgvZmFzdF9leHBvbmVudGlhbC5ocHAKK0BAIC0xNiw2ICsxNiw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2Zhc3RfZXhwb25lbnRpYWwgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2Zhc3Rfc3F1YXJlX3Jvb3QuaHBwIGIvZ2xtL2d0eC9mYXN0X3NxdWFyZV9yb290LmhwcAoraW5kZXggMWUxZWMzY2YuLmY3NThhZWVmIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9mYXN0X3NxdWFyZV9yb290LmhwcAorKysrIGIvZ2xtL2d0eC9mYXN0X3NxdWFyZV9yb290LmhwcAorQEAgLTE5LDYgKzE5LDcgQEAKKyAjaW5jbHVkZSAiLi4vZXhwb25lbnRpYWwuaHBwIgorICNpbmNsdWRlICIuLi9nZW9tZXRyaWMuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfZmFzdF9zcXVhcmVfcm9vdCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvZmFzdF90cmlnb25vbWV0cnkuaHBwIGIvZ2xtL2d0eC9mYXN0X3RyaWdvbm9tZXRyeS5ocHAKK2luZGV4IDczOTA2NWZiLi5mMTMzMjk1OCAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvZmFzdF90cmlnb25vbWV0cnkuaHBwCisrKysgYi9nbG0vZ3R4L2Zhc3RfdHJpZ29ub21ldHJ5LmhwcAorQEAgLTE1LDYgKzE1LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9ndGMvY29uc3RhbnRzLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2Zhc3RfdHJpZ29ub21ldHJ5IGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9ncmFkaWVudF9wYWludC5ocHAgYi9nbG0vZ3R4L2dyYWRpZW50X3BhaW50LmhwcAoraW5kZXggMjcxM2NlYzAuLmQ0NzAzOTkxIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9ncmFkaWVudF9wYWludC5ocHAKKysrKyBiL2dsbS9ndHgvZ3JhZGllbnRfcGFpbnQuaHBwCitAQCAtMTcsNiArMTcsNyBAQAorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorICNpbmNsdWRlICIuLi9ndHgvb3B0aW11bV9wb3cuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfZ3JhZGllbnRfcGFpbnQgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2hhbmRlZF9jb29yZGluYXRlX3NwYWNlLmhwcCBiL2dsbS9ndHgvaGFuZGVkX2Nvb3JkaW5hdGVfc3BhY2UuaHBwCitpbmRleCAxZDBkNDEwNC4uM2E1MmRkY2YgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2hhbmRlZF9jb29yZGluYXRlX3NwYWNlLmhwcAorKysrIGIvZ2xtL2d0eC9oYW5kZWRfY29vcmRpbmF0ZV9zcGFjZS5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2hhbmRlZF9jb29yZGluYXRlX3NwYWNlIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9oYXNoLmhwcCBiL2dsbS9ndHgvaGFzaC5ocHAKK2luZGV4IGZlOGEzZWZkLi45MmJmYzliMiAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvaGFzaC5ocHAKKysrKyBiL2dsbS9ndHgvaGFzaC5ocHAKK0BAIC0xMiw2ICsxMiw3IEBACisgCisgI3ByYWdtYSBvbmNlCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9oYXNoIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9pbnRlZ2VyLmhwcCBiL2dsbS9ndHgvaW50ZWdlci5ocHAKK2luZGV4IDk2NjM3YTEzLi41ZDFhMTZjNiAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvaW50ZWdlci5ocHAKKysrKyBiL2dsbS9ndHgvaW50ZWdlci5ocHAKK0BAIC0xNiw2ICsxNiw3IEBACisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgI2luY2x1ZGUgIi4uL2d0Yy9pbnRlZ2VyLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2ludGVnZXIgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2ludGVyc2VjdC5ocHAgYi9nbG0vZ3R4L2ludGVyc2VjdC5ocHAKK2luZGV4IDYxZTIyMjZhLi40ODk1YmE5MyAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvaW50ZXJzZWN0LmhwcAorKysrIGIvZ2xtL2d0eC9pbnRlcnNlY3QuaHBwCitAQCAtMjEsNiArMjEsNyBAQAorICNpbmNsdWRlICIuLi9ndHgvY2xvc2VzdF9wb2ludC5ocHAiCisgI2luY2x1ZGUgIi4uL2d0eC92ZWN0b3JfcXVlcnkuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfY2xvc2VzdF9wb2ludCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvaW8uaHBwIGIvZ2xtL2d0eC9pby5ocHAKK2luZGV4IDQ5YTFlYzExLi5hZTM5Y2Q2MCAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvaW8uaHBwCisrKysgYi9nbG0vZ3R4L2lvLmhwcAorQEAgLTIzLDYgKzIzLDcgQEAKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3R4L3F1YXRlcm5pb24uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfaW8gaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2xvZ19iYXNlLmhwcCBiL2dsbS9ndHgvbG9nX2Jhc2UuaHBwCitpbmRleCBlODczZTM1Ni4uNDViOGQ1M2MgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2xvZ19iYXNlLmhwcAorKysrIGIvZ2xtL2d0eC9sb2dfYmFzZS5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2xvZ19iYXNlIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9tYXRyaXhfY3Jvc3NfcHJvZHVjdC5ocHAgYi9nbG0vZ3R4L21hdHJpeF9jcm9zc19wcm9kdWN0LmhwcAoraW5kZXggOTY3NzQzYjguLjUyZDZjMTczIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9tYXRyaXhfY3Jvc3NfcHJvZHVjdC5ocHAKKysrKyBiL2dsbS9ndHgvbWF0cml4X2Nyb3NzX3Byb2R1Y3QuaHBwCitAQCAtMTYsNiArMTYsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9tYXRyaXhfY3Jvc3NfcHJvZHVjdCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvbWF0cml4X2RlY29tcG9zZS5ocHAgYi9nbG0vZ3R4L21hdHJpeF9kZWNvbXBvc2UuaHBwCitpbmRleCBiN2VjMGU4My4uNjc5M2ZlZTIgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L21hdHJpeF9kZWNvbXBvc2UuaHBwCisrKysgYi9nbG0vZ3R4L21hdHJpeF9kZWNvbXBvc2UuaHBwCitAQCAtMjAsNiArMjAsNyBAQAorICNpbmNsdWRlICIuLi9ndGMvcXVhdGVybmlvbi5ocHAiCisgI2luY2x1ZGUgIi4uL2d0Yy9tYXRyaXhfdHJhbnNmb3JtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX21hdHJpeF9kZWNvbXBvc2UgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L21hdHJpeF9mYWN0b3Jpc2F0aW9uLmhwcCBiL2dsbS9ndHgvbWF0cml4X2ZhY3RvcmlzYXRpb24uaHBwCitpbmRleCBlMzBhNzc0Ni4uNzljMjkzYmUgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L21hdHJpeF9mYWN0b3Jpc2F0aW9uLmhwcAorKysrIGIvZ2xtL2d0eC9tYXRyaXhfZmFjdG9yaXNhdGlvbi5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX21hdHJpeF9mYWN0b3Jpc2F0aW9uIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9tYXRyaXhfaW50ZXJwb2xhdGlvbi5ocHAgYi9nbG0vZ3R4L21hdHJpeF9pbnRlcnBvbGF0aW9uLmhwcAoraW5kZXggODljNDU5NmMuLjc5OTk4M2JiIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9tYXRyaXhfaW50ZXJwb2xhdGlvbi5ocHAKKysrKyBiL2dsbS9ndHgvbWF0cml4X2ludGVycG9sYXRpb24uaHBwCitAQCAtMTYsNiArMTYsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9tYXRyaXhfaW50ZXJwb2xhdGlvbiBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvbWF0cml4X21ham9yX3N0b3JhZ2UuaHBwIGIvZ2xtL2d0eC9tYXRyaXhfbWFqb3Jfc3RvcmFnZS5ocHAKK2luZGV4IDdmMjY0YTU5Li5lNjg0NjdjZCAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvbWF0cml4X21ham9yX3N0b3JhZ2UuaHBwCisrKysgYi9nbG0vZ3R4L21hdHJpeF9tYWpvcl9zdG9yYWdlLmhwcAorQEAgLTE2LDYgKzE2LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfbWF0cml4X21ham9yX3N0b3JhZ2UgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L21hdHJpeF9vcGVyYXRpb24uaHBwIGIvZ2xtL2d0eC9tYXRyaXhfb3BlcmF0aW9uLmhwcAoraW5kZXggYmNlOTM4YmIuLjFlODViYjVlIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9tYXRyaXhfb3BlcmF0aW9uLmhwcAorKysrIGIvZ2xtL2d0eC9tYXRyaXhfb3BlcmF0aW9uLmhwcAorQEAgLTE1LDYgKzE1LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfbWF0cml4X29wZXJhdGlvbiBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvbWF0cml4X3F1ZXJ5LmhwcCBiL2dsbS9ndHgvbWF0cml4X3F1ZXJ5LmhwcAoraW5kZXggNWRmNWY1MmYuLmVlYzFlZWMwIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9tYXRyaXhfcXVlcnkuaHBwCisrKysgYi9nbG0vZ3R4L21hdHJpeF9xdWVyeS5ocHAKK0BAIC0xOCw2ICsxOCw3IEBACisgI2luY2x1ZGUgIi4uL2d0eC92ZWN0b3JfcXVlcnkuaHBwIgorICNpbmNsdWRlIDxsaW1pdHM+CisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9tYXRyaXhfcXVlcnkgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L21hdHJpeF90cmFuc2Zvcm1fMmQuaHBwIGIvZ2xtL2d0eC9tYXRyaXhfdHJhbnNmb3JtXzJkLmhwcAoraW5kZXggMjM5YWI5ZjQuLjNjYThkMmYyIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9tYXRyaXhfdHJhbnNmb3JtXzJkLmhwcAorKysrIGIvZ2xtL2d0eC9tYXRyaXhfdHJhbnNmb3JtXzJkLmhwcAorQEAgLTE3LDYgKzE3LDcgQEAKKyAjaW5jbHVkZSAiLi4vbWF0M3gzLmhwcCIKKyAjaW5jbHVkZSAiLi4vdmVjMi5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9tYXRyaXhfdHJhbnNmb3JtXzJkIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9taXhlZF9wcm9kdWN0LmhwcCBiL2dsbS9ndHgvbWl4ZWRfcHJvZHVjdC5ocHAKK2luZGV4IDU4NTYyYWFiLi41Yzc0NjBkNSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvbWl4ZWRfcHJvZHVjdC5ocHAKKysrKyBiL2dsbS9ndHgvbWl4ZWRfcHJvZHVjdC5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX21peGVkX3Byb2R1Y3QgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L25vcm0uaHBwIGIvZ2xtL2d0eC9ub3JtLmhwcAoraW5kZXggNDY0NzRlMDcuLjNjZjJjM2VhIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9ub3JtLmhwcAorKysrIGIvZ2xtL2d0eC9ub3JtLmhwcAorQEAgLTE3LDYgKzE3LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ2VvbWV0cmljLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3R4L3F1YXRlcm5pb24uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfbm9ybSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvbm9ybWFsLmhwcCBiL2dsbS9ndHgvbm9ybWFsLmhwcAoraW5kZXggMTVjZWM5YzIuLjdiYjRjMDk2IDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9ub3JtYWwuaHBwCisrKysgYi9nbG0vZ3R4L25vcm1hbC5ocHAKK0BAIC0xNiw2ICsxNiw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX25vcm1hbCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvbm9ybWFsaXplX2RvdC5ocHAgYi9nbG0vZ3R4L25vcm1hbGl6ZV9kb3QuaHBwCitpbmRleCA4NjA0OGU3MC4uYzY2MDRkYTQgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L25vcm1hbGl6ZV9kb3QuaHBwCisrKysgYi9nbG0vZ3R4L25vcm1hbGl6ZV9kb3QuaHBwCitAQCAtMTYsNiArMTYsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2d0eC9mYXN0X3NxdWFyZV9yb290LmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX25vcm1hbGl6ZV9kb3QgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L251bWJlcl9wcmVjaXNpb24uaHBwIGIvZ2xtL2d0eC9udW1iZXJfcHJlY2lzaW9uLmhwcAoraW5kZXggMzczMmE1NmMuLmI0ODg0NWY3IDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9udW1iZXJfcHJlY2lzaW9uLmhwcAorKysrIGIvZ2xtL2d0eC9udW1iZXJfcHJlY2lzaW9uLmhwcAorQEAgLTE4LDYgKzE4LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3RjL3R5cGVfcHJlY2lzaW9uLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX251bWJlcl9wcmVjaXNpb24gaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L29wdGltdW1fcG93LmhwcCBiL2dsbS9ndHgvb3B0aW11bV9wb3cuaHBwCitpbmRleCBlYjA5ZjFjMy4uOTRhNmJiYjIgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L29wdGltdW1fcG93LmhwcAorKysrIGIvZ2xtL2d0eC9vcHRpbXVtX3Bvdy5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX29wdGltdW1fcG93IGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9vcnRob25vcm1hbGl6ZS5ocHAgYi9nbG0vZ3R4L29ydGhvbm9ybWFsaXplLmhwcAoraW5kZXggMmE2ODRlZTQuLjRmZjQ3ZTUzIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9vcnRob25vcm1hbGl6ZS5ocHAKKysrKyBiL2dsbS9ndHgvb3J0aG9ub3JtYWxpemUuaHBwCitAQCAtMTgsNiArMTgsNyBAQAorICNpbmNsdWRlICIuLi9tYXQzeDMuaHBwIgorICNpbmNsdWRlICIuLi9nZW9tZXRyaWMuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfb3J0aG9ub3JtYWxpemUgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3BlcnBlbmRpY3VsYXIuaHBwIGIvZ2xtL2d0eC9wZXJwZW5kaWN1bGFyLmhwcAoraW5kZXggMzU2MDFhYzcuLjE3MjUxZWJlIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9wZXJwZW5kaWN1bGFyLmhwcAorKysrIGIvZ2xtL2d0eC9wZXJwZW5kaWN1bGFyLmhwcAorQEAgLTE3LDYgKzE3LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3R4L3Byb2plY3Rpb24uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfcGVycGVuZGljdWxhciBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvcG9sYXJfY29vcmRpbmF0ZXMuaHBwIGIvZ2xtL2d0eC9wb2xhcl9jb29yZGluYXRlcy5ocHAKK2luZGV4IGI4NDIxZGI0Li41MTI1MjE1ZCAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvcG9sYXJfY29vcmRpbmF0ZXMuaHBwCisrKysgYi9nbG0vZ3R4L3BvbGFyX2Nvb3JkaW5hdGVzLmhwcAorQEAgLTE1LDYgKzE1LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfcG9sYXJfY29vcmRpbmF0ZXMgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3Byb2plY3Rpb24uaHBwIGIvZ2xtL2d0eC9wcm9qZWN0aW9uLmhwcAoraW5kZXggOWEyNGFiZjkuLjRkNWJmNzZmIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9wcm9qZWN0aW9uLmhwcAorKysrIGIvZ2xtL2d0eC9wcm9qZWN0aW9uLmhwcAorQEAgLTE1LDYgKzE1LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9nZW9tZXRyaWMuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfcHJvamVjdGlvbiBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvcXVhdGVybmlvbi5ocHAgYi9nbG0vZ3R4L3F1YXRlcm5pb24uaHBwCitpbmRleCBjM2Q5OWE1Yy4uODA4YmEwZmQgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3F1YXRlcm5pb24uaHBwCisrKysgYi9nbG0vZ3R4L3F1YXRlcm5pb24uaHBwCitAQCAtMTksNiArMTksNyBAQAorICNpbmNsdWRlICIuLi9ndGMvcXVhdGVybmlvbi5ocHAiCisgI2luY2x1ZGUgIi4uL2d0eC9ub3JtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3F1YXRlcm5pb24gaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3JhbmdlLmhwcCBiL2dsbS9ndHgvcmFuZ2UuaHBwCitpbmRleCBlMGVmNDZhZi4uMDNjNzk3YzMgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3JhbmdlLmhwcAorKysrIGIvZ2xtL2d0eC9yYW5nZS5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jaWVzCisgI2luY2x1ZGUgIi4uL2RldGFpbC9zZXR1cC5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9yYW5nZSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvcmF3X2RhdGEuaHBwIGIvZ2xtL2d0eC9yYXdfZGF0YS5ocHAKK2luZGV4IGZiMzRjOGNiLi4wMDg0ZmVjNiAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvcmF3X2RhdGEuaHBwCisrKysgYi9nbG0vZ3R4L3Jhd19kYXRhLmhwcAorQEAgLTE2LDYgKzE2LDcgQEAKKyAjaW5jbHVkZSAiLi4vZGV0YWlsL3NldHVwLmhwcCIKKyAjaW5jbHVkZSAiLi4vZGV0YWlsL3R5cGVfaW50LmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3Jhd19kYXRhIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9yb3RhdGVfbm9ybWFsaXplZF9heGlzLmhwcCBiL2dsbS9ndHgvcm90YXRlX25vcm1hbGl6ZWRfYXhpcy5ocHAKK2luZGV4IGVlZTkwZDZlLi44MjYxMjkyOCAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvcm90YXRlX25vcm1hbGl6ZWRfYXhpcy5ocHAKKysrKyBiL2dsbS9ndHgvcm90YXRlX25vcm1hbGl6ZWRfYXhpcy5ocHAKK0BAIC0xOSw2ICsxOSw3IEBACisgI2luY2x1ZGUgIi4uL2d0Yy9lcHNpbG9uLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3RjL3F1YXRlcm5pb24uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfcm90YXRlX25vcm1hbGl6ZWRfYXhpcyBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvcm90YXRlX3ZlY3Rvci5ocHAgYi9nbG0vZ3R4L3JvdGF0ZV92ZWN0b3IuaHBwCitpbmRleCBjOGFjZTg5ZS4uZTk1NGIwNDEgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3JvdGF0ZV92ZWN0b3IuaHBwCisrKysgYi9nbG0vZ3R4L3JvdGF0ZV92ZWN0b3IuaHBwCitAQCAtMTcsNiArMTcsNyBAQAorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorICNpbmNsdWRlICIuLi9ndHgvdHJhbnNmb3JtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3JvdGF0ZV92ZWN0b3IgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3NjYWxhcl9tdWx0aXBsaWNhdGlvbi5ocHAgYi9nbG0vZ3R4L3NjYWxhcl9tdWx0aXBsaWNhdGlvbi5ocHAKK2luZGV4IGI3M2VkZjY3Li4yMmJhYTUyYSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvc2NhbGFyX211bHRpcGxpY2F0aW9uLmhwcAorKysrIGIvZ2xtL2d0eC9zY2FsYXJfbXVsdGlwbGljYXRpb24uaHBwCitAQCAtMTYsNiArMTYsNyBAQAorIAorICNpbmNsdWRlICIuLi9kZXRhaWwvc2V0dXAuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfc2NhbGFyX211bHRpcGxpY2F0aW9uIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9zY2FsYXJfcmVsYXRpb25hbC5ocHAgYi9nbG0vZ3R4L3NjYWxhcl9yZWxhdGlvbmFsLmhwcAoraW5kZXggN2ZjOGMxY2MuLmYyMWYzYjJiIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9zY2FsYXJfcmVsYXRpb25hbC5ocHAKKysrKyBiL2dsbS9ndHgvc2NhbGFyX3JlbGF0aW9uYWwuaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9leHRlbmQgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3NwbGluZS5ocHAgYi9nbG0vZ3R4L3NwbGluZS5ocHAKK2luZGV4IGY5NmQ3ZTA3Li43NjM1OWNmZCAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvc3BsaW5lLmhwcAorKysrIGIvZ2xtL2d0eC9zcGxpbmUuaHBwCitAQCAtMTYsNiArMTYsNyBAQAorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorICNpbmNsdWRlICIuLi9ndHgvb3B0aW11bV9wb3cuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfc3BsaW5lIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9zdGRfYmFzZWRfdHlwZS5ocHAgYi9nbG0vZ3R4L3N0ZF9iYXNlZF90eXBlLmhwcAoraW5kZXggNTVhMmYwNzQuLjkyNTMyYjllIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9zdGRfYmFzZWRfdHlwZS5ocHAKKysrKyBiL2dsbS9ndHgvc3RkX2Jhc2VkX3R5cGUuaHBwCitAQCAtMTcsNiArMTcsNyBAQAorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorICNpbmNsdWRlIDxjc3RkbGliPgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfc3RkX2Jhc2VkX3R5cGUgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3N0cmluZ19jYXN0LmhwcCBiL2dsbS9ndHgvc3RyaW5nX2Nhc3QuaHBwCitpbmRleCA0YjRlMjgwZi4uZGZjZDUwODUgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3N0cmluZ19jYXN0LmhwcAorKysrIGIvZ2xtL2d0eC9zdHJpbmdfY2FzdC5ocHAKK0BAIC0yNCw2ICsyNCw3IEBACisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8Y21hdGg+CisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9zdHJpbmdfY2FzdCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvdGV4dHVyZS5ocHAgYi9nbG0vZ3R4L3RleHR1cmUuaHBwCitpbmRleCAzMTJiZjM5OC4uN2FmMTg1ZjYgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3RleHR1cmUuaHBwCisrKysgYi9nbG0vZ3R4L3RleHR1cmUuaHBwCitAQCAtMTcsNiArMTcsNyBAQAorICNpbmNsdWRlICIuLi9ndGMvaW50ZWdlci5ocHAiCisgI2luY2x1ZGUgIi4uL2d0eC9jb21wb25lbnRfd2lzZS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF90ZXh0dXJlIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC90cmFuc2Zvcm0uaHBwIGIvZ2xtL2d0eC90cmFuc2Zvcm0uaHBwCitpbmRleCBkMjNiOTljZS4uNWE1ZDk2MTkgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3RyYW5zZm9ybS5ocHAKKysrKyBiL2dsbS9ndHgvdHJhbnNmb3JtLmhwcAorQEAgLTE5LDYgKzE5LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3RjL21hdHJpeF90cmFuc2Zvcm0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfdHJhbnNmb3JtIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC90cmFuc2Zvcm0yLmhwcCBiL2dsbS9ndHgvdHJhbnNmb3JtMi5ocHAKK2luZGV4IDg1ZjViZWE0Li41ZDdjODNmYyAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvdHJhbnNmb3JtMi5ocHAKKysrKyBiL2dsbS9ndHgvdHJhbnNmb3JtMi5ocHAKK0BAIC0xNyw2ICsxNyw3IEBACisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgI2luY2x1ZGUgIi4uL2d0eC90cmFuc2Zvcm0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfdHJhbnNmb3JtMiBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvdHlwZV9hbGlnbmVkLmhwcCBiL2dsbS9ndHgvdHlwZV9hbGlnbmVkLmhwcAoraW5kZXggNmZmOWYyNzYuLjZhZDkyZmFkIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC90eXBlX2FsaWduZWQuaHBwCisrKysgYi9nbG0vZ3R4L3R5cGVfYWxpZ25lZC5ocHAKK0BAIC0xOCw2ICsxOCw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ3RjL3R5cGVfcHJlY2lzaW9uLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3R5cGVfYWxpZ25lZCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvdHlwZV90cmFpdC5ocHAgYi9nbG0vZ3R4L3R5cGVfdHJhaXQuaHBwCitpbmRleCA2MzdiYmQxOS4uNjU1MTljYWIgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3R5cGVfdHJhaXQuaHBwCisrKysgYi9nbG0vZ3R4L3R5cGVfdHJhaXQuaHBwCitAQCAtMTIsNiArMTIsNyBAQAorIAorICNwcmFnbWEgb25jZQorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfdHlwZV90cmFpdCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvdmVjX3N3aXp6bGUuaHBwIGIvZ2xtL2d0eC92ZWNfc3dpenpsZS5ocHAKK2luZGV4IGRhZWJhYzM4Li4xM2Q1MjNkYyAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvdmVjX3N3aXp6bGUuaHBwCisrKysgYi9nbG0vZ3R4L3ZlY19zd2l6emxlLmhwcAorQEAgLTE0LDYgKzE0LDcgQEAKKyAKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3ZlY19zd2l6emxlIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC92ZWN0b3JfYW5nbGUuaHBwIGIvZ2xtL2d0eC92ZWN0b3JfYW5nbGUuaHBwCitpbmRleCA0MDFhNDdlYi4uOThjOWQxMTAgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3ZlY3Rvcl9hbmdsZS5ocHAKKysrKyBiL2dsbS9ndHgvdmVjdG9yX2FuZ2xlLmhwcAorQEAgLTIwLDYgKzIwLDcgQEAKKyAjaW5jbHVkZSAiLi4vZ3R4L3F1YXRlcm5pb24uaHBwIgorICNpbmNsdWRlICIuLi9ndHgvcm90YXRlX3ZlY3Rvci5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF92ZWN0b3JfYW5nbGUgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3ZlY3Rvcl9xdWVyeS5ocHAgYi9nbG0vZ3R4L3ZlY3Rvcl9xdWVyeS5ocHAKK2luZGV4IDY1NjBlYWE1Li41YWIxZmZkYSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvdmVjdG9yX3F1ZXJ5LmhwcAorKysrIGIvZ2xtL2d0eC92ZWN0b3JfcXVlcnkuaHBwCitAQCAtMTcsNiArMTcsNyBAQAorICNpbmNsdWRlIDxjZmxvYXQ+CisgI2luY2x1ZGUgPGxpbWl0cz4KKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3ZlY3Rvcl9xdWVyeSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvd3JhcC5ocHAgYi9nbG0vZ3R4L3dyYXAuaHBwCitpbmRleCAyYzRiNTVkZi4uNWJmMjZhMzMgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3dyYXAuaHBwCisrKysgYi9nbG0vZ3R4L3dyYXAuaHBwCitAQCAtMTYsNiArMTYsNyBAQAorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorICNpbmNsdWRlICIuLi9ndGMvdmVjMS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF93cmFwIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nbG0vZmlsZXMvMDAwMi1nbG0taW5zdGFsbC1oZWFkZXJzLW9ubHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nbG0vZmlsZXMvMDAwMi1nbG0taW5zdGFsbC1oZWFkZXJzLW9ubHkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWJlMzMxOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dsbS9maWxlcy8wMDAyLWdsbS1pbnN0YWxsLWhlYWRlcnMtb25seS5wYXRjaApAQCAtMCwwICsxLDQ2IEBACitGcm9tIDdmZGQzNmQ3NDk2MjM4ZTAzZTQzZmNjMzI4MzlmNzU1ODgxMTZjNWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogRnJpLCAxNiBNYXIgMjAxOCAxNTo0NDo0OCArMDEwMAorU3ViamVjdDogW1BBVENIIDIvMl0gZ2xtOiBpbnN0YWxsIGhlYWRlcnMgb25seQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitQbGF1c2liaWxpdHkgY2hlY2sgaW4gcm9vdCBzb3VyY2UgcGF0aAorCiskIGZpbmQgZ2xtIC10eXBlIGYgISAtbmFtZSAnKi5ocHAnICEgLW5hbWUgJyouaCcgISAtbmFtZSAnKi5pbmwnCitnbG0vZGV0YWlsL2dsbS5jcHAKK2dsbS9kZXRhaWwvZHVtbXkuY3BwCitnbG0vZXhwZXJpbWVudGFsLmhwcC5pbgorZ2xtL0NNYWtlTGlzdHMudHh0CisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CisKK1VwdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgWzFdCisKK1sxXSBodHRwczovL2dpdGh1Yi5jb20vZy10cnVjL2dsbS9wdWxsLzc0MQorLS0tCisgQ01ha2VMaXN0cy50eHQgfCA3ICsrKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRleCBiZDRkZDY1NC4uMTEzZGQ3MzUgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC0xNzEsNyArMTcxLDEyIEBAIG9wdGlvbihHTE1fSU5TVEFMTF9FTkFCTEUgIkdMTSBpbnN0YWxsIiBPTikKKyAKKyBzZXQoR0xNX0lOU1RBTExfQ09ORklHRElSICIke0NNQUtFX0lOU1RBTExfTElCRElSfS9jbWFrZS9nbG0iKQorIGlmIChHTE1fSU5TVEFMTF9FTkFCTEUpCistCWluc3RhbGwoRElSRUNUT1JZIGdsbSBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0pCisrCWluc3RhbGwoRElSRUNUT1JZIGdsbQorKwkJREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9CisrCQlGSUxFU19NQVRDSElORworKwkJCVBBVFRFUk4gIiouaCIKKysJCQlQQVRURVJOICIqLmhwcCIKKysJCQlQQVRURVJOICIqLmlubCIpCisgCWluc3RhbGwoRklMRVMgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9leHBlcmltZW50YWwuaHBwIiBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0vZ2xtKQorIGVuZGlmKCkKKyAKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dsbS9nbG1fMC45LjguNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dsbS9nbG1fMC45LjguNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE3NGYyYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nbG0vZ2xtXzAuOS44LjUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1TVU1NQVJZID0gIk9wZW5HTCBNYXRoZW1hdGljcyBMaWJyYXJ5IgotREVTQ1JJUFRJT04gPSAiT3BlbkdMIE1hdGhlbWF0aWNzIChHTE0pIGlzIGEgaGVhZGVyIG9ubHkgQysrIFwKLW1hdGhlbWF0aWNzIGxpYnJhcnkgZm9yIGdyYXBoaWNzIHNvZnR3YXJlIGJhc2VkIG9uIHRoZSBPcGVuR0wgXAotU2hhZGluZyBMYW5ndWFnZSAoR0xTTCkgc3BlY2lmaWNhdGlvbnMuIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9nbG0uZy10cnVjLm5ldCIKLUJVR1RSQUNLRVIgPSAiaHR0cHM6Ly9naXRodWIuY29tL2ctdHJ1Yy9nbG0vaXNzdWVzIgotCi1TRUNUSU9OID0gImxpYnMiCi0KLUxJQ0VOU0UgPSAiTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vY29weWluZy50eHQ7bWQ1PTQ0MzE2MDZkMTQ0MjUyMTQzYzljM2RmMzg0YTc0Y2FkIgotCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vZy10cnVjL2dsbTticmFuY2g9MC45LjgiCi1TUkNSRVYgPSAiNmZhMjAzZWViN2ZiY2JiNmY2MjA1MDFmYWQ0MDM1OWM4YTQ1NjA0OSIKLVMgPSAiJHtXT1JLRElSfS9naXQiCi0KLWluaGVyaXQgY21ha2UKLQotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vY21ha2UiCi1SREVQRU5EU18ke1BOfS1kZXYgPSAiIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dsbS9nbG1fMC45LjktYTIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nbG0vZ2xtXzAuOS45LWEyLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlMmVlMjMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nbG0vZ2xtXzAuOS45LWEyLmJiCkBAIC0wLDAgKzEsMjggQEAKK1NVTU1BUlkgPSAiT3BlbkdMIE1hdGhlbWF0aWNzIExpYnJhcnkiCitERVNDUklQVElPTiA9ICJPcGVuR0wgTWF0aGVtYXRpY3MgKEdMTSkgaXMgYSBoZWFkZXIgb25seSBDKysgXAorbWF0aGVtYXRpY3MgbGlicmFyeSBmb3IgZ3JhcGhpY3Mgc29mdHdhcmUgYmFzZWQgb24gdGhlIE9wZW5HTCBcCitTaGFkaW5nIExhbmd1YWdlIChHTFNMKSBzcGVjaWZpY2F0aW9ucy4iCitIT01FUEFHRSA9ICJodHRwczovL2dsbS5nLXRydWMubmV0IgorQlVHVFJBQ0tFUiA9ICJodHRwczovL2dpdGh1Yi5jb20vZy10cnVjL2dsbS9pc3N1ZXMiCisKK1NFQ1RJT04gPSAibGlicyIKKworTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9yZWFkbWUubWQ7YmVnaW5saW5lPTIxO2VuZGxpbmU9MjI7bWQ1PTMwNzViNTcyN2QzNmYyOWVkY2NmOTdiOTNlNzJiNzkwIgorCitTUkNfVVJJID0gIiBcCisgICAgZ2l0Oi8vZ2l0aHViLmNvbS9nLXRydWMvZ2xtO2JyYW5jaD1tYXN0ZXIgXAorICAgIGZpbGU6Ly8wMDAxLU1ha2UtR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwtYS1jb25maWd1cmFibGUtb3B0aW9uLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMi1nbG0taW5zdGFsbC1oZWFkZXJzLW9ubHkucGF0Y2ggXAorIgorU1JDUkVWID0gImZjYmVkZjUwNThlZjg2MTNkZDAyYWFjNjJlZjAwZDU1ZGNmZWFkZDciCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitpbmhlcml0IGNtYWtlCisKK0VYVFJBX09FQ01BS0UgPSAiLURHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTD1PTiIKKworRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vY21ha2UiCitSREVQRU5EU18ke1BOfS1kZXYgPSAiIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvZ3Bob3RvMi0yLjUuOC8wMDAxLWNvbmZpZ3VyZS5hYy1yZW1vdmUtQU1fUE9fU1VCRElSUy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvZ3Bob3RvMi8wMDAxLWNvbmZpZ3VyZS5hYy1yZW1vdmUtQU1fUE9fU1VCRElSUy5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9ncGhvdG8yLTIuNS44LzAwMDEtY29uZmlndXJlLmFjLXJlbW92ZS1BTV9QT19TVUJESVJTLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2dwaG90bzIvMDAwMS1jb25maWd1cmUuYWMtcmVtb3ZlLUFNX1BPX1NVQkRJUlMucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvZ3Bob3RvMi0yLjUuOC8wMDAyLUxvb2stZm9yLXBvcHQtd2l0aC1HUF9DSEVDS19MSUJSQVJZLWZ1bmN0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9ncGhvdG8yLzAwMDItTG9vay1mb3ItcG9wdC13aXRoLUdQX0NIRUNLX0xJQlJBUlktZnVuY3Rpb24ucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvZ3Bob3RvMi0yLjUuOC8wMDAyLUxvb2stZm9yLXBvcHQtd2l0aC1HUF9DSEVDS19MSUJSQVJZLWZ1bmN0aW9uLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2dwaG90bzIvMDAwMi1Mb29rLWZvci1wb3B0LXdpdGgtR1BfQ0hFQ0tfTElCUkFSWS1mdW5jdGlvbi5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9ncGhvdG8yXzIuNS4xNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvZ3Bob3RvMl8yLjUuMTQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVhZDdmNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvZ3Bob3RvMl8yLjUuMTQuYmIKQEAgLTAsMCArMSwyMiBAQAorU1VNTUFSWSA9ICJncGhvdG8yIC0gYSBjb21tYW5kLWxpbmUgZnJvbnRlbmQgdG8gbGliZ3Bob3RvMiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3Bob3RvLmNvbS8iCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NTk1MzBiZGYzMzY1OWIyOWU3M2Q0YWRiOWY5ZjY1NTIiCisKK0RFUEVORFMgPSAibGliZ3Bob3RvMiBwb3B0IHJlYWRsaW5lIgorUkRFUEVORFNfZ3Bob3RvMiA9ICJsaWJncGhvdG8yIgorCitTUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9ncGhvdG8vZ3Bob3RvMi0ke1BWfS50YXIuYnoyO25hbWU9Z3Bob3RvMiBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS5hYy1yZW1vdmUtQU1fUE9fU1VCRElSUy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAyLUxvb2stZm9yLXBvcHQtd2l0aC1HUF9DSEVDS19MSUJSQVJZLWZ1bmN0aW9uLnBhdGNoIFwKKyIKKworU1JDX1VSSVtncGhvdG8yLm1kNXN1bV0gPSAiNmM2YTIxYjVlODc5MzMwY2RkNzFlZjkyZGNlMzYzOTkiCitTUkNfVVJJW2dwaG90bzIuc2hhMjU2c3VtXSA9ICI5MzAyZDAyZmI0NzJkNDkzNjk4ODM4MmI3Mjc3Y2NkYzRlZGFmN2VkZTU2YzQ5MDI3ODkxMmZmZDA2Mjc2OTljIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ2V0dGV4dAorCitFWFRSQV9PRUNPTkYgKz0gIi0td2l0aC1qcGVnLXByZWZpeD0ke1NUQUdJTkdfSU5DRElSfSBcCisgICAgICAgICAgICAgICAgIC0td2l0aG91dC1jZGsgXAorIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2dwaG90bzJfMi41LjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2dwaG90bzJfMi41LjguYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyZDI4M2IuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9ncGhvdG8yXzIuNS44LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotU1VNTUFSWSA9ICJncGhvdG8yIC0gYSBjb21tYW5kLWxpbmUgZnJvbnRlbmQgdG8gbGliZ3Bob3RvMiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3Bob3RvLmNvbS8iCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NTk1MzBiZGYzMzY1OWIyOWU3M2Q0YWRiOWY5ZjY1NTIiCi0KLURFUEVORFMgPSAibGliZ3Bob3RvMiBwb3B0IHJlYWRsaW5lIgotUkRFUEVORFNfZ3Bob3RvMiA9ICJsaWJncGhvdG8yIgotCi1TUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9ncGhvdG8vZ3Bob3RvMi0ke1BWfS50YXIuYnoyO25hbWU9Z3Bob3RvMiBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS5hYy1yZW1vdmUtQU1fUE9fU1VCRElSUy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAyLUxvb2stZm9yLXBvcHQtd2l0aC1HUF9DSEVDS19MSUJSQVJZLWZ1bmN0aW9uLnBhdGNoIFwKLSIKLQotU1JDX1VSSVtncGhvdG8yLm1kNXN1bV0gPSAiYmFlMzY5YWVlNjg4MWU1OTBjNWM5MWJkYmIxMWE1ZjgiCi1TUkNfVVJJW2dwaG90bzIuc2hhMjU2c3VtXSA9ICJhOWFiY2QxNWQ5NWYyMDUzMThkMTdlM2FjMTJhZjdjZTUyM2QyYmM0OTQzNzA5ZDUwYjBhMTJjMzBjYzVlZTRkIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ2V0dGV4dAotCi1FWFRSQV9PRUNPTkYgKz0gIi0td2l0aC1qcGVnLXByZWZpeD0ke1NUQUdJTkdfSU5DRElSfSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aG91dC1jZGsgXAotIgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvMDAwMS1zY3JpcHRzLXJlbW92ZS1iYXNoaXNtcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC8wMDAxLXNjcmlwdHMtcmVtb3ZlLWJhc2hpc21zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTBkYzg3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC8wMDAxLXNjcmlwdHMtcmVtb3ZlLWJhc2hpc21zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLUZyb20gYzAwZTYzZTk3ZDg3MTg4MzZiYTAxMWQ5MTcyMTI4NzMyZWVjZjAwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IElzbW8gUHV1c3RpbmVuIDxpc21vLnB1dXN0aW5lbkBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDI0IEphbiAyMDE3IDIyOjI0OjA1ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNjcmlwdHM6IHJlbW92ZSBiYXNoaXNtcy4KLQotQ29udmVydCBiYXNoIHNjcmlwdHMgdG8gbW9yZSBnZW5lcmljIHNoZWxsIHNjcmlwdHMuIFRoaXMgcmVtb3ZlcyB0aGUKLXN0cmljdCBiYXNoIGRlcGVuZGVuY3kgYW5kIHRoZSBzY3JpcHRzIHNob3VsZCBub3cgcnVuIHdpdGggYW55IHBvc2l4Ci1zaGVsbC4gQWxzbyBmaXggdGhlIGlzc3VlcyByZXBvcnRlZCBieSBzaGVsbGNoZWNrIHdoaWxlIGF0IGl0LgotCi1VcHN0cmVhbS1zdGF0dXM6IEFjY2VwdGVkIFtodHRwczovL2dpdGh1Yi5jb20vZ3Bob3RvL2xpYmdwaG90bzIvY29tbWl0LzM5YjQzOTU1MzIwNThjMGVkYjlhNTZkMGZmMDRlNDhhNDcyZTQ3NDNdCi0KLS0tLQotIHBhY2thZ2luZy9nZW5lcmljL2NoZWNrLXB0cC1jYW1lcmEgICAgICAgICAgfCAxMiArKysrKystLS0tLS0KLSBwYWNrYWdpbmcvbGludXgtaG90cGx1Zy9ncGhvdG8tc2V0LXByb2NwZXJtIHwgMTQgKysrKysrKy0tLS0tLS0KLSBwYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0uY29uc29sZSAgICAgIHwgIDQgKystLQotIHBhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS5ncm91cCAgICAgICAgfCAgMiArLQotIHBhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS51c2VyICAgICAgICAgfCAgMiArLQotIHBhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS54MTEtYXBwICAgICAgfCAgNCArKy0tCi0gNiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3BhY2thZ2luZy9nZW5lcmljL2NoZWNrLXB0cC1jYW1lcmEgYi9wYWNrYWdpbmcvZ2VuZXJpYy9jaGVjay1wdHAtY2FtZXJhCi1pbmRleCAxNzkzZmM4Li5iYzNjNmFjIDEwMDY0NAotLS0tIGEvcGFja2FnaW5nL2dlbmVyaWMvY2hlY2stcHRwLWNhbWVyYQotKysrIGIvcGFja2FnaW5nL2dlbmVyaWMvY2hlY2stcHRwLWNhbWVyYQotQEAgLTEsNCArMSw0IEBACi0tIyEvYmluL2Jhc2gKLSsjIS9iaW4vc2gKLSAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotQEAgLTIwLDEzICsyMCwxMyBAQCBJTlRFUkZBQ0U9IiR7MTotMDYvMDEvMDF9IgotIAotIEJBU0VOQU1FPSR7REVWUEFUSCMjKi99Ci0gZm9yIGQgaW4gL3N5cy8ke0RFVlBBVEh9LyR7QkFTRU5BTUV9Oio7IGRvCi0tCVtbIC1kICR7ZH0gXV0gfHwgY29udGludWUKLS0JSU5URVJGQUNFSUQ9IiQoPCAke2R9L2JJbnRlcmZhY2VDbGFzcykiCi0tCUlOVEVSRkFDRUlEPSIke0lOVEVSRkFDRUlEfS8kKDwgJHtkfS9iSW50ZXJmYWNlU3ViQ2xhc3MpIgotLQlJTlRFUkZBQ0VJRD0iJHtJTlRFUkZBQ0VJRH0vJCg8ICR7ZH0vYkludGVyZmFjZVByb3RvY29sKSIKLSsJWyAtZCAiJHtkfSIgXSB8fCBjb250aW51ZQotKwlJTlRFUkZBQ0VJRD0iJChjYXQgIiR7ZH0iL2JJbnRlcmZhY2VDbGFzcykiCi0rCUlOVEVSRkFDRUlEPSIke0lOVEVSRkFDRUlEfS8kKGNhdCAiJHtkfSIvYkludGVyZmFjZVN1YkNsYXNzKSIKLSsJSU5URVJGQUNFSUQ9IiR7SU5URVJGQUNFSUR9LyQoY2F0ICIke2R9Ii9iSW50ZXJmYWNlUHJvdG9jb2wpIgotIAotIAkjZWNobyAke2R9OiAke0lOVEVSRkFDRUlEfQotLQlpZiBbWyAke0lOVEVSRkFDRX0gPT0gJHtJTlRFUkZBQ0VJRH0gXV07IHRoZW4KLSsJaWYgWyAiJHtJTlRFUkZBQ0V9IiA9ICIke0lOVEVSRkFDRUlEfSIgXTsgdGhlbgotIAkJIyBGb3VuZCBpbnRlcmZhY2UKLSAJCWV4aXQgMAotIAlmaQotZGlmZiAtLWdpdCBhL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL2dwaG90by1zZXQtcHJvY3Blcm0gYi9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy9ncGhvdG8tc2V0LXByb2NwZXJtCi1pbmRleCBkNzJlZTY4Li45NzdjYmY1IDEwMDY0NAotLS0tIGEvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvZ3Bob3RvLXNldC1wcm9jcGVybQotKysrIGIvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvZ3Bob3RvLXNldC1wcm9jcGVybQotQEAgLTEsNCArMSw0IEBACi0tIyEvYmluL2Jhc2gKLSsjIS9iaW4vc2gKLSAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotQEAgLTE4LDIyICsxOCwyMiBAQAotICMgVGhpcyBpcyB0YWtlbiBmcm9tIEZlZG9yYSBDb3JlIGdwaG90bzIgcGFja2FnZS4KLSAjIGh0dHA6Ly9jdnMuZmVkb3JhLnJlZGhhdC5jb20vdmlld2N2cy8qY2hlY2tvdXQqL2RldmVsL2dwaG90bzIvZ3Bob3RvLXNldC1wcm9jcGVybQotIAotLWNvbnNvbGVfdXNlcj1gY2F0IC92YXIvcnVuL2NvbnNvbGUvY29uc29sZS5sb2NrYCAKLStjb25zb2xlX3VzZXI9JChjYXQgL3Zhci9ydW4vY29uc29sZS9jb25zb2xlLmxvY2spCi0gCi0gaWYgWyAteiAiJGNvbnNvbGVfdXNlciIgXSA7IHRoZW4KLSAgIGV4aXQgMSAKLSBmaQotIAotLWlmIFsgLXogIiRIQUxfUFJPUF9VU0JfQlVTX05VTUJFUiIgLW8gLXogIiRIQUxfUFJPUF9VU0JfTElOVVhfREVWSUNFX05VTUJFUiIgXSA7IHRoZW4KLStpZiBbIC16ICIkSEFMX1BST1BfVVNCX0JVU19OVU1CRVIiIF0gfHwgWyAteiAiJEhBTF9QUk9QX1VTQl9MSU5VWF9ERVZJQ0VfTlVNQkVSIiBdIDsgdGhlbgotICAgZXhpdCAxIAotIGZpCi0gCi0taWYgWyAkSEFMX1BST1BfVVNCX0JVU19OVU1CRVIgLWx0IDAgLW8gICRIQUxfUFJPUF9VU0JfTElOVVhfREVWSUNFX05VTUJFUiAtbHQgMCBdIDsgdGhlbgotK2lmIFsgIiRIQUxfUFJPUF9VU0JfQlVTX05VTUJFUiIgLWx0IDAgXSB8fCBbICIkSEFMX1BST1BfVVNCX0xJTlVYX0RFVklDRV9OVU1CRVIiIC1sdCAwIF0gOyB0aGVuCi0gICBleGl0IDEgCi0gZmkKLSAKLSAKLS1idXNfbnVtPWBwcmludGYgJS4zdSAkSEFMX1BST1BfVVNCX0JVU19OVU1CRVJgCi0tZGV2X251bT1gcHJpbnRmICUuM3UgJEhBTF9QUk9QX1VTQl9MSU5VWF9ERVZJQ0VfTlVNQkVSYAotK2J1c19udW09JChwcmludGYgJS4zdSAiJEhBTF9QUk9QX1VTQl9CVVNfTlVNQkVSIikKLStkZXZfbnVtPSQocHJpbnRmICUuM3UgIiRIQUxfUFJPUF9VU0JfTElOVVhfREVWSUNFX05VTUJFUiIpCi0gCi0tY2hvd24gJGNvbnNvbGVfdXNlciAvcHJvYy9idXMvdXNiLyRidXNfbnVtLyRkZXZfbnVtIAotK2Nob3duICIkY29uc29sZV91c2VyIiAvcHJvYy9idXMvdXNiLyIkYnVzX251bSIvIiRkZXZfbnVtIgotZGlmZiAtLWdpdCBhL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS5jb25zb2xlIGIvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLmNvbnNvbGUKLWluZGV4IGQ3MjEyOGYuLjdhYzZkYzUgMTAwNzU1Ci0tLS0gYS9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0uY29uc29sZQotKysrIGIvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLmNvbnNvbGUKLUBAIC0xLDQgKzEsNCBAQAotLSMhL2Jpbi9iYXNoCi0rIyEvYmluL3NoCi0gIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLUBAIC01MCw3ICs1MCw3IEBAIHRoZW4KLSAgICAgICAgIC92YXIvbG9jay9jb25zb2xlLmxvY2sKLSAgICAgZG8KLSAgICAgICAgIGlmIFsgLWYgIiRjb25sb2NrIiBdOyB0aGVuCi0tCSAgICBDT05TT0xFT1dORVI9YGNhdCAkY29ubG9ja2AKLSsgICAgICAgICAgICBDT05TT0xFT1dORVI9JChjYXQgJGNvbmxvY2spCi0gICAgICAgICBmaQotICAgICBkb25lCi0gICAgIGlmIFsgLW4gIiRDT05TT0xFT1dORVIiIF0KLWRpZmYgLS1naXQgYS9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0uZ3JvdXAgYi9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0uZ3JvdXAKLWluZGV4IGY5NmMzM2QuLjg3NjFmYWMgMTAwNzU1Ci0tLS0gYS9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0uZ3JvdXAKLSsrKyBiL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS5ncm91cAotQEAgLTEsNCArMSw0IEBACi0tIyEvYmluL2Jhc2gKLSsjIS9iaW4vc2gKLSAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotZGlmZiAtLWdpdCBhL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS51c2VyIGIvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLnVzZXIKLWluZGV4IGM0NmYxNTUuLmEzYmE3MWEgMTAwNjQ0Ci0tLS0gYS9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0udXNlcgotKysrIGIvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLnVzZXIKLUBAIC0xLDQgKzEsNCBAQAotLSMhL2Jpbi9iYXNoCi0rIyEvYmluL3NoCi0gIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLWRpZmYgLS1naXQgYS9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0ueDExLWFwcCBiL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS54MTEtYXBwCi1pbmRleCAwMjNhZTliLi42MThlN2RiIDEwMDY0NAotLS0tIGEvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLngxMS1hcHAKLSsrKyBiL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS54MTEtYXBwCi1AQCAtMSw0ICsxLDQgQEAKLS0jIS9iaW4vYmFzaAotKyMhL2Jpbi9zaAotICMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi1AQCAtNjksNyArNjksNyBAQCB0aGVuCi0gICAgIGlmIFsgIiR7VVNFUn0iICE9ICJyb290IiBdCi0gICAgIHRoZW4KLSAJIyB3ZSBkb24ndCB3YW50IHRvIHJ1biB0aGlzIGFzIHJvb3QuIGRlZmluaXRlbHkgbm90LgotLQljZCAiJHtESVJFQ1RPUll9IgotKwljZCAiJHtESVJFQ1RPUll9IiB8fCBleGl0IDEKLSAJdXNyaG9tZT1+JHtVU0VSfQotIAkiJHtTVX0iICIke1VTRVJ9IiAtYyAiJHtFTlZ9IERJU1BMQVk9JHtESVNQTEFZfSBIT01FPSR7dXNyaG9tZX0gJHtYMTFfQVBQfSIKLSAgICAgZmkKLS0tIAotMi45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLTIuNS44LzAwMDItY29ycmVjdC1qcGVnLW1lbXNyY2Rlc3Qtc3VwcG9ydC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC8wMDAyLWNvcnJlY3QtanBlZy1tZW1zcmNkZXN0LXN1cHBvcnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmMmQ4NmQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLTIuNS44LzAwMDItY29ycmVjdC1qcGVnLW1lbXNyY2Rlc3Qtc3VwcG9ydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS0tLSBsaWJncGhvdG8yLTIuNS44L2NhbWxpYnMvYXgyMDMvanBlZ19tZW1zcmNkZXN0Lmgub3JpZwkyMDE2LTA2LTE1IDA5OjAzOjIwLjYyNTc3NDY4NCAtMDQwMAotKysrIGxpYmdwaG90bzItMi41LjgvY2FtbGlicy9heDIwMy9qcGVnX21lbXNyY2Rlc3QuaAkyMDE2LTA2LTE1IDA5OjAzOjQ3LjA0OTc3NDE0OCAtMDQwMAotQEAgLTEsNSArMSw3IEBACi0gI2luY2x1ZGUgPGpwZWdsaWIuaD4KLSAKLSsjaWYgSlBFR19MSUJfVkVSU0lPTiA8IDgwICYmICFkZWZpbmVkKE1FTV9TUkNEU1RfU1VQUE9SVEVEKQotKwotIHZvaWQKLSBqcGVnX21lbV9zcmMgKGpfZGVjb21wcmVzc19wdHIgY2luZm8sIHVuc2lnbmVkIGNoYXIgKiBidWZmZXIsCi0gCXVuc2lnbmVkIGxvbmcgYnVmc2l6ZSk7Ci1AQCAtNywzICs5LDUgQEAKLSB2b2lkCi0ganBlZ19tZW1fZGVzdCAoal9jb21wcmVzc19wdHIgY2luZm8sIHVuc2lnbmVkIGNoYXIgKiogb3V0YnVmZmVyLAotIAl1bnNpZ25lZCBsb25nICogb3V0c2l6ZSk7Ci0rCi0rI2VuZGlmCi0tLS0gbGliZ3Bob3RvMi0yLjUuOC9jYW1saWJzL2F4MjAzL2pwZWdfbWVtc3JjZGVzdC5jLm9yaWcJMjAxNi0wNi0xNSAwOTowMzo1OC42ODk3NzM5MTMgLTA0MDAKLSsrKyBsaWJncGhvdG8yLTIuNS44L2NhbWxpYnMvYXgyMDMvanBlZ19tZW1zcmNkZXN0LmMJMjAxNi0wNi0xNSAwOTowNDoxNy43Njk3NzM1MjYgLTA0MDAKLUBAIC0yNiw3ICsyNiw3IEBACi0gCi0gLyogbGlianBlZzggYW5kIGxhdGVyIGNvbWUgd2l0aCB0aGVpciBvd24gKEFQSSBjb21wYXRpYmxlKSBtZW1vcnkgc291cmNlCi0gICAgYW5kIGRlc3QgKi8KLS0jaWYgSlBFR19MSUJfVkVSU0lPTiA8IDgwCi0rI2lmIEpQRUdfTElCX1ZFUlNJT04gPCA4MCAgJiYgIWRlZmluZWQoTUVNX1NSQ0RTVF9TVVBQT1JURUQpCi0gCi0gLyogRXhwYW5kZWQgZGF0YSBzb3VyY2Ugb2JqZWN0IGZvciBtZW1vcnkgaW5wdXQgKi8KLSAKLS0tLSBsaWJncGhvdG8yLTIuNS44L2NhbWxpYnMvamwyMDA1Yy9qcGVnX21lbXNyY2Rlc3QuaC5vcmlnCTIwMTYtMDYtMTUgMDk6MDU6MDEuODkzNzcyNjMyIC0wNDAwCi0rKysgbGliZ3Bob3RvMi0yLjUuOC9jYW1saWJzL2psMjAwNWMvanBlZ19tZW1zcmNkZXN0LmgJMjAxNi0wNi0xNSAwOTowNToxNy40MzM3NzIzMTggLTA0MDAKLUBAIC0xLDUgKzEsNyBAQAotICNpbmNsdWRlIDxqcGVnbGliLmg+Ci0gCi0rI2lmIEpQRUdfTElCX1ZFUlNJT04gPCA4MCAmJiAhZGVmaW5lZChNRU1fU1JDRFNUX1NVUFBPUlRFRCkKLSsKLSB2b2lkCi0ganBlZ19tZW1fc3JjIChqX2RlY29tcHJlc3NfcHRyIGNpbmZvLCB1bnNpZ25lZCBjaGFyICogYnVmZmVyLAotIAl1bnNpZ25lZCBsb25nIGJ1ZnNpemUpOwotQEAgLTcsMyArOSw1IEBACi0gdm9pZAotIGpwZWdfbWVtX2Rlc3QgKGpfY29tcHJlc3NfcHRyIGNpbmZvLCB1bnNpZ25lZCBjaGFyICoqIG91dGJ1ZmZlciwKLSAJdW5zaWduZWQgbG9uZyAqIG91dHNpemUpOwotKwotKyNlbmRpZgotLS0tIGxpYmdwaG90bzItMi41LjgvY2FtbGlicy9qbDIwMDVjL2pwZWdfbWVtc3JjZGVzdC5jLm9yaWcJMjAxNi0wNi0xNSAwOTowNDo0Mi42NDE3NzMwMjIgLTA0MDAKLSsrKyBsaWJncGhvdG8yLTIuNS44L2NhbWxpYnMvamwyMDA1Yy9qcGVnX21lbXNyY2Rlc3QuYwkyMDE2LTA2LTE1IDA5OjA0OjQ4LjY1Nzc3MjkwMSAtMDQwMAotQEAgLTI2LDcgKzI2LDcgQEAKLSAKLSAvKiBsaWJqcGVnOCBhbmQgbGF0ZXIgY29tZSB3aXRoIHRoZWlyIG93biAoQVBJIGNvbXBhdGlibGUpIG1lbW9yeSBzb3VyY2UKLSAgICBhbmQgZGVzdCAqLwotLSNpZiBKUEVHX0xJQl9WRVJTSU9OIDwgODAKLSsjaWYgSlBFR19MSUJfVkVSU0lPTiA8IDgwICAmJiAhZGVmaW5lZChNRU1fU1JDRFNUX1NVUFBPUlRFRCkKLSAKLSAvKiBFeHBhbmRlZCBkYXRhIHNvdXJjZSBvYmplY3QgZm9yIG1lbW9yeSBpbnB1dCAqLwotIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLTIuNS44L2F2b2lkX3VzaW5nX3NwcmludGYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvYXZvaWRfdXNpbmdfc3ByaW50Zi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmJhNGM2OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvYXZvaWRfdXNpbmdfc3ByaW50Zi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCwwIEBACi1Gcm9tIDRhZGZlNWE2YzlkYjA3NTM3ZGYzMDJmM2MxNzcxMzUxNWJmMjNhMmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KLURhdGU6IFNhdCwgMTEgSnVsIDIwMTUgMDk6Mzg6MTMgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gYXZvaWQgdXNlIG9mIHNwcmludGYgdG8gY29udmVydCAlJSB0byAlLCBkdXBsaWNhdGUgdGhlIG1hY3JvCi0KLWdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmNvZGUuc2YubmV0L3AvZ3Bob3RvL2NvZGUvdHJ1bmsvbGliZ3Bob3RvMkAxNTQ5MCA2N2VkNzc3OC03Mzg4LTQ0YWItOTBjZi0wYTI5MWY2NWY1N2MKLS0tLQotIGNhbWxpYnMvcHRwMi9jaGRrLmMgICAgIHwgIDggKystLS0KLSBjYW1saWJzL3B0cDIvY2hka19wdHAuaCB8IDgyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9jYW1saWJzL3B0cDIvY2hkay5jIGIvY2FtbGlicy9wdHAyL2NoZGsuYwotaW5kZXggNWZiODRlYS4uM2I4YTk5NSAxMDA2NDQKLS0tLSBhL2NhbWxpYnMvcHRwMi9jaGRrLmMKLSsrKyBiL2NhbWxpYnMvcHRwMi9jaGRrLmMKLUBAIC0xMTE5LDE4ICsxMTE5LDE0IEBAIGNoZGtfY2FtZXJhX2NhcHR1cmUgKENhbWVyYSAqY2FtZXJhLCBDYW1lcmFDYXB0dXJlVHlwZSB0eXBlLCBDYW1lcmFGaWxlUGF0aCAqcGF0Ci0gCWludAkJcmV0LCByZXRpbnQ7Ci0gCWNoYXIJCSp0YWJsZSwgKnM7Ci0gCVBUUFBhcmFtcwkqcGFyYW1zID0gJmNhbWVyYS0+cGwtPnBhcmFtczsKLS0JY2hhcgkJKmx1YTsKLS0JY29uc3QgY2hhcgkqbHVhc2NyaXB0ID0JUFRQX0NIREtfTFVBX1NFUklBTElaRV9NU0dTIFwKLSsJY29uc3QgY2hhcgkqbHVhc2NyaXB0ID0gUFRQX0NIREtfTFVBX1NFUklBTElaRV9NU0dTX1NJTVBMRVFVT1RFIFwKLSAJCQkJUFRQX0NIREtfTFVBX1JMSUJfU0hPT1QJXAotIAkJCQkicmV0dXJuIHJsaWJfc2hvb3Qoe2luZm89dHJ1ZX0pO1xuIjsKLSAKLSAJcmV0ID0gIGNhbWVyYV9wcmVwYXJlX2NoZGtfY2FwdHVyZShjYW1lcmEsIGNvbnRleHQpOwotIAlpZiAocmV0ICE9IEdQX09LKSByZXR1cm4gcmV0OwotIAotLQlsdWEgPSBtYWxsb2Moc3RybGVuKGx1YXNjcmlwdCkrMSk7Ci0tCXNwcmludGYobHVhLGx1YXNjcmlwdCk7IC8qIFRoaXMgZXhwYW5kcyB0aGUgJXEgaW5zaWRlIHRoZSBzdHJpbmcgdG9vIC4uLiBkbyBub3Qgb3B0aW1pemUgYXdheS4gKi8KLS0JcmV0ID0gY2hka19nZW5lcmljX3NjcmlwdF9ydW4gKHBhcmFtcywgbHVhLCAmdGFibGUsICZyZXRpbnQsIGNvbnRleHQpOwotLQlmcmVlIChsdWEpOwotKwlyZXQgPSBjaGRrX2dlbmVyaWNfc2NyaXB0X3J1biAocGFyYW1zLCBsdWFzY3JpcHQsICZ0YWJsZSwgJnJldGludCwgY29udGV4dCk7Ci0gCUdQX0xPR19EKCJybGliX3Nob290IHJldHVybmVkIHRhYmxlICVzLCByZXRpbnQgJWRcbiIsIHRhYmxlLCByZXRpbnQpOwotIAlzID0gc3Ryc3RyKHRhYmxlLCAiZXhwPSIpOwotIAlpZiAocykgewotZGlmZiAtLWdpdCBhL2NhbWxpYnMvcHRwMi9jaGRrX3B0cC5oIGIvY2FtbGlicy9wdHAyL2NoZGtfcHRwLmgKLWluZGV4IGQxMWUwYjcuLjY1ZGNmZDcgMTAwNjQ0Ci0tLS0gYS9jYW1saWJzL3B0cDIvY2hka19wdHAuaAotKysrIGIvY2FtbGlicy9wdHAyL2NoZGtfcHRwLmgKLUBAIC0xOTgsMTAgKzE5OCw5MiBAQCBmdW5jdGlvbiBzZXJpYWxpemUodixvcHRzKVxuXAotIAlyZXR1cm4gdGFibGUuY29uY2F0KHIpXG5cCi0gZW5kXG4iCi0gCi0rI2RlZmluZSBQVFBfQ0hES19MVUFfU0VSSUFMSVpFX1NJTVBMRVFVT1RFICJcblwKLStzZXJpYWxpemVfciA9IGZ1bmN0aW9uKHYsb3B0cyxyLHNlZW4sZGVwdGgpXG5cCi0rCWxvY2FsIHZ0ID0gdHlwZSh2KVxuXAotKwlpZiB2dCA9PSAnbmlsJyBvciAgdnQgPT0gJ2Jvb2xlYW4nIG9yIHZ0ID09ICdudW1iZXInIHRoZW5cblwKLSsJCXRhYmxlLmluc2VydChyLHRvc3RyaW5nKHYpKVxuXAotKwkJcmV0dXJuXG5cCi0rCWVuZFxuXAotKwlpZiB2dCA9PSAnc3RyaW5nJyB0aGVuXG5cCi0rCQl0YWJsZS5pbnNlcnQocixzdHJpbmcuZm9ybWF0KCclcScsdikpXG5cCi0rCQlyZXR1cm5cblwKLSsJZW5kXG5cCi0rCWlmIHZ0ID09ICd0YWJsZScgdGhlblxuXAotKwkJaWYgbm90IGRlcHRoIHRoZW5cblwKLSsJCQlkZXB0aCA9IDFcblwKLSsJCWVuZFxuXAotKwkJaWYgZGVwdGggPj0gb3B0cy5tYXhkZXB0aCB0aGVuXG5cCi0rCQkJZXJyb3IoJ3NlcmlhbGl6ZTogbWF4IGRlcHRoJylcblwKLSsJCWVuZFxuXAotKwkJaWYgbm90IHNlZW4gdGhlblxuXAotKwkJCXNlZW49e31cblwKLSsJCWVsc2VpZiBzZWVuW3ZdIHRoZW5cblwKLSsJCQlpZiBvcHRzLmVycl9jeWNsZSB0aGVuXG5cCi0rCQkJCWVycm9yKCdzZXJpYWxpemU6IGN5Y2xlJylcblwKLSsJCQllbHNlXG5cCi0rCQkJCXRhYmxlLmluc2VydChyLCdcImN5Y2xlOicuLnRvc3RyaW5nKHYpLi4nXCInKVxuXAotKwkJCQlyZXR1cm5cblwKLSsJCQllbmRcblwKLSsJCWVuZFxuXAotKwkJc2Vlblt2XSA9IHRydWU7XG5cCi0rCQl0YWJsZS5pbnNlcnQociwneycpXG5cCi0rCQlmb3Igayx2MSBpbiBwYWlycyh2KSBkb1xuXAotKwkJCWlmIG9wdHMucHJldHR5IHRoZW5cblwKLSsJCQkJdGFibGUuaW5zZXJ0KHIsJ1xcbicuLnN0cmluZy5yZXAoJyAnLGRlcHRoKSlcblwKLSsJCQllbmRcblwKLSsJCQlpZiB0eXBlKGspID09ICdzdHJpbmcnIGFuZCBzdHJpbmcubWF0Y2goaywnXltfJWFdWyVhJWRfXSokJykgdGhlblxuXAotKwkJCQl0YWJsZS5pbnNlcnQocixrKVxuXAotKwkJCWVsc2VcblwKLSsJCQkJdGFibGUuaW5zZXJ0KHIsJ1snKVxuXAotKwkJCQlzZXJpYWxpemVfcihrLG9wdHMscixzZWVuLGRlcHRoKzEpXG5cCi0rCQkJCXRhYmxlLmluc2VydChyLCddJylcblwKLSsJCQllbmRcblwKLSsJCQl0YWJsZS5pbnNlcnQociwnPScpXG5cCi0rCQkJc2VyaWFsaXplX3IodjEsb3B0cyxyLHNlZW4sZGVwdGgrMSlcblwKLSsJCQl0YWJsZS5pbnNlcnQociwnLCcpXG5cCi0rCQllbmRcblwKLSsJCWlmIG9wdHMucHJldHR5IHRoZW5cblwKLSsJCQl0YWJsZS5pbnNlcnQociwnXFxuJy4uc3RyaW5nLnJlcCgnICcsZGVwdGgtMSkpXG5cCi0rCQllbmRcblwKLSsJCXRhYmxlLmluc2VydChyLCd9JylcblwKLSsJCXJldHVyblxuXAotKwllbmRcblwKLSsJaWYgb3B0cy5lcnJfdHlwZSB0aGVuXG5cCi0rCQllcnJvcignc2VyaWFsaXplOiB1bnN1cHBvcnRlZCB0eXBlICcgLi4gdnQsIDIpXG5cCi0rCWVsc2VcblwKLSsJCXRhYmxlLmluc2VydChyLCdcIicuLnRvc3RyaW5nKHYpLi4nXCInKVxuXAotKwllbmRcblwKLStlbmRcblwKLStzZXJpYWxpemVfZGVmYXVsdHMgPSB7XG5cCi0rCW1heGRlcHRoPTEwLFxuXAotKwllcnJfdHlwZT10cnVlLFxuXAotKwllcnJfY3ljbGU9dHJ1ZSxcblwKLSsJcHJldHR5PWZhbHNlLFxuXAotK31cblwKLStmdW5jdGlvbiBzZXJpYWxpemUodixvcHRzKVxuXAotKwlpZiBvcHRzIHRoZW5cblwKLSsJCWZvciBrLHYgaW4gcGFpcnMoc2VyaWFsaXplX2RlZmF1bHRzKSBkb1xuXAotKwkJCWlmIG5vdCBvcHRzW2tdIHRoZW5cblwKLSsJCQkJb3B0c1trXT12XG5cCi0rCQkJZW5kXG5cCi0rCQllbmRcblwKLSsJZWxzZVxuXAotKwkJb3B0cz1zZXJpYWxpemVfZGVmYXVsdHNcblwKLSsJZW5kXG5cCi0rCWxvY2FsIHI9e31cblwKLSsJc2VyaWFsaXplX3IodixvcHRzLHIpXG5cCi0rCXJldHVybiB0YWJsZS5jb25jYXQocilcblwKLStlbmRcbiIKLSsKLSAjZGVmaW5lIFBUUF9DSERLX0xVQV9TRVJJQUxJWkVfTVNHUyBcCi0gUFRQX0NIREtfTFVBX1NFUklBTElaRVwKLSAidXNiX21zZ190YWJsZV90b19zdHJpbmc9c2VyaWFsaXplXG4iCi0gCi0rI2RlZmluZSBQVFBfQ0hES19MVUFfU0VSSUFMSVpFX01TR1NfU0lNUExFUVVPVEUgXAotK1BUUF9DSERLX0xVQV9TRVJJQUxJWkVfU0lNUExFUVVPVEVcCi0rInVzYl9tc2dfdGFibGVfdG9fc3RyaW5nPXNlcmlhbGl6ZVxuIgotKwotICNkZWZpbmUgUFRQX0NIREtfTFVBX0VYVEVORF9UQUJMRSBcCi0gImZ1bmN0aW9uIGV4dGVuZF90YWJsZSh0YXJnZXQsc291cmNlLGRlZXApXG5cCi0gCWlmIHR5cGUodGFyZ2V0KSB+PSAndGFibGUnIHRoZW5cblwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC8wMDAxLWNvbmZpZ3VyZS5hYy1yZW1vdmUtQU1fUE9fU1VCRElSUy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi8wMDAxLWNvbmZpZ3VyZS5hYy1yZW1vdmUtQU1fUE9fU1VCRElSUy5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLTIuNS44LzAwMDEtY29uZmlndXJlLmFjLXJlbW92ZS1BTV9QT19TVUJESVJTLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzIvMDAwMS1jb25maWd1cmUuYWMtcmVtb3ZlLUFNX1BPX1NVQkRJUlMucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC8xMC1jYW1lcmEtbGliZ3Bob3RvMi1kZXZpY2UuZmRpIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLzEwLWNhbWVyYS1saWJncGhvdG8yLWRldmljZS5mZGkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC8xMC1jYW1lcmEtbGliZ3Bob3RvMi1kZXZpY2UuZmRpCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzIvMTAtY2FtZXJhLWxpYmdwaG90bzItZGV2aWNlLmZkaQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLTIuNS44LzEwLWNhbWVyYS1saWJncGhvdG8yLmZkaSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi8xMC1jYW1lcmEtbGliZ3Bob3RvMi5mZGkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC8xMC1jYW1lcmEtbGliZ3Bob3RvMi5mZGkKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi8xMC1jYW1lcmEtbGliZ3Bob3RvMi5mZGkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC80MC1saWJncGhvdG8yLnJ1bGVzIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLzQwLWxpYmdwaG90bzIucnVsZXMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC80MC1saWJncGhvdG8yLnJ1bGVzCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzIvNDAtbGliZ3Bob3RvMi5ydWxlcwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yXzIuNS4xNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMl8yLjUuMTYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2E2OTFjNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMl8yLjUuMTYuYmIKQEAgLTAsMCArMSw1NCBAQAorU1VNTUFSWSA9ICJsaWJncGhvdG8yIGFsbG93cyB5b3UgdG8gYWNjZXNzIGRpZ2l0YWwgY2FtZXJhcyIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wNDQ4ZDM2NzZiYzBkZTAwNDA2YWYyMjdkMzQxYTRkMSIKKworREVQRU5EUyA9ICJsaWJ0b29sIGpwZWcgdmlydHVhbC9saWJ1c2IwIGxpYmV4aWYgemxpYiBsaWJ4bWwyIgorCisjIFRoZSAuZmRpIGFuZCAucnVsZXMgZmlsZXMgd2VyZSBnZW5lcmF0ZWQgd2l0aDoKKyMgIGxpYmdwaG90bzItMi41LjgvcGFja2FnaW5nL2dlbmVyaWMkIHFlbXUtYXJtIC1zIDEwNDg1NzYgLXIgMi42LjI0IC1MIC9PRS9hbmdzdHJvbS1kZXYvc3RhZ2luZy9hcm12NXRlLWFuZ3N0cm9tLWxpbnV4LWdudWVhYmkvIC5saWJzL3ByaW50LWNhbWVyYS1saXN0CisjIFRoZXkgYXJlIHJlbGVhc2Ugc3BlY2lmaWMsIHNvIHBsZWFzZSByZWdlbiB3aGVuIGFkZGluZyBuZXcgcmVsZWFzZXMKKworU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vZ3Bob3RvL2xpYmdwaG90bzItJHtQVn0udGFyLmJ6MjtuYW1lPWxpYmdwaG90bzIgXAorICAgICAgICAgICBmaWxlOi8vMTAtY2FtZXJhLWxpYmdwaG90bzItZGV2aWNlLmZkaSBcCisgICAgICAgICAgIGZpbGU6Ly8xMC1jYW1lcmEtbGliZ3Bob3RvMi5mZGkgXAorICAgICAgICAgICBmaWxlOi8vNDAtbGliZ3Bob3RvMi5ydWxlcyBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS5hYy1yZW1vdmUtQU1fUE9fU1VCRElSUy5wYXRjaCBcCisiCisKK1NSQ19VUklbbGliZ3Bob3RvMi5tZDVzdW1dID0gIjA4NGQyMjBkMDc4ZDI4YzBjN2EzYmExM2Y0NDc2MTI4IgorU1JDX1VSSVtsaWJncGhvdG8yLnNoYTI1NnN1bV0gPSAiZTc1NzQxNmQxNjIzZTAxYTlkMGQyOTRiMmU3OTAxNjJlNDM0YzA5NjRmNTBkM2I3ZmYxYTM0MjRiNjJhMjkwNiIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQgbGliX3BhY2thZ2UKKworRVhUUkFfT0VDT05GID0gIiAtLXdpdGgtZHJpdmVycz1hbGwgdWRldnNjcmlwdGRpcj0ke25vbmFyY2hfYmFzZV9saWJkaXJ9L3VkZXYgYWNfY3ZfbGliX2x0ZGxfbHRfZGxjYWxsZXJfcmVnaXN0ZXI9eWVzIgorCitQQUNLQUdFQ09ORklHID8/PSAiIgorUEFDS0FHRUNPTkZJR1tnZF0gPSAiLC0td2l0aG91dC1nZGxpYixnZCIKK1BBQ0tBR0VDT05GSUdbc2VyaWFsXSA9ICItLWVuYWJsZS1zZXJpYWwsLS1kaXNhYmxlLXNlcmlhbCxsb2NrZGV2IgorCitkb19jb25maWd1cmVfYXBwZW5kKCkgeworICAgIGNwICR7U1RBR0lOR19EQVRBRElSX05BVElWRX0vZ2V0dGV4dC9wby9NYWtlZmlsZS5pbi5pbiAke1N9L2xpYmdwaG90bzJfcG9ydC9wby8KKyAgICBjZCAke1N9L2xpYmdwaG90bzJfcG9ydC8KKyAgICBhdXRvcmVjb25mIC1XY3Jvc3MgLS12ZXJib3NlIC0taW5zdGFsbCAtLWZvcmNlICR7RVhUUkFfQVVUT1JFQ09ORn0gJGFjcGF0aHMKKyAgICBjZCAke1N9Cit9CisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vaGFsL2ZkaS9pbmZvcm1hdGlvbi8yMHRoaXJkcGFydHkKKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS8qLmZkaSAke0R9JHtkYXRhZGlyfS9oYWwvZmRpL2luZm9ybWF0aW9uLzIwdGhpcmRwYXJ0eS8KKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdWRldi9ydWxlcy5kLworICAgIGluc3RhbGwgLW0gMDc1NSAke1dPUktESVJ9LyoucnVsZXMgJHtEfSR7c3lzY29uZmRpcn0vdWRldi9ydWxlcy5kLworfQorCitQQUNLQUdFUyA9KyAibGliZ3Bob3RvcG9ydCBsaWJncGhvdG8yLWNhbWxpYnMiCitGSUxFU19saWJncGhvdG8yLWNhbWxpYnMgPSAiJHtsaWJkaXJ9L2xpYmdwaG90bzIqLyovKi5zbyoiCitSUkVDT01NRU5EU18ke1BOfSA9ICJsaWJncGhvdG8yLWNhbWxpYnMiCisKK0ZJTEVTX2xpYmdwaG90b3BvcnQgPSAiJHtsaWJkaXJ9L2xpYmdwaG90bzJfcG9ydC5zby4qIgorCitGSUxFU18ke1BOfSArPSAiJHtub25hcmNoX2Jhc2VfbGliZGlyfS91ZGV2LyogJHtkYXRhZGlyfS9oYWwiCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS8qLyovLmRlYnVnIgorRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vKi8qLyoubGEiCitGSUxFU18ke1BOfS1kb2MgKz0gIiR7ZGF0YWRpcn0vbGliZ3Bob3RvMl9wb3J0LzAuMTIuMC92Y2FtZXJhL1JFQURNRS50eHQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzJfMi41LjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzJfMi41LjguYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0MzRhZjkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yXzIuNS44LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotU1VNTUFSWSA9ICJsaWJncGhvdG8yIGFsbG93cyB5b3UgdG8gYWNjZXNzIGRpZ2l0YWwgY2FtZXJhcyIKLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiTEdQTHYyLjEiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wNDQ4ZDM2NzZiYzBkZTAwNDA2YWYyMjdkMzQxYTRkMSIKLQotREVQRU5EUyA9ICJsaWJ0b29sIGpwZWcgdmlydHVhbC9saWJ1c2IwIGxpYmV4aWYgemxpYiBsaWJ4bWwyIgotCi0jIFRoZSAuZmRpIGFuZCAucnVsZXMgZmlsZXMgd2VyZSBnZW5lcmF0ZWQgd2l0aDoKLSMgIGxpYmdwaG90bzItMi41LjgvcGFja2FnaW5nL2dlbmVyaWMkIHFlbXUtYXJtIC1zIDEwNDg1NzYgLXIgMi42LjI0IC1MIC9PRS9hbmdzdHJvbS1kZXYvc3RhZ2luZy9hcm12NXRlLWFuZ3N0cm9tLWxpbnV4LWdudWVhYmkvIC5saWJzL3ByaW50LWNhbWVyYS1saXN0Ci0jIFRoZXkgYXJlIHJlbGVhc2Ugc3BlY2lmaWMsIHNvIHBsZWFzZSByZWdlbiB3aGVuIGFkZGluZyBuZXcgcmVsZWFzZXMKLQotU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vZ3Bob3RvL2xpYmdwaG90bzItJHtQVn0udGFyLmJ6MjtuYW1lPWxpYmdwaG90bzIgXAotICAgICAgICAgICBmaWxlOi8vMTAtY2FtZXJhLWxpYmdwaG90bzItZGV2aWNlLmZkaSBcCi0gICAgICAgICAgIGZpbGU6Ly8xMC1jYW1lcmEtbGliZ3Bob3RvMi5mZGkgXAotICAgICAgICAgICBmaWxlOi8vNDAtbGliZ3Bob3RvMi5ydWxlcyBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS5hYy1yZW1vdmUtQU1fUE9fU1VCRElSUy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAyLWNvcnJlY3QtanBlZy1tZW1zcmNkZXN0LXN1cHBvcnQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vYXZvaWRfdXNpbmdfc3ByaW50Zi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLXNjcmlwdHMtcmVtb3ZlLWJhc2hpc21zLnBhdGNoIFwKLSIKLQotU1JDX1VSSVtsaWJncGhvdG8yLm1kNXN1bV0gPSAiODczYWIwMWFjZWQ0OWM2YjkyYTk4ZTUxNWRiNWRjZWYiCi1TUkNfVVJJW2xpYmdwaG90bzIuc2hhMjU2c3VtXSA9ICIwMzFhMjYyZTM0MmZhZTQzZjcyNGFmZTY2Nzg3OTQ3Y2UxZmI0ODMyNzdkZmU1YThjZjFmYmU5MmM1OGUyN2I2IgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ2V0dGV4dCBsaWJfcGFja2FnZQotCi1FWFRSQV9PRUNPTkYgPSAiIC0td2l0aC1kcml2ZXJzPWFsbCB1ZGV2c2NyaXB0ZGlyPSR7bm9uYXJjaF9iYXNlX2xpYmRpcn0vdWRldiBhY19jdl9saWJfbHRkbF9sdF9kbGNhbGxlcl9yZWdpc3Rlcj15ZXMiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIiCi1QQUNLQUdFQ09ORklHW2dkXSA9ICIsLS13aXRob3V0LWdkbGliLGdkIgotUEFDS0FHRUNPTkZJR1tzZXJpYWxdID0gIi0tZW5hYmxlLXNlcmlhbCwtLWRpc2FibGUtc2VyaWFsLGxvY2tkZXYiCi0KLWRvX2NvbmZpZ3VyZV9hcHBlbmQoKSB7Ci0gICAgY3AgJHtTVEFHSU5HX0RBVEFESVJfTkFUSVZFfS9nZXR0ZXh0L3BvL01ha2VmaWxlLmluLmluICR7U30vbGliZ3Bob3RvMl9wb3J0L3BvLwotICAgIGNkICR7U30vbGliZ3Bob3RvMl9wb3J0LwotICAgIGF1dG9yZWNvbmYgLVdjcm9zcyAtLXZlcmJvc2UgLS1pbnN0YWxsIC0tZm9yY2UgJHtFWFRSQV9BVVRPUkVDT05GfSAkYWNwYXRocwotICAgIGNkICR7U30KLX0KLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9oYWwvZmRpL2luZm9ybWF0aW9uLzIwdGhpcmRwYXJ0eQotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9LyouZmRpICR7RH0ke2RhdGFkaXJ9L2hhbC9mZGkvaW5mb3JtYXRpb24vMjB0aGlyZHBhcnR5LwotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS91ZGV2L3J1bGVzLmQvCi0gICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vKi5ydWxlcyAke0R9JHtzeXNjb25mZGlyfS91ZGV2L3J1bGVzLmQvCi19Ci0KLVBBQ0tBR0VTID0rICJsaWJncGhvdG9wb3J0IGxpYmdwaG90bzItY2FtbGlicyIKLUZJTEVTX2xpYmdwaG90bzItY2FtbGlicyA9ICIke2xpYmRpcn0vbGliZ3Bob3RvMiovKi8qLnNvKiIKLVJSRUNPTU1FTkRTXyR7UE59ID0gImxpYmdwaG90bzItY2FtbGlicyIKLQotRklMRVNfbGliZ3Bob3RvcG9ydCA9ICIke2xpYmRpcn0vbGliZ3Bob3RvMl9wb3J0LnNvLioiCi0KLUZJTEVTXyR7UE59ICs9ICIke25vbmFyY2hfYmFzZV9saWJkaXJ9L3VkZXYvKiAke2RhdGFkaXJ9L2hhbCIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9LyovKi8uZGVidWciCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS8qLyovKi5sYSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2d0a3BlcmYvZ3RrcGVyZl8wLjQwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3RrcGVyZi9ndGtwZXJmXzAuNDAuYmIKaW5kZXggMmRiOTE5MDQuLjQwOTQ1MTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2d0a3BlcmYvZ3RrcGVyZl8wLjQwLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2d0a3BlcmYvZ3RrcGVyZl8wLjQwLmJiCkBAIC0xNiw3ICsxNiw5IEBACiAKIFMgPSAiJHtXT1JLRElSfS8ke0JQTn0iCiAKLWluaGVyaXQgYXV0b3Rvb2xzIGJpbmNvbmZpZyBwa2djb25maWcgZ2V0dGV4dAoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIGJpbmNvbmZpZyBwa2djb25maWcgZ2V0dGV4dAorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBkb19jb25maWd1cmVfcHJlcGVuZCAoKSB7CiAgICAgcm0gLWYgJHtTfS9tNC9pbml0Lm00CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ2bmNzZXJ2ZXIvbGlidm5jc2VydmVyXzAuOS4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnZuY3NlcnZlci9saWJ2bmNzZXJ2ZXJfMC45LjExLmJiCmluZGV4IDQ1N2Q3MjEuLjM4ZGFjMDYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnZuY3NlcnZlci9saWJ2bmNzZXJ2ZXJfMC45LjExLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnZuY3NlcnZlci9saWJ2bmNzZXJ2ZXJfMC45LjExLmJiCkBAIC0xMiw3ICsxMiw5IEBACiAKIFJERVBFTkRTXyR7UE59ICs9ICJsaWJwbmcgZ3RrKyBsaWJnY3J5cHQiCiAKLWluaGVyaXQgYXV0b3Rvb2xzIGJpbmNvbmZpZyBwa2djb25maWcKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBiaW5jb25maWcgcGtnY29uZmlnCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIFNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL0xpYlZOQy9saWJ2bmNzZXJ2ZXIvYXJjaGl2ZS9MaWJWTkNTZXJ2ZXItJHtQVn0udGFyLmd6IgogU1JDX1VSSVttZDVzdW1dID0gIjdmMDYxMDRkNWMwMDk4MTNlOTUxNDI5MzJjNGRkYjA2IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvbGlieXVpL2xpYnl1aS1uY3Vyc2VzLzAwMDEtRml4LXRoZS1lcnJvci1vZi1jYW4tdC1maW5kLWhlYWRlci1maWxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvbGlieXVpL2xpYnl1aS1uY3Vyc2VzLzAwMDEtRml4LXRoZS1lcnJvci1vZi1jYW4tdC1maW5kLWhlYWRlci1maWxlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NWYzY2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLW5jdXJzZXMvMDAwMS1GaXgtdGhlLWVycm9yLW9mLWNhbi10LWZpbmQtaGVhZGVyLWZpbGUucGF0Y2gKQEAgLTAsMCArMSwxMDEgQEAKK0Zyb20gZWIwMDg2ZGM0ZWE4ZmU5Y2RhMDY5NDU2Mjg3YjNhMjlhMjYzMWQzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFpoZW5nIFJ1b3FpbiA8emhlbmdycS5mbnN0QGNuLmZ1aml0c3UuY29tPgorRGF0ZTogV2VkLCAxMyBEZWMgMjAxNyAxNjoxODo0NSArMDkwMAorU3ViamVjdDogW1BBVENIXSBGaXggdGhlIGVycm9yIG9mIGNhbid0IGZpbmQgaGVhZGVyIGZpbGUKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KK1RoaXMgZml4IGlzIGp1c3QgZm9yIHlvY3RvLgorCitTaWduZWQtb2ZmLWJ5OiBaaGVuZyBSdW9xaW4gPHpoZW5ncnEuZm5zdEBjbi5mdWppdHN1LmNvbT4KKy0tLQorIHNyYy9OQ0FwcGxpY2F0aW9uLmNjIHwgMiArLQorIHNyYy9OQ3N0eWxlLmggICAgICAgIHwgMiArLQorIHNyYy9OQ3Vyc2VzLmggICAgICAgIHwgMiArLQorIHNyYy9uY3Vyc2VzcC5oICAgICAgIHwgMiArLQorIHNyYy9uY3Vyc2Vzdy5jYyAgICAgIHwgMiArLQorIHNyYy9uY3Vyc2Vzdy5oICAgICAgIHwgNCArKy0tCisgNiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvTkNBcHBsaWNhdGlvbi5jYyBiL3NyYy9OQ0FwcGxpY2F0aW9uLmNjCitpbmRleCA1YmNmOTY5Li41MTBmMDM0IDEwMDY0NAorLS0tIGEvc3JjL05DQXBwbGljYXRpb24uY2MKKysrKyBiL3NyYy9OQ0FwcGxpY2F0aW9uLmNjCitAQCAtMjMsNyArMjMsNyBAQAorIAorIC8tKi8KKyAKKy0jaW5jbHVkZSA8bmN1cnNlc3cvY3Vyc2VzLmg+CisrI2luY2x1ZGUgPGN1cnNlcy5oPgorIAorICNkZWZpbmUgIFlVSUxvZ0NvbXBvbmVudCAibmN1cnNlcyIKKyAjaW5jbHVkZSA8eXVpL1lVSUxvZy5oPgorZGlmZiAtLWdpdCBhL3NyYy9OQ3N0eWxlLmggYi9zcmMvTkNzdHlsZS5oCitpbmRleCBhNDBkNWE4Li4zNjU3OTE3IDEwMDY0NAorLS0tIGEvc3JjL05Dc3R5bGUuaAorKysrIGIvc3JjL05Dc3R5bGUuaAorQEAgLTI1LDcgKzI1LDcgQEAKKyAjaWZuZGVmIE5Dc3R5bGVfaAorICNkZWZpbmUgTkNzdHlsZV9oCisgCistI2luY2x1ZGUgPG5jdXJzZXN3L25jdXJzZXMuaD4KKysjaW5jbHVkZSA8bmN1cnNlcy5oPgorIAorICNpbmNsdWRlIDxpb3Nmd2Q+CisgI2luY2x1ZGUgPHN0cmluZz4KK2RpZmYgLS1naXQgYS9zcmMvTkN1cnNlcy5oIGIvc3JjL05DdXJzZXMuaAoraW5kZXggYTA3YzZiZi4uZDE3ZDNjMyAxMDA2NDQKKy0tLSBhL3NyYy9OQ3Vyc2VzLmgKKysrKyBiL3NyYy9OQ3Vyc2VzLmgKK0BAIC0zNCw3ICszNCw3IEBACisgI2luY2x1ZGUgPHl1aS9ZV2lkZ2V0Lmg+CisgI2luY2x1ZGUgPHl1aS9ZTWVudUl0ZW0uaD4KKyAKKy0jaW5jbHVkZSA8bmN1cnNlc3cvY3Vyc2VzLmg+CS8qIGN1cnNlcy5oOiAjZGVmaW5lICBOQ1VSU0VTX0NIX1QgY2NoYXJfdCAqLworKyNpbmNsdWRlIDxjdXJzZXMuaD4JLyogY3Vyc2VzLmg6ICNkZWZpbmUgIE5DVVJTRVNfQ0hfVCBjY2hhcl90ICovCisgI2luY2x1ZGUgPHdjaGFyLmg+CisgCisgI2luY2x1ZGUgIm5jdXJzZXN3LmgiCitkaWZmIC0tZ2l0IGEvc3JjL25jdXJzZXNwLmggYi9zcmMvbmN1cnNlc3AuaAoraW5kZXggZDQ3ODM0Ny4uMmZjZmVhNSAxMDA2NDQKKy0tLSBhL3NyYy9uY3Vyc2VzcC5oCisrKysgYi9zcmMvbmN1cnNlc3AuaAorQEAgLTI4LDcgKzI4LDcgQEAKKyAjaW5jbHVkZSA8aW9zZndkPgorIAorICNpbmNsdWRlICJuY3Vyc2Vzdy5oIgorLSNpbmNsdWRlIDxuY3Vyc2Vzdy9wYW5lbC5oPgorKyNpbmNsdWRlIDxwYW5lbC5oPgorIAorIGNsYXNzIE5DdXJzZXNQYW5lbCA6IHB1YmxpYyBOQ3Vyc2VzV2luZG93CisgeworZGlmZiAtLWdpdCBhL3NyYy9uY3Vyc2Vzdy5jYyBiL3NyYy9uY3Vyc2Vzdy5jYworaW5kZXggM2M3NzFhZi4uYmI4MzIxMCAxMDA2NDQKKy0tLSBhL3NyYy9uY3Vyc2Vzdy5jYworKysrIGIvc3JjL25jdXJzZXN3LmNjCitAQCAtNDcsNyArNDcsNyBAQAorICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorLSNpbmNsdWRlIDxuY3Vyc2Vzdy90ZXJtLmg+CisrI2luY2x1ZGUgPHRlcm0uaD4KKyAjdW5kZWYgbGluZQorICN1bmRlZiBjb2x1bW5zCisgCitkaWZmIC0tZ2l0IGEvc3JjL25jdXJzZXN3LmggYi9zcmMvbmN1cnNlc3cuaAoraW5kZXggZDI1OTIzYS4uYzE0MGQzNyAxMDA2NDQKKy0tLSBhL3NyYy9uY3Vyc2Vzdy5oCisrKysgYi9zcmMvbmN1cnNlc3cuaAorQEAgLTI3LDggKzI3LDggQEAKKyAKKyAjaW5jbHVkZSA8aW9zZndkPgorIAorLSNpbmNsdWRlIDxuY3Vyc2Vzdy9jdXJzZXMuaD4KKy0jaW5jbHVkZSA8bmN1cnNlc3cvZXRpcC5oPgorKyNpbmNsdWRlIDxjdXJzZXMuaD4KKysjaW5jbHVkZSA8ZXRpcC5oPgorICNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPGNzdGRhcmc+CisgI2luY2x1ZGUgPGNsaW1pdHM+CistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnl1aS9saWJ5dWktbmN1cnNlcy8wMDAxLXVzZS1fbmxfbXNnX2NhdF9jbnRyLW9ubHktd2l0aC1nbGliYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnl1aS9saWJ5dWktbmN1cnNlcy8wMDAxLXVzZS1fbmxfbXNnX2NhdF9jbnRyLW9ubHktd2l0aC1nbGliYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTM3NzRjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvbGlieXVpL2xpYnl1aS1uY3Vyc2VzLzAwMDEtdXNlLV9ubF9tc2dfY2F0X2NudHItb25seS13aXRoLWdsaWJjLnBhdGNoCkBAIC0wLDAgKzEsNDAgQEAKK0Zyb20gNGI4NGYyNDNhNzBhOGMwN2Y2YTM4ZGFkM2M5NDExZmE3MDdmMjVjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTdW4sIDQgTWFyIDIwMTggMTc6MDg6NDMgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gdXNlIF9ubF9tc2dfY2F0X2NudHIgb25seSB3aXRoIGdsaWJjCisKK1RoZSBtdXNsIGxpYmMgcHJvdmlkZXMgbGliaW50bCAoc2ltaWxhciB0byBnbGliYykKK2J1dCBkb2VzIG5vdCB1c2UgdGhlIHNhbWUgaW50ZXJuYWxzLAorc28gZXZlbiB0aG91Z2ggd2UgYXJlIHVzaW5nIHRoZSBHTlUgZ2V0dGV4dAordGhlIGxpYmludGwgaW5jbHVkZWQgd2l0aCB0aGUgbGliYyBkb2VzIG5vdCBkZWZpbmUKK19ubF9tc2dfY2F0X2NudHIgYW5kIGl0IGRvZXMgbm90IG5lZWQgdG8uCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCisgc3JjL05DaTE4bi5oIHwgMyArKy0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvTkNpMThuLmggYi9zcmMvTkNpMThuLmgKK2luZGV4IDE2NWIwZTcuLmJmYzRlZDcgMTAwNjQ0CistLS0gYS9zcmMvTkNpMThuLmgKKysrKyBiL3NyYy9OQ2kxOG4uaAorQEAgLTU5LDEyICs1OSwxMyBAQCBpbmxpbmUgdm9pZCBzZXRUZXh0ZG9tYWluKCBjb25zdCBjaGFyICogZG9tYWluICkKKyAgICAgYmluZHRleHRkb21haW4oIGRvbWFpbiwgIFlTZXR0aW5nczo6bG9jYWxlRGlyKCkuY19zdHIoKSApOworICAgICBiaW5kX3RleHRkb21haW5fY29kZXNldCggZG9tYWluLCAiVVRGLTgiICk7CisgICAgIHRleHRkb21haW4oIGRvbWFpbiApOworLQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgLy8gTWFrZSBjaGFuZ2Uga25vd24KKyAgICAgeworIAlleHRlcm4gaW50IF9ubF9tc2dfY2F0X2NudHI7CisgCSsrX25sX21zZ19jYXRfY250cjsKKyAgICAgfQorKyNlbmRpZgorIH0KKyAKKyAKKy0tIAorMi4xNi4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnl1aS9saWJ5dWktbmN1cnNlc19naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLW5jdXJzZXNfZ2l0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3OGM3MTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLW5jdXJzZXNfZ2l0LmJiCkBAIC0wLDAgKzEsNDkgQEAKK1NVTU1BUlkgPSAiQ2hhcmFjdGVyIEJhc2VkIFVzZXIgSW50ZXJmYWNlIGZvciBsaWJ5dWkiCitMSUNFTlNFID0gIkxHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcubGdwbC0zO21kNT1lNmE2MDBmZDVlMWQ5Y2JkZTJkOTgzNjgwMjMzYWQwMiBcCisgICAgZmlsZTovL0NPUFlJTkcubGdwbC0yLjE7bWQ1PTRmYmQ2NTM4MGNkZDI1NTk1MTA3OTAwOGIzNjQ1MTZjIFwKKyIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2xpYnl1aS9saWJ5dWktbmN1cnNlcy5naXQgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS11c2UtX25sX21zZ19jYXRfY250ci1vbmx5LXdpdGgtZ2xpYmMucGF0Y2ggXAorICAgICAgICAgICIKKworU1JDX1VSSV9hcHBlbmRfY2xhc3MtdGFyZ2V0ID0gIiBmaWxlOi8vMDAwMS1GaXgtdGhlLWVycm9yLW9mLWNhbi10LWZpbmQtaGVhZGVyLWZpbGUucGF0Y2giCisKK1BWID0gIjIuNDguMytnaXQke1NSQ1BWfSIKK1NSQ1JFViA9ICI3OWI4MDRiNDVmZmM2YTBkOTJlMjhlNzkzZmYzODlhMjBiNjNiNTRiIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitpbmhlcml0IGNtYWtlIGdldHRleHQgcGtnY29uZmlnCisKK0RFUEVORFMgKz0gImJvb3N0IGxpYnl1aSBuY3Vyc2VzIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZXNkayIKKworZG9fY29uZmlndXJlX3ByZXBlbmQgKCkgeworICAgIGNkICR7U30KKyAgICBnaXQgY2hlY2tvdXQgYm9vdHN0cmFwLnNoCisgICAgc2VkIC1pICJzIy91c3IjJHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfSR7YmFzZV9wcmVmaXh9JiMiIGJvb3RzdHJhcC5zaAorICAgIC4vYm9vdHN0cmFwLnNoCisgICAgbWtkaXIgLXAgJHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfSR7YmFzZV9wcmVmaXh9L3Vzci9saWI2NC8KKyAgICBjcCAke1BLR19DT05GSUdfU1lTUk9PVF9ESVJ9JHtiYXNlX3ByZWZpeH0vdXNyL2xpYi9saWJ5dWkuc28qICR7UEtHX0NPTkZJR19TWVNST09UX0RJUn0ke2Jhc2VfcHJlZml4fS91c3IvbGliNjQvCisgICAgY2QgLQorICAgIHNlZCAtaSAicyNcJHtZUFJFRklYfSNcJHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfSR7YmFzZV9wcmVmaXh9JiMiICR7U30vQ01ha2VMaXN0cy50eHQKKyAgICBzZWQgLWkgInMjL3VzciMke1BLR19DT05GSUdfU1lTUk9PVF9ESVJ9JHtiYXNlX3ByZWZpeH0mIyIgJHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfSR7bGliZGlyfS9jbWFrZS9saWJ5dWkvTGlieXVpTGlicmFyeURlcGVuZHMtcmVsZWFzZS5jbWFrZQorfQorCitkb19pbnN0YWxsX2FwcGVuZCAoKSB7CisgICAgaWYgWyAiJHtsaWJkaXJ9IiA9ICIke2Jhc2VfcHJlZml4fS91c3IvbGliIiBdICYmIFsgLWQgJHtEfS91c3IvbGliNjQgXTsgdGhlbgorICAgICAgICBtdiAke0R9L3Vzci9saWI2NCAke0R9L3Vzci9saWIKKyAgICBmaQorfQorCitkb19pbnN0YWxsX2FwcGVuZF9jbGFzcy1uYXRpdmVzZGsgKCkgeworICAgIG1rZGlyIC1wICR7RH0vJHtiYXNlX3ByZWZpeH0KKyAgICBtdiAke0R9L3VzciAke0R9LyR7YmFzZV9wcmVmaXh9Cit9CisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9LyoiCisKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9LyoiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLzAwMDEtRml4LUdDQy04LXdhcm5pbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLzAwMDEtRml4LUdDQy04LXdhcm5pbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFiYTQyZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnl1aS9saWJ5dWkvMDAwMS1GaXgtR0NDLTgtd2FybmluZy5wYXRjaApAQCAtMCwwICsxLDQ4IEBACitGcm9tIDFlNmQ0MGZlYzE2YTk0ZDFhNGJkNDA2MzQ0MDUyNjcyMDBiN2U5NjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBtYXJ4aW4gPG1saXNrYUBzdXNlLmN6PgorRGF0ZTogVHVlLCAxMCBBcHIgMjAxOCAxNToyMTo0MCArMDIwMAorU3ViamVjdDogW1BBVENIXSBGaXggR0NDIDggd2FybmluZzoKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworL2hvbWUvbWFyeGluL1Byb2dyYW1taW5nL2xpYnl1aS9zcmMvWURpYWxvZy5jYzogSW4gc3RhdGljIG1lbWJlciBmdW5jdGlvbiDigJhzdGF0aWMgdm9pZCBZRGlhbG9nOjpzaG93VGV4dChjb25zdCBzdHJpbmcmLCBib29sKeKAmToKKy9ob21lL21hcnhpbi9Qcm9ncmFtbWluZy9saWJ5dWkvc3JjL1lEaWFsb2cuY2M6NjkwOjI2OiBlcnJvcjogY2F0Y2hpbmcgcG9seW1vcnBoaWMgdHlwZSDigJhjbGFzcyBZVUlFeGNlcHRpb27igJkgYnkgdmFsdWUgWy1XZXJyb3I9Y2F0Y2gtdmFsdWU9XQorICAgICBjYXRjaCAoIFlVSUV4Y2VwdGlvbiBleGNlcHRpb24gKQorICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn4KKy9ob21lL21hcnhpbi9Qcm9ncmFtbWluZy9saWJ5dWkvc3JjL1lEaWFsb2cuY2M6IEluIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24g4oCYc3RhdGljIGJvb2wgWURpYWxvZzo6c2hvd1JlbE5vdGVzVGV4dCgp4oCZOgorL2hvbWUvbWFyeGluL1Byb2dyYW1taW5nL2xpYnl1aS9zcmMvWURpYWxvZy5jYzo4MTQ6MjY6IGVycm9yOiBjYXRjaGluZyBwb2x5bW9ycGhpYyB0eXBlIOKAmGNsYXNzIFlVSUV4Y2VwdGlvbuKAmSBieSB2YWx1ZSBbLVdlcnJvcj1jYXRjaC12YWx1ZT1dCisgICAgIGNhdGNoICggWVVJRXhjZXB0aW9uIGV4Y2VwdGlvbiApCisgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fgorLS0tCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9naXRodWIuY29tL2xpYnl1aS9saWJ5dWkvcHVsbC8xMjJdCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCisgc3JjL1lEaWFsb2cuY2MgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL1lEaWFsb2cuY2MgYi9zcmMvWURpYWxvZy5jYworaW5kZXggOTJlNTAzMS4uOGVjZmY5MCAxMDA2NDQKKy0tLSBhL3NyYy9ZRGlhbG9nLmNjCisrKysgYi9zcmMvWURpYWxvZy5jYworQEAgLTY4Nyw3ICs2ODcsNyBAQCBZRGlhbG9nOjpzaG93VGV4dCggY29uc3Qgc3RkOjpzdHJpbmcgJiB0ZXh0LCBib29sIHVzZVJpY2hUZXh0ICkKKyAJZGlhbG9nLT53YWl0Rm9yRXZlbnQoKTsKKyAJZGlhbG9nLT5kZXN0cm95KCk7CisgICAgIH0KKy0gICAgY2F0Y2ggKCBZVUlFeGNlcHRpb24gZXhjZXB0aW9uICkKKysgICAgY2F0Y2ggKCBZVUlFeGNlcHRpb24gJmV4Y2VwdGlvbiApCisgICAgIHsKKyAJLy8gRG9uJ3QgbGV0IHRoZSBhcHBsaWNhdGlvbiBkaWUganVzdCBiZWNhdXNlIGhlbHAgY291bGRuJ3QgYmUgZGlzcGxheWVkLgorIAorQEAgLTgxMSw3ICs4MTEsNyBAQCBZRGlhbG9nOjpzaG93UmVsTm90ZXNUZXh0KCkKKyAJfQorICAgICAgICAgZGlhbG9nLT5kZXN0cm95KCk7CisgICAgIH0KKy0gICAgY2F0Y2ggKCBZVUlFeGNlcHRpb24gZXhjZXB0aW9uICkKKysgICAgY2F0Y2ggKCBZVUlFeGNlcHRpb24gJmV4Y2VwdGlvbiApCisgICAgIHsKKyAgICAgICAgIC8vIERvbid0IGxldCB0aGUgYXBwbGljYXRpb24gZGllIGp1c3QgYmVjYXVzZSBSTiBjb3VsZG4ndCBiZSBkaXNwbGF5ZWQuCisgCistLSAKKzIuMTcuMAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLzAwMDEtRml4LWJ1aWxkLXdpdGgtY2xhbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLzAwMDEtRml4LWJ1aWxkLXdpdGgtY2xhbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDI2OTAxOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnl1aS9saWJ5dWkvMDAwMS1GaXgtYnVpbGQtd2l0aC1jbGFuZy5wYXRjaApAQCAtMCwwICsxLDY4NyBAQAorRnJvbSAxODU2MjY3MTk4MmFkOTc1NDliY2NiNDQ0ZmRiYjU5MDViNmU5MzM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgMjQgQXByIDIwMTggMTU6MDY6MTQgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IGJ1aWxkIHdpdGggY2xhbmcKKworRml4IHdhcm5pbmdzIGZvdW5kIHdpdGggY2xhbmcKKworZXJyb3I6IGNsYXNzICdZQnV0dG9uQm94UHJpdmF0ZScgd2FzIHByZXZpb3VzbHkgZGVjbGFyZWQgYXMgYSBzdHJ1Y3QgWy1XZXJyb3IsLVdtaXNtYXRjaGVkLXRhZ3NdCit8ICAgICBmcmllbmQgY2xhc3MgWUJ1dHRvbkJveFByaXZhdGU7CisKK1lUaW1lem9uZVNlbGVjdG9yLmNjOjM1Ojk6IGVycm9yOiBwcml2YXRlIGZpZWxkICdkdW1teScgaXMgbm90IHVzZWQgWy1XZXJyb3IsLVd1bnVzZWQtcHJpdmF0ZS1maWVsZF0KKyAgIGJvb2wgZHVtbXk7CisgICAgICAgIF4KKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9saWJ5dWkvbGlieXVpL3B1bGwvMTIzXQorCisgc3JjL1lBbGlnbm1lbnQuaCAgICAgICAgICB8IDIgKy0KKyBzcmMvWUJhckdyYXBoLmggICAgICAgICAgIHwgMiArLQorIHNyYy9ZQnVzeUluZGljYXRvci5oICAgICAgfCAyICstCisgc3JjL1lCdXR0b25Cb3guaCAgICAgICAgICB8IDQgKystLQorIHNyYy9ZQ2hlY2tCb3guaCAgICAgICAgICAgfCAyICstCisgc3JjL1lDaGVja0JveEZyYW1lLmggICAgICB8IDIgKy0KKyBzcmMvWUNvbWJvQm94LmggICAgICAgICAgIHwgMiArLQorIHNyYy9ZQ29tbWFuZExpbmUuaCAgICAgICAgfCAyICstCisgc3JjL1lDb250ZXh0TWVudS5oICAgICAgICB8IDIgKy0KKyBzcmMvWURhdGVGaWVsZC5oICAgICAgICAgIHwgMiArLQorIHNyYy9ZRGlhbG9nLmggICAgICAgICAgICAgfCAyICstCisgc3JjL1lEb3dubG9hZFByb2dyZXNzLmggICB8IDIgKy0KKyBzcmMvWUR1bWJUYWIuaCAgICAgICAgICAgIHwgMiArLQorIHNyYy9ZRW1wdHkuaCAgICAgICAgICAgICAgfCAyICstCisgc3JjL1lFdmVudEZpbHRlci5oICAgICAgICB8IDIgKy0KKyBzcmMvWUZyYW1lLmggICAgICAgICAgICAgIHwgMiArLQorIHNyYy9ZR3JhcGguaCAgICAgICAgICAgICAgfCAyICstCisgc3JjL1lJbWFnZS5oICAgICAgICAgICAgICB8IDIgKy0KKyBzcmMvWUlucHV0RmllbGQuaCAgICAgICAgIHwgMiArLQorIHNyYy9ZSW50RmllbGQuaCAgICAgICAgICAgfCAyICstCisgc3JjL1lMYWJlbC5oICAgICAgICAgICAgICB8IDIgKy0KKyBzcmMvWUxheW91dEJveC5oICAgICAgICAgIHwgMiArLQorIHNyYy9ZTG9nVmlldy5oICAgICAgICAgICAgfCAyICstCisgc3JjL1lNZW51QnV0dG9uLmggICAgICAgICB8IDIgKy0KKyBzcmMvWU11bHRpTGluZUVkaXQuaCAgICAgIHwgMiArLQorIHNyYy9ZTXVsdGlQcm9ncmVzc01ldGVyLmggfCAyICstCisgc3JjL1lNdWx0aVNlbGVjdGlvbkJveC5oICB8IDIgKy0KKyBzcmMvWVBhcnRpdGlvblNwbGl0dGVyLmggIHwgMiArLQorIHNyYy9ZUHJvZ3Jlc3NCYXIuaCAgICAgICAgfCAyICstCisgc3JjL1lQdXNoQnV0dG9uLmggICAgICAgICB8IDIgKy0KKyBzcmMvWVJhZGlvQnV0dG9uLmggICAgICAgIHwgMiArLQorIHNyYy9ZUmFkaW9CdXR0b25Hcm91cC5oICAgfCAyICstCisgc3JjL1lSaWNoVGV4dC5oICAgICAgICAgICB8IDIgKy0KKyBzcmMvWVNlbGVjdGlvbkJveC5oICAgICAgIHwgMiArLQorIHNyYy9ZU2VsZWN0aW9uV2lkZ2V0LmggICAgfCAyICstCisgc3JjL1lTaW1wbGVJbnB1dEZpZWxkLmggICB8IDIgKy0KKyBzcmMvWVNsaWRlci5oICAgICAgICAgICAgIHwgMiArLQorIHNyYy9ZU3BhY2luZy5oICAgICAgICAgICAgfCAyICstCisgc3JjL1lTcXVhc2guaCAgICAgICAgICAgICB8IDIgKy0KKyBzcmMvWVRhYmxlLmggICAgICAgICAgICAgIHwgMiArLQorIHNyYy9ZVGFibGVIZWFkZXIuaCAgICAgICAgfCAyICstCisgc3JjL1lUaW1lRmllbGQuaCAgICAgICAgICB8IDIgKy0KKyBzcmMvWVRpbWV6b25lU2VsZWN0b3IuY2MgIHwgMiArLQorIHNyYy9ZVHJlZS5oICAgICAgICAgICAgICAgfCAyICstCisgc3JjL1lVSUxvZy5oICAgICAgICAgICAgICB8IDIgKy0KKyBzcmMvWVdpZGdldC5oICAgICAgICAgICAgIHwgMiArLQorIHNyYy9ZV2l6YXJkLmggICAgICAgICAgICAgfCAyICstCisgNDcgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgNDggZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvWUFsaWdubWVudC5oIGIvc3JjL1lBbGlnbm1lbnQuaAoraW5kZXggZDcxNmM3Ny4uNzI3Njk0NCAxMDA2NDQKKy0tLSBhL3NyYy9ZQWxpZ25tZW50LmgKKysrKyBiL3NyYy9ZQWxpZ25tZW50LmgKK0BAIC0yOCw3ICsyOCw3IEBACisgI2luY2x1ZGUgIllTaW5nbGVDaGlsZENvbnRhaW5lcldpZGdldC5oIgorIAorIAorLWNsYXNzIFlBbGlnbm1lbnRQcml2YXRlOworK3N0cnVjdCBZQWxpZ25tZW50UHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBJbXBsZW1lbnRhdGlvbiBvZiBhbGwgdGhlIGFsaWdubWVudCB3aWRnZXRzOgorZGlmZiAtLWdpdCBhL3NyYy9ZQmFyR3JhcGguaCBiL3NyYy9ZQmFyR3JhcGguaAoraW5kZXggMjlmN2YyNi4uZDdlYWFkMiAxMDA2NDQKKy0tLSBhL3NyYy9ZQmFyR3JhcGguaAorKysrIGIvc3JjL1lCYXJHcmFwaC5oCitAQCAtMjksNyArMjksNyBAQAorICNpbmNsdWRlICJZQ29sb3IuaCIKKyAKKyAKKy1jbGFzcyBZQmFyR3JhcGhQcml2YXRlOworK3N0cnVjdCBZQmFyR3JhcGhQcml2YXRlOworIGNsYXNzIFlCYXJHcmFwaFNlZ21lbnQ7CisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lCdXN5SW5kaWNhdG9yLmggYi9zcmMvWUJ1c3lJbmRpY2F0b3IuaAoraW5kZXggOTUzMGZhNS4uNzUyOTdkOCAxMDA2NDQKKy0tLSBhL3NyYy9ZQnVzeUluZGljYXRvci5oCisrKysgYi9zcmMvWUJ1c3lJbmRpY2F0b3IuaAorQEAgLTI3LDcgKzI3LDcgQEAKKyAKKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorIAorLWNsYXNzIFlCdXN5SW5kaWNhdG9yUHJpdmF0ZTsKKytzdHJ1Y3QgWUJ1c3lJbmRpY2F0b3JQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZQnV0dG9uQm94LmggYi9zcmMvWUJ1dHRvbkJveC5oCitpbmRleCA4NGY4ZGJiLi5jYTUxZjU3IDEwMDY0NAorLS0tIGEvc3JjL1lCdXR0b25Cb3guaAorKysrIGIvc3JjL1lCdXR0b25Cb3guaAorQEAgLTMwLDcgKzMwLDcgQEAKKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorICNpbmNsdWRlICJZUHVzaEJ1dHRvbi5oIgorIAorLWNsYXNzIFlCdXR0b25Cb3hQcml2YXRlOworK3N0cnVjdCBZQnV0dG9uQm94UHJpdmF0ZTsKKyBjbGFzcyBZUHVzaEJ1dHRvbjsKKyAKKyAKK0BAIC0xNDcsNyArMTQ3LDcgQEAgc3RydWN0IFlCdXR0b25Cb3hNYXJnaW5zCisgICoqLworIGNsYXNzIFlCdXR0b25Cb3ggOiBwdWJsaWMgWVdpZGdldAorIHsKKy0gICAgZnJpZW5kIGNsYXNzIFlCdXR0b25Cb3hQcml2YXRlOworKyAgICBmcmllbmQgc3RydWN0IFlCdXR0b25Cb3hQcml2YXRlOworIAorIHByb3RlY3RlZDoKKyAgICAgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lDaGVja0JveC5oIGIvc3JjL1lDaGVja0JveC5oCitpbmRleCA3OTNjYzc3Li4wM2YzZmFhIDEwMDY0NAorLS0tIGEvc3JjL1lDaGVja0JveC5oCisrKysgYi9zcmMvWUNoZWNrQm94LmgKK0BAIC0zMCw3ICszMCw3IEBACisgI2luY2x1ZGUgIllXaWRnZXQuaCIKKyAjaW5jbHVkZSAiSW1wbFB0ci5oIgorIAorLWNsYXNzIFlDaGVja0JveFByaXZhdGU7Cisrc3RydWN0IFlDaGVja0JveFByaXZhdGU7CisgCisgZW51bSBZQ2hlY2tCb3hTdGF0ZQorIHsKK2RpZmYgLS1naXQgYS9zcmMvWUNoZWNrQm94RnJhbWUuaCBiL3NyYy9ZQ2hlY2tCb3hGcmFtZS5oCitpbmRleCAyNDNmMWEwLi43MDE3MTEwIDEwMDY0NAorLS0tIGEvc3JjL1lDaGVja0JveEZyYW1lLmgKKysrKyBiL3NyYy9ZQ2hlY2tCb3hGcmFtZS5oCitAQCAtMjksNyArMjksNyBAQAorICNpbmNsdWRlICJZU2luZ2xlQ2hpbGRDb250YWluZXJXaWRnZXQuaCIKKyAjaW5jbHVkZSAiSW1wbFB0ci5oIgorIAorLWNsYXNzIFlDaGVja0JveEZyYW1lUHJpdmF0ZTsKKytzdHJ1Y3QgWUNoZWNrQm94RnJhbWVQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZQ29tYm9Cb3guaCBiL3NyYy9ZQ29tYm9Cb3guaAoraW5kZXggNDE2MzU5YS4uYWQwZTU1MCAxMDA2NDQKKy0tLSBhL3NyYy9ZQ29tYm9Cb3guaAorKysrIGIvc3JjL1lDb21ib0JveC5oCitAQCAtMjcsNyArMjcsNyBAQAorIAorICNpbmNsdWRlICJZU2VsZWN0aW9uV2lkZ2V0LmgiCisgCistY2xhc3MgWUNvbWJvQm94UHJpdmF0ZTsKKytzdHJ1Y3QgWUNvbWJvQm94UHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWUNvbW1hbmRMaW5lLmggYi9zcmMvWUNvbW1hbmRMaW5lLmgKK2luZGV4IDcwY2I0ZmUuLmYzNDRhM2IgMTAwNjQ0CistLS0gYS9zcmMvWUNvbW1hbmRMaW5lLmgKKysrKyBiL3NyYy9ZQ29tbWFuZExpbmUuaAorQEAgLTI4LDcgKzI4LDcgQEAKKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlICJJbXBsUHRyLmgiCisgCistY2xhc3MgWUNvbW1hbmRMaW5lUHJpdmF0ZTsKKytzdHJ1Y3QgWUNvbW1hbmRMaW5lUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWUNvbnRleHRNZW51LmggYi9zcmMvWUNvbnRleHRNZW51LmgKK2luZGV4IGE0YWNiMWMuLjEyNTMwMDIgMTAwNjQ0CistLS0gYS9zcmMvWUNvbnRleHRNZW51LmgKKysrKyBiL3NyYy9ZQ29udGV4dE1lbnUuaAorQEAgLTI5LDcgKzI5LDcgQEAKKyAjaW5jbHVkZSAiWU1lbnVJdGVtLmgiCisgCisgY2xhc3MgWU1lbnVJdGVtOworLWNsYXNzIFlDb250ZXh0TWVudVByaXZhdGU7Cisrc3RydWN0IFlDb250ZXh0TWVudVByaXZhdGU7CisgCisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lEYXRlRmllbGQuaCBiL3NyYy9ZRGF0ZUZpZWxkLmgKK2luZGV4IGU1YTQ2OGQuLjYxNjRmYmEgMTAwNjQ0CistLS0gYS9zcmMvWURhdGVGaWVsZC5oCisrKysgYi9zcmMvWURhdGVGaWVsZC5oCitAQCAtMjcsNyArMjcsNyBAQAorIAorICNpbmNsdWRlICJZU2ltcGxlSW5wdXRGaWVsZC5oIgorIAorLWNsYXNzIFlEYXRlRmllbGRQcml2YXRlOworK3N0cnVjdCBZRGF0ZUZpZWxkUHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBJbnB1dCBmaWVsZCBmb3IgZW50ZXJpbmcgYSBkYXRlLgorZGlmZiAtLWdpdCBhL3NyYy9ZRGlhbG9nLmggYi9zcmMvWURpYWxvZy5oCitpbmRleCA2NmMyNWMwLi4zNzEyMDliIDEwMDY0NAorLS0tIGEvc3JjL1lEaWFsb2cuaAorKysrIGIvc3JjL1lEaWFsb2cuaAorQEAgLTMyLDcgKzMyLDcgQEAKKyAKKyBjbGFzcyBZU2hvcnRjdXRNYW5hZ2VyOworIGNsYXNzIFlQdXNoQnV0dG9uOworLWNsYXNzIFlEaWFsb2dQcml2YXRlOworK3N0cnVjdCBZRGlhbG9nUHJpdmF0ZTsKKyBjbGFzcyBZRXZlbnQ7CisgY2xhc3MgWUV2ZW50RmlsdGVyOworIAorZGlmZiAtLWdpdCBhL3NyYy9ZRG93bmxvYWRQcm9ncmVzcy5oIGIvc3JjL1lEb3dubG9hZFByb2dyZXNzLmgKK2luZGV4IGM0N2VjNGYuLmZlMDlhOWQgMTAwNjQ0CistLS0gYS9zcmMvWURvd25sb2FkUHJvZ3Jlc3MuaAorKysrIGIvc3JjL1lEb3dubG9hZFByb2dyZXNzLmgKK0BAIC0yOCw3ICsyOCw3IEBACisgI2luY2x1ZGUgIllXaWRnZXQuaCIKKyAKKyAKKy1jbGFzcyBZRG93bmxvYWRQcm9ncmVzc1ByaXZhdGU7Cisrc3RydWN0IFlEb3dubG9hZFByb2dyZXNzUHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBEb3dubG9hZFByb2dyZXNzOiBBIHByb2dyZXNzIGJhciB0aGF0IG1vbml0b3JzIGRvd25sb2FkaW5nIGEgZmlsZSBieQorZGlmZiAtLWdpdCBhL3NyYy9ZRHVtYlRhYi5oIGIvc3JjL1lEdW1iVGFiLmgKK2luZGV4IGFlYzE3YTMuLmY4ZmIyNTAgMTAwNjQ0CistLS0gYS9zcmMvWUR1bWJUYWIuaAorKysrIGIvc3JjL1lEdW1iVGFiLmgKK0BAIC0yNyw3ICsyNyw3IEBACisgCisgI2luY2x1ZGUgIllTZWxlY3Rpb25XaWRnZXQuaCIKKyAKKy1jbGFzcyBZRHVtYlRhYlByaXZhdGU7Cisrc3RydWN0IFlEdW1iVGFiUHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBEdW1iVGFiOiBBIHZlcnkgc2ltcGxlIHRhYiB3aWRnZXQgdGhhdCBjYW4gZGlzcGxheSBhbmQgc3dpdGNoIGJldHdlZW4gYQorZGlmZiAtLWdpdCBhL3NyYy9ZRW1wdHkuaCBiL3NyYy9ZRW1wdHkuaAoraW5kZXggOWEzY2IzNi4uOWI4OGZiYyAxMDA2NDQKKy0tLSBhL3NyYy9ZRW1wdHkuaAorKysrIGIvc3JjL1lFbXB0eS5oCitAQCAtMjksNyArMjksNyBAQAorICNpbmNsdWRlICJJbXBsUHRyLmgiCisgCisgCistY2xhc3MgWUVtcHR5UHJpdmF0ZTsKKytzdHJ1Y3QgWUVtcHR5UHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBBIHdpZGdldCB3aXRoIHplcm8gc2l6ZSwgdXNlZnVsIGFzIGEgcGxhY2Vob2xkZXIuCitkaWZmIC0tZ2l0IGEvc3JjL1lFdmVudEZpbHRlci5oIGIvc3JjL1lFdmVudEZpbHRlci5oCitpbmRleCAzZGMxODAzLi43NGFhNjJkIDEwMDY0NAorLS0tIGEvc3JjL1lFdmVudEZpbHRlci5oCisrKysgYi9zcmMvWUV2ZW50RmlsdGVyLmgKK0BAIC0zMiw3ICszMiw3IEBACisgY2xhc3MgWUV2ZW50OworIGNsYXNzIFlEaWFsb2c7CisgCistY2xhc3MgWUV2ZW50RmlsdGVyUHJpdmF0ZTsKKytzdHJ1Y3QgWUV2ZW50RmlsdGVyUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWUZyYW1lLmggYi9zcmMvWUZyYW1lLmgKK2luZGV4IDExMWU4ZWMuLjRmOGM2MWUgMTAwNjQ0CistLS0gYS9zcmMvWUZyYW1lLmgKKysrKyBiL3NyYy9ZRnJhbWUuaAorQEAgLTI5LDcgKzI5LDcgQEAKKyAjaW5jbHVkZSAiWVNpbmdsZUNoaWxkQ29udGFpbmVyV2lkZ2V0LmgiCisgI2luY2x1ZGUgIkltcGxQdHIuaCIKKyAKKy1jbGFzcyBZRnJhbWVQcml2YXRlOworK3N0cnVjdCBZRnJhbWVQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZR3JhcGguaCBiL3NyYy9ZR3JhcGguaAoraW5kZXggZDkwZDFhZS4uMjg3ZDgwMCAxMDA2NDQKKy0tLSBhL3NyYy9ZR3JhcGguaAorKysrIGIvc3JjL1lHcmFwaC5oCitAQCAtMzcsNyArMzcsNyBAQAorICAqIEZvciB0aGF0IHJlYXNvbiBhIGxvdCBvZiBmdW5jdGlvbnMgc2ltcGx5IHRha2UgYSB2b2lkKiBpbnN0ZWFkIG9mIGdyYXBoX3QqLgorICAqLworIAorLWNsYXNzIFlHcmFwaFByaXZhdGU7Cisrc3RydWN0IFlHcmFwaFByaXZhdGU7CisgCisgLyoqCisgICogQSBncmFwaCB3aXRoIG5vZGVzIGFuZCBlZGdlcywgcmVuZGVyZWQgd2l0aCBHcmFwaHZpei4KK2RpZmYgLS1naXQgYS9zcmMvWUltYWdlLmggYi9zcmMvWUltYWdlLmgKK2luZGV4IDE3YmVhMjEuLjg0ZWI2NzQgMTAwNjQ0CistLS0gYS9zcmMvWUltYWdlLmgKKysrKyBiL3NyYy9ZSW1hZ2UuaAorQEAgLTI5LDcgKzI5LDcgQEAKKyAjaW5jbHVkZSA8c3RyaW5nPgorIAorIAorLWNsYXNzIFlJbWFnZVByaXZhdGU7Cisrc3RydWN0IFlJbWFnZVByaXZhdGU7CisgCisgLyoqCisgICogQSBwaWN0dXJlLCBwb3NzaWJseSBhbmltYXRlZCwgbG9hZGVkIGZyb20gYSBmaWxlLgorZGlmZiAtLWdpdCBhL3NyYy9ZSW5wdXRGaWVsZC5oIGIvc3JjL1lJbnB1dEZpZWxkLmgKK2luZGV4IDcwNjQxY2UuLmZhMjliNDIgMTAwNjQ0CistLS0gYS9zcmMvWUlucHV0RmllbGQuaAorKysrIGIvc3JjL1lJbnB1dEZpZWxkLmgKK0BAIC0yOCw3ICsyOCw3IEBACisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorIAorLWNsYXNzIFlJbnB1dEZpZWxkUHJpdmF0ZTsKKytzdHJ1Y3QgWUlucHV0RmllbGRQcml2YXRlOworIAorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9ZSW50RmllbGQuaCBiL3NyYy9ZSW50RmllbGQuaAoraW5kZXggOWRhMDUzNy4uOGFkMjk0OSAxMDA2NDQKKy0tLSBhL3NyYy9ZSW50RmllbGQuaAorKysrIGIvc3JjL1lJbnRGaWVsZC5oCitAQCAtMjcsNyArMjcsNyBAQAorIAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgCistY2xhc3MgWUludEZpZWxkUHJpdmF0ZTsKKytzdHJ1Y3QgWUludEZpZWxkUHJpdmF0ZTsKKyAKKyAKKyAKK2RpZmYgLS1naXQgYS9zcmMvWUxhYmVsLmggYi9zcmMvWUxhYmVsLmgKK2luZGV4IGQyZmZmNjEuLmJmMDZkOGIgMTAwNjQ0CistLS0gYS9zcmMvWUxhYmVsLmgKKysrKyBiL3NyYy9ZTGFiZWwuaAorQEAgLTMwLDcgKzMwLDcgQEAKKyAjaW5jbHVkZSAiSW1wbFB0ci5oIgorIAorIAorLWNsYXNzIFlMYWJlbFByaXZhdGU7Cisrc3RydWN0IFlMYWJlbFByaXZhdGU7CisgCisgLyoqCisgICogSW1wbGVtZW50YXRpb24gb2YgdGhlIExhYmVsLCBIZWFkaW5nIGFuZCBPdXRwdXRGaWVsZCB3aWRnZXRzCitkaWZmIC0tZ2l0IGEvc3JjL1lMYXlvdXRCb3guaCBiL3NyYy9ZTGF5b3V0Qm94LmgKK2luZGV4IGU2NTJhNDUuLjA3MGVhZmYgMTAwNjQ0CistLS0gYS9zcmMvWUxheW91dEJveC5oCisrKysgYi9zcmMvWUxheW91dEJveC5oCitAQCAtMjksNyArMjksNyBAQAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgCisgCistY2xhc3MgWUxheW91dEJveFByaXZhdGU7Cisrc3RydWN0IFlMYXlvdXRCb3hQcml2YXRlOworIAorIC8qKgorICAqIEEgdmVydGljYWwgb3IgaG9yaXpvbnRhbCBzdGFja2luZyBvZiB3aWRnZXRzLCBpbXBsZW1lbnRpbmcgSEJveCBhbmQgVkJveC4KK2RpZmYgLS1naXQgYS9zcmMvWUxvZ1ZpZXcuaCBiL3NyYy9ZTG9nVmlldy5oCitpbmRleCA1M2ZiOWVlLi41YjQ0MjI5IDEwMDY0NAorLS0tIGEvc3JjL1lMb2dWaWV3LmgKKysrKyBiL3NyYy9ZTG9nVmlldy5oCitAQCAtMjcsNyArMjcsNyBAQAorIAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgCistY2xhc3MgWUxvZ1ZpZXdQcml2YXRlOworK3N0cnVjdCBZTG9nVmlld1ByaXZhdGU7CisgCisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lNZW51QnV0dG9uLmggYi9zcmMvWU1lbnVCdXR0b24uaAoraW5kZXggMjA1ZTczMC4uNWRmN2VmYiAxMDA2NDQKKy0tLSBhL3NyYy9ZTWVudUJ1dHRvbi5oCisrKysgYi9zcmMvWU1lbnVCdXR0b24uaAorQEAgLTI5LDcgKzI5LDcgQEAKKyAjaW5jbHVkZSAiWU1lbnVJdGVtLmgiCisgCisgY2xhc3MgWU1lbnVJdGVtOworLWNsYXNzIFlNZW51QnV0dG9uUHJpdmF0ZTsKKytzdHJ1Y3QgWU1lbnVCdXR0b25Qcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZTXVsdGlMaW5lRWRpdC5oIGIvc3JjL1lNdWx0aUxpbmVFZGl0LmgKK2luZGV4IGM1MmE2YWUuLjFmNzkyZjggMTAwNjQ0CistLS0gYS9zcmMvWU11bHRpTGluZUVkaXQuaAorKysrIGIvc3JjL1lNdWx0aUxpbmVFZGl0LmgKK0BAIC0yNyw3ICsyNyw3IEBACisgCisgI2luY2x1ZGUgIllXaWRnZXQuaCIKKyAKKy1jbGFzcyBZTXVsdGlMaW5lRWRpdFByaXZhdGU7Cisrc3RydWN0IFlNdWx0aUxpbmVFZGl0UHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBBIG11bHRpLWxpbmUgcGxhaW4tdGV4dCBhcmVhCitkaWZmIC0tZ2l0IGEvc3JjL1lNdWx0aVByb2dyZXNzTWV0ZXIuaCBiL3NyYy9ZTXVsdGlQcm9ncmVzc01ldGVyLmgKK2luZGV4IDU3Yzc1OGQuLmY2YmVjOTEgMTAwNjQ0CistLS0gYS9zcmMvWU11bHRpUHJvZ3Jlc3NNZXRlci5oCisrKysgYi9zcmMvWU11bHRpUHJvZ3Jlc3NNZXRlci5oCitAQCAtMjgsNyArMjgsNyBAQAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKy1jbGFzcyBZTXVsdGlQcm9ncmVzc01ldGVyUHJpdmF0ZTsKKytzdHJ1Y3QgWU11bHRpUHJvZ3Jlc3NNZXRlclByaXZhdGU7CisgCisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lNdWx0aVNlbGVjdGlvbkJveC5oIGIvc3JjL1lNdWx0aVNlbGVjdGlvbkJveC5oCitpbmRleCBiYmU1YTIwLi5mM2EyOTQ3IDEwMDY0NAorLS0tIGEvc3JjL1lNdWx0aVNlbGVjdGlvbkJveC5oCisrKysgYi9zcmMvWU11bHRpU2VsZWN0aW9uQm94LmgKK0BAIC0yNyw3ICsyNyw3IEBACisgCisgI2luY2x1ZGUgIllTZWxlY3Rpb25XaWRnZXQuaCIKKyAKKy1jbGFzcyBZTXVsdGlTZWxlY3Rpb25Cb3hQcml2YXRlOworK3N0cnVjdCBZTXVsdGlTZWxlY3Rpb25Cb3hQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZUGFydGl0aW9uU3BsaXR0ZXIuaCBiL3NyYy9ZUGFydGl0aW9uU3BsaXR0ZXIuaAoraW5kZXggMjgzOWJiYy4uOWRlMTE3NCAxMDA2NDQKKy0tLSBhL3NyYy9ZUGFydGl0aW9uU3BsaXR0ZXIuaAorKysrIGIvc3JjL1lQYXJ0aXRpb25TcGxpdHRlci5oCitAQCAtMjgsNyArMjgsNyBAQAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgCisgCistY2xhc3MgWVBhcnRpdGlvblNwbGl0dGVyUHJpdmF0ZTsKKytzdHJ1Y3QgWVBhcnRpdGlvblNwbGl0dGVyUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVByb2dyZXNzQmFyLmggYi9zcmMvWVByb2dyZXNzQmFyLmgKK2luZGV4IDcxODM1MmYuLmJhYWI2NjIgMTAwNjQ0CistLS0gYS9zcmMvWVByb2dyZXNzQmFyLmgKKysrKyBiL3NyYy9ZUHJvZ3Jlc3NCYXIuaAorQEAgLTI3LDcgKzI3LDcgQEAKKyAKKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorIAorLWNsYXNzIFlQcm9ncmVzc0JhclByaXZhdGU7Cisrc3RydWN0IFlQcm9ncmVzc0JhclByaXZhdGU7CisgCisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lQdXNoQnV0dG9uLmggYi9zcmMvWVB1c2hCdXR0b24uaAoraW5kZXggNWI2NWM5OC4uZTI4ODI1MiAxMDA2NDQKKy0tLSBhL3NyYy9ZUHVzaEJ1dHRvbi5oCisrKysgYi9zcmMvWVB1c2hCdXR0b24uaAorQEAgLTI3LDcgKzI3LDcgQEAKKyAKKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorIAorLWNsYXNzIFlQdXNoQnV0dG9uUHJpdmF0ZTsKKytzdHJ1Y3QgWVB1c2hCdXR0b25Qcml2YXRlOworIAorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9ZUmFkaW9CdXR0b24uaCBiL3NyYy9ZUmFkaW9CdXR0b24uaAoraW5kZXggOWRjNjJkZS4uNWE3YzBkZCAxMDA2NDQKKy0tLSBhL3NyYy9ZUmFkaW9CdXR0b24uaAorKysrIGIvc3JjL1lSYWRpb0J1dHRvbi5oCitAQCAtMjgsNyArMjgsNyBAQAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgCisgY2xhc3MgWVJhZGlvQnV0dG9uR3JvdXA7CistY2xhc3MgWVJhZGlvQnV0dG9uUHJpdmF0ZTsKKytzdHJ1Y3QgWVJhZGlvQnV0dG9uUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVJhZGlvQnV0dG9uR3JvdXAuaCBiL3NyYy9ZUmFkaW9CdXR0b25Hcm91cC5oCitpbmRleCAwNjNhNTJlLi42NzFhMjU3IDEwMDY0NAorLS0tIGEvc3JjL1lSYWRpb0J1dHRvbkdyb3VwLmgKKysrKyBiL3NyYy9ZUmFkaW9CdXR0b25Hcm91cC5oCitAQCAtMjgsNyArMjgsNyBAQAorICNpbmNsdWRlICJZU2luZ2xlQ2hpbGRDb250YWluZXJXaWRnZXQuaCIKKyAKKyBjbGFzcyBZUmFkaW9CdXR0b247CistY2xhc3MgWVJhZGlvQnV0dG9uR3JvdXBQcml2YXRlOworK3N0cnVjdCBZUmFkaW9CdXR0b25Hcm91cFByaXZhdGU7CisgCisgdHlwZWRlZiBzdGQ6Omxpc3Q8WVJhZGlvQnV0dG9uICo+IAkJWVJhZGlvQnV0dG9uTGlzdDsKKyB0eXBlZGVmIFlSYWRpb0J1dHRvbkxpc3Q6Oml0ZXJhdG9yCQlZUmFkaW9CdXR0b25MaXN0SXRlcmF0b3I7CitkaWZmIC0tZ2l0IGEvc3JjL1lSaWNoVGV4dC5oIGIvc3JjL1lSaWNoVGV4dC5oCitpbmRleCAxNDliZmIzLi44NmIzZjgwIDEwMDY0NAorLS0tIGEvc3JjL1lSaWNoVGV4dC5oCisrKysgYi9zcmMvWVJpY2hUZXh0LmgKK0BAIC0zMCw3ICszMCw3IEBACisgI2luY2x1ZGUgIkltcGxQdHIuaCIKKyAKKyAKKy1jbGFzcyBZUmljaFRleHRQcml2YXRlOworK3N0cnVjdCBZUmljaFRleHRQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZU2VsZWN0aW9uQm94LmggYi9zcmMvWVNlbGVjdGlvbkJveC5oCitpbmRleCA3ZmM0ZmI4Li45YmJmOWYzIDEwMDY0NAorLS0tIGEvc3JjL1lTZWxlY3Rpb25Cb3guaAorKysrIGIvc3JjL1lTZWxlY3Rpb25Cb3guaAorQEAgLTI3LDcgKzI3LDcgQEAKKyAKKyAjaW5jbHVkZSAiWVNlbGVjdGlvbldpZGdldC5oIgorIAorLWNsYXNzIFlTZWxlY3Rpb25Cb3hQcml2YXRlOworK3N0cnVjdCBZU2VsZWN0aW9uQm94UHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVNlbGVjdGlvbldpZGdldC5oIGIvc3JjL1lTZWxlY3Rpb25XaWRnZXQuaAoraW5kZXggYWJiZGZiNC4uY2YwNWFmZCAxMDA2NDQKKy0tLSBhL3NyYy9ZU2VsZWN0aW9uV2lkZ2V0LmgKKysrKyBiL3NyYy9ZU2VsZWN0aW9uV2lkZ2V0LmgKK0BAIC0yOSw3ICsyOSw3IEBACisgI2luY2x1ZGUgIllJdGVtLmgiCisgI2luY2x1ZGUgIkltcGxQdHIuaCIKKyAKKy1jbGFzcyBZU2VsZWN0aW9uV2lkZ2V0UHJpdmF0ZTsKKytzdHJ1Y3QgWVNlbGVjdGlvbldpZGdldFByaXZhdGU7CisgCisgLyoqCisgICogQmFzZSBjbGFzcyBmb3IgdmFyaW91cyBraW5kcyBvZiBtdWx0aS12YWx1ZSB3aWRnZXRzLgorZGlmZiAtLWdpdCBhL3NyYy9ZU2ltcGxlSW5wdXRGaWVsZC5oIGIvc3JjL1lTaW1wbGVJbnB1dEZpZWxkLmgKK2luZGV4IDZkOTI2ZDQuLmI5M2ZlNmIgMTAwNjQ0CistLS0gYS9zcmMvWVNpbXBsZUlucHV0RmllbGQuaAorKysrIGIvc3JjL1lTaW1wbGVJbnB1dEZpZWxkLmgKK0BAIC0yNyw3ICsyNyw3IEBACisgCisgI2luY2x1ZGUgIllXaWRnZXQuaCIKKyAKKy1jbGFzcyBZU2ltcGxlSW5wdXRGaWVsZFByaXZhdGU7Cisrc3RydWN0IFlTaW1wbGVJbnB1dEZpZWxkUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVNsaWRlci5oIGIvc3JjL1lTbGlkZXIuaAoraW5kZXggZDI5ZjZiOC4uNGJjZDdkMyAxMDA2NDQKKy0tLSBhL3NyYy9ZU2xpZGVyLmgKKysrKyBiL3NyYy9ZU2xpZGVyLmgKK0BAIC0yNyw3ICsyNyw3IEBACisgCisgI2luY2x1ZGUgIllJbnRGaWVsZC5oIgorIAorLWNsYXNzIFlTbGlkZXJQcml2YXRlOworK3N0cnVjdCBZU2xpZGVyUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVNwYWNpbmcuaCBiL3NyYy9ZU3BhY2luZy5oCitpbmRleCBlOGFhZmQzLi4wNjZjZDY4IDEwMDY0NAorLS0tIGEvc3JjL1lTcGFjaW5nLmgKKysrKyBiL3NyYy9ZU3BhY2luZy5oCitAQCAtMjgsNyArMjgsNyBAQAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgI2luY2x1ZGUgIkltcGxQdHIuaCIKKyAKKy1jbGFzcyBZU3BhY2luZ1ByaXZhdGU7Cisrc3RydWN0IFlTcGFjaW5nUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVNxdWFzaC5oIGIvc3JjL1lTcXVhc2guaAoraW5kZXggNGJkMGZiNi4uMzgwNGNjNCAxMDA2NDQKKy0tLSBhL3NyYy9ZU3F1YXNoLmgKKysrKyBiL3NyYy9ZU3F1YXNoLmgKK0BAIC0yOSw3ICsyOSw3IEBACisgI2luY2x1ZGUgIkltcGxQdHIuaCIKKyAKKyAKKy1jbGFzcyBZU3F1YXNoUHJpdmF0ZTsKKytzdHJ1Y3QgWVNxdWFzaFByaXZhdGU7CisgCisgLyoqCisgICogSFNxdWFzaCwgVlNxdWFzaCBIVlNxdWFzaDogcmVkdWNlIGNoaWxkIHRvIGl0cyBwcmVmZXJyZWQgc2l6ZS4KK2RpZmYgLS1naXQgYS9zcmMvWVRhYmxlLmggYi9zcmMvWVRhYmxlLmgKK2luZGV4IDY2OTRmMTAuLjQ2OWI4Y2EgMTAwNjQ0CistLS0gYS9zcmMvWVRhYmxlLmgKKysrKyBiL3NyYy9ZVGFibGUuaAorQEAgLTMwLDcgKzMwLDcgQEAKKyAjaW5jbHVkZSAiWVRhYmxlSXRlbS5oIgorICNpbmNsdWRlICJZVGFibGVIZWFkZXIuaCIKKyAKKy1jbGFzcyBZVGFibGVQcml2YXRlOworK3N0cnVjdCBZVGFibGVQcml2YXRlOworIAorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9ZVGFibGVIZWFkZXIuaCBiL3NyYy9ZVGFibGVIZWFkZXIuaAoraW5kZXggNzAxNjZjMi4uNGFlOTliNCAxMDA2NDQKKy0tLSBhL3NyYy9ZVGFibGVIZWFkZXIuaAorKysrIGIvc3JjL1lUYWJsZUhlYWRlci5oCitAQCAtMzEsNyArMzEsNyBAQAorIAorIAorIAorLWNsYXNzIFlUYWJsZUhlYWRlclByaXZhdGU7Cisrc3RydWN0IFlUYWJsZUhlYWRlclByaXZhdGU7CisgCisgLyoqCisgICogSGVscGVyIGNsYXNzIGZvciBZVGFibGUgZm9yIHRhYmxlIGNvbHVtbiBwcm9wZXJ0aWVzOgorZGlmZiAtLWdpdCBhL3NyYy9ZVGltZUZpZWxkLmggYi9zcmMvWVRpbWVGaWVsZC5oCitpbmRleCBhYjJmOWEzLi5mM2E3Yjk0IDEwMDY0NAorLS0tIGEvc3JjL1lUaW1lRmllbGQuaAorKysrIGIvc3JjL1lUaW1lRmllbGQuaAorQEAgLTI3LDcgKzI3LDcgQEAKKyAKKyAjaW5jbHVkZSAiWVNpbXBsZUlucHV0RmllbGQuaCIKKyAKKy1jbGFzcyBZVGltZUZpZWxkUHJpdmF0ZTsKKytzdHJ1Y3QgWVRpbWVGaWVsZFByaXZhdGU7CisgCisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lUaW1lem9uZVNlbGVjdG9yLmNjIGIvc3JjL1lUaW1lem9uZVNlbGVjdG9yLmNjCitpbmRleCA5MjU5YjY0Li5lMmY5YjZmIDEwMDY0NAorLS0tIGEvc3JjL1lUaW1lem9uZVNlbGVjdG9yLmNjCisrKysgYi9zcmMvWVRpbWV6b25lU2VsZWN0b3IuY2MKK0BAIC0zMiw3ICszMiw3IEBACisgCisgY2xhc3MgWVRpbWV6b25lU2VsZWN0b3JQcml2YXRlCisgeworLSAgIGJvb2wgZHVtbXk7CisrLy8gICBib29sIGR1bW15OworIH07CisgCisgCitkaWZmIC0tZ2l0IGEvc3JjL1lUcmVlLmggYi9zcmMvWVRyZWUuaAoraW5kZXggMTRmYTI3OS4uNzBlMTM2NCAxMDA2NDQKKy0tLSBhL3NyYy9ZVHJlZS5oCisrKysgYi9zcmMvWVRyZWUuaAorQEAgLTI4LDcgKzI4LDcgQEAKKyAjaW5jbHVkZSAiWVNlbGVjdGlvbldpZGdldC5oIgorIAorIGNsYXNzIFlUcmVlSXRlbTsKKy1jbGFzcyBZVHJlZVByaXZhdGU7Cisrc3RydWN0IFlUcmVlUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVVJTG9nLmggYi9zcmMvWVVJTG9nLmgKK2luZGV4IDA4OTBiYzUuLjRhOTI3YTcgMTAwNjQ0CistLS0gYS9zcmMvWVVJTG9nLmgKKysrKyBiL3NyYy9ZVUlMb2cuaAorQEAgLTY0LDcgKzY0LDcgQEAKKyAKKyAKKyAKKy1jbGFzcyBZVUlMb2dQcml2YXRlOworK3N0cnVjdCBZVUlMb2dQcml2YXRlOworIAorIGVudW0gWVVJTG9nTGV2ZWxfdAorIHsKK2RpZmYgLS1naXQgYS9zcmMvWVdpZGdldC5oIGIvc3JjL1lXaWRnZXQuaAoraW5kZXggNWIyODVkMC4uNjM2YTQxYiAxMDA2NDQKKy0tLSBhL3NyYy9ZV2lkZ2V0LmgKKysrKyBiL3NyYy9ZV2lkZ2V0LmgKK0BAIC00NSw3ICs0NSw3IEBAIHR5cGVkZWYgWUNoaWxkcmVuTWFuYWdlcjxZV2lkZ2V0PglZV2lkZ2V0Q2hpbGRyZW5NYW5hZ2VyOworIHR5cGVkZWYgWVNpbmdsZUNoaWxkTWFuYWdlcjxZV2lkZ2V0PglZU2luZ2xlV2lkZ2V0Q2hpbGRNYW5hZ2VyOworIHR5cGVkZWYgWUNoaWxkcmVuUmVqZWN0b3I8WVdpZGdldD4JWVdpZGdldENoaWxkcmVuUmVqZWN0b3I7CisgCistY2xhc3MgWVdpZGdldFByaXZhdGU7Cisrc3RydWN0IFlXaWRnZXRQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZV2l6YXJkLmggYi9zcmMvWVdpemFyZC5oCitpbmRleCA3NjcxY2JmLi45NzViNTk3IDEwMDY0NAorLS0tIGEvc3JjL1lXaXphcmQuaAorKysrIGIvc3JjL1lXaXphcmQuaAorQEAgLTI4LDcgKzI4LDcgQEAKKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorIAorIGNsYXNzIFlNYWNyb1JlY29yZGVyOworLWNsYXNzIFlXaXphcmRQcml2YXRlOworK3N0cnVjdCBZV2l6YXJkUHJpdmF0ZTsKKyBjbGFzcyBZUHVzaEJ1dHRvbjsKKyBjbGFzcyBZUmVwbGFjZVBvaW50OworIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvbGlieXVpL2xpYnl1aV9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Mjk0NTI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvbGlieXVpL2xpYnl1aV9naXQuYmIKQEAgLTAsMCArMSw0MSBAQAorU1VNTUFSWSA9ICJMaWJ5dWkgaXMgYSB3aWRnZXQgYWJzdHJhY3Rpb24gbGlicmFyeSBwcm92aWRpbmcgUXQsIEdUSyBhbmQgbmN1cnNlcyBmcm9udGVuZHMuIgorTElDRU5TRSA9ICJMR1BMdjMiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLmdwbC0zO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLmxncGwtMi4xO21kNT00ZmJkNjUzODBjZGQyNTU5NTEwNzkwMDhiMzY0NTE2YyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLmxncGwtMzttZDU9ZTZhNjAwZmQ1ZTFkOWNiZGUyZDk4MzY4MDIzM2FkMDIgXAorICAgICAgICAgICAgICAgICAgICIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2xpYnl1aS9saWJ5dWkuZ2l0IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRml4LUdDQy04LXdhcm5pbmcucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1GaXgtYnVpbGQtd2l0aC1jbGFuZy5wYXRjaCBcCisgICAgICAgICAgICIKKworUFYgPSAiMy4zLjMrZ2l0IgorU1JDUkVWID0gIjJiNjM0Y2I3ODIxZTJlNzlkZDRiN2E3M2NhZjhlNjdjNTAxODkzNzYiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK2luaGVyaXQgY21ha2UgZ2V0dGV4dCBwa2djb25maWcKKworREVQRU5EUyArPSAiYm9vc3QiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKKworZG9fY29uZmlndXJlX3ByZXBlbmQgKCkgeworICAgICAgICBjZCAke1N9CisgICAgICAgIC4vYm9vdHN0cmFwLnNoCisgICAgICAgIGNkIC0KK30KKworZG9faW5zdGFsbF9hcHBlbmQgKCkgeworICAgICAgICBpZiBbICIke2xpYmRpcn0iID0gIiR7YmFzZV9wcmVmaXh9L3Vzci9saWIiIF0gJiYgWyAtZCAke0R9L3Vzci9saWI2NCBdOyB0aGVuCisgICAgICAgICAgICBtdiAke0R9L3Vzci9saWI2NCAke0R9L3Vzci9saWIKKyAgICAgICAgZmkKK30KKworZG9faW5zdGFsbF9hcHBlbmRfY2xhc3MtbmF0aXZlc2RrICgpIHsKKyAgICAgICAgbWtkaXIgLXAgJHtEfS8ke2Jhc2VfcHJlZml4fQorICAgICAgICBtdiAke0R9L3VzciAke0R9LyR7YmFzZV9wcmVmaXh9Cit9CisKK0ZJTEVTXyR7UE59LWRldiA9ICIke2xpYmRpcn0vKiAke2luY2x1ZGVkaXJ9L3l1aSoiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9vcGVuYm94L29wZW5ib3hfMy42LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9vcGVuYm94L29wZW5ib3hfMy42LjEuYmIKaW5kZXggYjM1NGFlNy4uYzM1YTBjNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvb3BlbmJveC9vcGVuYm94XzMuNi4xLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL29wZW5ib3gvb3BlbmJveF8zLjYuMS5iYgpAQCAtMTYsOSArMTYsMTEgQEAKICMgZGVwZW5kcyBvbiB2aXJ0dWFsL2xpYngxMQogUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAotQUxURVJOQVRJVkVfJHtQTn0tY29yZSA9ICJ4LXdpbmRvdy1tYW5hZ2VyIgorQUxURVJOQVRJVkVfJHtQTn0tY29yZSA9ICJ4LXdpbmRvdy1tYW5hZ2VyIHgtc2Vzc2lvbi1tYW5hZ2VyIgogQUxURVJOQVRJVkVfVEFSR0VUW3gtd2luZG93LW1hbmFnZXJdID0gIiR7YmluZGlyfS9vcGVuYm94IgogQUxURVJOQVRJVkVfUFJJT1JJVFlbeC13aW5kb3ctbWFuYWdlcl0gPSAiMTAiCitBTFRFUk5BVElWRV9UQVJHRVRbeC1zZXNzaW9uLW1hbmFnZXJdID0gIiR7YmluZGlyfS9vcGVuYm94LXNlc3Npb24iCitBTFRFUk5BVElWRV9QUklPUklUWVt4LXNlc3Npb24tbWFuYWdlcl0gPSAiMTAwIgogCiBQQUNLQUdFQ09ORklHID8/PSAiIgogUEFDS0FHRUNPTkZJR1tpbWxpYjJdID0gIi0tZW5hYmxlLWltbGliMiwtLWRpc2FibGUtaW1saWIyLGltbGliMiIKQEAgLTM4LDcgKzQwLDcgQEAKIH0KIAogUkRFUEVORFNfJHtQTn0gKz0gIiR7UE59LWNvcmUgJHtQTn0tY29uZmlnICR7UE59LXRoZW1lLWNsZWFybG9va3MiCi1GSUxFU18ke1BOfS1jb3JlID0gIiR7YmluZGlyfS9vcGVuYm94ICR7bGliZGlyfS8qJHtTT0xJQlN9IgorRklMRVNfJHtQTn0tY29yZSA9ICIke2JpbmRpcn0vb3BlbmJveCAke2JpbmRpcn0vb3BlbmJveC1zZXNzaW9uICR7bGliZGlyfS8qJHtTT0xJQlN9IgogCiBGSUxFU18ke1BOfS1seGRlICs9ICIke2RhdGFkaXJ9L2x4ZGUvIFwKICAgICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vbHhwYW5lbCBcCkBAIC00Niw2ICs0OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2ljb25zIgogCiBGSUxFU18ke1BOfS1nbm9tZSArPSAiIFwKKyAgICAke2JpbmRpcn0vb3BlbmJveC1nbm9tZS1zZXNzaW9uIFwKICAgICAke2RhdGFkaXJ9L2dub21lIFwKICAgICAke2RhdGFkaXJ9L2dub21lLXNlc3Npb24gXAogIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAtZm9udHMtdHJ1ZXR5cGUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1mb250cy10cnVldHlwZS5iYgppbmRleCA2MzJlN2Q0Li4zMDY5ZDJkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1mb250cy10cnVldHlwZS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1mb250cy10cnVldHlwZS5iYgpAQCAtNSw3ICs1LDcgQEAKIFBWID0gIjEuMCIKIFBSID0gInIyIgogCi1pbmhlcml0IHBhY2thZ2Vncm91cCBhbGxhcmNoCitpbmhlcml0IHBhY2thZ2Vncm91cAogCiBQQUNLQUdFUyArPSAiXAogICAgICR7UE59LWNvcmUgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvcGFuZ28vcGFuZ29tbV8yLjQwLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYW5nby9wYW5nb21tXzIuNDAuMS5iYgppbmRleCAwMmJiMWNjLi5lMGY3MmNkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYW5nby9wYW5nb21tXzIuNDAuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYW5nby9wYW5nb21tXzIuNDAuMS5iYgpAQCAtMTIsNyArMTIsOSBAQAogU1JDX1VSSVttZDVzdW1dID0gIjg3NGVhZGQ5NDM0NjEzZGJhY2YwMjcyYzgyYzNhYzIzIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjk3NjJlZTJhMmQ1NzgxYmU2Nzk3NDQ4ZDRkZDIzODNjZTE0OTA3MTU5YjMwYmMxMmJmNmIwOGU3MjI3YmUzYWYiCiAKLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBFWFRSQV9PRUNPTkYgPSAiIC0tZGlzYWJsZS1kb2N1bWVudGF0aW9uICIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvcXJlbmNvZGUvcXJlbmNvZGVfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvcXJlbmNvZGUvcXJlbmNvZGVfZ2l0LmJiCmluZGV4IDZhMTU5YTcuLmY1Mzk3NzUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3FyZW5jb2RlL3FyZW5jb2RlX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9xcmVuY29kZS9xcmVuY29kZV9naXQuYmIKQEAgLTQsOSArNCw5IEBACiBTRUNUSU9OID0gImxpYnMiCiBMSUNFTlNFID0gIkxHUEx2Mi4xIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MmQ1MDI1ZDRhYTM0OTViZWZlZjhmMTcyMDZhNWIwYTEiCi1QViA9ICIzLjQuNCtnaXQke1NSQ1BWfSIKK1BWID0gIjQuMC4wK2dpdCR7U1JDUFZ9IgogCi1TUkNSRVYgPSAiMWI1NjVjN2I1OTkwMjk4MThmYzU5NmU3ZGE0MzcxYTMwODNkYTM2YyIKK1NSQ1JFViA9ICIwN2YzYzVkNGJmOTEzNjcxMTQyMmNjN2RiZjI4YWZmNDY5ZGEyMjBhIgogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2Z1a3VjaGkvbGlicXJlbmNvZGUuZ2l0IgogCiBTID0gIiR7V09SS0RJUn0vZ2l0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL01ha2VmaWxlLm9lIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL01ha2VmaWxlLm9lCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWU2OTM0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS9NYWtlZmlsZS5vZQorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLSMgTWFrZWZpbGUgZm9yIHNsaW0gLSBPcGVuRW1iZWRkZWQKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotCi1TTElNTERGTEFHUz0tbFhmdCAtbFgxMSAtbGZyZWV0eXBlIC1sWHJlbmRlciAtbGZvbnRjb25maWcgLWxwbmcxMiAtbHogLWxtIC1sY3J5cHQgLWxYbXUgLWxwbmcgLWxqcGVnIC1scnQgLWxwdGhyZWFkCi1DVVNUT009LURIQVZFX1NIQURPVwotCi1VU0VfUEFNPTEKLWlmZGVmIFVTRV9QQU0KLVNMSU1MREZMQUdTKz0gLWxwYW0KLUNVU1RPTSs9IC1EVVNFX1BBTQotZW5kaWYKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1OQU1FPXNsaW0KLVZFUlNJT049MS4zLjIKLQotREVGSU5FUz0tRFBBQ0tBR0U9XCIkKE5BTUUpXCIgLURWRVJTSU9OPVwiJChWRVJTSU9OKVwiIFwKLQkJLURQS0dEQVRBRElSPVwiJChQUkVGSVgpL3NoYXJlL3NsaW1cIiAtRFNZU0NPTkZESVI9XCIkKENGR0RJUilcIgotCi1PQkpFQ1RTPWpwZWcubyBwbmcubyBtYWluLm8gaW1hZ2UubyBudW1sb2NrLm8gY2ZnLm8gc3dpdGNodXNlci5vIGFwcC5vIFwKLQlwYW5lbC5vIHV0aWwubwotaWZkZWYgVVNFX1BBTQotT0JKRUNUUys9UEFNLm8KLWVuZGlmCi0KLWFsbDogc2xpbQotCi1zbGltOiAkKE9CSkVDVFMpCi0JJChDWFgpICQoT0JKRUNUUykgJChMREZMQUdTKSAkKFNMSU1MREZMQUdTKSAtbyAkKE5BTUUpCi0KLS5jcHAubzoKLQkkKENYWCkgJChDWFhGTEFHUykgJChERUZJTkVTKSAkKENVU1RPTSkgLWMgJDwgLW8gJEAKLQotLmMubzoKLQkkKENDKSAkKENGTEFHUykgJChERUZJTkVTKSAkKENVU1RPTSkgLWMgJDwgLW8gJEAKLQotaW5zdGFsbDogc2xpbSBpbnN0YWxsLXRoZW1lCi0JaW5zdGFsbCAtRCAtbSA3NTUgc2xpbSAkKERFU1RESVIpJChQUkVGSVgpL2Jpbi9zbGltCi0JaW5zdGFsbCAtRCAtbSA2NDQgc2xpbS4xICQoREVTVERJUikkKE1BTkRJUikvbWFuMS9zbGltLjEKLQl0ZXN0IC1lICQoREVTVERJUikkKENGR0RJUikvc2xpbS5jb25mIHx8IFwKLQkJaW5zdGFsbCAtRCAtbSA2NDQgc2xpbS5jb25mICQoREVTVERJUikkKENGR0RJUikvc2xpbS5jb25mCi0KLWNsZWFuOgotCUBybSAtZiBzbGltICoubwotCi1kaXN0OgotCUBybSAtcmYgJChOQU1FKS0kKFZFUlNJT04pCi0JQG1rZGlyICQoTkFNRSktJChWRVJTSU9OKQotCUBjcCAtciAqLmNwcCAqLmggKi5jIE1ha2VmaWxlIE1ha2VmaWxlLiogQ09QWUlORyBDaGFuZ2VMb2cgSU5TVEFMTCBSRUFETUUgVE9ETyBcCi0JCXhpbml0cmMuc2FtcGxlIHNsaW0uMSBUSEVNRVMgdGhlbWVzIHNsaW0uY29uZiAkKE5BTUUpLSQoVkVSU0lPTikKLQlAcm0gLXJmICQoTkFNRSktJChWRVJTSU9OKS90aGVtZXMvLnN2bgkkKE5BTUUpLSQoVkVSU0lPTikvdGhlbWVzL2RlZmF1bHQvLnN2bgotCUB0YXIgY3Z6ZiAkKE5BTUUpLSQoVkVSU0lPTikudGFyLmd6ICQoTkFNRSktJChWRVJTSU9OKQotCUBybSAtcmYgJChOQU1FKS0kKFZFUlNJT04pCi0KLQotaW5zdGFsbC10aGVtZToKLQlpbnN0YWxsIC1EIC1tIDY0NCB0aGVtZXMvZGVmYXVsdC9zbGltLnRoZW1lIFwKLQkJICQoREVTVERJUikkKFBSRUZJWCkvc2hhcmUvc2xpbS90aGVtZXMvZGVmYXVsdC9zbGltLnRoZW1lCi0JaW5zdGFsbCAtRCAtbSA2NDQgdGhlbWVzL2RlZmF1bHQvcGFuZWwucG5nIFwKLQkJICQoREVTVERJUikkKFBSRUZJWCkvc2hhcmUvc2xpbS90aGVtZXMvZGVmYXVsdC9wYW5lbC5wbmcKLQlpbnN0YWxsIC1EIC1tIDY0NCB0aGVtZXMvZGVmYXVsdC9iYWNrZ3JvdW5kLmpwZyBcCi0JCSAkKERFU1RESVIpJChQUkVGSVgpL3NoYXJlL3NsaW0vdGhlbWVzL2RlZmF1bHQvYmFja2dyb3VuZC5qcGcKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS9zbGltLWR5bndtIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0tZHlud20KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5YzlkNDcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0tZHlud20KKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLSMhL2Jpbi9zaAotdXBkYXRlX3NsaW1fd21saXN0Ci1pZiBbICJ4JDEiID0gIngtbm9kYWVtb24iIF07IHRoZW4KLSAgc2hpZnQKLSAgZXhlYyBzbGltICIkQCIKLWVsc2UKLSAgc2xpbSAtZCAiJEAiCi1maQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0ucGFtZCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS9zbGltLnBhbWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwYzM0YjEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0ucGFtZAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLSMgQmVnaW4gL2V0Yy9wYW0uZC9zbGltCi0KLWF1dGggICAgICAgcmVxdWlyZWQgICAgIHBhbV9zaGVsbHMuc28KLWF1dGggICAgICAgaW5jbHVkZSAgICAgIGNvbW1vbi1hdXRoCi1hdXRoICAgICAgIG9wdGlvbmFsICAgICBwYW1fc2VjdXJldHR5LnNvCi1hdXRoICAgICAgIG9wdGlvbmFsICAgICBwYW1fZ25vbWVfa2V5cmluZy5zbwotCi1hY2NvdW50ICAgIHJlcXVpcmVkICAgICBwYW1fbm9sb2dpbi5zbwotYWNjb3VudCAgICBpbmNsdWRlICAgICAgY29tbW9uLWFjY291bnQKLQotcGFzc3dvcmQgICBpbmNsdWRlICAgICAgY29tbW9uLXBhc3N3b3JkCi0KLXNlc3Npb24gICAgaW5jbHVkZSAgICAgIGNvbW1vbi1zZXNzaW9uCi1zZXNzaW9uICAgIHJlcXVpcmVkICAgICBwYW1fbWtob21lZGlyLnNvIHNrZWw9L2V0Yy9za2VsLyB1bWFzaz0wMDIyCi1zZXNzaW9uICAgIG9wdGlvbmFsICAgICBwYW1fbGFzdGxvZy5zbyBub3d0bXAKLXNlc3Npb24gICAgb3B0aW9uYWwgICAgIHBhbV9tYWlsLnNvIGRpcj0vdmFyL21haWwgc3RhbmRhcmQKLXNlc3Npb24gICAgb3B0aW9uYWwgICAgIHBhbV9nbm9tZV9rZXlyaW5nLnNvICBhdXRvX3N0YXJ0Ci0KLSMgRW5kIC9ldGMvcGFtLmQvc2xpbQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0uc2VydmljZSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS9zbGltLnNlcnZpY2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0MTM1MWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0uc2VydmljZQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVtVbml0XQotRGVzY3JpcHRpb249U0xpTSBTaW1wbGUgTG9naW4gTWFuYWdlcgotUmVxdWlyZXM9ZGV2LXR0eTcuZGV2aWNlCi1BZnRlcj1kZXYtdHR5Ny5kZXZpY2Ugc3lzdGVtZC11c2VyLXNlc3Npb25zLnNlcnZpY2UKLQotW1NlcnZpY2VdCi1FeGVjU3RhcnQ9L3Vzci9iaW4vc2xpbSAtbm9kYWVtb24KLVN0YW5kYXJkT3V0cHV0PXN5c2xvZwotCi1bSW5zdGFsbF0KLVdhbnRlZEJ5PWdyYXBoaWNhbC50YXJnZXQKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS91cGRhdGVfc2xpbV93bWxpc3QgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9zbGltL3NsaW0vdXBkYXRlX3NsaW1fd21saXN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjExNjUzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS91cGRhdGVfc2xpbV93bWxpc3QKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0jIS91c3IvYmluL3BlcmwgLXcKLSMKLSMgdXBkYXRlX3NsaW1fd21saXN0LCBiYXNlZCBvbjoKLSMgdXBkYXRlX3dkbV93bWxpc3QsIChjKSAxOTk4IE1hcmNlbG8gTWFnYWxs824gPG1tYWdhbGxvQGRlYmlhbi5vcmc+Ci0jIHJld3JpdGVuIHRvIHVzZSB0aGUgeC13aW5kb3ctbWFuYWdlciBhbHRlcm5hdGl2ZQotIyBtb2RpZmllZCB0byBhbHNvIHVzZSB0aGUgeC1zZXNzaW9uLW1hbmFnZXIgYWx0ZXJuYXRpdmUgYnkgQXJ0aHVyIEtvcm4KLSMgQ29weXJpZ2h0IDIwMDAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLSMgTW9kaWZpZWQgdG8gdXNlIHRoZSBmcmVlZGVza3RvcC5vcmcgLmRlc2t0b3AgbGlrZSBrZG0gYW5kIGdkbQotIwotIyBUaGlzIHNjcmlwdCB3aWxsIHJlYWQgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIHdpbmRvdyBtYW5hZ2VycyBmcm9tCi0jIHRoZSBmcmVlZGVza3RvcCAuZGVza3RvcCBmaWxlcyBpbiA8ZXRjPi9YMTEvc2Vzc2lvbnMvOjxldGM+L2RtL1Nlc3Npb25zLzoKLSMgPHNoYXJlPi94c2Vzc2lvbnMvCi0jIGFuZCB1cGRhdGUgdGhlIHNlc3Npb25zIGxpbmUgaW4gL2V0Yy9zbGltLmNvbmYuCi0jIEJFV0FSRTogSXQgZG9lc24ndCBhc2sgYW55IHF1ZXN0aW9ucyBhYm91dCB0aGlzLiBJdCBqdXN0IGRvZXMgaXQuIEl0Ci0jIHRha2VzIGFuIG9wdGlvbmFsIGxpc3Qgb2Ygd2luZG93IG1hbmFnZXJzLgotCi11c2Ugc3RyaWN0OwotdXNlIEZpbGU6OkRlc2t0b3BFbnRyeTsKLQotbXkgJHdtX2xpc3Q9Jyc7Ci1teSAlZGVza3RvcF9maWxlczsKLQotdW5sZXNzIChAQVJHVikgewotICAgICNteSBAd21fbGlzdCA9ICgnZGVmYXVsdCcpOwotICAgIG15IEB3bV9saXN0OwotICAgIGZvcmVhY2ggbXkgJGRpciAoJy9ldGMvWDExL3Nlc3Npb25zLycsJy9ldGMvZG0vU2Vzc2lvbnMvJywnL3Vzci9zaGFyZS94c2Vzc2lvbnMvJykgewotCSAgICBuZXh0IHVubGVzcyAob3BlbmRpciBESVIsICRkaXIpOwotCSAgICBteSBAZmlsZXM7Ci0JICAgIEBmaWxlcyA9IGdyZXAgeyAvXC5kZXNrdG9wJC8gJiYgLXIgIiRkaXIvJF8iIH0gcmVhZGRpcihESVIpOwotCSAgICBmb3JlYWNoIG15ICRmaWxlIChAZmlsZXMpIHsKLQkJICAgcHVzaCBAeyRkZXNrdG9wX2ZpbGVzeyRmaWxlfX0sICIkZGlyLyRmaWxlIjsKLQkgICAgfQotICAgIH0KLSAgICBERVNLVE9QOiBmb3JlYWNoIG15ICRkZXNrdG9wX2ZpbGUgKGtleXMoJWRlc2t0b3BfZmlsZXMpKSB7Ci0JICAgIGZvcmVhY2ggbXkgJGZpbGUgKEB7JGRlc2t0b3BfZmlsZXN7JGRlc2t0b3BfZmlsZX19KSB7Ci0JCSAgICBteSAkZW50cnkgPSBGaWxlOjpEZXNrdG9wRW50cnktPm5ld19mcm9tX2ZpbGUoJGZpbGUpOwotCQkgICAgbmV4dCBERVNLVE9QIGlmIChkZWZpbmVkKCRlbnRyeS0+Z2V0X3ZhbHVlKCdIaWRkZW4nKSkKLQkJCWFuZCAkZW50cnktPmdldF92YWx1ZSgnSGlkZGVuJykgZXEgJ3RydWUnKTsKLQkJICAgIGlmICgkZW50cnktPmdldF92YWx1ZSgnTmFtZScpID1+IC9eZ25vbWUkL2kpIHsKLQkJCSAgICBwdXNoIChAd21fbGlzdCwgJ2dub21lJyk7Ci0JCSAgICB9Ci0JCSAgICBlbHNpZiAoJGVudHJ5LT5nZXRfdmFsdWUoJ05hbWUnKSA9fiAvXmtkZSQvaSkgewotCQkJICAgIHB1c2ggKEB3bV9saXN0LCAna2RlJyk7Ci0JCSAgICB9Ci0JCSAgICBlbHNpZiAoZGVmaW5lZCgkZW50cnktPmdldF92YWx1ZSgnRXhlYycpKSkgewotCQkJICAgIHB1c2ggKEB3bV9saXN0LCAkZW50cnktPmdldF92YWx1ZSgnRXhlYycpKTsKLQkJICAgIH0KLQkJICAgIGVsc2UgeyAjIG5vdCBmb3VuZCwgZ28gdG8gbmV4dCBmaWxlCi0JCQkgICAgbmV4dDsKLQkJICAgIH0KLQkJICAgICMgZm91bmQsIHByb2NlZWQgdG8gbmV4dCBkZXN0b3AgZmlsZQotCQkgICAgbmV4dCBERVNLVE9QOwotCSAgICB9Ci0gICAgfQotICAgJHdtX2xpc3QgPSBqb2luICgnLCcsIHNvcnQgQHdtX2xpc3QpIC4gJyxjdXN0b20nOwotfSBlbHNlIHsKLSAgICAkd21fbGlzdCA9IGpvaW4gKCcsJywgc29ydCBAQVJHVik7Ci19Ci0KLW9wZW4gKFNMSU1fQ09ORklHX0ZJTEUsICc8L2V0Yy9zbGltLmNvbmYnKQotICAgIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAvZXRjL3NsaW0uY29uZiBmb3IgcmVhZGluZzogJCEiOwotb3BlbiAoTkVXX1NMSU1fQ09ORklHX0ZJTEUsICc+L2V0Yy9zbGltLmNvbmYubmV3JykKLSAgICBvciBkaWUgIkNhbid0IG9wZW4gL2V0Yy9zbGltLmNvbmYubmV3IGZvciB3cml0aW5nOiAkISI7Ci0KLXdoaWxlICg8U0xJTV9DT05GSUdfRklMRT4pIHsKLSAgICBzfF4oc2Vzc2lvbnNccyopLip8JDEkd21fbGlzdHw7Ci0gICAgcHJpbnQgTkVXX1NMSU1fQ09ORklHX0ZJTEU7Ci19Ci0KLWNsb3NlKFNMSU1fQ09ORklHX0ZJTEUpOwotY2xvc2UoTkVXX1NMSU1fQ09ORklHX0ZJTEUpOwotCi1yZW5hbWUgJy9ldGMvc2xpbS5jb25mLm5ldycsICcvZXRjL3NsaW0uY29uZicKLSAgICBvciBkaWUgIkNhbid0IHJlbmFtZSAvZXRjL3NsaW0uY29uZi5uZXc6ICQhIjsKLQotZXhpdCAwOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvdHNsaWIvdHNsaWJfMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvdHNsaWIvdHNsaWJfMS4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlN2M0OGZmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3RzbGliL3RzbGliXzEuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLVNVTU1BUlkgPSAiQW4gYWJzdHJhY3Rpb24gbGF5ZXIgZm9yIHRvdWNoc2NyZWVuIHBhbmVsIGV2ZW50cyIKLURFU0NSSVBUSU9OID0gIlRzbGliIGlzIGFuIGFic3RyYWN0aW9uIGxheWVyIGZvciB0b3VjaHNjcmVlbiBwYW5lbCBcCi1ldmVudHMsIGFzIHdlbGwgYXMgYSBmaWx0ZXIgc3RhY2sgZm9yIHRoZSBtYW5pcHVsYXRpb24gb2YgdGhvc2UgZXZlbnRzLiBcCi1Uc2xpYiBpcyBnZW5lcmFsbHkgdXNlZCBvbiBlbWJlZGRlZCBkZXZpY2VzIHRvIHByb3ZpZGUgYSBjb21tb24gdXNlciBcCi1zcGFjZSBpbnRlcmZhY2UgdG8gdG91Y2hzY3JlZW4gZnVuY3Rpb25hbGl0eS4iCi1IT01FUEFHRSA9ICJodHRwOi8vdHNsaWIub3JnLyIKLQotQVVUSE9SID0gIlJ1c3NlbGwgS2luZyB3LyBwbHVnaW5zIGJ5IENocmlzIExhcnNvbiBldC4gYWwuIgotU0VDVElPTiA9ICJiYXNlIgotTElDRU5TRSA9ICJMR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1mMzBhOTcxNmVmMzc2MmUzNDY3YTJmNjJiZjc5MGYwYSIKLQotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20va2VyZ290aC90c2xpYi9yZWxlYXNlcy9kb3dubG9hZC8ke1BWfS90c2xpYi0ke1BWfS50YXIueHo7ZG93bmxvYWRmaWxlbmFtZT10c2xpYi0ke1BWfS50YXIueHogXAotICAgICAgICAgICBmaWxlOi8vdHMuY29uZiBcCi0gICAgICAgICAgIGZpbGU6Ly90c2xpYi5zaCBcCi0iCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIxNDc3MWY4NjA3YjM0MWJiNGIyOTc4MTlkMzdlODM3ZCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmZTM1ZTVmNzEwZWE5MzNiMTE4ZjcxMGUyY2U0NDAzYWMwNzZmZTY5OTI2YjU3MDMzMzg2N2Q0ZGUwODJhNTFjIgotCi1VUFNUUkVBTV9DSEVDS19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2tlcmdvdGgvdHNsaWIvcmVsZWFzZXMiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1FWFRSQV9PRUNPTkYgPSAiLS1lbmFibGUtc2hhcmVkIC0tZGlzYWJsZS1oMzYwMCAtLWVuYWJsZS1pbnB1dCAtLWRpc2FibGUtY29yZ2kgLS1kaXNhYmxlLWNvbGxpZSAtLWRpc2FibGUtbWs3MTIgLS1kaXNhYmxlLWFyY3RpYzIgLS1kaXNhYmxlLXVjYjF4MDAiCi0KLWRvX2luc3RhbGxfcHJlcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS90cy5jb25mICR7U30vZXRjL3RzLmNvbmYKLX0KLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9wcm9maWxlLmQvCi0gICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vdHNsaWIuc2ggJHtEfSR7c3lzY29uZmRpcn0vcHJvZmlsZS5kLwotfQotCi0jIFBlb3BsZSBzaG91bGQgY29uc2lkZXIgdXNpbmcgdWRldidzIC9kZXYvaW5wdXQvdG91Y2hzY3JlZW4wIHN5bWxpbmsKLSMgaW5zdGVhZCBvZiBkZXRlY3Qtc3R5bHVzCi0jUkRFUEVORFNfdHNsaWItY29uZl93ZWlyZC1tYWNoaW5lID0gImRldGVjdC1zdHlsdXMiCi1SUFJPVklERVNfdHNsaWItY29uZiA9ICJsaWJ0cy0wLjAtY29uZiIKLQotUEFDS0FHRVMgPSsgInRzbGliLWNvbmYgdHNsaWItdGVzdHMgdHNsaWItY2FsaWJyYXRlIgotREVCSUFOX05PQVVUT05BTUVfdHNsaWItY29uZiA9ICIxIgotREVCSUFOX05PQVVUT05BTUVfdHNsaWItdGVzdHMgPSAiMSIKLURFQklBTl9OT0FVVE9OQU1FX3RzbGliLWNhbGlicmF0ZSA9ICIxIgotCi1SREVQRU5EU18ke1BOfSA9ICJ0c2xpYi1jb25mIgotUlJFQ09NTUVORFNfJHtQTn0gPSAicG9pbnRlcmNhbCIKLQotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vdHMvKi5sYSIKLUZJTEVTX3RzbGliLWNvbmYgPSAiJHtzeXNjb25mZGlyfS90cy5jb25mICR7c3lzY29uZmRpcn0vcHJvZmlsZS5kL3RzbGliLnNoICR7ZGF0YWRpcn0vdHNsaWIiCi1GSUxFU18ke1BOfSA9ICIke2xpYmRpcn0vKi5zby4qICR7bGliZGlyfS90cy8qLnNvKiIKLUZJTEVTX3RzbGliLWNhbGlicmF0ZSArPSAiJHtiaW5kaXJ9L3RzX2NhbGlicmF0ZSIKLUZJTEVTX3RzbGliLXRlc3RzID0gIiR7YmluZGlyfS90c19oYXJ2ZXN0ICR7YmluZGlyfS90c19wcmludCAke2JpbmRpcn0vdHNfcHJpbnRfcmF3ICR7YmluZGlyfS90c190ZXN0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvdHNsaWIvdHNsaWJfMS4xNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3RzbGliL3RzbGliXzEuMTUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FlOTQxYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3RzbGliL3RzbGliXzEuMTUuYmIKQEAgLTAsMCArMSw4MiBAQAorU1VNTUFSWSA9ICJBbiBhYnN0cmFjdGlvbiBsYXllciBmb3IgdG91Y2hzY3JlZW4gcGFuZWwgZXZlbnRzIgorREVTQ1JJUFRJT04gPSAiVHNsaWIgaXMgYW4gYWJzdHJhY3Rpb24gbGF5ZXIgZm9yIHRvdWNoc2NyZWVuIHBhbmVsIFwKK2V2ZW50cywgYXMgd2VsbCBhcyBhIGZpbHRlciBzdGFjayBmb3IgdGhlIG1hbmlwdWxhdGlvbiBvZiB0aG9zZSBldmVudHMuIFwKK1RzbGliIGlzIGdlbmVyYWxseSB1c2VkIG9uIGVtYmVkZGVkIGRldmljZXMgdG8gcHJvdmlkZSBhIGNvbW1vbiB1c2VyIFwKK3NwYWNlIGludGVyZmFjZSB0byB0b3VjaHNjcmVlbiBmdW5jdGlvbmFsaXR5LiIKK0hPTUVQQUdFID0gImh0dHA6Ly90c2xpYi5vcmcvIgorCitBVVRIT1IgPSAiTWFydGluIEtlcHBsaW5nZXIgPG1hcnRpbmtAcG9zdGVvLmRlPiIKK1NFQ1RJT04gPSAiYmFzZSIKK0xJQ0VOU0UgPSAiTEdQTHYyKyAmIEdQTHYyKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiXAorICAgIGZpbGU6Ly9DT1BZSU5HO21kNT1mYzE3OGJjZDQyNTA5MDkzOWE4YjYzNGQxZDZhOTU5NCBcCisgICAgZmlsZTovL3Rlc3RzL0NPUFlJTkc7bWQ1PWEyM2E3NGIzZjRjYWY5NjE2MjMwNzg5ZDk0MjE3YWNiIFwKKyIKKworU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20va2VyZ290aC90c2xpYi9yZWxlYXNlcy9kb3dubG9hZC8ke1BWfS90c2xpYi0ke1BWfS50YXIueHo7ZG93bmxvYWRmaWxlbmFtZT10c2xpYi0ke1BWfS50YXIueHogXAorICAgICAgICAgICBmaWxlOi8vdHMuY29uZiBcCisgICAgICAgICAgIGZpbGU6Ly90c2xpYi5zaCBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiOWZmMzY3ODhjOWFiNzZhMTBiNTg0MjIyMjdiOTYyOWUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2NlNDg4MDdjYWI2NTUwNzZkNzFhMWNlZWYzZWQwYWI4YTI1ZGY5ODA3NDk4MWQ0YThmZDE0NzdlZTVmNzEwYyIKKworVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9rZXJnb3RoL3RzbGliL3JlbGVhc2VzIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworUEFDS0FHRUNPTkZJRyA/Pz0gImRlYm91bmNlIGRlaml0dGVyIGlpciBsaW5lYXIgbWVkaWFuIHB0aHJlcyBza2lwIGxvd3Bhc3MgaW52ZXJ0IHZhcmlhbmNlIGlucHV0IHRvdWNoa2l0IHdhdmVzaGFyZSIKK1BBQ0tBR0VDT05GSUdbZGVib3VuY2VdID0gIi0tZW5hYmxlLWRlYm91bmNlLC0tZGlzYWJsZS1kZWJvdW5jZSIKK1BBQ0tBR0VDT05GSUdbZGVqaXR0ZXJdID0gIi0tZW5hYmxlLWRlaml0dGVyLC0tZGlzYWJsZS1kZWppdHRlciIKK1BBQ0tBR0VDT05GSUdbaWlyXSA9ICItLWVuYWJsZS1paXIsLS1kaXNhYmxlLWlpciIKK1BBQ0tBR0VDT05GSUdbbGluZWFyXSA9ICItLWVuYWJsZS1saW5lYXIsLS1kaXNhYmxlLWxpbmVhciIKK1BBQ0tBR0VDT05GSUdbbWVkaWFuXSA9ICItLWVuYWJsZS1tZWRpYW4sLS1kaXNhYmxlLW1lZGlhbiIKK1BBQ0tBR0VDT05GSUdbcHRocmVzXSA9ICItLWVuYWJsZS1wdGhyZXMsLS1kaXNhYmxlLXB0aHJlcyIKK1BBQ0tBR0VDT05GSUdbc2tpcF0gPSAiLS1lbmFibGUtc2tpcCwtLWRpc2FibGUtc2tpcCIKK1BBQ0tBR0VDT05GSUdbbG93cGFzc10gPSAiLS1lbmFibGUtbG93cGFzcywtLWRpc2FibGUtbG93cGFzcyIKK1BBQ0tBR0VDT05GSUdbaW52ZXJ0XSA9ICItLWVuYWJsZS1pbnZlcnQsLS1kaXNhYmxlLWludmVydCIKK1BBQ0tBR0VDT05GSUdbdmFyaWFuY2VdID0gIi0tZW5hYmxlLXZhcmlhbmNlLC0tZGlzYWJsZS12YXJpYW5jZSIKK1BBQ0tBR0VDT05GSUdbaW5wdXRdID0gIi0tZW5hYmxlLWlucHV0LC0tZGlzYWJsZS1pbnB1dCIKK1BBQ0tBR0VDT05GSUdbdGF0dW5nXSA9ICItLWVuYWJsZS10YXR1bmcsLS1kaXNhYmxlLXRhdHVuZyIKK1BBQ0tBR0VDT05GSUdbdG91Y2hraXRdID0gIi0tZW5hYmxlLXRvdWNoa2l0LC0tZGlzYWJsZS10b3VjaGtpdCIKK1BBQ0tBR0VDT05GSUdbd2F2ZXNoYXJlXSA9ICItLWVuYWJsZS13YXZlc2hhcmUsLS1kaXNhYmxlLXdhdmVzaGFyZSIKK1BBQ0tBR0VDT05GSUdbdWNiMXgwMF0gPSAiLS1lbmFibGUtdWNiMXgwMCwtLWRpc2FibGUtdWNiMXgwMCIKK1BBQ0tBR0VDT05GSUdbbWs3MTJdID0gIi0tZW5hYmxlLW1rNzEyLC0tZGlzYWJsZS1tazcxMiIKK1BBQ0tBR0VDT05GSUdbaDM2MDBdID0gIi0tZW5hYmxlLWgzNjAwLC0tZGlzYWJsZS1oMzYwMCIKK1BBQ0tBR0VDT05GSUdbZG1jXSA9ICItLWVuYWJsZS1kbWMsLS1kaXNhYmxlLWRtYyIKK1BBQ0tBR0VDT05GSUdbbGluZWFyLWgyMjAwXSA9ICItLWVuYWJsZS1saW5lYXItaDIyMDAsLS1kaXNhYmxlLWxpbmVhci1oMjIwMCIKK1BBQ0tBR0VDT05GSUdbY29yZ2ldID0gIi0tZW5hYmxlLWNvcmdpLC0tZGlzYWJsZS1jb3JnaSIKK1BBQ0tBR0VDT05GSUdbY29sbGllXSA9ICItLWVuYWJsZS1jb2xsaWUsLS1kaXNhYmxlLWNvbGxpZSIKK1BBQ0tBR0VDT05GSUdbYXJjdGljMl0gPSAiLS1lbmFibGUtYXJjdGljMiwtLWRpc2FibGUtYXJjdGljMiIKK1BBQ0tBR0VDT05GSUdbZG1jX2R1czMwMDBdID0gIi0tZW5hYmxlLWRtY19kdXMzMDAwLC0tZGlzYWJsZS1kbWNfZHVzMzAwMCIKK1BBQ0tBR0VDT05GSUdbY3k4bXJsbi1wYWxtcHJlXSA9ICItLWVuYWJsZS1jeThtcmxuLXBhbG1wcmUsLS1kaXNhYmxlLWN5OG1ybG4tcGFsbXByZSIKK1BBQ0tBR0VDT05GSUdbZ2FsYXhdID0gIi0tZW5hYmxlLWdhbGF4LC0tZGlzYWJsZS1nYWxheCIKK1BBQ0tBR0VDT05GSUdbZGVidWddID0gIi0tZW5hYmxlLWRlYnVnLC0tZGlzYWJsZS1kZWJ1ZyIKKworZG9faW5zdGFsbF9wcmVwZW5kKCkgeworICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3RzLmNvbmYgJHtTfS9ldGMvdHMuY29uZgorfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3Byb2ZpbGUuZC8KKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS90c2xpYi5zaCAke0R9JHtzeXNjb25mZGlyfS9wcm9maWxlLmQvCit9CisKK1JQUk9WSURFU190c2xpYi1jb25mID0gImxpYnRzLTAuMC1jb25mIgorCitQQUNLQUdFUyA9KyAidHNsaWItY29uZiB0c2xpYi10ZXN0cyB0c2xpYi1jYWxpYnJhdGUgdHNsaWItdWlucHV0IgorREVCSUFOX05PQVVUT05BTUVfdHNsaWItY29uZiA9ICIxIgorREVCSUFOX05PQVVUT05BTUVfdHNsaWItdGVzdHMgPSAiMSIKK0RFQklBTl9OT0FVVE9OQU1FX3RzbGliLWNhbGlicmF0ZSA9ICIxIgorREVCSUFOX05PQVVUT05BTUVfdHNsaWItdWlucHV0ID0gIjEiCisKK1JERVBFTkRTXyR7UE59ID0gInRzbGliLWNvbmYiCitSUkVDT01NRU5EU18ke1BOfSA9ICJwb2ludGVyY2FsIgorCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS90cy8qLmxhIgorRklMRVNfdHNsaWItY29uZiA9ICIke3N5c2NvbmZkaXJ9L3RzLmNvbmYgJHtzeXNjb25mZGlyfS9wcm9maWxlLmQvdHNsaWIuc2ggJHtkYXRhZGlyfS90c2xpYiIKK0ZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS8qLnNvLiogJHtsaWJkaXJ9L3RzLyouc28qIgorRklMRVNfdHNsaWItY2FsaWJyYXRlICs9ICIke2JpbmRpcn0vdHNfY2FsaWJyYXRlIgorRklMRVNfdHNsaWItdWlucHV0ICs9ICIke2JpbmRpcn0vdHNfdWlucHV0IgorCitGSUxFU190c2xpYi10ZXN0cyA9ICIke2JpbmRpcn0vdHNfaGFydmVzdCAke2JpbmRpcn0vdHNfcHJpbnQgJHtiaW5kaXJ9L3RzX3ByaW50X3JhdyAke2JpbmRpcn0vdHNfcHJpbnRfbXQgXAorICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3RzX3Rlc3QgJHtiaW5kaXJ9L3RzX3Rlc3RfbXQgJHtiaW5kaXJ9L3RzX3ZlcmlmeSAke2JpbmRpcn0vdHNfZmluZGRldiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3ZkcGF1L2xpYnZkcGF1X2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3ZkcGF1L2xpYnZkcGF1X2dpdC5iYgppbmRleCAzMWY0ZGY0Li4zMWJjY2UwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy92ZHBhdS9saWJ2ZHBhdV9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvdmRwYXUvbGlidmRwYXVfZ2l0LmJiCkBAIC0xMiw3ICsxMiw5IEBACiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBkb19pbnN0YWxsX2FwcGVuZCgpIHsKICAgICBybSAtZiAke0R9JHtsaWJkaXJ9LyovKi5sYQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveGN1cnNvcmdlbi94Y3Vyc29yZ2VuXzEuMC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveGN1cnNvcmdlbi94Y3Vyc29yZ2VuXzEuMC41LmJiCmluZGV4IDI3YTM4YzEuLmEyMWRjNDIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hjdXJzb3JnZW4veGN1cnNvcmdlbl8xLjAuNS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94Y3Vyc29yZ2VuL3hjdXJzb3JnZW5fMS4wLjUuYmIKQEAgLTcsNiArNyw4IEBACiBTUkNfVVJJW21kNXN1bV0gPSAiMDlmNTY5NzhhNjI4NTQ1MzRkZWFjYzhhYThmZjMwMzEiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYmM3MTcxYTBmYTIxMmRhODY2ZmNhMjMwMTI0MTYzMGUyMDA5YWVhOGM0ZGRiNzVmMjFiNTFhMzFjMmU0YzU4MSIKIAotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBhdXRvdG9vbHMgcGtnY29uZmlnCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvYmRmdG9wY2ZfMS4wLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9iZGZ0b3BjZl8xLjAuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzVkNTAwMi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9iZGZ0b3BjZl8xLjAuNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLXJlcXVpcmUgcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94b3JnLWFwcC1jb21tb24uaW5jCi0KLVNVTU1BUlkgPSAiYmRmdG9wY2YgaXMgYSB0b29sIHRvIGNvbnZlcnQgQkRGIGZvbnRzIHRvIFBDRiBmb250cyIKLUhPTUVQQUdFID0gImh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy94b3JnL2FwcC9iZGZ0b3BjZi8iCi1TRUNUSU9OID0gIngxMS9hcHAiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWY5YTM1MzMzYWRmNzVlZGQxZWFlZjg0YmNhNjVhNDkwIgotREVQRU5EUyA9ICJsaWJ4Zm9udCIKLQotU1JDX1VSSVttZDVzdW1dID0gIjUzYTQ4ZTFmZGZlYzI5YWIyZTg5Zjg2ZDRiN2NhOTAyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjM4ZjQ0N2JlMGM2MWY5NGM0NzNmMTI4Y2Y1MTlkZDBjZmY2M2I1ZDc3NzUyNDBhMmU4OTVhMTgzYTYxZTIwMjYiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvYmRmdG9wY2ZfMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvYmRmdG9wY2ZfMS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMTZiNWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9iZGZ0b3BjZl8xLjEuYmIKQEAgLTAsMCArMSwxMyBAQAorcmVxdWlyZSByZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hvcmctYXBwLWNvbW1vbi5pbmMKKworU1VNTUFSWSA9ICJiZGZ0b3BjZiBpcyBhIHRvb2wgdG8gY29udmVydCBCREYgZm9udHMgdG8gUENGIGZvbnRzIgorSE9NRVBBR0UgPSAiaHR0cDovL2NnaXQuZnJlZWRlc2t0b3Aub3JnL3hvcmcvYXBwL2JkZnRvcGNmLyIKK1NFQ1RJT04gPSAieDExL2FwcCIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZjlhMzUzMzNhZGY3NWVkZDFlYWVmODRiY2E2NWE0OTAiCitERVBFTkRTID0gImxpYnhmb250IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMmE0NTVkM2MwMjM5MDU5N2ZlYjljZWZiM2ZlOTdhNDUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGI0ZGYwNWZjNTNmMWU5ODk5MzYzOGQ2ZjdlMTc4ZDk1YjMxNzQ1YzQ1NjhjZWU0MDdlMTY3NDkxZmQzMTFhMiIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9zZXNzcmVnXzEuMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvc2Vzc3JlZ18xLjEuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzg4NWQ2MS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9zZXNzcmVnXzEuMS4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotcmVxdWlyZSByZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hvcmctYXBwLWNvbW1vbi5pbmMKLQotU1VNTUFSWSA9ICJhIHNpbXBsZSBwcm9ncmFtIGZvciBtYW5hZ2luZyB1dG1wL3d0bXAgZW50cmllcyIKLUxJQ0VOU0UgPSAiTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDkzOGE3MGM4MjgwYzI2NWExY2NkMjk1NDM2NWQxODUiCi1TUkNfVVJJICs9ICJmaWxlOi8vMDAwMS1NYWtlZmlsZS5hbS1FcnJvci1GaXgucGF0Y2giCi1TUkNfVVJJW21kNXN1bV0gPSAiZTIzOGM4OWRhYmM1NjZlMTgzNWUxZWNiNjFiNjA1YjkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTUxMTc3NjU3ODM1ZTA5MDJiNWVlZTdiMTk3MTMwMzViZWFhMTU4MWJiZDNjNjUwNmJhYTU1M2U3NTFlMDE3YyIKLQotQ0ZMQUdTX2FwcGVuZF9saWJjLW11c2wgPSAiIC1EX1dUTVBYX0ZJTEU9V1RNUF9GSUxFIC1EX1BBVEhfV1RNUFg9X1BBVEhfV1RNUCAtRF9VVE1QWF9GSUxFPVVUTVBfRklMRSAtRF9QQVRIX1VUTVBYPV9QQVRIX1VUTVAgIgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9zZXNzcmVnXzEuMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvc2Vzc3JlZ18xLjEuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmFmYTc4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvc2Vzc3JlZ18xLjEuMS5iYgpAQCAtMCwwICsxLDExIEBACityZXF1aXJlIHJlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveG9yZy1hcHAtY29tbW9uLmluYworCitTVU1NQVJZID0gImEgc2ltcGxlIHByb2dyYW0gZm9yIG1hbmFnaW5nIHV0bXAvd3RtcCBlbnRyaWVzIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kOTM4YTcwYzgyODBjMjY1YTFjY2QyOTU0MzY1ZDE4NSIKK1NSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLU1ha2VmaWxlLmFtLUVycm9yLUZpeC5wYXRjaCIKK1NSQ19VUklbbWQ1c3VtXSA9ICJlNDc1MTY3YTg5MmI1ODlkYTIzZWRmOGVkZjhjOTQyZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3OGE3NmFlM2YzZjZhMjY1NDdhMzQ2MzBkMWI3NDBmNDIzNDQ4NDhiNWZiNmQ3YzljN2Y3ZGEyNTVlMzVhNmUxIgorCitDRkxBR1NfYXBwZW5kX2xpYmMtbXVzbCA9ICIgLURfV1RNUFhfRklMRT1XVE1QX0ZJTEUgLURfUEFUSF9XVE1QWD1fUEFUSF9XVE1QIC1EX1VUTVBYX0ZJTEU9VVRNUF9GSUxFIC1EX1BBVEhfVVRNUFg9X1BBVEhfVVRNUCAiCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2NsaWVudHNfMS4xLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94bHNjbGllbnRzXzEuMS4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODNhNTMxLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2NsaWVudHNfMS4xLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1yZXF1aXJlIHJlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveG9yZy1hcHAtY29tbW9uLmluYwotCi1TVU1NQVJZID0gIlguT3JnIFgxMSBYIGNsaWVudCB1dGlsaXRpZXMiCi1IT01FUEFHRSA9ICJodHRwOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcveG9yZy9hcHAveGxzY2xpZW50cy8iCi1ERVNDUklQVElPTiA9ICJ4bHNjbGllbnRzIGlzIGEgdXRpbGl0eSBmb3IgbGlzdGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgXAotY2xpZW50IGFwcGxpY2F0aW9ucyBydW5uaW5nIG9uIGEgWDExIHNlcnZlci4iCi1TRUNUSU9OID0gIngxMS9hcHAiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTM1MGUxYjcxOGE1NmRmMzljZmU4Y2E5MzQ1ZWE0NTc1IgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjlmYmY2YjE3NGE1MTM4YTYxNzM4YTQyZTcwN2FkOGY1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVkOTY2NmZjYzZjM2RlMjEwZmM3MGQ1YTg0MWE0MDQ5NTVhZjcwOWE2MTZmZGU1MzBmZTRlOGY3NzIzZTNkM2QiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94bHNjbGllbnRzXzEuMS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveGxzY2xpZW50c18xLjEuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmJkYTdlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveGxzY2xpZW50c18xLjEuNC5iYgpAQCAtMCwwICsxLDE0IEBACityZXF1aXJlIHJlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveG9yZy1hcHAtY29tbW9uLmluYworCitTVU1NQVJZID0gIlguT3JnIFgxMSBYIGNsaWVudCB1dGlsaXRpZXMiCitIT01FUEFHRSA9ICJodHRwOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcveG9yZy9hcHAveGxzY2xpZW50cy8iCitERVNDUklQVElPTiA9ICJ4bHNjbGllbnRzIGlzIGEgdXRpbGl0eSBmb3IgbGlzdGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgXAorY2xpZW50IGFwcGxpY2F0aW9ucyBydW5uaW5nIG9uIGEgWDExIHNlcnZlci4iCitTRUNUSU9OID0gIngxMS9hcHAiCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTM1MGUxYjcxOGE1NmRmMzljZmU4Y2E5MzQ1ZWE0NTc1IgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKKworU1JDX1VSSVttZDVzdW1dID0gIjRmYTkyMzc3ZTBkZGMxMzdjZDIyNmE3YTg3YjZiMjlhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc3M2YyYWY0OWM3ZWEyYzQ0ZmJhNDIxM2JlZTY0MzI1ODc1YzFiM2M5YmM0YmJjZDhkYWM5MjYxNzUxODA5YzEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94bHNmb250c18xLjAuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2ZvbnRzXzEuMC41LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZmVlZDc1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2ZvbnRzXzEuMC41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotcmVxdWlyZSByZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hvcmctYXBwLWNvbW1vbi5pbmMKLQotU1VNTUFSWSA9ICJzZXJ2ZXIgZm9udCBsaXN0IGRpc3BsYXllciBmb3IgWCIKLUhPTUVQQUdFID0gImh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy94b3JnL2FwcC94bHNmb250cy8iCi1TRUNUSU9OID0gIngxMS9hcHAiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTVlYzc0ZGQ3ZWE0ZDEwYzQ3MTVhN2M0NGYxNTlhNDBiIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNmY1NzExYmVmOGM3NjU4NTdhMDg4N2E5MTQ3NjI4M2IiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDAyOTViZWMzNTA3N2NlZTkzYmUyZTRjMjZjYzAwMjY4ZWQ2YWNlNzc5YWU2ZTk3NzY2YTg2NmMxZTM5MjdmYSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2ZvbnRzXzEuMC42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveGxzZm9udHNfMS4wLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZiNzZlNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2ZvbnRzXzEuMC42LmJiCkBAIC0wLDAgKzEsMTAgQEAKK3JlcXVpcmUgcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94b3JnLWFwcC1jb21tb24uaW5jCisKK1NVTU1BUlkgPSAic2VydmVyIGZvbnQgbGlzdCBkaXNwbGF5ZXIgZm9yIFgiCitIT01FUEFHRSA9ICJodHRwOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcveG9yZy9hcHAveGxzZm9udHMvIgorU0VDVElPTiA9ICJ4MTEvYXBwIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT01ZWM3NGRkN2VhNGQxMGM0NzE1YTdjNDRmMTU5YTQwYiIKKworU1JDX1VSSVttZDVzdW1dID0gIjU3NzRmZDRmNTE4YjNmMzM4ZjJiMjhmMjcwZTA0YmZjIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg5YjgwYjNhMDMwMDA2YWI2Y2VmNzE3YmUyODZjMTJmMjQ3Nzg5NGIyMjcxNThiMWU2MTMzMjc0ZjZlYmQzNjgiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94dGVybV8zMzAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94dGVybV8zMzAuYmIKaW5kZXggZTNiYjBmYi4uMTZmOWI3OCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveHRlcm1fMzMwLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3h0ZXJtXzMzMC5iYgpAQCAtMjcsMyArMjcsOCBAQAogfQogCiBGSUxFU18ke1BOfSArPSAiL3Vzci9saWIvWDExIgorCisjIGJ1c3lib3ggY2FuIHN1cHBseSByZXNpemUgdG9vCitpbmhlcml0IHVwZGF0ZS1hbHRlcm5hdGl2ZXMKKworQUxURVJOQVRJVkVfJHtQTn0gPSAicmVzaXplIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveHd1ZF8xLjAuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3h3dWRfMS4wLjQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzYmQ3ZjAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveHd1ZF8xLjAuNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLXJlcXVpcmUgcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94b3JnLWFwcC1jb21tb24uaW5jCi0KLVNVTU1BUlkgPSAiWC5PcmcgWDExIFggY2xpZW50IHV0aWxpdGllcyIKLUhPTUVQQUdFID0gImh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy94b3JnL2FwcC94d3VkLyIKLURFU0NSSVBUSU9OID0gInh3dWQgYWxsb3dzIFggdXNlcnMgdG8gZGlzcGxheSBpbiBhIHdpbmRvdyBhbiBpbWFnZSBzYXZlZCBcCi1pbiBhIHNwZWNpYWxseSBmb3JtYXR0ZWQgZHVtcCBmaWxlLCBzdWNoIGFzIHByb2R1Y2VkIGJ5IHh3ZC4iCi1TRUNUSU9OID0gIngxMS9hcHAiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTMxZTg4OTJjODBiN2EwYzFjNWYzN2M4ZThhZTZkNzk0IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMzAyNWIxNTJiNGYxM2ZkZmZkMGM0NmQwYmU1ODdiZTYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZDZiM2EwOWNjZmU3NTA4NjhlMjZiZDIzODQ5MDBhYjVmZjBkNDM0ZjdmNDBjZDI3MmE1MGVkYThhYWExZjhiZCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3h3dWRfMS4wLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94d3VkXzEuMC41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjYjU1MGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94d3VkXzEuMC41LmJiCkBAIC0wLDAgKzEsMTIgQEAKK3JlcXVpcmUgcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94b3JnLWFwcC1jb21tb24uaW5jCisKK1NVTU1BUlkgPSAiWC5PcmcgWDExIFggY2xpZW50IHV0aWxpdGllcyIKK0hPTUVQQUdFID0gImh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy94b3JnL2FwcC94d3VkLyIKK0RFU0NSSVBUSU9OID0gInh3dWQgYWxsb3dzIFggdXNlcnMgdG8gZGlzcGxheSBpbiBhIHdpbmRvdyBhbiBpbWFnZSBzYXZlZCBcCitpbiBhIHNwZWNpYWxseSBmb3JtYXR0ZWQgZHVtcCBmaWxlLCBzdWNoIGFzIHByb2R1Y2VkIGJ5IHh3ZC4iCitTRUNUSU9OID0gIngxMS9hcHAiCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTMxZTg4OTJjODBiN2EwYzFjNWYzN2M4ZThhZTZkNzk0IgorCitTUkNfVVJJW21kNXN1bV0gPSAiNzk5NzIwOTNiYjA3NjZmY2QwMjIzYjJiZDZkMTE5MzIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTk5OTcwNTFmOGE4OTIzMTNmMjJlZGY0MWRhYjQ1ODY0ZTg2ZTcwNjJlZTkwMTJkNWRiYjZhNDBmYzZiMTBhOSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctZGF0YS94b3JnLWRhdGEtY29tbW9uLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctZGF0YS94b3JnLWRhdGEtY29tbW9uLmluYwppbmRleCBiMjMwOTYyLi5jYjZiNWFjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWRhdGEveG9yZy1kYXRhLWNvbW1vbi5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1kYXRhL3hvcmctZGF0YS1jb21tb24uaW5jCkBAIC03LDQgKzcsNiBAQAogU1JDX1VSSSA9ICIke1hPUkdfTUlSUk9SfS9pbmRpdmlkdWFsL2RhdGEvJHtCUH0udGFyLmJ6MiIKIFMgPSAiJHtXT1JLRElSfS8ke1hPUkdfUE59LSR7UFZ9IgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwMS1DT1BZSU5HLWFkZC1HUEx2Mi1saWNlbnNlLWZpbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDEtQ09QWUlORy1hZGQtR1BMdjItbGljZW5zZS1maWxlLnBhdGNoCmluZGV4IDI5ZGQ3MWEuLjJiZmU4NWIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwMS1DT1BZSU5HLWFkZC1HUEx2Mi1saWNlbnNlLWZpbGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDAxLUNPUFlJTkctYWRkLUdQTHYyLWxpY2Vuc2UtZmlsZS5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUZyb20gODM0ZmEwNjkyMGY4OGNlZWRmNzUyOTY0YzhlMjk2YzY1M2Q1NDFlNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZjkxOTcyNTkxOGZhZDJiMzI1MDRmODlhMjgzMTBmY2FlNGFiMDQwNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IFl1IEtlIDxrZS55dUBpbnRlbC5jb20+CiBEYXRlOiBXZWQsIDExIEFwciAyMDEyIDE0OjI2OjE2ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMDEvMTJdIENPUFlJTkc6IGFkZCBHUEx2MiBsaWNlbnNlIGZpbGUKK1N1YmplY3Q6IFtQQVRDSF0gQ09QWUlORzogYWRkIEdQTHYyIGxpY2Vuc2UgZmlsZQogCiB0aGlzIGlzIGEgbG9jYWwgZmlsZSByZWNpcGUgYW5kIHRoZSBsaWNlbnNlIGZpbGUgaXMgbWlzc2luZy5JbiBvcmRlcgogdG8gcGFzcyB0aGUgbGljZW5zZSBjaGVja3N1bSBjaGVja2luZywgdGhlIGxpY2Vuc2UgZmlsZSBpcyBuZWVkZWQuIFNvCkBAIC05LDkgKzksMTAgQEAKIAogU2lnbmVkLW9mZi1ieTogWXUgS2UgPGtlLnl1QGludGVsLmNvbT4KIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KKwogLS0tCi0gQ09QWUlORyB8ICAzMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCAzMzkgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKKyBDT1BZSU5HIHwgMzM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMzM5IGluc2VydGlvbnMoKykKICBjcmVhdGUgbW9kZSAxMDA2NDQgQ09QWUlORwogCiBkaWZmIC0tZ2l0IGEvQ09QWUlORyBiL0NPUFlJTkcKQEAgLTM1OSw2ICszNjAsMyBAQAogK2NvbnNpZGVyIGl0IG1vcmUgdXNlZnVsIHRvIHBlcm1pdCBsaW5raW5nIHByb3ByaWV0YXJ5IGFwcGxpY2F0aW9ucyB3aXRoIHRoZQogK2xpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsCiArUHVibGljIExpY2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UuCi0tLSAKLTEuNy44LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDAxLURvbi10LWluc3RhbGwtWHNlc3Npb24tb3ItWHNlcnZlci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwMS1Eb24tdC1pbnN0YWxsLVhzZXNzaW9uLW9yLVhzZXJ2ZXIucGF0Y2gKaW5kZXggMjYyODhkNi4uMGVkMTJkMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDAxLURvbi10LWluc3RhbGwtWHNlc3Npb24tb3ItWHNlcnZlci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDEtRG9uLXQtaW5zdGFsbC1Yc2Vzc2lvbi1vci1Yc2VydmVyLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBjOTJjZTZhNGIzNjIyODc0ZjgyMGI1ZWM0ODdhMmI2M2Y1MTk4MjZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAxMDAyYTExMzdiMTQwZGFkMzMxOWJmMzIwNmZlYzViNmM2Yjc0ZmVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogSnVzc2kgS3Vra29uZW4gPGp1c3NpLmt1a2tvbmVuQGludGVsLmNvbT4KIERhdGU6IFRodSwgMTAgTm92IDIwMTYgMTQ6MzM6MDUgKzAyMDAKIFN1YmplY3Q6IFtQQVRDSF0gRG9uJ3QgaW5zdGFsbCBYc2Vzc2lvbiBvciBYc2VydmVyCkBAIC04LDE1ICs4LDE2IEBACiBiZSB1c2VkIGFzIGJlZm9yZS4KIAogU2lnbmVkLW9mZi1ieTogSnVzc2kgS3Vra29uZW4gPGp1c3NpLmt1a2tvbmVuQGludGVsLmNvbT4KKwogLS0tCi0gTWFrZWZpbGUgfCAxIC0KLSAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQorIE1ha2VmaWxlIHwgMiAtLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQotaW5kZXggY2FhNWRlMS4uN2UzNmJiYyAxMDA2NDQKK2luZGV4IGNhYTVkZTEuLjk0MjgyMDUgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZQogKysrIGIvTWFrZWZpbGUKLUBAIC0yMCw3ICsyMCw1IEBAIGluc3RhbGwtcHJvZ3JhbToKK0BAIC0yMCw4ICsyMCw2IEBAIGluc3RhbGwtcHJvZ3JhbToKICAJaW5zdGFsbCAtbSA3NTUgcnVuLWNhbGlicmF0ZS5zaCAkKERFU1RESVIpJChQUkVGSVgpL2Jpbi9ydW4tY2FsaWJyYXRlLnNoCiAgCWluc3RhbGwgLW0gNjQ0IFgxMS9YZGVmYXVsdHMgJChERVNURElSKS9ldGMvWDExL1hkZWZhdWx0cwogIAlpbnN0YWxsIC1tIDc1NSBYMTEvWGluaXQgJChERVNURElSKS9ldGMvWDExL1hpbml0CkBAIC0yNSw2ICsyNiwzIEBACiAgCWluc3RhbGwgLW0gNzU1IFgxMS94c2VydmVyLWNvbW1vbiAkKERFU1RESVIpL2V0Yy9YMTEveHNlcnZlci1jb21tb24KICAJaW5zdGFsbCAtbSA3NTUgWDExL2Z1bmN0aW9ucyAkKERFU1RESVIpL2V0Yy9YMTEvZnVuY3Rpb25zCiAgCWluc3RhbGwgLWQgJChERVNURElSKS9ldGMvWDExL3htb2RtYXAKLS0tIAotMi4xLjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDAyLWFkZC1zZXRkcGktWGluaXQuZC1zY3JpcHQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDItYWRkLXNldGRwaS1YaW5pdC5kLXNjcmlwdC5wYXRjaAppbmRleCAyM2I1MzQ1Li4wYmUzZmE1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDItYWRkLXNldGRwaS1YaW5pdC5kLXNjcmlwdC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDItYWRkLXNldGRwaS1YaW5pdC5kLXNjcmlwdC5wYXRjaApAQCAtMSwxMiArMSwxMyBAQAotRnJvbSAzZDFhMWE4MjczMTEyNjY4OTI3YTZjNmJiM2UzNjFlODk2ZjViMjI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAzYjVmNDMxYTM3MDA1NGJmYzA5MDc5NmU4ZDU1ZGU4YzhjZWE0NmY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgogRGF0ZTogV2VkLCAxMSBBcHIgMjAxMiAxNDoyODo0NSArMDIwMAotU3ViamVjdDogW1BBVENIIDAyLzEyXSBhZGQgc2V0ZHBpIFhpbml0LmQgc2NyaXB0CitTdWJqZWN0OiBbUEFUQ0hdIGFkZCBzZXRkcGkgWGluaXQuZCBzY3JpcHQKIAogU2lnbmVkLW9mZi1ieTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgorCiAtLS0KLSBYMTEvWGluaXQuZC81MHNldGRwaSB8ICAgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSAxIGZpbGVzIGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL1hpbml0LmQvNTBzZXRkcGkgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKykKICBjcmVhdGUgbW9kZSAxMDA2NDQgWDExL1hpbml0LmQvNTBzZXRkcGkKIAogZGlmZiAtLWdpdCBhL1gxMS9YaW5pdC5kLzUwc2V0ZHBpIGIvWDExL1hpbml0LmQvNTBzZXRkcGkKQEAgLTEwNyw2ICsxMDgsMyBAQAogKwogK3NldF9kcGkgIiRTRVRfU0NSRUVOX0RQSSIKICtzZXRfcnh2dF9mb250ICIkU0NSRUVOX0RQSSIKLS0tIAotMS43LjguNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDYtYWRkLXN1cHBvcnQtZm9yLWV0Yy1YMTEteHNlcnZlci1zeXN0ZW0ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDYtYWRkLXN1cHBvcnQtZm9yLWV0Yy1YMTEteHNlcnZlci1zeXN0ZW0ucGF0Y2gKaW5kZXggN2VlODU3Mi4uNTNhMjgzZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDA2LWFkZC1zdXBwb3J0LWZvci1ldGMtWDExLXhzZXJ2ZXItc3lzdGVtLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwNi1hZGQtc3VwcG9ydC1mb3ItZXRjLVgxMS14c2VydmVyLXN5c3RlbS5wYXRjaApAQCAtMSwxNSArMSwxNiBAQAotRnJvbSAwYzQyZTFmYjg0Y2MyYmZlNzY4YmVkMTdmM2I5NzlhY2E4NjhjZjY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBiNjBlMzY0YzM1ZDU2YTJhMzE2NDI1NGQ5OGM5OTMxYmZhM2ZlZWQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgogRGF0ZTogV2VkLCAxMSBBcHIgMjAxMiAxNDozNDo0MyArMDIwMAotU3ViamVjdDogW1BBVENIIDA2LzEyXSBhZGQgc3VwcG9ydCBmb3IgL2V0Yy9YMTEveHNlcnZlci1zeXN0ZW0KK1N1YmplY3Q6IFtQQVRDSF0gYWRkIHN1cHBvcnQgZm9yIC9ldGMvWDExL3hzZXJ2ZXItc3lzdGVtCiAKIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KKwogLS0tCi0gWDExL3hzZXJ2ZXItY29tbW9uIHwgICAgNSArKysrKwotIDEgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQorIFgxMS94c2VydmVyLWNvbW1vbiB8IDUgKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCiAKIGRpZmYgLS1naXQgYS9YMTEveHNlcnZlci1jb21tb24gYi9YMTEveHNlcnZlci1jb21tb24KLWluZGV4IDRjN2VkNmUuLjZkOGM5ZGYgMTAwNjQ0CitpbmRleCA1MjY1NWNiLi5iYjdjMmZmIDEwMDY0NAogLS0tIGEvWDExL3hzZXJ2ZXItY29tbW9uCiArKysgYi9YMTEveHNlcnZlci1jb21tb24KIEBAIC0yMDQsMyArMjA0LDggQEAgZmkKQEAgLTIxLDYgKzIyLDMgQEAKICtpZiBbIC1lIC9ldGMvWDExL3hzZXJ2ZXItc3lzdGVtIF0gOyB0aGVuICAgICAgICAgICAgICAgICAgICAKICsgICAgICAgLiAvZXRjL1gxMS94c2VydmVyLXN5c3RlbSAgICAgICAgICAgICAgICAgICAgCiArZmkgICAgICAgICAgICAgICAgICAgIAotLS0gCi0xLjcuOC41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwNy11c2Utb3duLWZ1bmN0aW9ucy1maWxlLWluc3RlYWQtZXRjLWluaXQuZC1mdW5jdGlvbnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDctdXNlLW93bi1mdW5jdGlvbnMtZmlsZS1pbnN0ZWFkLWV0Yy1pbml0LmQtZnVuY3Rpb25zLnBhdGNoCmluZGV4IDg3OTEyMjYuLjk0YTM1NDAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwNy11c2Utb3duLWZ1bmN0aW9ucy1maWxlLWluc3RlYWQtZXRjLWluaXQuZC1mdW5jdGlvbnMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDA3LXVzZS1vd24tZnVuY3Rpb25zLWZpbGUtaW5zdGVhZC1ldGMtaW5pdC5kLWZ1bmN0aW9ucy5wYXRjaApAQCAtMSwxNyArMSwxOCBAQAotRnJvbSA2M2U2YjlhNTRlMWYxMmRiZjdkZGJmZTMzNzZmZmY0YzM4MjQyMWE1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA0OTJjNjVhMzJhNGFlNDRjMzQ1ODBlZDhhYzVkM2Y1MGExNTVjZmVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgogRGF0ZTogV2VkLCAxMSBBcHIgMjAxMiAxNDozNjowMiArMDIwMAotU3ViamVjdDogW1BBVENIIDA3LzEyXSB1c2Ugb3duIGZ1bmN0aW9ucyBmaWxlIGluc3RlYWQgL2V0Yy9pbml0LmQvZnVuY3Rpb25zCitTdWJqZWN0OiBbUEFUQ0hdIHVzZSBvd24gZnVuY3Rpb25zIGZpbGUgaW5zdGVhZCAvZXRjL2luaXQuZC9mdW5jdGlvbnMKIAogKiBzbyB3ZSBkb24ndCBoYXZlIHRvIGRlcGVuZCBvbiBpbml0c2NyaXB0cwogCiBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CisKIC0tLQotIE1ha2VmaWxlICAgICAgICAgICAgIHwgICAgMSArCi0gWDExL1hpbml0LmQvMTF6YXVydXMgfCAgICAyICstCi0gWDExL1hpbml0LmQvMTJrZXltYXAgfCAgICAyICstCi0gWDExL2Z1bmN0aW9ucyAgICAgICAgfCAgIDExICsrKysrKysrKysrCi0gWDExL3hzZXJ2ZXItY29tbW9uICAgfCAgICAyICstCisgTWFrZWZpbGUgICAgICAgICAgICAgfCAgMSArCisgWDExL1hpbml0LmQvMTF6YXVydXMgfCAgMiArLQorIFgxMS9YaW5pdC5kLzEya2V5bWFwIHwgIDIgKy0KKyBYMTEvZnVuY3Rpb25zICAgICAgICB8IDExICsrKysrKysrKysrCisgWDExL3hzZXJ2ZXItY29tbW9uICAgfCAgMiArLQogIDUgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKICBjcmVhdGUgbW9kZSAxMDA2NDQgWDExL2Z1bmN0aW9ucwogCkBAIC03MCw3ICs3MSw3IEBACiArCQl7IGdzdWIoIiAiLCAiXyIsICQyKTsgcHJpbnQgdG9sb3dlcigkMikgfSAnIDwvcHJvYy9jcHVpbmZvCiArfQogZGlmZiAtLWdpdCBhL1gxMS94c2VydmVyLWNvbW1vbiBiL1gxMS94c2VydmVyLWNvbW1vbgotaW5kZXggNmQ4YzlkZi4uZGU5MmJiNyAxMDA2NDQKK2luZGV4IGJiN2MyZmYuLmQ2MjJmMmEgMTAwNjQ0CiAtLS0gYS9YMTEveHNlcnZlci1jb21tb24KICsrKyBiL1gxMS94c2VydmVyLWNvbW1vbgogQEAgLTMwLDcgKzMwLDcgQEAgaWYgWyAtZiAvZXRjL3Byb2ZpbGUgXTsgdGhlbgpAQCAtODIsNiArODMsMyBAQAogIAogIGZhbGxiYWNrX3NjcmVlbl9hcmcoKSB7CiAgICAgIGdlb209YGZic2V0IHwgZ3JlcCBnZW9tZXRyeWAKLS0tIAotMS43LjguNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDgteHNlcnZlci1jb21tb24tYWRkLWRwaS1hbmQtbm9jdXJzb3ItcGFyYW1zLWZvci1ndGEwMS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwOC14c2VydmVyLWNvbW1vbi1hZGQtZHBpLWFuZC1ub2N1cnNvci1wYXJhbXMtZm9yLWd0YTAxLnBhdGNoCmluZGV4IGUzNWU0YTcuLjkwZDBmMjUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwOC14c2VydmVyLWNvbW1vbi1hZGQtZHBpLWFuZC1ub2N1cnNvci1wYXJhbXMtZm9yLWd0YTAxLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwOC14c2VydmVyLWNvbW1vbi1hZGQtZHBpLWFuZC1ub2N1cnNvci1wYXJhbXMtZm9yLWd0YTAxLnBhdGNoCkBAIC0xLDE2ICsxLDE3IEBACi1Gcm9tIDBlZTdiZjg3ZTBjODNhYmM3OWRlM2E5OWRmYTNjODdkZDVjNWIyMjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGUyYWJiZTExMGU3MWE3YjRiNTY1NjRlNmI5ZDU4ZmZhN2YzNGE5ZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CiBEYXRlOiBXZWQsIDExIEFwciAyMDEyIDE0OjM3OjI5ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMDgvMTJdIHhzZXJ2ZXItY29tbW9uOiBhZGQgZHBpIGFuZCBub2N1cnNvciBwYXJhbXMgZm9yIGd0YTAxCi0gYW5kIGd0YTAyCitTdWJqZWN0OiBbUEFUQ0hdIHhzZXJ2ZXItY29tbW9uOiBhZGQgZHBpIGFuZCBub2N1cnNvciBwYXJhbXMgZm9yIGd0YTAxIGFuZAorIGd0YTAyCiAKIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KKwogLS0tCi0gWDExL3hzZXJ2ZXItY29tbW9uIHwgICAgOCArKysrKystLQotIDEgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorIFgxMS94c2VydmVyLWNvbW1vbiB8IDggKysrKysrLS0KKyAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvWDExL3hzZXJ2ZXItY29tbW9uIGIvWDExL3hzZXJ2ZXItY29tbW9uCi1pbmRleCBkZTkyYmI3Li5mNzZmYTVmIDEwMDY0NAoraW5kZXggZDYyMmYyYS4uYTJjMDU5MSAxMDA2NDQKIC0tLSBhL1gxMS94c2VydmVyLWNvbW1vbgogKysrIGIvWDExL3hzZXJ2ZXItY29tbW9uCiBAQCAtMTMzLDE1ICsxMzMsMTkgQEAgZWxzZQpAQCAtMzUsNiArMzYsMyBAQAogICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAgOzsKICAgICAgICAgICJtb3Rvcm9sYV9lenhfcGxhdGZvcm0iKQotLS0gCi0xLjcuOC41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwOS14c2VydmVyLWNvbW1vbi1hZGQtc3VwcG9ydC1mb3ItbjkwMC1hbGlhcy1ub2tpYV9yeC01LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDA5LXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uOTAwLWFsaWFzLW5va2lhX3J4LTUucGF0Y2gKaW5kZXggMWEwYmRlOC4uOGZiNjliMyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDA5LXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uOTAwLWFsaWFzLW5va2lhX3J4LTUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDA5LXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uOTAwLWFsaWFzLW5va2lhX3J4LTUucGF0Y2gKQEAgLTEsMTYgKzEsMTYgQEAKLUZyb20gNmQ2Y2FlY2I3MTcyYjliMzNlNzM2NDU2NGIwZTZlYWJmNjdiNmU4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZjJkODA4Y2VhNWI5ZjY5MTU4ZjgyZTE2YzA2Zjg4MmE2ZGIxMGQ2MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KIERhdGU6IFdlZCwgMTEgQXByIDIwMTIgMTQ6NDA6MTQgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAwOS8xMl0geHNlcnZlci1jb21tb246IGFkZCBzdXBwb3J0IGZvciBuOTAwIGFsaWFzCi0gbm9raWFfcngtNTFfYm9hcmQKK1N1YmplY3Q6IFtQQVRDSF0geHNlcnZlci1jb21tb246IGFkZCBzdXBwb3J0IGZvciBuOTAwIGFsaWFzIG5va2lhX3J4LTUxX2JvYXJkCiAKIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KKwogLS0tCi0gWDExL3hzZXJ2ZXItY29tbW9uIHwgICAgNyArKysrKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL3hzZXJ2ZXItY29tbW9uIHwgNyArKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQogCiBkaWZmIC0tZ2l0IGEvWDExL3hzZXJ2ZXItY29tbW9uIGIvWDExL3hzZXJ2ZXItY29tbW9uCi1pbmRleCBmNzZmYTVmLi44NmVkMTdmIDEwMDY0NAoraW5kZXggYTJjMDU5MS4uYjhjMzdlNiAxMDA2NDQKIC0tLSBhL1gxMS94c2VydmVyLWNvbW1vbgogKysrIGIvWDExL3hzZXJ2ZXItY29tbW9uCiBAQCAtMTMyLDYgKzEzMiwxMyBAQCBlbHNlCkBAIC0yNyw2ICsyNywzIEBACiAgICAgICAgICAiZ3RhMDEiICkKICAgICAgICAgICAgICBEUEk9IjI4MCIKICAgICAgICAgICAgICBpZiBbICIkWFNFUlZFUiIgIT0gIlhvcmciIF0gOyB0aGVuCi0tLSAKLTEuNy44LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEwLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uZXh1cy1TLWFsaWFzLWhlcnJpbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMTAteHNlcnZlci1jb21tb24tYWRkLXN1cHBvcnQtZm9yLW5leHVzLVMtYWxpYXMtaGVycmluZy5wYXRjaAppbmRleCA2ODhiZTQwLi5kMzBjN2JiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMTAteHNlcnZlci1jb21tb24tYWRkLXN1cHBvcnQtZm9yLW5leHVzLVMtYWxpYXMtaGVycmluZy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMTAteHNlcnZlci1jb21tb24tYWRkLXN1cHBvcnQtZm9yLW5leHVzLVMtYWxpYXMtaGVycmluZy5wYXRjaApAQCAtMSwxNSArMSwxNiBAQAotRnJvbSA1MjAwM2U2YjUyYjE0MTdjMWEwZTU3MjQzZDgzMzQ5YWRkY2RhY2Y2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBhMTk0YmEyMDEzZjllNThjZjczY2QzOWI1N2JlNjgzODZlNTAxZWRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgogRGF0ZTogV2VkLCAxMSBBcHIgMjAxMiAxNDo0MDo0NCArMDIwMAotU3ViamVjdDogW1BBVENIIDEwLzEyXSB4c2VydmVyLWNvbW1vbjogYWRkIHN1cHBvcnQgZm9yIG5leHVzIFMgYWxpYXMgaGVycmluZworU3ViamVjdDogW1BBVENIXSB4c2VydmVyLWNvbW1vbjogYWRkIHN1cHBvcnQgZm9yIG5leHVzIFMgYWxpYXMgaGVycmluZwogCiBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CisKIC0tLQotIFgxMS94c2VydmVyLWNvbW1vbiB8ICAgIDMgKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL3hzZXJ2ZXItY29tbW9uIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCiAKIGRpZmYgLS1naXQgYS9YMTEveHNlcnZlci1jb21tb24gYi9YMTEveHNlcnZlci1jb21tb24KLWluZGV4IDg2ZWQxN2YuLjVjOWE2ZWIgMTAwNjQ0CitpbmRleCBiOGMzN2U2Li45YWE2YjI0IDEwMDY0NAogLS0tIGEvWDExL3hzZXJ2ZXItY29tbW9uCiArKysgYi9YMTEveHNlcnZlci1jb21tb24KIEBAIC0xMjYsNiArMTI2LDkgQEAgZWxzZQpAQCAtMjIsNiArMjMsMyBAQAogICAgICAgICAgImdlbmVyaWNfb21hcDE1MTAvMTYxMC8xNzEwIikKICAgICAgICAgICAgICBBUkdTPSIkQVJHUyAtc2NyZWVuICR7U0NSRUVOX1NJWkV9IgogICAgICAgICAgICAgIERQST0iMjI1IiA7OwotLS0gCi0xLjcuOC41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAxMS14c2VydmVyLWNvbW1vbi1hZGQtc3VwcG9ydC1mb3ItbmV4dXMtb25lLWFsaWFzLW1haGltLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDExLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uZXh1cy1vbmUtYWxpYXMtbWFoaW0ucGF0Y2gKaW5kZXggZjgwNDU2ZC4uMjNlMTdmMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDExLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uZXh1cy1vbmUtYWxpYXMtbWFoaW0ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDExLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uZXh1cy1vbmUtYWxpYXMtbWFoaW0ucGF0Y2gKQEAgLTEsMTYgKzEsMTYgQEAKLUZyb20gMGVjYzk3OGI3ZDhjYjY4Njc2NDZmYjJhMjk1MjNlYmVmM2FmYTAxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZGZkODMyYjM1YjZjYjRjZjJiNmYyYjUxZGY3YjA5OTlmMTBjOGNhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KIERhdGU6IFdlZCwgMTEgQXByIDIwMTIgMTQ6NDE6MDYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxMS8xMl0geHNlcnZlci1jb21tb246IGFkZCBzdXBwb3J0IGZvciBuZXh1cyBvbmUgYWxpYXMKLSBtYWhpbWFoaQorU3ViamVjdDogW1BBVENIXSB4c2VydmVyLWNvbW1vbjogYWRkIHN1cHBvcnQgZm9yIG5leHVzIG9uZSBhbGlhcyBtYWhpbWFoaQogCiBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CisKIC0tLQotIFgxMS94c2VydmVyLWNvbW1vbiB8ICAgIDMgKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL3hzZXJ2ZXItY29tbW9uIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCiAKIGRpZmYgLS1naXQgYS9YMTEveHNlcnZlci1jb21tb24gYi9YMTEveHNlcnZlci1jb21tb24KLWluZGV4IDVjOWE2ZWIuLjU1NTk0ZmQgMTAwNjQ0CitpbmRleCA5YWE2YjI0Li44ZGE5MjZlIDEwMDY0NAogLS0tIGEvWDExL3hzZXJ2ZXItY29tbW9uCiArKysgYi9YMTEveHNlcnZlci1jb21tb24KIEBAIC0xMjksNiArMTI5LDkgQEAgZWxzZQpAQCAtMjMsNiArMjMsMyBAQAogICAgICAgICAgImdlbmVyaWNfb21hcDE1MTAvMTYxMC8xNzEwIikKICAgICAgICAgICAgICBBUkdTPSIkQVJHUyAtc2NyZWVuICR7U0NSRUVOX1NJWkV9IgogICAgICAgICAgICAgIERQST0iMjI1IiA7OwotLS0gCi0xLjcuOC41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAxMi14c2VydmVyLWNvbW1vbi1hZGQtc3VwcG9ydC1mb3ItZ3RhMDQtYWxpYXMtT3BlblBob2VuLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEyLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1ndGEwNC1hbGlhcy1PcGVuUGhvZW4ucGF0Y2gKaW5kZXggNTRhMDMyOS4uNWU3OTRmNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEyLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1ndGEwNC1hbGlhcy1PcGVuUGhvZW4ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEyLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1ndGEwNC1hbGlhcy1PcGVuUGhvZW4ucGF0Y2gKQEAgLTEsMTYgKzEsMTYgQEAKLUZyb20gZDE5NGYwMzAyNTgyZjFjYTU5OWYyZWE1OGMxNWUxNWY0ZmQ2YmRlZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZDllMDVlNTNiMzBjNjY3MDU4NTIyNTZmZjVjNjAzMjUyYWE5NGIyYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KIERhdGU6IFdlZCwgMTEgQXByIDIwMTIgMTQ6NDE6NTIgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxMi8xMl0geHNlcnZlci1jb21tb246IGFkZCBzdXBwb3J0IGZvciBndGEwNCBhbGlhcwotIE9wZW5QaG9lbnV4CitTdWJqZWN0OiBbUEFUQ0hdIHhzZXJ2ZXItY29tbW9uOiBhZGQgc3VwcG9ydCBmb3IgZ3RhMDQgYWxpYXMgT3BlblBob2VudXgKIAogU2lnbmVkLW9mZi1ieTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgorCiAtLS0KLSBYMTEveHNlcnZlci1jb21tb24gfCAgICA4ICsrKysrKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL3hzZXJ2ZXItY29tbW9uIHwgOCArKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKIAogZGlmZiAtLWdpdCBhL1gxMS94c2VydmVyLWNvbW1vbiBiL1gxMS94c2VydmVyLWNvbW1vbgotaW5kZXggNTU1OTRmZC4uNDM0MzMzZSAxMDA2NDQKK2luZGV4IDhkYTkyNmUuLmQ5MzI1ZGQgMTAwNjQ0CiAtLS0gYS9YMTEveHNlcnZlci1jb21tb24KICsrKyBiL1gxMS94c2VydmVyLWNvbW1vbgogQEAgLTE2MSw2ICsxNjEsMTQgQEAgZWxzZQpAQCAtMjgsNiArMjgsMyBAQAogICAgICAgICAgIm1vdG9yb2xhX2V6eF9wbGF0Zm9ybSIpCiAgICAgICAgICAgICAgQVJHUz0iJEFSR1MgLXNjcmVlbiAyNDB4MzIwIgogICAgICAgICAgICAgIERQST0iMTcwIiA7OwotLS0gCi0xLjcuOC41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAxMy14c2VydmVyLWNvbW1vbi1hZGQtc3VwcG9ydC1mb3ItdHVuYS1hbGlhcy1HYWxheHktTmV4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEzLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci10dW5hLWFsaWFzLUdhbGF4eS1OZXgucGF0Y2gKaW5kZXggNDkzMjFlYi4uNzhkMmU0MCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEzLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci10dW5hLWFsaWFzLUdhbGF4eS1OZXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEzLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci10dW5hLWFsaWFzLUdhbGF4eS1OZXgucGF0Y2gKQEAgLTEsMTMgKzEsMTMgQEAKLUZyb20gMTc2YzNiZDNkODZjMjIzZmQ0NGIwZjE1YjYyZDM4NTI2YmIzYjBkMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNTdhYjUyMWZmYzEwMjRmMjExMDVjYTE0YmUyZDA0MWE0Nzc5NDJiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KIERhdGU6IEZyaSwgMTcgQXVnIDIwMTIgMTM6MDA6NTYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxMy8xM10geHNlcnZlci1jb21tb246IGFkZCBzdXBwb3J0IGZvciB0dW5hIGFsaWFzIEdhbGF4eQotIE5leHVzCitTdWJqZWN0OiBbUEFUQ0hdIHhzZXJ2ZXItY29tbW9uOiBhZGQgc3VwcG9ydCBmb3IgdHVuYSBhbGlhcyBHYWxheHkgTmV4dXMKIAogU2lnbmVkLW9mZi1ieTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgorCiAtLS0KLSBYMTEveHNlcnZlci1jb21tb24gfCAgICA4ICsrKysrKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL3hzZXJ2ZXItY29tbW9uIHwgOCArKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKIAogZGlmZiAtLWdpdCBhL1gxMS94c2VydmVyLWNvbW1vbiBiL1gxMS94c2VydmVyLWNvbW1vbgogaW5kZXggZDkzMjVkZC4uMDE3ZTVhZSAxMDA2NDQKQEAgLTI4LDYgKzI4LDMgQEAKICAgICAgICAgICJtb3Rvcm9sYV9lenhfcGxhdGZvcm0iKQogICAgICAgICAgICAgIEFSR1M9IiRBUkdTIC1zY3JlZW4gMjQweDMyMCIKICAgICAgICAgICAgICBEUEk9IjE3MCIgOzsKLS0tIAotMS43LjguNgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMTUteHNlcnZlci1jb21tb24tZGlzYWJsZS1UQ1AtY29ubmVjdGlvbnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMTUteHNlcnZlci1jb21tb24tZGlzYWJsZS1UQ1AtY29ubmVjdGlvbnMucGF0Y2gKaW5kZXggMDZkZjI2MS4uYTczMTkxNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDE1LXhzZXJ2ZXItY29tbW9uLWRpc2FibGUtVENQLWNvbm5lY3Rpb25zLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAxNS14c2VydmVyLWNvbW1vbi1kaXNhYmxlLVRDUC1jb25uZWN0aW9ucy5wYXRjaApAQCAtMSwzICsxLDQgQEAKK0Zyb20gNTIzNjIwOWUzMGUwZjQ1MTEzZTE0MGYwNjY3YzhmZmNmZTYyMTUzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEphdmllciBWaWd1ZXJhIDxqYXZpZXIudmlndWVyYUBkaWdpLmNvbT4KIERhdGU6IFdlZCwgMjYgTm92IDIwMTQgMDk6MjQ6NDQgKzAxMDAKIFN1YmplY3Q6IFtQQVRDSF0geHNlcnZlci1jb21tb246IGRpc2FibGUgVENQIGNvbm5lY3Rpb25zCkBAIC01LDEyICs2LDEzIEBACiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCiAKIFNpZ25lZC1vZmYtYnk6IEphdmllciBWaWd1ZXJhIDxqYXZpZXIudmlndWVyYUBkaWdpLmNvbT4KKwogLS0tCiAgWDExL3hzZXJ2ZXItY29tbW9uIHwgMiArLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvWDExL3hzZXJ2ZXItY29tbW9uIGIvWDExL3hzZXJ2ZXItY29tbW9uCi1pbmRleCAwMTdlNWFlZTFhYjAuLjRkYzQ4YzQxMjc0MSAxMDA2NDQKK2luZGV4IDAxN2U1YWUuLjRkYzQ4YzQgMTAwNjQ0CiAtLS0gYS9YMTEveHNlcnZlci1jb21tb24KICsrKyBiL1gxMS94c2VydmVyLWNvbW1vbgogQEAgLTQ0LDcgKzQ0LDcgQEAgU0NSRUVOX1NJWkU9YGZhbGxiYWNrX3NjcmVlbl9hcmdgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbl8xLjM0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb25fMS4zNC5iYgppbmRleCBjYzMwNTQxLi5hNWVkMjFkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbl8xLjM0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uXzEuMzQuYmIKQEAgLTUsNyArNSw5IEBACiBQUiA9ICJyOSIKIAogIyB3ZSBhcmUgdXNpbmcgYSBncGUtc3R5bGUgTWFrZWZpbGUKLWluaGVyaXQgZ3BlCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBncGUKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogU1JDX1VSSVttZDVzdW1dID0gIjgyZjJmODRjZDk2NjEwZThmN2I5MmM3MDBjZDMxYzE0IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImNkMDRjMzM0MThmNzc2YjFlMTNmY2M3YWYzZDZiZDBjN2NjY2QwM2ZiYWJkN2RiY2Q5N2Y4ODE2NmNjMzQyMTAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3B1cG93ZXIvY3B1cG93ZXIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3B1cG93ZXIvY3B1cG93ZXIuYmIKaW5kZXggYzk2M2M4ZS4uNGFiZDI3MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2NwdXBvd2VyL2NwdXBvd2VyLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcHVwb3dlci9jcHVwb3dlci5iYgpAQCAtMyw3ICszLDcgQEAKIHNhdmluZyByZWxhdGVkIGZlYXR1cmVzIG9mIHlvdXIgcHJvY2Vzc29yLiIKIExJQ0VOU0UgPSAiR1BMdjIiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kNzgxMGZhYjc0ODdmYjBhYWQzMjdiNzZmMWJlN2NkNyIKLURFUEVORFMgPSAicGNpdXRpbHMiCitERVBFTkRTID0gInBjaXV0aWxzIGdldHRleHQtbmF0aXZlIgogUFJPVklERVMgPSAidmlydHVhbC9jcHVwb3dlciIKIAogaW5oZXJpdCBrZXJuZWxzcmMga2VybmVsLWFyY2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcmFzaC9jcmFzaC8wMDA0LWNyYXNoLWZpeC1idWlsZC1mYWlsdXJlLXdpdGgtbWlwcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcmFzaC9jcmFzaC8wMDA0LWNyYXNoLWZpeC1idWlsZC1mYWlsdXJlLXdpdGgtbWlwcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU3Y2U2Yi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3Jhc2gvY3Jhc2gvMDAwNC1jcmFzaC1maXgtYnVpbGQtZmFpbHVyZS13aXRoLW1pcHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi1Gcm9tIDQyM2ViZGNlMDdhYTlmMzk4ZjMyYzBhZGY2NTkzNTMwNjlkMDIzYzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZW5na2UgRHUgPGRlbmdrZS5kdUB3aW5kcml2ZXIuY29tPgotRGF0ZTogVGh1LCA0IE1heSAyMDE3IDA3OjE0OjEzICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNyYXNoOiBmaXggYnVpbGQgZmFpbHVyZSB3aXRoIG1pcHMKLQotV2hlbiBidWlsZCBjcmFzaCB3aXRoIG1pcHM6Ci0KLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotbWlwcy1saW51eC1uYXQuYzoxNTc6MTogZXJyb3I6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciAncHNfZ2V0X3RocmVhZF9hcmVhJwotIHBzX2dldF90aHJlYWRfYXJlYSAoY29uc3Qgc3RydWN0IHBzX3Byb2NoYW5kbGUgKnBoLAotIF5+fn5+fn5+fn5+fn5+fn5+fgotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGdkYl9wcm9jX3NlcnZpY2UuaDoyNjowLAotICAgICAgICAgICAgICAgICBmcm9tIG1pcHMtbGludXgtbmF0LmM6MzI6Ci1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQotVGhpcyBwcm9ibGVtIGhhdmUgYmVlbiBmaXhlZCBvbiBpbnRlbCBhbmQgYXJtIHBsYW50Zm9ybSwgd2UgY2FuIHVzZSB0aGUKLXNpbWlsYXIgYXBwcm9jaCB0byBmaXggaXQgb24gbWlwcy4KLQotVXBzdHJlYW0tc3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9jcmFzaC11dGlsaXR5L2NyYXNoL3B1bGwvMTFdCi0KLVNpZ25lZC1vZmYtYnk6IERlbmdrZSBEdSA8ZGVuZ2tlLmR1QHdpbmRyaXZlci5jb20+Ci0tLS0KLSBNYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCi0gY3Jhc2gtZml4LWJ1aWxkLWZhaWx1cmUtd2l0aC1taXBzLnBhdGNoIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGNyYXNoLWZpeC1idWlsZC1mYWlsdXJlLXdpdGgtbWlwcy5wYXRjaAotCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQotaW5kZXggNTQ5NjUyMy4uMmVjMzMyNSAxMDA2NDQKLS0tLSBhL01ha2VmaWxlCi0rKysgYi9NYWtlZmlsZQotQEAgLTI2OCw2ICsyNjgsNyBAQCBnZGJfcGF0Y2g6Ci0gCQlncmVwICdleHRlcm4gcHNfZXJyX2UgcHNfZ2V0X3RocmVhZF9hcmVhIChzdHJ1Y3QnICR7UkVDSVBFX1NZU1JPT1R9L3Vzci9pbmNsdWRlL3Byb2Nfc2VydmljZS5oOyBcCi0gCQlpZiBbICQkPyAtZXEgMCBdOyB0aGVuIFwKLSAJCQlwYXRjaCAtcDAgPCAke0dEQn0tcHJvY19zZXJ2aWNlLmgucGF0Y2g7IFwKLSsJCQlwYXRjaCAtcDEgPCBjcmFzaC1maXgtYnVpbGQtZmFpbHVyZS13aXRoLW1pcHMucGF0Y2g7IFwKLSAJCWZpOyBcCi0gCWZpCi0gCi1kaWZmIC0tZ2l0IGEvY3Jhc2gtZml4LWJ1aWxkLWZhaWx1cmUtd2l0aC1taXBzLnBhdGNoIGIvY3Jhc2gtZml4LWJ1aWxkLWZhaWx1cmUtd2l0aC1taXBzLnBhdGNoCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMGM3MGM1ZgotLS0tIC9kZXYvbnVsbAotKysrIGIvY3Jhc2gtZml4LWJ1aWxkLWZhaWx1cmUtd2l0aC1taXBzLnBhdGNoCi1AQCAtMCwwICsxLDM5IEBACi0rRnJvbSA2MTVjODAyZDljNzNmYWQ0ODcyM2I2NTY3MDQyY2Q1NGY2Nzk1ODQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotK0Zyb206IERlbmdrZSBEdSA8ZGVuZ2tlLmR1QHdpbmRyaXZlci5jb20+Ci0rRGF0ZTogVGh1LCA0IE1heSAyMDE3IDA2OjE0OjQ3ICswMDAwCi0rU3ViamVjdDogW1BBVENIXSBjcmFzaDogZml4IGJ1aWxkIGZhaWx1cmUgd2l0aCBtaXBzCi0rCi0rV2hlbiBidWlsZCBjcmFzaCB3aXRoIG1pcHM6Ci0rCi0rfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotK21pcHMtbGludXgtbmF0LmM6MTU3OjE6IGVycm9yOiBjb25mbGljdGluZyB0eXBlcyBmb3IgJ3BzX2dldF90aHJlYWRfYXJlYScKLSsgcHNfZ2V0X3RocmVhZF9hcmVhIChjb25zdCBzdHJ1Y3QgcHNfcHJvY2hhbmRsZSAqcGgsCi0rIF5+fn5+fn5+fn5+fn5+fn5+fgotK0luIGZpbGUgaW5jbHVkZWQgZnJvbSBnZGJfcHJvY19zZXJ2aWNlLmg6MjY6MCwKLSsgICAgICAgICAgICAgICAgIGZyb20gbWlwcy1saW51eC1uYXQuYzozMjoKLSt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0rCi0rVGhpcyBwcm9ibGVtIGhhdmUgYmVlbiBmaXhlZCBvbiBpbnRlbCBhbmQgYXJtIHBsYW50Zm9ybSwgd2UgY2FuIHVzZSB0aGUKLStzaW1pbGFyIGFwcHJvY2ggdG8gZml4IGl0IG9uIG1pcHMuCi0rCi0rU2lnbmVkLW9mZi1ieTogRGVuZ2tlIER1IDxkZW5na2UuZHVAd2luZHJpdmVyLmNvbT4KLSstLS0KLSsgZ2RiLTcuNi9nZGIvbWlwcy1saW51eC1uYXQuYyB8IDIgKy0KLSsgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0rCi0rZGlmZiAtLWdpdCBhL2dkYi03LjYvZ2RiL21pcHMtbGludXgtbmF0LmMgYi9nZGItNy42L2dkYi9taXBzLWxpbnV4LW5hdC5jCi0raW5kZXggNjFlODNjNi4uZDUxN2UzNyAxMDA2NDQKLSstLS0gYS9nZGItNy42L2dkYi9taXBzLWxpbnV4LW5hdC5jCi0rKysrIGIvZ2RiLTcuNi9nZGIvbWlwcy1saW51eC1uYXQuYwotK0BAIC0xNTQsNyArMTU0LDcgQEAgbWlwczY0X2xpbnV4X3JlZ2lzdGVyX2FkZHIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbm8sIGludCBzdG9yZSkKLSsgLyogRmV0Y2ggdGhlIHRocmVhZC1sb2NhbCBzdG9yYWdlIHBvaW50ZXIgZm9yIGxpYnRocmVhZF9kYi4gICovCi0rIAotKyBwc19lcnJfZQotKy1wc19nZXRfdGhyZWFkX2FyZWEgKGNvbnN0IHN0cnVjdCBwc19wcm9jaGFuZGxlICpwaCwKLSsrcHNfZ2V0X3RocmVhZF9hcmVhIChzdHJ1Y3QgcHNfcHJvY2hhbmRsZSAqcGgsCi0rICAgICAgICAgICAgICAgICAgICAgbHdwaWRfdCBsd3BpZCwgaW50IGlkeCwgdm9pZCAqKmJhc2UpCi0rIHsKLSsgICBpZiAocHRyYWNlIChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBLCBsd3BpZCwgTlVMTCwgYmFzZSkgIT0gMCkKLSstLSAKLSsyLjExLjAKLSsKLS0tIAotMi4xMS4wCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcmFzaC9jcmFzaF83LjEuOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcmFzaC9jcmFzaF83LjEuOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQwOTM3ZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3Jhc2gvY3Jhc2hfNy4xLjkuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMTYgKzAsMCBAQAotU1VNTUFSWSA9ICJLZXJuZWwgYW5hbHlzaXMgdXRpbGl0eSBmb3IgbGl2ZSBzeXN0ZW1zLCBuZXRkdW1wLCBkaXNrZHVtcCwga2R1bXAsIExLQ0Qgb3IgbWNvcmUgZHVtcGZpbGVzIgotREVTQ1JJUFRJT04gPSAiVGhlIGNvcmUgYW5hbHlzaXMgc3VpdGUgaXMgYSBzZWxmLWNvbnRhaW5lZCB0b29sIHRoYXQgY2FuIGJlIHVzZWQgdG9cCi1pbnZlc3RpZ2F0ZSBlaXRoZXIgbGl2ZSBzeXN0ZW1zLCBrZXJuZWwgY29yZSBkdW1wcyBjcmVhdGVkIGZyb20gdGhlXAotbmV0ZHVtcCwgZGlza2R1bXAgYW5kIGtkdW1wIHBhY2thZ2VzIGZyb20gUmVkIEhhdCBMaW51eCwgdGhlIG1jb3JlIGtlcm5lbCBwYXRjaFwKLW9mZmVyZWQgYnkgTWlzc2lvbiBDcml0aWNhbCBMaW51eCwgb3IgdGhlIExLQ0Qga2VybmVsIHBhdGNoLiIKLQotSE9NRVBBR0UgPSAiaHR0cDovL3Blb3BsZS5yZWRoYXQuY29tL2FuZGVyc29uIgotU0VDVElPTiA9ICJkZXZlbCIKLQotTElDRU5TRSA9ICJHUEx2MyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkczO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKLQotREVQRU5EUyA9ICJ6bGliIHJlYWRsaW5lIGNvcmV1dGlscy1uYXRpdmUiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2NyYXNoLXV0aWxpdHkvJHtCUE59L2FyY2hpdmUvJHtQVn0udGFyLmd6O2Rvd25sb2FkZmlsZW5hbWU9JHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgaHR0cDovL2Z0cC5nbnUub3JnL2dudS9nZGIvZ2RiLTcuNi50YXIuZ3o7bmFtZT1nZGI7c3ViZGlyPSR7QlB9IFwKLSAgICAgICAgICAgZmlsZTovLzcwMDFmb3JjZV9kZWZpbmVfYXJjaGl0ZWN0dXJlLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzcwMDNjcm9zc19yYW5saWIucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1jcm9zc19hZGRfY29uZmlndXJlX29wdGlvbi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9zaW0tcHBjLWRyb3AtTElCUy1mcm9tLXBzaW0tZGVwZW5kZW5jeS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9zaW0tY29tbW9uLXNpbS1hcmFuZ2UtZml4LWV4dGVybi1pbmxpbmUtaGFuZGxpbmcucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vZG9ubm90LWV4dHJhY3QtZ2RiLWR1cmluZy1kby1jb21waWxlLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2dkYl9idWlsZF9qb2JzX2FuZF9ub3Rfd3JpdGVfY3Jhc2hfdGFyZ2V0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL3JlbW92ZS11bnJlY29nbml6ZWQtZ2NjLW9wdGlvbi1tMzItZm9yLW1pcHMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1jcmFzaC1maXgtYnVpbGQtZXJyb3ItdW5rbm93bi10eXBlLW5hbWUtZ2RiX2ZwcmVnc2V0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDMtY3Jhc2gtZGV0ZWN0LXRoZS1zeXNyb290LXMtZ2xpYmMtaGVhZGVyLWZpbGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwNC1jcmFzaC1maXgtYnVpbGQtZmFpbHVyZS13aXRoLW1pcHMucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiZjNiNDRhMTUxZGJlNzA0NjQ2MmI5Y2FhYTk4NDdjYTYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzQ4ZTEyNjk0NDNhNmE4ZTgzMzdlMzI4YjIxYjAzZTRlNTAyNDhmNjA3ZWVkODNmYmIyN2ViMGQ4MzNkNmFhNCIKLQotU1JDX1VSSVtnZGIubWQ1c3VtXSA9ICJhOTgzNjcwNzMzN2U1ZjdiZjc2YTAwOWE4OTA0ZjQ3MCIKLVNSQ19VUklbZ2RiLnNoYTI1NnN1bV0gPSAiODA3MDM4OWE1ZGNjMTA0ZWIwYmU0ODNkNTgyNzI5Zjk4ZWQ0ZDc2MWFkMTljZWRkM2YxN2I1ZDI1MDJmYWEzNiIKLQotaW5oZXJpdCBnZXR0ZXh0Ci0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIGNyb3NzIgotVEFSR0VUX0NDX0FSQ0hfYXBwZW5kID0gIiAke1NFTEVDVEVEX09QVElNSVpBVElPTn0iCi0KLSMgY3Jhc2ggNy4xLjMgYW5kIGJlZm9yZSBkb24ndCBzdXBwb3J0IG1pcHM2NAotQ09NUEFUSUJMRV9IT1NUID0gIl4oPyFtaXBzNjQpLioiCi0KLUVYVFJBX09FTUFLRSA9ICdSUE1QS0c9IiR7UFZ9IiBcCi0gICAgICAgICAgICAgICAgR0RCX1RBUkdFVD0iJHtUQVJHRVRfU1lTfSIgXAotICAgICAgICAgICAgICAgIEdEQl9IT1NUPSIke0JVSUxEX1NZU30iIFwKLSAgICAgICAgICAgICAgICBHREJfTUFLRV9KT0JTPSIke1BBUkFMTEVMX01BS0V9IiBcCi0gICAgICAgICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSIgXAotICAgICAgICAgICAgICAgICcKLQotRVhUUkFfT0VNQUtFX2NsYXNzLWNyb3NzID0gJ1JQTVBLRz0iJHtQVn0iIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJfVEFSR0VUPSIke0JVSUxEX1NZU30gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwke0dEQl9DT05GX0ZMQUdTfSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS10YXJnZXQ9JHtUQVJHRVRfU1lTfSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQl9IT1NUPSIke0JVSUxEX1NZU30iIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJfTUFLRV9KT0JTPSIke1BBUkFMTEVMX01BS0V9IiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJwotCi1FWFRSQV9PRU1BS0VfYXBwZW5kX2NsYXNzLW5hdGl2ZSA9ICIgTERGTEFHUz0nJHtCVUlMRF9MREZMQUdTfSciCi1FWFRSQV9PRU1BS0VfYXBwZW5kX2NsYXNzLWNyb3NzID0gIiBMREZMQUdTPScke0JVSUxEX0xERkxBR1N9JyIKLQotUkVNT1ZFX00zMiA9ICJzZWQgLWkgLWUgJ3MvI2RlZmluZSBUQVJHRVRfQ0ZMQUdTX0FSTV9PTl9YODZfNjQuKi8jZGVmaW5lIFRBUkdFVF9DRkxBR1NfQVJNX09OX1g4Nl82NFx0XCJUQVJHRVRfQ0ZMQUdTPS1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjRcIi9nJyAke1N9L2NvbmZpZ3VyZS5jIgotCi1SRU1PVkVfTTMyX2NsYXNzLWNyb3NzID0gIiIKLQotZG9fY29uZmlndXJlKCkgewotICAgIDoKLX0KLQotZG9fY29tcGlsZV9wcmVwZW5kKCkgewotICAgIGNhc2UgJHtUQVJHRVRfQVJDSH0gaW4KLSAgICAgICAgYWFyY2g2NCopICAgIEFSQ0g9QVJNNjQgOzsKLSAgICAgICAgYXJtKikgICAgICAgIEFSQ0g9QVJNIDs7Ci0gICAgICAgIGkqODYqKSAgICAgICBBUkNIPVg4NiA7OwotICAgICAgICB4ODZfNjQqKSAgICAgQVJDSD1YODZfNjQgOzsKLSAgICAgICAgcG93ZXJwYzY0KikgIEFSQ0g9UFBDNjQgOzsKLSAgICAgICAgcG93ZXJwYyopICAgIEFSQ0g9UFBDIDs7Ci0gICAgICAgIG1pcHMqKSAgICAgICBBUkNIPU1JUFMgOzsKLSAgICBlc2FjCi0KLSAgICBzZWQgLWkgcy9GT1JDRV9ERUZJTkVfQVJDSC8iJHtBUkNIfSIvZyAke1N9L2NvbmZpZ3VyZS5jCi0gICAgJHtSRU1PVkVfTTMyfQotICAgIHNlZCAtaSAncy8mZ3Q7Lz4vZycgJHtTfS9NYWtlZmlsZQotfQotCi1kb19jb21waWxlKCkgewotICAgIG9lX3J1bm1ha2UgJHtFWFRSQV9PRU1BS0V9IFJFQ0lQRV9TWVNST09UPSR7UkVDSVBFX1NZU1JPT1R9Ci19Ci0KLWRvX2luc3RhbGxfcHJlcGVuZCAoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtiaW5kaXJ9Ci0gICAgaW5zdGFsbCAtZCAke0R9LyR7bWFuZGlyfS9tYW44Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtpbmNsdWRlZGlyfS9jcmFzaAotCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vY3Jhc2guOCAke0R9LyR7bWFuZGlyfS9tYW44LwotICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L2RlZnMuaCAke0R9JHtpbmNsdWRlZGlyfS9jcmFzaAotfQotCi1kb19pbnN0YWxsX2NsYXNzLXRhcmdldCAoKSB7Ci0gICAgb2VfcnVubWFrZSBERVNURElSPSR7RH0gaW5zdGFsbAotfQotCi1kb19pbnN0YWxsX2NsYXNzLW5hdGl2ZSAoKSB7Ci0gICAgb2VfcnVubWFrZSBERVNURElSPSR7RH0ke1NUQUdJTkdfRElSX05BVElWRX0gaW5zdGFsbAotfQotCi1kb19pbnN0YWxsX2NsYXNzLWNyb3NzICgpIHsKLSAgICBpbnN0YWxsIC1tIDA3NTUgJHtTfS9jcmFzaCAke0R9LyR7YmluZGlyfQotfQotCi1SREVQRU5EU18ke1BOfSArPSAibGlibHptYSIKLVJERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCi1SREVQRU5EU18ke1BOfV9jbGFzcy1jcm9zcyA9ICIiCi0KLSMgQ2F1c2VzIGdjYyB0byBnZXQgc3R1Y2sgYW5kIGVhdCBhbGwgYXZhaWxhYmxlIG1lbW9yeSBpbiBxZW11YXJtIGJ1aWxkcwotIyBqZW5raW5zICAxNTE2MSAgMTAwIDEyLjUgMTAzODk1OTYgMTAzMjEyODQgPyAgIFIgICAgMTE6NDAgIDI4OjE3IC9ob21lL2plbmtpbnMvb2Uvd29ybGQvc2hyLWNvcmUvdG1wLWdsaWJjL3N5c3Jvb3RzL3g4Nl82NC1saW51eC91c3IvbGliZXhlYy9hcm0tb2UtbGludXgtZ251ZWFiaS9nY2MvYXJtLW9lLWxpbnV4LWdudWVhYmkvNC45LjIvY2MxIC1xdWlldCAtSSAuIC1JIC4gLUkgLi9jb21tb24gLUkgLi9jb25maWcgLUkgLi8uLi9pbmNsdWRlL29wY29kZSAtSSAuLy4uL29wY29kZXMvLi4gLUkgLi8uLi9yZWFkbGluZS8uLiAtSSAuLi9iZmQgLUkgLi8uLi9iZmQgLUkgLi8uLi9pbmNsdWRlIC1JIC4uL2xpYmRlY251bWJlciAtSSAuLy4uL2xpYmRlY251bWJlciAtSSAuL2dudWxpYi9pbXBvcnQgLUkgYnVpbGQtZ251bGliL2ltcG9ydCAtaXN5c3Jvb3QgL2hvbWUvamVua2lucy9vZS93b3JsZC9zaHItY29yZS90bXAtZ2xpYmMvc3lzcm9vdHMvcWVtdWFybSAtTU1EIGV2YWwuZCAtTUYgLmRlcHMvZXZhbC5UcG8gLU1QIC1NVCBldmFsLm8gLUQgTE9DQUxFRElSPSIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIgLUQgQ1JBU0hfTUVSR0UgLUQgSEFWRV9DT05GSUdfSCAtRCBUVUk9MSBldmFsLmMgLXF1aWV0IC1kdW1wYmFzZSBldmFsLmMgLW1hcmNoPWFybXY1dGUgLW10aHVtYiAtbXRodW1iLWludGVyd29yayAtbXRscy1kaWFsZWN0PWdudSAtYXV4YmFzZS1zdHJpcCBldmFsLm8gLWcgLU8yIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV2Zvcm1hdC1ub25saXRlcmFsIC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkIC1XdW51c2VkLXZhbHVlIC1XdW51c2VkLWZ1bmN0aW9uIC1Xbm8tc3dpdGNoIC1Xbm8tY2hhci1zdWJzY3JpcHRzIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW1wdHktYm9keSAtZmVsaW1pbmF0ZS11bnVzZWQtZGVidWctdHlwZXMgLW8gLQotQVJNX0lOU1RSVUNUSU9OX1NFVCA9ICJhcm0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3Jhc2gvY3Jhc2hfNy4yLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3Jhc2gvY3Jhc2hfNy4yLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJlYTQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcmFzaC9jcmFzaF83LjIuMC5iYgpAQCAtMCwwICsxLDExNSBAQAorU1VNTUFSWSA9ICJLZXJuZWwgYW5hbHlzaXMgdXRpbGl0eSBmb3IgbGl2ZSBzeXN0ZW1zLCBuZXRkdW1wLCBkaXNrZHVtcCwga2R1bXAsIExLQ0Qgb3IgbWNvcmUgZHVtcGZpbGVzIgorREVTQ1JJUFRJT04gPSAiVGhlIGNvcmUgYW5hbHlzaXMgc3VpdGUgaXMgYSBzZWxmLWNvbnRhaW5lZCB0b29sIHRoYXQgY2FuIGJlIHVzZWQgdG9cCitpbnZlc3RpZ2F0ZSBlaXRoZXIgbGl2ZSBzeXN0ZW1zLCBrZXJuZWwgY29yZSBkdW1wcyBjcmVhdGVkIGZyb20gdGhlXAorbmV0ZHVtcCwgZGlza2R1bXAgYW5kIGtkdW1wIHBhY2thZ2VzIGZyb20gUmVkIEhhdCBMaW51eCwgdGhlIG1jb3JlIGtlcm5lbCBwYXRjaFwKK29mZmVyZWQgYnkgTWlzc2lvbiBDcml0aWNhbCBMaW51eCwgb3IgdGhlIExLQ0Qga2VybmVsIHBhdGNoLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL3Blb3BsZS5yZWRoYXQuY29tL2FuZGVyc29uIgorU0VDVElPTiA9ICJkZXZlbCIKKworTElDRU5TRSA9ICJHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkczO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKKworREVQRU5EUyA9ICJ6bGliIHJlYWRsaW5lIGNvcmV1dGlscy1uYXRpdmUiCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2NyYXNoLXV0aWxpdHkvJHtCUE59L2FyY2hpdmUvJHtQVn0udGFyLmd6O2Rvd25sb2FkZmlsZW5hbWU9JHtCUH0udGFyLmd6IFwKKyAgICAgICAgICAgaHR0cDovL2Z0cC5nbnUub3JnL2dudS9nZGIvZ2RiLTcuNi50YXIuZ3o7bmFtZT1nZGI7c3ViZGlyPSR7QlB9IFwKKyAgICAgICAgICAgZmlsZTovLzcwMDFmb3JjZV9kZWZpbmVfYXJjaGl0ZWN0dXJlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzcwMDNjcm9zc19yYW5saWIucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1jcm9zc19hZGRfY29uZmlndXJlX29wdGlvbi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9zaW0tcHBjLWRyb3AtTElCUy1mcm9tLXBzaW0tZGVwZW5kZW5jeS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9zaW0tY29tbW9uLXNpbS1hcmFuZ2UtZml4LWV4dGVybi1pbmxpbmUtaGFuZGxpbmcucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZG9ubm90LWV4dHJhY3QtZ2RiLWR1cmluZy1kby1jb21waWxlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2dkYl9idWlsZF9qb2JzX2FuZF9ub3Rfd3JpdGVfY3Jhc2hfdGFyZ2V0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3JlbW92ZS11bnJlY29nbml6ZWQtZ2NjLW9wdGlvbi1tMzItZm9yLW1pcHMucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMi1jcmFzaC1maXgtYnVpbGQtZXJyb3ItdW5rbm93bi10eXBlLW5hbWUtZ2RiX2ZwcmVnc2V0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDMtY3Jhc2gtZGV0ZWN0LXRoZS1zeXNyb290LXMtZ2xpYmMtaGVhZGVyLWZpbGUucGF0Y2ggXAorICAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiNDg4OTlkZTMxMThlMDRjZmE0MGEyMzY0ZjU2MTgxOTMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWQwNzZlMWZlZmI0MWFhMTc4YWQzZTFjZWY2NTExNjcwZWZjNDdkZTVjYjA0ZDRhZjliZGQ0ZThmMmYxOGNiYyIKKworU1JDX1VSSVtnZGIubWQ1c3VtXSA9ICJhOTgzNjcwNzMzN2U1ZjdiZjc2YTAwOWE4OTA0ZjQ3MCIKK1NSQ19VUklbZ2RiLnNoYTI1NnN1bV0gPSAiODA3MDM4OWE1ZGNjMTA0ZWIwYmU0ODNkNTgyNzI5Zjk4ZWQ0ZDc2MWFkMTljZWRkM2YxN2I1ZDI1MDJmYWEzNiIKKworaW5oZXJpdCBnZXR0ZXh0CisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIGNyb3NzIgorVEFSR0VUX0NDX0FSQ0hfYXBwZW5kID0gIiAke1NFTEVDVEVEX09QVElNSVpBVElPTn0iCisKKyMgY3Jhc2ggNy4xLjMgYW5kIGJlZm9yZSBkb24ndCBzdXBwb3J0IG1pcHM2NAorQ09NUEFUSUJMRV9IT1NUID0gIl4oPyFtaXBzNjQpLioiCisKK0VYVFJBX09FTUFLRSA9ICdSUE1QS0c9IiR7UFZ9IiBcCisgICAgICAgICAgICAgICAgR0RCX1RBUkdFVD0iJHtUQVJHRVRfU1lTfSIgXAorICAgICAgICAgICAgICAgIEdEQl9IT1NUPSIke0JVSUxEX1NZU30iIFwKKyAgICAgICAgICAgICAgICBHREJfTUFLRV9KT0JTPSIke1BBUkFMTEVMX01BS0V9IiBcCisgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSIgXAorICAgICAgICAgICAgICAgICcKKworRVhUUkFfT0VNQUtFX2NsYXNzLWNyb3NzID0gJ1JQTVBLRz0iJHtQVn0iIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJfVEFSR0VUPSIke0JVSUxEX1NZU30gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwke0dEQl9DT05GX0ZMQUdTfSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS10YXJnZXQ9JHtUQVJHRVRfU1lTfSIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQl9IT1NUPSIke0JVSUxEX1NZU30iIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJfTUFLRV9KT0JTPSIke1BBUkFMTEVMX01BS0V9IiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJworCitFWFRSQV9PRU1BS0VfYXBwZW5kX2NsYXNzLW5hdGl2ZSA9ICIgTERGTEFHUz0nJHtCVUlMRF9MREZMQUdTfSciCitFWFRSQV9PRU1BS0VfYXBwZW5kX2NsYXNzLWNyb3NzID0gIiBMREZMQUdTPScke0JVSUxEX0xERkxBR1N9JyIKKworUkVNT1ZFX00zMiA9ICJzZWQgLWkgLWUgJ3MvI2RlZmluZSBUQVJHRVRfQ0ZMQUdTX0FSTV9PTl9YODZfNjQuKi8jZGVmaW5lIFRBUkdFVF9DRkxBR1NfQVJNX09OX1g4Nl82NFx0XCJUQVJHRVRfQ0ZMQUdTPS1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjRcIi9nJyAke1N9L2NvbmZpZ3VyZS5jIgorCitSRU1PVkVfTTMyX2NsYXNzLWNyb3NzID0gIiIKKworZG9fY29uZmlndXJlKCkgeworICAgIDoKK30KKworZG9fY29tcGlsZV9wcmVwZW5kKCkgeworICAgIGNhc2UgJHtUQVJHRVRfQVJDSH0gaW4KKyAgICAgICAgYWFyY2g2NCopICAgIEFSQ0g9QVJNNjQgOzsKKyAgICAgICAgYXJtKikgICAgICAgIEFSQ0g9QVJNIDs7CisgICAgICAgIGkqODYqKSAgICAgICBBUkNIPVg4NiA7OworICAgICAgICB4ODZfNjQqKSAgICAgQVJDSD1YODZfNjQgOzsKKyAgICAgICAgcG93ZXJwYzY0KikgIEFSQ0g9UFBDNjQgOzsKKyAgICAgICAgcG93ZXJwYyopICAgIEFSQ0g9UFBDIDs7CisgICAgICAgIG1pcHMqKSAgICAgICBBUkNIPU1JUFMgOzsKKyAgICBlc2FjCisKKyAgICBzZWQgLWkgcy9GT1JDRV9ERUZJTkVfQVJDSC8iJHtBUkNIfSIvZyAke1N9L2NvbmZpZ3VyZS5jCisgICAgJHtSRU1PVkVfTTMyfQorICAgIHNlZCAtaSAncy8mZ3Q7Lz4vZycgJHtTfS9NYWtlZmlsZQorfQorCitkb19jb21waWxlKCkgeworICAgIG9lX3J1bm1ha2UgJHtFWFRSQV9PRU1BS0V9IFJFQ0lQRV9TWVNST09UPSR7UkVDSVBFX1NZU1JPT1R9Cit9CisKK2RvX2luc3RhbGxfcHJlcGVuZCAoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9JHtiaW5kaXJ9CisgICAgaW5zdGFsbCAtZCAke0R9LyR7bWFuZGlyfS9tYW44CisgICAgaW5zdGFsbCAtZCAke0R9JHtpbmNsdWRlZGlyfS9jcmFzaAorCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vY3Jhc2guOCAke0R9LyR7bWFuZGlyfS9tYW44LworICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L2RlZnMuaCAke0R9JHtpbmNsdWRlZGlyfS9jcmFzaAorfQorCitkb19pbnN0YWxsX2NsYXNzLXRhcmdldCAoKSB7CisgICAgb2VfcnVubWFrZSBERVNURElSPSR7RH0gaW5zdGFsbAorfQorCitkb19pbnN0YWxsX2NsYXNzLW5hdGl2ZSAoKSB7CisgICAgb2VfcnVubWFrZSBERVNURElSPSR7RH0ke1NUQUdJTkdfRElSX05BVElWRX0gaW5zdGFsbAorfQorCitkb19pbnN0YWxsX2NsYXNzLWNyb3NzICgpIHsKKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtTfS9jcmFzaCAke0R9LyR7YmluZGlyfQorfQorCitSREVQRU5EU18ke1BOfSArPSAibGlibHptYSIKK1JERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCitSREVQRU5EU18ke1BOfV9jbGFzcy1jcm9zcyA9ICIiCisKKyMgQ2F1c2VzIGdjYyB0byBnZXQgc3R1Y2sgYW5kIGVhdCBhbGwgYXZhaWxhYmxlIG1lbW9yeSBpbiBxZW11YXJtIGJ1aWxkcworIyBqZW5raW5zICAxNTE2MSAgMTAwIDEyLjUgMTAzODk1OTYgMTAzMjEyODQgPyAgIFIgICAgMTE6NDAgIDI4OjE3IC9ob21lL2plbmtpbnMvb2Uvd29ybGQvc2hyLWNvcmUvdG1wLWdsaWJjL3N5c3Jvb3RzL3g4Nl82NC1saW51eC91c3IvbGliZXhlYy9hcm0tb2UtbGludXgtZ251ZWFiaS9nY2MvYXJtLW9lLWxpbnV4LWdudWVhYmkvNC45LjIvY2MxIC1xdWlldCAtSSAuIC1JIC4gLUkgLi9jb21tb24gLUkgLi9jb25maWcgLUkgLi8uLi9pbmNsdWRlL29wY29kZSAtSSAuLy4uL29wY29kZXMvLi4gLUkgLi8uLi9yZWFkbGluZS8uLiAtSSAuLi9iZmQgLUkgLi8uLi9iZmQgLUkgLi8uLi9pbmNsdWRlIC1JIC4uL2xpYmRlY251bWJlciAtSSAuLy4uL2xpYmRlY251bWJlciAtSSAuL2dudWxpYi9pbXBvcnQgLUkgYnVpbGQtZ251bGliL2ltcG9ydCAtaXN5c3Jvb3QgL2hvbWUvamVua2lucy9vZS93b3JsZC9zaHItY29yZS90bXAtZ2xpYmMvc3lzcm9vdHMvcWVtdWFybSAtTU1EIGV2YWwuZCAtTUYgLmRlcHMvZXZhbC5UcG8gLU1QIC1NVCBldmFsLm8gLUQgTE9DQUxFRElSPSIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIgLUQgQ1JBU0hfTUVSR0UgLUQgSEFWRV9DT05GSUdfSCAtRCBUVUk9MSBldmFsLmMgLXF1aWV0IC1kdW1wYmFzZSBldmFsLmMgLW1hcmNoPWFybXY1dGUgLW10aHVtYiAtbXRodW1iLWludGVyd29yayAtbXRscy1kaWFsZWN0PWdudSAtYXV4YmFzZS1zdHJpcCBldmFsLm8gLWcgLU8yIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV2Zvcm1hdC1ub25saXRlcmFsIC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkIC1XdW51c2VkLXZhbHVlIC1XdW51c2VkLWZ1bmN0aW9uIC1Xbm8tc3dpdGNoIC1Xbm8tY2hhci1zdWJzY3JpcHRzIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW1wdHktYm9keSAtZmVsaW1pbmF0ZS11bnVzZWQtZGVidWctdHlwZXMgLW8gLQorQVJNX0lOU1RSVUNUSU9OX1NFVCA9ICJhcm0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lwbWl0b29sL2lwbWl0b29sXzEuOC4xOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9pcG1pdG9vbC9pcG1pdG9vbF8xLjguMTguYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaXBtaXRvb2wvaXBtaXRvb2xfMS44LjE4LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvaXBtaXRvb2wvaXBtaXRvb2xfMS44LjE4LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lwbWl1dGlsL2lwbWl1dGlsL2ZpeF9zeXN0ZW1kX3BhdGgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvaXBtaXV0aWwvaXBtaXV0aWwvZml4X3N5c3RlbWRfcGF0aC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pcG1pdXRpbC9pcG1pdXRpbC9maXhfc3lzdGVtZF9wYXRoLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvaXBtaXV0aWwvaXBtaXV0aWwvZml4X3N5c3RlbWRfcGF0aC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pcG1pdXRpbC9pcG1pdXRpbF8zLjAuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9pcG1pdXRpbC9pcG1pdXRpbF8zLjAuNS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pcG1pdXRpbC9pcG1pdXRpbF8zLjAuNS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2lwbWl1dGlsL2lwbWl1dGlsXzMuMC41LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwva3BhdGNoL2twYXRjaC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwva3BhdGNoL2twYXRjaC5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFlNzNlOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9rcGF0Y2gva3BhdGNoLmluYwpAQCAtMCwwICsxLDQ5IEBACitTVU1NQVJZID0gIkxpbnV4IGR5bmFtaWMga2VybmVsIHBhdGNoaW5nIGluZnJhc3RydWN0dXJlIgorREVTQ1JJUFRJT04gPSAia3BhdGNoIGlzIGEgTGludXggZHluYW1pYyBrZXJuZWwgcGF0Y2hpbmcgaW5mcmFzdHJ1Y3R1cmUgd2hpY2ggYWxsb3dzIHlvdSB0byBwYXRjaCBhIHJ1bm5pbmcga2VybmVsIHdpdGhvdXQgcmVib290aW5nIG9yIHJlc3RhcnRpbmcgYW55IHByb2Nlc3Nlcy4iCitMSUNFTlNFID0gIkdQTHYyICYgTEdQTHYyIgorREVQRU5EUyA9ICJlbGZ1dGlscyBiYXNoIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vZHludXAva3BhdGNoLmdpdDtwcm90b2NvbD1odHRwcyBcCisJZmlsZTovLzAwMDEta3BhdGNoLWJ1aWxkLWFkZC1jcm9zcy1jb21waWxhdGlvbi1zdXBwb3J0LnBhdGNoIFwKKwlmaWxlOi8vMDAwMi1rcGF0Y2gtYnVpbGQtYWxsb3ctb3ZlcnJpZGluZy1vZi1kaXN0cm8tbmFtZS5wYXRjaCBcCisJIgorCitFWFRSQV9PRU1BS0UgPSAiIFwKKwlQUkVGSVg9JHtwcmVmaXh9IFwKKwlCSU5ESVI9JHtEfSR7YmluZGlyfSBcCisJU0JJTkRJUj0ke0R9JHtzYmluZGlyfSBcCisJTElCRElSPSR7RH0ke2xpYmRpcn0gXAorCU1BTkRJUj0ke0R9JHttYW5kaXJ9L21hbjEgXAorCVNZU1RFTURESVI9JHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0gXAorCURFU1RESVI9JHtEfSBcCisJQlVJTERNT0Q9bm8gXAorCUNDPScke0NDfScgXAorCSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworZG9faW5zdGFsbCAoKSB7CisJb2VfcnVubWFrZSBpbnN0YWxsCit9CisKK1BBQ0tBR0VTID0rICJrcGF0Y2gtYnVpbGQiCitQUk9WSURFUyArPSAia3BhdGNoLWJ1aWxkIgorCitDT01QQVRJQkxFX0hPU1QgPSAiKHg4Nl82NCkuKi1saW51eCIKKworUkRFUEVORFNfJHtQTn0gPSAiYmFzaCBiaW51dGlscyIKK1JERVBFTkRTX2twYXRjaC1idWlsZCA9ICJiYXNoIGdsaWJjLXV0aWxzIgorCitGSUxFU18ke1BOfSA9ICIgXAorCSR7c2JpbmRpcn0va3BhdGNoIFwKKwkke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L2twYXRjaC5zZXJ2aWNlIFwKKwkke21hbmRpcn0vbWFuMS9rcGF0Y2guMS5neiBcCisJIgorRklMRVNfa3BhdGNoLWJ1aWxkID0gIiBcCisJJHtiaW5kaXJ9L2twYXRjaC1idWlsZCBcCisJJHtsaWJleGVjZGlyfS8qIFwKKwkke2RhdGFkaXJ9L2twYXRjaCBcCisJJHttYW5kaXJ9L21hbjEva3BhdGNoLWJ1aWxkLjEuZ3ogXAorCSIKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImtwYXRjaC5zZXJ2aWNlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2twYXRjaC9rcGF0Y2gvMDAwMS1rcGF0Y2gtYnVpbGQtYWRkLWNyb3NzLWNvbXBpbGF0aW9uLXN1cHBvcnQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwva3BhdGNoL2twYXRjaC8wMDAxLWtwYXRjaC1idWlsZC1hZGQtY3Jvc3MtY29tcGlsYXRpb24tc3VwcG9ydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTlmYjIxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2twYXRjaC9rcGF0Y2gvMDAwMS1rcGF0Y2gtYnVpbGQtYWRkLWNyb3NzLWNvbXBpbGF0aW9uLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwxMDMgQEAKK0Zyb20gYTlhODBhMWY0ZGY2NTg5MmEwMjY5Mjk1Y2U4YTY0YjA2ZjJmZjYxZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJ1c2xhbiBCaWxvdm9sIDxyYmlsb3ZvbEBjaXNjby5jb20+CitEYXRlOiBUdWUsIDE5IERlYyAyMDE3IDE1OjU5OjA0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGtwYXRjaC1idWlsZDogYWRkIGNyb3NzLWNvbXBpbGF0aW9uIHN1cHBvcnQKKworVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBvcHRpb24gZm9yIGtwYXRjaC1idWlsZAorc2NyaXB0ICItLWNyb3NzLWNvbXBpbGUiIHdoaWNoIGNhbiBiZSB1c2VkIGZvcgorc3BlY2lmeWluZyBjcm9zcy1jb21wbGllciBwcmVmaXguCitJdCBhbGxvd3MgdG8gYnVpbGQgbGl2ZSBwYXRjaGVzIG5vdCBvbmx5IG9uCit0YXJnZXQgc3lzdGVtLCBidXQgYWxzbyBvbiBob3N0cyBmb3IgYSB0YXJnZXQgb3RoZXIKK3RoYW4gdGhlIG9uZSBvbiB3aGljaCB0aGUgY29tcGlsZXIgaXMgcnVubmluZworCitBbHNvIHJlbW92ZWQgcXVvdGVzIGluIGV4ZWMgbGluZXMsIHNvIGl0IGlzCitwb3NzaWJsZSB0byBwYXNzIG11bHR5LWNvbXBvbmVudCBzdHJpbmdzIGxpa2UKKyJjY2FjaGUgeDg2XzY0LXhlbGludXgtbGludXgtIiBhcyBjcm9zcy1jb21waWxlcgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogUnVzbGFuIEJpbG92b2wgPHJiaWxvdm9sQGNpc2NvLmNvbT4KKy0tLQorIGtwYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQgfCAxMyArKysrKysrKysrKy0tCisga3BhdGNoLWJ1aWxkL2twYXRjaC1nY2MgICB8ICA0ICsrLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9rcGF0Y2gtYnVpbGQva3BhdGNoLWJ1aWxkIGIva3BhdGNoLWJ1aWxkL2twYXRjaC1idWlsZAoraW5kZXggMTY2ZWNiZC4uYWYyNGNjNCAxMDA3NTUKKy0tLSBhL2twYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQKKysrKyBiL2twYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQKK0BAIC0xOTUsNyArMTk1LDcgQEAgZ2NjX3ZlcnNpb25fY2hlY2soKSB7CisgCSMgZ2NjIC0tdmVyc2lvbiB2YXJpZXMgYmV0d2VlbiBkaXN0cmlidXRpb25zIHRoZXJlZm9yZSBleHRyYWN0IHZlcnNpb24KKyAJIyBieSBjb21waWxpbmcgYSB0ZXN0IGZpbGUgYW5kIGNvbXBhcmUgaXQgdG8gdm1saW51eCdzIHZlcnNpb24uCisgCWVjaG8gJ3ZvaWQgbWFpbih2b2lkKSB7fScgPiAiJGMiCistCW91dD0iJChnY2MgLWMgLXBnIC1mZnVuY3Rpb24tc2VjdGlvbnMgLW8gIiRvIiAiJGMiIDI+JjEpIgorKwlvdXQ9IiQoJHtLUEFUQ0hfQ1JPU1NfQ09NUElMRX1nY2MgLWMgLXBnIC1mZnVuY3Rpb24tc2VjdGlvbnMgLW8gIiRvIiAiJGMiIDI+JjEpIgorIAlnY2N2ZXI9IiQoZ2NjX3ZlcnNpb25fZnJvbV9maWxlICIkbyIpIgorIAlrZ2NjdmVyPSIkKGdjY192ZXJzaW9uX2Zyb21fZmlsZSAiJFZNTElOVVgiKSIKKyAJcm0gLWYgIiRjIiAiJG8iCitAQCAtMzgxLDEyICszODEsMTQgQEAgdXNhZ2UoKSB7CisgCWVjaG8gIgkJLWQsIC0tZGVidWcgICAgICAgIEVuYWJsZSAneHRyYWNlJyBhbmQga2VlcCBzY3JhdGNoIGZpbGVzIiA+JjIKKyAJZWNobyAiCQkgICAgICAgICAgICAgICAgICAgaW4gPENBQ0hFRElSPi90bXAiID4mMgorIAllY2hvICIJCSAgICAgICAgICAgICAgICAgICAoY2FuIGJlIHNwZWNpZmllZCBtdWx0aXBsZSB0aW1lcykiID4mMgorKwllY2hvICIJCS0tY3Jvc3MtY29tcGlsZSAgICBTcGVjaWZ5IHRoZSBwcmVmaXggdXNlZCBmb3IgYWxsIGV4ZWN1dGFibGVzIiA+JjIKKysJZWNobyAiCQkgICAgICAgICAgICAgICAgICAgdXNlZCBkdXJpbmcgY29tcGlsYXRpb24iID4mMgorIAllY2hvICIJCS0tc2tpcC1jbGVhbnVwICAgICBTa2lwIHBvc3QtYnVpbGQgY2xlYW51cCIgPiYyCisgCWVjaG8gIgkJLS1za2lwLWdjYy1jaGVjayAgIFNraXAgZ2NjIHZlcnNpb24gbWF0Y2hpbmcgY2hlY2siID4mMgorIAllY2hvICIJCSAgICAgICAgICAgICAgICAgICAobm90IHJlY29tbWVuZGVkKSIgPiYyCisgfQorIAorLW9wdGlvbnM9IiQoZ2V0b3B0IC1vIGhhOnI6czpjOnY6ajp0Om46bzpkIC1sICJoZWxwLGFyY2h2ZXJzaW9uOixzb3VyY2VycG06LHNvdXJjZWRpcjosY29uZmlnOix2bWxpbnV4Oixqb2JzOix0YXJnZXQ6LG5hbWU6LG91dHB1dDosZGVidWcsc2tpcC1nY2MtY2hlY2ssc2tpcC1jbGVhbnVwIiAtLSAiJEAiKSIgfHwgZGllICJnZXRvcHQgZmFpbGVkIgorK29wdGlvbnM9IiQoZ2V0b3B0IC1vIGhhOnI6czpjOnY6ajp0Om46bzpkIC1sICJoZWxwLGFyY2h2ZXJzaW9uOixzb3VyY2VycG06LHNvdXJjZWRpcjosY29uZmlnOix2bWxpbnV4Oixqb2JzOix0YXJnZXQ6LG5hbWU6LG91dHB1dDosZGVidWcsY3Jvc3MtY29tcGlsZTosc2tpcC1nY2MtY2hlY2ssc2tpcC1jbGVhbnVwIiAtLSAiJEAiKSIgfHwgZGllICJnZXRvcHQgZmFpbGVkIgorIAorIGV2YWwgc2V0IC0tICIkb3B0aW9ucyIKKyAKK0BAIC00NDQsNiArNDQ2LDEwIEBAIHdoaWxlIFtbICQjIC1ndCAwIF1dOyBkbworIAkJCWVjaG8gIkRFQlVHIG1vZGUgZW5hYmxlZCIKKyAJCWZpCisgCQk7OworKwktLWNyb3NzLWNvbXBpbGUpCisrCQlLUEFUQ0hfQ1JPU1NfQ09NUElMRT0iJDIiCisrCQlzaGlmdAorKwkJOzsKKyAJLS1za2lwLWNsZWFudXApCisgCQllY2hvICJTa2lwcGluZyBjbGVhbnVwIgorIAkJU0tJUENMRUFOVVA9MQorQEAgLTY5MSw2ICs2OTcsOCBAQCBpZiBbWyAkREVCVUcgLWdlIDQgXV07IHRoZW4KKyAJZXhwb3J0IEtQQVRDSF9HQ0NfREVCVUc9MQorIGZpCisgCisrZXhwb3J0IEtQQVRDSF9DUk9TU19DT01QSUxFCisrCisgZWNobyAiQnVpbGRpbmcgb3JpZ2luYWwga2VybmVsIgorIC4vc2NyaXB0cy9zZXRsb2NhbHZlcnNpb24gLS1zYXZlLXNjbXZlcnNpb24gfHwgZGllCisgbWFrZSBtcnByb3BlciAyPiYxIHwgbG9nZ2VyIHx8IGRpZQorQEAgLTg0MCw2ICs4NDgsNyBAQCBjZCAiJFRFTVBESVIvcGF0Y2giIHx8IGRpZQorIEtQQVRDSF9CVUlMRD0iJFNSQ0RJUiIgS1BBVENIX05BTUU9IiRNT0ROQU1FIiBcCisgS0JVSUxEX0VYVFJBX1NZTUJPTFM9IiRLQlVJTERfRVhUUkFfU1lNQk9MUyIgXAorIEtQQVRDSF9MREZMQUdTPSIkS1BBVENIX0xERkxBR1MiIFwKKytDUk9TU19DT01QSUxFPSIkS1BBVENIX0NST1NTX0NPTVBJTEUiIFwKKyAJbWFrZSAyPiYxIHwgbG9nZ2VyIHx8IGRpZQorIAorIGlmICEgIiRLUEFUQ0hfTU9EVUxFIjsgdGhlbgorZGlmZiAtLWdpdCBhL2twYXRjaC1idWlsZC9rcGF0Y2gtZ2NjIGIva3BhdGNoLWJ1aWxkL2twYXRjaC1nY2MKK2luZGV4IDZiYTEzM2MuLjM5Mzc5NDggMTAwNzU1CistLS0gYS9rcGF0Y2gtYnVpbGQva3BhdGNoLWdjYworKysrIGIva3BhdGNoLWJ1aWxkL2twYXRjaC1nY2MKK0BAIC04LDcgKzgsNyBAQCBUT09MQ0hBSU5DTUQ9IiQxIgorIHNoaWZ0CisgCisgaWYgW1sgLXogIiRLUEFUQ0hfR0NDX1RFTVBESVIiIF1dOyB0aGVuCistCWV4ZWMgIiRUT09MQ0hBSU5DTUQiICIkQCIKKysJZXhlYyAke0tQQVRDSF9DUk9TU19DT01QSUxFfSR7VE9PTENIQUlOQ01EfSAiJEAiCisgZmkKKyAKKyBkZWNsYXJlIC1hIGFyZ3M9KCIkQCIpCitAQCAtODAsNCArODAsNCBAQCBlbGlmIFtbICIkVE9PTENIQUlOQ01EIiA9ICJsZCIgXV0gOyB0aGVuCisgCWRvbmUKKyBmaQorIAorLWV4ZWMgIiRUT09MQ0hBSU5DTUQiICIke2FyZ3NbQF19IgorK2V4ZWMgJHtLUEFUQ0hfQ1JPU1NfQ09NUElMRX0ke1RPT0xDSEFJTkNNRH0gIiR7YXJnc1tAXX0iCistLSAKKzEuOS4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9rcGF0Y2gva3BhdGNoLzAwMDIta3BhdGNoLWJ1aWxkLWFsbG93LW92ZXJyaWRpbmctb2YtZGlzdHJvLW5hbWUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwva3BhdGNoL2twYXRjaC8wMDAyLWtwYXRjaC1idWlsZC1hbGxvdy1vdmVycmlkaW5nLW9mLWRpc3Ryby1uYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZDhhN2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwva3BhdGNoL2twYXRjaC8wMDAyLWtwYXRjaC1idWlsZC1hbGxvdy1vdmVycmlkaW5nLW9mLWRpc3Ryby1uYW1lLnBhdGNoCkBAIC0wLDAgKzEsNjIgQEAKK0Zyb20gZDQxOGQ3MTZkYWUxZTJhMDUxMzFkZmI0MmExOWE0ZGEyZmM4YTg1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJ1c2xhbiBCaWxvdm9sIDxyYmlsb3ZvbEBjaXNjby5jb20+CitEYXRlOiBUdWUsIDIgSmFuIDIwMTggMTQ6NTA6MDMgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0ga3BhdGNoLWJ1aWxkOiBhbGxvdyBvdmVycmlkaW5nIG9mIGRpc3RybyBuYW1lCisKK0l0IGlzIHNvbWV0aW1lcyB1c2VmdWwgdG8gaGF2ZSBhYmlsaXR5IHRvIG92ZXJyaWRlCitkaXN0cm8gbmFtZSwgZm9yIGV4YW1wbGUgZHVyaW5nIGNyb3NzLWNvbXBpbGF0aW9uCitidWlsZCB3aGVuIGxpdmVwYXRjaCBtb2R1bGVzIHdpbGwgYmUgcmFuIG9uIHRoZQordGFyZ2V0IHdoaWNoIGRpZmZlcnMgZnJvbSBob3N0LgorCitUaGlzIHBhdGNoIGFkZHMgYSBuZXcgLS1kaXN0cm8gb3B0aW9uIHdoaWNoCitpbXBsZW1lbnRzIGFsbCBuZWVkZWQgZnVuY3Rpb25hbGl0eQorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogUnVzbGFuIEJpbG92b2wgPHJiaWxvdm9sQGNpc2NvLmNvbT4KKy0tLQorIGtwYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQgfCA5ICsrKysrKystLQorIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9rcGF0Y2gtYnVpbGQva3BhdGNoLWJ1aWxkIGIva3BhdGNoLWJ1aWxkL2twYXRjaC1idWlsZAoraW5kZXggYWYyNGNjNC4uNGY5Zjc4ZCAxMDA3NTUKKy0tLSBhL2twYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQKKysrKyBiL2twYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQKK0BAIC0zODMsMTIgKzM4MywxMyBAQCB1c2FnZSgpIHsKKyAJZWNobyAiCQkgICAgICAgICAgICAgICAgICAgKGNhbiBiZSBzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMpIiA+JjIKKyAJZWNobyAiCQktLWNyb3NzLWNvbXBpbGUgICAgU3BlY2lmeSB0aGUgcHJlZml4IHVzZWQgZm9yIGFsbCBleGVjdXRhYmxlcyIgPiYyCisgCWVjaG8gIgkJICAgICAgICAgICAgICAgICAgIHVzZWQgZHVyaW5nIGNvbXBpbGF0aW9uIiA+JjIKKysJZWNobyAiCQktLWRpc3RybyAgICAgICAgICAgT3ZlcnJpZGUgZGlzdHJvIG5hbWUiID4mMgorIAllY2hvICIJCS0tc2tpcC1jbGVhbnVwICAgICBTa2lwIHBvc3QtYnVpbGQgY2xlYW51cCIgPiYyCisgCWVjaG8gIgkJLS1za2lwLWdjYy1jaGVjayAgIFNraXAgZ2NjIHZlcnNpb24gbWF0Y2hpbmcgY2hlY2siID4mMgorIAllY2hvICIJCSAgICAgICAgICAgICAgICAgICAobm90IHJlY29tbWVuZGVkKSIgPiYyCisgfQorIAorLW9wdGlvbnM9IiQoZ2V0b3B0IC1vIGhhOnI6czpjOnY6ajp0Om46bzpkIC1sICJoZWxwLGFyY2h2ZXJzaW9uOixzb3VyY2VycG06LHNvdXJjZWRpcjosY29uZmlnOix2bWxpbnV4Oixqb2JzOix0YXJnZXQ6LG5hbWU6LG91dHB1dDosZGVidWcsY3Jvc3MtY29tcGlsZTosc2tpcC1nY2MtY2hlY2ssc2tpcC1jbGVhbnVwIiAtLSAiJEAiKSIgfHwgZGllICJnZXRvcHQgZmFpbGVkIgorK29wdGlvbnM9IiQoZ2V0b3B0IC1vIGhhOnI6czpjOnY6ajp0Om46bzpkIC1sICJoZWxwLGFyY2h2ZXJzaW9uOixzb3VyY2VycG06LHNvdXJjZWRpcjosY29uZmlnOix2bWxpbnV4Oixqb2JzOix0YXJnZXQ6LG5hbWU6LG91dHB1dDosZGVidWcsY3Jvc3MtY29tcGlsZTosZGlzdHJvOixza2lwLWdjYy1jaGVjayxza2lwLWNsZWFudXAiIC0tICIkQCIpIiB8fCBkaWUgImdldG9wdCBmYWlsZWQiCisgCisgZXZhbCBzZXQgLS0gIiRvcHRpb25zIgorIAorQEAgLTQ1MCw2ICs0NTEsMTAgQEAgd2hpbGUgW1sgJCMgLWd0IDAgXV07IGRvCisgCQlLUEFUQ0hfQ1JPU1NfQ09NUElMRT0iJDIiCisgCQlzaGlmdAorIAkJOzsKKysJLS1kaXN0cm8pCisrCQlESVNUUk89IiQyIgorKwkJc2hpZnQKKysJCTs7CisgCS0tc2tpcC1jbGVhbnVwKQorIAkJZWNobyAiU2tpcHBpbmcgY2xlYW51cCIKKyAJCVNLSVBDTEVBTlVQPTEKK0BAIC01MjYsNyArNTMxLDcgQEAgZmkKKyAjIERvbid0IGNoZWNrIGV4dGVybmFsIGZpbGUuCisgIyBzaGVsbGNoZWNrIGRpc2FibGU9U0MxMDkxCisgc291cmNlIC9ldGMvb3MtcmVsZWFzZQorLURJU1RSTz0iJElEIgorK0RJU1RSTz0iJHtESVNUUk86LSR7SUR9fSIKKyBpZiBbWyAiJERJU1RSTyIgPSBmZWRvcmEgXV0gfHwgW1sgIiRESVNUUk8iID0gcmhlbCBdXSB8fCBbWyAiJERJU1RSTyIgPSBvbCBdXSB8fCBbWyAiJERJU1RSTyIgPSBjZW50b3MgXV07IHRoZW4KKyAJW1sgLXogIiRWTUxJTlVYIiBdXSAmJiBWTUxJTlVYPSIvdXNyL2xpYi9kZWJ1Zy9saWIvbW9kdWxlcy8kQVJDSFZFUlNJT04vdm1saW51eCIKKyAJW1sgLWUgIiRWTUxJTlVYIiBdXSB8fCBkaWUgImtlcm5lbC1kZWJ1Z2luZm8tJEFSQ0hWRVJTSU9OIG5vdCBpbnN0YWxsZWQiCistLSAKKzEuOS4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9rcGF0Y2gva3BhdGNoX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9rcGF0Y2gva3BhdGNoX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDk1ZTI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2twYXRjaC9rcGF0Y2hfZ2l0LmJiCkBAIC0wLDAgKzEsMTEgQEAKK3JlcXVpcmUga3BhdGNoLmluYworCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKKworU1JDUkVWID0gImRiNmVmYmI4YzdlOTBkMmI3NjEyNzJjZjU2MzA0NzExOTA3Mjc2OGYiCisKK1BWID0gIjAuNS4wK2dpdCR7U1JDUFZ9IgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbGludXgvbGludXguaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LmluYwppbmRleCBlMjAwMTI3Li45ZjE0MzcwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbGludXgvbGludXguaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC5pbmMKQEAgLTE2LDcgKzE2LDcgQEAKIAogIyBLZXJuZWwgYm9vdGxvZ28gaXMgZGlzdHJvLXNwZWNpZmljIChkZWZhdWx0IGlzIE9FIGxvZ28pLgogIyBMb2dvIHJlc29sdXRpb24gKHF2Z2EsIHZnYSwgLi4uKSBpcyBtYWNoaW5lLXNwZWNpZmljLgotTE9HT19TSVpFID89ICcke0BiYXNlX2NvbmRpdGlvbmFsKCJNQUNISU5FX0dVSV9DTEFTUyIsICJiaWdzY3JlZW4iLCAidmdhIiwgInF2Z2EiLCBkKX0nCitMT0dPX1NJWkUgPz0gJyR7QG9lLnV0aWxzLmNvbmRpdGlvbmFsKCJNQUNISU5FX0dVSV9DTEFTUyIsICJiaWdzY3JlZW4iLCAidmdhIiwgInF2Z2EiLCBkKX0nCiAjIFRvIHVzZSB0aGlzLCBhZGQgZmlsZTovLyR7TE9HT19TSVpFfS9sb2dvX2xpbnV4X2NsdXQyMjQucHBtLmJ6MiBvciBzaW1pbGFyCiAjIHRvIHlvdXIga2VybmVsIHJlY2lwZSwgYW5kIHRoZW4gc3RydWN0dXJlIHlvdXIgbG9nb3MgZm9yIGVhY2ggcmVzb2x1dGlvbgogIyBhY2NvcmRpbmdseS4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9taW5pY29yZWR1bXBlci9maWxlcy9taW5pY29yZWR1bXBlci5pbml0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL2ZpbGVzL21pbmljb3JlZHVtcGVyLmluaXQKaW5kZXggOTBlZjdmYS4uOWM5NmUzMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL2ZpbGVzL21pbmljb3JlZHVtcGVyLmluaXQKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL2ZpbGVzL21pbmljb3JlZHVtcGVyLmluaXQKQEAgLTIyLDcgKzIyLDcgQEAKIAogY2FzZSAiJDEiIGluCiAgICAgc3RhcnQpCi0gICAgICAgIGVjaG8gInwvdXNyL2Jpbi9taW5pY29yZWR1bXBlciAlcCAldSAlZyAlcyAldCAlaCAlZSIgPiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgorICAgICAgICBlY2hvICJ8L3Vzci9zYmluL21pbmljb3JlZHVtcGVyICVwICV1ICVnICVzICV0ICVoICVlIiA+IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuCiAgICAgICAgIDs7CiAgICAgc3RvcCkKICAgICAgICAgZWNobyAiY29yZSIgPiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL2ZpbGVzL21pbmljb3JlZHVtcGVyLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbWluaWNvcmVkdW1wZXIvZmlsZXMvbWluaWNvcmVkdW1wZXIuc2VydmljZQppbmRleCA4NTFiNTRjLi40NWQwOThmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbWluaWNvcmVkdW1wZXIvZmlsZXMvbWluaWNvcmVkdW1wZXIuc2VydmljZQorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbWluaWNvcmVkdW1wZXIvZmlsZXMvbWluaWNvcmVkdW1wZXIuc2VydmljZQpAQCAtNCw3ICs0LDcgQEAKIFtTZXJ2aWNlXQogVHlwZT1vbmVzaG90CiBSZW1haW5BZnRlckV4aXQ9eWVzCi1FeGVjU3RhcnQ9L2Jpbi9zaCAtYyAnL2Jpbi9lY2hvICJ8L3Vzci9iaW4vbWluaWNvcmVkdW1wZXIgJSVwICUldSAlJWcgJSVzICUldCAlJWggJSVlIiA+IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuJworRXhlY1N0YXJ0PS9iaW4vc2ggLWMgJy9iaW4vZWNobyAifC91c3Ivc2Jpbi9taW5pY29yZWR1bXBlciAlJXAgJSV1ICUlZyAlJXMgJSV0ICUlaCAlJWUiID4gL3Byb2Mvc3lzL2tlcm5lbC9jb3JlX3BhdHRlcm4nCiBFeGVjU3RvcD0vYmluL3NoIC1jICcvYmluL2VjaG8gImNvcmUiID4gL3Byb2Mvc3lzL2tlcm5lbC9jb3JlX3BhdHRlcm4nCiAKIFtJbnN0YWxsXQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL21pbmljb3JlZHVtcGVyXzIuMC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL21pbmljb3JlZHVtcGVyXzIuMC4wLmJiCmluZGV4IDE4NThlMTAuLjBkM2M2NmIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9taW5pY29yZWR1bXBlci9taW5pY29yZWR1bXBlcl8yLjAuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbWluaWNvcmVkdW1wZXIvbWluaWNvcmVkdW1wZXJfMi4wLjAuYmIKQEAgLTM4LDQgKzM4LDggQEAKICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9taW5pY29yZWR1bXBlci5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9CiAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9taW5pY29yZWR1bXBlci5pbml0ICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9taW5pY29yZWR1bXBlcgorCisgICAgIyBjb3JyZWN0IHBhdGggb2YgbWluaWNvcmVkdW1wZXIKKyAgICBzZWQgLWkgLWUgczovdXNyL2Jpbi9taW5pY29yZWR1bXBlcjoke3NiaW5kaXJ9L21pbmljb3JlZHVtcGVyOmcgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL21pbmljb3JlZHVtcGVyCisgICAgc2VkIC1pIC1lIHM6L3Vzci9iaW4vbWluaWNvcmVkdW1wZXI6JHtzYmluZGlyfS9taW5pY29yZWR1bXBlcjpnICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L21pbmljb3JlZHVtcGVyLnNlcnZpY2UKIH0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zcy0xLjAuMTcvbGliaW8ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS1vc3MtMS4wLjE3L2xpYmlvLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDUzZTRjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zcy0xLjAuMTcvbGliaW8ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi1JbmRleDogYWxzYS1vc3MtMS4wLjE1L2Fsc2Evc3RkaW9lbXUuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGFsc2Etb3NzLTEuMC4xNS5vcmlnL2Fsc2Evc3RkaW9lbXUuYwkyMDA3LTEwLTE1IDEwOjUwOjQwLjAwMDAwMDAwMCArMDIwMAotKysrIGFsc2Etb3NzLTEuMC4xNS9hbHNhL3N0ZGlvZW11LmMJMjAwOC0wNy0yMSAyMjoxNzowNi4zMDMxNjE0MzggKzAyMDAKLUBAIC0zNyw3ICszNyw5IEBACi0gI2VuZGlmCi0gCi0gI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2lmZGVmIEhBVkVfTElCSU9fSAotICNpbmNsdWRlIDxsaWJpby5oPgotKyNlbmRpZgotIAotIHN0cnVjdCBmZF9jb29raWUgewotIAlpbnQgZmQ7Ci1AQCAtOTksNyArMTAxLDExIEBACi0gCi0gCWlmIChvcGVuX21vZGUgJiYgZmRjLT5mZCA+IDApIHsKLSAJCXJlc3VsdCA9IGZvcGVuY29va2llIChmZGMsInciLCBmbnMpOwotKyNpZmRlZiBIQVZFX0ZJTEVOTwotIAkJcmVzdWx0LT5fZmlsZW5vID0gZmRjLT5mZDsJCS8qIHVnbHkgcGF0Y2h5IHNsaW15IGtsdWRneSBoYWNrICovCi0rI2Vsc2UKLSsJCXJlc3VsdC0+X19maWxlZGVzID0gZmRjLT5mZDsKLSsjZW5kaWYKLSAJfQotIAlyZXR1cm4gcmVzdWx0OwotIH0KLUluZGV4OiBhbHNhLW9zcy0xLjAuMTUvY29uZmlndXJlLmluCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gYWxzYS1vc3MtMS4wLjE1Lm9yaWcvY29uZmlndXJlLmluCTIwMDctMTAtMTUgMTA6NTA6NDAuMDAwMDAwMDAwICswMjAwCi0rKysgYWxzYS1vc3MtMS4wLjE1L2NvbmZpZ3VyZS5pbgkyMDA4LTA3LTIxIDIyOjE2OjExLjcxOTgzNzI5OCArMDIwMAotQEAgLTMzLDYgKzMzLDEyIEBACi0gICBMSUJTPSIkT0xEX0xJQlMiCi0gZmkKLSAKLStBQ19DSEVDS19IRUFERVJTX09OQ0UoW2xpYmlvLmhdKQotKwotK0FDX0NIRUNLX01FTUJFUihbc3RydWN0IF9JT19GSUxFLl9maWxlbm9dLAotKwkJW0FDX0RFRklORShbSEFWRV9GSUxFTk9dLCBbMV0sW0RlZmluZSBpZiBfZmlsZW5vIGV4aXN0cy5dKV0sCi0rCQlbXSxbXSkKLSsKLSBBQ19PVVRQVVQoTWFrZWZpbGUgYWxzYS9NYWtlZmlsZSBhbHNhL2Fvc3MgYWxzYS9hb3NzLm9sZCBcCi0gCSAgb3NzLXJlZGlyL01ha2VmaWxlIHRlc3QvTWFrZWZpbGUgXAotICAgICAgICAgICBhbHNhL3Rlc3Rhb3NzIHRlc3QvdGVzdGFvc3MpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS1vc3MvbGliaW8ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS1vc3MvbGliaW8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI5OTk0NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zcy9saWJpby5wYXRjaApAQCAtMCwwICsxLDQzIEBACitJbmRleDogYWxzYS1vc3MtMS4wLjI4L2Fsc2Evc3RkaW9lbXUuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGFsc2Etb3NzLTEuMC4yOC5vcmlnL2Fsc2Evc3RkaW9lbXUuYworKysrIGFsc2Etb3NzLTEuMC4yOC9hbHNhL3N0ZGlvZW11LmMKK0BAIC0zNyw3ICszNyw5IEBACisgI2VuZGlmCisgCisgI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2lmZGVmIEhBVkVfTElCSU9fSAorICNpbmNsdWRlIDxsaWJpby5oPgorKyNlbmRpZgorIAorIHN0cnVjdCBmZF9jb29raWUgeworIAlpbnQgZmQ7CitAQCAtOTksNyArMTAxLDExIEBAIHN0YXRpYyBGSUxFICpmYWtlX2ZvcGVuKGNvbnN0IGNoYXIgKnBhdGgKKyAKKyAJaWYgKG9wZW5fbW9kZSAmJiBmZGMtPmZkID4gMCkgeworIAkJcmVzdWx0ID0gZm9wZW5jb29raWUgKGZkYywidyIsIGZucyk7CisrI2lmZGVmIEhBVkVfRklMRU5PCisgCQlyZXN1bHQtPl9maWxlbm8gPSBmZGMtPmZkOwkJLyogdWdseSBwYXRjaHkgc2xpbXkga2x1ZGd5IGhhY2sgKi8KKysjZWxzZQorKwkJcmVzdWx0LT5fX2ZpbGVkZXMgPSBmZGMtPmZkOworKyNlbmRpZgorIAl9CisgCXJldHVybiByZXN1bHQ7CisgfQorSW5kZXg6IGFsc2Etb3NzLTEuMC4yOC9jb25maWd1cmUuYWMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBhbHNhLW9zcy0xLjAuMjgub3JpZy9jb25maWd1cmUuYWMKKysrKyBhbHNhLW9zcy0xLjAuMjgvY29uZmlndXJlLmFjCitAQCAtMzUsNiArMzUsMTIgQEAgaWYgdGVzdCAiJHdpdGhfYW9zcyIgPSAieWVzIjsgdGhlbgorICAgTElCUz0iJE9MRF9MSUJTIgorIGZpCisgCisrQUNfQ0hFQ0tfSEVBREVSU19PTkNFKFtsaWJpby5oXSkKKysKKytBQ19DSEVDS19NRU1CRVIoW3N0cnVjdCBfSU9fRklMRS5fZmlsZW5vXSwKKysJCVtBQ19ERUZJTkUoW0hBVkVfRklMRU5PXSwgWzFdLFtEZWZpbmUgaWYgX2ZpbGVubyBleGlzdHMuXSldLAorKwkJW10sW10pCisrCisgQUNfT1VUUFVUKE1ha2VmaWxlIGFsc2EvTWFrZWZpbGUgYWxzYS9hb3NzIGFsc2EvYW9zcy5vbGQgXAorIAkgIG9zcy1yZWRpci9NYWtlZmlsZSB0ZXN0L01ha2VmaWxlIFwKKyAgICAgICAgICAgYWxzYS90ZXN0YW9zcyB0ZXN0L3Rlc3Rhb3NzKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2Etb3NzXzEuMC4xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zc18xLjAuMTcuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5NjZkYmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2Etb3NzXzEuMC4xNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVNVTU1BUlkgPSAiQWxzYSBPU1MgQ29tcGF0aWJpbGl0eSBQYWNrYWdlIgotU0VDVElPTiA9ICJsaWJzL211bHRpbWVkaWEiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MzkzYTVjYTQ0NWY2OTY1ODczZWNhMDI1OWExN2Y4MzMiCi1ERVBFTkRTID0gImFsc2EtbGliIgotUFIgPSAicjEiCi0KLVNSQ19VUkkgPSAiZnRwOi8vZnRwLmFsc2EtcHJvamVjdC5vcmcvcHViL29zcy1saWIvYWxzYS1vc3MtJHtQVn0udGFyLmJ6MiBcCi0gICAgZmlsZTovL2xpYmlvLnBhdGNoIFwKLSIKLQotaW5oZXJpdCBhdXRvdG9vbHMKLQotTEVBRF9TT05BTUUgPSAibGliYW9zcy5zby4wIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCAoKSB7Ci0gICAgdG91Y2ggTkVXUyBSRUFETUUgQVVUSE9SUyBDaGFuZ2VMb2cKLSAgICBzZWQgLWkgInMvbGliYW9zcy5zby8ke0xFQURfU09OQU1FfS8iICR7U30vYWxzYS9hb3NzLmluCi19Ci0KLVNSQ19VUklbbWQ1c3VtXSA9ICIxYjE4NTBjMmZjOTE0NzZhNzNkNTBmNTM3Y2JkNDAyZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4ZDAwOWUyM2UyY2JlZTE2OTFlYzNjOTVkMTgzODA1NmE4MDRkOTg0NDBlYWU3NzE1ZDZjM2FlYmM3MTBmOWNhIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2Etb3NzXzEuMC4yOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zc18xLjAuMjguYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM0YTlmNQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zc18xLjAuMjguYmIKQEAgLTAsMCArMSwyMCBAQAorU1VNTUFSWSA9ICJBbHNhIE9TUyBDb21wYXRpYmlsaXR5IFBhY2thZ2UiCitTRUNUSU9OID0gImxpYnMvbXVsdGltZWRpYSIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0zOTNhNWNhNDQ1ZjY5NjU4NzNlY2EwMjU5YTE3ZjgzMyIKK0RFUEVORFMgPSAiYWxzYS1saWIiCisKK1NSQ19VUkkgPSAiZnRwOi8vZnRwLmFsc2EtcHJvamVjdC5vcmcvcHViL29zcy1saWIvYWxzYS1vc3MtJHtQVn0udGFyLmJ6MiBcCisgICAgZmlsZTovL2xpYmlvLnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICI5MWY1N2U4Y2VlMWFkNGNjOTU2Y2FhOGI2MmFjNWQ0MyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzYWU2MmNhYTg4YTBiYzdiMzBlZDgzNmRjYjc5NGRjNmVmNGQzNjUwNDM5ZTIyNjBkYjU0Y2FjZTdkNWM2YWQ1IgorCitpbmhlcml0IGF1dG90b29scworCitMRUFEX1NPTkFNRSA9ICJsaWJhb3NzLnNvLjAiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKKyAgICB0b3VjaCBORVdTIFJFQURNRSBBVVRIT1JTIENoYW5nZUxvZworICAgIHNlZCAtaSAicy9saWJhb3NzLnNvLyR7TEVBRF9TT05BTUV9LyIgJHtTfS9hbHNhL2Fvc3MuaW4KK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvY2Rya2l0L2NkcmtpdF8xLjEuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2NkcmtpdC9jZHJraXRfMS4xLjExLmJiCmluZGV4IGMwZjIyMGYuLjNiMTBlOTcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvY2Rya2l0L2NkcmtpdF8xLjEuMTEuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9jZHJraXQvY2Rya2l0XzEuMS4xMS5iYgpAQCAtMTgsMyArMTgsNyBAQAogCiBERVBFTkRTID0gImxpYmNhcCBmaWxlIGJ6aXAyIgogUkRFUEVORFNfJHtQTn0gPSAicGVybCIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgbG4gLXNmICR7YmluZGlyfS9nZW5pc29pbWFnZSAke0R9JHtiaW5kaXJ9L21raXNvZnMKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvZXNvdW5kL2Vzb3VuZC8wMDAxLWF1ZGlvX2Fsc2EwOS5jLWFsc2EtZHJhaW4tZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kLzAwMDEtYXVkaW9fYWxzYTA5LmMtYWxzYS1kcmFpbi1maXgucGF0Y2gKaW5kZXggNmM3ZjNiZC4uMTMwZjNjMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kLzAwMDEtYXVkaW9fYWxzYTA5LmMtYWxzYS1kcmFpbi1maXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kLzAwMDEtYXVkaW9fYWxzYTA5LmMtYWxzYS1kcmFpbi1maXgucGF0Y2gKQEAgLTEsOSArMSwxMCBAQAotRnJvbSBhODYwZmUwNzk2YzQzZTM1ZWFjOTc4MzE0MGZjYjU2M2NhYjlmNTVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA5NDVkZjJkYTg3YTQxMjc1OGNlYWI0YWM1NzExYWJiYjI2OWE0N2MxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFRodSwgOCBKdW4gMjAxNyAyMzowOTo1MSAtMDcwMAotU3ViamVjdDogW1BBVENIIDEvM10gYXVkaW9fYWxzYTA5LmM6IGFsc2EgZHJhaW4gZml4CitTdWJqZWN0OiBbUEFUQ0hdIGF1ZGlvX2Fsc2EwOS5jOiBhbHNhIGRyYWluIGZpeAogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBhdWRpb19hbHNhMDkuYyB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKQEAgLTIxLDYgKzIyLDMgQEAKICAgIAogIAlpZiAoYWxzYWRiZykgCiAgCQlwcmludF9zdGF0ZSgpOwotLS0gCi0yLjEzLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kLzAwMDItVW5kZWZpbmUtb3BlbjY0LWFuZC1mb3BlbjY0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kLzAwMDItVW5kZWZpbmUtb3BlbjY0LWFuZC1mb3BlbjY0LnBhdGNoCmluZGV4IDMzNzU0NmEuLjEwYTZiYTAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvZXNvdW5kL2Vzb3VuZC8wMDAyLVVuZGVmaW5lLW9wZW42NC1hbmQtZm9wZW42NC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Vzb3VuZC9lc291bmQvMDAwMi1VbmRlZmluZS1vcGVuNjQtYW5kLWZvcGVuNjQucGF0Y2gKQEAgLTEsMTEgKzEsMTIgQEAKLUZyb20gMWZiZWU2ZTk2Mzg0ZjM0MGI4MTZlMjIxZmUxYzJmM2ZmMGI0ODdiZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZTIxOGQ1YTBhNTQ1ZWJiOTYyM2Q2MmRhNWNmY2E0NzhmOWM5MGZjZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBUaHUsIDggSnVuIDIwMTcgMjM6MTE6MzEgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzNdIFVuZGVmaW5lIG9wZW42NCBhbmQgZm9wZW42NAorU3ViamVjdDogW1BBVENIXSBVbmRlZmluZSBvcGVuNjQgYW5kIGZvcGVuNjQKIAogU2luY2UgdGhlIHNpZ25hdHVyZXMgZG8gbm90IG1hdGNoIHdpdGggbGliYwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBlc2Rkc3AuYyB8IDIgKysKICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCkBAIC0zMCw2ICszMSwzIEBACiAgRklMRSAqCiAgZm9wZW42NCAoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqbW9kZSkKICB7Ci0tLSAKLTIuMTMuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Vzb3VuZC9lc291bmQvMDAwMy1Vc2UtSS1wYXRoLWluLWNvbmZpZ3VyZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvZXNvdW5kL2Vzb3VuZC8wMDAzLVVzZS1JLXBhdGgtaW4tY29uZmlndXJlLnBhdGNoCmluZGV4IDYyYzg4MGQuLjgzMzY1YjQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvZXNvdW5kL2Vzb3VuZC8wMDAzLVVzZS1JLXBhdGgtaW4tY29uZmlndXJlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvZXNvdW5kL2Vzb3VuZC8wMDAzLVVzZS1JLXBhdGgtaW4tY29uZmlndXJlLnBhdGNoCkBAIC0xLDEyICsxLDEzIEBACi1Gcm9tIDk3OWEwMmQ5ZWM5YzI4Njg2MDIxY2QyYjQ5Y2E1NWQyMTk1YzlkY2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDg5YzYyZGI1NDcxNmQ1MTRlNjM5ZjllMWJmZDNjMWY3ZDgyNjQxZGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogVGh1LCA4IEp1biAyMDE3IDIzOjEyOjM2IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMy8zXSBVc2UgLUk9PHBhdGg+IGluIGNvbmZpZ3VyZQorU3ViamVjdDogW1BBVENIXSBVc2UgLUk9PHBhdGg+IGluIGNvbmZpZ3VyZQogCiBUaGlzIGhlbHBzIHRvIHVzZSBwcm9wZXIgc3lzcm9vdCBpbgogY3Jvc3MgYnVpbGQgZW52aXJvbm1lbnQKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgY29uZmlndXJlLmFjIHwgNCArKy0tCiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKQEAgLTMzLDYgKzM0LDMgQEAKICAJU09VTkRfTElCUz0tbG1tZQogICAgICAgIGVzYWMKICAgICBmaQotLS0gCi0yLjEzLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kL25vLWRvY3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Vzb3VuZC9lc291bmQvbm8tZG9jcy5wYXRjaAppbmRleCBmYzY5ZjFhLi44YTU0NmU2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Vzb3VuZC9lc291bmQvbm8tZG9jcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Vzb3VuZC9lc291bmQvbm8tZG9jcy5wYXRjaApAQCAtMSwxMSArMSwxOSBAQAotSW5kZXg6IGVzb3VuZC0wLjIuMzYvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBlc291bmQtMC4yLjM2Lm9yaWcvTWFrZWZpbGUuYW0KLSsrKyBlc291bmQtMC4yLjM2L01ha2VmaWxlLmFtCitGcm9tIGJmY2FhOWJkYzcwNDQwZGI5NmYxMGFmYzBjMmE3OTI4NzBmNzVhY2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgorRGF0ZTogRnJpLCAzIEp1biAyMDExIDE5OjM5OjAyICswMjAwCisKKy0tLQorIE1ha2VmaWxlLmFtIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQoraW5kZXggMDhjNGM5NC4uZWRlOWQyNiAxMDA2NDQKKy0tLSBhL01ha2VmaWxlLmFtCisrKysgYi9NYWtlZmlsZS5hbQogQEAgLTEsNSArMSw1IEBACiAgCiAtU1VCRElSUyA9IGRvY3MKICtTVUJESVJTID0gCiAgCi0gQUNMT0NBTF9GTEFHUyA9IC1JIG00CisgQUNMT0NBTF9BTUZMQUdTID0gLUkgbTQKICAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvamFjay9qYWNrLzAwMDEtdHlwZWNhc3QtaW5wdXQtcGFyYW1ldGVyLXRvLWludC1mb3ItYWJzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9qYWNrL2phY2svMDAwMS10eXBlY2FzdC1pbnB1dC1wYXJhbWV0ZXItdG8taW50LWZvci1hYnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxMTlmMTkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9qYWNrL2phY2svMDAwMS10eXBlY2FzdC1pbnB1dC1wYXJhbWV0ZXItdG8taW50LWZvci1hYnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1Gcm9tIDhlYzZmNzViZjdhMzE4YTNhMWUzNTJkZjdjOTc2MzBjZmFiYTUzN2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAyMSBBcHIgMjAxNyAxNjoxODozOSAtMDcwMAotU3ViamVjdDogW1BBVENIXSB0eXBlY2FzdCBpbnB1dCBwYXJhbWV0ZXIgdG8gaW50IGZvciBhYnMoKQotCi1GaXhlcwotLi4vdGVzdHMvdGVzdC5jcHA6NDgyOjczOiBlcnJvcjogY2FsbCBvZiBvdmVybG9hZGVkICdhYnMoamFja19uZnJhbWVzX3QpJyBpcyBhbWJpZ3VvdXMKLQotYmVjYXVzZSB0aGUgc2lnbmF0dXJlIGlzIGludCBhYnMoaW50KSBhbmQgaXRzIHBhc3NpbmcKLXVuc2lnbmVkIGludCB0byBpdC4KLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIHRlc3RzL3Rlc3QuY3BwIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdC5jcHAgYi90ZXN0cy90ZXN0LmNwcAotaW5kZXggOGE4YTgxMTcuLjk2NTU3NDJlIDEwMDY0NAotLS0tIGEvdGVzdHMvdGVzdC5jcHAKLSsrKyBiL3Rlc3RzL3Rlc3QuY3BwCi1AQCAtNDc5LDcgKzQ3OSw3IEBAIGludCBwcm9jZXNzNChqYWNrX25mcmFtZXNfdCBuZnJhbWVzLCB2b2lkICphcmcpCi0gCWphY2tfbmZyYW1lc190IGRlbHRhX3RpbWUgPSBjdXJfdGltZSAtIGxhc3RfdGltZTsKLSAKLSAJTG9nKCJjYWxsaW5nIHByb2Nlc3M0IGNhbGxiYWNrIDogamFja19mcmFtZV90aW1lID0gJWxkIGRlbHRhX3RpbWUgPSAlbGRcbiIsIGN1cl90aW1lLCBkZWx0YV90aW1lKTsKLS0JaWYgKGRlbHRhX3RpbWUgPiAwICAmJiAoamFja19uZnJhbWVzX3QpYWJzKGRlbHRhX3RpbWUgLSBjdXJfYnVmZmVyX3NpemUpID4gdG9sZXJhbmNlKSB7Ci0rCWlmIChkZWx0YV90aW1lID4gMCAgJiYgKGphY2tfbmZyYW1lc190KWFicyhpbnQoZGVsdGFfdGltZSAtIGN1cl9idWZmZXJfc2l6ZSkpID4gdG9sZXJhbmNlKSB7Ci0gCQlwcmludGYoIiEhISBFUlJPUiAhISEgamFja19mcmFtZV90aW1lIHNlZW1zIHRvIHJldHVybiBpbmNvcnJlY3QgdmFsdWVzIGN1cl9idWZmZXJfc2l6ZSA9ICVkLCBkZWx0YV90aW1lID0gJWQgdG9sZXJhbmNlICVkXG4iLCBjdXJfYnVmZmVyX3NpemUsIGRlbHRhX3RpbWUsIHRvbGVyYW5jZSk7Ci0gCX0KLSAKLS0tIAotMi4xMi4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvamFjay9qYWNrX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvamFjay9qYWNrX2dpdC5iYgppbmRleCBiODViYThhLi4xMWRhNmIxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2phY2svamFja19naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9qYWNrL2phY2tfZ2l0LmJiCkBAIC0xNCwxMSArMTQsOSBAQAogCiBERVBFTkRTID0gImxpYnNhbXBsZXJhdGUwIGxpYnNuZGZpbGUxIHJlYWRsaW5lIgogCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vamFja2F1ZGlvL2phY2syLmdpdCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLXR5cGVjYXN0LWlucHV0LXBhcmFtZXRlci10by1pbnQtZm9yLWFicy5wYXRjaCBcCi0gICAgICAgICAgIgotU1JDUkVWID0gIjJkMWQzMjM1MDU1ODVkNDA2YTdlNjRmYjkzMjk1M2JhZWZjNTk0NWUiCi1QViA9ICIxLjkuMTArZ2l0JHtTUkNQVn0iCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vamFja2F1ZGlvL2phY2syLmdpdCIKK1NSQ1JFViA9ICJjMTY0NzgxOWVlZDZkMTFmOTRiMjE5ODFkOWM4Njk2MjkyOTlmMzU3IgorUFYgPSAiMS45LjEyIgogUyA9ICIke1dPUktESVJ9L2dpdCIKIAogaW5oZXJpdCB3YWYgcGtnY29uZmlnCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmFzcy9saWJhc3MuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhc3MvbGliYXNzLmluYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJjM2RiMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmFzcy9saWJhc3MuaW5jCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotREVTQ1JJUFRJT04gPSAibGliYXNzIGlzIGEgcG9ydGFibGUgc3VidGl0bGUgcmVuZGVyZXIgZm9yIHRoZSBBU1MvU1NBIChBZHZhbmNlZCBTdWJzdGF0aW9uIEFscGhhL1N1YnN0YXRpb24gQWxwaGEpIHN1YnRpdGxlIGZvcm1hdC4gSXQgaXMgbW9zdGx5IGNvbXBhdGlibGUgd2l0aCBWU0ZpbHRlci4iCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vbGliYXNzL2xpYmFzcyIKLVNFQ1RJT04gPSAibGlicy9tdWx0aW1lZGlhIgotCi1MSUNFTlNFID0gIklTQyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWE0MjUzMmEwNjg0NDIwYmRiMTU1NTZjM2NkZDQ5YTc1IgotCi1ERVBFTkRTID0gImVuY2EgZm9udGNvbmZpZyBmcmVldHlwZSBsaWJwbmcgZnJpYmlkaSIKLQotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbGliYXNzL2xpYmFzcy9yZWxlYXNlcy9kb3dubG9hZC8ke1BWfS9saWJhc3MtJHtQVn0udGFyLnh6IgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiIKLVBBQ0tBR0VDT05GSUdbaGFyZmJ1enpdID0gIi0tZW5hYmxlLWhhcmZidXp6LC0tZGlzYWJsZS1oYXJmYnV6eixoYXJmYnV6eiIKLQotRVhUUkFfT0VDT05GID0gIiBcCi0gICAgLS1lbmFibGUtZm9udGNvbmZpZyBcCi0iCi0KLSMgRGlzYWJsZSBjb21waWxpbmcgd2l0aCBBU00gZm9yIHg4NiB0byBhdm9pZCB0ZXh0cmVsCi1FWFRSQV9PRUNPTkZfYXBwZW5kX3g4NiA9ICIgLS1kaXNhYmxlLWFzbSIKLQotUEFDS0FHRVMgPSsgIiR7UE59LXRlc3RzIgotCi1GSUxFU18ke1BOfS10ZXN0cyA9ICIgXAotICAgICR7bGliZGlyfS90ZXN0L3Rlc3QgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhc3MvbGliYXNzXzAuMTMuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvbGliYXNzL2xpYmFzc18wLjEzLjYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwYWMwZjguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhc3MvbGliYXNzXzAuMTMuNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotcmVxdWlyZSByZWNpcGVzLW11bHRpbWVkaWEvJHtCUE59LyR7QlBOfS5pbmMKLQotU1JDX1VSSVttZDVzdW1dID0gImRhYTZjZmNhNDM3YzA3NzZhZjVmNzk3NTBjZGQ5YjRlIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImY4YTg3NGQxMDRlM2U3MmUyY2MwNTdlNWExNzEwYzY1MGIxMDM2NzQ4Njg0NWEyNmU1ZmYyOGVkN2E5MTJjMmQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmFzcy9saWJhc3NfMC4xNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhc3MvbGliYXNzXzAuMTQuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDU0YTVjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhc3MvbGliYXNzXzAuMTQuMC5iYgpAQCAtMCwwICsxLDMwIEBACitERVNDUklQVElPTiA9ICJsaWJhc3MgaXMgYSBwb3J0YWJsZSBzdWJ0aXRsZSByZW5kZXJlciBmb3IgdGhlIEFTUy9TU0EgKEFkdmFuY2VkIFN1YnN0YXRpb24gQWxwaGEvU3Vic3RhdGlvbiBBbHBoYSkgc3VidGl0bGUgZm9ybWF0LiBJdCBpcyBtb3N0bHkgY29tcGF0aWJsZSB3aXRoIFZTRmlsdGVyLiIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9saWJhc3MvbGliYXNzIgorU0VDVElPTiA9ICJsaWJzL211bHRpbWVkaWEiCisKK0xJQ0VOU0UgPSAiSVNDIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTQyNTMyYTA2ODQ0MjBiZGIxNTU1NmMzY2RkNDlhNzUiCisKK0RFUEVORFMgPSAiZW5jYSBmb250Y29uZmlnIGZyZWV0eXBlIGxpYnBuZyBmcmliaWRpIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbGliYXNzL2xpYmFzcy5naXQiCitTUkNSRVYgPSAiNzMyODRiNjc2YjEyYjQ3ZTE3YWYyZWYxYjQzMDUyNzI5OWUxMGMxNyIKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitQQUNLQUdFQ09ORklHID8/PSAiIgorUEFDS0FHRUNPTkZJR1toYXJmYnV6el0gPSAiLS1lbmFibGUtaGFyZmJ1enosLS1kaXNhYmxlLWhhcmZidXp6LGhhcmZidXp6IgorCitFWFRSQV9PRUNPTkYgPSAiIFwKKyAgICAtLWVuYWJsZS1mb250Y29uZmlnIFwKKyIKKworIyBEaXNhYmxlIGNvbXBpbGluZyB3aXRoIEFTTSBmb3IgeDg2IHRvIGF2b2lkIHRleHRyZWwKK0VYVFJBX09FQ09ORl9hcHBlbmRfeDg2ID0gIiAtLWRpc2FibGUtYXNtIgorCitQQUNLQUdFUyA9KyAiJHtQTn0tdGVzdHMiCisKK0ZJTEVTXyR7UE59LXRlc3RzID0gIiBcCisgICAgJHtsaWJkaXJ9L3Rlc3QvdGVzdCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmNkaW8vbGliY2Rpb18wLjkzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJjZGlvL2xpYmNkaW9fMC45My5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTllNmE4NC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmNkaW8vbGliY2Rpb18wLjkzLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotU1VNTUFSWSA9ICJUaGUgR05VIENvbXBhY3QgRGlzYyBJbnB1dCBhbmQgQ29udHJvbCBsaWJyYXJ5IChsaWJjZGlvKSBjb250YWlucyBhIGxpYnJhcnkgZm9yIENELVJPTSBhbmQgQ0QgaW1hZ2UgYWNjZXNzLiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJjZGlvLyIKLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiR1BMdjMrIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQiCi0KLVNSQ19VUkkgPSAiJHtHTlVfTUlSUk9SfS8ke0JQTn0vJHtCUH0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gImQxNTQ0NzZmZWFhYzVhN2I1ZjE4MGU4M2VhZjNkNjg5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ5NzJjZDIyZmQ4ZDBlOGJmZjkyMmQzNWM3YTY0NWJlMGRiMGFiMGU3YjNkZmFlY2M5Y2Q4MjcyNDI5ZDY5NzUiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1QQUNLQUdFQ09ORklHID8/PSAiY2RkYS1wbGF5ZXIiCi1QQUNLQUdFQ09ORklHW2NkZGEtcGxheWVyXSA9ICItLXdpdGgtY2RkYS1wbGF5ZXIsLS13aXRob3V0LWNkZGEtcGxheWVyLG5jdXJzZXMiCi1QQUNLQUdFQ09ORklHW2NkZGJdID0gIi0tZW5hYmxlLWNkZGIsLS1kaXNhYmxlLWNkZGIsbGliY2RkYiIKLVBBQ0tBR0VDT05GSUdbdmNkLWluZm9dID0gIi0tZW5hYmxlLXZjZC1pbmZvLC0tZGlzYWJsZS12Y2QtaW5mbyx2Y2RpbWFnZXIiCi0KLVBBQ0tBR0VTICs9ICIke1BOfS11dGlscyIKLQotRklMRVNfJHtQTn0gPSAiJHtsaWJkaXJ9LyR7QlBOfSR7U09MSUJ9IgotRklMRVNfJHtQTn0tdXRpbHMgPSAiJHtiaW5kaXJ9LyoiCi0KLXB5dGhvbiBsaWJjZGlvX3NwbGl0X3BhY2thZ2VzKCkgewotICAgIGxpYmRpciA9IGQuZXhwYW5kKCcke2xpYmRpcn0nKQotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIGxpYmRpciwgJ15saWIoLiopXC5zb1wuLionLCAnbGliJXMnLCAnbGliY2RpbyAlcyBsaWJyYXJ5JywgZXh0cmFfZGVwZW5kcz0nJywgYWxsb3dfbGlua3M9VHJ1ZSkKLX0KLQotUEFDS0FHRVNQTElURlVOQ1MgPSsgImxpYmNkaW9fc3BsaXRfcGFja2FnZXMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmNkaW8vbGliY2Rpb18yLjAuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvbGliY2Rpby9saWJjZGlvXzIuMC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZjY0ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmNkaW8vbGliY2Rpb18yLjAuMC5iYgpAQCAtMCwwICsxLDI5IEBACitTVU1NQVJZID0gIlRoZSBHTlUgQ29tcGFjdCBEaXNjIElucHV0IGFuZCBDb250cm9sIGxpYnJhcnkgKGxpYmNkaW8pIGNvbnRhaW5zIGEgbGlicmFyeSBmb3IgQ0QtUk9NIGFuZCBDRCBpbWFnZSBhY2Nlc3MuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmNkaW8vIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJHUEx2MysiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKKworU1JDX1VSSSA9ICIke0dOVV9NSVJST1J9LyR7QlBOfS8ke0JQfS50YXIuZ3oiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwY2IyNTkwNTExM2I5MzBlNDUzOWQyZjRlYjY1NzRiMCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIxYjQ4MWI1ZGEwMDliZWEzMWRiODc1ODA1NjY1OTc0ZTJmYzU2OGUyYjJhZmE1MTZmNDAzNjczMzY1N2NmOTU4IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworUEFDS0FHRUNPTkZJRyA/Pz0gImNkZGEtcGxheWVyIgorUEFDS0FHRUNPTkZJR1tjZGRhLXBsYXllcl0gPSAiLS13aXRoLWNkZGEtcGxheWVyLC0td2l0aG91dC1jZGRhLXBsYXllcixuY3Vyc2VzIgorUEFDS0FHRUNPTkZJR1tjZGRiXSA9ICItLWVuYWJsZS1jZGRiLC0tZGlzYWJsZS1jZGRiLGxpYmNkZGIiCitQQUNLQUdFQ09ORklHW3ZjZC1pbmZvXSA9ICItLWVuYWJsZS12Y2QtaW5mbywtLWRpc2FibGUtdmNkLWluZm8sdmNkaW1hZ2VyIgorCitQQUNLQUdFUyArPSAiJHtQTn0tdXRpbHMiCisKK0ZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS8ke0JQTn0ke1NPTElCfSIKK0ZJTEVTXyR7UE59LXV0aWxzID0gIiR7YmluZGlyfS8qIgorCitweXRob24gbGliY2Rpb19zcGxpdF9wYWNrYWdlcygpIHsKKyAgICBsaWJkaXIgPSBkLmV4cGFuZCgnJHtsaWJkaXJ9JykKKyAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBsaWJkaXIsICdebGliKC4qKVwuc29cLi4qJywgJ2xpYiVzJywgJ2xpYmNkaW8gJXMgbGlicmFyeScsIGV4dHJhX2RlcGVuZHM9JycsIGFsbG93X2xpbmtzPVRydWUpCit9CisKK1BBQ0tBR0VTUExJVEZVTkNTID0rICJsaWJjZGlvX3NwbGl0X3BhY2thZ2VzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJzZGwtbWl4ZXIvbGlic2RsMi1taXhlcl8yLjAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvbGlic2RsLW1peGVyL2xpYnNkbDItbWl4ZXJfMi4wLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyNzZiNDQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJzZGwtbWl4ZXIvbGlic2RsMi1taXhlcl8yLjAuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLVNVTU1BUlkgPSAiU2ltcGxlIERpcmVjdE1lZGlhIExheWVyIG1peGVyIGxpYnJhcnkgVjIiCi1TRUNUSU9OID0gImxpYnMiCi1ERVBFTkRTID0gInZpcnR1YWwvbGlic2RsMiBmbGFjIGxpYm1pa21vZCBsaWJ2b3JiaXMiCi1MSUNFTlNFID0gIlpsaWIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLnR4dDttZDU9MjlkOGJjN2MzOGFhNDRiMWNmM2E2MzNhNDY1ODk5MTciCi0KLVNSQ19VUkkgPSAiaHR0cDovL3d3dy5saWJzZGwub3JnL3Byb2plY3RzL1NETF9taXhlci9yZWxlYXNlL1NETDJfbWl4ZXItJHtQVn0udGFyLmd6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiYzZjNGY1NTZkNDQxNTg3MWY1MjYyNDhmNWM5YTYyN2QiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWEyNGY2MmE2MTAyNDlkNzQ0Y2JkOGQyOGVlMzk5ZDg5MDVkYjcyMjJiZjNiZGJjOGE4YjRhNzZlNTk3Njk1ZiIKLQotUyA9ICIke1dPUktESVJ9L1NETDJfbWl4ZXItJHtQVn0iCi0KLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcKLQotRVhUUkFfQVVUT1JFQ09ORiArPSAiLS1pbmNsdWRlPWFjaW5jbHVkZSIKLUVYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtbXVzaWMtbXAzIC0tZW5hYmxlLW11c2ljLW9nZyAtLWVuYWJsZS1tdXNpYy1vZ2ctdHJlbW9yIExJQlM9LUwke1NUQUdJTkdfTElCRElSfSIKLQotUEFDS0FHRUNPTkZJR1ttYWRdID0gIi0tZW5hYmxlLW11c2ljLW1wMy1tYWQtZ3BsLC0tZGlzYWJsZS1tdXNpYy1tcDMtbWFkLWdwbCxsaWJtYWQiCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKLSAgICAjIFJlbW92ZSBvbGQgbGlidG9vbCBtYWNyb3MuCi0gICAgTUFDUk9TPSJsaWJ0b29sLm00IGx0fm9ic29sZXRlLm00IGx0b3B0aW9ucy5tNCBsdHN1Z2FyLm00IGx0dmVyc2lvbi5tNCIKLSAgICBmb3IgaSBpbiAke01BQ1JPU307IGRvCi0gICAgICAgIHJtIC1mIGFjaW5jbHVkZS8kaQotICAgIGRvbmUKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvbGlic2RsLW1peGVyL2xpYnNkbDItbWl4ZXJfMi4wLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnNkbC1taXhlci9saWJzZGwyLW1peGVyXzIuMC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxOGYzZjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnNkbC1taXhlci9saWJzZGwyLW1peGVyXzIuMC4yLmJiCkBAIC0wLDAgKzEsMjcgQEAKK1NVTU1BUlkgPSAiU2ltcGxlIERpcmVjdE1lZGlhIExheWVyIG1peGVyIGxpYnJhcnkgVjIiCitTRUNUSU9OID0gImxpYnMiCitERVBFTkRTID0gInZpcnR1YWwvbGlic2RsMiBmbGFjIGxpYm1pa21vZCBsaWJ2b3JiaXMiCitMSUNFTlNFID0gIlpsaWIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLnR4dDttZDU9OTVlMGMzY2Y2M2Y3MWI5NTA5MTFlNjk4YTU0YjdmYzUiCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5saWJzZGwub3JnL3Byb2plY3RzL1NETF9taXhlci9yZWxlYXNlL1NETDJfbWl4ZXItJHtQVn0udGFyLmd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiYWFhMDU1MTM5Mzk5M2MxNGExM2Y3MmIzMzljMGVkNmMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGU2MTVlMjdlZmNhNGY0MzlkZjlhZjZhYTJjNmRlODQxNTBkMTdjYmZkMTIxNzRiNTQ4NjhjMTJmMTljODNiYiIKKworUyA9ICIke1dPUktESVJ9L1NETDJfbWl4ZXItJHtQVn0iCisKK2luaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcKKworRVhUUkFfQVVUT1JFQ09ORiArPSAiLS1pbmNsdWRlPWFjaW5jbHVkZSIKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtbXVzaWMtbXAzIC0tZW5hYmxlLW11c2ljLW9nZyAtLWVuYWJsZS1tdXNpYy1vZ2ctdHJlbW9yIExJQlM9LUwke1NUQUdJTkdfTElCRElSfSIKKworUEFDS0FHRUNPTkZJR1ttYWRdID0gIi0tZW5hYmxlLW11c2ljLW1wMy1tYWQtZ3BsLC0tZGlzYWJsZS1tdXNpYy1tcDMtbWFkLWdwbCxsaWJtYWQiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKKyAgICAjIFJlbW92ZSBvbGQgbGlidG9vbCBtYWNyb3MuCisgICAgTUFDUk9TPSJsaWJ0b29sLm00IGx0fm9ic29sZXRlLm00IGx0b3B0aW9ucy5tNCBsdHN1Z2FyLm00IGx0dmVyc2lvbi5tNCIKKyAgICBmb3IgaSBpbiAke01BQ1JPU307IGRvCisgICAgICAgIHJtIC1mIGFjaW5jbHVkZS8kaQorICAgIGRvbmUKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvbXBsYXllci9tcHZfMC4yNi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9tcGxheWVyL21wdl8wLjI2LjAuYmIKaW5kZXggNDRkOTJhMC4uZGU3OGRlMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9tcGxheWVyL21wdl8wLjI2LjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9tcGxheWVyL21wdl8wLjI2LjAuYmIKQEAgLTE2LDcgKzE2LDcgQEAKIAogU1JDX1VSSSA9ICIgXAogICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tcHYtcGxheWVyL21wdi9hcmNoaXZlL3Yke1BWfS50YXIuZ3o7bmFtZT1tcHYgXAotICAgIGh0dHA6Ly93d3cuZnJlZWhhY2tlcnMub3JnL350bmFneS9yZWxlYXNlL3dhZi0xLjguMTI7bmFtZT13YWY7c3ViZGlyPSR7QlBOfS0ke1BWfSBcCisgICAgaHR0cDovL3d3dy5mcmVlaGFja2Vycy5vcmcvfnRuYWd5L3JlbGVhc2Uvd2FmLTEuOC4xMjtuYW1lPXdhZjtkb3dubG9hZGZpbGVuYW1lPXdhZjtzdWJkaXI9JHtCUE59LSR7UFZ9IFwKICIKIFNSQ19VUklbbXB2Lm1kNXN1bV0gPSAiMDM4ZDBiNjYwZGUwN2ZmNjQ1YWQ2YTc0MTcwNGVjYWIiCiBTUkNfVVJJW21wdi5zaGEyNTZzdW1dID0gImRhZjNlZjM1OGQ1ZjI2MGYyMjY5ZjdjYWFiY2UyN2Y0NDZjMjkxNDU3ZWMzMzAwNzcxNTIxMjcxMzNiNzFiNDYiCkBAIC02NCw5ICs2NCwxMCBAQAogICAgICR7UEFDS0FHRUNPTkZJR19DT05GQVJHU30gXAogIgogCi1kb19jb25maWd1cmVfcHJlcGVuZCAoKSB7Ci0gICAgbG4gLXNmIHdhZi0xLjguMTIgJHtTfS93YWYKK2FkanVzdF93YWZfcGVybXMoKSB7CiAgICAgY2htb2QgK3ggJHtTfS93YWYKIH0KIAorZG9fcGF0Y2hbcG9zdGZ1bmNzXSArPSAiYWRqdXN0X3dhZl9wZXJtcyIKKwogRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vaWNvbnMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAxLVJldmVydC1tZWRpYS1jdGwtRG9uLXQtaW5zdGFsbC1saWJtZWRpYWN0bC1hbmQtbGlidjQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAxLVJldmVydC1tZWRpYS1jdGwtRG9uLXQtaW5zdGFsbC1saWJtZWRpYWN0bC1hbmQtbGlidjQucGF0Y2gKaW5kZXggNzQxMzA5NC4uZWIyOTRiM2YgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDEtUmV2ZXJ0LW1lZGlhLWN0bC1Eb24tdC1pbnN0YWxsLWxpYm1lZGlhY3RsLWFuZC1saWJ2NC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAxLVJldmVydC1tZWRpYS1jdGwtRG9uLXQtaW5zdGFsbC1saWJtZWRpYWN0bC1hbmQtbGlidjQucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDJkNmJmYTc1YjJlMTZiNGQ3NjRmMWJmMDBiYjkwMmZiNGI1ZTUwN2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDY3YTZlOTE5YjgyNjNkNmQyYjcxNTBlNjJmMjZmYjA2YmJjNTI2ZWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogRnJpLCAyNyBGZWIgMjAxNSAyMTo1NTozNiArMDAwMAogU3ViamVjdDogW1BBVENIXSBSZXZlcnQgIm1lZGlhLWN0bDogRG9uJ3QgaW5zdGFsbCBsaWJtZWRpYWN0bCBhbmQKQEAgLTEwLDYgKzEwLDcgQEAKIAogQ29uZmxpY3RzOgogCXV0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbQorCiAtLS0KICB1dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0gfCAxMCArKystLS0tLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKQEAgLTQwLDYgKzQxLDMgQEAKICBtZWRpYWN0bF9pbmNsdWRlZGlyPSQoaW5jbHVkZWRpcikvbWVkaWFjdGwKICBub2luc3RfSEVBREVSUyA9IG1lZGlhY3RsLmggdjRsMnN1YmRldi5oCiAgCi0tLSAKLTIuOS4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDEtYnVpbGRzeXN0ZW0tZG8tbm90LWFzc3VtZS1idWlsZGluZy1pbi1zb3VyY2UtdHJlZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDEtYnVpbGRzeXN0ZW0tZG8tbm90LWFzc3VtZS1idWlsZGluZy1pbi1zb3VyY2UtdHJlZS5wYXRjaAppbmRleCA1NDE2MWY5Li4xMjYwOWQzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAxLWJ1aWxkc3lzdGVtLWRvLW5vdC1hc3N1bWUtYnVpbGRpbmctaW4tc291cmNlLXRyZWUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvMDAwMS1idWlsZHN5c3RlbS1kby1ub3QtYXNzdW1lLWJ1aWxkaW5nLWluLXNvdXJjZS10cmVlLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotRnJvbSA4MDY4MjJmNWFjYjc1NmQ1YWNkYTBmOTA2M2M4NGIyOGIzOGIzZmZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA3NTM3MmI4MDg4YzIwNDc0NDk3Yjc5ZWM2Y2YxZTk5ZjJkMTdmNTZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogSXNtbyBQdXVzdGluZW4gPGlzbW8ucHV1c3RpbmVuQGludGVsLmNvbT4KIERhdGU6IE1vbiwgMyBBcHIgMjAxNyAxMzoyMzozOCArMDMwMAotU3ViamVjdDogW1BBVENIIHY0bC11dGlsc10gYnVpbGRzeXN0ZW06IGRvIG5vdCBhc3N1bWUgYnVpbGRpbmcgaW4gc291cmNlIHRyZWUuCitTdWJqZWN0OiBbUEFUQ0hdIGJ1aWxkc3lzdGVtOiBkbyBub3QgYXNzdW1lIGJ1aWxkaW5nIGluIHNvdXJjZSB0cmVlLgogCiBVc2UgJCh0b3Bfc3JjZGlyKSBhcyByZWZlcmVuY2UgZm9yIGluY2x1ZGUgcGF0aHMgYW5kIGJ1aWxkdGltZSBzY3JpcHRzLgogT3RoZXJ3aXNlIGNvbXBpbGF0aW9uIG91dHNpZGUgb2YgcHJvamVjdCByb290IGRpcmVjdG9yeSB3aWxsIGZhaWwKQEAgLTEyLDYgKzEyLDcgQEAKIFVwc3RyZWFtLXN0YXR1czogQWNjZXB0ZWQgW2h0dHBzOi8vZ2l0LmxpbnV4dHYub3JnLy92NGwtdXRpbHMuZ2l0L2NvbW1pdC8/aWQ9YmQ5OGM5YTk5YmZmYzhkNDRjNTQ4NTkzNDVlNGRmZWUwYWRhNDI3NV0KIAogU2lnbmVkLW9mZi1ieTogSXNtbyBQdXVzdGluZW4gPGlzbW8ucHV1c3RpbmVuQGludGVsLmNvbT4KKwogLS0tCiAgdXRpbHMvY2VjLWNvbXBsaWFuY2UvTWFrZWZpbGUuYW0gIHwgMiArLQogIHV0aWxzL2NlYy1jdGwvTWFrZWZpbGUuYW0gICAgICAgICB8IDIgKy0KQEAgLTIyLDcgKzIzLDcgQEAKICA2IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL3V0aWxzL2NlYy1jb21wbGlhbmNlL01ha2VmaWxlLmFtIGIvdXRpbHMvY2VjLWNvbXBsaWFuY2UvTWFrZWZpbGUuYW0KLWluZGV4IGVjNWRlNTEuLjgzMzFhYTAgMTAwNjQ0CitpbmRleCBmMDVmZTZjLi5mN2QxNTM1IDEwMDY0NAogLS0tIGEvdXRpbHMvY2VjLWNvbXBsaWFuY2UvTWFrZWZpbGUuYW0KICsrKyBiL3V0aWxzL2NlYy1jb21wbGlhbmNlL01ha2VmaWxlLmFtCiBAQCAtNyw3ICs3LDcgQEAgY2VjX2NvbXBsaWFuY2VfTERGTEFHUyA9IC1scnQKQEAgLTM1LDEwICszNiwxMCBAQAogIGNlYy1jb21wbGlhbmNlLmNwcDogdmVyc2lvbi5oCiAgCiBkaWZmIC0tZ2l0IGEvdXRpbHMvY2VjLWN0bC9NYWtlZmlsZS5hbSBiL3V0aWxzL2NlYy1jdGwvTWFrZWZpbGUuYW0KLWluZGV4IDBhN2VmMjIuLjZhZmI2YzkgMTAwNjQ0CitpbmRleCA0YTZlYWU1Li41NzBhMDcwIDEwMDY0NAogLS0tIGEvdXRpbHMvY2VjLWN0bC9NYWtlZmlsZS5hbQogKysrIGIvdXRpbHMvY2VjLWN0bC9NYWtlZmlsZS5hbQotQEAgLTcsNyArNyw3IEBAIGNlY19jdGxfTERGTEFHUyA9IC1scnQKK0BAIC02LDcgKzYsNyBAQCBjZWNfY3RsX1NPVVJDRVMgPSBjZWMtY3RsLmNwcAogIGNlYy1jdGwuY3BwOiBjZWMtY3RsLWdlbi5oCiAgCiAgY2VjLWN0bC1nZW4uaDogbXNnMmN0bC5wbCAuLi8uLi9pbmNsdWRlL2xpbnV4L2NlYy5oIC4uLy4uL2luY2x1ZGUvbGludXgvY2VjLWZ1bmNzLmgKQEAgLTQ4LDcgKzQ5LDcgQEAKICBjbGVhbi1sb2NhbDoKICAJLXJtIC12ZiBjZWMtY3RsLWdlbi5oCiBkaWZmIC0tZ2l0IGEvdXRpbHMvY2VjLWZvbGxvd2VyL01ha2VmaWxlLmFtIGIvdXRpbHMvY2VjLWZvbGxvd2VyL01ha2VmaWxlLmFtCi1pbmRleCA1MzhlZGIyLi5mZGJmM2Q5IDEwMDY0NAoraW5kZXggZDhhZDI5Mi4uZTM1NTNlYiAxMDA2NDQKIC0tLSBhL3V0aWxzL2NlYy1mb2xsb3dlci9NYWtlZmlsZS5hbQogKysrIGIvdXRpbHMvY2VjLWZvbGxvd2VyL01ha2VmaWxlLmFtCiBAQCAtNywxMiArNywxMiBAQCBjZWNfZm9sbG93ZXJfTERGTEFHUyA9IC1scnQKQEAgLTY1LDcgKzY2LDcgQEAKICsJJCh0b3Bfc3JjZGlyKS91dGlscy9jZWMtY3RsL21zZzJjdGwucGwgMiAkKHRvcF9zcmNkaXIpL2luY2x1ZGUvbGludXgvY2VjLmggJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL2xpbnV4L2NlYy1mdW5jcy5oID4kQAogIAogIHZlcnNpb24uaDoKLSAJQGlmIGdpdCByZXYtcGFyc2UgSEVBRCA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorIAlAaWYgZ2l0IHNob3ctcmVmIC1zIEhFQUQgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKIGRpZmYgLS1naXQgYS91dGlscy9xdjRsMi9NYWtlZmlsZS5hbSBiL3V0aWxzL3F2NGwyL01ha2VmaWxlLmFtCiBpbmRleCBmZDU4NDg2Li5jY2QxYTJhIDEwMDY0NAogLS0tIGEvdXRpbHMvcXY0bDIvTWFrZWZpbGUuYW0KQEAgLTgwLDcgKzgxLDcgQEAKICBpZiBXSVRIX1FUR0wKICBxdjRsMl9DUFBGTEFHUyArPSAkKFFUR0xfQ0ZMQUdTKQogZGlmZiAtLWdpdCBhL3V0aWxzL3Y0bDItY29tcGxpYW5jZS9NYWtlZmlsZS5hbSBiL3V0aWxzL3Y0bDItY29tcGxpYW5jZS9NYWtlZmlsZS5hbQotaW5kZXggMDNkYjhkZi4uMThiOTg5MiAxMDA2NDQKK2luZGV4IGMyYjU5MTkuLmZiOGQxMmUgMTAwNjQ0CiAtLS0gYS91dGlscy92NGwyLWNvbXBsaWFuY2UvTWFrZWZpbGUuYW0KICsrKyBiL3V0aWxzL3Y0bDItY29tcGxpYW5jZS9NYWtlZmlsZS5hbQogQEAgLTUsNyArNSw3IEBAIERFRlMgOj0KQEAgLTEwNSw2ICsxMDYsMyBAQAogIAogIGlmIFdJVEhfVjRMMl9DVExfTElCVjRMCiAgdjRsMl9jdGxfTERBREQgPSAuLi8uLi9saWIvbGlidjRsMi9saWJ2NGwyLmxhIC4uLy4uL2xpYi9saWJ2NGxjb252ZXJ0L2xpYnY0bGNvbnZlcnQubGEgLWxydCAtbHB0aHJlYWQKLS0tIAotMi45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvMDAwMS1pci1jdGwtRGVmaW5lLVRFTVBfRkFJTFVSRV9SRVRSWS1pZi11bmRlZmluZWQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAxLWlyLWN0bC1EZWZpbmUtVEVNUF9GQUlMVVJFX1JFVFJZLWlmLXVuZGVmaW5lZC5wYXRjaAppbmRleCBmMWUxMWRhLi44MmZjM2UxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAxLWlyLWN0bC1EZWZpbmUtVEVNUF9GQUlMVVJFX1JFVFJZLWlmLXVuZGVmaW5lZC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAxLWlyLWN0bC1EZWZpbmUtVEVNUF9GQUlMVVJFX1JFVFJZLWlmLXVuZGVmaW5lZC5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUZyb20gZTYwYWVhNTBlNDFhZThhMTc2NzJiZWI1ODU5YmVlY2I2NmU3YTMwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gYjJlZmNjMjA2MTdkNjMxN2Y3NGM0YWNiMmE2YWY1Yjc2NWYyMGIzNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBGcmksIDE0IEp1bCAyMDE3IDEzOjExOjI1IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8zXSBpci1jdGw6IERlZmluZSBURU1QX0ZBSUxVUkVfUkVUUlkgaWYgdW5kZWZpbmVkCitTdWJqZWN0OiBbUEFUQ0hdIGlyLWN0bDogRGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWSBpZiB1bmRlZmluZWQKIAogdXNlIHN0cm5kdXAoKSBpbnN0ZWFkIG9mIHN0cm5kdXBhKCkgd2hpY2ggaXMgbm90CiB1bml2ZXJzYWxseSBhdmFpbGFibGUgaW4gQyBsaWJyYXJpZXMKQEAgLTksNiArOSw3IEBACiBUYWtlbiBmcm9tIEFscGluZUxpbnV4CiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIHV0aWxzL2lyLWN0bC9pci1jdGwuYyB8IDE0ICsrKysrKysrKysrKystCiAgMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKQEAgLTUwLDYgKzUxLDMgQEAKICAKICAJaWYgKCFzdHJ0b3NjYW5jb2RlKHAgKyAxLCAmc2NhbmNvZGUpKSB7CiAgCQlmcHJpbnRmKHN0ZGVyciwgXygiZXJyb3I6IGludmFsaWQgc2NhbmNvZGUgJyVzJ1xuIiksIHAgKyAxKTsKLS0tIAotMi4xMy4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDItY29udHJpYi10ZXN0LUxpbmstbWNfbmV4dGdlbl90ZXN0LXdpdGgtbGliYXJncC1pZi1uZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDItY29udHJpYi10ZXN0LUxpbmstbWNfbmV4dGdlbl90ZXN0LXdpdGgtbGliYXJncC1pZi1uZS5wYXRjaAppbmRleCAyZmI0MDU3Li5hNzc5YTMwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAyLWNvbnRyaWItdGVzdC1MaW5rLW1jX25leHRnZW5fdGVzdC13aXRoLWxpYmFyZ3AtaWYtbmUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvMDAwMi1jb250cmliLXRlc3QtTGluay1tY19uZXh0Z2VuX3Rlc3Qtd2l0aC1saWJhcmdwLWlmLW5lLnBhdGNoCkBAIC0xLDExICsxLDEyIEBACi1Gcm9tIGIzYWNjNGM2NDA3Zjk1NTNmMzI1ODJhOWFlZTZhMTFiNWZjZDFkOGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDQ5Zjg2NWExN2Q2MmRiN2JiZDMzM2E5YjgzZmFkZWVhNTU2ODZlMzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogRnJpLCAxNCBKdWwgMjAxNyAxMzoxNzoxOSAtMDcwMAotU3ViamVjdDogW1BBVENIIDIvM10gY29udHJpYi90ZXN0OiBMaW5rIG1jX25leHRnZW5fdGVzdCB3aXRoIGxpYmFyZ3AgaWYgbmVlZGVkCitTdWJqZWN0OiBbUEFUQ0hdIGNvbnRyaWIvdGVzdDogTGluayBtY19uZXh0Z2VuX3Rlc3Qgd2l0aCBsaWJhcmdwIGlmIG5lZWRlZAogCiBtdXNsIGRlcGVuZHMgb24gZXh0ZXJuYWwgYXJncCBpbXBsZW1lbnRhdGlvbiBlLmcuCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIGNvbnRyaWIvdGVzdC9NYWtlZmlsZS5hbSB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKQEAgLTIzLDYgKzI0LDMgQEAKICAKICAKICBpb2N0bF90ZXN0X1NPVVJDRVMgPSBpb2N0bC10ZXN0LmMgaW9jdGwtdGVzdC5oIGlvY3RsXzMyLmggaW9jdGxfNjQuaAotLS0gCi0yLjEzLjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvMDAwMy12NGwyLWN0bC1Eby1ub3QtdXNlLWdldHN1Ym9wdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDMtdjRsMi1jdGwtRG8tbm90LXVzZS1nZXRzdWJvcHQucGF0Y2gKaW5kZXggMGE5ODZhZS4uNWI4NGFmMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvMDAwMy12NGwyLWN0bC1Eby1ub3QtdXNlLWdldHN1Ym9wdC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAzLXY0bDItY3RsLURvLW5vdC11c2UtZ2V0c3Vib3B0LnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotRnJvbSBkMDRhYTY4NjZjYmVhNTdjNGE4MWIwMzNjZDYwNTg2YTk0MzZhYzZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBmN2E0Yjc5YjMzMjM1MzQ0NjBhNjNiM2U2YzU4ZWJhZjA2YWRmMjA3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IEZyaSwgMTQgSnVsIDIwMTcgMTM6MjA6MDUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAzLzNdIHY0bDItY3RsOiBEbyBub3QgdXNlIGdldHN1Ym9wdAorU3ViamVjdDogW1BBVENIXSB2NGwyLWN0bDogRG8gbm90IHVzZSBnZXRzdWJvcHQKIAogUE9TSVggc2F5cyB0aGF0IGJlaGF2aW9yIHdoZW4gc3Vib3B0cyBsaXN0IGlzIGVtcHR5IGlzIHVuZGVmaW5lZC4KIG11c2wgbGlicyB3aWxsIHNldCB2YWx1ZSB0byBOVUxMIHdoaWNoIGxlYWRzIHRvIGNyYXNoLgpAQCAtOSw2ICs5LDcgQEAKIFRha2VuIGZyb20gQWxwaW5lTGludXgKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgdXRpbHMvdjRsMi1jdGwvdjRsMi1jdGwtY29tbW9uLmNwcCB8IDE5ICsrKysrKysrKystLS0tLS0tLS0KICAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKQEAgLTQ0LDYgKzQ1LDMgQEAKICB9CiAgCiAgdm9pZCBjb21tb25fY21kKGludCBjaCwgY2hhciAqb3B0YXJnKQotLS0gCi0yLjEzLjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvZXhwb3J0LW1lZGlhY3RsLWhlYWRlcnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy9leHBvcnQtbWVkaWFjdGwtaGVhZGVycy5wYXRjaAppbmRleCBjNjEwZTdlLi41NWE1Y2RjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy9leHBvcnQtbWVkaWFjdGwtaGVhZGVycy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy9leHBvcnQtbWVkaWFjdGwtaGVhZGVycy5wYXRjaApAQCAtMSw5ICsxLDE3IEBACi1JbmRleDogdjRsLXV0aWxzLTEuNi4yL3V0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHY0bC11dGlscy0xLjYuMi5vcmlnL3V0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbQotKysrIHY0bC11dGlscy0xLjYuMi91dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0KLUBAIC00LDggKzQsOCBAQCBsaWJtZWRpYWN0bF9sYV9DRkxBR1MgPSAkKExJQlVERVZfQ0ZMQUdTCi0gbGlibWVkaWFjdGxfbGFfTERGTEFHUyA9ICQoTElCVURFVl9MSUJTKQorRnJvbSBiODJlNTA5YzEwNjU5YTQ2NDc5NjFhNmRhM2FkZjRkMjg1ZGVhMmRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFN1biwgMSBNYXIgMjAxNSAyMjoyNTowNyArMDAwMAorCistLS0KKyB1dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0gfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtIGIvdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtCitpbmRleCA3YzUyMGEyLi43NDgzNTNkIDEwMDY0NAorLS0tIGEvdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtCisrKysgYi91dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0KK0BAIC0xNyw4ICsxNyw4IEBAIENMRUFORklMRVMgPSAkKEJVSUxUX1NPVVJDRVMpCisgbm9kaXN0X2xpYnY0bDJzdWJkZXZfbGFfU09VUkNFUyA9ICQoQlVJTFRfU09VUkNFUykKICBsaWJ2NGwyc3ViZGV2X2xhX1NPVVJDRVMgPSBsaWJ2NGwyc3ViZGV2LmMKICBsaWJ2NGwyc3ViZGV2X2xhX0xJQkFERCA9IGxpYm1lZGlhY3RsLmxhCiAtbWVkaWFjdGxfaW5jbHVkZWRpcj0kKGluY2x1ZGVkaXIpL21lZGlhY3RsCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy9tZWRpYWN0bC1wa2djb25maWcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy9tZWRpYWN0bC1wa2djb25maWcucGF0Y2gKaW5kZXggMzRmYjNjZi4uOWZjZjYxMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvbWVkaWFjdGwtcGtnY29uZmlnLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzL21lZGlhY3RsLXBrZ2NvbmZpZy5wYXRjaApAQCAtMSw4ICsxLDE2IEBACi1JbmRleDogdjRsLXV0aWxzLTEuNi4yL3V0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHY0bC11dGlscy0xLjYuMi5vcmlnL3V0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbQotKysrIHY0bC11dGlscy0xLjYuMi91dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0KLUBAIC03LDYgKzcsNyBAQCBsaWJ2NGwyc3ViZGV2X2xhX0xJQkFERCA9IGxpYm1lZGlhY3RsLmxhCitGcm9tIDQ4MGMwNGFjNmE5ZDExYmZlZjlkNGFjYTA3MzA1MmZkY2VlNGZkZWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU3VuLCAxIE1hciAyMDE1IDIyOjI1OjA3ICswMDAwCisKKy0tLQorIHV0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbSB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtIGIvdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtCitpbmRleCBkMTFmYTJlLi43YzUyMGEyIDEwMDY0NAorLS0tIGEvdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtCisrKysgYi91dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0KK0BAIC0yMCw2ICsyMCw3IEBAIGxpYnY0bDJzdWJkZXZfbGFfTElCQUREID0gbGlibWVkaWFjdGwubGEKICBtZWRpYWN0bF9pbmNsdWRlZGlyPSQoaW5jbHVkZWRpcikvbWVkaWFjdGwKICBub2luc3RfSEVBREVSUyA9IG1lZGlhY3RsLmggdjRsMnN1YmRldi5oCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3dlYm0vbGlidnB4L2xpYnZweC1jb25maWd1cmUtc3VwcG9ydC1ibGFuay1wcmVmaXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3dlYm0vbGlidnB4L2xpYnZweC1jb25maWd1cmUtc3VwcG9ydC1ibGFuay1wcmVmaXgucGF0Y2gKaW5kZXggYzdhNmU1MS4uNmFkN2YyYiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS93ZWJtL2xpYnZweC9saWJ2cHgtY29uZmlndXJlLXN1cHBvcnQtYmxhbmstcHJlZml4LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvd2VibS9saWJ2cHgvbGlidnB4LWNvbmZpZ3VyZS1zdXBwb3J0LWJsYW5rLXByZWZpeC5wYXRjaApAQCAtMSwxOSArMSwyOCBAQAotVXBzdHJlYW06IG5vdCB5ZXQKK0Zyb20gZGMwYTVjM2QyZGQ0ZTc5ZDEyYTE1MGEyNDZhOTVjNGRjODgzMjZmMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+CitEYXRlOiBUdWUsIDE2IEF1ZyAyMDExIDE2OjA0OjM1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFVwc3RyZWFtOiBub3QgeWV0CiAKIEZpeCBjb25maWd1cmUgdG8gYWNjZXB0ICItLXByZWZpeD0iIChhIGJsYW5rIHByZWZpeCkuCiAKLS0tLSBsaWJ2cHgtMC45LjEvYnVpbGQvbWFrZS9jb25maWd1cmUuc2gub3JpZwkyMDEwLTA2LTE3IDA5OjA4OjU2LjAwMDAwMDAwMCAtMDQwMAotKysrIGxpYnZweC0wLjkuMS9idWlsZC9tYWtlL2NvbmZpZ3VyZS5zaAkyMDEwLTA5LTIzIDE0OjI3OjQ4LjAwMDAwMDAwMCAtMDQwMAotQEAgLTQ0NCw2ICs0NDQsOCBAQAorLS0tCisgYnVpbGQvbWFrZS9jb25maWd1cmUuc2ggfCAyMCArKysrKysrKysrKysrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvYnVpbGQvbWFrZS9jb25maWd1cmUuc2ggYi9idWlsZC9tYWtlL2NvbmZpZ3VyZS5zaAoraW5kZXggMDA3ZTAyMC4uMDRkNWNiZiAxMDA2NDQKKy0tLSBhL2J1aWxkL21ha2UvY29uZmlndXJlLnNoCisrKysgYi9idWlsZC9tYWtlL2NvbmZpZ3VyZS5zaAorQEAgLTU4MSw2ICs1ODEsOCBAQCBwcm9jZXNzX2NvbW1vbl9jbWRsaW5lKCkgewogICAgICAgICAgOzsKLSAgICAgICAgIC0tcHJlZml4PSopCisgICAgICAgLS1wcmVmaXg9KikKICAgICAgICAgIHByZWZpeD0iJHtvcHR2YWx9IgogKyAgICAgICAgIyBEaXN0aW5ndWlzaCBiZXR3ZWVuICJwcmVmaXggbm90IHNldCIgYW5kICJwcmVmaXggc2V0IHRvICcnIgogKyAgICAgICAgcHJlZml4c2V0PTEKICAgICAgICAgIDs7Ci0gICAgICAgICAtLWxpYmRpcj0qKQorICAgICAgIC0tbGliZGlyPSopCiAgICAgICAgICBsaWJkaXI9IiR7b3B0dmFsfSIKLUBAIC01ODcsMTMgKzU4NywyMyBAQCBwcm9jZXNzX2NtZGxpbmUoKSB7CitAQCAtNjE0LDEzICs2MTYsMjMgQEAgcHJvY2Vzc19jbWRsaW5lKCkgewogIH0KICAKICBwb3N0X3Byb2Nlc3NfY29tbW9uX2NtZGxpbmUoKSB7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dlb2NsdWUvZ2VvY2x1ZV8yLjQuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ2VvY2x1ZS9nZW9jbHVlXzIuNC40LmJiCmluZGV4IDFkNTMxYWUuLmIzMWQ4ZWIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ2VvY2x1ZS9nZW9jbHVlXzIuNC40LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ2VvY2x1ZS9nZW9jbHVlXzIuNC40LmJiCkBAIC04LDkgKzgsOSBAQAogCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT04MTE0YjgzYTA0MzVkODEzNmI0N2JkNzAxMTFjZTVjZCIKIAotREVQRU5EUyA9ICJnbGliLTIuMCBkYnVzIGpzb24tZ2xpYiBsaWJzb3VwLTIuNCBpbnRsdG9vbC1uYXRpdmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uLW5hdGl2ZSIKK0RFUEVORFMgPSAiZ2xpYi0yLjAgZGJ1cyBqc29uLWdsaWIgbGlic291cC0yLjQgaW50bHRvb2wtbmF0aXZlIgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ3RrLWRvYworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGd0ay1kb2MgZ29iamVjdC1pbnRyb3NwZWN0aW9uCiAKIFNSQ19VUkkgPSAiIFwKICAgICBodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy9zb2Z0d2FyZS9nZW9jbHVlL3JlbGVhc2VzLzIuNC9nZW9jbHVlLSR7UFZ9LnRhci54eiBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE2LzAwMDEtU0NvbnN0cnVjdC1wcmVmaXgtaW5jbHVkZXB5LXdpdGgtc3lzcm9vdC1hbmQtZHJvcC1zeS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTYvMDAwMS1TQ29uc3RydWN0LXByZWZpeC1pbmNsdWRlcHktd2l0aC1zeXNyb290LWFuZC1kcm9wLXN5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWEzMjI2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTYvMDAwMS1TQ29uc3RydWN0LXByZWZpeC1pbmNsdWRlcHktd2l0aC1zeXNyb290LWFuZC1kcm9wLXN5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotRnJvbSAxZTJjZWE4OTQ1YmMyMTgzZmJlMWEwMTJkY2Q2MzNhMzUyMTI1OTUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgotRGF0ZTogVHVlLCAyNCBBcHIgMjAxMiAxODo0NToxNCArMDIwMAotU3ViamVjdDogW1BBVENIXSBTQ29uc3RydWN0OiBwcmVmaXggaW5jbHVkZXB5IHdpdGggc3lzcm9vdCBhbmQgZHJvcCBzeXNyb290Ci0gZnJvbSBweXRob25fbGliX2RpcgotCi0qIHdpdGhvdXQgUFlUSE9OUEFUSCwgZGlzdHV0aWwncyBzeXNjb25maWcgcmV0dXJucyBJTkNMVURFUFkgd2l0aG91dCBzeXNyb290IHByZWZpeAotICBhbmQgd2l0aCBQWVRIT05QQVRIIGZyb20gT0UgaXQncyBwb2ludGluZyB0byBuYXRpdmUgcHl0aG9uIGRpcgotCi0gICAgJCBleHBvcnQgUFlUSE9OUEFUSD0vT0Uvc2hyLWNvcmUvdG1wLWVnbGliYy9zeXNyb290cy9vbS1ndGEwMi91c3IvbGliL3B5dGhvbjIuNy8KLSAgICAkIHB5dGhvbgotICAgIFB5dGhvbiAyLjcuMiAoZGVmYXVsdCwgQXByIDE4IDIwMTIsIDA5OjE5OjU5KQotICAgIFtHQ0MgNC42LjJdIG9uIGxpbnV4MgotICAgIFR5cGUgImhlbHAiLCAiY29weXJpZ2h0IiwgImNyZWRpdHMiIG9yICJsaWNlbnNlIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLSAgICA+Pj4gZnJvbSBkaXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZwotICAgID4+PiBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXJzKCdJTkNMVURFUFknKQotICAgIFsnL09FL3Noci1jb3JlL3RtcC1lZ2xpYmMvc3lzcm9vdHMveDg2XzY0LWxpbnV4L3Vzci9pbmNsdWRlL3B5dGhvbjIuNyddCi0gICAgPj4+Ci0gICAgJCB1bnNldCBQWVRIT05QQVRICi0gICAgJCBweXRob24KLSAgICBQeXRob24gMi43LjIgKGRlZmF1bHQsIEFwciAxOCAyMDEyLCAwOToxOTo1OSkKLSAgICBbR0NDIDQuNi4yXSBvbiBsaW51eDIKLSAgICBUeXBlICJoZWxwIiwgImNvcHlyaWdodCIsICJjcmVkaXRzIiBvciAibGljZW5zZSIgZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0gICAgPj4+IGZyb20gZGlzdHV0aWxzIGltcG9ydCBzeXNjb25maWcKLSAgICA+Pj4gc3lzY29uZmlnLmdldF9jb25maWdfdmFycygnSU5DTFVERVBZJykKLSAgICBbJy9weXRob24yLjcnXQotICAgID4+PiBpbXBvcnQgc3lzY29uZmlnCi0gICAgPj4+IHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcnMoJ0lOQ0xVREVQWScpCi0gICAgWycvT0Uvc2hyLWNvcmUvdG1wLWVnbGliYy9zeXNyb290cy94ODZfNjQtbGludXgvdXNyL2luY2x1ZGUvcHl0aG9uMi43J10KLSogcHl0aG9uX2xpYl9kaXIgPSBweXRob25fbGliX2Rpci5yZXBsYWNlKGVudlsnc3lzcm9vdCddLCAnJykKLSAgcmV0dXJucyBwYXRoIHRvIHRhcmdldCBzeXNyb290Ci0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCi0KLVNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KLVNpZ25lZC1vZmYtYnk6IFBldGVyIEEuIEJpZ290IDxwYWJAcGFiaWdvdC5jb20+Ci0tLS0KLSBTQ29uc3RydWN0IHwgOSArKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9TQ29uc3RydWN0IGIvU0NvbnN0cnVjdAotaW5kZXggNmM5MzMxMS4uY2RlOGIzZCAxMDA2NDQKLS0tLSBhL1NDb25zdHJ1Y3QKLSsrKyBiL1NDb25zdHJ1Y3QKLUBAIC0xMTQ4LDYgKzExNDgsMTIgQEAgZWxzZToKLSAgICAgICAgIGJhc2VjZmxhZ3MgKz0gJyAtY292ZXJhZ2UnCi0gICAgICAgICBsZGZsYWdzICs9ICcgLWNvdmVyYWdlJwotICAgICAgICAgbGRzaGFyZWQgKz0gJyAtY292ZXJhZ2UnCi0rCi0rICAgIGlmIGVudlsnc3lzcm9vdCddOgotKyAgICAgICAgcHJpbnQgIlByZWZpeGluZyBpbmNsdWRlcHkgJyVzJyB3aXRoIHN5c3Jvb3QgcHJlZml4IiAlIGluY2x1ZGVweQotKyAgICAgICAgaW5jbHVkZXB5ID0gb3MucGF0aC5ub3JtcGF0aCgiJXMvJXMvJXMvJXMiICUgKGVudlsnc3lzcm9vdCddLCBlbnZbJ3ByZWZpeCddLCBlbnZbJ2luY2x1ZGVkaXInXSwgaW5jbHVkZXB5KSkKLSsgICAgICAgIHByaW50ICInJXMnIiAlIGluY2x1ZGVweQotKwotICAgICAjIGluIGNhc2UgQ0MvQ1hYIHdhcyBzZXQgdG8gdGhlIHNjYW4tYnVpbGQgd3JhcHBlciwKLSAgICAgIyBlbnN1cmUgdGhhdCB3ZSBidWlsZCB0aGUgcHl0aG9uIG1vZHVsZXMgd2l0aCBzY2FuLWJ1aWxkLCB0b28KLSAgICAgaWYgZW52WydDQyddIGlzIE5vbmUgb3IgZW52WydDQyddLmZpbmQoJ3NjYW4tYnVpbGQnKSA8IDA6Ci1AQCAtMTQwOCwxMSArMTQxNCwxNCBAQCBpZiBub3QgZW52WydweXRob24nXToKLSAgICAgcHl0aG9uX2luc3RhbGwgPSBbXQotIGVsc2U6Ci0gICAgIHB5dGhvbl9saWJfZGlyID0gZW52WydweXRob25fbGliZGlyJ10KLSsgICAgcHl0aG9uX2xpYl9kaXIgPSBweXRob25fbGliX2Rpci5yZXBsYWNlKGVudlsnc3lzcm9vdCddLCAnJykKLSAgICAgcHl0aG9uX21vZHVsZV9kaXIgPSBweXRob25fbGliX2RpciArIG9zLnNlcCArICdncHMnCi0gICAgIHB5dGhvbl9leHRlbnNpb25zX2luc3RhbGwgPSBweXRob25fZW52Lkluc3RhbGwoIERFU1RESVIgKyBweXRob25fbW9kdWxlX2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uX2J1aWx0X2V4dGVuc2lvbnMpCi0gICAgIGlmIG5vdCBlbnZbJ2RlYnVnJ10gYW5kIG5vdCBlbnZbJ3Byb2ZpbGluZyddIGFuZCBub3QgZW52Wydub3N0cmlwJ10gYW5kIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnZGFyd2luJyk6Ci0gICAgICAgICBweXRob25fZW52LkFkZFBvc3RBY3Rpb24ocHl0aG9uX2V4dGVuc2lvbnNfaW5zdGFsbCwgJyRTVFJJUCAkVEFSR0VUJykKLSsgICAgZW52LkFkZFBvc3RBY3Rpb24ocHl0aG9uX2V4dGVuc2lvbnNfaW5zdGFsbCwgJyRDSFJQQVRIIC1yICIlcyIgIiRUQVJHRVQiJyBcCi0rICAgICAgICAgICAgICAgICAgICAgJSAocHl0aG9uX2xpYl9kaXIsICkpCi0gCi0gICAgIHB5dGhvbl9tb2R1bGVzX2luc3RhbGwgPSBweXRob25fZW52Lkluc3RhbGwoIERFU1RESVIgKyBweXRob25fbW9kdWxlX2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob25fbW9kdWxlcykKLS0tIAotMi4xLjAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QtMy4xNi8wMDAxLWluY2x1ZGUtc3lzLXR0eWRlZmF1bHRzLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE2LzAwMDEtaW5jbHVkZS1zeXMtdHR5ZGVmYXVsdHMuaC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjQ5NmI1ZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE2LzAwMDEtaW5jbHVkZS1zeXMtdHR5ZGVmYXVsdHMuaC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLUZyb20gZjIyMWZhOTU5YzgwYjQzYzY1NDI2NTAwYTY4MzZhMWI1Y2Y2ZmUwYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDE3IEF1ZyAyMDE2IDAyOjE2OjEyICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGluY2x1ZGUgc3lzL3R0eWRlZmF1bHRzLmgKLQotVGhpcyBpcyBuZWVkZWQgZm9yIENUUkwgZGVmaW5pdGlvbiwgYXMgZXhwb3NlZCBieSBtdXNsIG9uIGdsaWJjCi10aGlzIGluY2x1ZGUgZmlsZSBnZXRzIHB1bGxlZCBpbmRpcmVjdGx5LgotCi0vdXNyL3NyYy9kZWJ1Zy9ncHNkLzMuMTQtcjAvZ3BzZC0zLjE0L2dwc21vbi5jOjYwNTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQ1RSTCcKLWNsYW5nLTMuOTogZXJyb3I6IGxpbmtlciBjb21tYW5kIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAxICh1c2UgLXYgdG8gc2VlIGludm9jYXRpb24pCi1zY29uczogKioqIFtncHNtb25dIEVycm9yIDEKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotRm9yZXdhcmQgcG9ydCB0byBncHNkIDMuMTYKLVNpZ25lZC1vZmYtYnk6IE1heCBLcnVtbWVuYWNoZXIgPG1heC5rcnVtbWVuYWNoZXJAdG9yYWRleC5jb20+Ci0tLS0KLSBncHNtb24uYyB8IDEgKwotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQotCi1kaWZmIC0tZ2l0IGEvZ3BzbW9uLmMgYi9ncHNtb24uYwotaW5kZXggZWFkODRkMC4uZjIwNWNiMSAxMDA2NDQKLS0tLSBhL2dwc21vbi5jCi0rKysgYi9ncHNtb24uYwotQEAgLTIwLDYgKzIwLDcgQEAKLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0gI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0gI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KLSsjaW5jbHVkZSA8c3lzL3R0eWRlZmF1bHRzLmg+Ci0gI2luY2x1ZGUgPGZjbnRsLmg+Ci0gI2luY2x1ZGUgPHVuaXN0ZC5oPgotIAotLS0gCi0yLjEyLjAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QtMy4xNi8wMDA0LVNDb25zdHJ1Y3QtZGlzYWJsZS1odG1sLWFuZC1tYW4tZG9jcy1idWlsZGluZy1iZWNhdXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE2LzAwMDQtU0NvbnN0cnVjdC1kaXNhYmxlLWh0bWwtYW5kLW1hbi1kb2NzLWJ1aWxkaW5nLWJlY2F1cy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUyN2YwZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE2LzAwMDQtU0NvbnN0cnVjdC1kaXNhYmxlLWh0bWwtYW5kLW1hbi1kb2NzLWJ1aWxkaW5nLWJlY2F1cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLUZyb20gNjk3ZTJlOWZmOTc0ODcyNjZkODE3Y2RkNDFiYWNjODNmNjgxZTNkNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMjkgQXByIDIwMTIgMDA6MDU6NTkgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA0LzRdIFNDb25zdHJ1Y3Q6IGRpc2FibGUgaHRtbCBhbmQgbWFuIGRvY3MgYnVpbGRpbmcgYmVjYXVzZQotIHhtbHRvLW5hdGl2ZSBmcm9tIE9FIGlzIGJyb2tlbgotCi1JdCB3aWxsIHRyeSB0byBsb2FkIGR0ZCBhbmQgZmFpbDoKLXwgeG1sdG8gbWFuIGdwc2N0bC54bWw7IG12IGBiYXNlbmFtZSBncHNjdGwuMWAgZ3BzY3RsLjEKLXwgeG1sdG86IC92YXIvbGliL2plbmtpbnMvam9icy9zaHItY29yZS1icmFuY2hlcy93b3Jrc3BhY2Uvc2hyLWNvcmUvdG1wLWVnbGliYy93b3JrL2FybXY0dC1vZS1saW51eC1nbnVlYWJpL2dwc2QtMy40LXIyL2dwc2QtMy40L2dwc2N0bC54bWwgZG9lcyBub3QgdmFsaWRhdGUgKHN0YXR1cyAzKQotfCB4bWx0bzogRml4IGRvY3VtZW50IHN5bnRheCBvciB1c2UgLS1za2lwLXZhbGlkYXRpb24gb3B0aW9uCi18IEkvTyBlcnJvciA6IEF0dGVtcHQgdG8gbG9hZCBuZXR3b3JrIGVudGl0eSBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZAotfCAvdmFyL2xpYi9qZW5raW5zL2pvYnMvc2hyLWNvcmUtYnJhbmNoZXMvd29ya3NwYWNlL3Noci1jb3JlL3RtcC1lZ2xpYmMvd29yay9hcm12NHQtb2UtbGludXgtZ251ZWFiaS9ncHNkLTMuNC1yMi9ncHNkLTMuNC9ncHNjdGwueG1sOjg6IHdhcm5pbmc6IGZhaWxlZCB0byBsb2FkIGV4dGVybmFsIGVudGl0eSAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiCi18ICAgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCI+Ci18ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotfCBJL08gZXJyb3IgOiBBdHRlbXB0IHRvIGxvYWQgbmV0d29yayBlbnRpdHkgaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQKLXwgd2FybmluZzogZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5ICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCIKLXwgdmFsaWRpdHkgZXJyb3IgOiBDb3VsZCBub3QgbG9hZCB0aGUgZXh0ZXJuYWwgc3Vic2V0ICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCIKLXwgRG9jdW1lbnQgL3Zhci9saWIvamVua2lucy9qb2JzL3Noci1jb3JlLWJyYW5jaGVzL3dvcmtzcGFjZS9zaHItY29yZS90bXAtZWdsaWJjL3dvcmsvYXJtdjR0LW9lLWxpbnV4LWdudWVhYmkvZ3BzZC0zLjQtcjIvZ3BzZC0zLjQvZ3BzY3RsLnhtbCBkb2VzIG5vdCB2YWxpZGF0ZQotfCBtdjogY2Fubm90IHN0YXQgYGdwc2N0bC4xJzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotfCBzY29uczogKioqIFtncHNjdGwuMV0gRXJyb3IgMQotfCBzY29uczogYnVpbGRpbmcgdGVybWluYXRlZCBiZWNhdXNlIG9mIGVycm9ycy4KLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtkaXNhYmxlIGZlYXR1cmVdCi0KLVNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KLVNpZ25lZC1vZmYtYnk6IFBldGVyIEEuIEJpZ290IDxwYWJAcGFiaWdvdC5jb20+Ci0tLS0KLSBTQ29uc3RydWN0IHwgNCArKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL1NDb25zdHJ1Y3QgYi9TQ29uc3RydWN0Ci1pbmRleCAwZTUxOGU3Li5jMDFhNzFiIDEwMDY0NAotLS0tIGEvU0NvbnN0cnVjdAotKysrIGIvU0NvbnN0cnVjdAotQEAgLTcwNCwxMiArNzA0LDEyIEBAIHNpemVfdCBzdHJsY3B5KC8qQG91dEAqL2NoYXIgKmRzdCwgLypAaW5AKi9jb25zdCBjaGFyICpzcmMsIHNpemVfdCBzaXplKTsKLSAKLSAgICAgbWFuYnVpbGRlciA9IG1hbmdlbmVyYXRvciA9IGh0bWxidWlsZGVyID0gTm9uZQotICAgICBpZiBlbnZbJ21hbmJ1aWxkJ106Ci0tICAgICAgICBpZiBjb25maWcuQ2hlY2tYc2x0cHJvYygpOgotKyAgICAgICAgaWYgRmFsc2UgYW5kIGNvbmZpZy5DaGVja1hzbHRwcm9jKCk6Ci0gICAgICAgICAgICAgbWFuZ2VuZXJhdG9yID0gJ3hzbHRwcm9jJwotICAgICAgICAgICAgIGJ1aWxkID0gInhzbHRwcm9jIC0tbm9uZXQgJXMgJFNPVVJDRSA+JFRBUkdFVCIKLSAgICAgICAgICAgICBodG1sYnVpbGRlciA9IGJ1aWxkICUgZG9jYm9va19odG1sX3VyaQotICAgICAgICAgICAgIG1hbmJ1aWxkZXIgPSBidWlsZCAlIGRvY2Jvb2tfbWFuX3VyaQotLSAgICAgICAgZWxpZiBXaGVyZUlzKCJ4bWx0byIpOgotKyAgICAgICAgZWxpZiBGYWxzZSBhbmQgV2hlcmVJcygieG1sdG8iKToKLSAgICAgICAgICAgICBtYW5nZW5lcmF0b3IgPSAneG1sdG8nCi0gICAgICAgICAgICAgeG1sdG8gPSAieG1sdG8gJXMgJFNPVVJDRSB8fCBtdiBgYmFzZW5hbWUgJFRBUkdFVGAgYGRpcm5hbWUgJFRBUkdFVGAiCi0gICAgICAgICAgICAgaHRtbGJ1aWxkZXIgPSB4bWx0byAlICJodG1sLW5vY2h1bmtzIgotLS0gCi0xLjguNS41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTcvMDAwMS1TQ29uc3RydWN0LXByZWZpeC1pbmNsdWRlcHktd2l0aC1zeXNyb290LWFuZC1kcm9wLXN5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QtMy4xNy8wMDAxLVNDb25zdHJ1Y3QtcHJlZml4LWluY2x1ZGVweS13aXRoLXN5c3Jvb3QtYW5kLWRyb3Atc3kucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZhMjdjMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTcvMDAwMS1TQ29uc3RydWN0LXByZWZpeC1pbmNsdWRlcHktd2l0aC1zeXNyb290LWFuZC1kcm9wLXN5LnBhdGNoCkBAIC0wLDAgKzEsODEgQEAKK0Zyb20gMWUyY2VhODk0NWJjMjE4M2ZiZTFhMDEyZGNkNjMzYTM1MjEyNTk1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgMjQgQXByIDIwMTIgMTg6NDU6MTQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gU0NvbnN0cnVjdDogcHJlZml4IGluY2x1ZGVweSB3aXRoIHN5c3Jvb3QgYW5kIGRyb3Agc3lzcm9vdAorIGZyb20gcHl0aG9uX2xpYl9kaXIKKworKiB3aXRob3V0IFBZVEhPTlBBVEgsIGRpc3R1dGlsJ3Mgc3lzY29uZmlnIHJldHVybnMgSU5DTFVERVBZIHdpdGhvdXQgc3lzcm9vdCBwcmVmaXgKKyAgYW5kIHdpdGggUFlUSE9OUEFUSCBmcm9tIE9FIGl0J3MgcG9pbnRpbmcgdG8gbmF0aXZlIHB5dGhvbiBkaXIKKworICAgICQgZXhwb3J0IFBZVEhPTlBBVEg9L09FL3Noci1jb3JlL3RtcC1lZ2xpYmMvc3lzcm9vdHMvb20tZ3RhMDIvdXNyL2xpYi9weXRob24yLjcvCisgICAgJCBweXRob24KKyAgICBQeXRob24gMi43LjIgKGRlZmF1bHQsIEFwciAxOCAyMDEyLCAwOToxOTo1OSkKKyAgICBbR0NDIDQuNi4yXSBvbiBsaW51eDIKKyAgICBUeXBlICJoZWxwIiwgImNvcHlyaWdodCIsICJjcmVkaXRzIiBvciAibGljZW5zZSIgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgPj4+IGZyb20gZGlzdHV0aWxzIGltcG9ydCBzeXNjb25maWcKKyAgICA+Pj4gc3lzY29uZmlnLmdldF9jb25maWdfdmFycygnSU5DTFVERVBZJykKKyAgICBbJy9PRS9zaHItY29yZS90bXAtZWdsaWJjL3N5c3Jvb3RzL3g4Nl82NC1saW51eC91c3IvaW5jbHVkZS9weXRob24yLjcnXQorICAgID4+PgorICAgICQgdW5zZXQgUFlUSE9OUEFUSAorICAgICQgcHl0aG9uCisgICAgUHl0aG9uIDIuNy4yIChkZWZhdWx0LCBBcHIgMTggMjAxMiwgMDk6MTk6NTkpCisgICAgW0dDQyA0LjYuMl0gb24gbGludXgyCisgICAgVHlwZSAiaGVscCIsICJjb3B5cmlnaHQiLCAiY3JlZGl0cyIgb3IgImxpY2Vuc2UiIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgID4+PiBmcm9tIGRpc3R1dGlscyBpbXBvcnQgc3lzY29uZmlnCisgICAgPj4+IHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcnMoJ0lOQ0xVREVQWScpCisgICAgWycvcHl0aG9uMi43J10KKyAgICA+Pj4gaW1wb3J0IHN5c2NvbmZpZworICAgID4+PiBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXJzKCdJTkNMVURFUFknKQorICAgIFsnL09FL3Noci1jb3JlL3RtcC1lZ2xpYmMvc3lzcm9vdHMveDg2XzY0LWxpbnV4L3Vzci9pbmNsdWRlL3B5dGhvbjIuNyddCisqIHB5dGhvbl9saWJfZGlyID0gcHl0aG9uX2xpYl9kaXIucmVwbGFjZShlbnZbJ3N5c3Jvb3QnXSwgJycpCisgIHJldHVybnMgcGF0aCB0byB0YXJnZXQgc3lzcm9vdAorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CitTaWduZWQtb2ZmLWJ5OiBQZXRlciBBLiBCaWdvdCA8cGFiQHBhYmlnb3QuY29tPgorLS0tCisgU0NvbnN0cnVjdCB8IDkgKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvU0NvbnN0cnVjdCBiL1NDb25zdHJ1Y3QKK2luZGV4IDMzMThiYjQ4Li5lMWM0Zjk2MyAxMDA2NDQKKy0tLSBhL1NDb25zdHJ1Y3QKKysrKyBiL1NDb25zdHJ1Y3QKK0BAIC05MzQsNyArOTM0LDcgQEAgZWxzZToKKyAKKyAjIFNldCB1cCBjb25maWd1cmF0aW9uIGZvciB0YXJnZXQgUHl0aG9uCisgCistUFlUSE9OX0xJQkRJUl9DQUxMID0gJ3N5c2NvbmZpZy5nZXRfcHl0aG9uX2xpYigpJworK1BZVEhPTl9MSUJESVJfQ0FMTCA9ICdzeXNjb25maWcuZ2V0X3B5dGhvbl9saWIocGxhdF9zcGVjaWZpYz0xKScKKyAKKyBQWVRIT05fQ09ORklHX05BTUVTID0gWydDQycsICdDWFgnLCAnT1BUJywgJ0JBU0VDRkxBR1MnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ0NDU0hBUkVEJywgJ0xEU0hBUkVEJywgJ1NPJywgJ0lOQ0xVREVQWScsICdMREZMQUdTJ10KK0BAIC0xMzY0LDcgKzEzNjQsNyBAQCBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgTElOSz1sZHNoYXJlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFNITElCUFJFRklYPSIiLAorICAgICAgICAgICAgICAgICAgICAgICAgU0hMSUJTVUZGSVg9cHl0aG9uX2NvbmZpZ1snU08nXSwKKy0gICAgICAgICAgICAgICAgICAgICAgIENQUFBBVEg9W3B5dGhvbl9jb25maWdbJ0lOQ0xVREVQWSddXSwKKysgICAgICAgICAgICAgICAgICAgICAgIENQUFBBVEg9W29zLnBhdGgubm9ybXBhdGgoIiVzLyVzLyVzLyVzIiAlIChlbnZbJ3N5c3Jvb3QnXSwgZW52WydwcmVmaXgnXSwgZW52WydpbmNsdWRlZGlyJ10sIHB5dGhvbl9jb25maWdbJ0lOQ0xVREVQWSddKSldIGlmIGVudlsnc3lzcm9vdCddIGVsc2UgW3B5dGhvbl9jb25maWdbJ0lOQ0xVREVQWSddXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENQUEZMQUdTPXB5dGhvbl9jb25maWdbJ09QVCddLAorICAgICAgICAgICAgICAgICAgICAgICAgQ0ZMQUdTPXB5dGhvbl9jb25maWdbJ0JBU0VDRkxBR1MnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENYWEZMQUdTPXB5dGhvbl9jb25maWdbJ0JBU0VDRkxBR1MnXSkKK0BAIC0xNjYyLDEyICsxNjYyLDE1IEBAIGlmICgobm90IGVudlsnZGVidWcnXSBhbmQgbm90IGVudlsncHJvZmlsaW5nJ10gYW5kIG5vdCBlbnZbJ25vc3RyaXAnXQorIGlmIG5vdCBlbnZbJ3B5dGhvbiddOgorICAgICBweXRob25faW5zdGFsbCA9IFtdCisgZWxzZToKKysgICAgcHl0aG9uX2xpYmRpciA9IHB5dGhvbl9saWJkaXIucmVwbGFjZShlbnZbJ3N5c3Jvb3QnXSwgJycpCisgICAgIHB5dGhvbl9tb2R1bGVfZGlyID0gcHl0aG9uX2xpYmRpciArIG9zLnNlcCArICdncHMnCisgICAgIHB5dGhvbl9leHRlbnNpb25zX2luc3RhbGwgPSBweXRob25fZW52Lkluc3RhbGwoREVTVERJUiArIHB5dGhvbl9tb2R1bGVfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbl9idWlsdF9leHRlbnNpb25zKQorICAgICBpZiAoKG5vdCBlbnZbJ2RlYnVnJ10gYW5kIG5vdCBlbnZbJ3Byb2ZpbGluZyddCisgICAgICAgICAgYW5kIG5vdCBlbnZbJ25vc3RyaXAnXSBhbmQgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdkYXJ3aW4nKSkpOgorICAgICAgICAgcHl0aG9uX2Vudi5BZGRQb3N0QWN0aW9uKHB5dGhvbl9leHRlbnNpb25zX2luc3RhbGwsICckU1RSSVAgJFRBUkdFVCcpCisrICAgIGVudi5BZGRQb3N0QWN0aW9uKHB5dGhvbl9leHRlbnNpb25zX2luc3RhbGwsICckQ0hSUEFUSCAtciAiJXMiICIkVEFSR0VUIicgXAorKyAgICAgICAgICAgICAgICAgICAgICUgKHB5dGhvbl9saWJkaXIsICkpCisgCisgICAgIHB5dGhvbl9tb2R1bGVzX2luc3RhbGwgPSBweXRob25fZW52Lkluc3RhbGwoREVTVERJUiArIHB5dGhvbl9tb2R1bGVfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbl9tb2R1bGVzKQorLS0gCisyLjEuMAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE3LzAwMDEtaW5jbHVkZS1zeXMtdHR5ZGVmYXVsdHMuaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTcvMDAwMS1pbmNsdWRlLXN5cy10dHlkZWZhdWx0cy5oLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5MWU0ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE3LzAwMDEtaW5jbHVkZS1zeXMtdHR5ZGVmYXVsdHMuaC5wYXRjaApAQCAtMCwwICsxLDM1IEBACitGcm9tIGYyMjFmYTk1OWM4MGI0M2M2NTQyNjUwMGE2ODM2YTFiNWNmNmZlMGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogV2VkLCAxNyBBdWcgMjAxNiAwMjoxNjoxMiArMDAwMAorU3ViamVjdDogW1BBVENIXSBpbmNsdWRlIHN5cy90dHlkZWZhdWx0cy5oCisKK1RoaXMgaXMgbmVlZGVkIGZvciBDVFJMIGRlZmluaXRpb24sIGFzIGV4cG9zZWQgYnkgbXVzbCBvbiBnbGliYwordGhpcyBpbmNsdWRlIGZpbGUgZ2V0cyBwdWxsZWQgaW5kaXJlY3RseS4KKworL3Vzci9zcmMvZGVidWcvZ3BzZC8zLjE0LXIwL2dwc2QtMy4xNC9ncHNtb24uYzo2MDU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYENUUkwnCitjbGFuZy0zLjk6IGVycm9yOiBsaW5rZXIgY29tbWFuZCBmYWlsZWQgd2l0aCBleGl0IGNvZGUgMSAodXNlIC12IHRvIHNlZSBpbnZvY2F0aW9uKQorc2NvbnM6ICoqKiBbZ3BzbW9uXSBFcnJvciAxCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKK0ZvcmV3YXJkIHBvcnQgdG8gZ3BzZCAzLjE2CitTaWduZWQtb2ZmLWJ5OiBNYXggS3J1bW1lbmFjaGVyIDxtYXgua3J1bW1lbmFjaGVyQHRvcmFkZXguY29tPgorLS0tCisgZ3BzbW9uLmMgfCAxICsKKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworZGlmZiAtLWdpdCBhL2dwc21vbi5jIGIvZ3BzbW9uLmMKK2luZGV4IDg5YzQzZWUyLi41Y2MwZGFiZCAxMDA2NDQKKy0tLSBhL2dwc21vbi5jCisrKysgYi9ncHNtb24uYworQEAgLTI0LDYgKzI0LDcgQEAKKyAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisgI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KKysjaW5jbHVkZSA8c3lzL3R0eWRlZmF1bHRzLmg+CisgI2luY2x1ZGUgPGZjbnRsLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorLS0gCisyLjEyLjAKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QtMy4xNy8wMDA0LVNDb25zdHJ1Y3QtZGlzYWJsZS1odG1sLWFuZC1tYW4tZG9jcy1idWlsZGluZy1iZWNhdXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE3LzAwMDQtU0NvbnN0cnVjdC1kaXNhYmxlLWh0bWwtYW5kLW1hbi1kb2NzLWJ1aWxkaW5nLWJlY2F1cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTNkMjA1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QtMy4xNy8wMDA0LVNDb25zdHJ1Y3QtZGlzYWJsZS1odG1sLWFuZC1tYW4tZG9jcy1idWlsZGluZy1iZWNhdXMucGF0Y2gKQEAgLTAsMCArMSw1MSBAQAorRnJvbSA2OTdlMmU5ZmY5NzQ4NzI2NmQ4MTdjZGQ0MWJhY2M4M2Y2ODFlM2Q3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgorRGF0ZTogU3VuLCAyOSBBcHIgMjAxMiAwMDowNTo1OSArMDIwMAorU3ViamVjdDogW1BBVENIIDQvNF0gU0NvbnN0cnVjdDogZGlzYWJsZSBodG1sIGFuZCBtYW4gZG9jcyBidWlsZGluZyBiZWNhdXNlCisgeG1sdG8tbmF0aXZlIGZyb20gT0UgaXMgYnJva2VuCisKK0l0IHdpbGwgdHJ5IHRvIGxvYWQgZHRkIGFuZCBmYWlsOgorfCB4bWx0byBtYW4gZ3BzY3RsLnhtbDsgbXYgYGJhc2VuYW1lIGdwc2N0bC4xYCBncHNjdGwuMQorfCB4bWx0bzogL3Zhci9saWIvamVua2lucy9qb2JzL3Noci1jb3JlLWJyYW5jaGVzL3dvcmtzcGFjZS9zaHItY29yZS90bXAtZWdsaWJjL3dvcmsvYXJtdjR0LW9lLWxpbnV4LWdudWVhYmkvZ3BzZC0zLjQtcjIvZ3BzZC0zLjQvZ3BzY3RsLnhtbCBkb2VzIG5vdCB2YWxpZGF0ZSAoc3RhdHVzIDMpCit8IHhtbHRvOiBGaXggZG9jdW1lbnQgc3ludGF4IG9yIHVzZSAtLXNraXAtdmFsaWRhdGlvbiBvcHRpb24KK3wgSS9PIGVycm9yIDogQXR0ZW1wdCB0byBsb2FkIG5ldHdvcmsgZW50aXR5IGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkCit8IC92YXIvbGliL2plbmtpbnMvam9icy9zaHItY29yZS1icmFuY2hlcy93b3Jrc3BhY2Uvc2hyLWNvcmUvdG1wLWVnbGliYy93b3JrL2FybXY0dC1vZS1saW51eC1nbnVlYWJpL2dwc2QtMy40LXIyL2dwc2QtMy40L2dwc2N0bC54bWw6ODogd2FybmluZzogZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5ICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCIKK3wgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIj4KK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCit8IEkvTyBlcnJvciA6IEF0dGVtcHQgdG8gbG9hZCBuZXR3b3JrIGVudGl0eSBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZAorfCB3YXJuaW5nOiBmYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBlbnRpdHkgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIgorfCB2YWxpZGl0eSBlcnJvciA6IENvdWxkIG5vdCBsb2FkIHRoZSBleHRlcm5hbCBzdWJzZXQgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIgorfCBEb2N1bWVudCAvdmFyL2xpYi9qZW5raW5zL2pvYnMvc2hyLWNvcmUtYnJhbmNoZXMvd29ya3NwYWNlL3Noci1jb3JlL3RtcC1lZ2xpYmMvd29yay9hcm12NHQtb2UtbGludXgtZ251ZWFiaS9ncHNkLTMuNC1yMi9ncHNkLTMuNC9ncHNjdGwueG1sIGRvZXMgbm90IHZhbGlkYXRlCit8IG12OiBjYW5ub3Qgc3RhdCBgZ3BzY3RsLjEnOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Cit8IHNjb25zOiAqKiogW2dwc2N0bC4xXSBFcnJvciAxCit8IHNjb25zOiBidWlsZGluZyB0ZXJtaW5hdGVkIGJlY2F1c2Ugb2YgZXJyb3JzLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2Rpc2FibGUgZmVhdHVyZV0KKworU2lnbmVkLW9mZi1ieTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgorU2lnbmVkLW9mZi1ieTogUGV0ZXIgQS4gQmlnb3QgPHBhYkBwYWJpZ290LmNvbT4KKy0tLQorIFNDb25zdHJ1Y3QgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvU0NvbnN0cnVjdCBiL1NDb25zdHJ1Y3QKK2luZGV4IDMzMThiYjQ4Li5hNWJiNzU2ZCAxMDA2NDQKKy0tLSBhL1NDb25zdHJ1Y3QKKysrKyBiL1NDb25zdHJ1Y3QKK0BAIC04ODksMTEgKzg4OSwxMSBAQCBlbHNlOgorIAorICAgICBtYW5idWlsZGVyID0gaHRtbGJ1aWxkZXIgPSBOb25lCisgICAgIGlmIGVudlsnbWFuYnVpbGQnXToKKy0gICAgICAgIGlmIGNvbmZpZy5DaGVja1hzbHRwcm9jKCk6CisrICAgICAgICBpZiBGYWxzZSBhbmQgY29uZmlnLkNoZWNrWHNsdHByb2MoKToKKyAgICAgICAgICAgICBidWlsZCA9ICJ4c2x0cHJvYyAtLW5vbmV0ICVzICRTT1VSQ0UgPiRUQVJHRVQiCisgICAgICAgICAgICAgaHRtbGJ1aWxkZXIgPSBidWlsZCAlIGRvY2Jvb2tfaHRtbF91cmkKKyAgICAgICAgICAgICBtYW5idWlsZGVyID0gYnVpbGQgJSBkb2Nib29rX21hbl91cmkKKy0gICAgICAgIGVsaWYgV2hlcmVJcygieG1sdG8iKToKKysgICAgICAgIGVsaWYgRmFsc2UgYW5kIFdoZXJlSXMoInhtbHRvIik6CisgICAgICAgICAgICAgeG1sdG8gPSAieG1sdG8gJXMgJFNPVVJDRSB8fCBtdiBgYmFzZW5hbWUgJFRBUkdFVGAgIiBcCisgICAgICAgICAgICAgICAgICAgICAiYGRpcm5hbWUgJFRBUkdFVGAiCisgICAgICAgICAgICAgaHRtbGJ1aWxkZXIgPSB4bWx0byAlICJodG1sLW5vY2h1bmtzIgorLS0gCisxLjguNS41CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLzYwLWdwc2QucnVsZXMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC82MC1ncHNkLnJ1bGVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTE0M2I4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLzYwLWdwc2QucnVsZXMKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0jIHVkZXYgcnVsZXMgZm9yIGdwc2QKLSMgJElkJAotIwotIyBHUFNlcyBkb24ndCBoYXZlIHRoZWlyIG93biBVU0IgZGV2aWNlIGNsYXNzLiAgVGhleSdyZSBzZXJpYWwtb3Zlci1VU0IKLSMgZGV2aWNlcywgc28gd2hhdCB5b3Ugc2VlIGlzIGFjdHVhbGx5IHRoZSBJRCBvZiB0aGUgc2VyaWFsLW92ZXItVVNCIGNoaXAuCi0jIEZvcnR1bmF0ZWx5LCBqdXN0IHR3byBvZiB0aGVzZSBhY2NvdW50IGZvciBvdmVyIDgwJSBvZiBjb25zdW1lci1ncmFkZQotIyBHUFMgc2Vuc29ycy4gIFRoZSBncHNkLmhvdHBsdWcud3JhcHBlciBzY3JpcHQgd2lsbCB0ZWxsIGEgcnVubmluZyBncHNkCi0jIHRoYXQgaXQgc2hvdWxkIGxvb2sgYXQgdGhlIGRldmljZSB0aGF0IGp1c3Qgd2VudCBhY3RpdmUsIGJlY2F1c2UgaXQKLSMgbWlnaHQgYmUgYSBHUFMuCi0jCi0jIFRoZSBmb2xsb3dpbmcgc2V0dXAgd29ya3Mgb24gRGViaWFuIC0gc29tZXRoaW5nIHNpbWlsYXIgd2lsbCBhcHBseSBvbiAKLSMgb3RoZXIgZGlzdHJpYnV0aW9uczoKLSMgCi0jICAgL2V0Yy91ZGV2L2dwc2QucnVsZXMKLSMgICAvZXRjL3VkZXYvcnVsZXMuZC8wMjVfZ3BzZC5ydWxlcyAtPiAuLi9ncHNkLnJ1bGVzCi0jICAgL2xpYi91ZGV2L2dwc2QuaG90cGx1Zy53cmFwcGVyCi0jICAgL2xpYi91ZGV2L2dwc2QuaG90cGx1ZwotIyAKLSMgU2V0dGluZyB0aGUgbGluayBpbiAvZXRjL3VkZXYvcnVsZXMuZCBhY3RpdmF0ZXMgdGhlIHJ1bGUgYW5kIGRldGVybWluZXMKLSMgd2hlbiB0byBydW4gaXQgb24gYm9vdCAoc2ltaWxhciB0byBpbml0LmQgcHJvY2Vzc2luZykuCi0KLVNVQlNZU1RFTSE9InR0eSIsIEdPVE89Imdwc2RfcnVsZXNfZW5kIgotCi0jIFByb2xpZmljIFRlY2hub2xvZ3ksIEluYy4gUEwyMzAzIFNlcmlhbCBQb3J0Ci1BVFRSe2lkVmVuZG9yfT09IjA2N2IiLCBBVFRSe2lkUHJvZHVjdH09PSIyMzAzIiwgU1lNTElOSys9ImdwcyVuIiwgUlVOKz0iL2xpYi91ZGV2L2dwc2QuaG90cGx1Zy53cmFwcGVyIgotIyBBVEVOIEludGVybmF0aW9uYWwgQ28uLCBMdGQgVUMtMjMyQSBTZXJpYWwgUG9ydCBbcGwyMzAzXQotQVRUUntpZFZlbmRvcn09PSIwNTU3IiwgQVRUUntpZFByb2R1Y3R9PT0iMjAwOCIsIFNZTUxJTksrPSJncHMlbiIsIFJVTis9Ii9saWIvdWRldi9ncHNkLmhvdHBsdWcud3JhcHBlciIKLSMgRlRESSA4VTIzMkFNCi1BVFRSe2lkVmVuZG9yfT09IjA0MDMiLCBBVFRSe2lkUHJvZHVjdH09PSI2MDAxIiwgU1lNTElOSys9ImdwcyVuIiwgUlVOKz0iL2xpYi91ZGV2L2dwc2QuaG90cGx1Zy53cmFwcGVyIgotIyBDeXByZXNzIE04L0NZN0M2NDAxMyAoRGVMb3JtZSB1c2VzIHRoZXNlKQotQVRUUntpZFZlbmRvcn09PSIxMTYzIiwgQVRUUntpZFByb2R1Y3R9PT0iMDEwMCIsIFNZTUxJTksrPSJncHMlbiIsIFJVTis9Ii9saWIvdWRldi9ncHNkLmhvdHBsdWcud3JhcHBlciIKLSMgUFMtMzYwIE9FTSAoTWljcm9zb2Z0IEdQUyBzb2xkIHdpdGggU3RyZWV0IGFuZCBUcmlwcyAyMDA1KQotQVRUUntpZFZlbmRvcn09PSIwNjdiIiwgQVRUUntpZFByb2R1Y3R9PT0iYWFhMCIsIFNZTUxJTksrPSJncHMlbiIsIFJVTis9Ii9saWIvdWRldi9ncHNkLmhvdHBsdWcud3JhcHBlciIKLSMgR2FybWluIEludGVybmF0aW9uYWwgR1BTbWFwLCB2YXJpb3VzIG1vZGVscyAodGVzdGVkIHdpdGggR2FybWluIEdQUyAxOCBVU0IpCi1BVFRSe2lkVmVuZG9yfT09IjA5MWUiLCBBVFRSe2lkUHJvZHVjdH09PSIwMDAzIiwgU1lNTElOSys9ImdwcyVuIiwgUlVOKz0iL2xpYi91ZGV2L2dwc2QuaG90cGx1Zy53cmFwcGVyIgotIyBDeWduYWwgSW50ZWdyYXRlZCBQcm9kdWN0cywgSW5jLiBDUDIxMHggQ29tcG9zaXRlIERldmljZSAoVXNlZCBieSBIb2x1eCBtMjQxKQotQVRUUntpZFZlbmRvcn09PSIxMGM0IiwgQVRUUntpZFByb2R1Y3R9PT0iZWE2MCIsIFNZTUxJTksrPSJncHMlbiIsIFJVTis9Ii9saWIvdWRldi9ncHNkLmhvdHBsdWcud3JhcHBlciIKLSMgdS1ibG94IEFHLCB1LWJsb3ggNSAodGVzdGVkIHdpdGggTmF2aWxvY2sgTkwtNDAyVSkKLUFUVFJ7aWRWZW5kb3J9PT0iMTU0NiIsIEFUVFJ7aWRQcm9kdWN0fT09IjAxYTUiLCBTWU1MSU5LPSJncHMlbiIsIFJVTis9Ii9saWIvdWRldi9ncHNkLmhvdHBsdWcud3JhcHBlciIKLSMgRlRESSBGVDIzMgotQVRUUntpZFZlbmRvcn09PSIwNDAzIiwgQVRUUntpZFByb2R1Y3R9PT0iNjAwMSIsIFNZTUxJTks9ImdwcyVuIiwgUlVOKz0iL2xpYi91ZGV2L2dwc2QuaG90cGx1Zy53cmFwcGVyIgotIyB1LWJsb3ggNAotQVRUUntpZFZlbmRvcn09PSIxNTQ2IiwgQVRUUntpZFByb2R1Y3R9PT0iMDFhNCIsIFNZTUxJTks9ImdwcyVuIiwgUlVOKz0iL2xpYi91ZGV2L2dwc2QuaG90cGx1Zy53cmFwcGVyIgotCi1BQ1RJT049PSJyZW1vdmUiLCBSVU4rPSIvbGliL3VkZXYvZ3BzZC5ob3RwbHVnLndyYXBwZXIiCi0KLUxBQkVMPSJncHNkX3J1bGVzX2VuZCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkL2dwc2QgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC9ncHNkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBiYTczZGFmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkL2dwc2QKKysrIC9kZXYvbnVsbApAQCAtMSwxMzYgKzAsMCBAQAotIyEvYmluL3NoCi0jIyMgQkVHSU4gSU5JVCBJTkZPCi0jIFByb3ZpZGVzOiAgICAgICAgICBncHNkCi0jIFJlcXVpcmVkLVN0YXJ0OiAgICAkcmVtb3RlX2ZzICRuZXR3b3JrCi0jIFNob3VsZC1TdGFydDogICAgICBibHVldG9vdGggZGJ1cyB1ZGV2Ci0jIFJlcXVpcmVkLVN0b3A6ICAgICAkcmVtb3RlX2ZzICRuZXR3b3JrCi0jIERlZmF1bHQtU3RhcnQ6ICAgICAyIDMgNCA1Ci0jIERlZmF1bHQtU3RvcDogICAgICAwIDEgNgotIyBTaG9ydC1EZXNjcmlwdGlvbjogR1BTIChHbG9iYWwgUG9zaXRpb25pbmcgU3lzdGVtKSBkYWVtb24gc3RhcnQvc3RvcCBzY3JpcHQKLSMgRGVzY3JpcHRpb246ICAgICAgIFN0YXJ0L1N0b3Agc2NyaXB0IGZvciB0aGUgZ3BzZCBzZXJ2aWNlIGRhZW1vbiwKLSMgICAgICAgICAgICAgICAgICAgIHdoaWNoIGlzIGFibGUgdG8gbW9uaXRvciBvbmUgb3IgbW9yZSBHUFMgZGV2aWNlcwotIyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGVkIHRvIGEgaG9zdCBjb21wdXRlciwgbWFraW5nIGFsbCBkYXRhIG9uCi0jICAgICAgICAgICAgICAgICAgICB0aGUgbG9jYXRpb24gYW5kIG1vdmVtZW50cyBvZiB0aGUgc2Vuc29ycyBhdmFpbGFibGUKLSMgICAgICAgICAgICAgICAgICAgIHRvIGJlIHF1ZXJpZWQgb24gVENQIHBvcnQgMjk0Ny4KLSMjIyBFTkQgSU5JVCBJTkZPCi0KLSMgQXV0aG9yOiBCZXJuZCBaZWltZXR6IDxiemVkQGRlYmlhbi5vcmc+Ci0jCi0jIFBsZWFzZSByZW1vdmUgdGhlICJBdXRob3IiIGxpbmVzIGFib3ZlIGFuZCByZXBsYWNlIHRoZW0KLSMgd2l0aCB5b3VyIG93biBuYW1lIGlmIHlvdSBjb3B5IGFuZCBtb2RpZnkgdGhpcyBzY3JpcHQuCi0KLSMgRG8gTk9UICJzZXQgLWUiCi0KLSMgUEFUSCBzaG91bGQgb25seSBpbmNsdWRlIC91c3IvKiBpZiBpdCBydW5zIGFmdGVyIHRoZSBtb3VudG5mcy5zaCBzY3JpcHQKLVBBVEg9L3NiaW46L3Vzci9zYmluOi9iaW46L3Vzci9iaW4KLURFU0M9IkdQUyAoR2xvYmFsIFBvc2l0aW9uaW5nIFN5c3RlbSkgZGFlbW9uIgotTkFNRT1ncHNkCi1EQUVNT049L3Vzci9zYmluLyROQU1FCi1QSURGSUxFPS92YXIvcnVuLyROQU1FLnBpZAotU0NSSVBUTkFNRT0vZXRjL2luaXQuZC8kTkFNRQotCi0jIEV4aXQgaWYgdGhlIHBhY2thZ2UgaXMgbm90IGluc3RhbGxlZAotWyAteCAiJERBRU1PTiIgXSB8fCBleGl0IDAKLQotIyBSZWFkIGNvbmZpZ3VyYXRpb24sIGlmIHByZXNlbnQKLVsgLXIgL2V0Yy9kZWZhdWx0LyROQU1FIF0gJiYgLiAvZXRjL2RlZmF1bHQvJE5BTUUKLQotaWYgWyAteiAiJEdQU0RfU09DS0VUIiBdICYmIFsgLXogIiRERVZJQ0VTIiBdOyB0aGVuCi0JR1BTRF9TT0NLRVQ9L3Zhci9ydW4vZ3BzZC5zb2NrCi1maQotCi1pZiBbIC1uICIkR1BTRF9TT0NLRVQiIF07IHRoZW4KLSAgICAgICAgR1BTRF9PUFRJT05TPSIkR1BTRF9PUFRJT05TIC1GICRHUFNEX1NPQ0tFVCIKLWZpCi0KLSMKLSMgRnVuY3Rpb24gdGhhdCBzdGFydHMgdGhlIGRhZW1vbi9zZXJ2aWNlCi0jCi1kb19zdGFydCgpCi17Ci0JIyBSZXR1cm4KLQkjICAgMCBpZiBkYWVtb24gaGFzIGJlZW4gc3RhcnRlZAotCSMgICAxIGlmIGRhZW1vbiB3YXMgYWxyZWFkeSBydW5uaW5nCi0JIyAgIDIgaWYgZGFlbW9uIGNvdWxkIG5vdCBiZSBzdGFydGVkCi0Jc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAtLXF1aWV0IC0tcGlkZmlsZSAkUElERklMRSAtLWV4ZWMgJERBRU1PTiAtLXRlc3QgXAotICAgICAgICAtLSAkR1BTRF9PUFRJT05TIC1QICRQSURGSUxFICRHUFNfREVWSUNFUyA+IC9kZXYvbnVsbCBcCi0JCXx8IHJldHVybiAxCi0Jc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAtLXF1aWV0IC0tcGlkZmlsZSAkUElERklMRSAtLWV4ZWMgJERBRU1PTiAtLSBcCi0JCSRHUFNEX09QVElPTlMgLVAgJFBJREZJTEUgJEdQU19ERVZJQ0VTIFwKLQkJfHwgcmV0dXJuIDIKLX0KLQotIwotIyBGdW5jdGlvbiB0aGF0IHN0b3BzIHRoZSBkYWVtb24vc2VydmljZQotIwotZG9fc3RvcCgpCi17Ci0JIyBSZXR1cm4KLQkjICAgMCBpZiBkYWVtb24gaGFzIGJlZW4gc3RvcHBlZAotCSMgICAxIGlmIGRhZW1vbiB3YXMgYWxyZWFkeSBzdG9wcGVkCi0JIyAgIDIgaWYgZGFlbW9uIGNvdWxkIG5vdCBiZSBzdG9wcGVkCi0JIyAgIG90aGVyIGlmIGEgZmFpbHVyZSBvY2N1cnJlZAotCXN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAtLXF1aWV0IC0tcmV0cnk9VEVSTS8zMC9LSUxMLzUgLS1waWRmaWxlICRQSURGSUxFIC0tbmFtZSAkTkFNRQotCVJFVFZBTD0iJD8iCi0JWyAiJFJFVFZBTCIgPSAyIF0gJiYgcmV0dXJuIDIKLQkjIE1hbnkgZGFlbW9ucyBkb24ndCBkZWxldGUgdGhlaXIgcGlkZmlsZXMgd2hlbiB0aGV5IGV4aXQuCi0Jcm0gLWYgJFBJREZJTEUKLQlyZXR1cm4gIiRSRVRWQUwiCi19Ci0KLSMKLSMgRnVuY3Rpb24gdGhhdCBzZW5kcyBhIFNJR0hVUCB0byB0aGUgZGFlbW9uL3NlcnZpY2UKLSMKLWRvX3JlbG9hZCgpIHsKLQkjCi0JIyBJZiB0aGUgZGFlbW9uIGNhbiByZWxvYWQgaXRzIGNvbmZpZ3VyYXRpb24gd2l0aG91dAotCSMgcmVzdGFydGluZyAoZm9yIGV4YW1wbGUsIHdoZW4gaXQgaXMgc2VudCBhIFNJR0hVUCksCi0JIyB0aGVuIGltcGxlbWVudCB0aGF0IGhlcmUuCi0JIwotCXN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAtLXNpZ25hbCAxIC0tcXVpZXQgLS1waWRmaWxlICRQSURGSUxFIC0tbmFtZSAkTkFNRQotCXJldHVybiAwCi19Ci0KLWNhc2UgIiQxIiBpbgotICBzdGFydCkKLQkJZWNobyAiU3RhcnRpbmcgJERFU0MiICIkTkFNRSIKLQkJZG9fc3RhcnQKLQkJZXhpdCAkPwotCTs7Ci0gIHN0b3ApCi0JZWNobyAiU3RvcHBpbmcgJERFU0MiICIkTkFNRSIKLQlkb19zdG9wCi0JZXhpdCAkPwotCTs7Ci0gIHN0YXR1cykKLSAgICAgICA7OwotICByZWxvYWR8Zm9yY2UtcmVsb2FkKQotCWVjaG8gIlJlbG9hZGluZyAkREVTQyIgIiROQU1FIgotCWRvX3JlbG9hZAotCWV4aXQgJD8KLQk7OwotICByZXN0YXJ0KQotCSMKLQkjIElmIHRoZSAicmVsb2FkIiBvcHRpb24gaXMgaW1wbGVtZW50ZWQgdGhlbiByZW1vdmUgdGhlCi0JIyAnZm9yY2UtcmVsb2FkJyBhbGlhcwotCSMKLQllY2hvICJSZXN0YXJ0aW5nICRERVNDIiAiJE5BTUUiCi0JZG9fc3RvcAotCWNhc2UgIiQ/IiBpbgotCSAgMHwxKQotCQlkb19zdGFydAotCQlleGl0ICQ/Ci0JCTs7Ci0JICAqKQotCSAJIyBGYWlsZWQgdG8gc3RvcAotCQlleGl0IDEKLQkJOzsKLQllc2FjCi0JOzsKLSAgKikKLQllY2hvICJVc2FnZTogJFNDUklQVE5BTUUge3N0YXJ0fHN0b3B8c3RhdHVzfHJlc3RhcnR8Zm9yY2UtcmVsb2FkfSIgPiYyCi0JZXhpdCAzCi0JOzsKLWVzYWMKLQotOgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QvZ3BzZC1kZWZhdWx0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QvZ3BzZC1kZWZhdWx0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2VmZjAzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkL2dwc2QtZGVmYXVsdAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotIyBJZiB5b3UgbXVzdCBzcGVjaWZ5IGEgbm9uLU5NRUEgZHJpdmVyLCB1bmNvbW1lbnQgYW5kIG1vZGlmeSB0aGUgbmV4dCBsaW5lCi1HUFNEX1NPQ0tFVD0iL3Zhci9ydW4vZ3BzZC5zb2NrIgotR1BTRF9PUFRJT05TPSIiIAotR1BTX0RFVklDRVM9IiIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QvZ3BzZC5zZXJ2aWNlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QvZ3BzZC5zZXJ2aWNlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTMxYTU4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkL2dwc2Quc2VydmljZQorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVtVbml0XQotRGVzY3JpcHRpb249R1BTIChHbG9iYWwgUG9zaXRpb25pbmcgU3lzdGVtKSBEYWVtb24KLVJlcXVpcmVzPWdwc2Quc29ja2V0Ci0KLVtTZXJ2aWNlXQotRW52aXJvbm1lbnRGaWxlPS9ldGMvZGVmYXVsdC9ncHNkCi1FeGVjU3RhcnQ9L3Vzci9zYmluL2dwc2QgLU4gJEdQU19ERVZJQ0VTCi0KLVtJbnN0YWxsXQotQWxzbz1ncHNkLnNvY2tldApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2RfMy4xNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkXzMuMTYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2ZDc0ODYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2RfMy4xNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi1TVU1NQVJZID0gIkEgVENQL0lQIERhZW1vbiBzaW1wbGlmeWluZyB0aGUgY29tbXVuaWNhdGlvbiB3aXRoIEdQUyBkZXZpY2VzIgotU0VDVElPTiA9ICJjb25zb2xlL25ldHdvcmsiCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQyMTdhMjNmNDA4ZTkxYzk0MzU5NDQ3NzM1YmMxODAwIgotREVQRU5EUyA9ICJkYnVzIGRidXMtZ2xpYiBuY3Vyc2VzIHB5dGhvbiBsaWJ1c2IxIGNocnBhdGgtcmVwbGFjZW1lbnQtbmF0aXZlIHBwcy10b29scyIKLVBST1ZJREVTID0gInZpcnR1YWwvZ3BzZCIKLQotRVhUUkFOQVRJVkVQQVRIICs9ICJjaHJwYXRoLW5hdGl2ZSIKLQotU1JDX1VSSSA9ICIke1NBVkFOTkFIX0dOVV9NSVJST1J9LyR7QlBOfS8ke0JQfS50YXIuZ3ogXAotICAgIGZpbGU6Ly8wMDAxLVNDb25zdHJ1Y3QtcHJlZml4LWluY2x1ZGVweS13aXRoLXN5c3Jvb3QtYW5kLWRyb3Atc3kucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDA0LVNDb25zdHJ1Y3QtZGlzYWJsZS1odG1sLWFuZC1tYW4tZG9jcy1idWlsZGluZy1iZWNhdXMucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAxLWluY2x1ZGUtc3lzLXR0eWRlZmF1bHRzLmgucGF0Y2ggXAotICAgIGZpbGU6Ly9ncHNkLWRlZmF1bHQgXAotICAgIGZpbGU6Ly9ncHNkIFwKLSAgICBmaWxlOi8vNjAtZ3BzZC5ydWxlcyBcCi0gICAgZmlsZTovL2dwc2Quc2VydmljZSBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiNjg2OTFiNWRlNGM5NGY4MmVjNDA2MmIwNDJiNWViNjMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDM1NzlhZjEzYTRkM2ZlMGM1Yjc5ZmE0NGI1Zjc1YzlmM2NhYzY3NDkzNTdmMWQ5OWNlNWQzOGMwOWJjMjAyOSIKLQotaW5oZXJpdCBzY29ucyB1cGRhdGUtcmMuZCBweXRob24tZGlyIHB5dGhvbm5hdGl2ZSBzeXN0ZW1kIGJsdWV0b290aCB1cGRhdGUtYWx0ZXJuYXRpdmVzCi0KLUlOSVRTQ1JJUFRfUEFDS0FHRVMgPSAiZ3BzZC1jb25mIgotSU5JVFNDUklQVF9OQU1FID0gImdwc2QiCi1JTklUU0NSSVBUX1BBUkFNUyA9ICJkZWZhdWx0cyAzNSIKLQotU1lTVEVNRF9PRVNDT05TID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJyxkKX0iCi0KLWV4cG9ydCBTVEFHSU5HX0lOQ0RJUgotZXhwb3J0IFNUQUdJTkdfTElCRElSCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ2JsdWV0b290aCcsICdibHVleicsICcnLCBkKX0iCi1QQUNLQUdFQ09ORklHW2JsdWV6XSA9ICJibHVlej0ndHJ1ZScsYmx1ZXo9J2ZhbHNlJywke0JMVUVafSIKLVBBQ0tBR0VDT05GSUdbcXRdID0gInF0PSd5ZXMnLHF0PSdubycscXQ0LXgxMS1mcmVlIgotRVhUUkFfT0VTQ09OUyA9ICIgXAotICAgIHN5c3Jvb3Q9JHtTVEFHSU5HX0RJUl9UQVJHRVR9IFwKLSAgICBsaWJRZ3BzbW09J2ZhbHNlJyBcCi0gICAgZGVidWc9J3RydWUnIFwKLSAgICBzdHJpcD0nZmFsc2UnIFwKLSAgICBjaHJwYXRoPSd5ZXMnIFwKLSAgICBzeXN0ZW1kPScke1NZU1RFTURfT0VTQ09OU30nIFwKLSAgICBsaWJkaXI9JyR7bGliZGlyfScgXAotICAgICR7UEFDS0FHRUNPTkZJR19DT05GQVJHU30gXAotIgotIyB0aGlzIGNhbm5vdCBiZSB1c2VkLCBiZWNhdXNlIHRoZW4gY2hycGF0aCBpcyBub3QgZm91bmQgYW5kIG9ubHkgc3RhdGljIGxpYiBpcyBidWlsdAotIyB0YXJnZXQ9JHtIT1NUX1NZU30KLQotZG9fY29tcGlsZV9wcmVwZW5kKCkgewotICAgIGV4cG9ydCBQS0dfQ09ORklHX1BBVEg9IiR7UEtHX0NPTkZJR19QQVRIfSIKLSAgICBleHBvcnQgUEtHX0NPTkZJRz0iUEtHX0NPTkZJR19TWVNST09UX0RJUj1cIiR7UEtHX0NPTkZJR19TWVNST09UX0RJUn1cIiBwa2ctY29uZmlnIgotICAgIGV4cG9ydCBTVEFHSU5HX1BSRUZJWD0iJHtTVEFHSU5HX0RJUl9IT1NUfS8ke3ByZWZpeH0iCi0gICAgZXhwb3J0IExJTktGTEFHUz0iJHtMREZMQUdTfSIKLX0KLQotZG9faW5zdGFsbCgpIHsKLSAgICBleHBvcnQgUEtHX0NPTkZJR19QQVRIPSIke1BLR19DT05GSUdfUEFUSH0iCi0gICAgZXhwb3J0IFBLR19DT05GSUc9IlBLR19DT05GSUdfU1lTUk9PVF9ESVI9XCIke1BLR19DT05GSUdfU1lTUk9PVF9ESVJ9XCIgcGtnLWNvbmZpZyIKLSAgICBleHBvcnQgU1RBR0lOR19QUkVGSVg9IiR7U1RBR0lOR19ESVJfSE9TVH0vJHtwcmVmaXh9IgotICAgIGV4cG9ydCBMSU5LRkxBR1M9IiR7TERGTEFHU30iCi0KLSAgICBleHBvcnQgREVTVERJUj0iJHtEfSIKLSAgICAjIHByZWZpeCBpcyB1c2VkIGZvciBSUEFUSCBhbmQgREVTVERJUi9wcmVmaXggZm9yIGluc3RhbGF0aW9uCi0gICAgJHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L3Njb25zIHByZWZpeD0ke3ByZWZpeH0gaW5zdGFsbCAke0VYVFJBX09FU0NPTlN9fHwgXAotICAgICAgYmJmYXRhbCAic2NvbnMgaW5zdGFsbCBleGVjdXRpb24gZmFpbGVkLiIKLX0KLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kCi0gICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vZ3BzZCAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kLwotICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQKLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9ncHNkLWRlZmF1bHQgJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvZ3BzZC5kZWZhdWx0Ci0KLSAgICAjc3VwcG9ydCBmb3IgdWRldgotICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L3VkZXYvcnVsZXMuZAotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9LzYwLWdwc2QucnVsZXMgJHtEfS8ke3N5c2NvbmZkaXJ9L3VkZXYvcnVsZXMuZAotICAgIGluc3RhbGwgLWQgJHtEfSR7YmFzZV9saWJkaXJ9L3VkZXYvCi0gICAgaW5zdGFsbCAtbSAwNzU1ICR7U30vZ3BzZC5ob3RwbHVnICR7RH0ke2Jhc2VfbGliZGlyfS91ZGV2LwotCi0gICAgI3N1cHBvcnQgZm9yIHB5dGhvbgotICAgIGluc3RhbGwgLWQgJHtEfS8ke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9ncHMKLSAgICBpbnN0YWxsIC1tIDc1NSAke1N9L2dwcy8qLnB5ICR7RH0vJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vZ3BzCi0KLSAgICAjc3VwcG9ydCBmb3Igc3lzdGVtZAotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vJHtCUE59LnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vJHtCUE59LnNlcnZpY2UKLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9zeXN0ZW1kLyR7QlBOfS5zb2NrZXQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vJHtCUE59LnNvY2tldAotfQotCi1QQUNLQUdFUyA9KyAibGliZ3BzIGxpYmdwc2QgcHl0aG9uLXB5Z3BzLWRiZyBweXRob24tcHlncHMgZ3BzZC11ZGV2IGdwc2QtY29uZiBncHNkLWdwc2N0bCBncHMtdXRpbHMiCi0KLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L3BrZ2NvbmZkaXIvbGliZ3BzZC5wYyAke2xpYmRpcn0vcGtnY29uZmRpci9saWJncHMucGMgXAotICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGliUWdwc21tLnBybCIKLQotRklMRVNfcHl0aG9uLXB5Z3BzLWRiZyArPSAiICR7bGliZGlyfS9weXRob24qL3NpdGUtcGFja2FnZXMvZ3BzLy5kZWJ1ZyIKLQotUkRFUEVORFNfJHtQTn0gPSAiZ3BzZC1ncHNjdGwiCi1SUkVDT01NRU5EU18ke1BOfSA9ICJncHNkLWNvbmYgZ3BzZC11ZGV2IGdwc2QtbWFjaGluZS1jb25mIgotCi1TVU1NQVJZX2dwc2QtdWRldiA9ICJ1ZGV2IHJlbGV2YW50IGZpbGVzIHRvIHVzZSBncHNkIGhvdHBsdWdnaW5nIgotRklMRVNfZ3BzZC11ZGV2ID0gIiR7YmFzZV9saWJkaXJ9L3VkZXYgJHtzeXNjb25mZGlyfS91ZGV2LyoiCi1SREVQRU5EU19ncHNkLXVkZXYgKz0gInVkZXYgZ3BzZC1jb25mIgotCi1TVU1NQVJZX2xpYmdwc2QgPSAiQyBzZXJ2aWNlIGxpYnJhcnkgdXNlZCBmb3IgY29tbXVuaWNhdGluZyB3aXRoIGdwc2QiCi1GSUxFU19saWJncHNkID0gIiR7bGliZGlyfS9saWJncHNkLnNvLioiCi0KLVNVTU1BUllfbGliZ3BzID0gIkMgc2VydmljZSBsaWJyYXJ5IHVzZWQgZm9yIGNvbW11bmljYXRpbmcgd2l0aCBncHNkIgotRklMRVNfbGliZ3BzID0gIiR7bGliZGlyfS9saWJncHMuc28uKiIKLQotU1VNTUFSWV9ncHNkLWNvbmYgPSAiZ3BzZCBjb25maWd1cmF0aW9uIGZpbGVzIGFuZCBpbml0IHNjcmlwdHMiCi1GSUxFU19ncHNkLWNvbmYgPSAiJHtzeXNjb25mZGlyfSIKLUNPTkZGSUxFU19ncHNkLWNvbmYgPSAiJHtzeXNjb25mZGlyfS9kZWZhdWx0L2dwc2QuZGVmYXVsdCIKLQotU1VNTUFSWV9ncHNkLWdwc2N0bCA9ICJUb29sIGZvciB0d2Vha2luZyBHUFMgbW9kZXMiCi1GSUxFU19ncHNkLWdwc2N0bCA9ICIke2JpbmRpcn0vZ3BzY3RsIgotCi1TVU1NQVJZX2dwcy11dGlscyA9ICJVdGlscyB1c2VkIGZvciBzaW11bGF0aW5nLCBtb25pdG9yaW5nLC4uLiBhIEdQUyIKLUZJTEVTX2dwcy11dGlscyA9ICIke2JpbmRpcn0vKiIKLVJERVBFTkRTX2dwcy11dGlscyA9ICJweXRob24tcHlncHMiCi0KLVNVTU1BUllfcHl0aG9uLXB5Z3BzID0gIlB5dGhvbiBiaW5kaW5ncyB0byBncHNkIgotRklMRVNfcHl0aG9uLXB5Z3BzID0gIiR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9LyoiCi1SREVQRU5EU19weXRob24tcHlncHMgPSAiIFwKLSAgICBweXRob24tY29yZSBcCi0gICAgcHl0aG9uLWlvIFwKLSAgICBweXRob24tdGhyZWFkaW5nIFwKLSAgICBweXRob24tdGVybWluYWwgXAotICAgIHB5dGhvbi1jdXJzZXMgXAotICAgIGdwc2QgXAotICAgIHB5dGhvbi1qc29uIgotCi1SUFJPVklERVNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCi1SUkVQTEFDRVNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCi1SQ09ORkxJQ1RTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gIiR7UE59LnNvY2tldCIKLQotCi1BTFRFUk5BVElWRV8ke1BOfSA9ICJncHNkLWRlZmF1bHRzIgotQUxURVJOQVRJVkVfTElOS19OQU1FW2dwc2QtZGVmYXVsdHNdID0gIiR7c3lzY29uZmRpcn0vZGVmYXVsdC9ncHNkIgotQUxURVJOQVRJVkVfVEFSR0VUW2dwc2QtZGVmYXVsdHNdID0gIiR7c3lzY29uZmRpcn0vZGVmYXVsdC9ncHNkLmRlZmF1bHQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZF8zLjE3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2RfMy4xNy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTI2ZGIyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2RfMy4xNy5iYgpAQCAtMCwwICsxLDEzNyBAQAorU1VNTUFSWSA9ICJBIFRDUC9JUCBEYWVtb24gc2ltcGxpZnlpbmcgdGhlIGNvbW11bmljYXRpb24gd2l0aCBHUFMgZGV2aWNlcyIKK1NFQ1RJT04gPSAiY29uc29sZS9uZXR3b3JrIgorTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kMjE3YTIzZjQwOGU5MWM5NDM1OTQ0NzczNWJjMTgwMCIKK0RFUEVORFMgPSAiZGJ1cyBkYnVzLWdsaWIgbmN1cnNlcyBweXRob24gbGlidXNiMSBjaHJwYXRoLXJlcGxhY2VtZW50LW5hdGl2ZSBwcHMtdG9vbHMiCitQUk9WSURFUyA9ICJ2aXJ0dWFsL2dwc2QiCisKK0VYVFJBTkFUSVZFUEFUSCArPSAiY2hycGF0aC1uYXRpdmUiCisKK1NSQ19VUkkgPSAiJHtTQVZBTk5BSF9HTlVfTUlSUk9SfS8ke0JQTn0vJHtCUH0udGFyLmd6IFwKKyAgICBmaWxlOi8vMDAwMS1TQ29uc3RydWN0LXByZWZpeC1pbmNsdWRlcHktd2l0aC1zeXNyb290LWFuZC1kcm9wLXN5LnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNC1TQ29uc3RydWN0LWRpc2FibGUtaHRtbC1hbmQtbWFuLWRvY3MtYnVpbGRpbmctYmVjYXVzLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMS1pbmNsdWRlLXN5cy10dHlkZWZhdWx0cy5oLnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJlMGNmYWRjZjRhNjVkZmJkZDJhZmIxMWM1OGY0ZTRhMSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2OGUwZGJlY2ZiNTgzMTk5N2Y4YjNkNmJhNDhhZWQ4MTJlYjQ2NWQ4YzAwODk0MjBhYjY4ZjljZTRkODVlNzdhIgorCitpbmhlcml0IHNjb25zIHVwZGF0ZS1yYy5kIHB5dGhvbi1kaXIgcHl0aG9ubmF0aXZlIHN5c3RlbWQgYmx1ZXRvb3RoIHVwZGF0ZS1hbHRlcm5hdGl2ZXMKKworSU5JVFNDUklQVF9QQUNLQUdFUyA9ICJncHNkLWNvbmYiCitJTklUU0NSSVBUX05BTUUgPSAiZ3BzZCIKK0lOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIDM1IgorCitTWVNURU1EX09FU0NPTlMgPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3RydWUnLCAnZmFsc2UnLGQpfSIKKworZXhwb3J0IFNUQUdJTkdfSU5DRElSCitleHBvcnQgU1RBR0lOR19MSUJESVIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnYmx1ZXRvb3RoJywgJ2JsdWV6JywgJycsIGQpfSIKK1BBQ0tBR0VDT05GSUdbYmx1ZXpdID0gImJsdWV6PSd0cnVlJyxibHVlej0nZmFsc2UnLCR7QkxVRVp9IgorUEFDS0FHRUNPTkZJR1txdF0gPSAicXQ9J3llcycscXQ9J25vJyxxdDQteDExLWZyZWUiCitFWFRSQV9PRVNDT05TID0gIiBcCisgICAgc3lzcm9vdD0ke1NUQUdJTkdfRElSX1RBUkdFVH0gXAorICAgIGxpYlFncHNtbT0nZmFsc2UnIFwKKyAgICBkZWJ1Zz0ndHJ1ZScgXAorICAgIHN0cmlwPSdmYWxzZScgXAorICAgIGNocnBhdGg9J3llcycgXAorICAgIHN5c3RlbWQ9JyR7U1lTVEVNRF9PRVNDT05TfScgXAorICAgIGxpYmRpcj0nJHtsaWJkaXJ9JyBcCisgICAgJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfSBcCisiCisjIHRoaXMgY2Fubm90IGJlIHVzZWQsIGJlY2F1c2UgdGhlbiBjaHJwYXRoIGlzIG5vdCBmb3VuZCBhbmQgb25seSBzdGF0aWMgbGliIGlzIGJ1aWx0CisjIHRhcmdldD0ke0hPU1RfU1lTfQorCitkb19jb21waWxlX3ByZXBlbmQoKSB7CisgICAgZXhwb3J0IFBLR19DT05GSUdfUEFUSD0iJHtQS0dfQ09ORklHX1BBVEh9IgorICAgIGV4cG9ydCBQS0dfQ09ORklHPSJQS0dfQ09ORklHX1NZU1JPT1RfRElSPVwiJHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfVwiIHBrZy1jb25maWciCisgICAgZXhwb3J0IFNUQUdJTkdfUFJFRklYPSIke1NUQUdJTkdfRElSX0hPU1R9LyR7cHJlZml4fSIKKyAgICBleHBvcnQgTElOS0ZMQUdTPSIke0xERkxBR1N9IgorfQorCitkb19pbnN0YWxsKCkgeworICAgIGV4cG9ydCBQS0dfQ09ORklHX1BBVEg9IiR7UEtHX0NPTkZJR19QQVRIfSIKKyAgICBleHBvcnQgUEtHX0NPTkZJRz0iUEtHX0NPTkZJR19TWVNST09UX0RJUj1cIiR7UEtHX0NPTkZJR19TWVNST09UX0RJUn1cIiBwa2ctY29uZmlnIgorICAgIGV4cG9ydCBTVEFHSU5HX1BSRUZJWD0iJHtTVEFHSU5HX0RJUl9IT1NUfS8ke3ByZWZpeH0iCisgICAgZXhwb3J0IExJTktGTEFHUz0iJHtMREZMQUdTfSIKKworICAgIGV4cG9ydCBERVNURElSPSIke0R9IgorICAgICMgcHJlZml4IGlzIHVzZWQgZm9yIFJQQVRIIGFuZCBERVNURElSL3ByZWZpeCBmb3IgaW5zdGFsYXRpb24KKyAgICAke1NUQUdJTkdfQklORElSX05BVElWRX0vc2NvbnMgcHJlZml4PSR7cHJlZml4fSBpbnN0YWxsICR7RVhUUkFfT0VTQ09OU318fCBcCisgICAgICBiYmZhdGFsICJzY29ucyBpbnN0YWxsIGV4ZWN1dGlvbiBmYWlsZWQuIgorfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtTfS9wYWNrYWdpbmcvZGViL2V0Y19pbml0LmRfZ3BzZCAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kL2dwc2QKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9kZWZhdWx0CisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vcGFja2FnaW5nL2RlYi9ldGNfZGVmYXVsdF9ncHNkICR7RH0vJHtzeXNjb25mZGlyfS9kZWZhdWx0L2dwc2QuZGVmYXVsdAorCisgICAgI3N1cHBvcnQgZm9yIHVkZXYKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS91ZGV2L3J1bGVzLmQKKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9ncHNkLnJ1bGVzICR7RH0vJHtzeXNjb25mZGlyfS91ZGV2L3J1bGVzLmQvCisgICAgaW5zdGFsbCAtZCAke0R9JHtiYXNlX2xpYmRpcn0vdWRldi8KKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtTfS9ncHNkLmhvdHBsdWcgJHtEfSR7YmFzZV9saWJkaXJ9L3VkZXYvCisKKyAgICAjc3VwcG9ydCBmb3IgcHl0aG9uCisgICAgaW5zdGFsbCAtZCAke0R9LyR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L2dwcworICAgIGluc3RhbGwgLW0gNzU1ICR7U30vZ3BzLyoucHkgJHtEfS8ke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9ncHMKKworICAgICNzdXBwb3J0IGZvciBzeXN0ZW1kCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9zeXN0ZW1kLyR7QlBOfS5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLyR7QlBOfS5zZXJ2aWNlCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vc3lzdGVtZC8ke0JQTn1jdGxALnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vJHtCUE59Y3RsQC5zZXJ2aWNlCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vc3lzdGVtZC8ke0JQTn0uc29ja2V0ICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLyR7QlBOfS5zb2NrZXQKK30KKworUEFDS0FHRVMgPSsgImxpYmdwcyBsaWJncHNkIHB5dGhvbi1weWdwcy1kYmcgcHl0aG9uLXB5Z3BzIGdwc2QtdWRldiBncHNkLWNvbmYgZ3BzZC1ncHNjdGwgZ3BzLXV0aWxzIgorCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9wa2djb25mZGlyL2xpYmdwc2QucGMgJHtsaWJkaXJ9L3BrZ2NvbmZkaXIvbGliZ3BzLnBjIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xpYlFncHNtbS5wcmwiCisKK0ZJTEVTX3B5dGhvbi1weWdwcy1kYmcgKz0gIiAke2xpYmRpcn0vcHl0aG9uKi9zaXRlLXBhY2thZ2VzL2dwcy8uZGVidWciCisKK1JERVBFTkRTXyR7UE59ID0gImdwc2QtZ3BzY3RsIgorUlJFQ09NTUVORFNfJHtQTn0gPSAiZ3BzZC1jb25mIGdwc2QtdWRldiBncHNkLW1hY2hpbmUtY29uZiIKKworU1VNTUFSWV9ncHNkLXVkZXYgPSAidWRldiByZWxldmFudCBmaWxlcyB0byB1c2UgZ3BzZCBob3RwbHVnZ2luZyIKK0ZJTEVTX2dwc2QtdWRldiA9ICIke2Jhc2VfbGliZGlyfS91ZGV2ICR7c3lzY29uZmRpcn0vdWRldi8qIgorUkRFUEVORFNfZ3BzZC11ZGV2ICs9ICJ1ZGV2IGdwc2QtY29uZiIKKworU1VNTUFSWV9saWJncHNkID0gIkMgc2VydmljZSBsaWJyYXJ5IHVzZWQgZm9yIGNvbW11bmljYXRpbmcgd2l0aCBncHNkIgorRklMRVNfbGliZ3BzZCA9ICIke2xpYmRpcn0vbGliZ3BzZC5zby4qIgorCitTVU1NQVJZX2xpYmdwcyA9ICJDIHNlcnZpY2UgbGlicmFyeSB1c2VkIGZvciBjb21tdW5pY2F0aW5nIHdpdGggZ3BzZCIKK0ZJTEVTX2xpYmdwcyA9ICIke2xpYmRpcn0vbGliZ3BzLnNvLioiCisKK1NVTU1BUllfZ3BzZC1jb25mID0gImdwc2QgY29uZmlndXJhdGlvbiBmaWxlcyBhbmQgaW5pdCBzY3JpcHRzIgorRklMRVNfZ3BzZC1jb25mID0gIiR7c3lzY29uZmRpcn0iCitDT05GRklMRVNfZ3BzZC1jb25mID0gIiR7c3lzY29uZmRpcn0vZGVmYXVsdC9ncHNkLmRlZmF1bHQiCisKK1NVTU1BUllfZ3BzZC1ncHNjdGwgPSAiVG9vbCBmb3IgdHdlYWtpbmcgR1BTIG1vZGVzIgorRklMRVNfZ3BzZC1ncHNjdGwgPSAiJHtiaW5kaXJ9L2dwc2N0bCIKKworU1VNTUFSWV9ncHMtdXRpbHMgPSAiVXRpbHMgdXNlZCBmb3Igc2ltdWxhdGluZywgbW9uaXRvcmluZywuLi4gYSBHUFMiCitGSUxFU19ncHMtdXRpbHMgPSAiJHtiaW5kaXJ9LyoiCitSREVQRU5EU19ncHMtdXRpbHMgPSAicHl0aG9uLXB5Z3BzIgorCitTVU1NQVJZX3B5dGhvbi1weWdwcyA9ICJQeXRob24gYmluZGluZ3MgdG8gZ3BzZCIKK0ZJTEVTX3B5dGhvbi1weWdwcyA9ICIke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS8qIgorUkRFUEVORFNfcHl0aG9uLXB5Z3BzID0gIiBcCisgICAgcHl0aG9uLWNvcmUgXAorICAgIHB5dGhvbi1pbyBcCisgICAgcHl0aG9uLXRocmVhZGluZyBcCisgICAgcHl0aG9uLXRlcm1pbmFsIFwKKyAgICBweXRob24tY3Vyc2VzIFwKKyAgICBncHNkIFwKKyAgICBweXRob24tanNvbiIKKworUlBST1ZJREVTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUlJFUExBQ0VTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUkNPTkZMSUNUU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICIke0JQTn0uc29ja2V0ICR7QlBOfWN0bEAuc2VydmljZSIKKworCitBTFRFUk5BVElWRV8ke1BOfSA9ICJncHNkLWRlZmF1bHRzIgorQUxURVJOQVRJVkVfTElOS19OQU1FW2dwc2QtZGVmYXVsdHNdID0gIiR7c3lzY29uZmRpcn0vZGVmYXVsdC9ncHNkIgorQUxURVJOQVRJVkVfVEFSR0VUW2dwc2QtZGVmYXVsdHNdID0gIiR7c3lzY29uZmRpcn0vZGVmYXVsdC9ncHNkLmRlZmF1bHQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL29ycmVyeS9vcnJlcnlfMi43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9vcnJlcnkvb3JyZXJ5XzIuNy5iYgppbmRleCAxYTAwYjA4Li4wMTBmNjVmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL29ycmVyeS9vcnJlcnlfMi43LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vb3JyZXJ5L29ycmVyeV8yLjcuYmIKQEAgLTUsNyArNSw5IEBACiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9vcnJlcnkuYztlbmRsaW5lPTI1O21kNT1kNzkyYmRmMmI1OTE5NzJkYTE3NWFlY2MzOGQ4OGNmZSIKIERFUEVORFMgPSAiZ3RrKyIKIAotaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogU1JDX1VSSSA9ICJodHRwOi8vcHJvamVjdHMub3Blbm1va28ub3JnL2Zycy9kb3dubG9hZC5waHAvOTIzL29ycmVyeV8yLjdfY2xlYW4udGFyLmd6IFwKICAgICAgICAgICAgZmlsZTovL29ycmVyeS5wbmcgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wYXNzd2RxYy9wYXNzd2RxYy9tYWtlZmlsZS1hZGQtbGRmbGFncy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNlY3VyaXR5L3Bhc3N3ZHFjL3Bhc3N3ZHFjL21ha2VmaWxlLWFkZC1sZGZsYWdzLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bhc3N3ZHFjL3Bhc3N3ZHFjL21ha2VmaWxlLWFkZC1sZGZsYWdzLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zZWN1cml0eS9wYXNzd2RxYy9wYXNzd2RxYy9tYWtlZmlsZS1hZGQtbGRmbGFncy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2VjdXJpdHkvcGFzc3dkcWMvcGFzc3dkcWNfMS4zLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zZWN1cml0eS9wYXNzd2RxYy9wYXNzd2RxY18xLjMuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmMwYjM1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2VjdXJpdHkvcGFzc3dkcWMvcGFzc3dkcWNfMS4zLjEuYmIKQEAgLTAsMCArMSw2NiBAQAorU1VNTUFSWSA9ICJBIHBhc3N3b3JkL3Bhc3NwaHJhc2Ugc3RyZW5ndGggY2hlY2tpbmcgYW5kIGVuZm9yY2VtZW50IHRvb2xzZXQiCitERVNDUklQVElPTiA9ICJcCitwYXNzd2RxYyBpcyBhIHBhc3N3b3JkL3Bhc3NwaHJhc2Ugc3RyZW5ndGggY2hlY2tpbmcgYW5kIHBvbGljeSBlbmZvcmNlbWVudCBcCit0b29sc2V0LCBpbmNsdWRpbmcgYW4gb3B0aW9uYWwgUEFNIG1vZHVsZSAocGFtX3Bhc3N3ZHFjKSwgY29tbWFuZC1saW5lIFwKK3Byb2dyYW1zIChwd3FjaGVjayBhbmQgcHdxZ2VuKSwgYW5kIGEgbGlicmFyeSAobGlicGFzc3dkcWMpLiBcCitwYW1fcGFzc3dkcWMgaXMgbm9ybWFsbHkgaW52b2tlZCBvbiBwYXNzd29yZCBjaGFuZ2VzIGJ5IHByb2dyYW1zIHN1Y2ggYXMgXAorcGFzc3dkKDEpLiAgSXQgaXMgY2FwYWJsZSBvZiBjaGVja2luZyBwYXNzd29yZCBvciBwYXNzcGhyYXNlIHN0cmVuZ3RoLCBcCitlbmZvcmNpbmcgYSBwb2xpY3ksIGFuZCBvZmZlcmluZyByYW5kb21seS1nZW5lcmF0ZWQgcGFzc3BocmFzZXMsIHdpdGggXAorYWxsIG9mIHRoZXNlIGZlYXR1cmVzIGJlaW5nIG9wdGlvbmFsIGFuZCBlYXNpbHkgKHJlLSljb25maWd1cmFibGUuIFwKK1wKK3B3cWNoZWNrIGFuZCBwd3FnZW4gYXJlIHN0YW5kYWxvbmUgcGFzc3dvcmQvcGFzc3BocmFzZSBzdHJlbmd0aCBjaGVja2luZyBcCithbmQgcmFuZG9tIHBhc3NwaHJhc2UgZ2VuZXJhdG9yIHByb2dyYW1zLCByZXNwZWN0aXZlbHksIHdoaWNoIGFyZSB1c2FibGUgXAorZnJvbSBzY3JpcHRzLiBcCitcCitsaWJwYXNzd2RxYyBpcyB0aGUgdW5kZXJseWluZyBsaWJyYXJ5LCB3aGljaCBtYXkgYWxzbyBiZSB1c2VkIGZyb20gXAordGhpcmQtcGFydHkgcHJvZ3JhbXMuIFwKKyIKKworSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5vcGVud2FsbC5jb20vcGFzc3dkcWMiCitTRUNUSU9OID0gIlN5c3RlbSBFbnZpcm9ubWVudC9CYXNlIgorCitERVBFTkRTICs9ICJsaWJwYW0iCisKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAicGFtIgorCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTFiNGFmNmYzZDRlZTA3OWEzODEwNzM2NmU5M2IzMzRkIgorCitTUkNfVVJJID0gImh0dHA6Ly93d3cub3BlbndhbGwuY29tLyR7QlBOfS8ke0JQfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vbWFrZWZpbGUtYWRkLWxkZmxhZ3MucGF0Y2ggXAorICAgICAgICAgICIKK1NSQ19VUklbbWQ1c3VtXSA9ICIzODc4YjU3YmNkM2ZkYmNmM2Q0YjM2MmRiYzYyMjhiOSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkMWZlZGVhZjc1OWU4YTBmMzJkMjhiNTgxMWVmMTFiNWE1MzY1MTU0ODQ5MTkwZjRiN2ZhYjY3MGE3MGZmYjE0IgorCisjIGV4cGxpY2l0bHkgZGVmaW5lIExJTlVYX1BBTSBpbiBjYXNlIERJU1RST19GRUFUVVJFUyBubyBwYW0KKyMgdGhpcyBwYWNrYWdlJ3MgcGFtX3Bhc3N3ZHFjLnNvIG5lZWRzIHBhbQorQ0ZMQUdTX2FwcGVuZCArPSAiLVdhbGwgLWZQSUMgLURIQVZFX1NIQURPVyAtRExJTlVYX1BBTSIKKworIyAtZSBpcyBubyBsb25nZXIgZGVmYXVsdCBzZXR0aW5nIGluIGJpdGJha2UuY29uZgorRVhUUkFfT0VNQUtFID0gIi1lIgorCitkb19jb21waWxlKCkgeworICAgICMgbWFrZSBzdXJlIHN1YiBtYWtlIHVzZSBlbnZpcm9ubWVudCB0byBvdmVycmlkZSB2YXJpYWJsZXMgaW4gTWFrZWZpbGUKKyAgICAjIExpbnV4KSAgICAkKE1BS0UpLCB0aGVyZSBpcyBhIHRhYiBiZXR3ZWVuCisgICAgc2VkIC1pIC1lICdzL0xpbnV4KQkkKE1BS0UpIENGTEFHU19saWIvTGludXgpCSQoTUFLRSkgLWUgQ0ZMQUdTX2xpYi8nICR7U30vTWFrZWZpbGUKKworICAgICMgTERfbGliIGFuZCBMRCBtdXN0IGJlIENDIGJlY2F1c2Ugb2YgTWFrZWZpbGUKKyAgICBvZV9ydW5tYWtlIExEPSIke0NDfSIKK30KKworZG9faW5zdGFsbCgpIHsKKyAgICBvZV9ydW5tYWtlIGluc3RhbGwgREVTVERJUj0ke0R9IFNIQVJFRF9MSUJESVI9JHtiYXNlX2xpYmRpcn0gXAorICAgICAgICAgICBERVZFTF9MSUJESVI9JHtsaWJkaXJ9IFNFQ1VSRURJUj0ke2Jhc2VfbGliZGlyfS9zZWN1cml0eSBcCisgICAgICAgICAgIElOU1RBTEw9Imluc3RhbGwgLXAiCit9CisKK1BST1ZJREVTICs9ICJwYW0tJHtCUE59IgorUEFDS0FHRVMgPSsgImxpYiR7QlBOfSBwYW0tJHtCUE59IgorCitGSUxFU19saWIke0JQTn0gPSAiJHtiYXNlX2xpYmRpcn0vbGlicGFzc3dkcWMuc28uMCIKK0ZJTEVTX3BhbS0ke0JQTn0gPSAiJHtiYXNlX2xpYmRpcn0vc2VjdXJpdHkvcGFtX3Bhc3N3ZHFjLnNvIgorRklMRVNfJHtQTn0tZGJnICs9ICIke2Jhc2VfbGliZGlyfS9zZWN1cml0eS8uZGVidWciCisKK1JERVBFTkRTXyR7UE59ID0gImxpYiR7QlBOfSBwYW0tJHtCUE59IgorUkRFUEVORFNfcGFtLSR7QlBOfSA9ICJsaWIke0JQTn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zZWN1cml0eS90b21veW8tdG9vbHMvdG9tb3lvLXRvb2xzXzIuNS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2VjdXJpdHkvdG9tb3lvLXRvb2xzL3RvbW95by10b29sc18yLjUuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzYyNzc1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2VjdXJpdHkvdG9tb3lvLXRvb2xzL3RvbW95by10b29sc18yLjUuMC5iYgpAQCAtMCwwICsxLDMwIEBACitTVU1NQVJZID0gIlRPTU9ZTyBMaW51eCB0b29scyIKK0RFU0NSSVBUSU9OID0gIlRPTU9ZTyBMaW51eCBpcyBhIE1hbmRhdG9yeSBBY2Nlc3MgQ29udHJvbCAoTUFDKSBpbXBsZW1lbnRhdGlvbiBcCitmb3IgTGludXggdGhhdCBjYW4gYmUgdXNlZCB0byBpbmNyZWFzZSB0aGUgc2VjdXJpdHkgb2YgYSBzeXN0ZW0sIHdoaWxlIGFsc28gXAorYmVpbmcgdXNlZnVsIHB1cmVseSBhcyBhIHN5c3RlbSBhbmFseXNpcyB0b29sLiIKK0hPTUVQQUdFID0gImh0dHA6Ly90b21veW8uc291cmNlZm9yZ2UuanAvIgorU0VDVElPTiA9ICJTeXN0ZW0gRW52aXJvbm1lbnQvS2VybmVsIgorCitTUkNfVVJJID0gImh0dHA6Ly9qYWlzdC5kbC5zb3VyY2Vmb3JnZS5qcC90b21veW8vNTMzNTcvJHtCUH0tMjAxNzAxMDIudGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjg4ODgwNGQ1ODc0MjQ1MmZlMjEzYTY4ZjdlYWRkMGFkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjAwZmVkZmFjNWU1MTQzMjEyNTBiYmU2OWVhY2NjNzMyYzhhODE1ODU5NmY3N2E3ODVjMmUzYWU5Zjk5NjgyODMiCisKK1MgPSAiJHtXT1JLRElSfS8ke0JQTn0iCisKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLnRvbW95bzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCisKK0ZJTEVTXyR7UE59ICAgICArPSAiJHtsaWJkaXJ9L3RvbW95byIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L3RvbW95by8uZGVidWciCisKK0RFUEVORFMgPSAibGludXgtbGliYy1oZWFkZXJzIG5jdXJzZXMiCisKK0VYVFJBX09FTUFLRSA9ICItZSBVU1JMSUJESVI9JHtsaWJkaXJ9IgorCitkb19jb21waWxlICgpIHsKKyAgICBvZV9ydW5tYWtlICdDQz0ke0NDfScKK30KKworZG9faW5zdGFsbCgpIHsKKyAgICBvZV9ydW5tYWtlIGluc3RhbGwgSU5TVEFMTERJUj0ke0R9Cit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kYXNoL2Rhc2gvMDAwMS1GaXgtcHJpbnRmLWZvcm1hdC1lcnJvcnMtd2l0aC1jbGFuZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNoZWxscy9kYXNoL2Rhc2gvMDAwMS1GaXgtcHJpbnRmLWZvcm1hdC1lcnJvcnMtd2l0aC1jbGFuZy5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZGFzaC9kYXNoLzAwMDEtRml4LXByaW50Zi1mb3JtYXQtZXJyb3JzLXdpdGgtY2xhbmcucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNoZWxscy9kYXNoL2Rhc2gvMDAwMS1GaXgtcHJpbnRmLWZvcm1hdC1lcnJvcnMtd2l0aC1jbGFuZy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2hlbGxzL2Rhc2gvZGFzaF8wLjUuOS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2hlbGxzL2Rhc2gvZGFzaF8wLjUuOS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZWU2NmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zaGVsbHMvZGFzaC9kYXNoXzAuNS45LjEuYmIKQEAgLTAsMCArMSwyOSBAQAorU1VNTUFSWSA9ICJTbWFsbCBhbmQgZmFzdCBQT1NJWC1jb21wbGlhbnQgc2hlbGwiCitIT01FUEFHRSA9ICJodHRwOi8vZ29uZG9yLmFwYW5hLm9yZy5hdS9+aGVyYmVydC9kYXNoLyIKK1NFQ1RJT04gPSAiU3lzdGVtIEVudmlyb25tZW50L1NoZWxscyIKKworTElDRU5TRSA9ICJCU0QgJiBHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iNTI2MmI0YTFhMWJmZjcyYjQ4ZTkzNTUzMTk3NmQyZSIKKworaW5oZXJpdCBhdXRvdG9vbHMgdXBkYXRlLWFsdGVybmF0aXZlcworCitTUkNfVVJJID0gImh0dHA6Ly9nb25kb3IuYXBhbmEub3JnLmF1L35oZXJiZXJ0LyR7QlBOfS9maWxlcy8ke0JQfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1GaXgtcHJpbnRmLWZvcm1hdC1lcnJvcnMtd2l0aC1jbGFuZy5wYXRjaCBcCisgICAgICAgICAgICIKK1NSQ19VUklbbWQ1c3VtXSA9ICI2NDcyNzAyYThkOTc2MGQxNjZlZjgzMzNkY2I1MjdhNiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1ZWNkNWJlYTcyYTkzZWQxMGViMTVhMWJlOTk1MWRkNTFiNTJlNWRhMWQ0YTdhZTAyMGVmZDk4MjZiNDllNjU5IgorCitFWFRSQV9PRUNPTkYgKz0gIi0tYmluZGlyPSR7YmFzZV9iaW5kaXJ9IgorCitBTFRFUk5BVElWRV8ke1BOfSA9ICJzaCIKK0FMVEVSTkFUSVZFX0xJTktfTkFNRVtzaF0gPSAiJHtiYXNlX2JpbmRpcn0vc2giCitBTFRFUk5BVElWRV9UQVJHRVRbc2hdID0gIiR7YmFzZV9iaW5kaXJ9L2Rhc2giCitBTFRFUk5BVElWRV9QUklPUklUWSA9ICIxMCIKKworcGtnX3Bvc3RpbnN0XyR7UE59ICgpIHsKKyAgICBncmVwIC1xICJeJHtiYXNlX2JpbmRpcn0vZGFzaCQiICREJHtzeXNjb25mZGlyfS9zaGVsbHMgfHwgZWNobyAke2Jhc2VfYmluZGlyfS9kYXNoID4+ICREJHtzeXNjb25mZGlyfS9zaGVsbHMKK30KKworcGtnX3Bvc3RybV8ke1BOfSAoKSB7CisgICAgcHJpbnRmICIkKGdyZXAgLXYgIl4ke2Jhc2VfYmluZGlyfS9kYXNoJCIgJEQke3N5c2NvbmZkaXJ9L3NoZWxscylcbiIgPiAkRCR7c3lzY29uZmRpcn0vc2hlbGxzCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90Y3NoL3Rjc2gvMDAwMS1FbmFibGUtc3lzdGVtLW1hbGxvYy1vbi1hbGwtbGludXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zaGVsbHMvdGNzaC90Y3NoLzAwMDEtRW5hYmxlLXN5c3RlbS1tYWxsb2Mtb24tYWxsLWxpbnV4LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90Y3NoL3Rjc2gvMDAwMS1FbmFibGUtc3lzdGVtLW1hbGxvYy1vbi1hbGwtbGludXgucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNoZWxscy90Y3NoL3Rjc2gvMDAwMS1FbmFibGUtc3lzdGVtLW1hbGxvYy1vbi1hbGwtbGludXgucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Rjc2gvdGNzaC8wMDAyLUFkZC1kZWJpYW4tY3NoLXNjcmlwdHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zaGVsbHMvdGNzaC90Y3NoLzAwMDItQWRkLWRlYmlhbi1jc2gtc2NyaXB0cy5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGNzaC90Y3NoLzAwMDItQWRkLWRlYmlhbi1jc2gtc2NyaXB0cy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2hlbGxzL3Rjc2gvdGNzaC8wMDAyLUFkZC1kZWJpYW4tY3NoLXNjcmlwdHMucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Rjc2gvdGNzaF82LjIwLjAwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2hlbGxzL3Rjc2gvdGNzaF82LjIwLjAwLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90Y3NoL3Rjc2hfNi4yMC4wMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2hlbGxzL3Rjc2gvdGNzaF82LjIwLjAwLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zaGVsbHMvenNoL3pzaF81LjQuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNoZWxscy96c2gvenNoXzUuNC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwMGM0NDkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zaGVsbHMvenNoL3pzaF81LjQuMi5iYgpAQCAtMCwwICsxLDY0IEBACitTVU1NQVJZID0gIlVOSVggU2hlbGwgc2ltaWxhciB0byB0aGUgS29ybiBzaGVsbCIKK0RFU0NSSVBUSU9OID0gIlpzaCBpcyBhIHNoZWxsIGRlc2lnbmVkIGZvciBpbnRlcmFjdGl2ZSB1c2UsIGFsdGhvdWdoIGl0IGlzIGFsc28gYSBcCisgICAgICAgICAgICAgICBwb3dlcmZ1bCBzY3JpcHRpbmcgbGFuZ3VhZ2UuIE1hbnkgb2YgdGhlIHVzZWZ1bCBmZWF0dXJlcyBvZiBiYXNoLCBcCisgICAgICAgICAgICAgICBrc2gsIGFuZCB0Y3NoIHdlcmUgaW5jb3Jwb3JhdGVkIGludG8genNoOyBtYW55IG9yaWdpbmFsIGZlYXR1cmVzIHdlcmUgYWRkZWQuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy56c2gub3JnIgorU0VDVElPTiA9ICJiYXNlL3NoZWxsIgorCitMSUNFTlNFID0gInpzaCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOQ0U7bWQ1PTFhNGM0Y2RhM2U4MDk2ZDJmZDQ4M2ZmMmY0NTE0ZmVjIgorCitERVBFTkRTID0gIm5jdXJzZXMgYmlzb24tbmF0aXZlIGxpYmNhcCBsaWJwY3JlIGdkYm0gZ3JvZmYtbmF0aXZlIgorCitTUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS8ke0JQTn0vJHtCUH0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gImRmZTE1NmZkNjliMGQ4ZDE3NDVlY2Y2ZDZlMDJlMDQ3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjk1N2JjZGIyYzU3ZjY0YzAyZjY3MzY5M2VhNWE3NTE4ZWYyNGI2NTU3YWViM2E0Y2UyMjJjZWZhNmQ3NGFjYzkiCisKK2luaGVyaXQgYXV0b3Rvb2xzIGdldHRleHQgdXBkYXRlLWFsdGVybmF0aXZlcworCitFWFRSQV9PRUNPTkYgPSAiIFwKKyAgICAtLWJpbmRpcj0ke2Jhc2VfYmluZGlyfSBcCisgICAgLS1lbmFibGUtZXRjZGlyPSR7c3lzY29uZmRpcn0gXAorICAgIC0tZW5hYmxlLWZuZGlyPSR7ZGF0YWRpcn0vJHtQTn0vJHtQVn0vZnVuY3Rpb25zIFwKKyAgICAtLWVuYWJsZS1zaXRlLWZuZGlyPSR7ZGF0YWRpcn0vJHtQTn0vc2l0ZS1mdW5jdGlvbnMgXAorICAgIC0td2l0aC10ZXJtLWxpYj0nbmN1cnNlc3cgbmN1cnNlcycgXAorICAgIC0td2l0aC10Y3NldHBncnAgXAorICAgIC0tZW5hYmxlLWNhcCBcCisgICAgLS1lbmFibGUtbXVsdGlieXRlIFwKKyAgICAtLWRpc2FibGUtZ2RibSBcCisgICAgLS1kaXNhYmxlLWR5bmFtaWMgXAorICAgIHpzaF9jdl9zaGFyZWRfZW52aXJvbj15ZXMgXAorIgorCisjIENvbmZpZ3VyZSByZXNwZWN0cyAtLWJpbmRpciBmcm9tIEVYVFJBX09FQ09ORiwgYnV0IHRoZW4gU3JjL01ha2VmaWxlIHdpbGwgcmVhZCBiaW5kaXIgZnJvbSBlbnZpcm9ubWVudAorZXhwb3J0IGJpbmRpcj0iJHtiYXNlX2JpbmRpcn0iCisKK0VYVFJBX09FTUFLRSA9ICItZSBNQUtFRkxBR1M9IgorCitBTFRFUk5BVElWRV8ke1BOfSA9ICJzaCIKK0FMVEVSTkFUSVZFX0xJTktfTkFNRVtzaF0gPSAiJHtiYXNlX2JpbmRpcn0vc2giCitBTFRFUk5BVElWRV9UQVJHRVRbc2hdID0gIiR7YmFzZV9iaW5kaXJ9LyR7QlBOfSIKK0FMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjEwMCIKKworZXhwb3J0IEFVVE9IRUFERVIgPSAidHJ1ZSIKKworZG9fY29uZmlndXJlICgpIHsKKyAgICBnbnUtY29uZmlnaXplIC0tZm9yY2UgJHtTfQorICAgIG9lX3J1bmNvbmYKK30KKworZG9faW5zdGFsbF9hcHBlbmQgKCkgeworICAgIHJtIC1mciAke0R9L3Vzci9zaGFyZQorfQorCitwa2dfcG9zdGluc3RfJHtQTn0gKCkgeworICAgIHRvdWNoICREJHtzeXNjb25mZGlyfS9zaGVsbHMKKyAgICBncmVwIC1xICJiaW4venNoIiAkRCR7c3lzY29uZmRpcn0vc2hlbGxzIHx8IGVjaG8gL2Jpbi96c2ggPj4gJEQke3N5c2NvbmZkaXJ9L3NoZWxscworICAgIGdyZXAgLXEgImJpbi9zaCIgJEQke3N5c2NvbmZkaXJ9L3NoZWxscyB8fCBlY2hvIC9iaW4vc2ggPj4gJEQke3N5c2NvbmZkaXJ9L3NoZWxscworfQorCitGSUxFU18ke1BOfS1kYmcgKz0gIlwKKyAgICAke2xpYmRpcn0vJHtQTn0vJHtQVn0vJHtQTn0vLmRlYnVnLyouc28gXAorICAgICR7bGliZGlyfS8ke1BOfS8ke1BWfS8ke1BOfS9kYi8uZGVidWcvKi5zbyBcCisgICAgJHtsaWJkaXJ9LyR7UE59LyR7UFZ9LyR7UE59L25ldC8uZGVidWcvKi5zbyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2FudGh5L2FudGh5L25hdGl2ZS1oZWxwZXJzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9hbnRoeS9hbnRoeS9uYXRpdmUtaGVscGVycy5wYXRjaAppbmRleCAyOTFiNjZiLi40N2NlMDA3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2FudGh5L2FudGh5L25hdGl2ZS1oZWxwZXJzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYW50aHkvYW50aHkvbmF0aXZlLWhlbHBlcnMucGF0Y2gKQEAgLTMsMjAgKzMsMjQgQEAKIGNvbW1lbnQ6IFN0YWdlIHRoZSBuYXRpdmUgYW50aHkgaGVscGVycyBta2ZpbGVkaWMsIG1rZGVwZ3JhcGgsIG1rd29yZGRpYywgCiBjb21tZW50OiBjYWxjdHJhbnMgYW5kIHByb2Njb3JwdXMuCiAKLS0tLSBhbnRoeS03ODExL21rYW50aHlkaWMvTWFrZWZpbGUuYW1+CTIwMDYtMDUtMTMgMTg6Mjg6MzUuMDAwMDAwMDAwICswOTAwCi0rKysgYW50aHktNzgxMS9ta2FudGh5ZGljL01ha2VmaWxlLmFtCTIwMDYtMDYtMTggMTA6NTY6MjUuNzcwMDAwMDAwICswOTAwCi1AQCAtMyw3ICszLDcgQEAKK0luZGV4OiBhbnRoeS05MTAwaC9ta2FudGh5ZGljL01ha2VmaWxlLmFtCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gYW50aHktOTEwMGgub3JpZy9ta2FudGh5ZGljL01ha2VmaWxlLmFtCisrKysgYW50aHktOTEwMGgvbWthbnRoeWRpYy9NYWtlZmlsZS5hbQorQEAgLTMsNyArMyw3IEBAIG5vaW5zdF9TQ1JJUFRTID0KICBDTEVBTkZJTEVTID0gYW50aHkuZGljCi0gSU5DTFVERVMgPSAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSAtRFNSQ0RJUj1cIiQoc3JjZGlyKVwiCisgSU5DTFVERVMgPSAtSSQodG9wX3NyY2RpcikvIC1EU1JDRElSPVwiJChzcmNkaXIpXCIKICAKIC1ub2luc3RfUFJPR1JBTVMgPSBta2ZpbGVkaWMKICtiaW5fUFJPR1JBTVMgPSBta2ZpbGVkaWMKICBta2ZpbGVkaWNfU09VUkNFUyA9IG1rZmlsZWRpYy5jCiAgbWtmaWxlZGljX0xEQUREID0gLi4vc3JjLWRpY2xpYi9saWJkaWNsaWIubGEKICAKLS0tLSBhbnRoeS03ODExL2RlcGdyYXBoL01ha2VmaWxlLmFtfgkyMDA2LTA2LTAyIDAwOjIwOjU0LjAwMDAwMDAwMCArMDkwMAotKysrIGFudGh5LTc4MTEvZGVwZ3JhcGgvTWFrZWZpbGUuYW0JMjAwNi0wNi0xOCAxMDo1NzoxOS40MjAwMDAwMDAgKzA5MDAKLUBAIC05LDcgKzksNyBAQAorSW5kZXg6IGFudGh5LTkxMDBoL2RlcGdyYXBoL01ha2VmaWxlLmFtCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gYW50aHktOTEwMGgub3JpZy9kZXBncmFwaC9NYWtlZmlsZS5hbQorKysrIGFudGh5LTkxMDBoL2RlcGdyYXBoL01ha2VmaWxlLmFtCitAQCAtOSw3ICs5LDcgQEAgQ0xFQU5GSUxFUyA9IGFudGh5LmRlcAogIEVYVFJBX0RJU1QgPSBpbmRlcHdvcmQudHh0ICQoREVQV09SRFMpCiAgCiAgIyBHZW5lcmF0ZSB0aGUgZGljdGlvbmFyeQpAQCAtMjUsMTAgKzI5LDEyIEBACiAgbWtkZXBncmFwaF9TT1VSQ0VTID0gbWtkZXBncmFwaC5jCiAgbWtkZXBncmFwaF9MREFERCA9ICAuLi9zcmMtbWFpbi9saWJhbnRoeS5sYSAuLi9zcmMtd29yZGRpYy9saWJhbnRoeWRpYy5sYQogIAotLS0tIGFudGh5LTc4MTEvbWt3b3JkZGljL01ha2VmaWxlLmFtfgkyMDA2LTA1LTEzIDE4OjI5OjA3LjAwMDAwMDAwMCArMDkwMAotKysrIGFudGh5LTc4MTEvbWt3b3JkZGljL01ha2VmaWxlLmFtCTIwMDYtMDYtMTggMTE6MjE6NTYuMzAwMDAwMDAwICswOTAwCi1AQCAtMTYsNyArMTYsOCBAQAotICB1ZGljdCBkaWN0LmFyZ3MuaW4KK0luZGV4OiBhbnRoeS05MTAwaC9ta3dvcmRkaWMvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBhbnRoeS05MTAwaC5vcmlnL21rd29yZGRpYy9NYWtlZmlsZS5hbQorKysrIGFudGh5LTkxMDBoL21rd29yZGRpYy9NYWtlZmlsZS5hbQorQEAgLTI2LDcgKzI2LDggQEAgRElDX0ZJTEVTID0gQHRvcF9zcmNkaXJAL2FsdC1jYW5uYWRpYy9nYworIAkgICAgQHRvcF9zcmNkaXJAL21rd29yZGRpYy91ZGljdAogIAogICMgR2VuZXJhdGUgdGhlIGRpY3Rpb25hcnkKIC1ub2luc3RfUFJPR1JBTVMgPSBta3dvcmRkaWMKQEAgLTM2LDEwICs0MiwxMiBAQAogK2Jpbl9QUk9HUkFNUyA9IG1rd29yZGRpYwogIG1rd29yZGRpY19TT1VSQ0VTID0gbWtkaWMuYyB3cml0ZXdvcmRzLmMgbWt1ZGljLmMgY2FsY2ZyZXEuYyBta2RpYy5oCiAgbWt3b3JkZGljX0xEQUREID0gLi4vc3JjLXdvcmRkaWMvbGliYW50aHlkaWMubGEKLQotLS0tIGFudGh5LTkxMDBlLm9yaWcvY2FsY3RyYW5zL01ha2VmaWxlLmFtCTIwMDgtMDUtMDggMTU6MDQ6MTMuMDAwMDAwMDAwICswMjAwCi0rKysgYW50aHktOTEwMGUvY2FsY3RyYW5zL01ha2VmaWxlLmFtCTIwMDgtMDUtMDggMTU6MDQ6MjQuMDAwMDAwMDAwICswMjAwCi1AQCAtMyw3ICszLDcgQEAKKyAKK0luZGV4OiBhbnRoeS05MTAwaC9jYWxjdHJhbnMvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBhbnRoeS05MTAwaC5vcmlnL2NhbGN0cmFucy9NYWtlZmlsZS5hbQorKysrIGFudGh5LTkxMDBoL2NhbGN0cmFucy9NYWtlZmlsZS5hbQorQEAgLTMsNyArMyw3IEBAIEVYVFJBX0RJU1QgPVwKICAgY29ycHVzLjMudHh0IGNvcnB1cy40LnR4dCBjb3JwdXMuNS50eHRcCiAgIGNvcnB1c19pbmZvIHdlYWtfd29yZHMKICAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYW50aHkvYW50aHkvbm90X2J1aWxkX2VsYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYW50aHkvYW50aHkvbm90X2J1aWxkX2VsYy5wYXRjaAppbmRleCBiZjc0OGYzLi4xYzVjNDk0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2FudGh5L2FudGh5L25vdF9idWlsZF9lbGMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9hbnRoeS9hbnRoeS9ub3RfYnVpbGRfZWxjLnBhdGNoCkBAIC0xLDEyICsxLDEzIEBACiB1cHN0cmVhbTogbm90IGFwcGxpY2FibGUKIHNvdXJjZTogc3RvbGVuIGZyb20gZGViaWFuCiAKLWRpZmYgLU5hdXIgYW50aHktNzgxMS9zcmMtdXRpbC5vcmlnL01ha2VmaWxlLmFtIGFudGh5LTc4MTEvc3JjLXV0aWwvTWFrZWZpbGUuYW0KLS0tLSBhbnRoeS03ODExL3NyYy11dGlsLm9yaWcvTWFrZWZpbGUuYW0JMjAwNi0wNi0xOCAxMDo0Nzo1NS43OTAwMDAwMDAgKzA5MDAKLSsrKyBhbnRoeS03ODExL3NyYy11dGlsL01ha2VmaWxlLmFtCTIwMDYtMDYtMTggMTA6NDg6MjMuODYwMDAwMDAwICswOTAwCi1AQCAtNiw3ICs2LDggQEAKK0luZGV4OiBhbnRoeS05MTAwaC9zcmMtdXRpbC9NYWtlZmlsZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGFudGh5LTkxMDBoLm9yaWcvc3JjLXV0aWwvTWFrZWZpbGUuYW0KKysrKyBhbnRoeS05MTAwaC9zcmMtdXRpbC9NYWtlZmlsZS5hbQorQEAgLTgsNyArOCw4IEBAIEVMSVNQX0ZJTEVTID0gYW50aHkuZWwgYW50aHktZGljLmVsIGFudGgKICAgYW50aHktaXNlYXJjaC5lbCBhbnRoeS1hemlrLmVsIGFudGh5LWt5dXJpLmVsCi0gRVhUUkFfRElTVCA9ICQoRUxJU1BfRklMRVMpIHR5cGV0YWIgZGljLXRvb2wtdXNhZ2UudHh0IHJjc2l6ZS5yYgorIEVYVFJBX0RJU1QgPSAkKEVMSVNQX0ZJTEVTKSB0eXBldGFiIGRpYy10b29sLXVzYWdlLnR4dCBhbnRoeS5pCiAgYmluX1BST0dSQU1TID0gYW50aHktZGljLXRvb2wgYW50aHktYWdlbnQgYW50aHktbW9ycGhvbG9naWNhbC1hbmFseXplcgogLUVMQ0ZJTEVTID0gYW50aHkuZWxjIGFudGh5LWRpYy5lbGMgYW50aHktYXppay5lbGMgYW50aHktY29uZi5lbGMgYW50aHktaXNlYXJjaC5lbGMgYW50aHkta3l1cmkuZWxjIGxlaW0tbGlzdC5lbGMKICsjRUxDRklMRVMgPSBhbnRoeS5lbGMgYW50aHktZGljLmVsYyBhbnRoeS1hemlrLmVsYyBhbnRoeS1jb25mLmVsYyBhbnRoeS1pc2VhcmNoLmVsYyBhbnRoeS1reXVyaS5lbGMgbGVpbS1saXN0LmVsYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9hdWdlYXMvYXVnZWFzLzAwMDEtVW5zZXQtbmVlZF9jaGFyc2V0X2FsaWFzLXdoZW4tYnVpbGRpbmctZm9yLW11c2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2F1Z2Vhcy9hdWdlYXMvMDAwMS1VbnNldC1uZWVkX2NoYXJzZXRfYWxpYXMtd2hlbi1idWlsZGluZy1mb3ItbXVzbC5wYXRjaAppbmRleCA5YTE5ODc2Li4wYmE3Yzc2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2F1Z2Vhcy9hdWdlYXMvMDAwMS1VbnNldC1uZWVkX2NoYXJzZXRfYWxpYXMtd2hlbi1idWlsZGluZy1mb3ItbXVzbC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2F1Z2Vhcy9hdWdlYXMvMDAwMS1VbnNldC1uZWVkX2NoYXJzZXRfYWxpYXMtd2hlbi1idWlsZGluZy1mb3ItbXVzbC5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gYjk1NjVkYzJmZTBjNGY3ZGFhZWM5MWI3ZTgzYmM3MzEzZGVlMmY0YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gMzJiMTUzMzJlMjEzMGE1NGIyNWY0ZmJmNmY1OGI0MDdiODUxZGQ4ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBNb24sIDEzIEFwciAyMDE1IDE3OjAyOjEzIC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIFVuc2V0IG5lZWRfY2hhcnNldF9hbGlhcyB3aGVuIGJ1aWxkaW5nIGZvciBtdXNsCkBAIC0xMSwxNCArMTEsMTUgQEAKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KLSBsaWIvZ251bGliLm1rIHwgMiArLQorIGdudWxpYi9saWIvTWFrZWZpbGUuYW0gfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKLUluZGV4OiBhdWdlYXMtMS4yLjAvZ251bGliL2xpYi9NYWtlZmlsZS5hbQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGF1Z2Vhcy0xLjIuMC5vcmlnL2dudWxpYi9saWIvTWFrZWZpbGUuYW0KLSsrKyBhdWdlYXMtMS4yLjAvZ251bGliL2xpYi9NYWtlZmlsZS5hbQorZGlmZiAtLWdpdCBhL2dudWxpYi9saWIvTWFrZWZpbGUuYW0gYi9nbnVsaWIvbGliL01ha2VmaWxlLmFtCitpbmRleCA5NjNiMjJkLi43NTc4OGQyIDEwMDY0NAorLS0tIGEvZ251bGliL2xpYi9NYWtlZmlsZS5hbQorKysrIGIvZ251bGliL2xpYi9NYWtlZmlsZS5hbQogQEAgLTQ2Myw3ICs0NjMsNyBAQCBpbnN0YWxsLWV4ZWMtbG9jYWxjaGFyc2V0OiBhbGwtbG9jYWwKICAJICBjYXNlICckKGhvc3Rfb3MpJyBpbiBcCiAgCSAgICBkYXJ3aW5bNTZdKikgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9hdWdlYXMvYXVnZWFzL2FkZC1taXNzaW5nLWFyZ3otY29uZGl0aW9uYWwucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2F1Z2Vhcy9hdWdlYXMvYWRkLW1pc3NpbmctYXJnei1jb25kaXRpb25hbC5wYXRjaAppbmRleCBhYmJkYmFhLi4zNjhiYjQxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2F1Z2Vhcy9hdWdlYXMvYWRkLW1pc3NpbmctYXJnei1jb25kaXRpb25hbC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2F1Z2Vhcy9hdWdlYXMvYWRkLW1pc3NpbmctYXJnei1jb25kaXRpb25hbC5wYXRjaApAQCAtMSwxNCArMSwyMSBAQAotQWRkIG1pc3NpbmcgR0xfR0VORVJBVEVfQVJHWl9IIGNvbmRpdGlvbmFsCitGcm9tIDlhNmU2Mzc0ZGE3ZDcwNTZkYjA5NTBmMGY3ZDZiOGI5MDUwMDk3NzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDb25zdGFudGluIE11c2NhIDxjb25zdGFudGlueC5tdXNjYUBpbnRlbC5jb20+CitEYXRlOiBGcmksIDE1IEp1bCAyMDE2IDEwOjA0OjQ4ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBtaXNzaW5nIEdMX0dFTkVSQVRFX0FSR1pfSCBjb25kaXRpb25hbAogCiAtIEdMX0dFTkVSQVRFX0FSR1pfSCBpcyB1c2VkIGluIGdudWxpYi9saWIvTWFrZWZpbGUuYW0KIAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiBTaWduZWQtb2ZmLWJ5OiBDb25zdGFudGluIE11c2NhIDxjb25zdGFudGlueC5tdXNjYUBpbnRlbC5jb20+CiAKLUluZGV4OiBhdWdlYXMtMS4wLjAvY29uZmlndXJlLmFjCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gYXVnZWFzLTEuMC4wLm9yaWcvY29uZmlndXJlLmFjCi0rKysgYXVnZWFzLTEuMC4wL2NvbmZpZ3VyZS5hYworLS0tCisgY29uZmlndXJlLmFjIHwgMiArKworIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggNzJiNjk4NC4uZmI5NjUzZSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCiBAQCAtNTUsNiArNTUsOCBAQCBBQ19BUkdfV0lUSChbZmFpbG1hbGxvY10sCiAgCiAgQU1fQ09ORElUSU9OQUwoW1dJVEhfRkFJTE1BTExPQ10sIFt0ZXN0IHgkd2l0aF9mYWlsbWFsbG9jICE9IHhub10pCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2F1Z2Vhcy9hdWdlYXMvc2VwYnVpbGRmaXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2F1Z2Vhcy9hdWdlYXMvc2VwYnVpbGRmaXgucGF0Y2gKaW5kZXggYjgyYTNlZS4uMmIxODYxOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9hdWdlYXMvYXVnZWFzL3NlcGJ1aWxkZml4LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYXVnZWFzL2F1Z2Vhcy9zZXBidWlsZGZpeC5wYXRjaApAQCAtMSwxNSArMSwyNCBAQAotRW5zdXJlIHRoYXQgYnVpbGRzIGluIHNlcGFyYXRlIGJ1aWxkZGlycyAoJHtCfSAhPSAke1N9KSBjb3JyZWN0bHkgaW5zdGFsbCB0aGUgCitGcm9tIDhhMjc3OTU3YTI1NzllNzE0OWMxODUwNjc1NDQxYjI4ODE5MjA3N2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKdXNzaSBLdWtrb25lbiA8anVzc2kua3Vra29uZW5AaW50ZWwuY29tPgorRGF0ZTogRnJpLCAxNSBKdWwgMjAxNiAxMDowNDo0OCArMDMwMAorU3ViamVjdDogW1BBVENIXSBhdWdlYXM6IGZpeCBzZXBhcmF0ZSBidWlsZGRpcnMKKworRW5zdXJlIHRoYXQgYnVpbGRzIGluIHNlcGFyYXRlIGJ1aWxkZGlycyAoJHtCfSAhPSAke1N9KSBjb3JyZWN0bHkgaW5zdGFsbCB0aGUKIGxlbnNlcyBmaWxlcy4KIAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIFJQIDIwMTMvNC8xNwogCi1JbmRleDogYXVnZWFzLTEuMC4wL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gYXVnZWFzLTEuMC4wLm9yaWcvTWFrZWZpbGUuYW0JMjAxMi0xMS0wMiAxNToyMDoxMS4wMDAwMDAwMDAgKzAwMDAKLSsrKyBhdWdlYXMtMS4wLjAvTWFrZWZpbGUuYW0JMjAxMy0wNC0xNyAxMDozNjoyNC4wMzM0MDAxMjUgKzAwMDAKLUBAIC01LDggKzUsOCBAQAorLS0tCisgTWFrZWZpbGUuYW0gfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQoraW5kZXggODdkNTExYS4uNzcxMGIzYiAxMDA2NDQKKy0tLSBhL01ha2VmaWxlLmFtCisrKysgYi9NYWtlZmlsZS5hbQorQEAgLTUsOCArNSw4IEBAIEFDTE9DQUxfQU1GTEFHUyA9IC1JIGdudWxpYi9tNAogIGxlbnNkaXI9JChkYXRhZGlyKS9hdWdlYXMvbGVuc2VzL2Rpc3QKICBsZW5zdGVzdGRpcj0kKGRhdGFkaXIpL2F1Z2Vhcy9sZW5zZXMvZGlzdC90ZXN0cwogIApAQCAtMTgsNSArMjcsNSBAQAogK2Rpc3RfbGVuc19EQVRBPSQod2lsZGNhcmQgJCh0b3Bfc3JjZGlyKS9sZW5zZXMvKi5hdWcpCiArZGlzdF9sZW5zdGVzdF9EQVRBPSQod2lsZGNhcmQgJCh0b3Bfc3JjZGlyKWxlbnNlcy90ZXN0cy8qLmF1ZykKICAKLSBFWFRSQV9ESVNUPWF1Z2Vhcy5zcGVjIGJ1aWxkL2F1eC9tb3ZlLWlmLWNoYW5nZSBNYWtlZmlsZS5hbSBIQUNLSU5HCisgRVhUUkFfRElTVD1hdWdlYXMuc3BlYyBidWlsZC9hYy1hdXgvbW92ZS1pZi1jaGFuZ2UgTWFrZWZpbGUuYW0gSEFDS0lORy5tZAogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jYW5vbmljYWwtbXVsdGl0b3VjaC9nZWlzXzIuMi4xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY2Fub25pY2FsLW11bHRpdG91Y2gvZ2Vpc18yLjIuMTcuYmIKaW5kZXggOTc2YWFmYi4uMzBkNDFhMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jYW5vbmljYWwtbXVsdGl0b3VjaC9nZWlzXzIuMi4xNy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2Nhbm9uaWNhbC1tdWx0aXRvdWNoL2dlaXNfMi4yLjE3LmJiCkBAIC0zMCw3ICszMCw2IEBACiAKIEZJTEVTXyR7UE59LWJpbiA9ICIke2JpbmRpcn0iCiBSREVQRU5EU18ke1BOfS1iaW4gPSAiIFwKLSAgICBweXRob24zLWFyZ3BhcnNlIFwKICAgICBweXRob24zLWNvbXByZXNzaW9uIFwKICAgICBweXRob24zLWNvcmUgXAogICAgIHB5dGhvbjMtY3J5cHQgXApAQCAtNDAsOCArMzksNiBAQAogICAgIHB5dGhvbjMtcGlja2xlIFwKICAgICBweXRob24zLXNoZWxsIFwKICAgICBweXRob24zLXN0cmluZ29sZCBcCi0gICAgcHl0aG9uMy1zdWJwcm9jZXNzIFwKLSAgICBweXRob24zLXRleHR1dGlscyBcCiAgICAgcHl0aG9uMy10aHJlYWRpbmcgXAogIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2NlcmVzLXNvbHZlci9jZXJlcy1zb2x2ZXJfMS4xMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY2VyZXMtc29sdmVyL2NlcmVzLXNvbHZlcl8xLjEzLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODgzYzcwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY2VyZXMtc29sdmVyL2NlcmVzLXNvbHZlcl8xLjEzLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiQ2VyZXMgU29sdmVyIGlzIGFuIG9wZW4gc291cmNlIEMrKyBsaWJyYXJ5IGZvciBtb2RlbGluZyBhbmQgc29sdmluZyBsYXJnZSwgY29tcGxpY2F0ZWQgb3B0aW1pemF0aW9uIHByb2JsZW1zLiIKLUFVVEhPUiA9ICJTYW1lZXIgQWdhcndhbCBhbmQgS2VpciBNaWVybGUgYW5kIE90aGVycyIKLUhPTUVQQUdFID0gImh0dHA6Ly9jZXJlcy1zb2x2ZXIub3JnLyIKLQotTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zNWUwMGYwYzRjOTZhMDgyMGEwM2UwYjMxZTY0MTZiZSIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2NlcmVzLXNvbHZlci9jZXJlcy1zb2x2ZXIuZ2l0IgotU1JDUkVWID0gIjE5MzMzYjBmNTVjODQ2MjM4MTAzOGU3MGQ0MmFmNDNiNTI5NDExMjgiCi0KLVMgPSAiJHtXT1JLRElSfS9naXQiCi0KLURFUEVORFMgPSAibGliZWlnZW4gZ2xvZyIKLQotaW5oZXJpdCBjbWFrZQotCi0jIE9ubHkgYSBzdGF0aWMgbGlicmFyeSBhbmQgaGVhZGVycyBhcmUgY3JlYXRlZAotQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKLQotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vY21ha2UvKiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY2VyZXMtc29sdmVyL2NlcmVzLXNvbHZlcl8xLjE0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jZXJlcy1zb2x2ZXIvY2VyZXMtc29sdmVyXzEuMTQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk5MTdjOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY2VyZXMtc29sdmVyL2NlcmVzLXNvbHZlcl8xLjE0LmJiCkBAIC0wLDAgKzEsMjAgQEAKK0RFU0NSSVBUSU9OID0gIkNlcmVzIFNvbHZlciBpcyBhbiBvcGVuIHNvdXJjZSBDKysgbGlicmFyeSBmb3IgbW9kZWxpbmcgYW5kIHNvbHZpbmcgbGFyZ2UsIGNvbXBsaWNhdGVkIG9wdGltaXphdGlvbiBwcm9ibGVtcy4iCitBVVRIT1IgPSAiU2FtZWVyIEFnYXJ3YWwgYW5kIEtlaXIgTWllcmxlIGFuZCBPdGhlcnMiCitIT01FUEFHRSA9ICJodHRwOi8vY2VyZXMtc29sdmVyLm9yZy8iCisKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MzVlMDBmMGM0Yzk2YTA4MjBhMDNlMGIzMWU2NDE2YmUiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9jZXJlcy1zb2x2ZXIvY2VyZXMtc29sdmVyLmdpdCIKK1NSQ1JFViA9ICJmYWNiMTk5ZjNlZGE5MDIzNjBmOWUxZDUyNzEzNzJiN2U1NGZlYmUxIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitERVBFTkRTID0gImxpYmVpZ2VuIGdsb2ciCisKK2luaGVyaXQgY21ha2UKKworIyBPbmx5IGEgc3RhdGljIGxpYnJhcnkgYW5kIGhlYWRlcnMgYXJlIGNyZWF0ZWQKK0FMTE9XX0VNUFRZXyR7UE59ID0gIjEiCisKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2NtYWtlLyoiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2NwcHJlc3QvY3BwcmVzdC0yLjEwLjIvZml4LWNtYWtlLWluc3RhbGwucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2NwcHJlc3QvY3BwcmVzdC0yLjEwLjIvZml4LWNtYWtlLWluc3RhbGwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZlYWZlZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY3BwcmVzdC9jcHByZXN0LTIuMTAuMi9maXgtY21ha2UtaW5zdGFsbC5wYXRjaApAQCAtMCwwICsxLDE3IEBACitEZXNjcmlwdGlvbjogaW5zdGFsbCBjbWFrZSBmaWxlcyBpbnRvIC91c3IvbGliL2NtYWtlL2NwcHJlc3RzZGsKK0F1dGhvcjogR2lhbmZyYW5jbyBDb3N0YW1hZ25hIDxsb2N1dHVzb2Zib3JnQGRlYmlhbi5vcmc+CitVcHN0cmVhbS1TdGF0dXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvY3BwcmVzdHNkay9wdWxsLzczNworRm9yd2FyZGVkOiBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L2NwcHJlc3RzZGsvcHVsbC83MzcKK0xhc3QtVXBkYXRlOiAyMDE4LTA0LTE5CisKKy0tLSBjcHByZXN0LTIuMTAuMi5vcmlnL0NNYWtlTGlzdHMudHh0CisrKysgY3BwcmVzdC0yLjEwLjIvQ01ha2VMaXN0cy50eHQKK0BAIC0xOCw3ICsxOCw3IEBAIGVuYWJsZV90ZXN0aW5nKCkKKyBzZXQoV0VSUk9SIE9OIENBQ0hFIEJPT0wgIlRyZWF0IFdhcm5pbmdzIGFzIEVycm9ycy4iKQorIHNldChDUFBSRVNUX0VYQ0xVREVfV0VCU09DS0VUUyBPRkYgQ0FDSEUgQk9PTCAiRXhjbHVkZSB3ZWJzb2NrZXRzIGZ1bmN0aW9uYWxpdHkuIikKKyBzZXQoQ1BQUkVTVF9FWENMVURFX0NPTVBSRVNTSU9OIE9GRiBDQUNIRSBCT09MICJFeGNsdWRlIGNvbXByZXNzaW9uIGZ1bmN0aW9uYWxpdHkuIikKKy1zZXQoQ1BQUkVTVF9FWFBPUlRfRElSIGxpYi9jcHByZXN0c2RrIENBQ0hFIFNUUklORyAiRGlyZWN0b3J5IHRvIGluc3RhbGwgQ01ha2UgY29uZmlnIGZpbGVzLiIpCisrc2V0KENQUFJFU1RfRVhQT1JUX0RJUiBsaWIvY21ha2UvY3BwcmVzdHNkayBDQUNIRSBTVFJJTkcgIkRpcmVjdG9yeSB0byBpbnN0YWxsIENNYWtlIGNvbmZpZyBmaWxlcy4iKQorIHNldChDUFBSRVNUX0lOU1RBTExfSEVBREVSUyBPTiBDQUNIRSBCT09MICJJbnN0YWxsIGhlYWRlciBmaWxlcy4iKQorIHNldChDUFBSRVNUX0lOU1RBTEwgT04gQ0FDSEUgQk9PTCAiQWRkIGluc3RhbGwgY29tbWFuZHMuIikKKyAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY3BwcmVzdC9jcHByZXN0XzIuMTAuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY3BwcmVzdC9jcHByZXN0XzIuMTAuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmE2ZmM2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jcHByZXN0L2NwcHJlc3RfMi4xMC4yLmJiCkBAIC0wLDAgKzEsMTcgQEAKK1NVTU1BUlkgPSAiTWljcm9zb2Z0IHByb2plY3QgZm9yIGNsb3VkLWJhc2VkIGNsaWVudC1zZXJ2ZXIgY29tbXVuaWNhdGlvbiBpbiBuYXRpdmUgY29kZSB1c2luZyBhIG1vZGVybiBhc3luY2hyb25vdXMgQysrIEFQSSBkZXNpZ24uIgorU0VDVElPTiA9ICJsaWJzL25ldHdvcmsiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L2NwcHJlc3RzZGsvIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke1N9Ly4uL2xpY2Vuc2UudHh0O21kNT1hMmUxNWI5NTQ3NjkyMThmZjkxMjQ2OGVlY2Q2YTAyZiIKK0RFUEVORFMgPSAib3BlbnNzbCB3ZWJzb2NrZXRwcCB6bGliIGJvb3N0IgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L2NwcHJlc3RzZGsuZ2l0O3Byb3RvY29sPWh0dHBzO2JyYW5jaD1tYXN0ZXIiCisKK1NSQ19VUkkgKz0gImZpbGU6Ly9maXgtY21ha2UtaW5zdGFsbC5wYXRjaCIKKworIyB0YWcgMi4xMC4yCitTUkNSRVY9ICJmZWE4NDhlMmE3NzU2M2NmMmE2ZjI4ZjhlYWIzOTZmZDZlNzg3ZmJmIgorCitTID0gIiR7V09SS0RJUn0vZ2l0L1JlbGVhc2UiCisKK2luaGVyaXQgY21ha2UKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZG9zMnVuaXgvZG9zMnVuaXhfNy4zLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2RvczJ1bml4L2RvczJ1bml4XzcuMy40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmY3ZDFjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZG9zMnVuaXgvZG9zMnVuaXhfNy4zLjQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1TVU1NQVJZID0gIkNvbnZlcnQgdGV4dCBmaWxlIGxpbmUgZW5kaW5ncyBiZXR3ZWVuIENSTEYgYW5kIExGIgotREVTQ1JJUFRJT04gPSAiVGhlIERvczJ1bml4IHBhY2thZ2UgaW5jbHVkZXMgdXRpbGl0aWVzIGRvczJ1bml4IGFuZCBcCi11bml4MmRvcyB0byBjb252ZXJ0IHBsYWluIHRleHQgZmlsZXMgaW4gRE9TIG9yIE1hYyBmb3JtYXQgdG8gVW5peCBcCi1mb3JtYXQgYW5kIHZpY2UgdmVyc2EuIgotSE9NRVBBR0UgPSAiaHR0cDovL3dhdGVybGFuLmhvbWUueHM0YWxsLm5sL2RvczJ1bml4Lmh0bWwiCi1TRUNUSU9OID0gInN1cHBvcnQiCi0KLUxJQ0VOU0UgPSAiQlNELTItQ2xhdXNlIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy50eHQ7bWQ1PTFiNzhmY2E3ODRkYjI0ZjRhNDBlMzBiMzAwNzg3ZjNmIgotCi1TUkNfVVJJID0gImdpdDovL2dpdC5jb2RlLnNmLm5ldC9wL2RvczJ1bml4L2RvczJ1bml4IgotCi0jIFJlbGVhc2UgNy4zLjQKLVNSQ1JFViA9ICI4MzgxYmE0ZTFjNGNkNWNlOThlYmQ5YzI0NzI2ZDUxY2IyMDNjZGUwIgotCi1TID0gIiR7V09SS0RJUn0vZ2l0L2RvczJ1bml4IgotCi1pbmhlcml0IGdldHRleHQgcGVybG5hdGl2ZQotCi0jIFRoZSBkb3MydW5peCBOTFMgcmVsaWVzIG9uIHBvNGEtbmF0aXZlLCB3aGlsZSBwbzRhIHJlY2lwZSBpcwotIyBwcm92aWRlZCBieSBtZXRhLXBlcmwgbGF5ZXIsIHNvIG1ha2UgaXQgb3B0aW9uYWwgaGVyZSwgeW91Ci0jIG5lZWQgaGF2ZSBtZXRhLXBlcmwgaW4gYmJsYXllcnMuY29uZiBiZWZvcmUgZW5hYmxpbmcgbmxzIGluCi0jIFBBQ0tBR0VDT05GSUcuCi1QQUNLQUdFQ09ORklHID8/PSAiIgotUEFDS0FHRUNPTkZJR1tubHNdID0gIkVOQUJMRV9OTFM9MSxFTkFCTEVfTkxTPSxwbzRhLW5hdGl2ZSIKLQotRVhUUkFfT0VNQUtFID0gIiR7UEFDS0FHRUNPTkZJR19DT05GQVJHU30gTERGTEFHU19VU0VSPScke0xERkxBR1N9JyIKLUVYVFJBX09FTUFLRV9jbGFzcy1uYXRpdmUgPSAiRU5BQkxFX05MUz0iCi0KLWRvX2luc3RhbGwgKCkgewotICAgIG9lX3J1bm1ha2UgREVTVERJUj0iJHtEfSR7YmFzZV9wcmVmaXh9IiBpbnN0YWxsCi19Ci0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZG9zMnVuaXgvZG9zMnVuaXhfNy40LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2RvczJ1bml4L2RvczJ1bml4XzcuNC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkM2M1NzgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2RvczJ1bml4L2RvczJ1bml4XzcuNC4wLmJiCkBAIC0wLDAgKzEsMzQgQEAKK1NVTU1BUlkgPSAiQ29udmVydCB0ZXh0IGZpbGUgbGluZSBlbmRpbmdzIGJldHdlZW4gQ1JMRiBhbmQgTEYiCitERVNDUklQVElPTiA9ICJUaGUgRG9zMnVuaXggcGFja2FnZSBpbmNsdWRlcyB1dGlsaXRpZXMgZG9zMnVuaXggYW5kIFwKK3VuaXgyZG9zIHRvIGNvbnZlcnQgcGxhaW4gdGV4dCBmaWxlcyBpbiBET1Mgb3IgTWFjIGZvcm1hdCB0byBVbml4IFwKK2Zvcm1hdCBhbmQgdmljZSB2ZXJzYS4iCitIT01FUEFHRSA9ICJodHRwOi8vd2F0ZXJsYW4uaG9tZS54czRhbGwubmwvZG9zMnVuaXguaHRtbCIKK1NFQ1RJT04gPSAic3VwcG9ydCIKKworTElDRU5TRSA9ICJCU0QtMi1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLnR4dDttZDU9MWI3OGZjYTc4NGRiMjRmNGE0MGUzMGIzMDA3ODdmM2YiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0LmNvZGUuc2YubmV0L3AvZG9zMnVuaXgvZG9zMnVuaXgiCisKKyMgUmVsZWFzZSA3LjQuMAorU1JDUkVWID0gIjExODI1MzNiZGUzYzFmZTY1YmUyZWFkNDY1ZTg3NjcxZmFhMmMwMjciCisKK1MgPSAiJHtXT1JLRElSfS9naXQvZG9zMnVuaXgiCisKK2luaGVyaXQgZ2V0dGV4dCBwZXJsbmF0aXZlCisKKyMgVGhlIGRvczJ1bml4IE5MUyByZWxpZXMgb24gcG80YS1uYXRpdmUsIHdoaWxlIHBvNGEgcmVjaXBlIGlzCisjIHByb3ZpZGVkIGJ5IG1ldGEtcGVybCBsYXllciwgc28gbWFrZSBpdCBvcHRpb25hbCBoZXJlLCB5b3UKKyMgbmVlZCBoYXZlIG1ldGEtcGVybCBpbiBiYmxheWVycy5jb25mIGJlZm9yZSBlbmFibGluZyBubHMgaW4KKyMgUEFDS0FHRUNPTkZJRy4KK1BBQ0tBR0VDT05GSUcgPz89ICIiCitQQUNLQUdFQ09ORklHW25sc10gPSAiRU5BQkxFX05MUz0xLEVOQUJMRV9OTFM9LHBvNGEtbmF0aXZlIgorCitFWFRSQV9PRU1BS0UgPSAiJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfSBMREZMQUdTX1VTRVI9JyR7TERGTEFHU30nIgorRVhUUkFfT0VNQUtFX2NsYXNzLW5hdGl2ZSA9ICJFTkFCTEVfTkxTPSIKKworZG9faW5zdGFsbCAoKSB7CisgICAgb2VfcnVubWFrZSBERVNURElSPSIke0R9JHtiYXNlX3ByZWZpeH0iIGluc3RhbGwKK30KKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9lbmdpbmUtcGtjczExL2VuZ2luZS1wa2NzMTFfMC4yLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2VuZ2luZS1wa2NzMTEvZW5naW5lLXBrY3MxMV8wLjIuMi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQ3ZjcwMS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2VuZ2luZS1wa2NzMTEvZW5naW5lLXBrY3MxMV8wLjIuMi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLVNVTU1BUlkgPSAiQSBQS0NTIgotREVTQ1JJUFRJT04gPSAiXAotRW5naW5lX3BrY3MxMSBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBhbiBlbmdpbmUgZm9yIE9wZW5TU0wuIEl0IGNhbiBiZSBcCi1sb2FkZWQgdXNpbmcgY29kZSwgY29uZmlnIGZpbGUgb3IgY29tbWFuZCBsaW5lIGFuZCB3aWxsIHBhc3MgYW55IGZ1bmN0aW9uIFwKLWNhbGwgYnkgb3BlbnNzbCB0byBhIFBLQ1MgY2FyZHMgYW5kIHNvZnR3YXJlIGZvciB1c2luZyBzbWFydCBjYXJkcyBpbiBQS0NTIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL09wZW5TQy9lbmdpbmVfcGtjczExIgotU0VDVElPTiA9ICJEZXZlbG9wbWVudC9MaWJyYXJpZXMiCi1MSUNFTlNFID0gIkxHUEx2Mi4xKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3NyYy9lbmdpbmVfcGtjczExLmg7c3RhcnRsaW5lPTE7ZW5kbGluZT0yNjttZDU9OTczYTE5ZjhhNjEwNWRlMDQ3ZjJhZGZiYmZjMDRjMzMiCi1ERVBFTkRTID0gIm9wZW5zc2wgbGlicDExIgotCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vT3BlblNDL2VuZ2luZV9wa2NzMTEuZ2l0IgotU1JDUkVWID0gIjEzMmZjZjJjOGIzMTlmOWY0YjJlYmRjOGRjYjU0ZmY0OTZkYzA1MTkiCi0KLVMgPSAiJHtXT1JLRElSfS9naXQiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1FWFRSQV9PRUNPTkYgPSAiXAotICAgIC0tZGlzYWJsZS1zdGF0aWMgXAotICAgIC0tbGliZGlyICR7bGliZGlyfS9lbmdpbmVzIFwKLSIKLQotZG9faW5zdGFsbF9hcHBlbmQgKCkgewotICAgIHJtIC1mICR7RH0ke2xpYmRpcn0vZW5naW5lcy9saWJwa2NzMTEubGEKLX0KLQotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9lbmdpbmVzL2xpYnBrY3MxMSR7U09MSUJTREVWfSIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2VuZ2luZXMvLmRlYnVnLyIKLQotUkRFUEVORFNfJHtQTn0gKz0gIm9wZW5zc2wgbGlicDExIG9wZW5zYyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZXZlbnRsb2cvZXZlbnRsb2dfMC4yLjEzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ldmVudGxvZy9ldmVudGxvZ18wLjIuMTMuYmIKaW5kZXggNTliMDFiNi4uMTNlYjc5NCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ldmVudGxvZy9ldmVudGxvZ18wLjIuMTMuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ldmVudGxvZy9ldmVudGxvZ18wLjIuMTMuYmIKQEAgLTEzLDcgKzEzLDcgQEAKIExJQ0VOU0UgPSAiQlNEIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YjhiYThlNzdiY2RhOWE1M2ZhYzBmZTM5ZmU5NTc3NjciCiAKLVNSQ19VUkkgPSAiaHR0cDovL3d3dy5iYWxhYml0LmNvbS9kb3dubG9hZHMvZmlsZXMvc3lzbG9nLW5nL29wZW4tc291cmNlLWVkaXRpb24vMy40LjIvc291cmNlLyR7QlBOfV8ke1BWfS50YXIuZ3oiCitTUkNfVVJJID0gImh0dHBzOi8vd3d3LmJhbGFiaXQuY29tL2Rvd25sb2Fkcy9zeXNsb2ctbmcvb3Blbi1zb3VyY2UtZWRpdGlvbi8zLjQuMi9zb3VyY2UvJHtCUE59XyR7UFZ9LnRhci5neiIKIAogaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZmZ0dy9mZnR3XzMuMy42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mZnR3L2ZmdHdfMy4zLjYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkMTRlMTYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mZnR3L2ZmdHdfMy4zLjYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCwwIEBACi1ERVNDUklQVElPTiA9ICJGRlRXIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgotCi1TUkNfVVJJID0gIiBcCi0gICAgaHR0cDovL3d3dy5mZnR3Lm9yZy9mZnR3LSR7UFZ9LXBsMS50YXIuZ3ogXAotICAgIGZpbGU6Ly8wMDAxLU5FT04tYXV0b2RldGVjdGlvbi1zZWdmYXVsdHMtYXNzdW1lLW5lb24tcHJlc2VudC5wYXRjaCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiNjgyYTBlNzhkNjk2NmNhMzdjNzQ0NmQ0YWI0Y2MyYTEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMWVmNGFhODQyN2Q5Nzg1ODM5YmM3NjdmM2ViNmE4NGZjYjVlOWEzN2MzMWVkNzdhMDRlN2UwNDc1MTlhMTgzZCIKLQotUyA9ICIke1dPUktESVJ9L2ZmdHctJHtQVn0tcGwxIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKLQotIyB3ZSBoYWQgbXVsdGlwbGUgcmVjaXBlcyBpbiB0aGUgcGFzdAotUFJPVklERVMgPSAiZmZ0d2wgZmZ0d2YiCi0KLUVYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtZm9ydHJhbiAtLWVuYWJsZS1zaGFyZWQgLS1lbmFibGUtdGhyZWFkcyIKLQotQ0ZMQUdTICs9ICItRF9HTlVfU09VUkNFIgotCi1GRlRXX05FT04gPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAnbmVvbicsICctLWVuYWJsZS1uZW9uJywgJycsIGQpfSIKLUZGVFdfTkVPTl9jbGFzcy1uYXRpdmUgPSAiIgotCi1kb19jb25maWd1cmUoKSB7Ci0gICAgIyBjb25maWd1cmUgZmZ0dwotICAgIHJtIC1yZiAke1dPUktESVJ9L2J1aWxkLWZmdHcKLQlta2RpciAtcCAke0J9Ci0gICAgY2QgJHtCfQotICAgICMgZnVsbCAocmUpY29uZmlndXJlCi0gICAgYXV0b3Rvb2xzX2RvX2NvbmZpZ3VyZQotICAgIG12ICR7Qn0gJHtXT1JLRElSfS9idWlsZC1mZnR3Ci0KLSAgICAjIGNvbmZpZ3VyZSBmZnR3bAotICAgIHJtIC1yZiAke1dPUktESVJ9L2J1aWxkLWZmdHdsCi0JbWtkaXIgLXAgJHtCfQotICAgIGNkICR7Qn0KLSAgICAjIGNvbmZpZ3VyZSBvbmx5Ci0gICAgb2VfcnVuY29uZiAgLS1lbmFibGUtbG9uZy1kb3VibGUKLSAgICBtdiAke0J9ICR7V09SS0RJUn0vYnVpbGQtZmZ0d2wgCi0KLSAgICAjIGNvbmZpZ3VyZSBmZnR3ZgotICAgIHJtIC1yZiAke1dPUktESVJ9L2J1aWxkLWZmdHdmCi0JbWtkaXIgLXAgJHtCfQotICAgIGNkICR7Qn0KLSAgICAjIGNvbmZpZ3VyZSBvbmx5Ci0gICAgb2VfcnVuY29uZiAtLWVuYWJsZS1zaW5nbGUgJHtGRlRXX05FT059Ci0gICAgbXYgJHtCfSAke1dPUktESVJ9L2J1aWxkLWZmdHdmCi19Ci0KLWRvX2NvbXBpbGUoKSB7Ci0gICAgZm9yIGxpYiBpbiBmZnR3IGZmdHdsIGZmdHdmOyBkbwotICAgICAgICBjZCAke1dPUktESVJ9L2J1aWxkLSRsaWIKLSAgICAgICAgYXV0b3Rvb2xzX2RvX2NvbXBpbGUKLSAgICBkb25lCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0gICAgZm9yIGxpYiBpbiBmZnR3IGZmdHdsIGZmdHdmOyBkbwotICAgICAgICBjZCAke1dPUktESVJ9L2J1aWxkLSRsaWIKLSAgICAgICAgYXV0b3Rvb2xzX2RvX2luc3RhbGwKLSAgICBkb25lCi19Ci0KLQotUEFDS0FHRVMgPSsgImxpYmZmdHcgbGliZmZ0d2wgbGliZmZ0d2YiCi1GSUxFU19saWJmZnR3ID0gIiR7bGliZGlyfS9saWJmZnR3My5zby4qICR7bGliZGlyfS9saWJmZnR3M18qLnNvLioiCi1GSUxFU19saWJmZnR3bCA9ICIke2xpYmRpcn0vbGliZmZ0dzNsLnNvLiogJHtsaWJkaXJ9L2xpYmZmdHczbF8qLnNvLioiCi1GSUxFU19saWJmZnR3ZiA9ICIke2xpYmRpcn0vbGliZmZ0dzNmLnNvLiogJHtsaWJkaXJ9L2xpYmZmdHczZl8qLnNvLioiCi0KLVBBQ0tBR0VTID0rICJmZnR3LXdpc2RvbSBmZnR3bC13aXNkb20gZmZ0d2Ytd2lzZG9tIGZmdHctd2lzZG9tLXRvLWNvbmYiCi1GSUxFU19mZnR3LXdpc2RvbSA9ICIke2JpbmRpcn0vZmZ0dy13aXNkb20iCi1GSUxFU19mZnR3bC13aXNkb20gPSAiJHtiaW5kaXJ9L2ZmdHdsLXdpc2RvbSIKLUZJTEVTX2ZmdHdmLXdpc2RvbSA9ICIke2JpbmRpcn0vZmZ0d2Ytd2lzZG9tIgotRklMRVNfZmZ0dy13aXNkb20tdG8tY29uZiA9ICIke2JpbmRpcn0vZmZ0dy13aXNkb20tdG8tY29uZiIKLQotUkRFUEVORFNfJHtQTn0tZGV2ID0gIiIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZmdHcvZmZ0d18zLjMuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZmZ0dy9mZnR3XzMuMy43LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhZTZlYzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZmdHcvZmZ0d18zLjMuNy5iYgpAQCAtMCwwICsxLDgwIEBACitERVNDUklQVElPTiA9ICJGRlRXIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgorCitTUkNfVVJJID0gIiBcCisgICAgaHR0cDovL3d3dy5mZnR3Lm9yZy9mZnR3LSR7UFZ9LnRhci5neiBcCisgICAgZmlsZTovLzAwMDEtTkVPTi1hdXRvZGV0ZWN0aW9uLXNlZ2ZhdWx0cy1hc3N1bWUtbmVvbi1wcmVzZW50LnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICIwZDU5MTVkN2QzOWIzMjUzYzFjYzA1MDMwZDc5YWM0NyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzYjYwOWI3ZmViYTUyMzBlOGY2ZGQ4ZDI0NWRkYmVmYWMzMjRjNWE2YWU0MTg2OTQ3NjcwZDlhYzJjZDI1NTczIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworIyB3ZSBoYWQgbXVsdGlwbGUgcmVjaXBlcyBpbiB0aGUgcGFzdAorUFJPVklERVMgPSAiZmZ0d2wgZmZ0d2YiCisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtZm9ydHJhbiAtLWVuYWJsZS1zaGFyZWQgLS1lbmFibGUtdGhyZWFkcyIKKworQ0ZMQUdTICs9ICItRF9HTlVfU09VUkNFIgorCitGRlRXX05FT04gPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAnbmVvbicsICctLWVuYWJsZS1uZW9uJywgJycsIGQpfSIKK0ZGVFdfTkVPTl9jbGFzcy1uYXRpdmUgPSAiIgorCitkb19jb25maWd1cmUoKSB7CisgICAgIyBjb25maWd1cmUgZmZ0dworICAgIHJtIC1yZiAke1dPUktESVJ9L2J1aWxkLWZmdHcKKwlta2RpciAtcCAke0J9CisgICAgY2QgJHtCfQorICAgICMgZnVsbCAocmUpY29uZmlndXJlCisgICAgYXV0b3Rvb2xzX2RvX2NvbmZpZ3VyZQorICAgIG12ICR7Qn0gJHtXT1JLRElSfS9idWlsZC1mZnR3CisKKyAgICAjIGNvbmZpZ3VyZSBmZnR3bAorICAgIHJtIC1yZiAke1dPUktESVJ9L2J1aWxkLWZmdHdsCisJbWtkaXIgLXAgJHtCfQorICAgIGNkICR7Qn0KKyAgICAjIGNvbmZpZ3VyZSBvbmx5CisgICAgb2VfcnVuY29uZiAgLS1lbmFibGUtbG9uZy1kb3VibGUKKyAgICBtdiAke0J9ICR7V09SS0RJUn0vYnVpbGQtZmZ0d2wgCisKKyAgICAjIGNvbmZpZ3VyZSBmZnR3ZgorICAgIHJtIC1yZiAke1dPUktESVJ9L2J1aWxkLWZmdHdmCisJbWtkaXIgLXAgJHtCfQorICAgIGNkICR7Qn0KKyAgICAjIGNvbmZpZ3VyZSBvbmx5CisgICAgb2VfcnVuY29uZiAtLWVuYWJsZS1zaW5nbGUgJHtGRlRXX05FT059CisgICAgbXYgJHtCfSAke1dPUktESVJ9L2J1aWxkLWZmdHdmCit9CisKK2RvX2NvbXBpbGUoKSB7CisgICAgZm9yIGxpYiBpbiBmZnR3IGZmdHdsIGZmdHdmOyBkbworICAgICAgICBjZCAke1dPUktESVJ9L2J1aWxkLSRsaWIKKyAgICAgICAgYXV0b3Rvb2xzX2RvX2NvbXBpbGUKKyAgICBkb25lCit9CisKK2RvX2luc3RhbGwoKSB7CisgICAgZm9yIGxpYiBpbiBmZnR3IGZmdHdsIGZmdHdmOyBkbworICAgICAgICBjZCAke1dPUktESVJ9L2J1aWxkLSRsaWIKKyAgICAgICAgYXV0b3Rvb2xzX2RvX2luc3RhbGwKKyAgICBkb25lCit9CisKKworUEFDS0FHRVMgPSsgImxpYmZmdHcgbGliZmZ0d2wgbGliZmZ0d2YiCitGSUxFU19saWJmZnR3ID0gIiR7bGliZGlyfS9saWJmZnR3My5zby4qICR7bGliZGlyfS9saWJmZnR3M18qLnNvLioiCitGSUxFU19saWJmZnR3bCA9ICIke2xpYmRpcn0vbGliZmZ0dzNsLnNvLiogJHtsaWJkaXJ9L2xpYmZmdHczbF8qLnNvLioiCitGSUxFU19saWJmZnR3ZiA9ICIke2xpYmRpcn0vbGliZmZ0dzNmLnNvLiogJHtsaWJkaXJ9L2xpYmZmdHczZl8qLnNvLioiCisKK1BBQ0tBR0VTID0rICJmZnR3LXdpc2RvbSBmZnR3bC13aXNkb20gZmZ0d2Ytd2lzZG9tIGZmdHctd2lzZG9tLXRvLWNvbmYiCitGSUxFU19mZnR3LXdpc2RvbSA9ICIke2JpbmRpcn0vZmZ0dy13aXNkb20iCitGSUxFU19mZnR3bC13aXNkb20gPSAiJHtiaW5kaXJ9L2ZmdHdsLXdpc2RvbSIKK0ZJTEVTX2ZmdHdmLXdpc2RvbSA9ICIke2JpbmRpcn0vZmZ0d2Ytd2lzZG9tIgorRklMRVNfZmZ0dy13aXNkb20tdG8tY29uZiA9ICIke2JpbmRpcn0vZmZ0dy13aXNkb20tdG8tY29uZiIKKworRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vY21ha2UiCitSREVQRU5EU18ke1BOfS1kZXYgPSAibGliZmZ0dyBsaWJmZnR3bCBsaWJmZnR3ZiIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZsaXRlL2ZsaXRlLWFsc2EtMS4zL2ZsaXRlLTEuMy1hbHNhX3N1cHBvcnQtMS4yLmRpZmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZsaXRlL2ZsaXRlLWFsc2EtMS4zL2ZsaXRlLTEuMy1hbHNhX3N1cHBvcnQtMS4yLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzZTRiN2EuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mbGl0ZS9mbGl0ZS1hbHNhLTEuMy9mbGl0ZS0xLjMtYWxzYV9zdXBwb3J0LTEuMi5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsNjYxNSArMCwwIEBACi1JbmRleDogbGFuZy91c2VuZ2xpc2gvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBmbGl0ZS0xLjMtcmVsZWFzZS9sYW5nL3VzZW5nbGlzaC9NYWtlZmlsZQkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9sYW5nL3VzZW5nbGlzaC9NYWtlZmlsZQkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC0zOCw2ICszOCw3IEBACi0gRElSTkFNRT1sYW5nL3VzZW5nbGlzaAotIEJVSUxEX0RJUlMgPSAKLSBBTExfRElSUz0gCi0raW5jbHVkZSAkKFRPUCkvY29uZmlnL2NvbmZpZwotIEggPSB1c2VuZ2xpc2guaCB1c19pbnRfYWNjZW50X2NhcnQuaCB1c19pbnRfdG9uZV9jYXJ0LmggdXNfZHVyel9jYXJ0LmggXAotICAgICB1c19mZmVhdHVyZXMuaCB1c19waHJhc2luZ19jYXJ0LmggdXNfdGV4dC5oIHVzX2YwLmggdXNfbnVtc19jYXJ0LmgKLSBTUkNTID0gdXNfaW50X2FjY2VudF9jYXJ0LmMgdXNfaW50X3RvbmVfY2FydC5jIHVzX2YwX21vZGVsLmMgXAotQEAgLTQ1LDcgKzQ2LDExIEBACi0gICAgICAgIHVzX3Bob25lc2V0LmMgdXNfZmZlYXR1cmVzLmMgdXNfcGhyYXNpbmdfY2FydC5jIFwKLSAgICAgICAgdXNfZ3Bvcy5jIHVzX3RleHQuYyB1c19leHBhbmQuYyB1c19wb3N0bGV4LmMgXAotICAgICAgICB1c19udW1zX2NhcnQuYyB1c19hc3dkLmMgdXNlbmdsaXNoLmMgCi0tT0JKUyA9ICQoU1JDUzouYz0ubykKLStpZmRlZiBTSEZMQUdTCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm9zKQotK2Vsc2UKLStPQkpTIDo9ICQoU1JDUzouYz0ubykKLStlbmRpZgotIFNDTT0KLSBGSUxFUyA9IE1ha2VmaWxlICQoU0NNKSAkKFNSQ1MpICQoSCkKLSBMSUJOQU1FID0gZmxpdGVfdXNlbmdsaXNoCi1JbmRleDogbGFuZy9jbXVfdXNfa2FsL01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2UvbGFuZy9jbXVfdXNfa2FsL01ha2VmaWxlCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL2xhbmcvY211X3VzX2thbC9NYWtlZmlsZQkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC00Myw3ICs0MywxMiBAQAotICAgICAgICBjbXVfdXNfa2FsX2xwYy5jIFwKLSAgICAgICAgY211X3VzX2thbF9yZXMuYyBcCi0gICAgICAgIGNtdV91c19rYWxfcmVzaWR4LmMKLS1PQkpTID0gJChTUkNTOi5jPS5vKQotK2luY2x1ZGUgJChUT1ApL2NvbmZpZy9jb25maWcKLStpZmRlZiBTSEZMQUdTCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm9zKQotK2Vsc2UKLStPQkpTIDo9ICQoU1JDUzouYz0ubykKLStlbmRpZgotIFNDTT0KLSBGSUxFUyA9IE1ha2VmaWxlICQoU0NNKSAkKFNSQ1MpICQoSCkKLSBMSUJOQU1FID0gZmxpdGVfY211X3VzX2thbAotSW5kZXg6IGxhbmcvY211X3VzX2thbDE2L01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2UvbGFuZy9jbXVfdXNfa2FsMTYvTWFrZWZpbGUJKC4uLi9mbGl0ZS0xLjMtb3JpZykJKHJldmlzaW9uIDcpCi0rKysgZmxpdGUtMS4zLXJlbGVhc2UvbGFuZy9jbXVfdXNfa2FsMTYvTWFrZWZpbGUJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtNDQsNyArNDQsMTIgQEAKLSAgICAgICAgY211X3VzX2thbDE2X2xwYy5jIFwKLSAgICAgICAgY211X3VzX2thbDE2X3Jlcy5jIFwKLSAgICAgICAgY211X3VzX2thbDE2X3Jlc2lkeC5jCi0tT0JKUyA9ICQoU1JDUzouYz0ubykKLStpbmNsdWRlICQoVE9QKS9jb25maWcvY29uZmlnCi0raWZkZWYgU0hGTEFHUwotK09CSlMgOj0gJChTUkNTOi5jPS5vcykKLStlbHNlCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm8pCi0rZW5kaWYKLSBTQ009Ci0gRklMRVMgPSBNYWtlZmlsZSAkKFNDTSkgJChTUkNTKSAkKEgpCi0gTElCTkFNRSA9IGZsaXRlX2NtdV91c19rYWwxNgotSW5kZXg6IGxhbmcvY211X3RpbWVfYXdiL01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2UvbGFuZy9jbXVfdGltZV9hd2IvTWFrZWZpbGUJKC4uLi9mbGl0ZS0xLjMtb3JpZykJKHJldmlzaW9uIDcpCi0rKysgZmxpdGUtMS4zLXJlbGVhc2UvbGFuZy9jbXVfdGltZV9hd2IvTWFrZWZpbGUJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtNDUsNyArNDUsMTIgQEAKLSAJY211X3RpbWVfYXdiX21jZXAuYyBcCi0gCWNtdV90aW1lX2F3Yl9scGMuYyBcCi0gCWNtdV90aW1lX2F3Yl9sZXhfZW50cnkuYwotLU9CSlMgPSAkKFNSQ1M6LmM9Lm8pCi0raW5jbHVkZSAkKFRPUCkvY29uZmlnL2NvbmZpZwotK2lmZGVmIFNIRkxBR1MKLStPQkpTIDo9ICQoU1JDUzouYz0ub3MpCi0rZWxzZQotK09CSlMgOj0gJChTUkNTOi5jPS5vKQotK2VuZGlmCi0gU0NNPQotIEZJTEVTID0gTWFrZWZpbGUgJChTQ00pICQoU1JDUykgJChIKQotIExJQk5BTUUgPSBmbGl0ZV9jbXVfdGltZV9hd2IKLUluZGV4OiBsYW5nL2NtdWxleC9NYWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL2xhbmcvY211bGV4L01ha2VmaWxlCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL2xhbmcvY211bGV4L01ha2VmaWxlCSguLi4vcmVsZWFzZS0xLjIpCShyZXZpc2lvbiA3KQotQEAgLTM4LDEzICszOCwyMCBAQAotIERJUk5BTUU9bGFuZy9jbXVsZXgKLSBCVUlMRF9ESVJTID0gCi0gQUxMX0RJUlM9IAotKwotIEggPSBjbXVfbHRzX21vZGVsLmggY211bGV4LmgKLSBTUkNTID0gY211X2x0c19ydWxlcy5jIGNtdV9sdHNfbW9kZWwuYyBcCi0gICAgICAgIGNtdV9sZXguYyBjbXVfbGV4X2VudHJpZXMuYyBjbXVfbGV4X2RhdGEuYwotIExFWF9EQVRBX0lOQ0xVREVTID0gY211X2xleF9kYXRhX3Jhdy5jIGNtdV9sZXhfbnVtX2J5dGVzLmMgXAotICAgICAgY211X2xleF9waG9uZXNfaHVmZl90YWJsZS5jIGNtdV9sZXhfZW50cmllc19odWZmX3RhYmxlLmMKLSAKLS1PQkpTID0gJChTUkNTOi5jPS5vKQotK2luY2x1ZGUgJChUT1ApL2NvbmZpZy9jb25maWcKLStpZmRlZiBTSEZMQUdTCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm9zKQotK2Vsc2UKLStPQkpTIDo9ICQoU1JDUzouYz0ubykKLStlbmRpZgotKwotIFNDUklQVFM9bWFrZV9jbXVsZXggIAotIAotIFNDTT0KLUluZGV4OiBjb25maWd1cmUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBmbGl0ZS0xLjMtcmVsZWFzZS9jb25maWd1cmUJKC4uLi9mbGl0ZS0xLjMtb3JpZykJKHJldmlzaW9uIDcpCi0rKysgZmxpdGUtMS4zLXJlbGVhc2UvY29uZmlndXJlCSguLi4vcmVsZWFzZS0xLjIpCShyZXZpc2lvbiA3KQotQEAgLTEsMzI0ICsxLDM4IEBACi0gIyEgL2Jpbi9zaAotKwotICMgR3Vlc3MgdmFsdWVzIGZvciBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyBhbmQgY3JlYXRlIE1ha2VmaWxlcy4KLS0jIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41Ny4KLSsjIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IHVzaW5nIGF1dG9jb25mIHZlcnNpb24gMi4xMyAKLSsjIENvcHlyaWdodCAoQykgMTk5MiwgOTMsIDk0LCA5NSwgOTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0gIwotLSMgQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIKLS0jIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotICMgVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS0jIyBNNHNoIEluaXRpYWxpemF0aW9uLiAgIyMKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSAKLS0jIEJlIEJvdXJuZSBjb21wYXRpYmxlCi0taWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0tICBlbXVsYXRlIHNoCi0tICBOVUxMQ01EPToKLS0gICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLS0gICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0tICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKLS1lbGlmIHRlc3QgLW4gIiR7QkFTSF9WRVJTSU9OK3NldH0iICYmIChzZXQgLW8gcG9zaXgpID4vZGV2L251bGwgMj4mMTsgdGhlbgotLSAgc2V0IC1vIHBvc2l4Ci0tZmkKLS0KLS0jIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJsZS4KLS1pZiAoRk9PPUZPTzsgdW5zZXQgRk9PKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gIGFzX3Vuc2V0PXVuc2V0Ci0tZWxzZQotLSAgYXNfdW5zZXQ9ZmFsc2UKLS1maQotLQotLQotLSMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgotLSRhc191bnNldCBFTlYgTUFJTCBNQUlMUEFUSAotLVBTMT0nJCAnCi0tUFMyPSc+ICcKLS1QUzQ9JysgJwotLQotLSMgTkxTIG51aXNhbmNlcy4KLS1mb3IgYXNfdmFyIGluIFwKLS0gIExBTkcgTEFOR1VBR0UgTENfQUREUkVTUyBMQ19BTEwgTENfQ09MTEFURSBMQ19DVFlQRSBMQ19JREVOVElGSUNBVElPTiBcCi0tICBMQ19NRUFTVVJFTUVOVCBMQ19NRVNTQUdFUyBMQ19NT05FVEFSWSBMQ19OQU1FIExDX05VTUVSSUMgTENfUEFQRVIgXAotLSAgTENfVEVMRVBIT05FIExDX1RJTUUKLS1kbwotLSAgaWYgKHNldCAreDsgdGVzdCAtbiAiYChldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIpIDI+JjFgIik7IHRoZW4KLS0gICAgZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFyCi0tICBlbHNlCi0tICAgICRhc191bnNldCAkYXNfdmFyCi0tICBmaQotLWRvbmUKLS0KLS0jIFJlcXVpcmVkIHRvIHVzZSBiYXNlbmFtZS4KLS1pZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMTsgdGhlbgotLSAgYXNfZXhwcj1leHByCi0tZWxzZQotLSAgYXNfZXhwcj1mYWxzZQotLWZpCi0tCi0taWYgKGJhc2VuYW1lIC8pID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICJYYGJhc2VuYW1lIC8gMj4mMWAiID0gIlgvIjsgdGhlbgotLSAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKLS1lbHNlCi0tICBhc19iYXNlbmFtZT1mYWxzZQotLWZpCi0tCi0tCi0tIyBOYW1lIG9mIHRoZSBleGVjdXRhYmxlLgotLWFzX21lPWAkYXNfYmFzZW5hbWUgIiQwIiB8fAotLSRhc19leHByIFgvIiQwIiA6ICcuKi9cKFteL11bXi9dKlwpLyokJyBcfCBcCi0tCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAotLQkgWCIkMCIgOiAnWFwoL1wpJCcgXHwgXAotLQkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8Ci0tZWNobyBYLyIkMCIgfAotLSAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sgcy8vXDEvOyBxOyB9Ci0tICAJICAvXlhcL1woXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotLSAgCSAgL15YXC9cKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotLSAgCSAgcy8uKi8uLzsgcSdgCi0tCi0tCi0tIyBQQVRIIG5lZWRzIENSLCBhbmQgTElORU5PIG5lZWRzIENSIGFuZCBQQVRILgotLSMgQXZvaWQgZGVwZW5kaW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KLS1hc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLS1hc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKLS1hc19jcl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKLS1hc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCi0tYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCi0tCi0tIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi0taWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KLS0gIGVjaG8gIiMhIC9iaW4vc2giID5jb25mJCQuc2gKLS0gIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKLS0gIGNobW9kICt4IGNvbmYkJC5zaAotLSAgaWYgKFBBVEg9Ii9ub25leGlzdGVudDsuIjsgY29uZiQkLnNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0tICBlbHNlCi0tICAgIFBBVEhfU0VQQVJBVE9SPToKLS0gIGZpCi0tICBybSAtZiBjb25mJCQuc2gKLS1maQotLQotLQotLSAgYXNfbGluZW5vXzE9JExJTkVOTwotLSAgYXNfbGluZW5vXzI9JExJTkVOTwotLSAgYXNfbGluZW5vXzM9YChleHByICRhc19saW5lbm9fMSArIDEpIDI+L2Rldi9udWxsYAotLSAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCi0tICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgIHx8IHsKLS0gICMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIHBhdGggYXQgYWxsCi0tICAjIHJlbGF0aXZlIG9yIG5vdC4KLS0gIGNhc2UgJDAgaW4KLS0gICAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OwotLSAgICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgdGVzdCAtciAiJGFzX2Rpci8kMCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJlYWsKLS1kb25lCi0tCi0tICAgICAgIDs7Ci0tICBlc2FjCi0tICAjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCi0tICAjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KLS0gIGlmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KLS0gICAgYXNfbXlzZWxmPSQwCi0tICBmaQotLSAgaWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgotLSAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBwYXRoIiA+JjIKLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLS0gIGZpCi0tICBjYXNlICRDT05GSUdfU0hFTEwgaW4KLS0gICcnKQotLSAgICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgZm9yIGFzX2Jhc2UgaW4gc2ggYmFzaCBrc2ggc2g1OyBkbwotLQkgY2FzZSAkYXNfZGlyIGluCi0tCSAvKikKLS0JICAgaWYgKCIkYXNfZGlyLyRhc19iYXNlIiAtYyAnCi0tICBhc19saW5lbm9fMT0kTElORU5PCi0tICBhc19saW5lbm9fMj0kTElORU5PCi0tICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCi0tICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKLS0gIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAnKSAyPi9kZXYvbnVsbDsgdGhlbgotLQkgICAgICRhc191bnNldCBCQVNIX0VOViB8fCB0ZXN0ICIke0JBU0hfRU5WK3NldH0iICE9IHNldCB8fCB7IEJBU0hfRU5WPTsgZXhwb3J0IEJBU0hfRU5WOyB9Ci0tCSAgICAgJGFzX3Vuc2V0IEVOViB8fCB0ZXN0ICIke0VOVitzZXR9IiAhPSBzZXQgfHwgeyBFTlY9OyBleHBvcnQgRU5WOyB9Ci0tCSAgICAgQ09ORklHX1NIRUxMPSRhc19kaXIvJGFzX2Jhc2UKLS0JICAgICBleHBvcnQgQ09ORklHX1NIRUxMCi0tCSAgICAgZXhlYyAiJENPTkZJR19TSEVMTCIgIiQwIiAkezErIiRAIn0KLS0JICAgZmk7OwotLQkgZXNhYwotLSAgICAgICBkb25lCi0tZG9uZQotLTs7Ci0tICBlc2FjCi0tCi0tICAjIENyZWF0ZSAkYXNfbWUubGluZW5vIGFzIGEgY29weSBvZiAkYXNfbXlzZWxmLCBidXQgd2l0aCAkTElORU5PCi0tICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0cyBhCi0tICAjIGxpbmUtbnVtYmVyIGxpbmUgYmVmb3JlIGVhY2ggbGluZTsgdGhlIHNlY29uZCAnc2VkJyBkb2VzIHRoZSByZWFsCi0tICAjIHdvcmsuICBUaGUgc2Vjb25kIHNjcmlwdCB1c2VzICdOJyB0byBwYWlyIGVhY2ggbGluZS1udW1iZXIgbGluZQotLSAgIyB3aXRoIHRoZSBudW1iZXJlZCBsaW5lLCBhbmQgYXBwZW5kcyB0cmFpbGluZyAnLScgZHVyaW5nCi0tICAjIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3BlY2lhbCBjYXNlIGF0IGxpbmUgZW5kLgotLSAgIyAoUmFqYSBSIEhhcmluYXRoIHN1Z2dlc3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhlCi0tICAjIHNlY29uZCAnc2VkJyBzY3JpcHQuICBCbGFtZSBMZWUgRS4gTWNNYWhvbiBmb3Igc2VkJ3Mgc3ludGF4LiAgOi0pCi0tICBzZWQgJz0nIDwkYXNfbXlzZWxmIHwKLS0gICAgc2VkICcKLS0gICAgICBOCi0tICAgICAgcywkLC0sCi0tICAgICAgOiBsb29wCi0tICAgICAgcyxeXChbJyRhc19jcl9kaWdpdHMnXSpcKVwoLipcKVskXUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dXCksXDFcMlwxXDMsCi0tICAgICAgdCBsb29wCi0tICAgICAgcywtJCwsCi0tICAgICAgcyxeWyckYXNfY3JfZGlnaXRzJ10qXG4sLAotLSAgICAnID4kYXNfbWUubGluZW5vICYmCi0tICBjaG1vZCAreCAkYXNfbWUubGluZW5vIHx8Ci0tICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLQotLSAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKLS0gICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQotLSAgIyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpYmxlIHRvIHRoaXMpLgotLSAgLiAuLyRhc19tZS5saW5lbm8KLS0gICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgotLSAgZXhpdAotLX0KLS0KLS0KLS1jYXNlIGBlY2hvICJ0ZXN0aW5nXGMiOyBlY2hvIDEsMiwzYCxgZWNobyAtbiB0ZXN0aW5nOyBlY2hvIDEsMiwzYCBpbgotLSAgKmMqLC1uKikgRUNIT19OPSBFQ0hPX0M9JwotLScgRUNIT19UPScJJyA7OwotLSAgKmMqLCogICkgRUNIT19OPS1uIEVDSE9fQz0gRUNIT19UPSA7OwotLSAgKikgICAgICAgRUNIT19OPSBFQ0hPX0M9J1xjJyBFQ0hPX1Q9IDs7Ci0tZXNhYwotLQotLWlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0tICBhc19leHByPWV4cHIKLS1lbHNlCi0tICBhc19leHByPWZhbHNlCi0tZmkKLS0KLS1ybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotLWVjaG8gPmNvbmYkJC5maWxlCi0taWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0tICAjIFdlIGNvdWxkIGp1c3QgY2hlY2sgZm9yIERKR1BQOyBidXQgdGhpcyB0ZXN0IGEpIHdvcmtzIGIpIGlzIG1vcmUgZ2VuZXJpYwotLSAgIyBhbmQgYykgd2lsbCByZW1haW4gdmFsaWQgb25jZSBESkdQUCBzdXBwb3J0cyBzeW1saW5rcyAoREpHUFAgMi4wNCkuCi0tICBpZiB0ZXN0IC1mIGNvbmYkJC5leGU7IHRoZW4KLS0gICAgIyBEb24ndCB1c2UgbG4gYXQgYWxsOyB3ZSBkb24ndCBoYXZlIGFueSBsaW5rcwotLSAgICBhc19sbl9zPSdjcCAtcCcKLS0gIGVsc2UKLS0gICAgYXNfbG5fcz0nbG4gLXMnCi0tICBmaQotLWVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0tICBhc19sbl9zPWxuCi0tZWxzZQotLSAgYXNfbG5fcz0nY3AgLXAnCi0tZmkKLS1ybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotLQotLWlmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLS0gIGFzX21rZGlyX3A9OgotLWVsc2UKLS0gIGFzX21rZGlyX3A9ZmFsc2UKLS1maQotLQotLWFzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKLS0KLS0jIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCi0tYXNfdHJfY3BwPSJzZWQgeSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnIgotLQotLSMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgotLWFzX3RyX3NoPSJzZWQgeSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyIKLS0KLS0KLS0jIElGUwotLSMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIuCi0tYXNfbmw9JwotLScKLS1JRlM9IiAJJGFzX25sIgotLQotLSMgQ0RQQVRILgotLSRhc191bnNldCBDRFBBVEgKLS0KLS0KLS0jIE5hbWUgb2YgdGhlIGhvc3QuCi0tIyBob3N0bmFtZSBvbiBzb21lIHN5c3RlbXMgKFNWUjMuMiwgTGludXgpIHJldHVybnMgYSBib2d1cyBleGl0IHN0YXR1cywKLS0jIHNvIHVuYW1lIGdldHMgcnVuIHRvby4KLS1hY19ob3N0bmFtZT1gKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKLS0KLS1leGVjIDY+JjEKLS0KLS0jCi0tIyBJbml0aWFsaXphdGlvbnMuCi0tIwotKyMgRGVmYXVsdHM6Ci0rYWNfaGVscD0KLSBhY19kZWZhdWx0X3ByZWZpeD0vdXNyL2xvY2FsCi0tYWNfY29uZmlnX2xpYm9ial9kaXI9LgotLWNyb3NzX2NvbXBpbGluZz1ubwotLXN1YmRpcnM9Ci0tTUZMQUdTPQotLU1BS0VGTEFHUz0KLS1TSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKyMgQW55IGFkZGl0aW9ucyBmcm9tIGNvbmZpZ3VyZS5pbjoKLSthY19oZWxwPSIkYWNfaGVscAotKyAgLS1kaXNhYmxlLXNoYXJlZCAgICAgd2l0aG91dCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0IgotK2FjX2hlbHA9IiRhY19oZWxwCi0rICAtLWRpc2FibGUtc29ja2V0cyAgICAgd2l0aG91dCBzb2NrZXQgc3VwcG9ydCIKLSthY19oZWxwPSIkYWNfaGVscAotKyAgLS13aXRoLWF1ZGlvICAgICAgICAgIHdpdGggc3BlY2lmaWMgYXVkaW8gc3VwcG9ydCAobm9uZSBsaW51eCBmcmVlYnNkIGV0YykgIgotK2FjX2hlbHA9IiRhY19oZWxwCi0rICAtLXdpdGgtbGFuZyAgICAgICAgICAgd2l0aCBsYW5ndWFnZSAiCi0rYWNfaGVscD0iJGFjX2hlbHAKLSsgIC0td2l0aC12b3ggICAgICAgICAgICB3aXRoIHZveCAiCi0rYWNfaGVscD0iJGFjX2hlbHAKLSsgIC0td2l0aC1sZXggICAgICAgICAgICB3aXRoIGxleGljb24gIgotIAotLSMgTWF4aW11bSBudW1iZXIgb2YgbGluZXMgdG8gcHV0IGluIGEgc2hlbGwgaGVyZSBkb2N1bWVudC4KLS0jIFRoaXMgdmFyaWFibGUgc2VlbXMgb2Jzb2xldGUuICBJdCBzaG91bGQgcHJvYmFibHkgYmUgcmVtb3ZlZCwgYW5kCi0tIyBvbmx5IGFjX21heF9zZWRfbGluZXMgc2hvdWxkIGJlIHVzZWQuCi0tOiAke2FjX21heF9oZXJlX2xpbmVzPTM4fQotLQotLSMgSWRlbnRpdHkgb2YgdGhpcyBwYWNrYWdlLgotLVBBQ0tBR0VfTkFNRT0KLS1QQUNLQUdFX1RBUk5BTUU9Ci0tUEFDS0FHRV9WRVJTSU9OPQotLVBBQ0tBR0VfU1RSSU5HPQotLVBBQ0tBR0VfQlVHUkVQT1JUPQotLQotLWFjX3VuaXF1ZV9maWxlPSJpbmNsdWRlL2ZsaXRlLmgiCi0tIyBGYWN0b3JpbmcgZGVmYXVsdCBoZWFkZXJzIGZvciBtb3N0IHRlc3RzLgotLWFjX2luY2x1ZGVzX2RlZmF1bHQ9IlwKLS0jaW5jbHVkZSA8c3RkaW8uaD4KLS0jaWYgSEFWRV9TWVNfVFlQRVNfSAotLSMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0tI2VuZGlmCi0tI2lmIEhBVkVfU1lTX1NUQVRfSAotLSMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLS0jZW5kaWYKLS0jaWYgU1REQ19IRUFERVJTCi0tIyBpbmNsdWRlIDxzdGRsaWIuaD4KLS0jIGluY2x1ZGUgPHN0ZGRlZi5oPgotLSNlbHNlCi0tIyBpZiBIQVZFX1NURExJQl9ICi0tIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci0tIyBlbmRpZgotLSNlbmRpZgotLSNpZiBIQVZFX1NUUklOR19ICi0tIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLS0jICBpbmNsdWRlIDxtZW1vcnkuaD4KLS0jIGVuZGlmCi0tIyBpbmNsdWRlIDxzdHJpbmcuaD4KLS0jZW5kaWYKLS0jaWYgSEFWRV9TVFJJTkdTX0gKLS0jIGluY2x1ZGUgPHN0cmluZ3MuaD4KLS0jZW5kaWYKLS0jaWYgSEFWRV9JTlRUWVBFU19ICi0tIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotLSNlbHNlCi0tIyBpZiBIQVZFX1NURElOVF9ICi0tIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci0tIyBlbmRpZgotLSNlbmRpZgotLSNpZiBIQVZFX1VOSVNURF9ICi0tIyBpbmNsdWRlIDx1bmlzdGQuaD4KLS0jZW5kaWYiCi0tCi0tYWNfc3Vic3RfdmFycz0nU0hFTEwgUEFUSF9TRVBBUkFUT1IgUEFDS0FHRV9OQU1FIFBBQ0tBR0VfVEFSTkFNRSBQQUNLQUdFX1ZFUlNJT04gUEFDS0FHRV9TVFJJTkcgUEFDS0FHRV9CVUdSRVBPUlQgZXhlY19wcmVmaXggcHJlZml4IHByb2dyYW1fdHJhbnNmb3JtX25hbWUgYmluZGlyIHNiaW5kaXIgbGliZXhlY2RpciBkYXRhZGlyIHN5c2NvbmZkaXIgc2hhcmVkc3RhdGVkaXIgbG9jYWxzdGF0ZWRpciBsaWJkaXIgaW5jbHVkZWRpciBvbGRpbmNsdWRlZGlyIGluZm9kaXIgbWFuZGlyIGJ1aWxkX2FsaWFzIGhvc3RfYWxpYXMgdGFyZ2V0X2FsaWFzIERFRlMgRUNIT19DIEVDSE9fTiBFQ0hPX1QgTElCUyBidWlsZCBidWlsZF9jcHUgYnVpbGRfdmVuZG9yIGJ1aWxkX29zIGhvc3QgaG9zdF9jcHUgaG9zdF92ZW5kb3IgaG9zdF9vcyB0YXJnZXQgdGFyZ2V0X2NwdSB0YXJnZXRfdmVuZG9yIHRhcmdldF9vcyBDQyBDRkxBR1MgTERGTEFHUyBDUFBGTEFHUyBhY19jdF9DQyBFWEVFWFQgT0JKRVhUIFJBTkxJQiBhY19jdF9SQU5MSUIgSU5TVEFMTF9QUk9HUkFNIElOU1RBTExfU0NSSVBUIElOU1RBTExfREFUQSBBUiBhY19jdF9BUiBUQVJHRVRfT1MgVEFSR0VUX0NQVSBNNjhLQ0MgTEVYREVGUyBWT1hERUZTIEhPU1RfT1MgSE9TVF9DUFUgT1RIRVJMSUJTIFNIRkxBR1MgTU1BUFRZUEUgU1RESU9UWVBFIENQUCBFR1JFUCBBVURJT0RSSVZFUiBBVURJT0RFRlMgQVVESU9MSUJTIEZMX0xBTkcgRkxfVk9YIEZMX0xFWCBMSUJPQkpTIExUTElCT0JKUycKLS1hY19zdWJzdF9maWxlcz0nJwotLQotICMgSW5pdGlhbGl6ZSBzb21lIHZhcmlhYmxlcyBzZXQgYnkgb3B0aW9ucy4KLS1hY19pbml0X2hlbHA9Ci0tYWNfaW5pdF92ZXJzaW9uPWZhbHNlCi0gIyBUaGUgdmFyaWFibGVzIGhhdmUgdGhlIHNhbWUgbmFtZXMgYXMgdGhlIG9wdGlvbnMsIHdpdGgKLSAjIGRhc2hlcyBjaGFuZ2VkIHRvIHVuZGVybGluZXMuCi0tY2FjaGVfZmlsZT0vZGV2L251bGwKLStidWlsZD1OT05FCi0rY2FjaGVfZmlsZT0uL2NvbmZpZy5jYWNoZQotIGV4ZWNfcHJlZml4PU5PTkUKLStob3N0PU5PTkUKLSBub19jcmVhdGU9Ci0rbm9ub3B0PU5PTkUKLSBub19yZWN1cnNpb249Ci0gcHJlZml4PU5PTkUKLSBwcm9ncmFtX3ByZWZpeD1OT05FCi1AQCAtMzI3LDE1ICs0MSwxMCBAQAotIHNpbGVudD0KLSBzaXRlPQotIHNyY2Rpcj0KLSt0YXJnZXQ9Tk9ORQotIHZlcmJvc2U9Ci0geF9pbmNsdWRlcz1OT05FCi0geF9saWJyYXJpZXM9Tk9ORQotLQotLSMgSW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBvcHRpb25zLgotLSMgVGhlc2UgYXJlIGxlZnQgdW5leHBhbmRlZCBzbyB1c2VycyBjYW4gIm1ha2UgaW5zdGFsbCBleGVjX3ByZWZpeD0vZm9vIgotLSMgYW5kIGFsbCB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIHN1cHBvc2VkIHRvIGJlIGJhc2VkIG9uIGV4ZWNfcHJlZml4Ci0tIyBieSBkZWZhdWx0IHdpbGwgYWN0dWFsbHkgY2hhbmdlLgotLSMgVXNlIGJyYWNlcyBpbnN0ZWFkIG9mIHBhcmVucyBiZWNhdXNlIHNoLCBwZXJsLCBldGMuIGFsc28gYWNjZXB0IHRoZW0uCi0gYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCi0gc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKLSBsaWJleGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWJleGVjJwotQEAgLTM0OSw5ICs1OCwxNyBAQAotIGluZm9kaXI9JyR7cHJlZml4fS9pbmZvJwotIG1hbmRpcj0nJHtwcmVmaXh9L21hbicKLSAKLSsjIEluaXRpYWxpemUgc29tZSBvdGhlciB2YXJpYWJsZXMuCi0rc3ViZGlycz0KLStNRkxBR1M9IE1BS0VGTEFHUz0KLStTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKyMgTWF4aW11bSBudW1iZXIgb2YgbGluZXMgdG8gcHV0IGluIGEgc2hlbGwgaGVyZSBkb2N1bWVudC4KLSthY19tYXhfaGVyZV9saW5lcz0xMgotKwotIGFjX3ByZXY9Ci0gZm9yIGFjX29wdGlvbgotIGRvCi0rCi0gICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJndW1lbnQsIGFzc2lnbiBpdC4KLSAgIGlmIHRlc3QgLW4gIiRhY19wcmV2IjsgdGhlbgotICAgICBldmFsICIkYWNfcHJldj1cJGFjX29wdGlvbiIKLUBAIC0zNTksNTkgKzc2LDU5IEBACi0gICAgIGNvbnRpbnVlCi0gICBmaQotIAotLSAgYWNfb3B0YXJnPWBleHByICJ4JGFjX29wdGlvbiIgOiAneFtePV0qPVwoLipcKSdgCi0rICBjYXNlICIkYWNfb3B0aW9uIiBpbgotKyAgLSo9KikgYWNfb3B0YXJnPWBlY2hvICIkYWNfb3B0aW9uIiB8IHNlZCAncy9bLV9hLXpBLVowLTldKj0vLydgIDs7Ci0rICAqKSBhY19vcHRhcmc9IDs7Ci0rICBlc2FjCi0gCi0gICAjIEFjY2VwdCB0aGUgaW1wb3J0YW50IEN5Z251cyBjb25maWd1cmUgb3B0aW9ucywgc28gd2UgY2FuIGRpYWdub3NlIHR5cG9zLgotIAotLSAgY2FzZSAkYWNfb3B0aW9uIGluCi0rICBjYXNlICIkYWNfb3B0aW9uIiBpbgotIAotICAgLWJpbmRpciB8IC0tYmluZGlyIHwgLS1iaW5kaSB8IC0tYmluZCB8IC0tYmluIHwgLS1iaSkKLSAgICAgYWNfcHJldj1iaW5kaXIgOzsKLSAgIC1iaW5kaXI9KiB8IC0tYmluZGlyPSogfCAtLWJpbmRpPSogfCAtLWJpbmQ9KiB8IC0tYmluPSogfCAtLWJpPSopCi0tICAgIGJpbmRpcj0kYWNfb3B0YXJnIDs7Ci0rICAgIGJpbmRpcj0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1idWlsZCB8IC0tYnVpbGQgfCAtLWJ1aWwgfCAtLWJ1aSB8IC0tYnUpCi0tICAgIGFjX3ByZXY9YnVpbGRfYWxpYXMgOzsKLSsgICAgYWNfcHJldj1idWlsZCA7OwotICAgLWJ1aWxkPSogfCAtLWJ1aWxkPSogfCAtLWJ1aWw9KiB8IC0tYnVpPSogfCAtLWJ1PSopCi0tICAgIGJ1aWxkX2FsaWFzPSRhY19vcHRhcmcgOzsKLSsgICAgYnVpbGQ9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsIHwgLS1jYWNoZS1maSBcCi0gICB8IC0tY2FjaGUtZiB8IC0tY2FjaGUtIHwgLS1jYWNoZSB8IC0tY2FjaCB8IC0tY2FjIHwgLS1jYSB8IC0tYykKLSAgICAgYWNfcHJldj1jYWNoZV9maWxlIDs7Ci0gICAtY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbD0qIHwgLS1jYWNoZS1maT0qIFwKLSAgIHwgLS1jYWNoZS1mPSogfCAtLWNhY2hlLT0qIHwgLS1jYWNoZT0qIHwgLS1jYWNoPSogfCAtLWNhYz0qIHwgLS1jYT0qIHwgLS1jPSopCi0tICAgIGNhY2hlX2ZpbGU9JGFjX29wdGFyZyA7OwotKyAgICBjYWNoZV9maWxlPSIkYWNfb3B0YXJnIiA7OwotIAotLSAgLS1jb25maWctY2FjaGUgfCAtQykKLS0gICAgY2FjaGVfZmlsZT1jb25maWcuY2FjaGUgOzsKLS0KLSAgIC1kYXRhZGlyIHwgLS1kYXRhZGlyIHwgLS1kYXRhZGkgfCAtLWRhdGFkIHwgLS1kYXRhIHwgLS1kYXQgfCAtLWRhKQotICAgICBhY19wcmV2PWRhdGFkaXIgOzsKLSAgIC1kYXRhZGlyPSogfCAtLWRhdGFkaXI9KiB8IC0tZGF0YWRpPSogfCAtLWRhdGFkPSogfCAtLWRhdGE9KiB8IC0tZGF0PSogXAotICAgfCAtLWRhPSopCi0tICAgIGRhdGFkaXI9JGFjX29wdGFyZyA7OwotKyAgICBkYXRhZGlyPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qKQotLSAgICBhY19mZWF0dXJlPWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZGlzYWJsZS1cKC4qXCknYAotKyAgICBhY19mZWF0dXJlPWBlY2hvICRhY19vcHRpb258c2VkIC1lICdzLy0qZGlzYWJsZS0vLydgCi0gICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLS0gICAgZXhwciAieCRhY19mZWF0dXJlIiA6ICIuKlteLV8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0tICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX2ZlYXR1cmUiID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLSAgICBhY19mZWF0dXJlPWBlY2hvICRhY19mZWF0dXJlIHwgc2VkICdzLy0vXy9nJ2AKLS0gICAgZXZhbCAiZW5hYmxlXyRhY19mZWF0dXJlPW5vIiA7OwotKyAgICBpZiB0ZXN0IC1uICJgZWNobyAkYWNfZmVhdHVyZXwgc2VkICdzL1stYS16QS1aMC05X10vL2cnYCI7IHRoZW4KLSsgICAgICB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6ICRhY19mZWF0dXJlOiBpbnZhbGlkIGZlYXR1cmUgbmFtZSIgMT4mMjsgZXhpdCAxOyB9Ci0rICAgIGZpCi0rICAgIGFjX2ZlYXR1cmU9YGVjaG8gJGFjX2ZlYXR1cmV8IHNlZCAncy8tL18vZydgCi0rICAgIGV2YWwgImVuYWJsZV8ke2FjX2ZlYXR1cmV9PW5vIiA7OwotIAotICAgLWVuYWJsZS0qIHwgLS1lbmFibGUtKikKLS0gICAgYWNfZmVhdHVyZT1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmVuYWJsZS1cKFtePV0qXCknYAotKyAgICBhY19mZWF0dXJlPWBlY2hvICRhY19vcHRpb258c2VkIC1lICdzLy0qZW5hYmxlLS8vJyAtZSAncy89LiovLydgCi0gICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLS0gICAgZXhwciAieCRhY19mZWF0dXJlIiA6ICIuKlteLV8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0tICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX2ZlYXR1cmUiID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLSAgICBhY19mZWF0dXJlPWBlY2hvICRhY19mZWF0dXJlIHwgc2VkICdzLy0vXy9nJ2AKLS0gICAgY2FzZSAkYWNfb3B0aW9uIGluCi0tICAgICAgKj0qKSBhY19vcHRhcmc9YGVjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsKLSsgICAgaWYgdGVzdCAtbiAiYGVjaG8gJGFjX2ZlYXR1cmV8IHNlZCAncy9bLV9hLXpBLVowLTldLy9nJ2AiOyB0aGVuCi0rICAgICAgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiAkYWNfZmVhdHVyZTogaW52YWxpZCBmZWF0dXJlIG5hbWUiIDE+JjI7IGV4aXQgMTsgfQotKyAgICBmaQotKyAgICBhY19mZWF0dXJlPWBlY2hvICRhY19mZWF0dXJlfCBzZWQgJ3MvLS9fL2cnYAotKyAgICBjYXNlICIkYWNfb3B0aW9uIiBpbgotKyAgICAgICo9KikgOzsKLSAgICAgICAqKSBhY19vcHRhcmc9eWVzIDs7Ci0gICAgIGVzYWMKLS0gICAgZXZhbCAiZW5hYmxlXyRhY19mZWF0dXJlPSckYWNfb3B0YXJnJyIgOzsKLSsgICAgZXZhbCAiZW5hYmxlXyR7YWNfZmVhdHVyZX09JyRhY19vcHRhcmcnIiA7OwotIAotICAgLWV4ZWMtcHJlZml4IHwgLS1leGVjX3ByZWZpeCB8IC0tZXhlYy1wcmVmaXggfCAtLWV4ZWMtcHJlZmkgXAotICAgfCAtLWV4ZWMtcHJlZiB8IC0tZXhlYy1wcmUgfCAtLWV4ZWMtcHIgfCAtLWV4ZWMtcCB8IC0tZXhlYy0gXAotQEAgLTQyMCw0NyArMTM3LDk1IEBACi0gICAtZXhlYy1wcmVmaXg9KiB8IC0tZXhlY19wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaT0qIFwKLSAgIHwgLS1leGVjLXByZWY9KiB8IC0tZXhlYy1wcmU9KiB8IC0tZXhlYy1wcj0qIHwgLS1leGVjLXA9KiB8IC0tZXhlYy09KiBcCi0gICB8IC0tZXhlYz0qIHwgLS1leGU9KiB8IC0tZXg9KikKLS0gICAgZXhlY19wcmVmaXg9JGFjX29wdGFyZyA7OwotKyAgICBleGVjX3ByZWZpeD0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1nYXMgfCAtLWdhcyB8IC0tZ2EgfCAtLWcpCi0gICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgtZ2FzLgotICAgICB3aXRoX2dhcz15ZXMgOzsKLSAKLS0gIC1oZWxwIHwgLS1oZWxwIHwgLS1oZWwgfCAtLWhlIHwgLWgpCi0tICAgIGFjX2luaXRfaGVscD1sb25nIDs7Ci0tICAtaGVscD1yKiB8IC0taGVscD1yKiB8IC0taGVsPXIqIHwgLS1oZT1yKiB8IC1ociopCi0tICAgIGFjX2luaXRfaGVscD1yZWN1cnNpdmUgOzsKLS0gIC1oZWxwPXMqIHwgLS1oZWxwPXMqIHwgLS1oZWw9cyogfCAtLWhlPXMqIHwgLWhzKikKLS0gICAgYWNfaW5pdF9oZWxwPXNob3J0IDs7Ci0rICAtaGVscCB8IC0taGVscCB8IC0taGVsIHwgLS1oZSkKLSsgICAgIyBPbWl0IHNvbWUgaW50ZXJuYWwgb3Igb2Jzb2xldGUgb3B0aW9ucyB0byBtYWtlIHRoZSBsaXN0IGxlc3MgaW1wb3NpbmcuCi0rICAgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KLSsgICAgY2F0IDw8IEVPRgotK1VzYWdlOiBjb25maWd1cmUgW29wdGlvbnNdIFtob3N0XQotK09wdGlvbnM6IFtkZWZhdWx0cyBpbiBicmFja2V0cyBhZnRlciBkZXNjcmlwdGlvbnNdCi0rQ29uZmlndXJhdGlvbjoKLSsgIC0tY2FjaGUtZmlsZT1GSUxFICAgICAgIGNhY2hlIHRlc3QgcmVzdWx0cyBpbiBGSUxFCi0rICAtLWhlbHAgICAgICAgICAgICAgICAgICBwcmludCB0aGlzIG1lc3NhZ2UKLSsgIC0tbm8tY3JlYXRlICAgICAgICAgICAgIGRvIG5vdCBjcmVhdGUgb3V0cHV0IGZpbGVzCi0rICAtLXF1aWV0LCAtLXNpbGVudCAgICAgICBkbyBub3QgcHJpbnQgXGBjaGVja2luZy4uLicgbWVzc2FnZXMKLSsgIC0tdmVyc2lvbiAgICAgICAgICAgICAgIHByaW50IHRoZSB2ZXJzaW9uIG9mIGF1dG9jb25mIHRoYXQgY3JlYXRlZCBjb25maWd1cmUKLStEaXJlY3RvcnkgYW5kIGZpbGUgbmFtZXM6Ci0rICAtLXByZWZpeD1QUkVGSVggICAgICAgICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcyBpbiBQUkVGSVgKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIFskYWNfZGVmYXVsdF9wcmVmaXhdCi0rICAtLWV4ZWMtcHJlZml4PUVQUkVGSVggICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQgZmlsZXMgaW4gRVBSRUZJWAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgW3NhbWUgYXMgcHJlZml4XQotKyAgLS1iaW5kaXI9RElSICAgICAgICAgICAgdXNlciBleGVjdXRhYmxlcyBpbiBESVIgW0VQUkVGSVgvYmluXQotKyAgLS1zYmluZGlyPURJUiAgICAgICAgICAgc3lzdGVtIGFkbWluIGV4ZWN1dGFibGVzIGluIERJUiBbRVBSRUZJWC9zYmluXQotKyAgLS1saWJleGVjZGlyPURJUiAgICAgICAgcHJvZ3JhbSBleGVjdXRhYmxlcyBpbiBESVIgW0VQUkVGSVgvbGliZXhlY10KLSsgIC0tZGF0YWRpcj1ESVIgICAgICAgICAgIHJlYWQtb25seSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZGF0YSBpbiBESVIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIFtQUkVGSVgvc2hhcmVdCi0rICAtLXN5c2NvbmZkaXI9RElSICAgICAgICByZWFkLW9ubHkgc2luZ2xlLW1hY2hpbmUgZGF0YSBpbiBESVIgW1BSRUZJWC9ldGNdCi0rICAtLXNoYXJlZHN0YXRlZGlyPURJUiAgICBtb2RpZmlhYmxlIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIGluIERJUgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgW1BSRUZJWC9jb21dCi0rICAtLWxvY2Fsc3RhdGVkaXI9RElSICAgICBtb2RpZmlhYmxlIHNpbmdsZS1tYWNoaW5lIGRhdGEgaW4gRElSIFtQUkVGSVgvdmFyXQotKyAgLS1saWJkaXI9RElSICAgICAgICAgICAgb2JqZWN0IGNvZGUgbGlicmFyaWVzIGluIERJUiBbRVBSRUZJWC9saWJdCi0rICAtLWluY2x1ZGVkaXI9RElSICAgICAgICBDIGhlYWRlciBmaWxlcyBpbiBESVIgW1BSRUZJWC9pbmNsdWRlXQotKyAgLS1vbGRpbmNsdWRlZGlyPURJUiAgICAgQyBoZWFkZXIgZmlsZXMgZm9yIG5vbi1nY2MgaW4gRElSIFsvdXNyL2luY2x1ZGVdCi0rICAtLWluZm9kaXI9RElSICAgICAgICAgICBpbmZvIGRvY3VtZW50YXRpb24gaW4gRElSIFtQUkVGSVgvaW5mb10KLSsgIC0tbWFuZGlyPURJUiAgICAgICAgICAgIG1hbiBkb2N1bWVudGF0aW9uIGluIERJUiBbUFJFRklYL21hbl0KLSsgIC0tc3JjZGlyPURJUiAgICAgICAgICAgIGZpbmQgdGhlIHNvdXJjZXMgaW4gRElSIFtjb25maWd1cmUgZGlyIG9yIC4uXQotKyAgLS1wcm9ncmFtLXByZWZpeD1QUkVGSVggcHJlcGVuZCBQUkVGSVggdG8gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKLSsgIC0tcHJvZ3JhbS1zdWZmaXg9U1VGRklYIGFwcGVuZCBTVUZGSVggdG8gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKLSsgIC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT1QUk9HUkFNCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBydW4gc2VkIFBST0dSQU0gb24gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKLStFT0YKLSsgICAgY2F0IDw8IEVPRgotK0hvc3QgdHlwZToKLSsgIC0tYnVpbGQ9QlVJTEQgICAgICAgICAgIGNvbmZpZ3VyZSBmb3IgYnVpbGRpbmcgb24gQlVJTEQgW0JVSUxEPUhPU1RdCi0rICAtLWhvc3Q9SE9TVCAgICAgICAgICAgICBjb25maWd1cmUgZm9yIEhPU1QgW2d1ZXNzZWRdCi0rICAtLXRhcmdldD1UQVJHRVQgICAgICAgICBjb25maWd1cmUgZm9yIFRBUkdFVCBbVEFSR0VUPUhPU1RdCi0rRmVhdHVyZXMgYW5kIHBhY2thZ2VzOgotKyAgLS1kaXNhYmxlLUZFQVRVUkUgICAgICAgZG8gbm90IGluY2x1ZGUgRkVBVFVSRSAoc2FtZSBhcyAtLWVuYWJsZS1GRUFUVVJFPW5vKQotKyAgLS1lbmFibGUtRkVBVFVSRVs9QVJHXSAgaW5jbHVkZSBGRUFUVVJFIFtBUkc9eWVzXQotKyAgLS13aXRoLVBBQ0tBR0VbPUFSR10gICAgdXNlIFBBQ0tBR0UgW0FSRz15ZXNdCi0rICAtLXdpdGhvdXQtUEFDS0FHRSAgICAgICBkbyBub3QgdXNlIFBBQ0tBR0UgKHNhbWUgYXMgLS13aXRoLVBBQ0tBR0U9bm8pCi0rICAtLXgtaW5jbHVkZXM9RElSICAgICAgICBYIGluY2x1ZGUgZmlsZXMgYXJlIGluIERJUgotKyAgLS14LWxpYnJhcmllcz1ESVIgICAgICAgWCBsaWJyYXJ5IGZpbGVzIGFyZSBpbiBESVIKLStFT0YKLSsgICAgaWYgdGVzdCAtbiAiJGFjX2hlbHAiOyB0aGVuCi0rICAgICAgZWNobyAiLS1lbmFibGUgYW5kIC0td2l0aCBvcHRpb25zIHJlY29nbml6ZWQ6JGFjX2hlbHAiCi0rICAgIGZpCi0rICAgIGV4aXQgMCA7OwotIAotICAgLWhvc3QgfCAtLWhvc3QgfCAtLWhvcyB8IC0taG8pCi0tICAgIGFjX3ByZXY9aG9zdF9hbGlhcyA7OwotKyAgICBhY19wcmV2PWhvc3QgOzsKLSAgIC1ob3N0PSogfCAtLWhvc3Q9KiB8IC0taG9zPSogfCAtLWhvPSopCi0tICAgIGhvc3RfYWxpYXM9JGFjX29wdGFyZyA7OwotKyAgICBob3N0PSIkYWNfb3B0YXJnIiA7OwotIAotICAgLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVkaSB8IC0taW5jbHVkZWQgfCAtLWluY2x1ZGUgXAotICAgfCAtLWluY2x1ZCB8IC0taW5jbHUgfCAtLWluY2wgfCAtLWluYykKLSAgICAgYWNfcHJldj1pbmNsdWRlZGlyIDs7Ci0gICAtaW5jbHVkZWRpcj0qIHwgLS1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaT0qIHwgLS1pbmNsdWRlZD0qIHwgLS1pbmNsdWRlPSogXAotICAgfCAtLWluY2x1ZD0qIHwgLS1pbmNsdT0qIHwgLS1pbmNsPSogfCAtLWluYz0qKQotLSAgICBpbmNsdWRlZGlyPSRhY19vcHRhcmcgOzsKLSsgICAgaW5jbHVkZWRpcj0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1pbmZvZGlyIHwgLS1pbmZvZGlyIHwgLS1pbmZvZGkgfCAtLWluZm9kIHwgLS1pbmZvIHwgLS1pbmYpCi0gICAgIGFjX3ByZXY9aW5mb2RpciA7OwotICAgLWluZm9kaXI9KiB8IC0taW5mb2Rpcj0qIHwgLS1pbmZvZGk9KiB8IC0taW5mb2Q9KiB8IC0taW5mbz0qIHwgLS1pbmY9KikKLS0gICAgaW5mb2Rpcj0kYWNfb3B0YXJnIDs7Ci0rICAgIGluZm9kaXI9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtbGliZGlyIHwgLS1saWJkaXIgfCAtLWxpYmRpIHwgLS1saWJkKQotICAgICBhY19wcmV2PWxpYmRpciA7OwotICAgLWxpYmRpcj0qIHwgLS1saWJkaXI9KiB8IC0tbGliZGk9KiB8IC0tbGliZD0qKQotLSAgICBsaWJkaXI9JGFjX29wdGFyZyA7OwotKyAgICBsaWJkaXI9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtbGliZXhlY2RpciB8IC0tbGliZXhlY2RpciB8IC0tbGliZXhlY2RpIHwgLS1saWJleGVjZCB8IC0tbGliZXhlYyBcCi0gICB8IC0tbGliZXhlIHwgLS1saWJleCB8IC0tbGliZSkKLSAgICAgYWNfcHJldj1saWJleGVjZGlyIDs7Ci0gICAtbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaT0qIHwgLS1saWJleGVjZD0qIHwgLS1saWJleGVjPSogXAotICAgfCAtLWxpYmV4ZT0qIHwgLS1saWJleD0qIHwgLS1saWJlPSopCi0tICAgIGxpYmV4ZWNkaXI9JGFjX29wdGFyZyA7OwotKyAgICBsaWJleGVjZGlyPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLWxvY2Fsc3RhdGVkaXIgfCAtLWxvY2Fsc3RhdGVkaXIgfCAtLWxvY2Fsc3RhdGVkaSB8IC0tbG9jYWxzdGF0ZWQgXAotICAgfCAtLWxvY2Fsc3RhdGUgfCAtLWxvY2Fsc3RhdCB8IC0tbG9jYWxzdGEgfCAtLWxvY2Fsc3QgXAotQEAgLTQ2OSwxOSArMjM0LDE5IEBACi0gICAtbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGlyPSogfCAtLWxvY2Fsc3RhdGVkaT0qIHwgLS1sb2NhbHN0YXRlZD0qIFwKLSAgIHwgLS1sb2NhbHN0YXRlPSogfCAtLWxvY2Fsc3RhdD0qIHwgLS1sb2NhbHN0YT0qIHwgLS1sb2NhbHN0PSogXAotICAgfCAtLWxvY2Fscz0qIHwgLS1sb2NhbD0qIHwgLS1sb2NhPSogfCAtLWxvYz0qIHwgLS1sbz0qKQotLSAgICBsb2NhbHN0YXRlZGlyPSRhY19vcHRhcmcgOzsKLSsgICAgbG9jYWxzdGF0ZWRpcj0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1tYW5kaXIgfCAtLW1hbmRpciB8IC0tbWFuZGkgfCAtLW1hbmQgfCAtLW1hbiB8IC0tbWEgfCAtLW0pCi0gICAgIGFjX3ByZXY9bWFuZGlyIDs7Ci0gICAtbWFuZGlyPSogfCAtLW1hbmRpcj0qIHwgLS1tYW5kaT0qIHwgLS1tYW5kPSogfCAtLW1hbj0qIHwgLS1tYT0qIHwgLS1tPSopCi0tICAgIG1hbmRpcj0kYWNfb3B0YXJnIDs7Ci0rICAgIG1hbmRpcj0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1uZnAgfCAtLW5mcCB8IC0tbmYpCi0gICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGhvdXQtZnAuCi0gICAgIHdpdGhfZnA9bm8gOzsKLSAKLSAgIC1uby1jcmVhdGUgfCAtLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXQgfCAtLW5vLWNyZWEgfCAtLW5vLWNyZSBcCi0tICB8IC0tbm8tY3IgfCAtLW5vLWMgfCAtbikKLSsgIHwgLS1uby1jciB8IC0tbm8tYykKLSAgICAgbm9fY3JlYXRlPXllcyA7OwotIAotICAgLW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpbyB8IC0tbm8tcmVjdXJzaSBcCi1AQCAtNDk1LDI2ICsyNjAsMjYgQEAKLSAgIC1vbGRpbmNsdWRlZGlyPSogfCAtLW9sZGluY2x1ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpPSogfCAtLW9sZGluY2x1ZGVkPSogXAotICAgfCAtLW9sZGluY2x1ZGU9KiB8IC0tb2xkaW5jbHVkPSogfCAtLW9sZGluY2x1PSogfCAtLW9sZGluY2w9KiB8IC0tb2xkaW5jPSogXAotICAgfCAtLW9sZGluPSogfCAtLW9sZGk9KiB8IC0tb2xkPSogfCAtLW9sPSogfCAtLW89KikKLS0gICAgb2xkaW5jbHVkZWRpcj0kYWNfb3B0YXJnIDs7Ci0rICAgIG9sZGluY2x1ZGVkaXI9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtcHJlZml4IHwgLS1wcmVmaXggfCAtLXByZWZpIHwgLS1wcmVmIHwgLS1wcmUgfCAtLXByIHwgLS1wKQotICAgICBhY19wcmV2PXByZWZpeCA7OwotICAgLXByZWZpeD0qIHwgLS1wcmVmaXg9KiB8IC0tcHJlZmk9KiB8IC0tcHJlZj0qIHwgLS1wcmU9KiB8IC0tcHI9KiB8IC0tcD0qKQotLSAgICBwcmVmaXg9JGFjX29wdGFyZyA7OwotKyAgICBwcmVmaXg9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZml4IHwgLS1wcm9ncmFtLXByZWZpIHwgLS1wcm9ncmFtLXByZWYgXAotICAgfCAtLXByb2dyYW0tcHJlIHwgLS1wcm9ncmFtLXByIHwgLS1wcm9ncmFtLXApCi0gICAgIGFjX3ByZXY9cHJvZ3JhbV9wcmVmaXggOzsKLSAgIC1wcm9ncmFtLXByZWZpeD0qIHwgLS1wcm9ncmFtLXByZWZpeD0qIHwgLS1wcm9ncmFtLXByZWZpPSogXAotICAgfCAtLXByb2dyYW0tcHJlZj0qIHwgLS1wcm9ncmFtLXByZT0qIHwgLS1wcm9ncmFtLXByPSogfCAtLXByb2dyYW0tcD0qKQotLSAgICBwcm9ncmFtX3ByZWZpeD0kYWNfb3B0YXJnIDs7Ci0rICAgIHByb2dyYW1fcHJlZml4PSIkYWNfb3B0YXJnIiA7OwotIAotICAgLXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaSB8IC0tcHJvZ3JhbS1zdWZmIFwKLSAgIHwgLS1wcm9ncmFtLXN1ZiB8IC0tcHJvZ3JhbS1zdSB8IC0tcHJvZ3JhbS1zKQotICAgICBhY19wcmV2PXByb2dyYW1fc3VmZml4IDs7Ci0gICAtcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZmaT0qIFwKLSAgIHwgLS1wcm9ncmFtLXN1ZmY9KiB8IC0tcHJvZ3JhbS1zdWY9KiB8IC0tcHJvZ3JhbS1zdT0qIHwgLS1wcm9ncmFtLXM9KikKLS0gICAgcHJvZ3JhbV9zdWZmaXg9JGFjX29wdGFyZyA7OwotKyAgICBwcm9ncmFtX3N1ZmZpeD0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIFwKLSAgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW0gfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hIFwKLUBAIC01MzEsNyArMjk2LDcgQEAKLSAgIHwgLS1wcm9ncmFtLXRyYW5zZm89KiB8IC0tcHJvZ3JhbS10cmFuc2Y9KiBcCi0gICB8IC0tcHJvZ3JhbS10cmFucz0qIHwgLS1wcm9ncmFtLXRyYW49KiBcCi0gICB8IC0tcHJvZ3ItdHJhPSogfCAtLXByb2dyYW0tdHI9KiB8IC0tcHJvZ3JhbS10PSopCi0tICAgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9JGFjX29wdGFyZyA7OwotKyAgICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKLSAgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsKQotQEAgLTU0MSw3ICszMDYsNyBAQAotICAgICBhY19wcmV2PXNiaW5kaXIgOzsKLSAgIC1zYmluZGlyPSogfCAtLXNiaW5kaXI9KiB8IC0tc2JpbmRpPSogfCAtLXNiaW5kPSogfCAtLXNiaW49KiBcCi0gICB8IC0tc2JpPSogfCAtLXNiPSopCi0tICAgIHNiaW5kaXI9JGFjX29wdGFyZyA7OwotKyAgICBzYmluZGlyPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpciB8IC0tc2hhcmVkc3RhdGVkaSBcCi0gICB8IC0tc2hhcmVkc3RhdGVkIHwgLS1zaGFyZWRzdGF0ZSB8IC0tc2hhcmVkc3RhdCB8IC0tc2hhcmVkc3RhIFwKLUBAIC01NTIsNTcgKzMxNyw1OCBAQAotICAgfCAtLXNoYXJlZHN0YXRlZD0qIHwgLS1zaGFyZWRzdGF0ZT0qIHwgLS1zaGFyZWRzdGF0PSogfCAtLXNoYXJlZHN0YT0qIFwKLSAgIHwgLS1zaGFyZWRzdD0qIHwgLS1zaGFyZWRzPSogfCAtLXNoYXJlZD0qIHwgLS1zaGFyZT0qIHwgLS1zaGFyPSogXAotICAgfCAtLXNoYT0qIHwgLS1zaD0qKQotLSAgICBzaGFyZWRzdGF0ZWRpcj0kYWNfb3B0YXJnIDs7Ci0rICAgIHNoYXJlZHN0YXRlZGlyPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLXNpdGUgfCAtLXNpdGUgfCAtLXNpdCkKLSAgICAgYWNfcHJldj1zaXRlIDs7Ci0gICAtc2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0qKQotLSAgICBzaXRlPSRhY19vcHRhcmcgOzsKLSsgICAgc2l0ZT0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAtLXNyY2QgfCAtLXNyYyB8IC0tc3IpCi0gICAgIGFjX3ByZXY9c3JjZGlyIDs7Ci0gICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNkPSogfCAtLXNyYz0qIHwgLS1zcj0qKQotLSAgICBzcmNkaXI9JGFjX29wdGFyZyA7OwotKyAgICBzcmNkaXI9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtc3lzY29uZmRpciB8IC0tc3lzY29uZmRpciB8IC0tc3lzY29uZmRpIHwgLS1zeXNjb25mZCB8IC0tc3lzY29uZiBcCi0gICB8IC0tc3lzY29uIHwgLS1zeXNjbyB8IC0tc3lzYyB8IC0tc3lzIHwgLS1zeSkKLSAgICAgYWNfcHJldj1zeXNjb25mZGlyIDs7Ci0gICAtc3lzY29uZmRpcj0qIHwgLS1zeXNjb25mZGlyPSogfCAtLXN5c2NvbmZkaT0qIHwgLS1zeXNjb25mZD0qIHwgLS1zeXNjb25mPSogXAotICAgfCAtLXN5c2Nvbj0qIHwgLS1zeXNjbz0qIHwgLS1zeXNjPSogfCAtLXN5cz0qIHwgLS1zeT0qKQotLSAgICBzeXNjb25mZGlyPSRhY19vcHRhcmcgOzsKLSsgICAgc3lzY29uZmRpcj0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC10YXJnZXQgfCAtLXRhcmdldCB8IC0tdGFyZ2UgfCAtLXRhcmcgfCAtLXRhciB8IC0tdGEgfCAtLXQpCi0tICAgIGFjX3ByZXY9dGFyZ2V0X2FsaWFzIDs7Ci0rICAgIGFjX3ByZXY9dGFyZ2V0IDs7Ci0gICAtdGFyZ2V0PSogfCAtLXRhcmdldD0qIHwgLS10YXJnZT0qIHwgLS10YXJnPSogfCAtLXRhcj0qIHwgLS10YT0qIHwgLS10PSopCi0tICAgIHRhcmdldF9hbGlhcz0kYWNfb3B0YXJnIDs7Ci0rICAgIHRhcmdldD0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC12IHwgLXZlcmJvc2UgfCAtLXZlcmJvc2UgfCAtLXZlcmJvcyB8IC0tdmVyYm8gfCAtLXZlcmIpCi0gICAgIHZlcmJvc2U9eWVzIDs7Ci0gCi0tICAtdmVyc2lvbiB8IC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVycyB8IC1WKQotLSAgICBhY19pbml0X3ZlcnNpb249OiA7OwotKyAgLXZlcnNpb24gfCAtLXZlcnNpb24gfCAtLXZlcnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMpCi0rICAgIGVjaG8gImNvbmZpZ3VyZSBnZW5lcmF0ZWQgYnkgYXV0b2NvbmYgdmVyc2lvbiAyLjEzIgotKyAgICBleGl0IDAgOzsKLSAKLSAgIC13aXRoLSogfCAtLXdpdGgtKikKLS0gICAgYWNfcGFja2FnZT1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKndpdGgtXChbXj1dKlwpJ2AKLSsgICAgYWNfcGFja2FnZT1gZWNobyAkYWNfb3B0aW9ufHNlZCAtZSAncy8tKndpdGgtLy8nIC1lICdzLz0uKi8vJ2AKLSAgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotLSAgICBleHByICJ4JGFjX3BhY2thZ2UiIDogIi4qW14tXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLS0gICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNfcGFja2FnZSIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgIGlmIHRlc3QgLW4gImBlY2hvICRhY19wYWNrYWdlfCBzZWQgJ3MvWy1fYS16QS1aMC05XS8vZydgIjsgdGhlbgotKyAgICAgIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogJGFjX3BhY2thZ2U6IGludmFsaWQgcGFja2FnZSBuYW1lIiAxPiYyOyBleGl0IDE7IH0KLSsgICAgZmkKLSAgICAgYWNfcGFja2FnZT1gZWNobyAkYWNfcGFja2FnZXwgc2VkICdzLy0vXy9nJ2AKLS0gICAgY2FzZSAkYWNfb3B0aW9uIGluCi0tICAgICAgKj0qKSBhY19vcHRhcmc9YGVjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsKLSsgICAgY2FzZSAiJGFjX29wdGlvbiIgaW4KLSsgICAgICAqPSopIDs7Ci0gICAgICAgKikgYWNfb3B0YXJnPXllcyA7OwotICAgICBlc2FjCi0tICAgIGV2YWwgIndpdGhfJGFjX3BhY2thZ2U9JyRhY19vcHRhcmcnIiA7OwotKyAgICBldmFsICJ3aXRoXyR7YWNfcGFja2FnZX09JyRhY19vcHRhcmcnIiA7OwotIAotICAgLXdpdGhvdXQtKiB8IC0td2l0aG91dC0qKQotLSAgICBhY19wYWNrYWdlPWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qd2l0aG91dC1cKC4qXCknYAotKyAgICBhY19wYWNrYWdlPWBlY2hvICRhY19vcHRpb258c2VkIC1lICdzLy0qd2l0aG91dC0vLydgCi0gICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLS0gICAgZXhwciAieCRhY19wYWNrYWdlIiA6ICIuKlteLV8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0tICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3BhY2thZ2UiID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLSAgICBhY19wYWNrYWdlPWBlY2hvICRhY19wYWNrYWdlIHwgc2VkICdzLy0vXy9nJ2AKLS0gICAgZXZhbCAid2l0aF8kYWNfcGFja2FnZT1ubyIgOzsKLSsgICAgaWYgdGVzdCAtbiAiYGVjaG8gJGFjX3BhY2thZ2V8IHNlZCAncy9bLWEtekEtWjAtOV9dLy9nJ2AiOyB0aGVuCi0rICAgICAgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiAkYWNfcGFja2FnZTogaW52YWxpZCBwYWNrYWdlIG5hbWUiIDE+JjI7IGV4aXQgMTsgfQotKyAgICBmaQotKyAgICBhY19wYWNrYWdlPWBlY2hvICRhY19wYWNrYWdlfCBzZWQgJ3MvLS9fL2cnYAotKyAgICBldmFsICJ3aXRoXyR7YWNfcGFja2FnZX09bm8iIDs7Ci0gCi0gICAtLXgpCi0gICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgteC4KLUBAIC02MTMsMTEwICszNzksOTkgQEAKLSAgICAgYWNfcHJldj14X2luY2x1ZGVzIDs7Ci0gICAteC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZT0qIHwgLS14LWluY2x1ZD0qIHwgLS14LWluY2x1PSogXAotICAgfCAtLXgtaW5jbD0qIHwgLS14LWluYz0qIHwgLS14LWluPSogfCAtLXgtaT0qKQotLSAgICB4X2luY2x1ZGVzPSRhY19vcHRhcmcgOzsKLSsgICAgeF9pbmNsdWRlcz0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC14LWxpYnJhcmllcyB8IC0teC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWUgfCAtLXgtbGlicmFyaSBcCi0gICB8IC0teC1saWJyYXIgfCAtLXgtbGlicmEgfCAtLXgtbGliciB8IC0teC1saWIgfCAtLXgtbGkgfCAtLXgtbCkKLSAgICAgYWNfcHJldj14X2xpYnJhcmllcyA7OwotICAgLXgtbGlicmFyaWVzPSogfCAtLXgtbGlicmFyaWVzPSogfCAtLXgtbGlicmFyaWU9KiB8IC0teC1saWJyYXJpPSogXAotICAgfCAtLXgtbGlicmFyPSogfCAtLXgtbGlicmE9KiB8IC0teC1saWJyPSogfCAtLXgtbGliPSogfCAtLXgtbGk9KiB8IC0teC1sPSopCi0tICAgIHhfbGlicmFyaWVzPSRhY19vcHRhcmcgOzsKLSsgICAgeF9saWJyYXJpZXM9IiRhY19vcHRhcmciIDs7Ci0gCi0tICAtKikgeyBlY2hvICIkYXNfbWU6IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkYWNfb3B0aW9uCi0tVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgLSopIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogJGFjX29wdGlvbjogaW52YWxpZCBvcHRpb247IHVzZSAtLWhlbHAgdG8gc2hvdyB1c2FnZSIgMT4mMjsgZXhpdCAxOyB9Ci0gICAgIDs7Ci0gCi0tICAqPSopCi0tICAgIGFjX2VudnZhcj1gZXhwciAieCRhY19vcHRpb24iIDogJ3hcKFtePV0qXCk9J2AKLS0gICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotLSAgICBleHByICJ4JGFjX2VudnZhciIgOiAiLipbXl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0tICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhcmlhYmxlIG5hbWU6ICRhY19lbnZ2YXIiID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLSAgICBhY19vcHRhcmc9YGVjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgCi0tICAgIGV2YWwgIiRhY19lbnZ2YXI9JyRhY19vcHRhcmcnIgotLSAgICBleHBvcnQgJGFjX2VudnZhciA7OwotLQotICAgKikKLS0gICAgIyBGSVhNRTogc2hvdWxkIGJlIHJlbW92ZWQgaW4gYXV0b2NvbmYgMy4wLgotLSAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IHlvdSBzaG91bGQgdXNlIC0tYnVpbGQsIC0taG9zdCwgLS10YXJnZXQiID4mMgotLSAgICBleHByICJ4JGFjX29wdGlvbiIgOiAiLipbXi0uXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLS0gICAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFsaWQgaG9zdCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKLS0gICAgOiAke2J1aWxkX2FsaWFzPSRhY19vcHRpb259ICR7aG9zdF9hbGlhcz0kYWNfb3B0aW9ufSAke3RhcmdldF9hbGlhcz0kYWNfb3B0aW9ufQotKyAgICBpZiB0ZXN0IC1uICJgZWNobyAkYWNfb3B0aW9ufCBzZWQgJ3MvWy1hLXowLTkuXS8vZydgIjsgdGhlbgotKyAgICAgIGVjaG8gImNvbmZpZ3VyZTogd2FybmluZzogJGFjX29wdGlvbjogaW52YWxpZCBob3N0IHR5cGUiIDE+JjIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAieCRub25vcHQiICE9IHhOT05FOyB0aGVuCi0rICAgICAgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBjYW4gb25seSBjb25maWd1cmUgZm9yIG9uZSBob3N0IGFuZCBvbmUgdGFyZ2V0IGF0IGEgdGltZSIgMT4mMjsgZXhpdCAxOyB9Ci0rICAgIGZpCi0rICAgIG5vbm9wdD0iJGFjX29wdGlvbiIKLSAgICAgOzsKLSAKLSAgIGVzYWMKLSBkb25lCi0gCi0gaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCi0tICBhY19vcHRpb249LS1gZWNobyAkYWNfcHJldiB8IHNlZCAncy9fLy0vZydgCi0tICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IG1pc3NpbmcgYXJndW1lbnQgdG8gJGFjX29wdGlvbiIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6IG1pc3NpbmcgYXJndW1lbnQgdG8gLS1gZWNobyAkYWNfcHJldiB8IHNlZCAncy9fLy0vZydgIiAxPiYyOyBleGl0IDE7IH0KLSBmaQotIAotLSMgQmUgc3VyZSB0byBoYXZlIGFic29sdXRlIHBhdGhzLgotLWZvciBhY192YXIgaW4gZXhlY19wcmVmaXggcHJlZml4Ci0tZG8KLS0gIGV2YWwgYWNfdmFsPSRgZWNobyAkYWNfdmFyYAotLSAgY2FzZSAkYWNfdmFsIGluCi0tICAgIFtcXC8kXSogfCA/OltcXC9dKiB8IE5PTkUgfCAnJyApIDs7Ci0tICAgICopICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGV4cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwiID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0tICBlc2FjCi0tZG9uZQotK3RyYXAgJ3JtIC1mciBjb25mdGVzdCogY29uZmRlZnMqIGNvcmUgY29yZS4qICouY29yZSAkYWNfY2xlYW5fZmlsZXM7IGV4aXQgMScgMSAyIDE1Ci0gCi0tIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgcGF0aHMuCi0tZm9yIGFjX3ZhciBpbiBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBcCi0tICAgICAgICAgICAgICBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIKLSsjIEZpbGUgZGVzY3JpcHRvciB1c2FnZToKLSsjIDAgc3RhbmRhcmQgaW5wdXQKLSsjIDEgZmlsZSBjcmVhdGlvbgotKyMgMiBlcnJvcnMgYW5kIHdhcm5pbmdzCi0rIyAzIHNvbWUgc3lzdGVtcyBtYXkgb3BlbiBpdCB0byAvZGV2L3R0eQotKyMgNCB1c2VkIG9uIHRoZSBLdWJvdGEgVGl0YW4KLSsjIDYgY2hlY2tpbmcgZm9yLi4uIG1lc3NhZ2VzIGFuZCByZXN1bHRzCi0rIyA1IGNvbXBpbGVyIG1lc3NhZ2VzIHNhdmVkIGluIGNvbmZpZy5sb2cKLStpZiB0ZXN0ICIkc2lsZW50IiA9IHllczsgdGhlbgotKyAgZXhlYyA2Pi9kZXYvbnVsbAotK2Vsc2UKLSsgIGV4ZWMgNj4mMQotK2ZpCi0rZXhlYyA1Pi4vY29uZmlnLmxvZwotKwotK2VjaG8gIlwKLStUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQotK3J1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCi0rIiAxPiY1Ci0rCi0rIyBTdHJpcCBvdXQgLS1uby1jcmVhdGUgYW5kIC0tbm8tcmVjdXJzaW9uIHNvIHRoZXkgZG8gbm90IHBpbGUgdXAuCi0rIyBBbHNvIHF1b3RlIGFueSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YWNoYXJhY3RlcnMuCi0rYWNfY29uZmlndXJlX2FyZ3M9Ci0rZm9yIGFjX2FyZwotIGRvCi0tICBldmFsIGFjX3ZhbD0kYGVjaG8gJGFjX3ZhcmAKLS0gIGNhc2UgJGFjX3ZhbCBpbgotLSAgICBbXFwvJF0qIHwgPzpbXFwvXSogKSA7OwotLSAgICAqKSAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBleHBlY3RlZCBhbiBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBmb3IgLS0kYWNfdmFyOiAkYWNfdmFsIiA+JjIKLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotKyAgY2FzZSAiJGFjX2FyZyIgaW4KLSsgIC1uby1jcmVhdGUgfCAtLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXQgfCAtLW5vLWNyZWEgfCAtLW5vLWNyZSBcCi0rICB8IC0tbm8tY3IgfCAtLW5vLWMpIDs7Ci0rICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNpIFwKLSsgIHwgLS1uby1yZWN1cnMgfCAtLW5vLXJlY3VyIHwgLS1uby1yZWN1IHwgLS1uby1yZWMgfCAtLW5vLXJlIHwgLS1uby1yKSA7OwotKyAgKiIgIip8KiIJIip8KltcW1xdXH5cI1wkXF5cJlwqXChcKVx7XH1cXFx8XDtcPFw+XD9dKikKLSsgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgJyRhY19hcmcnIiA7OwotKyAgKikgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAkYWNfYXJnIiA7OwotICAgZXNhYwotIGRvbmUKLSAKLS0jIFRoZXJlIG1pZ2h0IGJlIHBlb3BsZSB3aG8gZGVwZW5kIG9uIHRoZSBvbGQgYnJva2VuIGJlaGF2aW9yOiBgJGhvc3QnCi0tIyB1c2VkIHRvIGhvbGQgdGhlIGFyZ3VtZW50IG9mIC0taG9zdCBldGMuCi0tIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUgZGF5LgotLWJ1aWxkPSRidWlsZF9hbGlhcwotLWhvc3Q9JGhvc3RfYWxpYXMKLS10YXJnZXQ9JHRhcmdldF9hbGlhcwotKyMgTkxTIG51aXNhbmNlcy4KLSsjIE9ubHkgc2V0IHRoZXNlIHRvIEMgaWYgYWxyZWFkeSBzZXQuICBUaGVzZSBtdXN0IG5vdCBiZSBzZXQgdW5jb25kaXRpb25hbGx5Ci0rIyBiZWNhdXNlIG5vdCBhbGwgc3lzdGVtcyB1bmRlcnN0YW5kIGUuZy4gTEFORz1DIChub3RhYmx5IFNDTykuCi0rIyBGaXhpbmcgTENfTUVTU0FHRVMgcHJldmVudHMgU29sYXJpcyBzaCBmcm9tIHRyYW5zbGF0aW5nIHZhciB2YWx1ZXMgaW4gYHNldCchCi0rIyBOb24tQyBMQ19DVFlQRSB2YWx1ZXMgYnJlYWsgdGhlIGN0eXBlIGNoZWNrLgotK2lmIHRlc3QgIiR7TEFORytzZXR9IiAgID0gc2V0OyB0aGVuIExBTkc9QzsgICBleHBvcnQgTEFORzsgICBmaQotK2lmIHRlc3QgIiR7TENfQUxMK3NldH0iID0gc2V0OyB0aGVuIExDX0FMTD1DOyBleHBvcnQgTENfQUxMOyBmaQotK2lmIHRlc3QgIiR7TENfTUVTU0FHRVMrc2V0fSIgPSBzZXQ7IHRoZW4gTENfTUVTU0FHRVM9QzsgZXhwb3J0IExDX01FU1NBR0VTOyBmaQotK2lmIHRlc3QgIiR7TENfQ1RZUEUrc2V0fSIgICAgPSBzZXQ7IHRoZW4gTENfQ1RZUEU9QzsgICAgZXhwb3J0IExDX0NUWVBFOyAgICBmaQotIAotLSMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KLS1pZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiICE9IHg7IHRoZW4KLS0gIGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiID0geDsgdGhlbgotLSAgICBjcm9zc19jb21waWxpbmc9bWF5YmUKLS0gICAgZWNobyAiJGFzX21lOiBXQVJOSU5HOiBJZiB5b3Ugd2FudGVkIHRvIHNldCB0aGUgLS1idWlsZCB0eXBlLCBkb24ndCB1c2UgLS1ob3N0LgotLSAgICBJZiBhIGNyb3NzIGNvbXBpbGVyIGlzIGRldGVjdGVkIHRoZW4gY3Jvc3MgY29tcGlsZSBtb2RlIHdpbGwgYmUgdXNlZC4iID4mMgotLSAgZWxpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiAhPSAieCRob3N0X2FsaWFzIjsgdGhlbgotLSAgICBjcm9zc19jb21waWxpbmc9eWVzCi0tICBmaQotLWZpCi0rIyBjb25mZGVmcy5oIGF2b2lkcyBPUyBjb21tYW5kIGxpbmUgbGVuZ3RoIGxpbWl0cyB0aGF0IERFRlMgY2FuIGV4Y2VlZC4KLStybSAtcmYgY29uZnRlc3QqIGNvbmZkZWZzLmgKLSsjIEFJWCBjcHAgbG9zZXMgb24gYW4gZW1wdHkgZmlsZSwgc28gbWFrZSBzdXJlIGl0IGNvbnRhaW5zIGF0IGxlYXN0IGEgbmV3bGluZS4KLStlY2hvID4gY29uZmRlZnMuaAotIAotLWFjX3Rvb2xfcHJlZml4PQotLXRlc3QgLW4gIiRob3N0X2FsaWFzIiAmJiBhY190b29sX3ByZWZpeD0kaG9zdF9hbGlhcy0KLSsjIEEgZmlsZW5hbWUgdW5pcXVlIHRvIHRoaXMgcGFja2FnZSwgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeSB0aGF0Ci0rIyBjb25maWd1cmUgaXMgaW4sIHdoaWNoIHdlIGNhbiBsb29rIGZvciB0byBmaW5kIG91dCBpZiBzcmNkaXIgaXMgY29ycmVjdC4KLSthY191bmlxdWVfZmlsZT1pbmNsdWRlL2ZsaXRlLmgKLSAKLS10ZXN0ICIkc2lsZW50IiA9IHllcyAmJiBleGVjIDY+L2Rldi9udWxsCi0tCi0tCi0gIyBGaW5kIHRoZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkLgotIGlmIHRlc3QgLXogIiRzcmNkaXIiOyB0aGVuCi0gICBhY19zcmNkaXJfZGVmYXVsdGVkPXllcwotICAgIyBUcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0aGVuIGl0cyBwYXJlbnQuCi0tICBhY19jb25mZGlyPWAoZGlybmFtZSAiJDAiKSAyPi9kZXYvbnVsbCB8fAotLSRhc19leHByIFgiJDAiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0tICAgICAgICAgWCIkMCIgOiAnWFwoLy9cKVteL10nIFx8IFwKLS0gICAgICAgICBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAotLSAgICAgICAgIFgiJDAiIDogJ1hcKC9cKScgXHwgXAotLSAgICAgICAgIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotLWVjaG8gWCIkMCIgfAotLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLS0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0tICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLS0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0tICAJICBzLy4qLy4vOyBxJ2AKLSsgIGFjX3Byb2c9JDAKLSsgIGFjX2NvbmZkaXI9YGVjaG8gJGFjX3Byb2d8c2VkICdzJS9bXi9dW14vXSokJSUnYAotKyAgdGVzdCAieCRhY19jb25mZGlyIiA9ICJ4JGFjX3Byb2ciICYmIGFjX2NvbmZkaXI9LgotICAgc3JjZGlyPSRhY19jb25mZGlyCi0gICBpZiB0ZXN0ICEgLXIgJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGU7IHRoZW4KLSAgICAgc3JjZGlyPS4uCi1AQCAtNzI2LDQ0MSArNDgxLDEzIEBACi0gZmkKLSBpZiB0ZXN0ICEgLXIgJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGU7IHRoZW4KLSAgIGlmIHRlc3QgIiRhY19zcmNkaXJfZGVmYXVsdGVkIiA9IHllczsgdGhlbgotLSAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlxdWVfZmlsZSkgaW4gJGFjX2NvbmZkaXIgb3IgLi4iID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6IGNhbiBub3QgZmluZCBzb3VyY2VzIGluICRhY19jb25mZGlyIG9yIC4uIiAxPiYyOyBleGl0IDE7IH0KLSAgIGVsc2UKLS0gICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRzcmNkaXIiID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6IGNhbiBub3QgZmluZCBzb3VyY2VzIGluICRzcmNkaXIiIDE+JjI7IGV4aXQgMTsgfQotICAgZmkKLSBmaQotLShjZCAkc3JjZGlyICYmIHRlc3QgLXIgLi8kYWNfdW5pcXVlX2ZpbGUpIDI+L2Rldi9udWxsIHx8Ci0tICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IHNvdXJjZXMgYXJlIGluICRzcmNkaXIsIGJ1dCBcYGNkICRzcmNkaXInIGRvZXMgbm90IHdvcmsiID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLXNyY2Rpcj1gZWNobyAiJHNyY2RpciIgfCBzZWQgJ3MlXChbXlxcL11cKVtcXC9dKiQlXDElJ2AKLS1hY19lbnZfYnVpbGRfYWxpYXNfc2V0PSR7YnVpbGRfYWxpYXMrc2V0fQotLWFjX2Vudl9idWlsZF9hbGlhc192YWx1ZT0kYnVpbGRfYWxpYXMKLS1hY19jdl9lbnZfYnVpbGRfYWxpYXNfc2V0PSR7YnVpbGRfYWxpYXMrc2V0fQotLWFjX2N2X2Vudl9idWlsZF9hbGlhc192YWx1ZT0kYnVpbGRfYWxpYXMKLS1hY19lbnZfaG9zdF9hbGlhc19zZXQ9JHtob3N0X2FsaWFzK3NldH0KLS1hY19lbnZfaG9zdF9hbGlhc192YWx1ZT0kaG9zdF9hbGlhcwotLWFjX2N2X2Vudl9ob3N0X2FsaWFzX3NldD0ke2hvc3RfYWxpYXMrc2V0fQotLWFjX2N2X2Vudl9ob3N0X2FsaWFzX3ZhbHVlPSRob3N0X2FsaWFzCi0tYWNfZW52X3RhcmdldF9hbGlhc19zZXQ9JHt0YXJnZXRfYWxpYXMrc2V0fQotLWFjX2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9JHRhcmdldF9hbGlhcwotLWFjX2N2X2Vudl90YXJnZXRfYWxpYXNfc2V0PSR7dGFyZ2V0X2FsaWFzK3NldH0KLS1hY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3ZhbHVlPSR0YXJnZXRfYWxpYXMKLS1hY19lbnZfQ0Nfc2V0PSR7Q0Mrc2V0fQotLWFjX2Vudl9DQ192YWx1ZT0kQ0MKLS1hY19jdl9lbnZfQ0Nfc2V0PSR7Q0Mrc2V0fQotLWFjX2N2X2Vudl9DQ192YWx1ZT0kQ0MKLS1hY19lbnZfQ0ZMQUdTX3NldD0ke0NGTEFHUytzZXR9Ci0tYWNfZW52X0NGTEFHU192YWx1ZT0kQ0ZMQUdTCi0tYWNfY3ZfZW52X0NGTEFHU19zZXQ9JHtDRkxBR1Mrc2V0fQotLWFjX2N2X2Vudl9DRkxBR1NfdmFsdWU9JENGTEFHUwotLWFjX2Vudl9MREZMQUdTX3NldD0ke0xERkxBR1Mrc2V0fQotLWFjX2Vudl9MREZMQUdTX3ZhbHVlPSRMREZMQUdTCi0tYWNfY3ZfZW52X0xERkxBR1Nfc2V0PSR7TERGTEFHUytzZXR9Ci0tYWNfY3ZfZW52X0xERkxBR1NfdmFsdWU9JExERkxBR1MKLS1hY19lbnZfQ1BQRkxBR1Nfc2V0PSR7Q1BQRkxBR1Mrc2V0fQotLWFjX2Vudl9DUFBGTEFHU192YWx1ZT0kQ1BQRkxBR1MKLS1hY19jdl9lbnZfQ1BQRkxBR1Nfc2V0PSR7Q1BQRkxBR1Mrc2V0fQotLWFjX2N2X2Vudl9DUFBGTEFHU192YWx1ZT0kQ1BQRkxBR1MKLS1hY19lbnZfQ1BQX3NldD0ke0NQUCtzZXR9Ci0tYWNfZW52X0NQUF92YWx1ZT0kQ1BQCi0tYWNfY3ZfZW52X0NQUF9zZXQ9JHtDUFArc2V0fQotLWFjX2N2X2Vudl9DUFBfdmFsdWU9JENQUAotK3NyY2Rpcj1gZWNobyAiJHtzcmNkaXJ9IiB8IHNlZCAncyVcKFteL11cKS8qJCVcMSUnYAotIAotLSMKLS0jIFJlcG9ydCB0aGUgLS1oZWxwIG1lc3NhZ2UuCi0tIwotLWlmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gImxvbmciOyB0aGVuCi0tICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KLS0gICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KLS0gIGNhdCA8PF9BQ0VPRgotLVxgY29uZmlndXJlJyBjb25maWd1cmVzIHRoaXMgcGFja2FnZSB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCi0tCi0tVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtWQVI9VkFMVUVdLi4uCi0tCi0tVG8gYXNzaWduIGVudmlyb25tZW50IHZhcmlhYmxlcyAoZS5nLiwgQ0MsIENGTEFHUy4uLiksIHNwZWNpZnkgdGhlbSBhcwotLVZBUj1WQUxVRS4gIFNlZSBiZWxvdyBmb3IgZGVzY3JpcHRpb25zIG9mIHNvbWUgb2YgdGhlIHVzZWZ1bCB2YXJpYWJsZXMuCi0tCi0tRGVmYXVsdHMgZm9yIHRoZSBvcHRpb25zIGFyZSBzcGVjaWZpZWQgaW4gYnJhY2tldHMuCi0tCi0tQ29uZmlndXJhdGlvbjoKLS0gIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0Ci0tICAgICAgLS1oZWxwPXNob3J0ICAgICAgICBkaXNwbGF5IG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlCi0tICAgICAgLS1oZWxwPXJlY3Vyc2l2ZSAgICBkaXNwbGF5IHRoZSBzaG9ydCBoZWxwIG9mIGFsbCB0aGUgaW5jbHVkZWQgcGFja2FnZXMKLS0gIC1WLCAtLXZlcnNpb24gICAgICAgICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAotLSAgLXEsIC0tcXVpZXQsIC0tc2lsZW50ICAgZG8gbm90IHByaW50IFxgY2hlY2tpbmcuLi4nIG1lc3NhZ2VzCi0tICAgICAgLS1jYWNoZS1maWxlPUZJTEUgICBjYWNoZSB0ZXN0IHJlc3VsdHMgaW4gRklMRSBbZGlzYWJsZWRdCi0tICAtQywgLS1jb25maWctY2FjaGUgICAgICBhbGlhcyBmb3IgXGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJwotLSAgLW4sIC0tbm8tY3JlYXRlICAgICAgICAgZG8gbm90IGNyZWF0ZSBvdXRwdXQgZmlsZXMKLS0gICAgICAtLXNyY2Rpcj1ESVIgICAgICAgIGZpbmQgdGhlIHNvdXJjZXMgaW4gRElSIFtjb25maWd1cmUgZGlyIG9yIFxgLi4nXQotLQotLV9BQ0VPRgotLQotLSAgY2F0IDw8X0FDRU9GCi0tSW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzOgotLSAgLS1wcmVmaXg9UFJFRklYICAgICAgICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMgaW4gUFJFRklYCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBbJGFjX2RlZmF1bHRfcHJlZml4XQotLSAgLS1leGVjLXByZWZpeD1FUFJFRklYICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IGZpbGVzIGluIEVQUkVGSVgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIFtQUkVGSVhdCi0tCi0tQnkgZGVmYXVsdCwgXGBtYWtlIGluc3RhbGwnIHdpbGwgaW5zdGFsbCBhbGwgdGhlIGZpbGVzIGluCi0tXGAkYWNfZGVmYXVsdF9wcmVmaXgvYmluJywgXGAkYWNfZGVmYXVsdF9wcmVmaXgvbGliJyBldGMuICBZb3UgY2FuIHNwZWNpZnkKLS1hbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gXGAkYWNfZGVmYXVsdF9wcmVmaXgnIHVzaW5nIFxgLS1wcmVmaXgnLAotLWZvciBpbnN0YW5jZSBcYC0tcHJlZml4PVwkSE9NRScuCi0tCi0tRm9yIGJldHRlciBjb250cm9sLCB1c2UgdGhlIG9wdGlvbnMgYmVsb3cuCi0tCi0tRmluZSB0dW5pbmcgb2YgdGhlIGluc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKLS0gIC0tYmluZGlyPURJUiAgICAgICAgICAgdXNlciBleGVjdXRhYmxlcyBbRVBSRUZJWC9iaW5dCi0tICAtLXNiaW5kaXI9RElSICAgICAgICAgIHN5c3RlbSBhZG1pbiBleGVjdXRhYmxlcyBbRVBSRUZJWC9zYmluXQotLSAgLS1saWJleGVjZGlyPURJUiAgICAgICBwcm9ncmFtIGV4ZWN1dGFibGVzIFtFUFJFRklYL2xpYmV4ZWNdCi0tICAtLWRhdGFkaXI9RElSICAgICAgICAgIHJlYWQtb25seSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZGF0YSBbUFJFRklYL3NoYXJlXQotLSAgLS1zeXNjb25mZGlyPURJUiAgICAgICByZWFkLW9ubHkgc2luZ2xlLW1hY2hpbmUgZGF0YSBbUFJFRklYL2V0Y10KLS0gIC0tc2hhcmVkc3RhdGVkaXI9RElSICAgbW9kaWZpYWJsZSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZGF0YSBbUFJFRklYL2NvbV0KLS0gIC0tbG9jYWxzdGF0ZWRpcj1ESVIgICAgbW9kaWZpYWJsZSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvdmFyXQotLSAgLS1saWJkaXI9RElSICAgICAgICAgICBvYmplY3QgY29kZSBsaWJyYXJpZXMgW0VQUkVGSVgvbGliXQotLSAgLS1pbmNsdWRlZGlyPURJUiAgICAgICBDIGhlYWRlciBmaWxlcyBbUFJFRklYL2luY2x1ZGVdCi0tICAtLW9sZGluY2x1ZGVkaXI9RElSICAgIEMgaGVhZGVyIGZpbGVzIGZvciBub24tZ2NjIFsvdXNyL2luY2x1ZGVdCi0tICAtLWluZm9kaXI9RElSICAgICAgICAgIGluZm8gZG9jdW1lbnRhdGlvbiBbUFJFRklYL2luZm9dCi0tICAtLW1hbmRpcj1ESVIgICAgICAgICAgIG1hbiBkb2N1bWVudGF0aW9uIFtQUkVGSVgvbWFuXQotLV9BQ0VPRgotLQotLSAgY2F0IDw8XF9BQ0VPRgotLQotLVN5c3RlbSB0eXBlczoKLS0gIC0tYnVpbGQ9QlVJTEQgICAgIGNvbmZpZ3VyZSBmb3IgYnVpbGRpbmcgb24gQlVJTEQgW2d1ZXNzZWRdCi0tICAtLWhvc3Q9SE9TVCAgICAgICBjcm9zcy1jb21waWxlIHRvIGJ1aWxkIHByb2dyYW1zIHRvIHJ1biBvbiBIT1NUIFtCVUlMRF0KLS0gIC0tdGFyZ2V0PVRBUkdFVCAgIGNvbmZpZ3VyZSBmb3IgYnVpbGRpbmcgY29tcGlsZXJzIGZvciBUQVJHRVQgW0hPU1RdCi0tX0FDRU9GCi0tZmkKLS0KLS1pZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgotLQotLSAgY2F0IDw8XF9BQ0VPRgotLQotLU9wdGlvbmFsIEZlYXR1cmVzOgotLSAgLS1kaXNhYmxlLUZFQVRVUkUgICAgICAgZG8gbm90IGluY2x1ZGUgRkVBVFVSRSAoc2FtZSBhcyAtLWVuYWJsZS1GRUFUVVJFPW5vKQotLSAgLS1lbmFibGUtRkVBVFVSRVs9QVJHXSAgaW5jbHVkZSBGRUFUVVJFIFtBUkc9eWVzXQotLSAgLS1kaXNhYmxlLXNoYXJlZCAgICAgd2l0aG91dCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0Ci0tICAtLWRpc2FibGUtc29ja2V0cyAgICAgd2l0aG91dCBzb2NrZXQgc3VwcG9ydAotLQotLU9wdGlvbmFsIFBhY2thZ2VzOgotLSAgLS13aXRoLVBBQ0tBR0VbPUFSR10gICAgdXNlIFBBQ0tBR0UgW0FSRz15ZXNdCi0tICAtLXdpdGhvdXQtUEFDS0FHRSAgICAgICBkbyBub3QgdXNlIFBBQ0tBR0UgKHNhbWUgYXMgLS13aXRoLVBBQ0tBR0U9bm8pCi0tICAtLXdpdGgtYXVkaW8gICAgICAgICAgd2l0aCBzcGVjaWZpYyBhdWRpbyBzdXBwb3J0IChub25lIGxpbnV4IGZyZWVic2QgZXRjKQotLSAgLS13aXRoLWxhbmcgICAgICAgICAgIHdpdGggbGFuZ3VhZ2UKLS0gIC0td2l0aC12b3ggICAgICAgICAgICB3aXRoIHZveAotLSAgLS13aXRoLWxleCAgICAgICAgICAgIHdpdGggbGV4aWNvbgotLQotLVNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgotLSAgQ0MgICAgICAgICAgQyBjb21waWxlciBjb21tYW5kCi0tICBDRkxBR1MgICAgICBDIGNvbXBpbGVyIGZsYWdzCi0tICBMREZMQUdTICAgICBsaW5rZXIgZmxhZ3MsIGUuZy4gLUw8bGliIGRpcj4gaWYgeW91IGhhdmUgbGlicmFyaWVzIGluIGEKLS0gICAgICAgICAgICAgIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8bGliIGRpcj4KLS0gIENQUEZMQUdTICAgIEMvQysrIHByZXByb2Nlc3NvciBmbGFncywgZS5nLiAtSTxpbmNsdWRlIGRpcj4gaWYgeW91IGhhdmUKLS0gICAgICAgICAgICAgIGhlYWRlcnMgaW4gYSBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGlyPgotLSAgQ1BQICAgICAgICAgQyBwcmVwcm9jZXNzb3IKLS0KLS1Vc2UgdGhlc2UgdmFyaWFibGVzIHRvIG92ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZpZ3VyZScgb3IgdG8gaGVscAotLWl0IHRvIGZpbmQgbGlicmFyaWVzIGFuZCBwcm9ncmFtcyB3aXRoIG5vbnN0YW5kYXJkIG5hbWVzL2xvY2F0aW9ucy4KLS0KLS1fQUNFT0YKLS1maQotLQotLWlmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gInJlY3Vyc2l2ZSI7IHRoZW4KLS0gICMgSWYgdGhlcmUgYXJlIHN1YmRpcnMsIHJlcG9ydCB0aGVpciBzcGVjaWZpYyAtLWhlbHAuCi0tICBhY19wb3BkaXI9YHB3ZGAKLS0gIGZvciBhY19kaXIgaW4gOiAkYWNfc3ViZGlyc19hbGw7IGRvIHRlc3QgIngkYWNfZGlyIiA9IHg6ICYmIGNvbnRpbnVlCi0tICAgIHRlc3QgLWQgJGFjX2RpciB8fCBjb250aW51ZQotLSAgICBhY19idWlsZGRpcj0uCi0tCi0taWYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgotLSAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAotLSAgIyBBICIuLi8iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KLS0gIGFjX3RvcF9idWlsZGRpcj1gZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzLC9bXlxcL10qLC4uLyxnJ2AKLS1lbHNlCi0tICBhY19kaXJfc3VmZml4PSBhY190b3BfYnVpbGRkaXI9Ci0tZmkKLS0KLS1jYXNlICRzcmNkaXIgaW4KLS0gIC4pICAjIE5vIC0tc3JjZGlyIG9wdGlvbi4gIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KLS0gICAgYWNfc3JjZGlyPS4KLS0gICAgaWYgdGVzdCAteiAiJGFjX3RvcF9idWlsZGRpciI7IHRoZW4KLS0gICAgICAgYWNfdG9wX3NyY2Rpcj0uCi0tICAgIGVsc2UKLS0gICAgICAgYWNfdG9wX3NyY2Rpcj1gZWNobyAkYWNfdG9wX2J1aWxkZGlyIHwgc2VkICdzLC8kLCwnYAotLSAgICBmaSA7OwotLSAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgotLSAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotLSAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKLS0gICopICMgUmVsYXRpdmUgcGF0aC4KLS0gICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLS0gICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciA7OwotLWVzYWMKLS0jIERvbid0IGJsaW5kbHkgcGVyZm9ybSBhIGBjZCAiJGFjX2RpciIvJGFjX2ZvbyAmJiBwd2RgIHNpbmNlICRhY19mb28gY2FuIGJlCi0tIyBhYnNvbHV0ZS4KLS1hY19hYnNfYnVpbGRkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNfYnVpbGRkaXIgJiYgcHdkYAotLWFjX2Fic190b3BfYnVpbGRkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAke2FjX3RvcF9idWlsZGRpcn0uICYmIHB3ZGAKLS1hY19hYnNfc3JjZGlyPWBjZCAiJGFjX2RpciIgJiYgY2QgJGFjX3NyY2RpciAmJiBwd2RgCi0tYWNfYWJzX3RvcF9zcmNkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNfdG9wX3NyY2RpciAmJiBwd2RgCi0tCi0tICAgIGNkICRhY19kaXIKLS0gICAgIyBDaGVjayBmb3IgZ3Vlc3RlZCBjb25maWd1cmU7IG90aGVyd2lzZSBnZXQgQ3lnbnVzIHN0eWxlIGNvbmZpZ3VyZS4KLS0gICAgaWYgdGVzdCAtZiAkYWNfc3JjZGlyL2NvbmZpZ3VyZS5nbnU7IHRoZW4KLS0gICAgICBlY2hvCi0tICAgICAgJFNIRUxMICRhY19zcmNkaXIvY29uZmlndXJlLmdudSAgLS1oZWxwPXJlY3Vyc2l2ZQotLSAgICBlbGlmIHRlc3QgLWYgJGFjX3NyY2Rpci9jb25maWd1cmU7IHRoZW4KLS0gICAgICBlY2hvCi0tICAgICAgJFNIRUxMICRhY19zcmNkaXIvY29uZmlndXJlICAtLWhlbHA9cmVjdXJzaXZlCi0tICAgIGVsaWYgdGVzdCAtZiAkYWNfc3JjZGlyL2NvbmZpZ3VyZS5hYyB8fAotLSAgICAgICAgICAgdGVzdCAtZiAkYWNfc3JjZGlyL2NvbmZpZ3VyZS5pbjsgdGhlbgotLSAgICAgIGVjaG8KLS0gICAgICAkYWNfY29uZmlndXJlIC0taGVscAotLSAgICBlbHNlCi0tICAgICAgZWNobyAiJGFzX21lOiBXQVJOSU5HOiBubyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGlzIGluICRhY19kaXIiID4mMgotLSAgICBmaQotLSAgICBjZCAkYWNfcG9wZGlyCi0tICBkb25lCi0tZmkKLS0KLS10ZXN0IC1uICIkYWNfaW5pdF9oZWxwIiAmJiBleGl0IDAKLS1pZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCi0tICBjYXQgPDxcX0FDRU9GCi0tCi0tQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIKLS1GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLS1UaGlzIGNvbmZpZ3VyZSBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotLWdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KLS1fQUNFT0YKLS0gIGV4aXQgMAotLWZpCi0tZXhlYyA1PmNvbmZpZy5sb2cKLS1jYXQgPiY1IDw8X0FDRU9GCi0tVGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hpbGUKLS1ydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgotLQotLUl0IHdhcyBjcmVhdGVkIGJ5ICRhc19tZSwgd2hpY2ggd2FzCi0tZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCi0tCi0tICAkICQwICRACi0tCi0tX0FDRU9GCi0tewotLWNhdCA8PF9BU1VOQU1FCi0tIyMgLS0tLS0tLS0tICMjCi0tIyMgUGxhdGZvcm0uICMjCi0tIyMgLS0tLS0tLS0tICMjCi0tCi0taG9zdG5hbWUgPSBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKLS11bmFtZSAtbSA9IGAodW5hbWUgLW0pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLS11bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLS11bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLS11bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLS0KLS0vdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLS0vYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGwgICAgIHx8IGVjaG8gdW5rbm93bmAKLS0KLS0vYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsICAgICAgICAgICAgICB8fCBlY2hvIHVua25vd25gCi0tL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAotLS91c3IvY29udmV4L2dldHN5c2luZm8gPSBgKC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLS1ob3N0aW5mbyAgICAgICAgICAgICAgID0gYChob3N0aW5mbykgMj4vZGV2L251bGwgICAgICAgICAgICAgICB8fCBlY2hvIHVua25vd25gCi0tL2Jpbi9tYWNoaW5lICAgICAgICAgICA9IGAoL2Jpbi9tYWNoaW5lKSAyPi9kZXYvbnVsbCAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAotLS91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS0vYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbCAgICAgICAgICB8fCBlY2hvIHVua25vd25gCi0tCi0tX0FTVU5BTUUKLS0KLS1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgZWNobyAiUEFUSDogJGFzX2RpciIKLS1kb25lCi0tCi0tfSA+JjUKLS0KLS1jYXQgPiY1IDw8X0FDRU9GCi0tCi0tCi0tIyMgLS0tLS0tLS0tLS0gIyMKLS0jIyBDb3JlIHRlc3RzLiAjIwotLSMjIC0tLS0tLS0tLS0tICMjCi0tCi0tX0FDRU9GCi0tCi0tCi0tIyBLZWVwIGEgdHJhY2Ugb2YgdGhlIGNvbW1hbmQgbGluZS4KLS0jIFN0cmlwIG91dCAtLW5vLWNyZWF0ZSBhbmQgLS1uby1yZWN1cnNpb24gc28gdGhleSBkbyBub3QgcGlsZSB1cC4KLS0jIFN0cmlwIG91dCAtLXNpbGVudCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gcmVjb3JkIGl0IGZvciBmdXR1cmUgcnVucy4KLS0jIEFsc28gcXVvdGUgYW55IGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhLWNoYXJhY3RlcnMuCi0tIyBNYWtlIHR3byBwYXNzZXMgdG8gYWxsb3cgZm9yIHByb3BlciBkdXBsaWNhdGUtYXJndW1lbnQgc3VwcHJlc3Npb24uCi0tYWNfY29uZmlndXJlX2FyZ3M9Ci0tYWNfY29uZmlndXJlX2FyZ3MwPQotLWFjX2NvbmZpZ3VyZV9hcmdzMT0KLS1hY19zZXA9Ci0tYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UKLS1mb3IgYWNfcGFzcyBpbiAxIDIKLS1kbwotLSAgZm9yIGFjX2FyZwotLSAgZG8KLS0gICAgY2FzZSAkYWNfYXJnIGluCi0tICAgIC1uby1jcmVhdGUgfCAtLW5vLWMqIHwgLW4gfCAtbm8tcmVjdXJzaW9uIHwgLS1uby1yKikgY29udGludWUgOzsKLS0gICAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKLS0gICAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCi0tICAgICAgY29udGludWUgOzsKLS0gICAgKiIgIip8KiIJIip8KltcW1xdXH5cI1wkXF5cJlwqXChcKVx7XH1cXFx8XDtcPFw+XD9cIlwnXSopCi0tICAgICAgYWNfYXJnPWBlY2hvICIkYWNfYXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotLSAgICBlc2FjCi0tICAgIGNhc2UgJGFjX3Bhc3MgaW4KLS0gICAgMSkgYWNfY29uZmlndXJlX2FyZ3MwPSIkYWNfY29uZmlndXJlX2FyZ3MwICckYWNfYXJnJyIgOzsKLS0gICAgMikKLS0gICAgICBhY19jb25maWd1cmVfYXJnczE9IiRhY19jb25maWd1cmVfYXJnczEgJyRhY19hcmcnIgotLSAgICAgIGlmIHRlc3QgJGFjX211c3Rfa2VlcF9uZXh0ID0gdHJ1ZTsgdGhlbgotLSAgICAgICAgYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UgIyBHb3QgdmFsdWUsIGJhY2sgdG8gbm9ybWFsLgotLSAgICAgIGVsc2UKLS0gICAgICAgIGNhc2UgJGFjX2FyZyBpbgotLSAgICAgICAgICAqPSogfCAtLWNvbmZpZy1jYWNoZSB8IC1DIHwgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qIFwKLS0gICAgICAgICAgfCAtZW5hYmxlLSogfCAtLWVuYWJsZS0qIHwgLWdhcyB8IC0tZyogfCAtbmZwIHwgLS1uZiogXAotLSAgICAgICAgICB8IC1xIHwgLXF1aWV0IHwgLS1xKiB8IC1zaWxlbnQgfCAtLXNpbCogfCAtdiB8IC12ZXJiKiBcCi0tICAgICAgICAgIHwgLXdpdGgtKiB8IC0td2l0aC0qIHwgLXdpdGhvdXQtKiB8IC0td2l0aG91dC0qIHwgLS14KQotLSAgICAgICAgICAgIGNhc2UgIiRhY19jb25maWd1cmVfYXJnczAgIiBpbgotLSAgICAgICAgICAgICAgIiRhY19jb25maWd1cmVfYXJnczEiKiIgJyRhY19hcmcnICIqICkgY29udGludWUgOzsKLS0gICAgICAgICAgICBlc2FjCi0tICAgICAgICAgICAgOzsKLS0gICAgICAgICAgLSogKSBhY19tdXN0X2tlZXBfbmV4dD10cnVlIDs7Ci0tICAgICAgICBlc2FjCi0tICAgICAgZmkKLS0gICAgICBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzJGFjX3NlcCckYWNfYXJnJyIKLS0gICAgICAjIEdldCByaWQgb2YgdGhlIGxlYWRpbmcgc3BhY2UuCi0tICAgICAgYWNfc2VwPSIgIgotLSAgICAgIDs7Ci0tICAgIGVzYWMKLS0gIGRvbmUKLS1kb25lCi0tJGFzX3Vuc2V0IGFjX2NvbmZpZ3VyZV9hcmdzMCB8fCB0ZXN0ICIke2FjX2NvbmZpZ3VyZV9hcmdzMCtzZXR9IiAhPSBzZXQgfHwgeyBhY19jb25maWd1cmVfYXJnczA9OyBleHBvcnQgYWNfY29uZmlndXJlX2FyZ3MwOyB9Ci0tJGFzX3Vuc2V0IGFjX2NvbmZpZ3VyZV9hcmdzMSB8fCB0ZXN0ICIke2FjX2NvbmZpZ3VyZV9hcmdzMStzZXR9IiAhPSBzZXQgfHwgeyBhY19jb25maWd1cmVfYXJnczE9OyBleHBvcnQgYWNfY29uZmlndXJlX2FyZ3MxOyB9Ci0tCi0tIyBXaGVuIGludGVycnVwdGVkIG9yIGV4aXQnZCwgY2xlYW51cCB0ZW1wb3JhcnkgZmlsZXMsIGFuZCBjb21wbGV0ZQotLSMgY29uZmlnLmxvZy4gIFdlIHJlbW92ZSBjb21tZW50cyBiZWNhdXNlIGFueXdheSB0aGUgcXVvdGVzIGluIHRoZXJlCi0tIyB3b3VsZCBjYXVzZSBwcm9ibGVtcyBvciBsb29rIHVnbHkuCi0tIyBXQVJOSU5HOiBCZSBzdXJlIG5vdCB0byB1c2Ugc2luZ2xlIHF1b3RlcyBpbiB0aGVyZSwgYXMgc29tZSBzaGVsbHMsCi0tIyBzdWNoIGFzIG91ciBEVSA1LjAgZnJpZW5kLCB3aWxsIHRoZW4gYGNsb3NlJyB0aGUgdHJhcC4KLS10cmFwICdleGl0X3N0YXR1cz0kPwotLSAgIyBTYXZlIGludG8gY29uZmlnLmxvZyBzb21lIGluZm9ybWF0aW9uIHRoYXQgbWlnaHQgaGVscCBpbiBkZWJ1Z2dpbmcuCi0tICB7Ci0tICAgIGVjaG8KLS0KLS0gICAgY2F0IDw8XF9BU0JPWAotLSMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLS0jIyBDYWNoZSB2YXJpYWJsZXMuICMjCi0tIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwotLV9BU0JPWAotLSAgICBlY2hvCi0tICAgICMgVGhlIGZvbGxvd2luZyB3YXkgb2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5lcyBpbiB2YWx1ZXMsCi0tewotLSAgKHNldCkgMj4mMSB8Ci0tICAgIGNhc2UgYChhY19zcGFjZT0nIiciJyAnIiciJzsgc2V0IHwgZ3JlcCBhY19zcGFjZSkgMj4mMWAgaW4KLS0gICAgKmFjX3NwYWNlPVwgKikKLS0gICAgICBzZWQgLW4gXAotLSAgICAgICAgInMvJyInIicvJyInIidcXFxcJyInIicnIiciJy9nOwotLSAgICAJICBzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPSciJyInXFwyJyInIicvcCIKLS0gICAgICA7OwotLSAgICAqKQotLSAgICAgIHNlZCAtbiBcCi0tICAgICAgICAicy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT1cXDIvcCIKLS0gICAgICA7OwotLSAgICBlc2FjOwotLX0KLS0gICAgZWNobwotLQotLSAgICBjYXQgPDxcX0FTQk9YCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS0jIyBPdXRwdXQgdmFyaWFibGVzLiAjIwotLSMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCi0tX0FTQk9YCi0tICAgIGVjaG8KLS0gICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfdmFycwotLSAgICBkbwotLSAgICAgIGV2YWwgYWNfdmFsPSRgZWNobyAkYWNfdmFyYAotLSAgICAgIGVjaG8gIiRhY192YXI9JyInIickYWNfdmFsJyInIiciCi0tICAgIGRvbmUgfCBzb3J0Ci0tICAgIGVjaG8KLS0KLS0gICAgaWYgdGVzdCAtbiAiJGFjX3N1YnN0X2ZpbGVzIjsgdGhlbgotLSAgICAgIGNhdCA8PFxfQVNCT1gKLS0jIyAtLS0tLS0tLS0tLS0tICMjCi0tIyMgT3V0cHV0IGZpbGVzLiAjIwotLSMjIC0tLS0tLS0tLS0tLS0gIyMKLS1fQVNCT1gKLS0gICAgICBlY2hvCi0tICAgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfZmlsZXMKLS0gICAgICBkbwotLQlldmFsIGFjX3ZhbD0kYGVjaG8gJGFjX3ZhcmAKLS0gICAgICAgIGVjaG8gIiRhY192YXI9JyInIickYWNfdmFsJyInIiciCi0tICAgICAgZG9uZSB8IHNvcnQKLS0gICAgICBlY2hvCi0tICAgIGZpCi0tCi0tICAgIGlmIHRlc3QgLXMgY29uZmRlZnMuaDsgdGhlbgotLSAgICAgIGNhdCA8PFxfQVNCT1gKLS0jIyAtLS0tLS0tLS0tLSAjIwotLSMjIGNvbmZkZWZzLmguICMjCi0tIyMgLS0tLS0tLS0tLS0gIyMKLS1fQVNCT1gKLS0gICAgICBlY2hvCi0tICAgICAgc2VkICIvXiQvZCIgY29uZmRlZnMuaCB8IHNvcnQKLS0gICAgICBlY2hvCi0tICAgIGZpCi0tICAgIHRlc3QgIiRhY19zaWduYWwiICE9IDAgJiYKLS0gICAgICBlY2hvICIkYXNfbWU6IGNhdWdodCBzaWduYWwgJGFjX3NpZ25hbCIKLS0gICAgZWNobyAiJGFzX21lOiBleGl0ICRleGl0X3N0YXR1cyIKLS0gIH0gPiY1Ci0tICBybSAtZiBjb3JlIGNvcmUuKiAqLmNvcmUgJiYKLS0gIHJtIC1yZiBjb25mdGVzdCogY29uZmRlZnMqIGNvbmYkJCogJGFjX2NsZWFuX2ZpbGVzICYmCi0tICAgIGV4aXQgJGV4aXRfc3RhdHVzCi0tICAgICAnIDAKLS1mb3IgYWNfc2lnbmFsIGluIDEgMiAxMyAxNTsgZG8KLS0gIHRyYXAgJ2FjX3NpZ25hbD0nJGFjX3NpZ25hbCc7IHsgKGV4aXQgMSk7IGV4aXQgMTsgfScgJGFjX3NpZ25hbAotLWRvbmUKLS1hY19zaWduYWw9MAotLQotLSMgY29uZmRlZnMuaCBhdm9pZHMgT1MgY29tbWFuZCBsaW5lIGxlbmd0aCBsaW1pdHMgdGhhdCBERUZTIGNhbiBleGNlZWQuCi0tcm0gLXJmIGNvbmZ0ZXN0KiBjb25mZGVmcy5oCi0tIyBBSVggY3BwIGxvc2VzIG9uIGFuIGVtcHR5IGZpbGUsIHNvIG1ha2Ugc3VyZSBpdCBjb250YWlucyBhdCBsZWFzdCBhIG5ld2xpbmUuCi0tZWNobyA+Y29uZmRlZnMuaAotLQotLSMgUHJlZGVmaW5lZCBwcmVwcm9jZXNzb3IgdmFyaWFibGVzLgotLQotLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLS0jZGVmaW5lIFBBQ0tBR0VfTkFNRSAiJFBBQ0tBR0VfTkFNRSIKLS1fQUNFT0YKLS0KLS0KLS1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0tI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiRQQUNLQUdFX1RBUk5BTUUiCi0tX0FDRU9GCi0tCi0tCi0tY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotLSNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIkUEFDS0FHRV9WRVJTSU9OIgotLV9BQ0VPRgotLQotLQotLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLS0jZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIkUEFDS0FHRV9TVFJJTkciCi0tX0FDRU9GCi0tCi0tCi0tY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotLSNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiRQQUNLQUdFX0JVR1JFUE9SVCIKLS1fQUNFT0YKLS0KLS0KLS0jIExldCB0aGUgc2l0ZSBmaWxlIHNlbGVjdCBhbiBhbHRlcm5hdGUgY2FjaGUgZmlsZSBpZiBpdCB3YW50cyB0by4KLSAjIFByZWZlciBleHBsaWNpdGx5IHNlbGVjdGVkIGZpbGUgdG8gYXV0b21hdGljYWxseSBzZWxlY3RlZCBvbmVzLgotIGlmIHRlc3QgLXogIiRDT05GSUdfU0lURSI7IHRoZW4KLSAgIGlmIHRlc3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhlbgotQEAgLTExNzEsMTA2ICs0OTgsNDIgQEAKLSBmaQotIGZvciBhY19zaXRlX2ZpbGUgaW4gJENPTkZJR19TSVRFOyBkbwotICAgaWYgdGVzdCAtciAiJGFjX3NpdGVfZmlsZSI7IHRoZW4KLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjUKLS1lY2hvICIkYXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY2O30KLS0gICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1Ci0rICAgIGVjaG8gImxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIKLSAgICAgLiAiJGFjX3NpdGVfZmlsZSIKLSAgIGZpCi0gZG9uZQotIAotIGlmIHRlc3QgLXIgIiRjYWNoZV9maWxlIjsgdGhlbgotLSAgIyBTb21lIHZlcnNpb25zIG9mIGJhc2ggd2lsbCBmYWlsIHRvIHNvdXJjZSAvZGV2L251bGwgKHNwZWNpYWwKLS0gICMgZmlsZXMgYWN0dWFsbHkpLCBzbyB3ZSBhdm9pZCBkb2luZyB0aGF0LgotLSAgaWYgdGVzdCAtZiAiJGNhY2hlX2ZpbGUiOyB0aGVuCi0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGxvYWRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNQotLWVjaG8gIiRhc19tZTogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KLS0gICAgY2FzZSAkY2FjaGVfZmlsZSBpbgotLSAgICAgIFtcXC9dKiB8ID86W1xcL10qICkgLiAkY2FjaGVfZmlsZTs7Ci0tICAgICAgKikgICAgICAgICAgICAgICAgICAgICAgLiAuLyRjYWNoZV9maWxlOzsKLS0gICAgZXNhYwotLSAgZmkKLSsgIGVjaG8gImxvYWRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiCi0rICAuICRjYWNoZV9maWxlCi0gZWxzZQotLSAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNQotLWVjaG8gIiRhc19tZTogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9Ci0tICA+JGNhY2hlX2ZpbGUKLSsgIGVjaG8gImNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIgotKyAgPiAkY2FjaGVfZmlsZQotIGZpCi0gCi0tIyBDaGVjayB0aGF0IHRoZSBwcmVjaW91cyB2YXJpYWJsZXMgc2F2ZWQgaW4gdGhlIGNhY2hlIGhhdmUga2VwdCB0aGUgc2FtZQotLSMgdmFsdWUuCi0tYWNfY2FjaGVfY29ycnVwdGVkPWZhbHNlCi0tZm9yIGFjX3ZhciBpbiBgKHNldCkgMj4mMSB8Ci0tICAgICAgICAgICAgICAgc2VkIC1uICdzL15hY19lbnZfXChbYS16QS1aXzAtOV0qXClfc2V0PS4qL1wxL3AnYDsgZG8KLS0gIGV2YWwgYWNfb2xkX3NldD1cJGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0Ci0tICBldmFsIGFjX25ld19zZXQ9XCRhY19lbnZfJHthY192YXJ9X3NldAotLSAgZXZhbCBhY19vbGRfdmFsPSJcJGFjX2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWUiCi0tICBldmFsIGFjX25ld192YWw9IlwkYWNfZW52XyR7YWNfdmFyfV92YWx1ZSIKLS0gIGNhc2UgJGFjX29sZF9zZXQsJGFjX25ld19zZXQgaW4KLS0gICAgc2V0LCkKLS0gICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91cyBydW4iID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFsJyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQotLSAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7Ci0tICAgICxzZXQpCi0tICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIG5vdCBzZXQgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQotLSAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7Ci0tICAgICwpOzsKLS0gICAgKikKLS0gICAgICBpZiB0ZXN0ICJ4JGFjX29sZF92YWwiICE9ICJ4JGFjX25ld192YWwiOyB0aGVuCi0tICAgICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiYyO30KLS0gICAgICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86ICAgZm9ybWVyIHZhbHVlOiAgJGFjX29sZF92YWwiID4mNQotLWVjaG8gIiRhc19tZTogICBmb3JtZXIgdmFsdWU6ICAkYWNfb2xkX3ZhbCIgPiYyO30KLS0gICAgICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86ICAgY3VycmVudCB2YWx1ZTogJGFjX25ld192YWwiID4mNQotLWVjaG8gIiRhc19tZTogICBjdXJyZW50IHZhbHVlOiAkYWNfbmV3X3ZhbCIgPiYyO30KLS0gICAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06Ci0tICAgICAgZmk7OwotLSAgZXNhYwotLSAgIyBQYXNzIHByZWNpb3VzIHZhcmlhYmxlcyB0byBjb25maWcuc3RhdHVzLgotLSAgaWYgdGVzdCAiJGFjX25ld19zZXQiID0gc2V0OyB0aGVuCi0tICAgIGNhc2UgJGFjX25ld192YWwgaW4KLS0gICAgKiIgIip8KiIJIip8KltcW1xdXH5cI1wkXF5cJlwqXChcKVx7XH1cXFx8XDtcPFw+XD9cIlwnXSopCi0tICAgICAgYWNfYXJnPSRhY192YXI9YGVjaG8gIiRhY19uZXdfdmFsIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotLSAgICAqKSBhY19hcmc9JGFjX3Zhcj0kYWNfbmV3X3ZhbCA7OwotLSAgICBlc2FjCi0tICAgIGNhc2UgIiAkYWNfY29uZmlndXJlX2FyZ3MgIiBpbgotLSAgICAgICoiICckYWNfYXJnJyAiKikgOzsgIyBBdm9pZCBkdXBzLiAgVXNlIG9mIHF1b3RlcyBlbnN1cmVzIGFjY3VyYWN5LgotLSAgICAgICopIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgJyRhY19hcmcnIiA7OwotLSAgICBlc2FjCi0tICBmaQotLWRvbmUKLS1pZiAkYWNfY2FjaGVfY29ycnVwdGVkOyB0aGVuCi0tICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2hhbmdlcyBpbiB0aGUgZW52aXJvbm1lbnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxkIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mMjt9Ci0tICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLWZpCi0tCi0gYWNfZXh0PWMKLSsjIENGTEFHUyBpcyBub3QgaW4gYWNfY3BwIGJlY2F1c2UgLWcsIC1PLCBldGMuIGFyZSBub3QgdmFsaWQgY3BwIG9wdGlvbnMuCi0gYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLS1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0tYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLS1hY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rYWNfY29tcGlsZT0nJHtDQy1jY30gLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCAxPiY1JwotK2FjX2xpbms9JyR7Q0MtY2N9IC1vIGNvbmZ0ZXN0JHthY19leGVleHR9ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgMT4mNScKLStjcm9zc19jb21waWxpbmc9JGFjX2N2X3Byb2dfY2NfY3Jvc3MKLSAKLSthY19leGVleHQ9Ci0rYWNfb2JqZXh0PW8KLStpZiAoZWNobyAidGVzdGluZ1xjIjsgZWNobyAxLDIsMykgfCBncmVwIGMgPi9kZXYvbnVsbDsgdGhlbgotKyAgIyBTdGFyZGVudCBWaXN0cmEgU1ZSNCBncmVwIGxhY2tzIC1lLCBzYXlzIGdoYXppQGNhaXAucnV0Z2Vycy5lZHUuCi0rICBpZiAoZWNobyAtbiB0ZXN0aW5nOyBlY2hvIDEsMiwzKSB8IHNlZCBzLy1uL3huLyB8IGdyZXAgeG4gPi9kZXYvbnVsbDsgdGhlbgotKyAgICBhY19uPSBhY19jPScKLSsnIGFjX3Q9JwknCi0rICBlbHNlCi0rICAgIGFjX249LW4gYWNfYz0gYWNfdD0KLSsgIGZpCi0rZWxzZQotKyAgYWNfbj0gYWNfYz0nXGMnIGFjX3Q9Ci0rZmkKLSAKLSAKLSAKLS0KLS0KLS0KLS0KLS0KLS0KLS0KLS0KLS0KLS0KLS0KLS0KLS0KLS0KLS0KLS0KLSBhY19hdXhfZGlyPQotIGZvciBhY19kaXIgaW4gJHNyY2RpciAkc3JjZGlyLy4uICRzcmNkaXIvLi4vLi47IGRvCi0gICBpZiB0ZXN0IC1mICRhY19kaXIvaW5zdGFsbC1zaDsgdGhlbgotQEAgLTEyODEsNzQwICs1NDQsMzEyIEBACi0gICAgIGFjX2F1eF9kaXI9JGFjX2RpcgotICAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLnNoIC1jIgotICAgICBicmVhawotLSAgZWxpZiB0ZXN0IC1mICRhY19kaXIvc2h0b29sOyB0aGVuCi0tICAgIGFjX2F1eF9kaXI9JGFjX2RpcgotLSAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9zaHRvb2wgaW5zdGFsbCAtYyIKLS0gICAgYnJlYWsKLSAgIGZpCi0gZG9uZQotIGlmIHRlc3QgLXogIiRhY19hdXhfZGlyIjsgdGhlbgotLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5zdGFsbC1zaCBvciBpbnN0YWxsLnNoIGluICRzcmNkaXIgJHNyY2Rpci8uLiAkc3JjZGlyLy4uLy4uIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gJHNyY2RpciAkc3JjZGlyLy4uICRzcmNkaXIvLi4vLi4iID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6IGNhbiBub3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gJHNyY2RpciAkc3JjZGlyLy4uICRzcmNkaXIvLi4vLi4iIDE+JjI7IGV4aXQgMTsgfQotIGZpCi0tYWNfY29uZmlnX2d1ZXNzPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzIgotLWFjX2NvbmZpZ19zdWI9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIgotLWFjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3VyZSIgIyBUaGlzIHNob3VsZCBiZSBDeWdudXMgY29uZmlndXJlLgotK2FjX2NvbmZpZ19ndWVzcz0kYWNfYXV4X2Rpci9jb25maWcuZ3Vlc3MKLSthY19jb25maWdfc3ViPSRhY19hdXhfZGlyL2NvbmZpZy5zdWIKLSthY19jb25maWd1cmU9JGFjX2F1eF9kaXIvY29uZmlndXJlICMgVGhpcyBzaG91bGQgYmUgQ3lnbnVzIGNvbmZpZ3VyZS4KLSAKLS0jIE1ha2Ugc3VyZSB3ZSBjYW4gcnVuIGNvbmZpZy5zdWIuCi0tJGFjX2NvbmZpZ19zdWIgc3VuNCA+L2Rldi9udWxsIDI+JjEgfHwKLS0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gJGFjX2NvbmZpZ19zdWIiID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBydW4gJGFjX2NvbmZpZ19zdWIiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfYnVpbGQrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotLSAgYWNfY3ZfYnVpbGRfYWxpYXM9JGJ1aWxkX2FsaWFzCi0tdGVzdCAteiAiJGFjX2N2X2J1aWxkX2FsaWFzIiAmJgotLSAgYWNfY3ZfYnVpbGRfYWxpYXM9YCRhY19jb25maWdfZ3Vlc3NgCi0tdGVzdCAteiAiJGFjX2N2X2J1aWxkX2FsaWFzIiAmJgotLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tYWNfY3ZfYnVpbGQ9YCRhY19jb25maWdfc3ViICRhY19jdl9idWlsZF9hbGlhc2AgfHwKLS0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRhY19jb25maWdfc3ViICRhY19jdl9idWlsZF9hbGlhcyBmYWlsZWQiID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6ICRhY19jb25maWdfc3ViICRhY19jdl9idWlsZF9hbGlhcyBmYWlsZWQiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rIyBEbyBzb21lIGVycm9yIGNoZWNraW5nIGFuZCBkZWZhdWx0aW5nIGZvciB0aGUgaG9zdCBhbmQgdGFyZ2V0IHR5cGUuCi0rIyBUaGUgaW5wdXRzIGFyZToKLSsjICAgIGNvbmZpZ3VyZSAtLWhvc3Q9SE9TVCAtLXRhcmdldD1UQVJHRVQgLS1idWlsZD1CVUlMRCBOT05PUFQKLSsjCi0rIyBUaGUgcnVsZXMgYXJlOgotKyMgMS4gWW91IGFyZSBub3QgYWxsb3dlZCB0byBzcGVjaWZ5IC0taG9zdCwgLS10YXJnZXQsIGFuZCBub25vcHQgYXQgdGhlCi0rIyAgICBzYW1lIHRpbWUuCi0rIyAyLiBIb3N0IGRlZmF1bHRzIHRvIG5vbm9wdC4KLSsjIDMuIElmIG5vbm9wdCBpcyBub3Qgc3BlY2lmaWVkLCB0aGVuIGhvc3QgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgaG9zdCwKLSsjICAgIGFzIGRldGVybWluZWQgYnkgY29uZmlnLmd1ZXNzLgotKyMgNC4gVGFyZ2V0IGFuZCBidWlsZCBkZWZhdWx0IHRvIG5vbm9wdC4KLSsjIDUuIElmIG5vbm9wdCBpcyBub3Qgc3BlY2lmaWVkLCB0aGVuIHRhcmdldCBhbmQgYnVpbGQgZGVmYXVsdCB0byBob3N0LgotIAotKyMgVGhlIGFsaWFzZXMgc2F2ZSB0aGUgbmFtZXMgdGhlIHVzZXIgc3VwcGxpZWQsIHdoaWxlICRob3N0IGV0Yy4KLSsjIHdpbGwgZ2V0IGNhbm9uaWNhbGl6ZWQuCi0rY2FzZSAkaG9zdC0tLSR0YXJnZXQtLS0kbm9ub3B0IGluCi0rTk9ORS0tLSotLS0qIHwgKi0tLU5PTkUtLS0qIHwgKi0tLSotLS1OT05FKSA7OwotKyopIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogY2FuIG9ubHkgY29uZmlndXJlIGZvciBvbmUgaG9zdCBhbmQgb25lIHRhcmdldCBhdCBhIHRpbWUiIDE+JjI7IGV4aXQgMTsgfSA7OwotK2VzYWMKLSsKLSsKLSsjIE1ha2Ugc3VyZSB3ZSBjYW4gcnVuIGNvbmZpZy5zdWIuCi0raWYgJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0gJGFjX2NvbmZpZ19zdWIgc3VuNCA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgotK2Vsc2UgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBjYW4gbm90IHJ1biAkYWNfY29uZmlnX3N1YiIgMT4mMjsgZXhpdCAxOyB9Ci0gZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfYnVpbGQiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl9idWlsZCIgPiY2Ci0tYnVpbGQ9JGFjX2N2X2J1aWxkCi0tYnVpbGRfY3B1PWBlY2hvICRhY19jdl9idWlsZCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wxLydgCi0tYnVpbGRfdmVuZG9yPWBlY2hvICRhY19jdl9idWlsZCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wyLydgCi0tYnVpbGRfb3M9YGVjaG8gJGFjX2N2X2J1aWxkIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDMvJ2AKLSAKLStlY2hvICRhY19uICJjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6NTg1OiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlIiA+JjUKLSAKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZSIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfaG9zdCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0tICBhY19jdl9ob3N0X2FsaWFzPSRob3N0X2FsaWFzCi0tdGVzdCAteiAiJGFjX2N2X2hvc3RfYWxpYXMiICYmCi0tICBhY19jdl9ob3N0X2FsaWFzPSRhY19jdl9idWlsZF9hbGlhcwotLWFjX2N2X2hvc3Q9YCRhY19jb25maWdfc3ViICRhY19jdl9ob3N0X2FsaWFzYCB8fAotLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2hvc3RfYWxpYXMgZmFpbGVkIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiAkYWNfY29uZmlnX3N1YiAkYWNfY3ZfaG9zdF9hbGlhcyBmYWlsZWQiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0raG9zdF9hbGlhcz0kaG9zdAotK2Nhc2UgIiRob3N0X2FsaWFzIiBpbgotK05PTkUpCi0rICBjYXNlICRub25vcHQgaW4KLSsgIE5PTkUpCi0rICAgIGlmIGhvc3RfYWxpYXM9YCR7Q09ORklHX1NIRUxMLS9iaW4vc2h9ICRhY19jb25maWdfZ3Vlc3NgOyB0aGVuIDoKLSsgICAgZWxzZSB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6IGNhbiBub3QgZ3Vlc3MgaG9zdCB0eXBlOyB5b3UgbXVzdCBzcGVjaWZ5IG9uZSIgMT4mMjsgZXhpdCAxOyB9Ci0rICAgIGZpIDs7Ci0rICAqKSBob3N0X2FsaWFzPSRub25vcHQgOzsKLSsgIGVzYWMgOzsKLStlc2FjCi0gCi0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaG9zdCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hvc3QiID4mNgotLWhvc3Q9JGFjX2N2X2hvc3QKLS1ob3N0X2NwdT1gZWNobyAkYWNfY3ZfaG9zdCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wxLydgCi0taG9zdF92ZW5kb3I9YGVjaG8gJGFjX2N2X2hvc3QgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMi8nYAotLWhvc3Rfb3M9YGVjaG8gJGFjX2N2X2hvc3QgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMy8nYAotK2hvc3Q9YCR7Q09ORklHX1NIRUxMLS9iaW4vc2h9ICRhY19jb25maWdfc3ViICRob3N0X2FsaWFzYAotK2hvc3RfY3B1PWBlY2hvICRob3N0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDEvJ2AKLStob3N0X3ZlbmRvcj1gZWNobyAkaG9zdCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wyLydgCi0raG9zdF9vcz1gZWNobyAkaG9zdCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wzLydgCi0rZWNobyAiJGFjX3QiIiRob3N0IiAxPiY2Ci0gCi0rZWNobyAkYWNfbiAiY2hlY2tpbmcgdGFyZ2V0IHN5c3RlbSB0eXBlIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6NjA2OiBjaGVja2luZyB0YXJnZXQgc3lzdGVtIHR5cGUiID4mNQotIAotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB0YXJnZXQgc3lzdGVtIHR5cGUiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgdGFyZ2V0IHN5c3RlbSB0eXBlLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfdGFyZ2V0K3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotLWVsc2UKLS0gIGFjX2N2X3RhcmdldF9hbGlhcz0kdGFyZ2V0X2FsaWFzCi0tdGVzdCAieCRhY19jdl90YXJnZXRfYWxpYXMiID0gIngiICYmCi0tICBhY19jdl90YXJnZXRfYWxpYXM9JGFjX2N2X2hvc3RfYWxpYXMKLS1hY19jdl90YXJnZXQ9YCRhY19jb25maWdfc3ViICRhY19jdl90YXJnZXRfYWxpYXNgIHx8Ci0tICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkYWNfY29uZmlnX3N1YiAkYWNfY3ZfdGFyZ2V0X2FsaWFzIGZhaWxlZCIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X3RhcmdldF9hbGlhcyBmYWlsZWQiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rdGFyZ2V0X2FsaWFzPSR0YXJnZXQKLStjYXNlICIkdGFyZ2V0X2FsaWFzIiBpbgotK05PTkUpCi0rICBjYXNlICRub25vcHQgaW4KLSsgIE5PTkUpIHRhcmdldF9hbGlhcz0kaG9zdF9hbGlhcyA7OwotKyAgKikgdGFyZ2V0X2FsaWFzPSRub25vcHQgOzsKLSsgIGVzYWMgOzsKLStlc2FjCi0gCi0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdGFyZ2V0IiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfdGFyZ2V0IiA+JjYKLS10YXJnZXQ9JGFjX2N2X3RhcmdldAotLXRhcmdldF9jcHU9YGVjaG8gJGFjX2N2X3RhcmdldCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wxLydgCi0tdGFyZ2V0X3ZlbmRvcj1gZWNobyAkYWNfY3ZfdGFyZ2V0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDIvJ2AKLS10YXJnZXRfb3M9YGVjaG8gJGFjX2N2X3RhcmdldCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wzLydgCi0rdGFyZ2V0PWAke0NPTkZJR19TSEVMTC0vYmluL3NofSAkYWNfY29uZmlnX3N1YiAkdGFyZ2V0X2FsaWFzYAotK3RhcmdldF9jcHU9YGVjaG8gJHRhcmdldCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wxLydgCi0rdGFyZ2V0X3ZlbmRvcj1gZWNobyAkdGFyZ2V0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDIvJ2AKLSt0YXJnZXRfb3M9YGVjaG8gJHRhcmdldCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wzLydgCi0rZWNobyAiJGFjX3QiIiR0YXJnZXQiIDE+JjYKLSAKLStlY2hvICRhY19uICJjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZSIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjYyNDogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUiID4mNQotIAotLSMgVGhlIGFsaWFzZXMgc2F2ZSB0aGUgbmFtZXMgdGhlIHVzZXIgc3VwcGxpZWQsIHdoaWxlICRob3N0IGV0Yy4KLS0jIHdpbGwgZ2V0IGNhbm9uaWNhbGl6ZWQuCi0tdGVzdCAtbiAiJHRhcmdldF9hbGlhcyIgJiYKLStidWlsZF9hbGlhcz0kYnVpbGQKLStjYXNlICIkYnVpbGRfYWxpYXMiIGluCi0rTk9ORSkKLSsgIGNhc2UgJG5vbm9wdCBpbgotKyAgTk9ORSkgYnVpbGRfYWxpYXM9JGhvc3RfYWxpYXMgOzsKLSsgICopIGJ1aWxkX2FsaWFzPSRub25vcHQgOzsKLSsgIGVzYWMgOzsKLStlc2FjCi0rCi0rYnVpbGQ9YCR7Q09ORklHX1NIRUxMLS9iaW4vc2h9ICRhY19jb25maWdfc3ViICRidWlsZF9hbGlhc2AKLStidWlsZF9jcHU9YGVjaG8gJGJ1aWxkIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDEvJ2AKLStidWlsZF92ZW5kb3I9YGVjaG8gJGJ1aWxkIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDIvJ2AKLStidWlsZF9vcz1gZWNobyAkYnVpbGQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMy8nYAotK2VjaG8gIiRhY190IiIkYnVpbGQiIDE+JjYKLSsKLSt0ZXN0ICIkaG9zdF9hbGlhcyIgIT0gIiR0YXJnZXRfYWxpYXMiICYmCi0gICB0ZXN0ICIkcHJvZ3JhbV9wcmVmaXgkcHJvZ3JhbV9zdWZmaXgkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIgPSBcCi0gICAgIE5PTkVOT05Fcyx4LHgsICYmCi0gICBwcm9ncmFtX3ByZWZpeD0ke3RhcmdldF9hbGlhc30tCi0tYWNfZXh0PWMKLS1hY19jcHA9JyRDUFAgJENQUEZMQUdTJwotLWFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLS1hY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotLWFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLS1pZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0tICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9Z2NjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLS1zZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1nY2M7IGFjX3dvcmQ9JDIKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotLSAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotLSAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLS1lbHNlCi0tYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1nY2MiCi0tICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLS0gICAgYnJlYWsgMgotLSAgZmkKLS1kb25lCi0tZG9uZQotIAotLWZpCi0tZmkKLS1DQz0kYWNfY3ZfcHJvZ19DQwotLWlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotLWZpCi0tCi0tZmkKLS1pZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19DQyI7IHRoZW4KLS0gIGFjX2N0X0NDPSRDQwotLSAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJnY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLSBzZXQgZHVtbXkgZ2NjOyBhY193b3JkPSQyCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotK2VjaG8gJGFjX24gImNoZWNraW5nIGZvciAkYWNfd29yZCIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjY0OTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19DQycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0rICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotIGVsc2UKLS0gIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KLS0gIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0tZWxzZQotLWFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLS1mb3IgYXNfZGlyIGluICRQQVRICi0tZG8KLS0gIElGUz0kYXNfc2F2ZV9JRlMKLS0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0tICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLS0gIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCi0tICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9ImdjYyIKLS0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotLSAgICBicmVhayAyCi0tICBmaQotLWRvbmUKLS1kb25lCi0tCi0tZmkKLS1maQotLWFjX2N0X0NDPSRhY19jdl9wcm9nX2FjX2N0X0NDCi0taWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NDIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3RfQ0MiID4mNgotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLS1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci0tZmkKLS0KLS0gIENDPSRhY19jdF9DQwotLWVsc2UKLS0gIENDPSIkYWNfY3ZfcHJvZ19DQyIKLS1maQotLQotLWlmIHRlc3QgLXogIiRDQyI7IHRoZW4KLS0gIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLS0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1jYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0tc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Y2M7IGFjX3dvcmQ9JDIKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotICAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLSBlbHNlCi0tYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1jYyIKLS0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotLSAgICBicmVhayAyCi0tICBmaQotLWRvbmUKLS1kb25lCi0tCi0rICBJRlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSI6IgotKyAgYWNfZHVtbXk9IiRQQVRIIgotKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8kYWNfd29yZDsgdGhlbgotKyAgICAgIGFjX2N2X3Byb2dfQ0M9ImdjYyIKLSsgICAgICBicmVhawotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkYWNfc2F2ZV9pZnMiCi0gZmkKLSBmaQotLUNDPSRhY19jdl9wcm9nX0NDCi0rQ0M9IiRhY19jdl9wcm9nX0NDIgotIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKLSsgIGVjaG8gIiRhY190IiIkQ0MiIDE+JjYKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotKyAgZWNobyAiJGFjX3QiIm5vIiAxPiY2Ci0gZmkKLSAKLS1maQotLWlmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsgdGhlbgotLSAgYWNfY3RfQ0M9JENDCi0tICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLS1zZXQgZHVtbXkgY2M7IGFjX3dvcmQ9JDIKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotLSAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotLSAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLS1lbHNlCi0tYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iY2MiCi0tICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLS0gICAgYnJlYWsgMgotLSAgZmkKLS1kb25lCi0tZG9uZQotLQotLWZpCi0tZmkKLS1hY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQwotLWlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N0X0NDIiA+JjYKLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotLWZpCi0tCi0tICBDQz0kYWNfY3RfQ0MKLS1lbHNlCi0tICBDQz0iJGFjX2N2X3Byb2dfQ0MiCi0tZmkKLS0KLS1maQotIGlmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotIHNldCBkdW1teSBjYzsgYWNfd29yZD0kMgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLStlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZTo2Nzk6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3Byb2dfQ0MnK3NldH0nYFwiID0gc2V0IjsgdGhlbgotKyAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLSBlbHNlCi0gICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0gICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotIGVsc2UKLSsgIElGUz0iJHtJRlM9IAl9IjsgYWNfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IjoiCi0gICBhY19wcm9nX3JlamVjdGVkPW5vCi0tYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgaWYgdGVzdCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCi0tICAgICAgIGFjX3Byb2dfcmVqZWN0ZWQ9eWVzCi0tICAgICAgIGNvbnRpbnVlCi0tICAgICBmaQotLSAgICBhY19jdl9wcm9nX0NDPSJjYyIKLS0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotLSAgICBicmVhayAyCi0tICBmaQotLWRvbmUKLS1kb25lCi0tCi0rICBhY19kdW1teT0iJFBBVEgiCi0rICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAkYWNfZGlyLyRhY193b3JkOyB0aGVuCi0rICAgICAgaWYgdGVzdCAiJGFjX2Rpci8kYWNfd29yZCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCi0rICAgICAgICBhY19wcm9nX3JlamVjdGVkPXllcwotKwljb250aW51ZQotKyAgICAgIGZpCi0rICAgICAgYWNfY3ZfcHJvZ19DQz0iY2MiCi0rICAgICAgYnJlYWsKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElGUz0iJGFjX3NhdmVfaWZzIgotIGlmIHRlc3QgJGFjX3Byb2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KLSAgICMgV2UgZm91bmQgYSBib2dvbiBpbiB0aGUgcGF0aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVyIHVzZSBpdC4KLSAgIHNldCBkdW1teSAkYWNfY3ZfcHJvZ19DQwotICAgc2hpZnQKLS0gIGlmIHRlc3QgJCMgIT0gMDsgdGhlbgotKyAgaWYgdGVzdCAkIyAtZ3QgMDsgdGhlbgotICAgICAjIFdlIGNob3NlIGEgZGlmZmVyZW50IGNvbXBpbGVyIGZyb20gdGhlIGJvZ3VzIG9uZS4KLSAgICAgIyBIb3dldmVyLCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNvIHRoZSBib2dvbiB3aWxsIGJlIGNob3NlbgotICAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBqdXN0IHRoZSBiYXNlbmFtZTsgdXNlIHRoZSBmdWxsIGZpbGUgbmFtZS4KLSAgICAgc2hpZnQKLS0gICAgYWNfY3ZfcHJvZ19DQz0iJGFzX2Rpci8kYWNfd29yZCR7MSsnICd9JEAiCi0rICAgIHNldCBkdW1teSAiJGFjX2Rpci8kYWNfd29yZCIgIiRAIgotKyAgICBzaGlmdAotKyAgICBhY19jdl9wcm9nX0NDPSIkQCIKLSAgIGZpCi0gZmkKLSBmaQotIGZpCi0tQ0M9JGFjX2N2X3Byb2dfQ0MKLStDQz0iJGFjX2N2X3Byb2dfQ0MiCi0gaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kQ0MiID4mNgotKyAgZWNobyAiJGFjX3QiIiRDQyIgMT4mNgotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLS1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci0rICBlY2hvICIkYWNfdCIibm8iIDE+JjYKLSBmaQotIAotLWZpCi0taWYgdGVzdCAteiAiJENDIjsgdGhlbgotLSAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotLSAgZm9yIGFjX3Byb2cgaW4gY2wKLS0gIGRvCi0tICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotLXNldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLSsgIGlmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSsgICAgY2FzZSAiYHVuYW1lIC1zYCIgaW4KLSsgICAgKndpbjMyKiB8ICpXSU4zMiopCi0rICAgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGNsOyBhY193b3JkPSQyCi0rZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY193b3JkIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6NzMwOiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX0NDJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSsgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci0gZWxzZQotICAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLSBlbHNlCi0tYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCi0tICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLS0gICAgYnJlYWsgMgotLSAgZmkKLS1kb25lCi0tZG9uZQotLQotKyAgSUZTPSIke0lGUz0gCX0iOyBhY19zYXZlX2lmcz0iJElGUyI7IElGUz0iOiIKLSsgIGFjX2R1bW15PSIkUEFUSCIKLSsgIGZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbwotKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvJGFjX3dvcmQ7IHRoZW4KLSsgICAgICBhY19jdl9wcm9nX0NDPSJjbCIKLSsgICAgICBicmVhawotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkYWNfc2F2ZV9pZnMiCi0gZmkKLSBmaQotLUNDPSRhY19jdl9wcm9nX0NDCi0rQ0M9IiRhY19jdl9wcm9nX0NDIgotIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKLSsgIGVjaG8gIiRhY190IiIkQ0MiIDE+JjYKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotKyAgZWNobyAiJGFjX3QiIm5vIiAxPiY2Ci0gZmkKLS0KLS0gICAgdGVzdCAtbiAiJENDIiAmJiBicmVhawotLSAgZG9uZQotLWZpCi0taWYgdGVzdCAteiAiJENDIjsgdGhlbgotLSAgYWNfY3RfQ0M9JENDCi0tICBmb3IgYWNfcHJvZyBpbiBjbAotLWRvCi0tICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLS1zZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotLSAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotLSAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLS1lbHNlCi0tYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX3Byb2ciCi0tICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLS0gICAgYnJlYWsgMgotKyA7OwotKyAgICBlc2FjCi0gICBmaQotLWRvbmUKLS1kb25lCi0tCi0rICB0ZXN0IC16ICIkQ0MiICYmIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBjYyBmb3VuZCBpbiBcJFBBVEgiIDE+JjI7IGV4aXQgMTsgfQotIGZpCi0tZmkKLS1hY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQwotLWlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N0X0NDIiA+JjYKLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotLWZpCi0gCi0tICB0ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJyZWFrCi0tZG9uZQotK2VjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgKCRDQyAkQ0ZMQUdTICRMREZMQUdTKSB3b3JrcyIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjc2MjogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciAoJENDICRDRkxBR1MgJExERkxBR1MpIHdvcmtzIiA+JjUKLSAKLS0gIENDPSRhY19jdF9DQwotLWZpCi0rYWNfZXh0PWMKLSsjIENGTEFHUyBpcyBub3QgaW4gYWNfY3BwIGJlY2F1c2UgLWcsIC1PLCBldGMuIGFyZSBub3QgdmFsaWQgY3BwIG9wdGlvbnMuCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPScke0NDLWNjfSAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0IDE+JjUnCi0rYWNfbGluaz0nJHtDQy1jY30gLW8gY29uZnRlc3Qke2FjX2V4ZWV4dH0gJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyAxPiY1JwotK2Nyb3NzX2NvbXBpbGluZz0kYWNfY3ZfcHJvZ19jY19jcm9zcwotIAotLWZpCi0rY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PCBFT0YKLSAKLSsjbGluZSA3NzMgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSAKLS10ZXN0IC16ICIkQ0MiICYmIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgQyBjb21waWxlciBmb3VuZCBpbiBcJFBBVEgKLS1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAotLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLQotLSMgUHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21waWxlci4KLS1lY2hvICIkYXNfbWU6JExJTkVOTzoiIFwKLS0gICAgICJjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9uIiA+JjUKLS1hY19jb21waWxlcj1gc2V0IFggJGFjX2NvbXBpbGU7IGVjaG8gJDJgCi0teyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZXIgLS12ZXJzaW9uIDwvZGV2L251bGwgPiY1XCIiKSA+JjUKLS0gIChldmFsICRhY19jb21waWxlciAtLXZlcnNpb24gPC9kZXYvbnVsbCA+JjUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLS17IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlciAtdiA8L2Rldi9udWxsID4mNVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZXIgLXYgPC9kZXYvbnVsbCA+JjUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLS17IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlciAtViA8L2Rldi9udWxsID4mNVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZXIgLVYgPC9kZXYvbnVsbCA+JjUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLS0KLS1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0KLS1pbnQKLS1tYWluICgpCi0tewotLQotLSAgOwotLSAgcmV0dXJuIDA7Ci0tfQotLV9BQ0VPRgotLWFjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCi0tYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyBhLm91dCBhLmV4ZSBiLm91dCIKLS0jIFRyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZSB3aXRob3V0IC1vIGZpcnN0LCBkaXNyZWdhcmQgYS5vdXQuCi0tIyBJdCB3aWxsIGhlbHAgdXMgZGlhZ25vc2UgYnJva2VuIGNvbXBpbGVycywgYW5kIGZpbmRpbmcgb3V0IGFuIGludHVpdGlvbgotLSMgb2YgZXhlZXh0LgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dC4uLiAkRUNIT19DIiA+JjYKLS1hY19saW5rX2RlZmF1bHQ9YGVjaG8gIiRhY19saW5rIiB8IHNlZCAncy8gLW8gKmNvbmZ0ZXN0W14gXSovLydgCi0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua19kZWZhdWx0XCIiKSA+JjUKLS0gIChldmFsICRhY19saW5rX2RlZmF1bHQpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLS0gICMgRmluZCB0aGUgb3V0cHV0LCBzdGFydGluZyBmcm9tIHRoZSBtb3N0IGxpa2VseS4gIFRoaXMgc2NoZW1lIGlzCi0tIyBub3Qgcm9idXN0IHRvIGp1bmsgaW4gYC4nLCBoZW5jZSBnbyB0byB3aWxkY2FyZHMgKGEuKikgb25seSBhcyBhIGxhc3QKLS0jIHJlc29ydC4KLS0KLS0jIEJlIGNhcmVmdWwgdG8gaW5pdGlhbGl6ZSB0aGlzIHZhcmlhYmxlLCBzaW5jZSBpdCB1c2VkIHRvIGJlIGNhY2hlZC4KLS0jIE90aGVyd2lzZSBhbiBvbGQgY2FjaGUgdmFsdWUgb2YgYG5vJyBsZWQgdG8gYEVYRUVYVCA9IG5vJyBpbiBhIE1ha2VmaWxlLgotLWFjX2N2X2V4ZWV4dD0KLS0jIGIub3V0IGlzIGNyZWF0ZWQgYnkgaTk2MCBjb21waWxlcnMuCi0tZm9yIGFjX2ZpbGUgaW4gYV9vdXQuZXhlIGEuZXhlIGNvbmZ0ZXN0LmV4ZSBhLm91dCBjb25mdGVzdCBhLiogY29uZnRlc3QuKiBiLm91dAotLWRvCi0tICB0ZXN0IC1mICIkYWNfZmlsZSIgfHwgY29udGludWUKLS0gIGNhc2UgJGFjX2ZpbGUgaW4KLS0gICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm8gfCAqLm9iaiApCi0tICAgICAgICA7OwotLSAgICBjb25mdGVzdC4kYWNfZXh0ICkKLS0gICAgICAgICMgVGhpcyBpcyB0aGUgc291cmNlIGZpbGUuCi0tICAgICAgICA7OwotLSAgICBbYWJdLm91dCApCi0tICAgICAgICAjIFdlIGZvdW5kIHRoZSBkZWZhdWx0IGV4ZWN1dGFibGUsIGJ1dCBleGVleHQ9JycgaXMgbW9zdAotLSAgICAgICAgIyBjZXJ0YWlubHkgcmlnaHQuCi0tICAgICAgICBicmVhazs7Ci0tICAgICouKiApCi0tICAgICAgICBhY19jdl9leGVleHQ9YGV4cHIgIiRhY19maWxlIiA6ICdbXi5dKlwoXC4uKlwpJ2AKLS0gICAgICAgICMgRklYTUU6IEkgYmVsaWV2ZSB3ZSBleHBvcnQgYWNfY3ZfZXhlZXh0IGZvciBMaWJ0b29sLAotLSAgICAgICAgIyBidXQgaXQgd291bGQgYmUgY29vbCB0byBmaW5kIG91dCBpZiBpdCdzIHRydWUuICBEb2VzIGFueWJvZHkKLS0gICAgICAgICMgbWFpbnRhaW4gTGlidG9vbD8gLS1ha2ltLgotLSAgICAgICAgZXhwb3J0IGFjX2N2X2V4ZWV4dAotLSAgICAgICAgYnJlYWs7OwotLSAgICAqICkKLS0gICAgICAgIGJyZWFrOzsKLS0gIGVzYWMKLS1kb25lCi0tZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0teyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCi0tU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IEMgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcwotLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotLSAgIHsgKGV4aXQgNzcpOyBleGl0IDc3OyB9OyB9Ci0tZmkKLS0KLS1hY19leGVleHQ9JGFjX2N2X2V4ZWV4dAotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19maWxlIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfZmlsZSIgPiY2Ci0tCi0tIyBDaGVjayB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVyCi0tIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBjb21waWxlLgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4gJEVDSE9fQyIgPiY2Ci0tIyBGSVhNRTogVGhlc2UgY3Jvc3MgY29tcGlsZXIgaGFja3Mgc2hvdWxkIGJlIHJlbW92ZWQgZm9yIEF1dG9jb25mIDMuMAotLSMgSWYgbm90IGNyb3NzIGNvbXBpbGluZywgY2hlY2sgdGhhdCB3ZSBjYW4gcnVuIGEgc2ltcGxlIHByb2dyYW0uCi0taWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgIT0geWVzOyB0aGVuCi0tICBpZiB7IGFjX3RyeT0nLi8kYWNfZmlsZScKLS0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0tICAgIGNyb3NzX2NvbXBpbGluZz1ubwotK21haW4oKXtyZXR1cm4oMCk7fQotK0VPRgotK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6Nzc4OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4KLSsgIGFjX2N2X3Byb2dfY2Nfd29ya3M9eWVzCi0rICAjIElmIHdlIGNhbid0IHJ1biBhIHRyaXZpYWwgcHJvZ3JhbSwgd2UgYXJlIHByb2JhYmx5IHVzaW5nIGEgY3Jvc3MgY29tcGlsZXIuCi0rICBpZiAoLi9jb25mdGVzdDsgZXhpdCkgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19jY19jcm9zcz1ubwotICAgZWxzZQotLSAgICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IG1heWJlOyB0aGVuCi0tCWNyb3NzX2NvbXBpbGluZz15ZXMKLS0gICAgZWxzZQotLQl7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgcnVuIEMgY29tcGlsZWQgcHJvZ3JhbXMuCi0tSWYgeW91IG1lYW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCi0tU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBydW4gQyBjb21waWxlZCBwcm9ncmFtcy4KLS1JZiB5b3UgbWVhbnQgdG8gY3Jvc3MgY29tcGlsZSwgdXNlIFxgLS1ob3N0Jy4KLS1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLS0gICAgZmkKLSsgICAgYWNfY3ZfcHJvZ19jY19jcm9zcz15ZXMKLSAgIGZpCi0rZWxzZQotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgYWNfY3ZfcHJvZ19jY193b3Jrcz1ubwotIGZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLS1lY2hvICIke0VDSE9fVH15ZXMiID4mNgotK3JtIC1mciBjb25mdGVzdCoKLSthY19leHQ9YwotKyMgQ0ZMQUdTIGlzIG5vdCBpbiBhY19jcHAgYmVjYXVzZSAtZywgLU8sIGV0Yy4gYXJlIG5vdCB2YWxpZCBjcHAgb3B0aW9ucy4KLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyR7Q0MtY2N9IC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgMT4mNScKLSthY19saW5rPScke0NDLWNjfSAtbyBjb25mdGVzdCR7YWNfZXhlZXh0fSAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTIDE+JjUnCi0rY3Jvc3NfY29tcGlsaW5nPSRhY19jdl9wcm9nX2NjX2Nyb3NzCi0gCi0tcm0gLWYgYS5vdXQgYS5leGUgY29uZnRlc3QkYWNfY3ZfZXhlZXh0IGIub3V0Ci0tYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKLS0jIENoZWNrIHRoZSBjb21waWxlciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKLS0jIHRoZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4gJEVDSE9fQyIgPiY2Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNyb3NzX2NvbXBpbGluZyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGNyb3NzX2NvbXBpbGluZyIgPiY2Ci0tCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAkRUNIT19DIiA+JjYKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKLS0gIChldmFsICRhY19saW5rKSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0tICAjIElmIGJvdGggYGNvbmZ0ZXN0LmV4ZScgYW5kIGBjb25mdGVzdCcgYXJlIGBwcmVzZW50JyAod2VsbCwgb2JzZXJ2YWJsZSkKLS0jIGNhdGNoIGBjb25mdGVzdC5leGUnLiAgRm9yIGluc3RhbmNlIHdpdGggQ3lnd2luLCBgbHMgY29uZnRlc3QnIHdpbGwKLS0jIHdvcmsgcHJvcGVybHkgKGkuZS4sIHJlZmVyIHRvIGBjb25mdGVzdC5leGUnKSwgd2hpbGUgaXQgd29uJ3Qgd2l0aAotLSMgYHJtJy4KLS1mb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5leGUgY29uZnRlc3QgY29uZnRlc3QuKjsgZG8KLS0gIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQotLSAgY2FzZSAkYWNfZmlsZSBpbgotLSAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubyB8ICoub2JqICkgOzsKLS0gICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCi0tICAgICAgICAgIGV4cG9ydCBhY19jdl9leGVleHQKLS0gICAgICAgICAgYnJlYWs7OwotLSAgICAqICkgYnJlYWs7OwotLSAgZXNhYwotLWRvbmUKLS1lbHNlCi0tICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2YgZXhlY3V0YWJsZXM6IGNhbm5vdCBjb21waWxlIGFuZCBsaW5rCi0tU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKLS1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStlY2hvICIkYWNfdCIiJGFjX2N2X3Byb2dfY2Nfd29ya3MiIDE+JjYKLStpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX3dvcmtzID0gbm87IHRoZW4KLSsgIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogaW5zdGFsbGF0aW9uIG9yIGNvbmZpZ3VyYXRpb24gcHJvYmxlbTogQyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzLiIgMT4mMjsgZXhpdCAxOyB9Ci0gZmkKLStlY2hvICRhY19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyICgkQ0MgJENGTEFHUyAkTERGTEFHUykgaXMgYSBjcm9zcy1jb21waWxlciIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjgwNDogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciAoJENDICRDRkxBR1MgJExERkxBR1MpIGlzIGEgY3Jvc3MtY29tcGlsZXIiID4mNQotK2VjaG8gIiRhY190IiIkYWNfY3ZfcHJvZ19jY19jcm9zcyIgMT4mNgotK2Nyb3NzX2NvbXBpbGluZz0kYWNfY3ZfcHJvZ19jY19jcm9zcwotIAotLXJtIC1mIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dAotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9leGVleHQiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl9leGVleHQiID4mNgotLQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19leHQKLS1FWEVFWFQ9JGFjX2N2X2V4ZWV4dAotLWFjX2V4ZWV4dD0kRVhFRVhUCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3Zfb2JqZXh0K3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotK2VjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIEdOVSBDIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6ODA5OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyBHTlUgQyIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3Byb2dfZ2NjJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSsgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci0gZWxzZQotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tCi0taW50Ci0tbWFpbiAoKQotLXsKLS0KLS0gIDsKLS0gIHJldHVybiAwOwotLX0KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iagotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLS0gIGZvciBhY19maWxlIGluIGAobHMgY29uZnRlc3QubyBjb25mdGVzdC5vYmo7IGxzIGNvbmZ0ZXN0LiopIDI+L2Rldi9udWxsYDsgZG8KLS0gIGNhc2UgJGFjX2ZpbGUgaW4KLS0gICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgKSA7OwotLSAgICAqKSBhY19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxlIiA6ICcuKlwuXCguKlwpJ2AKLS0gICAgICAgYnJlYWs7OwotLSAgZXNhYwotLWRvbmUKLSsgIGNhdCA+IGNvbmZ0ZXN0LmMgPDxFT0YKLSsjaWZkZWYgX19HTlVDX18KLSsgIHllczsKLSsjZW5kaWYKLStFT0YKLStpZiB7IGFjX3RyeT0nJHtDQy1jY30gLUUgY29uZnRlc3QuYyc7IHsgKGV2YWwgZWNobyBjb25maWd1cmU6ODE4OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfTsgfSB8IGVncmVwIHllcyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGFjX2N2X3Byb2dfZ2NjPXllcwotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLXsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21waWxlCi0tU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21waWxlCi0tU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBhY19jdl9wcm9nX2djYz1ubwotIGZpCi0tCi0tcm0gLWYgY29uZnRlc3QuJGFjX2N2X29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0gZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3Zfb2JqZXh0IiA+JjYKLS1PQkpFWFQ9JGFjX2N2X29iamV4dAotLWFjX29iamV4dD0kT0JKRVhUCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlciIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9jX2NvbXBpbGVyX2dudStzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSAKLS1pbnQKLS1tYWluICgpCi0tewotLSNpZm5kZWYgX19HTlVDX18KLS0gICAgICAgY2hva2UgbWUKLS0jZW5kaWYKLStlY2hvICIkYWNfdCIiJGFjX2N2X3Byb2dfZ2NjIiAxPiY2Ci0gCi0tICA7Ci0tICByZXR1cm4gMDsKLS19Ci0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLS0gIGFjX2NvbXBpbGVyX2dudT15ZXMKLStpZiB0ZXN0ICRhY19jdl9wcm9nX2djYyA9IHllczsgdGhlbgotKyAgR0NDPXllcwotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLWFjX2NvbXBpbGVyX2dudT1ubwotKyAgR0NDPQotIGZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0tYWNfY3ZfY19jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQotIAotLWZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNgotLUdDQz1gdGVzdCAkYWNfY29tcGlsZXJfZ251ID0geWVzICYmIGVjaG8geWVzYAotLWFjX3Rlc3RfQ0ZMQUdTPSR7Q0ZMQUdTK3NldH0KLS1hY19zYXZlX0NGTEFHUz0kQ0ZMQUdTCi0tQ0ZMQUdTPSItZyIKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZyIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jY19nK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotK2FjX3Rlc3RfQ0ZMQUdTPSIke0NGTEFHUytzZXR9IgotK2FjX3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotK0NGTEFHUz0KLStlY2hvICRhY19uICJjaGVja2luZyB3aGV0aGVyICR7Q0MtY2N9IGFjY2VwdHMgLWciIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZTo4Mzc6IGNoZWNraW5nIHdoZXRoZXIgJHtDQy1jY30gYWNjZXB0cyAtZyIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3Byb2dfY2NfZycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0rICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotIGVsc2UKLS0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotLQotLWludAotLW1haW4gKCkKLS17Ci0tCi0tICA7Ci0tICByZXR1cm4gMDsKLS19Ci0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSsgIGVjaG8gJ3ZvaWQgZigpe30nID4gY29uZnRlc3QuYwotK2lmIHRlc3QgLXogImAke0NDLWNjfSAtZyAtYyBjb25mdGVzdC5jIDI+JjFgIjsgdGhlbgotICAgYWNfY3ZfcHJvZ19jY19nPXllcwotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgYWNfY3ZfcHJvZ19jY19nPW5vCi0rZmkKLStybSAtZiBjb25mdGVzdCoKLSAKLS1hY19jdl9wcm9nX2NjX2c9bm8KLSBmaQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotLWZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfY2NfZyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfY2NfZyIgPiY2Ci0rCi0rZWNobyAiJGFjX3QiIiRhY19jdl9wcm9nX2NjX2ciIDE+JjYKLSBpZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCi0tICBDRkxBR1M9JGFjX3NhdmVfQ0ZMQUdTCi0rICBDRkxBR1M9IiRhY19zYXZlX0NGTEFHUyIKLSBlbGlmIHRlc3QgJGFjX2N2X3Byb2dfY2NfZyA9IHllczsgdGhlbgotICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSAgICAgQ0ZMQUdTPSItZyAtTzIiCi1AQCAtMjAyOCwzMDQgKzg2MywzNyBAQAotICAgICBDRkxBR1M9Ci0gICBmaQotIGZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBBTlNJIEMiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IEFOU0kgQy4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2Nfc3RkYytzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0tICBhY19jdl9wcm9nX2NjX3N0ZGM9bm8KLS1hY19zYXZlX0NDPSRDQwotLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotLSNpbmNsdWRlIDxzdGRhcmcuaD4KLS0jaW5jbHVkZSA8c3RkaW8uaD4KLS0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0tI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0tLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBzdG9sZW4gZnJvbSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLwotLXN0cnVjdCBidWYgeyBpbnQgeDsgfTsKLS1GSUxFICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpOwotLXN0YXRpYyBjaGFyICplIChwLCBpKQotLSAgICAgY2hhciAqKnA7Ci0tICAgICBpbnQgaTsKLS17Ci0tICByZXR1cm4gcFtpXTsKLS19Ci0tc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoqLCBpbnQpLCBjaGFyICoqcCwgLi4uKQotLXsKLS0gIGNoYXIgKnM7Ci0tICB2YV9saXN0IHY7Ci0tICB2YV9zdGFydCAodixwKTsKLS0gIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50KSk7Ci0tICB2YV9lbmQgKHYpOwotLSAgcmV0dXJuIHM7Ci0tfQotLWludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOwotLXN0cnVjdCBzMSB7aW50ICgqZikgKGludCBhKTt9OwotLXN0cnVjdCBzMiB7aW50ICgqZikgKGRvdWJsZSBhKTt9OwotLWludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOwotLWludCBhcmdjOwotLWNoYXIgKiphcmd2OwotLWludAotLW1haW4gKCkKLS17Ci0tcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFyZ3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOwotLSAgOwotLSAgcmV0dXJuIDA7Ci0tfQotLV9BQ0VPRgotLSMgRG9uJ3QgdHJ5IGdjYyAtYW5zaTsgdGhhdCB0dXJucyBvZmYgdXNlZnVsIGV4dGVuc2lvbnMgYW5kCi0tIyBicmVha3Mgc29tZSBzeXN0ZW1zJyBoZWFkZXIgZmlsZXMuCi0tIyBBSVgJCQktcWxhbmdsdmw9YW5zaQotLSMgVWx0cml4IGFuZCBPU0YvMQktc3RkMQotLSMgSFAtVVggMTAuMjAgYW5kIGxhdGVyCS1BZQotLSMgSFAtVVggb2xkZXIgdmVyc2lvbnMJLUFhIC1EX0hQVVhfU09VUkNFCi0tIyBTVlI0CQkJLVhjIC1EX19FWFRFTlNJT05TX18KLS1mb3IgYWNfYXJnIGluICIiIC1xbGFuZ2x2bD1hbnNpIC1zdGQxIC1BZSAiLUFhIC1EX0hQVVhfU09VUkNFIiAiLVhjIC1EX19FWFRFTlNJT05TX18iCi0tZG8KLS0gIENDPSIkYWNfc2F2ZV9DQyAkYWNfYXJnIgotLSAgcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLS0gIGFjX2N2X3Byb2dfY2Nfc3RkYz0kYWNfYXJnCi0tYnJlYWsKLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSAKLS1maQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLS1kb25lCi0tcm0gLWYgY29uZnRlc3QuJGFjX2V4dCBjb25mdGVzdC4kYWNfb2JqZXh0Ci0tQ0M9JGFjX3NhdmVfQ0MKLS0KLS1maQotLQotLWNhc2UgIngkYWNfY3ZfcHJvZ19jY19zdGRjIiBpbgotLSAgeHx4bm8pCi0tICAgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vbmUgbmVlZGVkIiA+JjUKLS1lY2hvICIke0VDSE9fVH1ub25lIG5lZWRlZCIgPiY2IDs7Ci0tICAqKQotLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19zdGRjIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfcHJvZ19jY19zdGRjIiA+JjYKLS0gICAgQ0M9IiRDQyAkYWNfY3ZfcHJvZ19jY19zdGRjIiA7OwotLWVzYWMKLS0KLS0jIFNvbWUgcGVvcGxlIHVzZSBhIEMrKyBjb21waWxlciB0byBjb21waWxlIEMuICBTaW5jZSB3ZSB1c2UgYGV4aXQnLAotLSMgaW4gQysrIHdlIG5lZWQgdG8gZGVjbGFyZSBpdC4gIEluIGNhc2Ugc29tZW9uZSB1c2VzIHRoZSBzYW1lIGNvbXBpbGVyCi0tIyBmb3IgYm90aCBjb21waWxpbmcgQyBhbmQgQysrIHdlIG5lZWQgdG8gaGF2ZSB0aGUgQysrIGNvbXBpbGVyIGRlY2lkZQotLSMgdGhlIGRlY2xhcmF0aW9uIG9mIGV4aXQsIHNpbmNlIGl0J3MgdGhlIG1vc3QgZGVtYW5kaW5nIGVudmlyb25tZW50LgotLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNpZm5kZWYgX19jcGx1c3BsdXMKLS0gIGNob2tlIG1lCi0tI2VuZGlmCi0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLS0gIGZvciBhY19kZWNsYXJhdGlvbiBpbiBcCi0tICAgJydcCi0tICAgJyNpbmNsdWRlIDxzdGRsaWIuaD4nIFwKLS0gICAnZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0OycgXAotLSAgICdleHRlcm4gIkMiIHZvaWQgc3RkOjpleGl0IChpbnQpOyB1c2luZyBzdGQ6OmV4aXQ7JyBcCi0tICAgJ2V4dGVybiAiQyIgdm9pZCBleGl0IChpbnQpIHRocm93ICgpOycgXAotLSAgICdleHRlcm4gIkMiIHZvaWQgZXhpdCAoaW50KTsnIFwKLS0gICAndm9pZCBleGl0IChpbnQpOycKLS1kbwotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tI2luY2x1ZGUgPHN0ZGxpYi5oPgotLSRhY19kZWNsYXJhdGlvbgotLWludAotLW1haW4gKCkKLS17Ci0tZXhpdCAoNDIpOwotLSAgOwotLSAgcmV0dXJuIDA7Ci0tfQotLV9BQ0VPRgotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLS0gIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0tICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLS0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0tICA6Ci0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJyYW5saWIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSByYW5saWI7IGFjX3dvcmQ9JDIKLStlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZTo4NzE6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3Byb2dfUkFOTElCJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSsgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci0gZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tY29udGludWUKLS1maQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tJGFjX2RlY2xhcmF0aW9uCi0taW50Ci0tbWFpbiAoKQotLXsKLS1leGl0ICg0Mik7Ci0tICA7Ci0tICByZXR1cm4gMDsKLS19Ci0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLS0gIGJyZWFrCi0tZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tZmkKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLS1kb25lCi0tcm0gLWYgY29uZnRlc3QqCi0taWYgdGVzdCAtbiAiJGFjX2RlY2xhcmF0aW9uIjsgdGhlbgotLSAgZWNobyAnI2lmZGVmIF9fY3BsdXNwbHVzJyA+PmNvbmZkZWZzLmgKLS0gIGVjaG8gJGFjX2RlY2xhcmF0aW9uICAgICAgPj5jb25mZGVmcy5oCi0tICBlY2hvICcjZW5kaWYnICAgICAgICAgICAgID4+Y29uZmRlZnMuaAotLWZpCi0tCi0tZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tZmkKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLS1hY19leHQ9YwotLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0tYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotLWFjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0tYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotLQotLWlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLS0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1yYW5saWIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotLXNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXJhbmxpYjsgYWNfd29yZD0kMgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSAgIGFjX2N2X3Byb2dfUkFOTElCPSIkUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLSBlbHNlCi0tYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgYWNfY3ZfcHJvZ19SQU5MSUI9IiR7YWNfdG9vbF9wcmVmaXh9cmFubGliIgotLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0tICAgIGJyZWFrIDIKLS0gIGZpCi0tZG9uZQotLWRvbmUKLS0KLSsgIElGUz0iJHtJRlM9IAl9IjsgYWNfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IjoiCi0rICBhY19kdW1teT0iJFBBVEgiCi0rICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAkYWNfZGlyLyRhY193b3JkOyB0aGVuCi0rICAgICAgYWNfY3ZfcHJvZ19SQU5MSUI9InJhbmxpYiIKLSsgICAgICBicmVhawotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkYWNfc2F2ZV9pZnMiCi0rICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19SQU5MSUIiICYmIGFjX2N2X3Byb2dfUkFOTElCPSI6IgotIGZpCi0gZmkKLS1SQU5MSUI9JGFjX2N2X3Byb2dfUkFOTElCCi0rUkFOTElCPSIkYWNfY3ZfcHJvZ19SQU5MSUIiCi0gaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRSQU5MSUIiID4mNQotLWVjaG8gIiR7RUNIT19UfSRSQU5MSUIiID4mNgotKyAgZWNobyAiJGFjX3QiIiRSQU5MSUIiIDE+JjYKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotKyAgZWNobyAiJGFjX3QiIm5vIiAxPiY2Ci0gZmkKLSAKLS1maQotLWlmIHRlc3QgLXogIiRhY19jdl9wcm9nX1JBTkxJQiI7IHRoZW4KLS0gIGFjX2N0X1JBTkxJQj0kUkFOTElCCi0tICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0tc2V0IGR1bW15IHJhbmxpYjsgYWNfd29yZD0kMgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotLSAgaWYgdGVzdCAtbiAiJGFjX2N0X1JBTkxJQiI7IHRoZW4KLS0gIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSIkYWNfY3RfUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLS1lbHNlCi0tYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9InJhbmxpYiIKLS0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotLSAgICBicmVhayAyCi0tICBmaQotLWRvbmUKLS1kb25lCi0tCi0tICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIiICYmIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSI6IgotLWZpCi0tZmkKLS1hY19jdF9SQU5MSUI9JGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCCi0taWYgdGVzdCAtbiAiJGFjX2N0X1JBTkxJQiI7IHRoZW4KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9SQU5MSUIiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdF9SQU5MSUIiID4mNgotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLS1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci0tZmkKLS0KLS0gIFJBTkxJQj0kYWNfY3RfUkFOTElCCi0tZWxzZQotLSAgUkFOTElCPSIkYWNfY3ZfcHJvZ19SQU5MSUIiCi0tZmkKLS0KLSAjIEZpbmQgYSBnb29kIGluc3RhbGwgcHJvZ3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwKLSAjIHNvIG9uZSBzY3JpcHQgaXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0IGF2b2lkIHRoZSBicm9rZW4gb3IKLSAjIGluY29tcGF0aWJsZSB2ZXJzaW9uczoKLUBAIC0yMzMzLDMwNiArOTAxLDE1OCBAQAotICMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAotICMgSVJJWCAvc2Jpbi9pbnN0YWxsCi0gIyBBSVggL2Jpbi9pbnN0YWxsCi0tIyBBbWlnYU9TIC9DL2luc3RhbGwsIHdoaWNoIGluc3RhbGxzIGJvb3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCi0gIyBBSVggNCAvdXNyL2Jpbi9pbnN0YWxsYnNkLCB3aGljaCBkb2Vzbid0IHdvcmsgd2l0aG91dCBhIC1nIGZsYWcKLSAjIEFGUyAvdXNyL2Fmc3dzL2Jpbi9pbnN0YWxsLCB3aGljaCBtaXNoYW5kbGVzIG5vbmV4aXN0ZW50IGFyZ3MKLSAjIFNWUjQgL3Vzci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBub25leGlzdGVudCBncm91cCAic3RhZmYiCi0gIyAuL2luc3RhbGwsIHdoaWNoIGNhbiBiZSBlcnJvbmVvdXNseSBjcmVhdGVkIGJ5IG1ha2UgZnJvbSAuL2luc3RhbGwuc2guCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAkRUNIT19DIiA+JjYKLStlY2hvICRhY19uICJjaGVja2luZyBmb3IgYSBCU0QgY29tcGF0aWJsZSBpbnN0YWxsIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6OTEwOiBjaGVja2luZyBmb3IgYSBCU0QgY29tcGF0aWJsZSBpbnN0YWxsIiA+JjUKLSBpZiB0ZXN0IC16ICIkSU5TVEFMTCI7IHRoZW4KLS1pZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcGF0aF9pbnN0YWxsJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSsgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci0gZWxzZQotLSAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgotLWNhc2UgJGFzX2Rpci8gaW4KLS0gIC4vIHwgLi8vIHwgL2NDLyogfCBcCi0tICAvZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3IvZXRjLyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKLS0gIC91c3IvdWNiLyogKSA7OwotLSAgKikKLS0gICAgIyBPU0YxIGFuZCBTQ08gT0RUIDMuMCBoYXZlIHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KLS0gICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290Ci0tICAgICMgYnkgZGVmYXVsdC4KLS0gICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2NvaW5zdCBpbnN0YWxsOyBkbwotLSAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgICAgICAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgICAgICAgaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKLS0gICAgICAgICAgICBncmVwIGRzcG1zZyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0tICAgICAgICAgICAgIyBBSVggaW5zdGFsbC4gIEl0IGhhcyBhbiBpbmNvbXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9uLgotLSAgICAgICAgICAgIDoKLS0gICAgICAgICAgZWxpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgotLSAgICAgICAgICAgIGdyZXAgcHdwbHVzICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gICAgICAgICAgICAjIHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3JpcHQgdXNlZCBieSBIUCBwd3BsdXMtLWRvbid0IHVzZS4KLS0gICAgICAgICAgICA6Ci0tICAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICBhY19jdl9wYXRoX2luc3RhbGw9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQgLWMiCi0tICAgICAgICAgICAgYnJlYWsgMwotLSAgICAgICAgICBmaQotLSAgICAgICAgZmkKLSsgICAgSUZTPSIke0lGUz0gCX0iOyBhY19zYXZlX0lGUz0iJElGUyI7IElGUz0iOiIKLSsgIGZvciBhY19kaXIgaW4gJFBBVEg7IGRvCi0rICAgICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgotKyAgICBjYXNlICIkYWNfZGlyLyIgaW4KLSsgICAgL3wuL3wuLy98L2V0Yy8qfC91c3Ivc2Jpbi8qfC91c3IvZXRjLyp8L3NiaW4vKnwvdXNyL2Fmc3dzL2Jpbi8qfC91c3IvdWNiLyopIDs7Ci0rICAgICopCi0rICAgICAgIyBPU0YxIGFuZCBTQ08gT0RUIDMuMCBoYXZlIHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KLSsgICAgICAjIERvbid0IHVzZSBpbnN0YWxsYnNkIGZyb20gT1NGIHNpbmNlIGl0IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKLSsgICAgICAjIGJ5IGRlZmF1bHQuCi0rICAgICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2NvaW5zdCBpbnN0YWxsOyBkbwotKyAgICAgICAgaWYgdGVzdCAtZiAkYWNfZGlyLyRhY19wcm9nOyB0aGVuCi0rCSAgaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKLSsgICAgICAgICAgICBncmVwIGRzcG1zZyAkYWNfZGlyLyRhY19wcm9nID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgICAgIyBBSVggaW5zdGFsbC4gIEl0IGhhcyBhbiBpbmNvbXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9uLgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0iJGFjX2Rpci8kYWNfcHJvZyAtYyIKLSsJICAgIGJyZWFrIDIKLSsJICBmaQotKwlmaQotICAgICAgIGRvbmUKLS0gICAgZG9uZQotLSAgICA7OwotLWVzYWMKLS1kb25lCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKyAgSUZTPSIkYWNfc2F2ZV9JRlMiCi0gCi0tCi0gZmkKLSAgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCi0tICAgIElOU1RBTEw9JGFjX2N2X3BhdGhfaW5zdGFsbAotKyAgICBJTlNUQUxMPSIkYWNfY3ZfcGF0aF9pbnN0YWxsIgotICAgZWxzZQotICAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBXZSBkb24ndCBjYWNoZSBhCi0gICAgICMgcGF0aCBmb3IgSU5TVEFMTCB3aXRoaW4gYSBzb3VyY2UgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQgd2lsbAotICAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcwotICAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSBwYXRoIGlzIHJlbGF0aXZlLgotLSAgICBJTlNUQUxMPSRhY19pbnN0YWxsX3NoCi0rICAgIElOU1RBTEw9IiRhY19pbnN0YWxsX3NoIgotICAgZmkKLSBmaQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRJTlNUQUxMIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kSU5TVEFMTCIgPiY2Ci0rZWNobyAiJGFjX3QiIiRJTlNUQUxMIiAxPiY2Ci0gCi0gIyBVc2UgdGVzdCAteiBiZWNhdXNlIFN1bk9TNCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9LgotICMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uCi0gdGVzdCAteiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5TVEFMTF9QUk9HUkFNPScke0lOU1RBTEx9JwotIAotLXRlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCi0rdGVzdCAteiAiJElOU1RBTExfU0NSSVBUIiAmJiBJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMX1BST0dSQU19JwotIAotIHRlc3QgLXogIiRJTlNUQUxMX0RBVEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCi0gCi0taWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotLSAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWFyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStpZiB0ZXN0ICRob3N0ICE9ICRidWlsZDsgdGhlbgotKyAgYWNfdG9vbF9wcmVmaXg9JHtob3N0X2FsaWFzfS0KLStlbHNlCi0rICBhY190b29sX3ByZWZpeD0KLStmaQotKwotKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1hciIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0gc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9YXI7IGFjX3dvcmQ9JDIKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfQVIrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0rZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY193b3JkIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6OTcxOiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX0FSJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSsgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci0gZWxzZQotICAgaWYgdGVzdCAtbiAiJEFSIjsgdGhlbgotICAgYWNfY3ZfcHJvZ19BUj0iJEFSIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLSBlbHNlCi0tYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgYWNfY3ZfcHJvZ19BUj0iJHthY190b29sX3ByZWZpeH1hciIKLS0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotLSAgICBicmVhayAyCi0tICBmaQotLWRvbmUKLS1kb25lCi0tCi0rICBJRlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSI6IgotKyAgYWNfZHVtbXk9IiRQQVRIIgotKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8kYWNfd29yZDsgdGhlbgotKyAgICAgIGFjX2N2X3Byb2dfQVI9IiR7YWNfdG9vbF9wcmVmaXh9YXIiCi0rICAgICAgYnJlYWsKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElGUz0iJGFjX3NhdmVfaWZzIgotKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfQVIiICYmIGFjX2N2X3Byb2dfQVI9ImFyIgotIGZpCi0gZmkKLS1BUj0kYWNfY3ZfcHJvZ19BUgotK0FSPSIkYWNfY3ZfcHJvZ19BUiIKLSBpZiB0ZXN0IC1uICIkQVIiOyB0aGVuCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQVIiID4mNQotLWVjaG8gIiR7RUNIT19UfSRBUiIgPiY2Ci0rICBlY2hvICIkYWNfdCIiJEFSIiAxPiY2Ci0gZWxzZQotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotLWVjaG8gIiR7RUNIT19UfW5vIiA+JjYKLSsgIGVjaG8gIiRhY190IiJubyIgMT4mNgotIGZpCi0gCi0tZmkKLS1pZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19BUiI7IHRoZW4KLS0gIGFjX2N0X0FSPSRBUgotLSAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJhciIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0tc2V0IGR1bW15IGFyOyBhY193b3JkPSQyCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0FSK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotLWVsc2UKLS0gIGlmIHRlc3QgLW4gIiRhY19jdF9BUiI7IHRoZW4KLS0gIGFjX2N2X3Byb2dfYWNfY3RfQVI9IiRhY19jdF9BUiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0tZWxzZQotLWFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLS1mb3IgYXNfZGlyIGluICRQQVRICi0tZG8KLS0gIElGUz0kYXNfc2F2ZV9JRlMKLS0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0tICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLS0gIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCi0tICAgIGFjX2N2X3Byb2dfYWNfY3RfQVI9ImFyIgotLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0tICAgIGJyZWFrIDIKLS0gIGZpCi0tZG9uZQotLWRvbmUKLSAKLS1maQotLWZpCi0tYWNfY3RfQVI9JGFjX2N2X3Byb2dfYWNfY3RfQVIKLS1pZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQVIiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdF9BUiIgPiY2Ci0tZWxzZQotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotLWVjaG8gIiR7RUNIT19UfW5vIiA+JjYKLS1maQotIAotLSAgQVI9JGFjX2N0X0FSCi0rZWNobyAkYWNfbiAiY2hlY2tpbmcgd2hldGhlciBieXRlIG9yZGVyaW5nIGlzIGJpZ2VuZGlhbiIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjEwMDE6IGNoZWNraW5nIHdoZXRoZXIgYnl0ZSBvcmRlcmluZyBpcyBiaWdlbmRpYW4iID4mNQotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9jX2JpZ2VuZGlhbicrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0rICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotIGVsc2UKLS0gIEFSPSIkYWNfY3ZfcHJvZ19BUiIKLS1maQotLQotLQotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGJ5dGUgb3JkZXJpbmcgaXMgYmlnZW5kaWFuIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgYnl0ZSBvcmRlcmluZyBpcyBiaWdlbmRpYW4uLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9jX2JpZ2VuZGlhbitzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0tICAjIFNlZSBpZiBzeXMvcGFyYW0uaCBkZWZpbmVzIHRoZSBCWVRFX09SREVSIG1hY3JvLgotLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyAgYWNfY3ZfY19iaWdlbmRpYW49dW5rbm93bgotKyMgU2VlIGlmIHN5cy9wYXJhbS5oIGRlZmluZXMgdGhlIEJZVEVfT1JERVIgbWFjcm8uCi0rY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDEwMDggImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0gI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgotK2ludCBtYWluKCkgewotIAotLWludAotLW1haW4gKCkKLS17Ci0gI2lmICFCWVRFX09SREVSIHx8ICFCSUdfRU5ESUFOIHx8ICFMSVRUTEVfRU5ESUFOCi0gIGJvZ3VzIGVuZGlhbiBtYWNyb3MKLSAjZW5kaWYKLS0KLS0gIDsKLS0gIHJldHVybiAwOwotLX0KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotKzsgcmV0dXJuIDA7IH0KLStFT0YKLStpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjEwMTk6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRoZW4KLSsgIHJtIC1yZiBjb25mdGVzdCoKLSAgICMgSXQgZG9lczsgbm93IHNlZSB3aGV0aGVyIGl0IGRlZmluZWQgdG8gQklHX0VORElBTiBvciBub3QuCi0tY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0rY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDEwMjMgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0gI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgotK2ludCBtYWluKCkgewotIAotLWludAotLW1haW4gKCkKLS17Ci0gI2lmIEJZVEVfT1JERVIgIT0gQklHX0VORElBTgotICBub3QgYmlnIGVuZGlhbgotICNlbmRpZgotLQotLSAgOwotLSAgcmV0dXJuIDA7Ci0tfQotLV9BQ0VPRgotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLS0gIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0tICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLS0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0rOyByZXR1cm4gMDsgfQotK0VPRgotK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTAzNDogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbgotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotICAgYWNfY3ZfY19iaWdlbmRpYW49eWVzCi0gZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tYWNfY3ZfY19iaWdlbmRpYW49bm8KLSsgIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIGFjX2N2X2NfYmlnZW5kaWFuPW5vCi0gZmkKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStybSAtZiBjb25mdGVzdCoKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS0jIEl0IGRvZXMgbm90OyBjb21waWxlIGEgdGVzdCBwcm9ncmFtLgotLWlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCi0tICAjIHRyeSB0byBndWVzcyB0aGUgZW5kaWFubmVzcyBieSBncmVwcGluZyB2YWx1ZXMgaW50byBhbiBvYmplY3QgZmlsZQotLSAgYWNfY3ZfY19iaWdlbmRpYW49dW5rbm93bgotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tc2hvcnQgYXNjaWlfbW1bXSA9IHsgMHg0MjQ5LCAweDQ3NjUsIDB4NkU0NCwgMHg2OTYxLCAweDZFNTMsIDB4Nzk1MywgMCB9OwotLXNob3J0IGFzY2lpX2lpW10gPSB7IDB4Njk0QywgMHg1NDU0LCAweDY1NkMsIDB4NkU0NSwgMHg2OTQ0LCAweDZFNjEsIDAgfTsKLS12b2lkIF9hc2NpaSAoKSB7IGNoYXIgKnMgPSAoY2hhciAqKSBhc2NpaV9tbTsgcyA9IChjaGFyICopIGFzY2lpX2lpOyB9Ci0tc2hvcnQgZWJjZGljX2lpW10gPSB7IDB4ODlEMywgMHhFM0UzLCAweDg1OTMsIDB4OTVDNSwgMHg4OUM0LCAweDk1ODEsIDAgfTsKLS1zaG9ydCBlYmNkaWNfbW1bXSA9IHsgMHhDMkM5LCAweEM3ODUsIDB4OTVDNCwgMHg4OTgxLCAweDk1RTIsIDB4QThFMiwgMCB9OwotLXZvaWQgX2ViY2RpYyAoKSB7IGNoYXIgKnMgPSAoY2hhciAqKSBlYmNkaWNfbW07IHMgPSAoY2hhciAqKSBlYmNkaWNfaWk7IH0KLS1pbnQKLS1tYWluICgpCi0tewotLSBfYXNjaWkgKCk7IF9lYmNkaWMgKCk7Ci0tICA7Ci0tICByZXR1cm4gMDsKLS19Ci0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLS0gIGlmIGdyZXAgQklHZW5EaWFuU3lTIGNvbmZ0ZXN0LiRhY19vYmpleHQgPi9kZXYvbnVsbCA7IHRoZW4KLS0gIGFjX2N2X2NfYmlnZW5kaWFuPXllcwotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotIGZpCi0taWYgZ3JlcCBMaVRUbGVFbkRpYW4gY29uZnRlc3QuJGFjX29iamV4dCA+L2Rldi9udWxsIDsgdGhlbgotLSAgaWYgdGVzdCAiJGFjX2N2X2NfYmlnZW5kaWFuIiA9IHVua25vd247IHRoZW4KLS0gICAgYWNfY3ZfY19iaWdlbmRpYW49bm8KLS0gIGVsc2UKLS0gICAgIyBmaW5kaW5nIGJvdGggc3RyaW5ncyBpcyB1bmxpa2VseSB0byBoYXBwZW4sIGJ1dCB3aG8ga25vd3M/Ci0tICAgIGFjX2N2X2NfYmlnZW5kaWFuPXVua25vd24KLS0gIGZpCi0tZmkKLStybSAtZiBjb25mdGVzdCoKLStpZiB0ZXN0ICRhY19jdl9jX2JpZ2VuZGlhbiA9IHVua25vd247IHRoZW4KLStpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgotKyAgICB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6IGNhbiBub3QgcnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmciIDE+JjI7IGV4aXQgMTsgfQotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLWZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0tZWxzZQotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0taW50Ci0tbWFpbiAoKQotLXsKLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSsjbGluZSAxMDU0ICJjb25maWd1cmUiCi0rI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0rbWFpbiAoKSB7Ci0gICAvKiBBcmUgd2UgbGl0dGxlIG9yIGJpZyBlbmRpYW4/ICBGcm9tIEhhcmJpc29uJlN0ZWVsZS4gICovCi0gICB1bmlvbgotICAgewotQEAgLTI2NDIsNTIgKzEwNjIsMzEgQEAKLSAgIHUubCA9IDE7Ci0gICBleGl0ICh1LmNbc2l6ZW9mIChsb25nKSAtIDFdID09IDEpOwotIH0KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdCRhY19leGVleHQKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKLS0gIChldmFsICRhY19saW5rKSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLS0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0rRU9GCi0raWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxMDY3OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gJiYgKC4vY29uZnRlc3Q7IGV4aXQpIDI+L2Rldi9udWxsCi0rdGhlbgotICAgYWNfY3ZfY19iaWdlbmRpYW49bm8KLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotLWVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLSggZXhpdCAkYWNfc3RhdHVzICkKLS1hY19jdl9jX2JpZ2VuZGlhbj15ZXMKLSsgIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsgIHJtIC1mciBjb25mdGVzdCoKLSsgIGFjX2N2X2NfYmlnZW5kaWFuPXllcwotIGZpCi0tcm0gLWYgY29yZSBjb3JlLiogKi5jb3JlIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rcm0gLWZyIGNvbmZ0ZXN0KgotIGZpCi0rCi0gZmkKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSBmaQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9jX2JpZ2VuZGlhbiIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2NfYmlnZW5kaWFuIiA+JjYKLS1jYXNlICRhY19jdl9jX2JpZ2VuZGlhbiBpbgotLSAgeWVzKQotIAotLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rZWNobyAiJGFjX3QiIiRhY19jdl9jX2JpZ2VuZGlhbiIgMT4mNgotK2lmIHRlc3QgJGFjX2N2X2NfYmlnZW5kaWFuID0geWVzOyB0aGVuCi0rICBjYXQgPj4gY29uZmRlZnMuaCA8PFxFT0YKLSAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCi0tX0FDRU9GCi0tIDs7Ci0tICBubykKLS0gICAgIDs7Ci0tICAqKQotLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB1bmtub3duIGVuZGlhbm5lc3MKLS1wcmVzZXR0aW5nIGFjX2N2X2NfYmlnZW5kaWFuPW5vIChvciB5ZXMpIHdpbGwgaGVscCIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogdW5rbm93biBlbmRpYW5uZXNzCi0tcHJlc2V0dGluZyBhY19jdl9jX2JpZ2VuZGlhbj1ubyAob3IgeWVzKSB3aWxsIGhlbHAiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7Ci0tZXNhYwotK0VPRgotIAotK2ZpCi0gCi0rCi0gaWYgdGVzdCAieCRHQ0MiID0gInh5ZXMiOyB0aGVuCi0gCUNGTEFHUz0iJENGTEFHUyAtV2FsbCIKLSBmaQotQEAgLTI2OTcsMTQgKzEwOTYsMTMgQEAKLSAgIGNhc2UgIiR7ZW5hYmxldmFsfSIgaW4KLSAgICAgICAgICAgICAgICAgIHllcykgc2hhcmVkPXRydWUgOzsKLSAgICAgICAgICAgICAgICAgIG5vKSBzaGFyZWQ9ZmFsc2UgOzsKLS0gICAgICAgICAgICAgICAgICopIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGJhZCB2YWx1ZSAke2VuYWJsZXZhbH0gZm9yIHNoYXJlZCBvcHRpb25zIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBiYWQgdmFsdWUgJHtlbmFibGV2YWx9IGZvciBzaGFyZWQgb3B0aW9ucyIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKLSsgICAgICAgICAgICAgICAgICopIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogYmFkIHZhbHVlICR7ZW5hYmxldmFsfSBmb3Igc2hhcmVkIG9wdGlvbnMiIDE+JjI7IGV4aXQgMTsgfSA7OwotICAgICAgICAgICAgICAgICAgZXNhYwotIGVsc2UKLSAgIHNoYXJlZD1mYWxzZQotLWZpOwotK2ZpCi0gCi0rCi0gY2FzZSAiJHRhcmdldF9jcHUiIGluCi0gICAgICBpMzg2fGk0ODZ8aTU4NnxpNjg2KQotIAlUQVJHRVRfQ1BVPWkzODYKLUBAIC0yNzEyLDcgKzExMTAsNyBAQAotICAgICAgKikKLSAgICAgICAgIFRBUkdFVF9DUFU9JHRhcmdldF9jcHUKLSAgICAgIDs7Ci0tZXNhYwotK2VzYWMgICAgIAotIFRBUkdFVF9PUz0kdGFyZ2V0X29zCi0gCi0gTTY4S0NDPQotQEAgLTI3MjYsNyArMTEyNCw3IEBACi0gCQlNNjhLQ0M9L3Vzci9tNjhrLXBhbG1vcy9iaW4vZ2NjCi0gCQkjIEdlbmVyaWMgYnVpbGQgaXMgQVJNIG9yIE02OEsgKHByb2JhYmx5IEFSTSB0aG91Z2gpCi0gICAgICAgICAgICAgICAgIENDPSIvdXNyLyRUQVJHRVRfQ1BVLXBhbG1vcy9iaW4vZ2NjIgotLQkJaWYgdGVzdCAiJHRhcmdldF9jcHUiID0gImFybSIKLSsJCWlmIHRlc3QgIiR0YXJnZXRfY3B1IiA9ICJhcm0iIAotICAgICAgICAgICAgICAgICB0aGVuCi0gICAgICAgICAgICAgICAgICAgIENDPSIkQ0MgLWZQSUMgLW1hcmNoPWFybXY0dCIKLSAgICAgICAgICAgICAgICAgZmkKLUBAIC0yNzYyLDcgKzExNjAsNyBAQAotICAgICAgKikKLSAgICAgICAgIEhPU1RfQ1BVPSRob3N0X2NwdQotICAgICAgOzsKLS1lc2FjCi0rZXNhYyAgICAgCi0gSE9TVF9PUz0kaG9zdF9vcwotIAotIAotQEAgLTI4MDAsMTM4ICsxMTk4LDkxIEBACi0gICBjYXNlICIke2VuYWJsZXZhbH0iIGluCi0gICAgICAgICAgICAgICAgICB5ZXMpIHNvY2tldHM9dHJ1ZSA7OwotICAgICAgICAgICAgICAgICAgbm8pIHNvY2tldHM9ZmFsc2UgOzsKLS0gICAgICAgICAgICAgICAgICopIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGJhZCB2YWx1ZSAke2VuYWJsZXZhbH0gZm9yIHNvY2tldHMgb3B0aW9ucyIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogYmFkIHZhbHVlICR7ZW5hYmxldmFsfSBmb3Igc29ja2V0cyBvcHRpb25zIiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICAgICAgICAgICAgICAgKikgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBiYWQgdmFsdWUgJHtlbmFibGV2YWx9IGZvciBzb2NrZXRzIG9wdGlvbnMiIDE+JjI7IGV4aXQgMTsgfSA7OwotICAgICAgICAgICAgICAgICAgZXNhYwotIGVsc2UKLSAgIHNvY2tldHM9dHJ1ZQotLWZpOwotK2ZpCi0rCi0gaWYgdGVzdCAiJHNvY2tldHMiID0gZmFsc2U7IHRoZW4KLS0gICBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyAgIGNhdCA+PiBjb25mZGVmcy5oIDw8XEVPRgotICNkZWZpbmUgQ1NUX05PX1NPQ0tFVFMgMQotLV9BQ0VPRgotK0VPRgotIAotIGZpCi0gCi0tY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0rY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDEyMTYgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSAjaW5jbHVkZSA8c3RkaW8uaD4KLS1pbnQKLS1tYWluICgpCi0tewotK2ludCBtYWluKCkgewotICBzdHJ1Y3QgYSB7IHVuaW9uIHsgZmxvYXQgYjsgaW50IGM7IH0gZDsgfTsKLS0gICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhIGUgPSB7IC5kPXsgLmI9My4xNCB9IH07Ci0tICA7Ci0tICByZXR1cm4gMDsKLS19Ci0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSsgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhIGUgPSB7IC5kPXsgLmI9My4xNCB9IH07IAotKzsgcmV0dXJuIDA7IH0KLStFT0YKLStpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjEyMjQ6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRoZW4KLSsgIHJtIC1yZiBjb25mdGVzdCoKLSAgIHVuaW9uaW5pdD15ZXMKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS11bmlvbmluaXQ9bm8KLSsgIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIHVuaW9uaW5pdD1ubwotIGZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rcm0gLWYgY29uZnRlc3QqCi0gaWYgdGVzdCAiJHVuaW9uaW5pdCIgPSBubzsgdGhlbgotLSAgIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rICAgY2F0ID4+IGNvbmZkZWZzLmggPDxcRU9GCi0gI2RlZmluZSBOT19VTklPTl9JTklUSUFMSVpBVElPTiAxCi0tX0FDRU9GCi0rRU9GCi0gCi0gZmkKLSAKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1tYXAiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1tYXAuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9mdW5jX21tYXArc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0rZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIG1tYXAiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZToxMjQyOiBjaGVja2luZyBmb3IgbW1hcCIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2Z1bmNfbW1hcCcrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0rICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotIGVsc2UKLS0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDEyNDcgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCi0tICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbW1hcCAoKTsgYmVsb3cuCi0tICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLS0gICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KLS0jaWZkZWYgX19TVERDX18KLS0jIGluY2x1ZGUgPGxpbWl0cy5oPgotLSNlbHNlCi0tIyBpbmNsdWRlIDxhc3NlcnQuaD4KLS0jZW5kaWYKLSsgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBtbWFwKCk7IGJlbG93LiAgKi8KLSsjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0gLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLS0jaWZkZWYgX19jcGx1c3BsdXMKLS1leHRlcm4gIkMiCi0tewotLSNlbmRpZgotIC8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKLS0gICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotLWNoYXIgbW1hcCAoKTsKLSsgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLStjaGFyIG1tYXAoKTsKLSsKLStpbnQgbWFpbigpIHsKLSsKLSAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCi0gICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCi0gICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwotICNpZiBkZWZpbmVkIChfX3N0dWJfbW1hcCkgfHwgZGVmaW5lZCAoX19zdHViX19fbW1hcCkKLSBjaG9rZSBtZQotICNlbHNlCi0tY2hhciAoKmYpICgpID0gbW1hcDsKLSttbWFwKCk7Ci0gI2VuZGlmCi0tI2lmZGVmIF9fY3BsdXNwbHVzCi0tfQotLSNlbmRpZgotIAotLWludAotLW1haW4gKCkKLS17Ci0tcmV0dXJuIGYgIT0gbW1hcDsKLS0gIDsKLS0gIHJldHVybiAwOwotLX0KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgYWNfY3ZfZnVuY19tbWFwPXllcwotKzsgcmV0dXJuIDA7IH0KLStFT0YKLStpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjEyNzA6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgZXZhbCAiYWNfY3ZfZnVuY19tbWFwPXllcyIKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS1hY19jdl9mdW5jX21tYXA9bm8KLSsgIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIGV2YWwgImFjX2N2X2Z1bmNfbW1hcD1ubyIKLSBmaQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStybSAtZiBjb25mdGVzdCoKLSBmaQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX21tYXAiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl9mdW5jX21tYXAiID4mNgotLWlmIHRlc3QgJGFjX2N2X2Z1bmNfbW1hcCA9IHllczsgdGhlbgotKwotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJGFjX2N2X2Z1bmNfJ21tYXBgXCIgPSB5ZXMiOyB0aGVuCi0rICBlY2hvICIkYWNfdCIieWVzIiAxPiY2Ci0gICBNTUFQVFlQRT1wb3NpeAotK2Vsc2UKLSsgIGVjaG8gIiRhY190IiJubyIgMT4mNgotIGZpCi0gCi0gCi1AQCAtMjk1NiwxMDI4ICsxMzA3LDI2NiBAQAotIAotIAotIEFVRElPRFJJVkVSPW5vbmUKLS1hY19leHQ9YwotLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0tYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotLWFjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0tYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3NvciIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nvci4uLiAkRUNIT19DIiA+JjYKLStlY2hvICRhY19uICJjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3NvciIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjEzMTI6IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIiA+JjUKLSAjIE9uIFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0b3J5LgotIGlmIHRlc3QgLW4gIiRDUFAiICYmIHRlc3QgLWQgIiRDUFAiOyB0aGVuCi0gICBDUFA9Ci0gZmkKLSBpZiB0ZXN0IC16ICIkQ1BQIjsgdGhlbgotLSAgaWYgdGVzdCAiJHthY19jdl9wcm9nX0NQUCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19DUFAnK3NldH0nYFwiID0gc2V0IjsgdGhlbgotKyAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLSBlbHNlCi0tICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVkCi0tICAgIGZvciBDUFAgaW4gIiRDQyAtRSIgIiRDQyAtRSAtdHJhZGl0aW9uYWwtY3BwIiAiL2xpYi9jcHAiCi0tICAgIGRvCi0tICAgICAgYWNfcHJlcHJvY19vaz1mYWxzZQotLWZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotLWRvCi0tICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0tICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLS0gICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotLSAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCi0rICAgICMgVGhpcyBtdXN0IGJlIGluIGRvdWJsZSBxdW90ZXMsIG5vdCBzaW5nbGUgcXVvdGVzLCBiZWNhdXNlIENQUCBtYXkgZ2V0Ci0rICAjIHN1YnN0aXR1dGVkIGludG8gdGhlIE1ha2VmaWxlIGFuZCAiJHtDQy1jY30iIHdpbGwgY29uZnVzZSBtYWtlLgotKyAgQ1BQPSIke0NDLWNjfSAtRSIKLSAgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCi0tICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLS0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotLSNpZmRlZiBfX1NURENfXwotLSMgaW5jbHVkZSA8bGltaXRzLmg+Ci0tI2Vsc2UKLS0jIGluY2x1ZGUgPGFzc2VydC5oPgotLSNlbmRpZgotLSAgICAgICAgICAgICAgICAgICAgIFN5bnRheCBlcnJvcgotLV9BQ0VPRgotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLS0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLS0gIGFjX3N0YXR1cz0kPwotLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLS0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLS0gIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0tICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKLS0gIGVsc2UKLS0gICAgYWNfY3BwX2Vycj0KLS0gIGZpCi0tZWxzZQotLSAgYWNfY3BwX2Vycj15ZXMKLS1maQotLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4KLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSsjbGluZSAxMzI3ICJjb25maWd1cmUiCi0rI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0rI2luY2x1ZGUgPGFzc2VydC5oPgotK1N5bnRheCBFcnJvcgotK0VPRgotK2FjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQiCi0reyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxMzMzOiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotK2FjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNvbmZ0ZXN0LiR7YWNfZXh0fVwkImAKLStpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgotICAgOgotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLSAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgotLWNvbnRpbnVlCi0tZmkKLS1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotLQotLSAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbi1leGlzdGVudCBoZWFkZXJzCi0tICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0tX0FDRU9GCi0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0tICBjYXQgY29uZnRlc3QuZXJyID4mNQotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgotLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLS0gICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZwotLSAgZWxzZQotLSAgICBhY19jcHBfZXJyPQotLSAgZmkKLS1lbHNlCi0tICBhY19jcHBfZXJyPXllcwotLWZpCi0taWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCi0tICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgotLWNvbnRpbnVlCi0tZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tICAjIFBhc3NlcyBib3RoIHRlc3RzLgotLWFjX3ByZXByb2Nfb2s9OgotLWJyZWFrCi0tZmkKLS1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotLQotLWRvbmUKLS0jIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLS1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotLWlmICRhY19wcmVwcm9jX29rOyB0aGVuCi0tICBicmVhawotLWZpCi0tCi0tICAgIGRvbmUKLS0gICAgYWNfY3ZfcHJvZ19DUFA9JENQUAotLQotLWZpCi0tICBDUFA9JGFjX2N2X3Byb2dfQ1BQCi0tZWxzZQotLSAgYWNfY3ZfcHJvZ19DUFA9JENQUAotLWZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENQUCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JENQUCIgPiY2Ci0tYWNfcHJlcHJvY19vaz1mYWxzZQotLWZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotLWRvCi0tICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0tICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLS0gICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotLSAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCi0tICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotLSAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0jaWZkZWYgX19TVERDX18KLS0jIGluY2x1ZGUgPGxpbWl0cy5oPgotLSNlbHNlCi0tIyBpbmNsdWRlIDxhc3NlcnQuaD4KLS0jZW5kaWYKLS0gICAgICAgICAgICAgICAgICAgICBTeW50YXggZXJyb3IKLS1fQUNFT0YKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0tICBhY19zdGF0dXM9JD8KLS0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0tICBybSAtZiBjb25mdGVzdC5lcjEKLS0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCi0tICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0tICBlbHNlCi0tICAgIGFjX2NwcF9lcnI9Ci0tICBmaQotLWVsc2UKLS0gIGFjX2NwcF9lcnI9eWVzCi0tZmkKLS1pZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLSsgIGVjaG8gIiRhY19lcnIiID4mNQotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgQ1BQPSIke0NDLWNjfSAtRSAtdHJhZGl0aW9uYWwtY3BwIgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDEzNDQgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSsjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rU3ludGF4IEVycm9yCi0rRU9GCi0rYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCIKLSt7IChldmFsIGVjaG8gY29uZmlndXJlOjEzNTA6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9Ci0rYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAotK2lmIHRlc3QgLXogIiRhY19lcnIiOyB0aGVuCi0gICA6Ci0gZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0tY29udGludWUKLS1maQotLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0tCi0tICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uLWV4aXN0ZW50IGhlYWRlcnMKLS0gICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCi0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0jaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLS1fQUNFT0YKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0tICBhY19zdGF0dXM9JD8KLS0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0tICBybSAtZiBjb25mdGVzdC5lcjEKLS0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCi0tICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0tICBlbHNlCi0tICAgIGFjX2NwcF9lcnI9Ci0tICBmaQotLWVsc2UKLS0gIGFjX2NwcF9lcnI9eWVzCi0tZmkKLS1pZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLS0gICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi0tY29udGludWUKLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS0gICMgUGFzc2VzIGJvdGggdGVzdHMuCi0tYWNfcHJlcHJvY19vaz06Ci0tYnJlYWsKLS1maQotLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0tCi0tZG9uZQotLSMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0taWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSsgIGVjaG8gIiRhY19lcnIiID4mNQotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgQ1BQPSIke0NDLWNjfSAtbm9sb2dvIC1FIgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDEzNjEgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSsjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rU3ludGF4IEVycm9yCi0rRU9GCi0rYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCIKLSt7IChldmFsIGVjaG8gY29uZmlndXJlOjEzNjc6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9Ci0rYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAotK2lmIHRlc3QgLXogIiRhY19lcnIiOyB0aGVuCi0gICA6Ci0gZWxzZQotLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0tU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVjawotLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgZWNobyAiJGFjX2VyciIgPiY1Ci0rICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotKyAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rICBybSAtcmYgY29uZnRlc3QqCi0rICBDUFA9L2xpYi9jcHAKLSBmaQotLQotLWFjX2V4dD1jCi0tYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLS1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0tYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLS1hY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0tCi0tCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBlZ3JlcCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgZWdyZXAuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9wcm9nX2VncmVwK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotLWVsc2UKLS0gIGlmIGVjaG8gYSB8IChncmVwIC1FICcoYXxiKScpID4vZGV2L251bGwgMj4mMQotLSAgICB0aGVuIGFjX2N2X3Byb2dfZWdyZXA9J2dyZXAgLUUnCi0tICAgIGVsc2UgYWNfY3ZfcHJvZ19lZ3JlcD0nZWdyZXAnCi0tICAgIGZpCi0rcm0gLWYgY29uZnRlc3QqCi0gZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19lZ3JlcCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfZWdyZXAiID4mNgotLSBFR1JFUD0kYWNfY3ZfcHJvZ19lZ3JlcAotLQotLQotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotLWVsc2UKLS0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotLSNpbmNsdWRlIDxzdGRsaWIuaD4KLS0jaW5jbHVkZSA8c3RkYXJnLmg+Ci0tI2luY2x1ZGUgPHN0cmluZy5oPgotLSNpbmNsdWRlIDxmbG9hdC5oPgotLQotLWludAotLW1haW4gKCkKLS17Ci0tCi0tICA7Ci0tICByZXR1cm4gMDsKLS19Ci0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLS0gIGFjX2N2X2hlYWRlcl9zdGRjPXllcwotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLWFjX2N2X2hlYWRlcl9zdGRjPW5vCi0tZmkKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLS0KLS1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotLSAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tI2luY2x1ZGUgPHN0cmluZy5oPgotLQotLV9BQ0VPRgotLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLS0gICRFR1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gIDoKLS1lbHNlCi0tICBhY19jdl9oZWFkZXJfc3RkYz1ubwotLWZpCi0gcm0gLWYgY29uZnRlc3QqCi0tCi0gZmkKLS0KLS1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotLSAgIyBJU0MgMi4wLjIgc3RkbGliLmggZG9lcyBub3QgZGVjbGFyZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tI2luY2x1ZGUgPHN0ZGxpYi5oPgotLQotLV9BQ0VPRgotLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLS0gICRFR1JFUCAiZnJlZSIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0tICA6Ci0tZWxzZQotLSAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLS1maQotIHJtIC1mIGNvbmZ0ZXN0KgotLQotKyAgYWNfY3ZfcHJvZ19DUFA9IiRDUFAiCi0gZmkKLS0KLS1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotLSAgIyAvYmluL2NjIGluIElyaXgtNC4wLjUgZ2V0cyBub24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5nIC1hbnNpLgotLSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLS0gIDoKLSsgIENQUD0iJGFjX2N2X3Byb2dfQ1BQIgotIGVsc2UKLS0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotLSNpbmNsdWRlIDxjdHlwZS5oPgotLSNpZiAoKCcgJyAmIDB4MEZGKSA9PSAweDAyMCkKLS0jIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYmIChjKSA8PSAneicpCi0tIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDogKGMpKQotLSNlbHNlCi0tIyBkZWZpbmUgSVNMT1dFUihjKSBcCi0tICAgICAgICAgICAgICAgICAgICgoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ2knKSBcCi0tICAgICAgICAgICAgICAgICAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdyJykgXAotLSAgICAgICAgICAgICAgICAgICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicpKQotLSMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCi0tI2VuZGlmCi0tCi0tI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYpKSkKLS1pbnQKLS1tYWluICgpCi0tewotLSAgaW50IGk7Ci0tICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCi0tICAgIGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKLS0gICAgICAgIHx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQotLSAgICAgIGV4aXQoMik7Ci0tICBleGl0ICgwKTsKLS19Ci0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0tICAoZXZhbCAkYWNfbGluaykgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgOgotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci0tZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tKCBleGl0ICRhY19zdGF0dXMgKQotLWFjX2N2X2hlYWRlcl9zdGRjPW5vCi0rICBhY19jdl9wcm9nX0NQUD0iJENQUCIKLSBmaQotLXJtIC1mIGNvcmUgY29yZS4qICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotLWZpCi0tZmkKLS1maQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3RkYyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zdGRjIiA+JjYKLS1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotK2VjaG8gIiRhY190IiIkQ1BQIiAxPiY2Ci0gCi0tY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLS0jZGVmaW5lIFNURENfSEVBREVSUyAxCi0tX0FDRU9GCi0tCi0tZmkKLS0KLS0jIE9uIElSSVggNS4zLCBzeXMvdHlwZXMgYW5kIGludHR5cGVzLmggYXJlIGNvbmZsaWN0aW5nLgotLQotLQotLQotLQotLQotLQotLQotLQotLQotLWZvciBhY19oZWFkZXIgaW4gc3lzL3R5cGVzLmggc3lzL3N0YXQuaCBzdGRsaWIuaCBzdHJpbmcuaCBtZW1vcnkuaCBzdHJpbmdzLmggXAotLSAgICAgICAgICAgICAgICAgIGludHR5cGVzLmggc3RkaW50LmggdW5pc3RkLmgKLS1kbwotLWFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKLS1pZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotK2FjX3NhZmU9YGVjaG8gInN5cy9zb3VuZGNhcmQuaCIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCi0rZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIHN5cy9zb3VuZGNhcmQuaCIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjEzOTM6IGNoZWNraW5nIGZvciBzeXMvc291bmRjYXJkLmgiID4mNQotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgotKyAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLSBlbHNlCi0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0kYWNfaW5jbHVkZXNfZGVmYXVsdAotLQotLSNpbmNsdWRlIDwkYWNfaGVhZGVyPgotLV9BQ0VPRgotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLS0gIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0tICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLS0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0tICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS1ldmFsICIkYXNfYWNfSGVhZGVyPW5vIgotLWZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgotLWlmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KLS0gIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLS0jZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQotLV9BQ0VPRgotLQotLWZpCi0tCi0tZG9uZQotLQotLQotLWlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N5c19zb3VuZGNhcmRfaCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMvc291bmRjYXJkLmgiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN5cy9zb3VuZGNhcmQuaC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfc291bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N5c19zb3VuZGNhcmRfaCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfc291bmRjYXJkX2giID4mNgotLWVsc2UKLS0gICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvc291bmRjYXJkLmggdXNhYmlsaXR5IiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIHN5cy9zb3VuZGNhcmQuaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2Ci0tY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tJGFjX2luY2x1ZGVzX2RlZmF1bHQKLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSsjbGluZSAxMzk4ICJjb25maWd1cmUiCi0rI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0gI2luY2x1ZGUgPHN5cy9zb3VuZGNhcmQuaD4KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwotK0VPRgotK2FjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQiCi0reyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxNDAzOiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotK2FjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNvbmZ0ZXN0LiR7YWNfZXh0fVwkImAKLStpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgZXZhbCAiYWNfY3ZfaGVhZGVyXyRhY19zYWZlPXllcyIKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS1hY19oZWFkZXJfY29tcGlsZXI9bm8KLSsgIGVjaG8gIiRhY19lcnIiID4mNQotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgZXZhbCAiYWNfY3ZfaGVhZGVyXyRhY19zYWZlPW5vIgotIGZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2Ci0tCi0tIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHN5cy9zb3VuZGNhcmQuaCBwcmVzZW5jZSIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBzeXMvc291bmRjYXJkLmggcHJlc2VuY2UuLi4gJEVDSE9fQyIgPiY2Ci0tY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tI2luY2x1ZGUgPHN5cy9zb3VuZGNhcmQuaD4KLS1fQUNFT0YKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0tICBhY19zdGF0dXM9JD8KLS0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0tICBybSAtZiBjb25mdGVzdC5lcjEKLS0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCi0tICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0tICBlbHNlCi0tICAgIGFjX2NwcF9lcnI9Ci0tICBmaQotLWVsc2UKLS0gIGFjX2NwcF9lcnI9eWVzCi0rcm0gLWYgY29uZnRlc3QqCi0gZmkKLS1pZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLS0gIGFjX2hlYWRlcl9wcmVwcm9jPXllcwotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLSAgYWNfaGVhZGVyX3ByZXByb2M9bm8KLS1maQotLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNgotLQotLSMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwotLWNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2MgaW4KLS0gIHllczpubyApCi0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9Ci0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KLS0gICAgKAotLSAgICAgIGNhdCA8PFxfQVNCT1gKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS0jIyBSZXBvcnQgdGhpcyB0byBidWctYXV0b2NvbmZAZ251Lm9yZy4gIyMKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS1fQVNCT1gKLS0gICAgKSB8Ci0tICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCi0tICAgIDs7Ci0tICBubzp5ZXMgKQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9Ci0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KLS0gICAgKAotLSAgICAgIGNhdCA8PFxfQVNCT1gKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS0jIyBSZXBvcnQgdGhpcyB0byBidWctYXV0b2NvbmZAZ251Lm9yZy4gIyMKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS1fQVNCT1gKLS0gICAgKSB8Ci0tICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCi0tICAgIDs7Ci0tZXNhYwotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3lzL3NvdW5kY2FyZC5oIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzeXMvc291bmRjYXJkLmguLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3NvdW5kY2FyZF9oK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotLWVsc2UKLS0gIGFjX2N2X2hlYWRlcl9zeXNfc291bmRjYXJkX2g9JGFjX2hlYWRlcl9wcmVwcm9jCi0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N5c19zb3VuZGNhcmRfaCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfc291bmRjYXJkX2giID4mNgotLQotLWZpCi0taWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N5c19zb3VuZGNhcmRfaCA9IHllczsgdGhlbgotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJGFjX2N2X2hlYWRlcl8nJGFjX3NhZmVgXCIgPSB5ZXMiOyB0aGVuCi0rICBlY2hvICIkYWNfdCIieWVzIiAxPiY2Ci0gICBBVURJT0RSSVZFUj0ib3NzIgotICAgICAgICAgICAgICAgIEFVRElPREVGUz0tRENTVF9BVURJT19MSU5VWAotK2Vsc2UKLSsgIGVjaG8gIiRhY190IiJubyIgMT4mNgotIGZpCi0gCi0tCi0taWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbWFjaGluZV9zb3VuZGNhcmRfaCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWNoaW5lL3NvdW5kY2FyZC5oIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBtYWNoaW5lL3NvdW5kY2FyZC5oLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX21hY2hpbmVfc291bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX21hY2hpbmVfc291bmRjYXJkX2giID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfbWFjaGluZV9zb3VuZGNhcmRfaCIgPiY2Ci0rYWNfc2FmZT1gZWNobyAibWFjaGluZS9zb3VuZGNhcmQuaCIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCi0rZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIG1hY2hpbmUvc291bmRjYXJkLmgiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZToxNDI3OiBjaGVja2luZyBmb3IgbWFjaGluZS9zb3VuZGNhcmQuaCIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2hlYWRlcl8kYWNfc2FmZScrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0rICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotIGVsc2UKLS0gICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBtYWNoaW5lL3NvdW5kY2FyZC5oIHVzYWJpbGl0eSIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBtYWNoaW5lL3NvdW5kY2FyZC5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKLS1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0kYWNfaW5jbHVkZXNfZGVmYXVsdAotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDE0MzIgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSAjaW5jbHVkZSA8bWFjaGluZS9zb3VuZGNhcmQuaD4KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwotK0VPRgotK2FjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQiCi0reyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxNDM3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotK2FjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNvbmZ0ZXN0LiR7YWNfZXh0fVwkImAKLStpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgZXZhbCAiYWNfY3ZfaGVhZGVyXyRhY19zYWZlPXllcyIKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS1hY19oZWFkZXJfY29tcGlsZXI9bm8KLSsgIGVjaG8gIiRhY19lcnIiID4mNQotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgZXZhbCAiYWNfY3ZfaGVhZGVyXyRhY19zYWZlPW5vIgotIGZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2Ci0tCi0tIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIG1hY2hpbmUvc291bmRjYXJkLmggcHJlc2VuY2UiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgbWFjaGluZS9zb3VuZGNhcmQuaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjYKLS1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0jaW5jbHVkZSA8bWFjaGluZS9zb3VuZGNhcmQuaD4KLS1fQUNFT0YKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0tICBhY19zdGF0dXM9JD8KLS0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0tICBybSAtZiBjb25mdGVzdC5lcjEKLS0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCi0tICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0tICBlbHNlCi0tICAgIGFjX2NwcF9lcnI9Ci0tICBmaQotLWVsc2UKLS0gIGFjX2NwcF9lcnI9eWVzCi0rcm0gLWYgY29uZnRlc3QqCi0gZmkKLS1pZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLS0gIGFjX2hlYWRlcl9wcmVwcm9jPXllcwotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLSAgYWNfaGVhZGVyX3ByZXByb2M9bm8KLS1maQotLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNgotLQotLSMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwotLWNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2MgaW4KLS0gIHllczpubyApCi0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IG1hY2hpbmUvc291bmRjYXJkLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9Ci0tICAgICgKLS0gICAgICBjYXQgPDxcX0FTQk9YCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0tIyMgUmVwb3J0IHRoaXMgdG8gYnVnLWF1dG9jb25mQGdudS5vcmcuICMjCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0tX0FTQk9YCi0tICAgICkgfAotLSAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgotLSAgICA7OwotLSAgbm86eWVzICkKLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IG1hY2hpbmUvc291bmRjYXJkLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IG1hY2hpbmUvc291bmRjYXJkLmg6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9Ci0tICAgICgKLS0gICAgICBjYXQgPDxcX0FTQk9YCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0tIyMgUmVwb3J0IHRoaXMgdG8gYnVnLWF1dG9jb25mQGdudS5vcmcuICMjCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0tX0FTQk9YCi0tICAgICkgfAotLSAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgotLSAgICA7OwotLWVzYWMKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1hY2hpbmUvc291bmRjYXJkLmgiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1hY2hpbmUvc291bmRjYXJkLmguLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbWFjaGluZV9zb3VuZGNhcmRfaCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0tICBhY19jdl9oZWFkZXJfbWFjaGluZV9zb3VuZGNhcmRfaD0kYWNfaGVhZGVyX3ByZXByb2MKLS1maQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfbWFjaGluZV9zb3VuZGNhcmRfaCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oIiA+JjYKLS0KLS1maQotLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oID0geWVzOyB0aGVuCi0raWYgZXZhbCAidGVzdCBcImBlY2hvICckYWNfY3ZfaGVhZGVyXyckYWNfc2FmZWBcIiA9IHllcyI7IHRoZW4KLSsgIGVjaG8gIiRhY190IiJ5ZXMiIDE+JjYKLSAgIEFVRElPRFJJVkVSPSJvc3MiCi0gICAgICAgICAgICAgICAgQVVESU9ERUZTPS1EQ1NUX0FVRElPX0ZSRUVCU0QKLStlbHNlCi0rICBlY2hvICIkYWNfdCIibm8iIDE+JjYKLSBmaQotIAotLQotLWlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N5c19hdWRpb2lvX2grc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3lzL2F1ZGlvaW8uaCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3lzL2F1ZGlvaW8uaC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfYXVkaW9pb19oK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotLWZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zeXNfYXVkaW9pb19oIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c19hdWRpb2lvX2giID4mNgotK2FjX3NhZmU9YGVjaG8gInN5cy9hdWRpb2lvLmgiIHwgc2VkICd5JS4vKy0lX19wXyUnYAotK2VjaG8gJGFjX24gImNoZWNraW5nIGZvciBzeXMvYXVkaW9pby5oIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6MTQ2MTogY2hlY2tpbmcgZm9yIHN5cy9hdWRpb2lvLmgiID4mNQotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgotKyAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLSBlbHNlCi0tICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc3lzL2F1ZGlvaW8uaCB1c2FiaWxpdHkiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL2F1ZGlvaW8uaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2Ci0tY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tJGFjX2luY2x1ZGVzX2RlZmF1bHQKLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSsjbGluZSAxNDY2ICJjb25maWd1cmUiCi0rI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0gI2luY2x1ZGUgPHN5cy9hdWRpb2lvLmg+Ci0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLS0gIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKLStFT0YKLSthY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgotK3sgKGV2YWwgZWNobyBjb25maWd1cmU6MTQ3MTogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0KLSthY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91dCB8IGdyZXAgLXYgIl5jb25mdGVzdC4ke2FjX2V4dH1cJCJgCi0raWYgdGVzdCAteiAiJGFjX2VyciI7IHRoZW4KLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCi0gZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tYWNfaGVhZGVyX2NvbXBpbGVyPW5vCi0rICBlY2hvICIkYWNfZXJyIiA+JjUKLSsgIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT1ubyIKLSBmaQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgotLQotLSMgSXMgdGhlIGhlYWRlciBwcmVzZW50PwotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvYXVkaW9pby5oIHByZXNlbmNlIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIHN5cy9hdWRpb2lvLmggcHJlc2VuY2UuLi4gJEVDSE9fQyIgPiY2Ci0tY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tI2luY2x1ZGUgPHN5cy9hdWRpb2lvLmg+Ci0tX0FDRU9GCi0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0tICBjYXQgY29uZnRlc3QuZXJyID4mNQotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgotLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLS0gICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZwotLSAgZWxzZQotLSAgICBhY19jcHBfZXJyPQotLSAgZmkKLS1lbHNlCi0tICBhY19jcHBfZXJyPXllcwotK3JtIC1mIGNvbmZ0ZXN0KgotIGZpCi0taWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCi0tICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS0gIGFjX2hlYWRlcl9wcmVwcm9jPW5vCi0tZmkKLS1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKLS0KLS0jIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KLS1jYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jIGluCi0tICB5ZXM6bm8gKQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvYXVkaW9pby5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9hdWRpb2lvLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9Ci0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9hdWRpb2lvLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9hdWRpb2lvLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQotLSAgICAoCi0tICAgICAgY2F0IDw8XF9BU0JPWAotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLSMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3JnLiAjIwotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLV9BU0JPWAotLSAgICApIHwKLS0gICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKLS0gICAgOzsKLS0gIG5vOnllcyApCi0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9hdWRpb2lvLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvYXVkaW9pby5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9Ci0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9hdWRpb2lvLmg6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvYXVkaW9pby5oOiBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9Ci0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9hdWRpb2lvLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9hdWRpb2lvLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQotLSAgICAoCi0tICAgICAgY2F0IDw8XF9BU0JPWAotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLSMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3JnLiAjIwotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLV9BU0JPWAotLSAgICApIHwKLS0gICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKLS0gICAgOzsKLS1lc2FjCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMvYXVkaW9pby5oIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzeXMvYXVkaW9pby5oLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N5c19hdWRpb2lvX2grc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotLSAgYWNfY3ZfaGVhZGVyX3N5c19hdWRpb2lvX2g9JGFjX2hlYWRlcl9wcmVwcm9jCi0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N5c19hdWRpb2lvX2giID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3lzX2F1ZGlvaW9faCIgPiY2Ci0tCi0tZmkKLS1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX2F1ZGlvaW9faCA9IHllczsgdGhlbgotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJGFjX2N2X2hlYWRlcl8nJGFjX3NhZmVgXCIgPSB5ZXMiOyB0aGVuCi0rICBlY2hvICIkYWNfdCIieWVzIiAxPiY2Ci0gICBBVURJT0RSSVZFUj0ic3VuIgotICAgICAgICAgICAgICAgIEFVRElPREVGUz0tRENTVF9BVURJT19TVU5PUwotK2Vsc2UKLSsgIGVjaG8gIiRhY190IiJubyIgMT4mNgotIGZpCi0gCi0tCi0taWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbW1zeXN0ZW1faCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtbXN5c3RlbS5oIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBtbXN5c3RlbS5oLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX21tc3lzdGVtX2grc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX21tc3lzdGVtX2giID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfbW1zeXN0ZW1faCIgPiY2Ci0rIGFjX3NhZmU9YGVjaG8gImFsc2EvYXNvdW5kbGliLmgiIHwgc2VkICd5JS4vKy0lX19wXyUnYAotK2VjaG8gJGFjX24gImNoZWNraW5nIGZvciBhbHNhL2Fzb3VuZGxpYi5oIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6MTQ5NTogY2hlY2tpbmcgZm9yIGFsc2EvYXNvdW5kbGliLmgiID4mNQotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgotKyAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLSBlbHNlCi0tICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgbW1zeXN0ZW0uaCB1c2FiaWxpdHkiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgbW1zeXN0ZW0uaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2Ci0tY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tJGFjX2luY2x1ZGVzX2RlZmF1bHQKLS0jaW5jbHVkZSA8bW1zeXN0ZW0uaD4KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDE1MDAgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSsjaW5jbHVkZSA8YWxzYS9hc291bmRsaWIuaD4KLStFT0YKLSthY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgotK3sgKGV2YWwgZWNobyBjb25maWd1cmU6MTUwNTogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0KLSthY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91dCB8IGdyZXAgLXYgIl5jb25mdGVzdC4ke2FjX2V4dH1cJCJgCi0raWYgdGVzdCAteiAiJGFjX2VyciI7IHRoZW4KLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCi0gZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tYWNfaGVhZGVyX2NvbXBpbGVyPW5vCi0rICBlY2hvICIkYWNfZXJyIiA+JjUKLSsgIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT1ubyIKLSBmaQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgotLQotLSMgSXMgdGhlIGhlYWRlciBwcmVzZW50PwotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBtbXN5c3RlbS5oIHByZXNlbmNlIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIG1tc3lzdGVtLmggcHJlc2VuY2UuLi4gJEVDSE9fQyIgPiY2Ci0tY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tI2luY2x1ZGUgPG1tc3lzdGVtLmg+Ci0tX0FDRU9GCi0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0tICBjYXQgY29uZnRlc3QuZXJyID4mNQotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgotLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLS0gICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZwotLSAgZWxzZQotLSAgICBhY19jcHBfZXJyPQotLSAgZmkKLS1lbHNlCi0tICBhY19jcHBfZXJyPXllcwotK3JtIC1mIGNvbmZ0ZXN0KgotIGZpCi0taWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCi0tICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyRhY19jdl9oZWFkZXJfJyRhY19zYWZlYFwiID0geWVzIjsgdGhlbgotKyAgZWNobyAiJGFjX3QiInllcyIgMT4mNgotKyAgQVVESU9EUklWRVI9ImFsc2EiCi0rCSAgICAgICBBVURJT0RFRlM9LURDU1RfQVVESU9fQUxTQQotKyAgICAgICAgICAgICAgIEFVRElPTElCUz0tbGFzb3VuZAotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLSAgYWNfaGVhZGVyX3ByZXByb2M9bm8KLSsgIGVjaG8gIiRhY190IiJubyIgMT4mNgotIGZpCi0tcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJlcHJvYyIgPiY2Ci0gCi0tIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/Ci0tY2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYyBpbgotLSAgeWVzOm5vICkKLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbW1zeXN0ZW0uaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtbXN5c3RlbS5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtbXN5c3RlbS5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtbXN5c3RlbS5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KLS0gICAgKAotLSAgICAgIGNhdCA8PFxfQVNCT1gKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS0jIyBSZXBvcnQgdGhpcyB0byBidWctYXV0b2NvbmZAZ251Lm9yZy4gIyMKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS1fQVNCT1gKLS0gICAgKSB8Ci0tICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCi0tICAgIDs7Ci0tICBubzp5ZXMgKQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtbXN5c3RlbS5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogbW1zeXN0ZW0uaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtbXN5c3RlbS5oOiBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogbW1zeXN0ZW0uaDogY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtbXN5c3RlbS5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtbXN5c3RlbS5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KLS0gICAgKAotLSAgICAgIGNhdCA8PFxfQVNCT1gKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS0jIyBSZXBvcnQgdGhpcyB0byBidWctYXV0b2NvbmZAZ251Lm9yZy4gIyMKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS1fQVNCT1gKLS0gICAgKSB8Ci0tICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCi0tICAgIDs7Ci0tZXNhYwotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbW1zeXN0ZW0uaCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbW1zeXN0ZW0uaC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9tbXN5c3RlbV9oK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotK2FjX3NhZmU9YGVjaG8gIm1tc3lzdGVtLmgiIHwgc2VkICd5JS4vKy0lX19wXyUnYAotK2VjaG8gJGFjX24gImNoZWNraW5nIGZvciBtbXN5c3RlbS5oIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6MTUzMDogY2hlY2tpbmcgZm9yIG1tc3lzdGVtLmgiID4mNQotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgotKyAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLSBlbHNlCi0tICBhY19jdl9oZWFkZXJfbW1zeXN0ZW1faD0kYWNfaGVhZGVyX3ByZXByb2MKLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSsjbGluZSAxNTM1ICJjb25maWd1cmUiCi0rI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0rI2luY2x1ZGUgPG1tc3lzdGVtLmg+Ci0rRU9GCi0rYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCIKLSt7IChldmFsIGVjaG8gY29uZmlndXJlOjE1NDA6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9Ci0rYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAotK2lmIHRlc3QgLXogIiRhY19lcnIiOyB0aGVuCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICBldmFsICJhY19jdl9oZWFkZXJfJGFjX3NhZmU9eWVzIgotK2Vsc2UKLSsgIGVjaG8gIiRhY19lcnIiID4mNQotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgZXZhbCAiYWNfY3ZfaGVhZGVyXyRhY19zYWZlPW5vIgotIGZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9tbXN5c3RlbV9oIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX21tc3lzdGVtX2giID4mNgotLQotK3JtIC1mIGNvbmZ0ZXN0KgotIGZpCi0taWYgdGVzdCAkYWNfY3ZfaGVhZGVyX21tc3lzdGVtX2ggPSB5ZXM7IHRoZW4KLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyRhY19jdl9oZWFkZXJfJyRhY19zYWZlYFwiID0geWVzIjsgdGhlbgotKyAgZWNobyAiJGFjX3QiInllcyIgMT4mNgotICAgQVVESU9EUklWRVI9IndpbmNlIgotIAkgICAgICAgQVVESU9ERUZTPS1EQ1NUX0FVRElPX1dJTkNFCi0gCSAgICAgICBBVURJT0xJQlM9LWx3aW5tbQotK2Vsc2UKLSsgIGVjaG8gIiRhY190IiJubyIgMT4mNgotIGZpCi0gCi0gCi0tCi0tCi0gIyBDaGVjayB3aGV0aGVyIC0td2l0aC1hdWRpbyBvciAtLXdpdGhvdXQtYXVkaW8gd2FzIGdpdmVuLgotIGlmIHRlc3QgIiR7d2l0aF9hdWRpbytzZXR9IiA9IHNldDsgdGhlbgotICAgd2l0aHZhbD0iJHdpdGhfYXVkaW8iCi0tICBBVURJT0RSSVZFUj0kd2l0aF9hdWRpbwotLWZpOwotKyAgQVVESU9EUklWRVI9JHdpdGhfYXVkaW8gCi0rZmkKLSAKLSsKLSBpZiB0ZXN0ICJ4JEFVRElPREVGUyIgPSB4OyB0aGVuCi0gICAgIGNhc2UgIiRBVURJT0RSSVZFUiIgaW4KLSAJbGludXh8b3NzKQotQEAgLTQwMDYsMzQgKzE1OTUsMzQgQEAKLSAKLSAKLSAKLS0KLSAjIENoZWNrIHdoZXRoZXIgLS13aXRoLWxhbmcgb3IgLS13aXRob3V0LWxhbmcgd2FzIGdpdmVuLgotIGlmIHRlc3QgIiR7d2l0aF9sYW5nK3NldH0iID0gc2V0OyB0aGVuCi0gICB3aXRodmFsPSIkd2l0aF9sYW5nIgotLSAgRkxfTEFORz0kd2l0aF9sYW5nCi0tZmk7Ci0rICBGTF9MQU5HPSR3aXRoX2xhbmcgCi0rZmkKLSsKLSBpZiB0ZXN0ICJ4JHdpdGhfbGFuZyIgPSAieCI7IHRoZW4KLSAgICAgICAgIEZMX0xBTkc9InVzZW5nbGlzaCIKLSBmaQotIAotIAotLQotICMgQ2hlY2sgd2hldGhlciAtLXdpdGgtdm94IG9yIC0td2l0aG91dC12b3ggd2FzIGdpdmVuLgotIGlmIHRlc3QgIiR7d2l0aF92b3grc2V0fSIgPSBzZXQ7IHRoZW4KLSAgIHdpdGh2YWw9IiR3aXRoX3ZveCIKLS0gIEZMX1ZPWD0kd2l0aF92b3gKLS1maTsKLSsgIEZMX1ZPWD0kd2l0aF92b3ggCi0rZmkKLSsKLSBpZiB0ZXN0ICJ4JHdpdGhfdm94IiA9ICJ4IjsgdGhlbgotICAgICAgICAgRkxfVk9YPSJjbXVfdXNfa2FsIgotIGZpCi0gCi0gCi0tCi0gIyBDaGVjayB3aGV0aGVyIC0td2l0aC1sZXggb3IgLS13aXRob3V0LWxleCB3YXMgZ2l2ZW4uCi0gaWYgdGVzdCAiJHt3aXRoX2xleCtzZXR9IiA9IHNldDsgdGhlbgotICAgd2l0aHZhbD0iJHdpdGhfbGV4IgotLSAgRkxfTEVYPSR3aXRoX2xleAotLWZpOwotKyAgRkxfTEVYPSR3aXRoX2xleCAKLStmaQotKwotIGlmIHRlc3QgIngkd2l0aF9sZXgiID0gIngiOyB0aGVuCi0gICAgICAgICBGTF9MRVg9ImNtdWxleCIKLSBmaQotQEAgLTQwNDEsOTIxICsxNjMwLDMwMCBAQAotIAotIAotIAotLSAgICAgICAgICAgICAgICAgICAgYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIGNvbmZpZy9jb25maWcgY29uZmlnL3N5c3RlbS5tYWsiCi0tY2F0ID5jb25mY2FjaGUgPDxcX0FDRU9GCi0rdHJhcCAnJyAxIDIgMTUKLStjYXQgPiBjb25mY2FjaGUgPDxcRU9GCi0gIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNoZXMgdGhlIHJlc3VsdHMgb2YgY29uZmlndXJlCi0gIyB0ZXN0cyBydW4gb24gdGhpcyBzeXN0ZW0gc28gdGhleSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gY29uZmlndXJlCi0tIyBzY3JpcHRzIGFuZCBjb25maWd1cmUgcnVucywgc2VlIGNvbmZpZ3VyZSdzIG9wdGlvbiAtLWNvbmZpZy1jYWNoZS4KLS0jIEl0IGlzIG5vdCB1c2VmdWwgb24gb3RoZXIgc3lzdGVtcy4gIElmIGl0IGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0Ci0tIyB3YW50IHRvIGtlZXAsIHlvdSBtYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCi0rIyBzY3JpcHRzIGFuZCBjb25maWd1cmUgcnVucy4gIEl0IGlzIG5vdCB1c2VmdWwgb24gb3RoZXIgc3lzdGVtcy4KLSsjIElmIGl0IGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0IHdhbnQgdG8ga2VlcCwgeW91IG1heSByZW1vdmUgb3IgZWRpdCBpdC4KLSAjCi0tIyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRpb24gdG8gdGhlIGNhY2hlIGZpbGUgaWYgeW91IGdpdmUgaXQKLS0jIHRoZSAtLXJlY2hlY2sgb3B0aW9uIHRvIHJlcnVuIGNvbmZpZ3VyZS4KLSsjIEJ5IGRlZmF1bHQsIGNvbmZpZ3VyZSB1c2VzIC4vY29uZmlnLmNhY2hlIGFzIHRoZSBjYWNoZSBmaWxlLAotKyMgY3JlYXRpbmcgaXQgaWYgaXQgZG9lcyBub3QgZXhpc3QgYWxyZWFkeS4gIFlvdSBjYW4gZ2l2ZSBjb25maWd1cmUKLSsjIHRoZSAtLWNhY2hlLWZpbGU9RklMRSBvcHRpb24gdG8gdXNlIGEgZGlmZmVyZW50IGNhY2hlIGZpbGU7IHRoYXQgaXMKLSsjIHdoYXQgY29uZmlndXJlIGRvZXMgd2hlbiBpdCBjYWxscyBjb25maWd1cmUgc2NyaXB0cyBpbgotKyMgc3ViZGlyZWN0b3JpZXMsIHNvIHRoZXkgc2hhcmUgdGhlIGNhY2hlLgotKyMgR2l2aW5nIC0tY2FjaGUtZmlsZT0vZGV2L251bGwgZGlzYWJsZXMgY2FjaGluZywgZm9yIGRlYnVnZ2luZyBjb25maWd1cmUuCi0rIyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRpb24gdG8gdGhlIGNhY2hlIGZpbGUgaWYgeW91IGdpdmUgaXQgdGhlCi0rIyAtLXJlY2hlY2sgb3B0aW9uIHRvIHJlcnVuIGNvbmZpZ3VyZS4KLSAjCi0tIyBgYWNfY3ZfZW52X2ZvbycgdmFyaWFibGVzIChzZXQgb3IgdW5zZXQpIHdpbGwgYmUgb3ZlcnJpZGRlbiB3aGVuCi0tIyBsb2FkaW5nIHRoaXMgZmlsZSwgb3RoZXIgKnVuc2V0KiBgYWNfY3ZfZm9vJyB3aWxsIGJlIGFzc2lnbmVkIHRoZQotLSMgZm9sbG93aW5nIHZhbHVlcy4KLS0KLS1fQUNFT0YKLS0KLStFT0YKLSAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAotICMgYnV0IHdlIGtub3cgb2Ygbm8gd29ya2Fyb3VuZCB0aGF0IGlzIHNpbXBsZSwgcG9ydGFibGUsIGFuZCBlZmZpY2llbnQuCi0gIyBTbywgZG9uJ3QgcHV0IG5ld2xpbmVzIGluIGNhY2hlIHZhcmlhYmxlcycgdmFsdWVzLgotICMgVWx0cml4IHNoIHNldCB3cml0ZXMgdG8gc3RkZXJyIGFuZCBjYW4ndCBiZSByZWRpcmVjdGVkIGRpcmVjdGx5LAotICMgYW5kIHNldHMgdGhlIGhpZ2ggYml0IGluIHRoZSBjYWNoZSBmaWxlIHVubGVzcyB3ZSBhc3NpZ24gdG8gdGhlIHZhcnMuCi0tewotLSAgKHNldCkgMj4mMSB8Ci0tICAgIGNhc2UgYChhY19zcGFjZT0nICc7IHNldCB8IGdyZXAgYWNfc3BhY2UpIDI+JjFgIGluCi0tICAgICphY19zcGFjZT1cICopCi0tICAgICAgIyBgc2V0JyBkb2VzIG5vdCBxdW90ZSBjb3JyZWN0bHksIHNvIGFkZCBxdW90ZXMgKGRvdWJsZS1xdW90ZQotLSAgICAgICMgc3Vic3RpdHV0aW9uIHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHNlZCB0dXJucyBcXCBpbnRvIFwpLgotLSAgICAgIHNlZCAtbiBcCi0tICAgICAgICAicy8nLydcXFxcJycvZzsKLS0gICAgCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXFwyJy9wIgotLSAgICAgIDs7Ci0tICAgICopCi0tICAgICAgIyBgc2V0JyBxdW90ZXMgY29ycmVjdGx5IGFzIHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRkIHF1b3Rlcy4KLS0gICAgICBzZWQgLW4gXAotLSAgICAgICAgInMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9XFwyL3AiCi0tICAgICAgOzsKLS0gICAgZXNhYzsKLS19IHwKLS0gIHNlZCAnCi0tICAgICB0IGNsZWFyCi0tICAgICA6IGNsZWFyCi0tICAgICBzL15cKFtePV0qXCk9XCguKlt7fV0uKlwpJC90ZXN0ICIke1wxK3NldH0iID0gc2V0IHx8ICYvCi0tICAgICB0IGVuZAotLSAgICAgL15hY19jdl9lbnYvIXMvXlwoW149XSpcKT1cKC4qXCkkL1wxPSR7XDE9XDJ9LwotLSAgICAgOiBlbmQnID4+Y29uZmNhY2hlCi0taWYgZGlmZiAkY2FjaGVfZmlsZSBjb25mY2FjaGUgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsoc2V0KSAyPiYxIHwKLSsgIGNhc2UgYChhY19zcGFjZT0nICc7IHNldCB8IGdyZXAgYWNfc3BhY2UpIDI+JjFgIGluCi0rICAqYWNfc3BhY2U9XCAqKQotKyAgICAjIGBzZXQnIGRvZXMgbm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3RlcyAoZG91YmxlLXF1b3RlIHN1YnN0aXR1dGlvbgotKyAgICAjIHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHNlZCB0dXJucyBcXCBpbnRvIFwpLgotKyAgICBzZWQgLW4gXAotKyAgICAgIC1lICJzLycvJ1xcXFwnJy9nIiBcCi0rICAgICAgLWUgInMvXlxcKFthLXpBLVowLTlfXSpfY3ZfW2EtekEtWjAtOV9dKlxcKT1cXCguKlxcKS9cXDE9XCR7XFwxPSdcXDInfS9wIgotKyAgICA7OwotKyAgKikKLSsgICAgIyBgc2V0JyBxdW90ZXMgY29ycmVjdGx5IGFzIHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRkIHF1b3Rlcy4KLSsgICAgc2VkIC1uIC1lICdzL15cKFthLXpBLVowLTlfXSpfY3ZfW2EtekEtWjAtOV9dKlwpPVwoLipcKS9cMT0ke1wxPVwyfS9wJwotKyAgICA7OwotKyAgZXNhYyA+PiBjb25mY2FjaGUKLStpZiBjbXAgLXMgJGNhY2hlX2ZpbGUgY29uZmNhY2hlOyB0aGVuCi0rICA6Ci0rZWxzZQotICAgaWYgdGVzdCAtdyAkY2FjaGVfZmlsZTsgdGhlbgotLSAgICB0ZXN0ICJ4JGNhY2hlX2ZpbGUiICE9ICJ4L2Rldi9udWxsIiAmJiBlY2hvICJ1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIKLS0gICAgY2F0IGNvbmZjYWNoZSA+JGNhY2hlX2ZpbGUKLSsgICAgZWNobyAidXBkYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiCi0rICAgIGNhdCBjb25mY2FjaGUgPiAkY2FjaGVfZmlsZQotICAgZWxzZQotICAgICBlY2hvICJub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmlsZSIKLSAgIGZpCi0gZmkKLSBybSAtZiBjb25mY2FjaGUKLSAKLSt0cmFwICdybSAtZnIgY29uZnRlc3QqIGNvbmZkZWZzKiBjb3JlIGNvcmUuKiAqLmNvcmUgJGFjX2NsZWFuX2ZpbGVzOyBleGl0IDEnIDEgMiAxNQotKwotIHRlc3QgIngkcHJlZml4IiA9IHhOT05FICYmIHByZWZpeD0kYWNfZGVmYXVsdF9wcmVmaXgKLSAjIExldCBtYWtlIGV4cGFuZCBleGVjX3ByZWZpeC4KLSB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05FICYmIGV4ZWNfcHJlZml4PScke3ByZWZpeH0nCi0gCi0tIyBWUEFUSCBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIHNvbWUgbWFrZXMsIHNvIHdlIHJlbW92ZSAkKHNyY2RpciksCi0tIyAke3NyY2Rpcn0gYW5kIEBzcmNkaXJAIGZyb20gVlBBVEggaWYgc3JjZGlyIGlzICIuIiwgc3RyaXAgbGVhZGluZyBhbmQKLS0jIHRyYWlsaW5nIGNvbG9ucyBhbmQgdGhlbiByZW1vdmUgdGhlIHdob2xlIGxpbmUgaWYgVlBBVEggYmVjb21lcyBlbXB0eQotLSMgKGFjdHVhbGx5IHdlIGxlYXZlIGFuIGVtcHR5IGxpbmUgdG8gcHJlc2VydmUgbGluZSBudW1iZXJzKS4KLSsjIEFueSBhc3NpZ25tZW50IHRvIFZQQVRIIGNhdXNlcyBTdW4gbWFrZSB0byBvbmx5IGV4ZWN1dGUKLSsjIHRoZSBmaXJzdCBzZXQgb2YgZG91YmxlLWNvbG9uIHJ1bGVzLCBzbyByZW1vdmUgaXQgaWYgbm90IG5lZWRlZC4KLSsjIElmIHRoZXJlIGlzIGEgY29sb24gaW4gdGhlIHBhdGgsIHdlIG5lZWQgdG8ga2VlcCBpdC4KLSBpZiB0ZXN0ICJ4JHNyY2RpciIgPSB4LjsgdGhlbgotLSAgYWNfdnBzdWI9Jy9eWyAJXSpWUEFUSFsgCV0qPS97Ci0tcy86KlwkKHNyY2Rpcik6Ki86LzsKLS1zLzoqXCR7c3JjZGlyfToqLzovOwotLXMvOipAc3JjZGlyQDoqLzovOwotLXMvXlwoW149XSo9WyAJXSpcKToqL1wxLzsKLS1zLzoqJC8vOwotLXMvXltePV0qPVsgCV0qJC8vOwotLX0nCi0rICBhY192cHN1Yj0nL15bIAldKlZQQVRIWyAJXSo9W146XSokL2QnCi0gZmkKLSAKLSt0cmFwICdybSAtZiAkQ09ORklHX1NUQVRVUyBjb25mdGVzdCo7IGV4aXQgMScgMSAyIDE1Ci0rCi0gIyBUcmFuc2Zvcm0gY29uZmRlZnMuaCBpbnRvIERFRlMuCi0gIyBQcm90ZWN0IGFnYWluc3Qgc2hlbGwgZXhwYW5zaW9uIHdoaWxlIGV4ZWN1dGluZyBNYWtlZmlsZSBydWxlcy4KLSAjIFByb3RlY3QgYWdhaW5zdCBNYWtlZmlsZSBtYWNybyBleHBhbnNpb24uCi0tIwotLSMgSWYgdGhlIGZpcnN0IHNlZCBzdWJzdGl0dXRpb24gaXMgZXhlY3V0ZWQgKHdoaWNoIGxvb2tzIGZvciBtYWNyb3MgdGhhdAotLSMgdGFrZSBhcmd1bWVudHMpLCB0aGVuIHdlIGJyYW5jaCB0byB0aGUgcXVvdGUgc2VjdGlvbi4gIE90aGVyd2lzZSwKLS0jIGxvb2sgZm9yIGEgbWFjcm8gdGhhdCBkb2Vzbid0IHRha2UgYXJndW1lbnRzLgotLWNhdCA+Y29uZmRlZjJvcHQuc2VkIDw8XF9BQ0VPRgotLXQgY2xlYXIKLS06IGNsZWFyCi0tcyxeWyAJXSojWyAJXSpkZWZpbmVbIAldWyAJXSpcKFteIAkoXVteIAkoXSooW14pXSopXClbIAldKlwoLipcKSwtRFwxPVwyLGcKLS10IHF1b3RlCi0tcyxeWyAJXSojWyAJXSpkZWZpbmVbIAldWyAJXSpcKFteIAldW14gCV0qXClbIAldKlwoLipcKSwtRFwxPVwyLGcKLS10IHF1b3RlCi0tZAotLTogcXVvdGUKLS1zLFsgCWB+IyReJiooKXt9XFx8OyciPD4/XSxcXCYsZwotLXMsXFssXFwmLGcKLS1zLFxdLFxcJixnCi0tcyxcJCwkJCxnCi0tcAotLV9BQ0VPRgotLSMgV2UgdXNlIGVjaG8gdG8gYXZvaWQgYXNzdW1pbmcgYSBwYXJ0aWN1bGFyIGxpbmUtYnJlYWtpbmcgY2hhcmFjdGVyLgotLSMgVGhlIGV4dHJhIGRvdCBpcyB0byBwcmV2ZW50IHRoZSBzaGVsbCBmcm9tIGNvbnN1bWluZyB0cmFpbGluZwotLSMgbGluZS1icmVha3MgZnJvbSB0aGUgc3ViLWNvbW1hbmQgb3V0cHV0LiAgQSBsaW5lLWJyZWFrIHdpdGhpbgotLSMgc2luZ2xlLXF1b3RlcyBkb2Vzbid0IHdvcmsgYmVjYXVzZSwgaWYgdGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBpbiBhCi0tIyBwbGF0Zm9ybSB0aGF0IHVzZXMgdHdvIGNoYXJhY3RlcnMgZm9yIGxpbmUtYnJlYWtzIChlLmcuLCBET1MpLCB0cgotLSMgd291bGQgYnJlYWsuCi0tYWNfTEZfYW5kX0RPVD1gZWNobzsgZWNobyAuYAotLURFRlM9YHNlZCAtbiAtZiBjb25mZGVmMm9wdC5zZWQgY29uZmRlZnMuaCB8IHRyICIkYWNfTEZfYW5kX0RPVCIgJyAuJ2AKLS1ybSAtZiBjb25mZGVmMm9wdC5zZWQKLStjYXQgPiBjb25mdGVzdC5kZWZzIDw8XEVPRgotK3MlI2RlZmluZSBcKFtBLVphLXpfXVtBLVphLXowLTlfXSpcKSAqXCguKlwpJS1EXDE9XDIlZwotK3MlWyAJYH4jJF4mKigpe31cXHw7JyI8Pj9dJVxcJiVnCi0rcyVcWyVcXCYlZwotK3MlXF0lXFwmJWcKLStzJVwkJSQkJWcKLStFT0YKLStERUZTPWBzZWQgLWYgY29uZnRlc3QuZGVmcyBjb25mZGVmcy5oIHwgdHIgJ1wwMTInICcgJ2AKLStybSAtZiBjb25mdGVzdC5kZWZzCi0gCi0gCi0tYWNfbGlib2Jqcz0KLS1hY19sdGxpYm9ianM9Ci0tZm9yIGFjX2kgaW4gOiAkTElCT0JKUzsgZG8gdGVzdCAieCRhY19pIiA9IHg6ICYmIGNvbnRpbnVlCi0tICAjIDEuIFJlbW92ZSB0aGUgZXh0ZW5zaW9uLCBhbmQgJFUgaWYgYWxyZWFkeSBpbnN0YWxsZWQuCi0tICBhY19pPWBlY2hvICIkYWNfaSIgfAotLSAgICAgICAgIHNlZCAncy9cJFVcLi8uLztzL1wubyQvLztzL1wub2JqJC8vJ2AKLS0gICMgMi4gQWRkIHRoZW0uCi0tICBhY19saWJvYmpzPSIkYWNfbGlib2JqcyAkYWNfaVwkVS4kYWNfb2JqZXh0IgotLSAgYWNfbHRsaWJvYmpzPSIkYWNfbHRsaWJvYmpzICRhY19pIickVS5sbycKLS1kb25lCi0tTElCT0JKUz0kYWNfbGlib2JqcwotLQotLUxUTElCT0JKUz0kYWNfbHRsaWJvYmpzCi0tCi0tCi0tCi0rIyBXaXRob3V0IHRoZSAiLi8iLCBzb21lIHNoZWxscyBsb29rIGluIFBBVEggZm9yIGNvbmZpZy5zdGF0dXMuCi0gOiAke0NPTkZJR19TVEFUVVM9Li9jb25maWcuc3RhdHVzfQotLWFjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCi0tYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyAkQ09ORklHX1NUQVRVUyIKLS17IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY1Ci0tZWNobyAiJGFzX21lOiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY2O30KLS1jYXQgPiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCi0tIyEgJFNIRUxMCi0tIyBHZW5lcmF0ZWQgYnkgJGFzX21lLgotKwotK2VjaG8gY3JlYXRpbmcgJENPTkZJR19TVEFUVVMKLStybSAtZiAkQ09ORklHX1NUQVRVUwotK2NhdCA+ICRDT05GSUdfU1RBVFVTIDw8RU9GCi0rIyEgL2Jpbi9zaAotKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgY29uZmlndXJlLgotICMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLgotKyMgVGhpcyBkaXJlY3Rvcnkgd2FzIGNvbmZpZ3VyZWQgYXMgZm9sbG93cywKLSsjIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgotKyMKLSsjICQwICRhY19jb25maWd1cmVfYXJncwotKyMKLSAjIENvbXBpbGVyIG91dHB1dCBwcm9kdWNlZCBieSBjb25maWd1cmUsIHVzZWZ1bCBmb3IgZGVidWdnaW5nCi0tIyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgotKyMgY29uZmlndXJlLCBpcyBpbiAuL2NvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgotIAotLWRlYnVnPWZhbHNlCi0tYWNfY3NfcmVjaGVjaz1mYWxzZQotLWFjX2NzX3NpbGVudD1mYWxzZQotLVNIRUxMPVwke0NPTkZJR19TSEVMTC0kU0hFTEx9Ci0tX0FDRU9GCi0tCi0tY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0tIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0tCi0tIyBCZSBCb3VybmUgY29tcGF0aWJsZQotLWlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgotLSAgZW11bGF0ZSBzaAotLSAgTlVMTENNRD06Ci0tICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCi0tICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgotLSAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi0tZWxpZiB0ZXN0IC1uICIke0JBU0hfVkVSU0lPTitzZXR9IiAmJiAoc2V0IC1vIHBvc2l4KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gIHNldCAtbyBwb3NpeAotLWZpCi0tCi0tIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9zc2libGUuCi0taWYgKEZPTz1GT087IHVuc2V0IEZPTykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0tICBhc191bnNldD11bnNldAotLWVsc2UKLS0gIGFzX3Vuc2V0PWZhbHNlCi0tZmkKLS0KLS0KLS0jIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtzaC4KLS0kYXNfdW5zZXQgRU5WIE1BSUwgTUFJTFBBVEgKLS1QUzE9JyQgJwotLVBTMj0nPiAnCi0tUFM0PScrICcKLS0KLS0jIE5MUyBudWlzYW5jZXMuCi0tZm9yIGFzX3ZhciBpbiBcCi0tICBMQU5HIExBTkdVQUdFIExDX0FERFJFU1MgTENfQUxMIExDX0NPTExBVEUgTENfQ1RZUEUgTENfSURFTlRJRklDQVRJT04gXAotLSAgTENfTUVBU1VSRU1FTlQgTENfTUVTU0FHRVMgTENfTU9ORVRBUlkgTENfTkFNRSBMQ19OVU1FUklDIExDX1BBUEVSIFwKLS0gIExDX1RFTEVQSE9ORSBMQ19USU1FCi0rYWNfY3NfdXNhZ2U9IlVzYWdlOiAkQ09ORklHX1NUQVRVUyBbLS1yZWNoZWNrXSBbLS12ZXJzaW9uXSBbLS1oZWxwXSIKLStmb3IgYWNfb3B0aW9uCi0gZG8KLS0gIGlmIChzZXQgK3g7IHRlc3QgLW4gImAoZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFyKSAyPiYxYCIpOyB0aGVuCi0tICAgIGV2YWwgJGFzX3Zhcj1DOyBleHBvcnQgJGFzX3ZhcgotLSAgZWxzZQotLSAgICAkYXNfdW5zZXQgJGFzX3ZhcgotLSAgZmkKLSsgIGNhc2UgIlwkYWNfb3B0aW9uIiBpbgotKyAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCi0rICAgIGVjaG8gInJ1bm5pbmcgXCR7Q09ORklHX1NIRUxMLS9iaW4vc2h9ICQwICRhY19jb25maWd1cmVfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbiIKLSsgICAgZXhlYyBcJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0gJDAgJGFjX2NvbmZpZ3VyZV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uIDs7Ci0rICAtdmVyc2lvbiB8IC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVycyB8IC0tdmVyIHwgLS12ZSB8IC0tdikKLSsgICAgZWNobyAiJENPTkZJR19TVEFUVVMgZ2VuZXJhdGVkIGJ5IGF1dG9jb25mIHZlcnNpb24gMi4xMyIKLSsgICAgZXhpdCAwIDs7Ci0rICAtaGVscCB8IC0taGVscCB8IC0taGVsIHwgLS1oZSB8IC0taCkKLSsgICAgZWNobyAiXCRhY19jc191c2FnZSI7IGV4aXQgMCA7OwotKyAgKikgZWNobyAiXCRhY19jc191c2FnZSI7IGV4aXQgMSA7OwotKyAgZXNhYwotIGRvbmUKLSAKLS0jIFJlcXVpcmVkIHRvIHVzZSBiYXNlbmFtZS4KLS1pZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMTsgdGhlbgotLSAgYXNfZXhwcj1leHByCi0tZWxzZQotLSAgYXNfZXhwcj1mYWxzZQotLWZpCi0rYWNfZ2l2ZW5fc3JjZGlyPSRzcmNkaXIKLSthY19naXZlbl9JTlNUQUxMPSIkSU5TVEFMTCIKLSAKLS1pZiAoYmFzZW5hbWUgLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLyAyPiYxYCIgPSAiWC8iOyB0aGVuCi0tICBhc19iYXNlbmFtZT1iYXNlbmFtZQotLWVsc2UKLS0gIGFzX2Jhc2VuYW1lPWZhbHNlCi0tZmkKLSt0cmFwICdybSAtZnIgYGVjaG8gImNvbmZpZy9jb25maWcgY29uZmlnL3N5c3RlbS5tYWsiIHwgc2VkICJzLzpbXiBdKi8vZyJgIGNvbmZ0ZXN0KjsgZXhpdCAxJyAxIDIgMTUKLStFT0YKLStjYXQgPj4gJENPTkZJR19TVEFUVVMgPDxFT0YKLSAKLSsjIFByb3RlY3QgYWdhaW5zdCBiZWluZyBvbiB0aGUgcmlnaHQgc2lkZSBvZiBhIHNlZCBzdWJzdCBpbiBjb25maWcuc3RhdHVzLgotK3NlZCAncy8lQC9AQC87IHMvQCUvQEAvOyBzLyVnXCQvQGcvOyAvQGdcJC9zL1tcXFxcJiVdL1xcXFwmL2c7Ci0rIHMvQEAvJUAvOyBzL0BAL0AlLzsgcy9AZ1wkLyVnLycgPiBjb25mdGVzdC5zdWJzIDw8XFxDRU9GCi0rJGFjX3Zwc3ViCi0rJGV4dHJhc3ViCi0rcyVAU0hFTExAJSRTSEVMTCVnCi0rcyVAQ0ZMQUdTQCUkQ0ZMQUdTJWcKLStzJUBDUFBGTEFHU0AlJENQUEZMQUdTJWcKLStzJUBDWFhGTEFHU0AlJENYWEZMQUdTJWcKLStzJUBGRkxBR1NAJSRGRkxBR1MlZwotK3MlQERFRlNAJSRERUZTJWcKLStzJUBMREZMQUdTQCUkTERGTEFHUyVnCi0rcyVATElCU0AlJExJQlMlZwotK3MlQGV4ZWNfcHJlZml4QCUkZXhlY19wcmVmaXglZwotK3MlQHByZWZpeEAlJHByZWZpeCVnCi0rcyVAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAlJHByb2dyYW1fdHJhbnNmb3JtX25hbWUlZwotK3MlQGJpbmRpckAlJGJpbmRpciVnCi0rcyVAc2JpbmRpckAlJHNiaW5kaXIlZwotK3MlQGxpYmV4ZWNkaXJAJSRsaWJleGVjZGlyJWcKLStzJUBkYXRhZGlyQCUkZGF0YWRpciVnCi0rcyVAc3lzY29uZmRpckAlJHN5c2NvbmZkaXIlZwotK3MlQHNoYXJlZHN0YXRlZGlyQCUkc2hhcmVkc3RhdGVkaXIlZwotK3MlQGxvY2Fsc3RhdGVkaXJAJSRsb2NhbHN0YXRlZGlyJWcKLStzJUBsaWJkaXJAJSRsaWJkaXIlZwotK3MlQGluY2x1ZGVkaXJAJSRpbmNsdWRlZGlyJWcKLStzJUBvbGRpbmNsdWRlZGlyQCUkb2xkaW5jbHVkZWRpciVnCi0rcyVAaW5mb2RpckAlJGluZm9kaXIlZwotK3MlQG1hbmRpckAlJG1hbmRpciVnCi0rcyVAaG9zdEAlJGhvc3QlZwotK3MlQGhvc3RfYWxpYXNAJSRob3N0X2FsaWFzJWcKLStzJUBob3N0X2NwdUAlJGhvc3RfY3B1JWcKLStzJUBob3N0X3ZlbmRvckAlJGhvc3RfdmVuZG9yJWcKLStzJUBob3N0X29zQCUkaG9zdF9vcyVnCi0rcyVAdGFyZ2V0QCUkdGFyZ2V0JWcKLStzJUB0YXJnZXRfYWxpYXNAJSR0YXJnZXRfYWxpYXMlZwotK3MlQHRhcmdldF9jcHVAJSR0YXJnZXRfY3B1JWcKLStzJUB0YXJnZXRfdmVuZG9yQCUkdGFyZ2V0X3ZlbmRvciVnCi0rcyVAdGFyZ2V0X29zQCUkdGFyZ2V0X29zJWcKLStzJUBidWlsZEAlJGJ1aWxkJWcKLStzJUBidWlsZF9hbGlhc0AlJGJ1aWxkX2FsaWFzJWcKLStzJUBidWlsZF9jcHVAJSRidWlsZF9jcHUlZwotK3MlQGJ1aWxkX3ZlbmRvckAlJGJ1aWxkX3ZlbmRvciVnCi0rcyVAYnVpbGRfb3NAJSRidWlsZF9vcyVnCi0rcyVAQ0NAJSRDQyVnCi0rcyVAUkFOTElCQCUkUkFOTElCJWcKLStzJUBJTlNUQUxMX1BST0dSQU1AJSRJTlNUQUxMX1BST0dSQU0lZwotK3MlQElOU1RBTExfU0NSSVBUQCUkSU5TVEFMTF9TQ1JJUFQlZwotK3MlQElOU1RBTExfREFUQUAlJElOU1RBTExfREFUQSVnCi0rcyVAQVJAJSRBUiVnCi0rcyVAVEFSR0VUX09TQCUkVEFSR0VUX09TJWcKLStzJUBUQVJHRVRfQ1BVQCUkVEFSR0VUX0NQVSVnCi0rcyVATTY4S0NDQCUkTTY4S0NDJWcKLStzJUBMRVhERUZTQCUkTEVYREVGUyVnCi0rcyVAVk9YREVGU0AlJFZPWERFRlMlZwotK3MlQEhPU1RfT1NAJSRIT1NUX09TJWcKLStzJUBIT1NUX0NQVUAlJEhPU1RfQ1BVJWcKLStzJUBPVEhFUkxJQlNAJSRPVEhFUkxJQlMlZwotK3MlQFNIRkxBR1NAJSRTSEZMQUdTJWcKLStzJUBNTUFQVFlQRUAlJE1NQVBUWVBFJWcKLStzJUBTVERJT1RZUEVAJSRTVERJT1RZUEUlZwotK3MlQENQUEAlJENQUCVnCi0rcyVAQVVESU9EUklWRVJAJSRBVURJT0RSSVZFUiVnCi0rcyVAQVVESU9ERUZTQCUkQVVESU9ERUZTJWcKLStzJUBBVURJT0xJQlNAJSRBVURJT0xJQlMlZwotK3MlQEZMX0xBTkdAJSRGTF9MQU5HJWcKLStzJUBGTF9WT1hAJSRGTF9WT1glZwotK3MlQEZMX0xFWEAlJEZMX0xFWCVnCi0rcyVARVhFRVhUQCUkRVhFRVhUJWcKLSAKLS0jIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUuCi0tYXNfbWU9YCRhc19iYXNlbmFtZSAiJDAiIHx8Ci0tJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKLS0JIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCi0tCSBYIiQwIiA6ICdYXCgvXCkkJyBcfCBcCi0tCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLS1lY2hvIFgvIiQwIiB8Ci0tICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveyBzLy9cMS87IHE7IH0KLS0gIAkgIC9eWFwvXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0tICAJICAvXlhcL1woXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0tICAJICBzLy4qLy4vOyBxJ2AKLStDRU9GCi0rRU9GCi0gCi0rY2F0ID4+ICRDT05GSUdfU1RBVFVTIDw8XEVPRgotIAotLSMgUEFUSCBuZWVkcyBDUiwgYW5kIExJTkVOTyBuZWVkcyBDUiBhbmQgUEFUSC4KLS0jIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCi0tYXNfY3JfbGV0dGVycz0nYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCi0tYXNfY3JfTEVUVEVSUz0nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonCi0tYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCi0tYXNfY3JfZGlnaXRzPScwMTIzNDU2Nzg5JwotLWFzX2NyX2FsbnVtPSRhc19jcl9MZXR0ZXJzJGFzX2NyX2RpZ2l0cwotLQotLSMgVGhlIHVzZXIgaXMgYWx3YXlzIHJpZ2h0LgotLWlmIHRlc3QgIiR7UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0OyB0aGVuCi0tICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCi0tICBlY2hvICAiZXhpdCAwIiAgID4+Y29uZiQkLnNoCi0tICBjaG1vZCAreCBjb25mJCQuc2gKLS0gIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0tICAgIFBBVEhfU0VQQVJBVE9SPSc7JwotKyMgU3BsaXQgdGhlIHN1YnN0aXR1dGlvbnMgaW50byBiaXRlLXNpemVkIHBpZWNlcyBmb3Igc2VkcyB3aXRoCi0rIyBzbWFsbCBjb21tYW5kIG51bWJlciBsaW1pdHMsIGxpa2Ugb24gRGlnaXRhbCBPU0YvMSBhbmQgSFAtVVguCi0rYWNfbWF4X3NlZF9jbWRzPTkwICMgTWF4aW11bSBudW1iZXIgb2YgbGluZXMgdG8gcHV0IGluIGEgc2VkIHNjcmlwdC4KLSthY19maWxlPTEgIyBOdW1iZXIgb2YgY3VycmVudCBmaWxlLgotK2FjX2JlZz0xICMgRmlyc3QgbGluZSBmb3IgY3VycmVudCBmaWxlLgotK2FjX2VuZD0kYWNfbWF4X3NlZF9jbWRzICMgTGluZSBhZnRlciBsYXN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLSthY19tb3JlX2xpbmVzPToKLSthY19zZWRfY21kcz0iIgotK3doaWxlICRhY19tb3JlX2xpbmVzOyBkbwotKyAgaWYgdGVzdCAkYWNfYmVnIC1ndCAxOyB0aGVuCi0rICAgIHNlZCAiMSwke2FjX2JlZ31kOyAke2FjX2VuZH1xIiBjb25mdGVzdC5zdWJzID4gY29uZnRlc3QucyRhY19maWxlCi0gICBlbHNlCi0tICAgIFBBVEhfU0VQQVJBVE9SPToKLSsgICAgc2VkICIke2FjX2VuZH1xIiBjb25mdGVzdC5zdWJzID4gY29uZnRlc3QucyRhY19maWxlCi0gICBmaQotLSAgcm0gLWYgY29uZiQkLnNoCi0tZmkKLS0KLS0KLS0gIGFzX2xpbmVub18xPSRMSU5FTk8KLS0gIGFzX2xpbmVub18yPSRMSU5FTk8KLS0gIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKLS0gIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotLSAgdGVzdCAieCRhc19saW5lbm9fMyIgID0gIngkYXNfbGluZW5vXzIiICB8fCB7Ci0tICAjIEZpbmQgd2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBubyBwYXRoIGF0IGFsbAotLSAgIyByZWxhdGl2ZSBvciBub3QuCi0tICBjYXNlICQwIGluCi0tICAgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKLS0gICAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCi0tZG9uZQotLQotLSAgICAgICA7OwotLSAgZXNhYwotLSAgIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJwotLSAgIyBpbiB3aGljaCBjYXNlIHdlIGFyZSBub3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCi0tICBpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCi0tICAgIGFzX215c2VsZj0kMAotLSAgZmkKLS0gIGlmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KLS0gICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIHBhdGgiID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBwYXRoIiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLSAgZmkKLS0gIGNhc2UgJENPTkZJR19TSEVMTCBpbgotLSAgJycpCi0tICAgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLS1mb3IgYXNfZGlyIGluIC9iaW4kUEFUSF9TRVBBUkFUT1IvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRICi0tZG8KLS0gIElGUz0kYXNfc2F2ZV9JRlMKLS0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0tICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCi0tCSBjYXNlICRhc19kaXIgaW4KLS0JIC8qKQotLQkgICBpZiAoIiRhc19kaXIvJGFzX2Jhc2UiIC1jICcKLS0gIGFzX2xpbmVub18xPSRMSU5FTk8KLS0gIGFzX2xpbmVub18yPSRMSU5FTk8KLS0gIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKLS0gIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotLSAgdGVzdCAieCRhc19saW5lbm9fMyIgID0gIngkYXNfbGluZW5vXzIiICcpIDI+L2Rldi9udWxsOyB0aGVuCi0tCSAgICAgJGFzX3Vuc2V0IEJBU0hfRU5WIHx8IHRlc3QgIiR7QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8IHsgQkFTSF9FTlY9OyBleHBvcnQgQkFTSF9FTlY7IH0KLS0JICAgICAkYXNfdW5zZXQgRU5WIHx8IHRlc3QgIiR7RU5WK3NldH0iICE9IHNldCB8fCB7IEVOVj07IGV4cG9ydCBFTlY7IH0KLS0JICAgICBDT05GSUdfU0hFTEw9JGFzX2Rpci8kYXNfYmFzZQotLQkgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKLS0JICAgICBleGVjICIkQ09ORklHX1NIRUxMIiAiJDAiICR7MSsiJEAifQotLQkgICBmaTs7Ci0tCSBlc2FjCi0tICAgICAgIGRvbmUKLS1kb25lCi0tOzsKLS0gIGVzYWMKLS0KLS0gICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KLS0gICMgdW5pZm9ybWx5IHJlcGxhY2VkIGJ5IHRoZSBsaW5lIG51bWJlci4gIFRoZSBmaXJzdCAnc2VkJyBpbnNlcnRzIGEKLS0gICMgbGluZS1udW1iZXIgbGluZSBiZWZvcmUgZWFjaCBsaW5lOyB0aGUgc2Vjb25kICdzZWQnIGRvZXMgdGhlIHJlYWwKLS0gICMgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaCBsaW5lLW51bWJlciBsaW5lCi0tICAjIHdpdGggdGhlIG51bWJlcmVkIGxpbmUsIGFuZCBhcHBlbmRzIHRyYWlsaW5nICctJyBkdXJpbmcKLS0gICMgc3Vic3RpdHV0aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBub3QgYSBzcGVjaWFsIGNhc2UgYXQgbGluZSBlbmQuCi0tICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLS0gICMgc2Vjb25kICdzZWQnIHNjcmlwdC4gIEJsYW1lIExlZSBFLiBNY01haG9uIGZvciBzZWQncyBzeW50YXguICA6LSkKLS0gIHNlZCAnPScgPCRhc19teXNlbGYgfAotLSAgICBzZWQgJwotLSAgICAgIE4KLS0gICAgICBzLCQsLSwKLS0gICAgICA6IGxvb3AKLS0gICAgICBzLF5cKFsnJGFzX2NyX2RpZ2l0cyddKlwpXCguKlwpWyRdTElORU5PXChbXickYXNfY3JfYWxudW0nX11cKSxcMVwyXDFcMywKLS0gICAgICB0IGxvb3AKLS0gICAgICBzLC0kLCwKLS0gICAgICBzLF5bJyRhc19jcl9kaWdpdHMnXSpcbiwsCi0tICAgICcgPiRhc19tZS5saW5lbm8gJiYKLS0gIGNobW9kICt4ICRhc19tZS5saW5lbm8gfHwKLS0gICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLQotLSAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKLS0gICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQotLSAgIyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpYmxlIHRvIHRoaXMpLgotLSAgLiAuLyRhc19tZS5saW5lbm8KLS0gICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgotLSAgZXhpdAotLX0KLS0KLS0KLS1jYXNlIGBlY2hvICJ0ZXN0aW5nXGMiOyBlY2hvIDEsMiwzYCxgZWNobyAtbiB0ZXN0aW5nOyBlY2hvIDEsMiwzYCBpbgotLSAgKmMqLC1uKikgRUNIT19OPSBFQ0hPX0M9JwotLScgRUNIT19UPScJJyA7OwotLSAgKmMqLCogICkgRUNIT19OPS1uIEVDSE9fQz0gRUNIT19UPSA7OwotLSAgKikgICAgICAgRUNIT19OPSBFQ0hPX0M9J1xjJyBFQ0hPX1Q9IDs7Ci0tZXNhYwotLQotLWlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0tICBhc19leHByPWV4cHIKLS1lbHNlCi0tICBhc19leHByPWZhbHNlCi0tZmkKLS0KLS1ybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotLWVjaG8gPmNvbmYkJC5maWxlCi0taWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0tICAjIFdlIGNvdWxkIGp1c3QgY2hlY2sgZm9yIERKR1BQOyBidXQgdGhpcyB0ZXN0IGEpIHdvcmtzIGIpIGlzIG1vcmUgZ2VuZXJpYwotLSAgIyBhbmQgYykgd2lsbCByZW1haW4gdmFsaWQgb25jZSBESkdQUCBzdXBwb3J0cyBzeW1saW5rcyAoREpHUFAgMi4wNCkuCi0tICBpZiB0ZXN0IC1mIGNvbmYkJC5leGU7IHRoZW4KLS0gICAgIyBEb24ndCB1c2UgbG4gYXQgYWxsOyB3ZSBkb24ndCBoYXZlIGFueSBsaW5rcwotLSAgICBhc19sbl9zPSdjcCAtcCcKLSsgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5zJGFjX2ZpbGU7IHRoZW4KLSsgICAgYWNfbW9yZV9saW5lcz1mYWxzZQotKyAgICBybSAtZiBjb25mdGVzdC5zJGFjX2ZpbGUKLSAgIGVsc2UKLS0gICAgYXNfbG5fcz0nbG4gLXMnCi0rICAgIGlmIHRlc3QgLXogIiRhY19zZWRfY21kcyI7IHRoZW4KLSsgICAgICBhY19zZWRfY21kcz0ic2VkIC1mIGNvbmZ0ZXN0LnMkYWNfZmlsZSIKLSsgICAgZWxzZQotKyAgICAgIGFjX3NlZF9jbWRzPSIkYWNfc2VkX2NtZHMgfCBzZWQgLWYgY29uZnRlc3QucyRhY19maWxlIgotKyAgICBmaQotKyAgICBhY19maWxlPWBleHByICRhY19maWxlICsgMWAKLSsgICAgYWNfYmVnPSRhY19lbmQKLSsgICAgYWNfZW5kPWBleHByICRhY19lbmQgKyAkYWNfbWF4X3NlZF9jbWRzYAotICAgZmkKLS1lbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotLSAgYXNfbG5fcz1sbgotLWVsc2UKLS0gIGFzX2xuX3M9J2NwIC1wJwotLWZpCi0tcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKLS0KLS1pZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCi0tICBhc19ta2Rpcl9wPToKLS1lbHNlCi0tICBhc19ta2Rpcl9wPWZhbHNlCi0tZmkKLS0KLS1hc19leGVjdXRhYmxlX3A9InRlc3QgLWYiCi0tCi0tIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgotLWFzX3RyX2NwcD0ic2VkIHklKiRhc19jcl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyIKLS0KLS0jIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFtZS4KLS1hc190cl9zaD0ic2VkIHklKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWciCi0tCi0tCi0tIyBJRlMKLS0jIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLgotLWFzX25sPScKLS0nCi0tSUZTPSIgCSRhc19ubCIKLS0KLS0jIENEUEFUSC4KLS0kYXNfdW5zZXQgQ0RQQVRICi0tCi0tZXhlYyA2PiYxCi0tCi0tIyBPcGVuIHRoZSBsb2cgcmVhbCBzb29uLCB0byBrZWVwIFwkWzBdIGFuZCBzbyBvbiBtZWFuaW5nZnVsLCBhbmQgdG8KLS0jIHJlcG9ydCBhY3R1YWwgaW5wdXQgdmFsdWVzIG9mIENPTkZJR19GSUxFUyBldGMuIGluc3RlYWQgb2YgdGhlaXIKLS0jIHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLiAgTG9nZ2luZyAtLXZlcnNpb24gZXRjLiBpcyBPSy4KLS1leGVjIDU+PmNvbmZpZy5sb2cKLS17Ci0tICBlY2hvCi0tICBzZWQgJ2g7cy8uLy0vZztzL14uLi4vIyMgLztzLy4uLiQvICMjLztwO3g7cDt4JyA8PF9BU0JPWAotLSMjIFJ1bm5pbmcgJGFzX21lLiAjIwotLV9BU0JPWAotLX0gPiY1Ci0tY2F0ID4mNSA8PF9DU0VPRgotLQotLVRoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgJGFzX21lLCB3aGljaCB3YXMKLS1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTcuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLS0KLS0gIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdfRklMRVMKLS0gIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUwotLSAgQ09ORklHX0xJTktTICAgID0gJENPTkZJR19MSU5LUwotLSAgQ09ORklHX0NPTU1BTkRTID0gJENPTkZJR19DT01NQU5EUwotLSAgJCAkMCAkQAotLQotLV9DU0VPRgotLWVjaG8gIm9uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYCIgPiY1Ci0tZWNobyA+JjUKLS1fQUNFT0YKLS0KLS0jIEZpbGVzIHRoYXQgY29uZmlnLnN0YXR1cyB3YXMgbWFkZSBmb3IuCi0taWYgdGVzdCAtbiAiJGFjX2NvbmZpZ19maWxlcyI7IHRoZW4KLS0gIGVjaG8gImNvbmZpZ19maWxlcz1cIiRhY19jb25maWdfZmlsZXNcIiIgPj4kQ09ORklHX1NUQVRVUwotLWZpCi0tCi0taWYgdGVzdCAtbiAiJGFjX2NvbmZpZ19oZWFkZXJzIjsgdGhlbgotLSAgZWNobyAiY29uZmlnX2hlYWRlcnM9XCIkYWNfY29uZmlnX2hlYWRlcnNcIiIgPj4kQ09ORklHX1NUQVRVUwotLWZpCi0tCi0taWYgdGVzdCAtbiAiJGFjX2NvbmZpZ19saW5rcyI7IHRoZW4KLS0gIGVjaG8gImNvbmZpZ19saW5rcz1cIiRhY19jb25maWdfbGlua3NcIiIgPj4kQ09ORklHX1NUQVRVUwotLWZpCi0tCi0taWYgdGVzdCAtbiAiJGFjX2NvbmZpZ19jb21tYW5kcyI7IHRoZW4KLS0gIGVjaG8gImNvbmZpZ19jb21tYW5kcz1cIiRhY19jb25maWdfY29tbWFuZHNcIiIgPj4kQ09ORklHX1NUQVRVUwotLWZpCi0tCi0tY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0tCi0tYWNfY3NfdXNhZ2U9IlwKLS1cYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVtcGxhdGVzIGFjY29yZGluZyB0byB0aGUKLS1jdXJyZW50IGNvbmZpZ3VyYXRpb24uCi0tCi0tVXNhZ2U6ICQwIFtPUFRJT05TXSBbRklMRV0uLi4KLS0KLS0gIC1oLCAtLWhlbHAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLS0gIC1WLCAtLXZlcnNpb24gICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAotLSAgLXEsIC0tcXVpZXQgICAgICBkbyBub3QgcHJpbnQgcHJvZ3Jlc3MgbWVzc2FnZXMKLS0gIC1kLCAtLWRlYnVnICAgICAgZG9uJ3QgcmVtb3ZlIHRlbXBvcmFyeSBmaWxlcwotLSAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJlY29uZmlndXJpbmcgaW4gdGhlIHNhbWUgY29uZGl0aW9ucwotLSAgLS1maWxlPUZJTEVbOlRFTVBMQVRFXQotLSAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBmaWxlIEZJTEUKLS0KLS1Db25maWd1cmF0aW9uIGZpbGVzOgotLSRjb25maWdfZmlsZXMKLS0KLS1SZXBvcnQgYnVncyB0byA8YnVnLWF1dG9jb25mQGdudS5vcmc+LiIKLS1fQUNFT0YKLS0KLS1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgotLWFjX2NzX3ZlcnNpb249IlxcCi0tY29uZmlnLnN0YXR1cwotLWNvbmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41NywKLS0gIHdpdGggb3B0aW9ucyBcXCJgZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9bXFwiIlxgXCRdL1xcXFwmL2cnYFxcIgotLQotLUNvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxCi0tRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0tVGhpcyBjb25maWcuc3RhdHVzIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0tZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKLS1zcmNkaXI9JHNyY2RpcgotLUlOU1RBTEw9IiRJTlNUQUxMIgotLV9BQ0VPRgotLQotLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgotLSMgSWYgbm8gZmlsZSBhcmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLCB0aGVuIHdlIG5lZWQgdG8gcHJvdmlkZSBkZWZhdWx0Ci0tIyB2YWx1ZS4gIEJ5IHdlIG5lZWQgdG8ga25vdyBpZiBmaWxlcyB3ZXJlIHNwZWNpZmllZCBieSB0aGUgdXNlci4KLS1hY19uZWVkX2RlZmF1bHRzPToKLS13aGlsZSB0ZXN0ICQjICE9IDAKLS1kbwotLSAgY2FzZSAkMSBpbgotLSAgLS0qPSopCi0tICAgIGFjX29wdGlvbj1gZXhwciAieCQxIiA6ICd4XChbXj1dKlwpPSdgCi0tICAgIGFjX29wdGFyZz1gZXhwciAieCQxIiA6ICd4W149XSo9XCguKlwpJ2AKLS0gICAgYWNfc2hpZnQ9OgotLSAgICA7OwotLSAgLSopCi0tICAgIGFjX29wdGlvbj0kMQotLSAgICBhY19vcHRhcmc9JDIKLS0gICAgYWNfc2hpZnQ9c2hpZnQKLS0gICAgOzsKLS0gICopICMgVGhpcyBpcyBub3QgYW4gb3B0aW9uLCBzbyB0aGUgdXNlciBoYXMgcHJvYmFibHkgZ2l2ZW4gZXhwbGljaXQKLS0gICAgICMgYXJndW1lbnRzLgotLSAgICAgYWNfb3B0aW9uPSQxCi0tICAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKLS0gIGVzYWMKLS0KLS0gIGNhc2UgJGFjX29wdGlvbiBpbgotLSAgIyBIYW5kbGluZyBvZiB0aGUgb3B0aW9ucy4KLS1fQUNFT0YKLS1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLS0gIC1yZWNoZWNrIHwgLS1yZWNoZWNrIHwgLS1yZWNoZWMgfCAtLXJlY2hlIHwgLS1yZWNoIHwgLS1yZWMgfCAtLXJlIHwgLS1yKQotLSAgICBhY19jc19yZWNoZWNrPTogOzsKLS0gIC0tdmVyc2lvbiB8IC0tdmVycyogfCAtViApCi0tICAgIGVjaG8gIiRhY19jc192ZXJzaW9uIjsgZXhpdCAwIDs7Ci0tICAtLWhlIHwgLS1oKQotLSAgICAjIENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgotLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQotLVRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQotLVRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0tICAtLWhlbHAgfCAtLWhlbCB8IC1oICkKLS0gICAgZWNobyAiJGFjX2NzX3VzYWdlIjsgZXhpdCAwIDs7Ci0tICAtLWRlYnVnIHwgLS1kKiB8IC1kICkKLS0gICAgZGVidWc9OiA7OwotLSAgLS1maWxlIHwgLS1maWwgfCAtLWZpIHwgLS1mICkKLS0gICAgJGFjX3NoaWZ0Ci0tICAgIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAkYWNfb3B0YXJnIgotLSAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKLS0gIC0taGVhZGVyIHwgLS1oZWFkZSB8IC0taGVhZCB8IC0taGVhICkKLS0gICAgJGFjX3NoaWZ0Ci0tICAgIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgJGFjX29wdGFyZyIKLS0gICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7Ci0tICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotLSAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwgfCAtLXNpIHwgLS1zKQotLSAgICBhY19jc19zaWxlbnQ9OiA7OwotLQotLSAgIyBUaGlzIGlzIGFuIGVycm9yLgotLSAgLSopIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICQxCi0tVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICQxCi0tVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7Ci0tCi0tICAqKSBhY19jb25maWdfdGFyZ2V0cz0iJGFjX2NvbmZpZ190YXJnZXRzICQxIiA7OwotLQotLSAgZXNhYwotLSAgc2hpZnQKLSBkb25lCi0tCi0tYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9Ci0tCi0taWYgJGFjX2NzX3NpbGVudDsgdGhlbgotLSAgZXhlYyA2Pi9kZXYvbnVsbAotLSAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLXNpbGVudCIKLStpZiB0ZXN0IC16ICIkYWNfc2VkX2NtZHMiOyB0aGVuCi0rICBhY19zZWRfY21kcz1jYXQKLSBmaQotK0VPRgotIAotLV9BQ0VPRgotLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCi0taWYgXCRhY19jc19yZWNoZWNrOyB0aGVuCi0tICBlY2hvICJydW5uaW5nICRTSEVMTCAkMCAiICRhY19jb25maWd1cmVfYXJncyBcJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzICIgLS1uby1jcmVhdGUgLS1uby1yZWN1cnNpb24iID4mNgotLSAgZXhlYyAkU0hFTEwgJDAgJGFjX2NvbmZpZ3VyZV9hcmdzIFwkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgLS1uby1jcmVhdGUgLS1uby1yZWN1cnNpb24KLS1maQotK2NhdCA+PiAkQ09ORklHX1NUQVRVUyA8PEVPRgotIAotLV9BQ0VPRgotLQotLQotLQotLQotLQotLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgotLWZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0cwotLWRvCi0tICBjYXNlICIkYWNfY29uZmlnX3RhcmdldCIgaW4KLS0gICMgSGFuZGxpbmcgb2YgYXJndW1lbnRzLgotLSAgImNvbmZpZy9jb25maWciICkgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGNvbmZpZy9jb25maWciIDs7Ci0tICAiY29uZmlnL3N5c3RlbS5tYWsiICkgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGNvbmZpZy9zeXN0ZW0ubWFrIiA7OwotLSAgKikgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0rQ09ORklHX0ZJTEVTPVwke0NPTkZJR19GSUxFUy0iY29uZmlnL2NvbmZpZyBjb25maWcvc3lzdGVtLm1hayJ9Ci0rRU9GCi0rY2F0ID4+ICRDT05GSUdfU1RBVFVTIDw8XEVPRgotK2ZvciBhY19maWxlIGluIC4uICRDT05GSUdfRklMRVM7IGRvIGlmIHRlc3QgIngkYWNfZmlsZSIgIT0geC4uOyB0aGVuCi0rICAjIFN1cHBvcnQgIm91dGZpbGVbOmluZmlsZVs6aW5maWxlLi4uXV0iLCBkZWZhdWx0aW5nIGluZmlsZT0ib3V0ZmlsZS5pbiIuCi0rICBjYXNlICIkYWNfZmlsZSIgaW4KLSsgICo6KikgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUifHNlZCAncyVbXjpdKjolJSdgCi0rICAgICAgIGFjX2ZpbGU9YGVjaG8gIiRhY19maWxlInxzZWQgJ3MlOi4qJSUnYCA7OwotKyAgKikgYWNfZmlsZV9pbj0iJHthY19maWxlfS5pbiIgOzsKLSAgIGVzYWMKLS1kb25lCi0gCi0tIyBJZiB0aGUgdXNlciBkaWQgbm90IHVzZSB0aGUgYXJndW1lbnRzIHRvIHNwZWNpZnkgdGhlIGl0ZW1zIHRvIGluc3RhbnRpYXRlLAotLSMgdGhlbiB0aGUgZW52dmFyIGludGVyZmFjZSBpcyB1c2VkLiAgU2V0IG9ubHkgdGhvc2UgdGhhdCBhcmUgbm90LgotLSMgV2UgdXNlIHRoZSBsb25nIGZvcm0gZm9yIHRoZSBkZWZhdWx0IGFzc2lnbm1lbnQgYmVjYXVzZSBvZiBhbiBleHRyZW1lbHkKLS0jIGJpemFycmUgYnVnIG9uIFN1bk9TIDQuMS4zLgotLWlmICRhY19uZWVkX2RlZmF1bHRzOyB0aGVuCi0tICB0ZXN0ICIke0NPTkZJR19GSUxFUytzZXR9IiA9IHNldCB8fCBDT05GSUdfRklMRVM9JGNvbmZpZ19maWxlcwotLWZpCi0rICAjIEFkanVzdCBhIHJlbGF0aXZlIHNyY2RpciwgdG9wX3NyY2RpciwgYW5kIElOU1RBTEwgZm9yIHN1YmRpcmVjdG9yaWVzLgotIAotLSMgSGF2ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIGNvbnZlbmllbmNlLiAgTWFrZSBpdCBpbiB0aGUgYnVpbGQgdHJlZQotLSMgc2ltcGx5IGJlY2F1c2UgdGhlcmUgaXMgbm8gcmVhc29uIHRvIHB1dCBpdCBoZXJlLCBhbmQgaW4gYWRkaXRpb24sCi0tIyBjcmVhdGluZyBhbmQgbW92aW5nIGZpbGVzIGZyb20gL3RtcCBjYW4gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zLgotLSMgQ3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSwgYW5kIGhvb2sgZm9yIGl0cyByZW1vdmFsIHVubGVzcyBkZWJ1Z2dpbmcuCi0tJGRlYnVnIHx8Ci0tewotLSAgdHJhcCAnZXhpdF9zdGF0dXM9JD87IHJtIC1yZiAkdG1wICYmIGV4aXQgJGV4aXRfc3RhdHVzJyAwCi0tICB0cmFwICd7IChleGl0IDEpOyBleGl0IDE7IH0nIDEgMiAxMyAxNQotLX0KLS0KLS0jIENyZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRtcCBmaWxlcy4KLS0KLS17Ci0tICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kIC1xICIuL2NvbmZzdGF0WFhYWFhYIikgMj4vZGV2L251bGxgICYmCi0tICB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIgotLX0gIHx8Ci0tewotLSAgdG1wPS4vY29uZnN0YXQkJC0kUkFORE9NCi0tICAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApCi0tfSB8fAotLXsKLS0gICBlY2hvICIkbWU6IGNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIC4iID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotLX0KLS0KLS1fQUNFT0YKLS0KLS1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgotLQotLSMKLS0jIENPTkZJR19GSUxFUyBzZWN0aW9uLgotLSMKLS0KLS0jIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHNjcmlwdHMgaWYgdGhlcmUgYXJlIG5vIENPTkZJR19GSUxFUy4KLS0jIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugd2hlbiAuL2NvbmZpZy5zdGF0dXMgY29uZmlnLmgKLS1pZiB0ZXN0IC1uICJcJENPTkZJR19GSUxFUyI7IHRoZW4KLS0gICMgUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIG9uIHRoZSByaWdodCBzaWRlIG9mIGEgc2VkIHN1YnN0IGluIGNvbmZpZy5zdGF0dXMuCi0tICBzZWQgJ3MvLEAvQEAvOyBzL0AsL0BALzsgcy8sO3QgdFwkL0A7dCB0LzsgL0A7dCB0XCQvcy9bXFxcXCYsXS9cXFxcJi9nOwotLSAgIHMvQEAvLEAvOyBzL0BAL0AsLzsgcy9AO3QgdFwkLyw7dCB0LycgPlwkdG1wL3N1YnMuc2VkIDw8XFxDRU9GCi0tcyxAU0hFTExALCRTSEVMTCw7dCB0Ci0tcyxAUEFUSF9TRVBBUkFUT1JALCRQQVRIX1NFUEFSQVRPUiw7dCB0Ci0tcyxAUEFDS0FHRV9OQU1FQCwkUEFDS0FHRV9OQU1FLDt0IHQKLS1zLEBQQUNLQUdFX1RBUk5BTUVALCRQQUNLQUdFX1RBUk5BTUUsO3QgdAotLXMsQFBBQ0tBR0VfVkVSU0lPTkAsJFBBQ0tBR0VfVkVSU0lPTiw7dCB0Ci0tcyxAUEFDS0FHRV9TVFJJTkdALCRQQUNLQUdFX1NUUklORyw7dCB0Ci0tcyxAUEFDS0FHRV9CVUdSRVBPUlRALCRQQUNLQUdFX0JVR1JFUE9SVCw7dCB0Ci0tcyxAZXhlY19wcmVmaXhALCRleGVjX3ByZWZpeCw7dCB0Ci0tcyxAcHJlZml4QCwkcHJlZml4LDt0IHQKLS1zLEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQCwkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSw7dCB0Ci0tcyxAYmluZGlyQCwkYmluZGlyLDt0IHQKLS1zLEBzYmluZGlyQCwkc2JpbmRpciw7dCB0Ci0tcyxAbGliZXhlY2RpckAsJGxpYmV4ZWNkaXIsO3QgdAotLXMsQGRhdGFkaXJALCRkYXRhZGlyLDt0IHQKLS1zLEBzeXNjb25mZGlyQCwkc3lzY29uZmRpciw7dCB0Ci0tcyxAc2hhcmVkc3RhdGVkaXJALCRzaGFyZWRzdGF0ZWRpciw7dCB0Ci0tcyxAbG9jYWxzdGF0ZWRpckAsJGxvY2Fsc3RhdGVkaXIsO3QgdAotLXMsQGxpYmRpckAsJGxpYmRpciw7dCB0Ci0tcyxAaW5jbHVkZWRpckAsJGluY2x1ZGVkaXIsO3QgdAotLXMsQG9sZGluY2x1ZGVkaXJALCRvbGRpbmNsdWRlZGlyLDt0IHQKLS1zLEBpbmZvZGlyQCwkaW5mb2Rpciw7dCB0Ci0tcyxAbWFuZGlyQCwkbWFuZGlyLDt0IHQKLS1zLEBidWlsZF9hbGlhc0AsJGJ1aWxkX2FsaWFzLDt0IHQKLS1zLEBob3N0X2FsaWFzQCwkaG9zdF9hbGlhcyw7dCB0Ci0tcyxAdGFyZ2V0X2FsaWFzQCwkdGFyZ2V0X2FsaWFzLDt0IHQKLS1zLEBERUZTQCwkREVGUyw7dCB0Ci0tcyxARUNIT19DQCwkRUNIT19DLDt0IHQKLS1zLEBFQ0hPX05ALCRFQ0hPX04sO3QgdAotLXMsQEVDSE9fVEAsJEVDSE9fVCw7dCB0Ci0tcyxATElCU0AsJExJQlMsO3QgdAotLXMsQGJ1aWxkQCwkYnVpbGQsO3QgdAotLXMsQGJ1aWxkX2NwdUAsJGJ1aWxkX2NwdSw7dCB0Ci0tcyxAYnVpbGRfdmVuZG9yQCwkYnVpbGRfdmVuZG9yLDt0IHQKLS1zLEBidWlsZF9vc0AsJGJ1aWxkX29zLDt0IHQKLS1zLEBob3N0QCwkaG9zdCw7dCB0Ci0tcyxAaG9zdF9jcHVALCRob3N0X2NwdSw7dCB0Ci0tcyxAaG9zdF92ZW5kb3JALCRob3N0X3ZlbmRvciw7dCB0Ci0tcyxAaG9zdF9vc0AsJGhvc3Rfb3MsO3QgdAotLXMsQHRhcmdldEAsJHRhcmdldCw7dCB0Ci0tcyxAdGFyZ2V0X2NwdUAsJHRhcmdldF9jcHUsO3QgdAotLXMsQHRhcmdldF92ZW5kb3JALCR0YXJnZXRfdmVuZG9yLDt0IHQKLS1zLEB0YXJnZXRfb3NALCR0YXJnZXRfb3MsO3QgdAotLXMsQENDQCwkQ0MsO3QgdAotLXMsQENGTEFHU0AsJENGTEFHUyw7dCB0Ci0tcyxATERGTEFHU0AsJExERkxBR1MsO3QgdAotLXMsQENQUEZMQUdTQCwkQ1BQRkxBR1MsO3QgdAotLXMsQGFjX2N0X0NDQCwkYWNfY3RfQ0MsO3QgdAotLXMsQEVYRUVYVEAsJEVYRUVYVCw7dCB0Ci0tcyxAT0JKRVhUQCwkT0JKRVhULDt0IHQKLS1zLEBSQU5MSUJALCRSQU5MSUIsO3QgdAotLXMsQGFjX2N0X1JBTkxJQkAsJGFjX2N0X1JBTkxJQiw7dCB0Ci0tcyxASU5TVEFMTF9QUk9HUkFNQCwkSU5TVEFMTF9QUk9HUkFNLDt0IHQKLS1zLEBJTlNUQUxMX1NDUklQVEAsJElOU1RBTExfU0NSSVBULDt0IHQKLS1zLEBJTlNUQUxMX0RBVEFALCRJTlNUQUxMX0RBVEEsO3QgdAotLXMsQEFSQCwkQVIsO3QgdAotLXMsQGFjX2N0X0FSQCwkYWNfY3RfQVIsO3QgdAotLXMsQFRBUkdFVF9PU0AsJFRBUkdFVF9PUyw7dCB0Ci0tcyxAVEFSR0VUX0NQVUAsJFRBUkdFVF9DUFUsO3QgdAotLXMsQE02OEtDQ0AsJE02OEtDQyw7dCB0Ci0tcyxATEVYREVGU0AsJExFWERFRlMsO3QgdAotLXMsQFZPWERFRlNALCRWT1hERUZTLDt0IHQKLS1zLEBIT1NUX09TQCwkSE9TVF9PUyw7dCB0Ci0tcyxASE9TVF9DUFVALCRIT1NUX0NQVSw7dCB0Ci0tcyxAT1RIRVJMSUJTQCwkT1RIRVJMSUJTLDt0IHQKLS1zLEBTSEZMQUdTQCwkU0hGTEFHUyw7dCB0Ci0tcyxATU1BUFRZUEVALCRNTUFQVFlQRSw7dCB0Ci0tcyxAU1RESU9UWVBFQCwkU1RESU9UWVBFLDt0IHQKLS1zLEBDUFBALCRDUFAsO3QgdAotLXMsQEVHUkVQQCwkRUdSRVAsO3QgdAotLXMsQEFVRElPRFJJVkVSQCwkQVVESU9EUklWRVIsO3QgdAotLXMsQEFVRElPREVGU0AsJEFVRElPREVGUyw7dCB0Ci0tcyxAQVVESU9MSUJTQCwkQVVESU9MSUJTLDt0IHQKLS1zLEBGTF9MQU5HQCwkRkxfTEFORyw7dCB0Ci0tcyxARkxfVk9YQCwkRkxfVk9YLDt0IHQKLS1zLEBGTF9MRVhALCRGTF9MRVgsO3QgdAotLXMsQExJQk9CSlNALCRMSUJPQkpTLDt0IHQKLS1zLEBMVExJQk9CSlNALCRMVExJQk9CSlMsO3QgdAotLUNFT0YKLS0KLS1fQUNFT0YKLS0KLS0gIGNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgotLSAgIyBTcGxpdCB0aGUgc3Vic3RpdHV0aW9ucyBpbnRvIGJpdGUtc2l6ZWQgcGllY2VzIGZvciBzZWRzIHdpdGgKLS0gICMgc21hbGwgY29tbWFuZCBudW1iZXIgbGltaXRzLCBsaWtlIG9uIERpZ2l0YWwgT1NGLzEgYW5kIEhQLVVYLgotLSAgYWNfbWF4X3NlZF9saW5lcz00OAotLSAgYWNfc2VkX2ZyYWc9MSAjIE51bWJlciBvZiBjdXJyZW50IGZpbGUuCi0tICBhY19iZWc9MSAjIEZpcnN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLS0gIGFjX2VuZD0kYWNfbWF4X3NlZF9saW5lcyAjIExpbmUgYWZ0ZXIgbGFzdCBsaW5lIGZvciBjdXJyZW50IGZpbGUuCi0tICBhY19tb3JlX2xpbmVzPToKLS0gIGFjX3NlZF9jbWRzPQotLSAgd2hpbGUgJGFjX21vcmVfbGluZXM7IGRvCi0tICAgIGlmIHRlc3QgJGFjX2JlZyAtZ3QgMTsgdGhlbgotLSAgICAgIHNlZCAiMSwke2FjX2JlZ31kOyAke2FjX2VuZH1xIiAkdG1wL3N1YnMuc2VkID4kdG1wL3N1YnMuZnJhZwotLSAgICBlbHNlCi0tICAgICAgc2VkICIke2FjX2VuZH1xIiAkdG1wL3N1YnMuc2VkID4kdG1wL3N1YnMuZnJhZwotLSAgICBmaQotLSAgICBpZiB0ZXN0ICEgLXMgJHRtcC9zdWJzLmZyYWc7IHRoZW4KLS0gICAgICBhY19tb3JlX2xpbmVzPWZhbHNlCi0tICAgIGVsc2UKLS0gICAgICAjIFRoZSBwdXJwb3NlIG9mIHRoZSBsYWJlbCBhbmQgb2YgdGhlIGJyYW5jaGluZyBjb25kaXRpb24gaXMgdG8KLS0gICAgICAjIHNwZWVkIHVwIHRoZSBzZWQgcHJvY2Vzc2luZyAoaWYgdGhlcmUgYXJlIG5vIGBAJyBhdCBhbGwsIHRoZXJlCi0tICAgICAgIyBpcyBubyBuZWVkIHRvIGJyb3dzZSBhbnkgb2YgdGhlIHN1YnN0aXR1dGlvbnMpLgotLSAgICAgICMgVGhlc2UgYXJlIHRoZSB0d28gZXh0cmEgc2VkIGNvbW1hbmRzIG1lbnRpb25lZCBhYm92ZS4KLS0gICAgICAoZWNobyAnOnQKLS0gIC9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWInICYmIGNhdCAkdG1wL3N1YnMuZnJhZykgPiR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkCi0tICAgICAgaWYgdGVzdCAteiAiJGFjX3NlZF9jbWRzIjsgdGhlbgotLSAgCWFjX3NlZF9jbWRzPSJzZWQgLWYgJHRtcC9zdWJzLSRhY19zZWRfZnJhZy5zZWQiCi0tICAgICAgZWxzZQotLSAgCWFjX3NlZF9jbWRzPSIkYWNfc2VkX2NtZHMgfCBzZWQgLWYgJHRtcC9zdWJzLSRhY19zZWRfZnJhZy5zZWQiCi0tICAgICAgZmkKLS0gICAgICBhY19zZWRfZnJhZz1gZXhwciAkYWNfc2VkX2ZyYWcgKyAxYAotLSAgICAgIGFjX2JlZz0kYWNfZW5kCi0tICAgICAgYWNfZW5kPWBleHByICRhY19lbmQgKyAkYWNfbWF4X3NlZF9saW5lc2AKLS0gICAgZmkKLS0gIGRvbmUKLS0gIGlmIHRlc3QgLXogIiRhY19zZWRfY21kcyI7IHRoZW4KLS0gICAgYWNfc2VkX2NtZHM9Y2F0Ci0rICAjIFJlbW92ZSBsYXN0IHNsYXNoIGFuZCBhbGwgdGhhdCBmb2xsb3dzIGl0LiAgTm90IGFsbCBzeXN0ZW1zIGhhdmUgZGlybmFtZS4KLSsgIGFjX2Rpcj1gZWNobyAkYWNfZmlsZXxzZWQgJ3MlL1teL11bXi9dKiQlJSdgCi0rICBpZiB0ZXN0ICIkYWNfZGlyIiAhPSAiJGFjX2ZpbGUiICYmIHRlc3QgIiRhY19kaXIiICE9IC47IHRoZW4KLSsgICAgIyBUaGUgZmlsZSBpcyBpbiBhIHN1YmRpcmVjdG9yeS4KLSsgICAgdGVzdCAhIC1kICIkYWNfZGlyIiAmJiBta2RpciAiJGFjX2RpciIKLSsgICAgYWNfZGlyX3N1ZmZpeD0iL2BlY2hvICRhY19kaXJ8c2VkICdzJV5cLi8lJSdgIgotKyAgICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotKyAgICBhY19kb3RzPWBlY2hvICRhY19kaXJfc3VmZml4fHNlZCAncyUvW14vXSolLi4vJWcnYAotKyAgZWxzZQotKyAgICBhY19kaXJfc3VmZml4PSBhY19kb3RzPQotICAgZmkKLS1maSAjIHRlc3QgLW4gIiRDT05GSUdfRklMRVMiCi0gCi0tX0FDRU9GCi0tY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0tZm9yIGFjX2ZpbGUgaW4gOiAkQ09ORklHX0ZJTEVTOyBkbyB0ZXN0ICJ4JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKLS0gICMgU3VwcG9ydCAib3V0ZmlsZVs6aW5maWxlWzppbmZpbGUuLi5dXSIsIGRlZmF1bHRpbmcgaW5maWxlPSJvdXRmaWxlLmluIi4KLS0gIGNhc2UgJGFjX2ZpbGUgaW4KLS0gIC0gfCAqOi0gfCAqOi06KiApICMgaW5wdXQgZnJvbSBzdGRpbgotLSAgICAgICAgY2F0ID4kdG1wL3N0ZGluCi0tICAgICAgICBhY19maWxlX2luPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsW146XSo6LCwnYAotLSAgICAgICAgYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKLS0gICo6KiApIGFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCi0tICAgICAgICBhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OwotLSAgKiApICAgYWNfZmlsZV9pbj0kYWNfZmlsZS5pbiA7OwotKyAgY2FzZSAiJGFjX2dpdmVuX3NyY2RpciIgaW4KLSsgIC4pICBzcmNkaXI9LgotKyAgICAgIGlmIHRlc3QgLXogIiRhY19kb3RzIjsgdGhlbiB0b3Bfc3JjZGlyPS4KLSsgICAgICBlbHNlIHRvcF9zcmNkaXI9YGVjaG8gJGFjX2RvdHN8c2VkICdzJS8kJSUnYDsgZmkgOzsKLSsgIC8qKSBzcmNkaXI9IiRhY19naXZlbl9zcmNkaXIkYWNfZGlyX3N1ZmZpeCI7IHRvcF9zcmNkaXI9IiRhY19naXZlbl9zcmNkaXIiIDs7Ci0rICAqKSAjIFJlbGF0aXZlIHBhdGguCi0rICAgIHNyY2Rpcj0iJGFjX2RvdHMkYWNfZ2l2ZW5fc3JjZGlyJGFjX2Rpcl9zdWZmaXgiCi0rICAgIHRvcF9zcmNkaXI9IiRhY19kb3RzJGFjX2dpdmVuX3NyY2RpciIgOzsKLSAgIGVzYWMKLSAKLS0gICMgQ29tcHV0ZSBAc3JjZGlyQCwgQHRvcF9zcmNkaXJALCBhbmQgQElOU1RBTExAIGZvciBzdWJkaXJlY3Rvcmllcy4KLS0gIGFjX2Rpcj1gKGRpcm5hbWUgIiRhY19maWxlIikgMj4vZGV2L251bGwgfHwKLS0kYXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotLSAgICAgICAgIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0tICAgICAgICAgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKLS0gICAgICAgICBYIiRhY19maWxlIiA6ICdYXCgvXCknIFx8IFwKLS0gICAgICAgICAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLS1lY2hvIFgiJGFjX2ZpbGUiIHwKLS0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0tICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0tICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotLSAgCSAgcy8uKi8uLzsgcSdgCi0tICB7IGlmICRhc19ta2Rpcl9wOyB0aGVuCi0tICAgIG1rZGlyIC1wICIkYWNfZGlyIgotLSAgZWxzZQotLSAgICBhc19kaXI9IiRhY19kaXIiCi0tICAgIGFzX2RpcnM9Ci0tICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCi0tICAgICAgYXNfZGlycz0iJGFzX2RpciAkYXNfZGlycyIKLS0gICAgICBhc19kaXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKLS0kYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0tICAgICAgICAgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAotLSAgICAgICAgIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKLS0gICAgICAgICBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAotLSAgICAgICAgIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotLWVjaG8gWCIkYXNfZGlyIiB8Ci0tICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLS0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLS0gIAkgIHMvLiovLi87IHEnYAotLSAgICBkb25lCi0tICAgIHRlc3QgISAtbiAiJGFzX2RpcnMiIHx8IG1rZGlyICRhc19kaXJzCi0tICBmaSB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9Ci0rICBjYXNlICIkYWNfZ2l2ZW5fSU5TVEFMTCIgaW4KLSsgIFsvJF0qKSBJTlNUQUxMPSIkYWNfZ2l2ZW5fSU5TVEFMTCIgOzsKLSsgICopIElOU1RBTEw9IiRhY19kb3RzJGFjX2dpdmVuX0lOU1RBTEwiIDs7Ci0rICBlc2FjCi0gCi0tICBhY19idWlsZGRpcj0uCi0tCi0taWYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgotLSAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAotLSAgIyBBICIuLi8iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KLS0gIGFjX3RvcF9idWlsZGRpcj1gZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzLC9bXlxcL10qLC4uLyxnJ2AKLS1lbHNlCi0tICBhY19kaXJfc3VmZml4PSBhY190b3BfYnVpbGRkaXI9Ci0tZmkKLS0KLS1jYXNlICRzcmNkaXIgaW4KLS0gIC4pICAjIE5vIC0tc3JjZGlyIG9wdGlvbi4gIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KLS0gICAgYWNfc3JjZGlyPS4KLS0gICAgaWYgdGVzdCAteiAiJGFjX3RvcF9idWlsZGRpciI7IHRoZW4KLS0gICAgICAgYWNfdG9wX3NyY2Rpcj0uCi0tICAgIGVsc2UKLS0gICAgICAgYWNfdG9wX3NyY2Rpcj1gZWNobyAkYWNfdG9wX2J1aWxkZGlyIHwgc2VkICdzLC8kLCwnYAotLSAgICBmaSA7OwotLSAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgotLSAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotLSAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKLS0gICopICMgUmVsYXRpdmUgcGF0aC4KLS0gICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLS0gICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciA7OwotLWVzYWMKLS0jIERvbid0IGJsaW5kbHkgcGVyZm9ybSBhIGBjZCAiJGFjX2RpciIvJGFjX2ZvbyAmJiBwd2RgIHNpbmNlICRhY19mb28gY2FuIGJlCi0tIyBhYnNvbHV0ZS4KLS1hY19hYnNfYnVpbGRkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNfYnVpbGRkaXIgJiYgcHdkYAotLWFjX2Fic190b3BfYnVpbGRkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAke2FjX3RvcF9idWlsZGRpcn0uICYmIHB3ZGAKLS1hY19hYnNfc3JjZGlyPWBjZCAiJGFjX2RpciIgJiYgY2QgJGFjX3NyY2RpciAmJiBwd2RgCi0tYWNfYWJzX3RvcF9zcmNkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNfdG9wX3NyY2RpciAmJiBwd2RgCi0tCi0tCi0tICBjYXNlICRJTlNUQUxMIGluCi0tICBbXFwvJF0qIHwgPzpbXFwvXSogKSBhY19JTlNUQUxMPSRJTlNUQUxMIDs7Ci0tICAqKSBhY19JTlNUQUxMPSRhY190b3BfYnVpbGRkaXIkSU5TVEFMTCA7OwotKyAgZWNobyBjcmVhdGluZyAiJGFjX2ZpbGUiCi0rICBybSAtZiAiJGFjX2ZpbGUiCi0rICBjb25maWd1cmVfaW5wdXQ9IkdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gYGVjaG8gJGFjX2ZpbGVfaW58c2VkICdzJS4qLyUlJ2AgYnkgY29uZmlndXJlLiIKLSsgIGNhc2UgIiRhY19maWxlIiBpbgotKyAgKk1ha2VmaWxlKikgYWNfY29tc3ViPSIxaVxcCi0rIyAkY29uZmlndXJlX2lucHV0IiA7OwotKyAgKikgYWNfY29tc3ViPSA7OwotICAgZXNhYwotIAotLSAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkYWNfZmlsZSIgPiY1Ci0tZWNobyAiJGFzX21lOiBjcmVhdGluZyAkYWNfZmlsZSIgPiY2O30KLS0gICAgcm0gLWYgIiRhY19maWxlIgotLSAgZmkKLS0gICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29uZmlndXJlJyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0Ci0tICAjIHVzZSAkYXNfbWUpLCBwZW9wbGUgd291bGQgYmUgc3VycHJpc2VkIHRvIHJlYWQ6Ci0tICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZy5zdGF0dXMuICAqLwotLSAgaWYgdGVzdCB4IiRhY19maWxlIiA9IHgtOyB0aGVuCi0tICAgIGNvbmZpZ3VyZV9pbnB1dD0KLS0gIGVsc2UKLS0gICAgY29uZmlndXJlX2lucHV0PSIkYWNfZmlsZS4gICIKLS0gIGZpCi0tICBjb25maWd1cmVfaW5wdXQ9JGNvbmZpZ3VyZV9pbnB1dCJHZW5lcmF0ZWQgZnJvbSBgZWNobyAkYWNfZmlsZV9pbiB8Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZCAncywuKi8sLCdgIGJ5IGNvbmZpZ3VyZS4iCi0rICBhY19maWxlX2lucHV0cz1gZWNobyAkYWNfZmlsZV9pbnxzZWQgLWUgInMlXiUkYWNfZ2l2ZW5fc3JjZGlyLyUiIC1lICJzJTolICRhY19naXZlbl9zcmNkaXIvJWciYAotKyAgc2VkIC1lICIkYWNfY29tc3ViCi0rcyVAY29uZmlndXJlX2lucHV0QCUkY29uZmlndXJlX2lucHV0JWcKLStzJUBzcmNkaXJAJSRzcmNkaXIlZwotK3MlQHRvcF9zcmNkaXJAJSR0b3Bfc3JjZGlyJWcKLStzJUBJTlNUQUxMQCUkSU5TVEFMTCVnCi0rIiAkYWNfZmlsZV9pbnB1dHMgfCAoZXZhbCAiJGFjX3NlZF9jbWRzIikgPiAkYWNfZmlsZQotK2ZpOyBkb25lCi0rcm0gLWYgY29uZnRlc3QucyoKLSAKLS0gICMgRmlyc3QgbG9vayBmb3IgdGhlIGlucHV0IGZpbGVzIGluIHRoZSBidWlsZCB0cmVlLCBvdGhlcndpc2UgaW4gdGhlCi0tICAjIHNyYyB0cmVlLgotLSAgYWNfZmlsZV9pbnB1dHM9YElGUz06Ci0tICAgIGZvciBmIGluICRhY19maWxlX2luOyBkbwotLSAgICAgIGNhc2UgJGYgaW4KLS0gICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKLS0gICAgICBbXFwvJF0qKQotLSAgICAgICAgICMgQWJzb2x1dGUgKGNhbid0IGJlIERPUy1zdHlsZSwgYXMgSUZTPTopCi0tICAgICAgICAgdGVzdCAtZiAiJGYiIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLS0gICAgICAgICBlY2hvICRmOzsKLS0gICAgICAqKSAjIFJlbGF0aXZlCi0tICAgICAgICAgaWYgdGVzdCAtZiAiJGYiOyB0aGVuCi0tICAgICAgICAgICAjIEJ1aWxkIHRyZWUKLS0gICAgICAgICAgIGVjaG8gJGYKLS0gICAgICAgICBlbGlmIHRlc3QgLWYgIiRzcmNkaXIvJGYiOyB0aGVuCi0tICAgICAgICAgICAjIFNvdXJjZSB0cmVlCi0tICAgICAgICAgICBlY2hvICRzcmNkaXIvJGYKLS0gICAgICAgICBlbHNlCi0tICAgICAgICAgICAjIC9kZXYvbnVsbCB0cmVlCi0tICAgICAgICAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tICAgICAgICAgZmk7OwotLSAgICAgIGVzYWMKLS0gICAgZG9uZWAgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0tX0FDRU9GCi0tY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKLS0gIHNlZCAiJGFjX3Zwc3ViCi0tJGV4dHJhc3ViCi0tX0FDRU9GCi0tY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0tOnQKLS0vQFthLXpBLVpfXVthLXpBLVpfMC05XSpALyFiCi0tcyxAY29uZmlndXJlX2lucHV0QCwkY29uZmlndXJlX2lucHV0LDt0IHQKLS1zLEBzcmNkaXJALCRhY19zcmNkaXIsO3QgdAotLXMsQGFic19zcmNkaXJALCRhY19hYnNfc3JjZGlyLDt0IHQKLS1zLEB0b3Bfc3JjZGlyQCwkYWNfdG9wX3NyY2Rpciw7dCB0Ci0tcyxAYWJzX3RvcF9zcmNkaXJALCRhY19hYnNfdG9wX3NyY2Rpciw7dCB0Ci0tcyxAYnVpbGRkaXJALCRhY19idWlsZGRpciw7dCB0Ci0tcyxAYWJzX2J1aWxkZGlyQCwkYWNfYWJzX2J1aWxkZGlyLDt0IHQKLS1zLEB0b3BfYnVpbGRkaXJALCRhY190b3BfYnVpbGRkaXIsO3QgdAotLXMsQGFic190b3BfYnVpbGRkaXJALCRhY19hYnNfdG9wX2J1aWxkZGlyLDt0IHQKLS1zLEBJTlNUQUxMQCwkYWNfSU5TVEFMTCw7dCB0Ci0tIiAkYWNfZmlsZV9pbnB1dHMgfCAoZXZhbCAiJGFjX3NlZF9jbWRzIikgPiR0bXAvb3V0Ci0tICBybSAtZiAkdG1wL3N0ZGluCi0tICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0tICAgIG12ICR0bXAvb3V0ICRhY19maWxlCi0tICBlbHNlCi0tICAgIGNhdCAkdG1wL291dAotLSAgICBybSAtZiAkdG1wL291dAotLSAgZmkKLStFT0YKLStjYXQgPj4gJENPTkZJR19TVEFUVVMgPDxFT0YKLSAKLS1kb25lCi0tX0FDRU9GCi0rRU9GCi0rY2F0ID4+ICRDT05GSUdfU1RBVFVTIDw8XEVPRgotIAotLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgotLQotLXsgKGV4aXQgMCk7IGV4aXQgMDsgfQotLV9BQ0VPRgotK2V4aXQgMAotK0VPRgotIGNobW9kICt4ICRDT05GSUdfU1RBVFVTCi0tYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKLStybSAtZnIgY29uZmRlZnMqICRhY19jbGVhbl9maWxlcwotK3Rlc3QgIiRub19jcmVhdGUiID0geWVzIHx8ICR7Q09ORklHX1NIRUxMLS9iaW4vc2h9ICRDT05GSUdfU1RBVFVTIHx8IGV4aXQgMQotIAotLQotLSMgY29uZmlndXJlIGlzIHdyaXRpbmcgdG8gY29uZmlnLmxvZywgYW5kIHRoZW4gY2FsbHMgY29uZmlnLnN0YXR1cy4KLS0jIGNvbmZpZy5zdGF0dXMgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLCBhcHBlbmRpbmcgdG8gY29uZmlnLmxvZy4KLS0jIFVuZm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25maWcubG9nIGlzIHN0aWxsIGtlcHQgb3BlbgotLSMgYnkgY29uZmlndXJlLCBzbyBjb25maWcuc3RhdHVzIHdvbid0IGJlIGFibGUgdG8gd3JpdGUgdG8gaXQ7IGl0cwotLSMgb3V0cHV0IGlzIHNpbXBseSBkaXNjYXJkZWQuICBTbyB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsCi0tIyBlZmZlY3RpdmVseSBjbG9zaW5nIGNvbmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZAotLSMgYXBwZW5kZWQgdG8gYnkgY29uZmlnLnN0YXR1cy4gIFdoZW4gY29taW5nIGJhY2sgdG8gY29uZmlndXJlLCB3ZQotLSMgbmVlZCB0byBtYWtlIHRoZSBGRCBhdmFpbGFibGUgYWdhaW4uCi0taWYgdGVzdCAiJG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCi0tICBhY19jc19zdWNjZXNzPToKLS0gIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0KLS0gIHRlc3QgIiRzaWxlbnQiID0geWVzICYmCi0tICAgIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0iJGFjX2NvbmZpZ19zdGF0dXNfYXJncyAtLXF1aWV0IgotLSAgZXhlYyA1Pi9kZXYvbnVsbAotLSAgJFNIRUxMICRDT05GSUdfU1RBVFVTICRhY19jb25maWdfc3RhdHVzX2FyZ3MgfHwgYWNfY3Nfc3VjY2Vzcz1mYWxzZQotLSAgZXhlYyA1Pj5jb25maWcubG9nCi0tICAjIFVzZSB8fCwgbm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlmIHdpdGggJD8gPSAxLCB3aGljaAotLSAgIyB3b3VsZCBtYWtlIGNvbmZpZ3VyZSBmYWlsIGlmIHRoaXMgaXMgdGhlIGxhc3QgaW5zdHJ1Y3Rpb24uCi0tICAkYWNfY3Nfc3VjY2VzcyB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLS1maQotLQotSW5kZXg6IGNvbmZpZ3VyZS5pbgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL2NvbmZpZ3VyZS5pbgkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9jb25maWd1cmUuaW4JKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtMjA2LDEwICsyMDYsMTAgQEAKLSBBQ19DSEVDS19IRUFERVIoc3lzL2F1ZGlvaW8uaCwKLSAgICAgICAgICAgICAgIFtBVURJT0RSSVZFUj0ic3VuIgotICAgICAgICAgICAgICAgIEFVRElPREVGUz0tRENTVF9BVURJT19TVU5PU10pCi0tZG5sIEFDX0NIRUNLX0hFQURFUihzeXMvYXNvdW5kbGliLmgsCi0tZG5sICAgICAgICAgICAgICBbQVVESU9EUklWRVI9ImFsc2EiCi0tZG5sCSAgICAgICBBVURJT0RFRlM9LURDU1RfQVVESU9fQUxTQQotLWRubCAgICAgICAgICAgICAgIEFVRElPTElCUz0tbGFzb3VuZF0pCi0rIEFDX0NIRUNLX0hFQURFUihhbHNhL2Fzb3VuZGxpYi5oLAotKyAgICAgICAgICAgICAgW0FVRElPRFJJVkVSPSJhbHNhIgotKwkgICAgICAgQVVESU9ERUZTPS1EQ1NUX0FVRElPX0FMU0EKLSsgICAgICAgICAgICAgICBBVURJT0xJQlM9LWxhc291bmRdKQotIEFDX0NIRUNLX0hFQURFUihtbXN5c3RlbS5oLAotIAkgICAgICBbQVVESU9EUklWRVI9IndpbmNlIgotIAkgICAgICAgQVVESU9ERUZTPS1EQ1NUX0FVRElPX1dJTkNFCi1JbmRleDogc3JjL2hyZy9NYWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9ocmcvTWFrZWZpbGUJKC4uLi9mbGl0ZS0xLjMtb3JpZykJKHJldmlzaW9uIDcpCi0rKysgZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL2hyZy9NYWtlZmlsZQkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC0zOSw5ICszOSwxNCBAQAotIEJVSUxEX0RJUlMgPSAKLSBBTExfRElSUz0gCi0gSCA9IAotK2luY2x1ZGUgJChUT1ApL2NvbmZpZy9jb25maWcKLSBTUkNTID0gY3N0X3V0dGVyYW5jZS5jIGNzdF9yZWxhdGlvbi5jIGNzdF9pdGVtLmMgY3N0X2ZmZWF0dXJlLmMgXAotICAgICAgICBjc3RfcmVsX2lvLmMKLS1PQkpTID0gJChTUkNTOi5jPS5vKQotK2lmZGVmIFNIRkxBR1MKLStPQkpTIDo9ICQoU1JDUzouYz0ub3MpCi0rZWxzZQotK09CSlMgOj0gJChTUkNTOi5jPS5vKQotK2VuZGlmCi0gRklMRVMgPSBNYWtlZmlsZSAkKEgpICQoU1JDUykKLSBMSUJOQU1FID0gZmxpdGUKLSAKLUluZGV4OiBzcmMvdXRpbHMvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvdXRpbHMvTWFrZWZpbGUJKC4uLi9mbGl0ZS0xLjMtb3JpZykJKHJldmlzaW9uIDcpCi0rKysgZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL3V0aWxzL01ha2VmaWxlCSguLi4vcmVsZWFzZS0xLjIpCShyZXZpc2lvbiA3KQotQEAgLTQ0LDggKzQ0LDEzIEBACi0gICAgICAgIGNzdF90b2tlbnN0cmVhbS5jIGNzdF92YWwuYyBjc3RfZmVhdHVyZXMuYyBcCi0gICAgICAgIGNzdF9lbmRpYW4uYyBjc3Rfc29ja2V0LmMgY3N0X3ZhbF9jb25zdC5jIFwKLSAgICAgICAgY3N0X3ZhbF91c2VyLmMgY3N0X2FyZ3MuYyAKLStpZmRlZiBTSEZMQUdTCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm9zKSAkKE1NQVBUWVBFOiU9Y3N0X21tYXBfJS5vcykgXAotKyAgICAgICAgJChTVERJT1RZUEU6JT1jc3RfZmlsZV8lLm9zKQotK2Vsc2UKLSBPQkpTIDo9ICQoU1JDUzouYz0ubykgJChNTUFQVFlQRTolPWNzdF9tbWFwXyUubykgXAotICAgICAgICAgJChTVERJT1RZUEU6JT1jc3RfZmlsZV8lLm8pCi0rZW5kaWYKLSBGSUxFUyA9IE1ha2VmaWxlICQoSCkgJChTUkNTKSBcCi0gCWNzdF9tbWFwX3Bvc2l4LmMgY3N0X21tYXBfd2luMzIuYyBjc3RfbW1hcF9ub25lLmMgXAotIAljc3RfZmlsZV9zdGRpby5jIGNzdF9maWxlX3dpbmNlLmMgY3N0X2ZpbGVfcGFsbW9zLmMKLUluZGV4OiBzcmMvYXVkaW8vYXVfYWxzYS5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL2F1ZGlvL2F1X2Fsc2EuYwkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gMCkKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvYXVkaW8vYXVfYWxzYS5jCSguLi4vcmVsZWFzZS0xLjIpCShyZXZpc2lvbiA3KQotQEAgLTAsMCArMSwzMTEgQEAKLSsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgICAgICAgICAgICAgICAgIExhbmd1YWdlIFRlY2hub2xvZ2llcyBJbnN0aXR1dGUgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgICAgICAgICAgICAgICAgICAgIENhcm5lZ2llIE1lbGxvbiBVbml2ZXJzaXR5ICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgICAgICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMjAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgICAgICAgICAgICAgICAgICAgICAgIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIHVzZSBhbmQgZGlzdHJpYnV0ZSAgKi8KLSsvKiAgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzIGRvY3VtZW50YXRpb24gd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nICAgKi8KLSsvKiAgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCAgKi8KLSsvKiAgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoaXMgd29yaywgYW5kIHRvICAgICAgKi8KLSsvKiAgcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGlzIHdvcmsgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvICAgKi8KLSsvKiAgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgIDEuIFRoZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgICAgKi8KLSsvKiAgICAgIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgIDIuIEFueSBtb2RpZmljYXRpb25zIG11c3QgYmUgY2xlYXJseSBtYXJrZWQgYXMgc3VjaC4gICAgICAgICAgICAgICAgKi8KLSsvKiAgIDMuIE9yaWdpbmFsIGF1dGhvcnMnIG5hbWVzIGFyZSBub3QgZGVsZXRlZC4gICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgIDQuIFRoZSBhdXRob3JzJyBuYW1lcyBhcmUgbm90IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzICAgKi8KLSsvKiAgICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiAgICAgICAgKi8KLSsvKiAgICAgIHBlcm1pc3Npb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgQ0FSTkVHSUUgTUVMTE9OIFVOSVZFUlNJVFkgQU5EIFRIRSBDT05UUklCVVRPUlMgVE8gVEhJUyBXT1JLICAgICAgICAgKi8KLSsvKiAgRElTQ0xBSU0gQUxMIFdBUlJBTlRJRVMgV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSwgSU5DTFVESU5HICAgICAgKi8KLSsvKiAgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MsIElOIE5PIEVWRU5UICAgKi8KLSsvKiAgU0hBTEwgQ0FSTkVHSUUgTUVMTE9OIFVOSVZFUlNJVFkgTk9SIFRIRSBDT05UUklCVVRPUlMgQkUgTElBQkxFICAgICAgKi8KLSsvKiAgRk9SIEFOWSBTUEVDSUFMLCBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgICAgKi8KLSsvKiAgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOICAgKi8KLSsvKiAgQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgICAgICAgICAgKi8KLSsvKiAgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgICAgICAgKi8KLSsvKiAgVEhJUyBTT0ZUV0FSRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KLSsvKiAgICAgICAgICAgICBBdXRob3I6ICBMdWthcyBMb2VocmVyICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgICAgICAgICAgICAgIERhdGU6ICBKYW51YXJ5IDIwMDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgTmF0aXZlIGFjY2VzcyB0byBhbHNhIGF1ZGlvIGRldmljZXMgb24gTGludXggICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKiAgVGVzdGVkIHdpdGggbGliYXNvdW5kIHZlcnNpb24gMS4wLjEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSsKLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHVuaXN0ZC5oPgotKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2luY2x1ZGUgPGVycm5vLmg+Ci0rCi0rI2luY2x1ZGUgImNzdF9zdHJpbmcuaCIKLSsjaW5jbHVkZSAiY3N0X3dhdmUuaCIKLSsjaW5jbHVkZSAiY3N0X2F1ZGlvLmgiCi0rCi0rI2luY2x1ZGUgPGFsc2EvYXNvdW5kbGliLmg+Ci0rCi0rCi0rLypzdGF0aWMgY2hhciAqcGNtX2Rldl9uYW1lID0gImh3OjAsMCI7ICovCi0rc3RhdGljIGNoYXIgKnBjbV9kZXZfbmFtZSA9ImRlZmF1bHQiOwotKwotK3N0YXRpYyBpbmxpbmUgdm9pZCBwcmludF9wY21fc3RhdGUoc25kX3BjbV90ICpoYW5kbGUsIGNoYXIgKm1zZykKLSt7Ci0rICBmcHJpbnRmKHN0ZGVyciwgIlBDTSBzdGF0ZSBhdCAlcyA9ICVzXG4iLCBtc2csCi0rCQkgIHNuZF9wY21fc3RhdGVfbmFtZShzbmRfcGNtX3N0YXRlKGhhbmRsZSkpKTsKLSt9Ci0rCi0rY3N0X2F1ZGlvZGV2ICphdWRpb19vcGVuX2Fsc2EoaW50IHNwcywgaW50IGNoYW5uZWxzLCBjc3RfYXVkaW9mbXQgZm10KQotK3sKLSsgIGNzdF9hdWRpb2RldiAqYWQ7Ci0rICB1bnNpZ25lZCAJaW50IHJlYWxfcmF0ZTsKLSsgIGludCBlcnI7Ci0rCi0rICAvKiBhbHNhIHNwZWNpZmljIHN0dWZmICovCi0rICBzbmRfcGNtX3QgKnBjbV9oYW5kbGU7ICAgICAgICAgIAotKyAgc25kX3BjbV9zdHJlYW1fdCBzdHJlYW0gPSBTTkRfUENNX1NUUkVBTV9QTEFZQkFDSzsKLSsgIHNuZF9wY21faHdfcGFyYW1zX3QgKmh3cGFyYW1zOwotKyAgc25kX3BjbV9mb3JtYXRfdCBmb3JtYXQ7Ci0rICBzbmRfcGNtX2FjY2Vzc190IGFjY2VzcyA9IFNORF9QQ01fQUNDRVNTX1JXX0lOVEVSTEVBVkVEOwotKwotKyAgLyogQWxsb2NhdGUgdGhlIHNuZF9wY21faHdfcGFyYW1zX3Qgc3RydWN0dXJlIG9uIHRoZSBzdGFjay4gKi8KLSsgIHNuZF9wY21faHdfcGFyYW1zX2FsbG9jYSgmaHdwYXJhbXMpOwotKwotKyAgLyogT3BlbiBwY20gZGV2aWNlICovCi0rICBlcnIgPSBzbmRfcGNtX29wZW4oJnBjbV9oYW5kbGUsIHBjbV9kZXZfbmFtZSwgc3RyZWFtLCAwKTsKLSsgIGlmIChlcnIgPCAwKSAKLSsgIHsKLSsJY3N0X2Vycm1zZygiYXVkaW9fb3Blbl9hbHNhOiBmYWlsZWQgdG8gb3BlbiBhdWRpbyBkZXZpY2UgJXMuICVzXG4iLAotKwkJCSAgIHBjbV9kZXZfbmFtZSwgc25kX3N0cmVycm9yKGVycikpOwotKwlyZXR1cm4gTlVMTDsKLSsgIH0KLSsKLSsgIC8qIEluaXQgaHdwYXJhbXMgd2l0aCBmdWxsIGNvbmZpZ3VyYXRpb24gc3BhY2UgKi8KLSsgIGVyciA9IHNuZF9wY21faHdfcGFyYW1zX2FueShwY21faGFuZGxlLCBod3BhcmFtcyk7Ci0rICBpZiAoZXJyIDwgMCkgCi0rICB7Ci0rCXNuZF9wY21fY2xvc2UocGNtX2hhbmRsZSk7Ci0rCWNzdF9lcnJtc2coImF1ZGlvX29wZW5fYWxzYTogZmFpbGVkIHRvIGdldCBoYXJkd2FyZSBwYXJhbWV0ZXJzIGZyb20gYXVkaW8gZGV2aWNlLiAlc1xuIiwgc25kX3N0cmVycm9yKGVycikpOwotKwlyZXR1cm4gTlVMTDsKLSsgIH0KLSsKLSsgIC8qIFNldCBhY2Nlc3MgbW9kZSAqLwotKyAgZXJyID0gc25kX3BjbV9od19wYXJhbXNfc2V0X2FjY2VzcyhwY21faGFuZGxlLCBod3BhcmFtcywgYWNjZXNzKTsKLSsgIGlmIChlcnIgPCAwKSAKLSsgIHsKLSsJc25kX3BjbV9jbG9zZShwY21faGFuZGxlKTsKLSsJY3N0X2Vycm1zZygiYXVkaW9fb3Blbl9hbHNhOiBmYWlsZWQgdG8gc2V0IGFjY2VzcyBtb2RlLiAlcy5cbiIsIHNuZF9zdHJlcnJvcihlcnIpKTsKLSsJcmV0dXJuIE5VTEw7Ci0rICB9Ci0rCi0rICAvKiBEZXRlcm1pbmUgbWF0Y2hpbmcgYWxzYSBzYW1wbGUgZm9ybWF0ICovCi0rICAvKiBUaGlzIGNvdWxkIGJlIGltcGxlbWVudGVkIGluIGEgbW9yZSAqLwotKyAgLyogZmxleGlibGUgd2F5IChieXRlIG9yZGVyIGNvbnZlcnNpb24pLiAqLwotKyAgc3dpdGNoIChmbXQpCi0rICB7Ci0rICBjYXNlIENTVF9BVURJT19MSU5FQVIxNjoKLSsJaWYgKENTVF9MSVRUTEVfRU5ESUFOKQotKwkgIGZvcm1hdCA9IFNORF9QQ01fRk9STUFUX1MxNl9MRTsKLSsJZWxzZQotKwkgIGZvcm1hdCA9IFNORF9QQ01fRk9STUFUX1MxNl9CRTsKLSsJYnJlYWs7Ci0rICBjYXNlIENTVF9BVURJT19MSU5FQVI4OgotKwlmb3JtYXQgPSBTTkRfUENNX0ZPUk1BVF9VODsKLSsJYnJlYWs7Ci0rICBjYXNlIENTVF9BVURJT19NVUxBVzoKLSsJZm9ybWF0ID0gU05EX1BDTV9GT1JNQVRfTVVfTEFXOwotKwlicmVhazsKLSsgIGRlZmF1bHQ6Ci0rCXNuZF9wY21fY2xvc2UocGNtX2hhbmRsZSk7Ci0rCWNzdF9lcnJtc2coImF1ZGlvX29wZW5fYWxzYTogZmFpbGVkIHRvIGZpbmQgc3VpdGFibGUgZm9ybWF0LlxuIik7Ci0rCXJldHVybiBOVUxMOwotKwlicmVhazsKLSsgIH0KLSsKLSsgIC8qIFNldCBzYW1ibGUgZm9ybWF0ICovCi0rICBlcnIgPSBzbmRfcGNtX2h3X3BhcmFtc19zZXRfZm9ybWF0KHBjbV9oYW5kbGUsIGh3cGFyYW1zLCBmb3JtYXQpOwotKyAgaWYgKGVyciA8MCkgCi0rICB7Ci0rCXNuZF9wY21fY2xvc2UocGNtX2hhbmRsZSk7Ci0rCWNzdF9lcnJtc2coImF1ZGlvX29wZW5fYWxzYTogZmFpbGVkIHRvIHNldCBmb3JtYXQuICVzLlxuIiwgc25kX3N0cmVycm9yKGVycikpOwotKwlyZXR1cm4gTlVMTDsKLSsgIH0KLSsKLSsgIC8qIFNldCBzYW1wbGUgcmF0ZSBuZWFyIHRoZSBkaXNpcmVkIHJhdGUgKi8KLSsgIHJlYWxfcmF0ZSA9IHNwczsKLSsgIGVyciA9IHNuZF9wY21faHdfcGFyYW1zX3NldF9yYXRlX25lYXIocGNtX2hhbmRsZSwgaHdwYXJhbXMsICZyZWFsX3JhdGUsIDApOwotKyAgaWYgKGVyciA8IDApICAgCi0rICB7Ci0rCXNuZF9wY21fY2xvc2UocGNtX2hhbmRsZSk7Ci0rCWNzdF9lcnJtc2coImF1ZGlvX29wZW5fYWxzYTogZmFpbGVkIHRvIHNldCBzYW1wbGUgcmF0ZSBuZWFyICVkLiAlcy5cbiIsIHNwcywgc25kX3N0cmVycm9yKGVycikpOwotKwlyZXR1cm4gTlVMTDsKLSsgIH0KLSsgIC8qRklYTUU6ICBUaGlzIGlzIHByb2JhYmx5IHRvbyBzdHJpY3QgKi8KLSsgIGFzc2VydChzcHMgPT0gcmVhbF9yYXRlKTsKLSsKLSsgIC8qIFNldCBudW1iZXIgb2YgY2hhbm5lbHMgKi8KLSsgIGFzc2VydChjaGFubmVscyA+MCk7Ci0rICBlcnIgPSBzbmRfcGNtX2h3X3BhcmFtc19zZXRfY2hhbm5lbHMocGNtX2hhbmRsZSwgaHdwYXJhbXMsIGNoYW5uZWxzKTsKLSsgIGlmIChlcnIgPCAwKSAKLSsgIHsKLSsJc25kX3BjbV9jbG9zZShwY21faGFuZGxlKTsKLSsJY3N0X2Vycm1zZygiYXVkaW9fb3Blbl9hbHNhOiBmYWlsZWQgdG8gc2V0IG51bWJlciBvZiBjaGFubmVscyB0byAlZC4gJXMuXG4iLCBjaGFubmVscywgc25kX3N0cmVycm9yKGVycikpOwotKwlyZXR1cm4gTlVMTDsKLSsgIH0KLSsKLSsgIC8qIENvbW1pdCBoYXJkd2FyZSBwYXJhbWV0ZXJzICovCi0rICBlcnIgPSBzbmRfcGNtX2h3X3BhcmFtcyhwY21faGFuZGxlLCBod3BhcmFtcyk7Ci0rICBpZiAoZXJyIDwgMCkgCi0rICB7Ci0rCXNuZF9wY21fY2xvc2UocGNtX2hhbmRsZSk7Ci0rCWNzdF9lcnJtc2coImF1ZGlvX29wZW5fYWxzYTogZmFpbGVkIHRvIHNldCBodyBwYXJhbWV0ZXJzLiAlcy5cbiIsIHNuZF9zdHJlcnJvcihlcnIpKTsKLSsJcmV0dXJuIE5VTEw7Ci0rICB9Ci0rCi0rICAvKiBNYWtlIHN1cmUgdGhlIGRldmljZSBpcyByZWFkeSB0byBhY2NlcHQgZGF0YSAqLwotKyAgYXNzZXJ0KHNuZF9wY21fc3RhdGUocGNtX2hhbmRsZSkgPT0gU05EX1BDTV9TVEFURV9QUkVQQVJFRCk7Ci0rCi0rICAvKiBXcml0ZSBoYXJkd2FyZSBwYXJhbWV0ZXJzIHRvIGZsaXRlIGF1ZGlvIGRldmljZSBkYXRhIHN0cnVjdHVyZSAqLwotKyAgYWQgPSBjc3RfYWxsb2MoY3N0X2F1ZGlvZGV2LCAxKTsKLSsgIGFzc2VydChhZCAhPSBOVUxMKTsKLSsgIGFkLT5yZWFsX3NwcyA9IGFkLT5zcHMgPSBzcHM7Ci0rICBhZC0+cmVhbF9jaGFubmVscyA9IGFkLT5jaGFubmVscyA9IGNoYW5uZWxzOwotKyAgYWQtPnJlYWxfZm10ID0gYWQtPmZtdCA9IGZtdDsKLSsgIGFkLT5wbGF0Zm9ybV9kYXRhID0gKHZvaWQgKikgcGNtX2hhbmRsZTsKLSsKLSsgIHJldHVybiBhZDsKLSt9Ci0rCi0raW50IGF1ZGlvX2Nsb3NlX2Fsc2EoY3N0X2F1ZGlvZGV2ICphZCkKLSt7Ci0rICBpbnQgcmVzdWx0OwotKyAgc25kX3BjbV90ICpwY21faGFuZGxlOwotKwotKyAgaWYgKGFkID09IE5VTEwpCi0rCXJldHVybiAwOwotKwotKyAgcGNtX2hhbmRsZSA9IChzbmRfcGNtX3QgKikgYWQtPnBsYXRmb3JtX2RhdGE7Ci0rICByZXN1bHQgPSBzbmRfcGNtX2Nsb3NlKHBjbV9oYW5kbGUpOwotKyAgaWYgKHJlc3VsdCA8IDApCi0rICB7Ci0rCWNzdF9lcnJtc2coImF1ZGlvX2Nsb3NlX2Fsc2E6IEVycm9yOiAlcy5cbiIsIHNuZF9zdHJlcnJvcihyZXN1bHQpKTsKLSsgIH0KLSsgIGNzdF9mcmVlKGFkKTsKLSsgIHJldHVybiByZXN1bHQ7Ci0rfQotKwotKy8qIFJldHVybnMgemVybyBpZiByZWNvdmVyeSB3YXMgc3VjY2Vzc2Z1bC4gKi8KLStzdGF0aWMgaW50IHJlY292ZXJfZnJvbV9lcnJvcihzbmRfcGNtX3QgKnBjbV9oYW5kbGUsIHNzaXplX3QgcmVzKQotK3sKLSsgIGlmIChyZXMgPT0gLUVQSVBFKSAvKiB4cnVuICovCi0rICB7Ci0rCXJlcyA9IHNuZF9wY21fcHJlcGFyZShwY21faGFuZGxlKTsKLSsJaWYgKHJlcyA8IDApIAotKwl7Ci0rCSAgLyogRmFpbGVkIHRvIHJlY292ZXIgZnJvbSB4cnVuICovCi0rCSAgY3N0X2Vycm1zZygicmVjb3Zlcl9mcm9tX3dyaXRlX2Vycm9yOiBmYWlsZWQgdG8gcmVjb3ZlciBmcm9tIHhydW4uICVzXG4uIiwgc25kX3N0cmVycm9yKHJlcykpOwotKwkgIHJldHVybiByZXM7Ci0rCX0KLSsgIH0gCi0rICBlbHNlIGlmIChyZXMgPT0gLUVTVFJQSVBFKSAvKiBTdXNwZW5kICovCi0rICB7Ci0rCXdoaWxlICgocmVzID0gc25kX3BjbV9yZXN1bWUocGNtX2hhbmRsZSkpID09IC1FQUdBSU4pIAotKwl7Ci0rCSAgc25kX3BjbV93YWl0KHBjbV9oYW5kbGUsIDEwMDApOwotKwl9Ci0rCWlmIChyZXMgPCAwKSAKLSsJewotKwkgIHJlcyA9IHNuZF9wY21fcHJlcGFyZShwY21faGFuZGxlKTsKLSsJICBpZiAocmVzIDwwKSAKLSsJICB7Ci0rCQkvKiBSZXN1bWUgZmFpbGVkICovCi0rCQljc3RfZXJybXNnKCJhdWRpb19yZWNvdmVyX2Zyb21fd3JpdGVfZXJyb3I6IGZhaWxlZCB0byByZXN1bWUgYWZ0ZXIgc3VzcGVuZC4gJXNcbi4iLCBzbmRfc3RyZXJyb3IocmVzKSk7Ci0rCQlyZXR1cm4gcmVzOwotKwkgIH0KLSsJfQotKyAgfSAKLSsgIGVsc2UgaWYgKHJlcyA8IDApIAotKyAgewotKwkvKiBVbmtub3duIGZhaWx1cmUgKi8KLSsJY3N0X2Vycm1zZygiYXVkaW9fcmVjb3Zlcl9mcm9tX3dyaXRlX2Vycm9yOiAlcy5cbiIsIHNuZF9zdHJlcnJvcihyZXMpKTsKLSsJcmV0dXJuIHJlczsKLSsgIH0KLSsgIHJldHVybiAwOwotK30KLSsKLStpbnQgYXVkaW9fd3JpdGVfYWxzYShjc3RfYXVkaW9kZXYgKmFkLCB2b2lkICpzYW1wbGVzLCBpbnQgbnVtX2J5dGVzKQotK3sKLSsgIHNpemVfdCBmcmFtZV9zaXplOwotKyAgc3NpemVfdCBudW1fZnJhbWVzLCByZXM7Ci0rICBzbmRfcGNtX3QgKnBjbV9oYW5kbGU7Ci0rICBjaGFyICpidWYgPSAoY2hhciAqKSBzYW1wbGVzOwotKwotKyAgLyogRGV0ZXJtaW5lIGZyYW1lIHNpemUgaW4gYnl0ZXMgKi8KLSsgIGZyYW1lX3NpemUgID0gYXVkaW9fYnBzKGFkLT5yZWFsX2ZtdCkgKiBhZC0+cmVhbF9jaGFubmVsczsKLSsgIC8qIFJlcXVpcmUgdGhhdCBvbmx5IGNvbXBsZXRlIGZyYW1lcyBhcmUgaGFuZGVkIGluICovCi0rICBhc3NlcnQoKG51bV9ieXRlcyAlIGZyYW1lX3NpemUpID09IDApOwotKyAgbnVtX2ZyYW1lcyA9IG51bV9ieXRlcyAvIGZyYW1lX3NpemU7Ci0rICBwY21faGFuZGxlID0gKHNuZF9wY21fdCAqKSBhZC0+cGxhdGZvcm1fZGF0YTsKLSsKLSsgIHdoaWxlIChudW1fZnJhbWVzID4gMCkgCi0rICB7Ci0rCXJlcyA9IHNuZF9wY21fd3JpdGVpKHBjbV9oYW5kbGUsIGJ1ZiwgbnVtX2ZyYW1lcyk7Ci0rCWlmIChyZXMgIT0gbnVtX2ZyYW1lcykgCi0rCXsKLSsJICBpZiAocmVzID09IC1FQUdBSU4gfHwgKHJlcyA+IDAgJiYgcmVzIDwgbnVtX2ZyYW1lcykpIAotKwkgIHsKLSsJCXNuZF9wY21fd2FpdChwY21faGFuZGxlLCAxMDApOwotKwkgIH0KLSsJICBlbHNlIGlmIChyZWNvdmVyX2Zyb21fZXJyb3IocGNtX2hhbmRsZSwgcmVzKSA8IDApIAotKwkgIHsKLSsJCXJldHVybiAtMTsKLSsJICB9Ci0rCX0KLSsKLSsJaWYgKHJlcyA+MCkgCi0rCXsKLSsJICBudW1fZnJhbWVzIC09IHJlczsKLSsJICBidWYgKz0gcmVzICogZnJhbWVfc2l6ZTsKLSsJfQotKyAgfQotKyAgcmV0dXJuIG51bV9ieXRlczsKLSt9Ci0rCi0raW50IGF1ZGlvX2ZsdXNoX2Fsc2EoY3N0X2F1ZGlvZGV2ICphZCkKLSt7Ci0rICBpbnQgcmVzdWx0OwotKyAgcmVzdWx0ID0gc25kX3BjbV9kcmFpbigoc25kX3BjbV90ICopIGFkLT5wbGF0Zm9ybV9kYXRhKTsKLSsgIGlmIChyZXN1bHQgPCAwKQotKyAgewotKwljc3RfZXJybXNnKCJhdWRpb19mbHVzaF9hbHNhOiBFcnJvcjogJXMuXG4iLCBzbmRfc3RyZXJyb3IocmVzdWx0KSk7Ci0rICB9Ci0rCS8qIFByZXBhcmUgZGV2aWNlIGZvciBtb3JlIGRhdGEgKi8KLSsgIHJlc3VsdCA9IHNuZF9wY21fcHJlcGFyZSgoc25kX3BjbV90ICopIGFkLT5wbGF0Zm9ybV9kYXRhKTsKLStpZiAocmVzdWx0IDwgMCkKLSsgIHsKLSsJY3N0X2Vycm1zZygiYXVkaW9fZmx1c2hfYWxzYTogRXJyb3I6ICVzLlxuIiwgc25kX3N0cmVycm9yKHJlc3VsdCkpOwotKyAgfQotKyAgcmV0dXJuIHJlc3VsdDsKLSt9Ci0rCi0raW50IGF1ZGlvX2RyYWluX2Fsc2EoY3N0X2F1ZGlvZGV2ICphZCkKLSt7Ci0rICBpbnQgcmVzdWx0OwotKyAgcmVzdWx0ID0gc25kX3BjbV9kcm9wKChzbmRfcGNtX3QgKikgYWQtPnBsYXRmb3JtX2RhdGEpOwotKyAgaWYgKHJlc3VsdCA8IDApCi0rICB7Ci0rCWNzdF9lcnJtc2coImF1ZGlvX2RyYWluX2Fsc2E6IEVycm9yOiAlcy5cbiIsIHNuZF9zdHJlcnJvcihyZXN1bHQpKTsKLSsgIH0KLSsvKiBQcmVwYXJlIGRldmljZSBmb3IgbW9yZSBkYXRhICovCi0rICByZXN1bHQgPSBzbmRfcGNtX3ByZXBhcmUoKHNuZF9wY21fdCAqKSBhZC0+cGxhdGZvcm1fZGF0YSk7Ci0raWYgKHJlc3VsdCA8IDApCi0rICB7Ci0rCWNzdF9lcnJtc2coImF1ZGlvX2RyYWluX2Fsc2E6IEVycm9yOiAlcy5cbiIsIHNuZF9zdHJlcnJvcihyZXN1bHQpKTsKLSsgIH0KLSsgIHJldHVybiByZXN1bHQ7Ci0rfQotSW5kZXg6IHNyYy9hdWRpby9NYWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9hdWRpby9NYWtlZmlsZQkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvYXVkaW8vTWFrZWZpbGUJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtNDMsOSArNDMsMTMgQEAKLSAKLSBCQVNFU1JDUyA9IGF1Y2xpZW50LmMgYXVzZXJ2ZXIuYyBhdWRpby5jIAotIFNSQ1MgPSAkKEJBU0VTUkNTKSAkKEFVRElPRFJJVkVSOiU9YXVfJS5jKQotLU9CSlMgPSAkKFNSQ1M6LmM9Lm8pCi0raWZkZWYgU0hGTEFHUwotK09CSlMgOj0gJChTUkNTOi5jPS5vcykKLStlbHNlCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm8pCi0rZW5kaWYKLSBGSUxFUyA9IE1ha2VmaWxlICQoSCkgJChCQVNFU1JDUykgYXVfY29tbWFuZC5jIGF1X25vbmUuYyBcCi0tCWF1X29zcy5jIGF1X3N1bi5jIGF1X3dpbmNlLmMgYXVfcGFsbW9zLmMKLSsJYXVfb3NzLmMgYXVfc3VuLmMgYXVfd2luY2UuYyBhdV9wYWxtb3MuYyBhdV9hbHNhLmMKLSBMSUJOQU1FID0gZmxpdGUKLSAKLSBMT0NBTF9JTkNMVURFUyA9IC1JLiAkKEFVRElPREVGUykKLUluZGV4OiBzcmMvbGV4aWNvbi9NYWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9sZXhpY29uL01ha2VmaWxlCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9sZXhpY29uL01ha2VmaWxlCSguLi4vcmVsZWFzZS0xLjIpCShyZXZpc2lvbiA3KQotQEAgLTM4LDggKzM4LDEzIEBACi0gRElSTkFNRT1zcmMvbGV4aWNvbgotIEJVSUxEX0RJUlMgPSAKLSBBTExfRElSUz0gCi0raW5jbHVkZSAkKFRPUCkvY29uZmlnL2NvbmZpZwotIFNSQ1MgPSBjc3RfbGV4aWNvbi5jIGNzdF9sdHMuYyBjc3RfbHRzX3Jld3JpdGVzLmMKLS1PQkpTID0gJChTUkNTOi5jPS5vKQotK2lmZGVmIFNIRkxBR1MKLStPQkpTIDo9ICQoU1JDUzouYz0ub3MpCi0rZWxzZQotK09CSlMgOj0gJChTUkNTOi5jPS5vKQotK2VuZGlmCi0gRklMRVMgPSBNYWtlZmlsZSAkKFNSQ1MpCi0gTElCTkFNRSA9IGZsaXRlCi0gCi1JbmRleDogc3JjL3N5bnRoL01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL3N5bnRoL01ha2VmaWxlCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9zeW50aC9NYWtlZmlsZQkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC0zOCw5ICszOCwxNCBAQAotIERJUk5BTUU9c3JjL3N5bnRoCi0gQlVJTERfRElSUyA9IAotIEFMTF9ESVJTPSAKLStpbmNsdWRlICQoVE9QKS9jb25maWcvY29uZmlnCi0gU1JDUyA9IGNzdF9zeW50aC5jIGNzdF91dHRfdXRpbHMuYyBjc3Rfdm9pY2UuYyBjc3RfcGhvbmVzZXQuYyBcCi0gICAgICAgIGZsaXRlLmMgCi0tT0JKUyA9ICQoU1JDUzouYz0ubykKLStpZmRlZiBTSEZMQUdTCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm9zKQotK2Vsc2UKLStPQkpTIDo9ICQoU1JDUzouYz0ubykKLStlbmRpZgotIEZJTEVTID0gTWFrZWZpbGUgJChTUkNTKQotIExJQk5BTUUgPSBmbGl0ZQotIAotSW5kZXg6IHNyYy9zcGVlY2gvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvc3BlZWNoL01ha2VmaWxlCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9zcGVlY2gvTWFrZWZpbGUJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtMzksOSArMzksMTQgQEAKLSBCVUlMRF9ESVJTID0gCi0gQUxMX0RJUlM9IAotIEggPSAKLStpbmNsdWRlICQoVE9QKS9jb25maWcvY29uZmlnCi0gU1JDUyA9IGNzdF93YXZlLmMgY3N0X3dhdmVfaW8uYyBjc3RfdHJhY2suYyBjc3RfdHJhY2tfaW8uYyBcCi0gICAgICAgIGNzdF93YXZlX3V0aWxzLmMgY3N0X2xwY3Jlcy5jIHJhdGVjb252LmMKLS1PQkpTID0gJChTUkNTOi5jPS5vKQotK2lmZGVmIFNIRkxBR1MKLStPQkpTIDo9ICQoU1JDUzouYz0ub3MpCi0rZWxzZQotK09CSlMgOj0gJChTUkNTOi5jPS5vKQotK2VuZGlmCi0gRklMRVMgPSBNYWtlZmlsZSAkKEgpICQoU1JDUykKLSBMSUJOQU1FID0gZmxpdGUKLSAKLUluZGV4OiBzcmMvd2F2ZXN5bnRoL01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL3dhdmVzeW50aC9NYWtlZmlsZQkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvd2F2ZXN5bnRoL01ha2VmaWxlCSguLi4vcmVsZWFzZS0xLjIpCShyZXZpc2lvbiA3KQotQEAgLTM4LDkgKzM4LDE0IEBACi0gRElSTkFNRT1zcmMvd2F2ZXN5bnRoCi0gQlVJTERfRElSUyA9IAotIEFMTF9ESVJTPQotK2luY2x1ZGUgJChUT1ApL2NvbmZpZy9jb25maWcKLSBTUkNTID0gY3N0X3VuaXRzLmMgY3N0X3NpZ3ByLmMgY3N0X2NsdW5pdHMuYyBjc3RfZGlwaG9uZS5jIFwKLSAgICAgICAgY3N0X3NpZ3ByRlAuYyBjc3Rfc3RzLmMgY3N0X3JlZmxwYy5jCi0tT0JKUyA9ICQoU1JDUzouYz0ubykKLStpZmRlZiBTSEZMQUdTCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm9zKQotK2Vsc2UKLStPQkpTIDo9ICQoU1JDUzouYz0ubykKLStlbmRpZgotIExJQk5BTUUgPSBmbGl0ZQotIEZJTEVTID0gTWFrZWZpbGUgJChTUkNTKQotIAotSW5kZXg6IHNyYy9yZWdleC9NYWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9yZWdleC9NYWtlZmlsZQkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvcmVnZXgvTWFrZWZpbGUJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtNDIsOCArNDIsMTMgQEAKLSBESVJOQU1FPXNyYy9yZWdleAotIEJVSUxEX0RJUlMgPSAKLSBBTExfRElSUz0gCi0raW5jbHVkZSAkKFRPUCkvY29uZmlnL2NvbmZpZwotIFNSQ1MgPSBjc3RfcmVnZXguYyByZWdleHAuYyByZWdzdWIuYwotLU9CSlMgPSAkKFNSQ1M6LmM9Lm8pCi0raWZkZWYgU0hGTEFHUwotK09CSlMgOj0gJChTUkNTOi5jPS5vcykKLStlbHNlCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm8pCi0rZW5kaWYKLSBGSUxFUyA9IE1ha2VmaWxlICQoSCkgJChTUkNTKQotIExJQk5BTUUgPSBmbGl0ZQotIAotSW5kZXg6IHNyYy9zdGF0cy9NYWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9zdGF0cy9NYWtlZmlsZQkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvc3RhdHMvTWFrZWZpbGUJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtMzksOCArMzksMTMgQEAKLSBCVUlMRF9ESVJTID0gCi0gQUxMX0RJUlM9IAotIEggPSAKLStpbmNsdWRlICQoVE9QKS9jb25maWcvY29uZmlnCi0gU1JDUyA9IGNzdF9jYXJ0LmMgY3N0X3ZpdGVyYmkuYyBjc3Rfc3MuYwotLU9CSlMgPSAkKFNSQ1M6LmM9Lm8pCi0raWZkZWYgU0hGTEFHUwotK09CSlMgOj0gJChTUkNTOi5jPS5vcykKLStlbHNlCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm8pCi0rZW5kaWYKLSBGSUxFUyA9IE1ha2VmaWxlICQoSCkgJChTUkNTKQotIExJQk5BTUUgPSBmbGl0ZQotIAotSW5kZXg6IGNvbmZpZy9jb21tb25fbWFrZV9ydWxlcwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL2NvbmZpZy9jb21tb25fbWFrZV9ydWxlcwkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9jb25maWcvY29tbW9uX21ha2VfcnVsZXMJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtNzMsMTIgKzczLDEzIEBACi0gaWZkZWYgU0hGTEFHUwotIFNPT0JKUyA9ICQoT0JKUzoubz0ub3MpCi0gRlVMTFNIT0JKUyA9ICQoU09PQkpTOiU9JChPQkpESVIpLyUpCi0taWZkZWYgTElCTkFNRQotLUFMTCArPSAkKE9CSkRJUikvLmJ1aWxkX3NvCi0rI2lmZGVmIExJQk5BTUUKLSsjQUxMICs9ICQoT0JKRElSKS8uYnVpbGRfc28KLSsjZW5kaWYKLSBlbmRpZgotLWVuZGlmCi0gaWZkZWYgTElCTkFNRQotIEFMTCArPSAkKE9CSkRJUikvLmJ1aWxkX2xpYgotK0FMTCArPSAkKE9CSkRJUikvLmJ1aWxkX3NvCi0gZW5kaWYKLSAjIE9ubHkgZG8gc29tZSBkaXJlY3RvcmllcyB3aGVuIHlvdSBhcmUgbm90IGNyb3NzIGNvbXBpbGluZwotIGlmZXEgKCQoSE9TVF9QTEFURk9STSksJChUQVJHRVRfUExBVEZPUk0pKQotQEAgLTExNywxNCArMTE4LDE3IEBACi0gCUAgdG91Y2ggJChPQkpESVIpLy5idWlsZF9zbwotIAotICMgVXNlZCBpbiB0aGUgbGliLyBkaXJlY3RvcnkgYW5kIGluIGJ1aWxkaW5nIG5ldyB2b2ljZXMKLS0kKE9CSkRJUikvJS5zbzogJS5zaGFyZWQuYQotKyMkKE9CSkRJUikvJS5zbzogJS5zaGFyZWQuYQotKyUuc286ICUuc2hhcmVkLmEKLSAJQCBlY2hvIG1ha2luZyAkQAotIAlAIHJtIC1yZiBzaGFyZWRfb3MgJiYgbWtkaXIgc2hhcmVkX29zCi0gCUAgcm0gLWYgJEAgJChMSUJESVIpLyRALiR7UFJPSkVDVF9WRVJTSU9OfSAkKExJQkRJUikvJEAuJHtQUk9KRUNUX1NITElCX1ZFUlNJT059IAotIAlAIChjZCBzaGFyZWRfb3MgJiYgYXIgeCAuLi8kPCkKLSAJQCAoY2Qgc2hhcmVkX29zICYmICQoQ0MpIC1zaGFyZWQgLVdsLC1zb25hbWUsJEAuJHtQUk9KRUNUX1NITElCX1ZFUlNJT059IC1vIC4uLyRALiR7UFJPSkVDVF9WRVJTSU9OfSAqLm9zKQotLQlAIGxuIC1zICQoTElCRElSKS8kQC4ke1BST0pFQ1RfVkVSU0lPTn0gJChMSUJESVIpLyRALiR7UFJPSkVDVF9TSExJQl9WRVJTSU9OfQotLQlAIGxuIC1zICQoTElCRElSKS8kQC4ke1BST0pFQ1RfU0hMSUJfVkVSU0lPTn0gJChMSUJESVIpLyRACi0rCSNAIGxuIC1zICQoTElCRElSKS8kQC4ke1BST0pFQ1RfVkVSU0lPTn0gJChMSUJESVIpLyRALiR7UFJPSkVDVF9TSExJQl9WRVJTSU9OfQotKwkjQCBsbiAtcyAkKExJQkRJUikvJEAuJHtQUk9KRUNUX1NITElCX1ZFUlNJT059ICQoTElCRElSKS8kQAotKwlAIGxuIC1zICRALiR7UFJPSkVDVF9WRVJTSU9OfSAkQC4ke1BST0pFQ1RfU0hMSUJfVkVSU0lPTn0KLSsJQCBsbiAtcyAkQC4ke1BST0pFQ1RfU0hMSUJfVkVSU0lPTn0gJEAKLSAJQCBybSAtcmYgc2hhcmVkX29zCi0gCi0gJChPQkpESVIpLy5tYWtlX2J1aWxkX2RpcnM6Ci1JbmRleDogbGliL01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2UvbGliL01ha2VmaWxlCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiAwKQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL2xpYi9NYWtlZmlsZQkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC0wLDAgKzEsNzAgQEAKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsjIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgICAgICAgICAgICAgICAgIExhbmd1YWdlIFRlY2hub2xvZ2llcyBJbnN0aXR1dGUgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgICAgICAgICAgICAgICAgICAgIENhcm5lZ2llIE1lbGxvbiBVbml2ZXJzaXR5ICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgICAgICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5OSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgICAgICAgICAgICAgICAgICAgICAgIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIHVzZSBhbmQgZGlzdHJpYnV0ZSAgIyMKLSsjIyAgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzIGRvY3VtZW50YXRpb24gd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nICAgIyMKLSsjIyAgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCAgIyMKLSsjIyAgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoaXMgd29yaywgYW5kIHRvICAgICAgIyMKLSsjIyAgcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGlzIHdvcmsgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvICAgIyMKLSsjIyAgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgIDEuIFRoZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgICAgIyMKLSsjIyAgICAgIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgIDIuIEFueSBtb2RpZmljYXRpb25zIG11c3QgYmUgY2xlYXJseSBtYXJrZWQgYXMgc3VjaC4gICAgICAgICAgICAgICAgIyMKLSsjIyAgIDMuIE9yaWdpbmFsIGF1dGhvcnMnIG5hbWVzIGFyZSBub3QgZGVsZXRlZC4gICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgIDQuIFRoZSBhdXRob3JzJyBuYW1lcyBhcmUgbm90IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzICAgIyMKLSsjIyAgICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiAgICAgICAgIyMKLSsjIyAgICAgIHBlcm1pc3Npb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgQ0FSTkVHSUUgTUVMTE9OIFVOSVZFUlNJVFkgQU5EIFRIRSBDT05UUklCVVRPUlMgVE8gVEhJUyBXT1JLICAgICAgICAgIyMKLSsjIyAgRElTQ0xBSU0gQUxMIFdBUlJBTlRJRVMgV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSwgSU5DTFVESU5HICAgICAgIyMKLSsjIyAgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MsIElOIE5PIEVWRU5UICAgIyMKLSsjIyAgU0hBTEwgQ0FSTkVHSUUgTUVMTE9OIFVOSVZFUlNJVFkgTk9SIFRIRSBDT05UUklCVVRPUlMgQkUgTElBQkxFICAgICAgIyMKLSsjIyAgRk9SIEFOWSBTUEVDSUFMLCBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgICAgIyMKLSsjIyAgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOICAgIyMKLSsjIyAgQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgICAgICAgICAgIyMKLSsjIyAgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgICAgICAgIyMKLSsjIyAgVEhJUyBTT0ZUV0FSRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsjIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgICBGTElURSBsaWJyYXJpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLStUT1A9Li4KLStESVJOQU1FPWxpYgotK0JVSUxEX0RJUlMgPSAKLStBTExfRElSUz0KLStGSUxFUyA9IE1ha2VmaWxlCi0rTElCTkFNRVMgPSBmbGl0ZSBmbGl0ZV9jbXVsZXggZmxpdGVfdXNlbmdsaXNoIFwKLSsgICAgICAgICAgIGZsaXRlX2NtdV91c19rYWwgZmxpdGVfY211X3VzX2thbDE2IGZsaXRlX2NtdV90aW1lX2F3YgotKwotK1NUQVRJQ0xJQlM9ICQoTElCTkFNRVM6JT1saWIlLmEpCi0rU0hBUkVEQVJMSUJTPSAkKExJQk5BTUVTOiU9bGliJS5zaGFyZWQuYSkKLSsjU0hBUkVETElCUyA9ICQoTElCTkFNRVM6JT1saWIlLnNvKQotK1NIQVJFRExJQlMgPSAkKFNIQVJFREFSTElCUzolLnNoYXJlZC5hPSUuc28pCi0rVkVSU0lPTlNIQVJFRExJQlMgPSAkKFNIQVJFRExJQlM6JT0lLiR7UFJPSkVDVF9WRVJTSU9OfSkgXAotKyAgICAgICAgICAgICAgICAgICAgJChTSEFSRURMSUJTOiU9JS4ke1BST0pFQ1RfU0hMSUJfVkVSU0lPTn0pCi0rQUxMX0xJQlMgPSAkKFNUQVRJQ0xJQlMpICQoU0hBUkVETElCUykgJChWRVJTSU9OU0hBUkVETElCUykKLSsKLStBTEwgPSBzaGFyZWRfbGlicwotKwotK0xPQ0FMX0NMRUFOPSouYSAqLnNvICouc28uJHtQUk9KRUNUX1ZFUlNJT059ICouc28uJHtQUk9KRUNUX1NITElCX1ZFUlNJT059Ci0rCi0raW5jbHVkZSAkKFRPUCkvY29uZmlnL2NvbW1vbl9tYWtlX3J1bGVzCi0rCi0raWZkZWYgU0hGTEFHUwotK3NoYXJlZF9saWJzOiAkKFNIQVJFRExJQlMpCi0rZWxzZQotK3NoYXJlZF9saWJzOiBub3RoaW5nCi0rZW5kaWYKLSsKLStpbnN0YWxsOgotKwlAIGNwIC12ZiAkKExJQkRJUikvKiAuCi0rCUAgJChNQUtFKSBzaGFyZWRfbGlicwotKwlAIGVjaG8gQVJMSUJTOiAkKFNIQVJFREFSTElCUykKLSsJQCBlY2hvIFNIQVJMSUJTOiAkKFNIQVJFRExJQlMpCi0rCUAgdGFyIGN2ZiAtICQoQUxMX0xJQlMpIHwgKCBjZCAkKElOU1RBTExMSUJESVIpICYmIHRhciB4ZiAtKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mbHRrL2ZsdGsuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZsdGsvZmx0ay5iYgppbmRleCA2MTlkMTQyLi5lYzllMDRiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZsdGsvZmx0ay5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZsdGsvZmx0ay5iYgpAQCAtMiw3ICsyLDEwIEBACiAKIERFUEVORFMgPSAiYWxzYS1saWIgemxpYiBqcGVnIGxpYnBuZyBsaWJ4ZXh0IGxpYnhmdCIKIAotaW5oZXJpdCBiaW5jb25maWcgbGliX3BhY2thZ2UgZ3RrLWljb24tY2FjaGUgbWltZQoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYmluY29uZmlnIGxpYl9wYWNrYWdlIGd0ay1pY29uLWNhY2hlIG1pbWUKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK1NSQ19VUkkgKz0gImZpbGU6Ly8wMDAzLUNNYWtlLWJ1aWxkLUZvcmNlLXNoYXJlZC1saWJzLXdpdGgtdW5zdWZmaXhlZC1uYW1lcy5wYXRjaCIKIAogRVhUUkFfT0VDTUFLRSA9ICIgXAogICAgIC1ET1BUSU9OX0JVSUxEX1NIQVJFRF9MSUJTPU9OIFwKQEAgLTE1LDYgKzE4LDcgQEAKIFBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdvcGVuZ2wnLCBkKX0iCiAKIFBBQ0tBR0VDT05GSUdbZXhhbXBsZXNdID0gIi1ET1BUSU9OX0JVSUxEX0VYQU1QTEVTPU9OLC1ET1BUSU9OX0JVSUxEX0VYQU1QTEVTPU9GRiwiCitQQUNLQUdFQ09ORklHW2NhaXJvXSA9ICItRE9QVElPTl9DQUlSTz1PTiwtRE9QVElPTl9DQUlSTz1PRkYsY2Fpcm8iCiBQQUNLQUdFQ09ORklHW29wZW5nbF0gPSAiLURPUFRJT05fVVNFX0dMPU9OLC1ET1BUSU9OX1VTRV9HTD1PRkYsdmlydHVhbC9saWJnbCIKIFBBQ0tBR0VDT05GSUdbeGluZXJhbWFdID0gIi1ET1BUSU9OX1VTRV9YSU5FUkFNQT1PTiwtRE9QVElPTl9VU0VfWElORVJBTUE9T0ZGLGxpYnhpbmVyYW1hIgogUEFDS0FHRUNPTkZJR1t4Zml4ZXNdID0gIi1ET1BUSU9OX1VTRV9YRklYRVM9T04sLURPUFRJT05fVVNFX1hGSVhFUz1PRkYsbGlieGZpeGVzIgpAQCAtMzEsNCArMzUsMTIgQEAKIAogTEVBRF9TT05BTUUgPSAibGliZmx0ay5zbyIKIAotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vbWltZSIKKyMgLmRlc2t0b3AgLyBpY29ucyAvIG1pbWUgb25seSBuZWNlc3NhcnkgZm9yIGZsdWlkIGFwcAorRklMRVNfJHtQTn0tYmluICs9ICIgXAorICAgICR7ZGF0YWRpcn0vYXBwbGljYXRpb25zIFwKKyAgICAke2RhdGFkaXJ9L2ljb25zIFwKKyAgICAke2RhdGFkaXJ9L21pbWUgXAorIgorCisjIGNtYWtlIGZpbGVzCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7ZGF0YWRpcn0vZmx0ayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZmx0ay9mbHRrLzAwMDMtQ01ha2UtYnVpbGQtRm9yY2Utc2hhcmVkLWxpYnMtd2l0aC11bnN1ZmZpeGVkLW5hbWVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mbHRrL2ZsdGsvMDAwMy1DTWFrZS1idWlsZC1Gb3JjZS1zaGFyZWQtbGlicy13aXRoLXVuc3VmZml4ZWQtbmFtZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWYyZjhhZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZmx0ay9mbHRrLzAwMDMtQ01ha2UtYnVpbGQtRm9yY2Utc2hhcmVkLWxpYnMtd2l0aC11bnN1ZmZpeGVkLW5hbWVzLnBhdGNoCkBAIC0wLDAgKzEsNDEgQEAKK0Zyb20gYmMzOGZiNDEwNDQ1MDNjOWRlYmY1NzEwOTEwYzUxZGQyOTY3NGI2YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDE1IERlYyAyMDE3IDIyOjE0OjAxICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIENNYWtlIGJ1aWxkOiBGb3JjZSBzaGFyZWQgbGlicyB3aXRoIHVuc3VmZml4ZWQgbmFtZXMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworRm9yIHdpbmRvd3MgYnVpbGQgc2FrZSBDTWFrZSBjb21wbGFpbnMgd2hlbiBhIHByb2plY3Qgd2FudHMgdG8gYnVpbGQgc2hhcmVkIGFuZAorc3RhdGljIGxpYnJhcmllcyB3aXRoIHNhbWUgbmFtZS4gVGhpcyBjYXVzZWQgdGhlIGF1dGhvcnMgb2YgZmx0ayB0byBnZW5lcmF0ZQorbGlicmFyaWVzIHdpdGggbmFtZXMgc3VmZml4ZWQgYnkgJ19TSEFSRUQnIHdoZW4gYnVpbGRpbmcgZmx0ayB3aXRoIGNtYWtlIC0KK2F1dG90b29scyBidWlsZHMgZG8gbm90IHN1ZmZpeC4KKworUmVhc29ucyB0byBidWlsZCBzaGFyZWQgbGlicyB3aXRoIGNvcnJlY3QgbmFtZXM6CisKKyogU2hhcmVkIGxpYnJhcmllcyBhcmUgdGhlIHByZWZlcnJlZCBjaG9pY2UgZm9yIGVtYmVkZGVkIGRldmljZXMKKyogVGhlcmUgYXJlIHByb2plY3RzIChlLmcgeW9zaGltaSkgZXhwZWN0aW5nIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1bnN1ZmZpeGVkCisgIG5hbWVzIC0gYXMgY3JlYXRlZCBieSBhdXRvdG9vbHMgYnVpbGQuIFRoZXNlIHByb2plY3RzIGxpbmsgYWdhaW5zdCBzdGF0aWMKKyAgbGlicmFyaWVzIGJ5IGFjY2lkZW50IGNhdXNpbmcgdW51c2FibGUgYmluYXJpZXMuCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CistLS0KKyBDTWFrZS9tYWNyb3MuY21ha2UgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9DTWFrZS9tYWNyb3MuY21ha2UgYi9DTWFrZS9tYWNyb3MuY21ha2UKK2luZGV4IDRkZWY2MmQuLmFiNjc1ZjAgMTAwNjQ0CistLS0gYS9DTWFrZS9tYWNyb3MuY21ha2UKKysrKyBiL0NNYWtlL21hY3Jvcy5jbWFrZQorQEAgLTQ5LDcgKzQ5LDcgQEAgbWFjcm8oRkxfQUREX0xJQlJBUlkgTElCTkFNRSBMSUJUWVBFIExJQkZJTEVTKQorIAkgICAgUFJPUEVSVElFUworIAkgICAgVkVSU0lPTiAke0ZMVEtfVkVSU0lPTl9GVUxMfQorIAkgICAgU09WRVJTSU9OICR7RkxUS19WRVJTSU9OX01BSk9SfS4ke0ZMVEtfVkVSU0lPTl9NSU5PUn0KKy0JICAgIFBSRUZJWCAibGliIiAgICAjIGZvciBNU1ZDIHN0YXRpYy9zaGFyZWQgY29leGlzdGVuY2UKKysJICAgIE9VVFBVVF9OQU1FICR7TElCTkFNRX0gQ0xFQU5fRElSRUNUX09VVFBVVCAxCisgCSAgICApCisgICAgIGVuZGlmICgke0xJQlRZUEV9IFNUUkVRVUFMICJTSEFSRUQiKQorIAorLS0gCisyLjkuNQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcC8wMDAxLUZpbmRHU3RyZWFtZXJfMV8wLWZpeC1idWlsZC1mYWlsdXJlLWZvci1uZXctZ3N0cmVhbWUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcC8wMDAxLUZpbmRHU3RyZWFtZXJfMV8wLWZpeC1idWlsZC1mYWlsdXJlLWZvci1uZXctZ3N0cmVhbWUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1ZjY0ODUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mcmVlcmRwL2ZyZWVyZHAvMDAwMS1GaW5kR1N0cmVhbWVyXzFfMC1maXgtYnVpbGQtZmFpbHVyZS1mb3ItbmV3LWdzdHJlYW1lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotRnJvbSBiZWEyN2ZkOTE5YjY0ZWU4ZDk3OTk2NDA5ZTI3OWUxZTgzZDEzNTk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmVhbi1Mb3VpcyBEdXBvbmQgPGplYW4tbG91aXNAZHVwb25kLmJlPgotRGF0ZTogU3VuLCA0IE9jdCAyMDE1IDE4OjE3OjMzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpbmRHU3RyZWFtZXJfMV8wOiBmaXggYnVpbGQgZmFpbHVyZSBmb3IgbmV3IGdzdHJlYW1lcgotIHZlcnNpb25zCi0KLS0tLQotIGNtYWtlL0ZpbmRHU3RyZWFtZXJfMV8wLmNtYWtlIHwgMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY21ha2UvRmluZEdTdHJlYW1lcl8xXzAuY21ha2UgYi9jbWFrZS9GaW5kR1N0cmVhbWVyXzFfMC5jbWFrZQotaW5kZXggZjdiZjk5MC4uM2FhOGZjNiAxMDA2NDQKLS0tLSBhL2NtYWtlL0ZpbmRHU3RyZWFtZXJfMV8wLmNtYWtlCi0rKysgYi9jbWFrZS9GaW5kR1N0cmVhbWVyXzFfMC5jbWFrZQotQEAgLTUzLDE3ICs1MywxNyBAQCBzZXQoR1NUUkVBTUVSXzFfMF9NSU5JTVVNX1ZFUlNJT04gMS4wLjUpCi0gIyBIZWxwZXIgbWFjcm8gdG8gZmluZCBhIEdzdHJlYW1lciBwbHVnaW4gKG9yIEdzdHJlYW1lciBpdHNlbGYpCi0gIyAgIF9jb21wb25lbnRfcHJlZml4IGlzIHByZXBlbmRlZCB0byB0aGUgX0lOQ0xVREVfRElSUyBhbmQgX0xJQlJBUklFUyB2YXJpYWJsZXMgKGVnLiAiR1NUUkVBTUVSXzFfMF9BVURJTyIpCi0gIyAgIF9wa2djb25maWdfbmFtZSBpcyB0aGUgY29tcG9uZW50J3MgcGtnLWNvbmZpZyBuYW1lIChlZy4gImdzdHJlYW1lci0xLjAiLCBvciAiZ3N0cmVhbWVyLXZpZGVvLTEuMCIpLgotLSMgICBfaGVhZGVyIGlzIHRoZSBjb21wb25lbnQncyBoZWFkZXIsIHJlbGF0aXZlIHRvIHRoZSBnc3RyZWFtZXItMS4wIGRpcmVjdG9yeSAoZWcuICJnc3QvZ3N0LmgiKS4KLSAjICAgX2xpYnJhcnkgaXMgdGhlIGNvbXBvbmVudCdzIGxpYnJhcnkgbmFtZSAoZWcuICJnc3RyZWFtZXItMS4wIiBvciAiZ3N0dmlkZW8tMS4wIikKLS1tYWNybyhGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQgX2NvbXBvbmVudF9wcmVmaXggX3BrZ2NvbmZpZ19uYW1lIF9oZWFkZXIgX2xpYnJhcnkpCi0rbWFjcm8oRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UIF9jb21wb25lbnRfcHJlZml4IF9wa2djb25maWdfbmFtZSBfbGlicmFyeSkKLSAgICAgIyBGSVhNRTogVGhlIFFVSUVUIGtleXdvcmQgY2FuIGJlIHVzZWQgb25jZSB3ZSByZXF1aXJlIENNYWtlIDIuOC4yLgotLSAgICBwa2dfY2hlY2tfbW9kdWxlcyhQQ18ke19jb21wb25lbnRfcHJlZml4fSAke19wa2djb25maWdfbmFtZX0pCi0gCi0tICAgIGZpbmRfcGF0aCgke19jb21wb25lbnRfcHJlZml4fV9JTkNMVURFX0RJUlMKLS0gICAgICAgIE5BTUVTICR7X2hlYWRlcn0KLS0gICAgICAgIEhJTlRTICR7UENfJHtfY29tcG9uZW50X3ByZWZpeH1fSU5DTFVERV9ESVJTfSAke1BDXyR7X2NvbXBvbmVudF9wcmVmaXh9X0lOQ0xVREVESVJ9Ci0tICAgICAgICBQQVRIX1NVRkZJWEVTIGdzdHJlYW1lci0xLjAKLS0gICAgKQotKyAgICBzdHJpbmcoUkVHRVggTUFUQ0ggIiguKik+PSguKikiIF9kdW1teSAiJHtfcGtnY29uZmlnX25hbWV9IikKLSsgICAgaWYgKCIke0NNQUtFX01BVENIXzJ9IiBTVFJFUVVBTCAiIikKLSsgICAgICAgIHBrZ19jaGVja19tb2R1bGVzKFBDXyR7X2NvbXBvbmVudF9wcmVmaXh9ICIke19wa2djb25maWdfbmFtZX0gPj0gJHtHU3RyZWFtZXJfRklORF9WRVJTSU9OfSIpCi0rICAgIGVsc2UgKCkKLSsgICAgICAgIHBrZ19jaGVja19tb2R1bGVzKFBDXyR7X2NvbXBvbmVudF9wcmVmaXh9ICR7X3BrZ2NvbmZpZ19uYW1lfSkKLSsgICAgZW5kaWYgKCkKLSsgICAgc2V0KCR7X2NvbXBvbmVudF9wcmVmaXh9X0lOQ0xVREVfRElSUyAke1BDXyR7X2NvbXBvbmVudF9wcmVmaXh9X0lOQ0xVREVfRElSU30pCi0gCi0gICAgIGZpbmRfbGlicmFyeSgke19jb21wb25lbnRfcHJlZml4fV9MSUJSQVJJRVMKLSAgICAgICAgIE5BTUVTICR7X2xpYnJhcnl9IGdzdHJlYW1lcl9hbmRyb2lkCi1AQCAtNzgsOCArNzgsOCBAQCBlbmRtYWNybygpCi0gIyAxLjEuIEZpbmQgaGVhZGVycyBhbmQgbGlicmFyaWVzCi0gc2V0KEdMSUJfUk9PVF9ESVIgJHtHU1RSRUFNRVJfMV8wX1JPT1RfRElSfSkKLSBmaW5kX3BhY2thZ2UoR2xpYiBSRVFVSVJFRCkKLS1GSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMCBnc3RyZWFtZXItMS4wIGdzdC9nc3QuaCBnc3RyZWFtZXItMS4wKQotLUZJTkRfR1NUUkVBTUVSX0NPTVBPTkVOVChHU1RSRUFNRVJfMV8wX0JBU0UgZ3N0cmVhbWVyLWJhc2UtMS4wIGdzdC9nc3QuaCBnc3RiYXNlLTEuMCkKLStGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMCBnc3RyZWFtZXItMS4wIGdzdHJlYW1lci0xLjApCi0rRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UKEdTVFJFQU1FUl8xXzBfQkFTRSBnc3RyZWFtZXItYmFzZS0xLjAgZ3N0YmFzZS0xLjApCi0gCi0gIyAxLjIuIENoZWNrIEdzdHJlYW1lciB2ZXJzaW9uCi0gaWYgKEdTVFJFQU1FUl8xXzBfSU5DTFVERV9ESVJTKQotQEAgLTExMCwxMSArMTEwLDExIEBAIGVuZGlmICgpCi0gIyAyLiBGaW5kIEdzdHJlYW1lciBwbHVnaW5zCi0gIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gCi0tRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UKEdTVFJFQU1FUl8xXzBfQVBQIGdzdHJlYW1lci1hcHAtMS4wIGdzdC9hcHAvZ3N0YXBwc2luay5oIGdzdGFwcC0xLjApCi0tRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UKEdTVFJFQU1FUl8xXzBfQVVESU8gZ3N0cmVhbWVyLWF1ZGlvLTEuMCBnc3QvYXVkaW8vYXVkaW8uaCBnc3RhdWRpby0xLjApCi0tRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UKEdTVFJFQU1FUl8xXzBfRkZUIGdzdHJlYW1lci1mZnQtMS4wIGdzdC9mZnQvZ3N0ZmZ0LmggZ3N0ZmZ0LTEuMCkKLS1GSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMF9QQlVUSUxTIGdzdHJlYW1lci1wYnV0aWxzLTEuMCBnc3QvcGJ1dGlscy9wYnV0aWxzLmggZ3N0cGJ1dGlscy0xLjApCi0tRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UKEdTVFJFQU1FUl8xXzBfVklERU8gZ3N0cmVhbWVyLXZpZGVvLTEuMCBnc3QvdmlkZW8vdmlkZW8uaCBnc3R2aWRlby0xLjApCi0rRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UKEdTVFJFQU1FUl8xXzBfQVBQIGdzdHJlYW1lci1hcHAtMS4wIGdzdGFwcC0xLjApCi0rRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UKEdTVFJFQU1FUl8xXzBfQVVESU8gZ3N0cmVhbWVyLWF1ZGlvLTEuMCBnc3RhdWRpby0xLjApCi0rRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UKEdTVFJFQU1FUl8xXzBfRkZUIGdzdHJlYW1lci1mZnQtMS4wIGdzdGZmdC0xLjApCi0rRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UKEdTVFJFQU1FUl8xXzBfUEJVVElMUyBnc3RyZWFtZXItcGJ1dGlscy0xLjAgZ3N0cGJ1dGlscy0xLjApCi0rRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UKEdTVFJFQU1FUl8xXzBfVklERU8gZ3N0cmVhbWVyLXZpZGVvLTEuMCBnc3R2aWRlby0xLjApCi0gCi0gIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAjIDMuIFByb2Nlc3MgdGhlIENPTVBPTkVOVFMgcGFzc2VkIHRvIEZJTkRfUEFDS0FHRQotLS0gCi0yLjYuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcC8wMDAxLUZpeC1nc3RyZWFtZXItMS4wLWRldGVjdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwLzAwMDEtRml4LWdzdHJlYW1lci0xLjAtZGV0ZWN0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1NjdjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcC8wMDAxLUZpeC1nc3RyZWFtZXItMS4wLWRldGVjdGlvbi5wYXRjaApAQCAtMCwwICsxLDI3IEBACitGcm9tIDM2ODk4OTUyNmMzMmNkZjlkNjgwYTM5N2ZlZGUzY2I3NzNmYTI2MDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaWtlIEdpbGJlcnQgPGZsb3BweW1AZ2VudG9vLm9yZz4KK0RhdGU6IEZyaSwgMjggSnVsIDIwMTcgMTY6MzE6NDEgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IGdzdHJlYW1lci0xLjAgZGV0ZWN0aW9uCisKK1Vwc3RyZWFtIFN0YXRlOiBCYWNrcG9ydAorCistLS0KKyBjbWFrZS9GaW5kR1N0cmVhbWVyXzFfMC5jbWFrZSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2NtYWtlL0ZpbmRHU3RyZWFtZXJfMV8wLmNtYWtlIGIvY21ha2UvRmluZEdTdHJlYW1lcl8xXzAuY21ha2UKK2luZGV4IDNhYThmYzYuLjZmYmMwZWMgMTAwNjQ0CistLS0gYS9jbWFrZS9GaW5kR1N0cmVhbWVyXzFfMC5jbWFrZQorKysrIGIvY21ha2UvRmluZEdTdHJlYW1lcl8xXzAuY21ha2UKK0BAIC01OSw3ICs1OSw3IEBAIG1hY3JvKEZJTkRfR1NUUkVBTUVSX0NPTVBPTkVOVCBfY29tcG9uZW50X3ByZWZpeCBfcGtnY29uZmlnX25hbWUgX2xpYnJhcnkpCisgCisgICAgIHN0cmluZyhSRUdFWCBNQVRDSCAiKC4qKT49KC4qKSIgX2R1bW15ICIke19wa2djb25maWdfbmFtZX0iKQorICAgICBpZiAoIiR7Q01BS0VfTUFUQ0hfMn0iIFNUUkVRVUFMICIiKQorLSAgICAgICAgcGtnX2NoZWNrX21vZHVsZXMoUENfJHtfY29tcG9uZW50X3ByZWZpeH0gIiR7X3BrZ2NvbmZpZ19uYW1lfSA+PSAke0dTdHJlYW1lcl9GSU5EX1ZFUlNJT059IikKKysgICAgICAgIHBrZ19jaGVja19tb2R1bGVzKFBDXyR7X2NvbXBvbmVudF9wcmVmaXh9ICIke19wa2djb25maWdfbmFtZX0gPj0gJHtHU1RSRUFNRVJfMV8wX01JTklNVU1fVkVSU0lPTn0iKQorICAgICBlbHNlICgpCisgICAgICAgICBwa2dfY2hlY2tfbW9kdWxlcyhQQ18ke19jb21wb25lbnRfcHJlZml4fSAke19wa2djb25maWdfbmFtZX0pCisgICAgIGVuZGlmICgpCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwLzAwMDMtYWRkLW1pc3NpbmctZGVmaW5lLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mcmVlcmRwL2ZyZWVyZHAvMDAwMy1hZGQtbWlzc2luZy1kZWZpbmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyMGVkZWYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mcmVlcmRwL2ZyZWVyZHAvMDAwMy1hZGQtbWlzc2luZy1kZWZpbmUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1saWJ3aW5wci9jb21tX3NlcmlhOiBmaXggbWlzc2luZyBkZWZpbmUKLQotRnJlZVJEUCB1c2VzIENNU1BBUiwgd2hpY2ggaXMgZGVmaW5lZCBieSBnbGliYyBpbiBiaXRzL3Rlcm1pb3MuaCAuCi0KLWdsaWJjIGhhcyB0d28gZmxhdm91cnMgb2YgYml0cy90ZXJtaW9zLmg6IGEgZ2VubWVyaWMgb25lIGFuZCBhbgotYXJjaGl0ZWN0dXJlLXNwZWNpZmljIG9uZS4gV2hlbiBpbnN0YWxsaW5nLCBnbGliYyB3aWxsIGluc3RhbGwgdGhlCi1hcmNoaXRlY3R1cmUtc3BlY2lmaWMgZmlsZSBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSBpdCBpbnN0YWxscyB0aGUKLWdlbmVyaWMgZmlsZS4gT25seSBBbHBoYSwgTUlQUywgUFBDIGFuZCBTcGFyYyBoYXZlIHRoZWlyIG93bgotYml0cy90ZXJtaW9zLmguCi0KLVRoZSBnZW5lcmljIGJpdHMvdGVybWlvcy5oLCBhcyB3ZWxsIGFzIHRoZSBBbHBoYSwgUFBDIGFuZCBTcGFyYyBmbGF2b3VycwotZG8gZGVmaW5lIENNU1BBUi4gSG93ZXZlciwgdGhlIE1JUFMgZmxhdm91ciBkb2VzIG5vdCBkZWZpbmUgaXQuCi0KLURlZmluZSBDTVNQQVIgdG8gdGhlIHZhbHVlIGZyb20gdGhlIGdlbmVyaWMgdmFsdWUsIHdoaWNoIGlzIGFsc28gdGhlCi12YWx1ZSBrbm93biB0byB0aGUgTGludXgga2VybmVsIGZvciBNSVBTLgotCi1GaXhlczoKLSAgICBodHRwOi8vYXV0b2J1aWxkLmJ1aWxkcm9vdC5vcmcvcmVzdWx0cy8wYjQvMGI0NzkzZjBiZjlmNGM1NzkzMzg5N2YzNDgwMDU0YTRlMDY1MjhhZC8KLSAgICBodHRwOi8vYXV0b2J1aWxkLmJ1aWxkcm9vdC5vcmcvcmVzdWx0cy83YTIvN2EyMjg0ZDBhMjk4NzE1OGZhMmU3OGY3ODliMDdjOGM2ZmNkYjk3NC8KLSAgICBodHRwOi8vYXV0b2J1aWxkLmJ1aWxkcm9vdC5vcmcvcmVzdWx0cy8zODcvMzg3NDA4OGMzY2NkNGJiZjc2ZWEwYzkxMWNhMWVmNjRjN2RjOWQxYy8KLSAgICAuLi4KLQotU2lnbmVkLW9mZi1ieTogIllhbm4gRS4gTU9SSU4iIDx5YW5uLm1vcmluLjE5OThAZnJlZS5mcj4KLUNjOiBQZXRlciBLb3JzZ2FhcmQgPGphY21ldEB1Y2xpYmMub3JnPgotQ2M6IFRob21hcyBQZXRhenpvbmkgPHRob21hcy5wZXRhenpvbmlAZnJlZS1lbGVjdHJvbnMuY29tPgotCi1kaWZmIC1kdXJOIGZyZWVyZHAtMTc4MzRhZjdiYjM3OGY4NWEzYjNjYzRkY2FkYWE1MTI1YTMzN2UxNi5vcmlnL3dpbnByL2xpYndpbnByL2NvbW0vY29tbV9zZXJpYWxfc3lzLmMgZnJlZXJkcC0xNzgzNGFmN2JiMzc4Zjg1YTNiM2NjNGRjYWRhYTUxMjVhMzM3ZTE2L3dpbnByL2xpYndpbnByL2NvbW0vY29tbV9zZXJpYWxfc3lzLmMKLS0tLSBmcmVlcmRwLTE3ODM0YWY3YmIzNzhmODVhM2IzY2M0ZGNhZGFhNTEyNWEzMzdlMTYub3JpZy93aW5wci9saWJ3aW5wci9jb21tL2NvbW1fc2VyaWFsX3N5cy5jCTIwMTUtMDktMDQgMTY6MjA6MTcuMDAwMDAwMDAwICswMTAwCi0rKysgZnJlZXJkcC0xNzgzNGFmN2JiMzc4Zjg1YTNiM2NjNGRjYWRhYTUxMjVhMzM3ZTE2L3dpbnByL2xpYndpbnByL2NvbW0vY29tbV9zZXJpYWxfc3lzLmMJMjAxNS0xMC0wNCAxMTowNzo0MS44Njg1MTM3MjYgKzAxMDAKLUBAIC0yNyw2ICsyNywxNCBAQAotICNpbmNsdWRlIDxmY250bC5oPgotICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSAjaW5jbHVkZSA8dGVybWlvcy5oPgotKwotKy8qIGdsaWJjIGZvciBNSVBTIGhhcyBpdHMgb3duIGJpdHMvdGVybWlvcy5oIHdoaWNoIGRvZXMgbm90IGRlZmluZQotKyAqIENNU1BBUiwgc28gd2UgdmFtcGlyaXNlIHRoZSB2YWx1ZSBmcm9tIHRoZSBnZW5lcmljIGJpdHMvdGVybWlvcy5oCi0rICovCi0rI2lmbmRlZiBDTVNQQVIKLSsjZGVmaW5lIENNU1BBUiAwMTAwMDAwMDAwMDAKLSsjZW5kaWYKLSsKLSAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0gCi0gI2luY2x1ZGUgImNvbW1fc2VyaWFsX3N5cy5oIgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcC93aW5wci1tYWtlY2VydC1CdWlsZC13aXRoLWluc3RhbGwtUlBBVEgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcC93aW5wci1tYWtlY2VydC1CdWlsZC13aXRoLWluc3RhbGwtUlBBVEgucGF0Y2gKaW5kZXggZDI3OWQ2ZC4uMGQ3ZGNjMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mcmVlcmRwL2ZyZWVyZHAvd2lucHItbWFrZWNlcnQtQnVpbGQtd2l0aC1pbnN0YWxsLVJQQVRILnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwL3dpbnByLW1ha2VjZXJ0LUJ1aWxkLXdpdGgtaW5zdGFsbC1SUEFUSC5wYXRjaApAQCAtMSwzMSArMSwzMSBAQAotRnJvbSAyNTNlYWZjOGM4ZGE4M2ZjMmIxYTk5YTllNDM4MjRlZmM2MTA1YzdhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWFudWVsIEJhY2htYW5uIDxtYW51ZWwuYmFjaG1hbm5AaW90LmJ6aD4KLURhdGU6IFN1biwgNCBPY3QgMjAxNSAxMDo0NDo0OSArMDIwMAogU3ViamVjdDogW1BBVENIXSB3aW5wci1tYWtlY2VydDogQnVpbGQgd2l0aCBpbnN0YWxsIFJQQVRICiAKIEFzIHdlIGFyZSBpbnN0YWxsaW5nICJ3aW5wci1tYWtlY2VydCIgbWFudWFsbHksIHdlIGRvIHdhbnQKIHRvIHJlZmVyIHRvIHRoZSBsaWJyYXJ5IGluIERFU1RESVIsIG5vdCB0aGUgb25lIHJlc3RpbmcgaW4KIHRoZSBidWlsZCB0cmVlLgogCi1TaWduZWQtb2ZmLWJ5OiBNYW51ZWwgQmFjaG1hbm4gPG1hbnVlbC5iYWNobWFubkBpb3QuYnpoPgotLS0tCi0gd2lucHIvdG9vbHMvbWFrZWNlcnQvY2xpL0NNYWtlTGlzdHMudHh0IHwgNCArKysrCi0gMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorVXBkYXRlIGl0IGZvciAyLjAuMC4KIAotZGlmZiAtLWdpdCBhL3dpbnByL3Rvb2xzL21ha2VjZXJ0L2NsaS9DTWFrZUxpc3RzLnR4dCBiL3dpbnByL3Rvb2xzL21ha2VjZXJ0L2NsaS9DTWFrZUxpc3RzLnR4dAotaW5kZXggMTc5NTRjNC4uOTBjNDQ2YiAxMDA2NDQKLS0tLSBhL3dpbnByL3Rvb2xzL21ha2VjZXJ0L2NsaS9DTWFrZUxpc3RzLnR4dAotKysrIGIvd2lucHIvdG9vbHMvbWFrZWNlcnQvY2xpL0NNYWtlTGlzdHMudHh0Ci1AQCAtNDUsNSArNDUsOSBAQCBzZXQoJHtNT0RVTEVfUFJFRklYfV9MSUJTIHdpbnByLW1ha2VjZXJ0LXRvb2wpCitTaWduZWQtb2ZmLWJ5OiBNYW51ZWwgQmFjaG1hbm4gPG1hbnVlbC5iYWNobWFubkBpb3QuYnpoPgorU2lnbmVkLW9mZi1ieTogWmhlbmcgUnVvcWluIDx6aGVuZ3JxLmZuc3RAY24uZnVqaXRzdS5jb20+CistLS0KKyB3aW5wci90b29scy9tYWtlY2VydC1jbGkvQ01ha2VMaXN0cy50eHQgfCAzICsrKworIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3dpbnByL3Rvb2xzL21ha2VjZXJ0LWNsaS9DTWFrZUxpc3RzLnR4dCBiL3dpbnByL3Rvb2xzL21ha2VjZXJ0LWNsaS9DTWFrZUxpc3RzLnR4dAoraW5kZXggNzRhZmEwOS4uOGQwMGVmMSAxMDA2NDQKKy0tLSBhL3dpbnByL3Rvb2xzL21ha2VjZXJ0LWNsaS9DTWFrZUxpc3RzLnR4dAorKysrIGIvd2lucHIvdG9vbHMvbWFrZWNlcnQtY2xpL0NNYWtlTGlzdHMudHh0CitAQCAtNDQsNiArNDQsOSBAQCBzZXQoJHtNT0RVTEVfUFJFRklYfV9MSUJTIHdpbnByLXRvb2xzKQogIAogIHRhcmdldF9saW5rX2xpYnJhcmllcygke01PRFVMRV9OQU1FfSAkeyR7TU9EVUxFX1BSRUZJWH1fTElCU30pCiAgCi0rc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7TU9EVUxFX05BTUV9IFBST1BFUlRJRVMgCi0rCUJVSUxEX1dJVEhfSU5TVEFMTF9SUEFUSCAxKQorK3NldF90YXJnZXRfcHJvcGVydGllcygke01PRFVMRV9OQU1FfSBQUk9QRVJUSUVTCisrICAgICAgIEJVSUxEX1dJVEhfSU5TVEFMTF9SUEFUSCAxKQogKwogIHNldF9wcm9wZXJ0eShUQVJHRVQgJHtNT0RVTEVfTkFNRX0gUFJPUEVSVFkgRk9MREVSICJXaW5QUi9Ub29scyIpCiAgCi0rCisgaW5zdGFsbChUQVJHRVRTICR7TU9EVUxFX05BTUV9IERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9CSU5ESVJ9IENPTVBPTkVOVCB0b29scyBFWFBPUlQgV2luUFJUYXJnZXRzKQogLS0gCi0xLjguMy4xCisyLjcuNAogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcF9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcF9naXQuYmIKaW5kZXggZjBhYTFiNi4uODhhZWM5YyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mcmVlcmRwL2ZyZWVyZHBfZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwX2dpdC5iYgpAQCAtMTAsMTQgKzEwLDEzIEBACiAKIGluaGVyaXQgcGtnY29uZmlnIGNtYWtlIGdpdHBrZ3YKIAotUFYgPSAiMS4yLjUrZ2l0ciR7U1JDUFZ9IgorUFYgPSAiMi4wLjArZ2l0ciR7U1JDUFZ9IgogUEtHViA9ICIke0dJVFBLR1ZUQUd9IgogCi1TUkNSRVYgPSAiNjJkYTlkMjhjNjc0ODE0YzgxYzI0NWMxYzc4ODJlYjBkYTdiZTc2YiIKK1NSQ1JFViA9ICIxNjQ4ZGViNDM1YWQ1MjIwNmY3YWEyYWZlNGI0ZGZmNzFkOTMyOWJjIgogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL0ZyZWVSRFAvRnJlZVJEUC5naXQgXAogICAgIGZpbGU6Ly93aW5wci1tYWtlY2VydC1CdWlsZC13aXRoLWluc3RhbGwtUlBBVEgucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAxLUZpbmRHU3RyZWFtZXJfMV8wLWZpeC1idWlsZC1mYWlsdXJlLWZvci1uZXctZ3N0cmVhbWUucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAzLWFkZC1taXNzaW5nLWRlZmluZS5wYXRjaCBcCisgICAgZmlsZTovLzAwMDEtRml4LWdzdHJlYW1lci0xLjAtZGV0ZWN0aW9uLnBhdGNoIFwKICIKIAogUyA9ICIke1dPUktESVJ9L2dpdCIKQEAgLTU3LDcgKzU2LDcgQEAKICMgd2Ugd2lsbCBuZWVkIHdpbnByLW1ha2VjZXJ0IHRvIGdlbmVyYXRlIFRMUyBjZXJ0aWZpY2F0ZXMKIGRvX2luc3RhbGxfYXBwZW5kICgpIHsKICAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0KLSAgICBpbnN0YWxsIC1tNzU1IHdpbnByL3Rvb2xzL21ha2VjZXJ0L2NsaS93aW5wci1tYWtlY2VydCAke0R9JHtiaW5kaXJ9CisgICAgaW5zdGFsbCAtbTc1NSB3aW5wci90b29scy9tYWtlY2VydC1jbGkvd2lucHItbWFrZWNlcnQgJHtEfSR7YmluZGlyfQogICAgIHJtIC1yZiAke0R9JHtsaWJkaXJ9L2NtYWtlCiAgICAgcm0gLXJmICR7RH0ke2xpYmRpcn0vZnJlZXJkcAogfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9nZC9nZF8yLjIuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ2QvZ2RfMi4yLjQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5MzJiYjcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9nZC9nZF8yLjIuNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLVNVTU1BUlkgPSAiZ2QgaXMgYSBsaWJyYXJ5IHVzZWQgdG8gY3JlYXRlIFBORywgSlBFRywgb3IgV0JNUCBpbWFnZXMiCi1ERVNDUklQVElPTiA9ICJUaGUgZ2QgZ3JhcGhpY3MgbGlicmFyeSBhbGxvd3MgeW91ciBjb2RlIHRvIHF1aWNrbHkgZHJhdyBpbWFnZXMgXAotY29tcGxldGUgd2l0aCBsaW5lcywgYXJjcywgdGV4dCwgbXVsdGlwbGUgY29sb3JzLCBjdXQgYW5kIHBhc3RlIGZyb20gb3RoZXIgXAotaW1hZ2VzLCBhbmQgZmxvb2QgZmlsbHMsIGFuZCB0byB3cml0ZSBvdXQgdGhlIHJlc3VsdCBhcyBhIFBORyBvciBKUEVHIGZpbGUuIFwKLVRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBpbiBXZWIgYXBwbGljYXRpb25zLCB3aGVyZSBQTkcgYW5kIEpQRUcgYXJlIHR3byBcCi1vZiB0aGUgZm9ybWF0cyBhY2NlcHRlZCBmb3IgaW5saW5lIGltYWdlcyBieSBtb3N0IGJyb3dzZXJzLiBOb3RlIHRoYXQgZ2QgaXMgbm90IFwKLWEgcGFpbnQgcHJvZ3JhbS4iCi1IT01FUEFHRSA9ICJodHRwOi8vbGliZ2QuYml0YnVja2V0Lm9yZy8iCi0KLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiR0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wNzM4NGIzYWEyZTBkMzlhZmNhMGQ2YzQwMjg2ZjU0NSIKLQotREVQRU5EUyA9ICJmcmVldHlwZSBsaWJwbmcganBlZyB6bGliIHRpZmYiCi0KLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9saWJnZC9saWJnZC5naXQ7YnJhbmNoPUdELTIuMiBcCi0gICAgICAgICAgIgotCi1TUkNSRVYgPSAiZGUwOTg3NGIxNWE0Yzg4NzcyZGIzNWNlZDg0MjMzMGY1ZGUyM2U3NiIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLQotaW5oZXJpdCBhdXRvdG9vbHMgYmluY29uZmlnIGdldHRleHQgcGtnY29uZmlnCi0KLUVYVFJBX09FQ09ORiArPSAiIC0tZGlzYWJsZS1ycGF0aCBcCi0gICAgICAgICAgICAgICAgICAtLXdpdGgtanBlZz0ke1NUQUdJTkdfTElCRElSfS8uLiBcCi0gICAgICAgICAgICAgICAgICAtLXdpdGgtZnJlZXR5cGU9eWVzIFwKLSAgICAgICAgICAgICAgICAgIC0td2l0aG91dC1mb250Y29uZmlnIFwKLSAgICAgICAgICAgICAgICAgIC0td2l0aG91dC13ZWJwIFwKLSAgICAgICAgICAgICAgICAgIC0td2l0aG91dC14cG0gXAotICAgICAgICAgICAgICAgICAgLS13aXRob3V0LXggXAotICAgICAgICAgICAgICAgICIKLQotRVhUUkFfT0VNQUtFID0gJ0xERkxBR1M9IiR7TERGTEFHU30iJwotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICAjIGNsZWFudXAgYnVpbGRwYXRocyBmcm9tIGdkbGliLnBjCi0gICAgc2VkIC1pIC1lICdzIyR7U1RBR0lOR19ESVJfSE9TVH0jI2cnICR7RH0ke2xpYmRpcn0vcGtnY29uZmlnL2dkbGliLnBjCi19Ci0KLVBBQ0tBR0VTICs9ICIke1BOfS10b29scyIKLQotRklMRVNfJHtQTn0gPSAiJHtsaWJkaXJ9L2xpYioke1NPTElCU30iCi1GSUxFU18ke1BOfS10b29scyA9ICIke2JpbmRpcn0vKiIKLQotUFJPVklERVMgKz0gIiR7UE59LXRvb2xzIgotUlBST1ZJREVTXyR7UE59LXRvb2xzID0gIiR7UE59LXRvb2xzIgotUkRFUEVORFNfJHtQTn0tdG9vbHMgPSAicGVybCBwZXJsLW1vZHVsZS1zdHJpY3QiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dkL2dkXzIuMi41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9nZC9nZF8yLjIuNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2Q5YWNmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9nZC9nZF8yLjIuNS5iYgpAQCAtMCwwICsxLDQ4IEBACitTVU1NQVJZID0gImdkIGlzIGEgbGlicmFyeSB1c2VkIHRvIGNyZWF0ZSBQTkcsIEpQRUcsIG9yIFdCTVAgaW1hZ2VzIgorREVTQ1JJUFRJT04gPSAiVGhlIGdkIGdyYXBoaWNzIGxpYnJhcnkgYWxsb3dzIHlvdXIgY29kZSB0byBxdWlja2x5IGRyYXcgaW1hZ2VzIFwKK2NvbXBsZXRlIHdpdGggbGluZXMsIGFyY3MsIHRleHQsIG11bHRpcGxlIGNvbG9ycywgY3V0IGFuZCBwYXN0ZSBmcm9tIG90aGVyIFwKK2ltYWdlcywgYW5kIGZsb29kIGZpbGxzLCBhbmQgdG8gd3JpdGUgb3V0IHRoZSByZXN1bHQgYXMgYSBQTkcgb3IgSlBFRyBmaWxlLiBcCitUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gV2ViIGFwcGxpY2F0aW9ucywgd2hlcmUgUE5HIGFuZCBKUEVHIGFyZSB0d28gXAorb2YgdGhlIGZvcm1hdHMgYWNjZXB0ZWQgZm9yIGlubGluZSBpbWFnZXMgYnkgbW9zdCBicm93c2Vycy4gTm90ZSB0aGF0IGdkIGlzIG5vdCBcCithIHBhaW50IHByb2dyYW0uIgorSE9NRVBBR0UgPSAiaHR0cDovL2xpYmdkLmJpdGJ1Y2tldC5vcmcvIgorCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkdEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MDczODRiM2FhMmUwZDM5YWZjYTBkNmM0MDI4NmY1NDUiCisKK0RFUEVORFMgPSAiZnJlZXR5cGUgbGlicG5nIGpwZWcgemxpYiB0aWZmIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbGliZ2QvbGliZ2QuZ2l0O2JyYW5jaD1HRC0yLjIgXAorICAgICAgICAgICIKKworU1JDUkVWID0gIjgyNTUyMzFiNjg4ODk1OTdkMDRkNDUxYTcyNDM4YWI5MmE0MDVhYmEiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK2luaGVyaXQgYXV0b3Rvb2xzIGJpbmNvbmZpZyBnZXR0ZXh0IHBrZ2NvbmZpZworCitFWFRSQV9PRUNPTkYgKz0gIiAtLWRpc2FibGUtcnBhdGggXAorICAgICAgICAgICAgICAgICAgLS13aXRoLWpwZWc9JHtTVEFHSU5HX0xJQkRJUn0vLi4gXAorICAgICAgICAgICAgICAgICAgLS13aXRoLWZyZWV0eXBlPXllcyBcCisgICAgICAgICAgICAgICAgICAtLXdpdGhvdXQtZm9udGNvbmZpZyBcCisgICAgICAgICAgICAgICAgICAtLXdpdGhvdXQtd2VicCBcCisgICAgICAgICAgICAgICAgICAtLXdpdGhvdXQteHBtIFwKKyAgICAgICAgICAgICAgICAgIC0td2l0aG91dC14IFwKKyAgICAgICAgICAgICAgICAiCisKK0VYVFJBX09FTUFLRSA9ICdMREZMQUdTPSIke0xERkxBR1N9IicKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgIyBjbGVhbnVwIGJ1aWxkcGF0aHMgZnJvbSBnZGxpYi5wYworICAgIHNlZCAtaSAtZSAncyMke1NUQUdJTkdfRElSX0hPU1R9IyNnJyAke0R9JHtsaWJkaXJ9L3BrZ2NvbmZpZy9nZGxpYi5wYworfQorCitQQUNLQUdFUyArPSAiJHtQTn0tdG9vbHMiCisKK0ZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS9saWIqJHtTT0xJQlN9IgorRklMRVNfJHtQTn0tdG9vbHMgPSAiJHtiaW5kaXJ9LyoiCisKK1BST1ZJREVTICs9ICIke1BOfS10b29scyIKK1JQUk9WSURFU18ke1BOfS10b29scyA9ICIke1BOfS10b29scyIKK1JERVBFTkRTXyR7UE59LXRvb2xzID0gInBlcmwgcGVybC1tb2R1bGUtc3RyaWN0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9nZmxhZ3MvZ2ZsYWdzXzIuMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9nZmxhZ3MvZ2ZsYWdzXzIuMi4wLmJiCmluZGV4IDBlODViM2YuLjI4YjY1MmEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ2ZsYWdzL2dmbGFnc18yLjIuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dmbGFncy9nZmxhZ3NfMi4yLjAuYmIKQEAgLTE5LDMgKzE5LDUgQEAKIFBBQ0tBR0VTID0rICIke1BOfS1iYXNoLWNvbXBsZXRpb24iCiBGSUxFU18ke1BOfS1iYXNoLWNvbXBsZXRpb24gKz0gIiR7YmluZGlyfS9nZmxhZ3NfY29tcGxldGlvbnMuc2giCiBSREVQRU5EU18ke1BOfS1iYXNoLWNvbXBsZXRpb24gPSAiYmFzaCBiYXNoLWNvbXBsZXRpb24iCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9nbnVsaWIvZ251bGliXzIwMTctMDgtMjAuMTguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dudWxpYi9nbnVsaWJfMjAxNy0wOC0yMC4xOC5iYgppbmRleCBiNTA1YWMxLi5iNzJmZmE5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dudWxpYi9nbnVsaWJfMjAxNy0wOC0yMC4xOC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dudWxpYi9nbnVsaWJfMjAxNy0wOC0yMC4xOC5iYgpAQCAtMjksOCArMjksOCBAQAogZG9fY29tcGlsZVtub2V4ZWNdID0gIjEiCiBkb19wYWNrYWdlW25vZXhlY10gPSAiMSIKIGRvX3BhY2thZ2VkYXRhW25vZXhlY10gPSAiMSIKLWRvX3BhY2thZ2Vfd3JpdGVfaXBrW25vZXhlY10gPSAiMSIKLWRvX3BhY2thZ2Vfd3JpdGVfZGViW25vZXhlY10gPSAiMSIKLWRvX3BhY2thZ2Vfd3JpdGVfcnBtW25vZXhlY10gPSAiMSIKK2RlbHRhc2sgcGFja2FnZV93cml0ZV9pcGsKK2RlbHRhc2sgcGFja2FnZV93cml0ZV9kZWIKK2RlbHRhc2sgcGFja2FnZV93cml0ZV9ycG0KIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy8wMDAxLVN1cHBvcnQtQXRvbWljLW9wcy1vbi1jbGFuZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtU3VwcG9ydC1BdG9taWMtb3BzLW9uLWNsYW5nLnBhdGNoCmluZGV4IGU1ODJjMGQuLjJmZDIxYzIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtU3VwcG9ydC1BdG9taWMtb3BzLW9uLWNsYW5nLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtU3VwcG9ydC1BdG9taWMtb3BzLW9uLWNsYW5nLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBlYTlmNjRlYjJjZGYzYmU2YzRkYzY1ZmExNDcyZDg1NDYxNmU0M2NhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBhYTBhNjMyMDlhZjY4MTNkODcyNTVlYzNhYjMzOWYyZGJiZjI3ZDZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IE1vbiwgNiBNYXIgMjAxNyAxMzozODo0NiAtMDgwMAogU3ViamVjdDogW1BBVENIXSBTdXBwb3J0IEF0b21pYyBvcHMgb24gY2xhbmcKQEAgLTksMjUgKzksMjMgQEAKIHRoZSBhdG9taWNzIGFuZCBmYWlscyBmb3IgY2xhbmcKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQorCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAorLS0tCiAgc3JjL2Jhc2UvYXRvbWljb3BzLmggfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9zcmMvYmFzZS9hdG9taWNvcHMuaCBiL3NyYy9iYXNlL2F0b21pY29wcy5oCi1pbmRleCBiZTAzOGYzLi5mMWEyMWZmIDEwMDY0NAoraW5kZXggZGFjOTViZS4uMzkwNzMzYyAxMDA2NDQKIC0tLSBhL3NyYy9iYXNlL2F0b21pY29wcy5oCiArKysgYi9zcmMvYmFzZS9hdG9taWNvcHMuaAotQEAgLTExOCw3ICsxMTgsNyBAQAorQEAgLTEyNCw3ICsxMjQsNyBAQAogICNpbmNsdWRlICJiYXNlL2F0b21pY29wcy1pbnRlcm5hbHMtbGludXhwcGMuaCIKICAjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBkZWZpbmVkKF9fbWlwc19fKQogICNpbmNsdWRlICJiYXNlL2F0b21pY29wcy1pbnRlcm5hbHMtbWlwcy5oIgogLSNlbGlmIGRlZmluZWQoX19HTlVDX18pICYmIEdDQ19WRVJTSU9OID49IDQwNzAwCiArI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgR0NDX1ZFUlNJT04gPj0gNDA3MDAgfHwgZGVmaW5lZChfX2NsYW5nX18pCiAgI2luY2x1ZGUgImJhc2UvYXRvbWljb3BzLWludGVybmFscy1nY2MuaCIKLSAjZWxzZQotICNlcnJvciBZb3UgbmVlZCB0byBpbXBsZW1lbnQgYXRvbWljIG9wZXJhdGlvbnMgZm9yIHRoaXMgYXJjaGl0ZWN0dXJlCi0tLSAKLTIuMTIuMAotCisgI2VsaWYgZGVmaW5lZChfX2NsYW5nX18pICYmIENMQU5HX1ZFUlNJT04gPj0gMzA0MDAKKyAjaW5jbHVkZSAiYmFzZS9hdG9taWNvcHMtaW50ZXJuYWxzLWdjYy5oIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1Vc2UtdWNvbnRleHRfdC1pbnN0ZWFkLW9mLXN0cnVjdC11Y29udGV4dC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtVXNlLXVjb250ZXh0X3QtaW5zdGVhZC1vZi1zdHJ1Y3QtdWNvbnRleHQucGF0Y2gKaW5kZXggNWJkMGI2Zi4uYjMwMzM2MiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1Vc2UtdWNvbnRleHRfdC1pbnN0ZWFkLW9mLXN0cnVjdC11Y29udGV4dC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy8wMDAxLVVzZS11Y29udGV4dF90LWluc3RlYWQtb2Ytc3RydWN0LXVjb250ZXh0LnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAxMmFjMGRjNjc0MmUxYmNkZmFmMTg0MjE4NmM5MDAyZjA4MjBhNWU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAyMzBjZDg0NDg2MTQ1YzViYjFkNjlkNGM5YTU0NGUwMGFkYmNjOWI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFNhdCwgMSBKdWwgMjAxNyAxMzoyMToyMSAtMDcwMAogU3ViamVjdDogW1BBVENIXSBVc2UgdWNvbnRleHRfdCBpbnN0ZWFkIG9mIHN0cnVjdCB1Y29udGV4dApAQCAtNiwxMiArNiwxMyBAQAogTmV3ZXIgZ2xpYmMgaGFzIGRyb3BwZWQgdGhlIHVjb250ZXh0IHRhZyBmcm9tIGV4cG9zaW5nCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIHNyYy9zdGFja3RyYWNlX3Bvd2VycGMtbGludXgtaW5sLmggfCAzICstLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL3NyYy9zdGFja3RyYWNlX3Bvd2VycGMtbGludXgtaW5sLmggYi9zcmMvc3RhY2t0cmFjZV9wb3dlcnBjLWxpbnV4LWlubC5oCi1pbmRleCBhOWJmNzc1Li40N2ZmMmQ3IDEwMDY0NAoraW5kZXggM2IzODQzYi4uYTMwMWE0NiAxMDA2NDQKIC0tLSBhL3NyYy9zdGFja3RyYWNlX3Bvd2VycGMtbGludXgtaW5sLmgKICsrKyBiL3NyYy9zdGFja3RyYWNlX3Bvd2VycGMtbGludXgtaW5sLmgKIEBAIC01Myw3ICs1Myw2IEBACkBAIC0zMSw2ICszMiwzIEBACiAgICAgICAgICAgIC8vIFdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIHJlc3QsIHNpbmNlIElQIHZhbHVlIGlzIGF0ICd1YycgZmllbGQuQQogICAgICAgICAgfSAqc2lnZnJhbWUgPSByZWludGVycHJldF9jYXN0PHJ0X3NpZ25hbF9mcmFtZV8zMio+KGN1cnJlbnQpOwogICAgICAgICAgcmVzdWx0W25dID0gKHZvaWQqKSBzaWdmcmFtZS0+dWMudWNfbWNvbnRleHQudWNfcmVncy0+Z3JlZ3NbUFRfTklQXTsKLS0tIAotMi4xMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtZGlzYmFsZS1oZWFwLWNoZWNrZXJzLWFuZC1kZWJ1Zy1hbGxvY2F0b3Itb24tbXVzbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtZGlzYmFsZS1oZWFwLWNoZWNrZXJzLWFuZC1kZWJ1Zy1hbGxvY2F0b3Itb24tbXVzbC5wYXRjaAppbmRleCA5OTEyN2UxLi5hYjNjZWI5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy8wMDAxLWRpc2JhbGUtaGVhcC1jaGVja2Vycy1hbmQtZGVidWctYWxsb2NhdG9yLW9uLW11c2wucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1kaXNiYWxlLWhlYXAtY2hlY2tlcnMtYW5kLWRlYnVnLWFsbG9jYXRvci1vbi1tdXNsLnBhdGNoCkBAIC0xLDE5ICsxLDIwIEBACi1Gcm9tIGI1OTYxZjE3ZTlkN2YyYmM0NGRhNjExYjNlNGIyN2M4YTY0MWZjNzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDA2NjA1MTU4ODUyZjkzNjQ1MTkzOTFmYTExMDcwYmE1ZWM0MzAzZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogU2F0LCAyIFNlcCAyMDE3IDA4OjA3OjE3IC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIGRpc2JhbGUgaGVhcCBjaGVja2VycyBhbmQgZGVidWcgYWxsb2NhdG9yIG9uIG11c2wKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQorCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAorLS0tCiAgY29uZmlndXJlLmFjIHwgMiArKwogIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKIAotSW5kZXg6IGdpdC9jb25maWd1cmUuYWMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnaXQub3JpZy9jb25maWd1cmUuYWMKLSsrKyBnaXQvY29uZmlndXJlLmFjCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA3MGI0OWEzLi44MTU0YzVjIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKIEBAIC01MSw2ICs1MSw4IEBAIGNhc2UgIiRob3N0IiBpbgogICAgICotY3lnd2luKikgZGVmYXVsdF9lbmFibGVfaGVhcF9jaGVja2VyPW5vOyBkZWZhdWx0X2VuYWJsZV9jcHVfcHJvZmlsZXI9bm87OwogICAgICotZnJlZWJzZCopIGRlZmF1bHRfZW5hYmxlX2hlYXBfY2hlY2tlcj1ubzs7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy8wMDAxLWZpeC1idWlsZC13aXRoLW11c2wtbGliYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtZml4LWJ1aWxkLXdpdGgtbXVzbC1saWJjLnBhdGNoCmluZGV4IDc4NjIxYzcuLjBhNzJmZjIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtZml4LWJ1aWxkLXdpdGgtbXVzbC1saWJjLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtZml4LWJ1aWxkLXdpdGgtbXVzbC1saWJjLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAxNTc5MTQ5NDFiZDM4ZjFhMzhiYjZiZDcyOTRjYTZjMmJjMWI4ZGNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAwMzRlN2RhMDhjM2ZiZmZjYmE4Y2Y4ZDRlMjRhNzFhMTY1NThkYjVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFN1biwgMTYgSnVsIDIwMTcgMTU6NTE6MjggLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gZml4IGJ1aWxkIHdpdGggbXVzbCBsaWJjCkBAIC02LDYgKzYsNyBAQAogUGF0Y2ggZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZ3BlcmZ0b29scy9ncGVyZnRvb2xzL3B1bGwvNzY1LwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgIHwgMSArCiAgc3JjL21hbGxvY19ob29rX21tYXBfbGludXguaCB8IDggKysrKysrLS0KQEAgLTU2LDYgKzU3LDMgQEAKICAvLyBsaWJjJ3MgdmVyc2lvbjoKICBleHRlcm4gIkMiIHZvaWQqIF9fc2JyayhwdHJkaWZmX3QgaW5jcmVtZW50KTsKICAKLS0tIAotMi4xMy4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtaW5jbHVkZS1mY250bC5oLWZvci1sb2ZmX3QtZGVmaW5pdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtaW5jbHVkZS1mY250bC5oLWZvci1sb2ZmX3QtZGVmaW5pdGlvbi5wYXRjaAppbmRleCA2NjcwMDhhLi40YzYzZTczIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy8wMDAxLWluY2x1ZGUtZmNudGwuaC1mb3ItbG9mZl90LWRlZmluaXRpb24ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1pbmNsdWRlLWZjbnRsLmgtZm9yLWxvZmZfdC1kZWZpbml0aW9uLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAwNGVhOGUwMDE1MDE5MzFmNGRiZjIwMjg4YWNhNzg0Njk2MTdiMDhhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBhMTZhNzNmMDgxOWQyNjIxOWVlODNjZDk4ZWVhODI3ODZkN2MxNzU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFN1biwgMTYgSnVsIDIwMTcgMTk6Mjg6MTcgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gaW5jbHVkZSBmY250bC5oIGZvciBsb2ZmX3QgZGVmaW5pdGlvbgpAQCAtNyw2ICs3LDcgQEAKIGxpbnV4X3N5c2NhbGxfc3VwcG9ydC5oOjI2NDE6MjY6IGVycm9yOiAnbG9mZl90JyBoYXMgbm90IGJlZW4gZGVjbGFyZWQKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgc3JjL2Jhc2UvbGludXhfc3lzY2FsbF9zdXBwb3J0LmggfCAxICsKICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKQEAgLTIzLDYgKzI0LDMgQEAKICAKICAjaWZkZWYgX19taXBzX18KICAvKiBJbmNsdWRlIGRlZmluaXRpb25zIG9mIHRoZSBBQkkgY3VycmVudGx5IGluIHVzZS4gICAgICAgICAgICAgICAgICAgICAgICAgICovCi0tLSAKLTIuMTMuMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy9kaXNhYmxlX2xpYnVud2luZF9hYXJjaDY0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvZGlzYWJsZV9saWJ1bndpbmRfYWFyY2g2NC5wYXRjaAppbmRleCBmMjY0NzQwLi5jM2M1Nzg0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy9kaXNhYmxlX2xpYnVud2luZF9hYXJjaDY0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzL2Rpc2FibGVfbGlidW53aW5kX2FhcmNoNjQucGF0Y2gKQEAgLTEsMTUgKzEsMjIgQEAKLURpc2FibGUgbGlidW53aW5kIG9uIGFhcmNoNjQKK0Zyb20gNTY0ZjgwMGUzZTI0NjQ3YzA5NWY3YTMyMWJmM2ViZGNjZmJmNzYyZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDIgU2VwIDIwMTcgMTI6MDI6MDQgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gRGlzYWJsZSBsaWJ1bndpbmQgb24gYWFyY2g2NAogCiBGaXhlcyBoYW5ncyB3aGVuIHVzaW5nIGxpYnRjbWFsbG9jLnNvCiAKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIAotSW5kZXg6IGdpdC9jb25maWd1cmUuYWMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnaXQub3JpZy9jb25maWd1cmUuYWMKLSsrKyBnaXQvY29uZmlndXJlLmFjCi1AQCAtNjksNiArNjksMTEgQEAgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTSgsIFtyZQorLS0tCisgY29uZmlndXJlLmFjIHwgNSArKysrKworIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggODE1NGM1Yy4uMDYzYjI2MCAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtNjksNiArNjksMTEgQEAgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTSgsIFtyZXR1cm4gX19QUEM2NF9fXSldLAogICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0X2VuYWJsZV9saWJ1bndpbmQ9eWVzCiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfdGNtYWxsb2NfcGFnZXNpemU9OF0pCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy9zZ2lkZWYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy9zZ2lkZWYucGF0Y2gKaW5kZXggN2UxYTIzYi4uMTAyNzRhNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvc2dpZGVmLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzL3NnaWRlZi5wYXRjaApAQCAtMSwxMSArMSwxOSBAQAotc2dpZGVmLmggZG9lcyBub3QgZXhpc3Qgb24gbXVzbCBhbmQgaXRzIG5vdCBuZWVkZWQgdG8gY29tcGlsZQorRnJvbSAyNTliNDIwNDQ0YzUyNDYzNzk1YjRiNTgyYTJhYjc1MTExNDllZWE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IE1vbiwgMTYgT2N0IDIwMTcgMjE6MjY6NDAgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gc2dpZGVmLmggZG9lcyBub3QgZXhpc3Qgb24gbXVzbCBhbmQgaXRzIG5vdCBuZWVkZWQgdG8gY29tcGlsZQogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi1JbmRleDogZ2l0L3NyYy9iYXNlL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2l0Lm9yaWcvc3JjL2Jhc2UvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLSsrKyBnaXQvc3JjL2Jhc2UvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKKworLS0tCisgc3JjL2Jhc2UvbGludXhfc3lzY2FsbF9zdXBwb3J0LmggfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvYmFzZS9saW51eF9zeXNjYWxsX3N1cHBvcnQuaCBiL3NyYy9iYXNlL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCitpbmRleCA3MDQzMWNhLi5iMjNjYTU5IDEwMDY0NAorLS0tIGEvc3JjL2Jhc2UvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKKysrKyBiL3NyYy9iYXNlL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCiBAQCAtMTY0LDcgKzE2NCw3IEBAIGV4dGVybiAiQyIgewogICNpbmNsdWRlIDxlbmRpYW4uaD4KICAjaW5jbHVkZSA8ZmNudGwuaD4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaGRkdGVtcC9oZGR0ZW1wL2hkZHRlbXAtMC4zLWJldGExNS1hdXRvZGV0ZWN0LTcxNzQ3OS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaGRkdGVtcC9oZGR0ZW1wL2hkZHRlbXAtMC4zLWJldGExNS1hdXRvZGV0ZWN0LTcxNzQ3OS5wYXRjaAppbmRleCAxOWY4MzgwLi4xZWM2YTYxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2hkZHRlbXAvaGRkdGVtcC9oZGR0ZW1wLTAuMy1iZXRhMTUtYXV0b2RldGVjdC03MTc0NzkucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9oZGR0ZW1wL2hkZHRlbXAvaGRkdGVtcC0wLjMtYmV0YTE1LWF1dG9kZXRlY3QtNzE3NDc5LnBhdGNoCkBAIC0zLDkgKzMsMTAgQEAKIFJlZmVyIHRvOgogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD03MTc0NzkKIAotZGlmZiAtdXAgaGRkdGVtcC0wLjMtYmV0YTE1L2RvYy9oZGR0ZW1wLjh+IGhkZHRlbXAtMC4zLWJldGExNS9kb2MvaGRkdGVtcC44Ci0tLS0gaGRkdGVtcC0wLjMtYmV0YTE1L2RvYy9oZGR0ZW1wLjh+CTIwMTEtMDgtMTggMDA6MzY6MDUuNjg5MDAxNDcwICswMzAwCi0rKysgaGRkdGVtcC0wLjMtYmV0YTE1L2RvYy9oZGR0ZW1wLjgJMjAxMS0wOC0xOCAwMDo0NDo0Ni43NTMwMDYyNTMgKzAzMDAKK0luZGV4OiBoZGR0ZW1wLTAuMy1iZXRhMTUvZG9jL2hkZHRlbXAuOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL2RvYy9oZGR0ZW1wLjgKKysrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvZG9jL2hkZHRlbXAuOAogQEAgLTE5LDcgKzE5LDcgQEAKICBoZGR0ZW1wIFwtIFV0aWxpdHkgdG8gbW9uaXRvciBoYXJkIGRyaXZlIHRlbXBlcmF0dXJlCiAgLlNIIFNZTk9QU0lTCkBAIC0yNSw5ICsyNiwxMCBAQAogIAogIAogIC5TSCAiT1BUSU9OUyIKLWRpZmYgLXVwIGhkZHRlbXAtMC4zLWJldGExNS9zcmMvaGRkdGVtcC5jfiBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL2hkZHRlbXAuYwotLS0tIGhkZHRlbXAtMC4zLWJldGExNS9zcmMvaGRkdGVtcC5jfgkyMDExLTA4LTE4IDAwOjM2OjA1LjYzODk5Njg2MSArMDMwMAotKysrIGhkZHRlbXAtMC4zLWJldGExNS9zcmMvaGRkdGVtcC5jCTIwMTEtMDgtMTggMDA6MzU6NTUuNDg1MDYwNzk4ICswMzAwCitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9oZGR0ZW1wLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9zcmMvaGRkdGVtcC5jCisrKysgaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9oZGR0ZW1wLmMKIEBAIC01NCw2ICs1NCw3IEBACiAgI2luY2x1ZGUgPGxpbnV4L2hkcmVnLmg+CiAgI2luY2x1ZGUgPGN0eXBlLmg+CkBAIC00NCw3ICs0Niw3IEBACiAgCiAgICBiYWNrdHJhY2Vfc2lnc2VndigpOwogICAgYmFja3RyYWNlX3NpZ2lsbCgpOwotQEAgLTQxOSwxMSArNDIxLDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgeworQEAgLTQyMywxMSArNDI1LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogICAgICAgZXhpdCgwKTsKICAgIH0KICAgIApAQCAtNTYsNyArNTgsNyBAQAogICAgaWYoZGVidWcpIHsKICAgICAgLyogICAgYXJnYyA9IG9wdGluZCArIDE7Ki8KICAgICAgcXVpZXQgPSAxOwotQEAgLTQzNCw2ICs0MzEsMjMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgeworQEAgLTQzOCw2ICs0MzUsMjMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogICAgICBleGl0KDEpOwogICAgfQogIApAQCAtODAsNyArODIsNyBAQAogICAgaW5pdF9idXNfdHlwZXMoKTsKICAKICAgIC8qIGNvbGxlY3QgZGlza3MgaW5mb3JtYXRpb25zICovCi1AQCAtNTI3LDYgKzU0MSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pIHsKK0BAIC01MzEsNiArNTQ1LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogICAgZWxzZSB7CiAgICAgIGRvX2RpcmVjdF9tb2RlKGxkaXNrcyk7CiAgICB9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2hkZHRlbXAvaGRkdGVtcC9oZGR0ZW1wXzAuMy1iZXRhMTUtNTIuZGlmZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaGRkdGVtcC9oZGR0ZW1wL2hkZHRlbXBfMC4zLWJldGExNS01Mi5kaWZmCmluZGV4IGY2MWMxNjQuLjA1N2IxZmQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaGRkdGVtcC9oZGR0ZW1wL2hkZHRlbXBfMC4zLWJldGExNS01Mi5kaWZmCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaGRkdGVtcC9oZGR0ZW1wL2hkZHRlbXBfMC4zLWJldGExNS01Mi5kaWZmCkBAIC04LDkgKzgsMTEgQEAKIAogVXBzdHJlYW0tU3RhdHVzOiB1bm1haW50YWluZWQKIAorSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9kb2MvaGRkdGVtcC44Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gaGRkdGVtcC0wLjMtYmV0YTE1Lm9yaWcvZG9jL2hkZHRlbXAuOAogKysrIGhkZHRlbXAtMC4zLWJldGExNS9kb2MvaGRkdGVtcC44Ci1AQCAtNTgsNiArNTgsMTAgQEAKK0BAIC01OCw2ICs1OCwxMCBAQCBFeGVjdXRlIGhkZHRlbXAgaW4gVENQL0lQIGRhZW1vbiBtb2RlIChwCiAgLkIgXC1mLCBcLVwtZmlsZT1cZklmaWxlXGZJCiAgU3BlY2lmeSB0aGUgZGF0YWJhc2UgZmlsZSB0byB1c2UuCiAgLlRQCkBAIC0yMSw3ICsyMyw3IEBACiAgLkIgXC1sLCBcLVwtbGlzdGVuPVxmSWFkZHJcZlIKICBMaXN0ZW4gb24gYSBzcGVjaWZpYyBhZGRyZXNzLiAgXGZJYWRkclxmUiBpcyBhIHN0cmluZyBjb250YWluaW5nIGEKICBob3N0IG5hbWUgb3IgYSBudW1lcmljIGhvc3QgYWRkcmVzcyBzdHJpbmcuICBUaGUgbnVtZXJpYyBob3N0IGFkZHJlc3MKLUBAIC04MCw2ICs4NCw5IEBACitAQCAtODAsNiArODQsOSBAQCBzZWNvbmRzLgogIC5CIFwtcSwgXC1cLXF1aWV0CiAgRG9uJ3QgY2hlY2sgaWYgdGhlIGRyaXZlIGlzIHN1cHBvcnRlZC4KICAuVFAKQEAgLTMxLDcgKzMzLDcgQEAKICAuQiBcLXYsIFwtXC12ZXJzaW9uCiAgRGlzcGxheSBoZGR0ZW1wIHZlcnNpb24gbnVtYmVyLgogIC5UUAotQEAgLTk2LDcgKzEwMyw3IEBACitAQCAtOTYsNyArMTAzLDcgQEAgTGlzdGVuIG9uIElQdjYgc29ja2V0cyBvbmx5LgogIC5TSCAiRFJJVkUgREFUQUJBU0UiCiAgSWYgeW91IGtub3cgeW91ciBkcml2ZSBoYXMgYSB0ZW1wZXJhdHVyZSBzZW5zb3IgYnV0IGl0IGlzIGJlaW5nCiAgcmVwb3J0ZWQgdW5zdXBwb3J0ZWQsIHRlbGwgbWUgd2hpY2ggbW9kZWwgYW5kIHdoaWNoIG1hbnVmYWN0dXJlciBpdApAQCAtNDAsNyArNDIsNyBAQAogIGxpbmUgb2YgaGRkdGVtcC5kYiBpcyBlaXRoZXIgYSBjb21tZW50LCBhIGJsYW5rIGxpbmUgb3IgYSBsaW5lCiAgY29udGFpbmluZzoKICAuVFAKLUBAIC0xMTIsNyArMTE5LDcgQEAKK0BAIC0xMTIsNyArMTE5LDcgQEAgc2V0IG9mIGRyaXZlcyBmcm9tIGl0cyBtb2RlbCBuYW1lIG9yIGZybwogIEZlZWRiYWNrIGlzIHdlbGNvbWUgKHNlZSB0aGUgUkVQT1JUIHNlY3Rpb24gYmVsb3cpLgogIAogIC5TSCAiVENQL0lQIERBRU1PTiBNT0RFIgpAQCAtNDksNyArNTEsNyBAQAogIC5QUAogICMgaGRkdGVtcCBTQVRBOi9kZXYvc2RhIFBBVEE6L2Rldi9oZGEKICAuUFAKLUBAIC0xMjAsNyArMTI3LDcgQEAKK0BAIC0xMjAsNyArMTI3LDcgQEAgVG8gdGVzdAogIC5CIGhkZHRlbXAKICBpbiBkYWVtb24gbW9kZSwgc3RhcnQgaXQgbGlrZSB0aGlzOgogIC5QUApAQCAtNTgsNyArNjAsNyBAQAogIC5QUAogIC5QUAogIGFuZCB1c2UKLUBAIC0xNjUsOCArMTcyLDggQEAKK0BAIC0xNjUsOCArMTcyLDggQEAgYW5kIDEyIGFyZSBvZnRlbiByZXBvcnRlZCB0byBtYXRjaCBhIHRlbQogIGludmVzdGlnYXRpb24gdGhleSBkbyBub3QuICBCdXQgZmllbGRzIDE5NCAod2hpY2ggaXMgdGhlIHN0YW5kYXJkCiAgZmllbGQgZm9yIHRlbXBlcmF0dXJlKSBhbmQgMjMxIGFyZSBnb29kIGNhbmRpZGF0ZXMuCiAgLlBQCkBAIC02OSwxMyArNzEsMTUgQEAKICB5b3Vyc2VsZi4KICAKICAuU0ggIkJVR1MiCi1AQCAtMTgzLDUgKzE5MCw1IEBACitAQCAtMTgzLDUgKzE5MCw1IEBAIHN1cHBvcnRlZCBvbiBpMzg2IGFyY2hpdGVjdHVyZXMgb25seS4KICAuUFAKICBFbW1hbnVlbCBWYXJhZ25hdCAoaGRkdGVtcEBndXp1Lm5ldCkuCiAgLlBQCiAtVGhpcyBtYW51YWwgcGFnZSB3YXMgb3JpZ2luYWx5IHdyaXR0ZW4gYnkgQXVyZWxpZW4gSmFybm8gPGF1cmVsMzJAZGViaWFuLm9yZz4sCiArVGhpcyBtYW51YWwgcGFnZSB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IEF1cmVsaWVuIEphcm5vIDxhdXJlbDMyQGRlYmlhbi5vcmc+LAogIGZvciB0aGUgRGViaWFuIEdOVS9MaW51eCBzeXN0ZW0gKGJ1dCBtYXkgYmUgdXNlZCBieSBvdGhlcnMpLgorSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9wby9mci5wbworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3BvL2ZyLnBvCiArKysgaGRkdGVtcC0wLjMtYmV0YTE1L3BvL2ZyLnBvCiBAQCAtNyw5ICs3LDkgQEAKQEAgLTkxLDcgKzk1LDcgQEAKICAiTGFzdC1UcmFuc2xhdG9yOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+XG4iCiAgIkxhbmd1YWdlLVRlYW06IEZSQU5DQUlTIDxmckBsaS5vcmc+XG4iCiAgIk1JTUUtVmVyc2lvbjogMS4wXG4iCi1AQCAtMTcsMjMgKzE3LDcgQEAKK0BAIC0xNywyMyArMTcsNyBAQCBtc2dzdHIgIiIKICAiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgogICJYLUdlbmVyYXRvcjogS0JhYmVsIDEuMC4xXG4iCiAgCkBAIC0xMTYsNyArMTIwLDcgQEAKICAjLCBjLWZvcm1hdAogIG1zZ2lkICIiCiAgIlxuIgotQEAgLTQ2LDcgKzMwLDcgQEAKK0BAIC00Niw3ICszMCw3IEBAIG1zZ3N0ciAiIgogICJNb2TobGU6ICVzXG4iCiAgIlxuIgogIApAQCAtMTI1LDcgKzEyOSw3IEBACiAgIywgYy1mb3JtYXQKICBtc2dpZCAiIgogICJXQVJOSU5HOiBEcml2ZSAlcyBkb2Vzbid0IHNlZW0gdG8gaGF2ZSBhIHRlbXBlcmF0dXJlIHNlbnNvci5cbiIKLUBAIC02MCw3NSArNDQsNjAgQEAKK0BAIC02MCw3NSArNDQsNjAgQEAgbXNnc3RyICIiCiAgIm5ldCkuXG4iCiAgIkFUVEVOVElPTiA6IFZvaXIgbGVzIG9wdGlvbnMgLS1oZWxwLCAtLWRlYnVnIGV0IC0tZHJpdmViYXNlLlxuIgogIApAQCAtMjE2LDcgKzIyMCw3IEBACiAgIiAgLWIgICAtLWRyaXZlYmFzZSAgIDogIGRpc3BsYXkgZGF0YWJhc2UgZmlsZSBjb250ZW50IHRoYXQgYWxsb3cgaGRkdGVtcCB0b1xuIgogICIgICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemUgc3VwcG9ydGVkIGRyaXZlcy5cbiIKICAiICAtRCAgIC0tZGVidWcgICAgICAgOiAgZGlzcGxheSB2YXJpb3VzIFMuTS5BLlIuVC4gZmllbGRzIGFuZCB0aGVpciB2YWx1ZXMuXG4iCi1AQCAtMTM4LDYgKzEwNyw3IEBACitAQCAtMTM4LDYgKzEwNyw3IEBAIG1zZ2lkICIiCiAgIiAgLWQgICAtLWRhZW1vbiAgICAgIDogIHJ1biBoZGR0ZW1wIGluIFRDUC9JUCBkYWVtb24gbW9kZSAocG9ydCAlZCBieSAiCiAgImRlZmF1bHQuKVxuIgogICIgIC1mICAgLS1maWxlPUZJTEUgICA6ICBzcGVjaWZ5IGRhdGFiYXNlIGZpbGUgdG8gdXNlLlxuIgpAQCAtMjI0LDcgKzIyOCw3IEBACiAgIiAgLWwgICAtLWxpc3Rlbj1hZGRyIDogIGxpc3RlbiBvbiBhIHNwZWNpZmljIGludGVyZmFjZSAoaW4gVENQL0lQIGRhZW1vbiAiCiAgIm1vZGUpLlxuIgogICIgIC1uICAgLS1udW1lcmljICAgICA6ICBwcmludCBvbmx5IHRoZSB0ZW1wZXJhdHVyZS5cbiIKLUBAIC0xNDUsNiArMTE1LDggQEAKK0BAIC0xNDUsNiArMTE1LDggQEAgbXNnaWQgIiIKICAiICAtcyAgIC0tc2VwYXJhdG9yPUMgOiAgc2VwYXJhdG9yIHRvIHVzZSBiZXR3ZWVuIGZpZWxkcyAoaW4gVENQL0lQIGRhZW1vbiAiCiAgIm1vZGUpLlxuIgogICIgIC1TICAgLS1zeXNsb2c9cyAgICA6ICBsb2cgdGVtcGVyYXR1cmUgdG8gc3lzbG9nIGV2ZXJ5IHMgc2Vjb25kcy5cbiIKQEAgLTIzMyw3ICsyMzcsNyBAQAogICIgIC1xICAgLS1xdWlldCAgICAgICA6ICBkbyBub3QgY2hlY2sgaWYgdGhlIGRyaXZlIGlzIHN1cHBvcnRlZC5cbiIKICAiICAtdiAgIC0tdmVyc2lvbiAgICAgOiAgZGlzcGxheSBoZGR0ZW1wIHZlcnNpb24gbnVtYmVyLlxuIgogICIgIC13ICAgLS13YWtlLXVwICAgICA6ICB3YWtlLXVwIHRoZSBkcml2ZSBpZiBuZWVkLlxuIgotQEAgLTE1MywxMSArMTI1LDE0IEBACitAQCAtMTUzLDExICsxMjUsMTQgQEAgbXNnaWQgIiIKICAiXG4iCiAgIlJlcG9ydCBidWdzIG9yIG5ldyBkcml2ZXMgdG8gPGhkZHRlbXBAZ3V6dS5uZXQ+LlxuIgogIG1zZ3N0ciAiIgpAQCAtMjQ5LDcgKzI1Myw3IEBACiAgIiAgLWIgICAtLWRyaXZlYmFzZSAgIDogIGFmZmljaGUgbGUgY29udGVudSBkdSBmaWNoaWVyIGRlIGJhc2UgZGUgZG9ubullICIKICAicXVpIFxuIgogICIgICAgICAgICAgICAgICAgICAgICAgICBwZXJtZXQg4CBoZGR0ZW1wIGRlIHJlY29ubmHudHJlIGxlcyBsZWN0ZXVycyAiCi1AQCAtMTcyLDYgKzE0Nyw3IEBACitAQCAtMTcyLDYgKzE0Nyw3IEBAIG1zZ3N0ciAiIgogICJk6WZhdXQpLlxuIgogICIgIC1mICAgLS1maWxlPUZJTEUgICA6ICBzcGVjaWZpZSBsZSBmaWNoaWVyIOAgdXRpbGlzZXIgY29tbWUgYmFzZSBkZSAiCiAgImRvbm7pZXMuXG4iCkBAIC0yNTcsNyArMjYxLDcgQEAKICAiICAtbCAgIC0tbGlzdGVuPWFkZHIgOiAg6WNvdXRlIHN1ciB1bmUgaW50ZXJmYWNlIHNw6WNpZmlxdWUgKGVuIG1vZGUgZOltb24gIgogICJUQ1AvSVApLlxuIgogICIgIC1uICAgLS1udW1lcmljICAgICA6ICBhZmZpY2hlIHNldWxlbWVudCBsYSB0ZW1w6XJhdHVyZS5cbiIKLUBAIC0xODAsNiArMTU2LDggQEAKK0BAIC0xODAsNiArMTU2LDggQEAgbXNnc3RyICIiCiAgImTpbW9uIFRDUC9JUCkuXG4iCiAgIiAgLVMgICAtLXN5c2xvZz1zICAgIDogIGVucmVnaXN0cmUgbGEgdGVtcOlyYXR1cmUgZGFucyBzeXNsb2cgdG91cyBsZXMgcyAiCiAgInNlY29uZGVzLlxuIgpAQCAtMjY2LDcgKzI3MCw3IEBACiAgIiAgLXEgICAtLXF1aWV0ICAgICAgIDogIG5lIHbpcmlmaWUgcGFzIHNpIGxlIGxlY3RldXIgZXN0IHN1cHBvcnTpLlxuIgogICIgIC12ICAgLS12ZXJzaW9uICAgICA6ICBhZmZpY2hlIGxhIHZlcnNpb24gZGUgaGRkdGVtcC5cbiIKICAiICAtdyAgIC0td2FrZS11cCAgICAgOiAgcul2ZWlsbGVyIGxlIGxlY3RldXIgc2kgbuljZXNzYWlyZS5cbiIKLUBAIC0xODgsNjIgKzE2Niw5NSBAQAorQEAgLTE4OCw2MiArMTY2LDk1IEBAIG1zZ3N0ciAiIgogICJcbiIKICAiUmVwb3J0IGJ1Z3Mgb3IgbmV3IGRyaXZlcyB0byA8aGRkdGVtcEBndXp1Lm5ldD4uXG4iCiAgCkBAIC0zNzcsNiArMzgxLDggQEAKICsKICsjfiBtc2dpZCAiZmllbGQoJWQpXHQgPSAlZFxuIgogKyN+IG1zZ3N0ciAiY2hhbXAoJWQpXHQgPSAlZFxuIgorSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9wby9ydS5wbworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3BvL3J1LnBvCiArKysgaGRkdGVtcC0wLjMtYmV0YTE1L3BvL3J1LnBvCiBAQCAtNiw4ICs2LDggQEAKQEAgLTM5MCw3ICszOTYsNyBAQAogICJQTy1SZXZpc2lvbi1EYXRlOiAyMDAzLTAzLTA4IDE2OjQyKzAzMDBcbiIKICAiTGFzdC1UcmFuc2xhdG9yOiBNaWNoYWVsIFNoaWdvcmluIDxtaWtlQGFsdGxpbnV4LnJ1PlxuIgogICJMYW5ndWFnZS1UZWFtOiBSdXNzaWFuIDxydUBsaS5vcmc+XG4iCi1AQCAtMTUsMjMgKzE1LDcgQEAKK0BAIC0xNSwyMyArMTUsNyBAQCBtc2dzdHIgIiIKICAiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWtvaTgtclxuIgogICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiAgCkBAIC00MTUsNyArNDIxLDcgQEAKICAjLCBjLWZvcm1hdAogIG1zZ2lkICIiCiAgIlxuIgotQEAgLTQwLDcgKzI0LDcgQEAKK0BAIC00MCw3ICsyNCw3IEBAIG1zZ2lkICIiCiAgIlxuIgogIG1zZ3N0ciAiIgogIApAQCAtNDI0LDcgKzQzMCw3IEBACiAgIywgYy1mb3JtYXQKICBtc2dpZCAiIgogICJXQVJOSU5HOiBEcml2ZSAlcyBkb2Vzbid0IHNlZW0gdG8gaGF2ZSBhIHRlbXBlcmF0dXJlIHNlbnNvci5cbiIKLUBAIC01Myw3MiArMzcsNTkgQEAKK0BAIC01Myw3MiArMzcsNTkgQEAgbXNnc3RyICIiCiAgIvfu6e3h7unlOiDl08zJINfZINTP3s7PINrOwcXUxSwg3tTPIMTB1N7JyyDF09TYLCDOwdDJ28nUxSBoZGR0ZW1wQGd1enUubmV0XG4iCiAgIvfu6e3h7unlOiAo080uIM/Qw8nJIC0taGVscCwgLS1kZWJ1ZyDJIC0tZHJpdmViYXNlKS5cbiIKICAKQEAgLTUxMiw3ICs1MTgsNyBAQAogICIgIC1iICAgLS1kcml2ZWJhc2UgICA6ICBkaXNwbGF5IGRhdGFiYXNlIGZpbGUgY29udGVudCB0aGF0IGFsbG93IGhkZHRlbXAgdG9cbiIKICAiICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXplIHN1cHBvcnRlZCBkcml2ZXMuXG4iCiAgIiAgLUQgICAtLWRlYnVnICAgICAgIDogIGRpc3BsYXkgdmFyaW91cyBTLk0uQS5SLlQuIGZpZWxkcyBhbmQgdGhlaXIgdmFsdWVzLlxuIgotQEAgLTEyOCw2ICs5OSw3IEBACitAQCAtMTI4LDYgKzk5LDcgQEAgbXNnaWQgIiIKICAiICAtZCAgIC0tZGFlbW9uICAgICAgOiAgcnVuIGhkZHRlbXAgaW4gVENQL0lQIGRhZW1vbiBtb2RlIChwb3J0ICVkIGJ5ICIKICAiZGVmYXVsdC4pXG4iCiAgIiAgLWYgICAtLWZpbGU9RklMRSAgIDogIHNwZWNpZnkgZGF0YWJhc2UgZmlsZSB0byB1c2UuXG4iCkBAIC01MjAsNyArNTI2LDcgQEAKICAiICAtbCAgIC0tbGlzdGVuPWFkZHIgOiAgbGlzdGVuIG9uIGEgc3BlY2lmaWMgaW50ZXJmYWNlIChpbiBUQ1AvSVAgZGFlbW9uICIKICAibW9kZSkuXG4iCiAgIiAgLW4gICAtLW51bWVyaWMgICAgIDogIHByaW50IG9ubHkgdGhlIHRlbXBlcmF0dXJlLlxuIgotQEAgLTEzNSw2ICsxMDcsOCBAQAorQEAgLTEzNSw2ICsxMDcsOCBAQCBtc2dpZCAiIgogICIgIC1zICAgLS1zZXBhcmF0b3I9QyA6ICBzZXBhcmF0b3IgdG8gdXNlIGJldHdlZW4gZmllbGRzIChpbiBUQ1AvSVAgZGFlbW9uICIKICAibW9kZSkuXG4iCiAgIiAgLVMgICAtLXN5c2xvZz1zICAgIDogIGxvZyB0ZW1wZXJhdHVyZSB0byBzeXNsb2cgZXZlcnkgcyBzZWNvbmRzLlxuIgpAQCAtNTI5LDcgKzUzNSw3IEBACiAgIiAgLXEgICAtLXF1aWV0ICAgICAgIDogIGRvIG5vdCBjaGVjayBpZiB0aGUgZHJpdmUgaXMgc3VwcG9ydGVkLlxuIgogICIgIC12ICAgLS12ZXJzaW9uICAgICA6ICBkaXNwbGF5IGhkZHRlbXAgdmVyc2lvbiBudW1iZXIuXG4iCiAgIiAgLXcgICAtLXdha2UtdXAgICAgIDogIHdha2UtdXAgdGhlIGRyaXZlIGlmIG5lZWQuXG4iCi1AQCAtMTY4LDU5ICsxNDIsOTAgQEAKK0BAIC0xNjgsNTkgKzE0Miw5MCBAQCBtc2dzdHIgIiIKICAiXG4iCiAgIvPPz8Ldxc7J0SDPwiDP28nCy8HIIMkgxMHOztnFIMTM0SDEydPLz9cgz9TQ0sHXzNHK1MUgzsEgPGhkZHRlbXBAZ3V6dS5uZXQ+LlxuIgogIApAQCAtNjM2LDYgKzY0Miw4IEBACiArCiArI34gbXNnaWQgImZpZWxkKCVkKVx0ID0gJWRcbiIKICsjfiBtc2dzdHIgItDPzMUoJWQpXHQgPSAlZFxuIgorSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9wby9zdi5wbworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3BvL3N2LnBvCiArKysgaGRkdGVtcC0wLjMtYmV0YTE1L3BvL3N2LnBvCiBAQCAtNiw4ICs2LDggQEAKQEAgLTY0OSw3ICs2NTcsNyBAQAogICJQTy1SZXZpc2lvbi1EYXRlOiAyMDA1LTExLTAyIDE5OjAzKzAxMDBcbiIKICAiTGFzdC1UcmFuc2xhdG9yOiBEYW5pZWwgTnlsYW5kZXIgPHBvQGRhbmllbG55bGFuZGVyLnNlPlxuIgogICJMYW5ndWFnZS1UZWFtOiBTd2VkaXNoIDxzdkBsaS5vcmc+XG4iCi1AQCAtMTcsMjMgKzE3LDcgQEAKK0BAIC0xNywyMyArMTcsNyBAQCBtc2dzdHIgIiIKICAiWC1Qb2VkaXQtTGFuZ3VhZ2U6IHN3ZVxuIgogICJYLVBvZWRpdC1Db3VudHJ5OiBzd2VcbiIKICAKQEAgLTY3NCw3ICs2ODIsNyBAQAogICMsIGMtZm9ybWF0CiAgbXNnaWQgIiIKICAiXG4iCi1AQCAtNDYsNyArMzAsNyBAQAorQEAgLTQ2LDcgKzMwLDcgQEAgbXNnc3RyICIiCiAgIk1vZGVsbDogJXNcbiIKICAiXG4iCiAgCkBAIC02ODMsNyArNjkxLDcgQEAKICAjLCBjLWZvcm1hdAogIG1zZ2lkICIiCiAgIldBUk5JTkc6IERyaXZlICVzIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIGEgdGVtcGVyYXR1cmUgc2Vuc29yLlxuIgotQEAgLTYwLDc2ICs0NCw2MyBAQAorQEAgLTYwLDc2ICs0NCw2MyBAQCBtc2dzdHIgIiIKICAibmV0KS5cbiIKICAiVkFSTklORzogU2UgLS1oZWxwLCAtLWRlYnVnIG9jaCAtLWRyaXZlYmFzZSBmbGFnZ29ybmEuXG4iCiAgCkBAIC03NzcsNyArNzg1LDcgQEAKICAiICAtYiAgIC0tZHJpdmViYXNlICAgOiAgZGlzcGxheSBkYXRhYmFzZSBmaWxlIGNvbnRlbnQgdGhhdCBhbGxvdyBoZGR0ZW1wIHRvXG4iCiAgIiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml6ZSBzdXBwb3J0ZWQgZHJpdmVzLlxuIgogICIgIC1EICAgLS1kZWJ1ZyAgICAgICA6ICBkaXNwbGF5IHZhcmlvdXMgUy5NLkEuUi5ULiBmaWVsZHMgYW5kIHRoZWlyIHZhbHVlcy5cbiIKLUBAIC0xMzksNiArMTEwLDcgQEAKK0BAIC0xMzksNiArMTEwLDcgQEAgbXNnaWQgIiIKICAiICAtZCAgIC0tZGFlbW9uICAgICAgOiAgcnVuIGhkZHRlbXAgaW4gVENQL0lQIGRhZW1vbiBtb2RlIChwb3J0ICVkIGJ5ICIKICAiZGVmYXVsdC4pXG4iCiAgIiAgLWYgICAtLWZpbGU9RklMRSAgIDogIHNwZWNpZnkgZGF0YWJhc2UgZmlsZSB0byB1c2UuXG4iCkBAIC03ODUsNyArNzkzLDcgQEAKICAiICAtbCAgIC0tbGlzdGVuPWFkZHIgOiAgbGlzdGVuIG9uIGEgc3BlY2lmaWMgaW50ZXJmYWNlIChpbiBUQ1AvSVAgZGFlbW9uICIKICAibW9kZSkuXG4iCiAgIiAgLW4gICAtLW51bWVyaWMgICAgIDogIHByaW50IG9ubHkgdGhlIHRlbXBlcmF0dXJlLlxuIgotQEAgLTE0Niw2ICsxMTgsOCBAQAorQEAgLTE0Niw2ICsxMTgsOCBAQCBtc2dpZCAiIgogICIgIC1zICAgLS1zZXBhcmF0b3I9QyA6ICBzZXBhcmF0b3IgdG8gdXNlIGJldHdlZW4gZmllbGRzIChpbiBUQ1AvSVAgZGFlbW9uICIKICAibW9kZSkuXG4iCiAgIiAgLVMgICAtLXN5c2xvZz1zICAgIDogIGxvZyB0ZW1wZXJhdHVyZSB0byBzeXNsb2cgZXZlcnkgcyBzZWNvbmRzLlxuIgpAQCAtNzk0LDcgKzgwMiw3IEBACiAgIiAgLXEgICAtLXF1aWV0ICAgICAgIDogIGRvIG5vdCBjaGVjayBpZiB0aGUgZHJpdmUgaXMgc3VwcG9ydGVkLlxuIgogICIgIC12ICAgLS12ZXJzaW9uICAgICA6ICBkaXNwbGF5IGhkZHRlbXAgdmVyc2lvbiBudW1iZXIuXG4iCiAgIiAgLXcgICAtLXdha2UtdXAgICAgIDogIHdha2UtdXAgdGhlIGRyaXZlIGlmIG5lZWQuXG4iCi1AQCAtMTg0LDYxICsxNTgsOTEgQEAKK0BAIC0xODQsNjEgKzE1OCw5MSBAQCBtc2dzdHIgIiIKICAiXG4iCiAgIlJhcHBvcnRlcmEgYnVnZ2FyIGVsbGVyIG55YSBo5XJkZGlza2FyIHRpbGwgPGhkZHRlbXBAZ3V6dS5uZXQ+LlxuIgogIApAQCAtOTAxLDkgKzkwOSwxMSBAQAogKwogKyN+IG1zZ2lkICJmaWVsZCglZClcdCA9ICVkXG4iCiArI34gbXNnc3RyICJm5Gx0KCVkKVx0ID0gJWRcbiIKK0luZGV4OiBoZGR0ZW1wLTAuMy1iZXRhMTUvcG8vcHQucG8KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9wby9wdC5wbwogKysrIGhkZHRlbXAtMC4zLWJldGExNS9wby9wdC5wbwotQEAgLTcsNyArNyw3IEBACitAQCAtNyw3ICs3LDcgQEAgbXNnaWQgIiIKICBtc2dzdHIgIiIKICAiUHJvamVjdC1JZC1WZXJzaW9uOiBoZGR0ZW1wIDAuMy1iZXRhMTRcbiIKICAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgpAQCAtOTEyLDcgKzkyMiw3IEBACiAgIlBPLVJldmlzaW9uLURhdGU6IDIwMDYtMDMtMjkgMjM6MjIrMDAwMFxuIgogICJMYXN0LVRyYW5zbGF0b3I6IE1pZ3VlbCBGaWd1ZWlyZWRvIDxlbG1pZ0BkZWJpYW5wLm9yZz5cbiIKICAiTGFuZ3VhZ2UtVGVhbTogUG9ydHVndWVzZSA8dHJhZHV6QGRlYmlhbnB0Lm9yZz5cbiIKLUBAIC0xNSwyMyArMTUsNyBAQAorQEAgLTE1LDIzICsxNSw3IEBAIG1zZ3N0ciAiIgogICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcbiIKICAiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgogIApAQCAtOTM3LDcgKzk0Nyw3IEBACiAgIywgYy1mb3JtYXQKICBtc2dpZCAiIgogICJcbiIKLUBAIC00NCw3ICsyOCw3IEBACitAQCAtNDQsNyArMjgsNyBAQCBtc2dzdHIgIiIKICAiTW9kZWxvOiAlc1xuIgogICJcbiIKICAKQEAgLTk0Niw3ICs5NTYsNyBAQAogICMsIGMtZm9ybWF0CiAgbXNnaWQgIiIKICAiV0FSTklORzogRHJpdmUgJXMgZG9lc24ndCBzZWVtIHRvIGhhdmUgYSB0ZW1wZXJhdHVyZSBzZW5zb3IuXG4iCi1AQCAtNTQsNzkgKzM4LDY4IEBACitAQCAtNTQsNzkgKzM4LDY4IEBAIG1zZ2lkICIiCiAgbXNnc3RyICIiCiAgIkFWSVNPOiBPIGRpc2NvICVzIG7Do28gcGFyZWNlIHRlciB1bSBzZW5zb3IgZGUgdGVtcGVyYXR1cmEuXG4iCiAgIkFWSVNPOiBJc3RvIG7Do28gc2lnbmlmaWNhIHF1ZSBuw6NvIHRlbSBuZW5odW0uXG4iCkBAIC0xMDQ3LDcgKzEwNTcsNyBAQAogICIgIC1iICAgLS1kcml2ZWJhc2UgICA6ICBkaXNwbGF5IGRhdGFiYXNlIGZpbGUgY29udGVudCB0aGF0IGFsbG93IGhkZHRlbXAgdG9cbiIKICAiICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXplIHN1cHBvcnRlZCBkcml2ZXMuXG4iCiAgIiAgLUQgICAtLWRlYnVnICAgICAgIDogIGRpc3BsYXkgdmFyaW91cyBTLk0uQS5SLlQuIGZpZWxkcyBhbmQgdGhlaXIgdmFsdWVzLlxuIgotQEAgLTEzNiw2ICsxMDksNyBAQAorQEAgLTEzNiw2ICsxMDksNyBAQCBtc2dpZCAiIgogICIgIC1kICAgLS1kYWVtb24gICAgICA6ICBydW4gaGRkdGVtcCBpbiBUQ1AvSVAgZGFlbW9uIG1vZGUgKHBvcnQgJWQgYnkgIgogICJkZWZhdWx0LilcbiIKICAiICAtZiAgIC0tZmlsZT1GSUxFICAgOiAgc3BlY2lmeSBkYXRhYmFzZSBmaWxlIHRvIHVzZS5cbiIKQEAgLTEwNTUsNyArMTA2NSw3IEBACiAgIiAgLWwgICAtLWxpc3Rlbj1hZGRyIDogIGxpc3RlbiBvbiBhIHNwZWNpZmljIGludGVyZmFjZSAoaW4gVENQL0lQIGRhZW1vbiAiCiAgIm1vZGUpLlxuIgogICIgIC1uICAgLS1udW1lcmljICAgICA6ICBwcmludCBvbmx5IHRoZSB0ZW1wZXJhdHVyZS5cbiIKLUBAIC0xNDMsNiArMTE3LDggQEAKK0BAIC0xNDMsNiArMTE3LDggQEAgbXNnaWQgIiIKICAiICAtcyAgIC0tc2VwYXJhdG9yPUMgOiAgc2VwYXJhdG9yIHRvIHVzZSBiZXR3ZWVuIGZpZWxkcyAoaW4gVENQL0lQIGRhZW1vbiAiCiAgIm1vZGUpLlxuIgogICIgIC1TICAgLS1zeXNsb2c9cyAgICA6ICBsb2cgdGVtcGVyYXR1cmUgdG8gc3lzbG9nIGV2ZXJ5IHMgc2Vjb25kcy5cbiIKQEAgLTEwNjQsNyArMTA3NCw3IEBACiAgIiAgLXEgICAtLXF1aWV0ICAgICAgIDogIGRvIG5vdCBjaGVjayBpZiB0aGUgZHJpdmUgaXMgc3VwcG9ydGVkLlxuIgogICIgIC12ICAgLS12ZXJzaW9uICAgICA6ICBkaXNwbGF5IGhkZHRlbXAgdmVyc2lvbiBudW1iZXIuXG4iCiAgIiAgLXcgICAtLXdha2UtdXAgICAgIDogIHdha2UtdXAgdGhlIGRyaXZlIGlmIG5lZWQuXG4iCi1AQCAtMTU2LDE5ICsxMzIsMjMgQEAKK0BAIC0xNTYsMTkgKzEzMiwyMyBAQCBtc2dzdHIgIiIKICAiICAgaGRkdGVtcCBtb3N0cmEgYSB0ZW1wZXJhdHVyYSBkb3MgZGlzY29zIGluZGljYWRvcyBubyBhcmd1bWVudG8uXG4iCiAgIiAgIE9zIGRpc2NvcyB0w6ptIGRlIHN1cG9ydGFyIFMuTS5BLlIuVC5cbiIKICAiXG4iCkBAIC0xMDk2LDcgKzExMDYsNyBAQAogICIgIC1xICAgLS1xdWlldCAgICAgICA6ICBuw6NvIHZlcmlmaWNhciBzZSBvIGRpc2NvIMOpIHN1cG9ydGFkby5cbiIKICAiICAtdiAgIC0tdmVyc2lvbiAgICAgOiAgbW9zdHJhciBvIG7Dum1lcm8gZGEgdmVyc8OjbyBkbyBoZGR0ZW1wLlxuIgogICIgIC13ICAgLS13YWtlLXVwICAgICA6ICBhY29yZGFyIG8gZGlzY28gc2UgbmVjZXNzw6FyaW8uXG4iCi1AQCAtMTc3LDU4ICsxNTcsOTMgQEAKK0BAIC0xNzcsNTggKzE1Nyw5MyBAQCBtc2dzdHIgIiIKICAiXG4iCiAgIlJlbGF0YXIgYnVncyBvdSBub3ZvcyBkaXNjb3MgcGFyYSA8aGRkdGVtcEBndXp1Lm5ldD4uXG4iCiAgCkBAIC0xMjA4LDcgKzEyMTgsOSBAQAogKwogKyN+IG1zZ2lkICJmaWVsZCglZClcdCA9ICVkXG4iCiArI34gbXNnc3RyICJjYW1wbyglZClcdCA9ICVkXG4iCi0tLS0gaGRkdGVtcC0wLjMtYmV0YTE1Lm9yaWcvcG8vZGUucG8KK0luZGV4OiBoZGR0ZW1wLTAuMy1iZXRhMTUvcG8vZGUucG8KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwKICsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvcG8vZGUucG8KIEBAIC0wLDAgKzEsMjUwIEBACiArIyBHZXJtYW4gdHJhbnNsYXRpb24gb2YgaGRkdGVtcC4KQEAgLTE0NjEsMTIgKzE0NzMsMTYgQEAKICsjLCBjLWZvcm1hdAogK21zZ2lkICJsb2cgc2Vuc2UgZmFpbGVkIDogJXMiCiArbXNnc3RyICJQcm90b2tvbGwtRXJrZW5udW5nIGZlaGxnZXNjaGxhZ2VuIDogJXMiCitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L3BvL0xJTkdVQVMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9wby9MSU5HVUFTCiArKysgaGRkdGVtcC0wLjMtYmV0YTE1L3BvL0xJTkdVQVMKIEBAIC0xLDIgKzEsMiBAQAogICMgU2V0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMuCiAtZnIgcHQgcnUgc3YgCiArZGUgZnIgcHQgcnUgc3YgCitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L3BvL2hkZHRlbXAucG90Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gaGRkdGVtcC0wLjMtYmV0YTE1Lm9yaWcvcG8vaGRkdGVtcC5wb3QKICsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvcG8vaGRkdGVtcC5wb3QKIEBAIC0xLDM1ICsxLDIyIEBACkBAIC0xNTEzLDcgKzE1MjksNyBAQAogICMsIGMtZm9ybWF0CiAgbXNnaWQgIiIKICAiXG4iCi1AQCAtMzgsNyArMjUsNyBAQAorQEAgLTM4LDcgKzI1LDcgQEAgbXNnaWQgIiIKICAiXG4iCiAgbXNnc3RyICIiCiAgCkBAIC0xNTIyLDcgKzE1MzgsNyBAQAogICMsIGMtZm9ybWF0CiAgbXNnaWQgIiIKICAiV0FSTklORzogRHJpdmUgJXMgZG9lc24ndCBzZWVtIHRvIGhhdmUgYSB0ZW1wZXJhdHVyZSBzZW5zb3IuXG4iCi1AQCAtNDcsNjcgKzM0LDU5IEBACitAQCAtNDcsNjcgKzM0LDU5IEBAIG1zZ2lkICIiCiAgIldBUk5JTkc6IFNlZSAtLWhlbHAsIC0tZGVidWcgYW5kIC0tZHJpdmViYXNlIG9wdGlvbnMuXG4iCiAgbXNnc3RyICIiCiAgCkBAIC0xNjA0LDcgKzE2MjAsNyBAQAogICIgIC1iICAgLS1kcml2ZWJhc2UgICA6ICBkaXNwbGF5IGRhdGFiYXNlIGZpbGUgY29udGVudCB0aGF0IGFsbG93IGhkZHRlbXAgdG9cbiIKICAiICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXplIHN1cHBvcnRlZCBkcml2ZXMuXG4iCiAgIiAgLUQgICAtLWRlYnVnICAgICAgIDogIGRpc3BsYXkgdmFyaW91cyBTLk0uQS5SLlQuIGZpZWxkcyBhbmQgdGhlaXIgdmFsdWVzLlxuIgotQEAgLTExNyw2ICs5Niw3IEBACitAQCAtMTE3LDYgKzk2LDcgQEAgbXNnaWQgIiIKICAiICAtZCAgIC0tZGFlbW9uICAgICAgOiAgcnVuIGhkZHRlbXAgaW4gVENQL0lQIGRhZW1vbiBtb2RlIChwb3J0ICVkIGJ5ICIKICAiZGVmYXVsdC4pXG4iCiAgIiAgLWYgICAtLWZpbGU9RklMRSAgIDogIHNwZWNpZnkgZGF0YWJhc2UgZmlsZSB0byB1c2UuXG4iCkBAIC0xNjEyLDcgKzE2MjgsNyBAQAogICIgIC1sICAgLS1saXN0ZW49YWRkciA6ICBsaXN0ZW4gb24gYSBzcGVjaWZpYyBpbnRlcmZhY2UgKGluIFRDUC9JUCBkYWVtb24gIgogICJtb2RlKS5cbiIKICAiICAtbiAgIC0tbnVtZXJpYyAgICAgOiAgcHJpbnQgb25seSB0aGUgdGVtcGVyYXR1cmUuXG4iCi1AQCAtMTI0LDYgKzEwNCw4IEBACitAQCAtMTI0LDYgKzEwNCw4IEBAIG1zZ2lkICIiCiAgIiAgLXMgICAtLXNlcGFyYXRvcj1DIDogIHNlcGFyYXRvciB0byB1c2UgYmV0d2VlbiBmaWVsZHMgKGluIFRDUC9JUCBkYWVtb24gIgogICJtb2RlKS5cbiIKICAiICAtUyAgIC0tc3lzbG9nPXMgICAgOiAgbG9nIHRlbXBlcmF0dXJlIHRvIHN5c2xvZyBldmVyeSBzIHNlY29uZHMuXG4iCkBAIC0xNjIxLDcgKzE2MzcsNyBAQAogICIgIC1xICAgLS1xdWlldCAgICAgICA6ICBkbyBub3QgY2hlY2sgaWYgdGhlIGRyaXZlIGlzIHN1cHBvcnRlZC5cbiIKICAiICAtdiAgIC0tdmVyc2lvbiAgICAgOiAgZGlzcGxheSBoZGR0ZW1wIHZlcnNpb24gbnVtYmVyLlxuIgogICIgIC13ICAgLS13YWtlLXVwICAgICA6ICB3YWtlLXVwIHRoZSBkcml2ZSBpZiBuZWVkLlxuIgotQEAgLTEzMyw1OCArMTE1LDY5IEBACitAQCAtMTMzLDU4ICsxMTUsNjkgQEAgbXNnaWQgIiIKICAiUmVwb3J0IGJ1Z3Mgb3IgbmV3IGRyaXZlcyB0byA8aGRkdGVtcEBndXp1Lm5ldD4uXG4iCiAgbXNnc3RyICIiCiAgCkBAIC0xNzA1LDkgKzE3MjEsMTEgQEAKICAjLCBjLWZvcm1hdAogIG1zZ2lkICJsb2cgc2Vuc2UgZmFpbGVkIDogJXMiCiAgbXNnc3RyICIiCitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9zYXRhLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9zcmMvc2F0YS5jCiArKysgaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9zYXRhLmMKLUBAIC0xMTgsMTEgKzExOCwyMiBAQAorQEAgLTExOCwxMSArMTE4LDIyIEBAIHN0YXRpYyBlbnVtIGVfZ2V0dGVtcCBzYXRhX2dldF90ZW1wZXJhdHUKICAgIGludCAgICAgICAgICAgICAgaTsKICAgIHUxNiAqICAgICAgICAgICAgcDsKICAKQEAgLTE3MzEsNyArMTc0OSw3IEBACiAgICAKICAgIC8qIGdldCBTTUFSVCB2YWx1ZXMgKi8KICAgIGlmKHNhdGFfZW5hYmxlX3NtYXJ0KGRzay0+ZmQpICE9IDApIHsKLUBAIC0xNTQsMjQgKzE2NSwxNSBAQAorQEAgLTE1NCwyNCArMTY1LDE1IEBAIHN0YXRpYyBlbnVtIGVfZ2V0dGVtcCBzYXRhX2dldF90ZW1wZXJhdHUKICAgIH0KICAKICAgIC8qIHRlbXBlcmF0dXJlICovCkBAIC0xNzU5LDYgKzE3NzcsOCBAQAogIAogICAgLyogbmV2ZXIgcmVhY2hlZCAqLwogIH0KK0luZGV4OiBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL3NhdGFjbWRzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9zcmMvc2F0YWNtZHMuYwogKysrIGhkZHRlbXAtMC4zLWJldGExNS9zcmMvc2F0YWNtZHMuYwogQEAgLTM5LDcgKzM5LDcgQEAKQEAgLTE3NzAsNyArMTc5MCw3IEBACiAgCiAgLy8gQXBwbGljYXRpb24gc3BlY2lmaWMgaW5jbHVkZXMKICAjaW5jbHVkZSAic2F0YWNtZHMuaCIKLUBAIC04MCw4ICs4MCw4IEBACitAQCAtODAsOCArODAsOCBAQCBpbnQgc2F0YV9wYXNzX3RocnUoaW50IGRldmljZSwgdW5zaWduZWQKICAKICAgIHJldCA9IHNjc2lfU0dfSU8oZGV2aWNlLCBjZGIsIHNpemVvZihjZGIpLCBidWZmZXIsIGNtZFszXSAqIDUxMiwgc2Vuc2UsIHNpemVvZihzZW5zZSksIGR4ZmVyX2RpcmVjdGlvbik7CiAgIApAQCAtMTc4MSw3ICsxODAxLDcgQEAKICAgICAgcmV0dXJuIDE7CQkgIAogICAgZWxzZSAKICAgICAgcmV0dXJuIHJldDsKLUBAIC05NSwxMCArOTUsMTAgQEAKK0BAIC05NSwxMCArOTUsMTAgQEAgdm9pZCBzYXRhX2ZpeHN0cmluZyh1bnNpZ25lZCBjaGFyICpzLCBpbgogICAgcCA9IHM7CiAgICBlbmQgPSAmc1tieXRlY291bnQgJiB+MV07IC8qIGJ5dGVjb3VudCBtdXN0IGJlIGV2ZW4gKi8KICAKQEAgLTE3OTQsNiArMTgxNCw4IEBACiAgICB9CiAgCiAgICAvKiBzdHJpcCBsZWFkaW5nIGJsYW5rcyAqLworSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9zcmMvYmFja3RyYWNlLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9zcmMvYmFja3RyYWNlLmMKICsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL2JhY2t0cmFjZS5jCiBAQCAtMTYsOSArMTYsMTAgQEAKQEAgLTE4MjIsNyArMTg0NCw3IEBACiAgCiAgI2RlZmluZSBNQVhfQlRTSVpFIDY0CiAgCi1AQCAtNDIsNyArNDcsNiBAQAorQEAgLTQyLDcgKzQ3LDYgQEAgdm9pZCBiYWNrdHJhY2VfaGFuZGxlcihpbnQgbiwgc2lnaW5mb190CiAgICBzdGF0aWMgY2hhciAqKm1lc3NhZ2VzID0gTlVMTDsKICAgIHN0YXRpYyBzaXplX3QgYnRzaXplID0gMDsKICAgIHN0YXRpYyBzaXplX3QgaTsKQEAgLTE4MzAsNyArMTg1Miw3IEBACiAgICBzdGF0aWMgY2hhciAqc3RyZXJyID0gIj8/PyI7CiAgICBzdGF0aWMgRklMRSAqZnN0cm07CiAgCi1AQCAtNjEsMTAgKzY1LDEwIEBACitAQCAtNjEsMTAgKzY1LDEwIEBAIHZvaWQgYmFja3RyYWNlX2hhbmRsZXIoaW50IG4sIHNpZ2luZm9fdAogICAgICAgIFNJQ19DQVNFKFNFR1ZfTUFQRVJSKTsKICAgICAgICBTSUNfQ0FTRShTRUdWX0FDQ0VSUik7CiAgICAgIH0KQEAgLTE4NDMsNyArMTg2NSw3IEBACiAgICAgIGJyZWFrOwogICAgY2FzZSBTSUdJTEw6CiAgICAgIHN3aXRjaChpc3QtPnNpX2NvZGUpIHsKLUBAIC03NywxMCArODEsMTAgQEAKK0BAIC03NywxMCArODEsMTAgQEAgdm9pZCBiYWNrdHJhY2VfaGFuZGxlcihpbnQgbiwgc2lnaW5mb190CiAgICAgICAgU0lDX0NBU0UoSUxMX0NPUFJPQyk7CiAgICAgICAgU0lDX0NBU0UoSUxMX0JBRFNUSyk7CiAgICAgIH0KQEAgLTE4NTYsNyArMTg3OCw3IEBACiAgICAgIGJyZWFrOwogICAgY2FzZSBTSUdCVVM6CiAgICAgIHN3aXRjaChpc3QtPnNpX2NvZGUpIHsKLUBAIC04OCwxMCArOTIsMTAgQEAKK0BAIC04OCwxMCArOTIsMTAgQEAgdm9pZCBiYWNrdHJhY2VfaGFuZGxlcihpbnQgbiwgc2lnaW5mb190CiAgICAgICAgU0lDX0NBU0UoQlVTX0FEUkVSUik7CiAgICAgICAgU0lDX0NBU0UoQlVTX09CSkVSUik7CiAgICAgIH0KQEAgLTE4NjksNyArMTg5MSw3IEBACiAgICAgIGJyZWFrOwogICAgfQogICAgZmZsdXNoKGZzdHJtKTsKLUBAIC0xMDEsNyArMTA1LDcgQEAKK0BAIC0xMDEsNyArMTA1LDcgQEAgdm9pZCBiYWNrdHJhY2VfaGFuZGxlcihpbnQgbiwgc2lnaW5mb190CiAgICAvKgogICAgICBvbGRfZWlwID0gKih1bnNpZ25lZCBpbnQqKSgodm9pZCopJm4tNCk7CiAgICAgIG9sZF9lYnAgPSAqKHVuc2lnbmVkIGludCopKCh2b2lkKikmbi04KTsKQEAgLTE4NzgsNyArMTkwMCw3IEBACiAgICAgICoodW5zaWduZWQgaW50KikoKHZvaWQqKSZuLTgpID0gcHVjLT51Y19tY29udGV4dC5ncmVnc1tSRUdfRUJQXTsgICAgCiAgICAgIAogICAgICBidHNpemUgPSBiYWNrdHJhY2UoYnRpbmZvLCBNQVhfQlRTSVpFKTsKLUBAIC0xMTEsMTQgKzExNSwxNCBAQAorQEAgLTExMSwxNCArMTE1LDE0IEBAIHZvaWQgYmFja3RyYWNlX2hhbmRsZXIoaW50IG4sIHNpZ2luZm9fdAogICAgKi8KICAgIAogICAgYnRzaXplID0gYmFja3RyYWNlKGJ0aW5mbywgTUFYX0JUU0laRSk7CkBAIC0xODk1LDkgKzE5MTcsMTEgQEAKICAgIGZmbHVzaChmc3RybSk7CiAgICBmY2xvc2UoZnN0cm0pOwogIAorSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9zcmMvZGFlbW9uLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9zcmMvZGFlbW9uLmMKICsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL2RhZW1vbi5jCi1AQCAtMTYzLDE5ICsxNjMsMTYgQEAKK0BAIC0xNjMsMTkgKzE2MywxNiBAQCB2b2lkIGRhZW1vbl9zZW5kX21zZyhzdHJ1Y3QgZGlzayAqbGRpc2tzCiAgCiAgICAgIHN3aXRjaChkc2stPnJldCkgewogICAgICBjYXNlIEdFVFRFTVBfTk9UX0FQUExJQ0FCTEU6CkBAIC0xOTIyLDcgKzE5NDYsNyBAQAogICAgICAgIGJyZWFrOwogICAgICBjYXNlIEdFVFRFTVBfS05PV046CiAgICAgICAgbiA9IHNucHJpbnRmKG1zZywgc2l6ZW9mKG1zZyksICIlcyVjJXMlYyVkJWMlYyIsCi1AQCAtMTg1LDI2ICsxODIsMjMgQEAKK0BAIC0xODUsMjYgKzE4MiwyMyBAQCB2b2lkIGRhZW1vbl9zZW5kX21zZyhzdHJ1Y3QgZGlzayAqbGRpc2tzCiAgICAgICAgICAgICAgICAgICAgIGdldF91bml0KGRzaykpOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIEdFVFRFTVBfTk9TRU5TT1I6CkBAIC0xOTU1LDcgKzE5NzksNyBAQAogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIHdyaXRlKGNmZCwmc2VwYXJhdG9yLCAxKTsKLUBAIC0yMjIsMTQgKzIxNiwxMSBAQAorQEAgLTIyMiwxNCArMjE2LDExIEBAIHZvaWQgZGFlbW9uX3N5c2xvZyhzdHJ1Y3QgZGlzayAqbGRpc2tzKQogICAgZm9yKGRzayA9IGxkaXNrczsgZHNrOyBkc2sgPSBkc2stPm5leHQpIHsKICAgICAgc3dpdGNoKGRzay0+cmV0KSB7CiAgICAgIGNhc2UgR0VUVEVNUF9LTk9XTjoKQEAgLTE5NzIsNyArMTk5Niw3IEBACiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgR0VUVEVNUF9EUklWRV9TTEVFUDoKICAgICAgICBzeXNsb2coTE9HX1dBUk5JTkcsIF8oIiVzOiAlczogZHJpdmUgaXMgc2xlZXBpbmciKSwgCi1AQCAtMjcwLDI4ICsyNjEsMzAgQEAKK0BAIC0yNzAsMjggKzI2MSwzMCBAQCB2b2lkIGRvX2RhZW1vbl9tb2RlKHN0cnVjdCBkaXNrICpsZGlza3MpCiAgICBmZF9zZXQgICAgICAgICAgICAgZGVmZmRzOwogICAgdGltZV90ICAgICAgICAgICAgIG5leHRfdGltZTsKICAKQEAgLTIwMjUsOSArMjA0OSwxMSBAQAogICAgfQogICAgY2hkaXIoIi8iKTsKICAgIHVtYXNrKDApOworSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9zcmMvaGRkdGVtcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gaGRkdGVtcC0wLjMtYmV0YTE1Lm9yaWcvc3JjL2hkZHRlbXAuYwogKysrIGhkZHRlbXAtMC4zLWJldGExNS9zcmMvaGRkdGVtcC5jCi1AQCAtNzUsNyArNzUsNyBAQAorQEAgLTc1LDcgKzc1LDcgQEAgY2hhciAqICAgICAgICAgICAgIGxpc3Rlbl9hZGRyOwogIGNoYXIgICAgICAgICAgICAgICBzZXBhcmF0b3IgPSBTRVBBUkFUT1I7CiAgCiAgc3RydWN0IGJ1c3R5cGUgKiAgIGJ1c1tCVVNfVFlQRV9NQVhdOwpAQCAtMjAzNiw3ICsyMDYyLDcgQEAKICAKICBzdGF0aWMgZW51bSB7IERFRkFVTFQsIENFTFNJVVMsIEZBSFJFTkhFSVQgfSB1bml0OwogIAotQEAgLTE5NCwyMyArMTk0LDcgQEAKK0BAIC0xOTQsMjMgKzE5NCw3IEBAIHN0YXRpYyB2b2lkIGRpc3BsYXlfdGVtcGVyYXR1cmUoc3RydWN0IGQKICAgICAgaWYgKG51bWVyaWMgJiYgcXVpZXQpCiAgICAgICAgcHJpbnRmKCIwXG4iKTsgICAgICAKICAgICAgZWxzZQpAQCAtMjA2MSw3ICsyMDg3LDcgQEAKICAKICAgICAgYnJlYWs7CiAgICBjYXNlIEdFVFRFTVBfS05PV046Ci1AQCAtMjMyLDE0ICsyMTYsMTQgQEAKK0BAIC0yMzIsMTQgKzIxNiwxNCBAQCBzdGF0aWMgdm9pZCBkaXNwbGF5X3RlbXBlcmF0dXJlKHN0cnVjdCBkCiAgICAgIGlmIChudW1lcmljICYmIHF1aWV0KQogICAgICAgIHByaW50ZigiMFxuIik7ICAgICAgCiAgICAgIGVsc2UKQEAgLTIwNzgsNyArMjEwNCw3IEBACiAgICAgICAgCiAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKLUBAIC0yNjgsOCArMjUyLDkgQEAKK0BAIC0yNjgsOCArMjUyLDkgQEAgdm9pZCBkb19kaXJlY3RfbW9kZShzdHJ1Y3QgZGlzayAqbGRpc2tzKQogIAogIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pIHsKICAgIGludCAgICAgICAgICAgaSwgYywgbGluZGV4ID0gMCwgZGJfbG9hZGVkID0gMDsKQEAgLTIwODksMTYgKzIxMTUsMTYgQEAKICAKICAgIGJhY2t0cmFjZV9zaWdzZWd2KCk7CiAgICBiYWNrdHJhY2Vfc2lnaWxsKCk7Ci1AQCAtMjc5LDcgKzI2NCw3IEBACi0gICBiaW5kdGV4dGRvbWFpbiAoUEFDS0FHRSwgTE9DQUxFRElSKTsKK0BAIC0yODMsNyArMjY4LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogICAgdGV4dGRvbWFpbiAoUEFDS0FHRSk7CisgI2VuZGlmCiAgICAKIC0gIHNob3dfZGIgPSBkZWJ1ZyA9IG51bWVyaWMgPSBxdWlldCA9IHdha2V1cCA9IGFmX2hpbnQgPSBzeXNsb2dfaW50ZXJ2YWwgPSAwOwogKyAgc2hvd19kYiA9IGRlYnVnID0gbnVtZXJpYyA9IHF1aWV0ID0gd2FrZXVwID0gYWZfaGludCA9IHN5c2xvZ19pbnRlcnZhbCA9IGZvcmVncm91bmQgPSAwOwogICAgdW5pdCA9IERFRkFVTFQ7CiAgICBwb3J0bnVtID0gUE9SVF9OVU1CRVI7CiAgICBsaXN0ZW5fYWRkciA9IE5VTEw7Ci1AQCAtMjk0LDYgKzI3OSw3IEBACitAQCAtMjk4LDYgKzI4Myw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pIHsKICAgICAgICB7ImRyaXZlYmFzZSIsICAwLCBOVUxMLCAnYid9LAogICAgICAgIHsiZGVidWciLCAgICAgIDAsIE5VTEwsICdEJ30sCiAgICAgICAgeyJmaWxlIiwgICAgICAgMSwgTlVMTCwgJ2YnfSwKQEAgLTIxMDYsNyArMjEzMiw3IEBACiAgICAgICAgeyJsaXN0ZW4iLCAgICAgMSwgTlVMTCwgJ2wnfSwKICAgICAgICB7InZlcnNpb24iLCAgICAwLCBOVUxMLCAndid9LAogICAgICAgIHsicG9ydCIsICAgICAgIDEsIE5VTEwsICdwJ30sCi1AQCAtMzA1LDcgKzI5MSw3IEBACitAQCAtMzA5LDcgKzI5NSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pIHsKICAgICAgICB7MCwgMCwgMCwgMH0KICAgICAgfTsKICAgCkBAIC0yMTE1LDcgKzIxNDEsNyBAQAogICAgICBpZiAoYyA9PSAtMSkKICAgICAgICBicmVhazsKICAgICAgCi1AQCAtMzgyLDEyICszNjgsMTMgQEAKK0BAIC0zODYsMTIgKzM3MiwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CiAgCQkgIiAgICAgICAgICAgICAgICAgICAgICAgIChkb25lIGZvciBldmVyeSBkcml2ZSBzdXBwbGllZCkuXG4iCiAgCQkgIiAgLWQgICAtLWRhZW1vbiAgICAgIDogIHJ1biBoZGR0ZW1wIGluIFRDUC9JUCBkYWVtb24gbW9kZSAocG9ydCAlZCBieSBkZWZhdWx0LilcbiIKICAJCSAiICAtZiAgIC0tZmlsZT1GSUxFICAgOiAgc3BlY2lmeSBkYXRhYmFzZSBmaWxlIHRvIHVzZS5cbiIKQEAgLTIxMzAsNyArMjE1Niw3IEBACiAgCQkgIiAgLXEgICAtLXF1aWV0ICAgICAgIDogIGRvIG5vdCBjaGVjayBpZiB0aGUgZHJpdmUgaXMgc3VwcG9ydGVkLlxuIgogIAkJICIgIC12ICAgLS12ZXJzaW9uICAgICA6ICBkaXNwbGF5IGhkZHRlbXAgdmVyc2lvbiBudW1iZXIuXG4iCiAgCQkgIiAgLXcgICAtLXdha2UtdXAgICAgIDogIHdha2UtdXAgdGhlIGRyaXZlIGlmIG5lZWQuXG4iCi1AQCAtNDE4LDYgKzQwNSw5IEBACitAQCAtNDIyLDYgKzQwOSw5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pIHsKICAJICB9CiAgICAgICAgICB9CiAgCWJyZWFrOwpAQCAtMjE0MCw3ICsyMTY2LDcgQEAKICAgICAgICBkZWZhdWx0OgogIAlleGl0KDEpOwogICAgICAgIH0KLUBAIC00ODksNiArNDc5LDcgQEAKK0BAIC00OTMsNiArNDgzLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogICAgICBpZiggKGRzay0+ZmQgPSBvcGVuKGRzay0+ZHJpdmUsIE9fUkRPTkxZIHwgT19OT05CTE9DSykpIDwgMCkgewogICAgICAgIHNucHJpbnRmKGRzay0+ZXJyb3Jtc2csIE1BWF9FUlJPUk1TR19TSVpFLCAib3BlbjogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7CiAgICAgICAgZHNrLT50eXBlID0gRVJST1I7CkBAIC0yMTQ4LDcgKzIxNzQsNyBAQAogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgCi1AQCAtNTAxLDYgKzQ5Miw3IEBACitAQCAtNTA1LDYgKzQ5Niw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pIHsKICAKICAgICAgICBsZGlza3MgPSBkc2stPm5leHQ7CiAgICAgICAgZnJlZShkc2spOwpAQCAtMjE1Niw3ICsyMTgyLDcgQEAKICAgICAgICBjb250aW51ZTsKICAgICAgfQogIAotQEAgLTUxNCwxMSArNTA2LDE3IEBACitAQCAtNTE4LDExICs1MTAsMTcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogIAlkYl9sb2FkZWQgPSAxOwogICAgICAgIH0gICAgICAKICAKQEAgLTIxNzcsMTYgKzIyMDMsMTggQEAKICAgICAgfQogICAgfQogIAotQEAgLTUzMCw1ICs1MjgsNSBAQAorQEAgLTUzNCw1ICs1MzIsNSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CiAgICAgIGRvX2RpcmVjdF9tb2RlKGxkaXNrcyk7CiAgICB9CiAgCiAtICByZXR1cm4gMDsKICsgIHJldHVybiByZXQ7CiAgfQorSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9zcmMvYXRhLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9zcmMvYXRhLmMKICsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL2F0YS5jCi1AQCAtNzUsNyArNzUsNyBAQAorQEAgLTc1LDcgKzc1LDcgQEAgc3RhdGljIGVudW0gZV9nZXR0ZW1wIGF0YV9nZXRfdGVtcGVyYXR1cgogICAgaW50ICAgICAgICAgICAgICBpOwogICAgdTE2ICogICAgICAgICAgICBwOwogIApAQCAtMjE5NSw3ICsyMjIzLDcgQEAKICAgICAgY2xvc2UoZHNrLT5mZCk7CiAgICAgIGRzay0+ZmQgPSAtMTsKICAgICAgcmV0dXJuIEdFVFRFTVBfTk9TRU5TT1I7Ci1AQCAtMTQwLDI0ICsxNDAsMTUgQEAKK0BAIC0xNDAsMjQgKzE0MCwxNSBAQCBzdGF0aWMgZW51bSBlX2dldHRlbXAgYXRhX2dldF90ZW1wZXJhdHVyCiAgICAqLwogIAogICAgLyogdGVtcGVyYXR1cmUgKi8KQEAgLTIyMjQsOSArMjI1MiwxMSBAQAogIAogICAgLyogbmV2ZXIgcmVhY2hlZCAqLwogIH0KK0luZGV4OiBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL2hkZHRlbXAuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3NyYy9oZGR0ZW1wLmgKICsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL2hkZHRlbXAuaAotQEAgLTM5LDggKzM5LDYgQEAKK0BAIC0zOSw4ICszOSw2IEBAIGVudW0gZV9nZXR0ZW1wIHsKICAgIEdFVFRFTVBfRVJST1IsICAgICAgICAgICAgLyogRXJyb3IgKi8KICAgIEdFVFRFTVBfTk9UX0FQUExJQ0FCTEUsICAgLyogKi8KICAgIEdFVFRFTVBfVU5LTk9XTiwgICAgICAgICAgLyogRHJpdmUgaXMgbm90IGluIGRhdGFiYXNlICovCkBAIC0yMjM1LDcgKzIyNjUsNyBAQAogICAgR0VUVEVNUF9LTk9XTiwgICAgICAgICAgICAvKiBEcml2ZSBhcHBlYXIgaW4gZGF0YWJhc2UgKi8KICAgIEdFVFRFTVBfTk9TRU5TT1IsICAgICAgICAgLyogRHJpdmUgYXBwZWFyIGluIGRhdGFiYXNlIGJ1dCBpcyBrbm93biB0byBoYXZlIG5vIHNlbnNvciAqLwogICAgR0VUVEVNUF9EUklWRV9TTEVFUCAgICAgICAvKiBEcml2ZSBpcyBzbGVlcGluZyAqLwotQEAgLTc4LDcgKzc2LDcgQEAKK0BAIC03OCw3ICs3Niw3IEBAIHN0cnVjdCBidXN0eXBlIHsKICAKICBleHRlcm4gc3RydWN0IGJ1c3R5cGUgKiAgIGJ1c1tCVVNfVFlQRV9NQVhdOwogIGV4dGVybiBjaGFyICAgICAgICAgICAgICAgZXJyb3Jtc2dbTUFYX0VSUk9STVNHX1NJWkVdOwpAQCAtMjI0NCw5ICsyMjc0LDExIEBACiAgZXh0ZXJuIGNoYXIgICAgICAgICAgICAgICBzZXBhcmF0b3I7CiAgZXh0ZXJuIGxvbmcgICAgICAgICAgICAgICBwb3J0bnVtLCBzeXNsb2dfaW50ZXJ2YWw7CiAgZXh0ZXJuIGNoYXIgKiAgICAgICAgICAgICBsaXN0ZW5fYWRkcjsKK0luZGV4OiBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL3Njc2ljbWRzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9zcmMvc2NzaWNtZHMuYwogKysrIGhkZHRlbXAtMC4zLWJldGExNS9zcmMvc2NzaWNtZHMuYwotQEAgLTE0Nyw2ICsxNDcsNyBAQAorQEAgLTE0Nyw2ICsxNDcsNyBAQCBpbnQgc2NzaV9pbnF1aXJ5KGludCBkZXZpY2UsIHVuc2lnbmVkIGNoCiAgICAgIHJldHVybiAxOwogICAgZWxzZSB7CiAgICAgIHNjc2lfZml4c3RyaW5nKGJ1ZmZlciArIDgsIDI0KTsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHRvcC9maWxlcy8wMDAxLVVzZS1wa2ctY29uZmlnLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9odG9wL2ZpbGVzLzAwMDEtVXNlLXBrZy1jb25maWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmMwZDg2ZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHRvcC9maWxlcy8wMDAxLVVzZS1wa2ctY29uZmlnLnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKK1dlIG5lZWQgdG8gdXNlIHBrZy1jb25maWcgdG8gZmluZCB0aGUgbmN1cnNlcyBsaWJyYXJ5IGluc3RlYWQgb2YgdGhlCituY3Vyc2VzKi1jb25maWcgYXBwbGljYXRpb25zLgorCitTaWduZWQtb2ZmLWJ5OiBQYXVsIEJhcmtlciA8cGJhcmtlckB0b2dhbmxhYnMuY29tPgorU2lnbmVkLW9mZi1ieTogUm9iZXJ0IEpvc2x5biA8cm9iZXJ0Lmpvc2x5bkByZWRyZWN0YW5nbGUub3JnPgorCitVcHN0cmVhbS1zdGF0dXM6IEluYXBwcm9wcmlhdGUKKyAgICAoYG5jdXJzZXMqLWNvbmZpZ2AgY2FuIGJlIHVzZWQgb3V0c2lkZSBvZiBPcGVuRW1iZWRkZWQpCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDU1OWRjNGQuLjc3YWVhMjIgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTE4NSwxMCArMTg1LDEwIEBAIG00X2RlZmluZShbSFRPUF9DSEVDS19MSUJdLAorIAorIEFDX0FSR19FTkFCTEUodW5pY29kZSwgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS11bmljb2RlXSwgW2VuYWJsZSBVbmljb2RlIHN1cHBvcnRdKV0sICxlbmFibGVfdW5pY29kZT0ieWVzIikKKyBpZiB0ZXN0ICJ4JGVuYWJsZV91bmljb2RlIiA9IHh5ZXM7IHRoZW4KKy0gICBIVE9QX0NIRUNLX1NDUklQVChbbmN1cnNlc3c2XSwgW2FkZG53c3RyXSwgW0hBVkVfTElCTkNVUlNFU1ddLCAibmN1cnNlc3c2LWNvbmZpZyIsCistICAgIEhUT1BfQ0hFQ0tfU0NSSVBUKFtuY3Vyc2Vzd10sIFthZGRud3N0cl0sIFtIQVZFX0xJQk5DVVJTRVNXXSwgIm5jdXJzZXN3Ni1jb25maWciLAorLSAgICAgSFRPUF9DSEVDS19TQ1JJUFQoW25jdXJzZXN3XSwgW2FkZG53c3RyXSwgW0hBVkVfTElCTkNVUlNFU1ddLCAibmN1cnNlc3c1LWNvbmZpZyIsCistICAgICAgSFRPUF9DSEVDS19TQ1JJUFQoW25jdXJzZXNdLCBbYWRkbndzdHJdLCBbSEFWRV9MSUJOQ1VSU0VTV10sICJuY3Vyc2VzNS1jb25maWciLAorKyAgIEhUT1BfQ0hFQ0tfU0NSSVBUKFtuY3Vyc2VzdzZdLCBbYWRkbndzdHJdLCBbSEFWRV9MSUJOQ1VSU0VTV10sICJwa2ctY29uZmlnIG5jdXJzZXN3NiIsCisrICAgIEhUT1BfQ0hFQ0tfU0NSSVBUKFtuY3Vyc2Vzd10sIFthZGRud3N0cl0sIFtIQVZFX0xJQk5DVVJTRVNXXSwgInBrZy1jb25maWcgbmN1cnNlc3c2IiwKKysgICAgIEhUT1BfQ0hFQ0tfU0NSSVBUKFtuY3Vyc2Vzd10sIFthZGRud3N0cl0sIFtIQVZFX0xJQk5DVVJTRVNXXSwgInBrZy1jb25maWcgbmN1cnNlc3c1IiwKKysgICAgICBIVE9QX0NIRUNLX1NDUklQVChbbmN1cnNlc10sIFthZGRud3N0cl0sIFtIQVZFX0xJQk5DVVJTRVNXXSwgInBrZy1jb25maWcgbmN1cnNlczUiLAorICAgICAgICBIVE9QX0NIRUNLX0xJQihbbmN1cnNlc3c2XSwgW2FkZG53c3RyXSwgW0hBVkVfTElCTkNVUlNFU1ddLAorICAgICAgICAgSFRPUF9DSEVDS19MSUIoW25jdXJzZXN3XSwgW2FkZG53c3RyXSwgW0hBVkVfTElCTkNVUlNFU1ddLAorICAgICAgICAgIEhUT1BfQ0hFQ0tfTElCKFtuY3Vyc2VzXSwgW2FkZG53c3RyXSwgW0hBVkVfTElCTkNVUlNFU1ddLAorQEAgLTIwMSw4ICsyMDEsOCBAQCBpZiB0ZXN0ICJ4JGVuYWJsZV91bmljb2RlIiA9IHh5ZXM7IHRoZW4KKyAgICAgICAgICBbQUNfQ0hFQ0tfSEVBREVSUyhbbmN1cnNlcy9jdXJzZXMuaF0sWzpdLAorICAgICAgICAgICAgIFtBQ19DSEVDS19IRUFERVJTKFtuY3Vyc2VzLmhdLFs6XSxbbWlzc2luZ19oZWFkZXJzPSIkbWlzc2luZ19oZWFkZXJzICRhY19oZWFkZXIiXSldKV0pXSkKKyBlbHNlCistICAgSFRPUF9DSEVDS19TQ1JJUFQoW25jdXJzZXM2XSwgW3JlZnJlc2hdLCBbSEFWRV9MSUJOQ1VSU0VTXSwgIm5jdXJzZXM2LWNvbmZpZyIsCistICAgIEhUT1BfQ0hFQ0tfU0NSSVBUKFtuY3Vyc2VzXSwgW3JlZnJlc2hdLCBbSEFWRV9MSUJOQ1VSU0VTXSwgIm5jdXJzZXM1LWNvbmZpZyIsCisrICAgSFRPUF9DSEVDS19TQ1JJUFQoW25jdXJzZXM2XSwgW3JlZnJlc2hdLCBbSEFWRV9MSUJOQ1VSU0VTXSwgInBrZy1jb25maWcgbmN1cnNlczYiLAorKyAgICBIVE9QX0NIRUNLX1NDUklQVChbbmN1cnNlc10sIFtyZWZyZXNoXSwgW0hBVkVfTElCTkNVUlNFU10sICJwa2ctY29uZmlnIG5jdXJzZXM1IiwKKyAgICAgIEhUT1BfQ0hFQ0tfTElCKFtuY3Vyc2VzNl0sICBbcmVmcmVzaF0sIFtIQVZFX0xJQk5DVVJTRVNdLAorICAgICAgIEhUT1BfQ0hFQ0tfTElCKFtuY3Vyc2VzXSwgIFtyZWZyZXNoXSwgW0hBVkVfTElCTkNVUlNFU10sCisgICAgICAgbWlzc2luZ19saWJyYXJpZXM9IiRtaXNzaW5nX2xpYnJhcmllcyBsaWJuY3Vyc2VzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9odG9wL2h0b3BfMS4wLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h0b3AvaHRvcF8xLjAuMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgxNjYxYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h0b3AvaHRvcF8xLjAuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVNVTU1BUlkgPSAiaHRvcCBwcm9jZXNzIG1vbml0b3IiCi1IT01FUEFHRSA9ICJodHRwOi8vaHRvcC5zZi5uZXQiCi1TRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCi1MSUNFTlNFID0gIkdQTHYyIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1jMzEyNjUzNTMyZThlNjY5ZjMwZTVlYzhiZGMyM2JlMyIKLQotREVQRU5EUyA9ICJuY3Vyc2VzIgotUkRFUEVORFNfJHtQTn0gPSAibmN1cnNlcy10ZXJtaW5mbyIKLQotU1JDX1VSSSA9ICJodHRwOi8vaGlzaGFtLmhtL2h0b3AvcmVsZWFzZXMvJHtQVn0vaHRvcC0ke1BWfS50YXIuZ3oiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJlNzY4YjliNTVjMDMzZDljMWRmZmRhNzJkYjNhNmFjNyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwNTVjNTc5MjdmNzU4NDdmZGMyMjJiNTI1OGIwNzlhOTU0MjgxMWE5ZGNmNTQyMWM2MTVjN2UxN2Y1NWQxODI5IgotCi1MREZMQUdTX2FwcGVuZF9saWJjLXVjbGliYyA9ICIgLWx1YmFja3RyYWNlIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCAoKSB7Ci0gICAgcm0gLXJmICR7U30vY29uZmlnLmgKLX0KLQotaW5oZXJpdCBhdXRvdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHRvcC9odG9wXzIuMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9odG9wL2h0b3BfMi4xLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM1MDhmOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHRvcC9odG9wXzIuMS4wLmJiCkBAIC0wLDAgKzEsMzUgQEAKK1NVTU1BUlkgPSAiSW50ZXJhY3RpdmUgcHJvY2VzcyB2aWV3ZXIiCitIT01FUEFHRSA9ICJodHRwOi8vaGlzaGFtLmhtL2h0b3AiCitTRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YzMxMjY1MzUzMmU4ZTY2OWYzMGU1ZWM4YmRjMjNiZTMiCisKK0RFUEVORFMgPSAibmN1cnNlcyIKKworU1JDX1VSSSA9ICJodHRwOi8vaGlzaGFtLmhtL2h0b3AvcmVsZWFzZXMvJHtQVn0vJHtCUH0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtVXNlLXBrZy1jb25maWcucGF0Y2giCitTUkNfVVJJW21kNXN1bV0gPSAiZjI2MmI2NmFkNmMxOTQ3ODJmNGQzYTgwNjI3ZTg0YzgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzI2MGJlOTkwZDI2ZTI1YjZiNDlmYzlkOTZkYmM5MzVhZDQ2ZTYxMDgzYzBiN2Y2ZGY0MTNlNTEzYmY4MDc0OCIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK1BBQ0tBR0VDT05GSUcgPz89ICJwcm9jIFwKKyAgICAgICAgICAgICAgICAgICBjZ3JvdXAgXAorICAgICAgICAgICAgICAgICAgIHRhc2tzdGF0cyBcCisgICAgICAgICAgICAgICAgICAgdW5pY29kZSBcCisgICAgICAgICAgICAgICAgICAgbGludXgtYWZmaW5pdHkgXAorICAgICAgICAgICAgICAgICAgIGRlbGF5YWNjdCIKK1BBQ0tBR0VDT05GSUdbcHJvY10gPSAiLS1lbmFibGUtcHJvYywtLWRpc2FibGUtcHJvYyIKK1BBQ0tBR0VDT05GSUdbb3BlbnZ6XSA9ICItLWVuYWJsZS1vcGVudnosLS1kaXNhYmxlLW9wZW52eiIKK1BBQ0tBR0VDT05GSUdbY2dyb3VwXSA9ICItLWVuYWJsZS1jZ3JvdXAsLS1kaXNhYmxlLWNncm91cCIKK1BBQ0tBR0VDT05GSUdbdnNlcnZlcl0gPSAiLS1lbmFibGUtdnNlcnZlciwtLWRpc2FibGUtdnNlcnZlciIKK1BBQ0tBR0VDT05GSUdbdGFza3N0YXRzXSA9ICItLWVuYWJsZS10YXNrc3RhdHMsLS1kaXNhYmxlLXRhc2tzdGF0cyIKK1BBQ0tBR0VDT05GSUdbdW5pY29kZV0gPSAiLS1lbmFibGUtdW5pY29kZSwtLWRpc2FibGUtdW5pY29kZSIKK1BBQ0tBR0VDT05GSUdbbGludXgtYWZmaW5pdHldID0gIi0tZW5hYmxlLWxpbnV4LWFmZmluaXR5LC0tZGlzYWJsZS1saW51eC1hZmZpbml0eSIKK1BBQ0tBR0VDT05GSUdbaHdsb2NdID0gIi0tZW5hYmxlLWh3bG9jLC0tZGlzYWJsZS1od2xvYyxod2xvYyIKK1BBQ0tBR0VDT05GSUdbc2V0dWlkXSA9ICItLWVuYWJsZS1zZXR1aWQsLS1kaXNhYmxlLXNldHVpZCIKK1BBQ0tBR0VDT05GSUdbZGVsYXlhY2N0XSA9ICItLWVuYWJsZS1kZWxheWFjY3QsLS1kaXNhYmxlLWRlbGF5YWNjdCxsaWJubCIKKworZG9fY29uZmlndXJlX3ByZXBlbmQgKCkgeworICAgIHJtIC1yZiAke1N9L2NvbmZpZy5oCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h1bnNwZWxsL2h1bnNwZWxsXzEuNi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9odW5zcGVsbC9odW5zcGVsbF8xLjYuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI1NzI5Zi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h1bnNwZWxsL2h1bnNwZWxsXzEuNi4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotU1VNTUFSWSA9ICJBIHNwZWxsIGNoZWNrZXIgYW5kIG1vcnBob2xvZ2ljYWwgYW5hbHl6ZXIgbGlicmFyeSIKLUhPTUVQQUdFID0gImh0dHA6Ly9odW5zcGVsbC5naXRodWIuaW8vIgotTElDRU5TRSA9ICJHUEx2MyB8IExHUEx2MyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiIFwKLSAgICBmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQgXAotICAgIGZpbGU6Ly9DT1BZSU5HLkxFU1NFUjttZDU9ZTZhNjAwZmQ1ZTFkOWNiZGUyZDk4MzY4MDIzM2FkMDIgXAotIgotCi1TUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS8ke0JQTn0vJHtCUE59L2FyY2hpdmUvdiR7UFZ9LnRhci5neiIKLVNSQ19VUklbbWQ1c3VtXSA9ICIwZGYxYzE4YzEyODRmODYyNWFmNWFlNWE4ZDVjNGNlZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIzMGY1OTM3MzNjNTBiNzk0MDE2YmIwM2QzMWZkMmEyMDcxZTQ2MTBjNmZhNDcwOGUzM2VkYWQyMzM1MTAyYzQ5IgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ2V0dGV4dAotCi1SREVQRU5EU18ke1BOfSA9ICJwZXJsIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHVuc3BlbGwvaHVuc3BlbGxfMS42LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h1bnNwZWxsL2h1bnNwZWxsXzEuNi4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmZWVhODkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h1bnNwZWxsL2h1bnNwZWxsXzEuNi4yLmJiCkBAIC0wLDAgKzEsMTcgQEAKK1NVTU1BUlkgPSAiQSBzcGVsbCBjaGVja2VyIGFuZCBtb3JwaG9sb2dpY2FsIGFuYWx5emVyIGxpYnJhcnkiCitIT01FUEFHRSA9ICJodHRwOi8vaHVuc3BlbGwuZ2l0aHViLmlvLyIKK0xJQ0VOU0UgPSAiR1BMdjMgfCBMR1BMdjMiCitMSUNfRklMRVNfQ0hLU1VNID0gIiBcCisgICAgZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IFwKKyAgICBmaWxlOi8vQ09QWUlORy5MRVNTRVI7bWQ1PWU2YTYwMGZkNWUxZDljYmRlMmQ5ODM2ODAyMzNhZDAyIFwKKyIKKworU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vJHtCUE59LyR7QlBOfS9hcmNoaXZlL3Yke1BWfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiMWE1NDUwNGNiNDcwYWFmYTY1MzBiYjM3MmExMGRjMDQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiM2NkOWNlYjA2MmZlNTgxNGY2NjhlNGYyMmIyZmE2ZTNiYTBiMzM5YjkyMTczOTU0MWNlMTgwY2FjNGQ2ZjRjNCIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQKKworUkRFUEVORFNfJHtQTn0gPSAicGVybCIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h3ZGF0YS9od2RhdGFfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9od2RhdGEvaHdkYXRhX2dpdC5iYgppbmRleCA1MGQzNWM2Li42Nzk2NzNiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h3ZGF0YS9od2RhdGFfZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHdkYXRhL2h3ZGF0YV9naXQuYmIKQEAgLTUsOCArNSw4IEBACiBMSUNFTlNFID0gIkdQTC0yLjArIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MTU1NjU0NzcxMWU4MjQ2OTkyYjk5OWVkZDk0NDVhNTciCiAKLVBWID0gIjAuMjkxK2dpdCR7U1JDUFZ9IgotU1JDUkVWID0gIjRiZmJkY2Y1OTEzZDZkZDUzMzM2ZDMxYjgwMzU3MDgwNzVlNmZkZmEiCitQViA9ICIwLjI5OCtnaXQke1NSQ1BWfSIKK1NSQ1JFViA9ICI5MDMwZmJkNmFiMTUzOGY0ZDc3ZDNjZjFlMGI0NjNhN2VjMjViNWM0IgogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3ZjcmhvbmVrLyR7QlBOfS5naXQiCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lrc2VtZWwvaWtzZW1lbC0xLjQvcjI1LmRpZmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lrc2VtZWwvaWtzZW1lbC0xLjQvcjI1LmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2NjZjZTAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pa3NlbWVsL2lrc2VtZWwtMS40L3IyNS5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotVGFrZW4gZnJvbSB1cHN0cmVhbSBzdWJ2ZXJzaW9uIHJlcG9zaXRvcnk6Ci0KLWh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9pa3NlbWVsL3NvdXJjZS9kZXRhaWw/cj0yNQotCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSBjb25maWd1cmUuYWMgfCAgIDEwICsrKysrKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLS0tLSBpa3NlbWVsLTEuNC5vcmlnL2NvbmZpZ3VyZS5hYwotKysrIGlrc2VtZWwtMS40L2NvbmZpZ3VyZS5hYwotQEAgLTQzLDExICs0MywxOSBAQCBBTV9DT05ESVRJT05BTChET19QT1NJWCwgdGVzdCAieCRkZWZpbyIKLSBkbmwgQ2hlY2tzIGZvciBsaWJyYXJ5IGZ1bmN0aW9ucwotIEFDX1NFQVJDSF9MSUJTKHJlY3Ysc29ja2V0KQotIEFDX0NIRUNLX0ZVTkNTKGdldG9wdF9sb25nKQotIEFDX0NIRUNLX0ZVTkNTKGdldGFkZHJpbmZvKQotIAotLUFNX1BBVEhfTElCR05VVExTKCxBQ19ERUZJTkUoSEFWRV9HTlVUTFMsLCJVc2UgbGliZ251dGxzIikpCi0rZG5sIENoZWNrIEdOVSBUTFMKLStQS0dfQ0hFQ0tfTU9EVUxFUyhHTlVUTFMsIGdudXRscyA+PSAyLjAuMCwgaGF2ZV9nbnV0bHM9eWVzLCBoYXZlX2dudXRscz1ubykKLStpZiB0ZXN0ICJ4JGhhdmVfZ251dGxzIiA9ICJ4eWVzIjsgdGhlbgotKyAgTElCR05VVExTX0NGTEFHUz0iJEdOVVRMU19DRkxBR1MiCi0rICBMSUJHTlVUTFNfTElCUz0iJEdOVVRMU19MSUJTIgotKyAgQUNfU1VCU1QoTElCR05VVExTX0NGTEFHUykKLSsgIEFDX1NVQlNUKExJQkdOVVRMU19MSUJTKQotKyAgQUNfREVGSU5FKEhBVkVfR05VVExTLCAxLCBbd2hldGhlciB0byB1c2UgR251VFNMIHN1cHBvcnQuXSkKLStmaQotIAotIGRubCBDaGVjayAtV2FsbCBmbGFnIG9mIEdDQwotIGlmIHRlc3QgIngkR0NDIiA9ICJ4eWVzIjsgdGhlbgotICAgaWYgdGVzdCAteiAiYGVjaG8gIiRDRkxBR1MiIHwgZ3JlcCAiXC1XYWxsIiAyPiAvZGV2L251bGxgIiA7IHRoZW4KLSAgICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1XYWxsIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pa3NlbWVsL2lrc2VtZWwvYXZvaWQtb2Jzb2xldGUtZ251dGxzLWFwaXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lrc2VtZWwvaWtzZW1lbC9hdm9pZC1vYnNvbGV0ZS1nbnV0bHMtYXBpcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWZjY2MzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pa3NlbWVsL2lrc2VtZWwvYXZvaWQtb2Jzb2xldGUtZ251dGxzLWFwaXMucGF0Y2gKQEAgLTAsMCArMSw1NSBAQAorRnJvbSA3MTM2YTkwOGEwNTZkMGUzNmM4OWI2ZTFjMzlhZGZmOGNlMmJiMWQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmUgTWNDdXJkeSA8YXJtY2N1cmR5QGdtYWlsLmNvbT4KK0RhdGU6IFdlZCwgMSBOb3YgMjAxNyAxMzoxNzozNCAtMDcwMAorU3ViamVjdDogW1BBVENIXSBhdm9pZCBvYnNvbGV0ZSBnbnV0bHMgYXBpcworCitUaGUgZ251dGxzXypfc2V0X3ByaW9yaXR5KCkgZmFtaWx5IG9mIGZ1bmN0aW9ucyB3YXMgbWFya2VkIGRlcHJlY2F0ZWQKK2luIGdudXRscyAyLjEyLnggYW5kIHJlbW92ZWQgY29tcGxldGVseSBpbiAzLjUueC4gVGhlc2UgZnVuY3Rpb25zCitoYXZlIGJlZW4gc3VwZXJjZWRlZCBieSBnbnV0bHNfcHJpb3JpdHlfc2V0X2RpcmVjdCgpLCB3aGljaCB3YXMgYWRkZWQKK2luIGdudXRscyAyLjIuMCAocmVsZWFzZWQgMjAwNy0xMi0xNCkuCisKK1JhdGhlciB0aGFuIHNpbXBseSB1cGRhdGUgdGhlIGN1c3RvbSBnbnV0bHNfKl9zZXRfcHJpb3JpdHkoKSBjYWxscyB0bwordXNlIGdudXRsc19wcmlvcml0eV9zZXRfZGlyZWN0KCksIGRyb3AgdGhlIGN1c3RvbSBwcmlvcml0eSBzZWxlY3Rpb24KK2NvbXBsZXRlbHkgYW5kIHVzZSB0aGUgcmVjb21tZW5kZWQgYXBwcm9hY2ggb2YgbGV0dGluZyBnbnV0bHMgcGljayBhCityZWFzb25hYmxlIHNldCBvZiBkZWZhdWx0cy4KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlIE1jQ3VyZHkgPGFybWNjdXJkeUBnbWFpbC5jb20+CistLS0KKyBzcmMvdGxzLWdudXRscy5jIHwgMTIgKystLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvdGxzLWdudXRscy5jIGIvc3JjL3Rscy1nbnV0bHMuYworaW5kZXggZDdiN2M5MS4uNzQ5ZTllZiAxMDA2NDQKKy0tLSBhL3NyYy90bHMtZ251dGxzLmMKKysrKyBiL3NyYy90bHMtZ251dGxzLmMKK0BAIC00OCwxMSArNDgsNiBAQCB0bHNfcHVsbCAoc3RydWN0IGlrc3Rsc19kYXRhICpkYXRhLCBjaGFyICpidWZmZXIsIHNpemVfdCBsZW4pCisgc3RhdGljIGludAorIHRsc19oYW5kc2hha2UgKHN0cnVjdCBpa3N0bHNfZGF0YSAqKmRhdGFwLCBpa3N0cmFuc3BvcnQgKnRyYW5zLCB2b2lkICpzb2NrKQorIHsKKy0JY29uc3QgaW50IHByb3RvY29sX3ByaW9yaXR5W10gPSB7IEdOVVRMU19UTFMxLCBHTlVUTFNfU1NMMywgMCB9OworLQljb25zdCBpbnQga3hfcHJpb3JpdHlbXSA9IHsgR05VVExTX0tYX1JTQSwgMCB9OworLQljb25zdCBpbnQgY2lwaGVyX3ByaW9yaXR5W10gPSB7IEdOVVRMU19DSVBIRVJfM0RFU19DQkMsIEdOVVRMU19DSVBIRVJfQVJDRk9VUiwgMH07CistCWNvbnN0IGludCBjb21wX3ByaW9yaXR5W10gPSB7IEdOVVRMU19DT01QX1pMSUIsIEdOVVRMU19DT01QX05VTEwsIDAgfTsKKy0JY29uc3QgaW50IG1hY19wcmlvcml0eVtdID0geyBHTlVUTFNfTUFDX1NIQSwgR05VVExTX01BQ19NRDUsIDAgfTsKKyAJc3RydWN0IGlrc3Rsc19kYXRhICpkYXRhOworIAlpbnQgcmV0OworIAorQEAgLTgxLDExICs3Niw4IEBAIHRsc19oYW5kc2hha2UgKHN0cnVjdCBpa3N0bHNfZGF0YSAqKmRhdGFwLCBpa3N0cmFuc3BvcnQgKnRyYW5zLCB2b2lkICpzb2NrKQorIAkJcmV0dXJuIElLU19OT01FTTsKKyAJfQorIAorLQlnbnV0bHNfcHJvdG9jb2xfc2V0X3ByaW9yaXR5IChkYXRhLT5zZXNzLCBwcm90b2NvbF9wcmlvcml0eSk7CistCWdudXRsc19jaXBoZXJfc2V0X3ByaW9yaXR5KGRhdGEtPnNlc3MsIGNpcGhlcl9wcmlvcml0eSk7CistCWdudXRsc19jb21wcmVzc2lvbl9zZXRfcHJpb3JpdHkoZGF0YS0+c2VzcywgY29tcF9wcmlvcml0eSk7CistCWdudXRsc19reF9zZXRfcHJpb3JpdHkoZGF0YS0+c2Vzcywga3hfcHJpb3JpdHkpOworLQlnbnV0bHNfbWFjX3NldF9wcmlvcml0eShkYXRhLT5zZXNzLCBtYWNfcHJpb3JpdHkpOworKwlnbnV0bHNfc2V0X2RlZmF1bHRfcHJpb3JpdHkgKGRhdGEtPnNlc3MpOworKworIAlnbnV0bHNfY3JlZGVudGlhbHNfc2V0IChkYXRhLT5zZXNzLCBHTlVUTFNfQ1JEX0NFUlRJRklDQVRFLCBkYXRhLT5jcmVkKTsKKyAKKyAJZ251dGxzX3RyYW5zcG9ydF9zZXRfcHVzaF9mdW5jdGlvbiAoZGF0YS0+c2VzcywgKGdudXRsc19wdXNoX2Z1bmMpIHRsc19wdXNoKTsKKy0tIAorMS45LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pa3NlbWVsL2lrc2VtZWwvZml4LWNvbmZpZ3VyZS1vcHRpb24tcGFyc2luZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaWtzZW1lbC9pa3NlbWVsL2ZpeC1jb25maWd1cmUtb3B0aW9uLXBhcnNpbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVhY2NkZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaWtzZW1lbC9pa3NlbWVsL2ZpeC1jb25maWd1cmUtb3B0aW9uLXBhcnNpbmcucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorRnJvbSAxN2E1Y2Y4ZjcwYjg2ZDhhMjE5NTU2MmUyZDlkY2NjYjRmYTM1YzgzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmUgTWNDdXJkeSA8YXJtY2N1cmR5QGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgMzEgT2N0IDIwMTcgMjA6MDU6NTggLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IGNvbmZpZ3VyZSBvcHRpb24gcGFyc2luZworCitEb24ndCBvdmVyLXdyaXRlIHdpdGhfb3BlbnNzbCBldGMgYnkgdHJ5aW5nIHRvIHNldCB0byAkZW5hYmxldmFyCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBBbmRyZSBNY0N1cmR5IDxhcm1jY3VyZHlAZ21haWwuY29tPgorLS0tCisgY29uZmlndXJlLmFjIHwgMTQgKysrKysrKy0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA4MmU2ZDJkLi44MjNlNmMxIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC01NiwxNyArNTYsMTcgQEAgZmkKKyBkbmwgT3B0aW9ucyBmb3Igb3ZlcnJpZGluZyBUTFMgY2hlY2tzCisgQUNfQVJHX1dJVEgoW29wZW5zc2xdLAorICAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aG91dC1vcGVuc3NsXSxbZGlzYWJsZSBjaGVja2luZyBmb3Igb3BlbnNzbF0pLAorLSAgW3dpdGhfb3BlbnNzbD0kZW5hYmxldmFsXSwKKy0gIFt3aXRoX29wZW5zc2w9eWVzXQorKyAgW10sCisrICBbd2l0aF9vcGVuc3NsPWF1dG9dCisgKQorIEFDX0FSR19XSVRIKFtnbnV0bHNdLAorICAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aG91dC1nbnV0bHNdLFtkaXNhYmxlIGNoZWNraW5nIGZvciBHTlUgVExTXSksCistICBbd2l0aF9nbnV0bHM9JGVuYWJsZXZhbF0sCistICBbd2l0aF9nbnV0bHM9eWVzXQorKyAgW10sCisrICBbd2l0aF9nbnV0bHM9YXV0b10KKyApCisgCisgZG5sIENoZWNrIE9wZW5TU0wKKy1pZiB0ZXN0ICJ4JHdpdGhfb3BlbnNzbCIgPSAieHllcyI7IHRoZW4KKytpZiB0ZXN0ICJ4JHdpdGhfb3BlbnNzbCIgIT0gInhubyI7IHRoZW4KKyAgIFBLR19DSEVDS19NT0RVTEVTKFtPUEVOU1NMXSwgb3BlbnNzbCA+PSAwLjkuOCwgaGF2ZV9vcGVuc3NsPXllcywgaGF2ZV9vcGVuc3NsPW5vKQorICAgaWYgdGVzdCAieCRoYXZlX29wZW5zc2wiID0gInh5ZXMiOyB0aGVuCisgICAgIExJQk9QRU5TU0xfQ0ZMQUdTPSIkT1BFTlNTTF9DRkxBR1MiCitAQCAtNzgsNyArNzgsNyBAQCBpZiB0ZXN0ICJ4JHdpdGhfb3BlbnNzbCIgPSAieHllcyI7IHRoZW4KKyBmaQorIAorIGRubCBDaGVjayBHTlUgVExTCistaWYgdGVzdCAieCR3aXRoX2dudXRscyIgPSAieHllcyI7IHRoZW4KKytpZiB0ZXN0ICJ4JHdpdGhfZ251dGxzIiAhPSAieG5vIjsgdGhlbgorICAgaWYgdGVzdCAieCRoYXZlX29wZW5zc2wiICE9ICJ4eWVzIjsgdGhlbgorICAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhbR05VVExTXSwgZ251dGxzID49IDIuMC4wLCBoYXZlX2dudXRscz15ZXMsIGhhdmVfZ251dGxzPW5vKQorICAgICBpZiB0ZXN0ICJ4JGhhdmVfZ251dGxzIiA9ICJ4eWVzIjsgdGhlbgorQEAgLTk0LDcgKzk0LDcgQEAgZmkKKyBkbmwgT3B0aW9uIGZvciBvdmVycmlkaW5nIFB5dGhvbiBjaGVjaworIEFDX0FSR19FTkFCTEUoW3B5dGhvbl0sCisgICBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLXB5dGhvbl0sW2Rpc2FibGUgY2hlY2tpbmcgZm9yIFB5dGhvbiBiaW5kaW5nc10pLAorLSAgW3dpdGhfcHl0aG9uPSRlbmFibGV2YWxdLAorKyAgW10sCisgICBbd2l0aF9weXRob249eWVzXQorICkKKyAKKy0tIAorMS45LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pa3NlbWVsL2lrc2VtZWxfMS41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pa3NlbWVsL2lrc2VtZWxfMS41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MDNlOTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lrc2VtZWwvaWtzZW1lbF8xLjUuYmIKQEAgLTAsMCArMSwyNCBAQAorU1VNTUFSWSA9ICJGYXN0IGFuZCBwb3J0YWJsZSBYTUwgcGFyc2VyIGFuZCBKYWJiZXIgcHJvdG9jb2wgbGlicmFyeSIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9tZWR1a2V0dG8vaWtzZW1lbCIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kODA0NWYzYjhmOTI5YzFjYjI5YTFlM2ZkNzM3YjQ5OSIKKworU1JDUkVWID0gIjk3OGI3MzM0NjJlNDFlZmQ1ZGI3MmJjOTk3NGNiM2IwZDFkNWY2ZmEiCitQViA9ICIxLjUrZ2l0JHtTUkNQVn0iCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9tZWR1a2V0dG8vaWtzZW1lbC5naXQ7cHJvdG9jb2w9aHR0cHMgXAorICAgICAgICAgICBmaWxlOi8vZml4LWNvbmZpZ3VyZS1vcHRpb24tcGFyc2luZy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9hdm9pZC1vYnNvbGV0ZS1nbnV0bHMtYXBpcy5wYXRjaCIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGxpYl9wYWNrYWdlCisKKyMgVExTIHN1cHBvcnQgcmVxdWlyZXMgZWl0aGVyIG9wZW5zc2wgb3IgZ251dGxzIChpZiBib3RoIGFyZSBlbmFibGVkIG9wZW5zc2wgd2lsbCBiZSB1c2VkKS4KK1BBQ0tBR0VDT05GSUcgPz0gImdudXRscyIKKworUEFDS0FHRUNPTkZJR1tnbnV0bHNdID0gIi0td2l0aC1nbnV0bHMsLS13aXRob3V0LWdudXRscyxnbnV0bHMiCitQQUNLQUdFQ09ORklHW29wZW5zc2xdID0gIi0td2l0aC1vcGVuc3NsLC0td2l0aG91dC1vcGVuc3NsLG9wZW5zc2wiCisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtcHl0aG9uIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJlaWdlbi9saWJlaWdlbi8wMDAxLUNNYWtlTGlzdHMudHh0LWluc3RhbGwtRmluZEVpZ2VuMy5jbWFrZS1zY3JpcHQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmVpZ2VuL2xpYmVpZ2VuLzAwMDEtQ01ha2VMaXN0cy50eHQtaW5zdGFsbC1GaW5kRWlnZW4zLmNtYWtlLXNjcmlwdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYxZGFkYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmVpZ2VuL2xpYmVpZ2VuLzAwMDEtQ01ha2VMaXN0cy50eHQtaW5zdGFsbC1GaW5kRWlnZW4zLmNtYWtlLXNjcmlwdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLUZyb20gZmQ4YmM2NmVmYWMxMDU5YzEwNjhmODA0NzQ2YjAxYjkwMTc3YzMzMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEx1a2FzIEJ1bHdhaG4gPGx1a2FzLmJ1bHdhaG5Ab3NzLmJtdy1jYXJpdC5kZT4KLURhdGU6IFN1biwgMTggT2N0IDIwMTUgMTY6NTI6MjUgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gQ01ha2VMaXN0cy50eHQ6IGluc3RhbGwgRmluZEVpZ2VuMy5jbWFrZSBzY3JpcHQKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEx1a2FzIEJ1bHdhaG4gPGx1a2FzLmJ1bHdhaG5Ab3NzLmJtdy1jYXJpdC5kZT4KLS0tLQotIENNYWtlTGlzdHMudHh0IHwgMiArKwotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKLWluZGV4IDc2YTExYjkuLmVjNmM2ZWEgMTAwNjQ0Ci0tLS0gYS9DTWFrZUxpc3RzLnR4dAotKysrIGIvQ01ha2VMaXN0cy50eHQKLUBAIC0zNDIsNiArMzQyLDggQEAgaWYoRUlHRU5fQlVJTERfUEtHQ09ORklHKQotICAgICAgICAgKQotIGVuZGlmKEVJR0VOX0JVSUxEX1BLR0NPTkZJRykKLSAKLStpbnN0YWxsKEZJTEVTICIke1BST0pFQ1RfU09VUkNFX0RJUn0vY21ha2UvRmluZEVpZ2VuMy5jbWFrZSIgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L3NoYXJlL2NtYWtlL01vZHVsZXMiKQotKwotIGFkZF9zdWJkaXJlY3RvcnkoRWlnZW4pCi0gCi0gYWRkX3N1YmRpcmVjdG9yeShkb2MgRVhDTFVERV9GUk9NX0FMTCkKLS0tIAotMS45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJlaWdlbi9saWJlaWdlbl8zLjIuOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZWlnZW4vbGliZWlnZW5fMy4yLjguYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjY2EyZTkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJlaWdlbi9saWJlaWdlbl8zLjIuOC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLURFU0NSSVBUSU9OID0gIkVpZ2VuIGlzIGEgQysrIHRlbXBsYXRlIGxpYnJhcnkgZm9yIGxpbmVhciBhbGdlYnJhOiBtYXRyaWNlcywgdmVjdG9ycywgbnVtZXJpY2FsIHNvbHZlcnMsIGFuZCByZWxhdGVkIGFsZ29yaXRobXMuIgotQVVUSE9SID0gIkJlbm/DrnQgSmFjb2IgYW5kIEdhw6tsIEd1ZW5uZWJhdWQgYW5kIG90aGVycyIKLUhPTUVQQUdFID0gImh0dHA6Ly9laWdlbi50dXhmYW1pbHkub3JnLyIKLUxJQ0VOU0UgPSAiTVBMLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcuTVBMMjttZDU9ODE1Y2E1OTljOWRmMjQ3YTBjN2Y2MTliYWIxMjNkYWQiCi0KLVNSQ19VUkkgPSAiaHR0cDovL2JpdGJ1Y2tldC5vcmcvZWlnZW4vZWlnZW4vZ2V0LyR7UFZ9LnRhci5iejI7ZG93bmxvYWRmaWxlbmFtZT0ke0JQfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtQ01ha2VMaXN0cy50eHQtaW5zdGFsbC1GaW5kRWlnZW4zLmNtYWtlLXNjcmlwdC5wYXRjaCIKLVNSQ19VUklbbWQ1c3VtXSA9ICI5ZTNiZmFhYWIzZGIxODI1M2NmZDg3ZWE2OTdiM2FiMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI3MjJhNjNkNjcyYjcwZjM5YzI3MWM1ZTJhNGE0M2JhMTRkMTIwMTU2NzQzMzE3OTA0MTRmY2IxNjdjMzU3ZTU1IgotCi1TID0gIiR7V09SS0RJUn0vZWlnZW4tZWlnZW4tMDcxMDVmNzEyNGY5IgotCi1pbmhlcml0IGNtYWtlCi0KLUZJTEVTXyR7UE59ID0gIiR7aW5jbHVkZWRpcn0gJHtsaWJkaXJ9IgotRklMRVNfJHtQTn0tZGV2ID0gIiR7ZGF0YWRpcn0vY21ha2UvTW9kdWxlcyAke2RhdGFkaXJ9L3BrZ2NvbmZpZyIKLQotIyAke1BOfSBpcyBlbXB0eSBzbyB3ZSBuZWVkIHRvIHR3ZWFrIC1kZXYgYW5kIC1kYmcgcGFja2FnZSBkZXBlbmRlbmNpZXMKLVJERVBFTkRTXyR7UE59LWRldiA9ICIiCi1SUkVDT01NRU5EU18ke1BOfS1kYmcgPSAiJHtQTn0tZGV2ICg9ICR7RVhURU5EUEtHVn0pIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJlaWdlbi9saWJlaWdlbl8zLjMuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZWlnZW4vbGliZWlnZW5fMy4zLjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmMzYjMyZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZWlnZW4vbGliZWlnZW5fMy4zLjQuYmIKQEAgLTAsMCArMSwyMCBAQAorREVTQ1JJUFRJT04gPSAiRWlnZW4gaXMgYSBDKysgdGVtcGxhdGUgbGlicmFyeSBmb3IgbGluZWFyIGFsZ2VicmE6IG1hdHJpY2VzLCB2ZWN0b3JzLCBudW1lcmljYWwgc29sdmVycywgYW5kIHJlbGF0ZWQgYWxnb3JpdGhtcy4iCitBVVRIT1IgPSAiQmVub8OudCBKYWNvYiBhbmQgR2HDq2wgR3Vlbm5lYmF1ZCBhbmQgb3RoZXJzIgorSE9NRVBBR0UgPSAiaHR0cDovL2VpZ2VuLnR1eGZhbWlseS5vcmcvIgorTElDRU5TRSA9ICJNUEwtMi4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy5NUEwyO21kNT04MTVjYTU5OWM5ZGYyNDdhMGM3ZjYxOWJhYjEyM2RhZCIKKworU1JDX1VSSSA9ICJodHRwOi8vYml0YnVja2V0Lm9yZy9laWdlbi9laWdlbi9nZXQvJHtQVn0udGFyLmJ6Mjtkb3dubG9hZGZpbGVuYW1lPSR7QlB9LnRhci5iejIiCitTUkNfVVJJW21kNXN1bV0gPSAiYTdhYWI5Zjc1ODI0OWI4NmM5MzIyMWFkNDE3ZmJlMTgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGQyNTRiZWIwYmFmYzY5NWQwZjYyYWUxYTIyMmZmODViNTJkYmFhM2ExNmY3NmU3ODFkY2UyMmQwZDIwYTRhNiIKKworUyA9ICIke1dPUktESVJ9L2VpZ2VuLWVpZ2VuLTVhMDE1NmU0MGZlYiIKKworaW5oZXJpdCBjbWFrZQorCitGSUxFU18ke1BOfSA9ICIke2luY2x1ZGVkaXJ9ICR7bGliZGlyfSIKK0ZJTEVTXyR7UE59LWRldiA9ICIke2RhdGFkaXJ9L2VpZ2VuMy9jbWFrZSAke2RhdGFkaXJ9L2NtYWtlL01vZHVsZXMgJHtkYXRhZGlyfS9wa2djb25maWciCisKKyMgJHtQTn0gaXMgZW1wdHkgc28gd2UgbmVlZCB0byB0d2VhayAtZGV2IGFuZCAtZGJnIHBhY2thZ2UgZGVwZW5kZW5jaWVzCitSREVQRU5EU18ke1BOfS1kZXYgPSAiIgorUlJFQ09NTUVORFNfJHtQTn0tZGJnID0gIiR7UE59LWRldiAoPSAke0VYVEVORFBLR1Z9KSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZ3Bpb2QvbGliZ3Bpb2QuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmdwaW9kL2xpYmdwaW9kLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNTA2MDU3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZ3Bpb2QvbGliZ3Bpb2QuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1TVU1NQVJZID0gIkMgbGlicmFyeSBhbmQgdG9vbHMgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIGxpbnV4IEdQSU8gY2hhcmFjdGVyIGRldmljZSIKLQotTElDRU5TRSA9ICJMR1BMdjIuMSsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0yY2FjZWQwYjI1ZGZlZmQ0YzYwMWQ5MmJkMTUxMTZkZSIKLQotU1JDX1VSSSA9ICJodHRwczovL3d3dy5rZXJuZWwub3JnL3B1Yi9zb2Z0d2FyZS9saWJzL2xpYmdwaW9kLyR7QlB9LnRhci54eiIKLQotU1JDX1VSSVttZDVzdW1dID0gIjVmOWQ4NTUzNTJiMWE1MjcyY2Y2ZjFjMmUyMDY4OWQyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjZkZmQ2YWViNTQ0ZThiN2JhZjQ4NGEwNWM5YWUwZTY3MDIyYzEwOTM2MmE0MWQ4NzAwNTM5MzA0NmI2YmVhY2YiCi0KLVBWID0gIjAuMy4xIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKLQotIyBlbmFibGUgdG9vbHMKLVBBQ0tBR0VDT05GSUcgPz0gInRvb2xzIgotCi1QQUNLQUdFQ09ORklHW3Rlc3RzXSA9ICItLWVuYWJsZS10ZXN0cywtLWRpc2FibGUtdGVzdHMsa21vZCB1ZGV2IgotUEFDS0FHRUNPTkZJR1t0b29sc10gPSAiLS1lbmFibGUtdG9vbHMsLS1kaXNhYmxlLXRvb2xzLCIKLQotUEFDS0FHRVMgKz0gIiAke1BOfS10b29scyIKLQotRklMRVNfJHtQTn0tdG9vbHMgPSAiJHtiaW5kaXJ9LyoiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmdwaW9kL2xpYmdwaW9kLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZ3Bpb2QvbGliZ3Bpb2QuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkNzc1MDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmdwaW9kL2xpYmdwaW9kLmluYwpAQCAtMCwwICsxLDIxIEBACitTVU1NQVJZID0gIkMgbGlicmFyeSBhbmQgdG9vbHMgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIGxpbnV4IEdQSU8gY2hhcmFjdGVyIGRldmljZSIKKworTElDRU5TRSA9ICJMR1BMdjIuMSsiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0yY2FjZWQwYjI1ZGZlZmQ0YzYwMWQ5MmJkMTUxMTZkZSIKKworU1JDX1VSSSA9ICJodHRwczovL3d3dy5rZXJuZWwub3JnL3B1Yi9zb2Z0d2FyZS9saWJzL2xpYmdwaW9kLyR7QlB9LnRhci54eiIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKKyMgZW5hYmxlIHRvb2xzCitQQUNLQUdFQ09ORklHID89ICJ0b29scyIKKworUEFDS0FHRUNPTkZJR1t0ZXN0c10gPSAiLS1lbmFibGUtdGVzdHMsLS1kaXNhYmxlLXRlc3RzLGttb2QgdWRldiIKK1BBQ0tBR0VDT05GSUdbdG9vbHNdID0gIi0tZW5hYmxlLXRvb2xzLC0tZGlzYWJsZS10b29scywiCisKK1BBQ0tBR0VTID0rICIgJHtQTn0tdG9vbHMiCisKK0ZJTEVTXyR7UE59LXRvb2xzID0gIiR7YmluZGlyfS8qIgorCitSUkVDT01NRU5EU19UT09MUyA9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICd0b29scycsICcke1BOfS10b29scycsICcnLGQpfSIKK1JSRUNPTU1FTkRTXyR7UE59ICs9ICIke1JSRUNPTU1FTkRTX1RPT0xTfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZ3Bpb2QvbGliZ3Bpb2RfMC4zLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmdwaW9kL2xpYmdwaW9kXzAuMy4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ZmI2NWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmdwaW9kL2xpYmdwaW9kXzAuMy4zLmJiCkBAIC0wLDAgKzEsNCBAQAorcmVxdWlyZSBsaWJncGlvZC5pbmMKKworU1JDX1VSSVttZDVzdW1dID0gIjJhYTFlMWE4MGMzYzkxOWFlMTQyYWI5YTU1ZmI1OWNhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImI3NzNlNTU3YWYxYTQ5N2Y3ODY4MjU0NjJhNzc2YjdiZjkwMTY4ZTY3ZWUwYTViYzVkMjQ3M2E1Njc0ZGMzOGMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmdwaW9kL2xpYmdwaW9kXzEuMC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJncGlvZC9saWJncGlvZF8xLjAuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTQ5OWZkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJncGlvZC9saWJncGlvZF8xLjAuMS5iYgpAQCAtMCwwICsxLDQgQEAKK3JlcXVpcmUgbGliZ3Bpb2QuaW5jCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIyY2EwYzNlYjE3ZDY5ZTM2N2I2ZjZhMTA5Y2E4NmU0MSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI5NzI5MjQxOTUzNjdmNWZiMDQ1YzAyM2Q2NTM0MGM0YjdkZmM4NzY0NDk5NTE2YmU0NDY1NTM4NjUyMDhkZWRjIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJpaW8vbGliaWlvX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliaWlvL2xpYmlpb19naXQuYmIKaW5kZXggZDY2YWM1OC4uYmEzODBlZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJpaW8vbGliaWlvX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmlpby9saWJpaW9fZ2l0LmJiCkBAIC00LDIxICs0LDQxIEBACiBMSUNFTlNFID0gIkxHUEx2Mi4xKyIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcudHh0O21kNT03YzEzYjMzNzZjZWEwY2U2OGQyZDJkYTBhMWIzYTcyYyIKIAotU1JDUkVWID0gIjA4Zjk0N2Q1ZTQwNjAwMjU5YmI2OThjM2I5NTUzOGU5ZjJiZmVjYzIiCi1QViA9ICIwLjgrZ2l0JHtTUkNQVn0iCitTUkNSRVYgPSAiZmE4Mjk3NGQ4YmQxZmRlZDc4ZTYzMGFiNzFhN2RlZDFiMTFkMGUzMyIKK1BWID0gIjAuMTQrZ2l0JHtTUkNQVn0iCiAKLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9hbmFsb2dkZXZpY2VzaW5jL2xpYmlpby5naXQiCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vYW5hbG9nZGV2aWNlc2luYy9saWJpaW8uZ2l0O3Byb3RvY29sPWh0dHBzIgogCiBTID0gIiR7V09SS0RJUn0vZ2l0IgogCi1ERVBFTkRTID0gImZsZXgtbmF0aXZlIGJpc29uLW5hdGl2ZSBhdmFoaSBsaWJhaW8gbGlidXNiMSBsaWJ4bWwyIgoraW5oZXJpdCBjbWFrZSBweXRob25uYXRpdmUgc3lzdGVtZAogCi1pbmhlcml0IGNtYWtlIHB5dGhvbm5hdGl2ZQorREVQRU5EUyA9ICIgXAorICAgIGZsZXgtbmF0aXZlIGJpc29uLW5hdGl2ZSBsaWJhaW8gXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnemVyb2NvbmYnLCAnYXZhaGknLCAnJywgZCl9IFwKKyIKKworRVhUUkFfT0VDTUFLRSA9ICIgXAorICAgIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxXaXRoRGViSW5mbyBcCisgICAgLURVREVWX1JVTEVTX0lOU1RBTExfRElSPSR7bm9uYXJjaF9iYXNlX2xpYmRpcn0vdWRldi9ydWxlcy5kIFwKKyAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAnLURXSVRIX1NZU1RFTUQ9T04gLURTWVNURU1EX1VOSVRfSU5TVEFMTF9ESVI9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfScsICcnLCBkKX0gXAorIgorCitQQUNLQUdFQ09ORklHID8/PSAiVVNCX0JBQ0tFTkQgTkVUV09SS19CQUNLRU5EIgorCitQQUNLQUdFQ09ORklHW1VTQl9CQUNLRU5EXSA9ICItRFdJVEhfVVNCX0JBQ0tFTkQ9T04sLURXSVRIX1VTQl9CQUNLRU5EPU9GRixsaWJ1c2IxLGxpYnhtbDIiCitQQUNLQUdFQ09ORklHW05FVFdPUktfQkFDS0VORF0gPSAiLURXSVRIX05FVFdPUktfQkFDS0VORD1PTiwtRFdJVEhfTkVUV09SS19CQUNLRU5EPU9GRixsaWJ4bWwyIgogCiBQQUNLQUdFUyA9KyAiJHtQTn0taWlvZCAke1BOfS10ZXN0cyAke1BOfS1weXRob24iCiAKIFJERVBFTkRTXyR7UE59LXB5dGhvbiA9ICIke1BOfSBweXRob24tY3R5cGVzIHB5dGhvbi1zdHJpbmdvbGQiCiAKLUZJTEVTXyR7UE59LWlpb2QgPSAiJHtzYmluZGlyfS9paW9kIgorRklMRVNfJHtQTn0taWlvZCA9ICIgXAorICAgICR7c2JpbmRpcn0vaWlvZCBcCisgICAgJHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS9paW9kLnNlcnZpY2UgXAorIgogRklMRVNfJHtQTn0tdGVzdHMgPSAiJHtiaW5kaXJ9IgogRklMRVNfJHtQTn0tcHl0aG9uID0gIiR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9IgorCitTWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59LWlpb2QiCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0taWlvZCA9ICJpaW9kLnNlcnZpY2UiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYm1pY3JvaHR0cGQvbGlibWljcm9odHRwZF8wLjkuNTUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYm1pY3JvaHR0cGQvbGlibWljcm9odHRwZF8wLjkuNTUuYmIKaW5kZXggZWUzOTlhNy4uMDkzMGEyNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJtaWNyb2h0dHBkL2xpYm1pY3JvaHR0cGRfMC45LjU1LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlibWljcm9odHRwZC9saWJtaWNyb2h0dHBkXzAuOS41NS5iYgpAQCAtMTEsNiArMTEsOCBAQAogCiBpbmhlcml0IGF1dG90b29scyBsaWJfcGFja2FnZSBwa2djb25maWcgZ2V0dGV4dAogCitDRkxBR1MgKz0gIi1wdGhyZWFkIC1EX1JFRU5UUkFOVCIKKwogRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUtc3RhdGljIC0td2l0aC1nbnV0bHM9JHtTVEFHSU5HX0xJQkRJUn0vLi4vIgogCiBQQUNLQUdFQ09ORklHID89ICJjdXJsIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJvbC9saWJvbF8wLjMuMTguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYm9sL2xpYm9sXzAuMy4xOC5iYgppbmRleCA3NGUxZWYyLi5kN2FkYjJiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYm9sL2xpYm9sXzAuMy4xOC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYm9sL2xpYm9sXzAuMy4xOC5iYgpAQCAtNCw3ICs0LDcgQEAKIExJQ0VOU0UgPSAiR1BMdjIiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1jOTNjMDU1MGJkMzE3M2Y0NTA0YjJjYmQ4OTkxZTUwYiIKIAotU1JDX1VSSSA9ICJodHRwOi8vd3d3LmJhbGFiaXQuY29tL2Rvd25sb2Fkcy9maWxlcy9saWJvbC8wLjMvJHtCUH0udGFyLmd6IFwKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5iYWxhYml0LmNvbS9kb3dubG9hZHMvbGlib2wvMC4zLyR7QlB9LnRhci5neiBcCiAgICAgICAgICAgIGZpbGU6Ly9jb25maWd1cmUucGF0Y2giCiBTUkNfVVJJW21kNXN1bV0gPSAiY2JhZGY0YjdlYTI3NmRmYTg1YWNjMzhhMWNjNWZmMTciCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOWRlM2JmMTMyOTdmZjg4MmUwMmExZTZlNWY2YmY3NjBhNTQ0YWZmOTJhOWQ4YTFjZjQzMjhhMzIwMDVjZWZlNyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9maWxlcy9hdXRvbWFrZV9mb3JlaWduLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzZGwtdHRmL2ZpbGVzL2F1dG9tYWtlX2ZvcmVpZ24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkNWJkNmQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzZGwtdHRmL2ZpbGVzL2F1dG9tYWtlX2ZvcmVpZ24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1JbmRleDogU0RMMl90dGYtMi4wLjE0L01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gU0RMMl90dGYtMi4wLjE0Lm9yaWcvTWFrZWZpbGUuYW0KLSsrKyBTREwyX3R0Zi0yLjAuMTQvTWFrZWZpbGUuYW0KLUBAIC0xLDYgKzEsOCBAQAotICMgTWFrZWZpbGUuYW0gZm9yIHRoZSBTREwgdHJ1ZXR5cGUgZm9udCBsb2FkaW5nIGxpYnJhcnkgYW5kIHZpZXdlcgotIGxpYl9MVExJQlJBUklFUyA9IGxpYlNETDJfdHRmLmxhCi0gCi0rQVVUT01BS0VfT1BUSU9OUyA9IGZvcmVpZ24KLSsKLSBsaWJTREwyX3R0ZmluY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL1NETDIKLSBsaWJTREwyX3R0ZmluY2x1ZGVfSEVBREVSUyA9CVwKLSAJU0RMX3R0Zi5oCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnNkbC10dGYvZmlsZXMvdXNlLnBrZy1jb25maWcuZm9yLmZyZWV0eXBlMi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9maWxlcy91c2UucGtnLWNvbmZpZy5mb3IuZnJlZXR5cGUyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTExZjY2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9maWxlcy91c2UucGtnLWNvbmZpZy5mb3IuZnJlZXR5cGUyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotZnJlZXR5cGUtY29uZmlnIHdhcyByZW1vdmVkIGZyb20gb2UtY29yZSBpbgotCi1jb21taXQgNTg3MGJkMjcyYjBiMDc3ZDA4MjZmYjkwMGIyNTE4ODRjMWMwNTA2MQotQXV0aG9yOiBSaWNoYXJkIFB1cmRpZSA8cmljaGFyZC5wdXJkaWVAbGludXhmb3VuZGF0aW9uLm9yZz4KLURhdGU6ICAgVGh1IE1heSAyMiAxMDo1OTozMyAyMDE0ICswMTAwCi0KLSAgICBiaW5jb25maWctZGlzYWJsZWQ6IEFkZCBjbGFzcyBhbmQgdXNlCi0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KLWluZGV4IDQwOGU4ZDYuLjVmOWU3MzAgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuaW4KLSsrKyBiL2NvbmZpZ3VyZS5pbgotQEAgLTg2LDM5ICs4NiwxMSBAQCBjYXNlICIkaG9zdCIgaW4KLSBlc2FjCi0gQU1fQ09ORElUSU9OQUwoVVNFX1ZFUlNJT05fUkMsIHRlc3QgeCR1c2VfdmVyc2lvbl9yYyA9IHh0cnVlKQotIAotLWRubCBDaGVjayBmb3IgdGhlIEZyZWVUeXBlIDIgbGlicmFyeQotLWRubAotLWRubCBHZXQgdGhlIGNmbGFncyBhbmQgbGlicmFyaWVzIGZyb20gdGhlIGZyZWV0eXBlLWNvbmZpZyBzY3JpcHQKLS1kbmwKLS1BQ19BUkdfV0lUSChmcmVldHlwZS1wcmVmaXgsWyAgLS13aXRoLWZyZWV0eXBlLXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgRlJFRVRZUEUgaXMgCi0taW5zdGFsbGVkIChvcHRpb25hbCldLAotLSAgICAgICAgICAgIGZyZWV0eXBlX3ByZWZpeD0iJHdpdGh2YWwiLCBmcmVldHlwZV9wcmVmaXg9IiIpCi0tQUNfQVJHX1dJVEgoZnJlZXR5cGUtZXhlYy1wcmVmaXgsWyAgLS13aXRoLWZyZWV0eXBlLWV4ZWMtcHJlZml4PVBGWCBFeGVjIHByZWZpeCAKLS13aGVyZSBGUkVFVFlQRSBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCi0tICAgICAgICAgICAgZnJlZXR5cGVfZXhlY19wcmVmaXg9IiR3aXRodmFsIiwgZnJlZXR5cGVfZXhlY19wcmVmaXg9IiIpCi0tCi0taWYgdGVzdCB4JGZyZWV0eXBlX2V4ZWNfcHJlZml4ICE9IHggOyB0aGVuCi0tICAgICBmcmVldHlwZV9hcmdzPSIkZnJlZXR5cGVfYXJncyAtLWV4ZWMtcHJlZml4PSRmcmVldHlwZV9leGVjX3ByZWZpeCIKLS0gICAgIGlmIHRlc3QgeCR7RlJFRVRZUEVfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KLS0gICAgICAgIEZSRUVUWVBFX0NPTkZJRz0kZnJlZXR5cGVfZXhlY19wcmVmaXgvYmluL2ZyZWV0eXBlLWNvbmZpZwotLSAgICAgZmkKLS1maQotLWlmIHRlc3QgeCRmcmVldHlwZV9wcmVmaXggIT0geCA7IHRoZW4KLS0gICAgIGZyZWV0eXBlX2FyZ3M9IiRmcmVldHlwZV9hcmdzIC0tcHJlZml4PSRmcmVldHlwZV9wcmVmaXgiCi0tICAgICBpZiB0ZXN0IHgke0ZSRUVUWVBFX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCi0tICAgICAgICBGUkVFVFlQRV9DT05GSUc9JGZyZWV0eXBlX3ByZWZpeC9iaW4vZnJlZXR5cGUtY29uZmlnCi0tICAgICBmaQotLWZpCi0tQUNfUEFUSF9QUk9HKEZSRUVUWVBFX0NPTkZJRywgZnJlZXR5cGUtY29uZmlnLCBubykKLS1ub19mcmVldHlwZT0iIgotLWlmIHRlc3QgIiRGUkVFVFlQRV9DT05GSUciID0gIm5vIiA7IHRoZW4KLS0gICAgQUNfTVNHX0VSUk9SKFsKLS0qKiogVW5hYmxlIHRvIGZpbmQgRnJlZVR5cGUyIGxpYnJhcnkgKGh0dHA6Ly93d3cuZnJlZXR5cGUub3JnLykKLS1dKQotLWVsc2UKLS0gICAgQ0ZMQUdTPSIkQ0ZMQUdTIGAkRlJFRVRZUEVfQ09ORklHICRmcmVldHlwZWNvbmZfYXJncyAtLWNmbGFnc2AiCi0tICAgIExJQlM9IiRMSUJTIGAkRlJFRVRZUEVfQ09ORklHICRmcmVldHlwZWNvbmZfYXJncyAtLWxpYnNgIgotLWZpCi0rUEtHX0NIRUNLX01PRFVMRVMoRlJFRVRZUEUyLCBmcmVldHlwZTIsIAotKyAgICBDRkxBR1M9IiRDRkxBR1MgJEZSRUVUWVBFMl9DRkxBR1MiCi0rICAgIExJQlM9IiRMSUJTICRGUkVFVFlQRTJfTElCUyIsCi0rICAgIEFDX01TR19FUlJPUihbKioqIFVuYWJsZSB0byBmaW5kIEZyZWVUeXBlMiBsaWJyYXJ5IChodHRwOi8vd3d3LmZyZWV0eXBlLm9yZy8pXSkKLSspCi0gCi0gZG5sIENoZWNrIGZvciBTREwKLSBTRExfVkVSU0lPTj0yLjAuMApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzZGwtdHRmL2xpYnNkbC10dGYvdXNlLnBrZy1jb25maWcuZm9yLmZyZWV0eXBlMi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9saWJzZGwtdHRmL3VzZS5wa2ctY29uZmlnLmZvci5mcmVldHlwZTIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTExNmMzNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9saWJzZGwtdHRmL3VzZS5wa2ctY29uZmlnLmZvci5mcmVldHlwZTIucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorRnJvbSA4Y2YzMTgxOTdlZWE5MWJlYzYwNTczMDhiZWZiYjI5NDI2ZDY5MDE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUmljaGFyZCBQdXJkaWUgPHJpY2hhcmQucHVyZGllQGxpbnV4Zm91bmRhdGlvbi5vcmc+CitEYXRlOiBUaHUsIDIyIE1heSAyMDE0IDEwOjU5OjMzICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIGZyZWV0eXBlLWNvbmZpZyB3YXMgcmVtb3ZlZCBmcm9tIG9lLWNvcmUgaW4KKworY29tbWl0IDU4NzBiZDI3MmIwYjA3N2QwODI2ZmI5MDBiMjUxODg0YzFjMDUwNjEKKworICAgIGJpbmNvbmZpZy1kaXNhYmxlZDogQWRkIGNsYXNzIGFuZCB1c2UKKworLS0tCisgY29uZmlndXJlLmluIHwgMzggKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgoraW5kZXggODY1MDc1ZS4uZDdhNWE4MSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5pbgorKysrIGIvY29uZmlndXJlLmluCitAQCAtOTAsMzkgKzkwLDExIEBAIGNhc2UgIiRob3N0IiBpbgorIGVzYWMKKyBBTV9DT05ESVRJT05BTChVU0VfVkVSU0lPTl9SQywgdGVzdCB4JHVzZV92ZXJzaW9uX3JjID0geHRydWUpCisgCistZG5sIENoZWNrIGZvciB0aGUgRnJlZVR5cGUgMiBsaWJyYXJ5CistZG5sCistZG5sIEdldCB0aGUgY2ZsYWdzIGFuZCBsaWJyYXJpZXMgZnJvbSB0aGUgZnJlZXR5cGUtY29uZmlnIHNjcmlwdAorLWRubAorLUFDX0FSR19XSVRIKGZyZWV0eXBlLXByZWZpeCxbICAtLXdpdGgtZnJlZXR5cGUtcHJlZml4PVBGWCAgIFByZWZpeCB3aGVyZSBGUkVFVFlQRSBpcyAKKy1pbnN0YWxsZWQgKG9wdGlvbmFsKV0sCistICAgICAgICAgICAgZnJlZXR5cGVfcHJlZml4PSIkd2l0aHZhbCIsIGZyZWV0eXBlX3ByZWZpeD0iIikKKy1BQ19BUkdfV0lUSChmcmVldHlwZS1leGVjLXByZWZpeCxbICAtLXdpdGgtZnJlZXR5cGUtZXhlYy1wcmVmaXg9UEZYIEV4ZWMgcHJlZml4IAorLXdoZXJlIEZSRUVUWVBFIGlzIGluc3RhbGxlZCAob3B0aW9uYWwpXSwKKy0gICAgICAgICAgICBmcmVldHlwZV9leGVjX3ByZWZpeD0iJHdpdGh2YWwiLCBmcmVldHlwZV9leGVjX3ByZWZpeD0iIikKKy0KKy1pZiB0ZXN0IHgkZnJlZXR5cGVfZXhlY19wcmVmaXggIT0geCA7IHRoZW4KKy0gICAgIGZyZWV0eXBlX2FyZ3M9IiRmcmVldHlwZV9hcmdzIC0tZXhlYy1wcmVmaXg9JGZyZWV0eXBlX2V4ZWNfcHJlZml4IgorLSAgICAgaWYgdGVzdCB4JHtGUkVFVFlQRV9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgorLSAgICAgICAgRlJFRVRZUEVfQ09ORklHPSRmcmVldHlwZV9leGVjX3ByZWZpeC9iaW4vZnJlZXR5cGUtY29uZmlnCistICAgICBmaQorLWZpCistaWYgdGVzdCB4JGZyZWV0eXBlX3ByZWZpeCAhPSB4IDsgdGhlbgorLSAgICAgZnJlZXR5cGVfYXJncz0iJGZyZWV0eXBlX2FyZ3MgLS1wcmVmaXg9JGZyZWV0eXBlX3ByZWZpeCIKKy0gICAgIGlmIHRlc3QgeCR7RlJFRVRZUEVfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KKy0gICAgICAgIEZSRUVUWVBFX0NPTkZJRz0kZnJlZXR5cGVfcHJlZml4L2Jpbi9mcmVldHlwZS1jb25maWcKKy0gICAgIGZpCistZmkKKy1BQ19QQVRIX1BST0coRlJFRVRZUEVfQ09ORklHLCBmcmVldHlwZS1jb25maWcsIG5vKQorLW5vX2ZyZWV0eXBlPSIiCistaWYgdGVzdCAiJEZSRUVUWVBFX0NPTkZJRyIgPSAibm8iIDsgdGhlbgorLSAgICBBQ19NU0dfRVJST1IoWworLSoqKiBVbmFibGUgdG8gZmluZCBGcmVlVHlwZTIgbGlicmFyeSAoaHR0cDovL3d3dy5mcmVldHlwZS5vcmcvKQorLV0pCistZWxzZQorLSAgICBDRkxBR1M9IiRDRkxBR1MgYCRGUkVFVFlQRV9DT05GSUcgJGZyZWV0eXBlY29uZl9hcmdzIC0tY2ZsYWdzYCIKKy0gICAgTElCUz0iJExJQlMgYCRGUkVFVFlQRV9DT05GSUcgJGZyZWV0eXBlY29uZl9hcmdzIC0tbGlic2AiCistZmkKKytQS0dfQ0hFQ0tfTU9EVUxFUyhGUkVFVFlQRTIsIGZyZWV0eXBlMiwgCisrICAgIENGTEFHUz0iJENGTEFHUyAkRlJFRVRZUEUyX0NGTEFHUyIKKysgICAgTElCUz0iJExJQlMgJEZSRUVUWVBFMl9MSUJTIiwKKysgICAgQUNfTVNHX0VSUk9SKFsqKiogVW5hYmxlIHRvIGZpbmQgRnJlZVR5cGUyIGxpYnJhcnkgKGh0dHA6Ly93d3cuZnJlZXR5cGUub3JnLyldKQorKykKKyAKKyBkbmwgQ2hlY2sgZm9yIFNETAorIFNETF9WRVJTSU9OPTEuMi40CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnNkbC10dGYvbGlic2RsMi10dGYvYXV0b21ha2VfZm9yZWlnbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9saWJzZGwyLXR0Zi9hdXRvbWFrZV9mb3JlaWduLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3MWU2ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnNkbC10dGYvbGlic2RsMi10dGYvYXV0b21ha2VfZm9yZWlnbi5wYXRjaApAQCAtMCwwICsxLDIxIEBACitGcm9tIGY5YzRhZDNhMTcxZDY3NmUzODE4YjhmNjg5N2YzMjVjY2YwYjIyMDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogVHVlLCA5IE1heSAyMDE3IDAwOjU3OjEwIC0wNzAwCisKKy0tLQorIE1ha2VmaWxlLmFtIHwgMiArKworIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KK2luZGV4IDgxNjZkOTEuLjhlMDVlNDkgMTAwNjQ0CistLS0gYS9NYWtlZmlsZS5hbQorKysrIGIvTWFrZWZpbGUuYW0KK0BAIC0yLDYgKzIsOCBAQAorIAorIGxpYl9MVExJQlJBUklFUyA9IGxpYlNETDJfdHRmLmxhCisgCisrQVVUT01BS0VfT1BUSU9OUyA9IGZvcmVpZ24KKysKKyBsaWJTREwyX3R0ZmluY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL1NETDIKKyBsaWJTREwyX3R0ZmluY2x1ZGVfSEVBREVSUyA9CVwKKyAJU0RMX3R0Zi5oCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnNkbC10dGYvbGlic2RsMi10dGYvdXNlLnBrZy1jb25maWcuZm9yLmZyZWV0eXBlMi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9saWJzZGwyLXR0Zi91c2UucGtnLWNvbmZpZy5mb3IuZnJlZXR5cGUyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkZmJlYzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnNkbC10dGYvbGlic2RsMi10dGYvdXNlLnBrZy1jb25maWcuZm9yLmZyZWV0eXBlMi5wYXRjaApAQCAtMCwwICsxLDYyIEBACitGcm9tIGU2ZDJjMGUxMzA4MTFjMTViNWY1Y2MxMDIyMWZhZTE4MmNiODYwOWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSaWNoYXJkIFB1cmRpZSA8cmljaGFyZC5wdXJkaWVAbGludXhmb3VuZGF0aW9uLm9yZz4KK0RhdGU6IFRodSwgMjIgTWF5IDIwMTQgMTA6NTk6MzMgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gZnJlZXR5cGUtY29uZmlnIHdhcyByZW1vdmVkIGZyb20gb2UtY29yZSBpbgorCitjb21taXQgNTg3MGJkMjcyYjBiMDc3ZDA4MjZmYjkwMGIyNTE4ODRjMWMwNTA2MQorCisgICAgYmluY29uZmlnLWRpc2FibGVkOiBBZGQgY2xhc3MgYW5kIHVzZQorCistLS0KKyBjb25maWd1cmUuaW4gfCAzOCArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCitpbmRleCA5YjM2ZTE1Li5mMzAwY2FlIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmluCisrKysgYi9jb25maWd1cmUuaW4KK0BAIC04NiwzOSArODYsMTEgQEAgY2FzZSAiJGhvc3QiIGluCisgZXNhYworIEFNX0NPTkRJVElPTkFMKFVTRV9WRVJTSU9OX1JDLCB0ZXN0IHgkdXNlX3ZlcnNpb25fcmMgPSB4dHJ1ZSkKKyAKKy1kbmwgQ2hlY2sgZm9yIHRoZSBGcmVlVHlwZSAyIGxpYnJhcnkKKy1kbmwKKy1kbmwgR2V0IHRoZSBjZmxhZ3MgYW5kIGxpYnJhcmllcyBmcm9tIHRoZSBmcmVldHlwZS1jb25maWcgc2NyaXB0CistZG5sCistQUNfQVJHX1dJVEgoZnJlZXR5cGUtcHJlZml4LFsgIC0td2l0aC1mcmVldHlwZS1wcmVmaXg9UEZYICAgUHJlZml4IHdoZXJlIEZSRUVUWVBFIGlzIAorLWluc3RhbGxlZCAob3B0aW9uYWwpXSwKKy0gICAgICAgICAgICBmcmVldHlwZV9wcmVmaXg9IiR3aXRodmFsIiwgZnJlZXR5cGVfcHJlZml4PSIiKQorLUFDX0FSR19XSVRIKGZyZWV0eXBlLWV4ZWMtcHJlZml4LFsgIC0td2l0aC1mcmVldHlwZS1leGVjLXByZWZpeD1QRlggRXhlYyBwcmVmaXggCistd2hlcmUgRlJFRVRZUEUgaXMgaW5zdGFsbGVkIChvcHRpb25hbCldLAorLSAgICAgICAgICAgIGZyZWV0eXBlX2V4ZWNfcHJlZml4PSIkd2l0aHZhbCIsIGZyZWV0eXBlX2V4ZWNfcHJlZml4PSIiKQorLQorLWlmIHRlc3QgeCRmcmVldHlwZV9leGVjX3ByZWZpeCAhPSB4IDsgdGhlbgorLSAgICAgZnJlZXR5cGVfYXJncz0iJGZyZWV0eXBlX2FyZ3MgLS1leGVjLXByZWZpeD0kZnJlZXR5cGVfZXhlY19wcmVmaXgiCistICAgICBpZiB0ZXN0IHgke0ZSRUVUWVBFX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCistICAgICAgICBGUkVFVFlQRV9DT05GSUc9JGZyZWV0eXBlX2V4ZWNfcHJlZml4L2Jpbi9mcmVldHlwZS1jb25maWcKKy0gICAgIGZpCistZmkKKy1pZiB0ZXN0IHgkZnJlZXR5cGVfcHJlZml4ICE9IHggOyB0aGVuCistICAgICBmcmVldHlwZV9hcmdzPSIkZnJlZXR5cGVfYXJncyAtLXByZWZpeD0kZnJlZXR5cGVfcHJlZml4IgorLSAgICAgaWYgdGVzdCB4JHtGUkVFVFlQRV9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgorLSAgICAgICAgRlJFRVRZUEVfQ09ORklHPSRmcmVldHlwZV9wcmVmaXgvYmluL2ZyZWV0eXBlLWNvbmZpZworLSAgICAgZmkKKy1maQorLUFDX1BBVEhfUFJPRyhGUkVFVFlQRV9DT05GSUcsIGZyZWV0eXBlLWNvbmZpZywgbm8pCistbm9fZnJlZXR5cGU9IiIKKy1pZiB0ZXN0ICIkRlJFRVRZUEVfQ09ORklHIiA9ICJubyIgOyB0aGVuCistICAgIEFDX01TR19FUlJPUihbCistKioqIFVuYWJsZSB0byBmaW5kIEZyZWVUeXBlMiBsaWJyYXJ5IChodHRwOi8vd3d3LmZyZWV0eXBlLm9yZy8pCistXSkKKy1lbHNlCistICAgIENGTEFHUz0iJENGTEFHUyBgJEZSRUVUWVBFX0NPTkZJRyAkZnJlZXR5cGVjb25mX2FyZ3MgLS1jZmxhZ3NgIgorLSAgICBMSUJTPSIkTElCUyBgJEZSRUVUWVBFX0NPTkZJRyAkZnJlZXR5cGVjb25mX2FyZ3MgLS1saWJzYCIKKy1maQorK1BLR19DSEVDS19NT0RVTEVTKEZSRUVUWVBFMiwgZnJlZXR5cGUyLCAKKysgICAgQ0ZMQUdTPSIkQ0ZMQUdTICRGUkVFVFlQRTJfQ0ZMQUdTIgorKyAgICBMSUJTPSIkTElCUyAkRlJFRVRZUEUyX0xJQlMiLAorKyAgICBBQ19NU0dfRVJST1IoWyoqKiBVbmFibGUgdG8gZmluZCBGcmVlVHlwZTIgbGlicmFyeSAoaHR0cDovL3d3dy5mcmVldHlwZS5vcmcvKV0pCisrKQorIAorIGRubCBDaGVjayBmb3IgU0RMCisgU0RMX1ZFUlNJT049Mi4wLjAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlidGVhbS9saWJ0ZWFtLzAwMDEtdGVhbV9iYXNpY190ZXN0LnB5LWRpc2FibGUtUmVkSGF0LXNwZWNpZmljLXRlc3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnRlYW0vbGlidGVhbS8wMDAxLXRlYW1fYmFzaWNfdGVzdC5weS1kaXNhYmxlLVJlZEhhdC1zcGVjaWZpYy10ZXN0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2OGE1NWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnRlYW0vbGlidGVhbS8wMDAxLXRlYW1fYmFzaWNfdGVzdC5weS1kaXNhYmxlLVJlZEhhdC1zcGVjaWZpYy10ZXN0LnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gMDBkZWJlNmJkNGNmNWEzMTMzYThmYmFhYjc1Zjc0NDdhMzlmYTY1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdlbnpvbmcgRmFuIDx3ZW56b25nLmZhbkB3aW5kcml2ZXIuY29tPgorRGF0ZTogVGh1LCAxMiBBcHIgMjAxOCAwMTo1NDoxNSArMDAwMAorU3ViamVjdDogW1BBVENIXSB0ZWFtX2Jhc2ljX3Rlc3QucHk6IGRpc2FibGUgUmVkSGF0IHNwZWNpZmljIHRlc3QKKworVGhlIHRlc3QgX3J1bl90ZWFtZF9pbml0c2NyaXB0cygpIGlzIGZvciBSZWRIYXQgaWZjZmcgc2NyaXB0cyB3aGljaCBhcmUKK2luY29tcGF0aWJsZSB3aXRoIE9FOgorICAvZXRjL3N5c2NvbmZpZy9uZXR3b3JrLXNjcmlwdHMvaWZjZmctKgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIFNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBXZW56b25nIEZhbiA8d2Vuem9uZy5mYW5Ad2luZHJpdmVyLmNvbT4KKy0tLQorIHNjcmlwdHMvdGVhbV9iYXNpY190ZXN0LnB5IHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc2NyaXB0cy90ZWFtX2Jhc2ljX3Rlc3QucHkgYi9zY3JpcHRzL3RlYW1fYmFzaWNfdGVzdC5weQoraW5kZXggYjA1YmU5ZS4uZmFhYmQxOCAxMDA3NTUKKy0tLSBhL3NjcmlwdHMvdGVhbV9iYXNpY190ZXN0LnB5CisrKysgYi9zY3JpcHRzL3RlYW1fYmFzaWNfdGVzdC5weQorQEAgLTE3MSw3ICsxNzEsNyBAQCBURUFNX1BPUlRfQ09ORklHPSd7InByaW8iOiAxMH0nCisgICAgICAgICB0cnk6CisgICAgICAgICAgICAgZm9yIG1vZGVfbmFtZSBpbiBzZWxmLl90ZWFtX21vZGVzOgorICAgICAgICAgICAgICAgICBzZWxmLl9ydW5fb25lX21vZGUobW9kZV9uYW1lKQorLSAgICAgICAgICAgIHNlbGYuX3J1bl90ZWFtZF9pbml0c2NyaXB0cygpCisrICAgICAgICAgICAgI3NlbGYuX3J1bl90ZWFtZF9pbml0c2NyaXB0cygpCisgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgIGNtZF9leGVjKCJtb2Rwcm9iZSAtciB0ZWFtX21vZGVfbG9hZGJhbGFuY2UgdGVhbV9tb2RlX3JvdW5kcm9iaW4gdGVhbV9tb2RlX2FjdGl2ZWJhY2t1cCB0ZWFtX21vZGVfYnJvYWRjYXN0IHRlYW0iKTsKKyAKKy0tIAorMi4xMy4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlidGVhbS9saWJ0ZWFtL3J1bi1wdGVzdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlidGVhbS9saWJ0ZWFtL3J1bi1wdGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmE1YWNmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZWFtL2xpYnRlYW0vcnVuLXB0ZXN0CkBAIC0wLDAgKzEsMyBAQAorIyEvYmluL3NoCisKK3B5dGhvbiAkKGRpcm5hbWUgJDApL3RlYW1fYmFzaWNfdGVzdC5weQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZWFtL2xpYnRlYW1fMS4yNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlidGVhbS9saWJ0ZWFtXzEuMjcuYmIKaW5kZXggMzIyMjcwMC4uNDQyNTkyZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZWFtL2xpYnRlYW1fMS4yNy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnRlYW0vbGlidGVhbV8xLjI3LmJiCkBAIC0xMCw2ICsxMCw4IEBACiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vanBpcmtvL2xpYnRlYW0gXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1pbmNsdWRlLXN5cy1zZWxlY3QuaC1mb3ItZmRfc2V0LWRlZmluaXRpb24ucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMi10ZWFtZC1SZS1hZGp1c3QtaW5jbHVkZS1oZWFkZXItb3JkZXIucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS10ZWFtX2Jhc2ljX3Rlc3QucHktZGlzYWJsZS1SZWRIYXQtc3BlY2lmaWMtdGVzdC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAogICAgICAgICAgICAiCiBTUkNSRVYgPSAiOTFhOTI4YTU2YTUwMWRhYWM1Y2U4YjNjMTZiZDk5NDM2NjFmMWQxNiIKIApAQCAtMTgsNyArMjAsNyBAQAogCiBTID0gIiR7V09SS0RJUn0vZ2l0IgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBwdGVzdAogCiBGSUxFU18ke1BOfSA9ICIke2xpYmRpcn0vbGlidGVhbSR7U09MSUJTfSBcCiAiCkBAIC0zMyw0ICszNSw4IEBACiAiCiAKIFJERVBFTkRTXyR7UE59LXV0aWxzID0gImJhc2giCitSREVQRU5EU18ke1BOfS1wdGVzdCA9ICJweXRob24iCiAKK2RvX2luc3RhbGxfcHRlc3QoKSB7CisJaW5zdGFsbCAke1N9L3NjcmlwdHMvdGVhbV9iYXNpY190ZXN0LnB5ICR7RH0ke1BURVNUX1BBVEh9LworfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMS1UZWxsLXNjb25zLXRvLXVzZS1idWlsZC1zZXR0aW5ncy1mcm9tLWVudmlyb25tZW50LXZhLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMS1UZWxsLXNjb25zLXRvLXVzZS1idWlsZC1zZXR0aW5ncy1mcm9tLWVudmlyb25tZW50LXZhLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWQ0OWQyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDEtVGVsbC1zY29ucy10by11c2UtYnVpbGQtc2V0dGluZ3MtZnJvbS1lbnZpcm9ubWVudC12YS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLUZyb20gNTMzNjhkM2Y0YWRjMDlkZDg0MjM0YTlhZjMxNzcxYmNkOGNhMjc1NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN2ZW4gRWJlbmZlbGQgPHN2ZW4uZWJlbmZlbGRAZ21haWwuY29tPgotRGF0ZTogRnJpLCAxNSBKYW4gMjAxNiAyMjo0MToyOCArMDEwMAotU3ViamVjdDogW1BBVENIXSBUZWxsIHNjb25zIHRvIHVzZSBidWlsZCBzZXR0aW5ncyBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlcwotCi1TaWduZWQtb2ZmLWJ5OiBTdmVuIEViZW5mZWxkIDxzdmVuLmViZW5mZWxkQGdtYWlsLmNvbT4KLS0tLQotIFNDb25zdHJ1Y3QgICAgICAgICAgICAgICAgfCA4ICsrKysrKy0tCi0gc3JjL21vbmdvL3V0aWwvU0NvbnNjcmlwdCB8IDIgKysKLSAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL1NDb25zdHJ1Y3QgYi9TQ29uc3RydWN0Ci1pbmRleCA1MDgyYTRiLi4zMzcwZjcwIDEwMDY0NAotLS0tIGEvU0NvbnN0cnVjdAotKysrIGIvU0NvbnN0cnVjdAotQEAgLTUwNyw2ICs1MDcsNyBAQCBkZWYgdmFyaWFibGVfYXJjaF9jb252ZXJ0ZXIodmFsKToKLSAgICAgICAgICdhbWQ2NCc6ICAneDg2XzY0JywKLSAgICAgICAgICdlbXQ2NCc6ICAgJ3g4Nl82NCcsCi0gICAgICAgICAneDg2JzogICAgJ2kzODYnLAotKyAgICAgICAgJ2FhcmNoNjQnOiAnYXJtNjQnLAotICAgICB9Ci0gICAgIHZhbCA9IHZhbC5sb3dlcigpCi0gCi1AQCAtNTY4LDcgKzU2OSw4IEBAIGVudl92YXJzLkFkZCgnQVJGTEFHUycsCi0gICAgIGNvbnZlcnRlcj12YXJpYWJsZV9zaGxleF9jb252ZXJ0ZXIpCi0gCi0gZW52X3ZhcnMuQWRkKCdDQycsCi0tICAgIGhlbHA9J1NlbGVjdCB0aGUgQyBjb21waWxlciB0byB1c2UnKQotKyAgICBoZWxwPSdTZWxlY3QgdGhlIEMgY29tcGlsZXIgdG8gdXNlJywKLSsgICAgZGVmYXVsdD1vcy5nZXRlbnYoJ0NDJykpCi0gCi0gZW52X3ZhcnMuQWRkKCdDQ0ZMQUdTJywKLSAgICAgaGVscD0nU2V0cyBmbGFncyBmb3IgdGhlIEMgYW5kIEMrKyBjb21waWxlcicsCi1AQCAtNTg4LDcgKzU5MCw4IEBAIGVudl92YXJzLkFkZCgnQ1BQUEFUSCcsCi0gICAgIGNvbnZlcnRlcj12YXJpYWJsZV9zaGxleF9jb252ZXJ0ZXIpCi0gCi0gZW52X3ZhcnMuQWRkKCdDWFgnLAotLSAgICBoZWxwPSdTZWxlY3QgdGhlIEMrKyBjb21waWxlciB0byB1c2UnKQotKyAgICBoZWxwPSdTZWxlY3QgdGhlIEMrKyBjb21waWxlciB0byB1c2UnLAotKyAgICBkZWZhdWx0PW9zLmdldGVudignQ1hYJykpCi0gCi0gZW52X3ZhcnMuQWRkKCdDWFhGTEFHUycsCi0gICAgIGhlbHA9J1NldHMgZmxhZ3MgZm9yIHRoZSBDKysgY29tcGlsZXInLAotQEAgLTgxOCw2ICs4MjEsNyBAQCBlbnZEaWN0ID0gZGljdChCVUlMRF9ST09UPWJ1aWxkRGlyLAotICAgICAgICAgICAgICAgICkKLSAKLSBlbnYgPSBFbnZpcm9ubWVudCh2YXJpYWJsZXM9ZW52X3ZhcnMsICoqZW52RGljdCkKLStlbnYuUHJlcGVuZEVOVlBhdGgoJ1BBVEgnLCBvcy5nZXRlbnYoJ1BBVEgnKSkKLSBkZWwgZW52RGljdAotIAotIGVudi5BZGRNZXRob2QoZW52X29zX2lzX3dyYXBwZXIsICdUYXJnZXRPU0lzJykKLWRpZmYgLS1naXQgYS9zcmMvbW9uZ28vdXRpbC9TQ29uc2NyaXB0IGIvc3JjL21vbmdvL3V0aWwvU0NvbnNjcmlwdAotaW5kZXggNmFkZDYwMi4uOGQwNWE2MiAxMDA2NDQKLS0tLSBhL3NyYy9tb25nby91dGlsL1NDb25zY3JpcHQKLSsrKyBiL3NyYy9tb25nby91dGlsL1NDb25zY3JpcHQKLUBAIC0yNTEsNiArMjUxLDggQEAgaWYgZ2V0X29wdGlvbignYWxsb2NhdG9yJykgPT0gJ3RjbWFsbG9jJzoKLSAgICAgICAgICAgICAgICAgJ01PTkdPX0hBVkVfR1BFUkZUT09MU19HRVRfVEhSRUFEX0NBQ0hFX1NJWkUnCi0gICAgICAgICAgICAgXQotICAgICAgICAgKQotKyAgICBpZiBub3QgdXNlX3N5c3RlbV92ZXJzaW9uX29mX2xpYnJhcnkoJ3ZhbGdyaW5kJyk6Ci0rICAgICAgICB0Y21zcEVudi5JbmplY3RUaGlyZFBhcnR5SW5jbHVkZVBhdGhzKCd2YWxncmluZCcpCi0gCi0gICAgIHRjbXNwRW52LkxpYnJhcnkoCi0gICAgICAgICB0YXJnZXQ9J3RjbWFsbG9jX3NldF9wYXJhbWV0ZXInLAotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1sb25nLWxvbmctaW5zdGVhZC1vZi1pbnQ2NF90LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMS1Vc2UtbG9uZy1sb25nLWluc3RlYWQtb2YtaW50NjRfdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQzYmViNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1sb25nLWxvbmctaW5zdGVhZC1vZi1pbnQ2NF90LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotRnJvbSBhNDk1MTQ4OWQ2NDljMmI2MDljYmI4MGY2Y2ZiNDlmZGNhZDhiZDQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFNhdCwgMiBTZXAgMjAxNyAxMDowMzozNyAtMDcwMAotU3ViamVjdDogW1BBVENIXSBVc2UgbG9uZyBsb25nIGluc3RlYWQgb2YgaW50NjRfdAotCi1GaXhlcwotZXJyb3I6IGNhbGwgdG8gbWVtYmVyIGZ1bmN0aW9uICdhcHBlbmROdW1iZXInIGlzIGFtYmlndW91cwotc2luY2UgdGhpcyBmdW5jdGlvbiBleHBlY3RzIGxvbmcgbG9uZyBhcyBwYXJhbWV0ZXIgYW5kIG5vdCBpbnQ2NF90Ci0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotIHNyYy9tb25nby91dGlsL3Byb2NwYXJzZXIuY3BwIHwgMTAgKysrKystLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvbW9uZ28vdXRpbC9wcm9jcGFyc2VyLmNwcCBiL3NyYy9tb25nby91dGlsL3Byb2NwYXJzZXIuY3BwCi1pbmRleCAzNmYyYWUwMjU0Li4yYzE2NGJjYmYzIDEwMDY0NAotLS0tIGEvc3JjL21vbmdvL3V0aWwvcHJvY3BhcnNlci5jcHAKLSsrKyBiL3NyYy9tb25nby91dGlsL3Byb2NwYXJzZXIuY3BwCi1AQCAtMjYwLDcgKzI2MCw3IEBAIFN0YXR1cyBwYXJzZVByb2NTdGF0KGNvbnN0IHN0ZDo6dmVjdG9yPFN0cmluZ0RhdGE+JiBrZXlzLAotIAotICAgICAgICAgICAgICAgICAgICAgU3RyaW5nRGF0YSBzdHJpbmdWYWx1ZSgoKnBhcnRJdCkuYmVnaW4oKSwgKCpwYXJ0SXQpLmVuZCgpIC0gKCpwYXJ0SXQpLmJlZ2luKCkpOwotIAotLSAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdmFsdWU7Ci0rICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgIHZhbHVlOwotIAotICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nVmFsdWUsICZ2YWx1ZSkuaXNPSygpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOwotQEAgLTI3Miw3ICsyNzIsNyBAQCBTdGF0dXMgcGFyc2VQcm9jU3RhdChjb25zdCBzdGQ6OnZlY3RvcjxTdHJpbmdEYXRhPiYga2V5cywKLSAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBTdHJpbmdEYXRhIHN0cmluZ1ZhbHVlKCgqcGFydEl0KS5iZWdpbigpLCAoKnBhcnRJdCkuZW5kKCkgLSAoKnBhcnRJdCkuYmVnaW4oKSk7Ci0gCi0tICAgICAgICAgICAgICAgIHVpbnQ2NF90IHZhbHVlOwotKyAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWU7Ci0gCi0gICAgICAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZ1ZhbHVlLCAmdmFsdWUpLmlzT0soKSkgewotICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOwotQEAgLTM2NSw3ICszNjUsNyBAQCBTdGF0dXMgcGFyc2VQcm9jTWVtSW5mbyhjb25zdCBzdGQ6OnZlY3RvcjxTdHJpbmdEYXRhPiYga2V5cywKLSAKLSAgICAgICAgICAgICBTdHJpbmdEYXRhIHN0cmluZ1ZhbHVlKCgqcGFydEl0KS5iZWdpbigpLCAoKnBhcnRJdCkuZW5kKCkpOwotIAotLSAgICAgICAgICAgIHVpbnQ2NF90IHZhbHVlOwotKyAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZTsKLSAKLSAgICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmdWYWx1ZSwgJnZhbHVlKS5pc09LKCkpIHsKLSAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOwotQEAgLTQyNiw3ICs0MjYsNyBAQCBTdGF0dXMgcGFyc2VQcm9jRGlza1N0YXRzKGNvbnN0IHN0ZDo6dmVjdG9yPFN0cmluZ0RhdGE+JiBkaXNrcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0RhdGEgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEJTT05PYmpCdWlsZGVyKiBidWlsZGVyKSB7Ci0gICAgIGJvb2wgZm91bmRLZXlzID0gZmFsc2U7Ci0tICAgIHN0ZDo6dmVjdG9yPHVpbnQ2NF90PiBzdGF0czsKLSsgICAgc3RkOjp2ZWN0b3I8bG9uZyBsb25nPiBzdGF0czsKLSAgICAgc3RhdHMucmVzZXJ2ZShrRGlza0ZpZWxkQ291bnQpOwotIAotICAgICB1c2luZyBzdHJpbmdfc3BsaXRfaXRlcmF0b3IgPSBib29zdDo6c3BsaXRfaXRlcmF0b3I8U3RyaW5nRGF0YTo6Y29uc3RfaXRlcmF0b3I+OwotQEAgLTUwMSw3ICs1MDEsNyBAQCBTdGF0dXMgcGFyc2VQcm9jRGlza1N0YXRzKGNvbnN0IHN0ZDo6dmVjdG9yPFN0cmluZ0RhdGE+JiBkaXNrcywKLSAKLSAgICAgICAgICAgICAgICAgU3RyaW5nRGF0YSBzdHJpbmdWYWx1ZSgoKnBhcnRJdCkuYmVnaW4oKSwgKCpwYXJ0SXQpLmVuZCgpKTsKLSAKLS0gICAgICAgICAgICAgICAgdWludDY0X3QgdmFsdWU7Ci0rICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZTsKLSAKLSAgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nVmFsdWUsICZ2YWx1ZSkuaXNPSygpKSB7Ci0gICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IDA7Ci0tLSAKLTIuMTQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLW1vbmdvLUFkZC11c2luZy1zdGQtc3RyaW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMS1tb25nby1BZGQtdXNpbmctc3RkLXN0cmluZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTUxN2Q1M2QuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMS1tb25nby1BZGQtdXNpbmctc3RkLXN0cmluZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLUZyb20gNWZkZWM5NTkyMjg1ZjU5NzYzNDVmYmNjYjNkMDdmYWUxMjQ1YWI1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDIgQXVnIDIwMTcgMTU6NDE6MjIgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gbW9uZ286IEFkZCB1c2luZyBzdGQ6OnN0cmluZwotCi1UaGlzIGlzIG5lZWRlZCB3aXRoIGxhdGVzdCBjbGFuZwotRml4ZXMKLXNyYy9tb25nby9kYi9kYndlYnNlcnZlci5jcHA6MjA2OjIzOiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnc3RyaW5nJzsgZGlkIHlvdSBtZWFuICdTdHJpbmcnPwotICAgICAgICBzdGF0aWMgdmVjdG9yPHN0cmluZz4gY29tbWFuZHM7Ci0gICAgICAgICAgICAgICAgICAgICAgXn5+fn5+Ci0gICAgICAgICAgICAgICAgICAgICAgU3RyaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvbW9uZ28vZGIvZGJ3ZWJzZXJ2ZXIuY3BwICAgICAgICAgICAgIHwgMSArCi0gc3JjL21vbmdvL2RiL21hdGNoZXIvZXhwcmVzc2lvbl9sZWFmLmNwcCB8IDIgKysKLSBzcmMvbW9uZ28vZGIvcmVwbC9tYXN0ZXJfc2xhdmUuY3BwICAgICAgIHwgMSArCi0gc3JjL21vbmdvL3V0aWwvbmV0L21pbml3ZWJzZXJ2ZXIuY3BwICAgICB8IDEgKwotIDQgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9zcmMvbW9uZ28vZGIvZGJ3ZWJzZXJ2ZXIuY3BwIGIvc3JjL21vbmdvL2RiL2Rid2Vic2VydmVyLmNwcAotaW5kZXggYjIwMmUwNTAwYi4uMDI1NTYxMzUyNCAxMDA2NDQKLS0tLSBhL3NyYy9tb25nby9kYi9kYndlYnNlcnZlci5jcHAKLSsrKyBiL3NyYy9tb25nby9kYi9kYndlYnNlcnZlci5jcHAKLUBAIC02Nyw2ICs2Nyw3IEBAIG5hbWVzcGFjZSBtb25nbyB7Ci0gdXNpbmcgc3RkOjptYXA7Ci0gdXNpbmcgc3RkOjpzdHJpbmdzdHJlYW07Ci0gdXNpbmcgc3RkOjp2ZWN0b3I7Ci0rdXNpbmcgc3RkOjpzdHJpbmc7Ci0gCi0gdXNpbmcgbmFtZXNwYWNlIGh0bWw7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL21vbmdvL2RiL21hdGNoZXIvZXhwcmVzc2lvbl9sZWFmLmNwcCBiL3NyYy9tb25nby9kYi9tYXRjaGVyL2V4cHJlc3Npb25fbGVhZi5jcHAKLWluZGV4IGQ1NjJiZmYxNDEuLjRkOTMxOTg1ZTIgMTAwNjQ0Ci0tLS0gYS9zcmMvbW9uZ28vZGIvbWF0Y2hlci9leHByZXNzaW9uX2xlYWYuY3BwCi0rKysgYi9zcmMvbW9uZ28vZGIvbWF0Y2hlci9leHByZXNzaW9uX2xlYWYuY3BwCi1AQCAtNDQsNiArNDQsOCBAQAotICNpbmNsdWRlICJtb25nby9zdGR4L21lbW9yeS5oIgotICNpbmNsdWRlICJtb25nby91dGlsL21vbmdvdXRpbHMvc3RyLmgiCi0gCi0rdXNpbmcgc3RkOjpzdHJpbmc7Ci0rCi0gbmFtZXNwYWNlIG1vbmdvIHsKLSAKLSBTdGF0dXMgTGVhZk1hdGNoRXhwcmVzc2lvbjo6c2V0UGF0aChTdHJpbmdEYXRhIHBhdGgpIHsKLWRpZmYgLS1naXQgYS9zcmMvbW9uZ28vZGIvcmVwbC9tYXN0ZXJfc2xhdmUuY3BwIGIvc3JjL21vbmdvL2RiL3JlcGwvbWFzdGVyX3NsYXZlLmNwcAotaW5kZXggMDVmYWFkMTI1OS4uZWEyNWQ3MTUxYiAxMDA2NDQKLS0tLSBhL3NyYy9tb25nby9kYi9yZXBsL21hc3Rlcl9zbGF2ZS5jcHAKLSsrKyBiL3NyYy9tb25nby9kYi9yZXBsL21hc3Rlcl9zbGF2ZS5jcHAKLUBAIC03OCw2ICs3OCw3IEBAIHVzaW5nIHN0ZDo6ZW5kbDsKLSB1c2luZyBzdGQ6Om1heDsKLSB1c2luZyBzdGQ6Om1pbjsKLSB1c2luZyBzdGQ6OnNldDsKLSt1c2luZyBzdGQ6OnN0cmluZzsKLSB1c2luZyBzdGQ6OnN0cmluZ3N0cmVhbTsKLSB1c2luZyBzdGQ6OnVuaXF1ZV9wdHI7Ci0gdXNpbmcgc3RkOjp2ZWN0b3I7Ci1kaWZmIC0tZ2l0IGEvc3JjL21vbmdvL3V0aWwvbmV0L21pbml3ZWJzZXJ2ZXIuY3BwIGIvc3JjL21vbmdvL3V0aWwvbmV0L21pbml3ZWJzZXJ2ZXIuY3BwCi1pbmRleCA1ZjQxNjVkNDJmLi4yMzk3MjBjMzQ5IDEwMDY0NAotLS0tIGEvc3JjL21vbmdvL3V0aWwvbmV0L21pbml3ZWJzZXJ2ZXIuY3BwCi0rKysgYi9zcmMvbW9uZ28vdXRpbC9uZXQvbWluaXdlYnNlcnZlci5jcHAKLUBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBtb25nbyB7Ci0gCi0gdXNpbmcgc3RkOjpzaGFyZWRfcHRyOwotIHVzaW5nIHN0ZDo6c3RyaW5nc3RyZWFtOwotK3VzaW5nIHN0ZDo6c3RyaW5nOwotIHVzaW5nIHN0ZDo6dmVjdG9yOwotIAotIE1pbmlXZWJTZXJ2ZXI6Ok1pbmlXZWJTZXJ2ZXIoY29uc3Qgc3RyaW5nJiBuYW1lLCBjb25zdCBzdHJpbmcmIGlwLCBpbnQgcG9ydCwgU2VydmljZUNvbnRleHQqIGN0eCkKLS0tIAotMi4xMy4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDItZF9zdGF0ZS5jcHAtQWRkLW1pc3NpbmctZGVwZW5kZW5uY3ktb24tbG9jYWxfc2hhcmRpbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDItZF9zdGF0ZS5jcHAtQWRkLW1pc3NpbmctZGVwZW5kZW5uY3ktb24tbG9jYWxfc2hhcmRpbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTVmOWMxYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAyLWRfc3RhdGUuY3BwLUFkZC1taXNzaW5nLWRlcGVuZGVubmN5LW9uLWxvY2FsX3NoYXJkaW4ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1Gcm9tIDU3NTk4NzhlNWQyNzhmMTFhMTA2M2U4ZmNjZDFlNmI3YjU0Y2FhZGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogV2VkLCAyIEF1ZyAyMDE3IDE2OjI1OjM3IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSBkX3N0YXRlLmNwcDogQWRkIG1pc3NpbmcgZGVwZW5kZW5uY3kgb24KLSBsb2NhbF9zaGFyZGluZ19pbmZvCi0KLUZpeGVzCi18IHNyYy9tb25nby9zL2Rfc3RhdGUuY3BwOjgxOiBlcnJvcjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byAnbW9uZ286OmVuYWJsZUxvY2FsU2hhcmRpbmdJbmZvKG1vbmdvOjpTZXJ2aWNlQ29udGV4dCosIHN0ZDo6ZnVuY3Rpb248Ym9vbCAobW9uZ286Ok9wZXJhdGlvbkNvbnRleHQqLCBzdGQ6Ol9fY3h4MTE6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0Jik+KScKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIHNyYy9tb25nby9zL1NDb25zY3JpcHQgfCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL3NyYy9tb25nby9zL1NDb25zY3JpcHQgYi9zcmMvbW9uZ28vcy9TQ29uc2NyaXB0Ci1pbmRleCA3MTcyMGJlNTE3Li41MWJkMTk5MTI3IDEwMDY0NAotLS0tIGEvc3JjL21vbmdvL3MvU0NvbnNjcmlwdAotKysrIGIvc3JjL21vbmdvL3MvU0NvbnNjcmlwdAotQEAgLTMxNyw1ICszMTcsNiBAQCBlbnYuTGlicmFyeSgKLSAgICAgICAgICIkQlVJTERfRElSL21vbmdvL2RiL3Mvc2hhcmRpbmciLAotICAgICAgICAgIiRCVUlMRF9ESVIvbW9uZ28vZXhlY3V0b3IvbmV0d29ya19pbnRlcmZhY2VfZmFjdG9yeSIsCi0gICAgICAgICAiJEJVSUxEX0RJUi9tb25nby9zL2NsaWVudC9zaGFyZF9sb2NhbCIsCi0rICAgICAgICAiJEJVSUxEX0RJUi9tb25nby9zL2xvY2FsX3NoYXJkaW5nX2luZm8iLAotICAgICBdLAotICkKLS0tIAotMi4xMy4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiX2dpdC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGZmN2QwYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYl9naXQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi1TVU1NQVJZID0gIm1vbmdvZGIiCi1MSUNFTlNFID0gIkFHUEwtMy4wICYgQXBhY2hlLTIuMCAmIFpsaWIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9HTlUtQUdQTC0zLjAudHh0O21kNT03M2YxZWIyMDUxN2M1NWJmOTQ5M2I3ZGQ2ZTQ4MDc4OCBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9BUEFDSEUtMi4wLnR4dDttZDU9M2I4M2VmOTYzODdmMTQ2NTVmYzg1NGRkYzNjNmJkNTciCi0KLURFUEVORFMgPSAib3BlbnNzbCBsaWJwY3JlIGxpYnBjYXAgemxpYiBweXRob24gYm9vc3QiCi0KLWluaGVyaXQgc2NvbnMgZG9zMnVuaXggc2l0ZWluZm8KLQotUFYgPSAiMy40LjYrZ2l0JHtTUkNQVn0iCi1TUkNSRVYgPSAiYzU1ZWI4NmVmNDZlZTdhZWRlM2IxZTJhNWQxODRhN2RmNGJmYjViNSIKLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9tb25nb2RiL21vbmdvLmdpdDticmFuY2g9djMuNCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLVRlbGwtc2NvbnMtdG8tdXNlLWJ1aWxkLXNldHRpbmdzLWZyb20tZW52aXJvbm1lbnQtdmEucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1tb25nby1BZGQtdXNpbmctc3RkLXN0cmluZy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAyLWRfc3RhdGUuY3BwLUFkZC1taXNzaW5nLWRlcGVuZGVubmN5LW9uLWxvY2FsX3NoYXJkaW4ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1Vc2UtbG9uZy1sb25nLWluc3RlYWQtb2YtaW50NjRfdC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLVVzZS1fX0dMSUJDX18tdG8tY29udHJvbC11c2Utb2YtZ251X2dldF9saWJjX3ZlcnNpb24ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1Vc2Utc3RyZXJyb3Jfci1vbmx5LW9uLWdsaWJjLXN5c3RlbXMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1BZGQtYS1kZWZpbml0aW9uLWZvci10aGUtbWFjcm8tX19FTEZfTkFUSVZFX0NMQVNTLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDMtQ29uZGl0aW9uYWxpemUtZ2xpYmMtc3BlY2lmaWMtc3RyZXJyb3Jfci5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9hcm02NC1zdXBwb3J0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtSW50ZWxSREZQTWF0aExpYjIwVTEtQ2hlY2stZm9yLV9fREVGSU5FRF93Y2hhcl90LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2Rpc2FibGUtaHctY3JjMzItb24tYXJtNjQtczM5MHgucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJX2FwcGVuZF9saWJjLW11c2wgPSJcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA0LXdpcmVkdGlnZXItRGlzYWJsZS1zdHJ0b3VxLW9uLW11c2wucGF0Y2ggXAotICAgICAgICAgICAiCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi0jIFdpcmVkdGlnZXIgc3VwcG9ydHMgb25seSA2NC1iaXQgcGxhdGZvcm1zCi1QQUNLQUdFQ09ORklHX3g4Ni02NCA/Pz0gInRjbWFsbG9jIHdpcmVkdGlnZXIiCi1QQUNLQUdFQ09ORklHX2FhcmNoNjQgPz89ICJ0Y21hbGxvYyB3aXJlZHRpZ2VyIgotUEFDS0FHRUNPTkZJRyA/Pz0gInRjbWFsbG9jIgotIyBncGVyZnRvb2xzIGNvbXBpbGF0aW9uIGZhaWxzIGZvciBhcm0gYmVsb3cgdjcgYmVjYXVzZSBvZiBtaXNzaW5nIHN1cHBvcnQgb2YKLSMgZG1iIG9wZXJhdGlvbi4gU28gd2UgdXNlIHN5c3RlbS1hbGxvY2F0b3IgaW5zdGVhZCBvZiB0Y21hbGxvYwotUEFDS0FHRUNPTkZJR19yZW1vdmVfYXJtdjYgPSAidGNtYWxsb2MiCi1QQUNLQUdFQ09ORklHX3JlbW92ZV9saWJjLW11c2wgPSAidGNtYWxsb2MiCi0KLSNzdGQ6OmN1cnJlbnRfZXhjZXB0aW9uIGlzIHVuZGVmaW5lZCBmb3IgYXJtIDwgdjYKLUNPTVBBVElCTEVfTUFDSElORV9hcm12NCA9ICIoIS4qYXJtdjQpLioiCi1DT01QQVRJQkxFX01BQ0hJTkVfYXJtdjUgPSAiKCEuKmFybXY1KS4qIgotQ09NUEFUSUJMRV9NQUNISU5FX2FybXY3YSA9ICIoIS4qYXJtdjdhKS4qIgotQ09NUEFUSUJMRV9NQUNISU5FX2FybXY3dmUgPSAiKCEuKmFybXY3dmUpLioiCi1DT01QQVRJQkxFX01BQ0hJTkVfbWlwczY0ID0gIighLiptaXBzNjQpLioiCi1DT01QQVRJQkxFX01BQ0hJTkVfcG93ZXJwYyA9ICIoIS4qcHBjKS4qIgotCi1QQUNLQUdFQ09ORklHW3RjbWFsbG9jXSA9ICItLXVzZS1zeXN0ZW0tdGNtYWxsb2MsLS1hbGxvY2F0b3I9c3lzdGVtLGdwZXJmdG9vbHMsIgotUEFDS0FHRUNPTkZJR1t3aXJlZHRpZ2VyXSA9ICItLXdpcmVkdGlnZXI9b24sLS13aXJlZHRpZ2VyPW9mZiwsIgotCi1FWFRSQV9PRVNDT05TID0gIi0tcHJlZml4PSR7RH0ke3ByZWZpeH0gXAotICAgICAgICAgICAgICAgICBMSUJQQVRIPSR7U1RBR0lOR19MSUJESVJ9IFwKLSAgICAgICAgICAgICAgICAgTElOS0ZMQUdTPScke0xERkxBR1N9JyBcCi0gICAgICAgICAgICAgICAgIENYWEZMQUdTPScke0NYWEZMQUdTfScgXAotICAgICAgICAgICAgICAgICBUQVJHRVRfQVJDSD0ke1RBUkdFVF9BUkNIfSBcCi0gICAgICAgICAgICAgICAgIC0tc3NsIFwKLSAgICAgICAgICAgICAgICAgLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycyBcCi0gICAgICAgICAgICAgICAgIC0tdXNlLXN5c3RlbS1wY3JlIFwKLSAgICAgICAgICAgICAgICAgLS11c2Utc3lzdGVtLXpsaWIgXAotICAgICAgICAgICAgICAgICAtLWpzLWVuZ2luZT1ub25lIFwKLSAgICAgICAgICAgICAgICAgLS1ub3N0cmlwIFwKLSAgICAgICAgICAgICAgICAgLS1lbmRpYW49JHtAYmFzZV9jb25kaXRpb25hbCgnU0lURUlORk9fRU5ESUFOTkVTUycsICdsZScsICdsaXR0bGUnLCAnYmlnJywgZCl9IFwKLSAgICAgICAgICAgICAgICAgJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfSBcCi0gICAgICAgICAgICAgICAgIG1vbmdvZCBtb25nb3MiCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgewotICAgICAgICAjIHRlc3RzIHVzZSBoZXggZmxvYXRzLCBub3Qgc3VwcG9ydGVkIGluIHBsYWluIEMrKwotICAgICAgICBzZWQgLWUgJ3N8LXN0ZD1jKysxMXwtc3RkPWdudSsrMTF8ZycgLWkgJHtTfS9TQ29uc3RydWN0Ci19Ci1zY29uc19kb19jb21waWxlKCkgewotICAgICAgICAke1NUQUdJTkdfQklORElSX05BVElWRX0vc2NvbnMgJHtQQVJBTExFTF9NQUtFfSAke0VYVFJBX09FU0NPTlN9IHx8IFwKLSAgICAgICAgZGllICJzY29ucyBidWlsZCBleGVjdXRpb24gZmFpbGVkLiIKLX0KLQotc2NvbnNfZG9faW5zdGFsbCgpIHsKLSAgICAgICAgJHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L3Njb25zIGluc3RhbGwgJHtFWFRSQV9PRVNDT05TfXx8IFwKLSAgICAgICAgZGllICJzY29ucyBpbnN0YWxsIGV4ZWN1dGlvbiBmYWlsZWQuIgotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi5pbmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2M2IzMTMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiLmluYworKysgL2Rldi9udWxsCkBAIC0xLDI5MyArMCwwIEBACi1TVU1NQVJZID0gIkEgcm9idXN0LCBzY2FsYWJsZSwgYW5kIHJlbGlhYmxlIFNRTCBzZXJ2ZXIiCi1IT01FUEFHRSA9ICJodHRwOi8vbWFyaWFkYi5vcmciCi1TRUNUSU9OID0gImxpYnMiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9kb3dubG9hZHMubWFyaWFkYi5vcmcvZi8ke0JQfS9zb3VyY2UvJHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL2ZpeC1jbWFrZS1tb2R1bGUtcGF0aC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9yZW1vdmUtYmFkLXBhdGgucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vZml4LW15c3FsY2xpZW50LXItdmVyc2lvbi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9teS5jbmYgXAotICAgICAgICAgICBmaWxlOi8vbXlzcWxkLnNlcnZpY2UgXAotICAgICAgICAgICBmaWxlOi8vaW5zdGFsbF9kYi5zZXJ2aWNlIFwKLSAgICAgICAgICAgZmlsZTovL2luc3RhbGxfZGIgXAotICAgICAgICAgICBmaWxlOi8vbXlzcWwtc3lzdGVtZC1zdGFydCBcCi0gICAgICAgICAgIGZpbGU6Ly9jb25maWd1cmUuY21ha2UtZml4LXZhbGdyaW5kLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2ZpeC1hLWJ1aWxkaW5nLWZhaWx1cmUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vY2hhbmdlLWNjLXRvLWNjLXZlcnNpb24ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1kaXNhYmxlLXVjb250ZXh0LW9uLW11c2wucGF0Y2ggXAotICAgICAgICAgICIKLQotU1JDX1VSSVttZDVzdW1dID0gIjJkNDEwNGFhZTBiOWU1ZWZhODg3ODkxOGJkMzI5Y2I0IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVkYmRlOThkN2U0YTVhMTcyMWI2Y2JlZDc4OThiMjU0OWE4ODg2NjI0Nzk1MWNmNTg2MDU3OTc1YzZjZWE2NDEiCi0KLVMgPSAiJHtXT1JLRElSfS9tYXJpYWRiLSR7UFZ9IgotCi1CSU5DT05GSUdfR0xPQiA9ICJteXNxbF9jb25maWciCi0KLWluaGVyaXQgY21ha2UgZ2V0dGV4dCBiaW5jb25maWcgdXBkYXRlLXJjLmQgdXNlcmFkZCBzeXN0ZW1kCi0KLUlOSVRTQ1JJUFRfUEFDS0FHRVMgPSAiJHtQTn0tc2VydmVyICR7UE59LXNldHVwZGIiCi1JTklUU0NSSVBUX05BTUVfJHtQTn0tc2VydmVyID0gIm15c3FsZCIKLUlOSVRTQ1JJUFRfUEFSQU1TXyR7UE59LXNlcnZlciA/PSAic3RhcnQgNDUgNSAuIHN0b3AgNDUgMCA2IDEgLiIKLQotVVNFUkFERF9QQUNLQUdFUyA9ICIke1BOfS1zZXJ2ZXIiCi1VU0VSQUREX1BBUkFNXyR7UE59LXNlcnZlciA9ICItLXN5c3RlbSAtLWhvbWUtZGlyIC92YXIvbXlzcWwgLWcgbXlzcWwgLS1zaGVsbCAvYmluL2ZhbHNlIG15c3FsIgotR1JPVVBBRERfUEFSQU1fJHtQTn0tc2VydmVyID0gIi0tc3lzdGVtIG15c3FsIgotCi1JTklUU0NSSVBUX05BTUVfJHtQTn0tc2V0dXBkYiA9ICJpbnN0YWxsX2RiIgotSU5JVFNDUklQVF9QQVJBTVNfJHtQTn0tc2V0dXBkYiA/PSAiZGVmYXVsdHMgNDQgNDQiCi0KLVNZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0tc2VydmVyICR7UE59LXNldHVwZGIiCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0tc2VydmVyID0gIm15c3FsZC5zZXJ2aWNlIgotU1lTVEVNRF9BVVRPX0VOQUJMRV8ke1BOfS1zZXJ2ZXIgPz0gImRpc2FibGUiCi0KLVNZU1RFTURfU0VSVklDRV8ke1BOfS1zZXR1cGRiID0gImluc3RhbGxfZGIuc2VydmljZSIKLVNZU1RFTURfQVVUT19FTkFCTEVfJHtQTn0tc2V0dXBkYiA/PSAiZW5hYmxlIgotQUxMT1dfRU1QVFlfJHtQTn0tc2V0dXBkYiA/PSAiMSIKLUZJTEVTXyR7UE59LXNldHVwZGIgPSAiJHtzeXNjb25mZGlyfS9pbml0LmQvaW5zdGFsbF9kYiIKLQotRVhUUkFfT0VNQUtFID0gIidHRU5fTEVYX0hBU0g9JHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L2dlbl9sZXhfaGFzaCciCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdwYW0nLCBkKX0gc2V0dXBkYiIKLVBBQ0tBR0VDT05GSUdfY2xhc3MtbmF0aXZlID0gIiIKLVBBQ0tBR0VDT05GSUdbcGFtXSA9ICIsLURXSVRIT1VUX0FVVEhfUEFNPVRSVUUsbGlicGFtIgotUEFDS0FHRUNPTkZJR1t2YWxncmluZF0gPSAiLURXSVRIX1ZBTEdSSU5EPVRSVUUsLURXSVRIX1ZBTEdSSU5EPUZBTFNFLHZhbGdyaW5kIgotUEFDS0FHRUNPTkZJR1tsaWJlZGl0XSA9ICItRExJQkVESVRfSU5URVJGQUNFPVRSVUUsLURMSUJFRElUX0lOVEVSRkFDRT1GQUxTRSxsaWJlZGl0IgotUEFDS0FHRUNPTkZJR1trcmI1XSA9ICIsICxrcmI1IgotUEFDS0FHRUNPTkZJR1tzZXR1cGRiXSA9ICIsICwsJHtQTn0tc2V0dXBkYiIKLQotIyBNYXJpYURCIGRvZXNuJ3QgbGluayBwcm9wZXJseSB3aXRoIGdvbGQKLSMgaHR0cHM6Ly9tYXJpYWRiLmF0bGFzc2lhbi5uZXQvYnJvd3NlL01ERVYtNTk4MgotVEFSR0VUX0NGTEFHUyArPSAiLWZ1c2UtbGQ9YmZkIgotCi1CVUlMRF9DRkxBR1MgKz0gIi1mdXNlLWxkPWJmZCIKLUJVSUxEX0NYWEZMQUdTICs9ICItZnVzZS1sZD1iZmQiCi0KLUVYVFJBX09FQ01BS0UgPSAiLURXSVRIX0VNQkVEREVEX1NFUlZFUj1PTiBcCi0gICAgICAgICAgICAgICAgIC1EV0lUSF9KRU1BTExPQz1ubyBcCi0gICAgICAgICAgICAgICAgIC1EV0lUSE9VVF9UT0tVREI9VFJVRSBcCi0gICAgICAgICAgICAgICAgIC1EQ01BS0VfRElTQUJMRV9GSU5EX1BBQ0tBR0VfQm9vc3Q9VFJVRSBcCi0gICAgICAgICAgICAgICAgIC1ER1JPRkY9RkFMU0UgXAotICAgICAgICAgICAgICAgICAtRE5ST0ZGPUZBTFNFIFwKLSAgICAgICAgICAgICAgICAgLURFTkFCTEVfRFRSQUNFPUZBTFNFIFwKLSAgICAgICAgICAgICAgICAgLURXSVRIX1BJQz1PTiBcCi0gICAgICAgICAgICAgICAgIC1ESU5TVEFMTF9MQVlPVVQ9UlBNIFwKLSAgICAgICAgICAgICAgICAgLURJTlNUQUxMX0RPQ0RJUjpQQVRIPSR7ZGF0YWRpcn0vZG9jLyR7QlBOfSBcCi0gICAgICAgICAgICAgICAgIC1ESU5TVEFMTF9MSUJESVI6UEFUSD0ke2Jhc2VsaWJ9IFwKLSAgICAgICAgICAgICAgICAgLURJTlNUQUxMX1BMVUdJTkRJUjpQQVRIPSR7YmFzZWxpYn0vcGx1Z2luIFwKLSAgICAgICAgICAgICAgICAgLURJTlNUQUxMX1NZU0NPTkZESVI6UEFUSD0ke3N5c2NvbmZkaXJ9IFwKLSAgICAgICAgICAgICAgICAgLURNWVNRTF9EQVRBRElSOlBBVEg9L3Zhci9teXNxbCBcCi0gICAgICAgICAgICAgICAgIC1EQ0FUX0VYRUNVVEFCTEU9YHdoaWNoIGNhdGAgXAotICAgICAgICAgICAgICAgICAtRENNQUtFX0FSOkZJTEVQQVRIPSR7QVJ9IgotCi1BUk1fSU5TVFJVQ1RJT05fU0VUX2FybXY0ID0gImFybSIKLUFSTV9JTlNUUlVDVElPTl9TRVRfYXJtdjUgPSAiYXJtIgotCi1kb19jb25maWd1cmVfYXBwZW5kKCkgewotICAgICMgaGFuZGxlIGRpc3Ryb3Mgd2l0aCBkaWZmZXJlbnQgdmFsdWVzIG9mICR7bGliZXhlY2Rpcn0KLSAgICBsaWJleGVjZGlyMj1gZWNobyAke2xpYmV4ZWNkaXJ9IHwgc2VkIC1lICdzKy91c3IvKytnJ2AKLSAgICBzZWQgLWkgLWUgInM6L2xpYmV4ZWM6LyRsaWJleGVjZGlyMjpnIiAke1N9L3NjcmlwdHMvbXlzcWxfaW5zdGFsbF9kYi5zaAotICAgIHNlZCAtaSAtZSAiczpteXNxbGQgbGliZXhlYzpteXNxbGQgJGxpYmV4ZWNkaXIyOmciICR7U30vc2NyaXB0cy9teXNxbF9pbnN0YWxsX2RiLnNoCi0gICAgc2VkIC1pIC1lICJzOi9saWJleGVjOi8kbGliZXhlY2RpcjI6ZyIgJHtTfS9zY3JpcHRzL215c3FsZF9zYWZlLnNoCi19Ci0KLWRvX2dlbmVyYXRlX3Rvb2xjaGFpbl9maWxlX2FwcGVuZF9jbGFzcy1uYXRpdmUgKCkgewotICAgICMgSWYgdGhlc2UgYXJlIHNldCBjbWFrZSB3aWxsIGFzc3VtZSB3ZSdyZSBjcm9zcy1jb21waWxpbmcsIHdoaWNoIHdpbGwKLSAgICAjIHJlc3VsdCBpbiBjZXJ0YWluIHRoaW5ncyB3ZSB3YW50IGJlaW5nIGRpc2FibGVkCi0gICAgc2VkIC1pICIvc2V0KCBDTUFLRV9TWVNURU1fTkFNRS9kIiAke1dPUktESVJ9L3Rvb2xjaGFpbi5jbWFrZQotICAgIHNlZCAtaSAiL3NldCggQ01BS0VfU1lTVEVNX1BST0NFU1NPUi9kIiAke1dPUktESVJ9L3Rvb2xjaGFpbi5jbWFrZQotfQotCi1kb19jb21waWxlX3ByZXBlbmRfY2xhc3MtdGFyZ2V0ICgpIHsKLSAgICAjIFRoZXNlIG5lZWQgdG8gYmUgaW4tdHJlZSBvciBtYWtlIHdpbGwgdGhpbmsgdGhleSBuZWVkIHRvIGJlIGJ1aWx0LAotICAgICMgYW5kIHNpbmNlIHdlJ3JlIGNyb3NzLWNvbXBpbGluZyB0aGF0IGlzIGRpc2FibGVkCi0gICAgY3AgJHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L2NvbXBfZXJyICR7U30vZXh0cmEKLSAgICBjcCAke1NUQUdJTkdfQklORElSX05BVElWRX0vY29tcF9zcWwgJHtTfS9zY3JpcHRzCi0KLSAgICBpZiBbICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdrcmI1JywgJ3llcycsICdubycsIGQpfSIgPSAibm8iIF07IHRoZW4KLSAgICAgICAgaWYgISBbIC1lICR7Qn0vaW5jbHVkZS9vcGVuc3NsL2tzc2wuaCBdIDsgdGhlbgotICAgICAgICAgICAgbWtkaXIgLXAgJHtCfS9pbmNsdWRlL29wZW5zc2wKLSAgICAgICAgICAgIGVjaG8gIiNpZm5kZWYgS1NTTF9IIiA+JHtCfS9pbmNsdWRlL29wZW5zc2wva3NzbC5oCi0gICAgICAgICAgICBlY2hvICIjZGVmaW5lIEtTU0xfSCIgPj4ke0J9L2luY2x1ZGUvb3BlbnNzbC9rc3NsLmgKLSAgICAgICAgICAgIGVjaG8gIiNpbmNsdWRlIDxvcGVuc3NsL29wZW5zc2xjb25mLmg+Ij4+JHtCfS9pbmNsdWRlL29wZW5zc2wva3NzbC5oCi0gICAgICAgICAgICBlY2hvICIjZW5kaWYiID4+JHtCfS9pbmNsdWRlL29wZW5zc2wva3NzbC5oCi0gICAgICAgIGZpCi0gICAgZmkKLX0KLQotU1lTUk9PVF9QUkVQUk9DRVNTX0ZVTkNTICs9ICJtYXJpYWRiX3N5c3Jvb3RfcHJlcHJvY2VzcyIKLQotIyBXZSBuZWVkIHRvIGFwcGVuZCB0aGlzIHNvIGl0IHJ1bnMgKmFmdGVyKiBiaW5jb25maWcncyBwcmVwcm9jZXNzIGZ1bmN0aW9uCi0jCi0jIFdlIHJlYWxseSBkb24ndCBjYXJlIGV4YWN0bHkgd2hhdCB0aGUgZGlyZWN0b3JpZXMgd2VyZSBzZXQgdG8gb3JpZ2luYWxseS4KLSMgcGx1Z2luZGlyIGlzIG5vdCBmaXhlZCwgYnV0IHdlIGRvbid0IGNyZWF0ZSBhbnkgcGx1Z2lucy4KLSMKLW1hcmlhZGJfc3lzcm9vdF9wcmVwcm9jZXNzICgpIHsKLSAgICBzZWQgLWkgLWVzLF5wa2dpbmNsdWRlZGlyPS4qLHBrZ2luY2x1ZGVkaXI9XCcke1NUQUdJTkdfSU5DRElSfS9teXNxbFwnLCAke1NZU1JPT1RfREVTVERJUn0ke2JpbmRpcl9jcm9zc3NjcmlwdHN9L215c3FsX2NvbmZpZwotICAgIHNlZCAtaSAtZXMsXnBrZ2xpYmRpcj0uKixwa2dsaWJkaXI9XCcke1NUQUdJTkdfTElCRElSfVwnLCAke1NZU1JPT1RfREVTVERJUn0ke2JpbmRpcl9jcm9zc3NjcmlwdHN9L215c3FsX2NvbmZpZwotfQotCi1kb19pbnN0YWxsKCkgewotICAgIG9lX3J1bm1ha2UgJ0RFU1RESVI9JHtEfScgaW5zdGFsbAotCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vbXkuY25mICR7RH0vJHtzeXNjb25mZGlyfS8KLSAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS9pbnN0YWxsX2RiICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQvCi0gICAgbXYgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZC9teXNxbCAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kL215c3FsZAotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L215c3FsZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vaW5zdGFsbF9kYi5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgc2VkIC1pIC1lICdzLEBCSU5ESVJALCR7YmluZGlyfSxnJyAtZSAncyxAUFJFRklYQCwke3ByZWZpeH0sZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vbXlzcWxkLnNlcnZpY2UgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2luc3RhbGxfZGIuc2VydmljZQotCi0gICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kCi0gICAgICAgIGVjaG8gImYgL3Zhci9sb2cvbXlzcWxkLmVyciAwNjQwIG15c3FsIG15c3FsIC0iIFwKLSAgICAgICAgICAgID4gJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC85OS1teXNxbGQuY29uZgotICAgIGZpCi0gICAgaW5zdGFsbCAtZCAke0R9JHtiaW5kaXJ9Ci0gICAgaW5zdGFsbCAtbSA3NTUgJHtXT1JLRElSfS9teXNxbC1zeXN0ZW1kLXN0YXJ0ICR7RH0ke2JpbmRpcn0KLSAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9L2RvYy8ke1BOfQotICAgIGlmIFsgLWYgJHtEfSR7ZGF0YWRpcn0vZG9jL1JFQURNRSBdOyB0aGVuCi0gICAgICAgIG12ICR7RH0ke2RhdGFkaXJ9L2RvYy9SRUFETUUgJHtEfSR7ZGF0YWRpcn0vZG9jLyR7UE59LwotICAgIGZpCi19Ci0KLVBBQ0tBR0VTID0gIiR7UE59LWRiZyAke1BOfSBcCi0gICAgbGlibXlzcWxjbGllbnQtciBsaWJteXNxbGNsaWVudC1yLWRldiBsaWJteXNxbGNsaWVudC1yLXN0YXRpY2RldiBsaWJteXNxbGNsaWVudC1yLWRiZyBcCi0gICAgbGlibXlzcWxjbGllbnQgbGlibXlzcWxjbGllbnQtZGV2IGxpYm15c3FsY2xpZW50LXN0YXRpY2RldiBsaWJteXNxbGNsaWVudC1kYmcgXAotICAgIGxpYm15c3FsZCBsaWJteXNxbGQtZGV2ICR7UE59LWNsaWVudCAke1BOfS1zZXJ2ZXIgJHtQTn0tc2V0dXBkYiAke1BOfS1sZWZ0b3ZlcnMiCi1DT05GRklMRVNfJHtQTn0tc2VydmVyICs9ICIke3N5c2NvbmZkaXJ9L215LmNuZiAke3N5c2NvbmZkaXJ9L215LmNuZi5kL3NlcnZlci5jbmYiCi1DT05GRklMRVNfJHtQTn0tY2xpZW50ICs9ICIke3N5c2NvbmZkaXJ9L215LmNuZi5kL215c3FsLWNsaWVudHMuY25mIgotQ09ORkZJTEVTX2xpYm15c3FsY2xpZW50ICs9ICIke3N5c2NvbmZkaXJ9L215LmNuZi5kL2NsaWVudC5jbmYiCi0KLUZJTEVTXyR7UE59ID0gIiAiCi1SREVQRU5EU18ke1BOfSA9ICIke1BOfS1jbGllbnQgJHtQTn0tc2VydmVyIgotQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKLQotUkRFUEVORFNfJHtQTn0tY2xpZW50ID0gInBlcmwgcGVybC1tb2R1bGUtZ2V0b3B0LWxvbmcgcGVybC1tb2R1bGUtZmlsZS10ZW1wIFwKLSAgICBwZXJsLW1vZHVsZS1mY250bCBwZXJsLW1vZHVsZS1zeXMtaG9zdG5hbWUgcGVybC1tb2R1bGUtaXBjLW9wZW4zIFwKLSAgICBwZXJsLW1vZHVsZS1leHBvcnRlciIKLVJERVBFTkRTXyR7UE59LXNlcnZlciA9ICJwZXJsIHBlcmwtbW9kdWxlLWdldG9wdC1sb25nIHBlcmwtbW9kdWxlLWRhdGEtZHVtcGVyIFwKLSAgICBwZXJsLW1vZHVsZS1maWxlLWJhc2VuYW1lIHBlcmwtbW9kdWxlLWZpbGUtcGF0aCBwZXJsLW1vZHVsZS1zeXMtaG9zdG5hbWUgXAotICAgIHBlcmwtbW9kdWxlLWZpbGUtY29weSBwZXJsLW1vZHVsZS1maWxlLXRlbXAgcGVybC1tb2R1bGUtcG9zaXggXAotICAgICR7UE59LWNsaWVudCBsaWJkYmktcGVybCBsaWJkYmQtbXlzcWwtcGVybCIKLVJERVBFTkRTXyR7UE59LWxlZnRvdmVycyA9ICJwZXJsIHBlcmwtbW9kdWxlLWN3ZCBwZXJsLW1vZHVsZS1iZW5jaG1hcmsgcGVybC1tb2R1bGUtZ2V0b3B0LWxvbmcgXAotICAgIHBlcmwtbW9kdWxlLXBvc2l4IHBlcmwtbW9kdWxlLWRhdGEtZHVtcGVyIHBlcmwtbW9kdWxlLXNpZ3RyYXAgcGVybC1tb2R1bGUtdGhyZWFkcyBcCi0gICAgcGVybC1tb2R1bGUtdGhyZWFkcy1zaGFyZWQgcGVybC1tb2R1bGUtaW8tc29ja2V0IHBlcmwtbW9kdWxlLXN5cy1ob3N0bmFtZSBwZXJsLW1vZHVsZS1maWxlLWNvcHkgXAotICAgIHBlcmwtbW9kdWxlLWZpbGUtc3BlYyBwZXJsLW1vZHVsZS1maWxlLWZpbmQgcGVybC1tb2R1bGUtZmlsZS1iYXNlbmFtZSBwZXJsLW1vZHVsZS1maWxlLXBhdGggXAotICAgIHBlcmwtbW9kdWxlLWNvbnN0YW50IHBlcmwtbW9kdWxlLWxpYiBwZXJsLW1vZHVsZS1maWxlLXRlbXAgcGVybC1tb2R1bGUtZmlsZS1zcGVjLWZ1bmN0aW9ucyBcCi0gICAgcGVybC1tb2R1bGUtaW8tc29ja2V0LWluZXQgcGVybC1tb2R1bGUtaW8tc2VsZWN0IgotUkRFUEVORFNfJHtQTn0tc2V0dXBkYiA9ICJjb3JldXRpbHMiCi0KLSMgQWxsb3cgb2xkIGNvZGUgdG8gbGluayB0byB0aGUgYmFja3dhcmQgY29tcGF0aWJsZSBsaWJyYXJ5Ci1SREVQRU5EU19saWJteXNxbGNsaWVudC1kZXYgPSAibGlibXlzcWxjbGllbnQtci1kZXYiCi0KLUZJTEVTX2xpYm15c3FsY2xpZW50ID0gIlwKLSAgICAke2xpYmRpcn0vbGlibXlzcWxjbGllbnQuc28uKiBcCi0gICAgJHtzeXNjb25mZGlyfS9teS5jbmYuZC9jbGllbnQuY25mIgotRklMRVNfbGlibXlzcWxjbGllbnQtZGV2ID0gIiBcCi0gICAgJHtpbmNsdWRlZGlyfS9teXNxbC8gXAotICAgICR7bGliZGlyfS9saWJteXNxbGNsaWVudC5zbyBcCi0gICAgJHtzeXNjb25mZGlyfS9hY2xvY2FsIFwKLSAgICAke2JpbmRpcn0vbXlzcWxfY29uZmlnIgotRklMRVNfbGlibXlzcWxjbGllbnQtc3RhdGljZGV2ID0gIlwKLSAgICAke2xpYmRpcn0vKi5hIgotRklMRVNfbGlibXlzcWxjbGllbnQtZGJnID0gIiR7bGliZGlyfS9wbHVnaW4vLmRlYnVnLyBcCi0gICAgJHtkYXRhZGlyfS9teXNxbC10ZXN0L2xpYi9NeS9TYWZlUHJvY2Vzcy8uZGVidWcvbXlfc2FmZV9wcm9jZXNzIgotCi0jIEF2b2lkIHdhcm5pbmdzIGFib3V0IGhhX3h0cmFkYi5zby4wLjAuMCBhbmQgaGFfaW5ub2RiX3BsdWdpbi5zby4wLjAuMAotIyB3aGljaCBhcmUgaW50ZW50aW9uYWxseSBub24tUElDIG9uIDMyLWJpdCB4ODYgKHNlZSBlLmcuCi0jIHN0b3JhZ2UveHRyYWRiL3BsdWcuaW4gaW4gdGhlIHNvdXJjZSkKLUlOU0FORV9TS0lQX2xpYm15c3FsY2xpZW50X2FwcGVuZF94ODYgPSAiIHRleHRyZWwiCi0KLUZJTEVTX2xpYm15c3FsY2xpZW50LXIgPSAiJHtsaWJkaXJ9L2xpYm15c3FsY2xpZW50X3Iuc28uKiIKLUZJTEVTX2xpYm15c3FsY2xpZW50LXItZGV2ID0gIlwKLSAgICAke2xpYmRpcn0vbGlibXlzcWxjbGllbnRfci5zbyIKLUZJTEVTX2xpYm15c3FsY2xpZW50LXItc3RhdGljZGV2ID0gIiR7bGliZGlyfS9saWJteXNxbGNsaWVudF9yLmEiCi1GSUxFU19saWJteXNxbGNsaWVudC1yLWRiZyA9ICIke2xpYmRpcn0vcGx1Z2luLy5kZWJ1Z2xpYm15c3FsY2xpZW50X3Iuc28uKiIKLQotRklMRVNfbGlibXlzcWxkID0gIlwKLSAgICAke2xpYmRpcn0vbGlibXlzcWxkLnNvLioiCi1GSUxFU19saWJteXNxbGQtZGV2ID0gIlwKLSAgICAke2xpYmRpcn0vbGlibXlzcWxkLnNvIgotCi1GSUxFU18ke1BOfS1jbGllbnQgPSAiXAotICAgICR7YmluZGlyfS9teWlzYW1fZnRkdW1wIFwKLSAgICAke2JpbmRpcn0vbXlzcWwgXAotICAgICR7YmluZGlyfS9teXNxbF9jbGllbnRfdGVzdCBcCi0gICAgJHtiaW5kaXJ9L215c3FsX2NsaWVudF90ZXN0X2VtYmVkZGVkIFwKLSAgICAke2JpbmRpcn0vbXlzcWxfZmluZF9yb3dzIFwKLSAgICAke2JpbmRpcn0vbXlzcWxfZml4X2V4dGVuc2lvbnMgXAotICAgICR7YmluZGlyfS9teXNxbF93YWl0cGlkIFwKLSAgICAke2JpbmRpcn0vbXlzcWxhY2Nlc3MgXAotICAgICR7YmluZGlyfS9teXNxbGFkbWluIFwKLSAgICAke2JpbmRpcn0vbXlzcWxidWcgXAotICAgICR7YmluZGlyfS9teXNxbGNoZWNrIFwKLSAgICAke2JpbmRpcn0vbXlzcWxkdW1wIFwKLSAgICAke2JpbmRpcn0vbXlzcWxkdW1wc2xvdyBcCi0gICAgJHtiaW5kaXJ9L215c3FsaW1wb3J0IFwKLSAgICAke2JpbmRpcn0vbXlzcWxzaG93IFwKLSAgICAke2JpbmRpcn0vbXlzcWxzbGFwIFwKLSAgICAke2JpbmRpcn0vbXlzcWx0ZXN0X2VtYmVkZGVkIFwKLSAgICAke2xpYmV4ZWNkaXJ9L215c3FsbWFuYWdlciBcCi0gICAgJHtzeXNjb25mZGlyfS9teS5jbmYuZC9teXNxbC1jbGllbnRzLmNuZiIKLQotRklMRVNfJHtQTn0tc2VydmVyID0gIlwKLSAgICAke2JpbmRpcn0vY29tcF9lcnIgXAotICAgICR7YmluZGlyfS9pc2FtY2hrIFwKLSAgICAke2JpbmRpcn0vaXNhbWxvZyBcCi0gICAgJHtiaW5kaXJ9L21zcWwybXlzcWwgXAotICAgICR7YmluZGlyfS9teV9wcmludF9kZWZhdWx0cyBcCi0gICAgJHtiaW5kaXJ9L215aXNhbWNoayBcCi0gICAgJHtiaW5kaXJ9L215aXNhbWxvZyBcCi0gICAgJHtiaW5kaXJ9L215aXNhbXBhY2sgXAotICAgICR7YmluZGlyfS9teXNxbF9jb252ZXJ0X3RhYmxlX2Zvcm1hdCBcCi0gICAgJHtiaW5kaXJ9L215c3FsX2ZpeF9wcml2aWxlZ2VfdGFibGVzIFwKLSAgICAke2JpbmRpcn0vbXlzcWxfaW5zdGFsbF9kYiBcCi0gICAgJHtiaW5kaXJ9L215c3FsX3NlY3VyZV9pbnN0YWxsYXRpb24gXAotICAgICR7YmluZGlyfS9teXNxbF9zZXRwZXJtaXNzaW9uIFwKLSAgICAke2JpbmRpcn0vbXlzcWwtc3lzdGVtZC1zdGFydCBcCi0gICAgJHtiaW5kaXJ9L215c3FsX3R6aW5mb190b19zcWwgXAotICAgICR7YmluZGlyfS9teXNxbF91cGdyYWRlIFwKLSAgICAke2JpbmRpcn0vbXlzcWxfcGx1Z2luIFwKLSAgICAke2JpbmRpcn0vbXlzcWxfemFwIFwKLSAgICAke2JpbmRpcn0vbXlzcWxiaW5sb2cgXAotICAgICR7YmluZGlyfS9teXNxbGRfbXVsdGkgXAotICAgICR7YmluZGlyfS9teXNxbGRfc2FmZSBcCi0gICAgJHtiaW5kaXJ9L215c3FsZF9zYWZlX2hlbHBlciBcCi0gICAgJHtiaW5kaXJ9L215c3FsaG90Y29weSBcCi0gICAgJHtiaW5kaXJ9L215c3FsdGVzdCBcCi0gICAgJHtiaW5kaXJ9L25kYl9kZWxldGVfYWxsIFwKLSAgICAke2JpbmRpcn0vbmRiX2Rlc2MgXAotICAgICR7YmluZGlyfS9uZGJfZHJvcF9pbmRleCBcCi0gICAgJHtiaW5kaXJ9L25kYl9kcm9wX3RhYmxlIFwKLSAgICAke2JpbmRpcn0vbmRiX21nbSBcCi0gICAgJHtiaW5kaXJ9L25kYl9yZXN0b3JlIFwKLSAgICAke2JpbmRpcn0vbmRiX3NlbGVjdF9hbGwgXAotICAgICR7YmluZGlyfS9uZGJfc2VsZWN0X2NvdW50IFwKLSAgICAke2JpbmRpcn0vbmRiX3Nob3dfdGFibGVzIFwKLSAgICAke2JpbmRpcn0vbmRiX3dhaXRlciBcCi0gICAgJHtiaW5kaXJ9L3BhY2tfaXNhbSBcCi0gICAgJHtiaW5kaXJ9L3BlcnJvciBcCi0gICAgJHtiaW5kaXJ9L3JlcGxhY2UgXAotICAgICR7YmluZGlyfS9yZXNvbHZlX3N0YWNrX2R1bXAgXAotICAgICR7YmluZGlyfS9yZXNvbHZlaXAgXAotICAgICR7bGliZXhlY2Rpcn0vbXlzcWxkIFwKLSAgICAke3NiaW5kaXJ9L215c3FsZCBcCi0gICAgJHtzYmluZGlyfS9uZGJfY3BjZCBcCi0gICAgJHtzYmluZGlyfS9uZGJkIFwKLSAgICAke3NiaW5kaXJ9L25kYl9tZ21kIFwKLSAgICAke2xpYmRpcn0vcGx1Z2luLyouc28gXAotICAgICR7ZGF0YWRpcn0vbXlzcWwvIFwKLSAgICAke2xvY2Fsc3RhdGVkaXJ9L215c3FsLyBcCi0gICAgJHtzeXNjb25mZGlyfS9pbml0LmQvbXlzcWxkIFwKLSAgICAke3N5c2NvbmZkaXJ9L215LmNuZiBcCi0gICAgJHtzeXNjb25mZGlyfS9teS5jbmYuZC9zZXJ2ZXIuY25mIFwKLSAgICAke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQiCi0KLURFU0NSSVBUSU9OXyR7UE59LWxlZnRvdmVycyA9ICJ1bnBhY2thZ2VkIGFuZCBwcm9iYWJseSB1bm5lZWRlZCBmaWxlcyBmb3IgJHtQTn0iCi1GSUxFU18ke1BOfS1sZWZ0b3ZlcnMgPSAiLyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9maXgtbXlzcWxjbGllbnQtci12ZXJzaW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL2ZpeC1teXNxbGNsaWVudC1yLXZlcnNpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1MTY2MTkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL2ZpeC1teXNxbGNsaWVudC1yLXZlcnNpb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNjEgKzAsMCBAQAotRnJvbSA2ZGIyYTYwNjE5NmZiMzhhNmQxMDZkYzQwOWVlZTFjYjlhNDBhNDQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogVG9yIERpZHJpa3NlbiA8dG9yLmRpZHJpa3NlbkBvcmFjbGUuY29tPgotRGF0ZTogTW9uLCAyNCBKdW4gMjAxMyAxNzoxNTozNSArMDIwMAotU3ViamVjdDogW1BBVENIXSBCdWcjMTY4MDkwNTUgTVlTUUwgNS42IEFORCA1LjcgU1RJTEwgVVNFIExJQk1ZU1FMQ0xJRU5ULlNPLjE4Ci0KLVdpdGggdGhpcyBwYXRjaCwgdGhlIGxpYm15c3FsLyBkaXJlY3RvcnkgY29udGFpbnM6Ci1saWJteXNxbGNsaWVudC5hCi1saWJteXNxbGNsaWVudF9yLmEgLT4gbGlibXlzcWxjbGllbnQuYQotbGlibXlzcWxjbGllbnRfci5zbyAtPiBsaWJteXNxbGNsaWVudC5zbyoKLWxpYm15c3FsY2xpZW50X3Iuc28uMTggLT4gbGlibXlzcWxjbGllbnQuc28uMTgqCi1saWJteXNxbGNsaWVudF9yLnNvLjE4LjEuMCAtPiBsaWJteXNxbGNsaWVudC5zby4xOC4xLjAqCi1saWJteXNxbGNsaWVudC5zbyAtPiBsaWJteXNxbGNsaWVudC5zby4xOCoKLWxpYm15c3FsY2xpZW50LnNvLjE4IC0+IGxpYm15c3FsY2xpZW50LnNvLjE4LjEuMCoKLWxpYm15c3FsY2xpZW50LnNvLjE4LjEuMCoKLQotVGhpcyBmaXhlcyBsaWJteXNxbGNsaWVudF9yIHN5bWxpbmtzIHBvaW50aW5nIHRvIHRoZSB1bnZlcnNpb25lZAotbGlibXlzcWxjbGllbnQuc28gc3ltbGluayAobGVhZGluZyB0byBwYWNrYWdlIFFBIGVycm9ycyBzaW5jZSB0aGUKLWxpYm15c3FsY2xpZW50LXIgcGFja2FnZSBlbmRzIHVwIGRlcGVuZGluZyBvbiBsaWJteXNxbGNsaWVudC1kZXYpLgotCi1Cb3Jyb3dlZCBmcm9tIE15U1FMIDUuNiB0cmVlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wZXJjb25hL215c3FsLwotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+Ci0KLS0tLQotIGNtYWtlL2luc3RhbGxfbWFjcm9zLmNtYWtlIHwgMjUgKysrKysrKysrKysrKysrLS0tLS0tLS0tLQotIGNtYWtlL215c3FsX3ZlcnNpb24uY21ha2UgIHwgIDMgKystCi0gbGlibXlzcWwvQ01ha2VMaXN0cy50eHQgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY21ha2UvaW5zdGFsbF9tYWNyb3MuY21ha2UgYi9jbWFrZS9pbnN0YWxsX21hY3Jvcy5jbWFrZQotaW5kZXggYjhlZmRmOC4uYTBkMGU2OCAxMDA2NDQKLS0tLSBhL2NtYWtlL2luc3RhbGxfbWFjcm9zLmNtYWtlCi0rKysgYi9jbWFrZS9pbnN0YWxsX21hY3Jvcy5jbWFrZQotQEAgLTEsNCArMSw0IEBACi0tIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0rIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTMsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gIyAKLSAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotQEAgLTExMSwyOCArMTExLDMzIEBAIEZVTkNUSU9OKElOU1RBTExfU0NSSVBUKQotIEVOREZVTkNUSU9OKCkKLSAKLSAjIEluc3RhbGwgc3ltYm9saWMgbGluayB0byBDTWFrZSB0YXJnZXQuIAotLSMgdGhlIGxpbmsgaXMgY3JlYXRlZCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGFyZ2V0Ci0tIyBhbmQgZXh0ZW5zaW9uIHdpbGwgYmUgdGhlIHNhbWUgYXMgZm9yIHRhcmdldCBmaWxlLgotLU1BQ1JPKElOU1RBTExfU1lNTElOSyBsaW5rbmFtZSB0YXJnZXQgZGVzdGluYXRpb24gY29tcG9uZW50KQotKyMgV2UgZG8gJ2NkIHBhdGg7IGxuIC1zIHRhcmdldF9uYW1lIGxpbmtfbmFtZScKLSsjIFdlIGFsc28gYWRkIGFuIElOU1RBTEwgdGFyZ2V0IGZvciAiJHtwYXRofS8ke2xpbmtfbmFtZX0iCi0rTUFDUk8oSU5TVEFMTF9TWU1MSU5LIHRhcmdldCB0YXJnZXRfbmFtZSBsaW5rX25hbWUgZGVzdGluYXRpb24gY29tcG9uZW50KQotIElGKFVOSVgpCi0gICBHRVRfVEFSR0VUX1BST1BFUlRZKGxvY2F0aW9uICR7dGFyZ2V0fSBMT0NBVElPTikKLSAgIEdFVF9GSUxFTkFNRV9DT01QT05FTlQocGF0aCAke2xvY2F0aW9ufSBQQVRIKQotLSAgR0VUX0ZJTEVOQU1FX0NPTVBPTkVOVChuYW1lICR7bG9jYXRpb259IE5BTUUpCi0tICBTRVQob3V0cHV0ICR7cGF0aH0vJHtsaW5rbmFtZX0pCi0rICBNRVNTQUdFKFNUQVRVUyAidGFyZ2V0ICR7dGFyZ2V0fSIpCi0rICBNRVNTQUdFKFNUQVRVUyAibGlua19uYW1lICR7bGlua19uYW1lfSIpCi0rICBNRVNTQUdFKFNUQVRVUyAidGFyZ2V0X25hbWUgJHt0YXJnZXRfbmFtZX0iKQotKyAgTUVTU0FHRShTVEFUVVMgInBhdGggJHtwYXRofSIpCi0rICBNRVNTQUdFKFNUQVRVUyAiIikKLSsKLSsgIFNFVChvdXRwdXQgJHtwYXRofS8ke2xpbmtfbmFtZX0pCi0gICBBRERfQ1VTVE9NX0NPTU1BTkQoCi0gICAgIE9VVFBVVCAke291dHB1dH0KLSAgICAgQ09NTUFORCAke0NNQUtFX0NPTU1BTkR9IEFSR1MgLUUgcmVtb3ZlIC1mICR7b3V0cHV0fQotICAgICBDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gQVJHUyAtRSBjcmVhdGVfc3ltbGluayAKLS0gICAgICAke25hbWV9IAotLSAgICAgICR7bGlua25hbWV9Ci0rICAgICAgJHt0YXJnZXRfbmFtZX0gCi0rICAgICAgJHtsaW5rX25hbWV9Ci0gICAgIFdPUktJTkdfRElSRUNUT1JZICR7cGF0aH0KLSAgICAgREVQRU5EUyAke3RhcmdldH0KLSAgICAgKQotICAgCi0tICBBRERfQ1VTVE9NX1RBUkdFVChzeW1saW5rXyR7bGlua25hbWV9Ci0rICBBRERfQ1VTVE9NX1RBUkdFVChzeW1saW5rXyR7bGlua19uYW1lfQotICAgICBBTEwKLSAgICAgREVQRU5EUyAke291dHB1dH0pCi0tICBTRVRfVEFSR0VUX1BST1BFUlRJRVMoc3ltbGlua18ke2xpbmtuYW1lfSBQUk9QRVJUSUVTIENMRUFOX0RJUkVDVF9PVVRQVVQgMSkKLSsgIFNFVF9UQVJHRVRfUFJPUEVSVElFUyhzeW1saW5rXyR7bGlua19uYW1lfSBQUk9QRVJUSUVTIENMRUFOX0RJUkVDVF9PVVRQVVQgMSkKLSAgIElGKENNQUtFX0dFTkVSQVRPUiBNQVRDSEVTICJYY29kZSIpCi0gICAgICMgRm9yIFhjb2RlLCByZXBsYWNlIHByb2plY3QgY29uZmlnIHdpdGggaW5zdGFsbCBjb25maWcKLSAgICAgU1RSSU5HKFJFUExBQ0UgIiR7Q01BS0VfQ0ZHX0lOVERJUn0iIAotZGlmZiAtLWdpdCBhL2xpYm15c3FsL0NNYWtlTGlzdHMudHh0IGIvbGlibXlzcWwvQ01ha2VMaXN0cy50eHQKLWluZGV4IGJlNTc2MGYuLjk2Mjg2ZmYgMTAwNjQ0Ci0tLS0gYS9saWJteXNxbC9DTWFrZUxpc3RzLnR4dAotKysrIGIvbGlibXlzcWwvQ01ha2VMaXN0cy50eHQKLUBAIC0xODAsNiArMTgwLDEyIEBAIElGKE1TVkMpCi0gIElOU1RBTExfREVCVUdfVEFSR0VUKG15c3FsY2xpZW50IERFU1RJTkFUSU9OICR7SU5TVEFMTF9MSUJESVJ9L2RlYnVnKQotIEVORElGKCkKLSAKLStNQUNSTyhHRVRfVEFSR0VUX05BTUUgdGFyZ2V0IG91dF9uYW1lKQotKyAgR0VUX1RBUkdFVF9QUk9QRVJUWShsb2NhdGlvbiAke3RhcmdldH0gTE9DQVRJT04pCi0rICBHRVRfRklMRU5BTUVfQ09NUE9ORU5UKG5hbWUgJHtsb2NhdGlvbn0gTkFNRSkKLSsgIFNFVCgke291dF9uYW1lfSAke25hbWV9KQotK0VORE1BQ1JPKCkKLSsKLSBJRihVTklYKQotICAgTUFDUk8oR0VUX1ZFUlNJT05FRF9MSUJOQU1FIExJQk5BTUUgRVhURU5TSU9OIFZFUlNJT04gT1VUTkFNRSkKLSAgICAgU0VUKERPVF9WRVJTSU9OICIuJHtWRVJTSU9OfSIpCi1AQCAtMTkyLDcgKzE5OCwxMyBAQCBJRihVTklYKQotICAgICAgIFNFVCgke09VVE5BTUV9ICR7TElCTkFNRX0ke0VYVEVOU0lPTn0ke0RPVF9WRVJTSU9OfSkKLSAgICAgRU5ESUYoKSAKLSAgIEVORE1BQ1JPKCkKLS0gIElOU1RBTExfU1lNTElOSygke0NNQUtFX1NUQVRJQ19MSUJSQVJZX1BSRUZJWH1teXNxbGNsaWVudF9yLmEgbXlzcWxjbGllbnQgJHtJTlNUQUxMX0xJQkRJUn0gRGV2ZWxvcG1lbnQpCi0rRU5ESUYoKQotKwotK0lGKFVOSVgpCi0rICBHRVRfVEFSR0VUX05BTUUobXlzcWxjbGllbnQgbGliX25hbWUpCi0rICBJTlNUQUxMX1NZTUxJTksobXlzcWxjbGllbnQKLSsgICAgJHtsaWJfbmFtZX0gJHtDTUFLRV9TVEFUSUNfTElCUkFSWV9QUkVGSVh9bXlzcWxjbGllbnRfci5hCi0rICAgICR7SU5TVEFMTF9MSUJESVJ9IERldmVsb3BtZW50KQotIEVORElGKCkKLSAKLSBJRihOT1QgRElTQUJMRV9TSEFSRUQpCi1AQCAtMjA1LDEwICsyMTcsOSBAQCBJRihOT1QgRElTQUJMRV9TSEFSRUQpCi0gICAgICMgbGlidG9vbCBjb21wYXRhYmlsaXR5Ci0gICAgIElGKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIkZyZWVCU0QiIE9SIEFQUExFKQotICAgICAgIFNFVChPU19TSEFSRURfTElCX1ZFUlNJT04gIiR7U0hBUkVEX0xJQl9NQUpPUl9WRVJTSU9OfSIpCi0tICAgIEVMU0VJRihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICJIUC1VWCIpCi0tICAgICAgU0VUKE9TX1NIQVJFRF9MSUJfVkVSU0lPTiAiJHtTSEFSRURfTElCX01BSk9SX1ZFUlNJT059LjAiKQotICAgICBFTFNFKCkKLS0gICAgICBTRVQoT1NfU0hBUkVEX0xJQl9WRVJTSU9OICIke1NIQVJFRF9MSUJfTUFKT1JfVkVSU0lPTn0uMC4wIikKLSsgICAgICBTRVQoT1NfU0hBUkVEX0xJQl9WRVJTSU9OCi0rICAgICAgICAiJHtTSEFSRURfTElCX01BSk9SX1ZFUlNJT059LiR7U0hBUkVEX0xJQl9NSU5PUl9WRVJTSU9OfS4wIikKLSAgICAgRU5ESUYoKQotICAgICAjIE5hbWUgb2Ygc2hhcmVkIGxpYnJhcnkgaXMgbXlzcWxjbGllbnQgb24gVW5peAotICAgICBTRVRfVEFSR0VUX1BST1BFUlRJRVMobGlibXlzcWwgUFJPUEVSVElFUyAKLUBAIC0yMzksOCArMjUwLDEzIEBAIElGKE5PVCBESVNBQkxFX1NIQVJFRCkKLSAgICAgICAiJHtDTUFLRV9TSEFSRURfTElCUkFSWV9TVUZGSVh9IgotICAgICAgICIiCi0gICAgICAgbGlua25hbWUpCi0tICAgIElOU1RBTExfU1lNTElOSygke2xpbmtuYW1lfSBsaWJteXNxbCAke0lOU1RBTExfTElCRElSfSBTaGFyZWRMaWJyYXJpZXMpCi0tICAgIFNFVChPU19TSEFSRURfTElCX1NZTUxJTktTICIke1NIQVJFRF9MSUJfTUFKT1JfVkVSU0lPTn0iICIke09TX1NIQVJFRF9MSUJfVkVSU0lPTn0iKQotKyAgICBHRVRfVEFSR0VUX05BTUUobGlibXlzcWwgbGliX25hbWUpCi0rICAgIEdFVF9GSUxFTkFNRV9DT01QT05FTlQobGliX25hbWVfd2UgJHtsaWJfbmFtZX0gTkFNRV9XRSkKLSsgICAgSU5TVEFMTF9TWU1MSU5LKGxpYm15c3FsCi0rICAgICAgJHtsaWJfbmFtZX0gJHtsaW5rbmFtZX0KLSsgICAgICAke0lOU1RBTExfTElCRElSfSBTaGFyZWRMaWJyYXJpZXMpCi0rICAgIFNFVChPU19TSEFSRURfTElCX1NZTUxJTktTCi0rICAgICAgIiR7U0hBUkVEX0xJQl9NQUpPUl9WRVJTSU9OfSIgIiR7T1NfU0hBUkVEX0xJQl9WRVJTSU9OfSIpCi0gICAgIExJU1QoUkVNT1ZFX0RVUExJQ0FURVMgT1NfU0hBUkVEX0xJQl9TWU1MSU5LUykKLSAgICAgRk9SRUFDSCh2ZXIgJHtPU19TSEFSRURfTElCX1NZTUxJTktTfSkKLSAgICAgICBHRVRfVkVSU0lPTkVEX0xJQk5BTUUoCi1AQCAtMjQ4LDcgKzI2NCwxMSBAQCBJRihOT1QgRElTQUJMRV9TSEFSRUQpCi0gICAgICAgICAiJHtDTUFLRV9TSEFSRURfTElCUkFSWV9TVUZGSVh9IgotICAgICAgICAgIiR7dmVyfSIKLSAgICAgICAgIGxpbmtuYW1lKQotLSAgICAgIElOU1RBTExfU1lNTElOSygke2xpbmtuYW1lfSBsaWJteXNxbCAke0lOU1RBTExfTElCRElSfSBTaGFyZWRMaWJyYXJpZXMpCi0rICAgICAgR0VUX1ZFUlNJT05FRF9MSUJOQU1FKAotKyAgICAgICAgJHtsaWJfbmFtZV93ZX0gIiR7Q01BS0VfU0hBUkVEX0xJQlJBUllfU1VGRklYfSIgIiR7dmVyfSIgbGliX25hbWVfdmVyKQotKyAgICAgIElOU1RBTExfU1lNTElOSyhsaWJteXNxbAotKyAgICAgICAgJHtsaWJfbmFtZV92ZXJ9ICR7bGlua25hbWV9Ci0rICAgICAgICAke0lOU1RBTExfTElCRElSfSBTaGFyZWRMaWJyYXJpZXMpCi0gICAgIEVOREZPUkVBQ0goKQotICAgRU5ESUYoKQotIEVORElGKCkKLS0tIAotMi4wLjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uYW5vL25hbm9fMi43LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L25hbm8vbmFub18yLjcuNC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWFmMzkzZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L25hbm8vbmFub18yLjcuNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotaW5jbHVkZSBuYW5vLmluYwotCi1TUkNfVVJJW21kNXN1bV0gPSAiYzAxMWM3ZjllNDdjYjFkYTI3ZDRlN2NjOGI1NmVjNmEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzUyMTcwNjQzMDM5ZTJjOTVhNDMzZGUzNTdmMGM3MGE4YzRjNGM1NjFhOTBhN2U3MjU5YTYzZTIyNWI2NTliOSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmFuby9uYW5vXzIuOS4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uYW5vL25hbm9fMi45LjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZiMGNmMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmFuby9uYW5vXzIuOS4zLmJiCkBAIC0wLDAgKzEsNCBAQAoraW5jbHVkZSBuYW5vLmluYworCitTUkNfVVJJW21kNXN1bV0gPSAiNmRkMzdmMDEwZDZhOTg1YmYwZTVmOGVkMDkxZmY5MTkiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzc4M2JjZmQ0YjJkNWRjMGJmNjRkNGJkMDdiMWExOWU3YmEzYzkxZGE4ODFhNDI0OTc3MmEzNmI5NzJkNDAxMiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmUxMC9uZTEwXzEuMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uZTEwL25lMTBfMS4yLjEuYmIKaW5kZXggZTViNTBjZS4uNzZlMDc0MSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uZTEwL25lMTBfMS4yLjEuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uZTEwL25lMTBfMS4yLjEuYmIKQEAgLTI5LDcgKzI5LDcgQEAKICAgICAgICAgZC5zZXRWYXIoJ05FMTBfVEFSR0VUX0FSQ0gnLCAnYWFyY2g2NCcpCiAgICAgICAgIGJiLmRlYnVnKDIsICdCdWlsZGluZyBOZTEwIGZvciBhYXJjaDY0JykKICAgICBlbHNlOgotICAgICAgICByYWlzZSBiYi5wYXJzZS5Ta2lwUGFja2FnZSgiSW5jb21wYXRpYmxlIHdpdGggYXJjaHMgb3RoZXIgdGhhbiBhcm12NyBhbmQgYWFyY2g2NCIpCisgICAgICAgIHJhaXNlIGJiLnBhcnNlLlNraXBSZWNpcGUoIkluY29tcGF0aWJsZSB3aXRoIGFyY2hzIG90aGVyIHRoYW4gYXJtdjcgYW5kIGFhcmNoNjQiKQogfQogCiBkb19pbnN0YWxsKCkgewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uZW9uL25lb24vcGtnY29uZmlnLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uZW9uL25lb24vcGtnY29uZmlnLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzOWRiYTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L25lb24vbmVvbi9wa2djb25maWcucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCistLS0KKyBuZW9uLnBjLmluIHwgICAgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCistLS0gbmVvbi0wLjMwLjEub3JpZy9uZW9uLnBjLmluCisrKysgbmVvbi0wLjMwLjEvbmVvbi5wYy5pbgorQEAgLTcsNSArNyw1IEBAIE5hbWU6IG5lb24KKyBEZXNjcmlwdGlvbjogSFRUUC9XZWJEQVYgY2xpZW50IGxpYnJhcnkKKyBWZXJzaW9uOiBATkVPTl9WRVJTSU9OQAorIExpYnM6IC1MJHtsaWJkaXJ9IC1sbmVvbiBATkVPTl9QQ19MSUJTQAorLUxpYnMucHJpdmF0ZTogQE5FT05fTElCU0AKKytMaWJzLnByaXZhdGU6IC1MJHtsaWJkaXJ9IC1seiAtbGdjcnlwdCAtbGdwZy1lcnJvciAtbGV4cGF0IC1sZ251dGxzCisgQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0vbmVvbiBATkVPTl9DRkxBR1NACmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L25lb24vbmVvbl8wLjMwLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L25lb24vbmVvbl8wLjMwLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBiNzlmNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmVvbi9uZW9uXzAuMzAuMi5iYgpAQCAtMCwwICsxLDM4IEBACitTVU1NQVJZID0gIkFuIEhUVFAgYW5kIFdlYkRBViBjbGllbnQgbGlicmFyeSB3aXRoIGEgQyBpbnRlcmZhY2UiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LndlYmRhdi5vcmcvbmVvbi8iCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkxHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9zcmMvQ09QWUlORy5MSUI7bWQ1PWYzMGE5NzE2ZWYzNzYyZTM0NjdhMmY2MmJmNzkwZjBhIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9uZV91dGlscy5oO2JlZ2lubGluZT0xO2VuZGxpbmU9MjA7bWQ1PTJjYWNhNjA5NTM4ZWRkYWE2ZjZhZGYxMjBhMjE4MDM3IgorCitTUkNfVVJJID0gIiR7REVCSUFOX01JUlJPUn0vbWFpbi9uL25lb24yNy9uZW9uMjdfJHtQVn0ub3JpZy50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vcGtnY29uZmlnLnBhdGNoIFwKKyAgICAgICAgICAiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJlMjhkNzdiZjE0MDMyZDdmNTA0NmIzOTMwNzA0ZWY0MSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkYjBiZDhjZGVjMzI5YjQ4ZjUzYTZmMDAxOTljOTJkNWJhNDBiMGYwMTViMTUzNzE4ZDFiMTVkM2Q5NjdmYmNhIgorCitpbmhlcml0IGF1dG90b29scyBiaW5jb25maWctZGlzYWJsZWQgbGliX3BhY2thZ2UgcGtnY29uZmlnCisKKyMgRW5hYmxlIGdudXRscyBvciBvcGVuc3NsLCBub3QgYm90aAorUEFDS0FHRUNPTkZJRyA/PSAiZXhwYXQgZ251dGxzIGxpYnByb3h5IHdlYmRhdiB6bGliIgorUEFDS0FHRUNPTkZJR19jbGFzcy1uYXRpdmUgPSAiZXhwYXQgZ251dGxzIHdlYmRhdiB6bGliIgorCitQQUNLQUdFQ09ORklHW2V4cGF0XSA9ICItLXdpdGgtZXhwYXQsLS13aXRob3V0LWV4cGF0LGV4cGF0IgorUEFDS0FHRUNPTkZJR1tnbnV0bHNdID0gIi0td2l0aC1zc2w9Z251dGxzLCxnbnV0bHMiCitQQUNLQUdFQ09ORklHW2dzc2FwaV0gPSAiLS13aXRoLWdzc2FwaSwtLXdpdGhvdXQtZ3NzYXBpLGtyYjUiCitQQUNLQUdFQ09ORklHW2xpYnByb3h5XSA9ICItLXdpdGgtbGlicHJveHksLS13aXRob3V0LWxpYnByb3h5LGxpYnByb3h5IgorUEFDS0FHRUNPTkZJR1tsaWJ4bWwyXSA9ICItLXdpdGgtbGlieG1sMiwtLXdpdGhvdXQtbGlieG1sMixsaWJ4bWwyIgorUEFDS0FHRUNPTkZJR1tvcGVuc3NsXSA9ICItLXdpdGgtc3NsPW9wZW5zc2wsLG9wZW5zc2wiCitQQUNLQUdFQ09ORklHW3dlYmRhdl0gPSAiLS1lbmFibGUtd2ViZGF2LC0tZGlzYWJsZS13ZWJkYXYsIgorUEFDS0FHRUNPTkZJR1t6bGliXSA9ICItLXdpdGgtemxpYiwtLXdpdGhvdXQtemxpYix6bGliIgorCitFWFRSQV9PRUNPTkYgKz0gIi0tZW5hYmxlLXNoYXJlZCIKKworZG9fY29tcGlsZV9hcHBlbmQoKSB7CisgICAgb2VfcnVubWFrZSAtQyB0ZXN0Cit9CisKK0JJTkNPTkZJRyA9ICIke2JpbmRpcn0vbmVvbi1jb25maWciCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uZ2h0dHAyL25naHR0cDJfMS4yNi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uZ2h0dHAyL25naHR0cDJfMS4yNi4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTZiMTBhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmdodHRwMi9uZ2h0dHAyXzEuMjYuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVNVTU1BUlkgPSAiSFRUUC8yIEMgTGlicmFyeSBhbmQgdG9vbHMiCi1IT01FUEFHRSA9ICJodHRwczovL25naHR0cDIub3JnLyIKLVNFQ1RJT04gPSAibGlicyIKLQotREVQRU5EUyA9ICJwa2djb25maWcgY3VuaXQgemxpYiBvcGVuc3NsIGxpYnhtbDIgamFuc3NvbiBjLWFyZXMiCi0KLUxJQ0VOU0UgPSAiTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vJHtDT1JFQkFTRX0vbWV0YS9DT1BZSU5HLk1JVDttZDU9M2RhOWNmYmNiNzg4YzgwYTAzODQzNjFiNGRlMjA0MjAiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL25naHR0cDIvbmdodHRwMi9yZWxlYXNlcy9kb3dubG9hZC92JHtQVn0vbmdodHRwMi0ke1BWfS50YXIuYnoyIgotU1JDX1VSSVttZDVzdW1dID0gIjkyNmYwN2FkM2I1MGYzOGY3ZDg5MzVjZWQwNDcxNmNmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjBkZjQyMjlmNDEyM2I1YWE5NmU4MzRlYmNmZGZmZTk1NGU5M2Q5ODZmMDI1MmZkMTAxMjNkNTBjNmYwMTA5ODMiCi0KLWluaGVyaXQgY21ha2UgcHl0aG9ubmF0aXZlIHB5dGhvbi1kaXIKLQotRVhUUkFfT0VDTUFLRSA9ICIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW4tdm0tdG9vbHMvZmlsZXMvdm10b29sc2QuaW5pdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3Blbi12bS10b29scy9maWxlcy92bXRvb2xzZC5pbml0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4MjgwNDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW4tdm0tdG9vbHMvZmlsZXMvdm10b29sc2QuaW5pdApAQCAtMCwwICsxLDY2IEBACisjIS9iaW4vc2gKKyMKKyMgICB2bXRvb2xzZCAgICAgICAgICBTdGFydC9zdG9wIHRoZSB2bXdhcmUgdG9vbHMgZGFlbW9uCisjCisjIGNoa2NvbmZpZzogIDIzNDUgOTAgNjAKKyMgZGVzY3JpcHRpb246IHZtdG9vbHNkIGlzIGEgZGFlbW9uIHRoYXQgc3RhcnRzIHVwLiAgZm9yIHNvbWUgcmVhc29uLCBpdAorIyAgICAgICAgICAgICAgZG9lc24ndCBpbmNsdWRlIGEgc3lzdiBpbml0IHN0YXJ0dXAgZmlsZSBpbiB0aGUgbGF0ZXN0IHJlbGVhc2UuCisjICAgICAgICAgICAgICBzbyBpIGhhdmUgdG8gd3JpdGUgdGhpcworIworCisjIyMgQkVHSU4gSU5JVCBJTkZPCisjIFByb3ZpZGVzOiB2bXRvb2xzZAorIyBSZXF1aXJlZC1TdGFydDogJGxvY2FsX2ZzICRzeXNsb2cKKyMgUmVxdWlyZWQtU3RvcDogJGxvY2FsX2ZzICRzeXNsb2cKKyMgRGVmYXVsdC1TdGFydDogMjM0NQorIyBEZWZhdWx0LVN0b3A6IDkwCisjIFNob3J0LURlc2NyaXB0aW9uOiBSdW4gdm13YXJlIHRvb2xzIGRhZW1vbgorIyMjIEVORCBJTklUIElORk8KKworUEFUSD0vc2JpbjovYmluOi91c3Ivc2JpbjovdXNyL2JpbgorREFFTU9OPS91c3IvYmluL3ZtdG9vbHNkCitOQU1FPXZtdG9vbHNkCitERVNDPSJ2bXdhcmUgdG9vbHMgZGFlbW9uIgorVk1UT09MU0RBUkdTPSIgLWIgL3Zhci9ydW4vdm10b29sc2QucGlkICIKK1JFVFZBTD0iMSIKKworIyBzb3VyY2UgZnVuY3Rpb24gbGlicmFyeQorLiAvZXRjL2luaXQuZC9mdW5jdGlvbnMKKwordGVzdCAtZiAkREFFTU9OIHx8IGV4aXQgMAorCisKK2Nhc2UgIiQxIiBpbgorICBzdGFydCkKKyAgICBlY2hvIC1uICJTdGFydGluZyB2bXdhcmUgdG9vbHMgZGFlbW9uOiAiCisgICAgc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAtLXF1aWV0IC0tZXhlYyAkREFFTU9OIC0tICRWTVRPT0xTREFSR1MKKyAgICBSRVRWQUw9JD8KKyAgICBpZiBbICRSRVRWQUwgLWVxIDAgXSA7IHRoZW4KKyAgICAgICAgZWNobyAiT0siCisgICAgZWxzZQorICAgICAgICBlY2hvICJGQUlMIgorICAgIGZpCisgICAgOzsKKyAgc3RvcCkKKyAgICBlY2hvIC1uICJTdG9wcGluZyB2bXdhcmUgdG9vbHMgZGFlbW9uOiAiCisgICAgc3RhcnQtc3RvcC1kYWVtb24gLS1zdG9wIC0tcXVpZXQgLS1waWRmaWxlIC92YXIvcnVuL3ZtdG9vbHNkLnBpZAorICAgIFJFVFZBTD0kPworICAgIGlmIFsgJFJFVFZBTCAtZXEgMCBdIDsgdGhlbgorICAgICAgICBlY2hvICJPSyIKKyAgICBlbHNlCisgICAgICAgIGVjaG8gIkZBSUwiCisgICAgZmkKKyAgICA7OworICBzdGF0dXMpCisgICAgc3RhdHVzIHZtdG9vbHNkCisgICAgZXhpdCAkPworICAgIDs7CisgIHJlc3RhcnQpCisgICAgJDAgc3RvcCAmJiBzbGVlcCAxICYmICQwIHN0YXJ0CisgICAgOzsKKyAgKikKKyAgICBlY2hvICJVc2FnZTogL2V0Yy9pbml0LmQvdm10b29sc2Qge3N0YXJ0fHN0b3B8c3RhdHVzfHJlc3RhcnR9IgorICAgIGV4aXQgMQorZXNhYworCitleGl0ICRSRVRWQUwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3Blbi12bS10b29scy9vcGVuLXZtLXRvb2xzXzEwLjEuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3Blbi12bS10b29scy9vcGVuLXZtLXRvb2xzXzEwLjEuNS5iYgppbmRleCA4MWU4ZTk2Li5jMzJkMmM1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW4tdm0tdG9vbHMvb3Blbi12bS10b29sc18xMC4xLjUuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuLXZtLXRvb2xzL29wZW4tdm0tdG9vbHNfMTAuMS41LmJiCkBAIC0yNCw2ICsyNCw3IEBACiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vdm13YXJlL29wZW4tdm0tdG9vbHMuZ2l0O3Byb3RvY29sPWh0dHBzIFwKICAgICAgICAgICAgZmlsZTovL3Rvb2xzLmNvbmYgXAogICAgICAgICAgICBmaWxlOi8vdm10b29sc2Quc2VydmljZSBcCisgICAgICAgICAgIGZpbGU6Ly92bXRvb2xzZC5pbml0IFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLmFjLWRvbi10LXVzZS1kbmV0LWNvbmZpZy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAyLWFkZC1pbmNsdWRlLXN5cy1zeXNtYWNyb3MuaC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLVJlbW92ZS1hc3N1bXB0aW9ucy1hYm91dC1nbGliYy1iZWluZy1vbmx5LWxpYmMtaW1wbGUucGF0Y2ggXApAQCAtNTAsNyArNTEsNyBAQAogIyBvcGVuLXZtLXRvb2xzIGlzIHN1cHBvcnRlZCBvbmx5IG9uIHg4Ni4KIENPTVBBVElCTEVfSE9TVCA9ICcoeDg2XzY0Lip8aS44Ni4qKS1saW51eCcKIAotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIHN5c3RlbWQKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBzeXN0ZW1kIHVwZGF0ZS1yYy5kCiAKIFNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJ2bXRvb2xzZC5zZXJ2aWNlIgogCkBAIC04NSw4ICs4NiwxNCBAQAogCiBkb19pbnN0YWxsX2FwcGVuZCgpIHsKICAgICBsbiAtc2YgJHtzYmluZGlyfS9tb3VudC52bWhnZnMgJHtEfS9zYmluL21vdW50LnZtaGdmcwotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0gJHtEfSR7c3lzY29uZmRpcn0vdm13YXJlLXRvb2xzCi0gICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS8qLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3Ztd2FyZS10b29scworICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICAgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS8qLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBlbHNlCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgICAgIGluc3RhbGwgLW0gMDc1NSAke1dPUktESVJ9L3ZtdG9vbHNkLmluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3ZtdG9vbHNkCisgICAgZmkKICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS90b29scy5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L3Ztd2FyZS10b29scy90b29scy5jb25mCiB9CiAKQEAgLTk1LDYgKzEwMiwxMCBAQAogICAgIGV4cG9ydCBDVVNUT01fRE5FVF9MSUJTPS1MJHtTVEFHSU5HX0xJQkRJUn0vbGliZG5ldC5zbwogfQogCitJTklUU0NSSVBUX1BBQ0tBR0VTID0gIiR7UE59IgorSU5JVFNDUklQVF9OQU1FXyR7UE59ID0gInZtdG9vbHNkIgorSU5JVFNDUklQVF9QQVJBTVNfJHtQTn0gPSAic3RhcnQgOTAgMiAzIDQgNSAuIHN0b3AgNjAgMCAxIDYgLiIKKwogcHl0aG9uKCkgewogICAgIGlmICduZXR3b3JraW5nLWxheWVyJyBub3QgaW4gZC5nZXRWYXIoJ0JCRklMRV9DT0xMRUNUSU9OUycpLnNwbGl0KCkgb3IgXAogCSdmaWxlc3lzdGVtcy1sYXllcicgbm90IGluIGQuZ2V0VmFyKCdCQkZJTEVfQ09MTEVDVElPTlMnKS5zcGxpdCgpOgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Qvb3BlbmN0XzAuNi4yMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN0L29wZW5jdF8wLjYuMjAuYmIKaW5kZXggYzdkNzIwMy4uOTEzMjkwYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Qvb3BlbmN0XzAuNi4yMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdC9vcGVuY3RfMC42LjIwLmJiCkBAIC0yNSw3ICsyNSw3IEBACiBMSUNFTlNFID0gIkxHUEx2MisiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MR1BMLTIuMTttZDU9MmQ1MDI1ZDRhYTM0OTViZWZlZjhmMTcyMDZhNWIwYTEiCiAKLWluaGVyaXQgJHtAYmIudXRpbHMuZmlsdGVyKCdWSVJUVUFMLVJVTlRJTUVfaW5pdF9tYW5hZ2VyJywgJ3N5c3RlbWQnLCBkKX0KK2luaGVyaXQgc3lzdGVtZAogU1lTVEVNRF9TRVJWSUNFXyR7UE59ICs9ICJvcGVuY3Quc2VydmljZSAiCiBTWVNURU1EX0FVVE9fRU5BQkxFID0gImVuYWJsZSIKIApAQCAtNzcsMTAgKzc3LDggQEAKICAgICBpbnN0YWxsIC1EcG0gNzU1ICR7V09SS0RJUn0vb3BlbmN0LmluaXQgJHtEfS9ldGMvaW5pdC5kL29wZW5jdAogICAgIGluc3RhbGwgLURwbSA2NDQgJHtXT1JLRElSfS9vcGVuY3Quc3lzY29uZmlnICR7RH0vZXRjL3N5c2NvbmZpZy9vcGVuY3QKIAotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCdzeXN0ZW1kJywndHJ1ZScsJ2ZhbHNlJyxkKX07IHRoZW4KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICAgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9vcGVuY3Quc2VydmljZSAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICBmaQorICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9vcGVuY3Quc2VydmljZSAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KIAogICAgIHNvPSQoZmluZCAke0R9IC1uYW1lIFwqLnNvIHwgc2VkICJzfF4ke0R9fHwiKQogICAgIHNlZCAtaSAtZSAnc3xcXChMSUJQQVRIXFxzKlxcKS4qfFxcMSRzb3wnIGV0Yy9yZWFkZXIuY29uZgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Yvb3BlbmN2L2FscmVhZHktZXhpc3RzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Yvb3BlbmN2L2FscmVhZHktZXhpc3RzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMjRmMmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3YvYWxyZWFkeS1leGlzdHMucGF0Y2gKQEAgLTAsMCArMSwzOTQgQEAKK0Zyb20gZTRiZjE0OGNkZGYyNzc4MzRlNTdjOWFmZWVjOGRhZmY4Mzc4YTY1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAZ21haWwuY29tPgorRGF0ZTogV2VkLCAyMiBOb3YgMjAxNyAxNToyNzowNyArMDEwMAorU3ViamVjdDogW1BBVENIXSBGaXg6IEZpbGUgYWxyZWFkeSBleGlzdHMgaW4gZGF0YWJhc2U6IGNhZmZlLnByb3RvCisKK0ZpeGVzIGVycm9yIHdoZW4gaW1wb3J0aW5nIHB5dGhvbiBjdgorCitVcHN0cmVhbS1zdGF0dXM6IEJhY2twb3J0IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY3Yvb3BlbmN2L3B1bGwvMTAwOTIKK1NpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAZ21haWwuY29tPgorLS0tCisgbW9kdWxlcy9kbm4vQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNiArKystLS0KKyBtb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW1wb3J0ZXIuY3BwICAgICAgICAgICAgICAgICAgfCAxIC0KKyBtb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAxIC0KKyBtb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uaHBwICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCisgbW9kdWxlcy9kbm4vc3JjL2NhZmZlL3tjYWZmZS5wcm90byA9PiBvcGVuY3YtY2FmZmUucHJvdG99IHwgMAorIDUgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorIHJlbmFtZSBtb2R1bGVzL2Rubi9zcmMvY2FmZmUve2NhZmZlLnByb3RvID0+IG9wZW5jdi1jYWZmZS5wcm90b30gKDEwMCUpCisKK2RpZmYgLS1naXQgYS9tb2R1bGVzL2Rubi9DTWFrZUxpc3RzLnR4dCBiL21vZHVsZXMvZG5uL0NNYWtlTGlzdHMudHh0CitpbmRleCBjNjMyOWE3NDIyNjMuLjhlZjAwZWY5ODNmZiAxMDA2NDQKKy0tLSBhL21vZHVsZXMvZG5uL0NNYWtlTGlzdHMudHh0CisrKysgYi9tb2R1bGVzL2Rubi9DTWFrZUxpc3RzLnR4dAorQEAgLTU1LDEzICs1NSwxMyBAQCBvY3Zfd2FybmluZ3NfZGlzYWJsZShDTUFLRV9DWFhfRkxBR1MKKyAKKyBpZihQUk9UT0JVRl9VUERBVEVfRklMRVMpCisgICBmaWxlKEdMT0IgcHJvdG9fZmlsZXMgc3JjL3RlbnNvcmZsb3cvKi5wcm90bykKKy0gIGxpc3QoQVBQRU5EIHByb3RvX2ZpbGVzIHNyYy9jYWZmZS9jYWZmZS5wcm90bykKKysgIGxpc3QoQVBQRU5EIHByb3RvX2ZpbGVzIHNyYy9jYWZmZS9vcGVuY3YtY2FmZmUucHJvdG8pCisgICBQUk9UT0JVRl9HRU5FUkFURV9DUFAoUHJvdG9idWZfSERSUyBQcm90b2J1Zl9TUkNTICR7cHJvdG9fZmlsZXN9KQorIGVsc2UoKQorICAgZmlsZShHTE9CIGZ3X3NyY3MgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L21pc2MvdGVuc29yZmxvdy8qLmNjKQorICAgZmlsZShHTE9CIGZ3X2hkcnMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L21pc2MvdGVuc29yZmxvdy8qLmgpCistICBsaXN0KEFQUEVORCBmd19zcmNzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9taXNjL2NhZmZlL2NhZmZlLnBiLmNjKQorLSAgbGlzdChBUFBFTkQgZndfaGRycyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vbWlzYy9jYWZmZS9jYWZmZS5wYi5oKQorKyAgbGlzdChBUFBFTkQgZndfc3JjcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vbWlzYy9jYWZmZS9vcGVuY3YtY2FmZmUucGIuY2MpCisrICBsaXN0KEFQUEVORCBmd19oZHJzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9taXNjL2NhZmZlL29wZW5jdi1jYWZmZS5wYi5oKQorICAgbGlzdChBUFBFTkQgUHJvdG9idWZfU1JDUyAke2Z3X3NyY3N9KQorICAgbGlzdChBUFBFTkQgUHJvdG9idWZfSERSUyAke2Z3X2hkcnN9KQorICAgbGlzdChBUFBFTkQgUHJvdG9idWZfSU5DTFVERV9ESVJTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9taXNjL2NhZmZlKQorZGlmZiAtLWdpdCBhL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pbXBvcnRlci5jcHAgYi9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW1wb3J0ZXIuY3BwCitpbmRleCBjMDc1NjUxYjk1YjMuLjJjOTc3Yzg0YjBmNCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pbXBvcnRlci5jcHAKKysrKyBiL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pbXBvcnRlci5jcHAKK0BAIC00Miw3ICs0Miw2IEBACisgI2luY2x1ZGUgIi4uL3ByZWNvbXAuaHBwIgorIAorICNpZmRlZiBIQVZFX1BST1RPQlVGCistI2luY2x1ZGUgImNhZmZlLnBiLmgiCisgCisgI2luY2x1ZGUgPGlvc3RyZWFtPgorICNpbmNsdWRlIDxmc3RyZWFtPgorZGlmZiAtLWdpdCBhL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pby5jcHAgYi9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uY3BwCitpbmRleCAwZjQ2ZWE3N2RmOWEuLjFkM2M1MThmMTMyOCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pby5jcHAKKysrKyBiL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pby5jcHAKK0BAIC05OSw3ICs5OSw2IEBACisgI2luY2x1ZGUgPGZzdHJlYW0+CisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKy0jaW5jbHVkZSAiY2FmZmUucGIuaCIKKyAjaW5jbHVkZSAiY2FmZmVfaW8uaHBwIgorICNpbmNsdWRlICJnbG9nX2VtdWxhdG9yLmhwcCIKKyAKK2RpZmYgLS1naXQgYS9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uaHBwIGIvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmhwcAoraW5kZXggMDliYzU3MDlhMjRlLi5mNTkxMmMzYmNlYzEgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uaHBwCisrKysgYi9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uaHBwCitAQCAtOTEsNyArOTEsNyBAQAorICNkZWZpbmUgX19PUEVOQ1ZfRE5OX0NBRkZFX0lPX0hQUF9fCisgI2lmZGVmIEhBVkVfUFJPVE9CVUYKKyAKKy0jaW5jbHVkZSAiY2FmZmUucGIuaCIKKysjaW5jbHVkZSAib3BlbmN2LWNhZmZlLnBiLmgiCisgCisgbmFtZXNwYWNlIGN2IHsKKyBuYW1lc3BhY2UgZG5uIHsKK2RpZmYgLS1naXQgYS9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmUucHJvdG8gYi9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvb3BlbmN2LWNhZmZlLnByb3RvCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIG1vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZS5wcm90bworcmVuYW1lIHRvIG1vZHVsZXMvZG5uL3NyYy9jYWZmZS9vcGVuY3YtY2FmZmUucHJvdG8KK2RpZmYgLS1naXQgYS9tb2R1bGVzL2Rubi9zcmMvbGF5ZXJzL2RldGVjdGlvbl9vdXRwdXRfbGF5ZXIuY3BwIGIvbW9kdWxlcy9kbm4vc3JjL2xheWVycy9kZXRlY3Rpb25fb3V0cHV0X2xheWVyLmNwcAoraW5kZXggMGI3MjMyNmY3ZTdkLi5mNDEzYmFkNWI4MWEgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2Rubi9zcmMvbGF5ZXJzL2RldGVjdGlvbl9vdXRwdXRfbGF5ZXIuY3BwCisrKysgYi9tb2R1bGVzL2Rubi9zcmMvbGF5ZXJzL2RldGVjdGlvbl9vdXRwdXRfbGF5ZXIuY3BwCitAQCAtNDQsNyArNDQsNyBAQAorICNpbmNsdWRlICJsYXllcnNfY29tbW9uLmhwcCIKKyAjaW5jbHVkZSA8ZmxvYXQuaD4KKyAjaW5jbHVkZSA8c3RyaW5nPgorLSNpbmNsdWRlIDxjYWZmZS5wYi5oPgorKyNpbmNsdWRlIDxvcGVuY3YtY2FmZmUucGIuaD4KKyAKKyBuYW1lc3BhY2UgY3YKKyB7CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2ltcG9ydGVyLmNwcCBiL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pbXBvcnRlci5jcHAKK2luZGV4IDJjOTc3Yzg0YjBmNC4uYTE4MjdhMzgxMTE3IDEwMDY0NAorLS0tIGEvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2ltcG9ydGVyLmNwcAorKysrIGIvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2ltcG9ydGVyLmNwcAorQEAgLTc4LDggKzc4LDggQEAgc3RhdGljIGN2OjpTdHJpbmcgdG9TdHJpbmcoY29uc3QgVCAmdikKKyAKKyBjbGFzcyBDYWZmZUltcG9ydGVyIDogcHVibGljIEltcG9ydGVyCisgeworLSAgICBjYWZmZTo6TmV0UGFyYW1ldGVyIG5ldDsKKy0gICAgY2FmZmU6Ok5ldFBhcmFtZXRlciBuZXRCaW5hcnk7CisrICAgIG9wZW5jdmNhZmZlOjpOZXRQYXJhbWV0ZXIgbmV0OworKyAgICBvcGVuY3ZjYWZmZTo6TmV0UGFyYW1ldGVyIG5ldEJpbmFyeTsKKyAKKyBwdWJsaWM6CisgCitAQCAtMTk3LDcgKzE5Nyw3IEBAIHB1YmxpYzoKKyAgICAgICAgIH0KKyAgICAgfQorIAorLSAgICB2b2lkIGJsb2JTaGFwZUZyb21Qcm90byhjb25zdCBjYWZmZTo6QmxvYlByb3RvICZwYkJsb2IsIE1hdFNoYXBlJiBzaGFwZSkKKysgICAgdm9pZCBibG9iU2hhcGVGcm9tUHJvdG8oY29uc3Qgb3BlbmN2Y2FmZmU6OkJsb2JQcm90byAmcGJCbG9iLCBNYXRTaGFwZSYgc2hhcGUpCisgICAgIHsKKyAgICAgICAgIHNoYXBlLmNsZWFyKCk7CisgICAgICAgICBpZiAocGJCbG9iLmhhc19udW0oKSB8fCBwYkJsb2IuaGFzX2NoYW5uZWxzKCkgfHwgcGJCbG9iLmhhc19oZWlnaHQoKSB8fCBwYkJsb2IuaGFzX3dpZHRoKCkpCitAQCAtMjA5LDcgKzIwOSw3IEBAIHB1YmxpYzoKKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2UgaWYgKHBiQmxvYi5oYXNfc2hhcGUoKSkKKyAgICAgICAgIHsKKy0gICAgICAgICAgICBjb25zdCBjYWZmZTo6QmxvYlNoYXBlICZfc2hhcGUgPSBwYkJsb2Iuc2hhcGUoKTsKKysgICAgICAgICAgICBjb25zdCBvcGVuY3ZjYWZmZTo6QmxvYlNoYXBlICZfc2hhcGUgPSBwYkJsb2Iuc2hhcGUoKTsKKyAKKyAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IF9zaGFwZS5kaW1fc2l6ZSgpOyBpKyspCisgICAgICAgICAgICAgICAgIHNoYXBlLnB1c2hfYmFjaygoaW50KV9zaGFwZS5kaW0oaSkpOworQEAgLTIxOCw3ICsyMTgsNyBAQCBwdWJsaWM6CisgICAgICAgICAgICAgQ1ZfRXJyb3IoRXJyb3I6OlN0c0Vycm9yLCAiVW5rbm93biBzaGFwZSBvZiBpbnB1dCBibG9iIik7CisgICAgIH0KKyAKKy0gICAgdm9pZCBibG9iRnJvbVByb3RvKGNvbnN0IGNhZmZlOjpCbG9iUHJvdG8gJnBiQmxvYiwgY3Y6Ok1hdCAmZHN0QmxvYikKKysgICAgdm9pZCBibG9iRnJvbVByb3RvKGNvbnN0IG9wZW5jdmNhZmZlOjpCbG9iUHJvdG8gJnBiQmxvYiwgY3Y6Ok1hdCAmZHN0QmxvYikKKyAgICAgeworICAgICAgICAgTWF0U2hhcGUgc2hhcGU7CisgICAgICAgICBibG9iU2hhcGVGcm9tUHJvdG8ocGJCbG9iLCBzaGFwZSk7CitAQCAtMjMzLDcgKzIzMyw3IEBAIHB1YmxpYzoKKyAgICAgICAgICAgICBkc3REYXRhW2ldID0gcGJCbG9iLmRhdGEoaSk7CisgICAgIH0KKyAKKy0gICAgdm9pZCBleHRyYWN0QmluYXJ5TGF5ZXJQYXJtcyhjb25zdCBjYWZmZTo6TGF5ZXJQYXJhbWV0ZXImIGxheWVyLCBMYXllclBhcmFtcyYgbGF5ZXJQYXJhbXMpCisrICAgIHZvaWQgZXh0cmFjdEJpbmFyeUxheWVyUGFybXMoY29uc3Qgb3BlbmN2Y2FmZmU6OkxheWVyUGFyYW1ldGVyJiBsYXllciwgTGF5ZXJQYXJhbXMmIGxheWVyUGFyYW1zKQorICAgICB7CisgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSA9IGxheWVyLm5hbWUoKTsKKyAKK0BAIC0yNDcsNyArMjQ3LDcgQEAgcHVibGljOgorICAgICAgICAgaWYgKGxpID09IG5ldEJpbmFyeS5sYXllcl9zaXplKCkgfHwgbmV0QmluYXJ5LmxheWVyKGxpKS5ibG9ic19zaXplKCkgPT0gMCkKKyAgICAgICAgICAgICByZXR1cm47CisgCistICAgICAgICBjb25zdCBjYWZmZTo6TGF5ZXJQYXJhbWV0ZXIgJmJpbkxheWVyID0gbmV0QmluYXJ5LmxheWVyKGxpKTsKKysgICAgICAgIGNvbnN0IG9wZW5jdmNhZmZlOjpMYXllclBhcmFtZXRlciAmYmluTGF5ZXIgPSBuZXRCaW5hcnkubGF5ZXIobGkpOworICAgICAgICAgbGF5ZXJQYXJhbXMuYmxvYnMucmVzaXplKGJpbkxheWVyLmJsb2JzX3NpemUoKSk7CisgICAgICAgICBmb3IgKGludCBiaSA9IDA7IGJpIDwgYmluTGF5ZXIuYmxvYnNfc2l6ZSgpOyBiaSsrKQorICAgICAgICAgeworQEAgLTI4OSw3ICsyODksNyBAQCBwdWJsaWM6CisgCisgICAgICAgICBmb3IgKGludCBsaSA9IDA7IGxpIDwgbGF5ZXJzU2l6ZTsgbGkrKykKKyAgICAgICAgIHsKKy0gICAgICAgICAgICBjb25zdCBjYWZmZTo6TGF5ZXJQYXJhbWV0ZXIgJmxheWVyID0gbmV0LmxheWVyKGxpKTsKKysgICAgICAgICAgICBjb25zdCBvcGVuY3ZjYWZmZTo6TGF5ZXJQYXJhbWV0ZXIgJmxheWVyID0gbmV0LmxheWVyKGxpKTsKKyAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGxheWVyLm5hbWUoKTsKKyAgICAgICAgICAgICBTdHJpbmcgdHlwZSA9IGxheWVyLnR5cGUoKTsKKyAgICAgICAgICAgICBMYXllclBhcmFtcyBsYXllclBhcmFtczsKK0BAIC0zMTMsNyArMzEzLDcgQEAgcHVibGljOgorICAgICAgICAgYWRkZWRCbG9icy5jbGVhcigpOworICAgICB9CisgCistICAgIHZvaWQgYWRkT3V0cHV0KGNvbnN0IGNhZmZlOjpMYXllclBhcmFtZXRlciAmbGF5ZXIsIGludCBsYXllcklkLCBpbnQgb3V0TnVtKQorKyAgICB2b2lkIGFkZE91dHB1dChjb25zdCBvcGVuY3ZjYWZmZTo6TGF5ZXJQYXJhbWV0ZXIgJmxheWVyLCBpbnQgbGF5ZXJJZCwgaW50IG91dE51bSkKKyAgICAgeworICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUgPSBsYXllci50b3Aob3V0TnVtKTsKKyAKK2RpZmYgLS1naXQgYS9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uaHBwIGIvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmhwcAoraW5kZXggZjU5MTJjM2JjZWMxLi4yNGNkNWZhMjU0ZWIgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uaHBwCisrKysgYi9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uaHBwCitAQCAtOTgsOSArOTgsOSBAQCBuYW1lc3BhY2UgZG5uIHsKKyAKKyAvLyBSZWFkIHBhcmFtZXRlcnMgZnJvbSBhIGZpbGUgaW50byBhIE5ldFBhcmFtZXRlciBwcm90byBtZXNzYWdlLgorIHZvaWQgUmVhZE5ldFBhcmFtc0Zyb21UZXh0RmlsZU9yRGllKGNvbnN0IGNoYXIqIHBhcmFtX2ZpbGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FmZmU6Ok5ldFBhcmFtZXRlciogcGFyYW0pOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5jdmNhZmZlOjpOZXRQYXJhbWV0ZXIqIHBhcmFtKTsKKyB2b2lkIFJlYWROZXRQYXJhbXNGcm9tQmluYXJ5RmlsZU9yRGllKGNvbnN0IGNoYXIqIHBhcmFtX2ZpbGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWZmZTo6TmV0UGFyYW1ldGVyKiBwYXJhbSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuY3ZjYWZmZTo6TmV0UGFyYW1ldGVyKiBwYXJhbSk7CisgCisgfQorIH0KK2RpZmYgLS1naXQgYS9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvb3BlbmN2LWNhZmZlLnByb3RvIGIvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL29wZW5jdi1jYWZmZS5wcm90bworaW5kZXggM2QyM2ZiNDhlYTZhLi5kZjRlMWQzMjY5YWUgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvb3BlbmN2LWNhZmZlLnByb3RvCisrKysgYi9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvb3BlbmN2LWNhZmZlLnByb3RvCitAQCAtNDgsNyArNDgsNyBAQAorIAorIHN5bnRheCA9ICJwcm90bzIiOworIAorLXBhY2thZ2UgY2FmZmU7CisrcGFja2FnZSBvcGVuY3ZjYWZmZTsKKyAKKyAvLyBTcGVjaWZpZXMgdGhlIHNoYXBlIChkaW1lbnNpb25zKSBvZiBhIEJsb2IuCisgbWVzc2FnZSBCbG9iU2hhcGUgeworZGlmZiAtLWdpdCBhL21vZHVsZXMvZG5uL3NyYy9sYXllcnMvZGV0ZWN0aW9uX291dHB1dF9sYXllci5jcHAgYi9tb2R1bGVzL2Rubi9zcmMvbGF5ZXJzL2RldGVjdGlvbl9vdXRwdXRfbGF5ZXIuY3BwCitpbmRleCBmNDEzYmFkNWI4MWEuLjgzMmMyNTdlZWJmOSAxMDA2NDQKKy0tLSBhL21vZHVsZXMvZG5uL3NyYy9sYXllcnMvZGV0ZWN0aW9uX291dHB1dF9sYXllci5jcHAKKysrKyBiL21vZHVsZXMvZG5uL3NyYy9sYXllcnMvZGV0ZWN0aW9uX291dHB1dF9sYXllci5jcHAKK0BAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKKyAKKyAgICAgaW50IF9iYWNrZ3JvdW5kTGFiZWxJZDsKKyAKKy0gICAgdHlwZWRlZiBjYWZmZTo6UHJpb3JCb3hQYXJhbWV0ZXJfQ29kZVR5cGUgQ29kZVR5cGU7CisrICAgIHR5cGVkZWYgb3BlbmN2Y2FmZmU6OlByaW9yQm94UGFyYW1ldGVyX0NvZGVUeXBlIENvZGVUeXBlOworICAgICBDb2RlVHlwZSBfY29kZVR5cGU7CisgCisgICAgIGJvb2wgX3ZhcmlhbmNlRW5jb2RlZEluVGFyZ2V0OworQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgorICAgICBlbnVtIHsgX251bUF4ZXMgPSA0IH07CisgICAgIHN0YXRpYyBjb25zdCBzdGQ6OnN0cmluZyBfbGF5ZXJOYW1lOworIAorLSAgICB0eXBlZGVmIHN0ZDo6bWFwPGludCwgc3RkOjp2ZWN0b3I8Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94PiA+IExhYmVsQkJveDsKKysgICAgdHlwZWRlZiBzdGQ6Om1hcDxpbnQsIHN0ZDo6dmVjdG9yPG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveD4gPiBMYWJlbEJCb3g7CisgCisgICAgIGJvb2wgZ2V0UGFyYW1ldGVyRGljdChjb25zdCBMYXllclBhcmFtcyAmcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnBhcmFtZXRlck5hbWUsCitAQCAtMTMxLDExICsxMzEsMTEgQEAgcHVibGljOgorICAgICB7CisgICAgICAgICBTdHJpbmcgY29kZVR5cGVTdHJpbmcgPSBwYXJhbXMuZ2V0PFN0cmluZz4oImNvZGVfdHlwZSIpLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICBpZiAoY29kZVR5cGVTdHJpbmcgPT0gImNvcm5lciIpCistICAgICAgICAgICAgX2NvZGVUeXBlID0gY2FmZmU6OlByaW9yQm94UGFyYW1ldGVyX0NvZGVUeXBlX0NPUk5FUjsKKysgICAgICAgICAgICBfY29kZVR5cGUgPSBvcGVuY3ZjYWZmZTo6UHJpb3JCb3hQYXJhbWV0ZXJfQ29kZVR5cGVfQ09STkVSOworICAgICAgICAgZWxzZSBpZiAoY29kZVR5cGVTdHJpbmcgPT0gImNlbnRlcl9zaXplIikKKy0gICAgICAgICAgICBfY29kZVR5cGUgPSBjYWZmZTo6UHJpb3JCb3hQYXJhbWV0ZXJfQ29kZVR5cGVfQ0VOVEVSX1NJWkU7CisrICAgICAgICAgICAgX2NvZGVUeXBlID0gb3BlbmN2Y2FmZmU6OlByaW9yQm94UGFyYW1ldGVyX0NvZGVUeXBlX0NFTlRFUl9TSVpFOworICAgICAgICAgZWxzZQorLSAgICAgICAgICAgIF9jb2RlVHlwZSA9IGNhZmZlOjpQcmlvckJveFBhcmFtZXRlcl9Db2RlVHlwZV9DT1JORVI7CisrICAgICAgICAgICAgX2NvZGVUeXBlID0gb3BlbmN2Y2FmZmU6OlByaW9yQm94UGFyYW1ldGVyX0NvZGVUeXBlX0NPUk5FUjsKKyAgICAgfQorIAorICAgICBEZXRlY3Rpb25PdXRwdXRMYXllckltcGwoY29uc3QgTGF5ZXJQYXJhbXMgJnBhcmFtcykKK0BAIC0yMTUsNyArMjE1LDcgQEAgcHVibGljOgorICAgICAgICAgICAgIEdldENvbmZpZGVuY2VTY29yZXMoY29uZmlkZW5jZURhdGEsIG51bSwgbnVtUHJpb3JzLCBfbnVtQ2xhc3NlcywgYWxsQ29uZmlkZW5jZVNjb3Jlcyk7CisgCisgICAgICAgICAgICAgLy8gUmV0cmlldmUgYWxsIHByaW9yIGJib3hlcworLSAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGNhZmZlOjpOb3JtYWxpemVkQkJveD4gcHJpb3JCQm94ZXM7CisrICAgICAgICAgICAgc3RkOjp2ZWN0b3I8b3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94PiBwcmlvckJCb3hlczsKKyAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnZlY3RvcjxmbG9hdD4gPiBwcmlvclZhcmlhbmNlczsKKyAgICAgICAgICAgICBHZXRQcmlvckJCb3hlcyhwcmlvckRhdGEsIG51bVByaW9ycywgcHJpb3JCQm94ZXMsIHByaW9yVmFyaWFuY2VzKTsKKyAKK0BAIC0yNzIsNyArMjcyLDcgQEAgcHVibGljOgorICAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgaW5kaWNlcy5zaXplKCk7ICsraiwgKytjb3VudCkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGludCBpZHggPSBpbmRpY2VzW2pdOworLSAgICAgICAgICAgICAgICBjb25zdCBjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGRlY29kZV9iYm94ID0gbGFiZWxfYmJveGVzLT5zZWNvbmRbaWR4XTsKKysgICAgICAgICAgICAgICAgY29uc3Qgb3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBkZWNvZGVfYmJveCA9IGxhYmVsX2Jib3hlcy0+c2Vjb25kW2lkeF07CisgICAgICAgICAgICAgICAgIG91dHB1dHNEYXRhW2NvdW50ICogN10gPSBpOworICAgICAgICAgICAgICAgICBvdXRwdXRzRGF0YVtjb3VudCAqIDcgKyAxXSA9IGxhYmVsOworICAgICAgICAgICAgICAgICBvdXRwdXRzRGF0YVtjb3VudCAqIDcgKyAyXSA9IHNjb3Jlc1tpZHhdOworQEAgLTM1NSw3ICszNTUsNyBAQCBwdWJsaWM6CisgCisgICAgIC8vIENvbXB1dGUgYmJveCBzaXplCisgICAgIHRlbXBsYXRlPGJvb2wgbm9ybWFsaXplZD4KKy0gICAgc3RhdGljIGZsb2F0IEJCb3hTaXplKGNvbnN0IGNhZmZlOjpOb3JtYWxpemVkQkJveCYgYmJveCkKKysgICAgc3RhdGljIGZsb2F0IEJCb3hTaXplKGNvbnN0IG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveCYgYmJveCkKKyAgICAgeworICAgICAgICAgaWYgKGJib3gueG1heCgpIDwgYmJveC54bWluKCkgfHwgYmJveC55bWF4KCkgPCBiYm94LnltaW4oKSkKKyAgICAgICAgIHsKK0BAIC0zODgsMTAgKzM4OCwxMCBAQCBwdWJsaWM6CisgICAgIC8vIERlY29kZSBhIGJib3ggYWNjb3JkaW5nIHRvIGEgcHJpb3IgYmJveAorICAgICB0ZW1wbGF0ZTxib29sIHZhcmlhbmNlX2VuY29kZWRfaW5fdGFyZ2V0PgorICAgICBzdGF0aWMgdm9pZCBEZWNvZGVCQm94KAorLSAgICAgICAgY29uc3QgY2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBwcmlvcl9iYm94LCBjb25zdCBzdGQ6OnZlY3RvcjxmbG9hdD4mIHByaW9yX3ZhcmlhbmNlLAorKyAgICAgICAgY29uc3Qgb3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBwcmlvcl9iYm94LCBjb25zdCBzdGQ6OnZlY3RvcjxmbG9hdD4mIHByaW9yX3ZhcmlhbmNlLAorICAgICAgICAgY29uc3QgQ29kZVR5cGUgY29kZV90eXBlLAorLSAgICAgICAgY29uc3QgYm9vbCBjbGlwX2Jib3gsIGNvbnN0IGNhZmZlOjpOb3JtYWxpemVkQkJveCYgYmJveCwKKy0gICAgICAgIGNhZmZlOjpOb3JtYWxpemVkQkJveCYgZGVjb2RlX2Jib3gpCisrICAgICAgICBjb25zdCBib29sIGNsaXBfYmJveCwgY29uc3Qgb3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBiYm94LAorKyAgICAgICAgb3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBkZWNvZGVfYmJveCkKKyAgICAgeworICAgICAgICAgZmxvYXQgYmJveF94bWluID0gdmFyaWFuY2VfZW5jb2RlZF9pbl90YXJnZXQgPyBiYm94LnhtaW4oKSA6IHByaW9yX3ZhcmlhbmNlWzBdICogYmJveC54bWluKCk7CisgICAgICAgICBmbG9hdCBiYm94X3ltaW4gPSB2YXJpYW5jZV9lbmNvZGVkX2luX3RhcmdldCA/IGJib3gueW1pbigpIDogcHJpb3JfdmFyaWFuY2VbMV0gKiBiYm94LnltaW4oKTsKK0BAIC0zOTksMTMgKzM5OSwxMyBAQCBwdWJsaWM6CisgICAgICAgICBmbG9hdCBiYm94X3ltYXggPSB2YXJpYW5jZV9lbmNvZGVkX2luX3RhcmdldCA/IGJib3gueW1heCgpIDogcHJpb3JfdmFyaWFuY2VbM10gKiBiYm94LnltYXgoKTsKKyAgICAgICAgIHN3aXRjaChjb2RlX3R5cGUpCisgICAgICAgICB7CistICAgICAgICAgICAgY2FzZSBjYWZmZTo6UHJpb3JCb3hQYXJhbWV0ZXJfQ29kZVR5cGVfQ09STkVSOgorKyAgICAgICAgICAgIGNhc2Ugb3BlbmN2Y2FmZmU6OlByaW9yQm94UGFyYW1ldGVyX0NvZGVUeXBlX0NPUk5FUjoKKyAgICAgICAgICAgICAgICAgZGVjb2RlX2Jib3guc2V0X3htaW4ocHJpb3JfYmJveC54bWluKCkgKyBiYm94X3htaW4pOworICAgICAgICAgICAgICAgICBkZWNvZGVfYmJveC5zZXRfeW1pbihwcmlvcl9iYm94LnltaW4oKSArIGJib3hfeW1pbik7CisgICAgICAgICAgICAgICAgIGRlY29kZV9iYm94LnNldF94bWF4KHByaW9yX2Jib3gueG1heCgpICsgYmJveF94bWF4KTsKKyAgICAgICAgICAgICAgICAgZGVjb2RlX2Jib3guc2V0X3ltYXgocHJpb3JfYmJveC55bWF4KCkgKyBiYm94X3ltYXgpOworICAgICAgICAgICAgICAgICBicmVhazsKKy0gICAgICAgICAgICBjYXNlIGNhZmZlOjpQcmlvckJveFBhcmFtZXRlcl9Db2RlVHlwZV9DRU5URVJfU0laRToKKysgICAgICAgICAgICBjYXNlIG9wZW5jdmNhZmZlOjpQcmlvckJveFBhcmFtZXRlcl9Db2RlVHlwZV9DRU5URVJfU0laRToKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGZsb2F0IHByaW9yX3dpZHRoID0gcHJpb3JfYmJveC54bWF4KCkgLSBwcmlvcl9iYm94LnhtaW4oKTsKKyAgICAgICAgICAgICAgICAgQ1ZfQXNzZXJ0KHByaW9yX3dpZHRoID4gMCk7CitAQCAtNDMxLDcgKzQzMSw3IEBAIHB1YmxpYzoKKyAgICAgICAgIH07CisgICAgICAgICBpZiAoY2xpcF9iYm94KQorICAgICAgICAgeworLSAgICAgICAgICAgIC8vIENsaXAgdGhlIGNhZmZlOjpOb3JtYWxpemVkQkJveCBzdWNoIHRoYXQgdGhlIHJhbmdlIGZvciBlYWNoIGNvcm5lciBpcyBbMCwgMV0KKysgICAgICAgICAgICAvLyBDbGlwIHRoZSBvcGVuY3ZjYWZmZTo6Tm9ybWFsaXplZEJCb3ggc3VjaCB0aGF0IHRoZSByYW5nZSBmb3IgZWFjaCBjb3JuZXIgaXMgWzAsIDFdCisgICAgICAgICAgICAgZGVjb2RlX2Jib3guc2V0X3htaW4oc3RkOjptYXgoc3RkOjptaW4oZGVjb2RlX2Jib3gueG1pbigpLCAxLmYpLCAwLmYpKTsKKyAgICAgICAgICAgICBkZWNvZGVfYmJveC5zZXRfeW1pbihzdGQ6Om1heChzdGQ6Om1pbihkZWNvZGVfYmJveC55bWluKCksIDEuZiksIDAuZikpOworICAgICAgICAgICAgIGRlY29kZV9iYm94LnNldF94bWF4KHN0ZDo6bWF4KHN0ZDo6bWluKGRlY29kZV9iYm94LnhtYXgoKSwgMS5mKSwgMC5mKSk7CitAQCAtNDQzLDExICs0NDMsMTEgQEAgcHVibGljOgorIAorICAgICAvLyBEZWNvZGUgYSBzZXQgb2YgYmJveGVzIGFjY29yZGluZyB0byBhIHNldCBvZiBwcmlvciBiYm94ZXMKKyAgICAgc3RhdGljIHZvaWQgRGVjb2RlQkJveGVzKAorLSAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94PiYgcHJpb3JfYmJveGVzLAorKyAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8b3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94PiYgcHJpb3JfYmJveGVzLAorICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8ZmxvYXQ+ID4mIHByaW9yX3ZhcmlhbmNlcywKKyAgICAgICAgIGNvbnN0IENvZGVUeXBlIGNvZGVfdHlwZSwgY29uc3QgYm9vbCB2YXJpYW5jZV9lbmNvZGVkX2luX3RhcmdldCwKKy0gICAgICAgIGNvbnN0IGJvb2wgY2xpcF9iYm94LCBjb25zdCBzdGQ6OnZlY3RvcjxjYWZmZTo6Tm9ybWFsaXplZEJCb3g+JiBiYm94ZXMsCistICAgICAgICBzdGQ6OnZlY3RvcjxjYWZmZTo6Tm9ybWFsaXplZEJCb3g+JiBkZWNvZGVfYmJveGVzKQorKyAgICAgICAgY29uc3QgYm9vbCBjbGlwX2Jib3gsIGNvbnN0IHN0ZDo6dmVjdG9yPG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveD4mIGJib3hlcywKKysgICAgICAgIHN0ZDo6dmVjdG9yPG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveD4mIGRlY29kZV9iYm94ZXMpCisgICAgIHsKKyAgICAgICAgIENWX0Fzc2VydChwcmlvcl9iYm94ZXMuc2l6ZSgpID09IHByaW9yX3ZhcmlhbmNlcy5zaXplKCkpOworICAgICAgICAgQ1ZfQXNzZXJ0KHByaW9yX2Jib3hlcy5zaXplKCkgPT0gYmJveGVzLnNpemUoKSk7CitAQCAtNDcwLDcgKzQ3MCw3IEBAIHB1YmxpYzoKKyAKKyAgICAgLy8gRGVjb2RlIGFsbCBiYm94ZXMgaW4gYSBiYXRjaAorICAgICBzdGF0aWMgdm9pZCBEZWNvZGVCQm94ZXNBbGwoY29uc3Qgc3RkOjp2ZWN0b3I8TGFiZWxCQm94PiYgYWxsX2xvY19wcmVkcywKKy0gICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGNhZmZlOjpOb3JtYWxpemVkQkJveD4mIHByaW9yX2Jib3hlcywKKysgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveD4mIHByaW9yX2Jib3hlcywKKyAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6dmVjdG9yPGZsb2F0PiA+JiBwcmlvcl92YXJpYW5jZXMsCisgICAgICAgICBjb25zdCBpbnQgbnVtLCBjb25zdCBib29sIHNoYXJlX2xvY2F0aW9uLAorICAgICAgICAgY29uc3QgaW50IG51bV9sb2NfY2xhc3NlcywgY29uc3QgaW50IGJhY2tncm91bmRfbGFiZWxfaWQsCitAQCAtNTAzLDEwICs1MDMsMTAgQEAgcHVibGljOgorICAgICAvLyBHZXQgcHJpb3IgYm91bmRpbmcgYm94ZXMgZnJvbSBwcmlvcl9kYXRhCisgICAgIC8vICAgIHByaW9yX2RhdGE6IDEgeCAyIHggbnVtX3ByaW9ycyAqIDQgeCAxIGJsb2IuCisgICAgIC8vICAgIG51bV9wcmlvcnM6IG51bWJlciBvZiBwcmlvcnMuCistICAgIC8vICAgIHByaW9yX2Jib3hlczogc3RvcmVzIGFsbCB0aGUgcHJpb3IgYmJveGVzIGluIHRoZSBmb3JtYXQgb2YgY2FmZmU6Ok5vcm1hbGl6ZWRCQm94LgorKyAgICAvLyAgICBwcmlvcl9iYm94ZXM6IHN0b3JlcyBhbGwgdGhlIHByaW9yIGJib3hlcyBpbiB0aGUgZm9ybWF0IG9mIG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveC4KKyAgICAgLy8gICAgcHJpb3JfdmFyaWFuY2VzOiBzdG9yZXMgYWxsIHRoZSB2YXJpYW5jZXMgbmVlZGVkIGJ5IHByaW9yIGJib3hlcy4KKyAgICAgc3RhdGljIHZvaWQgR2V0UHJpb3JCQm94ZXMoY29uc3QgZmxvYXQqIHByaW9yRGF0YSwgY29uc3QgaW50JiBudW1QcmlvcnMsCistICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94PiYgcHJpb3JCQm94ZXMsCisrICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8b3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94PiYgcHJpb3JCQm94ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8ZmxvYXQ+ID4mIHByaW9yVmFyaWFuY2VzKQorICAgICB7CisgICAgICAgICBwcmlvckJCb3hlcy5jbGVhcigpOyBwcmlvckJCb3hlcy5yZXNpemUobnVtUHJpb3JzKTsKK0BAIC01MTQsNyArNTE0LDcgQEAgcHVibGljOgorICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1QcmlvcnM7ICsraSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBpbnQgc3RhcnRJZHggPSBpICogNDsKKy0gICAgICAgICAgICBjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGJib3ggPSBwcmlvckJCb3hlc1tpXTsKKysgICAgICAgICAgICBvcGVuY3ZjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGJib3ggPSBwcmlvckJCb3hlc1tpXTsKKyAgICAgICAgICAgICBiYm94LnNldF94bWluKHByaW9yRGF0YVtzdGFydElkeF0pOworICAgICAgICAgICAgIGJib3guc2V0X3ltaW4ocHJpb3JEYXRhW3N0YXJ0SWR4ICsgMV0pOworICAgICAgICAgICAgIGJib3guc2V0X3htYXgocHJpb3JEYXRhW3N0YXJ0SWR4ICsgMl0pOworQEAgLTU2NSw3ICs1NjUsNyBAQCBwdWJsaWM6CisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxCQm94W2xhYmVsXS5yZXNpemUobnVtUHJlZHNQZXJDbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGJib3ggPSBsYWJlbEJCb3hbbGFiZWxdW3BdOworKyAgICAgICAgICAgICAgICAgICAgb3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBiYm94ID0gbGFiZWxCQm94W2xhYmVsXVtwXTsKKyAgICAgICAgICAgICAgICAgICAgIGJib3guc2V0X3htaW4obG9jRGF0YVtzdGFydElkeCArIGMgKiA0XSk7CisgICAgICAgICAgICAgICAgICAgICBiYm94LnNldF95bWluKGxvY0RhdGFbc3RhcnRJZHggKyBjICogNCArIDFdKTsKKyAgICAgICAgICAgICAgICAgICAgIGJib3guc2V0X3htYXgobG9jRGF0YVtzdGFydElkeCArIGMgKiA0ICsgMl0pOworQEAgLTYxMiw3ICs2MTIsNyBAQCBwdWJsaWM6CisgICAgIC8vICAgIG5tc190aHJlc2hvbGQ6IGEgdGhyZXNob2xkIHVzZWQgaW4gbm9uIG1heGltdW0gc3VwcHJlc3Npb24uCisgICAgIC8vICAgIHRvcF9rOiBpZiBub3QgLTEsIGtlZXAgYXQgbW9zdCB0b3BfayBwaWNrZWQgaW5kaWNlcy4KKyAgICAgLy8gICAgaW5kaWNlczogdGhlIGtlcHQgaW5kaWNlcyBvZiBiYm94ZXMgYWZ0ZXIgbm1zLgorLSAgICBzdGF0aWMgdm9pZCBBcHBseU5NU0Zhc3QoY29uc3Qgc3RkOjp2ZWN0b3I8Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94PiYgYmJveGVzLAorKyAgICBzdGF0aWMgdm9pZCBBcHBseU5NU0Zhc3QoY29uc3Qgc3RkOjp2ZWN0b3I8b3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94PiYgYmJveGVzLAorICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxmbG9hdD4mIHNjb3JlcywgY29uc3QgZmxvYXQgc2NvcmVfdGhyZXNob2xkLAorICAgICAgICAgICBjb25zdCBmbG9hdCBubXNfdGhyZXNob2xkLCBjb25zdCBmbG9hdCBldGEsIGNvbnN0IGludCB0b3BfaywKKyAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50PiYgaW5kaWNlcykKK0BAIC02NzQsMTAgKzY3NCwxMCBAQCBwdWJsaWM6CisgCisgICAgIC8vIENvbXB1dGUgdGhlIGphY2NhcmQgKGludGVyc2VjdGlvbiBvdmVyIHVuaW9uIElvVSkgb3ZlcmxhcCBiZXR3ZWVuIHR3byBiYm94ZXMuCisgICAgIHRlbXBsYXRlPGJvb2wgbm9ybWFsaXplZD4KKy0gICAgc3RhdGljIGZsb2F0IEphY2NhcmRPdmVybGFwKGNvbnN0IGNhZmZlOjpOb3JtYWxpemVkQkJveCYgYmJveDEsCistICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhZmZlOjpOb3JtYWxpemVkQkJveCYgYmJveDIpCisrICAgIHN0YXRpYyBmbG9hdCBKYWNjYXJkT3ZlcmxhcChjb25zdCBvcGVuY3ZjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGJib3gxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcGVuY3ZjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGJib3gyKQorICAgICB7CistICAgICAgICBjYWZmZTo6Tm9ybWFsaXplZEJCb3ggaW50ZXJzZWN0X2Jib3g7CisrICAgICAgICBvcGVuY3ZjYWZmZTo6Tm9ybWFsaXplZEJCb3ggaW50ZXJzZWN0X2Jib3g7CisgICAgICAgICBpZiAoYmJveDIueG1pbigpID4gYmJveDEueG1heCgpIHx8IGJib3gyLnhtYXgoKSA8IGJib3gxLnhtaW4oKSB8fAorICAgICAgICAgICAgIGJib3gyLnltaW4oKSA+IGJib3gxLnltYXgoKSB8fCBiYm94Mi55bWF4KCkgPCBiYm94MS55bWluKCkpCisgICAgICAgICB7CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmNwcCBiL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pby5jcHAKK2luZGV4IDFkM2M1MThmMTMyOC4uM2NmNmUyNTVhYTYwIDEwMDY0NAorLS0tIGEvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmNwcAorKysrIGIvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmNwcAorQEAgLTEwNyw3ICsxMDcsNyBAQCBuYW1lc3BhY2UgZG5uIHsKKyAKKyB1c2luZyBzdGQ6OnN0cmluZzsKKyB1c2luZyBzdGQ6Om1hcDsKKy11c2luZyBuYW1lc3BhY2UgY2FmZmU7CisrdXNpbmcgbmFtZXNwYWNlIG9wZW5jdmNhZmZlOworIHVzaW5nIG5hbWVzcGFjZSA6Omdvb2dsZTo6cHJvdG9idWY7CisgdXNpbmcgbmFtZXNwYWNlIDo6Z29vZ2xlOjpwcm90b2J1Zjo6aW87CisgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3YvamF2YWdlbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN2L29wZW5jdi9qYXZhZ2VuLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2NTI2ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3YvamF2YWdlbi5wYXRjaApAQCAtMCwwICsxLDE2IEBACitVcHN0cmVhbS1zdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXSBodHRwczovL2dpdGh1Yi5jb20vb3BlbmN2L29wZW5jdi9wdWxsLzEwMDM5I2lzc3VlY29tbWVudC0zNDI1MzkyODgKKworU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIDxyaWNhcmRvLnJpYmFsZGFAZ21haWwuY29tPgorZGlmZiAtLWdpdCBhL21vZHVsZXMvamF2YS9DTWFrZUxpc3RzLnR4dCBiL21vZHVsZXMvamF2YS9DTWFrZUxpc3RzLnR4dAoraW5kZXggNzRiYzBlZjA0MTY5Li40NjIyZmJmOWE1ZjEgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2phdmEvQ01ha2VMaXN0cy50eHQKKysrKyBiL21vZHVsZXMvamF2YS9DTWFrZUxpc3RzLnR4dAorQEAgLTI5MSw3ICsyOTEsNyBAQCBmb3JlYWNoKGphdmFfZmlsZSAke3N0ZXAzX2lucHV0X2ZpbGVzfSkKKyAgIGVuZGlmKCkKKyAgIGlmKF9fY29uZmlndXJlKQorICAgICBjb25maWd1cmVfZmlsZSgiJHtqYXZhX2ZpbGV9IiAiJHtqYXZhX3NyY19kaXJ9LyR7b3V0cHV0X25hbWV9IiBAT05MWSkKKy0gIGVsc2VpZihOT1QgIiR7amF2YV9maWxlfSIgTUFUQ0hFUyAiJHtPcGVuQ1ZfQklOQVJZX0RJUn0vIikKKysgIGVsc2VpZihFWElTVFMgIiR7amF2YV9maWxlfSIgQU5EIE5PVCAiJHtqYXZhX2ZpbGV9IiBNQVRDSEVTICIke09wZW5DVl9CSU5BUllfRElSfS8iKQorICAgICBjb25maWd1cmVfZmlsZSgiJHtqYXZhX2ZpbGV9IiAiJHtqYXZhX3NyY19kaXJ9LyR7b3V0cHV0X25hbWV9IiBDT1BZT05MWSkKKyAgIGVsc2UoKQorICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoT1VUUFVUICIke2phdmFfc3JjX2Rpcn0vJHtvdXRwdXRfbmFtZX0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3YvcHJvdG9idWYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3YvcHJvdG9idWYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYzZGMxNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN2L29wZW5jdi9wcm90b2J1Zi5wYXRjaApAQCAtMCwwICsxLDU3IEBACitVcHN0cmVhbS1zdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgPHJpY2FyZG8ucmliYWxkYUBnbWFpbC5jb20+CitkaWZmIC0tZ2l0IGEvY21ha2UvT3BlbkNWRmluZExpYlByb3RvYnVmLmNtYWtlIGIvY21ha2UvT3BlbkNWRmluZExpYlByb3RvYnVmLmNtYWtlCitpbmRleCBiNmNlMWU3ZmQ1NmIuLmU5MTZlYzBkZjJhNiAxMDA2NDQKKy0tLSBhL2NtYWtlL09wZW5DVkZpbmRMaWJQcm90b2J1Zi5jbWFrZQorKysrIGIvY21ha2UvT3BlbkNWRmluZExpYlByb3RvYnVmLmNtYWtlCitAQCAtNywyMSArNywyMSBAQCBPQ1ZfT1BUSU9OKEJVSUxEX1BST1RPQlVGICJGb3JjZSB0byBidWlsZCBsaWJwcm90b2J1ZiBmcm9tIHNvdXJjZXMiIE9OKQorIE9DVl9PUFRJT04oUFJPVE9CVUZfVVBEQVRFX0ZJTEVTICJGb3JjZSB0byByZWJ1aWxkIC5wcm90byBmaWxlcyIgT0ZGKQorIAorIGlmKFBST1RPQlVGX1VQREFURV9GSUxFUykKKy0gIGlmKE5PVCBERUZJTkVEIFByb3RvYnVmX1BST1RPQ19FWEVDVVRBQkxFKQorKyAgaWYoTk9UIERFRklORUQgUFJPVE9CVUZfUFJPVE9DX0VYRUNVVEFCTEUpCisgICAgIGZpbmRfcGFja2FnZShQcm90b2J1ZiBRVUlFVCkKKyAgIGVuZGlmKCkKKy0gIGlmKERFRklORUQgUHJvdG9idWZfUFJPVE9DX0VYRUNVVEFCTEUgQU5EIEVYSVNUUyAke1Byb3RvYnVmX1BST1RPQ19FWEVDVVRBQkxFfSkKKy0gICAgbWVzc2FnZShTVEFUVVMgIlRoZSBwcm90b2NvbCBidWZmZXIgY29tcGlsZXIgaXMgZm91bmQgKCR7UHJvdG9idWZfUFJPVE9DX0VYRUNVVEFCTEV9KSIpCisrICBpZihERUZJTkVEIFBST1RPQlVGX1BST1RPQ19FWEVDVVRBQkxFIEFORCBFWElTVFMgJHtQUk9UT0JVRl9QUk9UT0NfRVhFQ1VUQUJMRX0pCisrICAgIG1lc3NhZ2UoU1RBVFVTICJUaGUgcHJvdG9jb2wgYnVmZmVyIGNvbXBpbGVyIGlzIGZvdW5kICgke1BST1RPQlVGX1BST1RPQ19FWEVDVVRBQkxFfSkiKQorICAgZWxzZSgpCistICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIlRoZSBwcm90b2NvbCBidWZmZXIgY29tcGlsZXIgaXMgbm90IGZvdW5kIChQcm90b2J1Zl9QUk9UT0NfRVhFQ1VUQUJMRT0nJHtQcm90b2J1Zl9QUk9UT0NfRVhFQ1VUQUJMRX0nKSIpCisrICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIlRoZSBwcm90b2NvbCBidWZmZXIgY29tcGlsZXIgaXMgbm90IGZvdW5kIChQUk9UT0JVRl9QUk9UT0NfRVhFQ1VUQUJMRT0nJHtQUk9UT0JVRl9QUk9UT0NfRVhFQ1VUQUJMRX0nKSIpCisgICBlbmRpZigpCisgZW5kaWYoKQorIAorLWlmKE5PVCBCVUlMRF9QUk9UT0JVRiBBTkQgTk9UIChERUZJTkVEIFByb3RvYnVmX0lOQ0xVREVfRElSUyBBTkQgREVGSU5FRCBQcm90b2J1Zl9MSUJSQVJJRVMpKQorK2lmKE5PVCBCVUlMRF9QUk9UT0JVRiBBTkQgTk9UIChERUZJTkVEIFBST1RPQlVGX0lOQ0xVREVfRElSIEFORCBERUZJTkVEIFBST1RPQlVGX0xJQlJBUklFUykpCisgICBmaW5kX3BhY2thZ2UoUHJvdG9idWYgUVVJRVQpCisgZW5kaWYoKQorIAorLWlmKFByb3RvYnVmX0ZPVU5EKQorK2lmKFBST1RPQlVGX0ZPVU5EIE9SIChERUZJTkVEIFBST1RPQlVGX0lOQ0xVREVfRElSIEFORCBERUZJTkVEIFBST1RPQlVGX0xJQlJBUklFUykpCisgICAjIG5vdGhpbmcKKyBlbHNlKCkKKyAgIHNldChQcm90b2J1Zl9MSUJSQVJJRVMgbGlicHJvdG9idWYpCitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9kbm4vQ01ha2VMaXN0cy50eHQgYi9tb2R1bGVzL2Rubi9DTWFrZUxpc3RzLnR4dAoraW5kZXggMmE3MTU2OGQxYTQ0Li5jNjMyOWE3NDIyNjMgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2Rubi9DTWFrZUxpc3RzLnR4dAorKysrIGIvbW9kdWxlcy9kbm4vQ01ha2VMaXN0cy50eHQKK0BAIC03LDcgKzcsNyBAQCBpZihERUZJTkVEIEJVSUxEX29wZW5jdl9kbm4gQU5EIE5PVCBCVUlMRF9vcGVuY3ZfZG5uKQorIGVuZGlmKCkKKyAKKyBpbmNsdWRlKCR7T3BlbkNWX1NPVVJDRV9ESVJ9L2NtYWtlL09wZW5DVkZpbmRMaWJQcm90b2J1Zi5jbWFrZSkKKy1pZihOT1QgUHJvdG9idWZfRk9VTkQpCisraWYoTk9UIFBST1RPQlVGX0ZPVU5EKQorICAgb2N2X21vZHVsZV9kaXNhYmxlKG9wZW5jdl9kbm4pCisgZW5kaWYoKQorIAorQEAgLTcyLDcgKzcyLDcgQEAgb2N2X3NvdXJjZV9ncm91cCgiU3JjXFxwcm90b2J1ZiIgRklMRVMgJHtQcm90b2J1Zl9TUkNTfSAke1Byb3RvYnVmX0hEUlN9KQorIG9jdl9tb2R1bGVfaW5jbHVkZV9kaXJlY3RvcmllcyhpbmNsdWRlICR7UHJvdG9idWZfSU5DTFVERV9ESVJTfSkKKyAKKyBvY3ZfZ2xvYl9tb2R1bGVfc291cmNlcygke1Byb3RvYnVmX1NSQ1N9ICR7UHJvdG9idWZfSERSU30gJHtDQkxBU19IX1BST1hZX1BBVEh9KQorLW9jdl9jcmVhdGVfbW9kdWxlKCR7UHJvdG9idWZfTElCUkFSSUVTfSAke0xBUEFDS19MSUJSQVJJRVN9KQorK29jdl9jcmVhdGVfbW9kdWxlKCR7UFJPVE9CVUZfTElCUkFSSUVTfSAke0xBUEFDS19MSUJSQVJJRVN9KQorIG9jdl9hZGRfc2FtcGxlcygpCisgb2N2X2FkZF9hY2N1cmFjeV90ZXN0cygpCisgb2N2X2FkZF9wZXJmX3Rlc3RzKCkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN2L29wZW5jdi90aW55ZG5uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Yvb3BlbmN2L3Rpbnlkbm4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQzM2ZjMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN2L29wZW5jdi90aW55ZG5uLnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK1Vwc3RyZWFtLXN0YXR1czogSW5hcHByb3ByaWF0ZSBbT0Ugc3BlY2lmaWNdCisKK1NpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSA8cmljYXJkby5yaWJhbGRhQGdtYWlsLmNvbT4KK2RpZmYgLS1naXQgYS9tb2R1bGVzL2Rubl9tb2Rlcm4vQ01ha2VMaXN0cy50eHQgYi9tb2R1bGVzL2Rubl9tb2Rlcm4vQ01ha2VMaXN0cy50eHQKK2luZGV4IDc5YjY0YjEyMTYwYi4uYmEwNmEwYTE2M2U0IDEwMDY0NAorLS0tIGEvbW9kdWxlcy9kbm5fbW9kZXJuL0NNYWtlTGlzdHMudHh0CisrKysgYi9tb2R1bGVzL2Rubl9tb2Rlcm4vQ01ha2VMaXN0cy50eHQKK0BAIC0xNSwyNCArMTUsOCBAQCBsaXN0KEFQUEVORCBDTUFLRV9NT0RVTEVfUEFUSCAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vY21ha2UpCisgIyBNT0RVTEUgUkVRVUlSRU1FTlRTCisgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCistc2V0KFRJTllfRE5OX0NQUF9QQVRIICIke09wZW5DVl9CSU5BUllfRElSfS8zcmRwYXJ0eS90aW55ZG5uIikKKy1zZXQoVElOWV9ETk5fQ1BQX1JPT1QgIiR7VElOWV9ETk5fQ1BQX1BBVEh9L3RpbnktZG5uLTEuMC4wYTMiKQorLW9jdl9kb3dubG9hZChGSUxFTkFNRSAidjEuMC4wYTMudGFyLmd6IgorLSAgICAgICAgICAgICAgIEhBU0ggImFkYjFjNTEyZTA5Y2EyYzdhNmZhZWYzNmY5YzUzZTU5IgorLSAgICAgICAgICAgICAgIFVSTAorLSAgICAgICAgICAgICAgICAgIiR7T1BFTkNWX1RJTllfRE5OX1VSTH0iCistICAgICAgICAgICAgICAgICAiJEVOVntPUEVOQ1ZfVElOWV9ETk5fVVJMfSIKKy0gICAgICAgICAgICAgICAgICJodHRwczovL2dpdGh1Yi5jb20vdGlueS1kbm4vdGlueS1kbm4vYXJjaGl2ZS8iCistICAgICAgICAgICAgICAgREVTVElOQVRJT05fRElSICIke1RJTllfRE5OX0NQUF9QQVRIfSIKKy0gICAgICAgICAgICAgICBTVEFUVVMgVElOWV9ETk5fRE9XTkxPQURfU1VDQ0VTUworLSAgICAgICAgICAgICAgIElEICJ0aW55LWRubiIKKy0gICAgICAgICAgICAgICBVTlBBQ0sgUkVMQVRJVkVfVVJMKQorLQorLWlmKE5PVCBUSU5ZX0ROTl9ET1dOTE9BRF9TVUNDRVNTKQorLSAgbWVzc2FnZShTVEFUVVMgIkZhaWxlZCB0byBkb3dubG9hZCB0aW55LWRubiBzb3VyY2VzIikKKy1lbmRpZigpCistCistZmluZF9wYWNrYWdlKFRpbnlETk4gUVVJRVQpCisrc2V0KFRJTllETk5fSU5DTFVERV9ESVJTICIke09wZW5DVl9TT1VSQ0VfRElSfS8zcmRwYXJ0eS90aW55ZG5uL3RpbnktZG5uLTEuMC4wYTMiKQorK3NldChUaW55RE5OX0ZPVU5EIFRSVUUpCisgCisgaW5jbHVkZShDaGVja0NYWENvbXBpbGVyRmxhZykKKyBDSEVDS19DWFhfQ09NUElMRVJfRkxBRygiLXN0ZD1jKysxMSIgQ09NUElMRVJfU1VQUE9SVFNfQ1hYMTEpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3ZfMy4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Yvb3BlbmN2XzMuMy5iYgppbmRleCBkZDllNGNhLi5jYTYyZGU3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3ZfMy4zLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN2L29wZW5jdl8zLjMuYmIKQEAgLTE1LDYgKzE1LDggQEAKIFNSQ1JFVl9pcHAgPSAiYTYyZTIwNjc2YTYwZWUwYWQ2NTgxZTIxN2ZlN2U0YmFkYTNiOTVkYiIKIFNSQ1JFVl9ib29zdGRlc2MgPSAiMzRlNDIwNmFlZjQ0ZDUwZTZiYmNkMGFiMDYzNTRiNTJlNzQ2NmQyNiIKIFNSQ1JFVl92Z2cgPSAiZmNjZjdjZDZhNGIxMjA3OWY3M2JiZmIyMTc0NWY5YmFiY2Q0ZWIxZCIKK1NSQ19VUklbdGlueWRubi5tZDVzdW1dID0gImFkYjFjNTEyZTA5Y2EyYzdhNmZhZWYzNmY5YzUzZTU5IgorU1JDX1VSSVt0aW55ZG5uLnNoYTI1NnN1bV0gPSAiZTJjNjFjZThjNWRlYmFhNjQ0MTIxMTc5ZTlkYmRjZjgzZjQ5N2YzOWRlODUzZjhkZDUxNzU4NDY1MDVhYTE4YiIKIAogZGVmIGlwcF9maWxlbmFtZShkKToKICAgICBpbXBvcnQgcmUKQEAgLTQxLDkgKzQzLDExIEBACiAgICAgZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuY3Yvb3BlbmN2XzNyZHBhcnR5LmdpdDticmFuY2g9aXBwaWN2L21hc3Rlcl8yMDE3MDQxODtkZXN0c3VmZml4PWlwcDtuYW1lPWlwcCBcCiAgICAgZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuY3Yvb3BlbmN2XzNyZHBhcnR5LmdpdDticmFuY2g9Y29udHJpYl94ZmVhdHVyZXMyZF9ib29zdGRlc2NfMjAxNjEwMTI7ZGVzdHN1ZmZpeD1ib29zdGRlc2M7bmFtZT1ib29zdGRlc2MgXAogICAgIGdpdDovL2dpdGh1Yi5jb20vb3BlbmN2L29wZW5jdl8zcmRwYXJ0eS5naXQ7YnJhbmNoPWNvbnRyaWJfeGZlYXR1cmVzMmRfdmdnXzIwMTYwMzE3O2Rlc3RzdWZmaXg9dmdnO25hbWU9dmdnIFwKKyAgICBodHRwczovL2dpdGh1Yi5jb20vdGlueS1kbm4vdGlueS1kbm4vYXJjaGl2ZS92MS4wLjBhMy50YXIuZ3o7ZGVzdHN1ZmZpeD1naXQvM3JkcGFydHkvdGlueWRubi90aW55LWRubi0xLjAuMGEzO25hbWU9dGlueWRubjt1bnBhY2s9ZmFsc2UgXAogICAgIGZpbGU6Ly8wMDAxLTNyZHBhcnR5LWlwcGljdi1Vc2UtcHJlLWRvd25sb2FkZWQtaXBwLnBhdGNoIFwKICAgICBmaWxlOi8vZml4cGtnY29uZmlnLnBhdGNoIFwKICAgICBmaWxlOi8vdXNlbG9jYWx4ZmVhdHVyZXMucGF0Y2g7cGF0Y2hkaXI9Li4vY29udHJpYi8gXAorICAgIGZpbGU6Ly90aW55ZG5uLnBhdGNoO3BhdGNoZGlyPS4uL2NvbnRyaWIvIFwKICAgICBmaWxlOi8vMDAwMi1NYWtlLW9wZW5jdi10cy1jcmVhdGUtc2hhcmUtbGlicmFyeS1pbnRlYWQtb2Ytc3RhdGljLnBhdGNoIFwKICAgICBmaWxlOi8vMDAwMy1Uby1maXgtZXJyb3JzLWFzLWZvbGxvd2luZy5wYXRjaCBcCiAgICAgZmlsZTovLzAwMDEtYnVpbGQtd29ya2Fyb3VuZC1HQ0MtNy4xLjEtY29tcGlsYXRpb24taXNzdWUtd2l0aC1zYS5wYXRjaCBcCkBAIC01MywxMiArNTcsMTcgQEAKICAgICBmaWxlOi8vMDAwMS1jYXJvdGVuZS1kb24tdC11c2UtX19hc21fXy13aXRoLWFhcmNoNjQucGF0Y2ggXAogICAgIGZpbGU6Ly8wMDAyLURvLW5vdC1lbmFibGUtYXNtLXdpdGgtY2xhbmcucGF0Y2ggXAogICAgIGZpbGU6Ly9DVkUtMjAxNy0xNDEzNi5wYXRjaCBcCisgICAgZmlsZTovL2phdmFnZW4ucGF0Y2ggXAorICAgIGZpbGU6Ly9wcm90b2J1Zi5wYXRjaCBcCisgICAgZmlsZTovL2FscmVhZHktZXhpc3RzLnBhdGNoIFwKICIKIFBWID0gIjMuMytnaXQke1NSQ1BWfSIKIAogUyA9ICIke1dPUktESVJ9L2dpdCIKIAogZG9fdW5wYWNrX2V4dHJhKCkgeworICAgIG1rZGlyIC1wICR7U30vM3JkcGFydHkvdGlueWRubi8KKyAgICB0YXIgeHpmICR7V09SS0RJUn0vdjEuMC4wYTMudGFyLmd6IC1DICR7U30vM3JkcGFydHkvdGlueWRubi8KICAgICB0YXIgeHpmICR7V09SS0RJUn0vaXBwL2lwcGljdi8ke0lQUF9GSUxFTkFNRX0gLUMgJHtXT1JLRElSfQogICAgIGNwICR7V09SS0RJUn0vdmdnLyouaSAke1dPUktESVJ9L2NvbnRyaWIvbW9kdWxlcy94ZmVhdHVyZXMyZC9zcmMKICAgICBjcCAke1dPUktESVJ9L2Jvb3N0ZGVzYy8qLmkgJHtXT1JLRElSfS9jb250cmliL21vZHVsZXMveGZlYXR1cmVzMmQvc3JjCkBAIC02OCwxMyArNzcsMTMgQEAKIEVYVFJBX09FQ01BS0UgPSAiLURPUEVOQ1ZfRVhUUkFfTU9EVUxFU19QQVRIPSR7V09SS0RJUn0vY29udHJpYi9tb2R1bGVzIFwKICAgICAtRFdJVEhfMTM5ND1PRkYgXAogICAgIC1EQ01BS0VfU0tJUF9SUEFUSD1PTiBcCi0gICAgLURPUEVOQ1ZfSUNWX1BBQ0tBR0VfRE9XTkxPQURFRD0ke0lQUF9NRDV9IFwKLSAgICAtRE9QRU5DVl9JQ1ZfUEFUSD0ke1dPUktESVJ9L2lwcGljdl9sbnggXAorICAgIC1ET1BFTkNWX0lDVl9IQVNIPSR7SVBQX01ENX0gXAorICAgIC1ESVBQUk9PVD0ke1dPUktESVJ9L2lwcGljdl9sbnggXAogICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCJUQVJHRVRfQ0NfQVJDSCIsICItbXNzZTMiLCAiLURFTkFCTEVfU1NFPTEgLURFTkFCTEVfU1NFMj0xIC1ERU5BQkxFX1NTRTM9MSAtREVOQUJMRV9TU1NFMz0xIiwgIiIsIGQpfSBcCiAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoIlRBUkdFVF9DQ19BUkNIIiwgIi1tc3NlNC4xIiwgIi1ERU5BQkxFX1NTRT0xIC1ERU5BQkxFX1NTRTI9MSAtREVOQUJMRV9TU0UzPTEgLURFTkFCTEVfU1NTRTM9MSAtREVOQUJMRV9TU0U0MT0xIiwgIiIsIGQpfSBcCiAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoIlRBUkdFVF9DQ19BUkNIIiwgIi1tc3NlNC4yIiwgIi1ERU5BQkxFX1NTRT0xIC1ERU5BQkxFX1NTRTI9MSAtREVOQUJMRV9TU0UzPTEgLURFTkFCTEVfU1NTRTM9MSAtREVOQUJMRV9TU0U0MT0xIC1ERU5BQkxFX1NTRTQyPTEiLCAiIiwgZCl9IFwKLSAgICAke0BiYXNlX2NvbmRpdGlvbmFsKCJsaWJkaXIiLCAiL3Vzci9saWI2NCIsICItRExJQl9TVUZGSVg9NjQiLCAiIiwgZCl9IFwKLSAgICAke0BiYXNlX2NvbmRpdGlvbmFsKCJsaWJkaXIiLCAiL3Vzci9saWIzMiIsICItRExJQl9TVUZGSVg9MzIiLCAiIiwgZCl9IFwKKyAgICAke0BvZS51dGlscy5jb25kaXRpb25hbCgibGliZGlyIiwgIi91c3IvbGliNjQiLCAiLURMSUJfU1VGRklYPTY0IiwgIiIsIGQpfSBcCisgICAgJHtAb2UudXRpbHMuY29uZGl0aW9uYWwoImxpYmRpciIsICIvdXNyL2xpYjMyIiwgIi1ETElCX1NVRkZJWD0zMiIsICIiLCBkKX0gXAogIgogRVhUUkFfT0VDTUFLRV9hcHBlbmRfeDg2ID0gIiAtRFg4Nj1PTiIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wYXNzd2RxYy9wYXNzd2RxY18xLjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGFzc3dkcWMvcGFzc3dkcWNfMS4zLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5OGRiM2MuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wYXNzd2RxYy9wYXNzd2RxY18xLjMuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLVNVTU1BUlkgPSAiQSBwYXNzd29yZC9wYXNzcGhyYXNlIHN0cmVuZ3RoIGNoZWNraW5nIGFuZCBlbmZvcmNlbWVudCB0b29sc2V0IgotREVTQ1JJUFRJT04gPSAiXAotcGFzc3dkcWMgaXMgYSBwYXNzd29yZC9wYXNzcGhyYXNlIHN0cmVuZ3RoIGNoZWNraW5nIGFuZCBwb2xpY3kgZW5mb3JjZW1lbnQgXAotdG9vbHNldCwgaW5jbHVkaW5nIGFuIG9wdGlvbmFsIFBBTSBtb2R1bGUgKHBhbV9wYXNzd2RxYyksIGNvbW1hbmQtbGluZSBcCi1wcm9ncmFtcyAocHdxY2hlY2sgYW5kIHB3cWdlbiksIGFuZCBhIGxpYnJhcnkgKGxpYnBhc3N3ZHFjKS4gXAotcGFtX3Bhc3N3ZHFjIGlzIG5vcm1hbGx5IGludm9rZWQgb24gcGFzc3dvcmQgY2hhbmdlcyBieSBwcm9ncmFtcyBzdWNoIGFzIFwKLXBhc3N3ZCgxKS4gIEl0IGlzIGNhcGFibGUgb2YgY2hlY2tpbmcgcGFzc3dvcmQgb3IgcGFzc3BocmFzZSBzdHJlbmd0aCwgXAotZW5mb3JjaW5nIGEgcG9saWN5LCBhbmQgb2ZmZXJpbmcgcmFuZG9tbHktZ2VuZXJhdGVkIHBhc3NwaHJhc2VzLCB3aXRoIFwKLWFsbCBvZiB0aGVzZSBmZWF0dXJlcyBiZWluZyBvcHRpb25hbCBhbmQgZWFzaWx5IChyZS0pY29uZmlndXJhYmxlLiBcCi1cCi1wd3FjaGVjayBhbmQgcHdxZ2VuIGFyZSBzdGFuZGFsb25lIHBhc3N3b3JkL3Bhc3NwaHJhc2Ugc3RyZW5ndGggY2hlY2tpbmcgXAotYW5kIHJhbmRvbSBwYXNzcGhyYXNlIGdlbmVyYXRvciBwcm9ncmFtcywgcmVzcGVjdGl2ZWx5LCB3aGljaCBhcmUgdXNhYmxlIFwKLWZyb20gc2NyaXB0cy4gXAotXAotbGlicGFzc3dkcWMgaXMgdGhlIHVuZGVybHlpbmcgbGlicmFyeSwgd2hpY2ggbWF5IGFsc28gYmUgdXNlZCBmcm9tIFwKLXRoaXJkLXBhcnR5IHByb2dyYW1zLiBcCi0iCi0KLUhPTUVQQUdFID0gImh0dHA6Ly93d3cub3BlbndhbGwuY29tL3Bhc3N3ZHFjIgotU0VDVElPTiA9ICJTeXN0ZW0gRW52aXJvbm1lbnQvQmFzZSIKLQotREVQRU5EUyArPSAibGlicGFtIgotCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTFiNGFmNmYzZDRlZTA3OWEzODEwNzM2NmU5M2IzMzRkIgotCi1TUkNfVVJJID0gImh0dHA6Ly93d3cub3BlbndhbGwuY29tLyR7QlBOfS8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vbWFrZWZpbGUtYWRkLWxkZmxhZ3MucGF0Y2ggXAotICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICIzODc4YjU3YmNkM2ZkYmNmM2Q0YjM2MmRiYzYyMjhiOSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkMWZlZGVhZjc1OWU4YTBmMzJkMjhiNTgxMWVmMTFiNWE1MzY1MTU0ODQ5MTkwZjRiN2ZhYjY3MGE3MGZmYjE0IgotCi0jIGV4cGxpY2l0bHkgZGVmaW5lIExJTlVYX1BBTSBpbiBjYXNlIERJU1RST19GRUFUVVJFUyBubyBwYW0KLSMgdGhpcyBwYWNrYWdlJ3MgcGFtX3Bhc3N3ZHFjLnNvIG5lZWRzIHBhbQotQ0ZMQUdTX2FwcGVuZCArPSAiLVdhbGwgLWZQSUMgLURIQVZFX1NIQURPVyAtRExJTlVYX1BBTSIKLQotIyAtZSBpcyBubyBsb25nZXIgZGVmYXVsdCBzZXR0aW5nIGluIGJpdGJha2UuY29uZgotRVhUUkFfT0VNQUtFID0gIi1lIgotCi1kb19jb21waWxlKCkgewotICAgICMgbWFrZSBzdXJlIHN1YiBtYWtlIHVzZSBlbnZpcm9ubWVudCB0byBvdmVycmlkZSB2YXJpYWJsZXMgaW4gTWFrZWZpbGUKLSAgICAjIExpbnV4KSAgICAkKE1BS0UpLCB0aGVyZSBpcyBhIHRhYiBiZXR3ZWVuCi0gICAgc2VkIC1pIC1lICdzL0xpbnV4KQkkKE1BS0UpIENGTEFHU19saWIvTGludXgpCSQoTUFLRSkgLWUgQ0ZMQUdTX2xpYi8nICR7U30vTWFrZWZpbGUKLQotICAgICMgTERfbGliIGFuZCBMRCBtdXN0IGJlIENDIGJlY2F1c2Ugb2YgTWFrZWZpbGUKLSAgICBvZV9ydW5tYWtlIExEPSIke0NDfSIKLX0KLQotZG9faW5zdGFsbCgpIHsKLSAgICBvZV9ydW5tYWtlIGluc3RhbGwgREVTVERJUj0ke0R9IFNIQVJFRF9MSUJESVI9JHtiYXNlX2xpYmRpcn0gXAotICAgICAgICAgICBERVZFTF9MSUJESVI9JHtsaWJkaXJ9IFNFQ1VSRURJUj0ke2Jhc2VfbGliZGlyfS9zZWN1cml0eSBcCi0gICAgICAgICAgIElOU1RBTEw9Imluc3RhbGwgLXAiCi19Ci0KLVBST1ZJREVTICs9ICJwYW0tJHtCUE59IgotUEFDS0FHRVMgPSsgImxpYiR7QlBOfSBwYW0tJHtCUE59IgotCi1GSUxFU19saWIke0JQTn0gPSAiJHtiYXNlX2xpYmRpcn0vbGlicGFzc3dkcWMuc28uMCIKLUZJTEVTX3BhbS0ke0JQTn0gPSAiJHtiYXNlX2xpYmRpcn0vc2VjdXJpdHkvcGFtX3Bhc3N3ZHFjLnNvIgotRklMRVNfJHtQTn0tZGJnICs9ICIke2Jhc2VfbGliZGlyfS9zZWN1cml0eS8uZGVidWciCi0KLVJERVBFTkRTXyR7UE59ID0gImxpYiR7QlBOfSBwYW0tJHtCUE59IgotUkRFUEVORFNfcGFtLSR7QlBOfSA9ICJsaWIke0JQTn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BpZGdpbi9waWRnaW4vcGlkZ2luLWNyb3NzLXB5dGhvbi0yNjUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BpZGdpbi9waWRnaW4vcGlkZ2luLWNyb3NzLXB5dGhvbi0yNjUucGF0Y2gKaW5kZXggNzJiZjRlZC4uMzEyZmM4NSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9waWRnaW4vcGlkZ2luL3BpZGdpbi1jcm9zcy1weXRob24tMjY1LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGlkZ2luL3BpZGdpbi9waWRnaW4tY3Jvc3MtcHl0aG9uLTI2NS5wYXRjaApAQCAtMSw5ICsxLDE3IEBACi1Vc2UgcGtnLWNvbmZpZyBpbnN0ZWFkIG9mICR7UFlUSE9OfS1jb25maWcgdG8gZmluZCBweXRob24KK0Zyb20gODU1Y2MyMGJhZmEzMDU5N2FlN2E2MmY3NjcyZDQyNjU0YjI1Y2RlMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEhlcnJpZSA8Z2l0aHViLmNvbUBoZXJyaWUub3JnPgorRGF0ZTogTW9uLCAyNCBKdWwgMjAxNyAyMTozMDoxNiArMDIwMAorU3ViamVjdDogW1BBVENIXSBVc2UgcGtnLWNvbmZpZyBpbnN0ZWFkIG9mICR7UFlUSE9OfS1jb25maWcgdG8gZmluZCBweXRob24KIAotZGlmZiAtdU5yIHBpZGdpbi0yLjEwLjEyLm9yaWcvY29uZmlndXJlLmFjIHBpZGdpbi0yLjEwLjEyL2NvbmZpZ3VyZS5hYwotLS0tIHBpZGdpbi0yLjEwLjEyLm9yaWcvY29uZmlndXJlLmFjCTIwMTYtMDEtMDEgMDA6MTk6NDAuMDAwMDAwMDAwICswMTAwCi0rKysgcGlkZ2luLTIuMTAuMTIvY29uZmlndXJlLmFjCTIwMTYtMDUtMDUgMTY6NTU6MTMuMjU4OTQ1OTI1ICswMjAwCi1AQCAtMTU4NSwyMCArMTU4NSwxNSBAQAorLS0tCisgY29uZmlndXJlLmFjIHwgMjEgKysrKysrKystLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IGQyMGExOGUuLmM3NDE4MjkgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTE1NjcsMjAgKzE1NjcsMTUgQEAgQU1fQ09ORElUSU9OQUwoRU5BQkxFX0RCVVMsIHRlc3QgIngkZW5hYmxlX2RidXMiID0gInh5ZXMiKQogIGRubCBDaGVjayBmb3IgUHl0aG9uIGhlYWRlcnMgKGN1cnJlbnRseSB1c2VmdWwgb25seSBmb3IgbGliZ250KQogIGRubCAoVGhhbmtzIHRvIFhDaGF0KQogIGlmIHRlc3QgIngkZW5hYmxlX2NvbnNvbGV1aSIgPSAieHllcyIgLWEgISAteiAiJFBZVEhPTiIgLWEgeCIkUFlUSE9OIiAhPSB4Im5vIiA7IHRoZW4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGlkZ2luL3BpZGdpbi9wdXJwbGUtT0UtYnJhbmRpbmctMjUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BpZGdpbi9waWRnaW4vcHVycGxlLU9FLWJyYW5kaW5nLTI1LnBhdGNoCmluZGV4IDI5M2VmNzAuLjlhMjRmYmIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGlkZ2luL3BpZGdpbi9wdXJwbGUtT0UtYnJhbmRpbmctMjUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9waWRnaW4vcGlkZ2luL3B1cnBsZS1PRS1icmFuZGluZy0yNS5wYXRjaApAQCAtMSw4ICsxLDE2IEBACi1JbmRleDogcGlkZ2luLTIuNS4wL2xpYnB1cnBsZS9wcm90b2NvbHMvaXJjL2lyYy5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gcGlkZ2luLTIuNS4wLm9yaWcvbGlicHVycGxlL3Byb3RvY29scy9pcmMvaXJjLmgJMjAwOC0wOC0xOSAwMTo1MzozOC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBwaWRnaW4tMi41LjAvbGlicHVycGxlL3Byb3RvY29scy9pcmMvaXJjLmgJMjAwOC0wOC0yNyAxMToxNTo1OC4wMDAwMDAwMDAgKzAwMDAKLUBAIC0zNiw5ICszNiw5IEBACitGcm9tIDQzZTlkYjY1NjQzMWZmYjIyYjQyOWQ1ZmNhNGNlM2I0YWYyMWJjOWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIZXJyaWUgPGdpdGh1Yi5jb21AaGVycmllLm9yZz4KK0RhdGU6IE1vbiwgMjQgSnVsIDIwMTcgMjE6MzA6MTYgKzAyMDAKKworLS0tCisgbGlicHVycGxlL3Byb3RvY29scy9pcmMvaXJjLmggfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGlicHVycGxlL3Byb3RvY29scy9pcmMvaXJjLmggYi9saWJwdXJwbGUvcHJvdG9jb2xzL2lyYy9pcmMuaAoraW5kZXggZmRlMzVjNC4uNjZlNTJkZCAxMDA2NDQKKy0tLSBhL2xpYnB1cnBsZS9wcm90b2NvbHMvaXJjL2lyYy5oCisrKysgYi9saWJwdXJwbGUvcHJvdG9jb2xzL2lyYy9pcmMuaAorQEAgLTQwLDkgKzQwLDkgQEAKICAKICAjZGVmaW5lIElSQ19ERUZBVUxUX0NIQVJTRVQgIlVURi04IgogICNkZWZpbmUgSVJDX0RFRkFVTFRfQVVUT0RFVEVDVCBGQUxTRQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9waWRnaW4vcGlkZ2luL3Nhbml0aXplLWNvbmZpZ3VyZS5hYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGlkZ2luL3BpZGdpbi9zYW5pdGl6ZS1jb25maWd1cmUuYWMucGF0Y2gKaW5kZXggYTc3ZDY0Zi4uODRkYmNkYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9waWRnaW4vcGlkZ2luL3Nhbml0aXplLWNvbmZpZ3VyZS5hYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BpZGdpbi9waWRnaW4vc2FuaXRpemUtY29uZmlndXJlLmFjLnBhdGNoCkBAIC0xLDYgKzEsMTYgQEAKLS0tLSAvdG1wL2NvbmZpZ3VyZS5hYwkyMDA3LTA1LTA4IDE3OjI5OjAyLjAwMDAwMDAwMCArMDIwMAotKysrIHBpZGdpbi0yLjAuMC9jb25maWd1cmUuYWMJMjAwNy0wNS0wOCAxNzozMDozMC4zMjUyNTEwMDAgKzAyMDAKLUBAIC00NzIsNyArNDcyLDcgQEAKK0Zyb20gYzMwNThmOWVhZGFmNWZmMjhiYTc3NmNmZWQ1NGI2MDlhOTNhMTI0OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEhlcnJpZSA8Z2l0aHViLmNvbUBoZXJyaWUub3JnPgorRGF0ZTogTW9uLCAyNCBKdWwgMjAxNyAyMTozMDoxNiArMDIwMAorCistLS0KKyBjb25maWd1cmUuYWMgfCAxMCArLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCBiOGFjZDJhLi5kMjBhMThlIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC02NDIsNyArNjQyLDcgQEAgaWYgdGVzdCAieCRlbmFibGVfY29uc29sZXVpIiA9ICJ4eWVzIjsgdGhlbgogIAlpZiB0ZXN0ICJ4JGVuYWJsZV9jb25zb2xldWkiID0gInh5ZXMiOyB0aGVuCiAgCQlkbmwgIyBTb21lIGRpc3Ryb3MgcHV0IHRoZSBoZWFkZXJzIGluIG5jdXJzZXN3Lywgc29tZSBkb24ndAogIAkJZm91bmRfbmN1cnNlc19oPW5vCkBAIC04LDggKzE4LDggQEAKICsJCWZvciBsb2NhdGlvbiBpbiAkYWNfbmN1cnNlc19pbmNsdWRlcyAkTkNVUlNFU19IRUFERVJTIAogIAkJZG8KICAJCQlmPSIkbG9jYXRpb24vbmN1cnNlcy5oIgotIAkJCUFDX0NIRUNLX0hFQURFUigkZixbCi1AQCAtMTg2MCwxMCArMTg2MCw2IEBACisgCQkJb3JpZ19DRkxBR1M9IiRDRkxBR1MiCitAQCAtMjM5NywxMCArMjM5Nyw2IEBAIGlmIHRlc3QgIiRrZXJiZXJvcyIgIT0gIm5vIiA7IHRoZW4KICAJCQlLUkI0X0NGTEFHUz0iJEtSQjRfQ0ZMQUdTIC1JJHtrZXJiZXJvc30vaW5jbHVkZS9rZXJiZXJvc0lWIgogIAkJZmkKICAJCUtSQjRfTERGTEFHUz0iLUwke2tlcmJlcm9zfS9saWIiCkBAIC0yMCw3ICszMCw3IEBACiAgCWZpCiAgCUFDX0RFRklORShaRVBIWVJfVVNFU19LRVJCRVJPUywgMSwgW0RlZmluZSBpZiBrZXJiZXJvcyBzaG91bGQgYmUgdXNlZCBpbiBaZXBoeXIuXSkKICAKLUBAIC0xODk2LDEwICsxODkyLDYgQEAKK0BAIC0yNDMzLDEwICsyNDI5LDYgQEAgaWYgdGVzdCAiJHplcGh5ciIgIT0gIm5vIiA7IHRoZW4KICAJCVpFUEhZUl9MREZMQUdTPSItTCR7emVwaHlyfS9saWIiCiAgCWVsaWYgdGVzdCAtZCAvdXNyL2F0aGVuYS9pbmNsdWRlL3plcGh5ciA7IHRoZW4KICAJCVpFUEhZUl9DRkxBR1M9Ii1JL3Vzci9hdGhlbmEvaW5jbHVkZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9jby9wb2NvXzEuNy45LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb2NvL3BvY29fMS43LjkuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjNjU3MzUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb2NvL3BvY29fMS43LjkuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotU1VNTUFSWSA9ICJNb2Rlcm4sIHBvd2VyZnVsIG9wZW4gc291cmNlIGNyb3NzLXBsYXRmb3JtIEMrKyBjbGFzcyBsaWJyYXJpZXMiCi1ERVNDUklQVElPTiA9ICJNb2Rlcm4sIHBvd2VyZnVsIG9wZW4gc291cmNlIEMrKyBjbGFzcyBsaWJyYXJpZXMgYW5kIGZyYW1ld29ya3MgZm9yIGJ1aWxkaW5nIG5ldHdvcmstIGFuZCBpbnRlcm5ldC1iYXNlZCBhcHBsaWNhdGlvbnMgdGhhdCBydW4gb24gZGVza3RvcCwgc2VydmVyLCBtb2JpbGUgYW5kIGVtYmVkZGVkIHN5c3RlbXMuIgotU0VDVElPTiA9ICJsaWJzIgotSE9NRVBBR0UgPSAiaHR0cDovL3BvY29wcm9qZWN0Lm9yZy8iCi1MSUNFTlNFID0gIkJTTC0xLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT00MjY3ZjQ4ZmM3MzhmNTAzODBjYmVlYjc2Zjk1Y2ViYyIKLQotIyBUaGVzZSBkZXBlbmRlbmNpZXMgYXJlIHJlcXVpcmVkIGJ5IEZvdW5kYXRpb24KLURFUEVORFMgPSAibGlicGNyZSB6bGliIgotCi1pbmhlcml0IGNtYWtlIHB0ZXN0Ci0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgotCi1TUkNSRVYgPSAiYmZiZTZhMzI4NzQ0ZWFhODRjYjQ0M2I5M2VlMjA5NDdhYTBiZTkxZiIKLVNSQ19VUkkgPSAiIFwKLSAgICBnaXQ6Ly9naXRodWIuY29tL3BvY29wcm9qZWN0L3BvY28uZ2l0O2JyYW5jaD1tYXN0ZXIgXAotICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAotICAgIgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1FWFRSQV9PRUNNQUtFID0gIi1EQ01BS0VfQlVJTERfVFlQRT1SZWxXaXRoRGViSW5mbyAtRFBPQ09fVU5CVU5ETEVEPU9OIFwKLSAgICAgICAgICAgICAgICAgIC1EWkxJQl9MSUJSQVJZX1JFTEVBU0U6U1RSSU5HPXogLURQQ1JFX0xJQlJBUlk6U1RSSU5HPXBjcmUgXAotICAgICAgICAgICAgICAgICAke0BiYi51dGlscy5jb250YWlucygnUFRFU1RfRU5BQkxFRCcsICcxJywgJy1ERU5BQkxFX1RFU1RTPU9OICcsICcnLCBkKX0iCi0KLSMgRm9yIHRoZSBuYXRpdmUgYnVpbGQgd2Ugd2FudCB0byB1c2UgdGhlIGJ1bmRsZWQgdmVyc2lvbgotRVhUUkFfT0VDTUFLRV9hcHBlbmRfY2xhc3MtbmF0aXZlID0gIiAtRFBPQ09fVU5CVU5ETEVEPU9GRiIKLQotIyBkbyBub3QgdXNlIHJwYXRoCi1FWFRSQV9PRUNNQUtFX2FwcGVuZCA9ICIgLURDTUFLRV9TS0lQX1JQQVRIPU9OIgotCi0jIEJ5IGRlZmF1bHQgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBwb2NvIGNvbXBvbmVudHMgYXJlIGJ1aWx0Ci0jIEZvdW5kYXRpb24gaXMgYnVpbHQgYW55d2F5IGFuZCBkb2Vzbid0IG5lZWQgdG8gYmUgbGlzdGVkIGV4cGxpY2l0bHkKLSMgdGhlc2UgZG9uJ3QgaGF2ZSBkZXBlbmRlbmNpZXMgb3V0c2lkZSBvZS1jb3JlCi1QQUNLQUdFQ09ORklHID8/PSAiWE1MIEpTT04gTW9uZ29EQiBQREYgVXRpbCBOZXQgTmV0U1NMIENyeXB0byBEYXRhIERhdGFTUUxpdGUgWmlwIgotCi1QQUNLQUdFQ09ORklHW1hNTF0gPSAiLURFTkFCTEVfWE1MPU9OIC1ERVhQQVRfTElCUkFSWTpTVFJJTkc9ZXhwYXQsLURFTkFCTEVfWE1MPU9GRixleHBhdCIKLVBBQ0tBR0VDT05GSUdbSlNPTl0gPSAiLURFTkFCTEVfSlNPTj1PTiwtREVOQUJMRV9KU09OPU9GRiIKLVBBQ0tBR0VDT05GSUdbTW9uZ29EQl0gPSAiLURFTkFCTEVfTU9OR09EQj1PTiwtREVOQUJMRV9NT05HT0RCPU9GRiIKLVBBQ0tBR0VDT05GSUdbUERGXSA9ICItREVOQUJMRV9QREY9T04sLURFTkFCTEVfUERGPU9GRix6bGliIgotUEFDS0FHRUNPTkZJR1tVdGlsXSA9ICItREVOQUJMRV9VVElMPU9OLC1ERU5BQkxFX1VUSUw9T0ZGIgotUEFDS0FHRUNPTkZJR1tOZXRdID0gIi1ERU5BQkxFX05FVD1PTiwtREVOQUJMRV9ORVQ9T0ZGIgotUEFDS0FHRUNPTkZJR1tOZXRTU0xdID0gIi1ERU5BQkxFX05FVFNTTD1PTiAtRE9QRU5TU0xfU1NMX0xJQlJBUlk6U1RSSU5HPXNzbCAtRE9QRU5TU0xfQ1JZUFRPX0xJQlJBUlk6U1RSSU5HPWNyeXB0bywtREVOQUJMRV9ORVRTU0w9T0ZGLG9wZW5zc2wiCi1QQUNLQUdFQ09ORklHW0NyeXB0b10gPSAiLURFTkFCTEVfQ1JZUFRPPU9OIC1ET1BFTlNTTF9TU0xfTElCUkFSWTpTVFJJTkc9c3NsIC1ET1BFTlNTTF9DUllQVE9fTElCUkFSWTpTVFJJTkc9Y3J5cHRvLC1ERU5BQkxFX0NSWVBUTz1PRkYsb3BlbnNzbCIKLVBBQ0tBR0VDT05GSUdbRGF0YV0gPSAiLURFTkFCTEVfREFUQT1PTiwtREVOQUJMRV9EQVRBPU9GRiIKLVBBQ0tBR0VDT05GSUdbRGF0YVNRTGl0ZV0gPSAiLURFTkFCTEVfREFUQV9TUUxJVEU9T04gLURTUUxJVEUzX0xJQlJBUlk6U1RSSU5HPXNxbGl0ZTMsLURFTkFCTEVfREFUQV9TUUxJVEU9T0ZGLHNxbGl0ZTMiCi1QQUNLQUdFQ09ORklHW1ppcF0gPSAiLURFTkFCTEVfWklQPU9OLC1ERU5BQkxFX1pJUD1PRkYiCi0KLSMgQWRkaXRpb25hbCBjb21wb25lbnRzIG5vdCBidWlsZCBieSBkZWZhdWx0LAotIyB0aGV5IG1pZ2h0IGhhdmUgZGVwZW5kZW5jaWVzIG5vdCBpbmNsdWRlZCBpbiBvZS1jb3JlCi0jIG9yIHRoZXkgZG9uJ3Qgd29yayBvbiBhbGwgYXJjaGl0ZWN0dXJlcwotUEFDS0FHRUNPTkZJR1ttb2RfcG9jb10gPSAiLURFTkFCTEVfQVBBQ0hFQ09OTkVDVE9SPU9OLC1ERU5BQkxFX0FQQUNIRUNPTk5FQ1RPUj1PRkYsYXByIGFwYWNoZTIiCi1QQUNLQUdFQ09ORklHW0NwcFBhcnNlcl0gPSAiLURFTkFCTEVfQ1BQUEFSU0VSPU9OLC1ERU5BQkxFX0NQUFBBUlNFUj1PRkYiCi1QQUNLQUdFQ09ORklHW0RhdGFNeVNRTF0gPSAiLURFTkFCTEVfREFUQV9NWVNRTD1PTiAtRE1ZU1FMX0xJQjpTVFJJTkc9bXlzcWxjbGllbnRfciwtREVOQUJMRV9EQVRBX01ZU1FMPU9GRixtYXJpYWRiIgotUEFDS0FHRUNPTkZJR1tEYXRhT0RCQ10gPSAiLURFTkFCTEVfREFUQV9PREJDPU9OLC1ERU5BQkxFX0RBVEFfT0RCQz1PRkYsbGliaW9kYmMiCi1QQUNLQUdFQ09ORklHW1BhZ2VDb21waWxlcl0gPSAiLURFTkFCTEVfUEFHRUNPTVBJTEVSPU9OLC1ERU5BQkxFX1BBR0VDT01QSUxFUj1PRkYiCi1QQUNLQUdFQ09ORklHW1BhZ2VDb21waWxlckZpbGUyUGFnZV0gPSAiLURFTkFCTEVfUEFHRUNPTVBJTEVSX0ZJTEUyUEFHRT1PTiwtREVOQUJMRV9QQUdFQ09NUElMRVJfRklMRTJQQUdFPU9GRiIKLVBBQ0tBR0VDT05GSUdbU2V2ZW5aaXBdID0gIi1ERU5BQkxFX1NFVkVOWklQPU9OLC1ERU5BQkxFX1NFVkVOWklQPU9GRiIKLQotIyBNYWtlIGEgcGFja2FnZSBmb3IgZWFjaCBsaWJyYXJ5Ci1QQUNLQUdFUyA9ICIke1BOfS1kYmcgJHtQT0NPX1BBQ0tBR0VTfSIKLXB5dGhvbiBfX2Fub255bW91cyAoKSB7Ci0gICAgcGFja2FnZXMgPSBbXQotICAgIHRlc3RydW5uZXJzID0gW10KLSAgICBjb21wb25lbnRzID0gZC5nZXRWYXIoIlBBQ0tBR0VDT05GSUciKS5zcGxpdCgpCi0gICAgY29tcG9uZW50cy5hcHBlbmQoIkZvdW5kYXRpb24iKQotICAgIGZvciBsaWIgaW4gY29tcG9uZW50czoKLSAgICAgICAgcGtnID0gKCJwb2NvLSVzIiAlIGxpYi5sb3dlcigpKS5yZXBsYWNlKCJfIiwiIikKLSAgICAgICAgcGFja2FnZXMuYXBwZW5kKHBrZykKLSAgICAgICAgaWYgbm90IGQuZ2V0VmFyKCJGSUxFU18lcyIgJSBwa2cpOgotICAgICAgICAgICAgZC5zZXRWYXIoIkZJTEVTXyVzIiAlIHBrZywgIiR7bGliZGlyfS9saWJQb2NvJXMuc28uKiIgJSBsaWIpCi0gICAgICAgIHRlc3RydW5uZXJzLmFwcGVuZCgiJXMiICUgbGliKQotCi0gICAgZC5zZXRWYXIoIlBPQ09fUEFDS0FHRVMiLCAiICIuam9pbihwYWNrYWdlcykpCi0gICAgZC5zZXRWYXIoIlBPQ09fVEVTVFJVTk5FUlMiLCAiXG4iLmpvaW4odGVzdHJ1bm5lcnMpKQotfQotCi0jICJwb2NvIiBpcyBhIG1ldGFwYWNrYWdlIHdoaWNoIHB1bGxzIGluIGFsbCBQb2NvIGNvbXBvbmVudHMKLVBBQ0tBR0VTICs9ICIke1BOfSIKLVJSRUNPTU1FTkRTXyR7UE59ICs9ICIke1BPQ09fUEFDS0FHRVN9IgotUlJFQ09NTUVORFNfJHtQTn1fY2xhc3MtbmF0aXZlID0gIiIKLUFMTE9XX0VNUFRZXyR7UE59ID0gIjEiCi0KLSMgLWRldiBsYXN0IHRvIHBpY2sgdXAgdGhlIHJlbWFpbmluZyBzdHVmZgotUEFDS0FHRVMgKz0gIiR7UE59LWRldiAke1BOfS1zdGF0aWNkZXYiCi1GSUxFU18ke1BOfS1kZXYgPSAiJHtpbmNsdWRlZGlyfSAke2xpYmRpcn0vbGliUG9jbyouc28gJHtsaWJkaXJ9L2NtYWtlIgotRklMRVNfJHtQTn0tc3RhdGljZGV2ID0gIiR7bGliZGlyfS9saWJQb2NvKi5hIgotCi0jIHB0ZXN0IHN1cHBvcnQKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtQVEVTVF9QQVRIfS9iaW4vLmRlYnVnIgotCi0jIGNwcHVuaXQgaXMgb25seSBidWlsdCBpZiB0ZXN0cyBhcmUgZW5hYmxlZAotUEFDS0FHRVMgKz0gIiR7UE59LWNwcHVuaXQiCi1GSUxFU18ke1BOfS1jcHB1bml0ICs9ICIke2xpYmRpcn0vbGliQ3BwVW5pdC5zbyoiCi1BTExPV19FTVBUWV8ke1BOfS1jcHB1bml0ID0gIjEiCi0KLVJERVBFTkRTXyR7UE59LXB0ZXN0ICs9ICIke1BOfS1jcHB1bml0IgotCi1kb19pbnN0YWxsX3B0ZXN0ICgpIHsKLSAgICAgICBjcCAtcmYgJHtCfS9iaW4vICR7RH0ke1BURVNUX1BBVEh9Ci0gICAgICAgY3AgLWYgJHtCfS9saWIvbGliQ3BwVW5pdC5zbyogJHtEfSR7bGliZGlyfQotICAgICAgIGNwIC1yZiAke0J9LyovdGVzdHN1aXRlL2RhdGEgJHtEfSR7UFRFU1RfUEFUSH0vYmluLwotICAgICAgIGZpbmQgIiR7RH0ke1BURVNUX1BBVEh9IiAtZXhlY3V0YWJsZSAtZXhlYyBjaHJwYXRoIC1kIHt9IFw7Ci0gICAgICAgZWNobyAiJHtQT0NPX1RFU1RSVU5ORVJTfSIgPiAiJHtEfSR7UFRFU1RfUEFUSH0vdGVzdHJ1bm5lcnMiCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvY28vcG9jb18xLjguMC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb2NvL3BvY29fMS44LjAuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjBiNGQzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb2NvL3BvY29fMS44LjAuMS5iYgpAQCAtMCwwICsxLDEwNiBAQAorU1VNTUFSWSA9ICJNb2Rlcm4sIHBvd2VyZnVsIG9wZW4gc291cmNlIGNyb3NzLXBsYXRmb3JtIEMrKyBjbGFzcyBsaWJyYXJpZXMiCitERVNDUklQVElPTiA9ICJNb2Rlcm4sIHBvd2VyZnVsIG9wZW4gc291cmNlIEMrKyBjbGFzcyBsaWJyYXJpZXMgYW5kIGZyYW1ld29ya3MgZm9yIGJ1aWxkaW5nIG5ldHdvcmstIGFuZCBpbnRlcm5ldC1iYXNlZCBhcHBsaWNhdGlvbnMgdGhhdCBydW4gb24gZGVza3RvcCwgc2VydmVyLCBtb2JpbGUgYW5kIGVtYmVkZGVkIHN5c3RlbXMuIgorU0VDVElPTiA9ICJsaWJzIgorSE9NRVBBR0UgPSAiaHR0cDovL3BvY29wcm9qZWN0Lm9yZy8iCitMSUNFTlNFID0gIkJTTC0xLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT00MjY3ZjQ4ZmM3MzhmNTAzODBjYmVlYjc2Zjk1Y2ViYyIKKworIyBUaGVzZSBkZXBlbmRlbmNpZXMgYXJlIHJlcXVpcmVkIGJ5IEZvdW5kYXRpb24KK0RFUEVORFMgPSAibGlicGNyZSB6bGliIgorCitpbmhlcml0IGNtYWtlIHB0ZXN0CisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgorCitTUkNSRVYgPSAiYWY1MjdhYjIxZmNhNWFiMjY1OTI4NTQwOGFlYzk5MjBlZDdjN2IxNyIKK1NSQ19VUkkgPSAiIFwKKyAgICBnaXQ6Ly9naXRodWIuY29tL3BvY29wcm9qZWN0L3BvY28uZ2l0IFwKKyAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKKyAgICIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworRVhUUkFfT0VDTUFLRSA9ICItRENNQUtFX0JVSUxEX1RZUEU9UmVsV2l0aERlYkluZm8gLURQT0NPX1VOQlVORExFRD1PTiBcCisgICAgICAgICAgICAgICAgICAtRFpMSUJfTElCUkFSWV9SRUxFQVNFOlNUUklORz16IC1EUENSRV9MSUJSQVJZOlNUUklORz1wY3JlIFwKKyAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BURVNUX0VOQUJMRUQnLCAnMScsICctREVOQUJMRV9URVNUUz1PTiAnLCAnJywgZCl9IgorCisjIEZvciB0aGUgbmF0aXZlIGJ1aWxkIHdlIHdhbnQgdG8gdXNlIHRoZSBidW5kbGVkIHZlcnNpb24KK0VYVFJBX09FQ01BS0VfYXBwZW5kX2NsYXNzLW5hdGl2ZSA9ICIgLURQT0NPX1VOQlVORExFRD1PRkYiCisKKyMgZG8gbm90IHVzZSBycGF0aAorRVhUUkFfT0VDTUFLRV9hcHBlbmQgPSAiIC1EQ01BS0VfU0tJUF9SUEFUSD1PTiIKKworIyBCeSBkZWZhdWx0IHRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgcG9jbyBjb21wb25lbnRzIGFyZSBidWlsdAorIyBGb3VuZGF0aW9uIGlzIGJ1aWx0IGFueXdheSBhbmQgZG9lc24ndCBuZWVkIHRvIGJlIGxpc3RlZCBleHBsaWNpdGx5CisjIHRoZXNlIGRvbid0IGhhdmUgZGVwZW5kZW5jaWVzIG91dHNpZGUgb2UtY29yZQorUEFDS0FHRUNPTkZJRyA/Pz0gIlhNTCBKU09OIE1vbmdvREIgUERGIFV0aWwgTmV0IE5ldFNTTCBDcnlwdG8gRGF0YSBEYXRhU1FMaXRlIFppcCIKKworUEFDS0FHRUNPTkZJR1tYTUxdID0gIi1ERU5BQkxFX1hNTD1PTiAtREVYUEFUX0xJQlJBUlk6U1RSSU5HPWV4cGF0LC1ERU5BQkxFX1hNTD1PRkYsZXhwYXQiCitQQUNLQUdFQ09ORklHW0pTT05dID0gIi1ERU5BQkxFX0pTT049T04sLURFTkFCTEVfSlNPTj1PRkYiCitQQUNLQUdFQ09ORklHW01vbmdvREJdID0gIi1ERU5BQkxFX01PTkdPREI9T04sLURFTkFCTEVfTU9OR09EQj1PRkYiCitQQUNLQUdFQ09ORklHW1BERl0gPSAiLURFTkFCTEVfUERGPU9OLC1ERU5BQkxFX1BERj1PRkYsemxpYiIKK1BBQ0tBR0VDT05GSUdbVXRpbF0gPSAiLURFTkFCTEVfVVRJTD1PTiwtREVOQUJMRV9VVElMPU9GRiIKK1BBQ0tBR0VDT05GSUdbTmV0XSA9ICItREVOQUJMRV9ORVQ9T04sLURFTkFCTEVfTkVUPU9GRiIKK1BBQ0tBR0VDT05GSUdbTmV0U1NMXSA9ICItREVOQUJMRV9ORVRTU0w9T04gLURPUEVOU1NMX1NTTF9MSUJSQVJZOlNUUklORz1zc2wgLURPUEVOU1NMX0NSWVBUT19MSUJSQVJZOlNUUklORz1jcnlwdG8sLURFTkFCTEVfTkVUU1NMPU9GRixvcGVuc3NsIgorUEFDS0FHRUNPTkZJR1tDcnlwdG9dID0gIi1ERU5BQkxFX0NSWVBUTz1PTiAtRE9QRU5TU0xfU1NMX0xJQlJBUlk6U1RSSU5HPXNzbCAtRE9QRU5TU0xfQ1JZUFRPX0xJQlJBUlk6U1RSSU5HPWNyeXB0bywtREVOQUJMRV9DUllQVE89T0ZGLG9wZW5zc2wiCitQQUNLQUdFQ09ORklHW0RhdGFdID0gIi1ERU5BQkxFX0RBVEE9T04sLURFTkFCTEVfREFUQT1PRkYiCitQQUNLQUdFQ09ORklHW0RhdGFTUUxpdGVdID0gIi1ERU5BQkxFX0RBVEFfU1FMSVRFPU9OIC1EU1FMSVRFM19MSUJSQVJZOlNUUklORz1zcWxpdGUzLC1ERU5BQkxFX0RBVEFfU1FMSVRFPU9GRixzcWxpdGUzIgorUEFDS0FHRUNPTkZJR1taaXBdID0gIi1ERU5BQkxFX1pJUD1PTiwtREVOQUJMRV9aSVA9T0ZGIgorCisjIEFkZGl0aW9uYWwgY29tcG9uZW50cyBub3QgYnVpbGQgYnkgZGVmYXVsdCwKKyMgdGhleSBtaWdodCBoYXZlIGRlcGVuZGVuY2llcyBub3QgaW5jbHVkZWQgaW4gb2UtY29yZQorIyBvciB0aGV5IGRvbid0IHdvcmsgb24gYWxsIGFyY2hpdGVjdHVyZXMKK1BBQ0tBR0VDT05GSUdbbW9kX3BvY29dID0gIi1ERU5BQkxFX0FQQUNIRUNPTk5FQ1RPUj1PTiwtREVOQUJMRV9BUEFDSEVDT05ORUNUT1I9T0ZGLGFwciBhcGFjaGUyIgorUEFDS0FHRUNPTkZJR1tDcHBQYXJzZXJdID0gIi1ERU5BQkxFX0NQUFBBUlNFUj1PTiwtREVOQUJMRV9DUFBQQVJTRVI9T0ZGIgorUEFDS0FHRUNPTkZJR1tEYXRhTXlTUUxdID0gIi1ERU5BQkxFX0RBVEFfTVlTUUw9T04gLURNWVNRTF9MSUI6U1RSSU5HPW15c3FsY2xpZW50X3IsLURFTkFCTEVfREFUQV9NWVNRTD1PRkYsbWFyaWFkYiIKK1BBQ0tBR0VDT05GSUdbRGF0YU9EQkNdID0gIi1ERU5BQkxFX0RBVEFfT0RCQz1PTiwtREVOQUJMRV9EQVRBX09EQkM9T0ZGLGxpYmlvZGJjIgorUEFDS0FHRUNPTkZJR1tQYWdlQ29tcGlsZXJdID0gIi1ERU5BQkxFX1BBR0VDT01QSUxFUj1PTiwtREVOQUJMRV9QQUdFQ09NUElMRVI9T0ZGIgorUEFDS0FHRUNPTkZJR1tQYWdlQ29tcGlsZXJGaWxlMlBhZ2VdID0gIi1ERU5BQkxFX1BBR0VDT01QSUxFUl9GSUxFMlBBR0U9T04sLURFTkFCTEVfUEFHRUNPTVBJTEVSX0ZJTEUyUEFHRT1PRkYiCitQQUNLQUdFQ09ORklHW1NldmVuWmlwXSA9ICItREVOQUJMRV9TRVZFTlpJUD1PTiwtREVOQUJMRV9TRVZFTlpJUD1PRkYiCisKKyMgTWFrZSBhIHBhY2thZ2UgZm9yIGVhY2ggbGlicmFyeQorUEFDS0FHRVMgPSAiJHtQTn0tZGJnICR7UE9DT19QQUNLQUdFU30iCitweXRob24gX19hbm9ueW1vdXMgKCkgeworICAgIHBhY2thZ2VzID0gW10KKyAgICB0ZXN0cnVubmVycyA9IFtdCisgICAgY29tcG9uZW50cyA9IGQuZ2V0VmFyKCJQQUNLQUdFQ09ORklHIikuc3BsaXQoKQorICAgIGNvbXBvbmVudHMuYXBwZW5kKCJGb3VuZGF0aW9uIikKKyAgICBmb3IgbGliIGluIGNvbXBvbmVudHM6CisgICAgICAgIHBrZyA9ICgicG9jby0lcyIgJSBsaWIubG93ZXIoKSkucmVwbGFjZSgiXyIsIiIpCisgICAgICAgIHBhY2thZ2VzLmFwcGVuZChwa2cpCisgICAgICAgIGlmIG5vdCBkLmdldFZhcigiRklMRVNfJXMiICUgcGtnKToKKyAgICAgICAgICAgIGQuc2V0VmFyKCJGSUxFU18lcyIgJSBwa2csICIke2xpYmRpcn0vbGliUG9jbyVzLnNvLioiICUgbGliKQorICAgICAgICB0ZXN0cnVubmVycy5hcHBlbmQoIiVzIiAlIGxpYikKKworICAgIGQuc2V0VmFyKCJQT0NPX1BBQ0tBR0VTIiwgIiAiLmpvaW4ocGFja2FnZXMpKQorICAgIGQuc2V0VmFyKCJQT0NPX1RFU1RSVU5ORVJTIiwgIlxuIi5qb2luKHRlc3RydW5uZXJzKSkKK30KKworIyAicG9jbyIgaXMgYSBtZXRhcGFja2FnZSB3aGljaCBwdWxscyBpbiBhbGwgUG9jbyBjb21wb25lbnRzCitQQUNLQUdFUyArPSAiJHtQTn0iCitSUkVDT01NRU5EU18ke1BOfSArPSAiJHtQT0NPX1BBQ0tBR0VTfSIKK1JSRUNPTU1FTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCitBTExPV19FTVBUWV8ke1BOfSA9ICIxIgorCisjIC1kZXYgbGFzdCB0byBwaWNrIHVwIHRoZSByZW1haW5pbmcgc3R1ZmYKK1BBQ0tBR0VTICs9ICIke1BOfS1kZXYgJHtQTn0tc3RhdGljZGV2IgorRklMRVNfJHtQTn0tZGV2ID0gIiR7aW5jbHVkZWRpcn0gJHtsaWJkaXJ9L2xpYlBvY28qLnNvICR7bGliZGlyfS9jbWFrZSIKK0ZJTEVTXyR7UE59LXN0YXRpY2RldiA9ICIke2xpYmRpcn0vbGliUG9jbyouYSIKKworIyBwdGVzdCBzdXBwb3J0CitGSUxFU18ke1BOfS1kYmcgKz0gIiR7UFRFU1RfUEFUSH0vYmluLy5kZWJ1ZyIKKworIyBjcHB1bml0IGlzIG9ubHkgYnVpbHQgaWYgdGVzdHMgYXJlIGVuYWJsZWQKK1BBQ0tBR0VTICs9ICIke1BOfS1jcHB1bml0IgorRklMRVNfJHtQTn0tY3BwdW5pdCArPSAiJHtsaWJkaXJ9L2xpYkNwcFVuaXQuc28qIgorQUxMT1dfRU1QVFlfJHtQTn0tY3BwdW5pdCA9ICIxIgorCitSREVQRU5EU18ke1BOfS1wdGVzdCArPSAiJHtQTn0tY3BwdW5pdCIKKworZG9faW5zdGFsbF9wdGVzdCAoKSB7CisgICAgICAgY3AgLXJmICR7Qn0vYmluLyAke0R9JHtQVEVTVF9QQVRIfQorICAgICAgIGNwIC1mICR7Qn0vbGliL2xpYkNwcFVuaXQuc28qICR7RH0ke2xpYmRpcn0KKyAgICAgICBjcCAtcmYgJHtCfS8qL3Rlc3RzdWl0ZS9kYXRhICR7RH0ke1BURVNUX1BBVEh9L2Jpbi8KKyAgICAgICBmaW5kICIke0R9JHtQVEVTVF9QQVRIfSIgLWV4ZWN1dGFibGUgLWV4ZWMgY2hycGF0aCAtZCB7fSBcOworICAgICAgIGVjaG8gIiR7UE9DT19URVNUUlVOTkVSU30iID4gIiR7RH0ke1BURVNUX1BBVEh9L3Rlc3RydW5uZXJzIgorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXItZGF0YV8wLjQuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyLWRhdGFfMC40LjcuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1MzBhNDguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXItZGF0YV8wLjQuNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLVNVTU1BUlkgPSAiRW5jb2RpbmcgZmlsZXMgZm9yIFBvcHBsZXIiCi1ERVNDUklQVElPTiA9ICJFbmNvZGluZyBmaWxlcyBmb3IgdXNlIHdpdGggcG9wcGxlciB0aGF0IGVuYWJsZSBwb3BwbGVyIHRvIFwKLSAgICAgICAgICAgICAgIGNvcnJlY3RseSByZW5kZXIgQ0pLIGFuZCBDeXJyaWxpYy4iCi1MSUNFTlNFID0gIkJTRCAmIEdQTHYyICYgR1BMdjMrIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NDg3MGI5ODM0M2YwYmJiMjVmYTQzYjlkMmJhNTk0NDggXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5hZG9iZTttZDU9NjNjNmE4YTlkZjIwNGMwMDQ2MWZhNWYxNjNkOGE2NjMgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5ncGwyO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSBcCi0iCi0KLWluaGVyaXQgYWxsYXJjaAotCi1JTkhJQklUX0RFRkFVTFRfREVQUyA9ICIxIgotCi1DTUFQX1JFU09VUkNFU19CQVNFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9hZG9iZS10eXBlLXRvb2xzL2NtYXAtcmVzb3VyY2VzL3Jhdy8wNTYxZWJjYTAzNTgxM2VkMDRjMzQ4NWJjYTYzNmEwYWE3YWJkYzFkL2NtYXByZXNvdXJjZXNfaWRlbnRpdHktMC9DTWFwIgotCi1TUkNfVVJJID0gImh0dHA6Ly9wb3BwbGVyLmZyZWVkZXNrdG9wLm9yZy8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICAke0NNQVBfUkVTT1VSQ0VTX0JBU0V9L0lkZW50aXR5LUg7bmFtZT1pZGggXAotICAgICAgICAgICAke0NNQVBfUkVTT1VSQ0VTX0JBU0V9L0lkZW50aXR5LVY7bmFtZT1pZHYiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI2MzZhOGYyYjlmNmRmOWU3Y2VkOGVjMDk0Njk2MWVhZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlNzUyYjBkODhhN2FiYTU0NTc0MTUyMTQzZTdiZjc2NDM2YTdlZjUxOTc3YzU1ZDZiZDlhNDhkY2NkZTNhN2RlIgotU1JDX1VSSVtpZGgubWQ1c3VtXSA9ICIwMDljOTNjZjAxNDFhYjdiZDZhY2I3ZWVhMTQzMDZjYyIKLVNSQ19VUklbaWRoLnNoYTI1NnN1bV0gPSAiYWU3MDJjMjAzYTgyZWExMjRlOWI5NjU5MGY4MjFkYjZmYmY4NzU0ZTJjNDU0N2E5ZGJhMGU4MmY5NDczOWU5NSIKLVNSQ19VUklbaWR2Lm1kNXN1bV0gPSAiMmYzMmE0NWQ0M2QwMDFjMjZlZWFjNmI4Nzg4NTVmYmYiCi1TUkNfVVJJW2lkdi5zaGEyNTZzdW1dID0gIjg5YTg1ZGFmNzAzMWU5M2M4ODNlNzZiOTE2OGEyMjZkZmQ1ODViZjU1MDZlOWUxOTU2NzcyMTYzZjE1Y2IwODIiCi0KLWRvX2NvbXBpbGUoKSB7Ci19Ci0KLWRvX2luc3RhbGwoKSB7Ci0gICAgb2VfcnVubWFrZSBpbnN0YWxsIERFU1RESVI9JHtEfSBwcmVmaXg9JHtwcmVmaXh9IGRhdGFkaXI9JHtkYXRhZGlyfQotICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vcG9wcGxlci9jTWFwCi0gICAgaW5zdGFsbCAtbTY0NCAke1dPUktESVJ9L0lkZW50aXR5LSogJHtEfSR7ZGF0YWRpcn0vcG9wcGxlci9jTWFwLwotfQotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyLWRhdGFfMC40LjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlci1kYXRhXzAuNC44LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0M2I2ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlci1kYXRhXzAuNC44LmJiCkBAIC0wLDAgKzEsMzYgQEAKK1NVTU1BUlkgPSAiRW5jb2RpbmcgZmlsZXMgZm9yIFBvcHBsZXIiCitERVNDUklQVElPTiA9ICJFbmNvZGluZyBmaWxlcyBmb3IgdXNlIHdpdGggcG9wcGxlciB0aGF0IGVuYWJsZSBwb3BwbGVyIHRvIFwKKyAgICAgICAgICAgICAgIGNvcnJlY3RseSByZW5kZXIgQ0pLIGFuZCBDeXJyaWxpYy4iCitMSUNFTlNFID0gIkJTRCAmIEdQTHYyICYgR1BMdjMrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NDg3MGI5ODM0M2YwYmJiMjVmYTQzYjlkMmJhNTk0NDggXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5hZG9iZTttZDU9NjNjNmE4YTlkZjIwNGMwMDQ2MWZhNWYxNjNkOGE2NjMgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5ncGwyO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSBcCisiCisKK2luaGVyaXQgYWxsYXJjaAorCitJTkhJQklUX0RFRkFVTFRfREVQUyA9ICIxIgorCitDTUFQX1JFU09VUkNFU19CQVNFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9hZG9iZS10eXBlLXRvb2xzL2NtYXAtcmVzb3VyY2VzL3Jhdy8wNTYxZWJjYTAzNTgxM2VkMDRjMzQ4NWJjYTYzNmEwYWE3YWJkYzFkL2NtYXByZXNvdXJjZXNfaWRlbnRpdHktMC9DTWFwIgorCitTUkNfVVJJID0gImh0dHA6Ly9wb3BwbGVyLmZyZWVkZXNrdG9wLm9yZy8ke0JQfS50YXIuZ3ogXAorICAgICAgICAgICAke0NNQVBfUkVTT1VSQ0VTX0JBU0V9L0lkZW50aXR5LUg7bmFtZT1pZGggXAorICAgICAgICAgICAke0NNQVBfUkVTT1VSQ0VTX0JBU0V9L0lkZW50aXR5LVY7bmFtZT1pZHYiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwMGY4OTg5YzgwNGRlODRhZjBiYTJlYTYyOTk0OTk4MCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIxMDk2YTE4MTYxZjI2M2NjY2RjNmQ4YTJlYjU1NDhjNDFmZjhmY2Y5YTM2MDkyNDNmMWI2Mjk2YWJkZjcyODcyIgorU1JDX1VSSVtpZGgubWQ1c3VtXSA9ICIwMDljOTNjZjAxNDFhYjdiZDZhY2I3ZWVhMTQzMDZjYyIKK1NSQ19VUklbaWRoLnNoYTI1NnN1bV0gPSAiYWU3MDJjMjAzYTgyZWExMjRlOWI5NjU5MGY4MjFkYjZmYmY4NzU0ZTJjNDU0N2E5ZGJhMGU4MmY5NDczOWU5NSIKK1NSQ19VUklbaWR2Lm1kNXN1bV0gPSAiMmYzMmE0NWQ0M2QwMDFjMjZlZWFjNmI4Nzg4NTVmYmYiCitTUkNfVVJJW2lkdi5zaGEyNTZzdW1dID0gIjg5YTg1ZGFmNzAzMWU5M2M4ODNlNzZiOTE2OGEyMjZkZmQ1ODViZjU1MDZlOWUxOTU2NzcyMTYzZjE1Y2IwODIiCisKK2RvX2NvbXBpbGUoKSB7Cit9CisKK2RvX2luc3RhbGwoKSB7CisgICAgb2VfcnVubWFrZSBpbnN0YWxsIERFU1RESVI9JHtEfSBwcmVmaXg9JHtwcmVmaXh9IGRhdGFkaXI9JHtkYXRhZGlyfQorICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vcG9wcGxlci9jTWFwCisgICAgaW5zdGFsbCAtbTY0NCAke1dPUktESVJ9L0lkZW50aXR5LSogJHtEfSR7ZGF0YWRpcn0vcG9wcGxlci9jTWFwLworfQorCitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyLzAwMDEtRG8tbm90LW92ZXJ3cml0ZS1hbGwtb3VyLWJ1aWxkLWZsYWdzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXIvMDAwMS1Eby1ub3Qtb3ZlcndyaXRlLWFsbC1vdXItYnVpbGQtZmxhZ3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThmNTA4NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyLzAwMDEtRG8tbm90LW92ZXJ3cml0ZS1hbGwtb3VyLWJ1aWxkLWZsYWdzLnBhdGNoCkBAIC0wLDAgKzEsMzggQEAKK0Zyb20gYjZmYzZjMzZkMzU5YTUwNTAzMTM4Y2Q4N2Q3MTQ3ZmFmNmRmZjg5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDE3IE1hciAyMDE4IDIwOjUyOjEwICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIERvIG5vdCBvdmVyd3JpdGUgYWxsIG91ciBidWlsZCBmbGFncworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgY21ha2UvbW9kdWxlcy9Qb3BwbGVyTWFjcm9zLmNtYWtlIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFrZSBiL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFrZQoraW5kZXggY2NiMjc5MC4uMGYzOTJjYiAxMDA2NDQKKy0tLSBhL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFrZQorKysrIGIvY21ha2UvbW9kdWxlcy9Qb3BwbGVyTWFjcm9zLmNtYWtlCitAQCAtMTI1LDE0ICsxMjUsMTQgQEAgaWYoQ01BS0VfQ09NUElMRVJfSVNfR05VQ1hYKQorICAgc2V0KERFRkFVTFRfQ09NUElMRV9XQVJOSU5HU19FWFRSQSAiJHtfd2Fybn0gJHtfd2Fybnh9IikKKyAKKyAgIHNldChfc2F2ZV9jeHhmbGFncyAiJHtDTUFLRV9DWFhfRkxBR1N9IikKKy0gIHNldChDTUFLRV9DWFhfRkxBR1MgICAgICAgICAgICAgICAgIi1mbm8tZXhjZXB0aW9ucyAtZm5vLWNoZWNrLW5ldyAtZm5vLWNvbW1vbiAtRF9ERUZBVUxUX1NPVVJDRSIpCisrICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICAgICAgICAgICAgICAgICItZm5vLWV4Y2VwdGlvbnMgLWZuby1jaGVjay1uZXcgLWZuby1jb21tb24gLURfREVGQVVMVF9TT1VSQ0UgJHtfc2F2ZV9jeHhmbGFnc30iKQorICAgc2V0KENNQUtFX0NYWF9GTEFHU19SRUxXSVRIREVCSU5GTyAiLU8yIC1nICR7X3NhdmVfY3h4ZmxhZ3N9IikKKyAgIHNldChDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAgICAgICAgIi1PMiAtRE5ERUJVRyAke19zYXZlX2N4eGZsYWdzfSIpCisgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHICAgICAgICAgICItZyAtTzIgLWZuby1yZW9yZGVyLWJsb2NrcyAtZm5vLXNjaGVkdWxlLWluc25zIC1mbm8taW5saW5lICR7X3NhdmVfY3h4ZmxhZ3N9IikKKyAgIHNldChDTUFLRV9DWFhfRkxBR1NfREVCVUdGVUxMICAgICAgIi1nMyAtZm5vLWlubGluZSAke19zYXZlX2N4eGZsYWdzfSIpCisgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX1BST0ZJTEUgICAgICAgICItZzMgLWZuby1pbmxpbmUgLWZ0ZXN0LWNvdmVyYWdlIC1mcHJvZmlsZS1hcmNzICR7X3NhdmVfY3h4ZmxhZ3N9IikKKyAgIHNldChfc2F2ZV9jZmxhZ3MgIiR7Q01BS0VfQ19GTEFHU30iKQorLSAgc2V0KENNQUtFX0NfRkxBR1MgICAgICAgICAgICAgICAgICAiLXN0ZD1jOTkgLURfREVGQVVMVF9TT1VSQ0UiKQorKyAgc2V0KENNQUtFX0NfRkxBR1MgICAgICAgICAgICAgICAgICAiLXN0ZD1jOTkgLURfREVGQVVMVF9TT1VSQ0UgJHtfc2F2ZV9jZmxhZ3N9IikKKyAgIHNldChDTUFLRV9DX0ZMQUdTX1JFTFdJVEhERUJJTkZPICAgIi1PMiAtZyAke19zYXZlX2NmbGFnc30iKQorICAgc2V0KENNQUtFX0NfRkxBR1NfUkVMRUFTRSAgICAgICAgICAiLU8yIC1ETkRFQlVHICR7X3NhdmVfY2ZsYWdzfSIpCisgICBzZXQoQ01BS0VfQ19GTEFHU19ERUJVRyAgICAgICAgICAgICItZyAtTzIgLWZuby1yZW9yZGVyLWJsb2NrcyAtZm5vLXNjaGVkdWxlLWluc25zIC1mbm8taW5saW5lICR7X3NhdmVfY2ZsYWdzfSIpCistLSAKKzIuMTQuMwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXIvMDAwMS1hZGQtbWFuYWRhdG9yeS1vcHRpb25zLXRvLWZpbmQtcXQ0LXF0NS1tb2MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlci8wMDAxLWFkZC1tYW5hZGF0b3J5LW9wdGlvbnMtdG8tZmluZC1xdDQtcXQ1LW1vYy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGU4MGQyNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlci8wMDAxLWFkZC1tYW5hZGF0b3J5LW9wdGlvbnMtdG8tZmluZC1xdDQtcXQ1LW1vYy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLUZyb20gOTFiNjI3NWYwZTkxYzI1YmViMDQwYjRlZjk0ODQwNTNhZTMwNWQ4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMjYgTWF5IDIwMTUgMTI6NDU6NDcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gYWRkIG1hbmFkYXRvcnkgb3B0aW9ucyB0byBmaW5kIHF0NC9xdDUgbW9jCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbT0Ugc3BlY2lmaWNdCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLS0tLQotIGNvbmZpZ3VyZS5hYyB8IDU1ICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggYzRjZmMyYy4uOGU5NjFjNyAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNzEyLDI1ICs3MTIsMTAgQEAgQUNfU1VCU1QoUE9QUExFUl9RVDRfTElCUykKLSBBQ19TVUJTVChQT1BQTEVSX1FUNF9URVNUX0xJQlMpCi0gCi0gaWYgdGVzdCB4JGVuYWJsZV9wb3BwbGVyX3F0NCA9IHh5ZXM7IHRoZW4KLS0gIEFDX0NIRUNLX1RPT0woTU9DUVQ0LCBtb2MpCi0tICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBRdDQgbW9jXSkKLS0gIG1vY3ZlcnNpb249YCRNT0NRVDQgLXYgMj4mMWAKLS0gIG1vY3ZlcnNpb25ncmVwPWBlY2hvICRtb2N2ZXJzaW9uIHwgZ3JlcCAiUXQgNCJgCi0tICBpZiB0ZXN0IHgiJG1vY3ZlcnNpb25ncmVwIiAhPSB4IiRtb2N2ZXJzaW9uIjsgdGhlbgotLSAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0tICAgICMgbW9jIHdhcyBub3QgdGhlIHF0NCBvbmUsIHRyeSB3aXRoIG1vYy1xdDQKLS0gICAgQUNfQ0hFQ0tfVE9PTChNT0NRVDQyLCBtb2MtcXQ0KQotLSAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBRdDQgbW9jLXF0NF0pCi0tICAgIG1vY3ZlcnNpb249YCRNT0NRVDQyIC12IDI+JjFgCi0tICAgIG1vY3ZlcnNpb25ncmVwPWBlY2hvICRtb2N2ZXJzaW9uIHwgZ3JlcCAiUXQgNCJgCi0tICAgIGlmIHRlc3QgeCIkbW9jdmVyc2lvbmdyZXAiICE9IHgiJG1vY3ZlcnNpb24iOyB0aGVuCi0tICAgICAgIyBubyB2YWxpZCBtb2MgZm91bmQKLS0gICAgICBlbmFibGVfcG9wcGxlcl9xdDQ9bm87Ci0tICAgICAgTU9DUVQ0PSJub3QgZm91bmQiCi0tICAgIGVsc2UKLS0gICAgICBNT0NRVDQ9JE1PQ1FUNDIKLS0gICAgZmkKLS0gIGZpCi0rICBBQ19BUkdfV0lUSChbbW9jLXF0NF0sCi0rICAgICAgICAgICAgICBBU19IRUxQX1NUUklORyhbLS13aXRoLW1vYy1xdDRdLCBbU2V0IGxvY2F0aW9uIG9mIHF0NCBtb2NdKSwKLSsgICAgICAgICAgICAgIFtNT0NRVDQ9JHdpdGh2YWxdCi0rICApCi0gICBBQ19TVUJTVChNT0NRVDQpCi0gICBBQ19NU0dfUkVTVUxUKFskTU9DUVQ0XSkKLSBmaQotQEAgLTc2OSwzNCArNzU0LDEwIEBAIEFDX1NVQlNUKFBPUFBMRVJfUVQ1X0xJQlMpCi0gQUNfU1VCU1QoUE9QUExFUl9RVDVfVEVTVF9MSUJTKQotIAotIGlmIHRlc3QgeCRlbmFibGVfcG9wcGxlcl9xdDUgPSB4eWVzOyB0aGVuCi0tICBBQ19DSEVDS19UT09MKE1PQ1FUNSwgbW9jKQotLSAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgUXQ1IG1vY10pCi0tICBtb2N2ZXJzaW9uPWAkTU9DUVQ1IC12IDI+JjFgCi0tICBtb2N2ZXJzaW9uZ3JlcD1gZWNobyAkbW9jdmVyc2lvbiB8IGdyZXAgLUUgIlF0IDV8bW9jIDUiYAotLSAgaWYgdGVzdCB4IiRtb2N2ZXJzaW9uZ3JlcCIgIT0geCIkbW9jdmVyc2lvbiI7IHRoZW4KLS0gICAgQUNfTVNHX1JFU1VMVChbbm9dKQotLSAgICAjIG1vYyB3YXMgbm90IHRoZSBxdDUgb25lLCB0cnkgd2l0aCBtb2MtcXQ1Ci0tICAgIEFDX0NIRUNLX1RPT0woTU9DUVQ1MiwgbW9jLXF0NSkKLS0gICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgUXQ1IG1vYy1xdDVdKQotLSAgICBtb2N2ZXJzaW9uPWAkTU9DUVQ1MiAtdiAyPiYxYAotLSAgICBtb2N2ZXJzaW9uZ3JlcD1gZWNobyAkbW9jdmVyc2lvbiB8IGdyZXAgLUUgIlF0IDV8bW9jLXF0NSA1fG1vYyA1ImAKLS0gICAgaWYgdGVzdCB4IiRtb2N2ZXJzaW9uZ3JlcCIgIT0geCIkbW9jdmVyc2lvbiI7IHRoZW4KLS0gICAgICBBQ19DSEVDS19UT09MKFFUQ0hPT1NFUiwgcXRjaG9vc2VyKQotLSAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIHF0Y2hvb3Nlcl0pCi0tICAgICAgcXQ1dG9vbGRpcj1gUVRfU0VMRUNUPXF0NSBxdGNob29zZXIgLXByaW50LWVudiB8IGdyZXAgUVRUT09MRElSIHwgY3V0IC1kICc9JyAtZiAyIHwgY3V0IC1kIFwiIC1mIDJgCi0tICAgICAgbW9jdmVyc2lvbj1gJHF0NXRvb2xkaXIvbW9jIC12IDI+JjFgCi0tICAgICAgbW9jdmVyc2lvbmdyZXA9YGVjaG8gJG1vY3ZlcnNpb24gfCBncmVwIC1FICJRdCA1fG1vYyA1ImAKLS0gICAgICBpZiB0ZXN0IHgiJG1vY3ZlcnNpb25ncmVwIiAhPSB4IiRtb2N2ZXJzaW9uIjsgdGhlbgotLSAgICAgICAgIyBubyB2YWxpZCBtb2MgZm91bmQKLS0gICAgICAgIGVuYWJsZV9wb3BwbGVyX3F0NT1ubzsKLS0gICAgICAgIE1PQ1FUNT0ibm90IGZvdW5kIgotLSAgICAgIGVsc2UKLS0gICAgICAgIE1PQ1FUNT0kcXQ1dG9vbGRpci9tb2MKLS0gICAgICBmaQotLSAgICBlbHNlCi0tICAgICAgTU9DUVQ1PSRNT0NRVDUyCi0tICAgIGZpCi0tICBmaQotKyAgQUNfQVJHX1dJVEgoW21vYy1xdDVdLAotKyAgICAgICAgICAgICAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1tb2MtcXQ1XSwgW1NldCBsb2NhdGlvbiBvZiBxdDUgbW9jXSksCi0rICAgICAgICAgICAgICBbTU9DUVQ1PSR3aXRodmFsXQotKyAgKQotICAgQUNfU1VCU1QoTU9DUVQ1KQotICAgQUNfTVNHX1JFU1VMVChbJE1PQ1FUNV0pCi0gZmkKLS0tIAotMi41LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXIvMDAwMi1DYWlyb091dHB1dERldi5jYy1maXgtYnVpbGQtZXJyb3Itd2hlbi11c2luZy1maXhlZHBvLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXIvMDAwMi1DYWlyb091dHB1dERldi5jYy1maXgtYnVpbGQtZXJyb3Itd2hlbi11c2luZy1maXhlZHBvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjMjMxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlci8wMDAyLUNhaXJvT3V0cHV0RGV2LmNjLWZpeC1idWlsZC1lcnJvci13aGVuLXVzaW5nLWZpeGVkcG8ucGF0Y2gKQEAgLTAsMCArMSwxMDAgQEAKK0Zyb20gNjI4NzY2M2U3ZGIwNGRmN2U2ZGVjNThhMWZjNWJiNWQ1MTBlOGJkZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBNb24sIDkgQXByIDIwMTggMTk6MTE6MjAgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gQ2Fpcm9PdXRwdXREZXYuY2M6IGZpeCBidWlsZCBlcnJvciB3aGVuIHVzaW5nIGZpeGVkcG9pbnQKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworRml4ZXM6Cit8IDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcG9wcGxlci0wLjYzLjAvcG9wcGxlci9DYWlyb091dHB1dERldi5jYzogSW4gZnVuY3Rpb24gJ2ludCBzcGxhc2hSb3VuZChTcGxhc2hDb29yZCknOgorfCA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3BvcHBsZXItMC42My4wL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2M6MTYwNDoyODogZXJyb3I6IGNhbGwgb2Ygb3ZlcmxvYWRlZCAnZmxvb3IoRml4ZWRQb2ludCknIGlzIGFtYmlndW91cworfCAgICByZXR1cm4gKGludClmbG9vcih4ICsgMC41KTsKK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK3wgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaDo0Mjg6MCwKK3wgICAgICAgICAgICAgICAgICBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrLzcuMy4wL2FybS1vZS1saW51eC1nbnVlYWJpL2JpdHMvb3NfZGVmaW5lcy5oOjM5LAorfCAgICAgICAgICAgICAgICAgIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9jKysvNy4zLjAvYXJtLW9lLWxpbnV4LWdudWVhYmkvYml0cy9jKytjb25maWcuaDo1MzMsCit8ICAgICAgICAgICAgICAgICAgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2MrKy83LjMuMC9jc3RkaW50OjM4LAorfCAgICAgICAgICAgICAgICAgIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9wb3BwbGVyLTAuNjMuMC9wb3BwbGVyL0NhaXJvT3V0cHV0RGV2LmNjOjQ0OgorfCA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2JpdHMvbWF0aGNhbGxzLmg6MTY1OjE6IG5vdGU6IGNhbmRpZGF0ZTogZG91YmxlIGZsb29yKGRvdWJsZSkKK3wgIF9fTUFUSENBTExYIChmbG9vciwsIChfTWRvdWJsZV8gX194KSwgKF9fY29uc3RfXykpOworfCAgXgorfCBJbiBmaWxlIGluY2x1ZGVkIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9jKysvNy4zLjAvbWF0aC5oOjM2OjAsCit8ICAgICAgICAgICAgICAgICAgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3BvcHBsZXItMC42My4wL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2M6NDY6Cit8IDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrLzcuMy4wL2NtYXRoOjI2MDozOiBub3RlOiBjYW5kaWRhdGU6IGNvbnN0ZXhwciBmbG9hdCBzdGQ6OmZsb29yKGZsb2F0KQorfCAgICBmbG9vcihmbG9hdCBfX3gpCit8ICAgIF5+fn5+Cit8IDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrLzcuMy4wL2NtYXRoOjI2NDozOiBub3RlOiBjYW5kaWRhdGU6IGNvbnN0ZXhwciBsb25nIGRvdWJsZSBzdGQ6OmZsb29yKGxvbmcgZG91YmxlKQorfCAgICBmbG9vcihsb25nIGRvdWJsZSBfX3gpCit8ICAgIF5+fn5+Cit8IDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcG9wcGxlci0wLjYzLjAvcG9wcGxlci9DYWlyb091dHB1dERldi5jYzogSW4gZnVuY3Rpb24gJ2ludCBzcGxhc2hDZWlsKFNwbGFzaENvb3JkKSc6Cit8IDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcG9wcGxlci0wLjYzLjAvcG9wcGxlci9DYWlyb091dHB1dERldi5jYzoxNjA4OjIxOiBlcnJvcjogY2FsbCBvZiBvdmVybG9hZGVkICdjZWlsKFNwbGFzaENvb3JkJiknIGlzIGFtYmlndW91cworfCAgICByZXR1cm4gKGludCljZWlsKHgpOworfCAgICAgICAgICAgICAgICAgICAgICBeCit8IEluIGZpbGUgaW5jbHVkZWQgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmg6NDI4OjAsCit8ICAgICAgICAgICAgICAgICAgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2MrKy83LjMuMC9hcm0tb2UtbGludXgtZ251ZWFiaS9iaXRzL29zX2RlZmluZXMuaDozOSwKK3wgICAgICAgICAgICAgICAgICBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrLzcuMy4wL2FybS1vZS1saW51eC1nbnVlYWJpL2JpdHMvYysrY29uZmlnLmg6NTMzLAorfCAgICAgICAgICAgICAgICAgIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9jKysvNy4zLjAvY3N0ZGludDozOCwKK3wgICAgICAgICAgICAgICAgICBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcG9wcGxlci0wLjYzLjAvcG9wcGxlci9DYWlyb091dHB1dERldi5jYzo0NDoKK3wgPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9iaXRzL21hdGhjYWxscy5oOjE1OToxOiBub3RlOiBjYW5kaWRhdGU6IGRvdWJsZSBjZWlsKGRvdWJsZSkKK3wgIF9fTUFUSENBTExYIChjZWlsLCwgKF9NZG91YmxlXyBfX3gpLCAoX19jb25zdF9fKSk7Cit8ICBeCit8IEluIGZpbGUgaW5jbHVkZWQgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2MrKy83LjMuMC9tYXRoLmg6MzY6MCwKK3wgICAgICAgICAgICAgICAgICBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcG9wcGxlci0wLjYzLjAvcG9wcGxlci9DYWlyb091dHB1dERldi5jYzo0NjoKK3wgPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9jKysvNy4zLjAvY21hdGg6MTY1OjM6IG5vdGU6IGNhbmRpZGF0ZTogY29uc3RleHByIGZsb2F0IHN0ZDo6Y2VpbChmbG9hdCkKK3wgICAgY2VpbChmbG9hdCBfX3gpCit8ICAgIF5+fn4KK3wgPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9jKysvNy4zLjAvY21hdGg6MTY5OjM6IG5vdGU6IGNhbmRpZGF0ZTogY29uc3RleHByIGxvbmcgZG91YmxlIHN0ZDo6Y2VpbChsb25nIGRvdWJsZSkKK3wgICAgY2VpbChsb25nIGRvdWJsZSBfX3gpCit8ICAgIF5+fn4KK3wgPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9wb3BwbGVyLTAuNjMuMC9wb3BwbGVyL0NhaXJvT3V0cHV0RGV2LmNjOiBJbiBmdW5jdGlvbiAnaW50IHNwbGFzaEZsb29yKFNwbGFzaENvb3JkKSc6Cit8IDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcG9wcGxlci0wLjYzLjAvcG9wcGxlci9DYWlyb091dHB1dERldi5jYzoxNjEyOjIyOiBlcnJvcjogY2FsbCBvZiBvdmVybG9hZGVkICdmbG9vcihTcGxhc2hDb29yZCYpJyBpcyBhbWJpZ3VvdXMKK3wgICAgcmV0dXJuIChpbnQpZmxvb3IoeCk7Cit8ICAgICAgICAgICAgICAgICAgICAgICBeCit8IEluIGZpbGUgaW5jbHVkZWQgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmg6NDI4OjAsCit8ICAgICAgICAgICAgICAgICAgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2MrKy83LjMuMC9hcm0tb2UtbGludXgtZ251ZWFiaS9iaXRzL29zX2RlZmluZXMuaDozOSwKK3wgICAgICAgICAgICAgICAgICBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrLzcuMy4wL2FybS1vZS1saW51eC1nbnVlYWJpL2JpdHMvYysrY29uZmlnLmg6NTMzLAorfCAgICAgICAgICAgICAgICAgIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9jKysvNy4zLjAvY3N0ZGludDozOCwKK3wgICAgICAgICAgICAgICAgICBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcG9wcGxlci0wLjYzLjAvcG9wcGxlci9DYWlyb091dHB1dERldi5jYzo0NDoKK3wgPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9iaXRzL21hdGhjYWxscy5oOjE2NToxOiBub3RlOiBjYW5kaWRhdGU6IGRvdWJsZSBmbG9vcihkb3VibGUpCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CistLS0KKyBwb3BwbGVyL0NhaXJvT3V0cHV0RGV2LmNjIHwgMTIgKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2MgYi9wb3BwbGVyL0NhaXJvT3V0cHV0RGV2LmNjCitpbmRleCAxODEyNGI4Zi4uNGM4NWFkNjUgMTAwNjQ0CistLS0gYS9wb3BwbGVyL0NhaXJvT3V0cHV0RGV2LmNjCisrKysgYi9wb3BwbGVyL0NhaXJvT3V0cHV0RGV2LmNjCitAQCAtMTYwMiwxNSArMTYwMiwyNyBAQCB2b2lkIENhaXJvT3V0cHV0RGV2OjplbmRBY3R1YWxUZXh0KEdmeFN0YXRlICpzdGF0ZSkKKyB9CisgCisgc3RhdGljIGlubGluZSBpbnQgc3BsYXNoUm91bmQoU3BsYXNoQ29vcmQgeCkgeworKyNpZiBkZWZpbmVkKFVTRV9GSVhFRFBPSU5UKQorKyAgcmV0dXJuIEZpeGVkUG9pbnQ6OmZsb29yKHggKyAwLjUpOworKyNlbHNlCisgICByZXR1cm4gKGludClmbG9vcih4ICsgMC41KTsKKysjZW5kaWYKKyB9CisgCisgc3RhdGljIGlubGluZSBpbnQgc3BsYXNoQ2VpbChTcGxhc2hDb29yZCB4KSB7CisrI2lmIGRlZmluZWQoVVNFX0ZJWEVEUE9JTlQpCisrICByZXR1cm4gRml4ZWRQb2ludDo6Y2VpbCh4KTsKKysjZWxzZQorICAgcmV0dXJuIChpbnQpY2VpbCh4KTsKKysjZW5kaWYKKyB9CisgCisgc3RhdGljIGlubGluZSBpbnQgc3BsYXNoRmxvb3IoU3BsYXNoQ29vcmQgeCkgeworKyNpZiBkZWZpbmVkKFVTRV9GSVhFRFBPSU5UKQorKyAgcmV0dXJuIEZpeGVkUG9pbnQ6OmZsb29yKHgpOworKyNlbHNlCisgICByZXR1cm4gKGludClmbG9vcih4KTsKKysjZW5kaWYKKyB9CisgCisgc3RhdGljCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlci8wMDAyLWZpeC1nY2MtNi1tYXRoLWFtYmlndW91cy1lcnJvcnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlci8wMDAyLWZpeC1nY2MtNi1tYXRoLWFtYmlndW91cy1lcnJvcnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwNjAwOWYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXIvMDAwMi1maXgtZ2NjLTYtbWF0aC1hbWJpZ3VvdXMtZXJyb3JzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIHBvcHBsZXItMC40NS4wL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2Mub3JpZwkyMDE2LTA2LTE3IDE0OjIzOjM1LjM5OTA4MzkyOSAtMDQwMAotKysrIHBvcHBsZXItMC40NS4wL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2MJMjAxNi0wNi0xNyAxNDozNjo1My4zNTEwOTc4MjUgLTA0MDAKLUBAIC00Miw3ICs0Miw3IEBACi0gI2VuZGlmCi0gCi0gI2luY2x1ZGUgPHN0cmluZy5oPgotLSNpbmNsdWRlIDxtYXRoLmg+Ci0rI2luY2x1ZGUgPGNtYXRoPgotICNpbmNsdWRlIDxhc3NlcnQuaD4KLSAjaW5jbHVkZSA8Y2Fpcm8uaD4KLSAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyXzAuNTcuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyXzAuNTcuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjNiNzdhYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlcl8wLjU3LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi1TVU1NQVJZID0gIlBvcHBsZXIgaXMgYSBQREYgcmVuZGVyaW5nIGxpYnJhcnkgYmFzZWQgb24gdGhlIHhwZGYtMy4wIGNvZGUgYmFzZSIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKLQotU1JDX1VSSSA9ICIgXAotICAgIGh0dHA6Ly9wb3BwbGVyLmZyZWVkZXNrdG9wLm9yZy8ke0JQfS50YXIueHogXAotICAgIGZpbGU6Ly8wMDAxLWFkZC1tYW5hZGF0b3J5LW9wdGlvbnMtdG8tZmluZC1xdDQtcXQ1LW1vYy5wYXRjaCBcCi0gICAgZmlsZTovLzAwMDItZml4LWdjYy02LW1hdGgtYW1iaWd1b3VzLWVycm9ycy5wYXRjaCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiYmM1YTE5MTc0MTYwNDU1MmM5MGQ0ODQxMDMyMjkzNzQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMGVhMzdkZTcxYjdkYjc4MjEyZWJjNzlkZjU5Zjk5YjY2NDA5YTI5YzJlYWM0ZDg4MmRhZTlmMjM5N2ZlNDRkOCIKLQotREVQRU5EUyA9ICJmb250Y29uZmlnIHpsaWIgY2Fpcm8gbGNtcyIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGd0ay1kb2MgZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0KLVBBQ0tBR0VDT05GSUcgPz89ICJqcGVnIG9wZW5qcGVnIHBuZyB0aWZmIG5zcyAke0BiYi51dGlscy5jb250YWlucygnQkJGSUxFX0NPTExFQ1RJT05TJywgJ3F0NS1sYXllcicsICdxdDUnLCAnJywgZCl9IgotUEFDS0FHRUNPTkZJR1tqcGVnXSA9ICItLWVuYWJsZS1kY3RkZWNvZGVyPWxpYmpwZWcsLS1lbmFibGUtZGN0ZGVjb2Rlcj1ub25lLGpwZWciCi1QQUNLQUdFQ09ORklHW3BuZ10gPSAiLS1lbmFibGUtbGlicG5nLC0tZGlzYWJsZS1saWJwbmcsbGlicG5nIgotUEFDS0FHRUNPTkZJR1t0aWZmXSA9ICItLWVuYWJsZS1saWJ0aWZmLC0tZGlzYWJsZS1saWJ0aWZmLHRpZmYiCi1QQUNLQUdFQ09ORklHW2N1cmxdID0gIi0tZW5hYmxlLWxpYmN1cmwsLS1kaXNhYmxlLWxpYmN1cmwsY3VybCIKLVBBQ0tBR0VDT05GSUdbb3BlbmpwZWddID0gIi0tZW5hYmxlLWxpYm9wZW5qcGVnPW9wZW5qcGVnMiwtLWRpc2FibGUtbGlib3BlbmpwZWcsb3BlbmpwZWciCi1QQUNLQUdFQ09ORklHW3F0NV0gPSAiLS1lbmFibGUtcG9wcGxlci1xdDUgLS13aXRoLW1vYy1xdDU9JHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L3F0NS9tb2MsLS1kaXNhYmxlLXBvcHBsZXItcXQ1LHF0YmFzZSBxdHRvb2xzLW5hdGl2ZSIKLVBBQ0tBR0VDT05GSUdbcXQ0ZV0gPSAiLS1lbmFibGUtcG9wcGxlci1xdDQgLS13aXRoLW1vYy1xdDQ9JHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L21vYzQsLS1kaXNhYmxlLXBvcHBsZXItcXQ0LHF0NC1lbWJlZGRlZCIKLVBBQ0tBR0VDT05GSUdbbnNzXSA9ICItLWVuYWJsZS1saWJuc3MsLS1kaXNhYmxlLWxpYm5zcyxuc3MiCi0KLVNFQ1VSSVRZX0NGTEFHUyA9ICIke1NFQ1VSSVRZX05PX1BJRV9DRkxBR1N9IgotCi1FWFRSQV9PRUNPTkYgPSAiXAotICAgIC0tZW5hYmxlLXhwZGYtaGVhZGVycyBcCi0gICAgLS1kaXNhYmxlLWd0ay10ZXN0IFwKLSAgICAtLWVuYWJsZS16bGliIFwKLSIKLQotZG9fY29tcGlsZV9wcmVwZW5kKCkgewotICAgIGV4cG9ydCBHSVJfRVhUUkFfTElCU19QQVRIPSIke0J9L3BvcHBsZXIvLmxpYnMiCi19Ci0KLSMgQWRqdXN0IGxpYnJhcnkgbmFtZXMgd2hlbiBidWlsZGluZyBmb3IgUVQ0ZQotUVQ0RV9QQVRDSEVTID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3F0NGUnLCAnZmlsZTovL2ZpeC1xdDRlLWxpYnJhcnktZGVwZW5kZW5jaWVzLnBhdGNoJywgJycsIGQpfSIKLVNSQ19VUklfYXBwZW5kID0gIiR7UVQ0RV9QQVRDSEVTfSIKLQotIyBjaGVjayBmb3IgVEFSR0VUX0ZQVT1zb2Z0IGFuZCBpbmZvcm0gY29uZmlndXJlIG9mIHRoZSByZXN1bHQgc28gaXQgY2FuIGRpc2FibGUgc29tZSBmbG9hdGluZyBwb2ludHMKLWRlZiBnZXRfcG9wcGxlcl9mcHVfc2V0dGluZyhiYiwgZCk6Ci0gICAgaWYgZC5nZXRWYXIoJ1RBUkdFVF9GUFUnKSBpbiBbICdzb2Z0JyBdOgotICAgICAgICByZXR1cm4gIi0tZW5hYmxlLWZpeGVkcG9pbnQiCi0gICAgcmV0dXJuICIiCi0KLUVYVFJBX09FQ09ORiArPSAiJHtAZ2V0X3BvcHBsZXJfZnB1X3NldHRpbmcoYmIsIGQpfSIKLQotUEFDS0FHRVMgPSsgImxpYnBvcHBsZXIgbGlicG9wcGxlci1nbGliIgotRklMRVNfbGlicG9wcGxlciA9ICIke2xpYmRpcn0vbGlicG9wcGxlci5zby4qIgotRklMRVNfbGlicG9wcGxlci1nbGliID0gIiR7bGliZGlyfS9saWJwb3BwbGVyLWdsaWIuc28uKiIKLQotUkRFUEVORFNfbGlicG9wcGxlciA9ICJwb3BwbGVyLWRhdGEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlcl8wLjYzLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlcl8wLjYzLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFjYjM1NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyXzAuNjMuMC5iYgpAQCAtMCwwICsxLDU2IEBACitTVU1NQVJZID0gIlBvcHBsZXIgaXMgYSBQREYgcmVuZGVyaW5nIGxpYnJhcnkgYmFzZWQgb24gdGhlIHhwZGYtMy4wIGNvZGUgYmFzZSIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKKworU1JDX1VSSSA9ICIgXAorICAgIGh0dHA6Ly9wb3BwbGVyLmZyZWVkZXNrdG9wLm9yZy8ke0JQfS50YXIueHogXAorICAgIGZpbGU6Ly8wMDAxLURvLW5vdC1vdmVyd3JpdGUtYWxsLW91ci1idWlsZC1mbGFncy5wYXRjaCBcCisgICAgZmlsZTovLzAwMDItQ2Fpcm9PdXRwdXREZXYuY2MtZml4LWJ1aWxkLWVycm9yLXdoZW4tdXNpbmctZml4ZWRwby5wYXRjaCBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiNjZhNTRkYTQ4OTZiMTQwODYxMTY5OWZlZGE1YzE4MjEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjdjYzhhZGRhZmM3OTFlMWEyNmNlNmFjYzJiNDkwOTI2ZWE3M2E0Zjg5MTk2ZGQ4YTc3NDJjZmY3Y2Y4YTExMSIKKworREVQRU5EUyA9ICJmb250Y29uZmlnIHpsaWIgY2Fpcm8gbGNtcyIKKworaW5oZXJpdCBjbWFrZSBwa2djb25maWcgZ29iamVjdC1pbnRyb3NwZWN0aW9uCisKK1BBQ0tBR0VDT05GSUcgPz89ICJqcGVnIG9wZW5qcGVnIHBuZyB0aWZmIG5zcyAke0BiYi51dGlscy5jb250YWlucygnQkJGSUxFX0NPTExFQ1RJT05TJywgJ3F0NS1sYXllcicsICdxdDUnLCAnJywgZCl9IgorUEFDS0FHRUNPTkZJR1tqcGVnXSA9ICItRFdJVEhfSlBFRz1PTiAtREVOQUJMRV9EQ1RERUNPREVSPWxpYmpwZWcsLURXSVRIX0pQRUc9T0ZGIC1ERU5BQkxFX0RDVERFQ09ERVI9bm9uZSxqcGVnIgorUEFDS0FHRUNPTkZJR1twbmddID0gIi1EV0lUSF9QTkc9T04sLURXSVRIX1BORz1PRkYsbGlicG5nIgorUEFDS0FHRUNPTkZJR1t0aWZmXSA9ICItRFdJVEhfVElGRj1PTiwtRFdJVEhfVElGRj1PRkYsdGlmZiIKK1BBQ0tBR0VDT05GSUdbY3VybF0gPSAiLURFTkFCTEVfTElCQ1VSTD1PTiwtREVOQUJMRV9MSUJDVVJMPU9GRixjdXJsIgorUEFDS0FHRUNPTkZJR1tvcGVuanBlZ10gPSAiLURFTkFCTEVfTElCT1BFTkpQRUc9b3BlbmpwZWcyLC1ERU5BQkxFX0xJQk9QRU5KUEVHPW5vbmUsb3BlbmpwZWciCitQQUNLQUdFQ09ORklHW3F0NV0gPSAiLURFTkFCTEVfUVQ1PU9OLC1ERU5BQkxFX1FUNT1PRkYscXRiYXNlIHF0dG9vbHMtbmF0aXZlIgorUEFDS0FHRUNPTkZJR1tuc3NdID0gIi1EV0lUSF9OU1MzPU9OLC1EV0lUSF9OU1MzPU9GRixuc3MiCisKKyMgc3VycHJpc2UgLSBkaWQgbm90IGV4cGVjdCB0aGlzIHRvIHdvcmsgOikKK2luaGVyaXQgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAncXQ1JywgJ2NtYWtlX3F0NScsICcnLCBkKX0KKworU0VDVVJJVFlfQ0ZMQUdTID0gIiR7U0VDVVJJVFlfTk9fUElFX0NGTEFHU30iCisKK0VYVFJBX09FQ01BS0UgKz0gIiBcCisgICAgLURFTkFCTEVfWFBERl9IRUFERVJTPU9OIFwKKyAgICAtREJVSUxEX0dUS19URVNUUz1PRkYgXAorICAgIC1ERU5BQkxFX1pMSUI9T04gXAorIgorCitkb19jb25maWd1cmVfYXBwZW5kKCkgeworICAgICMgcG9wcGxlciBtYWNybyB1c2VzIHBrZy1jb25maWcgdG8gY2hlY2sgZm9yIGctaXIgcnVudGltZXMuIFNvbWV0aGluZworICAgICMgbWFrZXMgdGhlbSBwb2ludCB0byAvdXNyL2Jpbi4gQWxpZ24gdGhlbSB0byBzeXNyb290IC0gdGhhdCdzIHdoZXJlIHRoZQorICAgICMgZ2l0LXdyYXBwZXJzIGFyZToKKyAgICBzZWQgLWkgJ3M6ICR7YmluZGlyfS9nLWlyOiAke1NUQUdJTkdfQklORElSfS9nLWlyOicgJHtCfS9idWlsZC5uaW5qYQorfQorCisjIGNoZWNrIGZvciBUQVJHRVRfRlBVPXNvZnQgYW5kIGluZm9ybSBjb25maWd1cmUgb2YgdGhlIHJlc3VsdCBzbyBpdCBjYW4gZGlzYWJsZSBzb21lIGZsb2F0aW5nIHBvaW50cworZGVmIGdldF9wb3BwbGVyX2ZwdV9zZXR0aW5nKGJiLCBkKToKKyAgICBpZiBkLmdldFZhcignVEFSR0VUX0ZQVScpIGluIFsgJ3NvZnQnIF06CisgICAgICAgIHJldHVybiAiLURVU0VfRklYRURQT0lOVD1PTiIKKyAgICByZXR1cm4gIiIKKworRVhUUkFfT0VDTUFLRSArPSAiJHtAZ2V0X3BvcHBsZXJfZnB1X3NldHRpbmcoYmIsIGQpfSIKKworUEFDS0FHRVMgPSsgImxpYnBvcHBsZXIgbGlicG9wcGxlci1nbGliIgorRklMRVNfbGlicG9wcGxlciA9ICIke2xpYmRpcn0vbGlicG9wcGxlci5zby4qIgorRklMRVNfbGlicG9wcGxlci1nbGliID0gIiR7bGliZGlyfS9saWJwb3BwbGVyLWdsaWIuc28uKiIKKworUkRFUEVORFNfbGlicG9wcGxlciA9ICJwb3BwbGVyLWRhdGEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bvc3RncmVzcWwvZmlsZXMvMDAwMS1Vc2UtcGtnLWNvbmZpZy1mb3ItbGlieG1sMi1kZXRlY3Rpb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bvc3RncmVzcWwvZmlsZXMvMDAwMS1Vc2UtcGtnLWNvbmZpZy1mb3ItbGlieG1sMi1kZXRlY3Rpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwOGVjNmEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzLzAwMDEtVXNlLXBrZy1jb25maWctZm9yLWxpYnhtbDItZGV0ZWN0aW9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotRnJvbSBkNTJlMzMwYmU4OTViYjhjNWYwZmIzZTI4ODQ3NjZhY2JkOTQyYTg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhpbGlwIEJhbGlzdGVyIDxwaGlsaXBAYmFsaXN0ZXIub3JnPgotRGF0ZTogVHVlLCAxIEp1bCAyMDE0IDA5OjQwOjQ0IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVzZSBwa2ctY29uZmlnIGZvciBsaWJ4bWwyIGRldGVjdGlvbi4KLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQotCi14bWwyLWNvbmZpZyBkb2VzIG5vdCB3b3JrLiBVc2UgcGtnY29uZmlnIHRvIHNldCBDUFBGTEFHUyBhbmQgTElCUy4KLQotU2lnbmVkLW9mZi1ieTogUGhpbGlwIEJhbGlzdGVyIDxwaGlsaXBAYmFsaXN0ZXIub3JnPgotLS0tCi0gY29uZmlndXJlLmluIHwgMTUgKystLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KLWluZGV4IGY4YmY0NjYuLjFmNGZhYmYgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuaW4KLSsrKyBiL2NvbmZpZ3VyZS5pbgotQEAgLTczNCwxOSArNzM0LDggQEAgUEdBQ19BUkdfQk9PTCh3aXRoLCBsaWJ4bWwsIG5vLCBbYnVpbGQgd2l0aCBYTUwgc3VwcG9ydF0sCi0gICAgICAgICAgICAgICBbQUNfREVGSU5FKFtVU0VfTElCWE1MXSwgMSwgW0RlZmluZSB0byAxIHRvIGJ1aWxkIHdpdGggWE1MIHN1cHBvcnQuICgtLXdpdGgtbGlieG1sKV0pXSkKLSAKLSBpZiB0ZXN0ICIkd2l0aF9saWJ4bWwiID0geWVzIDsgdGhlbgotLSAgQUNfQ0hFQ0tfUFJPR1MoWE1MMl9DT05GSUcsIHhtbDItY29uZmlnKQotLSAgaWYgdGVzdCAtbiAiJFhNTDJfQ09ORklHIjsgdGhlbgotLSAgICBmb3IgcGdhY19vcHRpb24gaW4gYCRYTUwyX0NPTkZJRyAtLWNmbGFnc2A7IGRvCi0tICAgICAgY2FzZSAkcGdhY19vcHRpb24gaW4KLS0gICAgICAgIC1JKnwtRCopIENQUEZMQUdTPSIkQ1BQRkxBR1MgJHBnYWNfb3B0aW9uIjs7Ci0tICAgICAgZXNhYwotLSAgICBkb25lCi0tICAgIGZvciBwZ2FjX29wdGlvbiBpbiBgJFhNTDJfQ09ORklHIC0tbGlic2A7IGRvCi0tICAgICAgY2FzZSAkcGdhY19vcHRpb24gaW4KLS0gICAgICAgIC1MKikgTERGTEFHUz0iJExERkxBR1MgJHBnYWNfb3B0aW9uIjs7Ci0tICAgICAgZXNhYwotLSAgICBkb25lCi0tICBmaQotKyAgQ1BQRkxBR1M9IiRDUFBGTEFHUyBgcGtnLWNvbmZpZyAtLXNob3J0LWVycm9ycyAtLXByaW50LWVycm9ycyAtLWNmbGFncyAibGlieG1sLTIuMCIgMj4mMWAiCi0rICBMSUJTPSJgcGtnLWNvbmZpZyAtLXNob3J0LWVycm9ycyAtLXByaW50LWVycm9ycyAtLWxpYnMgImxpYnhtbC0yLjAiIDI+JjFgICRMSUJTIgotIGZpCi0gCi0gQUNfU1VCU1Qod2l0aF9saWJ4bWwpCi0tLSAKLTEuOC4zLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL25vdC1jaGVjay1saWJwZXJsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL25vdC1jaGVjay1saWJwZXJsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTk5ZjM5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy9ub3QtY2hlY2stbGlicGVybC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLVtQQVRDSF0gbm90IGNoZWNrIGxpYnBlcmwgdW5kZXIgY3Jvc3MgY29tcGlsaW5nCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotbGlicGVybCBsZGZsYWdzIHJldHVybmVkIGJ5IFBHQUNfQ0hFQ0tfUEVSTF9FTUJFRF9MREZMQUdTIGFyZSBuYXRpdmUsCi1jYW4gbm90IGJlIHVzZWQgdG8gY2hlY2sgdGFyZ2V0IGxpYnJhcnkuCi0KLXBvc3RwcmVzcWwgaGFzIHRoZSBkZXBlbmRlbmN5IG9uIHBlcmwsIHNvIG5vdCBuZWVkIHRvIGNoZWNrIGxpYnBlcmwKLWFnYWluLCBsaWtlIGluIHBvc3RncmVzcWwtOS4yLjQgCi0KLVNpZ25lZC1vZmYtYnk6IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KLS0tLQotIGNvbmZpZ3VyZS5pbiB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgotaW5kZXggYWUxYTVhMC4uOWEwOTcwZCAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5pbgotKysrIGIvY29uZmlndXJlLmluCi1AQCAtMTg3Nyw3ICsxODc3LDcgQEAgaWYgdGVzdCAiJHdpdGhfdGNsIiA9IHllczsgdGhlbgotIGZpCi0gCi0gIyBjaGVjayBmb3IgPHBlcmwuaD4KLS1pZiB0ZXN0ICIkd2l0aF9wZXJsIiA9IHllczsgdGhlbgotK2lmIHRlc3QgIiR3aXRoX3BlcmwiID0geWVzICYmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0gbm87IHRoZW4KLSAgIGFjX3NhdmVfQ1BQRkxBR1M9JENQUEZMQUdTCi0gICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJHBlcmxfYXJjaGxpYmV4cC9DT1JFIgotICAgQUNfQ0hFQ0tfSEVBREVSKHBlcmwuaCwgW10sIFtBQ19NU0dfRVJST1IoW2hlYWRlciBmaWxlIDxwZXJsLmg+IGlzIHJlcXVpcmVkIGZvciBQZXJsXSldLAotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bvc3RncmVzcWwvZmlsZXMvcmVtb3ZlLmF1dG9jb25mLnZlcnNpb24uY2hlY2sucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bvc3RncmVzcWwvZmlsZXMvcmVtb3ZlLmF1dG9jb25mLnZlcnNpb24uY2hlY2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlMjNmZDQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3JlbW92ZS5hdXRvY29uZi52ZXJzaW9uLmNoZWNrLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotSW5kZXg6IHBvc3RncmVzcWwtOS4yLjQvY29uZmlndXJlLmluCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gcG9zdGdyZXNxbC05LjIuNC5vcmlnL2NvbmZpZ3VyZS5pbgotKysrIHBvc3RncmVzcWwtOS4yLjQvY29uZmlndXJlLmluCi1AQCAtMTksMTAgKzE5LDYgQEAgbTRfcGF0dGVybl9mb3JiaWQoXlBHQUNfKWRubCB0byBjYXRjaCB1bgotIAotIEFDX0lOSVQoW1Bvc3RncmVTUUxdLCBbOS40LjJdLCBbcGdzcWwtYnVnc0Bwb3N0Z3Jlc3FsLm9yZ10pCi0gCi0tbTRfaWYobTRfZGVmbihbbTRfUEFDS0FHRV9WRVJTSU9OXSksIFsyLjY5XSwgW10sIFttNF9mYXRhbChbQXV0b2NvbmYgdmVyc2lvbiAyLjY5IGlzIHJlcXVpcmVkLgotLVVudGVzdGVkIGNvbWJpbmF0aW9ucyBvZiAnYXV0b2NvbmYnIGFuZCBQb3N0Z3JlU1FMIHZlcnNpb25zIGFyZSBub3QKLS1yZWNvbW1lbmRlZC4gIFlvdSBjYW4gcmVtb3ZlIHRoZSBjaGVjayBmcm9tICdjb25maWd1cmUuaW4nIGJ1dCBpdCBpcyB0aGVuCi0teW91ciByZXNwb25zaWJpbGl0eSB3aGV0aGVyIHRoZSByZXN1bHQgd29ya3Mgb3Igbm90Ll0pXSkKLSBBQ19DT1BZUklHSFQoW0NvcHlyaWdodCAoYykgMTk5Ni0yMDE0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cF0pCi0gQUNfQ09ORklHX1NSQ0RJUihbc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9oZWFwdHVwbGUuY10pCi0gQUNfQ09ORklHX0FVWF9ESVIoY29uZmlnKQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bvc3RncmVzcWwvcG9zdGdyZXNxbF85LjQuMTUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bvc3RncmVzcWwvcG9zdGdyZXNxbF85LjQuMTUuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlYzA5OWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL3Bvc3RncmVzcWxfOS40LjE1LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotcmVxdWlyZSBwb3N0Z3Jlc3FsLmluYwotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZUklHSFQ7bWQ1PTgxYjY5ZGRiMzFhOGJlNjZiYWFmZDE0YTkwMTQ2ZWUyIgotCi1TUkNfVVJJICs9ICJcCi0gICAgZmlsZTovL3JlbW92ZS5hdXRvY29uZi52ZXJzaW9uLmNoZWNrLnBhdGNoIFwKLSAgICBmaWxlOi8vbm90LWNoZWNrLWxpYnBlcmwucGF0Y2ggXAotIgotCi1kb19jb21waWxlX3ByZXBlbmRfbGliYy1tdXNsKCkgewotICAgIHNlZCAtaSAtZSAncy9cLWxuc2wvL2cnICR7Qn0vc3JjL01ha2VmaWxlLmdsb2JhbAotfQotCi1TUkNfVVJJW21kNXN1bV0gPSAiMGFhZGEwODMzYTkyMDhhZTVmYWI5NjZjNzNjMzkzNzkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTJiZmIzYzdlOGU0NTUxNWVmOTIxYWQzNjVlMTIyNjgyYTVjNDkzNWRjYzAwMzI2NDQ0MzNhZjJkZTMxYWNjNCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc29jaS9zb2NpXzMuMi4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zb2NpL3NvY2lfMy4yLjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmNWE0ODUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zb2NpL3NvY2lfMy4yLjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNSBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotIyBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgKHNlZSBDT1BZSU5HLk1JVCBmb3IgdGhlIHRlcm1zKQotCi1ERVNDUklQVElPTiA9ICJUaGUgQysrIERhdGFiYXNlIEFjY2VzcyBMaWJyYXJ5IgotSE9NRVBBR0UgPSAiaHR0cDovL3NvY2kuc291cmNlZm9yZ2UubmV0IgotTElDRU5TRSA9ICJCU0wtMS4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRV8xXzAudHh0O21kNT1lNDIyNGNjYWVjYjE0ZDk0MmM3MWQzMWJlZjIwZDc4YyIKLVNFQ1RJT04gPSAibGlicyIKLURFUEVORFMgPSAiYm9vc3QiCi0KLQotU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vcHJvamVjdC8ke0JQTn0vJHtCUE59LyR7QlB9LyR7QlB9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly9zb2NpX2xpYmRpci5wYXRjaCBcCi0gICAgICAgICAgIgotU1JDX1VSSVttZDVzdW1dID0gImJjM2MzNWY2Y2QzZjgwYTFiZTE5ZmUzMGIzYzExMWJmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMwZWEyZjRkMjY2MzllZjViNWNkYzI0ZmIzMDBiMzg5Njc0NjI0M2RiYjc3Yjc0MzU4MmRlMmZmNDQzY2NiMWMiCi0KLVRFU1RDT05GSUcgPSAnLURTT0NJX1RFU1RfRU1QVFlfQ09OTlNUUj0iZHVtbXkiIC1EU09DSV9URVNUX1NRTElURTNfQ09OTlNUUj0idGVzdC5kYiIgXAotICAgICAgICAgICAgICAtRFNPQ0lfVEVTVF9QT1NUR1JFU1FMX0NPTk5TVFI6U1RSSU5HPSJkYm5hbWU9c29jaV90ZXN0IiBcCi0gICAgICAgICAgICAgIC1EU09DSV9URVNUX01ZU1FMX0NPTk5TVFI6U1RSSU5HPSJkYj1zb2NpX3Rlc3QgdXNlcj1vZSBwYXNzd29yZD1vZSInCi0KLU9CQVNFRElSID89ICIvb3B0L29yYWNsZSIKLU9JTkNESVIgPSAicmRibXMvcHVibGljIgotT0xJQkRJUiA9ICJsaWIiCi0KLVBBQ0tBR0VDT05GSUdbc3FsaXRlM10gPSAiLURTT0NJX1NRTElURTM9T04sLURTT0NJX1NRTElURTM9T0ZGLHNxbGl0ZTMsIgotUEFDS0FHRUNPTkZJR1tteXNxbF0gPSAiLURTT0NJX01ZU1FMPU9OLC1EU09DSV9NWVNRTD1PRkYsbWFyaWFkYiwiCi1QQUNLQUdFQ09ORklHW3Bvc3RncmVzcWxdID0gIi1EU09DSV9QT1NUR1JFU1FMPU9OLC1EU09DSV9QT1NUR1JFU1FMPU9GRixwb3N0Z3Jlc3FsLCIKLVBBQ0tBR0VDT05GSUdbb2RiY10gPSAiLURTT0NJX09EQkM9T04sLURTT0NJX09EQkM9T0ZGLCwiCi1QQUNLQUdFQ09ORklHW2VtcHR5XSA9ICItRFNPQ0lfRU1QVFk9T04sLURTT0NJX0VNUFRZPU9GRiwsIgotUEFDS0FHRUNPTkZJR1tvcmFjbGVdID0gIi1EV0lUSF9PUkFDTEU9T04gLS13aXRoLW9yYWNsZS1pbmNsdWRlPSR7T0lOQ0RJUn0gLS13aXRoLW9yYWNsZS1saWI9JHtPTElCRElSfSwtRFdJVEhfT1JBQ0xFPU9GRiwsIgotUEFDS0FHRUNPTkZJR1twdGVzdF0gPSAiJHtURVNUQ09ORklHfSwsLCIKLQotIyBlbmFibGUgeW91ciBiYWNrZW5kIGJ5IGRlZmF1bHQgd2UgZW5hYmxlICdlbXB0eScKLVBBQ0tBR0VDT05GSUcgPz89ICJlbXB0eSIKLQotIyBUYWtlIHRoZSBmbGFncyBhZGRlZCBieSBQQUNLQUdFQ09ORklHIGFuZCBwYXNzIHRoZW0gdG8gY21ha2UuCi1FWFRSQV9PRUNNQUtFID0gIiR7RVhUUkFfT0VDT05GfSAtRFNPQ0lfTElCRElSPSR7bGliZGlyfSIKLURJU0FCTEVfU1RBVElDID0gIiIKLQotaW5oZXJpdCBjbWFrZQotCi1QQUNLQUdFUyArPSAiJHtQTn0tc3FsaXRlMyAke1BOfS1teXNxbCAke1BOfS1wb3N0Z3Jlc3FsICR7UE59LW9kYmMgJHtQTn0tb3JhY2xlIgotCi1GSUxFU18ke1BOfS1zcWxpdGUzID0gIiR7bGliZGlyfS9saWIke0JQTn1fc3FsaXRlMy5zby4qIgotRklMRVNfJHtQTn0tbXlzcWwgPSAiJHtsaWJkaXJ9L2xpYiR7QlBOfV9teXNxbC5zby4qIgotRklMRVNfJHtQTn0tcG9zdGdyZXNxbCA9ICIke2xpYmRpcn0vbGliJHtCUE59X3Bvc3RncmVzcWwuc28uKiIKLUZJTEVTXyR7UE59LW9kYmMgPSAiJHtsaWJkaXJ9L2xpYiR7QlBOfV9vZGJjLnNvLioiCi1GSUxFU18ke1BOfS1vcmFjbGUgPSAiJHtsaWJkaXJ9L2xpYiR7QlBOfV9vcmFjbGUuc28uKiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3BpdG9vbHMvc3BpdG9vbHNfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcGl0b29scy9zcGl0b29sc19naXQuYmIKaW5kZXggZjgwODEyNS4uM2Y2Y2RjNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcGl0b29scy9zcGl0b29sc19naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcGl0b29scy9zcGl0b29sc19naXQuYmIKQEAgLTQsMTEgKzQsMTYgQEAKIExJQ0VOU0U9IkdQTHYyIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9OGMxNjY2NmFlNmMxNTk4NzZhMGJhNjMwOTk2MTQzODEiCiAKK1BSID0gInIwIgorCitCUFYgPSAiMC44LjEiCitQViA9ICIke0JQVn0iCitTUkNSRVYgPSAiMzE4YmNhZTUyNDk3MjI4NzNiZjU4YjI3YWZkZDIwNDczYzcwNDdjYyIKKwogUyA9ICIke1dPUktESVJ9L2dpdCIKIAogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2NwYi0vc3BpLXRvb2xzLmdpdDtwcm90b2NvbD1naXQiCiAKLVNSQ1JFViA9ICIwMzQwNWFiNDU4ODRlNDI2NGRmYTAzNzFjMDMyYjJiYWFlZWFhYTk4IgogCiBpbmhlcml0IGF1dG90b29scwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9GaXgtdGhlLW1lbW9yeS1sZWFrLXByb2JsZW0td2hlbi1IQVZFX0VOVklST04tZGVmaW5lZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3lzbG9nLW5nL2ZpbGVzL0ZpeC10aGUtbWVtb3J5LWxlYWstcHJvYmxlbS13aGVuLUhBVkVfRU5WSVJPTi1kZWZpbmVkLnBhdGNoCmluZGV4IDJhYzljMGIuLjVkNDgxZjIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3lzbG9nLW5nL2ZpbGVzL0ZpeC10aGUtbWVtb3J5LWxlYWstcHJvYmxlbS13aGVuLUhBVkVfRU5WSVJPTi1kZWZpbmVkLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3lzbG9nLW5nL2ZpbGVzL0ZpeC10aGUtbWVtb3J5LWxlYWstcHJvYmxlbS13aGVuLUhBVkVfRU5WSVJPTi1kZWZpbmVkLnBhdGNoCkBAIC00LDkgKzQsMTEgQEAKIAogU2lnbmVkLW9mZi1ieTogWHVmZW5nIFpoYW5nIDx4dWZlbmcuemhhbmdAd2luZHJpdmVyLmNvbT4KIC0tLQotLS0tIGEvbGliL2dwcm9jZXNzLmMKLSsrKyBiL2xpYi9ncHJvY2Vzcy5jCi1AQCAtMTQyMSw2ICsxNDIxLDE4IEBACitJbmRleDogc3lzbG9nLW5nLTMuOC4xL2xpYi9ncHJvY2Vzcy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gc3lzbG9nLW5nLTMuOC4xLm9yaWcvbGliL2dwcm9jZXNzLmMKKysrKyBzeXNsb2ctbmctMy44LjEvbGliL2dwcm9jZXNzLmMKK0BAIC0xNDMyLDYgKzE0MzIsMTggQEAgZ19wcm9jZXNzX3N0YXJ0dXBfb2sodm9pZCkKICB2b2lkCiAgZ19wcm9jZXNzX2ZpbmlzaCh2b2lkKQogIHsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3lzbG9nLW5nL2ZpbGVzL2NvbmZpZ3VyZS5hYy1hZGQtb3B0aW9uLWVuYWJsZS10aHJlYWQtdGxzLXRvLW1hbmFnZS0ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9jb25maWd1cmUuYWMtYWRkLW9wdGlvbi1lbmFibGUtdGhyZWFkLXRscy10by1tYW5hZ2UtLnBhdGNoCmluZGV4IGNjOGQxMTAuLmMxNzJlNGUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3lzbG9nLW5nL2ZpbGVzL2NvbmZpZ3VyZS5hYy1hZGQtb3B0aW9uLWVuYWJsZS10aHJlYWQtdGxzLXRvLW1hbmFnZS0ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvZmlsZXMvY29uZmlndXJlLmFjLWFkZC1vcHRpb24tZW5hYmxlLXRocmVhZC10bHMtdG8tbWFuYWdlLS5wYXRjaApAQCAtMTAsMTMgKzEwLDEzIEBACiAgY29uZmlndXJlLmFjIHwgMTcgKysrKysrKysrKystLS0tLS0KICAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggNDc0ZTA5NC4uY2VkY2E1NCAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTIwLDYgKzEyMCw5IEBAIEFDX0FSR19FTkFCTEUobWVtdHJhY2UsCi0gQUNfQVJHX0VOQUJMRShzc2wsCi0gICAgICAgICAgICAgICBbICAtLWVuYWJsZS1zc2wgICAgICAgIEVuYWJsZSBTU0wgc3VwcG9ydC5dLCxlbmFibGVfc3NsPSJhdXRvIikKK0luZGV4OiBzeXNsb2ctbmctMy44LjEvY29uZmlndXJlLmFjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gc3lzbG9nLW5nLTMuOC4xLm9yaWcvY29uZmlndXJlLmFjCisrKysgc3lzbG9nLW5nLTMuOC4xL2NvbmZpZ3VyZS5hYworQEAgLTE0Nyw2ICsxNDcsOSBAQCBBQ19BUkdfRU5BQkxFKGdwcm9mLAorIEFDX0FSR19FTkFCTEUobWVtdHJhY2UsCisgICAgICAgICAgICAgICBbICAtLWVuYWJsZS1tZW10cmFjZSAgIEVuYWJsZSBhbHRlcm5hdGl2ZSBsZWFrIGRlYnVnZ2luZyBjb2RlLl0pCiAgCiArQUNfQVJHX0VOQUJMRSh0aHJlYWQtdGxzLAogKyAgICAgICAgICAgICAgWyAgLS1lbmFibGUtdGhyZWFkLXRscyAgICAgICAgRW5hYmxlIFRocmVhZCBUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgc3VwcG9ydC5dLCxlbmFibGVfdGhyZWFkX3Rscz0ibm8iKQpAQCAtMjQsNyArMjQsNyBAQAogIEFDX0FSR19FTkFCTEUoZHluYW1pYy1saW5raW5nLAogICAgICAgICAgICAgICAgWyAgLS1lbmFibGUtZHluYW1pYy1saW5raW5nICAgICAgICBMaW5rIGV2ZXJ5dGhpbmcgZHluYW1pY2FsbHkuXSwsZW5hYmxlX2R5bmFtaWNfbGlua2luZz0iYXV0byIpCiAgCi1AQCAtMzgxLDEyICszODQsMTQgQEAgZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorQEAgLTQ4NiwxMiArNDg5LDE0IEBAIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICBkbmwgSXMgdGhlIF9fdGhyZWFkIGtleXdvcmQgYXZhaWxhYmxlPwogIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAKQEAgLTQ1LDYgKzQ1LDMgQEAKICAKICBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgZG5sIEhvdyB0byBkbyBzdGF0aWMgbGlua2luZz8KLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvZmlsZXMvZml4LWNvbmZpZy1saWJuZXQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9maXgtY29uZmlnLWxpYm5ldC5wYXRjaAppbmRleCA3NTU4MDNjLi41NTNmNGE1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9maXgtY29uZmlnLWxpYm5ldC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9maXgtY29uZmlnLWxpYm5ldC5wYXRjaApAQCAtMTAsMTEgKzEwLDExIEBACiAgY29uZmlndXJlLmFjIHwgICAyNyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KICAxIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBiMWUxOGI0Li44ZTEzMDI1IDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC03Myw2ICs3Myw5IEBAIEFDX0NPTkZJR19IRUFERVJTKGNvbmZpZy5oKQorSW5kZXg6IHN5c2xvZy1uZy0zLjguMS9jb25maWd1cmUuYWMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBzeXNsb2ctbmctMy44LjEub3JpZy9jb25maWd1cmUuYWMKKysrKyBzeXNsb2ctbmctMy44LjEvY29uZmlndXJlLmFjCitAQCAtMTA0LDYgKzEwNCw5IEBAIEFDX0NPTkZJR19IRUFERVJTKGNvbmZpZy5oKQogIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICBkbmwgQXJndW1lbnRzCiAgCkBAIC0yNCw3ICsyNCw3IEBACiAgQUNfQVJHX1dJVEgobGlibmV0LAogICAgIFsgIC0td2l0aC1saWJuZXQ9cGF0aCAgICAgIHVzZSBwYXRoIHRvIGxpYm5ldC1jb25maWcgc2NyaXB0XSwKICAgICAsCi1AQCAtNzY4LDIyICs3NzEsMjYgQEAgZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorQEAgLTg5MywyMiArODk2LDI2IEBAIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICBkbmwgbGlibmV0IGhlYWRlcnMvbGlicmFyaWVzCiAgZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogIEFDX01TR19DSEVDS0lORyhmb3IgTElCTkVUKQpAQCAtNjEsNiArNjEsMyBAQAogIGlmIHRlc3QgIngkZW5hYmxlX3Nwb29mX3NvdXJjZSIgPSAieGF1dG8iOyB0aGVuCiAgCUFDX01TR19DSEVDS0lORyh3aGV0aGVyIHRvIGVuYWJsZSBzcG9vZiBzb3VyY2Ugc3VwcG9ydCkKICAgICAgICAgIGlmIHRlc3QgIngkTElCTkVUX0xJQlMiICE9ICJ4IjsgdGhlbgotLS0gCi0xLjcuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9maXgtaW52YWxpZC1vd25lcnNoaXAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9maXgtaW52YWxpZC1vd25lcnNoaXAucGF0Y2gKaW5kZXggZmFmOTY3Mi4uNTRlY2NlNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvZmlsZXMvZml4LWludmFsaWQtb3duZXJzaGlwLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3lzbG9nLW5nL2ZpbGVzL2ZpeC1pbnZhbGlkLW93bmVyc2hpcC5wYXRjaApAQCAtMTAsMTEgKzEwLDExIEBACiAgc2NsL01ha2VmaWxlLmFtIHwgICAgMiArLQogIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvc2NsL01ha2VmaWxlLmFtIGIvc2NsL01ha2VmaWxlLmFtCi1pbmRleCA1N2ZhZDVkLi4yYTI5Y2E1IDEwMDY0NAotLS0tIGEvc2NsL01ha2VmaWxlLmFtCi0rKysgYi9zY2wvTWFrZWZpbGUuYW0KLUBAIC0xNCw3ICsxNCw3IEBAIHNjbC1pbnN0YWxsLWRhdGEtbG9jYWw6CitJbmRleDogc3lzbG9nLW5nLTMuOC4xL3NjbC9NYWtlZmlsZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHN5c2xvZy1uZy0zLjguMS5vcmlnL3NjbC9NYWtlZmlsZS5hbQorKysrIHN5c2xvZy1uZy0zLjguMS9zY2wvTWFrZWZpbGUuYW0KK0BAIC0yNyw3ICsyNyw3IEBAIHNjbC1pbnN0YWxsLWRhdGEtbG9jYWw6CiAgCQlmaTsgXAogIAlkb25lCiAgCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKS8kKHNjbGRpcikKQEAgLTIzLDYgKzIzLDMgQEAKICAJY2htb2QgLVIgdStyd1ggJChERVNURElSKS8kKHNjbGRpcikKICAKICBzY2wtdW5pbnN0YWxsLWxvY2FsOgotLS0gCi0xLjcuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9zeXNsb2ctbmcuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvc3lzbG9nLW5nLmluYwppbmRleCBmMWJmOWIwLi43NzFjZGIxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9zeXNsb2ctbmcuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3lzbG9nLW5nL3N5c2xvZy1uZy5pbmMKQEAgLTQxLDcgKzQxLDcgQEAKICIKIAogQ09ORklHX1RMUyA9ICItLWVuYWJsZS10aHJlYWQtdGxzIgotQ09ORklHX1RMU19hcm0gPSAiJHtAYmFzZV9jb25kaXRpb25hbCggIkRFQlVHX0JVSUxEIiwgIjEiLCAiIC0tZGlzYWJsZS10aHJlYWQtdGxzIiwgIiAtLWVuYWJsZS10aHJlYWQtdGxzIiwgZCApfSIKK0NPTkZJR19UTFNfYXJtID0gIiR7QG9lLnV0aWxzLmNvbmRpdGlvbmFsKCAiREVCVUdfQlVJTEQiLCAiMSIsICIgLS1kaXNhYmxlLXRocmVhZC10bHMiLCAiIC0tZW5hYmxlLXRocmVhZC10bHMiLCBkICl9IgogCiBQQUNLQUdFQ09ORklHID8/PSAiIFwKICAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2IHN5c3RlbWQnLCBkKX0gXApAQCAtMTAxLDcgKzEwMSw3IEBACiAKICMgc3lzbG9nIGluaXRzY3JpcHQgaXMgaGFuZGxlZCBleHBsaWNpdGx5IGJlY2F1c2Ugb3JkZXIgb2YKICMgdXBkYXRlLXJjLmQgYW5kIHVwZGF0ZS1hbHRlcm5hdGl2ZXMgaXMgaW1wb3J0YW50Ci1SREVQRU5EU18ke1BOfSArPSAiICR7QGJhc2VfY29uZGl0aW9uYWwoIk9OTElORV9QQUNLQUdFX01BTkFHRU1FTlQiLCAibm9uZSIsICIiLCAidXBkYXRlLXJjLmQiLCBkKX0iCitSREVQRU5EU18ke1BOfSArPSAiICR7QG9lLnV0aWxzLmNvbmRpdGlvbmFsKCJPTkxJTkVfUEFDS0FHRV9NQU5BR0VNRU5UIiwgIm5vbmUiLCAiIiwgInVwZGF0ZS1yYy5kIiwgZCl9IgogCiBSQ09ORkxJQ1RTXyR7UE59ID0gImJ1c3lib3gtc3lzbG9nIHN5c2tsb2dkIHJzeXNsb2ciCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdG9tb3lvLXRvb2xzL3RvbW95by10b29sc18yLjUuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdG9tb3lvLXRvb2xzL3RvbW95by10b29sc18yLjUuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGExYjRjZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3RvbW95by10b29scy90b21veW8tdG9vbHNfMi41LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1TVU1NQVJZID0gIlRPTU9ZTyBMaW51eCB0b29scyIKLURFU0NSSVBUSU9OID0gIlRPTU9ZTyBMaW51eCBpcyBhIE1hbmRhdG9yeSBBY2Nlc3MgQ29udHJvbCAoTUFDKSBpbXBsZW1lbnRhdGlvbiBcCi1mb3IgTGludXggdGhhdCBjYW4gYmUgdXNlZCB0byBpbmNyZWFzZSB0aGUgc2VjdXJpdHkgb2YgYSBzeXN0ZW0sIHdoaWxlIGFsc28gXAotYmVpbmcgdXNlZnVsIHB1cmVseSBhcyBhIHN5c3RlbSBhbmFseXNpcyB0b29sLiIKLUhPTUVQQUdFID0gImh0dHA6Ly90b21veW8uc291cmNlZm9yZ2UuanAvIgotU0VDVElPTiA9ICJTeXN0ZW0gRW52aXJvbm1lbnQvS2VybmVsIgotCi1TUkNfVVJJID0gImh0dHA6Ly9qYWlzdC5kbC5zb3VyY2Vmb3JnZS5qcC90b21veW8vNTMzNTcvJHtCUH0tMjAxNDA2MDEudGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gIjg4ODg2OWI3OTMxMjdmMDBkNjQzOWEzMjQ2NTk4YjgzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjExOGVmNmJhMWZiZjdjMGI4MzAxOGMzYTBkNGQ1NDg1ZGZiOWI1YjdmNjQ3ZjM3Y2U5ZjYzODQxYTMxMzNjMmEiCi0KLVMgPSAiJHtXT1JLRElSfS8ke0JQTn0iCi0KLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLnRvbW95bzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCi0KLUZJTEVTXyR7UE59ICAgICArPSAiJHtsaWJkaXJ9L3RvbW95byIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L3RvbW95by8uZGVidWciCi0KLURFUEVORFMgPSAibGludXgtbGliYy1oZWFkZXJzIG5jdXJzZXMiCi0KLUVYVFJBX09FTUFLRSA9ICItZSBVU1JMSUJESVI9JHtsaWJkaXJ9IgotCi1kb19jb21waWxlICgpIHsKLSAgICBvZV9ydW5tYWtlICdDQz0ke0NDfScKLX0KLQotZG9faW5zdGFsbCgpIHsKLSAgICBvZV9ydW5tYWtlIGluc3RhbGwgSU5TVEFMTERJUj0ke0R9Ci19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Rvc2NvdGVybS90b3Njb3Rlcm1fZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC90b3Njb3Rlcm0vdG9zY290ZXJtX2dpdC5iYgppbmRleCBhYTAzMWZlLi44NzliNjdiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Rvc2NvdGVybS90b3Njb3Rlcm1fZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdG9zY290ZXJtL3Rvc2NvdGVybV9naXQuYmIKQEAgLTExLDcgKzExLDkgQEAKIAogUyA9ICIke1dPUktESVJ9L2dpdCIKIAotaW5oZXJpdCBnaXRwa2d2IHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgZ2l0cGtndiBwa2djb25maWcKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogZG9fY29tcGlsZSgpIHsKICAgICBvZV9ydW5tYWtlIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy8wMDAxLU1ha2UtdWRldi1ydWxlcy1kaXJlY3RvcnktY29uZmlndXJhYmxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzLzAwMDEtTWFrZS11ZGV2LXJ1bGVzLWRpcmVjdG9yeS1jb25maWd1cmFibGUucGF0Y2gKaW5kZXggM2NjMDQwMC4uMjgyM2M1NCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzLzAwMDEtTWFrZS11ZGV2LXJ1bGVzLWRpcmVjdG9yeS1jb25maWd1cmFibGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzLzAwMDEtTWFrZS11ZGV2LXJ1bGVzLWRpcmVjdG9yeS1jb25maWd1cmFibGUucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDMyMjc4Mjk3MTcwZmZiNDkxMTZiNTc4OWU0YTA1ODhiOTlkMDJiZDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGE2ZWFiNDEzZjI3NDM3NmNmNzAzYTYwOGUyODY2MTE4MjkxYTYxODUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBBbWFybmF0aCBWYWxsdXJpIDxhbWFybmF0aC52YWxsdXJpQGludGVsLmNvbT4KIERhdGU6IFRodSwgOSBGZWIgMjAxNyAxMTowMjo1MyArMDIwMAogU3ViamVjdDogW1BBVENIXSBNYWtlIHVkZXYgcnVsZXMgZGlyZWN0b3J5IGNvbmZpZ3VyYWJsZS4KQEAgLTksNiArOSw3IEBACiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGVbRW1iZWRkZWQgc3BlY2lmaWNdCiAKIFNpZ25lZC1vZmYtYnk6IEFtYXJuYXRoIFZhbGx1cmkgPGFtYXJuYXRoLnZhbGx1cmlAaW50ZWwuY29tPgorCiAtLS0KICBjb25maWd1cmUuYWMgICAgICAgICAgICB8IDE0ICsrKy0tLS0tLS0tLS0tCiAgZGF0YS9NYWtlZmlsZS5hbSAgICAgICAgfCAgMSAtCkBAIC00OSwxMSArNTAsMTEgQEAKICAKICAgICAgICAgIGNvbXBpbGVyOiAgICAgICAgICAgICAgICAgICAke0NDfQogZGlmZiAtLWdpdCBhL2RhdGEvTWFrZWZpbGUuYW0gYi9kYXRhL01ha2VmaWxlLmFtCi1pbmRleCA0MTFlYTBmLi40ODM0OTYwIDEwMDY0NAoraW5kZXggMDhhZjVmNC4uOTMyOTE4NiAxMDA2NDQKIC0tLSBhL2RhdGEvTWFrZWZpbGUuYW0KICsrKyBiL2RhdGEvTWFrZWZpbGUuYW0KIEBAIC0zNCw3ICszNCw2IEBAICQoc3lzdGVtZHNlcnZpY2VfREFUQSk6ICQoc3lzdGVtZHNlcnZpY2VfaW5fZmlsZXMpIE1ha2VmaWxlCi0gCUBzZWQgLWUgInN8XEBsaWJleGVjZGlyXEB8JChwcmVmaXgpL2xpYi91ZGlza3N8IiAkPCA+ICRACisgCUBzZWQgLWUgInN8XEBsaWJleGVjZGlyXEB8JChsaWJleGVjZGlyKXwiICQ8ID4gJEAKICBlbmRpZgogIAogLXVkZXZydWxlc2RpciA9ICQoc2xhc2hsaWJkaXIpL3VkZXYvcnVsZXMuZApAQCAtODYsNiArODcsMyBAQAogIAogIHVtb3VudF91ZGlza3NfU09VUkNFUyA9IHVtb3VudC11ZGlza3MuYwogIHVtb3VudF91ZGlza3NfTERBREQgPSAkKERCVVNfR0xJQl9MSUJTKSAkKFBPTEtJVF9EQlVTX0xJQlMpCi0tLSAKLTIuNy40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy8wMDAxLWZpeC1idWlsZC13aXRoLW5ld2VyLWdsaWJjLXZlcnNpb25zLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzLzAwMDEtZml4LWJ1aWxkLXdpdGgtbmV3ZXItZ2xpYmMtdmVyc2lvbnMucGF0Y2gKaW5kZXggNTIwNjU1YS4uOGI0ZjQ0MSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzLzAwMDEtZml4LWJ1aWxkLXdpdGgtbmV3ZXItZ2xpYmMtdmVyc2lvbnMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzLzAwMDEtZml4LWJ1aWxkLXdpdGgtbmV3ZXItZ2xpYmMtdmVyc2lvbnMucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDk4MjkxNTJiMTJhODkyNGQyZTA5MWEwMDEzM2VkMWEzYTdiYTc1YzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDA1NGFkNmEwNmNmYWM3YzNkMTcyZDUzY2Q5MDEyMDQwNzlhNTNlYzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBBbGV4YW5kcmUgUm9zdG92dHNldiA8dGV0cm9taW5vQGdlbnRvby5vcmc+CiBEYXRlOiBGcmksIDI5IE1heSAyMDE1IDIxOjA5OjM5IC0wNDAwCiBTdWJqZWN0OiBbUEFUQ0hdIGZpeCBidWlsZCB3aXRoIG5ld2VyIGdsaWJjIHZlcnNpb25zCkBAIC04LDYgKzgsNyBAQAogVXBzdHJlYW0tU3RhdHVzOiBBcHBsaWVkIFsxXQogCiBbMV0gaHR0cDovL2NnaXQuZnJlZWRlc2t0b3Aub3JnL3VkaXNrcy9jb21taXQvP2g9dWRpc2tzMSZpZD05ODI5MTUyYjEyYTg5MjRkMmUwOTFhMDAxMzNlZDFhM2E3YmE3NWMwCisKIC0tLQogIHNyYy9oZWxwZXJzL2pvYi1kcml2ZS1kZXRhY2guYyB8IDEgKwogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQpAQCAtMjQsNiArMjUsMyBAQAogICNpbmNsdWRlIDxzdGRpby5oPgogICNpbmNsdWRlIDxzdHJpbmcuaD4KICAjaW5jbHVkZSA8ZXJybm8uaD4KLS0tIAotMi4xLjAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzL29wdGlvbmFsLWRlcGVuZHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VkaXNrcy91ZGlza3Mvb3B0aW9uYWwtZGVwZW5kcy5wYXRjaAppbmRleCA2MTMxNzAxLi5hODkwOTU0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VkaXNrcy91ZGlza3Mvb3B0aW9uYWwtZGVwZW5kcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VkaXNrcy91ZGlza3Mvb3B0aW9uYWwtZGVwZW5kcy5wYXRjaApAQCAtMSwxMiArMSwyOSBAQAotRnJvbSAxYjcwYjdhNzk4ZWVlZWM1NTRhYjVhYTlmY2ZmZjk2YTIyZTkxNzc0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBlOGIzZmJmYTNkNmExMWVlZTI1ZGIyZGMwZjMxZjQzOWFhZjBiNjVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogR3VzdGF2byBTdmVyenV0IEJhcmJpZXJpIDxiYXJiaWVyaUBwcm9mdXNpb24ubW9iaT4KIERhdGU6IFRodSwgMjYgTWF5IDIwMTEgMTc6MzA6MDQgLTAzMDAKIFN1YmplY3Q6IFtQQVRDSF0gQWxsb3cgZGlzYWJsaW5nIGF0YXNtYXJ0LCBsdm0yIGFuZCBkZXZpY2VtYXBwZXIgc3VwcG9ydC4KIAogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc2NDcKIAorLS0tCisgY29uZmlndXJlLmFjICAgICAgICAgICAgfCA1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCisgc3JjL2FkYXB0ZXItcHJpdmF0ZS5oICAgfCAgMSAtCisgc3JjL2FkYXB0ZXIuYyAgICAgICAgICAgfCAgMSAtCisgc3JjL2RhZW1vbi5jICAgICAgICAgICAgfCAgNCArKysrCisgc3JjL2RldmljZS1wcml2YXRlLmMgICAgfCAgMiArLQorIHNyYy9kZXZpY2UtcHJpdmF0ZS5oICAgIHwgIDUgKystLS0KKyBzcmMvZGV2aWNlLmMgICAgICAgICAgICB8IDIzICsrKysrKysrKysrKysrKysrLS0tLQorIHNyYy9leHBhbmRlci1wcml2YXRlLmggIHwgIDEgLQorIHNyYy9leHBhbmRlci5jICAgICAgICAgIHwgIDEgLQorIHNyYy9oZWxwZXJzL01ha2VmaWxlLmFtIHwgMjAgKysrKysrKysrKysrKy0tLS0tLQorIHNyYy9oZWxwZXJzL3BhcnR1dGlsLmMgIHwgIDMgKystCisgc3JjL3BvcnQtcHJpdmF0ZS5oICAgICAgfCAgMSAtCisgc3JjL3Byb2JlcnMvTWFrZWZpbGUuYW0gfCAgOCArKysrKystLQorIHRvb2xzL3VkaXNrcy5jICAgICAgICAgIHwgMTAgKysrKysrKystLQorIDE0IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQorCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCA2MmNjMzVkLi5iNjY0MTM1IDEwMDY0NAoraW5kZXggOTQ1NDQyMy4uOGM0ZTRjMiAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCiBAQCAtMTU1LDEzICsxNTUsMzMgQEAgUEtHX0NIRUNLX01PRFVMRVMoUE9MS0lUX0dPQkpFQ1RfMSwgW3BvbGtpdC1nb2JqZWN0LTEgPj0gMC45N10pCkBAIC00OSw4ICs2Niw4IEBACiArQU1fQ09ORElUSU9OQUwoSEFWRV9ERVZNQVBQRVIsIFt0ZXN0ICIkaGF2ZV9kZXZtYXBwZXIiID0gInllcyJdKQogIAogIGhhdmVfbHZtMj1ubwotIEFDX0FSR19FTkFCTEUobHZtMiwgQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1sdm0yXSwgW2Rpc2FibGUgTFZNMiBzdXBwb3J0XSkpCi1AQCAtMTg1LDkgKzIwNSwxOSBAQCBpZiB0ZXN0ICJ4JGVuYWJsZV9kbW1wIiAhPSAieG5vIjsgdGhlbgorIEFDX0FSR19FTkFCTEUobHZtMiwgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWx2bTJdLCBbZW5hYmxlIExWTTIgc3VwcG9ydF0pKQorQEAgLTE4NSw5ICsyMDUsMTkgQEAgaWYgdGVzdCAieCRlbmFibGVfZG1tcCIgPSAieHllcyI7IHRoZW4KICBmaQogIEFNX0NPTkRJVElPTkFMKEhBVkVfRE1NUCwgW3Rlc3QgIiRoYXZlX2RtbXAiID0gInllcyJdKQogIApAQCAtNzMsNyArOTAsNyBAQAogIAogIFBLR19DSEVDS19NT0RVTEVTKExJQlVERVYsIFtsaWJ1ZGV2ID49IDE0M10pCiAgQUNfU1VCU1QoTElCVURFVl9DRkxBR1MpCi1AQCAtMjY3LDkgKzI5NywxMiBAQCBlY2hvICIKK0BAIC0yNzgsOSArMzA4LDEyIEBAIGVjaG8gIgogICAgICAgICAgY3BwZmxhZ3M6ICAgICAgICAgICAgICAgICAgICR7Q1BQRkxBR1N9CiAgICAgICAgICB4c2x0cHJvYzogICAgICAgICAgICAgICAgICAgJHtYU0xUUFJPQ30KICAKQEAgLTk5LDcgKzExNiw3IEBACiAgI2luY2x1ZGUgInR5cGVzLmgiCiAgCiBkaWZmIC0tZ2l0IGEvc3JjL2FkYXB0ZXIuYyBiL3NyYy9hZGFwdGVyLmMKLWluZGV4IGI4NWEwZWYuLjgwMjQyMGIgMTAwNjQ0CitpbmRleCA2NWUwNWIwLi40NWRiOGM4IDEwMDY0NAogLS0tIGEvc3JjL2FkYXB0ZXIuYwogKysrIGIvc3JjL2FkYXB0ZXIuYwogQEAgLTMwLDcgKzMwLDYgQEAKQEAgLTExMSwxMCArMTI4LDEwIEBACiAgI2luY2x1ZGUgImRhZW1vbi5oIgogICNpbmNsdWRlICJhZGFwdGVyLmgiCiBkaWZmIC0tZ2l0IGEvc3JjL2RhZW1vbi5jIGIvc3JjL2RhZW1vbi5jCi1pbmRleCA2MDcyNTAyLi5kMDQzY2IwIDEwMDY0NAoraW5kZXggZmFmY2Y5YS4uMTRlOTUyZiAxMDA2NDQKIC0tLSBhL3NyYy9kYWVtb24uYwogKysrIGIvc3JjL2RhZW1vbi5jCi1AQCAtMTc0NSw2ICsxNzQ1LDcgQEAgbWRzdGF0X2NoYW5nZWRfZXZlbnQgKEdJT0NoYW5uZWwgKmNoYW5uZWwsCitAQCAtMTc0OCw2ICsxNzQ4LDcgQEAgbWRzdGF0X2NoYW5nZWRfZXZlbnQgKEdJT0NoYW5uZWwgKmNoYW5uZWwsCiAgICByZXR1cm4gVFJVRTsKICB9CiAgCkBAIC0xMjIsNyArMTM5LDcgQEAKICBzdGF0aWMgZ2Jvb2xlYW4KICByZWZyZXNoX2F0YV9zbWFydF9kYXRhIChEYWVtb24gKmRhZW1vbikKICB7Ci1AQCAtMTc3Myw2ICsxNzc0LDcgQEAgcmVmcmVzaF9hdGFfc21hcnRfZGF0YSAoRGFlbW9uICpkYWVtb24pCitAQCAtMTc3Niw2ICsxNzc3LDcgQEAgcmVmcmVzaF9hdGFfc21hcnRfZGF0YSAoRGFlbW9uICpkYWVtb24pCiAgCiAgICByZXR1cm4gRkFMU0U7CiAgfQpAQCAtMTMwLDcgKzE0Nyw3IEBACiAgCiAgc3RhdGljIGdib29sZWFuCiAgcmVnaXN0ZXJfZGlza3NfZGFlbW9uIChEYWVtb24gKmRhZW1vbikKLUBAIC0xOTg0LDEyICsxOTg2LDE0IEBAIGRhZW1vbl9uZXcgKHZvaWQpCitAQCAtMTk4NywxMiArMTk4OSwxNCBAQCBkYWVtb25fbmV3ICh2b2lkKQogICAgbW91bnRfZmlsZV9jbGVhbl9zdGFsZSAobCk7CiAgICBnX2xpc3RfZnJlZSAobCk7CiAgCkBAIC0xNDYsMTAgKzE2MywxMCBAQAogICAgUFJPRklMRSAoImRhZW1vbl9uZXcoKTogZW5kIik7CiAgICByZXR1cm4gZGFlbW9uOwogZGlmZiAtLWdpdCBhL3NyYy9kZXZpY2UtcHJpdmF0ZS5jIGIvc3JjL2RldmljZS1wcml2YXRlLmMKLWluZGV4IDIyYTBkMzUuLmZiOTY1MjUgMTAwNjQ0CitpbmRleCA0NTQxOGNlLi5mYjFkOTU5IDEwMDY0NAogLS0tIGEvc3JjL2RldmljZS1wcml2YXRlLmMKICsrKyBiL3NyYy9kZXZpY2UtcHJpdmF0ZS5jCi1AQCAtMTM3OCw3ICsxMzc4LDcgQEAgZGV2aWNlX3NldF9kcml2ZV9hdGFfc21hcnRfdGltZV9jb2xsZWN0ZWQgKERldmljZSAqZGV2aWNlLAorQEAgLTEzOTAsNyArMTM5MCw3IEBAIGRldmljZV9zZXRfZHJpdmVfYXRhX3NtYXJ0X3RpbWVfY29sbGVjdGVkIChEZXZpY2UgKmRldmljZSwKICAKICB2b2lkCiAgZGV2aWNlX3NldF9kcml2ZV9hdGFfc21hcnRfc3RhdHVzIChEZXZpY2UgKmRldmljZSwKQEAgLTE1OSw3ICsxNzYsNyBAQAogICAgaWYgKEdfVU5MSUtFTFkgKGRldmljZS0+cHJpdi0+ZHJpdmVfYXRhX3NtYXJ0X3N0YXR1cyAhPSB2YWx1ZSkpCiAgICAgIHsKIGRpZmYgLS1naXQgYS9zcmMvZGV2aWNlLXByaXZhdGUuaCBiL3NyYy9kZXZpY2UtcHJpdmF0ZS5oCi1pbmRleCBhNmRiN2YyLi43MTQ3M2E2IDEwMDY0NAoraW5kZXggMzJhOWJkMC4uOGM1N2MxMyAxMDA2NDQKIC0tLSBhL3NyYy9kZXZpY2UtcHJpdmF0ZS5oCiArKysgYi9zcmMvZGV2aWNlLXByaXZhdGUuaAogQEAgLTIzLDcgKzIzLDYgQEAKQEAgLTE3MCw3ICsxODcsNyBAQAogIAogICNpbmNsdWRlICJ0eXBlcy5oIgogIAotQEAgLTIyNCw3ICsyMjMsNyBAQCBzdHJ1Y3QgRGV2aWNlUHJpdmF0ZQorQEAgLTIyOCw3ICsyMjcsNyBAQCBzdHJ1Y3QgRGV2aWNlUHJpdmF0ZQogIAogICAgZ2Jvb2xlYW4gZHJpdmVfYXRhX3NtYXJ0X2lzX2F2YWlsYWJsZTsKICAgIGd1aW50NjQgZHJpdmVfYXRhX3NtYXJ0X3RpbWVfY29sbGVjdGVkOwpAQCAtMTc5LDcgKzE5Niw3IEBACiAgICB2b2lkICpkcml2ZV9hdGFfc21hcnRfYmxvYjsKICAgIGdzaXplIGRyaXZlX2F0YV9zbWFydF9ibG9iX3NpemU7CiAgCi1AQCAtMzkxLDcgKzM5MCw3IEBAIHZvaWQgZGV2aWNlX3NldF9ob2xkZXJzX29ianBhdGggKERldmljZSAqZGV2aWNlLCBHU3RydiB2YWx1ZSk7CitAQCAtMzk2LDcgKzM5NSw3IEBAIHZvaWQgZGV2aWNlX3NldF9ob2xkZXJzX29ianBhdGggKERldmljZSAqZGV2aWNlLCBHU3RydiB2YWx1ZSk7CiAgCiAgdm9pZCBkZXZpY2Vfc2V0X2RyaXZlX2F0YV9zbWFydF9pc19hdmFpbGFibGUgKERldmljZSAqZGV2aWNlLCBnYm9vbGVhbiB2YWx1ZSk7CiAgdm9pZCBkZXZpY2Vfc2V0X2RyaXZlX2F0YV9zbWFydF90aW1lX2NvbGxlY3RlZCAoRGV2aWNlICpkZXZpY2UsIGd1aW50NjQgdmFsdWUpOwpAQCAtMTg5LDcgKzIwNiw3IEBACiAgCiAgR19FTkRfREVDTFMKIGRpZmYgLS1naXQgYS9zcmMvZGV2aWNlLmMgYi9zcmMvZGV2aWNlLmMKLWluZGV4IDZhMzQ5NDAuLjdhNWE0YTkgMTAwNjQ0CitpbmRleCAyYWU3ZjM4Li5kNzNmOWQ2IDEwMDY0NAogLS0tIGEvc3JjL2RldmljZS5jCiArKysgYi9zcmMvZGV2aWNlLmMKIEBAIC01MCw3ICs1MCw5IEBACkBAIC0yMDIsNyArMjE5LDcgQEAKICAKICAjaW5jbHVkZSAiZGFlbW9uLmgiCiAgI2luY2x1ZGUgImRldmljZS5oIgotQEAgLTY1OSwxMCArNjYxLDE0IEBAIGdldF9wcm9wZXJ0eSAoR09iamVjdCAqb2JqZWN0LAorQEAgLTY2NCwxMCArNjY2LDE0IEBAIGdldF9wcm9wZXJ0eSAoR09iamVjdCAqb2JqZWN0LAogICAgICBjYXNlIFBST1BfRFJJVkVfQVRBX1NNQVJUX1NUQVRVUzoKICAgICAgICB7CiAgICAgICAgICBjb25zdCBnY2hhciAqc3RhdHVzOwpAQCAtMjE4LDcgKzIzNSw3IEBACiAgICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcgKHZhbHVlLCBzdGF0dXMpOwogICAgICAgIH0KICAgICAgICBicmVhazsKLUBAIC01MTE0LDYgKzUxMjAsNyBAQCBkZXZpY2VfbmV3IChEYWVtb24gKmRhZW1vbiwKK0BAIC01MTQ0LDYgKzUxNTAsNyBAQCBkZXZpY2VfbmV3IChEYWVtb24gKmRhZW1vbiwKICAgICAgICBnb3RvIG91dDsKICAgICAgfQogIApAQCAtMjI2LDcgKzI0Myw3IEBACiAgICAvKiBpZiBqdXN0IGFkZGVkLCB1cGRhdGUgdGhlIHNtYXJ0IGRhdGEgaWYgYXBwbGljYWJsZSAqLwogICAgaWYgKGRldmljZS0+cHJpdi0+ZHJpdmVfYXRhX3NtYXJ0X2lzX2F2YWlsYWJsZSkKICAgICAgewotQEAgLTUxMjEsNiArNTEyOCw3IEBAIGRldmljZV9uZXcgKERhZW1vbiAqZGFlbW9uLAorQEAgLTUxNTEsNiArNTE1OCw3IEBAIGRldmljZV9uZXcgKERhZW1vbiAqZGFlbW9uLAogICAgICAgIGdjaGFyICphdGFfc21hcnRfcmVmcmVzaF9kYXRhX29wdGlvbnNbXSA9IHsgTlVMTCB9OwogICAgICAgIGRldmljZV9kcml2ZV9hdGFfc21hcnRfcmVmcmVzaF9kYXRhIChkZXZpY2UsIGF0YV9zbWFydF9yZWZyZXNoX2RhdGFfb3B0aW9ucywgTlVMTCk7CiAgICAgIH0KQEAgLTIzNCw3ICsyNTEsNyBAQAogIAogICAgUFJPRklMRSAoImRldmljZV9uZXcobmF0aXZlX3BhdGg9JXMpOiBlbmQiLCBuYXRpdmVfcGF0aCk7CiAgIG91dDoKLUBAIC05Nzk0LDE2ICs5ODAyLDE4IEBAIGRyaXZlX2F0YV9zbWFydF9yZWZyZXNoX2RhdGFfY29tcGxldGVkX2NiIChEQnVzR01ldGhvZEludm9jYXRpb24gKmNvbnRleHQsCitAQCAtOTg0MCwxNiArOTg0OCwxOCBAQCBkcml2ZV9hdGFfc21hcnRfcmVmcmVzaF9kYXRhX2NvbXBsZXRlZF9jYiAoREJ1c0dNZXRob2RJbnZvY2F0aW9uICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzdGRvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSkKICB7CkBAIC0yNTYsNyArMjczLDcgQEAKICAgIGJsb2IgPSBOVUxMOwogIAogICAgaWYgKGpvYl93YXNfY2FuY2VsbGVkIHx8IHN0ZG91dCA9PSBOVUxMKQotQEAgLTk5MDcsNiArOTkxNywxMSBAQCBkcml2ZV9hdGFfc21hcnRfcmVmcmVzaF9kYXRhX2NvbXBsZXRlZF9jYiAoREJ1c0dNZXRob2RJbnZvY2F0aW9uICpjb250ZXh0LAorQEAgLTk5NTMsNiArOTk2MywxMSBAQCBkcml2ZV9hdGFfc21hcnRfcmVmcmVzaF9kYXRhX2NvbXBsZXRlZF9jYiAoREJ1c0dNZXRob2RJbnZvY2F0aW9uICpjb250ZXh0LAogICAgZ19mcmVlIChibG9iKTsKICAgIGlmIChkICE9IE5VTEwpCiAgICAgIHNrX2Rpc2tfZnJlZSAoZCk7CkBAIC00MzAsNyArNDQ3LDcgQEAKICB1ZGlza3NfcHJvYmVfc2FzX2V4cGFuZGVyX1NPVVJDRVMgPSB1ZGlza3MtcHJvYmUtc2FzLWV4cGFuZGVyLmMKICB1ZGlza3NfcHJvYmVfc2FzX2V4cGFuZGVyX0NQUEZMQUdTID0gJChBTV9DUFBGTEFHUykgJChHTElCX0NGTEFHUykKIGRpZmYgLS1naXQgYS90b29scy91ZGlza3MuYyBiL3Rvb2xzL3VkaXNrcy5jCi1pbmRleCA2ZmJkNmE2Li5lMGM0ZmJiIDEwMDY0NAoraW5kZXggOTdlODBkNy4uZDMwMTU5YiAxMDA2NDQKIC0tLSBhL3Rvb2xzL3VkaXNrcy5jCiArKysgYi90b29scy91ZGlza3MuYwogQEAgLTQzLDcgKzQzLDkgQEAKQEAgLTQ0Myw3ICs0NjAsNyBAQAogIAogICNpbmNsdWRlICJ1ZGlza3MtZGFlbW9uLWdsdWUuaCIKICAjaW5jbHVkZSAidWRpc2tzLWRldmljZS1nbHVlLmgiCi1AQCAtOTc5LDYgKzk4MSw3IEBAIGVuZF9oaWdobGlnaHQgKHZvaWQpCitAQCAtOTgzLDYgKzk4NSw3IEBAIGVuZF9oaWdobGlnaHQgKHZvaWQpCiAgICAgIGdfcHJpbnQgKCJceDFCWzBtIik7CiAgfQogIApAQCAtNDUxLDcgKzQ2OCw3IEBACiAgc3RhdGljIGNvbnN0IGdjaGFyICoKICBhdGFfc21hcnRfc3RhdHVzX3RvX2Rlc2MgKGNvbnN0IGdjaGFyICpzdGF0dXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAqb3V0X2hpZ2hsaWdodCkKLUBAIC0xMTU5LDYgKzExNjIsNyBAQCBwcmludF9hdGFfc21hcnRfYXR0ciAoU2tEaXNrICpkLAorQEAgLTExNjMsNiArMTE2Niw3IEBAIHByaW50X2F0YV9zbWFydF9hdHRyIChTa0Rpc2sgKmQsCiAgICBnX2ZyZWUgKHRocmVzaG9sZF9zdHIpOwogICAgZ19mcmVlIChwcmV0dHkpOwogIH0KQEAgLTQ1OSw3ICs0NzYsNyBAQAogIAogIHN0YXRpYyB2b2lkCiAgZG9fc2hvd19pbmZvIChjb25zdCBjaGFyICpvYmplY3RfcGF0aCkKLUBAIC0xNDQwLDcgKzE0NDQsNyBAQCBkb19zaG93X2luZm8gKGNvbnN0IGNoYXIgKm9iamVjdF9wYXRoKQorQEAgLTE0NDUsNyArMTQ0OSw3IEBAIGRvX3Nob3dfaW5mbyAoY29uc3QgY2hhciAqb2JqZWN0X3BhdGgpCiAgICAgICAgICBnX3ByaW50ICgiICAgIGlmIHNwZWVkOiAgICAgICAgICAgICAgICAgICUiIEdfR0lOVDY0X0ZPUk1BVCAiIGJpdHMvc1xuIiwgcHJvcHMtPmRyaXZlX2Nvbm5lY3Rpb25fc3BlZWQpOwogIAogICAgICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTQ2OCw3ICs0ODUsNyBAQAogICAgICAgIGlmICghcHJvcHMtPmRyaXZlX2F0YV9zbWFydF9pc19hdmFpbGFibGUpCiAgICAgICAgICB7CiAgICAgICAgICAgIGdfcHJpbnQgKCIgICAgQVRBIFNNQVJUOiAgICAgICAgICAgICAgICAgbm90IGF2YWlsYWJsZVxuIik7Ci1AQCAtMTQ5Myw3ICsxNDk3LDkgQEAgZG9fc2hvd19pbmZvIChjb25zdCBjaGFyICpvYmplY3RfcGF0aCkKK0BAIC0xNDk4LDcgKzE1MDIsOSBAQCBkb19zaG93X2luZm8gKGNvbnN0IGNoYXIgKm9iamVjdF9wYXRoKQogICAgICAgICAgICAgIH0KICAKICAgICAgICAgIH0KQEAgLTQ3OSw2ICs0OTYsMyBAQAogICAgICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KICAKICAgICAgfQotLS0gCi0xLjcuNS5yYzMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzL3VkaXNrcy0xLjAuNS1maXgtc2VydmljZS1maWxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzL3VkaXNrcy0xLjAuNS1maXgtc2VydmljZS1maWxlLnBhdGNoCmluZGV4IGQ1ZTg0ZDMuLmQ0ZWZhOTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy91ZGlza3MtMS4wLjUtZml4LXNlcnZpY2UtZmlsZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VkaXNrcy91ZGlza3MvdWRpc2tzLTEuMC41LWZpeC1zZXJ2aWNlLWZpbGUucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDdkNjFhZDA0ODg1NmVlMjM5ODcwYjkxN2Q2OTMzZTNhZDYzZjA3ODkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGE0ZjZhYTViZTM3YWU2ZTIxOTRjOWRlZDJlYThjMWRhMzMwZjU2OTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBEYXZpZCBLaW5nIDxhbWlnYWRhdmVAYW1pZ2FkYXZlLmNvbT4KIERhdGU6IFRodSwgMiBKdWwgMjAxNSAxMzo0OToyMiArMDEwMAogU3ViamVjdDogW1BBVENIXSBGaXggc3lzdGVtZCBzZXJ2aWNlIGZpbGUKQEAgLTEyLDYgKzEyLDcgQEAKIFsxXSBodHRwOi8vcGtncy5mZWRvcmFwcm9qZWN0Lm9yZy9jZ2l0L3VkaXNrcy5naXQvdHJlZS91ZGlza3MtMS4wLjUtZml4LXNlcnZpY2UtZmlsZS5wYXRjaAogCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKwogLS0tCiAgZGF0YS9NYWtlZmlsZS5hbSB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKQEAgLTI5LDUgKzMwLDMgQEAKICBlbmRpZgogIAogIHVkZXZydWxlc2RpciA9ICQoc2xhc2hsaWJkaXIpL3VkZXYvcnVsZXMuZAotLS0gCi0yLjQuNQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzMi8wMDAxLWRhdGEtZml4LW91dC1vZi10cmVlLWJ1aWxkLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzMi8wMDAxLWRhdGEtZml4LW91dC1vZi10cmVlLWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjYmQ4NzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VkaXNrcy91ZGlza3MyLzAwMDEtZGF0YS1maXgtb3V0LW9mLXRyZWUtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwzNSBAQAorRnJvbSA3ZmRkNGFjZGY2ZGFmOTVjNWNjNzRlOTY4ZjQ3MTA1MTNjOGRkYWVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMjMgTWFyIDIwMTggMTg6MzM6NTIgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gZGF0YTogZml4IG91dCBvZiB0cmVlIGJ1aWxkCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK3wgc2VkOiBjYW4ndCByZWFkIHVkaXNrczIuc2VydmljZS5pbjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbMV0KKworWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9yYWdlZC1wcm9qZWN0L3VkaXNrcy9wdWxsLzUxMAorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgZGF0YS9NYWtlZmlsZS5hbSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2RhdGEvTWFrZWZpbGUuYW0gYi9kYXRhL01ha2VmaWxlLmFtCitpbmRleCBkZGY5ZTNkNi4uYjM4OTI4YzggMTAwNjQ0CistLS0gYS9kYXRhL01ha2VmaWxlLmFtCisrKysgYi9kYXRhL01ha2VmaWxlLmFtCitAQCAtMjIsNyArMjIsNyBAQCBzeXN0ZW1kc2VydmljZWRpciAgICAgICA9ICQoc3lzdGVtZHN5c3RlbXVuaXRkaXIpCisgc3lzdGVtZHNlcnZpY2VfREFUQSAgICAgPSAkKHN5c3RlbWRzZXJ2aWNlX2luX2ZpbGVzOi5zZXJ2aWNlLmluPS5zZXJ2aWNlKQorIAorICQoc3lzdGVtZHNlcnZpY2VfREFUQSk6IHVkaXNrczIuc2VydmljZS5pbiBNYWtlZmlsZQorLQlAc2VkIC1lICJzfFxAdWRpc2tzZHByaXZkaXJcQHwkKGxpYmV4ZWNkaXIpL3VkaXNrczJ8IiB1ZGlza3MyLnNlcnZpY2UuaW4gPiB1ZGlza3MyLnNlcnZpY2UKKysJQHNlZCAtZSAic3xcQHVkaXNrc2Rwcml2ZGlyXEB8JChsaWJleGVjZGlyKS91ZGlza3MyfCIgJChzcmNkaXIpL3VkaXNrczIuc2VydmljZS5pbiA+IHVkaXNrczIuc2VydmljZQorIGVuZGlmCisgCisgdWRldnJ1bGVzZGlyID0gJCh1ZGV2ZGlyKS9ydWxlcy5kCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VkaXNrcy91ZGlza3MyXzIuMS44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzMl8yLjEuOC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNlZmM1MS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VkaXNrcy91ZGlza3MyXzIuMS44LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotU1VNTUFSWSA9ICJ1ZGlza3MgcHJvdmlkZXMgZGJ1cyBpbnRlcmZhY2VzIGZvciBkaXNrcyBhbmQgc3RvcmFnZSBkZXZpY2VzIgotTElDRU5TRSA9ICJHUEx2MisgJiBMR1BMdjIrIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZGQ3OWY2ZGJiZmZkYmM4ZTg2YjA4NmE4ZjBjMGVmNDMiCi0KLURFUEVORFMgPSAiYWNsIGxpYmF0YXNtYXJ0IHBvbGtpdCBsaWJndWRldiBkYnVzLWdsaWIgZ2xpYi0yLjAgaW50bHRvb2wtbmF0aXZlIGdub21lLWNvbW1vbi1uYXRpdmUgbGlieHNsdC1uYXRpdmUiCi1ERVBFTkRTICs9ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IgotCi1SREVQRU5EU18ke1BOfSA9ICJhY2wiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3VkaXNrcy5mcmVlZGVza3RvcC5vcmcvcmVsZWFzZXMvdWRpc2tzLSR7UFZ9LnRhci5iejIgXAotICAgICAgICAgICBmaWxlOi8vbm9uLWdudS1saWJjLnBhdGNoIFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICI1MDFkMTFjMjQzYmQ4YzZjMDA2NTA0NzRjZDJhZmFhYiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkYTQxNjkxNDgxMmE3N2U1ZjRkODJiODFkZWI4YzI1Nzk5ZmQzMjI4ZDI3ZDUyZjdiZjg5YTUwMWIxODU3ZGRhIgotCi1DVkVfUFJPRFVDVCA9ICJ1ZGlza3MiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHN5c3RlbWQgZ3RrLWRvYyBnb2JqZWN0LWludHJvc3BlY3Rpb24KLQotUyA9ICIke1dPUktESVJ9L3VkaXNrcy0ke1BWfSIKLQotRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1tYW4gLS1kaXNhYmxlLWd0ay1kb2MiCi0KLUZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vcG9sa2l0LTEvZXh0ZW5zaW9ucy8qLnNvIFwKLSAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2RidXMtMS8gXAotICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vcG9sa2l0LTEgXAotICAgICAgICAgICAgICAgICR7bm9uYXJjaF9iYXNlX2xpYmRpcn0vdWRldi8qIFwKLSAgICAgICAgICAgICAgICAke2V4ZWNfcHJlZml4fSR7bm9uYXJjaF9iYXNlX2xpYmRpcn0vdWRpc2tzMi8qIFwKLSIKLQotUEFDS0FHRVMgPSsgIiR7UE59LWxpYnMiCi0KLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2Jhc2gtY29tcGxldGlvbiIKLUZJTEVTXyR7UE59LWxpYnMgPSAiJHtsaWJkaXJ9L2xpYioke1NPTElCU30iCi0KLUZJTEVTXyR7UE59LWRiZyArPSAiJHtleGVjX3ByZWZpeH0ke25vbmFyY2hfYmFzZV9saWJkaXJ9L3VkaXNrczIvLmRlYnVnIgotCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiJHtCUE59LnNlcnZpY2UiCi1TWVNURU1EX0FVVE9fRU5BQkxFID0gImRpc2FibGUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VkaXNrcy91ZGlza3MyXzIuNy42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzMl8yLjcuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDIyYWZkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzMl8yLjcuNi5iYgpAQCAtMCwwICsxLDQ5IEBACitTVU1NQVJZID0gInVkaXNrcyBwcm92aWRlcyBkYnVzIGludGVyZmFjZXMgZm9yIGRpc2tzIGFuZCBzdG9yYWdlIGRldmljZXMiCitMSUNFTlNFID0gIkdQTHYyKyAmIExHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kZDc5ZjZkYmJmZmRiYzhlODZiMDg2YThmMGMwZWY0MyIKKworREVQRU5EUyA9ICIgXAorICAgIGFjbCBcCisgICAgbGliYXRhc21hcnQgXAorICAgIHBvbGtpdCBcCisgICAgbGliZ3VkZXYgXAorICAgIGRidXMtZ2xpYiBcCisgICAgZ2xpYi0yLjAgXAorICAgIGxpYmJsb2NrZGV2IFwKKyAgICBpbnRsdG9vbC1uYXRpdmUgXAorICAgIGdub21lLWNvbW1vbi1uYXRpdmUgXAorICAgIGxpYnhzbHQtbmF0aXZlIFwKKyIKK0RFUEVORFMgKz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCBkKX0iCisKK1JERVBFTkRTXyR7UE59ID0gImFjbCIKKworU1JDX1VSSSA9ICIgXAorICAgIGdpdDovL2dpdGh1Yi5jb20vc3RvcmFnZWQtcHJvamVjdC91ZGlza3MuZ2l0IFwKKyAgICBmaWxlOi8vMDAwMS1kYXRhLWZpeC1vdXQtb2YtdHJlZS1idWlsZC5wYXRjaCBcCisgICAgZmlsZTovL25vbi1nbnUtbGliYy5wYXRjaCBcCisiCitTUkNSRVYgPSAiYjY0NzFmMmU5OWY2YWExMTMzYWYwZGU2NThmMWZhMDVjNzQ4OTMyYyIKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK0NWRV9QUk9EVUNUID0gInVkaXNrcyIKKworaW5oZXJpdCBhdXRvdG9vbHMgc3lzdGVtZCBndGstZG9jIGdvYmplY3QtaW50cm9zcGVjdGlvbgorCitFWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLW1hbiAtLWRpc2FibGUtZ3RrLWRvYyIKKworRklMRVNfJHtQTn0gKz0gIiBcCisgICAgJHtkYXRhZGlyfS9kYnVzLTEvIFwKKyAgICAke2RhdGFkaXJ9L3BvbGtpdC0xIFwKKyAgICAke2RhdGFkaXJ9L2Jhc2gtY29tcGxldGlvbiBcCisgICAgJHtsaWJkaXJ9L3BvbGtpdC0xL2V4dGVuc2lvbnMvKi5zbyBcCisgICAgJHtub25hcmNoX2Jhc2VfbGliZGlyfS91ZGV2LyogXAorICAgICR7ZXhlY19wcmVmaXh9JHtub25hcmNoX2Jhc2VfbGliZGlyfS91ZGlza3MyLyogXAorICAgICR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0gXAorIgorCitQQUNLQUdFUyA9KyAiJHtQTn0tbGlicyIKK0ZJTEVTXyR7UE59LWxpYnMgPSAiJHtsaWJkaXJ9L2xpYioke1NPTElCU30iCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICIke0JQTn0uc2VydmljZSIKK1NZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbS8wMDAxLUFkZC1zdXBwb3J0LWZvci1hYXJjaDY0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91aW0vdWltLzAwMDEtQWRkLXN1cHBvcnQtZm9yLWFhcmNoNjQucGF0Y2gKaW5kZXggNGIxMjQ5NC4uMzkxYjBlNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91aW0vdWltLzAwMDEtQWRkLXN1cHBvcnQtZm9yLWFhcmNoNjQucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91aW0vdWltLzAwMDEtQWRkLXN1cHBvcnQtZm9yLWFhcmNoNjQucGF0Y2gKQEAgLTEsOSArMSwxMCBAQAotRnJvbSAyNGZkNTJjYzQ1ZjdiNWZmNDVhZmUwNzJmNWZiZTY2NDg1ZGY4YzhlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA4MmY0NGY1M2I5YTk3NjZjMmVjODE2ZjIzNzUwNmJlYjk1M2ViMzMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBzdXNlLmRlPgogRGF0ZTogV2VkLCAyOSBPY3QgMjAxNCAxNDoxODoyOCArMDEwMAogU3ViamVjdDogW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgYWFyY2g2NAogCiAqIGluY2x1ZGUvcHJpdmF0ZS9nY2NvbmZpZy5oOiBBZGQgc3VwcG9ydCBmb3IgYWFyY2g2NC4KKwogLS0tCiAgc2lnc2NoZW1lL2xpYmdjcm9vdHMvaW5jbHVkZS9wcml2YXRlL2djY29uZmlnLmggfCAzNyArKysrKysrKysrKysrKysrKysrKysrKysrCiAgMSBmaWxlIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKykKQEAgLTc3LDYgKzc4LDMgQEAKICAjIGlmZGVmIEFSTTMyCiAgIyAgIGRlZmluZSBDUFBfV09SRFNaIDMyCiAgIyAgIGRlZmluZSBNQUNIX1RZUEUgIkFSTTMyIgotLS0gCi0yLjEzLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91aW0vdWltLzAwMDEtZml4LWJ1Zy1mb3ItY3Jvc3MtY29tcGlsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbS8wMDAxLWZpeC1idWctZm9yLWNyb3NzLWNvbXBpbGUucGF0Y2gKaW5kZXggZGY4MmIwNy4uMGM4ZjAyZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91aW0vdWltLzAwMDEtZml4LWJ1Zy1mb3ItY3Jvc3MtY29tcGlsZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VpbS91aW0vMDAwMS1maXgtYnVnLWZvci1jcm9zcy1jb21waWxlLnBhdGNoCkBAIC0xLDkgKzEsMTAgQEAKLUZyb20gMjkxODE5NmJhNzgyZGZhNDQwMWJkY2E5MTdhZDRkZTE5MTA1MDVlMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gMDhiNWU1MTIyNGVkOTViMWU3NmU5OTg3M2I1ZjlmNTk4NDBiMGE3NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IExlaSBNYW9odWkgPGxlaW1hb2h1aUBjbi5mdWppdHN1LmNvbT4KIERhdGU6IEZyaSwgMjEgQXVnIDIwMTUgMTU6NTg6NDIgKzA5MDAKIFN1YmplY3Q6IFtQQVRDSF0gZml4IGJ1ZyBmb3IgY3Jvc3MgY29tcGlsZQogCiBTaWduZWQtb2ZmLWJ5OiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CisKIC0tLQogIGNvbmZpZ3VyZS5hYyB8IDQgKystLQogIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCkBAIC0yMyw2ICsyNCwzIEBACiAgICAgIEFDX0NIRUNLX0xJQihjdXJzZXMsIHRnZXRlbnQsIExJQkVESVRfTElCUz0iLWxjdXJzZXMiLAogICAgICAgICAgW0FDX0NIRUNLX0xJQihuY3Vyc2VzLCB0Z2V0ZW50LCBMSUJFRElUX0xJQlM9Ii1sbmN1cnNlcyIsCiAgICAgICAgICAgICAgQUNfTVNHX1dBUk4oImxpYmVkaXQgbmVlZHMgbGliY3Vyc2VzIG9yIGxpYm5jdXJzZXMuIGRpc2FibGVkLi4uIikKLS0tIAotMS44LjQuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VpbS91aW0vdWltLW1vZHVsZS1tYW5hZ2VyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91aW0vdWltL3VpbS1tb2R1bGUtbWFuYWdlci5wYXRjaAppbmRleCA4NTY5YmYzLi4zMDc4YWYwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VpbS91aW0vdWltLW1vZHVsZS1tYW5hZ2VyLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbS91aW0tbW9kdWxlLW1hbmFnZXIucGF0Y2gKQEAgLTEsMTEgKzEsMjEgQEAKLS0tLSB1aW0tMS4xLjAvc2NtL01ha2VmaWxlLmFtfgkyMDA2LTA2LTA5IDEwOjQ2OjEyLjAwMDAwMDAwMCArMDkwMAotKysrIHVpbS0xLjEuMC9zY20vTWFrZWZpbGUuYW0JMjAwNi0wNi0xOSAyMzowMDoxNS42MjAwMDAwMDAgKzA5MDAKLUBAIC01OCw3ICs1OCw3IEBACi0gICBtb2R1bGVfbmFtZXMgKz0gInNjaW0iCitGcm9tIGQ2MTQ5NWQzZmIwMzk4NDJiODJkZjQ0MTg0YzY3ZWIzYzEyNTYxMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBCaWFuIE5haW1lbmcgPGJpYW5ubUBjbi5mdWppdHN1LmNvbT4KK0RhdGU6IEZyaSwgMjYgSnVuIDIwMTUgMTI6NTc6NDggKzA5MDAKKworLS0tCisgc2NtL01ha2VmaWxlLmFtIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc2NtL01ha2VmaWxlLmFtIGIvc2NtL01ha2VmaWxlLmFtCitpbmRleCAxNGQ5MzkzLi5lOGExMDgzIDEwMDY0NAorLS0tIGEvc2NtL01ha2VmaWxlLmFtCisrKysgYi9zY20vTWFrZWZpbGUuYW0KK0BAIC0xMTksNyArMTE5LDcgQEAgaWYgRVhQQVQKKyAgIG1vZHVsZV9uYW1lcyArPSAieWFob28tanAiCiAgZW5kaWYKICAKIC1VSU1fTU9EVUxFX01BTkFHRVIgPSAkKHRvcF9idWlsZGRpcikvdWltL3VpbS1tb2R1bGUtbWFuYWdlcgogK1VJTV9NT0RVTEVfTUFOQUdFUiA9IHVpbS1tb2R1bGUtbWFuYWdlcgogIFVJTV9NT0RVTEVfTUFOQUdFUl9FTlYgPSBcCisgICAgICAgICBMSUJVSU1fU1lTVEVNX1NDTV9GSUxFUz0kKGFic190b3Bfc3JjZGlyKS9zaWdzY2hlbWUvbGliIFwKICAgICAgICAgIExJQlVJTV9TQ01fRklMRVM9JChhYnNfc3JjZGlyKSBcCi0gICAgICAgICBMSUJVSU1fUExVR0lOX0xJQl9ESVI9JChhYnNfdG9wX2J1aWxkZGlyKS91aW0vLmxpYnMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbV8xLjguNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbV8xLjguNi5iYgppbmRleCAyNzE3MThlLi5hZjI4ODk1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VpbS91aW1fMS44LjYuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91aW0vdWltXzEuOC42LmJiCkBAIC0xNywxMSArMTcsMTUgQEAKIERFUEVORFNfYXBwZW5kX2NsYXNzLXRhcmdldCA9ICIgaW50bHRvb2wtbmF0aXZlIGd0aysgZ3RrKzMgdWltLW5hdGl2ZSB0YWthby1mb250cyIKIAogUkRFUEVORFNfdWltID0gImxpYnVpbTAgbGliZWRpdCIKLVJERVBFTkRTX3VpbS1hbnRoeSA9ICJ0YWthby1mb250cyBhbnRoeSBsaWJhbnRoeTAgZ2xpYmMtdXRpbHMgZ2xpYmMtZ2NvbnYtZXVjLWpwIgorUkRFUEVORFNfdWltLWFudGh5ID0gInRha2FvLWZvbnRzIGFudGh5IGxpYmFudGh5MCIKK1JERVBFTkRTX3VpbS1hbnRoeV9hcHBlbmRfbGliYy1nbGliYyA9ICIgZ2xpYmMtdXRpbHMgZ2xpYmMtZ2NvbnYtZXVjLWpwIgogCiBMRUFEX1NPTkFNRSA9ICJsaWJ1aW0uc28uMSIKIAotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQgcWVtdSBndGstaW1tb2R1bGVzLWNhY2hlCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQgcWVtdSBndGstaW1tb2R1bGVzLWNhY2hlCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKIEdUS0lNTU9EVUxFU19QQUNLQUdFUyA9ICJ1aW0tZ3RrMi4wIHVpbS1ndGszIgogCiBFWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1lbWFjcyBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VuaXhvZGJjL2ZpbGVzL2RvLW5vdC11c2UtbGlibHRkbC1zb3VyY2UtZGlyZWN0b3J5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91bml4b2RiYy9maWxlcy9kby1ub3QtdXNlLWxpYmx0ZGwtc291cmNlLWRpcmVjdG9yeS5wYXRjaAppbmRleCA2OWQyNmFkLi4yNDk5Y2ZmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VuaXhvZGJjL2ZpbGVzL2RvLW5vdC11c2UtbGlibHRkbC1zb3VyY2UtZGlyZWN0b3J5LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdW5peG9kYmMvZmlsZXMvZG8tbm90LXVzZS1saWJsdGRsLXNvdXJjZS1kaXJlY3RvcnkucGF0Y2gKQEAgLTEzLDIyICsxMywyMiBAQAogIDIgZmlsZXMgY2hhbmdlZCwgMyBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KLWluZGV4IGU4ODFjY2EuLjEzMjE4MDIgMTAwNjQ0CitpbmRleCA0NjI4NDAxLi5lODk4OWJmIDEwMDY0NAogLS0tIGEvTWFrZWZpbGUuYW0KICsrKyBiL01ha2VmaWxlLmFtCi1AQCAtNSw3ICs1LDYgQEAgU1VCRElSUyA9IFwKK0BAIC0xMSw3ICsxMSw2IEBAIFNVQkRJUlMgPSBcCiAgCWxvZyBcCiAgCWxzdCBcCiAgCWluaSBcCi0tICAgIGxpYmx0ZGwgXAorLQlsaWJsdGRsIFwKICAJb2RiY2luc3QgXAogIAlEcml2ZXJNYW5hZ2VyIFwKICAJZXhlIFwKIGRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDIxODUwMmYuLmQ1MGI3YWYgMTAwNjQ0CitpbmRleCBlNGJjZGFmLi41OGFhNWM1IDEwMDY0NAogLS0tIGEvY29uZmlndXJlLmFjCiArKysgYi9jb25maWd1cmUuYWMKLUBAIC0xMzYsOSArMTM2LDcgQEAgZG5sIEFDX0NPTkZJR19NQUNST19ESVIoW2xpYmx0ZGwvbTRdKQorQEAgLTE0NCw5ICsxNDQsNyBAQCBkbmwgQUNfQ09ORklHX01BQ1JPX0RJUihbbGlibHRkbC9tNF0pCiAgZG5sIExUX0NPTkZJR19MVERMX0RJUihbbGlibHRkbF0pCiAgZG5sIExURExfSU5JVAogIApAQCAtMzksNSArMzksNSBAQAogIGRubCBTdWJzdGl0dXRlIElOQ0xUREwgYW5kIExJQkxUREwgaW4gdGhlIE1ha2VmaWxlcwogIEFDX1NVQlNUKExURExJTkNMKQogLS0gCi0yLjguMQorMi4xMi4zCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdW5peG9kYmMvdW5peG9kYmNfMi4zLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VuaXhvZGJjL3VuaXhvZGJjXzIuMy40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjU3ZjM3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdW5peG9kYmMvdW5peG9kYmNfMi4zLjQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1TVU1NQVJZID0gIkFuIE9wZW4gU291cmNlIE9EQkMgc3ViLXN5c3RlbSIKLURFU0NSSVBUSU9OID0gInVuaXhPREJDIGlzIGFuIE9wZW4gU291cmNlIE9EQkMgc3ViLXN5c3RlbSBhbmQgYW4gT0RCQyBTREsgXAotZm9yIExpbnV4LCBNYWMgT1NYLCBhbmQgVU5JWC4iCi0KLUhPTUVQQUdFID0gImh0dHA6Ly93d3cudW5peG9kYmMub3JnLyIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kN2IzN2JmODBhM2RmNWE2NWIzNTU0MzNhZTM2ZDIwNiIKLQotREVQRU5EUyA9ICJsaWJ0b29sIG15c3FsNSIKLQotU1JDX1VSSSA9ICJmdHA6Ly9mdHAudW5peG9kYmMub3JnL3B1Yi91bml4T0RCQy91bml4T0RCQy0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vZG8tbm90LXVzZS1saWJsdGRsLXNvdXJjZS1kaXJlY3RvcnkucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gImJkMjVkMjYxY2ExODA4Yzk0N2NiNjg3ZTIwMzRiZTgxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJlMTUwOWE5NmJiMThkMjQ4YmYwOGVhZDBkNzQ4MDQ5NTczMDRmZjdjNmY4YjJlNTk2NTMwOWM2MzI0MjFlMzkiCi0KLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcAotCi1TID0gIiR7V09SS0RJUn0vdW5peE9EQkMtJHtQVn0iCi0KLUVYVFJBX09FTUFLRSArPSAiTElCUz0tbGx0ZGwiCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgewotICAgICMgb2xkIG00IGZpbGVzIHdpbGwgY2F1c2UgbGlidG9vbCB2ZXJzaW9uIGRvbid0IG1hdGNoCi0gICAgcm0gLXJmIG00LyoKLSAgICBybSAtZnIgbGlibHRkbAotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91bml4b2RiYy91bml4b2RiY18yLjMuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdW5peG9kYmMvdW5peG9kYmNfMi4zLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJkOWRiOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdW5peG9kYmMvdW5peG9kYmNfMi4zLjYuYmIKQEAgLTAsMCArMSwyNyBAQAorU1VNTUFSWSA9ICJBbiBPcGVuIFNvdXJjZSBPREJDIHN1Yi1zeXN0ZW0iCitERVNDUklQVElPTiA9ICJ1bml4T0RCQyBpcyBhbiBPcGVuIFNvdXJjZSBPREJDIHN1Yi1zeXN0ZW0gYW5kIGFuIE9EQkMgU0RLIFwKK2ZvciBMaW51eCwgTWFjIE9TWCwgYW5kIFVOSVguIgorCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LnVuaXhvZGJjLm9yZy8iCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDdiMzdiZjgwYTNkZjVhNjViMzU1NDMzYWUzNmQyMDYiCisKK0RFUEVORFMgPSAibGlidG9vbCBteXNxbDUiCisKK1NSQ19VUkkgPSAiZnRwOi8vZnRwLnVuaXhvZGJjLm9yZy9wdWIvdW5peE9EQkMvdW5peE9EQkMtJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL2RvLW5vdC11c2UtbGlibHRkbC1zb3VyY2UtZGlyZWN0b3J5LnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhODYyOWZkMjk1M2IwNGI0NjM5ZDBhOWQ4YTVjZjlkMSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI4OGI2MzdmNjQ3YzA1MmVjYzM4NjFhM2JhYTI3NWMzYjUwM2IxOTNiNmE0OWZmOGMyOGIyNTY4NjU2ZDE0ZDY5IgorCitpbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAKKworUyA9ICIke1dPUktESVJ9L3VuaXhPREJDLSR7UFZ9IgorCitFWFRSQV9PRU1BS0UgKz0gIkxJQlM9LWxsdGRsIgorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKyAgICAjIG9sZCBtNCBmaWxlcyB3aWxsIGNhdXNlIGxpYnRvb2wgdmVyc2lvbiBkb24ndCBtYXRjaAorICAgIHJtIC1yZiBtNC8qCisgICAgcm0gLWZyIGxpYmx0ZGwKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXBvd2VyL3Vwb3dlcl8wLjk5LjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Vwb3dlci91cG93ZXJfMC45OS41LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzE0NTM0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXBvd2VyL3Vwb3dlcl8wLjk5LjUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi1ERVNDUklQVElPTiA9ICJVUG93ZXIgaXMgYW4gYWJzdHJhY3Rpb24gZm9yIGVudW1lcmF0aW5nIHBvd2VyIGRldmljZXMsIGxpc3RlbmluZyB0byBkZXZpY2UgZXZlbnRzIGFuZCBxdWVyeWluZyBoaXN0b3J5IGFuZCBzdGF0aXN0aWNzLiAiCi1MSUNFTlNFID0gIkdQTHYyKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTBkZThmYmYxZDk3YTE0MGQxZDkzYjlmMTRkY2ZiZjA4IgotCi1ERVBFTkRTID0gImludGx0b29sLW5hdGl2ZSBsaWJ1c2IxIGxpYmd1ZGV2IGdsaWItMi4wIGRidXMtZ2xpYiBwb2xraXQiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3Vwb3dlci5mcmVlZGVza3RvcC5vcmcvcmVsZWFzZXMvJHtCUE59LSR7UFZ9LnRhci54eiIKLVNSQ19VUklbbWQ1c3VtXSA9ICJlYzU3YjRiN2JmMGFmNTY4ZjlhN2E1NjAzYzkyMWQ5NyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI3ODYwNTY2NGQwMjdjNzg4ZjZhYjYzYzUwOTUwYmU2ZTg2YzZiYTVkMDMwYzRjZjM1YTY2NjQzMzdkODdmM2IyIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ2V0dGV4dCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3lzdGVtZAotCi1QQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsIGQpfSIKLVBBQ0tBR0VDT05GSUdbaWRldmljZV0gPSAiLS13aXRoLWlkZXZpY2UsLS13aXRob3V0LWlkZXZpY2UsbGliaW1vYmlsZWRldmljZSBsaWJwbGlzdCIKLVBBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiLS13aXRoLXN5c3RlbWR1dGlsZGlyPSR7c3lzdGVtZF91bml0ZGlyfSAtLXdpdGgtc3lzdGVtZHN5c3RlbXVuaXRkaXI9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAtLXdpdGhvdXQtc3lzdGVtZHV0aWxkaXIgLS13aXRob3V0LXN5c3RlbWRzeXN0ZW11bml0ZGlyLHN5c3RlbWQiCi0KLUVYVFJBX09FQ09ORiA9ICIgLS13aXRoLWJhY2tlbmQ9bGludXgiCi0KLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJ1cG93ZXIuc2VydmljZSIKLSMgZG9uJ3Qgc3RhcnQgb24gYm9vdCBieSBkZWZhdWx0IC0gZGJ1cyBkb2VzIHRoYXQgb24gZGVtYW5kCi1TWVNURU1EX0FVVE9fRU5BQkxFID0gImRpc2FibGUiCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgewotICAgIHNlZCAtaSAtZSBzOi1ub25ldDpcOmcgJHtTfS9kb2MvbWFuL01ha2VmaWxlLmFtCi0gICAgc2VkIC1pIC1lICdzOiBkb2MgOiA6ZycgJHtTfS9NYWtlZmlsZS5hbQotfQotCi1SREVQRU5EU18ke1BOfSArPSAiZGJ1cyIKLVJSRUNPTU1FTkRTXyR7UE59ICs9ICJwbS11dGlscyIKLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2RidXMtMS8gXAotICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vcG9sa2l0LTEvIFwKLSAgICAgICAgICAgICAgICAke2Jhc2VfbGliZGlyfS91ZGV2LyogXAotIgotCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7YmFzZV9saWJkaXJ9L3VkZXYvLmRlYnVnIgotCi0KLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91cG93ZXIvdXBvd2VyXzAuOTkuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXBvd2VyL3Vwb3dlcl8wLjk5LjcuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTczZmJlNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXBvd2VyL3Vwb3dlcl8wLjk5LjcuYmIKQEAgLTAsMCArMSwzNCBAQAorREVTQ1JJUFRJT04gPSAiVVBvd2VyIGlzIGFuIGFic3RyYWN0aW9uIGZvciBlbnVtZXJhdGluZyBwb3dlciBkZXZpY2VzLCBsaXN0ZW5pbmcgdG8gZGV2aWNlIGV2ZW50cyBhbmQgcXVlcnlpbmcgaGlzdG9yeSBhbmQgc3RhdGlzdGljcy4gIgorTElDRU5TRSA9ICJHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wZGU4ZmJmMWQ5N2ExNDBkMWQ5M2I5ZjE0ZGNmYmYwOCIKKworREVQRU5EUyA9ICJpbnRsdG9vbC1uYXRpdmUgbGlidXNiMSBsaWJndWRldiBnbGliLTIuMCBkYnVzLWdsaWIgcG9sa2l0IgorCitTUkNfVVJJID0gImh0dHA6Ly91cG93ZXIuZnJlZWRlc2t0b3Aub3JnL3JlbGVhc2VzLyR7QlBOfS0ke1BWfS50YXIueHoiCitTUkNfVVJJW21kNXN1bV0gPSAiMjM2YmI0MzlkOWZmMTE1MTQ1MGIzZDg1ODIzOTk1MzIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjRiY2MyZjZhYjI1YTI1MzNiYWM3MGI1ODdiY2IwMTllNTkxMjkzMDc2OTIwZjViNWUwNGJkZWRjMTQwYTQwMSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN5c3RlbWQKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCBkKX0iCitQQUNLQUdFQ09ORklHW2lkZXZpY2VdID0gIi0td2l0aC1pZGV2aWNlLC0td2l0aG91dC1pZGV2aWNlLGxpYmltb2JpbGVkZXZpY2UgbGlicGxpc3QiCitQQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0td2l0aC1zeXN0ZW1kdXRpbGRpcj0ke3N5c3RlbWRfdW5pdGRpcn0gLS13aXRoLXN5c3RlbWRzeXN0ZW11bml0ZGlyPSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0sIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLS13aXRob3V0LXN5c3RlbWR1dGlsZGlyIC0td2l0aG91dC1zeXN0ZW1kc3lzdGVtdW5pdGRpcixzeXN0ZW1kIgorCitFWFRSQV9PRUNPTkYgPSAiIC0td2l0aC1iYWNrZW5kPWxpbnV4IgorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAidXBvd2VyLnNlcnZpY2UiCisjIGRvbid0IHN0YXJ0IG9uIGJvb3QgYnkgZGVmYXVsdCAtIGRidXMgZG9lcyB0aGF0IG9uIGRlbWFuZAorU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKyAgICBzZWQgLWkgLWUgczotbm9uZXQ6XDpnICR7U30vZG9jL21hbi9NYWtlZmlsZS5hbQorICAgIHNlZCAtaSAtZSAnczogZG9jIDogOmcnICR7U30vTWFrZWZpbGUuYW0KK30KKworUkRFUEVORFNfJHtQTn0gKz0gImRidXMiCitSUkVDT01NRU5EU18ke1BOfSArPSAicG0tdXRpbHMiCitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9kYnVzLTEvIFwKKyAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3BvbGtpdC0xLyBcCisgICAgICAgICAgICAgICAgJHtiYXNlX2xpYmRpcn0vdWRldi8qIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXJpcGFyc2VyL3VyaXBhcnNlcl8wLjguNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXJpcGFyc2VyL3VyaXBhcnNlcl8wLjguNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGJlODUzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91cmlwYXJzZXIvdXJpcGFyc2VyXzAuOC40LmJiCkBAIC0wLDAgKzEsMTQgQEAKK1NVTU1BUlkgPSAiUkZDIDM5ODYgY29tcGxpYW50IFVSSSBwYXJzaW5nIGxpYnJhcnkiCitIT01FUEFHRSA9ICJodHRwczovL3VyaXBhcnNlci5naXRodWIuaW8iCisKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzJiMGY5Yzc0YWU5NmVlYWI4Y2YxYmYzZWZlMDhkYTIiCisKK1NSQ19VUkkgOj0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9wcm9qZWN0L3VyaXBhcnNlci9Tb3VyY2VzLyR7UFZ9L3VyaXBhcnNlci0ke1BWfS50YXIuYnoyIgorCitpbmhlcml0IGF1dG90b29scworCitFWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLXRlc3QgLS1kaXNhYmxlLWRvYyIKKworU1JDX1VSSVttZDVzdW1dID0gIjlhYWJkYzM2MTE1NDZmNTUzZjRhZjM3MjE2N2RlNmQ2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImNlN2NjZGE0MTM2OTc0ODg5MjMxZTg0MjZhNzg1ZTc1NzhlNjZhNjI4MzAwOWNmZDEzZjFiMjRhNWU2NTdiMjMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VzYi1tb2Rlc3dpdGNoL3VzYi1tb2Rlc3dpdGNoXzIuNS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91c2ItbW9kZXN3aXRjaC91c2ItbW9kZXN3aXRjaF8yLjUuMC5iYgppbmRleCBmZjQzOWYzLi5hYzBkZjhiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VzYi1tb2Rlc3dpdGNoL3VzYi1tb2Rlc3dpdGNoXzIuNS4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXNiLW1vZGVzd2l0Y2gvdXNiLW1vZGVzd2l0Y2hfMi41LjAuYmIKQEAgLTgsNyArOCw5IEBACiBTUkNfVVJJW21kNXN1bV0gPSAiMzhhZDVjOWQ3MGUwNjIyN2EwMDM2MWJkYzJiMWU1NjgiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzFjMGJlMjgwZDQ5YTk5ZWMzZGMwYmUzMzI1YmVmMzIwZDljMDRiNTA3MTRlZjBjZTFlMzZhNjE0ZDY4NzYzMyIKIAotaW5oZXJpdCBwa2djb25maWcKK2luaGVyaXQgcGtnY29uZmlnIHN5c3RlbWQKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInVzYl9tb2Rlc3dpdGNoQC5zZXJ2aWNlIgogCiBFWFRSQV9PRU1BS0UgPSAiVENMPSR7YmluZGlyfS90Y2xzaCIKIApAQCAtMTgsNCArMjAsOCBAQAogCiBkb19pbnN0YWxsKCkgewogICAgIG9lX3J1bm1ha2UgREVTVERJUj0ke0R9IGluc3RhbGwKKyAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywnc3lzdGVtZCcsJ3RydWUnLCdmYWxzZScsZCl9OyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgICAgIGluc3RhbGwgLW0gNjQ0ICR7U30vdXNiX21vZGVzd2l0Y2hALnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgZmkKIH0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXRoYXNoL3V0aGFzaC9ydW4tcHRlc3QgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3V0aGFzaC91dGhhc2gvcnVuLXB0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0MDcxYTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3V0aGFzaC91dGhhc2gvcnVuLXB0ZXN0CkBAIC0wLDAgKzEsMTAgQEAKKyMhL2Jpbi9zaAorCitjZCB0ZXN0cworZm9yIGkgaW4gdGVzdCpbMC05XSA7IGRvCisgICAgaWYgLi8ke2l9IHwgY21wIC1zICIke2l9LmFucyIgLSA7IHRoZW4KKyAgICAgICAgZWNobyAiUEFTUzogJHtpfSIKKyAgICBlbHNlCisgICAgICAgIGVjaG8gIkZBSUw6ICR7aX0iCisgICAgZmkKK2RvbmUKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXRoYXNoL3V0aGFzaF8xLjkuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXRoYXNoL3V0aGFzaF8xLjkuNy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODJhOWYyYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3V0aGFzaC91dGhhc2hfMS45LjcuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1TVU1NQVJZID0gIkhhc2ggdGFibGUgZm9yIEMgc3RydWN0dXJlcyIKLVNFQ1RJT04gPSAiYmFzZSIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT01NjRmOWM0NDkyN2Y2MjQ3ZGM4MTBiZjU1N2UyYjI0MCIKLQotU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vJHtCUE59LyR7QlB9LnRhci5iejIiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIxZjE0YmJlZTdlZTczZWQwY2ViMzU0OWY4Y2YzNzhiNCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI5NTZmNWM5OTc5ODM0OWM0MTMyNzVmZTRjOWZmMTI4ZDcyZTI4MDY1NWRhZGJlNDM2NWY4ZTlmYmRhOTEzOTNmIgotCi1kb19pbnN0YWxsICgpIHsKLSAgICBpbnN0YWxsIC1kbTc1NSAke0R9JHtpbmNsdWRlZGlyfQotICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L3NyYy8qLmggJHtEfSR7aW5jbHVkZWRpcn0KLX0KLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3V0aGFzaC91dGhhc2hfMi4wLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3V0aGFzaC91dGhhc2hfMi4wLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NkZDEzYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXRoYXNoL3V0aGFzaF8yLjAuMi5iYgpAQCAtMCwwICsxLDQ2IEBACitTVU1NQVJZID0gIkhhc2ggdGFibGUgYW5kIGxpbmtlZCBsaXN0IGZvciBDIHN0cnVjdHVyZXMiCitERVNDUklQVElPTiA9ICIgdXRoYXNoLWRldiBwcm92aWRlcyBhIGhhc2ggdGFibGUgaW1wbGVtZW50YXRpb24gdXNpbmcgQyBwcmVwcm9jZXNzb3IgbWFjcm9zLlxuXAorIFRoaXMgcGFja2FnZSBhbHNvIGluY2x1ZGVzOlxuXAorICAqIHV0bGlzdC5oIHByb3ZpZGVzIGxpbmtlZCBsaXN0IG1hY3JvcyBmb3IgQyBzdHJ1Y3R1cmVzXG5cCisgICogdXRhcnJheS5oIGltcGxlbWVudHMgZHluYW1pYyBhcnJheXMgdXNpbmcgbWFjcm9zXG5cCisgICogdXRzdHJpbmcuaCBpbXBsZW1lbnRzIGEgYmFzaWMgZHluYW1pYyBzdHJpbmdcblwKKyIKK0hPTUVQQUdFID0gImh0dHBzOi8vdHJveWRoYW5zb24uZ2l0aHViLmlvL3V0aGFzaC8iCitTRUNUSU9OID0gImJhc2UiCitMSUNFTlNFID0gIkJTRC0xLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTVjYzFmMWU0YzcxZjE5ZjU4MDQ1ODU4Njc1NmMwMmI0IgorCitTUkNfVVJJID0gIlwKKyAgICBodHRwczovL2dpdGh1Yi5jb20vdHJveWRoYW5zb24vJHtCUE59L2FyY2hpdmUvdiR7UFZ9LnRhci5nejtkb3dubG9hZGZpbGVuYW1lPSR7QlB9LnRhci5neiBcCisgICAgZmlsZTovL3J1bi1wdGVzdCBcCisiCitVUFNUUkVBTV9DSEVDS19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lkaGFuc29uLyR7QlBOfS9yZWxlYXNlcyIKKworU1JDX1VSSVttZDVzdW1dID0gImQwODYzMmE1ODY3NDI3NGM5Y2Q4N2UyOTMwZjU2OTZhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjM0YTMxZDUxZGQ3YTgzOTgxOWNlY2Q2ZjQ2MDQ5YjRmZmUwMzFkN2YzMTQ3ZDlhMDQyZjU1MDRmZGIxMzQ4ZDEiCisKK2luaGVyaXQgcHRlc3QKKworZG9fY29tcGlsZVtub2V4ZWNdID0gIjEiCisKK2RvX2NvbXBpbGVfcHRlc3QoKSB7CisgICAgb2VfcnVubWFrZSAtQyB0ZXN0cyB0ZXN0c19vbmx5IFRFU1RfVEFSR0VUPQorfQorCitkb19pbnN0YWxsICgpIHsKKyAgICBpbnN0YWxsIC1kbTc1NSAke0R9JHtpbmNsdWRlZGlyfQorICAgIGluc3RhbGwgLW0wNjQ0IHNyYy8qLmggJHtEfSR7aW5jbHVkZWRpcn0KK30KKworZG9faW5zdGFsbF9wdGVzdCgpIHsKKyAgICBpbnN0YWxsIC1kbTc1NSAke0R9JHtQVEVTVF9QQVRIfS90ZXN0cworICAgIGluc3RhbGwgLW0wNzU1IHRlc3RzL3Rlc3QqWzAtOV0gJHtEfSR7UFRFU1RfUEFUSH0vdGVzdHMKKyAgICBpbnN0YWxsIC1tMDY0NCB0ZXN0cy90ZXN0KlswLTldLmFucyAke0R9JHtQVEVTVF9QQVRIfS90ZXN0cworICAgIGluc3RhbGwgLW0wNjQ0IHRlc3RzL3Rlc3QqWzAtOV0uZGF0ICR7RH0ke1BURVNUX1BBVEh9L3Rlc3RzCit9CisKKyMgVGhlIG1haW4gcGFja2FnZSBpcyBlbXB0eSBhbmQgbm9uLWV4aXN0ZW50LCBzbyAtZGV2CisjIHNob3VsZCBub3QgZGVwZW5kIG9uIGl0Li4uCitSREVQRU5EU18ke1BOfS1kZXYgPSAiIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdmJveGd1ZXN0ZHJpdmVycy92Ym94Z3Vlc3Rkcml2ZXJzXzUuMS4yNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdmJveGd1ZXN0ZHJpdmVycy92Ym94Z3Vlc3Rkcml2ZXJzXzUuMS4yNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmRlZmUwMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Zib3hndWVzdGRyaXZlcnMvdmJveGd1ZXN0ZHJpdmVyc181LjEuMjYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi1TVU1NQVJZID0gIlZpcnR1YWxCb3ggTGludXggR3Vlc3QgRHJpdmVycyIKLVNFQ1RJT04gPSAiY29yZSIKLUxJQ0VOU0UgPSAiR1BMLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7V09SS0RJUn0vJHtWQk9YX05BTUV9L0NPUFlJTkc7bWQ1PWUxOTdkNTY0MWJiMzViMjlkNDZjYThjNGJmN2YyNjYwIgotCi1ERVBFTkRTID0gInZpcnR1YWwva2VybmVsIgotCi1pbmhlcml0IG1vZHVsZSBrZXJuZWwtbW9kdWxlLXNwbGl0Ci0KLUNPTVBBVElCTEVfTUFDSElORSA9ICIocWVtdXg4NnxxZW11eDg2LTY0KSIKLQotVkJPWF9OQU1FID0gIlZpcnR1YWxCb3gtJHtQVn0iCi0KLVNSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2FkLnZpcnR1YWxib3gub3JnL3ZpcnR1YWxib3gvJHtQVn0vJHtWQk9YX05BTUV9LnRhci5iejIgXAotICAgICAgICAgICBmaWxlOi8vTWFrZWZpbGUudXRpbHMgXAotIgotU1JDX1VSSVttZDVzdW1dID0gImQzYWVjODE5MGM2NDlkN2UwZDkyYmEzNzQ3NzlkZmUzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImI1NzE1MDM1ZTY4MWExMWVmMTQ3NWY4M2Y5NTAzZDM0YTAwZjAyNzZiODljNTcyZWViZWMzNjNkZGE4MGM4YTkiCi0KLVMgPSAiJHtXT1JLRElSfS92Ym94X21vZHVsZSIKLQotZXhwb3J0IEJVSUxEX1RBUkdFVF9BUkNIPSIke0FSQ0h9IgotZXhwb3J0IEJVSUxEX1RBUkdFVF9BUkNIX3g4Ni02ND0iYW1kNjQiCi1leHBvcnQgS0VSTl9ESVI9IiR7U1RBR0lOR19LRVJORUxfRElSfSIKLQotYWRkdGFzayBleHBvcnRfc291cmNlcyBiZWZvcmUgZG9fcGF0Y2ggYWZ0ZXIgZG9fdW5wYWNrCi0KLWRvX2V4cG9ydF9zb3VyY2VzKCkgewotICAgIG1rZGlyIC1wICIke1N9IgotICAgICR7V09SS0RJUn0vJHtWQk9YX05BTUV9L3NyYy9WQm94L0FkZGl0aW9ucy9saW51eC9leHBvcnRfbW9kdWxlcyAke1R9L3Zib3hfbW9kdWxlcy50YXIuZ3oKLSAgICB0YXIgLUMgIiR7U30iIC14emYgJHtUfS92Ym94X21vZHVsZXMudGFyLmd6Ci0KLSAgICAjIGFkZCBhIG1vdW50IHV0aWxpdHkgdG8gdXNlIHNoYXJlZCBmb2xkZXIgZnJvbSBWQm94IEFkZGl0aW9uIFNvdXJjZSBDb2RlCi0gICAgbWtkaXIgLXAgIiR7U30vdXRpbHMiCi0gICAgaW5zdGFsbCAke1dPUktESVJ9LyR7VkJPWF9OQU1FfS9zcmMvVkJveC9BZGRpdGlvbnMvbGludXgvc2hhcmVkZm9sZGVycy9tb3VudC52Ym94c2YuYyAke1N9L3V0aWxzCi0gICAgaW5zdGFsbCAke1dPUktESVJ9LyR7VkJPWF9OQU1FfS9zcmMvVkJveC9BZGRpdGlvbnMvbGludXgvc2hhcmVkZm9sZGVycy92YnNmbW91bnQuYyAke1N9L3V0aWxzCi0gICAgaW5zdGFsbCAke1N9Ly4uL01ha2VmaWxlLnV0aWxzICR7U30vdXRpbHMvTWFrZWZpbGUKLQotfQotCi0jIGNvbXBpbGUgYW5kIGluc3RhbGwgbW91bnQgdXRpbGl0eQotZG9fY29tcGlsZV9hcHBlbmQoKSB7Ci0gICAgb2VfcnVubWFrZSAnTEQ9JHtDQ30nICdMREZMQUdTPSR7TERGTEFHU30nIC1DICR7U30vdXRpbHMKLSAgICBpZiAhIFsgLWUgdmJveGd1ZXN0LmtvIC1hIC1lIHZib3hzZi5rbyAtYSAtZSB2Ym94dmlkZW8ua28gXSA7IHRoZW4KLSAgICAgICAgZWNobyAiRVJST1I6IE9uZSBvZiB2Ym94Ki5rbyBtb2R1bGVzIHdhc24ndCBidWlsdCIKLSAgICAgICAgZXhpdCAxCi0gICAgZmkKLX0KLQotbW9kdWxlX2RvX2luc3RhbGwoKSB7Ci0gICAgTU9EVUxFX0RJUj0ke0R9JHtub25hcmNoX2Jhc2VfbGliZGlyfS9tb2R1bGVzLyR7S0VSTkVMX1ZFUlNJT059L2tlcm5lbC9taXNjCi0gICAgaW5zdGFsbCAtZCAkTU9EVUxFX0RJUgotICAgIGluc3RhbGwgLW0gNjQ0IHZib3hndWVzdC5rbyAkTU9EVUxFX0RJUgotICAgIGluc3RhbGwgLW0gNjQ0IHZib3hzZi5rbyAkTU9EVUxFX0RJUgotICAgIGluc3RhbGwgLW0gNjQ0IHZib3h2aWRlby5rbyAkTU9EVUxFX0RJUgotfQotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0ke2Jhc2Vfc2JpbmRpcn0KLSAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3V0aWxzL21vdW50LnZib3hzZiAke0R9JHtiYXNlX3NiaW5kaXJ9Ci19Ci0KLVBBQ0tBR0VTICs9ICJrZXJuZWwtbW9kdWxlLXZib3hndWVzdCBrZXJuZWwtbW9kdWxlLXZib3hzZiBrZXJuZWwtbW9kdWxlLXZib3h2aWRlbyIKLVJSRUNPTU1FTkRTXyR7UE59ICs9ICJrZXJuZWwtbW9kdWxlLXZib3hndWVzdCBrZXJuZWwtbW9kdWxlLXZib3hzZiBrZXJuZWwtbW9kdWxlLXZib3h2aWRlbyIKLQotRklMRVNfJHtQTn0gPSAiJHtiYXNlX3NiaW5kaXJ9IgotCi0jIGF1dG9sb2FkIGlmIGluc3RhbGxlZAotS0VSTkVMX01PRFVMRV9BVVRPTE9BRCArPSAidmJveGd1ZXN0IHZib3hzZiB2Ym94dmlkZW8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Zib3hndWVzdGRyaXZlcnMvdmJveGd1ZXN0ZHJpdmVyc181LjIuOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdmJveGd1ZXN0ZHJpdmVycy92Ym94Z3Vlc3Rkcml2ZXJzXzUuMi44LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMGRiNGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Zib3hndWVzdGRyaXZlcnMvdmJveGd1ZXN0ZHJpdmVyc181LjIuOC5iYgpAQCAtMCwwICsxLDc4IEBACitTVU1NQVJZID0gIlZpcnR1YWxCb3ggTGludXggR3Vlc3QgRHJpdmVycyIKK1NFQ1RJT04gPSAiY29yZSIKK0xJQ0VOU0UgPSAiR1BMLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7V09SS0RJUn0vJHtWQk9YX05BTUV9L0NPUFlJTkc7bWQ1PWUxOTdkNTY0MWJiMzViMjlkNDZjYThjNGJmN2YyNjYwIgorCitERVBFTkRTID0gInZpcnR1YWwva2VybmVsIgorCitpbmhlcml0IG1vZHVsZSBrZXJuZWwtbW9kdWxlLXNwbGl0CisKK0NPTVBBVElCTEVfTUFDSElORSA9ICIocWVtdXg4NnxxZW11eDg2LTY0KSIKKworVkJPWF9OQU1FID0gIlZpcnR1YWxCb3gtJHtQVn0iCisKK1NSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2FkLnZpcnR1YWxib3gub3JnL3ZpcnR1YWxib3gvJHtQVn0vJHtWQk9YX05BTUV9LnRhci5iejIgXAorICAgIGZpbGU6Ly9NYWtlZmlsZS51dGlscyBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJlNzMxZWE5YzVjMzEwOTZlYzRjMmEzYmZiYTI2NjY1YyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlZTI3NTlkNDdiMGI0YWM4MWI4YjY3MWM5NDg1Yzg3ZmIyZGIxMmMwOTdiM2U3ZTY5Yjk0YzEyOTFhODA4NGU4IgorCitTID0gIiR7V09SS0RJUn0vdmJveF9tb2R1bGUiCisKK2V4cG9ydCBCVUlMRF9UQVJHRVRfQVJDSD0iJHtBUkNIfSIKK2V4cG9ydCBCVUlMRF9UQVJHRVRfQVJDSF94ODYtNjQ9ImFtZDY0IgorCitFWFRSQV9PRU1BS0UgKz0gIktFUk5fRElSPScke1dPUktESVJ9LyR7S0VSTkVMX1ZFUlNJT059L2J1aWxkJyIKKworYWRkdGFzayBleHBvcnRfc291cmNlcyBiZWZvcmUgZG9fcGF0Y2ggYWZ0ZXIgZG9fdW5wYWNrCisKK2RvX2V4cG9ydF9zb3VyY2VzKCkgeworICAgIG1rZGlyIC1wICIke1N9IgorICAgICR7V09SS0RJUn0vJHtWQk9YX05BTUV9L3NyYy9WQm94L0FkZGl0aW9ucy9saW51eC9leHBvcnRfbW9kdWxlcy5zaCAke1R9L3Zib3hfbW9kdWxlcy50YXIuZ3oKKyAgICB0YXIgLUMgIiR7U30iIC14emYgJHtUfS92Ym94X21vZHVsZXMudGFyLmd6CisKKyAgICAjIGFkZCBhIG1vdW50IHV0aWxpdHkgdG8gdXNlIHNoYXJlZCBmb2xkZXIgZnJvbSBWQm94IEFkZGl0aW9uIFNvdXJjZSBDb2RlCisgICAgbWtkaXIgLXAgIiR7U30vdXRpbHMiCisgICAgaW5zdGFsbCAke1dPUktESVJ9LyR7VkJPWF9OQU1FfS9zcmMvVkJveC9BZGRpdGlvbnMvbGludXgvc2hhcmVkZm9sZGVycy9tb3VudC52Ym94c2YuYyAke1N9L3V0aWxzCisgICAgaW5zdGFsbCAke1dPUktESVJ9LyR7VkJPWF9OQU1FfS9zcmMvVkJveC9BZGRpdGlvbnMvbGludXgvc2hhcmVkZm9sZGVycy92YnNmbW91bnQuYyAke1N9L3V0aWxzCisgICAgaW5zdGFsbCAke1N9Ly4uL01ha2VmaWxlLnV0aWxzICR7U30vdXRpbHMvTWFrZWZpbGUKKworfQorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKyAgICAjIHZib3hndWVzdGRyaXZlcnMvNS4yLjYtcjAvdmJveF9tb2R1bGUvdmJveGd1ZXN0L01ha2VmaWxlLmluY2x1ZGUuaGVhZGVyOjk5OiAqKiogVGhlIHZhcmlhYmxlIEtFUk5fRElSIG11c3QgYmUgYSBrZXJuZWwgYnVpbGQgZm9sZGVyIGFuZCBlbmQgd2l0aCAvYnVpbGQgd2l0aG91dCBhIHRyYWlsaW5nIHNsYXNoLCBvciBLRVJOX1ZFUiBtdXN0IGJlIHNldC4gIFN0b3AuCisgICAgIyB2Ym94Z3Vlc3Rkcml2ZXJzLzUuMi42LXIwL3Zib3hfbW9kdWxlL3Zib3hndWVzdC9NYWtlZmlsZS5pbmNsdWRlLmhlYWRlcjoxMDg6ICoqKiBUaGUga2VybmVsIGJ1aWxkIGZvbGRlciBwYXRoIG11c3QgZW5kIGluIDx2ZXJzaW9uPi9idWlsZCwgb3IgdGhlIHZhcmlhYmxlIEtFUk5fVkVSIG11c3QgYmUgc2V0LiAgU3RvcC4KKyAgICBta2RpciAtcCAke1dPUktESVJ9LyR7S0VSTkVMX1ZFUlNJT059CisgICAgbG4gLXNuZiAke1NUQUdJTkdfS0VSTkVMX0RJUn0gJHtXT1JLRElSfS8ke0tFUk5FTF9WRVJTSU9OfS9idWlsZAorfQorCisjIGNvbXBpbGUgYW5kIGluc3RhbGwgbW91bnQgdXRpbGl0eQorZG9fY29tcGlsZV9hcHBlbmQoKSB7CisgICAgb2VfcnVubWFrZSAnTEQ9JHtDQ30nICdMREZMQUdTPSR7TERGTEFHU30nIC1DICR7U30vdXRpbHMKKyAgICBpZiAhIFsgLWUgdmJveGd1ZXN0LmtvIC1hIC1lIHZib3hzZi5rbyAtYSAtZSB2Ym94dmlkZW8ua28gXSA7IHRoZW4KKyAgICAgICAgZWNobyAiRVJST1I6IE9uZSBvZiB2Ym94Ki5rbyBtb2R1bGVzIHdhc24ndCBidWlsdCIKKyAgICAgICAgZXhpdCAxCisgICAgZmkKK30KKworbW9kdWxlX2RvX2luc3RhbGwoKSB7CisgICAgTU9EVUxFX0RJUj0ke0R9JHtub25hcmNoX2Jhc2VfbGliZGlyfS9tb2R1bGVzLyR7S0VSTkVMX1ZFUlNJT059L2tlcm5lbC9taXNjCisgICAgaW5zdGFsbCAtZCAkTU9EVUxFX0RJUgorICAgIGluc3RhbGwgLW0gNjQ0IHZib3hndWVzdC5rbyAkTU9EVUxFX0RJUgorICAgIGluc3RhbGwgLW0gNjQ0IHZib3hzZi5rbyAkTU9EVUxFX0RJUgorICAgIGluc3RhbGwgLW0gNjQ0IHZib3h2aWRlby5rbyAkTU9EVUxFX0RJUgorfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke2Jhc2Vfc2JpbmRpcn0KKyAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3V0aWxzL21vdW50LnZib3hzZiAke0R9JHtiYXNlX3NiaW5kaXJ9Cit9CisKK1BBQ0tBR0VTICs9ICJrZXJuZWwtbW9kdWxlLXZib3hndWVzdCBrZXJuZWwtbW9kdWxlLXZib3hzZiBrZXJuZWwtbW9kdWxlLXZib3h2aWRlbyIKK1JSRUNPTU1FTkRTXyR7UE59ICs9ICJrZXJuZWwtbW9kdWxlLXZib3hndWVzdCBrZXJuZWwtbW9kdWxlLXZib3hzZiBrZXJuZWwtbW9kdWxlLXZib3h2aWRlbyIKKworRklMRVNfJHtQTn0gPSAiJHtiYXNlX3NiaW5kaXJ9IgorCisjIGF1dG9sb2FkIGlmIGluc3RhbGxlZAorS0VSTkVMX01PRFVMRV9BVVRPTE9BRCArPSAidmJveGd1ZXN0IHZib3hzZiB2Ym94dmlkZW8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3ZpbS9maWxlcy9DVkUtMjAxNy0xNzA4Ny5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdmltL2ZpbGVzL0NWRS0yMDE3LTE3MDg3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzN2I5YmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3ZpbS9maWxlcy9DVkUtMjAxNy0xNzA4Ny5wYXRjaApAQCAtMCwwICsxLDcwIEBACitGcm9tIDljMTFmODAzMzkzNzJiN2FhMmY0MzE1M2Q1NzRmMmI1YWJiNzk3MDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMaSBaaG91IDxsaS56aG91QHdpbmRyaXZlci5jb20+CitEYXRlOiBTdW4sIDE3IERlYyAyMDE3IDIzOjA5OjM1IC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIHZpbTogcGF0Y2ggOC4wLjEyNjM6IG90aGVycyBjYW4gcmVhZCB0aGUgc3dhcCBmaWxlIGlmIGEgdXNlcgorIGlzIGNhcmVsZXNzCisKK1Byb2JsZW06ICAgIE90aGVycyBjYW4gcmVhZCB0aGUgc3dhcCBmaWxlIGlmIGEgdXNlciBpcyBjYXJlbGVzcyB3aXRoIGhpcworICAgICAgICAgICAgcHJpbWFyeSBncm91cC4KK1NvbHV0aW9uOiAgIElmIHRoZSBncm91cCBwZXJtaXNzaW9uIGFsbG93cyBmb3IgcmVhZGluZyBidXQgdGhlIHdvcmxkCisgICAgICAgICAgICBwZXJtaXNzaW9ucyBkb2Vzbid0LCBtYWtlIHN1cmUgdGhlIGdyb3VwIGlzIHJpZ2h0LgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CitDVkU6IENWRS0yMDE3LTE3MDg3CitTaWduZWQtb2ZmLWJ5OiBMaSBaaG91IDxsaS56aG91QHdpbmRyaXZlci5jb20+CistLS0KKyBzcmMvZmlsZWlvLmMgIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKystCisgc3JjL3ZlcnNpb24uYyB8ICAyICsrCisgMiBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvZmlsZWlvLmMgYi9zcmMvZmlsZWlvLmMKK2luZGV4IGY1NGZiODQ2NS4uMmM3NzQwYWY5IDEwMDY0NAorLS0tIGEvc3JjL2ZpbGVpby5jCisrKysgYi9zcmMvZmlsZWlvLmMKK0BAIC03MTYsNyArNzE2LDI5IEBAIHJlYWRmaWxlKAorIAkvKiBTZXQgc3dhcCBmaWxlIHByb3RlY3Rpb24gYml0cyBhZnRlciBjcmVhdGluZyBpdC4gKi8KKyAJaWYgKHN3YXBfbW9kZSA+IDAgJiYgY3VyYnVmLT5iX21sLm1sX21mcCAhPSBOVUxMCisgCQkJICAmJiBjdXJidWYtPmJfbWwubWxfbWZwLT5tZl9mbmFtZSAhPSBOVUxMKQorLQkgICAgKHZvaWQpbWNoX3NldHBlcm0oY3VyYnVmLT5iX21sLm1sX21mcC0+bWZfZm5hbWUsIChsb25nKXN3YXBfbW9kZSk7CisrCXsKKysJICAgIGNoYXJfdSAqc3dhcF9mbmFtZSA9IGN1cmJ1Zi0+Yl9tbC5tbF9tZnAtPm1mX2ZuYW1lOworKworKwkgICAgLyoKKysJICAgICAqIElmIHRoZSBncm91cC1yZWFkIGJpdCBpcyBzZXQgYnV0IG5vdCB0aGUgd29ybGQtcmVhZCBiaXQsIHRoZW4KKysJICAgICAqIHRoZSBncm91cCBtdXN0IGJlIGVxdWFsIHRvIHRoZSBncm91cCBvZiB0aGUgb3JpZ2luYWwgZmlsZS4gIElmCisrCSAgICAgKiB3ZSBjYW4ndCBtYWtlIHRoYXQgaGFwcGVuIHRoZW4gcmVzZXQgdGhlIGdyb3VwLXJlYWQgYml0LiAgVGhpcworKwkgICAgICogYXZvaWRzIG1ha2luZyB0aGUgc3dhcCBmaWxlIHJlYWRhYmxlIHRvIG1vcmUgdXNlcnMgd2hlbiB0aGUKKysJICAgICAqIHByaW1hcnkgZ3JvdXAgb2YgdGhlIHVzZXIgaXMgdG9vIHBlcm1pc3NpdmUuCisrCSAgICAgKi8KKysJICAgIGlmICgoc3dhcF9tb2RlICYgMDQ0KSA9PSAwNDApCisrCSAgICB7CisrCQlzdGF0X1QJc3dhcF9zdDsKKysKKysJCWlmIChtY2hfc3RhdCgoY2hhciAqKXN3YXBfZm5hbWUsICZzd2FwX3N0KSA+PSAwCisrCQkJJiYgc3Quc3RfZ2lkICE9IHN3YXBfc3Quc3RfZ2lkCisrCQkJJiYgZmNob3duKGN1cmJ1Zi0+Yl9tbC5tbF9tZnAtPm1mX2ZkLCAtMSwgc3Quc3RfZ2lkKQorKwkJCQkJCQkJCSA9PSAtMSkKKysJCSAgICBzd2FwX21vZGUgJj0gMDYwMDsKKysJICAgIH0KKysKKysJICAgICh2b2lkKW1jaF9zZXRwZXJtKHN3YXBfZm5hbWUsIChsb25nKXN3YXBfbW9kZSk7CisrCX0KKyAjZW5kaWYKKyAgICAgfQorIAorZGlmZiAtLWdpdCBhL3NyYy92ZXJzaW9uLmMgYi9zcmMvdmVyc2lvbi5jCitpbmRleCBhNWNiMDc4ZjAuLjVjMGRmNDc1ZiAxMDA2NDQKKy0tLSBhL3NyYy92ZXJzaW9uLmMKKysrKyBiL3NyYy92ZXJzaW9uLmMKK0BAIC03NzAsNiArNzcwLDggQEAgc3RhdGljIGNoYXIgKihmZWF0dXJlc1tdKSA9Cisgc3RhdGljIGludCBpbmNsdWRlZF9wYXRjaGVzW10gPQorIHsgICAvKiBBZGQgbmV3IHBhdGNoIG51bWJlciBiZWxvdyB0aGlzIGxpbmUgKi8KKyAvKiovCisrICAgIDEyNjMsCisrLyoqLworICAgICA5ODMsCisgLyoqLworICAgICA5ODIsCistLSAKKzIuMTEuMAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3ZpbS92aW1fOC4wLjA5ODMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3ZpbS92aW1fOC4wLjA5ODMuYmIKaW5kZXggNDA3Y2U1ZS4uNDRjODY4YyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC92aW0vdmltXzguMC4wOTgzLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdmltL3ZpbV84LjAuMDk4My5iYgpAQCAtOSw2ICs5LDcgQEAKIFNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS92aW0vdmltLmdpdCBcCiAgICAgICAgICAgIGZpbGU6Ly9kaXNhYmxlX2FjbF9oZWFkZXJfY2hlY2sucGF0Y2g7cGF0Y2hkaXI9Li4gXAogICAgICAgICAgICBmaWxlOi8vdmltLWFkZC1rbm9iLXdoZXRoZXItZWxmLmgtYXJlLWNoZWNrZWQucGF0Y2g7cGF0Y2hkaXI9Li4gXAorICAgICAgICAgICBmaWxlOi8vQ1ZFLTIwMTctMTcwODcucGF0Y2g7cGF0Y2hkaXI9Li4gXAogIgogU1JDUkVWID0gIjNmOWExZmYxNDE0MTJlOWU4NWY3ZGZmNDdkMDI5NDZjYjliZTkyMjgiCiAKQEAgLTE2LDggKzE3LDkgQEAKIAogVklNRElSID0gInZpbSR7QGQuZ2V0VmFyKCdQVicpLnNwbGl0KCcuJylbMF19JHtAZC5nZXRWYXIoJ1BWJykuc3BsaXQoJy4nKVsxXX0iCiAKLWluaGVyaXQgYXV0b3Rvb2xzIHVwZGF0ZS1hbHRlcm5hdGl2ZXMKLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcAoraW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHVwZGF0ZS1hbHRlcm5hdGl2ZXMKKworQ0xFQU5CUk9LRU4gPSAiMSIKIAogIyB2aW0gY29uZmlndXJlLmluIGNvbnRhaW5zIGZ1bmN0aW9ucyB3aGljaCBnb3QgJ2Ryb3BwZWQnIGJ5IGF1dG90b29scy5iYmNsYXNzCiBkb19jb25maWd1cmUgKCkgewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcC0wLjcuMC8wMDAxLUZpeC1pc3N1ZS01OTkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3dlYnNvY2tldHBwL3dlYnNvY2tldHBwLTAuNy4wLzAwMDEtRml4LWlzc3VlLTU5OS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTllYTc0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcC0wLjcuMC8wMDAxLUZpeC1pc3N1ZS01OTkucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorRnJvbSAxZGQwNzExM2YyYTc0ODk0NDRhODk5MGE5NWJlNDJlMDM1ZjhlOWRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS3VydCBSb2Vja3ggPGtyb2Vja3hAZGViaWFuLm9yZz4KK0RhdGU6IFR1ZSwgMSBOb3YgMjAxNiAxMjo1NzozNSArMDEwMAorU3ViamVjdDogW1BBVENIXSBGaXggaXNzdWUgIzU5OQorRm9yd2FyZGVkOiBodHRwczovL2dpdGh1Yi5jb20vemFwaG95ZC93ZWJzb2NrZXRwcC9wdWxsLzYwMAorCistLS0KKyB3ZWJzb2NrZXRwcC90cmFuc3BvcnQvYXNpby9zZWN1cml0eS90bHMuaHBwIHwgNCAtLS0tCisgMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS93ZWJzb2NrZXRwcC90cmFuc3BvcnQvYXNpby9zZWN1cml0eS90bHMuaHBwIGIvd2Vic29ja2V0cHAvdHJhbnNwb3J0L2FzaW8vc2VjdXJpdHkvdGxzLmhwcAoraW5kZXggN2IzMmRiOC4uYThhYWZlYyAxMDA2NDQKKy0tLSBhL3dlYnNvY2tldHBwL3RyYW5zcG9ydC9hc2lvL3NlY3VyaXR5L3Rscy5ocHAKKysrKyBiL3dlYnNvY2tldHBwL3RyYW5zcG9ydC9hc2lvL3NlY3VyaXR5L3Rscy5ocHAKK0BAIC0zNTUsMTMgKzM1NSw5IEBAIHByb3RlY3RlZDoKKyAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEVycm9yQ29kZVR5cGU+CisgICAgIGxpYjo6ZXJyb3JfY29kZSB0cmFuc2xhdGVfZWMoRXJyb3JDb2RlVHlwZSBlYykgeworICAgICAgICAgaWYgKGVjLmNhdGVnb3J5KCkgPT0gbGliOjphc2lvOjplcnJvcjo6Z2V0X3NzbF9jYXRlZ29yeSgpKSB7CistICAgICAgICAgICAgaWYgKEVSUl9HRVRfUkVBU09OKGVjLnZhbHVlKCkpID09IFNTTF9SX1NIT1JUX1JFQUQpIHsKKy0gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfZXJyb3JfY29kZSh0cmFuc3BvcnQ6OmVycm9yOjp0bHNfc2hvcnRfcmVhZCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgLy8gV2Uga25vdyBpdCBpcyBhIFRMUyByZWxhdGVkIGVycm9yLCBidXQgb3RoZXJ3aXNlIGRvbid0IGtub3cKKyAgICAgICAgICAgICAgICAgLy8gbW9yZS4gUGFzcyB0aHJvdWdoIGFzIFRMUyBnZW5lcmljLgorICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9lcnJvcl9jb2RlKHRyYW5zcG9ydDo6ZXJyb3I6OnRsc19lcnJvcik7CistICAgICAgICAgICAgfQorICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAvLyBXZSBkb24ndCBrbm93IGFueSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgZXJyb3Igc28gcGFzcworICAgICAgICAgICAgIC8vIHRocm91Z2gKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcC0wLjcuMC80Y2FiNWU1YzBjNWYxOWZjZWU3ZDM3YjRhMzhiMTU2ZDYzYTE1MGQ0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcC0wLjcuMC80Y2FiNWU1YzBjNWYxOWZjZWU3ZDM3YjRhMzhiMTU2ZDYzYTE1MGQ0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzMGM5NjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3dlYnNvY2tldHBwL3dlYnNvY2tldHBwLTAuNy4wLzRjYWI1ZTVjMGM1ZjE5ZmNlZTdkMzdiNGEzOGIxNTZkNjNhMTUwZDQucGF0Y2gKQEAgLTAsMCArMSwxNTUgQEAKK0Zyb20gNGNhYjVlNWMwYzVmMTlmY2VlN2QzN2I0YTM4YjE1NmQ2M2ExNTBkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIFRob3Jzb24gPGdpdEB6YXBob3lkLmNvbT4KK0RhdGU6IFN1biwgMTEgSnVuIDIwMTcgMTY6MTM6MjUgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gbWlub3IgYWRqdXN0bWVudHMgdG8gcmVjZW50IGV4dGVuc2lvbiBuZWdvdGlhdGlvbiByZWxhdGVkCisgZml4ZXMsIHJlZmFjdG9yIGEgYml0IG1vcmUgZXh0ZW5zaW9uIG5lZ290aWF0aW9uIGNvZGUgdG8gYmUgc2ltcGxlcgorCistLS0KKyB3ZWJzb2NrZXRwcC9pbXBsL2Nvbm5lY3Rpb25faW1wbC5ocHAgfCAgNiArLS0KKyB3ZWJzb2NrZXRwcC9wcm9jZXNzb3JzL2h5YmkxMy5ocHAgICAgfCA5MiArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQorCitJbmRleDogd2Vic29ja2V0cHAtMC43LjAvd2Vic29ja2V0cHAvaW1wbC9jb25uZWN0aW9uX2ltcGwuaHBwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gd2Vic29ja2V0cHAtMC43LjAub3JpZy93ZWJzb2NrZXRwcC9pbXBsL2Nvbm5lY3Rpb25faW1wbC5ocHAKKysrKyB3ZWJzb2NrZXRwcC0wLjcuMC93ZWJzb2NrZXRwcC9pbXBsL2Nvbm5lY3Rpb25faW1wbC5ocHAKK0BAIC0xMjIyLDE3ICsxMjIyLDE3IEBACisgICAgIHN0ZDo6cGFpcjxsaWI6OmVycm9yX2NvZGUsc3RkOjpzdHJpbmc+IG5lZ19yZXN1bHRzOworICAgICBuZWdfcmVzdWx0cyA9IG1fcHJvY2Vzc29yLT5uZWdvdGlhdGVfZXh0ZW5zaW9ucyhtX3JlcXVlc3QpOworIAorLSAgICBpZiAobmVnX3Jlc3VsdHMuZmlyc3QgPT0gZXJyb3I6Om1ha2VfZXJyb3JfY29kZShlcnJvcjo6ZXh0ZW5zaW9uX3BhcnNlX2Vycm9yKSkgeworKyAgICBpZiAobmVnX3Jlc3VsdHMuZmlyc3QgPT0gcHJvY2Vzc29yOjplcnJvcjo6bWFrZV9lcnJvcl9jb2RlKHByb2Nlc3Nvcjo6ZXJyb3I6OmV4dGVuc2lvbl9wYXJzZV9lcnJvcikpIHsKKyAgICAgICAgIC8vIFRoZXJlIHdhcyBhIGZhdGFsIGVycm9yIGluIGV4dGVuc2lvbiBwYXJzaW5nIHRoYXQgc2hvdWxkIHJlc3VsdCBpbgorICAgICAgICAgLy8gYSBmYWlsZWQgY29ubmVjdGlvbiBhdHRlbXB0LgorLSAgICAgICAgbV9hbG9nLndyaXRlKGxvZzo6YWxldmVsOjppbmZvLCAiQmFkIHJlcXVlc3Q6ICIgKyBuZWdfcmVzdWx0cy5maXJzdC5tZXNzYWdlKCkpOworKyAgICAgICAgbV9lbG9nLndyaXRlKGxvZzo6ZWxldmVsOjppbmZvLCAiQmFkIHJlcXVlc3Q6ICIgKyBuZWdfcmVzdWx0cy5maXJzdC5tZXNzYWdlKCkpOworICAgICAgICAgbV9yZXNwb25zZS5zZXRfc3RhdHVzKGh0dHA6OnN0YXR1c19jb2RlOjpiYWRfcmVxdWVzdCk7CisgICAgICAgICByZXR1cm4gbmVnX3Jlc3VsdHMuZmlyc3Q7CisgICAgIH0gZWxzZSBpZiAobmVnX3Jlc3VsdHMuZmlyc3QpIHsKKyAgICAgICAgIC8vIFRoZXJlIHdhcyBhIGZhdGFsIGVycm9yIGluIGV4dGVuc2lvbiBwcm9jZXNzaW5nIHRoYXQgaXMgcHJvYmFibHkgb3VyCisgICAgICAgICAvLyBmYXVsdC4gQ29uc2lkZXIgZXh0ZW5zaW9uIG5lZ290aWF0aW9uIHRvIGhhdmUgZmFpbGVkIGFuZCBjb250aW51ZSBhcworICAgICAgICAgLy8gaWYgZXh0ZW5zaW9ucyB3ZXJlIG5vdCBzdXBwb3J0ZWQKKy0gICAgICAgIG1fYWxvZy53cml0ZShsb2c6OmFsZXZlbDo6aW5mbywgCisrICAgICAgICBtX2Vsb2cud3JpdGUobG9nOjplbGV2ZWw6OmluZm8sIAorICAgICAgICAgICAgICJFeHRlbnNpb24gbmVnb3RpYXRpb24gZmFpbGVkOiAiICsgbmVnX3Jlc3VsdHMuZmlyc3QubWVzc2FnZSgpKTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICAgIC8vIGV4dGVuc2lvbiBuZWdvdGlhdGlvbiBzdWNjZWVkZWQsIHNldCByZXNwb25zZSBoZWFkZXIgYWNjb3JkaW5nbHkKK0luZGV4OiB3ZWJzb2NrZXRwcC0wLjcuMC93ZWJzb2NrZXRwcC9wcm9jZXNzb3JzL2h5YmkxMy5ocHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB3ZWJzb2NrZXRwcC0wLjcuMC5vcmlnL3dlYnNvY2tldHBwL3Byb2Nlc3NvcnMvaHliaTEzLmhwcAorKysrIHdlYnNvY2tldHBwLTAuNy4wL3dlYnNvY2tldHBwL3Byb2Nlc3NvcnMvaHliaTEzLmhwcAorQEAgLTk3LDExICs5Nyw2IEBACisgICAgIC8qKgorICAgICAgKiBUaGlzIGV4aXN0cyBtb3N0bHkgYmVjYXVzZSB0aGUgY29kZSBmb3IgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcyBpcworICAgICAgKiBpZGVudGljYWwgYW5kIEkgY2FuJ3QgaGF2ZSB2aXJ0dWFsIHRlbXBsYXRlIG1ldGhvZHMuCistICAgICAqCistICAgICAqIE5PVEU6IHRoaXMgbWV0aG9kIG1ha2VzIGFzc3VtcHRpb25zIHRoYXQgdGhlIHBlcm1lc3NhZ2UtZGVmbGF0ZQorLSAgICAgKiBleHRlbnNpb24gaXMgdGhlIG9ubHkgb25lIHN1cHBvcnRlZC4gSWYgYWRkaXRpb25hbCBleHRlbnNpb25zIGFyZQorLSAgICAgKiBldmVyIHN1cHBvcnRlZCBpdCBzaG91bGQgYmUgcmV2aWV3ZWQgY2FyZWZ1bGx5LiBNb3N0IGNhc2VzIHdoZXJlCistICAgICAqIHRoYXQgYXNzdW1wdGlvbiBpcyBtYWRlIGFyZSBleHBsaWNpdGx5IG5vdGVkLgorICAgICAgKi8KKyAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIGhlYWRlcl90eXBlPgorICAgICBlcnJfc3RyX3BhaXIgbmVnb3RpYXRlX2V4dGVuc2lvbnNfaGVscGVyKGhlYWRlcl90eXBlIGNvbnN0ICYgaGVhZGVyKSB7CitAQCAtMTMwLDU1ICsxMjUsNjAgQEAKKyAKKyAgICAgICAgIGh0dHA6OnBhcmFtZXRlcl9saXN0Ojpjb25zdF9pdGVyYXRvciBpdDsKKyAKKysgICAgICAgIC8vIGxvb2sgdGhyb3VnaCB0aGUgbGlzdCBvZiBleHRlbnNpb24gcmVxdWVzdHMgdG8gZmluZCB0aGUgZmlyc3QKKysgICAgICAgIC8vIG9uZSB0aGF0IHdlIGNhbiBhY2NlcHQuCisgICAgICAgICBpZiAobV9wZXJtZXNzYWdlX2RlZmxhdGUuaXNfaW1wbGVtZW50ZWQoKSkgeworICAgICAgICAgICAgIGVycl9zdHJfcGFpciBuZWdfcmV0OworICAgICAgICAgICAgIGZvciAoaXQgPSBwLmJlZ2luKCk7IGl0ICE9IHAuZW5kKCk7ICsraXQpIHsKKy0gICAgICAgICAgICAgICAgLy8gbG9vayB0aHJvdWdoIGVhY2ggZXh0ZW5zaW9uLCBpZiB0aGUga2V5IGlzIHBlcm1lc3NhZ2UtZGVmbGF0ZQorLSAgICAgICAgICAgICAgICBpZiAoaXQtPmZpcnN0ID09ICJwZXJtZXNzYWdlLWRlZmxhdGUiKSB7CistICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGFscmVhZHkgc3VjY2Vzc2Z1bGx5IG5lZ290aWF0ZWQgdGhpcyBleHRlbnNpb24KKy0gICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gc2tpcCBhbnkgb3RoZXIgcmVxdWVzdHMgdG8gbmVnb3RpYXRlIHRoZSBzYW1lIG9uZQorLSAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCBkaWZmZXJlbnQgcGFyYW1ldGVycyAKKy0gICAgICAgICAgICAgICAgICAgIGlmIChtX3Blcm1lc3NhZ2VfZGVmbGF0ZS5pc19lbmFibGVkKCkpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIAorLSAgICAgICAgICAgICAgICAgICAgCistICAgICAgICAgICAgICAgICAgICBuZWdfcmV0ID0gbV9wZXJtZXNzYWdlX2RlZmxhdGUubmVnb3RpYXRlKGl0LT5zZWNvbmQpOworLQorLSAgICAgICAgICAgICAgICAgICAgaWYgKG5lZ19yZXQuZmlyc3QpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBGaWd1cmUgb3V0IGlmIHRoaXMgaXMgYW4gZXJyb3IgdGhhdCBzaG91bGQgaGFsdCBhbGwKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBleHRlbnNpb24gbmVnb3RpYXRpb25zIG9yIHNpbXBseSBjYXVzZSBuZWdvdGlhdGlvbiBvZgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc3BlY2lmaWMgZXh0ZW5zaW9uIHRvIGZhaWwuCistICAgICAgICAgICAgICAgICAgICAgICAgLy9zdGQ6OmNvdXQgPDwgInBlcm1lc3NhZ2UtY29tcHJlc3MgbmVnb3RpYXRpb24gZmFpbGVkOiAiCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgPDwgbmVnX3JldC5maXJzdC5tZXNzYWdlKCkgPDwgc3RkOjplbmRsOworLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiB0aGlzIGxpc3Qgd2lsbCBuZWVkIGNvbW1hcyBpZiBXZWJTb2NrZXQrKyBldmVyCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3VwcG9ydHMgbW9yZSB0aGFuIG9uZSBleHRlbnNpb24KKy0gICAgICAgICAgICAgICAgICAgICAgICAKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBBY3R1YWxseSB0cnkgdG8gaW5pdGlhbGl6ZSB0aGUgZXh0ZW5zaW9uIGJlZm9yZSB3ZQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlZW0gbmVnb3RpYXRpb24gY29tcGxldGUKKy0gICAgICAgICAgICAgICAgICAgICAgICByZXQuZmlyc3QgPSBtX3Blcm1lc3NhZ2VfZGVmbGF0ZS5pbml0KGJhc2U6Om1fc2VydmVyKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJldC5maXJzdCkgeworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBzdXBwb3J0IG11bHRpcGxlIGV4dGVuc2lvbnMuCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJpZ2h0IG5vdywgYmVjYXVzZSB0aGVyZSBpcyBvbmx5IG9uZSBleHRlbnNpb24gCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1cHBvcnRlZCwgaXQgZmFpbGluZyB0byBuZWdvdGlhdGUgbWVhbnMgd2UgYXJlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvbmUgd2l0aCBhbGwgbmVnb3RpYXRpbmcuIEluIHRoZSBmdXR1cmUgaWYgbW9yZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBleHRlbnNpb25zIGFyZSBzdXBwb3J0ZWQgYSBiZXR0ZXIgc29sdXRpb24gd2lsbAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZSBuZWVkZWQgaGVyZS4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CistICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0LnNlY29uZCArPSBuZWdfcmV0LnNlY29uZDsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWUgbG9va2luZyBmb3IgbW9yZSBleHRlbnNpb25zCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAKKy0gICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgLy8gbm90IGEgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbiByZXF1ZXN0LCBpZ25vcmUKKysgICAgICAgICAgICAgICAgaWYgKGl0LT5maXJzdCAhPSAicGVybWVzc2FnZS1kZWZsYXRlIikgeworKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICAgICAgICAgIH0KKysKKysgICAgICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBhbHJlYWR5IHN1Y2Nlc3NmdWxseSBuZWdvdGlhdGVkIHRoaXMgZXh0ZW5zaW9uCisrICAgICAgICAgICAgICAgIC8vIHRoZW4gc2tpcCBhbnkgb3RoZXIgcmVxdWVzdHMgdG8gbmVnb3RpYXRlIHRoZSBzYW1lIG9uZQorKyAgICAgICAgICAgICAgICAvLyB3aXRoIGRpZmZlcmVudCBwYXJhbWV0ZXJzIAorKyAgICAgICAgICAgICAgICBpZiAobV9wZXJtZXNzYWdlX2RlZmxhdGUuaXNfZW5hYmxlZCgpKSB7CisrICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAKKysgICAgICAgICAgICAgICAgLy8gYXR0ZW1wdCB0byBuZWdvdGlhdGUgdGhpcyBvZmZlcgorKyAgICAgICAgICAgICAgICBuZWdfcmV0ID0gbV9wZXJtZXNzYWdlX2RlZmxhdGUubmVnb3RpYXRlKGl0LT5zZWNvbmQpOworKworKyAgICAgICAgICAgICAgICBpZiAobmVnX3JldC5maXJzdCkgeworKyAgICAgICAgICAgICAgICAgICAgLy8gbmVnb3RpYXRpb24gb2ZmZXIgZmFpbGVkLiBEbyBub3RoaW5nLiBXZSB3aWxsIGNvbnRpbnVlCisrICAgICAgICAgICAgICAgICAgICAvLyBzZWFyY2hpbmcgZm9yIGEgcGVybWVzc2FnZS1kZWZsYXRlIGNvbmZpZyB0aGF0IHN1Y2NlZWRzCisrICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgICAgICAgICAgfQorKworKyAgICAgICAgICAgICAgICAvLyBOZWdvdGlhdGlvbiB0ZW50YXRpdmVseSBzdWNjZWVkZWQKKysKKysgICAgICAgICAgICAgICAgLy8gQWN0dWFsbHkgdHJ5IHRvIGluaXRpYWxpemUgdGhlIGV4dGVuc2lvbiBiZWZvcmUgd2UKKysgICAgICAgICAgICAgICAgLy8gZGVlbSBuZWdvdGlhdGlvbiBjb21wbGV0ZQorKyAgICAgICAgICAgICAgICBsaWI6OmVycm9yX2NvZGUgZWMgPSBtX3Blcm1lc3NhZ2VfZGVmbGF0ZS5pbml0KGJhc2U6Om1fc2VydmVyKTsKKysKKysgICAgICAgICAgICAgICAgaWYgKGVjKSB7CisrICAgICAgICAgICAgICAgICAgICAvLyBOZWdvdGlhdGlvbiBzdWNjZWVkZWQgYnV0IGluaXRpYWxpemF0aW9uIGZhaWxlZCB0aGlzIGlzIAorKyAgICAgICAgICAgICAgICAgICAgLy8gYW4gZXJyb3IgdGhhdCBzaG91bGQgc3RvcCBuZWdvdGlhdGlvbiBvZiBwZXJtZXNzYWdlIAorKyAgICAgICAgICAgICAgICAgICAgLy8gZGVmbGF0ZS4gUmV0dXJuIHRoZSByZWFzb24gZm9yIHRoZSBpbml0IGZhaWx1cmUKKysKKysgICAgICAgICAgICAgICAgICAgIHJldC5maXJzdCA9IGVjOworKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICAgICAgICAvLyBTdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQsIHB1c2ggdGhlIG5lZ290aWF0ZWQgcmVzcG9uc2UgaW50bworKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlcGx5IGFuZCBzdG9wIGxvb2tpbmcgZm9yIGFkZGl0aW9uYWwgcGVybWVzc2FnZS1kZWZsYXRlCisrICAgICAgICAgICAgICAgICAgICAvLyBleHRlbnNpb25zCisrICAgICAgICAgICAgICAgICAgICByZXQuc2Vjb25kICs9IG5lZ19yZXQuc2Vjb25kOworKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgCisrICAgICAgICAvLyBzdXBwb3J0IGZvciBmdXR1cmUgZXh0ZW5zaW9ucyB3b3VsZCBnbyBoZXJlLiBTaG91bGQgY2hlY2sgdGhlIHZhbHVlIG9mIAorKyAgICAgICAgLy8gcmV0LmZpcnN0IGJlZm9yZSBjb250aW51aW5nLiBNaWdodCBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgZmFpbHVyZSBvZgorKyAgICAgICAgLy8gbmVnb3RpYXRpb24gb2YgYW4gZWFybGllciBleHRlbnNpb24gc2hvdWxkIHN0b3AgbmVnb3RpYXRpb24gb2Ygc3Vic2VxdWVudAorKyAgICAgICAgLy8gb25lcworKworICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgfQorIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcC0wLjcuMC85ZGRiMzAwZDg3NGEzMGRiMzVlM2FkNThmMTg4OTQ0YmVmMGJmMzFiLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcC0wLjcuMC85ZGRiMzAwZDg3NGEzMGRiMzVlM2FkNThmMTg4OTQ0YmVmMGJmMzFiLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0YmZlYjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3dlYnNvY2tldHBwL3dlYnNvY2tldHBwLTAuNy4wLzlkZGIzMDBkODc0YTMwZGIzNWUzYWQ1OGYxODg5NDRiZWYwYmYzMWIucGF0Y2gKQEAgLTAsMCArMSw2MDAgQEAKKyMjIERlc2NyaXB0aW9uOiBhZGQgc29tZSBkZXNjcmlwdGlvbgorIyMgT3JpZ2luL0F1dGhvcjogYWRkIHNvbWUgb3JpZ2luIG9yIGF1dGhvcgorIyMgQnVnOiBidWcgVVJMCitGcm9tIDlkZGIzMDBkODc0YTMwZGIzNWUzYWQ1OGYxODg5NDRiZWYwYmYzMWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQZXRlciBUaG9yc29uIDxnaXRAemFwaG95ZC5jb20+CitEYXRlOiBTdW4sIDExIEp1biAyMDE3IDE1OjI0OjQzIC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVwZGF0ZSBwZXJtZXNzYWdlLWRlZmxhdGUgc3VwcG9ydCB0byByZWZsZWN0IHRoYXQgemxpYgorIGRvZXNuJ3Qgc3VwcG9ydCBhIDI1NiBiaXQgd2luZG93LiBJbXByb3ZlIGV4dGVuc2lvbiBuZWdvdGlhdGlvbiBlcnJvcgorIGNoZWNraW5nIGFuZCBkb2N1bWVudGF0aW9uLiBmaXhlcyAjNTk2IGZpeGVzICM2NTMKKworLS0tCisgY2hhbmdlbG9nLm1kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKysKKyB0ZXN0L2V4dGVuc2lvbi9wZXJtZXNzYWdlX2RlZmxhdGUuY3BwICAgICAgICAgICAgICB8IDE1MyArKysrKysrKysrKysrKysrKy0tLS0KKyAuLi4vZXh0ZW5zaW9ucy9wZXJtZXNzYWdlX2RlZmxhdGUvZW5hYmxlZC5ocHAgICAgICB8ICA5NCArKysrKysrKysrLS0tCisgd2Vic29ja2V0cHAvaW1wbC9jb25uZWN0aW9uX2ltcGwuaHBwICAgICAgICAgICAgICAgfCAgMTAgKy0KKyB3ZWJzb2NrZXRwcC9wcm9jZXNzb3JzL2h5YmkxMy5ocHAgICAgICAgICAgICAgICAgICB8ICAyOCArKystCisgNSBmaWxlcyBjaGFuZ2VkLCAyNDcgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jaGFuZ2Vsb2cubWQgYi9jaGFuZ2Vsb2cubWQKK2luZGV4IGJiYTc1M2NiLi5kZTk4ZWRkMiAxMDA2NDQKKyMtLS0gYS9jaGFuZ2Vsb2cubWQKKyMrKysgYi9jaGFuZ2Vsb2cubWQKKyNAQCAtMTcsNiArMTcsMTQgQEAgSEVBRAorIyAtIENvbXBhdGliaWxpdHk6IFVwZGF0ZSBgdGVsZW1ldHJ5X2NsaWVudGAgdG8gdXNlIGEgc2xpZ2h0bHkgbW9yZSBjcm9zcyBwbGF0Zm9ybQorIyAgIG1ldGhvZCBvZiBzbGVlcGluZy4gU2hvdWxkIHdvcmsgb24gd2luZG93cyBub3cuIFRoYW5rIHlvdSBNZWlyIFlhbm92aWNoIGZvcgorIyAgIHJlcG9ydGluZy4KKyMrLSBDb21wYXRpYmlsaXR5OiBVcGRhdGVkIHBlcm1lc3NhZ2UtZGVmbGF0ZSBzdXBwb3J0IHRvIHJlZmxlY3QgdGhhdCB0aGUgemxpYgorIysgIGxpYnJhcnkgZG9lcyBub3QgYWN0dWFsbHkgc3VwcG9ydCBhIHNsaWRpbmcgd2luZG93IHNpemUgb2YgMjU2IGJpdHMuIAorIysgIFdlYlNvY2tldCsrIHdpbGwgbm8gbG9uZ2VyIG5lZ290aWF0ZSAyNTYgYml0IGRlZmxhdGUgd2luZG93cy4gSWYgdGhlIHVzZXIKKyMrICBvZiB0aGUgbGlicmFyeSB0cmllcyB0byByZXF1ZXN0IGEgMjU2IGJpdCB3aW5kb3cgYSA1MTIgYml0IHdpbmRvdyB3aWxsIGJlCisjKyAgc3BlY2lmaWVkIGluc3RlYWQgKFRoaXMgd2FzIHRoZSBwcmV2aW91cyBiZWhhdmlvcikuICM1OTYgIzY1MyBUaGFuayB5b3UgCisjKyAgVmlubmllIEZhbGNvIGFuZCBHaWFuZnJhbmNvIENvc3RhbWFnbmEgZm9yIHJlcG9ydGluZy4KKyMrLSBDb21wYXRpYmlsaXR5OiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcgYW5kIGxvZ2dpbmcgaW4gY2FzZXMgd2hlcmUgZXh0ZW5zaW9uCisjKyAgcmVxdWVzdHMgcGFyc2UgY29ycmVjdGx5IGJ1dCBuZWdvdGlhdGlvbiBmYWlscy4gCisjIC0gQnVnOiBTdG9yZSBsb2dnZXJzIGluIHNoYXJlZCBwb2ludGVycyB0byBhdm9pZCBjcmFzaGVzIHJlbGF0ZWQgdG8gY29ubmVjdGlvbnMKKyMgICB0cnlpbmcgdG8gd3JpdGUgbG9ncyBlbnRyaWVzIGFmdGVyIHRoZWlyIHJlc3BlY3RpdmUgZW5kcG9pbnQgaGFzIGJlZW4KKyMgICBkZWFsbG9jYXRlZC4gVGhhbmsgeW91IFRoYWxoYW1tZXIgZm9yIHJlcG9ydGluZyBhbmQgSnVwcCBNw7xsbGVyIGZvciB0aGUgCitkaWZmIC0tZ2l0IGEvdGVzdC9leHRlbnNpb24vcGVybWVzc2FnZV9kZWZsYXRlLmNwcCBiL3Rlc3QvZXh0ZW5zaW9uL3Blcm1lc3NhZ2VfZGVmbGF0ZS5jcHAKK2luZGV4IDRjZDNlN2I2Li44MDVhZmNjMyAxMDA2NDQKKy0tLSBhL3Rlc3QvZXh0ZW5zaW9uL3Blcm1lc3NhZ2VfZGVmbGF0ZS5jcHAKKysrKyBiL3Rlc3QvZXh0ZW5zaW9uL3Blcm1lc3NhZ2VfZGVmbGF0ZS5jcHAKK0BAIC0xODYsMTUgKzE4NiwyMiBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX3NlcnZlcl9tYXhfd2luZG93X2JpdHNfaW52YWxpZCApIHsKKyAKKyBCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX3NlcnZlcl9tYXhfd2luZG93X2JpdHNfdmFsaWQgKSB7CisgICAgIGV4dF92YXJzIHY7CisrICAgIAorKyAgICAvLyBjb25maXJtIHRoYXQgYSByZXF1ZXN0IGZvciBhIHZhbHVlIG9mIDggaXMgaW50ZXJwcmV0ZWQgYXMgOQorICAgICB2LmF0dHJbInNlcnZlcl9tYXhfd2luZG93X2JpdHMiXSA9ICI4IjsKKysgICAgdi5lc3AgPSB2LmV4dHMubmVnb3RpYXRlKHYuYXR0cik7CisrICAgIEJPT1NUX0NIRUNLKCB2LmV4dHMuaXNfZW5hYmxlZCgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5maXJzdCwgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9OSIpOworIAorKyAgICB2LmF0dHJbInNlcnZlcl9tYXhfd2luZG93X2JpdHMiXSA9ICI5IjsKKyAgICAgdi5lc3AgPSB2LmV4dHMubmVnb3RpYXRlKHYuYXR0cik7CisgICAgIEJPT1NUX0NIRUNLKCB2LmV4dHMuaXNfZW5hYmxlZCgpICk7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5maXJzdCwgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CistICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9OCIpOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyAKKy0gICAgdi5hdHRyWyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiMTUiOworIAorKyAgICB2LmF0dHJbInNlcnZlcl9tYXhfd2luZG93X2JpdHMiXSA9ICIxNSI7CisgICAgIHYuZXNwID0gdi5leHRzLm5lZ290aWF0ZSh2LmF0dHIpOworICAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworQEAgLTIxMyw3ICsyMjAsNyBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggaW52YWxpZF9zZXRfc2VydmVyX21heF93aW5kb3dfYml0cyApIHsKKyAKKyBCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX3NlcnZlcl9tYXhfd2luZG93X2JpdHNfZGVjbGluZSApIHsKKyAgICAgZXh0X3ZhcnMgdjsKKy0gICAgdi5hdHRyWyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiOCI7CisrICAgIHYuYXR0clsic2VydmVyX21heF93aW5kb3dfYml0cyJdID0gIjkiOworIAorICAgICB2LmVjID0gdi5leHRzLnNldF9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKDE1LHBtZF9tb2RlOjpkZWNsaW5lKTsKKyAgICAgdi5lc3AgPSB2LmV4dHMubmVnb3RpYXRlKHYuYXR0cik7CitAQCAtMjIzLDcgKzIzMCw3IEBAIEJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfc2VydmVyX21heF93aW5kb3dfYml0c19kZWNsaW5lICkgeworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlIik7CisgfQorIAorLUJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfc2VydmVyX21heF93aW5kb3dfYml0c19hY2NlcHQgKSB7CisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX2FjY2VwdF84ICkgeworICAgICBleHRfdmFycyB2OworICAgICB2LmF0dHJbInNlcnZlcl9tYXhfd2luZG93X2JpdHMiXSA9ICI4IjsKKyAKK0BAIC0yMzIsMTAgKzIzOSwyMiBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX3NlcnZlcl9tYXhfd2luZG93X2JpdHNfYWNjZXB0ICkgeworICAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5maXJzdCwgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CistICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9OCIpOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyB9CisgCistQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX2xhcmdlc3QgKSB7CisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX2FjY2VwdCApIHsKKysgICAgZXh0X3ZhcnMgdjsKKysgICAgdi5hdHRyWyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiOSI7CisrCisrICAgIHYuZWMgPSB2LmV4dHMuc2V0X3NlcnZlcl9tYXhfd2luZG93X2JpdHMoMTUscG1kX21vZGU6OmFjY2VwdCk7CisrICAgIHYuZXNwID0gdi5leHRzLm5lZ290aWF0ZSh2LmF0dHIpOworKyAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5maXJzdCwgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9OSIpOworK30KKysKKytCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX3NlcnZlcl9tYXhfd2luZG93X2JpdHNfbGFyZ2VzdF84ICkgeworICAgICBleHRfdmFycyB2OworICAgICB2LmF0dHJbInNlcnZlcl9tYXhfd2luZG93X2JpdHMiXSA9ICI4IjsKKyAKK0BAIC0yNDQsMTAgKzI2MywyMiBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX3NlcnZlcl9tYXhfd2luZG93X2JpdHNfbGFyZ2VzdCApIHsKKyAgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworLSAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTgiKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz05Iik7CisgfQorIAorLUJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfc2VydmVyX21heF93aW5kb3dfYml0c19zbWFsbGVzdCApIHsKKytCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX3NlcnZlcl9tYXhfd2luZG93X2JpdHNfbGFyZ2VzdCApIHsKKysgICAgZXh0X3ZhcnMgdjsKKysgICAgdi5hdHRyWyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiOSI7CisrCisrICAgIHYuZWMgPSB2LmV4dHMuc2V0X3NlcnZlcl9tYXhfd2luZG93X2JpdHMoMTUscG1kX21vZGU6Omxhcmdlc3QpOworKyAgICB2LmVzcCA9IHYuZXh0cy5uZWdvdGlhdGUodi5hdHRyKTsKKysgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyt9CisrCisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX3NtYWxsZXN0XzggKSB7CisgICAgIGV4dF92YXJzIHY7CisgICAgIHYuYXR0clsic2VydmVyX21heF93aW5kb3dfYml0cyJdID0gIjgiOworIAorQEAgLTI1Niw3ICsyODcsMTkgQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX3NtYWxsZXN0ICkgeworICAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5maXJzdCwgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CistICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9OCIpOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyt9CisrCisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX3NtYWxsZXN0ICkgeworKyAgICBleHRfdmFycyB2OworKyAgICB2LmF0dHJbInNlcnZlcl9tYXhfd2luZG93X2JpdHMiXSA9ICI5IjsKKysKKysgICAgdi5lYyA9IHYuZXh0cy5zZXRfc2VydmVyX21heF93aW5kb3dfYml0cygxNSxwbWRfbW9kZTo6c21hbGxlc3QpOworKyAgICB2LmVzcCA9IHYuZXh0cy5uZWdvdGlhdGUodi5hdHRyKTsKKysgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyB9CisgCisgLy8gTmVnb3RpYXRlIHNlcnZlcl9tYXhfd2luZG93X2JpdHMKK0BAIC0yOTIsNyArMzM1LDEzIEBAIEJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c192YWxpZCApIHsKKyAgICAgdi5lc3AgPSB2LmV4dHMubmVnb3RpYXRlKHYuYXR0cik7CisgICAgIEJPT1NUX0NIRUNLKCB2LmV4dHMuaXNfZW5hYmxlZCgpICk7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5maXJzdCwgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CistICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGU7IGNsaWVudF9tYXhfd2luZG93X2JpdHM9OCIpOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTkiKTsKKysKKysgICAgdi5hdHRyWyJjbGllbnRfbWF4X3dpbmRvd19iaXRzIl0gPSAiOSI7CisrICAgIHYuZXNwID0gdi5leHRzLm5lZ290aWF0ZSh2LmF0dHIpOworKyAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyAKKyAgICAgdi5hdHRyWyJjbGllbnRfbWF4X3dpbmRvd19iaXRzIl0gPSAiMTUiOworICAgICB2LmVzcCA9IHYuZXh0cy5uZWdvdGlhdGUodi5hdHRyKTsKK0BAIC0zMTEsNyArMzYwLDcgQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIGludmFsaWRfc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMgKSB7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKHYuZWMscG1kZTo6bWFrZV9lcnJvcl9jb2RlKHBtZGU6OmludmFsaWRfbWF4X3dpbmRvd19iaXRzKSk7CisgfQorIAorLUJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c19kZWNsaW5lICkgeworK0JPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c19kZWNsaW5lXzggKSB7CisgICAgIGV4dF92YXJzIHY7CisgICAgIHYuYXR0clsiY2xpZW50X21heF93aW5kb3dfYml0cyJdID0gIjgiOworIAorQEAgLTMyMyw3ICszNzIsMTkgQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX2RlY2xpbmUgKSB7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGUiKTsKKyB9CisgCistQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX2FjY2VwdCApIHsKKytCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX2NsaWVudF9tYXhfd2luZG93X2JpdHNfZGVjbGluZSApIHsKKysgICAgZXh0X3ZhcnMgdjsKKysgICAgdi5hdHRyWyJjbGllbnRfbWF4X3dpbmRvd19iaXRzIl0gPSAiOSI7CisrCisrICAgIHYuZWMgPSB2LmV4dHMuc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoOSxwbWRfbW9kZTo6ZGVjbGluZSk7CisrICAgIHYuZXNwID0gdi5leHRzLm5lZ290aWF0ZSh2LmF0dHIpOworKyAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5maXJzdCwgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGUiKTsKKyt9CisrCisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX2FjY2VwdF84ICkgeworICAgICBleHRfdmFycyB2OworICAgICB2LmF0dHJbImNsaWVudF9tYXhfd2luZG93X2JpdHMiXSA9ICI4IjsKKyAKK0BAIC0zMzIsMTAgKzM5MywyMiBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX2NsaWVudF9tYXhfd2luZG93X2JpdHNfYWNjZXB0ICkgeworICAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5maXJzdCwgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CistICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGU7IGNsaWVudF9tYXhfd2luZG93X2JpdHM9OCIpOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyB9CisgCistQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX2xhcmdlc3QgKSB7CisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX2FjY2VwdCApIHsKKysgICAgZXh0X3ZhcnMgdjsKKysgICAgdi5hdHRyWyJjbGllbnRfbWF4X3dpbmRvd19iaXRzIl0gPSAiOSI7CisrCisrICAgIHYuZWMgPSB2LmV4dHMuc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoMTUscG1kX21vZGU6OmFjY2VwdCk7CisrICAgIHYuZXNwID0gdi5leHRzLm5lZ290aWF0ZSh2LmF0dHIpOworKyAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5maXJzdCwgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGU7IGNsaWVudF9tYXhfd2luZG93X2JpdHM9OSIpOworK30KKysKKytCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX2NsaWVudF9tYXhfd2luZG93X2JpdHNfbGFyZ2VzdF84ICkgeworICAgICBleHRfdmFycyB2OworICAgICB2LmF0dHJbImNsaWVudF9tYXhfd2luZG93X2JpdHMiXSA9ICI4IjsKKyAKK0BAIC0zNDQsMTAgKzQxNywyMiBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX2NsaWVudF9tYXhfd2luZG93X2JpdHNfbGFyZ2VzdCApIHsKKyAgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworLSAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTgiKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgY2xpZW50X21heF93aW5kb3dfYml0cz05Iik7CisgfQorIAorLUJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c19zbWFsbGVzdCApIHsKKytCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX2NsaWVudF9tYXhfd2luZG93X2JpdHNfbGFyZ2VzdCApIHsKKysgICAgZXh0X3ZhcnMgdjsKKysgICAgdi5hdHRyWyJjbGllbnRfbWF4X3dpbmRvd19iaXRzIl0gPSAiOSI7CisrCisrICAgIHYuZWMgPSB2LmV4dHMuc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoMTUscG1kX21vZGU6Omxhcmdlc3QpOworKyAgICB2LmVzcCA9IHYuZXh0cy5uZWdvdGlhdGUodi5hdHRyKTsKKysgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyt9CisrCisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX3NtYWxsZXN0XzggKSB7CisgICAgIGV4dF92YXJzIHY7CisgICAgIHYuYXR0clsiY2xpZW50X21heF93aW5kb3dfYml0cyJdID0gIjgiOworIAorQEAgLTM1Niw3ICs0NDEsMTkgQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX3NtYWxsZXN0ICkgeworICAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5maXJzdCwgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CistICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGU7IGNsaWVudF9tYXhfd2luZG93X2JpdHM9OCIpOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyt9CisrCisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX3NtYWxsZXN0ICkgeworKyAgICBleHRfdmFycyB2OworKyAgICB2LmF0dHJbImNsaWVudF9tYXhfd2luZG93X2JpdHMiXSA9ICI5IjsKKysKKysgICAgdi5lYyA9IHYuZXh0cy5zZXRfY2xpZW50X21heF93aW5kb3dfYml0cygxNSxwbWRfbW9kZTo6c21hbGxlc3QpOworKyAgICB2LmVzcCA9IHYuZXh0cy5uZWdvdGlhdGUodi5hdHRyKTsKKysgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyB9CisgCisgCitAQCAtNTA3LDcgKzYwNCw4IEBAIEJPT1NUX0FVVE9fVEVTVF9DQVNFKCBjb21wcmVzc19kYXRhICkgeworICAgICBzdGQ6OnN0cmluZyBjb21wcmVzc19vdXQ7CisgICAgIHN0ZDo6c3RyaW5nIGRlY29tcHJlc3Nfb3V0OworIAorLSAgICB2LmV4dHMuaW5pdCh0cnVlKTsKKysgICAgdi5lYyA9IHYuZXh0cy5pbml0KHRydWUpOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisgCisgICAgIHYuZWMgPSB2LmV4dHMuY29tcHJlc3MoY29tcHJlc3NfaW4sY29tcHJlc3Nfb3V0KTsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworQEAgLTUyMCw3ICs2MTgsOCBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggY29tcHJlc3NfZGF0YSApIHsKKyBCT09TVF9BVVRPX1RFU1RfQ0FTRSggY29tcHJlc3NfZGF0YV9tdWx0aXBsZSApIHsKKyAgICAgZXh0X3ZhcnMgdjsKKyAKKy0gICAgdi5leHRzLmluaXQodHJ1ZSk7CisrICAgIHYuZWMgPSB2LmV4dHMuaW5pdCh0cnVlKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworIAorICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAgc3RkOjpzdHJpbmcgY29tcHJlc3NfaW4gPSAiSGVsbG8iOworQEAgLTU0NSwxMSArNjQ0LDEyIEBAIEJPT1NUX0FVVE9fVEVTVF9DQVNFKCBjb21wcmVzc19kYXRhX2xhcmdlICkgeworIAorICAgICB3ZWJzb2NrZXRwcDo6aHR0cDo6YXR0cmlidXRlX2xpc3QgYWxpc3Q7CisgCistICAgIGFsaXN0WyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiOCI7CistICAgIHYuZXh0cy5zZXRfc2VydmVyX21heF93aW5kb3dfYml0cyg4LHdlYnNvY2tldHBwOjpleHRlbnNpb25zOjpwZXJtZXNzYWdlX2RlZmxhdGU6Om1vZGU6OnNtYWxsZXN0KTsKKysgICAgYWxpc3RbInNlcnZlcl9tYXhfd2luZG93X2JpdHMiXSA9ICI5IjsKKysgICAgdi5leHRzLnNldF9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKDksd2Vic29ja2V0cHA6OmV4dGVuc2lvbnM6OnBlcm1lc3NhZ2VfZGVmbGF0ZTo6bW9kZTo6c21hbGxlc3QpOworIAorICAgICB2LmV4dHMubmVnb3RpYXRlKGFsaXN0KTsKKy0gICAgdi5leHRzLmluaXQodHJ1ZSk7CisrICAgIHYuZWMgPSB2LmV4dHMuaW5pdCh0cnVlKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworIAorICAgICB2LmVjID0gdi5leHRzLmNvbXByZXNzKGNvbXByZXNzX2luLGNvbXByZXNzX291dCk7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKK0BAIC01NzMsNyArNjczLDggQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIGNvbXByZXNzX2RhdGFfbm9fY29udGV4dF90YWtlb3ZlciApIHsKKyAgICAgdi5leHRzLmVuYWJsZV9zZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcigpOworIAorICAgICB2LmV4dHMubmVnb3RpYXRlKGFsaXN0KTsKKy0gICAgdi5leHRzLmluaXQodHJ1ZSk7CisrICAgIHYuZWMgPSB2LmV4dHMuaW5pdCh0cnVlKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworIAorICAgICB2LmVjID0gdi5leHRzLmNvbXByZXNzKGNvbXByZXNzX2luLGNvbXByZXNzX291dDEpOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CitAQCAtNjA5LDcgKzcxMCw4IEBAIEJPT1NUX0FVVE9fVEVTVF9DQVNFKCBjb21wcmVzc19lbXB0eSApIHsKKyAgICAgc3RkOjpzdHJpbmcgY29tcHJlc3Nfb3V0OworICAgICBzdGQ6OnN0cmluZyBkZWNvbXByZXNzX291dDsKKyAKKy0gICAgdi5leHRzLmluaXQodHJ1ZSk7CisrICAgIHYuZWMgPSB2LmV4dHMuaW5pdCh0cnVlKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworIAorICAgICB2LmVjID0gdi5leHRzLmNvbXByZXNzKGNvbXByZXNzX2luLGNvbXByZXNzX291dCk7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKK0BAIC02NDAsNyArNzQyLDggQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIGRlY29tcHJlc3NfZGF0YSApIHsKKyAgICAgc3RkOjpzdHJpbmcgb3V0OworICAgICBzdGQ6OnN0cmluZyByZWZlcmVuY2UgPSAiSGVsbG8iOworIAorLSAgICB2LmV4dHMuaW5pdCh0cnVlKTsKKysgICAgdi5lYyA9IHYuZXh0cy5pbml0KHRydWUpOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CisgCisgICAgIHYuZWMgPSB2LmV4dHMuZGVjb21wcmVzcyhpbiwxMSxvdXQpOworIAorZGlmZiAtLWdpdCBhL3dlYnNvY2tldHBwL2V4dGVuc2lvbnMvcGVybWVzc2FnZV9kZWZsYXRlL2VuYWJsZWQuaHBwIGIvd2Vic29ja2V0cHAvZXh0ZW5zaW9ucy9wZXJtZXNzYWdlX2RlZmxhdGUvZW5hYmxlZC5ocHAKK2luZGV4IDE1ODFmMTRjLi5mMjBhMWIxZCAxMDA2NDQKKy0tLSBhL3dlYnNvY2tldHBwL2V4dGVuc2lvbnMvcGVybWVzc2FnZV9kZWZsYXRlL2VuYWJsZWQuaHBwCisrKysgYi93ZWJzb2NrZXRwcC9leHRlbnNpb25zL3Blcm1lc3NhZ2VfZGVmbGF0ZS9lbmFibGVkLmhwcAorQEAgLTQ2LDcgKzQ2LDcgQEAKKyBuYW1lc3BhY2Ugd2Vic29ja2V0cHAgeworIG5hbWVzcGFjZSBleHRlbnNpb25zIHsKKyAKKy0vLy8gSW1wbGVtZW50YXRpb24gb2YgdGhlIGRyYWZ0IHBlcm1lc3NhZ2UtZGVmbGF0ZSBXZWJTb2NrZXQgZXh0ZW5zaW9uCisrLy8vIEltcGxlbWVudGF0aW9uIG9mIFJGQyA3NjkyLCB0aGUgcGVybWVzc2FnZS1kZWZsYXRlIFdlYlNvY2tldCBleHRlbnNpb24KKyAvKioKKyAgKiAjIyMgcGVybWVzc2FnZS1kZWZsYXRlIGludGVyZmFjZQorICAqCitAQCAtMTc0LDE4ICsxNzQsMzAgQEAgbmFtZXNwYWNlIHdlYnNvY2tldHBwIHsKKyBuYW1lc3BhY2UgZXh0ZW5zaW9ucyB7CisgbmFtZXNwYWNlIHBlcm1lc3NhZ2VfZGVmbGF0ZSB7CisgCistLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNlcnZlcl9tYXhfd2luZG93X2JpdHMgYXMgZGVmaW5lZCBieSBkcmFmdCAxNworKy8vLyBEZWZhdWx0IHZhbHVlIGZvciBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIGFzIGRlZmluZWQgYnkgUkZDIDc2OTIKKyBzdGF0aWMgdWludDhfdCBjb25zdCBkZWZhdWx0X3NlcnZlcl9tYXhfd2luZG93X2JpdHMgPSAxNTsKKy0vLy8gTWluaW11bSB2YWx1ZSBmb3Igc2VydmVyX21heF93aW5kb3dfYml0cyBhcyBkZWZpbmVkIGJ5IGRyYWZ0IDE3CisrLy8vIE1pbmltdW0gdmFsdWUgZm9yIHNlcnZlcl9tYXhfd2luZG93X2JpdHMgYXMgZGVmaW5lZCBieSBSRkMgNzY5MgorKy8qKgorKyAqIE5PVEU6IEEgdmFsdWUgb2YgOCBpcyBub3QgYWN0dWFsbHkgc3VwcG9ydGVkIGJ5IHpsaWIsIHRoZSBkZWZsYXRlCisrICogbGlicmFyeSB0aGF0IFdlYlNvY2tldCsrIHVzZXMuIFRvIHByZXNlcnZlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CisrICogd2l0aCBSRkMgNzY5MiBhbmQgcHJldmlvdXMgdmVyc2lvbnMgb2YgdGhlIGxpYnJhcnkgYSB2YWx1ZSBvZiA4CisrICogaXMgYWNjZXB0ZWQgYnkgdGhlIGxpYnJhcnkgYnV0IHdpbGwgYWx3YXlzIGJlIG5lZ290aWF0ZWQgYXMgOS4KKysgKi8KKyBzdGF0aWMgdWludDhfdCBjb25zdCBtaW5fc2VydmVyX21heF93aW5kb3dfYml0cyA9IDg7CistLy8vIE1heGltdW0gdmFsdWUgZm9yIHNlcnZlcl9tYXhfd2luZG93X2JpdHMgYXMgZGVmaW5lZCBieSBkcmFmdCAxNworKy8vLyBNYXhpbXVtIHZhbHVlIGZvciBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIGFzIGRlZmluZWQgYnkgUkZDIDc2OTIKKyBzdGF0aWMgdWludDhfdCBjb25zdCBtYXhfc2VydmVyX21heF93aW5kb3dfYml0cyA9IDE1OworIAorLS8vLyBEZWZhdWx0IHZhbHVlIGZvciBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGFzIGRlZmluZWQgYnkgZHJhZnQgMTcKKysvLy8gRGVmYXVsdCB2YWx1ZSBmb3IgY2xpZW50X21heF93aW5kb3dfYml0cyBhcyBkZWZpbmVkIGJ5IFJGQyA3NjkyCisgc3RhdGljIHVpbnQ4X3QgY29uc3QgZGVmYXVsdF9jbGllbnRfbWF4X3dpbmRvd19iaXRzID0gMTU7CistLy8vIE1pbmltdW0gdmFsdWUgZm9yIGNsaWVudF9tYXhfd2luZG93X2JpdHMgYXMgZGVmaW5lZCBieSBkcmFmdCAxNworKy8vLyBNaW5pbXVtIHZhbHVlIGZvciBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGFzIGRlZmluZWQgYnkgUkZDIDc2OTIKKysvKioKKysgKiBOT1RFOiBBIHZhbHVlIG9mIDggaXMgbm90IGFjdHVhbGx5IHN1cHBvcnRlZCBieSB6bGliLCB0aGUgZGVmbGF0ZQorKyAqIGxpYnJhcnkgdGhhdCBXZWJTb2NrZXQrKyB1c2VzLiBUbyBwcmVzZXJ2ZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQorKyAqIHdpdGggUkZDIDc2OTIgYW5kIHByZXZpb3VzIHZlcnNpb25zIG9mIHRoZSBsaWJyYXJ5IGEgdmFsdWUgb2YgOAorKyAqIGlzIGFjY2VwdGVkIGJ5IHRoZSBsaWJyYXJ5IGJ1dCB3aWxsIGFsd2F5cyBiZSBuZWdvdGlhdGVkIGFzIDkuCisrICovCisgc3RhdGljIHVpbnQ4X3QgY29uc3QgbWluX2NsaWVudF9tYXhfd2luZG93X2JpdHMgPSA4OworLS8vLyBNYXhpbXVtIHZhbHVlIGZvciBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGFzIGRlZmluZWQgYnkgZHJhZnQgMTcKKysvLy8gTWF4aW11bSB2YWx1ZSBmb3IgY2xpZW50X21heF93aW5kb3dfYml0cyBhcyBkZWZpbmVkIGJ5IFJGQyA3NjkyCisgc3RhdGljIHVpbnQ4X3QgY29uc3QgbWF4X2NsaWVudF9tYXhfd2luZG93X2JpdHMgPSAxNTsKKyAKKyBuYW1lc3BhY2UgbW9kZSB7CitAQCAtMzcyLDcgKzM4NCw3IEBAIGNsYXNzIGVuYWJsZWQgeworICAgICAvKioKKyAgICAgICogVGhlIGJpdHMgc2V0dGluZyBpcyB0aGUgYmFzZSAyIGxvZ2FyaXRobSBvZiB0aGUgbWF4aW11bSB3aW5kb3cgc2l6ZSB0aGF0CisgICAgICAqIHRoZSBzZXJ2ZXIgbXVzdCB1c2UgdG8gY29tcHJlc3Mgb3V0Z29pbmcgbWVzc2FnZXMuIFRoZSBwZXJtaXR0ZWQgcmFuZ2UKKy0gICAgICogaXMgOCB0byAxNSBpbmNsdXNpdmUuIDggcmVwcmVzZW50cyBhIDI1NiBieXRlIHdpbmRvdyBhbmQgMTUgYSAzMktpQgorKyAgICAgKiBpcyA5IHRvIDE1IGluY2x1c2l2ZS4gOSByZXByZXNlbnRzIGEgNTEyIGJ5dGUgd2luZG93IGFuZCAxNSBhIDMyS2lCCisgICAgICAqIHdpbmRvdy4gVGhlIGRlZmF1bHQgc2V0dGluZyBpcyAxNS4KKyAgICAgICoKKyAgICAgICogTW9kZSBPcHRpb25zOgorQEAgLTM4Niw2ICszOTgsMTQgQEAgY2xhc3MgZW5hYmxlZCB7CisgICAgICAqIGFkanVzdGVkIGJ5IHRoZSBzZXJ2ZXIuIEEgc2VydmVyIG1heSB1bmlsYXRlcmFsbHkgc2V0IHRoaXMgdmFsdWUgd2l0aG91dAorICAgICAgKiBjbGllbnQgc3VwcG9ydC4KKyAgICAgICoKKysgICAgICogTk9URTogVGhlIHBlcm1lc3NhZ2UtZGVmbGF0ZSBzcGVjIHNwZWNpZmllcyB0aGF0IGEgdmFsdWUgb2YgOCBpcyBhbGxvd2VkLgorKyAgICAgKiBQcmlvciB0byB2ZXJzaW9uIDAuOC4wIGEgdmFsdWUgb2YgOCB3YXMgYWxzbyBhbGxvd2VkIGJ5IHRoaXMgbGlicmFyeS4KKysgICAgICogemxpYiwgdGhlIGRlZmxhdGUgY29tcHJlc3Npb24gbGlicmFyeSB0aGF0IFdlYlNvY2tldCsrIHVzZXMgaGFzIGFsd2F5cworKyAgICAgKiBzaWxlbnRseSBhZGp1c3RlZCBhIHZhbHVlIG9mIDggdG8gOS4gSW4gcmVjZW50IHZlcnNpb25zIG9mIHpsaWIgKDEuMi45IAorKyAgICAgKiBhbmQgZ3JlYXRlcikgYSB2YWx1ZSBvZiA4IGlzIG5vdyBleHBsaWNpdGx5IHJlamVjdGVkLiBXZWJTb2NrZXQrKyAwLjguMAorKyAgICAgKiBjb250aW51ZXMgdG8gcGVyZm9ybSB0aGUgOC0+OSBjb252ZXJzaW9uIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQorKyAgICAgKiBwdXJwb3NlcyBidXQgdGhpcyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkuCisrICAgICAqCisgICAgICAqIEBwYXJhbSBiaXRzIFRoZSBzaXplIHRvIHJlcXVlc3QgZm9yIHRoZSBvdXRnb2luZyB3aW5kb3cgc2l6ZQorICAgICAgKiBAcGFyYW0gbW9kZSBUaGUgbW9kZSB0byB1c2UgZm9yIG5lZ290aWF0aW5nIHRoaXMgcGFyYW1ldGVyCisgICAgICAqIEByZXR1cm4gQSBzdGF0dXMgY29kZQorQEAgLTM5NCw2ICs0MTQsMTIgQEAgY2xhc3MgZW5hYmxlZCB7CisgICAgICAgICBpZiAoYml0cyA8IG1pbl9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIHx8IGJpdHMgPiBtYXhfc2VydmVyX21heF93aW5kb3dfYml0cykgeworICAgICAgICAgICAgIHJldHVybiBlcnJvcjo6bWFrZV9lcnJvcl9jb2RlKGVycm9yOjppbnZhbGlkX21heF93aW5kb3dfYml0cyk7CisgICAgICAgICB9CisrCisrICAgICAgICAvLyBTZWUgbm90ZSBpbiBkb2MgY29tbWVudCBhYm92ZSBhYm91dCB3aGF0IGlzIGhhcHBlbmluZyBoZXJlCisrICAgICAgICBpZiAoYml0cyA9PSA4KSB7CisrICAgICAgICAgICAgYml0cyA9IDk7CisrICAgICAgICB9CisrCisgICAgICAgICBtX3NlcnZlcl9tYXhfd2luZG93X2JpdHMgPSBiaXRzOworICAgICAgICAgbV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX21vZGUgPSBtb2RlOworIAorQEAgLTQwMyw4ICs0MjksOCBAQCBjbGFzcyBlbmFibGVkIHsKKyAgICAgLy8vIExpbWl0IGNsaWVudCBMWjc3IHNsaWRpbmcgd2luZG93IHNpemUKKyAgICAgLyoqCisgICAgICAqIFRoZSBiaXRzIHNldHRpbmcgaXMgdGhlIGJhc2UgMiBsb2dhcml0aG0gb2YgdGhlIHdpbmRvdyBzaXplIHRoYXQgdGhlCistICAgICAqIGNsaWVudCBtdXN0IHVzZSB0byBjb21wcmVzcyBvdXRnb2luZyBtZXNzYWdlcy4gVGhlIHBlcm1pdHRlZCByYW5nZSBpcyA4CistICAgICAqIHRvIDE1IGluY2x1c2l2ZS4gOCByZXByZXNlbnRzIGEgMjU2IGJ5dGUgd2luZG93IGFuZCAxNSBhIDMyS2lCIHdpbmRvdy4KKysgICAgICogY2xpZW50IG11c3QgdXNlIHRvIGNvbXByZXNzIG91dGdvaW5nIG1lc3NhZ2VzLiBUaGUgcGVybWl0dGVkIHJhbmdlIGlzIDkKKysgICAgICogdG8gMTUgaW5jbHVzaXZlLiA5IHJlcHJlc2VudHMgYSA1MTIgYnl0ZSB3aW5kb3cgYW5kIDE1IGEgMzJLaUIgd2luZG93LgorICAgICAgKiBUaGUgZGVmYXVsdCBzZXR0aW5nIGlzIDE1LgorICAgICAgKgorICAgICAgKiBNb2RlIE9wdGlvbnM6CitAQCAtNDE3LDYgKzQ0MywxNCBAQCBjbGFzcyBlbmFibGVkIHsKKyAgICAgICogb3V0Z29pbmcgd2luZG93IHNpemUgdW5pbGF0ZXJhbGx5LiBBIHNlcnZlciBtYXkgb25seSBsaW1pdCB0aGUgY2xpZW50J3MKKyAgICAgICogd2luZG93IHNpemUgaWYgdGhlIHJlbW90ZSBjbGllbnQgc3VwcG9ydHMgdGhhdCBmZWF0dXJlLgorICAgICAgKgorKyAgICAgKiBOT1RFOiBUaGUgcGVybWVzc2FnZS1kZWZsYXRlIHNwZWMgc3BlY2lmaWVzIHRoYXQgYSB2YWx1ZSBvZiA4IGlzIGFsbG93ZWQuCisrICAgICAqIFByaW9yIHRvIHZlcnNpb24gMC44LjAgYSB2YWx1ZSBvZiA4IHdhcyBhbHNvIGFsbG93ZWQgYnkgdGhpcyBsaWJyYXJ5LgorKyAgICAgKiB6bGliLCB0aGUgZGVmbGF0ZSBjb21wcmVzc2lvbiBsaWJyYXJ5IHRoYXQgV2ViU29ja2V0KysgdXNlcyBoYXMgYWx3YXlzCisrICAgICAqIHNpbGVudGx5IGFkanVzdGVkIGEgdmFsdWUgb2YgOCB0byA5LiBJbiByZWNlbnQgdmVyc2lvbnMgb2YgemxpYiAoMS4yLjkgCisrICAgICAqIGFuZCBncmVhdGVyKSBhIHZhbHVlIG9mIDggaXMgbm93IGV4cGxpY2l0bHkgcmVqZWN0ZWQuIFdlYlNvY2tldCsrIDAuOC4wCisrICAgICAqIGNvbnRpbnVlcyB0byBwZXJmb3JtIHRoZSA4LT45IGNvbnZlcnNpb24gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CisrICAgICAqIHB1cnBvc2VzIGJ1dCB0aGlzIHNob3VsZCBiZSBjb25zaWRlcmVkIGRlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eS4KKysgICAgICoKKyAgICAgICogQHBhcmFtIGJpdHMgVGhlIHNpemUgdG8gcmVxdWVzdCBmb3IgdGhlIG91dGdvaW5nIHdpbmRvdyBzaXplCisgICAgICAqIEBwYXJhbSBtb2RlIFRoZSBtb2RlIHRvIHVzZSBmb3IgbmVnb3RpYXRpbmcgdGhpcyBwYXJhbWV0ZXIKKyAgICAgICogQHJldHVybiBBIHN0YXR1cyBjb2RlCitAQCAtNDI1LDYgKzQ1OSwxMiBAQCBjbGFzcyBlbmFibGVkIHsKKyAgICAgICAgIGlmIChiaXRzIDwgbWluX2NsaWVudF9tYXhfd2luZG93X2JpdHMgfHwgYml0cyA+IG1heF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKSB7CisgICAgICAgICAgICAgcmV0dXJuIGVycm9yOjptYWtlX2Vycm9yX2NvZGUoZXJyb3I6OmludmFsaWRfbWF4X3dpbmRvd19iaXRzKTsKKyAgICAgICAgIH0KKysKKysgICAgICAgIC8vIFNlZSBub3RlIGluIGRvYyBjb21tZW50IGFib3ZlIGFib3V0IHdoYXQgaXMgaGFwcGVuaW5nIGhlcmUKKysgICAgICAgIGlmIChiaXRzID09IDgpIHsKKysgICAgICAgICAgICBiaXRzID0gOTsKKysgICAgICAgIH0KKysKKyAgICAgICAgIG1fY2xpZW50X21heF93aW5kb3dfYml0cyA9IGJpdHM7CisgICAgICAgICBtX2NsaWVudF9tYXhfd2luZG93X2JpdHNfbW9kZSA9IG1vZGU7CisgCitAQCAtNjQyLDExICs2ODIsMTcgQEAgY2xhc3MgZW5hYmxlZCB7CisgICAgICAqIGNsaWVudCByZXF1ZXN0ZWQgdGhhdCB3ZSB1c2UuCisgICAgICAqCisgICAgICAqIG9wdGlvbnM6CistICAgICAqIC0gZGVjbGluZSAocmVmdXNlIHRvIHVzZSB0aGUgYXR0cmlidXRlKQorLSAgICAgKiAtIGFjY2VwdCAodXNlIHdoYXRldmVyIHRoZSBjbGllbnQgc2F5cykKKy0gICAgICogLSBsYXJnZXN0ICh1c2UgbGFyZ2VzdCBwb3NzaWJsZSB2YWx1ZSkKKysgICAgICogLSBkZWNsaW5lIChpZ25vcmUgdmFsdWUsIG9mZmVyIG91ciBkZWZhdWx0IGluc3RlYWQpCisrICAgICAqIC0gYWNjZXB0ICh1c2UgdGhlIHZhbHVlIHJlcXVlc3RlZCBieSB0aGUgY2xpZW50KQorKyAgICAgKiAtIGxhcmdlc3QgKHVzZSBsYXJnZXN0IHZhbHVlIGFjY2VwdGFibGUgdG8gYm90aCkKKyAgICAgICogLSBzbWFsbGVzdCAodXNlIHNtYWxsZXN0IHBvc3NpYmxlIHZhbHVlKQorICAgICAgKgorKyAgICAgKiBOT1RFOiBBcyBhIHZhbHVlIG9mIDggaXMgbm8gbG9uZ2VyIGV4cGxpY2l0bHkgc3VwcG9ydGVkIGJ5IHpsaWIgYnV0IG1pZ2h0CisrICAgICAqIGJlIHJlcXVlc3RlZCBmb3IgbmVnb3RpYXRpb24gYnkgYW4gb2xkZXIgY2xpZW50L3NlcnZlciwgaWYgdGhlIHJlc3VsdCBvZgorKyAgICAgKiB0aGUgbmVnb3RpYXRpb24gd291bGQgYmUgdG8gc2VuZCBhIHZhbHVlIG9mIDgsIGEgdmFsdWUgb2YgOSBpcyBvZmZlcmVkCisrICAgICAqIGluc3RlYWQuIFRoaXMgZW5zdXJlcyB0aGF0IFdlYlNvY2tldCsrIHdpbGwgb25seSBldmVyIG5lZ290aWF0ZSBjb25uZWN0aW9ucworKyAgICAgKiB3aXRoIGNvbXByZXNzaW9uIHNldHRpbmdzIGV4cGxpY2l0bHkgc3VwcG9ydGVkIGJ5IHpsaWIuCisrICAgICAqCisgICAgICAqIEBwYXJhbSBbaW5dIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlIGZyb20gdGhlIG9mZmVyCisgICAgICAqIEBwYXJhbSBbb3V0XSBlYyBBIHJlZmVyZW5jZSB0byB0aGUgZXJyb3IgY29kZSB0byByZXR1cm4gZXJyb3JzIHZpYQorICAgICAgKi8KK0BAIC02NzgsNiArNzI0LDExIEBAIGNsYXNzIGVuYWJsZWQgeworICAgICAgICAgICAgICAgICBlYyA9IG1ha2VfZXJyb3JfY29kZShlcnJvcjo6aW52YWxpZF9tb2RlKTsKKyAgICAgICAgICAgICAgICAgbV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gZGVmYXVsdF9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzOworICAgICAgICAgfQorKworKyAgICAgICAgLy8gU2VlIG5vdGUgaW4gZG9jIGNvbW1lbnQKKysgICAgICAgIGlmIChtX3NlcnZlcl9tYXhfd2luZG93X2JpdHMgPT0gOCkgeworKyAgICAgICAgICAgIG1fc2VydmVyX21heF93aW5kb3dfYml0cyA9IDk7CisrICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgLy8vIE5lZ290aWF0ZSBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGF0dHJpYnV0ZQorQEAgLTY4NywxMSArNzM4LDE3IEBAIGNsYXNzIGVuYWJsZWQgeworICAgICAgKiBuZWdvdGlhdGlvbiBtb2RlLgorICAgICAgKgorICAgICAgKiBvcHRpb25zOgorLSAgICAgKiAtIGRlY2xpbmUgKHJlZnVzZSB0byB1c2UgdGhlIGF0dHJpYnV0ZSkKKy0gICAgICogLSBhY2NlcHQgKHVzZSB3aGF0ZXZlciB0aGUgY2xpZW50IHNheXMpCistICAgICAqIC0gbGFyZ2VzdCAodXNlIGxhcmdlc3QgcG9zc2libGUgdmFsdWUpCisrICAgICAqIC0gZGVjbGluZSAoaWdub3JlIHZhbHVlLCBvZmZlciBvdXIgZGVmYXVsdCBpbnN0ZWFkKQorKyAgICAgKiAtIGFjY2VwdCAodXNlIHRoZSB2YWx1ZSByZXF1ZXN0ZWQgYnkgdGhlIGNsaWVudCkKKysgICAgICogLSBsYXJnZXN0ICh1c2UgbGFyZ2VzdCB2YWx1ZSBhY2NlcHRhYmxlIHRvIGJvdGgpCisgICAgICAqIC0gc21hbGxlc3QgKHVzZSBzbWFsbGVzdCBwb3NzaWJsZSB2YWx1ZSkKKyAgICAgICoKKysgICAgICogTk9URTogQXMgYSB2YWx1ZSBvZiA4IGlzIG5vIGxvbmdlciBleHBsaWNpdGx5IHN1cHBvcnRlZCBieSB6bGliIGJ1dCBtaWdodAorKyAgICAgKiBiZSByZXF1ZXN0ZWQgZm9yIG5lZ290aWF0aW9uIGJ5IGFuIG9sZGVyIGNsaWVudC9zZXJ2ZXIsIGlmIHRoZSByZXN1bHQgb2YKKysgICAgICogdGhlIG5lZ290aWF0aW9uIHdvdWxkIGJlIHRvIHNlbmQgYSB2YWx1ZSBvZiA4LCBhIHZhbHVlIG9mIDkgaXMgb2ZmZXJlZAorKyAgICAgKiBpbnN0ZWFkLiBUaGlzIGVuc3VyZXMgdGhhdCBXZWJTb2NrZXQrKyB3aWxsIG9ubHkgZXZlciBuZWdvdGlhdGUgY29ubmVjdGlvbnMKKysgICAgICogd2l0aCBjb21wcmVzc2lvbiBzZXR0aW5ncyBleHBsaWNpdGx5IHN1cHBvcnRlZCBieSB6bGliLgorKyAgICAgKgorICAgICAgKiBAcGFyYW0gW2luXSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSBmcm9tIHRoZSBvZmZlcgorICAgICAgKiBAcGFyYW0gW291dF0gZWMgQSByZWZlcmVuY2UgdG8gdGhlIGVycm9yIGNvZGUgdG8gcmV0dXJuIGVycm9ycyB2aWEKKyAgICAgICovCitAQCAtNzI3LDYgKzc4NCwxMSBAQCBjbGFzcyBlbmFibGVkIHsKKyAgICAgICAgICAgICAgICAgZWMgPSBtYWtlX2Vycm9yX2NvZGUoZXJyb3I6OmludmFsaWRfbW9kZSk7CisgICAgICAgICAgICAgICAgIG1fY2xpZW50X21heF93aW5kb3dfYml0cyA9IGRlZmF1bHRfY2xpZW50X21heF93aW5kb3dfYml0czsKKyAgICAgICAgIH0KKysKKysgICAgICAgIC8vIFNlZSBub3RlIGluIGRvYyBjb21tZW50CisrICAgICAgICBpZiAobV9jbGllbnRfbWF4X3dpbmRvd19iaXRzID09IDgpIHsKKysgICAgICAgICAgICBtX2NsaWVudF9tYXhfd2luZG93X2JpdHMgPSA5OworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIGJvb2wgbV9lbmFibGVkOworZGlmZiAtLWdpdCBhL3dlYnNvY2tldHBwL2ltcGwvY29ubmVjdGlvbl9pbXBsLmhwcCBiL3dlYnNvY2tldHBwL2ltcGwvY29ubmVjdGlvbl9pbXBsLmhwcAoraW5kZXggMTA1OTExZGIuLmFlNTVjMzM4IDEwMDY0NAorLS0tIGEvd2Vic29ja2V0cHAvaW1wbC9jb25uZWN0aW9uX2ltcGwuaHBwCisrKysgYi93ZWJzb2NrZXRwcC9pbXBsL2Nvbm5lY3Rpb25faW1wbC5ocHAKK0BAIC0xMjIyLDEyICsxMjIyLDE4IEBAIGxpYjo6ZXJyb3JfY29kZSBjb25uZWN0aW9uPGNvbmZpZz46OnByb2Nlc3NfaGFuZHNoYWtlX3JlcXVlc3QoKSB7CisgICAgIHN0ZDo6cGFpcjxsaWI6OmVycm9yX2NvZGUsc3RkOjpzdHJpbmc+IG5lZ19yZXN1bHRzOworICAgICBuZWdfcmVzdWx0cyA9IG1fcHJvY2Vzc29yLT5uZWdvdGlhdGVfZXh0ZW5zaW9ucyhtX3JlcXVlc3QpOworIAorLSAgICBpZiAobmVnX3Jlc3VsdHMuZmlyc3QpIHsKKysgICAgaWYgKG5lZ19yZXN1bHRzLmZpcnN0ID09IGVycm9yOjptYWtlX2Vycm9yX2NvZGUoZXJyb3I6OmV4dGVuc2lvbl9wYXJzZV9lcnJvcikpIHsKKyAgICAgICAgIC8vIFRoZXJlIHdhcyBhIGZhdGFsIGVycm9yIGluIGV4dGVuc2lvbiBwYXJzaW5nIHRoYXQgc2hvdWxkIHJlc3VsdCBpbgorICAgICAgICAgLy8gYSBmYWlsZWQgY29ubmVjdGlvbiBhdHRlbXB0LgorLSAgICAgICAgbV9hbG9nLndyaXRlKGxvZzo6YWxldmVsOjpkZXZlbCwgIkJhZCByZXF1ZXN0OiAiICsgbmVnX3Jlc3VsdHMuZmlyc3QubWVzc2FnZSgpKTsKKysgICAgICAgIG1fYWxvZy53cml0ZShsb2c6OmFsZXZlbDo6aW5mbywgIkJhZCByZXF1ZXN0OiAiICsgbmVnX3Jlc3VsdHMuZmlyc3QubWVzc2FnZSgpKTsKKyAgICAgICAgIG1fcmVzcG9uc2Uuc2V0X3N0YXR1cyhodHRwOjpzdGF0dXNfY29kZTo6YmFkX3JlcXVlc3QpOworICAgICAgICAgcmV0dXJuIG5lZ19yZXN1bHRzLmZpcnN0OworKyAgICB9IGVsc2UgaWYgKG5lZ19yZXN1bHRzLmZpcnN0KSB7CisrICAgICAgICAvLyBUaGVyZSB3YXMgYSBmYXRhbCBlcnJvciBpbiBleHRlbnNpb24gcHJvY2Vzc2luZyB0aGF0IGlzIHByb2JhYmx5IG91cgorKyAgICAgICAgLy8gZmF1bHQuIENvbnNpZGVyIGV4dGVuc2lvbiBuZWdvdGlhdGlvbiB0byBoYXZlIGZhaWxlZCBhbmQgY29udGludWUgYXMKKysgICAgICAgIC8vIGlmIGV4dGVuc2lvbnMgd2VyZSBub3Qgc3VwcG9ydGVkCisrICAgICAgICBtX2Fsb2cud3JpdGUobG9nOjphbGV2ZWw6OmluZm8sIAorKyAgICAgICAgICAgICJFeHRlbnNpb24gbmVnb3RpYXRpb24gZmFpbGVkOiAiICsgbmVnX3Jlc3VsdHMuZmlyc3QubWVzc2FnZSgpKTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICAgIC8vIGV4dGVuc2lvbiBuZWdvdGlhdGlvbiBzdWNjZWVkZWQsIHNldCByZXNwb25zZSBoZWFkZXIgYWNjb3JkaW5nbHkKKyAgICAgICAgIC8vIHdlIGRvbid0IHNlbmQgYW4gZW1wdHkgZXh0ZW5zaW9ucyBoZWFkZXIgYmVjYXVzZSBpdCBicmVha3MgbWFueQorZGlmZiAtLWdpdCBhL3dlYnNvY2tldHBwL3Byb2Nlc3NvcnMvaHliaTEzLmhwcCBiL3dlYnNvY2tldHBwL3Byb2Nlc3NvcnMvaHliaTEzLmhwcAoraW5kZXggNzk0ODY2NTQuLmE5NWJjNjQ5IDEwMDY0NAorLS0tIGEvd2Vic29ja2V0cHAvcHJvY2Vzc29ycy9oeWJpMTMuaHBwCisrKysgYi93ZWJzb2NrZXRwcC9wcm9jZXNzb3JzL2h5YmkxMy5ocHAKK0BAIC05Nyw2ICs5NywxMSBAQCBjbGFzcyBoeWJpMTMgOiBwdWJsaWMgcHJvY2Vzc29yPGNvbmZpZz4geworICAgICAvKioKKyAgICAgICogVGhpcyBleGlzdHMgbW9zdGx5IGJlY2F1c2UgdGhlIGNvZGUgZm9yIHJlcXVlc3RzIGFuZCByZXNwb25zZXMgaXMKKyAgICAgICogaWRlbnRpY2FsIGFuZCBJIGNhbid0IGhhdmUgdmlydHVhbCB0ZW1wbGF0ZSBtZXRob2RzLgorKyAgICAgKgorKyAgICAgKiBOT1RFOiB0aGlzIG1ldGhvZCBtYWtlcyBhc3N1bXB0aW9ucyB0aGF0IHRoZSBwZXJtZXNzYWdlLWRlZmxhdGUKKysgICAgICogZXh0ZW5zaW9uIGlzIHRoZSBvbmx5IG9uZSBzdXBwb3J0ZWQuIElmIGFkZGl0aW9uYWwgZXh0ZW5zaW9ucyBhcmUKKysgICAgICogZXZlciBzdXBwb3J0ZWQgaXQgc2hvdWxkIGJlIHJldmlld2VkIGNhcmVmdWxseS4gTW9zdCBjYXNlcyB3aGVyZQorKyAgICAgKiB0aGF0IGFzc3VtcHRpb24gaXMgbWFkZSBhcmUgZXhwbGljaXRseSBub3RlZC4KKyAgICAgICovCisgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBoZWFkZXJfdHlwZT4KKyAgICAgZXJyX3N0cl9wYWlyIG5lZ290aWF0ZV9leHRlbnNpb25zX2hlbHBlcihoZWFkZXJfdHlwZSBjb25zdCAmIGhlYWRlcikgeworQEAgLTE0OSw5ICsxNTQsMjYgQEAgY2xhc3MgaHliaTEzIDogcHVibGljIHByb2Nlc3Nvcjxjb25maWc+IHsKKyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogdGhpcyBsaXN0IHdpbGwgbmVlZCBjb21tYXMgaWYgV2ViU29ja2V0KysgZXZlcgorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1cHBvcnRzIG1vcmUgdGhhbiBvbmUgZXh0ZW5zaW9uCistICAgICAgICAgICAgICAgICAgICAgICAgcmV0LnNlY29uZCArPSBuZWdfcmV0LnNlY29uZDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBtX3Blcm1lc3NhZ2VfZGVmbGF0ZS5pbml0KGJhc2U6Om1fc2VydmVyKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgICAgICAgICAgICAgICAgICAKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBBY3R1YWxseSB0cnkgdG8gaW5pdGlhbGl6ZSB0aGUgZXh0ZW5zaW9uIGJlZm9yZSB3ZQorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlZW0gbmVnb3RpYXRpb24gY29tcGxldGUKKysgICAgICAgICAgICAgICAgICAgICAgICByZXQuZmlyc3QgPSBtX3Blcm1lc3NhZ2VfZGVmbGF0ZS5pbml0KGJhc2U6Om1fc2VydmVyKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJldC5maXJzdCkgeworKworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBzdXBwb3J0IG11bHRpcGxlIGV4dGVuc2lvbnMuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJpZ2h0IG5vdywgYmVjYXVzZSB0aGVyZSBpcyBvbmx5IG9uZSBleHRlbnNpb24gCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1cHBvcnRlZCwgaXQgZmFpbGluZyB0byBuZWdvdGlhdGUgbWVhbnMgd2UgYXJlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvbmUgd2l0aCBhbGwgbmVnb3RpYXRpbmcuIEluIHRoZSBmdXR1cmUgaWYgbW9yZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBleHRlbnNpb25zIGFyZSBzdXBwb3J0ZWQgYSBiZXR0ZXIgc29sdXRpb24gd2lsbAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZSBuZWVkZWQgaGVyZS4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0LnNlY29uZCArPSBuZWdfcmV0LnNlY29uZDsKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWUgbG9va2luZyBmb3IgbW9yZSBleHRlbnNpb25zCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvd2Vic29ja2V0cHAvd2Vic29ja2V0cHAtMC43LjAvZGlzYWJsZS10ZXN0cy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvd2Vic29ja2V0cHAvd2Vic29ja2V0cHAtMC43LjAvZGlzYWJsZS10ZXN0cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDI5ODFkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcC0wLjcuMC9kaXNhYmxlLXRlc3RzLnBhdGNoCkBAIC0wLDAgKzEsNTEgQEAKK0Rlc2NyaXB0aW9uOiBEaXNhYmxlIGZhaWxpbmcgdGVzdF90cmFuc3BvcnRfYXNpb190aW1lcnMuCitCZWNhdXNlIG9mICJhZGRyZXNzIGFscmVhZHkgaW4gdXNlIiBlcnJvcgorL8KrUEtHQlVJTERESVLCuy90ZXN0L3RyYW5zcG9ydC9hc2lvL3RpbWVycy5jcHAoMTI5KTogZXJyb3IgaW4gInRsc19oYW5kc2hha2VfdGltZW91dCI6IGNoZWNrIGVjID09IG1ha2VfZXJyb3JfY29kZSh0bHNfaGFuZHNoYWtlX3RpbWVvdXQpIGZhaWxlZCBbd2Vic29ja2V0cHAudHJhbnNwb3J0LmFzaW8uc29ja2V0OjggIT0gd2Vic29ja2V0cHAudHJhbnNwb3J0LmFzaW8uc29ja2V0OjVdCitBdXRob3I6IEdpYW5mcmFuY28gQ29zdGFtYWduYSA8bG9jdXR1c29mYm9yZ0BkZWJpYW4ub3JnPgorCistLS0gd2Vic29ja2V0cHAtMC43LjAub3JpZy90ZXN0L3RyYW5zcG9ydC9DTWFrZUxpc3RzLnR4dAorKysrIHdlYnNvY2tldHBwLTAuNy4wL3Rlc3QvdHJhbnNwb3J0L0NNYWtlTGlzdHMudHh0CitAQCAtMSwyNCArMSwyNCBAQAorIGlmIChPUEVOU1NMX0ZPVU5EKQorIAorLSMgVGVzdCB0cmFuc3BvcnQgaW50ZWdyYXRpb24KKy1maWxlIChHTE9CIFNPVVJDRSBpbnRlZ3JhdGlvbi5jcHApCistCistaW5pdF90YXJnZXQgKHRlc3RfdHJhbnNwb3J0KQorLWJ1aWxkX3Rlc3QgKCR7VEFSR0VUX05BTUV9ICR7U09VUkNFfSkKKy1saW5rX2Jvb3N0ICgpCistbGlua19vcGVuc3NsKCkKKy1maW5hbF90YXJnZXQgKCkKKy1zZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtUQVJHRVRfTkFNRX0gUFJPUEVSVElFUyBGT0xERVIgInRlc3QiKQorLQorLSMgVGVzdCB0cmFuc3BvcnQgYXNpbyB0aW1lcnMKKy1maWxlIChHTE9CIFNPVVJDRSBhc2lvL3RpbWVycy5jcHApCistCistaW5pdF90YXJnZXQgKHRlc3RfdHJhbnNwb3J0X2FzaW9fdGltZXJzKQorLWJ1aWxkX3Rlc3QgKCR7VEFSR0VUX05BTUV9ICR7U09VUkNFfSkKKy1saW5rX2Jvb3N0ICgpCistbGlua19vcGVuc3NsKCkKKy1maW5hbF90YXJnZXQgKCkKKy1zZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtUQVJHRVRfTkFNRX0gUFJPUEVSVElFUyBGT0xERVIgInRlc3QiKQorKyMjIFRlc3QgdHJhbnNwb3J0IGludGVncmF0aW9uCisrI2ZpbGUgKEdMT0IgU09VUkNFIGludGVncmF0aW9uLmNwcCkKKysjCisrI2luaXRfdGFyZ2V0ICh0ZXN0X3RyYW5zcG9ydCkKKysjYnVpbGRfdGVzdCAoJHtUQVJHRVRfTkFNRX0gJHtTT1VSQ0V9KQorKyNsaW5rX2Jvb3N0ICgpCisrI2xpbmtfb3BlbnNzbCgpCisrI2ZpbmFsX3RhcmdldCAoKQorKyNzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtUQVJHRVRfTkFNRX0gUFJPUEVSVElFUyBGT0xERVIgInRlc3QiKQorKyMKKysjIyBUZXN0IHRyYW5zcG9ydCBhc2lvIHRpbWVycworKyNmaWxlIChHTE9CIFNPVVJDRSBhc2lvL3RpbWVycy5jcHApCisrIworKyNpbml0X3RhcmdldCAodGVzdF90cmFuc3BvcnRfYXNpb190aW1lcnMpCisrI2J1aWxkX3Rlc3QgKCR7VEFSR0VUX05BTUV9ICR7U09VUkNFfSkKKysjbGlua19ib29zdCAoKQorKyNsaW5rX29wZW5zc2woKQorKyNmaW5hbF90YXJnZXQgKCkKKysjc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7VEFSR0VUX05BTUV9IFBST1BFUlRJRVMgRk9MREVSICJ0ZXN0IikKKyAKKyAjIFRlc3QgdHJhbnNwb3J0IGFzaW8gc2VjdXJpdHkKKyBmaWxlIChHTE9CIFNPVVJDRSBhc2lvL3NlY3VyaXR5LmNwcCkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvd2Vic29ja2V0cHAvd2Vic29ja2V0cHBfMC43LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3dlYnNvY2tldHBwL3dlYnNvY2tldHBwXzAuNy4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ZmM5NzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3dlYnNvY2tldHBwL3dlYnNvY2tldHBwXzAuNy4wLmJiCkBAIC0wLDAgKzEsMjEgQEAKK1NVTU1BUlkgPSAiQysrL0Jvb3N0IEFzaW8gYmFzZWQgd2Vic29ja2V0IGNsaWVudC9zZXJ2ZXIgbGlicmFyeS4iCitTRUNUSU9OID0gImxpYnMvbmV0d29yayIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS96YXBob3lkL3dlYnNvY2tldHBwIgorTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke1N9L0NPUFlJTkc7bWQ1PTRkMTY4ZDc2M2MxMTFmNGZmYzYyMjQ5ODcwZTRlMGVhIgorREVQRU5EUyA9ICJvcGVuc3NsIGJvb3N0IHpsaWIiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS96YXBob3lkL3dlYnNvY2tldHBwLmdpdDtwcm90b2NvbD1odHRwczticmFuY2g9bWFzdGVyIgorCisjIHRhZyAwLjcuMAorU1JDUkVWPSAiMzc4NDM3YWVjZGNiMWRmZTYyMDk2ZmZkNWQ5NDRiZjFmNjQwY2NjMyIKKworU1JDX1VSSSArPSAiZmlsZTovLzAwMDEtRml4LWlzc3VlLTU5OS5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vOWRkYjMwMGQ4NzRhMzBkYjM1ZTNhZDU4ZjE4ODk0NGJlZjBiZjMxYi5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vNGNhYjVlNWMwYzVmMTlmY2VlN2QzN2I0YTM4YjE1NmQ2M2ExNTBkNC5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vZGlzYWJsZS10ZXN0cy5wYXRjaCBcCisgIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitpbmhlcml0IGNtYWtlCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hkZy11c2VyLWRpcnMvZmlsZXMvMDAwMS1leHBsaWNpdGx5LWRpc2FibGUtbWFuLWdlbmVyYXRpb24tZGlzYWJsZS1kb2N1bWVudGF0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94ZGctdXNlci1kaXJzL2ZpbGVzLzAwMDEtZXhwbGljaXRseS1kaXNhYmxlLW1hbi1nZW5lcmF0aW9uLWRpc2FibGUtZG9jdW1lbnRhdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJiMGU0OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hkZy11c2VyLWRpcnMvZmlsZXMvMDAwMS1leHBsaWNpdGx5LWRpc2FibGUtbWFuLWdlbmVyYXRpb24tZGlzYWJsZS1kb2N1bWVudGF0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotRnJvbSA0MTA5M2Q5NjM0YmZlZGRjYWVjODY2NzQ1ZDhkNDAyMmY0YzZmOGMxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotRGF0ZTogU3VuLCAxOSBGZWIgMjAxNyAyMTowMTozOSArMDEwMAotU3ViamVjdDogW1BBVENIXSBleHBsaWNpdGx5IGRpc2FibGUgbWFuIGdlbmVyYXRpb24gLS1kaXNhYmxlLWRvY3VtZW50YXRpb24gaXMKLSBub3QgZW5vdWdoCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0tLS0KLSBNYWtlZmlsZS5hbSB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KLWluZGV4IGMwMWM1NGYuLmRjZGY3YTIgMTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZS5hbQotKysrIGIvTWFrZWZpbGUuYW0KLUBAIC0xLDYgKzEsNiBAQAotIE5VTEwgPQotIAotLVNVQkRJUlM9cG8gbWFuCi0rU1VCRElSUz1wbwotIAotIElOQ0xVREVTID0JCQkJCVwKLSAJLUkkKHRvcF9zcmNkaXIpCQkJCVwKLS0tIAotMi45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94ZGctdXNlci1kaXJzL2ZpbGVzL3hkZy11c2VyLWRpcnMuZGVza3RvcCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveGRnLXVzZXItZGlycy9maWxlcy94ZGctdXNlci1kaXJzLmRlc2t0b3AKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5YTIyZDMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94ZGctdXNlci1kaXJzL2ZpbGVzL3hkZy11c2VyLWRpcnMuZGVza3RvcAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotW0Rlc2t0b3AgRW50cnldCi1UeXBlPUFwcGxpY2F0aW9uCi1OYW1lPVVzZXIgZm9sZGVycyB1cGRhdGUKLUV4ZWM9eGRnLXVzZXItZGlycy11cGRhdGUKLVN0YXJ0dXBOb3RpZnk9ZmFsc2UKLU5vRGlzcGxheT10cnVlCi1YLUdOT01FLUF1dG9zdGFydC1QaGFzZT1Jbml0aWFsaXphdGlvbgotWC1LREUtYXV0b3N0YXJ0LXBoYXNlPTEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94ZGctdXNlci1kaXJzL3hkZy11c2VyLWRpcnNfMC4xNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveGRnLXVzZXItZGlycy94ZGctdXNlci1kaXJzXzAuMTUuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwNTY3NTkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94ZGctdXNlci1kaXJzL3hkZy11c2VyLWRpcnNfMC4xNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLURFU0NSSVBUSU9OID0gInhkZy11c2VyLWRpcnMgaXMgYSB0b29sIHRvIGhlbHAgbWFuYWdlIHVzZXIgZGlyZWN0b3JpZXMgbGlrZSB0aGUgZGVza3RvcCBmb2xkZXIgYW5kIHRoZSBtdXNpYyBmb2xkZXIiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYiCi0KLVNSQ19VUkkgPSAiIFwKLSAgICBodHRwOi8vdXNlci1kaXJzLmZyZWVkZXNrdG9wLm9yZy9yZWxlYXNlcy8ke0JQTn0tJHtQVn0udGFyLmd6IFwKLSAgICBmaWxlOi8vMDAwMS1leHBsaWNpdGx5LWRpc2FibGUtbWFuLWdlbmVyYXRpb24tZGlzYWJsZS1kb2N1bWVudGF0LnBhdGNoIFwKLSAgICBmaWxlOi8veGRnLXVzZXItZGlycy5kZXNrdG9wIFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICJmNWFhZjU2ODZhZDdkODgwOWE2NjRiZmI0NTY2YTU0ZCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIyMGI0YTc1MWY0MWQwNTU0YmNlM2UwY2U1ZThkOTM0YmU5OGNjNjJkNDhmMGI5MGE4OTRjM2UxOTE2NTUyNzg2IgotCi1pbmhlcml0IGF1dG90b29scyBnZXR0ZXh0Ci0KLUVYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtZG9jdW1lbnRhdGlvbiIKLQotZG9faW5zdGFsbF9hcHBlbmQgKCkgewotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0veGRnL2F1dG9zdGFydAotICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0veGRnLXVzZXItZGlycy5kZXNrdG9wICR7RH0ke3N5c2NvbmZkaXJ9L3hkZy9hdXRvc3RhcnQKLX0KLQotQ09ORkZJTEVTXyR7UE59ICs9ICIgXAotICAgICR7c3lzY29uZmRpcn0veGRnL3VzZXItZGlycy5jb25mIFwKLSAgICAke3N5c2NvbmZkaXJ9L3hkZy91c2VyLWRpcnMuZGVmYXVsdHMgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94ZGctdXNlci1kaXJzL3hkZy11c2VyLWRpcnNfMC4xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveGRnLXVzZXItZGlycy94ZGctdXNlci1kaXJzXzAuMTcuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNjZTkyNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveGRnLXVzZXItZGlycy94ZGctdXNlci1kaXJzXzAuMTcuYmIKQEAgLTAsMCArMSwxNiBAQAorREVTQ1JJUFRJT04gPSAieGRnLXVzZXItZGlycyBpcyBhIHRvb2wgdG8gaGVscCBtYW5hZ2UgdXNlciBkaXJlY3RvcmllcyBsaWtlIHRoZSBkZXNrdG9wIGZvbGRlciBhbmQgdGhlIG11c2ljIGZvbGRlciIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKKworU1JDX1VSSSA9ICJodHRwOi8vdXNlci1kaXJzLmZyZWVkZXNrdG9wLm9yZy9yZWxlYXNlcy8ke0JQTn0tJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gImUwNTY0ZWM2ZDgzOGU2ZTQxODY0ZDg3MmEyOWIzNTc1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJhMDcwNTI4MjM3ODhlODYxNDkyNWM1YTE5ZWY1Yjk2OGQ4ZGI3MzRmZGVlNjU2Njk5ZWE0Zjk3ZDEzMjQxOGMiCisKK2luaGVyaXQgYXV0b3Rvb2xzIGdldHRleHQKKworRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1kb2N1bWVudGF0aW9uIgorCitDT05GRklMRVNfJHtQTn0gKz0gIiBcCisgICAgJHtzeXNjb25mZGlyfS94ZGcvdXNlci1kaXJzLmNvbmYgXAorICAgICR7c3lzY29uZmRpcn0veGRnL3VzZXItZGlycy5kZWZhdWx0cyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hvcmcteHJkcC94b3JneHJkcF8wLjIuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveG9yZy14cmRwL3hvcmd4cmRwXzAuMi41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiZGFmZGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hvcmcteHJkcC94b3JneHJkcF8wLjIuNS5iYgpAQCAtMCwwICsxLDIzIEBACitTVU1NQVJZID0gIlhvcmcgZHJpdmVycyBmb3IgeHJkcC4iCisKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTI1MjM2NjAzMjlmZGNhM2Q5NTRjMGE4NzM5MGUwMDciCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyAKKworREVQRU5EUyA9ICJ2aXJ0dWFsL2xpYngxMSB4c2VydmVyLXhvcmcgeHJkcCBuYXNtLW5hdGl2ZSIKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEgcGFtIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbmV1dHJpbm9sYWJzL3hvcmd4cmRwLmdpdCIKKworU1JDUkVWID0gImMxMjI1NDRmMTg0ZDQwMzFiYmFlMWFkODBmYmFiNTU0YzM0YTk0MjciCisKK1BWID0gIjAuMi41IgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L3hvcmcvbW9kdWxlcy8qIgorCitJTlNBTkVfU0tJUF8ke1BOfSArPSAieG9yZy1kcml2ZXItYWJpIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHAvMDAwMS1BZGRlZC1yZXFfZGlzdGluZ3Vpc2hlZF9uYW1lLWluLWV0Yy14cmRwLW9wZW5zc2wuY29uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHAvMDAwMS1BZGRlZC1yZXFfZGlzdGluZ3Vpc2hlZF9uYW1lLWluLWV0Yy14cmRwLW9wZW5zc2wuY29uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlN2ZjYTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcC8wMDAxLUFkZGVkLXJlcV9kaXN0aW5ndWlzaGVkX25hbWUtaW4tZXRjLXhyZHAtb3BlbnNzbC5jb24ucGF0Y2gKQEAgLTAsMCArMSwzMyBAQAorRnJvbSBkNzA1YjFkNjY2Y2I4NzEzZDg2ZWE2ZmIyZmM0NWM0MjQxMjgyODVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgorRGF0ZTogRnJpLCAxIERlYyAyMDE3IDEwOjI0OjUwICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZGVkICByZXFfZGlzdGluZ3Vpc2hlZF9uYW1lIGluIC9ldGMveHJkcC9vcGVuc3NsLmNvbmYsCisgb3RoZXJ3aXNlLCBjZXJ0LnBlbSBjYW4ndCBiZSBjcmVhdGVkLgorCitTaWduZWQtb2ZmLWJ5OiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CistLS0KKyBrZXlnZW4vb3BlbnNzbC5jb25mIHwgOCArKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2tleWdlbi9vcGVuc3NsLmNvbmYgYi9rZXlnZW4vb3BlbnNzbC5jb25mCitpbmRleCAwOWRiNmMyLi5mMDc3ZDcyIDEwMDY0NAorLS0tIGEva2V5Z2VuL29wZW5zc2wuY29uZgorKysrIGIva2V5Z2VuL29wZW5zc2wuY29uZgorQEAgLTQsNiArNCwxNCBAQCBkaXN0aW5ndWlzaGVkX25hbWUgPSByZXFfZGlzdGluZ3Vpc2hlZF9uYW1lCisgeDUwOV9leHRlbnNpb25zID0gdjNfY2EKKyAKKyBbcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZV0KKysjIENlcnRpZmljYXRlIHN1YmplY3QKKysjY291bnRyeU5hbWUgPSBVUworKyNzdGF0ZU9yUHJvdmluY2VOYW1lID0gQ0EKKysjbG9jYWxpdHlOYW1lID0gU3Vubnl2YWxlCisrI29yZ2FuaXphdGlvbk5hbWUgPSB4cmRwCisrI29yZ2FuaXphdGlvbmFsVW5pdE5hbWUgPQorK2NvbW1vbk5hbWUgPSBYUkRQCisrI2VtYWlsQWRkcmVzcyA9CisgCisgW3YzX2NhXQorICMgRXh0ZW5zaW9ucyBmb3IgYSB0eXBpY2FsIENBIC0gUEtJWCByZWNvbW1lbmRhdGlvbi4KKy0tIAorMS44LjQuMgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcC8wMDAxLUZpeC1vZi1DVkUtMjAxNy0xNjkyNy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwLzAwMDEtRml4LW9mLUNWRS0yMDE3LTE2OTI3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjOTM2NDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcC8wMDAxLUZpeC1vZi1DVkUtMjAxNy0xNjkyNy5wYXRjaApAQCAtMCwwICsxLDE0OCBAQAorU3ViamVjdDogW1BBVENIXSBGaXggQ1ZFLTIwMTctMTY5MjcKKworc2VzbWFuOiBzY3B2MCwgYWNjZXB0IHZhcmlhYmxlIGxlbmd0aCBkYXRhIGZpZWxkcworCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IAorCistLS0KKyBzZXNtYW4vbGlic2NwL2xpYnNjcF92MC5jIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3Nlc21hbi9saWJzY3AvbGlic2NwX3YwLmMgYi9zZXNtYW4vbGlic2NwL2xpYnNjcF92MC5jCitpbmRleCA1YTBjOGJmLi41NjkzNDA3IDEwMDY0NAorLS0tIGEvc2VzbWFuL2xpYnNjcC9saWJzY3BfdjAuYworKysrIGIvc2VzbWFuL2xpYnNjcC9saWJzY3BfdjAuYworQEAgLTE2MSw3ICsxNjEsNyBAQCBzY3BfdjBzX2FjY2VwdChzdHJ1Y3QgU0NQX0NPTk5FQ1RJT04gKmMsIHN0cnVjdCBTQ1BfU0VTU0lPTiAqKnMsIGludCBza2lwVmNoaykKKyAgICAgc3RydWN0IFNDUF9TRVNTSU9OICpzZXNzaW9uID0gMDsKKyAgICAgdHVpMTYgc3o7CisgICAgIHR1aTMyIGNvZGUgPSAwOworLSAgICBjaGFyIGJ1ZlsyNTddOworKyAgICBjaGFyICpidWYgPSAwOworIAorICAgICBpZiAoIXNraXBWY2hrKQorICAgICB7CitAQCAtMjI2LDI3ICsyMjYsMzEgQEAgc2NwX3Ywc19hY2NlcHQoc3RydWN0IFNDUF9DT05ORUNUSU9OICpjLCBzdHJ1Y3QgU0NQX1NFU1NJT04gKipzLCBpbnQgc2tpcFZjaGspCisgCisgICAgICAgICAvKiByZWFkaW5nIHVzZXJuYW1lICovCisgICAgICAgICBpbl91aW50MTZfYmUoYy0+aW5fcywgc3opOworLSAgICAgICAgYnVmW3N6XSA9ICdcMCc7CisrICAgICAgICBidWYgPSBnX25ldzAoY2hhciwgc3opOworICAgICAgICAgaW5fdWludDhhKGMtPmluX3MsIGJ1Ziwgc3opOworLQorKyAgICAgICAgYnVmW3N6XSA9ICdcMCc7CisgICAgICAgICBpZiAoMCAhPSBzY3Bfc2Vzc2lvbl9zZXRfdXNlcm5hbWUoc2Vzc2lvbiwgYnVmKSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBzY3Bfc2Vzc2lvbl9kZXN0cm95KHNlc3Npb24pOworICAgICAgICAgICAgIGxvZ19tZXNzYWdlKExPR19MRVZFTF9XQVJOSU5HLCAiW3YwOiVkXSBjb25uZWN0aW9uIGFib3J0ZWQ6IGVycm9yIHNldHRpbmcgdXNlcm5hbWUiLCBfX0xJTkVfXyk7CisrICAgICAgICAgICAgZ19mcmVlKGJ1Zik7CisgICAgICAgICAgICAgcmV0dXJuIFNDUF9TRVJWRVJfU1RBVEVfSU5URVJOQUxfRVJSOworICAgICAgICAgfQorKyAgICAgICAgZ19mcmVlKGJ1Zik7CisgCisgICAgICAgICAvKiByZWFkaW5nIHBhc3N3b3JkICovCisgICAgICAgICBpbl91aW50MTZfYmUoYy0+aW5fcywgc3opOworLSAgICAgICAgYnVmW3N6XSA9ICdcMCc7CisrICAgICAgICBidWYgPSBnX25ldzAoY2hhciwgc3opOworICAgICAgICAgaW5fdWludDhhKGMtPmluX3MsIGJ1Ziwgc3opOworLQorKyAgICAgICAgYnVmW3N6XSA9ICdcMCc7CisgICAgICAgICBpZiAoMCAhPSBzY3Bfc2Vzc2lvbl9zZXRfcGFzc3dvcmQoc2Vzc2lvbiwgYnVmKSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBzY3Bfc2Vzc2lvbl9kZXN0cm95KHNlc3Npb24pOworICAgICAgICAgICAgIGxvZ19tZXNzYWdlKExPR19MRVZFTF9XQVJOSU5HLCAiW3YwOiVkXSBjb25uZWN0aW9uIGFib3J0ZWQ6IGVycm9yIHNldHRpbmcgcGFzc3dvcmQiLCBfX0xJTkVfXyk7CisrICAgICAgICAgICAgZ19mcmVlKGJ1Zik7CisgICAgICAgICAgICAgcmV0dXJuIFNDUF9TRVJWRVJfU1RBVEVfSU5URVJOQUxfRVJSOworICAgICAgICAgfQorKyAgICAgICAgZ19mcmVlKGJ1Zik7CisgCisgICAgICAgICAvKiB3aWR0aCAqLworICAgICAgICAgaW5fdWludDE2X2JlKGMtPmluX3MsIHN6KTsKK0BAIC0yNzIsOSArMjc2LDExIEBAIHNjcF92MHNfYWNjZXB0KHN0cnVjdCBTQ1BfQ09OTkVDVElPTiAqYywgc3RydWN0IFNDUF9TRVNTSU9OICoqcywgaW50IHNraXBWY2hrKQorIAorICAgICAgICAgICAgIGlmIChzeiA+IDApCisgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBidWYgPSBnX25ldzAoY2hhciwgc3opOworICAgICAgICAgICAgICAgICBpbl91aW50OGEoYy0+aW5fcywgYnVmLCBzeik7CisgICAgICAgICAgICAgICAgIGJ1Zltzel0gPSAnXDAnOworICAgICAgICAgICAgICAgICBzY3Bfc2Vzc2lvbl9zZXRfZG9tYWluKHNlc3Npb24sIGJ1Zik7CisrICAgICAgICAgICAgICAgIGdfZnJlZShidWYpOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAKK0BAIC0yODUsOSArMjkxLDExIEBAIHNjcF92MHNfYWNjZXB0KHN0cnVjdCBTQ1BfQ09OTkVDVElPTiAqYywgc3RydWN0IFNDUF9TRVNTSU9OICoqcywgaW50IHNraXBWY2hrKQorIAorICAgICAgICAgICAgIGlmIChzeiA+IDApCisgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBidWYgPSBnX25ldzAoY2hhciwgc3opOworICAgICAgICAgICAgICAgICBpbl91aW50OGEoYy0+aW5fcywgYnVmLCBzeik7CisgICAgICAgICAgICAgICAgIGJ1Zltzel0gPSAnXDAnOworICAgICAgICAgICAgICAgICBzY3Bfc2Vzc2lvbl9zZXRfcHJvZ3JhbShzZXNzaW9uLCBidWYpOworKyAgICAgICAgICAgICAgICBnX2ZyZWUoYnVmKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgCitAQCAtMjk4LDkgKzMwNiwxMSBAQCBzY3BfdjBzX2FjY2VwdChzdHJ1Y3QgU0NQX0NPTk5FQ1RJT04gKmMsIHN0cnVjdCBTQ1BfU0VTU0lPTiAqKnMsIGludCBza2lwVmNoaykKKyAKKyAgICAgICAgICAgICBpZiAoc3ogPiAwKQorICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgYnVmID0gZ19uZXcwKGNoYXIsIHN6KTsKKyAgICAgICAgICAgICAgICAgaW5fdWludDhhKGMtPmluX3MsIGJ1Ziwgc3opOworICAgICAgICAgICAgICAgICBidWZbc3pdID0gJ1wwJzsKKyAgICAgICAgICAgICAgICAgc2NwX3Nlc3Npb25fc2V0X2RpcmVjdG9yeShzZXNzaW9uLCBidWYpOworKyAgICAgICAgICAgICAgICBnX2ZyZWUoYnVmKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgCitAQCAtMzExLDkgKzMyMSwxMSBAQCBzY3BfdjBzX2FjY2VwdChzdHJ1Y3QgU0NQX0NPTk5FQ1RJT04gKmMsIHN0cnVjdCBTQ1BfU0VTU0lPTiAqKnMsIGludCBza2lwVmNoaykKKyAKKyAgICAgICAgICAgICBpZiAoc3ogPiAwKQorICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgYnVmID0gZ19uZXcwKGNoYXIsIHN6KTsKKyAgICAgICAgICAgICAgICAgaW5fdWludDhhKGMtPmluX3MsIGJ1Ziwgc3opOworICAgICAgICAgICAgICAgICBidWZbc3pdID0gJ1wwJzsKKyAgICAgICAgICAgICAgICAgc2NwX3Nlc3Npb25fc2V0X2NsaWVudF9pcChzZXNzaW9uLCBidWYpOworKyAgICAgICAgICAgICAgICBnX2ZyZWUoYnVmKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH0KK0BAIC0zMzIsMjkgKzM0NCwzNSBAQCBzY3BfdjBzX2FjY2VwdChzdHJ1Y3QgU0NQX0NPTk5FQ1RJT04gKmMsIHN0cnVjdCBTQ1BfU0VTU0lPTiAqKnMsIGludCBza2lwVmNoaykKKyAgICAgICAgIHNjcF9zZXNzaW9uX3NldF90eXBlKHNlc3Npb24sIFNDUF9HV19BVVRIRU5USUNBVElPTik7CisgICAgICAgICAvKiByZWFkaW5nIHVzZXJuYW1lICovCisgICAgICAgICBpbl91aW50MTZfYmUoYy0+aW5fcywgc3opOworLSAgICAgICAgYnVmW3N6XSA9ICdcMCc7CisrICAgICAgICBidWYgPSBnX25ldzAoY2hhciwgc3opOworICAgICAgICAgaW5fdWludDhhKGMtPmluX3MsIGJ1Ziwgc3opOworKyAgICAgICAgYnVmW3N6XSA9ICdcMCc7CisgCisgICAgICAgICAvKiBnX3dyaXRlbG4oIlJlY2VpdmVkIHVzZXIgbmFtZTogJXMiLGJ1Zik7ICovCisgICAgICAgICBpZiAoMCAhPSBzY3Bfc2Vzc2lvbl9zZXRfdXNlcm5hbWUoc2Vzc2lvbiwgYnVmKSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBzY3Bfc2Vzc2lvbl9kZXN0cm95KHNlc3Npb24pOworICAgICAgICAgICAgIC8qIHVudGlsIHN5c2xvZyBtZXJnZSBsb2dfbWVzc2FnZShzX2xvZywgTE9HX0xFVkVMX1dBUk5JTkcsICJbdjA6JWRdIGNvbm5lY3Rpb24gYWJvcnRlZDogZXJyb3Igc2V0dGluZyAgICAgICAgdXNlcm5hbWUiLCBfX0xJTkVfXyk7Ki8KKysgICAgICAgICAgICBnX2ZyZWUoYnVmKTsKKyAgICAgICAgICAgICByZXR1cm4gU0NQX1NFUlZFUl9TVEFURV9JTlRFUk5BTF9FUlI7CisgICAgICAgICB9CisrICAgICAgICBnX2ZyZWUoYnVmKTsKKyAKKyAgICAgICAgIC8qIHJlYWRpbmcgcGFzc3dvcmQgKi8KKyAgICAgICAgIGluX3VpbnQxNl9iZShjLT5pbl9zLCBzeik7CistICAgICAgICBidWZbc3pdID0gJ1wwJzsKKysgICAgICAgIGJ1ZiA9IGdfbmV3MChjaGFyLCBzeik7CisgICAgICAgICBpbl91aW50OGEoYy0+aW5fcywgYnVmLCBzeik7CisrICAgICAgICBidWZbc3pdID0gJ1wwJzsKKyAKKyAgICAgICAgIC8qIGdfd3JpdGVsbigiUmVjZWl2ZWQgcGFzc3dvcmQ6ICVzIixidWYpOyAqLworICAgICAgICAgaWYgKDAgIT0gc2NwX3Nlc3Npb25fc2V0X3Bhc3N3b3JkKHNlc3Npb24sIGJ1ZikpCisgICAgICAgICB7CisgICAgICAgICAgICAgc2NwX3Nlc3Npb25fZGVzdHJveShzZXNzaW9uKTsKKyAgICAgICAgICAgICAvKiB1bnRpbCBzeXNsb2cgbWVyZ2UgbG9nX21lc3NhZ2Uoc19sb2csIExPR19MRVZFTF9XQVJOSU5HLCAiW3YwOiVkXSBjb25uZWN0aW9uIGFib3J0ZWQ6IGVycm9yIHNldHRpbmcgcGFzc3dvcmQiLCBfX0xJTkVfXyk7ICovCisrICAgICAgICAgICAgZ19mcmVlKGJ1Zik7CisgICAgICAgICAgICAgcmV0dXJuIFNDUF9TRVJWRVJfU1RBVEVfSU5URVJOQUxfRVJSOworICAgICAgICAgfQorKyAgICAgICAgZ19mcmVlKGJ1Zik7CisgICAgIH0KKyAgICAgZWxzZQorICAgICB7CistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwLzAwMDEtRml4LXNlc21hbi5pbmktYW5kLXhyZHAuaW5pLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHAvMDAwMS1GaXgtc2VzbWFuLmluaS1hbmQteHJkcC5pbmkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVhYWRkZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwLzAwMDEtRml4LXNlc21hbi5pbmktYW5kLXhyZHAuaW5pLnBhdGNoCkBAIC0wLDAgKzEsNzUgQEAKK0Zyb20gYTljNDYwZjE1OGQ2OGMxYjNkZTZhMzFjZTg1M2RlNTM3OTk3NzY5NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IExlaSBNYW9odWkgPGxlaW1hb2h1aUBjbi5mdWppdHN1LmNvbT4KK0RhdGU6IFRodSwgMzAgTm92IDIwMTcgMTE6MTA6MDQgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IHNlc21hbi5pbmkgYW5kIHhyZHAuaW5pCisKK1NpZ25lZC1vZmYtYnk6IExlaSBNYW9odWkgPGxlaW1hb2h1aUBjbi5mdWppdHN1LmNvbT4KKy0tLQorIHNlc21hbi9zZXNtYW4uaW5pIHwgMjAgKysrKysrLS0tLS0tLS0tLS0tLS0KKyB4cmRwL3hyZHAuaW5pICAgICB8IDEwIC0tLS0tLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zZXNtYW4vc2VzbWFuLmluaSBiL3Nlc21hbi9zZXNtYW4uaW5pCitpbmRleCA4MjI1ZWU0Li5jMDkxODllIDEwMDY0NAorLS0tIGEvc2VzbWFuL3Nlc21hbi5pbmkKKysrKyBiL3Nlc21hbi9zZXNtYW4uaW5pCitAQCAtNTQsMTIgKzU0LDE0IEBAIExvZ0xldmVsPURFQlVHCisgRW5hYmxlU3lzbG9nPTEKKyBTeXNsb2dMZXZlbD1ERUJVRworIAorLVtYMTFyZHBdCistcGFyYW09WDExcmRwCistcGFyYW09LWJzCisrW1hvcmddCisrcGFyYW09WG9yZworK3BhcmFtPS1jb25maWcKKytwYXJhbT14cmRwL3hvcmcuY29uZgorK3BhcmFtPS1ub3Jlc2V0CisgcGFyYW09LW5vbGlzdGVuCisgcGFyYW09dGNwCistcGFyYW09LXVkcworKworIAorIFtYdm5jXQorIHBhcmFtPVh2bmMKK0BAIC03MCwxNiArNzIsNiBAQCBwYXJhbT0tbG9jYWxob3N0CisgcGFyYW09LWRwaQorIHBhcmFtPTk2CisgCistW1hvcmddCistcGFyYW09WG9yZworLXBhcmFtPS1jb25maWcKKy1wYXJhbT14cmRwL3hvcmcuY29uZgorLXBhcmFtPS1ub3Jlc2V0CistcGFyYW09LW5vbGlzdGVuCistcGFyYW09dGNwCistcGFyYW09LWxvZ2ZpbGUKKy1wYXJhbT0ueG9yZ3hyZHAuJXMubG9nCistCisgW0NoYW5zcnZdCisgOyBkcml2ZSByZWRpcmVjdGlvbiwgZGVmYXVsdHMgdG8geHJkcF9jbGllbnQgaWYgbm90IHNldAorIEZ1c2VNb3VudE5hbWU9dGhpbmNsaWVudF9kcml2ZXMKK2RpZmYgLS1naXQgYS94cmRwL3hyZHAuaW5pIGIveHJkcC94cmRwLmluaQoraW5kZXggY2I2ZDdjMy4uOWY2M2E2OSAxMDA2NDQKKy0tLSBhL3hyZHAveHJkcC5pbmkKKysrKyBiL3hyZHAveHJkcC5pbmkKK0BAIC0xNTcsMTYgKzE1Nyw2IEBAIGlwPTEyNy4wLjAuMQorIHBvcnQ9LTEKKyBjb2RlPTIwCisgCistW1gxMXJkcF0KKy1uYW1lPVgxMXJkcAorLWxpYj1saWJ4dXAuc28KKy11c2VybmFtZT1hc2sKKy1wYXNzd29yZD1hc2sKKy1pcD0xMjcuMC4wLjEKKy1wb3J0PS0xCisteHNlcnZlcmJwcD0yNAorLWNvZGU9MTAKKy0KKyBbWHZuY10KKyBuYW1lPVh2bmMKKyBsaWI9bGlidm5jLnNvCistLSAKKzEuOC40LjIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHAvMDAwMS1GaXgtdGhlLWNvbXBpbGUtZXJyb3IucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcC8wMDAxLUZpeC10aGUtY29tcGlsZS1lcnJvci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmIyNzkwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHAvMDAwMS1GaXgtdGhlLWNvbXBpbGUtZXJyb3IucGF0Y2gKQEAgLTAsMCArMSwzNSBAQAorU3ViamVjdDogW1BBVENIXSBGaXggdGhlIG1ha2UgZXJyb3IKKworRml4IHRoZSBjb21waWxlIGVycm9yOgorICoqKiBObyBydWxlIHRvIG1ha2UgdGFyZ2V0ICcuLi9saWJyZnhjb2RlYy9zcmMvLmxpYnMvbGlicmZ4ZW5jb2RlLmEnLCBuZWVkZWQgYnkgJ3hyZHAnLiAgU3RvcC4uCisKK1NpZ25lZC1vZmYtYnk6IFpoZW5nIFJ1b3FpbiA8emhlbmdycS5mbnN0QGNuLmZ1aml0c3UuY29tPgorLS0tCisgeHJkcC9NYWtlZmlsZS5hbSB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS94cmRwL01ha2VmaWxlLmFtIGIveHJkcC9NYWtlZmlsZS5hbQoraW5kZXggYTI1OWVmMy4uZDU1MDViMiAxMDA2NDQKKy0tLSBhL3hyZHAvTWFrZWZpbGUuYW0KKysrKyBiL3hyZHAvTWFrZWZpbGUuYW0KK0BAIC0yMyw3ICsyMyw3IEBAIGVuZGlmCisgaWYgWFJEUF9SRlhDT0RFQworIEFNX0NQUEZMQUdTICs9IC1EWFJEUF9SRlhDT0RFQworIEFNX0NQUEZMQUdTICs9IC1JJCh0b3Bfc3JjZGlyKS9saWJyZnhjb2RlYy9pbmNsdWRlCistWFJEUF9FWFRSQV9MSUJTICs9ICQodG9wX2J1aWxkZGlyKS9saWJyZnhjb2RlYy9zcmMvLmxpYnMvbGlicmZ4ZW5jb2RlLmEKKytYUkRQX0VYVFJBX0xJQlMgKz0gJCh0b3BfYnVpbGRkaXIpL2xpYnJmeGNvZGVjL3NyYy8ubGlicy9saWJyZnhlbmNvZGUubGEKKyBlbmRpZgorIAorIGlmIFhSRFBfUElYTUFOCitAQCAtMzUsNyArMzUsNyBAQCBlbmRpZgorIGlmIFhSRFBfUEFJTlRFUgorIEFNX0NQUEZMQUdTICs9IC1EWFJEUF9QQUlOVEVSCisgQU1fQ1BQRkxBR1MgKz0gLUkkKHRvcF9zcmNkaXIpL2xpYnBhaW50ZXIvaW5jbHVkZQorLVhSRFBfRVhUUkFfTElCUyArPSAkKHRvcF9idWlsZGRpcikvbGlicGFpbnRlci9zcmMvLmxpYnMvbGlicGFpbnRlci5hCisrWFJEUF9FWFRSQV9MSUJTICs9ICQodG9wX2J1aWxkZGlyKS9saWJwYWludGVyL3NyYy8ubGlicy9saWJwYWludGVyLmxhCisgZW5kaWYKKyAKKyBzYmluX1BST0dSQU1TID0gXAorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcC94cmRwLnN5c2NvbmZpZyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwL3hyZHAuc3lzY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5ZjUwMGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcC94cmRwLnN5c2NvbmZpZwpAQCAtMCwwICsxLDQgQEAKKyMgcHV0IHNvbWUgb3B0aW9ucyBoZXJlCisKK1hSRFBfT1BUSU9OUz0iIgorU0VTTUFOX09QVElPTlM9IiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwXzAuOS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHBfMC45LjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VmN2M5OAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwXzAuOS40LmJiCkBAIC0wLDAgKzEsOTkgQEAKK1NVTU1BUlkgPSAiQW4gb3BlbiBzb3VyY2UgcmVtb3RlIGRlc2t0b3AgcHJvdG9jb2wocmRwKSBzZXJ2ZXIuIgorCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03MmNmYmU0ZTdiZDMzYTBhMWRlOTYzMGM5MTE5NWMyMSBcCisiCisKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcgdXNlcmFkZCBzeXN0ZW1kCisKK0RFUEVORFMgPSAib3BlbnNzbCB2aXJ0dWFsL2xpYngxMSBsaWJ4Zml4ZXMgbGlieHJhbmRyIGxpYnBhbSBuYXNtLW5hdGl2ZSIKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSBwYW0iCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9uZXV0cmlub2xhYnMveHJkcC5naXQgXAorICAgICAgICAgICBmaWxlOi8veHJkcC5zeXNjb25maWcgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1GaXgtc2VzbWFuLmluaS1hbmQteHJkcC5pbmkucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1BZGRlZC1yZXFfZGlzdGluZ3Vpc2hlZF9uYW1lLWluLWV0Yy14cmRwLW9wZW5zc2wuY29uLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRml4LXRoZS1jb21waWxlLWVycm9yLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRml4LW9mLUNWRS0yMDE3LTE2OTI3LnBhdGNoIFwKKyAgICAgICAgICAgIgorCitTUkNSRVYgPSAiYzI5NWRkNjFiODgyZThiNTY2NzdjZjEyNzkxZjQzNjM0ZjkxOTBiNSIKKworUFYgPSAiMC45LjQrZ2l0JHtTUkNQVn0iCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK1BBQ0tBR0VDT05GSUcgPz89ICIiCitQQUNLQUdFQ09ORklHW2Z1c2VdID0gIiAtLWVuYWJsZS1mdXNlLCAtLWRpc2FibGUtZnVzZSwgZnVzZSIKKworVVNFUkFERF9QQUNLQUdFUyA9ICIke1BOfSIKK0dST1VQQUREX1BBUkFNXyR7UE59ID0gIi0tc3lzdGVtIHhyZHAiCitVU0VSQUREX1BBUkFNXyR7UE59ICA9ICItLXN5c3RlbSAtLWhvbWUgL3Zhci9ydW4veHJkcCAtZyB4cmRwIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tbm8tY3JlYXRlLWhvbWUgLS1zaGVsbCAvYmluL2ZhbHNlIHhyZHAiCisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2RidXMtMS9zZXJ2aWNlcy8qLnNlcnZpY2UgXAorICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vZGJ1cy0xL2FjY2Vzc2liaWxpdHktc2VydmljZXMvKi5zZXJ2aWNlICIKKworRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0veHJkcC9saWJjb21tb24uc28gXAorICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0veHJkcC9saWJ4cmRwLnNvIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3hyZHAvbGlic2NwLnNvIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3hyZHAvbGlieHJkcGFwaS5zbyAiCisKK0VYVFJBX09FQ09ORiA9ICItLWVuYWJsZS1wYW0tY29uZmlnPXN1c2UiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworICAgIGNkICR7U30KKyAgICAuL2Jvb3RzdHJhcAorICAgIGNkIC0KK30KKworZG9fY29tcGlsZV9wcmVwZW5kKCkgeworICAgIHNlZCAtaSAncy8oTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0vKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0vZycgJHtTfS9rZXlnZW4vTWFrZWZpbGUuaW4KK30KKworCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKwlpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9IAorCWluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0veHJkcAorCWluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0veHJkcC9wYW0uZAorCWluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vc3lzY29uZmlnL3hyZHAKKyAgIAorCSMgZGVhbCB3aXRoIHN5c3RlbWQgdW5pdCBmaWxlcworCWluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKwlpbnN0YWxsIC1tIDA2NDQgJHtTfS9pbnN0ZmlsZXMveHJkcC5zZXJ2aWNlLmluICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL3hyZHAuc2VydmljZQorCWluc3RhbGwgLW0gMDY0NCAke1N9L2luc3RmaWxlcy94cmRwLXNlc21hbi5zZXJ2aWNlLmluICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL3hyZHAtc2VzbWFuLnNlcnZpY2UgCisJc2VkIC1pIC1lICdzLEBsb2NhbHN0YXRlZGlyQCwke2xvY2Fsc3RhdGVkaXJ9LGcnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL3hyZHAuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS94cmRwLXNlc21hbi5zZXJ2aWNlCisJc2VkIC1pIC1lICdzLEBzeXNjb25mZGlyQCwke3N5c2NvbmZkaXJ9LGcnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL3hyZHAuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS94cmRwLXNlc21hbi5zZXJ2aWNlCisJc2VkIC1pIC1lICdzLEBzYmluZGlyQCwke3NiaW5kaXJ9LGcnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL3hyZHAuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS94cmRwLXNlc21hbi5zZXJ2aWNlCisKKwlpbnN0YWxsIC1tIDA2NDQgJHtTfS9pbnN0ZmlsZXMvKi5pbmkgJHtEfSR7c3lzY29uZmRpcn0veHJkcC8KKwlpbnN0YWxsIC1tIDA2NDQgJHtTfS9zZXNtYW4vc2VzbWFuLmluaSAke0R9JHtzeXNjb25mZGlyfS94cmRwLworCWluc3RhbGwgLW0gMDY0NCAke1N9L3Nlc21hbi9zdGFydHdtLnNoICR7RH0ke3N5c2NvbmZkaXJ9L3hyZHAvCisJaW5zdGFsbCAtbSAwNjQ0ICR7U30veHJkcC94cmRwLmluaSAke0R9JHtzeXNjb25mZGlyfS94cmRwLworCWluc3RhbGwgLW0gMDY0NCAke1N9L3hyZHAveHJkcF9rZXlib2FyZC5pbmkgJHtEfSR7c3lzY29uZmRpcn0veHJkcC8KKwlpbnN0YWxsIC1tIDA2NDQgJHtTfS9pbnN0ZmlsZXMveHJkcC5zaCAke0R9JHtzeXNjb25mZGlyfS94cmRwLworCWluc3RhbGwgLW0gMDY0NCAke1N9L2tleWdlbi9vcGVuc3NsLmNvbmYgJHtEfSR7c3lzY29uZmRpcn0veHJkcC8KKwlpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS94cmRwLnN5c2NvbmZpZyAke0R9JHtzeXNjb25mZGlyfS9zeXNjb25maWcveHJkcC8KKwljaG93biB4cmRwOnhyZHAgJHtEfSR7c3lzY29uZmRpcn0veHJkcAorfQorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAieHJkcC5zZXJ2aWNlIHhyZHAtc2VzbWFuLnNlcnZpY2UiCisKK3BrZ19wb3N0aW5zdF8ke1BOfSgpIHsKKwlpZiB0ZXN0IC16ICIkRCIKKwl0aGVuCisJCWlmIHRlc3QgLXggJHtiaW5kaXJ9L3hyZHAta2V5Z2VuCisJCXRoZW4KKwkJCSR7YmluZGlyfS94cmRwLWtleWdlbiB4cmRwICR7c3lzY29uZmRpcn0veHJkcC9yc2FrZXlzLmluaSA+L2Rldi9udWxsCisgICAgICAgICAgICAgICAgZmkKKwkJaWYgdGVzdCAhIC1zICR7c3lzY29uZmRpcn0veHJkcC9jZXJ0LnBlbQorCQl0aGVuCisJCQlvcGVuc3NsIHJlcSAteDUwOSAtbmV3a2V5IHJzYToyMDQ4IC1zaGEyNTYgLW5vZGVzIC1kYXlzIDM2NTIgXAorCQkJLWtleW91dCAke3N5c2NvbmZkaXJ9L3hyZHAva2V5LnBlbSBcCisJCQktb3V0ICR7c3lzY29uZmRpcn0veHJkcC9jZXJ0LnBlbSBcCisJCQktY29uZmlnICR7c3lzY29uZmRpcn0veHJkcC9vcGVuc3NsLmNvbmYgPi9kZXYvbnVsbCAyPiYxCisJCQljaG1vZCA0MDAgJHtzeXNjb25mZGlyfS94cmRwL2tleS5wZW0KKwkJZmkJCQkKKyAgICAgICAgZmkKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvemlsZS96aWxlXzIuNC4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvemlsZS96aWxlXzIuNC4xMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDY2M2Y0NGIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC96aWxlL3ppbGVfMi40LjExLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotU1VNTUFSWSA9ICJaaWxlIGlzIGxvc3N5IEVtYWNzIgotSE9NRVBBR0UgPSAiaHR0cDovL3ppbGUuc291cmNlZm9yZ2UubmV0LyIKLURFUEVORFMgPSAibmN1cnNlcyBiZHdnYyIKLQotTElDRU5TRSA9ICJHUEx2MyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgotCi1TUkNfVVJJID0gImh0dHA6Ly9mdHAuZ251Lm9yZy9nbnUvemlsZS8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vcmVtb3ZlLWhlbHAybWFuLnBhdGNoIFwKLSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjdhNDYwY2NlYzY0ZTNiZWMyODM1Njk3YjJlYWU1MzNjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFmZDI3YmJkZGM2MTQ5MWIxZmJiMjlhMzQ1ZDBkMzQ0NzM0YWE5ZTgwY2ZhMDdiMDI4OTJlZWRmODMxZmE5Y2MiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBybSAtcmYgJHtEfSR7bGliZGlyfS9jaGFyc2V0LmFsaWFzCi0gICAgcm1kaXIgLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkgJHtEfSR7bGliZGlyfSB8fCB0cnVlCi19Ci0KLVBBQ0tBR0VDT05GSUcgPz89ICIiCi1QQUNLQUdFQ09ORklHICs9ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhY2wnLCBkKX0iCi0KLVBBQ0tBR0VDT05GSUdbYWNsXSA9ICItLWVuYWJsZS1hY2wsLS1kaXNhYmxlLWFjbCxhY2wsIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC96aWxlL3ppbGVfMi40LjE0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC96aWxlL3ppbGVfMi40LjE0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNWNmNDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3ppbGUvemlsZV8yLjQuMTQuYmIKQEAgLTAsMCArMSwyNSBAQAorU1VNTUFSWSA9ICJaaWxlIGlzIGxvc3N5IEVtYWNzIgorSE9NRVBBR0UgPSAiaHR0cDovL3ppbGUuc291cmNlZm9yZ2UubmV0LyIKK0RFUEVORFMgPSAibmN1cnNlcyBiZHdnYyIKKworTElDRU5TRSA9ICJHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTFlYmJkM2UzNDIzN2FmMjZkYTVkYzA4YTRlNDQwNDY0IgorCitTUkNfVVJJID0gImh0dHA6Ly9mdHAuZ251Lm9yZy9nbnUvemlsZS8ke0JQfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vcmVtb3ZlLWhlbHAybWFuLnBhdGNoIFwKKyIKKworU1JDX1VSSVttZDVzdW1dID0gImM3ZDdlZWM5MzIzMWM2ODc4ZjI1NTk3OGQ5NzQ3YTczIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdhNzg3NDI3OTVjYTMyNDgwZjJiYWI2OTdmZDVlMzI4NjE4ZDk5OTdkNmY0MTdjZjFiMTRlOWRhOWFmMjZiNzQiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBybSAtcmYgJHtEfSR7bGliZGlyfS9jaGFyc2V0LmFsaWFzCisgICAgcm1kaXIgLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkgJHtEfSR7bGliZGlyfSB8fCB0cnVlCit9CisKK1BBQ0tBR0VDT05GSUcgPz89ICIiCitQQUNLQUdFQ09ORklHICs9ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhY2wnLCBkKX0iCisKK1BBQ0tBR0VDT05GSUdbYWNsXSA9ICItLWVuYWJsZS1hY2wsLS1kaXNhYmxlLWFjbCxhY2wsIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvY3BwdW5pdC9jcHB1bml0XzEuMTMuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvY3BwdW5pdC9jcHB1bml0XzEuMTMuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvY3BwdW5pdC9jcHB1bml0XzEuMTMuMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9jcHB1bml0L2NwcHVuaXRfMS4xMy4yLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jcHB1bml0L2ZpbGVzLzAwMDEtZG9jLU1ha2VmaWxlLmFtLWRvLW5vdC1wcmVzZXJ2ZS1maWxlLWZsYWdzLXdoZW4tY29weS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvY3BwdW5pdC9maWxlcy8wMDAxLWRvYy1NYWtlZmlsZS5hbS1kby1ub3QtcHJlc2VydmUtZmlsZS1mbGFncy13aGVuLWNvcHkucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2NwcHVuaXQvZmlsZXMvMDAwMS1kb2MtTWFrZWZpbGUuYW0tZG8tbm90LXByZXNlcnZlLWZpbGUtZmxhZ3Mtd2hlbi1jb3B5LnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2NwcHVuaXQvZmlsZXMvMDAwMS1kb2MtTWFrZWZpbGUuYW0tZG8tbm90LXByZXNlcnZlLWZpbGUtZmxhZ3Mtd2hlbi1jb3B5LnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jdW5pdC9jdW5pdF8yLjEtMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvY3VuaXQvY3VuaXRfMi4xLTMuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2N1bml0L2N1bml0XzIuMS0zLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2N1bml0L2N1bml0XzIuMS0zLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jdW5pdC9maWxlcy9maXh1cC1pbnN0YWxsLWRvY2Rpci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvY3VuaXQvZmlsZXMvZml4dXAtaW5zdGFsbC1kb2NkaXIucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2N1bml0L2ZpbGVzL2ZpeHVwLWluc3RhbGwtZG9jZGlyLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2N1bml0L2ZpbGVzL2ZpeHVwLWluc3RhbGwtZG9jZGlyLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jeHh0ZXN0L2N4eHRlc3RfNC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9jeHh0ZXN0L2N4eHRlc3RfNC4zLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jeHh0ZXN0L2N4eHRlc3RfNC4zLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2N4eHRlc3QvY3h4dGVzdF80LjMuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZXZ0ZXN0L2V2dGVzdF9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2V2dGVzdC9ldnRlc3RfZ2l0LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2V2dGVzdC9ldnRlc3RfZ2l0LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2V2dGVzdC9ldnRlc3RfZ2l0LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZidGVzdC9mYi10ZXN0X2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvZmJ0ZXN0L2ZiLXRlc3RfZ2l0LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZidGVzdC9mYi10ZXN0X2dpdC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9mYnRlc3QvZmItdGVzdF9naXQuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvZ3Rlc3QvZ3Rlc3RfMS44LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2d0ZXN0L2d0ZXN0XzEuOC4wLmJiCmluZGV4IDQ4M2RjMWYuLjQ4Y2Y0ZTAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvZ3Rlc3QvZ3Rlc3RfMS44LjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9ndGVzdC9ndGVzdF8xLjguMC5iYgpAQCAtNywxNiArNywxMyBAQAogCiBQUk9WSURFUyArPSAiZ21vY2siCiAKK1MgPSAiJHtXT1JLRElSfS9naXQiCitTUkNSRVYgPSAiZWM0NGM2YzE2NzVjMjViOTgyN2FhY2QwOGMwMjQzM2NjY2RlNzc4MCIKIFNSQ19VUkkgPSAiXAotICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9hcmNoaXZlL3JlbGVhc2UtJHtQVn0udGFyLmd6IFwKKyAgICBnaXQ6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0LmdpdDtwcm90b2NvbD1odHRwczsgXAogICAgIGZpbGU6Ly9BZGQtcGtnLWNvbmZpZy1zdXBwb3J0LnBhdGNoIFwKICIKIAotU1JDX1VSSVttZDVzdW1dID0gIjE2ODc3MDk4ODIzNDAxZDFiZjJlZDc4OTFkN2RjZTM2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU4YTZmNDI3N2NhMmJjODU2NTIyMmIzYmJkNThhMTc3NjA5ZTljNDg4ZThhNzI2NDkzNTliYTUxNDUwZGI3ZDgiCi0KLVMgPSAiJHtXT1JLRElSfS9nb29nbGV0ZXN0LXJlbGVhc2UtJHtQVn0iCi0KIGluaGVyaXQgY21ha2UKIAogQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BtLXFhL3BtLXFhX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvcG0tcWEvcG0tcWFfZ2l0LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wbS1xYS9wbS1xYV9naXQuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvcG0tcWEvcG0tcWFfZ2l0LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L3N0cmVzcy1uZy9zdHJlc3MtbmcvMDAwMS1TZXZlcmFsLWNoYW5nZXMtdG8tZml4LW11c2wtYnVpbGQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L3N0cmVzcy1uZy9zdHJlc3MtbmcvMDAwMS1TZXZlcmFsLWNoYW5nZXMtdG8tZml4LW11c2wtYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDYwNGY4NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3Qvc3RyZXNzLW5nL3N0cmVzcy1uZy8wMDAxLVNldmVyYWwtY2hhbmdlcy10by1maXgtbXVzbC1idWlsZC5wYXRjaApAQCAtMCwwICsxLDE0MSBAQAorRnJvbSA3ODRkY2QwOWQzZjI2NmUyNzFkMDA3ZjRmZDI1N2U4NTAzNjg3MmNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuPUMzPUFEYmFsPTIwTGltPUMzPUIzbj89IDxhbmliYWwubGltb25AbGluYXJvLm9yZz4KK0RhdGU6IFR1ZSwgMTcgT2N0IDIwMTcgMTA6MTM6MjAgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gU2V2ZXJhbCBjaGFuZ2VzIHRvIGZpeCBtdXNsIGJ1aWxkCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK3N0cmVzcy17Y29udGV4dCwgc3RhY2ttbWFwfS5jOiBTZXQgdGVzdHMgdG8gbm9uLWltcGxlbWVudGVkIGJlY2F1c2UgdXNlcworc3dhcGNvbnRleHQsIG11c2wgcHJvdmlkZSB0aGUgZGVmaW5pdGlvbiBidXQgbm90IHRoZSBpbXBsZW1lbnRhdGlvbiBkdWUKKyAgdG8gdGhhdCBmdW5jdGlvbnMgYXJlIHByZS1QT1NJWCBhbmQgc2V0IHRvIGJlIGRlcHJlY2F0ZWQuCisgIHN0cmVzcy17cmVzb3VyY2VzLCBwdHl9LmM6IERvZXNuJ3QgaW5jbHVkZSB0ZXJtaW8uaCBhbmQgcmVtb3ZlIHN0cmVzcworICBvcGVyYXRpb25zIHRoYXQgdXNlcyBzdHJ1Y3QgdGVybWlvLCBtdXNsIGRvZXNuJ3QgcHJvdmlkZSB0aGF0IHN0cnVjdC4KK3N0cmVzcy1tYWxsb2MuYzogQ2hlY2sgZm9yIGRlZmluaXRpb24gb2YgTV9NTUFQX1RIUkVTSE9MRCBtdXNsIGRvZXNuJ3QKKyAgcHRvdmlkZSB0aGF0IGNvbnN0YW50Lgorc3RyZXNzLW1hZHZpc2UuYzogQWRkIHN0YXRpYyBwb2lzaW9uX2NvdW50IGludGVnZXIsIGRlZmluaXRpb24gb2YKKyAgTUFEVl9TT0ZUX09GRkxJTkUgZG9lc24ndCBncmF1bnRlZSBNQURWX0hXUE9JU09OIHRvIGJlIGRlZmluZWQuCitjYWNoZS5jOiBEZWZpbmUgR0xPQl9PTkxZRElSIG5vdCBhdmFpbGFibGUgb24gTVVTTC4KKworU2lnbmVkLW9mZi1ieTogQW7DrWJhbCBMaW3Ds24gPGFuaWJhbC5saW1vbkBsaW5hcm8ub3JnPgorU2lnbmVkLW9mZi1ieTogVGltIE9ybGluZyA8dGltb3RoeS50Lm9ybGluZ0BsaW51eC5pbnRlbC5jb20+CisKK1Vwc3RyZWFtLXN0YXR1czogUGVuZGluZworCistLS0KKyBjYWNoZS5jICAgICAgICAgICAgfCAgNCArKysrCisgc3RyZXNzLW1hZHZpc2UuYyAgIHwgIDEgKworIHN0cmVzcy1tYWxsb2MuYyAgICB8ICAyICstCisgc3RyZXNzLXB0eS5jICAgICAgIHwgMTggLS0tLS0tLS0tLS0tLS0tLS0tCisgc3RyZXNzLXJlc291cmNlcy5jIHwgIDEgLQorIHN0cmVzcy1zdGFja21tYXAuYyB8ICAyICstCisgNiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY2FjaGUuYyBiL2NhY2hlLmMKK2luZGV4IGZiZjc2NzQuLjkzNmMxZmYgMTAwNjQ0CistLS0gYS9jYWNoZS5jCisrKysgYi9jYWNoZS5jCitAQCAtMjgsNiArMjgsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgeworIAorICNpbmNsdWRlIDxnbG9iLmg+CisgCisrI2lmbmRlZiBHTE9CX09OTFlESVIKKysjZGVmaW5lIEdMT0JfT05MWURJUiAgICAweDEwMAorKyNlbmRpZgorKworICNpZiBkZWZpbmVkKF9fbGludXhfXykKKyAjZGVmaW5lIFNZU19DUFVfUFJFRklYICAgICAgICAgICAgICAgIi9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1IgorICNkZWZpbmUgR0xPQl9QQVRURVJOIFNZU19DUFVfUFJFRklYICAiL2NwdVswLTldKiIKK2RpZmYgLS1naXQgYS9zdHJlc3MtbWFkdmlzZS5jIGIvc3RyZXNzLW1hZHZpc2UuYworaW5kZXggOWU3MWUxMS4uZGRmOGQyZCAxMDA2NDQKKy0tLSBhL3N0cmVzcy1tYWR2aXNlLmMKKysrKyBiL3N0cmVzcy1tYWR2aXNlLmMKK0BAIC0xNDcsNiArMTQ3LDcgQEAgc3RhdGljIGludCBzdHJlc3NfcmFuZG9tX2FkdmlzZShjb25zdCBhcmdzX3QgKmFyZ3MpCisgI2lmIGRlZmluZWQoTUFEVl9TT0ZUX09GRkxJTkUpCisgCWlmIChhZHZpc2UgPT0gTUFEVl9TT0ZUX09GRkxJTkUpIHsKKyAJCXN0YXRpYyBpbnQgc29mdF9vZmZsaW5lX2NvdW50OworKwkJc3RhdGljIGludCBwb2lzb25fY291bnQ7CisgCisgCQkvKiAuLmFuZCBtaW5pbWl6ZSBudW1iZXIgb2Ygc29mdCBvZmZsaW5lIHBhZ2VzICovCisgCQlpZiAoKHNvZnRfb2ZmbGluZV9jb3VudCA+PSBOVU1fU09GVF9PRkZMSU5FX01BWCkgfHwKK2RpZmYgLS1naXQgYS9zdHJlc3MtbWFsbG9jLmMgYi9zdHJlc3MtbWFsbG9jLmMKK2luZGV4IGE0NmI4YzYuLjQyNzgyN2EgMTAwNjQ0CistLS0gYS9zdHJlc3MtbWFsbG9jLmMKKysrKyBiL3N0cmVzcy1tYWxsb2MuYworQEAgLTk5LDcgKzk5LDcgQEAgaW50IHN0cmVzc19tYWxsb2MoY29uc3QgYXJnc190ICphcmdzKQorIAkJCW1hbGxvY19tYXggPSBNSU5fTUFMTE9DX01BWDsKKyAJfQorIAorLSNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBkZWZpbmVkKF9fbGludXhfXykKKysjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoTV9NTUFQX1RIUkVTSE9MRCkKKyAJaWYgKGdldF9zZXR0aW5nKCJtYWxsb2MtdGhyZXNob2xkIiwgJm1hbGxvY190aHJlc2hvbGQpKQorIAkJKHZvaWQpbWFsbG9wdChNX01NQVBfVEhSRVNIT0xELCAoaW50KW1hbGxvY190aHJlc2hvbGQpOworICNlbmRpZgorZGlmZiAtLWdpdCBhL3N0cmVzcy1wdHkuYyBiL3N0cmVzcy1wdHkuYworaW5kZXggMWJkMWZiZC4uYjFmZTU3MyAxMDA2NDQKKy0tLSBhL3N0cmVzcy1wdHkuYworKysrIGIvc3RyZXNzLXB0eS5jCitAQCAtMjYsNyArMjYsNiBAQAorIAorICNpZiBkZWZpbmVkKF9fbGludXhfXykKKyAKKy0jaW5jbHVkZSA8dGVybWlvLmg+CisgI2luY2x1ZGUgPHRlcm1pb3MuaD4KKyAKKyB0eXBlZGVmIHN0cnVjdCB7CitAQCAtMTA4LDcgKzEwNyw2IEBAIGludCBzdHJlc3NfcHR5KGNvbnN0IGFyZ3NfdCAqYXJncykKKyAJCSAqLworIAkJZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworIAkJCXN0cnVjdCB0ZXJtaW9zIGlvczsKKy0JCQlzdHJ1Y3QgdGVybWlvIGlvOworIAkJCXN0cnVjdCB3aW5zaXplIHdzOworIAkJCWludCBhcmc7CisgCitAQCAtMTMwLDIyICsxMjgsNiBAQCBpbnQgc3RyZXNzX3B0eShjb25zdCBhcmdzX3QgKmFyZ3MpCisgCQkJaWYgKGlvY3RsKHB0eXNbaV0uc2xhdmUsIFRDU0VUU0YsICZpb3MpIDwgMCkKKyAJCQkJcHJfZmFpbF9lcnIoImlvY3RsIFRDU0VUU0Ygb24gc2xhdmUgcHR5Iik7CisgI2VuZGlmCistI2lmIGRlZmluZWQoVENHRVRBKQorLQkJCWlmIChpb2N0bChwdHlzW2ldLnNsYXZlLCBUQ0dFVEEsICZpbykgPCAwKQorLQkJCQlwcl9mYWlsX2VycigiaW9jdGwgVENHRVRBIG9uIHNsYXZlIHB0eSIpOworLSNlbmRpZgorLSNpZiBkZWZpbmVkKFRDU0VUQSkKKy0JCQlpZiAoaW9jdGwocHR5c1tpXS5zbGF2ZSwgVENTRVRBLCAmaW8pIDwgMCkKKy0JCQkJcHJfZmFpbF9lcnIoImlvY3RsIFRDU0VUQSBvbiBzbGF2ZSBwdHkiKTsKKy0jZW5kaWYKKy0jaWYgZGVmaW5lZChUQ1NFVEFXKQorLQkJCWlmIChpb2N0bChwdHlzW2ldLnNsYXZlLCBUQ1NFVEFXLCAmaW8pIDwgMCkKKy0JCQkJcHJfZmFpbF9lcnIoImlvY3RsIFRDU0VUQVcgb24gc2xhdmUgcHR5Iik7CistI2VuZGlmCistI2lmIGRlZmluZWQoVENTRVRBRikKKy0JCQlpZiAoaW9jdGwocHR5c1tpXS5zbGF2ZSwgVENTRVRBRiwgJmlvKSA8IDApCistCQkJCXByX2ZhaWxfZXJyKCJpb2N0bCBUQ1NFVEFGIG9uIHNsYXZlIHB0eSIpOworLSNlbmRpZgorICNpZiBkZWZpbmVkKFRJT0NHTENLVFJNSU9TKQorIAkJCWlmIChpb2N0bChwdHlzW2ldLnNsYXZlLCBUSU9DR0xDS1RSTUlPUywgJmlvcykgPCAwKQorIAkJCQlwcl9mYWlsX2VycigiaW9jdGwgVElPQ0dMQ0tUUk1JT1Mgb24gc2xhdmUgcHR5Iik7CitkaWZmIC0tZ2l0IGEvc3RyZXNzLXJlc291cmNlcy5jIGIvc3RyZXNzLXJlc291cmNlcy5jCitpbmRleCA5NThjOTlhLi5hZjc5YWJkIDEwMDY0NAorLS0tIGEvc3RyZXNzLXJlc291cmNlcy5jCisrKysgYi9zdHJlc3MtcmVzb3VyY2VzLmMKK0BAIC0zMSw3ICszMSw2IEBACisgI2luY2x1ZGUgPHN5cy9pbm90aWZ5Lmg+CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19saW51eF9fKQorLSNpbmNsdWRlIDx0ZXJtaW8uaD4KKyAjaW5jbHVkZSA8dGVybWlvcy5oPgorICNlbmRpZgorICNpZiBkZWZpbmVkKEhBVkVfTElCX1BUSFJFQUQpICYmIGRlZmluZWQoX19saW51eF9fKQorZGlmZiAtLWdpdCBhL3N0cmVzcy1zdGFja21tYXAuYyBiL3N0cmVzcy1zdGFja21tYXAuYworaW5kZXggOWM4M2E2OS4uMjk4NGYwOSAxMDA2NDQKKy0tLSBhL3N0cmVzcy1zdGFja21tYXAuYworKysrIGIvc3RyZXNzLXN0YWNrbW1hcC5jCitAQCAtMjQsNyArMjQsNyBAQAorICAqLworICNpbmNsdWRlICJzdHJlc3MtbmcuaCIKKyAKKy0jaWYgZGVmaW5lZChfX2xpbnV4X18pCisrI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBGYWxzZQorIAorICNpbmNsdWRlIDx1Y29udGV4dC5oPgorIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9zdHJlc3Mtbmcvc3RyZXNzLW5nLzAwMDItc3RyZXNzLWZjbnRsLWZpeC1idWlsZC1mb3ItbXVzbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3Qvc3RyZXNzLW5nL3N0cmVzcy1uZy8wMDAyLXN0cmVzcy1mY250bC1maXgtYnVpbGQtZm9yLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQzMjg3ZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3Qvc3RyZXNzLW5nL3N0cmVzcy1uZy8wMDAyLXN0cmVzcy1mY250bC1maXgtYnVpbGQtZm9yLW11c2wucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSBmYWFkYmMxNDczOTRjZWE5Mjc4YmMyNDk0ZjMzZTM1MjFkODhlNzQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVGltIE9ybGluZyA8dGltb3RoeS50Lm9ybGluZ0BsaW51eC5pbnRlbC5jb20+CitEYXRlOiBUdWUsIDkgSmFuIDIwMTggMTg6Mzg6NDUgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gc3RyZXNzLWZjbnRsOiBmaXggYnVpbGQgZm9yIG11c2wKKworU2lnbmVkLW9mZi1ieTogVGltIE9ybGluZyA8dGltb3RoeS50Lm9ybGluZ0BsaW51eC5pbnRlbC5jb20+CisKK1Vwc3RyZWFtLXN0YXR1czogUGVuZGluZworCistLS0KKyBzdHJlc3MtZmNudGwuYyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvc3RyZXNzLWZjbnRsLmMgYi9zdHJlc3MtZmNudGwuYworaW5kZXggMmVhODY3Yi4uZTkxYjM0NSAxMDA2NDQKKy0tLSBhL3N0cmVzcy1mY250bC5jCisrKysgYi9zdHJlc3MtZmNudGwuYworQEAgLTQxNSw2ICs0MTUsNyBAQCBvZmRfbG9ja19hYm9ydDoJeyAvKiBOb3d0ICovIH0KKyAjaWYgKGRlZmluZWQoRl9HRVRfRklMRV9SV19ISU5UKSAmJiBkZWZpbmVkKEZfU0VUX0ZJTEVfUldfSElOVCkpIHwgXAorICAgICAoZGVmaW5lZChGX0dFVF9SV19ISU5UKSAmJiBkZWZpbmVkKEZfU0VUX1JXX0hJTlQpKQorIAl7CisrCQlpbnQgcmV0OworIAkJc2l6ZV90IGk7CisgCQl1bnNpZ25lZCBsb25nIGhpbnQ7CisgCQlzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBoaW50c1tdID0gewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9zdHJlc3Mtbmcvc3RyZXNzLW5nXzAuMDkuMTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L3N0cmVzcy1uZy9zdHJlc3MtbmdfMC4wOS4xNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmFiNDMwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9zdHJlc3Mtbmcvc3RyZXNzLW5nXzAuMDkuMTQuYmIKQEAgLTAsMCArMSwyNSBAQAorU1VNTUFSWSA9ICJBIHRvb2wgdG8gbG9hZCBhbmQgc3RyZXNzIGEgY29tcHV0ZXIgc3lzdGVtIgorSE9NRVBBR0UgPSAiaHR0cDovL2tlcm5lbC51YnVudHUuY29tL35ja2luZy9zdHJlc3MtbmcvIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgorCitERVBFTkRTID0gInpsaWIgbGliYWlvIgorCitTUkNfVVJJID0gImh0dHA6Ly9rZXJuZWwudWJ1bnR1LmNvbS9+Y2tpbmcvdGFyYmFsbHMvJHtCUE59LyR7QlB9LnRhci54eiBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAyLXN0cmVzcy1mY250bC1maXgtYnVpbGQtZm9yLW11c2wucGF0Y2ggXAorICAgICAgICAgICIKK1NSQ19VUklfYXBwZW5kX2xpYmMtbXVzbCA9ICIgXAorICAgIGZpbGU6Ly8wMDAxLVNldmVyYWwtY2hhbmdlcy10by1maXgtbXVzbC1idWlsZC5wYXRjaCBcCisgICAgIgorU1JDX1VSSVttZDVzdW1dID0gIjFmOGI2YzJjMjgzMDcwNGQyYTI4MTRjMTYwODJkNDhlIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjAyY2FjMzRhNWNiMDQxMTk3YWY2MGMxODY3ODQ0YzZjYmIwODlhNmQxMGEzOGNkY2Y3YjhmMjdiZmFhNmVmOGYiCisKK1VQU1RSRUFNX0NIRUNLX1VSSSA/PSAiaHR0cDovL2tlcm5lbC51YnVudHUuY29tL35ja2luZy90YXJiYWxscy8ke0JQTn0vIgorVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPz0gIig/UDxwdmVyPlxkKyhcLlxkKykrKVwudGFyIgorCitDRkxBR1MgKz0gIi1XYWxsIC1XZXh0cmEgLURWRVJTSU9OPSciJChWRVJTSU9OKSInIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0KKyAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3N0cmVzcy1uZyAke0R9JHtiaW5kaXJ9L3N0cmVzcy1uZworfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGVzdGZsb2F0L2ZpbGVzLzAwMDEtTWFrZWZpbGUtZm9yLWNyb3NzLWNvbXBpbGUtU29mdEZsb2F0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC90ZXN0ZmxvYXQvZmlsZXMvMDAwMS1NYWtlZmlsZS1mb3ItY3Jvc3MtY29tcGlsZS1Tb2Z0RmxvYXQucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Rlc3RmbG9hdC9maWxlcy8wMDAxLU1ha2VmaWxlLWZvci1jcm9zcy1jb21waWxlLVNvZnRGbG9hdC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC90ZXN0ZmxvYXQvZmlsZXMvMDAwMS1NYWtlZmlsZS1mb3ItY3Jvc3MtY29tcGlsZS1Tb2Z0RmxvYXQucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Rlc3RmbG9hdC9maWxlcy8wMDAyLU1ha2VmaWxlLWZvci1jcm9zcy1jb21waWxlLVRlc3RGbG9hdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvdGVzdGZsb2F0L2ZpbGVzLzAwMDItTWFrZWZpbGUtZm9yLWNyb3NzLWNvbXBpbGUtVGVzdEZsb2F0LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90ZXN0ZmxvYXQvZmlsZXMvMDAwMi1NYWtlZmlsZS1mb3ItY3Jvc3MtY29tcGlsZS1UZXN0RmxvYXQucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvdGVzdGZsb2F0L2ZpbGVzLzAwMDItTWFrZWZpbGUtZm9yLWNyb3NzLWNvbXBpbGUtVGVzdEZsb2F0LnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90ZXN0ZmxvYXQvdGVzdGZsb2F0XzNhLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC90ZXN0ZmxvYXQvdGVzdGZsb2F0XzNhLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90ZXN0ZmxvYXQvdGVzdGZsb2F0XzNhLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L3Rlc3RmbG9hdC90ZXN0ZmxvYXRfM2EuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL1JFQURNRSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL1JFQURNRQppbmRleCBjYzk2NWFmLi42N2YyOTEwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9SRUFETUUKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvUkVBRE1FCkBAIC01Miw3ICs1Miw3IEBACiBUaGlzIGxheWVyIGRlcGVuZHMgb246CiAKICAgVVJJOiBnaXQ6Ly9naXQub3BlbmVtYmVkZGVkLm9yZy9vcGVuZW1iZWRkZWQtY29yZQotICBicmFuY2g6IHJvY2tvIAorICBicmFuY2g6IG1hc3RlcgogICByZXZpc2lvbjogSEVBRAogICBwcmlvOiBkZWZhdWx0CiAKQEAgLTc1LDEzICs3NSwxNCBAQAogLS0tLS0tLS0tLS0KIAogU2VuZCBwYXRjaGVzIC8gcHVsbCByZXF1ZXN0cyB0byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyB3aXRoCi0nW21ldGEtcGVybF1bcm9ja29dJyBpbiB0aGUgc3ViamVjdC4KKydbbWV0YS1wZXJsXScgaW4gdGhlIHN1YmplY3QuCiAKIFdoZW4gc2VuZGluZyBzaW5nbGUgcGF0Y2hlcywgcGxlYXNlIHVzaW5nIHNvbWV0aGluZyBsaWtlOgotJ2dpdCBzZW5kLWVtYWlsIC1NIC0xIC0tdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgLS1zdWJqZWN0LXByZWZpeD1tZXRhLXBlcmxdW3JvY2tvXVtQQVRDSCcKKydnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1wZXJsXVtQQVRDSCcKIAotcm9ja28gQnJhbmNoIE1haW50YWluZXI6Ci1Bcm1pbiBLdXN0ZXIgPGFrdXN0ZXI4MDhAZ21haWwuY29tPgorTGF5ZXIgbWFpbnRhaW5lcnM6CisgICAgSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgorICAgIFRpbSAibW90by10aW1vIiBPcmxpbmcgPHRpY290aW1vQGdtYWlsLmNvbT4KIAogTGljZW5zZQogLS0tLS0tLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvY29uZi9sYXllci5jb25mIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvY29uZi9sYXllci5jb25mCmluZGV4IGE4NjFjM2UuLmVjZTZkZDAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9jb25mL2xheWVyLmNvbmYKQEAgLTE0LDMgKzE0LDUgQEAKIExBWUVSVkVSU0lPTl9wZXJsLWxheWVyID0gIjEiCiAKIExBWUVSREVQRU5EU19wZXJsLWxheWVyID0gImNvcmUgb3BlbmVtYmVkZGVkLWxheWVyIgorCitMQVlFUlNFUklFU19DT01QQVRfcGVybC1sYXllciA9ICJzdW1vIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmNnaS9saWJjZ2ktcGVybF80LjM2LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmNnaS9saWJjZ2ktcGVybF80LjM2LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZjI2YWIwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJjZ2kvbGliY2dpLXBlcmxfNC4zNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLURFU0NSSVBUSU9OID0gIkNHSS5wbSBpcyBhIHN0YWJsZSwgY29tcGxldGUgYW5kIG1hdHVyZSBzb2x1dGlvbiBmb3IgcHJvY2Vzc2luZyBhbmQgcHJlcGFyaW5nIFwKLUhUVFAgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcy4gTWFqb3IgZmVhdHVyZXMgaW5jbHVkaW5nIHByb2Nlc3NpbmcgZm9ybSBcCi1zdWJtaXNzaW9ucywgZmlsZSB1cGxvYWRzLCByZWFkaW5nIGFuZCB3cml0aW5nIGNvb2tpZXMsIHF1ZXJ5IHN0cmluZyBnZW5lcmF0aW9uIFwKLWFuZCBtYW5pcHVsYXRpb24sIGFuZCBwcm9jZXNzaW5nIGFuZCBwcmVwYXJpbmcgSFRUUCBoZWFkZXJzLiIKLUhPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvfmxlZWpvL0NHSS00LjI4L2xpYi9DR0kucG9kIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJBcnRpc3RpYy0yLjAgfCBHUEwtMi4wIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0yZTk3NjlmMGEyNjEzYTk4YmM3ZmNlMTVkZWUwYzUzMyIKLQotU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9ML0xFL0xFRUpPL0NHSS0ke1BWfS50YXIuZ3oiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI0ODU2NmQ4MWY0MzBhN2Y3NTViYjRkOGY0MjZjZTM1ZCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmZWZlODRkNGYyNDYxZTg2N2Y5YmU4MGYzZjk4OGUxN2JjYmJjYjRlMzA2OTUyY2YyZmQxZGVhN2U0NTE1NDkwIgotCi1TID0gIiR7V09SS0RJUn0vQ0dJLSR7UFZ9IgotCi1pbmhlcml0IGNwYW4KLQotUlBST1ZJREVTXyR7UE59ICs9ICJwZXJsLW1vZHVsZS1jZ2kiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliY2dpL2xpYmNnaS1wZXJsXzQuMzguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliY2dpL2xpYmNnaS1wZXJsXzQuMzguYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIxNmQ4MwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJjZ2kvbGliY2dpLXBlcmxfNC4zOC5iYgpAQCAtMCwwICsxLDI1IEBACitERVNDUklQVElPTiA9ICJDR0kucG0gaXMgYSBzdGFibGUsIGNvbXBsZXRlIGFuZCBtYXR1cmUgc29sdXRpb24gZm9yIHByb2Nlc3NpbmcgYW5kIHByZXBhcmluZyBcCitIVFRQIHJlcXVlc3RzIGFuZCByZXNwb25zZXMuIE1ham9yIGZlYXR1cmVzIGluY2x1ZGluZyBwcm9jZXNzaW5nIGZvcm0gXAorc3VibWlzc2lvbnMsIGZpbGUgdXBsb2FkcywgcmVhZGluZyBhbmQgd3JpdGluZyBjb29raWVzLCBxdWVyeSBzdHJpbmcgZ2VuZXJhdGlvbiBcCithbmQgbWFuaXB1bGF0aW9uLCBhbmQgcHJvY2Vzc2luZyBhbmQgcHJlcGFyaW5nIEhUVFAgaGVhZGVycy4iCitIT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL35sZWVqby9DR0ktNC4yOC9saWIvQ0dJLnBvZCIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiQXJ0aXN0aWMtMi4wIHwgR1BMLTIuMCIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MmU5NzY5ZjBhMjYxM2E5OGJjN2ZjZTE1ZGVlMGM1MzMiCisKK1NSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvTC9MRS9MRUVKTy9DR0ktJHtQVn0udGFyLmd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMGFlYjg1NjNkNTMzZTdmODM3MjRlZDA2OGI1YmZjMzciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGM1OGY0YTUyOWJiOTJhOTE0YjIyYjdlNjRjNWUzMTE4NWM5ODU0YTQwNzBhNmRmYWQ0NGZlNWNjMjQ4ZTdkNCIKKworUyA9ICIke1dPUktESVJ9L0NHSS0ke1BWfSIKKworaW5oZXJpdCBjcGFuCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgcGVybC1tb2R1bGUtZGVwcmVjYXRlIFwKKyAgICBwZXJsLW1vZHVsZS1pZiBcCisiCisKK1JQUk9WSURFU18ke1BOfSArPSAicGVybC1tb2R1bGUtY2dpIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmRiL2xpYmRiZC1zcWxpdGUtcGVybF8xLjU0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmRiL2xpYmRiZC1zcWxpdGUtcGVybF8xLjU0LmJiCmluZGV4IDBiMjdiNWMuLmM3MmU1MzYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJkYi9saWJkYmQtc3FsaXRlLXBlcmxfMS41NC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZGIvbGliZGJkLXNxbGl0ZS1wZXJsXzEuNTQuYmIKQEAgLTI1LDYgKzI1LDggQEAKIFNSQ19VUklbbWQ1c3VtXSA9ICI4ZjgzNWRkYWNiOWE0YTkyYTUyYmJlMmQyNGQxOGE4ZSIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICIzOTI5YTZkYmQ4ZDcxNjMwZjBjYjU3Zjg1ZGNlZjk1ODhjZDdhYzRjOWZhMTJkYjc5ZGY3N2I5ZDNhNGQ3MjY5IgogCitVUFNUUkVBTV9DSEVDS19SRUdFWCA9ICJEQkRcLVNRTGl0ZVwtKD9QPHB2ZXI+KFxkK1wuXGQrKSkoPyFfXGQrKS50YXIiCisKIFMgPSAiJHtXT1JLRElSfS9EQkQtU1FMaXRlLSR7UFZ9IgogCiBpbmhlcml0IGNwYW4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJlbmNvZGUvbGliZW5jb2RlLXBlcmxfMi44My5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJlbmNvZGUvbGliZW5jb2RlLXBlcmxfMi44My5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWU4YzY3ZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZW5jb2RlL2xpYmVuY29kZS1wZXJsXzIuODMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi1TVU1NQVJZID0gIkVuY29kZSAtIGNoYXJhY3RlciBlbmNvZGluZ3MiCi1ERVNDUklQVElPTiA9ICJUaGUgXCJFbmNvZGVcIiBtb2R1bGUgcHJvdmlkZXMgdGhlIGludGVyZmFjZXMgYmV0d2VlbiBcCi1QZXJsJ3Mgc3RyaW5ncyBhbmQgdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbS4gIFBlcmwgc3RyaW5ncyBhcmUgc2VxdWVuY2VzIFwKLW9mIGNoYXJhY3RlcnMuIgotCi1BVVRIT1IgPSAiRGFuIEtvZ2FpIDxkYW5rb2dhaStjcGFuQGdtYWlsLmNvbT4iCi1IT01FUEFHRSA9ICJodHRwczovL21ldGFjcGFuLm9yZy9yZWxlYXNlL0VuY29kZSIKLVNFQ1RJT04gPSAibGliIgotTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL01FVEEuanNvbjttZDU9ZmRiZWJjODJlOTI1ZDhhY2JjZTQyY2ZhZDEzMWM0ZDEiCi0KLVNSQ19VUkkgPSAiJHtDUEFOX01JUlJPUn0vYXV0aG9ycy9pZC9EL0RBL0RBTktPR0FJL0VuY29kZS0ke1BWfS50YXIuZ3oiCi1TUkNfVVJJW21kNXN1bV0gPSAiMGQzZjU5ZThlYTcwNDQ5NzY0N2VkZWQ2NjU5MTkwNTMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWQzYTkwZTMwYWFiZTc4ZGZjZjVlODE2ZmZiMWRhMWUzMzQ3NTg5MmRiZDAwNzUzMjAzMTVjZGNlNTY4Mjk4OCIKLQotUyA9ICIke1dPUktESVJ9L0VuY29kZS0ke1BWfSIKLQotaW5oZXJpdCBjcGFuCi0KLVJERVBFTkRTXyR7UE59ICs9ICIgcGVybC1tb2R1bGUtYnl0ZXMgXAotICAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1jb25zdGFudCBcCi0gICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLXhzbG9hZGVyIFwKLSIKLQotUlBST1ZJREVTXyR7UE59ICs9ICJsaWJlbmNvZGUtYWxpYXMtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1ieXRlLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtY2prY29uc3RhbnRzLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtY24tcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1jbi1oei1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWNvbmZpZy1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWViY2RpYy1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWVuY29kZXItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1lbmNvZGluZy1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWdzbTAzMzgtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1ndWVzcy1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWpwLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtanAtaDJ6LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtanAtamlzNy1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWtyLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUta3ItMjAyMl9rci1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLW1pbWUtaGVhZGVyLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtbWltZS1uYW1lLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtc3ltYm9sLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtdHctcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS11bmljb2RlLS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLXVuaWNvZGUtdXRmNy1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RpbmctcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1pbnRlcm5hbC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLW1pbWUtaGVhZGVyLWlzb18yMDIyX2pwLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtdXRmOC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLXV0Zl9lYmNkaWMtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgICIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZW5jb2RlL2xpYmVuY29kZS1wZXJsXzIuOTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZW5jb2RlL2xpYmVuY29kZS1wZXJsXzIuOTQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTg2MWM1NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJlbmNvZGUvbGliZW5jb2RlLXBlcmxfMi45NC5iYgpAQCAtMCwwICsxLDY4IEBACisjIE5PVEU6CisjICAgIFlvdSBzaG91bGQgdXNlIHBlcmwtbW9kdWxlLWVuY29kZSByYXRoZXIgdGhhbiB0aGlzIHBhY2thZ2UKKyMgICAgdW5sZXNzIHlvdSBzcGVjaWZpY2FsbHkgbmVlZCBhIHZlcnNpb24gbmV3ZXIgdGhhbiB3aGF0IGlzCisjICAgIHByb3ZpZGVkIGJ5IHBlcmwuCisKK1NVTU1BUlkgPSAiRW5jb2RlIC0gY2hhcmFjdGVyIGVuY29kaW5ncyIKK0RFU0NSSVBUSU9OID0gIlRoZSBcIkVuY29kZVwiIG1vZHVsZSBwcm92aWRlcyB0aGUgaW50ZXJmYWNlcyBiZXR3ZWVuIFwKK1BlcmwncyBzdHJpbmdzIGFuZCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtLiAgUGVybCBzdHJpbmdzIGFyZSBzZXF1ZW5jZXMgXAorb2YgY2hhcmFjdGVycy4iCisKK0FVVEhPUiA9ICJEYW4gS29nYWkgPGRhbmtvZ2FpK2NwYW5AZ21haWwuY29tPiIKK0hPTUVQQUdFID0gImh0dHBzOi8vbWV0YWNwYW4ub3JnL3JlbGVhc2UvRW5jb2RlIgorU0VDVElPTiA9ICJsaWIiCitMSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTUVUQS5qc29uO21kNT1kOGU5MDk0NDdiOTgzNTMyYjJiNDYwYzgzMGU3YTdlNCIKKworU1JDX1VSSSA9ICIke0NQQU5fTUlSUk9SfS9hdXRob3JzL2lkL0QvREEvREFOS09HQUkvRW5jb2RlLSR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJmOTk1ZTBlYjllNTJkMDFlZDU3YWJlODM1YmYzY2NiNiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJhY2IzYTRhZjVlM2VlMzhmOTRkZThiYWE3NDU0ZTBiODM2YTA2NDllN2FjNDE4MGYyOGRmY2E0MzlhZDYwY2ZmIgorCitVUFNUUkVBTV9DSEVDS19SRUdFWCA9ICJFbmNvZGVcLSg/UDxwdmVyPihcZCtcLlxkKykpKD8hX1xkKykudGFyIgorCitTID0gIiR7V09SS0RJUn0vRW5jb2RlLSR7UFZ9IgorCitpbmhlcml0IGNwYW4KKworIyAgZmlsZSAvdXNyL2Jpbi9lbmMyeHMgZnJvbSBpbnN0YWxsIG9mIHBlcmwtbWlzYy01LjI0LjEtcjAuaTU4NiBjb25mbGljdHMgd2l0aCBmaWxlIGZyb20gcGFja2FnZSBsaWJlbmNvZGUtcGVybC0yLjk0LXIwLmk1ODYKKyMgIGZpbGUgL3Vzci9iaW4vZW5jZ3Vlc3MgZnJvbSBpbnN0YWxsIG9mIHBlcmwtbWlzYy01LjI0LjEtcjAuaTU4NiBjb25mbGljdHMgd2l0aCBmaWxlIGZyb20gcGFja2FnZSBsaWJlbmNvZGUtcGVybC0yLjk0LXIwLmk1ODYKKyMgIGZpbGUgL3Vzci9iaW4vcGljb252IGZyb20gaW5zdGFsbCBvZiBwZXJsLW1pc2MtNS4yNC4xLXIwLmk1ODYgY29uZmxpY3RzIHdpdGggZmlsZSBmcm9tIHBhY2thZ2UgbGliZW5jb2RlLXBlcmwtMi45NC1yMC5pNTg2CitSQ09ORkxJQ1RTXyR7UE59ID0gInBlcmwtbWlzYyIKKworUkRFUEVORFNfJHtQTn0gKz0gIiBwZXJsLW1vZHVsZS1ieXRlcyBcCisgICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWNvbnN0YW50IFwKKyAgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtcGFyZW50IFwKKyAgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtc3RvcmFibGUgXAorICAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS14c2xvYWRlciBcCisiCisKK1JQUk9WSURFU18ke1BOfSArPSAibGliZW5jb2RlLWFsaWFzLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtYnl0ZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWNqa2NvbnN0YW50cy1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWNuLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtY24taHotcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1jb25maWctcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1lYmNkaWMtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1lbmNvZGVyLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtZW5jb2RpbmctcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1nc20wMzM4LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtZ3Vlc3MtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1qcC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWpwLWgyei1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWpwLWppczctcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1rci1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWtyLTIwMjJfa3ItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1taW1lLWhlYWRlci1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLW1pbWUtbmFtZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLXN5bWJvbC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLXR3LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtdW5pY29kZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLXVuaWNvZGUtdXRmNy1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RpbmctcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1pbnRlcm5hbC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLW1pbWUtaGVhZGVyLWlzb18yMDIyX2pwLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtdXRmOC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLXV0Zl9lYmNkaWMtcGVybCBcCisgICAgICAgICAgICAgICAgICAgICIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZXh0dXRpbHMvbGliZXh0dXRpbHMtY3BwZ3Vlc3MtcGVybF8wLjA5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmV4dHV0aWxzL2xpYmV4dHV0aWxzLWNwcGd1ZXNzLXBlcmxfMC4wOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDEzY2IwMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZXh0dXRpbHMvbGliZXh0dXRpbHMtY3BwZ3Vlc3MtcGVybF8wLjA5LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotU1VNTUFSWSA9ICJFeHRVdGlsczo6Q3BwR3Vlc3MgLSBndWVzcyBDKysgY29tcGlsZXIgYW5kIGZsYWdzIgotREVTQ1JJUFRJT04gPSAiRXh0VXRpbHM6OkNwcEd1ZXNzIGF0dGVtcHRzIHRvIGd1ZXNzIHRoZSBzeXN0ZW0ncyBDKysgXAotY29tcGlsZXIgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIEMgY29tcGlsZXIgdGhhdCB5b3VyIHBlcmwgd2FzIGJ1aWx0IFwKLXdpdGguIFwKLUl0IGNhbiBnZW5lcmF0ZSB0aGUgbmVjZXNzYXJ5IG9wdGlvbnMgdG8gdGhlIE1vZHVsZTo6QnVpbGQgY29uc3RydWN0b3Igb3IgXAotdG8gRXh0VXRpbHM6Ok1ha2VNYWtlcidzIFdyaXRlTWFrZWZpbGUgZnVuY3Rpb24uIgotU0VDVElPTiA9ICJsaWJzIgotCi1IT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL35zbXVlbGxlci9FeHRVdGlscy1DcHBHdWVzcy8iCi0KLUxJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUU7YmVnaW5saW5lPTgxO2VuZGxpbmU9ODQ7bWQ1PTg0YzAzOTBiOTBlYThjNjcwMmNlNjU5YjY3YmVkNjk5IgotCi1TUkNfVVJJID0gIiR7Q1BBTl9NSVJST1J9L2F1dGhvcnMvaWQvRS9FVC9FVEovRXh0VXRpbHMtQ3BwR3Vlc3MtJHtQVn0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gImY4YWRhMzhlZTRhZDg2YTRmMWUyMGQ4NTI1Y2UwYzk5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ4NjI1MTk1YTg4YzBmMmRkYzM3YmJkN2EwNjM0NmFhNjhmZmI2OTQ4YmE3OGRhM2FlYTQ3YzBkYjI1NDBmNjUiCi0KLVMgPSAiJHtXT1JLRElSfS9FeHRVdGlscy1DcHBHdWVzcy0ke1BWfSIKLQotaW5oZXJpdCBjcGFuCi0KLWRvX2luc3RhbGwgKCkgewotICAgICAgICBjcGFuX2RvX2luc3RhbGwKLX0KLQotUkRFUEVORFNfJHtQTn0gPSAiIGxpYmNhcHR1cmUtdGlueS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1zY2FsYXItdXRpbCBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtaW8tZmlsZSBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZXh0dXRpbHMtbWFrZW1ha2VyIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1maWxlLXNwZWMgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWV4cG9ydGVyIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1jYXJwIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1maWxlLXRlbXAgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWxpYiBcCi0iCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmV4dHV0aWxzL2xpYmV4dHV0aWxzLWNwcGd1ZXNzLXBlcmxfMC4xMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJleHR1dGlscy9saWJleHR1dGlscy1jcHBndWVzcy1wZXJsXzAuMTIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTlkZjZmMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJleHR1dGlscy9saWJleHR1dGlscy1jcHBndWVzcy1wZXJsXzAuMTIuYmIKQEAgLTAsMCArMSwzNyBAQAorU1VNTUFSWSA9ICJFeHRVdGlsczo6Q3BwR3Vlc3MgLSBndWVzcyBDKysgY29tcGlsZXIgYW5kIGZsYWdzIgorREVTQ1JJUFRJT04gPSAiRXh0VXRpbHM6OkNwcEd1ZXNzIGF0dGVtcHRzIHRvIGd1ZXNzIHRoZSBzeXN0ZW0ncyBDKysgXAorY29tcGlsZXIgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIEMgY29tcGlsZXIgdGhhdCB5b3VyIHBlcmwgd2FzIGJ1aWx0IFwKK3dpdGguIFwKK0l0IGNhbiBnZW5lcmF0ZSB0aGUgbmVjZXNzYXJ5IG9wdGlvbnMgdG8gdGhlIE1vZHVsZTo6QnVpbGQgY29uc3RydWN0b3Igb3IgXAordG8gRXh0VXRpbHM6Ok1ha2VNYWtlcidzIFdyaXRlTWFrZWZpbGUgZnVuY3Rpb24uIgorU0VDVElPTiA9ICJsaWJzIgorCitIT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL35zbXVlbGxlci9FeHRVdGlscy1DcHBHdWVzcy8iCisKK0xJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUU7YmVnaW5saW5lPTgxO2VuZGxpbmU9ODQ7bWQ1PTg0YzAzOTBiOTBlYThjNjcwMmNlNjU5YjY3YmVkNjk5IgorCitTUkNfVVJJID0gIiR7Q1BBTl9NSVJST1J9L2F1dGhvcnMvaWQvRS9FVC9FVEovRXh0VXRpbHMtQ3BwR3Vlc3MtJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjI4YmU0OTA3MjU4NWIyNWRmODdlNTQxODBmNzQxYTRkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMxYzQ3YjViMTVlM2U5ZmQ1YWU3YjM1ODgxYTBmZmZkMjZhMjk4M2IyNDFlN2UzYTFiYzM0MGQ2ZDQ0NjE4NmIiCisKK1MgPSAiJHtXT1JLRElSfS9FeHRVdGlscy1DcHBHdWVzcy0ke1BWfSIKKworaW5oZXJpdCBjcGFuCisKK2RvX2luc3RhbGwgKCkgeworICAgICAgICBjcGFuX2RvX2luc3RhbGwKK30KKworUkRFUEVORFNfJHtQTn0gPSAiIGxpYmNhcHR1cmUtdGlueS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1zY2FsYXItdXRpbCBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtaW8tZmlsZSBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZXh0dXRpbHMtbWFrZW1ha2VyIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1maWxlLXNwZWMgXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWV4cG9ydGVyIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1jYXJwIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1maWxlLXRlbXAgXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWxpYiBcCisiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmlvL2xpYmlvLXNvY2tldC1zc2wtcGVybF8xLjk5Ny5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJpby9saWJpby1zb2NrZXQtc3NsLXBlcmxfMS45OTcuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhNTc4OGEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmlvL2xpYmlvLXNvY2tldC1zc2wtcGVybF8xLjk5Ny5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLVNVTU1BUlkgPSAiUGVybCBsaWJyYXJ5IGZvciB0cmFuc3BhcmVudCBTU0wiCi1ERVNDUklQVElPTiA9ICJUaGlzIG1vZHVsZSBpcyBhIHRydWUgZHJvcC1pbiByZXBsYWNlbWVudCBmb3IgSU86OlNvY2tldDo6SU5FVCB0aGF0IFwKLXVzZXMgU1NMIHRvIGVuY3J5cHQgZGF0YSBiZWZvcmUgaXQgaXMgdHJhbnNmZXJyZWQgdG8gYSByZW1vdGUgc2VydmVyIFwKLW9yIGNsaWVudC4gSU86OlNvY2tldDo6U1NMIHN1cHBvcnRzIGFsbCB0aGUgZXh0cmEgZmVhdHVyZXMgdGhhdCBvbmUgXAotbmVlZHMgdG8gd3JpdGUgYSBmdWxsLWZlYXR1cmVkIFNTTCBjbGllbnQgb3Igc2VydmVyIGFwcGxpY2F0aW9uOiBcCi1tdWx0aXBsZSBTU0wgY29udGV4dHMsIGNpcGhlciBzZWxlY3Rpb24sIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiwgYW5kIFwKLVNTTCB2ZXJzaW9uIHNlbGVjdGlvbi4gQXMgYW4gZXh0cmEgYm9udXMsIGl0IHdvcmtzIHBlcmZlY3RseSB3aXRoIFwKLW1vZF9wZXJsLiIKLUhPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvZGlzdC9JTy1Tb2NrZXQtU1NMLyIKLVNFQ1RJT04gPSAibGlicyIKLQotTElDRU5TRSA9ICJBcnRpc3RpYy0xLjB8R1BMdjErIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTUVUQS55bWw7YmVnaW5saW5lPTExO2VuZGxpbmU9MTE7bWQ1PTk2M2NlMjgyMjgzNDc4NzVhY2U2ODJkZTU2ZWVmOGU4IgotCi1SREVQRU5EU18ke1BOfSArPSAicGVybC1tb2R1bGUtc2NhbGFyLXV0aWwgbGlibmV0LXNzbGVheS1wZXJsIgotCi1TUkNfVVJJID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvQ1BBTi9hdXRob3JzL2lkL1MvU1UvU1VMTFIvSU8tU29ja2V0LVNTTC0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKLSAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiMmE2MjY4YmI0MmRhODFlNjlkMWMxZmViMmZjYjBlZWEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYWNkYjY3YjViNjNhZWE1YjdlNzBjM2U0YzcwYTE2MTI4ODEwMzI5NTkyYjYzNzUzYTM4Yzc5NGFmZjc2YTFkZCIKLQotUyA9ICIke1dPUktESVJ9L0lPLVNvY2tldC1TU0wtJHtQVn0iCi0KLWluaGVyaXQgY3BhbiBwdGVzdAotCi1kb19pbnN0YWxsX2FwcGVuZCAoKSB7Ci0gICAgbWtkaXIgLXAgJHtEfSR7ZG9jZGlyfS8ke1BOfS8KLSAgICBjcCAke1N9L0JVR1MgJHtEfSR7ZG9jZGlyfS8ke1BOfS8KLSAgICBjcCAke1N9L0NoYW5nZXMgJHtEfSR7ZG9jZGlyfS8ke1BOfS8KLSAgICBjcCAke1N9L1JFQURNRSAke0R9JHtkb2NkaXJ9LyR7UE59LwotICAgIGNwIC1wUlAgJHtTfS9kb2NzICR7RH0ke2RvY2Rpcn0vJHtQTn0vCi0gICAgY3AgLXBSUCAke1N9L2NlcnRzICR7RH0ke2RvY2Rpcn0vJHtQTn0vCi0gICAgY3AgLXBSUCAke1N9L2V4YW1wbGUgJHtEfSR7ZG9jZGlyfS8ke1BOfS8KLSAgICBjcCAtcFJQICR7U30vdXRpbCAke0R9JHtkb2NkaXJ9LyR7UE59LwotfQotCi1kb19pbnN0YWxsX3B0ZXN0ICgpIHsKLSAgICBjcCAtciAke0J9L3QgJHtEfSR7UFRFU1RfUEFUSH0KLSAgICBjcCAtciAke0J9L2NlcnRzICR7RH0ke1BURVNUX1BBVEh9Ci19Ci0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmlvL2xpYmlvLXNvY2tldC1zc2wtcGVybF8yLjA1NC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJpby9saWJpby1zb2NrZXQtc3NsLXBlcmxfMi4wNTQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWE3OGJjNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJpby9saWJpby1zb2NrZXQtc3NsLXBlcmxfMi4wNTQuYmIKQEAgLTAsMCArMSw0NyBAQAorU1VNTUFSWSA9ICJQZXJsIGxpYnJhcnkgZm9yIHRyYW5zcGFyZW50IFNTTCIKK0RFU0NSSVBUSU9OID0gIlRoaXMgbW9kdWxlIGlzIGEgdHJ1ZSBkcm9wLWluIHJlcGxhY2VtZW50IGZvciBJTzo6U29ja2V0OjpJTkVUIHRoYXQgXAordXNlcyBTU0wgdG8gZW5jcnlwdCBkYXRhIGJlZm9yZSBpdCBpcyB0cmFuc2ZlcnJlZCB0byBhIHJlbW90ZSBzZXJ2ZXIgXAorb3IgY2xpZW50LiBJTzo6U29ja2V0OjpTU0wgc3VwcG9ydHMgYWxsIHRoZSBleHRyYSBmZWF0dXJlcyB0aGF0IG9uZSBcCituZWVkcyB0byB3cml0ZSBhIGZ1bGwtZmVhdHVyZWQgU1NMIGNsaWVudCBvciBzZXJ2ZXIgYXBwbGljYXRpb246IFwKK211bHRpcGxlIFNTTCBjb250ZXh0cywgY2lwaGVyIHNlbGVjdGlvbiwgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uLCBhbmQgXAorU1NMIHZlcnNpb24gc2VsZWN0aW9uLiBBcyBhbiBleHRyYSBib251cywgaXQgd29ya3MgcGVyZmVjdGx5IHdpdGggXAorbW9kX3BlcmwuIgorSE9NRVBBR0UgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9kaXN0L0lPLVNvY2tldC1TU0wvIgorU0VDVElPTiA9ICJsaWJzIgorCitMSUNFTlNFID0gIkFydGlzdGljLTEuMHxHUEx2MSsiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9NRVRBLnltbDtiZWdpbmxpbmU9MTE7ZW5kbGluZT0xMTttZDU9OTYzY2UyODIyODM0Nzg3NWFjZTY4MmRlNTZlZWY4ZTgiCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgbGlibmV0LXNzbGVheS1wZXJsIFwKKyAgICBwZXJsLW1vZHVsZS1hdXRvbG9hZGVyIFwKKyAgICBwZXJsLW1vZHVsZS1zY2FsYXItdXRpbCBcCisgICAgcGVybC1tb2R1bGUtaW8tc29ja2V0IFwKKyIKKworU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9TL1NVL1NVTExSL0lPLVNvY2tldC1TU0wtJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCisgICAgICAgICAgIgorU1JDX1VSSVttZDVzdW1dID0gImUxYjQxMmUyOGQxMDdjNzE2ZTdjYTYzN2UyYjdmOGJkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjAyZWEwNGU5YTMzNmE3ZDNjYTlhYTYwNGMwYzViNWFhZjNlZmE1MTNjZWZlY2ZjNzNjYzc5Y2VlYjUxMzFlNGIiCisKK1MgPSAiJHtXT1JLRElSfS9JTy1Tb2NrZXQtU1NMLSR7UFZ9IgorCitpbmhlcml0IGNwYW4gcHRlc3QKKworZG9faW5zdGFsbF9hcHBlbmQgKCkgeworICAgIG1rZGlyIC1wICR7RH0ke2RvY2Rpcn0vJHtQTn0vCisgICAgY3AgJHtTfS9CVUdTICR7RH0ke2RvY2Rpcn0vJHtQTn0vCisgICAgY3AgJHtTfS9DaGFuZ2VzICR7RH0ke2RvY2Rpcn0vJHtQTn0vCisgICAgY3AgJHtTfS9SRUFETUUgJHtEfSR7ZG9jZGlyfS8ke1BOfS8KKyAgICBjcCAtcFJQICR7U30vZG9jcyAke0R9JHtkb2NkaXJ9LyR7UE59LworICAgIGNwIC1wUlAgJHtTfS9jZXJ0cyAke0R9JHtkb2NkaXJ9LyR7UE59LworICAgIGNwIC1wUlAgJHtTfS9leGFtcGxlICR7RH0ke2RvY2Rpcn0vJHtQTn0vCit9CisKK2RvX2luc3RhbGxfcHRlc3QgKCkgeworICAgIGNwIC1yICR7Qn0vdCAke0R9JHtQVEVTVF9QQVRIfQorICAgIGNwIC1yICR7Qn0vY2VydHMgJHtEfSR7UFRFU1RfUEFUSH0KK30KKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibWltZS9saWJtaW1lLXR5cGVzLXBlcmxfMi4xMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtaW1lL2xpYm1pbWUtdHlwZXMtcGVybF8yLjEzLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDUxYzE2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtaW1lL2xpYm1pbWUtdHlwZXMtcGVybF8yLjEzLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotU1VNTUFSWSA9ICJNSU1FOjpUeXBlcyAtIERlZmluaXRpb24gb2YgTUlNRSB0eXBlcyIKLURFU0NSSVBUSU9OID0gIk1JTUUgdHlwZXMgYXJlIHVzZWQgaW4gTUlNRSBjb21wbGlhbnQgbGluZXMsIGZvciBpbnN0YW5jZSBcCi1hcyBwYXJ0IG9mIGUtbWFpbCBhbmQgSFRUUCB0cmFmZmljLCB0byBpbmRpY2F0ZSB0aGUgdHlwZSBvZiBjb250ZW50IHdoaWNoIFwKLWlzIHRyYW5zbWl0dGVkLiBTb21ldGltZXMgcmVhbCBrbm93bGVkZ2UgYWJvdXQgYSBtaW1lLXR5cGUgaXMgbmVlZC5cCi1cblwKLVRoaXMgbW9kdWxlIG1haW50YWlucyBhIHNldCBvZiBNSU1FOjpUeXBlIG9iamVjdHMsIHdoaWNoIGVhY2ggZGVzY3JpYmUgXAotb25lIGtub3duIG1pbWUgdHlwZS4iCi1IT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL35tYXJrb3YvTUlNRS1UeXBlcy0ke1BWfSIKLVNFQ1RJT04gPSAibGlicmFyaWVzIgotCi1MSUNFTlNFID0gIkFydGlzdGljLTEuMHxHUEx2MSsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9NRVRBLnltbDtiZWdpbmxpbmU9MTE7ZW5kbGluZT0xMTttZDU9OTYzY2UyODIyODM0Nzg3NWFjZTY4MmRlNTZlZWY4ZTgiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvTS9NQS9NQVJLT1YvTUlNRS1UeXBlcy0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKLSAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiZjI4OTJhZTllNmVhNjYwYTU4NzQ2Njk5YzM5MjQ4MTciCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTljMzM3NjM1N2JiZTIyY2M4YjZjNzhmNTYwYWExOGQ4MTYyMTI4NzY5NWNkNjI5MDA4YTZjNGU2NmI3N2JmOCIKLQotUyA9ICIke1dPUktESVJ9L01JTUUtVHlwZXMtJHtQVn0iCi0KLWluaGVyaXQgY3BhbiBwdGVzdAotCi1kb19pbnN0YWxsX3B0ZXN0ICgpIHsKLSAgICBjcCAtciAke0J9L3QgJHtEfSR7UFRFU1RfUEFUSH0KLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtaW1lL2xpYm1pbWUtdHlwZXMtcGVybF8yLjE3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1pbWUvbGlibWltZS10eXBlcy1wZXJsXzIuMTcuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE0NzUzMAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtaW1lL2xpYm1pbWUtdHlwZXMtcGVybF8yLjE3LmJiCkBAIC0wLDAgKzEsNDIgQEAKK1NVTU1BUlkgPSAiTUlNRTo6VHlwZXMgLSBEZWZpbml0aW9uIG9mIE1JTUUgdHlwZXMiCitERVNDUklQVElPTiA9ICJNSU1FIHR5cGVzIGFyZSB1c2VkIGluIE1JTUUgY29tcGxpYW50IGxpbmVzLCBmb3IgaW5zdGFuY2UgXAorYXMgcGFydCBvZiBlLW1haWwgYW5kIEhUVFAgdHJhZmZpYywgdG8gaW5kaWNhdGUgdGhlIHR5cGUgb2YgY29udGVudCB3aGljaCBcCitpcyB0cmFuc21pdHRlZC4gU29tZXRpbWVzIHJlYWwga25vd2xlZGdlIGFib3V0IGEgbWltZS10eXBlIGlzIG5lZWQuXAorXG5cCitUaGlzIG1vZHVsZSBtYWludGFpbnMgYSBzZXQgb2YgTUlNRTo6VHlwZSBvYmplY3RzLCB3aGljaCBlYWNoIGRlc2NyaWJlIFwKK29uZSBrbm93biBtaW1lIHR5cGUuIgorSE9NRVBBR0UgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9+bWFya292L01JTUUtVHlwZXMtJHtQVn0iCitTRUNUSU9OID0gImxpYnJhcmllcyIKKworTElDRU5TRSA9ICJBcnRpc3RpYy0xLjB8R1BMdjErIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTUVUQS55bWw7YmVnaW5saW5lPTExO2VuZGxpbmU9MTE7bWQ1PTk2M2NlMjgyMjgzNDc4NzVhY2U2ODJkZTU2ZWVmOGU4IgorCitTUkNfVVJJID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvQ1BBTi9hdXRob3JzL2lkL00vTUEvTUFSS09WL01JTUUtVHlwZXMtJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCisgICAgICAgICAgIgorU1JDX1VSSVttZDVzdW1dID0gIjZmMTQ0MWFkZGFiOTQ3MTM3YmFjOTJjMzc5YTQ3YmEzIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImUwNGVkN2Q0MmYxZmYzMTUwYTMwMzgwNWYyNjg5YzI4ZjgwYjkyYzUxMTc4NGQ0NjQxY2I3ZjA0MGQzZThmZjYiCisKK1MgPSAiJHtXT1JLRElSfS9NSU1FLVR5cGVzLSR7UFZ9IgorCitpbmhlcml0IGNwYW4gcHRlc3QKKworUkRFUEVORFNfJHtQTn0gPSAiXAorICAgIHBlcmwtbW9kdWxlLWJhc2UgXAorICAgIHBlcmwtbW9kdWxlLWZpbGUtYmFzZW5hbWUgXAorICAgIHBlcmwtbW9kdWxlLWZpbGUtc3BlYyBcCisgICAgcGVybC1tb2R1bGUtb3ZlcmxvYWQgXAorIgorCitSREVQRU5EU18ke1BOfS1wdGVzdCA9ICJwZXJsLW1vZHVsZS1saWIgcGVybC1tb2R1bGUtdGVzdC1tb3JlIgorI1JTVUdHRVNUU18ke1BOfS1wdGVzdCA9ICJsaWJtb2pvLWJhc2UtcGVybCIKKworZG9faW5zdGFsbCAoKSB7CisgICAgY3Bhbl9kb19pbnN0YWxsCisgICAgaW5zdGFsbCAtZCAke0R9JHtiaW5kaXJ9CisgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9iaW4vY29sbGVjdC10eXBlcyAke0R9JHtiaW5kaXJ9L2NvbGxlY3QtdHlwZXMKK30KKworZG9faW5zdGFsbF9wdGVzdCAoKSB7CisgICAgY3AgLXIgJHtCfS90ICR7RH0ke1BURVNUX1BBVEh9Cit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibW9kdWxlL2xpYm1vZHVsZS1wbHVnZ2FibGUtcGVybF81LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibW9kdWxlL2xpYm1vZHVsZS1wbHVnZ2FibGUtcGVybF81LjIuYmIKaW5kZXggYzczYTE1YS4uYWVkNjVkMyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1vZHVsZS9saWJtb2R1bGUtcGx1Z2dhYmxlLXBlcmxfNS4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtb2R1bGUvbGlibW9kdWxlLXBsdWdnYWJsZS1wZXJsXzUuMi5iYgpAQCAtMTcsOSArMTcsMTQgQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRTtiZWdpbmxpbmU9MzIyO2VuZGxpbmU9MzI1O21kNT0wODY0NTBjZTAxMGY2ZmRhMjVkYjBiMzhmY2M0MTA4NiIKIAogU1JDTkFNRSA9ICJNb2R1bGUtUGx1Z2dhYmxlIgotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbW90by10aW1vLyR7U1JDTkFNRX0vYXJjaGl2ZS8ke1BWfS50YXIuZ3oiCi1TUkNfVVJJW21kNXN1bV0gPSAiZTMyNDc1ZDZmZjU4NDNmNzM4Y2VkYWNkM2I3YTJjZGIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNThjNjIyOTJlZWE2ZDA2OTU5ZWJhMWI5NzU5ODY1MDgxMzIxMTI2NTQwMzI0MmQ1N2VmYjJmNjA1Yzk2MDU5ZiIKK1NSQ19VUkkgPSAiJHtDUEFOX01JUlJPUn0vYXV0aG9ycy9pZC9TL1NJL1NJTU9OVy8ke1NSQ05BTUV9LSR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICI4N2NlMjk3MTY2MmVmZDBiNjlhODFiYjRkYzllYTc2YyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJiM2YyYWQ0NWU0ZmQxMGIzZmI5MGQ5MTJkNzhkOGI3OTVhYjI5NTQ4MGRiNTZkYzY0ZTg2YjlmYTc1YzVhNmRmIgorCitQUiA9ICJyMSIKKworVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAiTW9kdWxlXC1QbHVnZ2FibGVcLSg/UDxwdmVyPihcZCtcLlxkKykpIgorVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHBzOi8vbWV0YWNwYW4ub3JnL3JlbGVhc2UvJHtTUkNOQU1FfSIKIAogUyA9ICIke1dPUktESVJ9LyR7U1JDTkFNRX0tJHtQVn0iCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtb2R1bGUvbGlibW9kdWxlLXJ1bnRpbWUtcGVybF8wLjAxNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtb2R1bGUvbGlibW9kdWxlLXJ1bnRpbWUtcGVybF8wLjAxNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjkyODQyYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibW9kdWxlL2xpYm1vZHVsZS1ydW50aW1lLXBlcmxfMC4wMTUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi1TVU1NQVJZID0gIk1vZHVsZTo6UnVudGltZSAtIHJ1bnRpbWUgbW9kdWxlIGhhbmRsaW5nIgotREVTQ1JJUFRJT04gPSAiVGhlIGZ1bmN0aW9ucyBleHBvcnRlZCBieSB0aGlzIG1vZHVsZSBkZWFsIHdpdGggcnVudGltZSBcCi1oYW5kbGluZyBvZiBQZXJsIG1vZHVsZXMsIHdoaWNoIGFyZSBub3JtYWxseSBoYW5kbGVkIGF0IGNvbXBpbGUgdGltZS4gVGhpcyBcCi1tb2R1bGUgYXZvaWRzIHVzaW5nIGFueSBvdGhlciBtb2R1bGVzLCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIGxvdy1sZXZlbCBcCi1pbmZyYXN0cnVjdHVyZS4gXAotVGhlIHBhcnRzIG9mIHRoaXMgbW9kdWxlIHRoYXQgd29yayB3aXRoIG1vZHVsZSBuYW1lcyBhcHBseSB0aGUgc2FtZSBzeW50YXggXAotdGhhdCBpcyB1c2VkIGZvciBiYXJld29yZHMgaW4gUGVybCBzb3VyY2UuIEluIHByaW5jaXBsZSB0aGlzIHN5bnRheCBjYW4gdmFyeSBcCi1iZXR3ZWVuIHZlcnNpb25zIG9mIFBlcmwsIGFuZCB0aGlzIG1vZHVsZSBhcHBsaWVzIHRoZSBzeW50YXggb2YgdGhlIFBlcmwgb24gXAotd2hpY2ggaXQgaXMgcnVubmluZy4gSW4gcHJhY3RpY2UgdGhlIHVzYWJsZSBzeW50YXggaGFzbid0IGNoYW5nZWQgeWV0LCBidXQgXAotdGhlcmUncyBhIGdvb2QgY2hhbmNlIG9mIGl0IGNoYW5naW5nIGluIFBlcmwgNS4xOC4gXAotVGhlIGZ1bmN0aW9ucyBvZiB0aGlzIG1vZHVsZSB3aG9zZSBwdXJwb3NlIGlzIHRvIGxvYWQgbW9kdWxlcyBpbmNsdWRlIFwKLXdvcmthcm91bmRzIGZvciB0aHJlZSBvbGQgUGVybCBjb3JlIGJ1Z3MgcmVnYXJkaW5nIHJlcXVpcmUuIFRoZXNlIHdvcmthcm91bmRzIFwKLWFyZSBhcHBsaWVkIG9uIGFueSBQZXJsIHZlcnNpb24gd2hlcmUgdGhlIGJ1Z3MgZXhpc3QsIGV4Y2VwdCBmb3IgYSBjYXNlIHdoZXJlIFwKLW9uZSBvZiB0aGUgYnVncyBjYW5ub3QgYmUgYWRlcXVhdGVseSB3b3JrZWQgYXJvdW5kIGluIHB1cmUgUGVybC4iCi1TRUNUSU9OID0gImxpYnMiCi0KLUhPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvfnplZnJhbS9Nb2R1bGUtUnVudGltZS8iCi0KLUxJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUU7YmVnaW5saW5lPTQ1O2VuZGxpbmU9NDY7bWQ1PTYyZTI0YTkzMzQyZmVkZTcyMjFkNjYzMzVjNzE2ZjM0IgotCi1TUkNOQU1FID0gIm1vZHVsZS1ydW50aW1lIgotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbW90by10aW1vLyR7U1JDTkFNRX0vYXJjaGl2ZS8ke1BWfS50YXIuZ3oiCi1TUkNfVVJJW21kNXN1bV0gPSAiYWQ2Y2ExNzljOTc4YWEwMmFjOGFhMjkyNDRlZjliZWIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTllZmZhODJiM2Y2OTg2ZDI4ZGU2MTU0YThmMjQyODE1NzY5MTAwNGQ5NTFmOTM2YTgxZTg1MWY0ZGJjYjA0NSIKLQotUyA9ICIke1dPUktESVJ9LyR7U1JDTkFNRX0tJHtQVn0iCi0KLWluaGVyaXQgY3BhbgotCi1SREVQRU5EU18ke1BOfSA9ICIgcGVybC1tb2R1bGUtdGVzdC1tb3JlIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1zdHJpY3QgXAotIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtb2R1bGUvbGlibW9kdWxlLXJ1bnRpbWUtcGVybF8wLjAxNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtb2R1bGUvbGlibW9kdWxlLXJ1bnRpbWUtcGVybF8wLjAxNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWYwZjcwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1vZHVsZS9saWJtb2R1bGUtcnVudGltZS1wZXJsXzAuMDE2LmJiCkBAIC0wLDAgKzEsMzcgQEAKK1NVTU1BUlkgPSAiTW9kdWxlOjpSdW50aW1lIC0gcnVudGltZSBtb2R1bGUgaGFuZGxpbmciCitERVNDUklQVElPTiA9ICJUaGUgZnVuY3Rpb25zIGV4cG9ydGVkIGJ5IHRoaXMgbW9kdWxlIGRlYWwgd2l0aCBydW50aW1lIFwKK2hhbmRsaW5nIG9mIFBlcmwgbW9kdWxlcywgd2hpY2ggYXJlIG5vcm1hbGx5IGhhbmRsZWQgYXQgY29tcGlsZSB0aW1lLiBUaGlzIFwKK21vZHVsZSBhdm9pZHMgdXNpbmcgYW55IG90aGVyIG1vZHVsZXMsIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgaW4gbG93LWxldmVsIFwKK2luZnJhc3RydWN0dXJlLiBcCitUaGUgcGFydHMgb2YgdGhpcyBtb2R1bGUgdGhhdCB3b3JrIHdpdGggbW9kdWxlIG5hbWVzIGFwcGx5IHRoZSBzYW1lIHN5bnRheCBcCit0aGF0IGlzIHVzZWQgZm9yIGJhcmV3b3JkcyBpbiBQZXJsIHNvdXJjZS4gSW4gcHJpbmNpcGxlIHRoaXMgc3ludGF4IGNhbiB2YXJ5IFwKK2JldHdlZW4gdmVyc2lvbnMgb2YgUGVybCwgYW5kIHRoaXMgbW9kdWxlIGFwcGxpZXMgdGhlIHN5bnRheCBvZiB0aGUgUGVybCBvbiBcCit3aGljaCBpdCBpcyBydW5uaW5nLiBJbiBwcmFjdGljZSB0aGUgdXNhYmxlIHN5bnRheCBoYXNuJ3QgY2hhbmdlZCB5ZXQsIGJ1dCBcCit0aGVyZSdzIGEgZ29vZCBjaGFuY2Ugb2YgaXQgY2hhbmdpbmcgaW4gUGVybCA1LjE4LiBcCitUaGUgZnVuY3Rpb25zIG9mIHRoaXMgbW9kdWxlIHdob3NlIHB1cnBvc2UgaXMgdG8gbG9hZCBtb2R1bGVzIGluY2x1ZGUgXAord29ya2Fyb3VuZHMgZm9yIHRocmVlIG9sZCBQZXJsIGNvcmUgYnVncyByZWdhcmRpbmcgcmVxdWlyZS4gVGhlc2Ugd29ya2Fyb3VuZHMgXAorYXJlIGFwcGxpZWQgb24gYW55IFBlcmwgdmVyc2lvbiB3aGVyZSB0aGUgYnVncyBleGlzdCwgZXhjZXB0IGZvciBhIGNhc2Ugd2hlcmUgXAorb25lIG9mIHRoZSBidWdzIGNhbm5vdCBiZSBhZGVxdWF0ZWx5IHdvcmtlZCBhcm91bmQgaW4gcHVyZSBQZXJsLiIKK1NFQ1RJT04gPSAibGlicyIKKworSE9NRVBBR0UgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9+emVmcmFtL01vZHVsZS1SdW50aW1lLyIKKworTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRTtiZWdpbmxpbmU9MzY7ZW5kbGluZT00NDttZDU9OTQxNjQzNDY3MmE1Nzg1M2Q2MTgxZjNkYTkwOTQ5NjMiCisKK1NSQ05BTUUgPSAiTW9kdWxlLVJ1bnRpbWUiCitTUkNfVVJJID0gIiR7Q1BBTl9NSVJST1J9L2F1dGhvcnMvaWQvWi9aRS9aRUZSQU0vJHtTUkNOQU1FfS0ke1BWfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiZDNkNDcyMjJmYTJlM2RmY2I0NTI2ZjZjYzg0MzdiMjAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjgzMDJlYzY0NjgzMzU0N2Q0MTBiZTI4ZTA5Njc2ZGI3NTAwNmY0YWE1OGExMWYzYmRiNDRmZmU5OWYwZjAyNCIKKworVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAiTW9kdWxlXC1SdW50aW1lXC0oP1A8cHZlcj4oXGQrXC5cZCspKS50YXIiCisKK1MgPSAiJHtXT1JLRElSfS8ke1NSQ05BTUV9LSR7UFZ9IgorCitpbmhlcml0IGNwYW4KKworUkRFUEVORFNfJHtQTn0gPSAiIHBlcmwtbW9kdWxlLXRlc3QtbW9yZSBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtc3RyaWN0IFwKKyIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibW9vL2xpYm1vby1wZXJsXzIuMDAzMDAyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1vby9saWJtb28tcGVybF8yLjAwMzAwMi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTBmZTQ5Mi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibW9vL2xpYm1vby1wZXJsXzIuMDAzMDAyLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotU1VNTUFSWSA9ICJNb28gLSBNaW5pbWFsaXN0IE9iamVjdCBPcmllbnRhdGlvbiAod2l0aCBNb29zZSBjb21wYXRpYmlsaXR5KSIKLURFU0NSSVBUSU9OID0gIlRoaXMgbW9kdWxlIHVzIGFuIGV4dHJlbWVseSBsaWdodC13ZWlnaHQgc3Vic2V0IG9mIFwiTW9vc2VcIiBcCi1vcHRpbWlzZWQgZm9yIHJhcGlkIHN0YXJ0dXAgYW5kIFwicGF5IG9ubHkgZm9yIHdoYXQgeW91IHVzZVwiLiIKLQotU0VDVElPTiA9ICJsaWJzIgotCi1IT01FUEFHRSA9ICJodHRwOi8vbWV0YXBhbi5vcmcvcmVsZWFzZS9Nb28vIgotCi1MSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO2JlZ2lubGluZT03MzE7ZW5kbGluZT03NzY7bWQ1PTI3ZWZlZGQxNzVlZWFkZGJkMThmNGUzNTcyYmQ3MmE4IgotCi1TUkNfVVJJID0gIiR7Q1BBTl9NSVJST1J9L2F1dGhvcnMvaWQvSC9IQS9IQUFSRy9Nb28tJHtQVn0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gImU5ZjFmMzE1OTU1NWVjZWJjZDA2MmU5OThmMjk3YTk0IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImYzZTk3NDFlNzliYWE2M2U4OWY1YTA4NzA2Y2Q4MGQxOGMwYTVhMzdlM2Q4OTg4NDdlMDAyMzEwZTA2NTgyZjEiCi0KLVMgPSAiJHtXT1JLRElSfS9Nb28tJHtQVn0iCi0KLWluaGVyaXQgY3BhbgotCi1SREVQRU5EU18ke1BOfSA9ICIgbGliY2xhc3MtbWV0aG9kLW1vZGlmaWVycy1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICBsaWJkZXZlbC1nbG9iYWxkZXN0cnVjdGlvbi1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICBsaWJtb2R1bGUtcnVudGltZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICBsaWJyb2xlLXRpbnktcGVybCBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtY29uc3RhbnQgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWV4cG9ydGVyIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1tcm8gXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLXNjYWxhci11dGlsIFwKLSIKLQotUlBST1ZJREVTXyR7UE59ID0gIiBsaWJtZXRob2QtaW5saW5lci1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlibWV0aG9kLWdlbmVyYXRlLWFjY2Vzc29yLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJtZXRob2QtZ2VuZXJhdGUtYnVpbGRhbGwtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYm1ldGhvZC1nZW5lcmF0ZS1jb25zdHJ1Y3Rvci1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlibWV0aG9kLWdlbmVyYXRlLWRlbW9saXNoYWxsLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJtb28tcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYm1vby1oYW5kbGVtb29zZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlibW9vLWhhbmRsZW1vb3NlLWZha2VtZXRhY2xhc3MtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYm1vby1vYmplY3QtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYm1vby1yb2xlLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJzdWItZGVmZXItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnN1Yi1xdW90ZS1wZXJsIFwKLSIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibW9vL2xpYm1vby1wZXJsXzIuMDAzMDA0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1vby9saWJtb28tcGVybF8yLjAwMzAwNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjYwYWI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1vby9saWJtb28tcGVybF8yLjAwMzAwNC5iYgpAQCAtMCwwICsxLDQ0IEBACitTVU1NQVJZID0gIk1vbyAtIE1pbmltYWxpc3QgT2JqZWN0IE9yaWVudGF0aW9uICh3aXRoIE1vb3NlIGNvbXBhdGliaWxpdHkpIgorREVTQ1JJUFRJT04gPSAiVGhpcyBtb2R1bGUgdXMgYW4gZXh0cmVtZWx5IGxpZ2h0LXdlaWdodCBzdWJzZXQgb2YgXCJNb29zZVwiIFwKK29wdGltaXNlZCBmb3IgcmFwaWQgc3RhcnR1cCBhbmQgXCJwYXkgb25seSBmb3Igd2hhdCB5b3UgdXNlXCIuIgorCitTRUNUSU9OID0gImxpYnMiCisKK0hPTUVQQUdFID0gImh0dHA6Ly9tZXRhcGFuLm9yZy9yZWxlYXNlL01vby8iCisKK0xJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUU7YmVnaW5saW5lPTczMTtlbmRsaW5lPTc3NjttZDU9MjdlZmVkZDE3NWVlYWRkYmQxOGY0ZTM1NzJiZDcyYTgiCisKK1NSQ19VUkkgPSAiJHtDUEFOX01JUlJPUn0vYXV0aG9ycy9pZC9IL0hBL0hBQVJHL01vby0ke1BWfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiZDRmY2QwZjI0MDAzMzE5ODU3MWZjYzgxY2U3YzVmMTUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjhiYmI2MjVmOGU5NjNlYWJlMDVjZmY5MDQ4ZmRkNzJiZGQyNjc3NzQwNGZmMmM0MGJjNjkwZjU1OGJlOTFlMSIKKworUyA9ICIke1dPUktESVJ9L01vby0ke1BWfSIKKworaW5oZXJpdCBjcGFuCisKK1JERVBFTkRTXyR7UE59ID0gIiBsaWJjbGFzcy1tZXRob2QtbW9kaWZpZXJzLXBlcmwgXAorICAgICAgICAgICAgICAgICAgIGxpYmRldmVsLWdsb2JhbGRlc3RydWN0aW9uLXBlcmwgXAorICAgICAgICAgICAgICAgICAgIGxpYm1vZHVsZS1ydW50aW1lLXBlcmwgXAorICAgICAgICAgICAgICAgICAgIGxpYnJvbGUtdGlueS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1jb25zdGFudCBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZXhwb3J0ZXIgXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLW1ybyBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtc2NhbGFyLXV0aWwgXAorIgorCitSUFJPVklERVNfJHtQTn0gPSAiIGxpYm1ldGhvZC1pbmxpbmVyLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJtZXRob2QtZ2VuZXJhdGUtYWNjZXNzb3ItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYm1ldGhvZC1nZW5lcmF0ZS1idWlsZGFsbC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlibWV0aG9kLWdlbmVyYXRlLWNvbnN0cnVjdG9yLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJtZXRob2QtZ2VuZXJhdGUtZGVtb2xpc2hhbGwtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYm1vby1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlibW9vLWhhbmRsZW1vb3NlLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJtb28taGFuZGxlbW9vc2UtZmFrZW1ldGFjbGFzcy1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlibW9vLW9iamVjdC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlibW9vLXJvbGUtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnN1Yi1kZWZlci1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlic3ViLXF1b3RlLXBlcmwgXAorIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJuZXQvbGlibmV0LWRucy1wZXJsXzEuMTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibmV0L2xpYm5ldC1kbnMtcGVybF8xLjEwLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDg5ODQ0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJuZXQvbGlibmV0LWRucy1wZXJsXzEuMTAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1ERVNDUklQVElPTiA9ICJUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIEROUy5wbSBtb2R1bGUgd2l0aCBmcmllbmRzLiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cubmV0LWRucy5vcmcvIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO21kNT05MmQ5M2Q4YzViZjIyZGU3NzU3ODUzMWUyODNkZDIxOSIKLQotREVQRU5EUyArPSAicGVybCIKLQotU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9OL05ML05MTkVUTEFCUy9OZXQtRE5TLSR7UFZ9LnRhci5neiIKLQotU1JDX1VSSVttZDVzdW1dID0gIjRmYTQ1YjBkZmU3OTY2NzQ1M2MxNTUzZTE2ZTUyYzJhIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImViZTUzZTdmNDMzMTM4ZmI5YTc4NDViNGVkYWU2YjhmNGRjMjI3ZGE5N2VhZjZiMzQ3NTg0ODE2ZWM2M2E1MjUiCi0KLVMgPSAiJHtXT1JLRElSfS9OZXQtRE5TLSR7UFZ9IgotCi1FWFRSQV9DUEFORkxBR1MgPSAiRVhQQVRMSUJQQVRIPSR7U1RBR0lOR19MSUJESVJ9IEVYUEFUSU5DUEFUSD0ke1NUQUdJTkdfSU5DRElSfSIKLQotaW5oZXJpdCBjcGFuCi0KLWRvX2NvbXBpbGUoKSB7Ci0gICAgZXhwb3J0IExJQkM9IiQoZmluZCAke1NUQUdJTkdfRElSX1RBUkdFVH0vJHtiYXNlX2xpYmRpcn0vIC1uYW1lICdsaWJjLSouc28nKSIKLSAgICBjcGFuX2RvX2NvbXBpbGUKLX0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm5ldC9saWJuZXQtZG5zLXBlcmxfMS4xNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJuZXQvbGlibmV0LWRucy1wZXJsXzEuMTQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhYTdmNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJuZXQvbGlibmV0LWRucy1wZXJsXzEuMTQuYmIKQEAgLTAsMCArMSwyNyBAQAorREVTQ1JJUFRJT04gPSAiVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBETlMucG0gbW9kdWxlIHdpdGggZnJpZW5kcy4iCitIT01FUEFHRSA9ICJodHRwOi8vd3d3Lm5ldC1kbnMub3JnLyIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRTttZDU9OTJkOTNkOGM1YmYyMmRlNzc1Nzg1MzFlMjgzZGQyMTkiCisKK0RFUEVORFMgKz0gInBlcmwiCisKK1NSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvTi9OTC9OTE5FVExBQlMvTmV0LUROUy0ke1BWfS50YXIuZ3oiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwZGExMDk5YzBhMzU0OGQzNmVhOWUzMWQ1YmI5ZTEyMiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI4M2MzOGE1OTRlZWIyYzg1ZDY2ZTYwMDQ3YTBmNWI0MDNmMzRiZDkyYTVkMTM2MDZmMDJlODI4ZDQ1MDI5OWZjIgorCitTID0gIiR7V09SS0RJUn0vTmV0LUROUy0ke1BWfSIKKworRVhUUkFfQ1BBTkZMQUdTID0gIkVYUEFUTElCUEFUSD0ke1NUQUdJTkdfTElCRElSfSBFWFBBVElOQ1BBVEg9JHtTVEFHSU5HX0lOQ0RJUn0iCisKK2luaGVyaXQgY3BhbgorCitSREVQRU5EU18ke1BOfSA9ICJwZXJsLW1vZHVsZS1pbnRlZ2VyIgorCitkb19jb21waWxlKCkgeworICAgIGV4cG9ydCBMSUJDPSIkKGZpbmQgJHtTVEFHSU5HX0RJUl9UQVJHRVR9LyR7YmFzZV9saWJkaXJ9LyAtbmFtZSAnbGliYy0qLnNvJykiCisgICAgY3Bhbl9kb19jb21waWxlCit9CitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJuZXQvbGlibmV0LXNzbGVheS1wZXJsXzEuODEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibmV0L2xpYm5ldC1zc2xlYXktcGVybF8xLjgxLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODYxYjY5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJuZXQvbGlibmV0LXNzbGVheS1wZXJsXzEuODEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1TVU1NQVJZID0gIk5ldDo6U1NMZWF5IC0gUGVybCBleHRlbnNpb24gZm9yIHVzaW5nIE9wZW5TU0wiCi1ERVNDUklQVElPTiA9ICJUaGlzIG1vZHVsZSBvZmZlcnMgc29tZSBoaWdoIGxldmVsIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgYWNjZXNzaW5nIFwKLXdlYiBwYWdlcyBvbiBTU0wgc2VydmVycyAoZm9yIHN5bW1ldHJ5LCBzYW1lIEFQSSBpcyBvZmZlcmVkIGZvciBcCi1hY2Nlc3NpbmcgaHR0cCBzZXJ2ZXJzLCB0b28pLCBhIHNzbGNhdCgpIGZ1bmN0aW9uIGZvciB3cml0aW5nIHlvdXIgb3duIFwKLWNsaWVudHMsIGFuZCBmaW5hbGx5IGFjY2VzcyB0byB0aGUgU1NMIGFwaSBvZiBTU0xlYXkvT3BlblNTTCBwYWNrYWdlIFwKLXNvIHlvdSBjYW4gd3JpdGUgc2VydmVycyBvciBjbGllbnRzIGZvciBtb3JlIGNvbXBsaWNhdGVkIGFwcGxpY2F0aW9ucy4iCi1IT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL2Rpc3QvTmV0LVNTTGVheS8iCi1TRUNUSU9OID0gImxpYnMiCi0KLUxJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUU7YmVnaW5saW5lPTI3NDtlbmRsaW5lPTI5NDttZDU9NjdkNjcwOTVkODNlMzM5ZGE1MzhhMDgyZmFkNWYzOGUiCi0KLURFUEVORFMgPSAib3BlbnNzbCB6bGliIG9wZW5zc2wtbmF0aXZlIgotUkRFUEVORFNfJHtQTn0gKz0gInBlcmwtbW9kdWxlLWNhcnAgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWVycm5vIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1leHR1dGlscy1tYWtlbWFrZXIgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLW1pbWUtYmFzZTY0IFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1zb2NrZXQgXAotICAgICAgICAgICAgICAgICAgIgotCi1TUkNfVVJJID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvQ1BBTi9hdXRob3JzL2lkL00vTUkvTUlLRU0vTmV0LVNTTGVheS0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKLSAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiNzE5MzJjZTM0ZDRkYjQ0ZGU4ZDAwMzk5YzM0MDU3OTIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDBjYmI2MTc0ZTYyOGI0MjE3OGUxNDQ1YzlmZDVhM2M1YWUyY2ZkNmE1YTQzZTAzNjEwYmExNDc4NmYyMWI3ZCIKLQotUyA9ICIke1dPUktESVJ9L05ldC1TU0xlYXktJHtQVn0iCi0KLWluaGVyaXQgY3BhbiBwdGVzdAotCi1FWFRSQV9DUEFORkxBR1MgPSAiTElCUz0nLUw9JHtTVEFHSU5HX0xJQkRJUn0gLUw9JHtTVEFHSU5HX0JBU0VMSUJESVJ9JyBcCi0gICAgICAgICAgICAgICAgICAgSU5DPS1JPSR7U1RBR0lOR19JTkNESVJ9IFwKLSAgICAgICAgICAgICAgICAgICAnLWxzc2wgLWxjcnlwdG8gLWx6JyBcCi0gICAgICAgICAgICAgICAgICAiCi0KLWRvX2luc3RhbGxfcHRlc3QoKSB7Ci0gICAgY3AgLXIgJHtCfS90ICR7RH0ke1BURVNUX1BBVEh9Ci19Ci0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgotCi1GSUxFU18ke1BOfS1kYmcgPSsgIiR7bGliZGlyfS9wZXJsL3ZlbmRvcl9wZXJsLyovYXV0by9OZXQvU1NMZWF5Ly5kZWJ1Zy8iCi0KLVJERVBFTkRTXyR7UE59LXB0ZXN0ID0gIiBwZXJsIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm5ldC9saWJuZXQtc3NsZWF5LXBlcmxfMS44NC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJuZXQvbGlibmV0LXNzbGVheS1wZXJsXzEuODQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZlY2VmOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJuZXQvbGlibmV0LXNzbGVheS1wZXJsXzEuODQuYmIKQEAgLTAsMCArMSw0NyBAQAorU1VNTUFSWSA9ICJOZXQ6OlNTTGVheSAtIFBlcmwgZXh0ZW5zaW9uIGZvciB1c2luZyBPcGVuU1NMIgorREVTQ1JJUFRJT04gPSAiVGhpcyBtb2R1bGUgb2ZmZXJzIHNvbWUgaGlnaCBsZXZlbCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyBcCit3ZWIgcGFnZXMgb24gU1NMIHNlcnZlcnMgKGZvciBzeW1tZXRyeSwgc2FtZSBBUEkgaXMgb2ZmZXJlZCBmb3IgXAorYWNjZXNzaW5nIGh0dHAgc2VydmVycywgdG9vKSwgYSBzc2xjYXQoKSBmdW5jdGlvbiBmb3Igd3JpdGluZyB5b3VyIG93biBcCitjbGllbnRzLCBhbmQgZmluYWxseSBhY2Nlc3MgdG8gdGhlIFNTTCBhcGkgb2YgU1NMZWF5L09wZW5TU0wgcGFja2FnZSBcCitzbyB5b3UgY2FuIHdyaXRlIHNlcnZlcnMgb3IgY2xpZW50cyBmb3IgbW9yZSBjb21wbGljYXRlZCBhcHBsaWNhdGlvbnMuIgorSE9NRVBBR0UgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9kaXN0L05ldC1TU0xlYXkvIgorU0VDVElPTiA9ICJsaWJzIgorCitMSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO2JlZ2lubGluZT0yNzQ7ZW5kbGluZT0yOTQ7bWQ1PTY3ZDY3MDk1ZDgzZTMzOWRhNTM4YTA4MmZhZDVmMzhlIgorCitERVBFTkRTID0gIm9wZW5zc2wgemxpYiBvcGVuc3NsLW5hdGl2ZSIKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgbGlic3NsIFwKKyAgICBsaWJjcnlwdG8gXAorICAgIHBlcmwtbW9kdWxlLWNhcnAgXAorICAgIHBlcmwtbW9kdWxlLWVycm5vIFwKKyAgICBwZXJsLW1vZHVsZS1leHR1dGlscy1tYWtlbWFrZXIgXAorICAgIHBlcmwtbW9kdWxlLW1pbWUtYmFzZTY0IFwKKyAgICBwZXJsLW1vZHVsZS1zb2NrZXQgXAorICAgIHpsaWIgXAorIgorCitTUkNfVVJJID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvQ1BBTi9hdXRob3JzL2lkL00vTUkvTUlLRU0vTmV0LVNTTGVheS0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKKyAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiY2ZiZTk2ODQ4NzE0OTYyNjk3OGY0MjdjYzlmYjhjNzciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiODIzZWMzY2JiNDI4MzA5ZDZhOWU1NmYzNjJhOTMwMDY5M2NlMzIxNWI3ZmVkZTEwOWFkYjdiZTM2MWZmZjE3NyIKKworUyA9ICIke1dPUktESVJ9L05ldC1TU0xlYXktJHtQVn0iCisKK2luaGVyaXQgY3BhbiBwdGVzdAorCitleHBvcnQgT1BFTlNTTF9QUkVGSVg9IiR7U1RBR0lOR19MSUJESVJ9IgorCitFWFRSQV9DUEFORkxBR1MgPSAiSU5DPS1JJHtTVEFHSU5HX0lOQ0RJUn0gTElCUz0nLUwke1NUQUdJTkdfTElCRElSfSAtbGNyeXB0byAtbHNzbCAtTCR7U1RBR0lOR19CQVNFTElCRElSfSAtbHonIgorCitkb19pbnN0YWxsX3B0ZXN0KCkgeworICAgIGNwIC1yICR7Qn0vdCAke0R9JHtQVEVTVF9QQVRIfQorfQorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKKworRklMRVNfJHtQTn0tZGJnID0rICIke2xpYmRpcn0vcGVybC92ZW5kb3JfcGVybC8qL2F1dG8vTmV0L1NTTGVheS8uZGVidWcvIgorCitSREVQRU5EU18ke1BOfS1wdGVzdCA9ICIgcGVybCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJyb2xlL2xpYnJvbGUtdGlueS1wZXJsXzIuMDAwMDA1LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnJvbGUvbGlicm9sZS10aW55LXBlcmxfMi4wMDAwMDUuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2ODRmNjguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnJvbGUvbGlicm9sZS10aW55LXBlcmxfMi4wMDAwMDUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1TVU1NQVJZID0gIlJvbGU6OlRpbnkgLSBSb2xlcy4gTGlrZSBhIG5vdXZlbGxlIGNvdXNpbmUgcG9ydGlvbiBzaXplIG9mIE1vb3NlLiIKLURFU0NSSVBUSU9OID0gIlwiUm9sZTo6VGlueVwiIGlzIGEgbWluaW1hbGlzdCByb2xlIGNvbXBvc2l0aW9uIHRvb2wuIgotCi1TRUNUSU9OID0gImxpYnMiCi0KLUhPTUVQQUdFID0gImh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9Sb2xlOjpUaW55IgotCi1MSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO2JlZ2lubGluZT0xNzc7ZW5kbGluZT0yMTQ7bWQ1PTI2ZGY3ZTdjMjA1NTFmYjE5MDZlMjI4NjYyNGYwYjcxIgotCi1TUkNfVVJJID0gIiR7Q1BBTl9NSVJST1J9L2F1dGhvcnMvaWQvSC9IQS9IQUFSRy9Sb2xlLVRpbnktJHtQVn0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gImM4YzVjZjFlMDJkMmUwYTFlZDIyNTMwYjU1YjY3ZDY2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU5M2EyOWI2MjFlMDI5YmYwMjE4ZDAxNTRkNWRmZGY2ZWM1MDJhZmM0OWFkZWVhZGFlNmFmZDBjNzAwNjMxMTUiCi0KLVMgPSAiJHtXT1JLRElSfS9Sb2xlLVRpbnktJHtQVn0iCi0KLWluaGVyaXQgY3BhbgotCi1SREVQRU5EU18ke1BOfSA9ICIgcGVybC1tb2R1bGUtZXhwb3J0ZXIgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLXN0cmljdCBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtdGVzdC1tb3JlIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS13YXJuaW5ncyBcCi0iCi0KLVJQUk9WSURFU18ke1BOfSA9ICIgbGlicm9sZS10aW55LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJyb2xlLXRpbnktd2l0aC1wZXJsIFwKLSIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlicm9sZS9saWJyb2xlLXRpbnktcGVybF8yLjAwMDAwNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJyb2xlL2xpYnJvbGUtdGlueS1wZXJsXzIuMDAwMDA2LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyNzU1ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlicm9sZS9saWJyb2xlLXRpbnktcGVybF8yLjAwMDAwNi5iYgpAQCAtMCwwICsxLDI5IEBACitTVU1NQVJZID0gIlJvbGU6OlRpbnkgLSBSb2xlcy4gTGlrZSBhIG5vdXZlbGxlIGNvdXNpbmUgcG9ydGlvbiBzaXplIG9mIE1vb3NlLiIKK0RFU0NSSVBUSU9OID0gIlwiUm9sZTo6VGlueVwiIGlzIGEgbWluaW1hbGlzdCByb2xlIGNvbXBvc2l0aW9uIHRvb2wuIgorCitTRUNUSU9OID0gImxpYnMiCisKK0hPTUVQQUdFID0gImh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9Sb2xlOjpUaW55IgorCitMSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO2JlZ2lubGluZT0xNzc7ZW5kbGluZT0yMTQ7bWQ1PTI2ZGY3ZTdjMjA1NTFmYjE5MDZlMjI4NjYyNGYwYjcxIgorCitTUkNfVVJJID0gIiR7Q1BBTl9NSVJST1J9L2F1dGhvcnMvaWQvSC9IQS9IQUFSRy9Sb2xlLVRpbnktJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjdjMjc3NzI4YTdlMDkwZjY0YjQ5NTg1N2NhZGZlZDA4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImNjNzM0MThjOTA0YTAyODZlY2Q4OTE1ZWFjMTFmNWJlMmE4ZDFlMTdlYTljYjU0YzkxMTZiMDM0MGNkM2UzODIiCisKK1MgPSAiJHtXT1JLRElSfS9Sb2xlLVRpbnktJHtQVn0iCisKK2luaGVyaXQgY3BhbgorCitSREVQRU5EU18ke1BOfSA9ICIgcGVybC1tb2R1bGUtZXhwb3J0ZXIgXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLXN0cmljdCBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtdGVzdC1tb3JlIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS13YXJuaW5ncyBcCisiCisKK1JQUk9WSURFU18ke1BOfSA9ICIgbGlicm9sZS10aW55LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJyb2xlLXRpbnktd2l0aC1wZXJsIFwKKyIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlidGVzdC9saWJ0ZXN0LWhhcm5lc3MtcGVybF8zLjM2LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnRlc3QvbGlidGVzdC1oYXJuZXNzLXBlcmxfMy4zNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWFlZDVlMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlidGVzdC9saWJ0ZXN0LWhhcm5lc3MtcGVybF8zLjM2LmJiCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotU1VNTUFSWSA9ICJUZXN0OjpIYXJuZXNzIC0gUnVuIFBlcmwgc3RhbmRhcmQgdGVzdCBzY3JpcHRzIHdpdGggc3RhdGlzdGljcyIKLURFU0NSSVBUSU9OID0gIkFsdGhvdWdoLCBmb3IgaGlzdG9yaWNhbCByZWFzb25zLCB0aGUgVGVzdDo6SGFybmVzcyBcCi1kaXN0cmlidXRpb24gdGFrZXMgaXRzIG5hbWUgZnJvbSB0aGlzIG1vZHVsZSBpdCBub3cgZXhpc3RzIG9ubHkgdG8gcHJvdmlkZSBcCi1UQVA6Okhhcm5lc3Mgd2l0aCBhbiBpbnRlcmZhY2UgdGhhdCBpcyBzb21ld2hhdCBiYWNrd2FyZHMgY29tcGF0aWJsZSBcCi13aXRoIFRlc3Q6Okhhcm5lc3MgMi54eC4gSWYgeW91J3JlIHdyaXRpbmcgbmV3IGNvZGUgY29uc2lkZXIgdXNpbmcgXAotVEFQOjpIYXJuZXNzIGRpcmVjdGx5IGluc3RlYWQuIFwKLVwKLUVtdWxhdGlvbiBpcyBwcm92aWRlZCBmb3IgcnVudGVzdHMgYW5kIGV4ZWN1dGVfdGVzdHMgYnV0IHRoZSBcCi1wbHVnZ2FibGUgJ1N0cmFwcycgaW50ZXJmYWNlIHRoYXQgcHJldmlvdXMgdmVyc2lvbnMgb2YgVGVzdDo6SGFybmVzcyBcCi1zdXBwb3J0ZWQgaXMgbm90IHJlcHJvZHVjZWQgaGVyZS4gU3RyYXBzIGlzIG5vdyBhdmFpbGFibGUgYXMgYSBzdGFuZCBcCi1hbG9uZSBtb2R1bGU6IFRlc3Q6Okhhcm5lc3M6OlN0cmFwcy4gXAotXAotU2VlIFRBUDo6UGFyc2VyLCBUQVA6Okhhcm5lc3MgZm9yIHRoZSBtYWluIGRvY3VtZW50YXRpb24gZm9yIHRoaXMgXAotZGlzdHJpYnV0aW9uLiIKLQotU0VDVElPTiA9ICJsaWJzIgotCi1IT01FUEFHRSA9ICJodHRwOi8vdGVzdGFueXRoaW5nLm9yZyIKLQotTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRTtiZWdpbmxpbmU9Mjk7ZW5kbGluZT0zMDttZDU9YjA4ZGI0MzYwZWVjMTE5ZTg3NWRkZGQ3Y2I4YTVkZGQiCi0KLVNSQ19VUkkgPSAiJHtDUEFOX01JUlJPUn0vYXV0aG9ycy9pZC9ML0xFL0xFT05UL1Rlc3QtSGFybmVzcy0ke1BWfS50YXIuZ3oiCi1TUkNfVVJJW21kNXN1bV0gPSAiNGM4ZDljNzdlOGUwNmNhOTZjNzM4M2MwNWM4ZjM2MTYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTc1NjZmMTNiMDQxZDAyOGI1NmYxODRiNzdlYzI1NDVlYzZmMGJiNWEwZjhmNTM2OGY3ZTRhMDhiNDk2YjYzZSIKLQotUyA9ICIke1dPUktESVJ9L1Rlc3QtSGFybmVzcy0ke1BWfSIKLQotaW5oZXJpdCBjcGFuCi0KLVJQUk9WSURFU18ke1BOfSArPSAibGliYXBwLXByb3ZlLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJhcHAtcHJvdmUtc3RhdGUtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmFwcC1wcm92ZS1zdGF0ZS1yZXN1bHQtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmFwcC1wcm92ZS1zdGF0ZS1yZXN1bHQtdGVzdC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLWJhc2UtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1mb3JtYXR0ZXItYmFzZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1jb2xvci1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1jb25zb2xlLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtZm9ybWF0dGVyLWNvbnNvbGUtcGFyYWxsZWxzZXNzaW9uLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtZm9ybWF0dGVyLWNvbnNvbGUtc2Vzc2lvbi1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1maWxlLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtZm9ybWF0dGVyLWZpbGUtc2Vzc2lvbi1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1zZXNzaW9uLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtaGFybmVzcy1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLWhhcm5lc3MtZW52LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtb2JqZWN0LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLWFnZ3JlZ2F0b3ItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItZ3JhbW1hci1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1pdGVyYXRvci1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1pdGVyYXRvci1hcnJheS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1pdGVyYXRvci1wcm9jZXNzLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLWl0ZXJhdG9yLXN0cmVhbS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1pdGVyYXRvcmZhY3RvcnktcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItbXVsdGlwbGV4ZXItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItcmVzdWx0LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc3Nlci1yZXN1bHQtYmFpbG91dC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtY29tbWVudC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtcGxhbi1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtcHJhZ21hLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdC10ZXN0LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdC11bmtub3duLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdC12ZXJzaW9uLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdC15YW1sLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdGZhY3RvcnktcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc2NoZWR1bGVyLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNjaGVkdWxlci1qb2ItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc2NoZWR1bGVyLXNwaW5uZXItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc291cmNlLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNvdXJjZWhhbmRsZXItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc291cmNlaGFuZGxlci1leGVjdXRhYmxlLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNvdXJjZWhhbmRsZXItZmlsZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1zb3VyY2VoYW5kbGVyLWhhbmRsZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1zb3VyY2VoYW5kbGVyLXBlcmwtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc291cmNlaGFuZGxlci1yYXd0YXAtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXIteWFtbGlzaC1yZWFkZXItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXIteWFtbGlzaC13cml0ZXItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgICIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlidGVzdC9saWJ0ZXN0LWhhcm5lc3MtcGVybF8zLjQyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnRlc3QvbGlidGVzdC1oYXJuZXNzLXBlcmxfMy40Mi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOWJhNTk0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnRlc3QvbGlidGVzdC1oYXJuZXNzLXBlcmxfMy40Mi5iYgpAQCAtMCwwICsxLDEyMCBAQAorIyBOT1RFOgorIyAgICAgWW91IHNob3VsZCB1c2UgcGVybC1tb2R1bGUtdGVzdC1oYXJuZXNzIGluc3RlYWQgb2YgdGhpcyBwYWNrYWdlLAorIyAgICAgdW5sZXNzIHlvdSBzcGVjaWZpY2FsbHkgbmVlZCBhIG5ld2VyIHZlcnNpb24gdGhhbiB3aGF0IGlzIHByb3ZpZGVkCisjICAgICBieSBwZXJsIGluIG9lLWNvcmUuCisKK1NVTU1BUlkgPSAiVGVzdDo6SGFybmVzcyAtIFJ1biBQZXJsIHN0YW5kYXJkIHRlc3Qgc2NyaXB0cyB3aXRoIHN0YXRpc3RpY3MiCitERVNDUklQVElPTiA9ICJBbHRob3VnaCwgZm9yIGhpc3RvcmljYWwgcmVhc29ucywgdGhlIFRlc3Q6Okhhcm5lc3MgXAorZGlzdHJpYnV0aW9uIHRha2VzIGl0cyBuYW1lIGZyb20gdGhpcyBtb2R1bGUgaXQgbm93IGV4aXN0cyBvbmx5IHRvIHByb3ZpZGUgXAorVEFQOjpIYXJuZXNzIHdpdGggYW4gaW50ZXJmYWNlIHRoYXQgaXMgc29tZXdoYXQgYmFja3dhcmRzIGNvbXBhdGlibGUgXAord2l0aCBUZXN0OjpIYXJuZXNzIDIueHguIElmIHlvdSdyZSB3cml0aW5nIG5ldyBjb2RlIGNvbnNpZGVyIHVzaW5nIFwKK1RBUDo6SGFybmVzcyBkaXJlY3RseSBpbnN0ZWFkLiBcCitcCitFbXVsYXRpb24gaXMgcHJvdmlkZWQgZm9yIHJ1bnRlc3RzIGFuZCBleGVjdXRlX3Rlc3RzIGJ1dCB0aGUgXAorcGx1Z2dhYmxlICdTdHJhcHMnIGludGVyZmFjZSB0aGF0IHByZXZpb3VzIHZlcnNpb25zIG9mIFRlc3Q6Okhhcm5lc3MgXAorc3VwcG9ydGVkIGlzIG5vdCByZXByb2R1Y2VkIGhlcmUuIFN0cmFwcyBpcyBub3cgYXZhaWxhYmxlIGFzIGEgc3RhbmQgXAorYWxvbmUgbW9kdWxlOiBUZXN0OjpIYXJuZXNzOjpTdHJhcHMuIFwKK1wKK1NlZSBUQVA6OlBhcnNlciwgVEFQOjpIYXJuZXNzIGZvciB0aGUgbWFpbiBkb2N1bWVudGF0aW9uIGZvciB0aGlzIFwKK2Rpc3RyaWJ1dGlvbi4iCisKK1NFQ1RJT04gPSAibGlicyIKKworSE9NRVBBR0UgPSAiaHR0cDovL3Rlc3Rhbnl0aGluZy5vcmciCisKK0xJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUU7YmVnaW5saW5lPTI5O2VuZGxpbmU9MzA7bWQ1PWIwOGRiNDM2MGVlYzExOWU4NzVkZGRkN2NiOGE1ZGRkIgorCitTUkNfVVJJID0gIiR7Q1BBTl9NSVJST1J9L2F1dGhvcnMvaWQvTC9MRS9MRU9OVC9UZXN0LUhhcm5lc3MtJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gImM3OTQ5MDY0NzNmODhkNmI3NDE5NGUyZDU2ZjE2YmQ2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjBmZDkwZDRlZmVhODJkNmUyNjJlNjkzMzc1OWU4NWQyN2NiY2ZhNDA5MWIxNGJmNDA0MmFlMjBiYWI1MjhlNTMiCisKK1VQU1RSRUFNX0NIRUNLX1JFR0VYID0gIlRlc3RcLUhhcm5lc3NcLSg/UDxwdmVyPihcZCtcLlxkKykpKD8hX1xkKykudGFyIgorCitTID0gIiR7V09SS0RJUn0vVGVzdC1IYXJuZXNzLSR7UFZ9IgorCitpbmhlcml0IGNwYW4gcHRlc3QtcGVybAorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgIHBlcmwtbW9kdWxlLWJlbmNobWFyayBcCisiCisKK1JQUk9WSURFU18ke1BOfSArPSAibGliYXBwLXByb3ZlLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJhcHAtcHJvdmUtc3RhdGUtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmFwcC1wcm92ZS1zdGF0ZS1yZXN1bHQtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmFwcC1wcm92ZS1zdGF0ZS1yZXN1bHQtdGVzdC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLWJhc2UtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1mb3JtYXR0ZXItYmFzZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1jb2xvci1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1jb25zb2xlLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtZm9ybWF0dGVyLWNvbnNvbGUtcGFyYWxsZWxzZXNzaW9uLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtZm9ybWF0dGVyLWNvbnNvbGUtc2Vzc2lvbi1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1maWxlLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtZm9ybWF0dGVyLWZpbGUtc2Vzc2lvbi1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1zZXNzaW9uLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtaGFybmVzcy1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLWhhcm5lc3MtZW52LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtb2JqZWN0LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLWFnZ3JlZ2F0b3ItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItZ3JhbW1hci1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1pdGVyYXRvci1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1pdGVyYXRvci1hcnJheS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1pdGVyYXRvci1wcm9jZXNzLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLWl0ZXJhdG9yLXN0cmVhbS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1pdGVyYXRvcmZhY3RvcnktcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItbXVsdGlwbGV4ZXItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItcmVzdWx0LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc3Nlci1yZXN1bHQtYmFpbG91dC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtY29tbWVudC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtcGxhbi1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtcHJhZ21hLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdC10ZXN0LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdC11bmtub3duLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdC12ZXJzaW9uLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdC15YW1sLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdGZhY3RvcnktcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc2NoZWR1bGVyLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNjaGVkdWxlci1qb2ItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc2NoZWR1bGVyLXNwaW5uZXItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc291cmNlLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNvdXJjZWhhbmRsZXItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc291cmNlaGFuZGxlci1leGVjdXRhYmxlLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNvdXJjZWhhbmRsZXItZmlsZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1zb3VyY2VoYW5kbGVyLWhhbmRsZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1zb3VyY2VoYW5kbGVyLXBlcmwtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc291cmNlaGFuZGxlci1yYXd0YXAtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXIteWFtbGlzaC1yZWFkZXItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXIteWFtbGlzaC13cml0ZXItcGVybCBcCisgICAgICAgICAgICAgICAgICAgICIKKworZG9faW5zdGFsbF9wcmVwZW5kKCkgeworCSMgdGhlc2UgdGVzdHMgYXJlIGluYXBwcm9wcmlhdGUgb24gdGFyZ2V0CisJcm0gLXJmICR7Qn0vdC8wMDAtbG9hZC50CisJcm0gLXJmICR7Qn0vdC9zdGF0ZS50CisJIyB0aGVzZSB0ZXN0cyByZXF1aXJlICItVCIgKHRhaW50KSBvcHRpb24gb24gY29tbWFuZCBsaW5lCisJcm0gLXJmICR7Qn0vdC9hZ2dyZWdhdG9yLnQKKwlybSAtcmYgJHtCfS90L2JhaWxvdXQudAorCXJtIC1yZiAke0J9L3QvYmFzZS50CisJcm0gLXJmICR7Qn0vdC9jYWxsYmFja3MudAorCXJtIC1yZiAke0J9L3QvZXJyb3JzLnQKKwlybSAtcmYgJHtCfS90L25lc3RlZC50CisJcm0gLXJmICR7Qn0vdC9vYmplY3QudAorCXJtIC1yZiAke0J9L3QvcHJlbWF0dXJlLWJhaWxvdXQudAorCXJtIC1yZiAke0J9L3QvcmVzdWx0cy50CisJcm0gLXJmICR7Qn0vdC9zdHJlYW1zLnQKKwlybSAtcmYgJHtCfS90L3lhbWxpc2gtb3V0cHV0LnQKKwlybSAtcmYgJHtCfS90L2NvbXBhdC92ZXJzaW9uLnQKK30KKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisJaW5zdGFsbCAtZCAke0R9L3Vzci9sb2NhbC9iaW4KKwkjIGRvIG5vdCBjbG9iYmVyIHBlcmwtbWlzYyAvdXNyL2Jpbi9wcm92ZQorCWluc3RhbGwgLW0gMDc1NSAke0J9L2Jpbi9wcm92ZSAke0R9L3Vzci9sb2NhbC9iaW4vCisJcm0gLXJmICR7RH0ke2JpbmRpcn0vcHJvdmUKKwlybSAtcmYgJHtEfSR7YmluZGlyfQorfQorCitGSUxFU18ke1BOfSArPSAiL3Vzci9sb2NhbC9iaW4vcHJvdmUiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnhtbC9saWJ4bWwtbGlieG1sLXBlcmxfMi4wMTI5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnhtbC9saWJ4bWwtbGlieG1sLXBlcmxfMi4wMTI5LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOGNjMjY5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJ4bWwvbGlieG1sLWxpYnhtbC1wZXJsXzIuMDEyOS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLVNVTU1BUlkgPSAiUGVybCBpbnRlcmZhY2UgdG8gdGhlIGxpYnhtbDIgbGlicmFyeSIKLURFU0NSSVBUSU9OID0gIlRoaXMgbW9kdWxlIGlzIGFuIGludGVyZmFjZSB0byBsaWJ4bWwyLCBwcm92aWRpbmcgWE1MIGFuZCBIVE1MIHBhcnNlcnMgXAotd2l0aCBET00sIFNBWCBhbmQgWE1MUmVhZGVyIGludGVyZmFjZXMsIGEgbGFyZ2Ugc3Vic2V0IG9mIERPTSBMYXllciAzIFwKLWludGVyZmFjZSBhbmQgYSBYTUw6OlhQYXRoLWxpa2UgaW50ZXJmYWNlIHRvIFhQYXRoIEFQSSBvZiBsaWJ4bWwyLiBcCi1UaGUgbW9kdWxlIGlzIHNwbGl0IGludG8gc2V2ZXJhbCBwYWNrYWdlcyB3aGljaCBhcmUgbm90IGRlc2NyaWJlZCBpbiB0aGlzIFwKLXNlY3Rpb247IHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlLCB5b3Ugb25seSBuZWVkIHRvIHVzZSBYTUw6OkxpYlhNTDsgaW4gXAoteW91ciBwcm9ncmFtcy4iCi0KLUhPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvZGlzdC9YTUwtTGliWE1MLTEuOTkvIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJBcnRpc3RpYy0xLjB8R1BMdjErIgotREVQRU5EUyArPSAibGlieG1sMiBcCi0gICAgICAgIGxpYnhtbC1zYXgtcGVybC1uYXRpdmUgXAotICAgICAgICB6bGliIFwKLSIKLVJERVBFTkRTXyR7UE59ICs9ICJsaWJ4bWwyIFwKLSAgICAgICAgbGlieG1sLXNheC1wZXJsIFwKLSAgICAgICAgbGlieG1sLXNheC1iYXNlLXBlcmwgXAotICAgICAgICB6bGliIFwKLSIKLQotU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9TL1NIL1NITE9NSUYvWE1MLUxpYlhNTC0ke1BWfS50YXIuZ3o7bmFtZT1saWJ4bWwgXAotICAgIGZpbGU6Ly9kaXNhYmxlLWxpYnhtbDItY2hlY2sucGF0Y2ggXAotICAgIGZpbGU6Ly9maXgtQ0FUQUxPRy1jb25kaXRpb25hbC1jb21waWxlLnBhdGNoIFwKLSAgICBmaWxlOi8vdXNpbmctRE9DQi1jb25kaXRpb25hbC5wYXRjaCBcCi0iCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9kZWJpYW4vY29weXJpZ2h0O21kNT02NGVkYTFiYzEzNWYwZWNlMWQxMTg3ZjJhOGFjODJjMSBcCi0gICAgZmlsZTovL0xJQ0VOU0U7bWQ1PTk3ODcxYmRlMTUwZGFlYjVlNjFhZDk1MTM3ZmYyNDQ2IFwKLSIKLVNSQ19VUklbbGlieG1sLm1kNXN1bV0gPSAiNTgwNmI2OWQ1NGEyZDc4ODRiOGQyMmIzOTU4ODg0MzYiCi1TUkNfVVJJW2xpYnhtbC5zaGEyNTZzdW1dID0gIjVjYTAyNjliYTA2ODAwYzg0MDYxYTdmMzMzM2M4NWZhYjU1ODRkNjljZDdiNGUwNjQxOTYzZGE3ZmQzNmIzNjYiCi0KLVMgPSAiJHtXT1JLRElSfS9YTUwtTGliWE1MLSR7UFZ9IgotCi1pbmhlcml0IGNwYW4KLQotRVhUUkFfQ1BBTkZMQUdTID0gIklOQz0tSSR7U1RBR0lOR19JTkNESVJ9L2xpYnhtbDIgTElCUz0tTCR7U1RBR0lOR19MSUJESVJ9IgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKLQotQ0ZMQUdTICs9ICIgLURfR05VX1NPVVJDRSAiCi1CVUlMRF9DRkxBR1MgKz0gIiAtRF9HTlVfU09VUkNFICIKLQotRklMRVNfJHtQTn0tZGJnID0rICIke2xpYmRpcn0vcGVybC92ZW5kb3JfcGVybC8qL2F1dG8vWE1ML0xpYlhNTC8uZGVidWcvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnhtbC9saWJ4bWwtbGlieG1sLXBlcmxfMi4wMTMyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnhtbC9saWJ4bWwtbGlieG1sLXBlcmxfMi4wMTMyLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMTg0MDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlieG1sL2xpYnhtbC1saWJ4bWwtcGVybF8yLjAxMzIuYmIKQEAgLTAsMCArMSw0NyBAQAorU1VNTUFSWSA9ICJQZXJsIGludGVyZmFjZSB0byB0aGUgbGlieG1sMiBsaWJyYXJ5IgorREVTQ1JJUFRJT04gPSAiVGhpcyBtb2R1bGUgaXMgYW4gaW50ZXJmYWNlIHRvIGxpYnhtbDIsIHByb3ZpZGluZyBYTUwgYW5kIEhUTUwgcGFyc2VycyBcCit3aXRoIERPTSwgU0FYIGFuZCBYTUxSZWFkZXIgaW50ZXJmYWNlcywgYSBsYXJnZSBzdWJzZXQgb2YgRE9NIExheWVyIDMgXAoraW50ZXJmYWNlIGFuZCBhIFhNTDo6WFBhdGgtbGlrZSBpbnRlcmZhY2UgdG8gWFBhdGggQVBJIG9mIGxpYnhtbDIuIFwKK1RoZSBtb2R1bGUgaXMgc3BsaXQgaW50byBzZXZlcmFsIHBhY2thZ2VzIHdoaWNoIGFyZSBub3QgZGVzY3JpYmVkIGluIHRoaXMgXAorc2VjdGlvbjsgdW5sZXNzIHN0YXRlZCBvdGhlcndpc2UsIHlvdSBvbmx5IG5lZWQgdG8gdXNlIFhNTDo6TGliWE1MOyBpbiBcCit5b3VyIHByb2dyYW1zLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9kaXN0L1hNTC1MaWJYTUwtMS45OS8iCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkFydGlzdGljLTEuMHxHUEx2MSsiCitERVBFTkRTICs9ICJsaWJ4bWwyIFwKKyAgICAgICAgbGlieG1sLXNheC1wZXJsLW5hdGl2ZSBcCisgICAgICAgIHpsaWIgXAorIgorUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICBsaWJ4bWwyIFwKKyAgICBsaWJ4bWwtc2F4LXBlcmwgXAorICAgIGxpYnhtbC1zYXgtYmFzZS1wZXJsIFwKKyAgICBwZXJsLW1vZHVsZS1lbmNvZGUgXAorICAgIHBlcmwtbW9kdWxlLWRhdGEtZHVtcGVyIFwKKyAgICB6bGliIFwKKyIKKworU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9TL1NIL1NITE9NSUYvWE1MLUxpYlhNTC0ke1BWfS50YXIuZ3o7bmFtZT1saWJ4bWwgXAorICAgIGZpbGU6Ly9kaXNhYmxlLWxpYnhtbDItY2hlY2sucGF0Y2ggXAorICAgIGZpbGU6Ly9maXgtQ0FUQUxPRy1jb25kaXRpb25hbC1jb21waWxlLnBhdGNoIFwKKyAgICBmaWxlOi8vdXNpbmctRE9DQi1jb25kaXRpb25hbC5wYXRjaCBcCisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9kZWJpYW4vY29weXJpZ2h0O21kNT02NGVkYTFiYzEzNWYwZWNlMWQxMTg3ZjJhOGFjODJjMSBcCisgICAgZmlsZTovL0xJQ0VOU0U7bWQ1PTk3ODcxYmRlMTUwZGFlYjVlNjFhZDk1MTM3ZmYyNDQ2IFwKKyIKK1NSQ19VUklbbGlieG1sLm1kNXN1bV0gPSAiNDM1NDZmZDlhMzk3NGYxOTMyM2Y5ZmIwNDg2MWVjZTkiCitTUkNfVVJJW2xpYnhtbC5zaGEyNTZzdW1dID0gIjcyMTQ1MmUzMTAzY2ExODhmNTk2OGFiMDZkNWJhMjlmZThlMDBlNDlmNDc2Nzc5MDg4MjA5NTA1MDMxMmQ0NzYiCisKK1MgPSAiJHtXT1JLRElSfS9YTUwtTGliWE1MLSR7UFZ9IgorCitpbmhlcml0IGNwYW4KKworRVhUUkFfQ1BBTkZMQUdTID0gIklOQz0tSSR7U1RBR0lOR19JTkNESVJ9L2xpYnhtbDIgTElCUz0tTCR7U1RBR0lOR19MSUJESVJ9IgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKKworQ0ZMQUdTICs9ICIgLURfR05VX1NPVVJDRSAiCitCVUlMRF9DRkxBR1MgKz0gIiAtRF9HTlVfU09VUkNFICIKKworRklMRVNfJHtQTn0tZGJnID0rICIke2xpYmRpcn0vcGVybC92ZW5kb3JfcGVybC8qL2F1dG8vWE1ML0xpYlhNTC8uZGVidWcvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9SRUFETUUgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL1JFQURNRQppbmRleCA0Mzc0MGY2Li4wNTY2ZTQ5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL1JFQURNRQorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL1JFQURNRQpAQCAtMTcsMTIgKzE3LDEyIEBACiAKIAlVUkk6IGdpdDovL2dpdC5vcGVuZW1iZWRkZWQub3JnL29wZW5lbWJlZGRlZC1jb3JlCiAJbGF5ZXJzOiBtZXRhCi0JYnJhbmNoOiByb2NrbyAKKwlicmFuY2g6IG1hc3RlcgogCXJldmlzaW9uOiBIRUFECiAKIAlVUkk6IGdpdDovL2dpdC5vcGVuZW1iZWRkZWQub3JnL21ldGEtb3BlbmVtYmVkZGVkCiAJbGF5ZXJzOiBtZXRhLW9lCi0JYnJhbmNoOiAgcm9ja28KKwlicmFuY2g6IG1hc3RlcgogCXJldmlzaW9uOiBIRUFECiAKIFBsZWFzZSBmb2xsb3cgdGhlIHJlY29tbWVuZGVkIHNldHVwIHByb2NlZHVyZXMgb2YgeW91ciBPRSBkaXN0cmlidXRpb24uCkBAIC00Nyw4ICs0Nyw3IEBACiBNYWludGVuYW5jZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NYWludGFpbmVyczoKK0xheWVyIE1haW50YWluZXJzOgogICAgICAgICBUaW0gIm1vdG8tdGltbyIgT3JsaW5nIDxUaWNvVGltb0BnbWFpbC5jb20+Ci0gICAgICAgIFBhdWwgImJsdWVsaWdodG5pbmciIEVnZ2xldG9uIDxwYXVsLmVnZ2xldG9uQGxpbnV4LmludGVsLmNvbT4KICAgICAgICAgRGVyZWsgU3RyYWthIDxkZXJla0Bhc3Rlcml1cy5pbz4KIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9jbGFzc2VzL3B5cGkuYmJjbGFzcyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vY2xhc3Nlcy9weXBpLmJiY2xhc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1ZDdhYjMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9jbGFzc2VzL3B5cGkuYmJjbGFzcworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLWRlZiBweXBpX3BhY2thZ2UoZCk6Ci0gICAgYnBuID0gZC5nZXRWYXIoJ0JQTicpCi0gICAgaWYgYnBuLnN0YXJ0c3dpdGgoJ3B5dGhvbi0nKToKLSAgICAgICAgcmV0dXJuIGJwbls3Ol0KLSAgICBlbGlmIGJwbi5zdGFydHN3aXRoKCdweXRob24zLScpOgotICAgICAgICByZXR1cm4gYnBuWzg6XQotICAgIHJldHVybiBicG4KLQotUFlQSV9QQUNLQUdFID89ICIke0BweXBpX3BhY2thZ2UoZCl9IgotUFlQSV9QQUNLQUdFX0VYVCA/PSAidGFyLmd6IgotCi1kZWYgcHlwaV9zcmNfdXJpKGQpOgotICAgIHBhY2thZ2UgPSBkLmdldFZhcignUFlQSV9QQUNLQUdFJykKLSAgICBwYWNrYWdlX2V4dCA9IGQuZ2V0VmFyKCdQWVBJX1BBQ0tBR0VfRVhUJykKLSAgICBwdiA9IGQuZ2V0VmFyKCdQVicpCi0gICAgcmV0dXJuICdodHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvc291cmNlLyVzLyVzLyVzLSVzLiVzJyAlIChwYWNrYWdlWzBdLCBwYWNrYWdlLCBwYWNrYWdlLCBwdiwgcGFja2FnZV9leHQpCi0KLVBZUElfU1JDX1VSSSA/PSAiJHtAcHlwaV9zcmNfdXJpKGQpfSIKLQotSE9NRVBBR0UgPz0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvJHtQWVBJX1BBQ0tBR0V9LyIKLVNFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgotU1JDX1VSSSArPSAiJHtQWVBJX1NSQ19VUkl9IgotUyA9ICIke1dPUktESVJ9LyR7UFlQSV9QQUNLQUdFfS0ke1BWfSIKLQotVVBTVFJFQU1fQ0hFQ0tfVVJJID89ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpLyR7UFlQSV9QQUNLQUdFfS8iCi1VUFNUUkVBTV9DSEVDS19SRUdFWCA/PSAiLyR7UFlQSV9QQUNLQUdFfS8oP1A8cHZlcj4oXGQrW1wuXC1fXSopKykiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vY29uZi9sYXllci5jb25mCmluZGV4IGQ1MzY3N2YuLjcwODkwNzEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vY29uZi9sYXllci5jb25mCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vY29uZi9sYXllci5jb25mCkBAIC0xNCw0ICsxNCw2IEBACiAKIExBWUVSREVQRU5EU19tZXRhLXB5dGhvbiA9ICJjb3JlIG9wZW5lbWJlZGRlZC1sYXllciIKIAorTEFZRVJTRVJJRVNfQ09NUEFUX21ldGEtcHl0aG9uID0gInN1bW8iCisKIExJQ0VOU0VfUEFUSCArPSAiJHtMQVlFUkRJUn0vbGljZW5zZXMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L2dhdGVvbmUvZ2F0ZW9uZV9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L2dhdGVvbmUvZ2F0ZW9uZV9naXQuYmIKaW5kZXggOGIyYTE5Mi4uNDU3Nzg3MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9nYXRlb25lL2dhdGVvbmVfZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvZ2F0ZW9uZS9nYXRlb25lX2dpdC5iYgpAQCAtNjksNyArNjksNiBAQAogICAgICAgICAgICAgICAgICAgcHl0aG9uLXBrZ3V0aWwgXAogICAgICAgICAgICAgICAgICAgcHl0aG9uLXB5b3BlbnNzbCBcCiAgICAgICAgICAgICAgICAgICBweXRob24tcmUgXAotICAgICAgICAgICAgICAgICAgcHl0aG9uLXJlYWRsaW5lIFwKICAgICAgICAgICAgICAgICAgIHB5dGhvbi1zZXR1cHRvb2xzIFwKICAgICAgICAgICAgICAgICAgIHB5dGhvbi1zaGVsbCBcCiAgICAgICAgICAgICAgICAgICBweXRob24tc2ltcGxlanNvbiBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1tcHJwYy9weXRob24tbXBycGMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tbXBycGMvcHl0aG9uLW1wcnBjLmluYwppbmRleCBiOTUzNWZjLi4wNWZiYWU0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1tcHJwYy9weXRob24tbXBycGMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLW1wcnBjL3B5dGhvbi1tcHJwYy5pbmMKQEAgLTcsNyArNyw3IEBACiBERVBFTkRTICs9ICIke1BZVEhPTl9QTn0tZ2V2ZW50IgogUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1nZXZlbnQgJHtQWVRIT05fUE59LW1zZ3BhY2sgJHtQWVRIT05fUE59LWdzb2NrZXRwb29sIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNjZlNmNmMzY3ZWE3MWNmZWQ4OTM4YTI3ZTljMTgzYzMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWNjYWRhNjUyNmQ0OGFjNGQ5NWE3YmJkYzA5MzU4NjY2Mzg0MTU2MDMzNzAzMmE1MDNmNTdjY2ZhZTY5ZDdiZiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhY2RlMWYzNDY0MTE5OTdkNzZhYjg5NzkwYTM1NjgyMyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlOGRkZDQ3ZTdhMmZiMmQzYjIwM2ZjYzUyMjQ0M2VlNWJlNTZjOGY3ZTJjNmQ5MTVjMDQ3NDQ1OTUxY2VmMWZiIgogCiBpbmhlcml0IHB5cGkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLW1wcnBjL3B5dGhvbi1tcHJwY18wLjEuMTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1tcHJwYy9weXRob24tbXBycGNfMC4xLjE2LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1tcHJwYy9weXRob24tbXBycGNfMC4xLjE0LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1tcHJwYy9weXRob24tbXBycGNfMC4xLjE2LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1tcHJwYy9weXRob24zLW1wcnBjXzAuMS4xNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLW1wcnBjL3B5dGhvbjMtbXBycGNfMC4xLjE2LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1tcHJwYy9weXRob24zLW1wcnBjXzAuMS4xNC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tbXBycGMvcHl0aG9uMy1tcHJwY18wLjEuMTYuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLXB5cm80L3B5dGhvbi1weXJvNF80LjYyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tcHlybzQvcHl0aG9uLXB5cm80XzQuNjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0MWM0ZmYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tcHlybzQvcHl0aG9uLXB5cm80XzQuNjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1TVU1NQVJZID0gIlB5dGhvbiBSZW1vdGUgT2JqZWN0cyIKLUxJQ0VOU0UgPSAiTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9Mzc4YWNlZjM3NWUxN2EzYmZmMDNiZDBmNzhjNTMyMjAiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI2ZTJmZWYzZGM4YjI5NzczYTg3YWJiYWE4ZTlhYmUxNSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlMzAxZWRmYjJiYzQ3NzY4YjcyMjJhNjhjYWU4ZGU4YmU3OTZkMWQ5ZjYxY2RiZDFhZjkwMzk5ODVlZDUwMDljIgotCi1QWVBJX1BBQ0tBR0UgPSAiUHlybzQiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVJERVBFTkRTXyR7UE59ICs9ICIgXAotICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKLSAgICAke1BZVEhPTl9QTn0tc2VsZWN0b3JzMzQgXAotICAgICR7UFlUSE9OX1BOfS1zZXJwZW50IFwKLSAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKLSAgICAke1BZVEhPTl9QTn0temxpYiBcCi0gICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tcHlybzQvcHl0aG9uLXB5cm80XzQuNjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1weXJvNC9weXRob24tcHlybzRfNC42My5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjY4M2UzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tcHlybzQvcHl0aG9uLXB5cm80XzQuNjMuYmIKQEAgLTAsMCArMSwxOCBAQAorU1VNTUFSWSA9ICJQeXRob24gUmVtb3RlIE9iamVjdHMiCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTM3OGFjZWYzNzVlMTdhM2JmZjAzYmQwZjc4YzUzMjIwIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZTFkNzcyYjY3YmY3YzZmNzVmYTMxNzRiYzk1Yzg4MzkiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjdkMmIzNDE1NjYxOWJhMzdlOTIxMDBhZjk1YWFkZTgxMjlkZDJiNzMyN2ViMDU4MjFkNDM4ODc0NTFmN2Q3YiIKKworUFlQSV9QQUNLQUdFID0gIlB5cm80IgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29scworCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tbG9nZ2luZyBcCisgICAgJHtQWVRIT05fUE59LXNlbGVjdG9yczM0IFwKKyAgICAke1BZVEhPTl9QTn0tc2VycGVudCBcCisgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCisgICAgJHtQWVRIT05fUE59LXpsaWIgXAorICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLXRocmlmdC9weXRob24tdGhyaWZ0XzAuMTAuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLXRocmlmdC9weXRob24tdGhyaWZ0XzAuMTAuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZmNjFiZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi10aHJpZnQvcHl0aG9uLXRocmlmdF8wLjEwLjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1TVU1NQVJZID0gIlB5dGhvbiBiaW5kaW5ncyBmb3IgdGhlIEFwYWNoZSBUaHJpZnQgUlBDIHN5c3RlbSIKLUxJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT0yNmEyMDA5ZGRjYjdjNDE2MmY4YmFmZDVlZjczYzY3MCIKLQotU1JDX1VSSVttZDVzdW1dID0gIjc2YmI3NjhhMjEwMjU3ZGQyMDM5MjMxMTAwNDJlNTYwIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImI3ZjZjMDkxNTUzMjExNjlhZjAzZjlmYjIwZGMxNWE0YTBjNzQ4MWU3YzMzNGE1YmE4ZjdmMGQ4NjQ2MzMyMDkiCi0KLVBZUElfUEFDS0FHRV9FWFQgPSAiemlwIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiXAotICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKLSAgICAke1BZVEhPTl9QTn0tc2l4IFwKLSAgICAke1BZVEhPTl9QTn0tc3RyaW5nb2xkIFwKLSAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLXRocmlmdC9weXRob24tdGhyaWZ0XzAuMTEuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLXRocmlmdC9weXRob24tdGhyaWZ0XzAuMTEuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDQ3ZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tdGhyaWZ0L3B5dGhvbi10aHJpZnRfMC4xMS4wLmJiCkBAIC0wLDAgKzEsMTUgQEAKK1NVTU1BUlkgPSAiUHl0aG9uIGJpbmRpbmdzIGZvciB0aGUgQXBhY2hlIFRocmlmdCBSUEMgc3lzdGVtIgorTElDRU5TRSA9ICJBcGFjaGUtMi4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87bWQ1PWUzNjQxYWUxYTI2Y2Y1YzEyYTNhNzFiZDMwMzBhYjBlIgorCitTUkNfVVJJW21kNXN1bV0gPSAiMzYxNjVkNWM4MGU2YjEwMWRiZTlmY2Y3ZWY1MjRkNTEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2Q1OWFjNGZkY2IyYzU4MDM3ZWJkNGE5ZGE1ZjlhNDllM2UwMzRiZjc1YjNmMjZkOWZlNDhiYTNkODgwNmU2YiIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tbG9nZ2luZyBcCisgICAgJHtQWVRIT05fUE59LXNpeCBcCisgICAgJHtQWVRIT05fUE59LXN0cmluZ29sZCBcCisgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5cnRtXzAuNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXJ0bV8wLjQuMi5iYgppbmRleCA3MmYwOTIxLi45ZDg1MWFiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5cnRtXzAuNC4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHlydG1fMC40LjIuYmIKQEAgLTEwLDcgKzEwLDI3IEBACiAKIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCiAKK1BBQ0tBR0VTID0rICIke1BOfS10ZXN0cyAke1BOfS1zYW1wbGVzIgorCitGSUxFU18ke1BOfS1zYW1wbGVzICs9ICIgXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3J0bS9zYW1wbGVzIFwKKyIKKworRklMRVNfJHtQTn0tdGVzdHMgKz0gIiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vcnRtL3Rlc3RzIFwKKyIKKwogUkRFUEVORFNfJHtQTn0gKz0gIlwKICAgICAke1BZVEhPTl9QTn0tanNvbiBcCisgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAogICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAotICAgICIKKyIKKworUkRFUEVORFNfJHtQTn0tc2FtcGxlcyArPSAiIFwKKyAgICAke1BOfSBcCisiCisKK1JERVBFTkRTXyR7UE59LXRlc3RzICs9ICIgXAorICAgICR7UE59IFwKKyAgICAke1BZVEhPTl9QTn0tdW5pdHRlc3QgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYWxlbWJpYy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hbGVtYmljLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWE2NDEyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYWxlbWJpYy5pbmMKQEAgLTAsMCArMSwxNSBAQAorREVTQ1JJUFRJT04gPSAiQSBkYXRhYmFzZSBtaWdyYXRpb24gdG9vbCBmb3IgU1FMQWxjaGVteSIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YzVmMTM2MTI5NjgzNWZmOTRiZGE3M2RiN2RkMzEyYTYiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI1Y2ZlZjU4NjQxYzlhOTRkNGE1ZDU0N2U5NTFhN2RkYSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIxM2I4NjExNzg4YWNmMGQ3YjYxNzc3NWRiNWMyYWUyNjU1NGE2ZDQyNjNjNTkwZWY2MjhkNDQ4ZmQwNWFlZjU2IgorCitQWVBJX1BBQ0tBR0UgPSAiYWxlbWJpYyIKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tZGF0ZXV0aWwgXAorICAgICR7UFlUSE9OX1BOfS1lZGl0b3IgXAorICAgICR7UFlUSE9OX1BOfS1tYWtvIFwKKyAgICAke1BZVEhPTl9QTn0tc3FsYWxjaGVteSBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hbGVtYmljXzAuOS44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYWxlbWJpY18wLjkuOC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmNiMmIxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYWxlbWJpY18wLjkuOC5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1hbGVtYmljLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXNuMWNyeXB0by5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc24xY3J5cHRvLmluYwppbmRleCA0MWI3MzQyLi41YzM3OTk1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc24xY3J5cHRvLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc24xY3J5cHRvLmluYwpAQCAtNiw4ICs2LDE4IEBACiAKIFBZUElfUEFDS0FHRSA9ICJhc24xY3J5cHRvIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiOTdkNTQ2NjVjMzk3YjcyYjE2NTc2ODM5OGRmZGQ4NzYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDg3NDk4MTMyOWNmZWJiMzY2ZDY1ODRjM2QxNmU5MTNmMmEwZWIwMjZjOTQ2M2VmY2M0YWFmNDJhOWQ5NGQ3MCIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkZTM1MjA0MjZlODFhNjU4MTM1MmQ0MzY2ZjMxMGViMSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI5ZDVjMjA0NDFiYWYwY2I2MGE0YWMzNGNjNDQ3YzZjMTg5MDI0YjZiNGM2Y2Q3ODc3MDM0ZjQ5NjVjNDY0ZTQ5IgogCiBpbmhlcml0IHB5cGkKKworUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1jb2RlY3MgXAorICAgICR7UFlUSE9OX1BOfS1jcnlwdCBcCisgICAgJHtQWVRIT05fUE59LWN0eXBlcyBcCisgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKKyAgICAke1BZVEhPTl9QTn0taW8gXAorICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorIgorCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFzbjFjcnlwdG9fMC4yMy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXNuMWNyeXB0b18wLjIzLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhZjYwYzIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXNuMWNyeXB0b18wLjIzLjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWluaGVyaXQgc2V0dXB0b29scwotcmVxdWlyZSBweXRob24tYXNuMWNyeXB0by5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFzbjFjcnlwdG9fMC4yNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXNuMWNyeXB0b18wLjI0LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZhYWNlMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFzbjFjcnlwdG9fMC4yNC4wLmJiCkBAIC0wLDAgKzEsNyBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1hc24xY3J5cHRvLmluYworCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCisgICAgJHtQWVRIT05fUE59LXRleHR1dGlscyBcIAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXN0cm9pZC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc3Ryb2lkLmluYwppbmRleCA0Y2IxYTNjLi5lYWQyYjZlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc3Ryb2lkLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc3Ryb2lkLmluYwpAQCAtNCwxNyArNCwyOCBAQAogTElDRU5TRSA9ICJMR1BMLTIuMSIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNmY2NWU0ZWE4MjkwZWMwMzIzMjA0NjA5MDVhZmI4MjgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDkyYzJhMjA0NGFkYmY2YTg0YTY3MWI3NTIyZTkyOTVhZDJmNmE3Yzc4MWI4OTkwMTQzMDhkYjI1MzEyZGQzNSIKK1NSQ19VUklbbWQ1c3VtXSA9ICI3ZDdkYzAwMGIyNWYwY2JmY2NhMjBjYjlhOGRjMDMxMCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzNWNmYWU0N2FhYzE5YzdiNDA3YjcwOTU0MTBlODk1ZTgzNmYyMjg1Y2NmMTIyMDMzNmFmYmE3NDRjYzRjNWYyIgogCiBpbmhlcml0IHB5cGkKIAorUEFDS0FHRVMgPSsgIiR7UE59LXRlc3RzIgorCitGSUxFU18ke1BOfS10ZXN0cyArPSAiIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9hc3Ryb2lkL3Rlc3QqIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9hc3Ryb2lkL19fcHljYWNoZV9fL3Rlc3QqIFwKKyIKKwogUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICJcCiAgICAgJHtQWVRIT05fUE59LWRpc3R1dGlscyBcCiAgICAgJHtQWVRIT05fUE59LWxhenktb2JqZWN0LXByb3h5IFwKKyAgICAke1BZVEhPTl9QTn0tbG9nZ2luZyBcCiAgICAgJHtQWVRIT05fUE59LXNpeCBcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAogICAgICR7UFlUSE9OX1BOfS13cmFwdCBcCi0gICAgJHtQWVRIT05fUE59LXJlIFwKICAgICAke1BZVEhPTl9QTn0tc2V0dXB0b29scyBcCiAiCisKK1JERVBFTkRTXyR7UE59LXRlc3RzX2NsYXNzLXRhcmdldCArPSAiXAorICAgICR7UFlUSE9OX1BOfS11bml0dGVzdCBcCisgICAgJHtQWVRIT05fUE59LXhtbCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc3Ryb2lkXzEuNS4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXN0cm9pZF8xLjUuMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjdhMGE1ZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc3Ryb2lkXzEuNS4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLWFzdHJvaWQuaW5jCi0KLVJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiJHtQWVRIT05fUE59LWVudW0zNCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1pbXBvcnRsaWIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tc2luZ2xlZGlzcGF0Y2ggXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFzdHJvaWRfMS42LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc3Ryb2lkXzEuNi4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4NzM5NGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc3Ryb2lkXzEuNi4zLmJiCkBAIC0wLDAgKzEsMTAgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tYXN0cm9pZC5pbmMKKworUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1lbnVtMzQgXAorICAgICR7UFlUSE9OX1BOfS1iYWNrcG9ydHMtZnVuY3Rvb2xzLWxydS1jYWNoZSBcCisgICAgJHtQWVRIT05fUE59LXJlIFwKKyAgICAke1BZVEhPTl9QTn0tc2luZ2xlZGlzcGF0Y2ggXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXR0ci5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ5M2RkNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHIuaW5jCkBAIC0wLDAgKzEsOSBAQAorREVTQ1JJUFRJT04gPSAiU2ltcGxlIGRlY29yYXRvciB0byBzZXQgYXR0cmlidXRlcyBvZiB0YXJnZXQgZnVuY3Rpb24gb3IgY2xhc3MgaW4gYSBEUlkgd2F5IgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2RlbmlzLXJ5emhrb3YvYXR0ciIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87bWQ1PTU5ODA1YTAyODVmNGQyYjZhYmRlZGFlNzNkYjRmNWMxIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNjhiOWE1MDM5OTEyNDFmYjJkZjI4NDg4Njg2YjBlMWUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTA5MTU0ODA1OGQxN2YxMzI1OTZlNjFmYTc1MThlNTA0Zjc2YjlhNGM2MWNhN2Q4NmUxZjk2ZGJmN2Q0Nzc1ZCIKKworaW5oZXJpdCBweXBpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdHRyXzAuMy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXR0cl8wLjMuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzlkNmNiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXR0cl8wLjMuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tYXR0ci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHJzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHJzLmluYwppbmRleCBlZGRlNzllLi5jMjlmMDU4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdHRycy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXR0cnMuaW5jCkBAIC0zLDcgKzMsMTIgQEAKIExJQ0VOU0UgPSAiTUlUIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZDRhYjI1OTQ5YTczZmU3ZDRmZGVlOTNiY2JkYmY4ZmYiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI0MzE0Zjc4NGNhMzE3NGQ5MTk1NmRhOTgyODI0ODk2MCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJjNzhmNTNlMzJkN2NmMzZkODU5N2M4YTJjN2UzYzBhZDIxMGY5N2I5NTA5ZTE1MmU0YzM3ZmE4MDg2OWY4MjNjIgorU1JDX1VSSVttZDVzdW1dID0gImQ3YTg5MDYzYjJlMGZkMzZiZDgyMzg5YzRkODI4MjFkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFjNzk2MGNjZmQ2YTAwNWNkOWY3YmE4ODRlNjMxNmI1ZTQzMGEzZjFhNmMzN2M1Zjg3ZDhiNDNmODNiNTRlYzkiCiAKIGluaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWNyeXB0b2dyYXBoeSBcCisgICAgJHtQWVRIT05fUE59LWN0eXBlcyBcCisiICAgIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXR0cnNfMTcuMy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXR0cnNfMTcuMy4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNmZkZjE1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHJzXzE3LjMuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1hdHRycy5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHJzXzE3LjQuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHJzXzE3LjQuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2JlYzBmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXR0cnNfMTcuNC4wLmJiCkBAIC0wLDAgKzEsNiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1hdHRycy5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdXRvbWF0LzAwMDEtc2V0dXAucHktcmVtb3ZlLXRoZS1kZXBlbmRlbmN5LW9uLW0yci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF1dG9tYXQvMDAwMS1zZXR1cC5weS1yZW1vdmUtdGhlLWRlcGVuZGVuY3ktb24tbTJyLnBhdGNoCmluZGV4IDBlYmIyMjAuLmQ2ZGVmOTggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF1dG9tYXQvMDAwMS1zZXR1cC5weS1yZW1vdmUtdGhlLWRlcGVuZGVuY3ktb24tbTJyLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF1dG9tYXQvMDAwMS1zZXR1cC5weS1yZW1vdmUtdGhlLWRlcGVuZGVuY3ktb24tbTJyLnBhdGNoCkBAIC0xNSwxMCArMTUsMTAgQEAKICBzZXR1cC5weSB8IDEwIC0tLS0tLS0tLS0KICAxIGZpbGUgY2hhbmdlZCwgMTAgZGVsZXRpb25zKC0pCiAKLWRpZmYgLS1naXQgYS9zZXR1cC5weSBiL3NldHVwLnB5Ci1pbmRleCBkMzYwYzY0Li43YjQxODBhIDEwMDY0NAotLS0tIGEvc2V0dXAucHkKLSsrKyBiL3NldHVwLnB5CitJbmRleDogQXV0b21hdC0wLjYuMC9zZXR1cC5weQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIEF1dG9tYXQtMC42LjAub3JpZy9zZXR1cC5weQorKysrIEF1dG9tYXQtMC42LjAvc2V0dXAucHkKIEBAIC00LDE0ICs0LDYgQEAgU2V0dXAgZmlsZSBmb3IgYXV0b21hdAogIAogIGZyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAsIGZpbmRfcGFja2FnZXMKQEAgLTQ2LDcgKzQ2LDQgQEAKIC0gICAgICAgICdtMnInLAogICAgICBdLAogICAgICBpbnN0YWxsX3JlcXVpcmVzPVsKLSAgICAgICAgICJhdHRycz49MTYuMS4wIiwKLS0tIAotMi43LjQKLQorICAgICAgICAgImF0dHJzIiwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF3cy1pb3QtZGV2aWNlLXNkay1weXRob24uaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbi5pbmMKaW5kZXggZWFlYjAyMC4uYTMyOTllNCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbi5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbi5pbmMKQEAgLTEsMTggKzEsNDEgQEAKIERFU0NSSVBUSU9OID0gIlNESyBmb3IgY29ubmVjdGluZyB0byBBV1MgSW9UIHVzaW5nIFB5dGhvbi4iCiBIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1pb3QtZGV2aWNlLXNkay1weXRob24iCi1MSUNFTlNFID0gIkFwYWNoZS0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9OWFjNDk5MDFiODMzZTc2OWM3ZDZmMjFlOGRiZDdiMzAiCitMSUNFTlNFID0gIkFwYWNoZS0yLjAgJiAoRVBMLTEuMCB8IEVETC0xLjApIgorTElDRU5TRV8ke1BOfS1leGFtcGxlcyA9ICJBcGFjaGUtMi4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJcCisgICAgZmlsZTovL0xJQ0VOU0UudHh0O21kNT05YWM0OTkwMWI4MzNlNzY5YzdkNmYyMWU4ZGJkN2IzMCBcCisgICAgZmlsZTovL0FXU0lvVFB5dGhvblNESy9jb3JlL3Byb3RvY29sL3BhaG8vY2xpZW50LnB5O2VuZGxpbmU9MTQ7bWQ1PTVhM2M4YTFhNGJiNzFiZDkzNGY0NTBlY2ZmOTcyYWQ5IFwKKyIKIAotU1JDX1VSSVttZDVzdW1dID0gImU2NzgxZjZjNDJiYmM1NDdkNTA4ZDZmYTY3MjBhYzhmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjZiMjg2NWQ0ZjUxODc5NGI5NmE4MzRmYzgxYjU2ODQyOGRhYTBlZjkyMDM3ZGEyZTkyODhiNGFmNWQ4ZGQ3MzYiCitTUkNfVVJJW21kNXN1bV0gPSAiOTdlOGNmMGQ0MGVmMzc2NWQ5NzljMTliNTM0YTcxNmQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZDY4Y2JmZjM5NjE0M2U4MzdiNGMyM2I2NjIxZDNiN2FlMzc0MjgxYWZjNzVlZWQ4ZTUxYTI4NjI1ZDkxMjViYSIKIAogaW5oZXJpdCBweXBpCiAKIFBZUElfUEFDS0FHRSA9ICJBV1NJb1RQeXRob25TREsiCiAKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgICAgICBpbnN0YWxsIC1kIC1tMDc1NSAke0R9JHtkYXRhZGlyfS8ke0JQTn0vZXhhbXBsZXMKKyAgICAgICAgY3AgLS1wcmVzZXJ2ZT1tb2RlLHRpbWVzdGFtcHMgLVIgJHtTfS9zYW1wbGVzLyogJHtEfSR7ZGF0YWRpcn0vJHtCUE59L2V4YW1wbGVzCisgICAgICAgICMgdGhpcyByZXF1aXJlcyB0aGUgZnVsbCBibG93biBBV1MgUHl0aG9uIFNESworICAgICAgICBybSAtciAke0R9JHtkYXRhZGlyfS8ke0JQTn0vZXhhbXBsZXMvYmFzaWNQdWJTdWIKK30KKworUEFDS0FHRVMgPSsgIiR7UE59LWV4YW1wbGVzIgorCiBSREVQRU5EU18ke1BOfSArPSAiIFwKLSAgICAke1BZVEhPTl9QTn0tcHlvcGVuc3NsIFwKKyAgICAke1BZVEhPTl9QTn0tY3J5cHQgXAorICAgICR7UFlUSE9OX1BOfS1kYXRldGltZSBcCisgICAgJHtQWVRIT05fUE59LWlvIFwKICAgICAke1BZVEhPTl9QTn0tanNvbiBcCisgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAorICAgICR7UFlUSE9OX1BOfS1tYXRoIFwKKyAgICAke1BZVEhPTl9QTn0tbmV0Y2xpZW50IFwKKyAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCisgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCiAiCitSREVQRU5EU18ke1BOfS1leGFtcGxlcyArPSAiJHtQTn0iCisKK0ZJTEVTXyR7UE59LWV4YW1wbGVzID0gIiR7ZGF0YWRpcn0vJHtCUE59L2V4YW1wbGVzIgogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hd3MtaW90LWRldmljZS1zZGstcHl0aG9uXzEuMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbl8xLjIuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTJhZTk3OC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hd3MtaW90LWRldmljZS1zZGstcHl0aG9uXzEuMi4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLWF3cy1pb3QtZGV2aWNlLXNkay1weXRob24uaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hd3MtaW90LWRldmljZS1zZGstcHl0aG9uXzEuMy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbl8xLjMuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTBlOTczCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbl8xLjMuMS5iYgpAQCAtMCwwICsxLDQgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbi5pbmMKKworUkRFUEVORFNfJHtQTn0tZXhhbXBsZXMgKz0gIiR7UFlUSE9OX1BOfS1hcmdwYXJzZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJhYmVsLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJhYmVsLmluYwppbmRleCA1ZTZjYTNkLi40ZGNiMjU1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iYWJlbC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmFiZWwuaW5jCkBAIC0zLDggKzMsOCBAQAogTElDRU5TRSA9ICJCU0QiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1lNmVlYWFiYzkyY2ZjMmQwM2Y1M2U3ODkzMjRkNzI5MiIKIAotU1JDX1VSSVttZDVzdW1dID0gIjYwMjI4YjNjZTkzYTIwMzM1NzE1OGI5MDlhZmU4YWUxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjYwMDdkYWY3MTRkMGNkNTUyNGJiZTQzNmUyZDQyYjNjMjBlNjhkYTY2Mjg5NTU5MzQxZTQ4ZDJjZDZkMjU4MTEiCitTUkNfVVJJW21kNXN1bV0gPSAiMTUyYTZiMTdmZTQxMTBiOTU2NzVhY2ViOWFmOWZhYjIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGNlNGNiNmZkZDQzOTNlZGQzMjMyMjdjYmEzYTA3N2JjZWIyYTZjZTUyMDFjOTAyYzY1ZTczMDA0NmY0MWYxNCIKIAogUFlQSV9QQUNLQUdFID0gIkJhYmVsIgogCkBAIC0xMyw4ICsxMywxMyBAQAogQ0xFQU5CUk9LRU4gPSAiMSIKIAogUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWNvZGVjcyBcCisgICAgJHtQWVRIT05fUE59LWRpZmZsaWIgXAorICAgICR7UFlUSE9OX1BOfS1kaXN0dXRpbHMgXAorICAgICR7UFlUSE9OX1BOfS1uZXRzZXJ2ZXIgXAogICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKICAgICAke1BZVEhPTl9QTn0tcGlja2xlIFwKICAgICAke1BZVEhPTl9QTn0tcHl0eiBcCisgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKICAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJhYmVsXzIuNS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmFiZWxfMi41LjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwZWFkY2QuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmFiZWxfMi41LjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWluaGVyaXQgc2V0dXB0b29scwotcmVxdWlyZSBweXRob24tYmFiZWwuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iYWJlbF8yLjUuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJhYmVsXzIuNS4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3YzE2NmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iYWJlbF8yLjUuMy5iYgpAQCAtMCwwICsxLDYgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tYmFiZWwuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJjcnlwdC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iY3J5cHQuaW5jCmluZGV4IDY2N2EzZmIuLjQ0OTA5NjkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJjcnlwdC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmNyeXB0LmluYwpAQCAtNCwxMiArNCwxNCBAQAogCiBERVBFTkRTICs9ICIke1BZVEhPTl9QTn0tY2ZmaS1uYXRpdmUiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIyMGRhOGI0MDc5MGNhYWQ5OWM0MDg2ZGJhNTMzMTU0YiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI2NjQ1YzhkMGFkODQ1MzA4ZGUzZWI5YmU5OGI2ZmQyMmE0NmVjNTQxMmJmYzY2NGE0MjNlNDExY2RkOGY1NDg4IgorU1JDX1VSSVttZDVzdW1dID0gIjg0MDhhYmM5NzQ0NDZlNjQ4NjJhOTc0MjEwNGU5N2I2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjY3ZWQxYTM3NGM5MTU1ZWMwODQwMjE0Y2U4MDQ2MTZkZTQ5YzNkZjljNWJjNjY3NDA2ODdjMWM5YjFjZDllOGQiCiAKIGluaGVyaXQgcHlwaQogCiBSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIlwKICAgICAke1BZVEhPTl9QTn0tY2ZmaSBcCisgICAgJHtQWVRIT05fUE59LWN0eXBlcyBcCisgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKICAgICAke1BZVEhPTl9QTn0tc2l4IFwKICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJjcnlwdF8zLjEuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJjcnlwdF8zLjEuMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQzMzM1NC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iY3J5cHRfMy4xLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWluaGVyaXQgc2V0dXB0b29scwotcmVxdWlyZSBweXRob24tYmNyeXB0LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmNyeXB0XzMuMS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmNyeXB0XzMuMS40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMzZhYTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iY3J5cHRfMy4xLjQuYmIKQEAgLTAsMCArMSw2IEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWJjcnlwdC5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iZWhhdmVfMS4yLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iZWhhdmVfMS4yLjUuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0MWE3OWQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmVoYXZlXzEuMi41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotU1VNTUFSWSA9ICJBIGJlaGF2aW9yLWRyaXZlbiBkZXZlbG9wbWVudCBmcmFtZXdvcmssIFB5dGhvbiBzdHlsZSIKLUxJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZDk1MDQzOWU4ZWE2ZWQyMzNlNDI4OGY1ZTFhNDljMDYiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIzYWY0YmMyODg2ZDJiZTk4MmU0MWJmYWJhNjFkYTNiYyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4MWI3MzFhYzUxODdlMzFlNGFhZDI1OTQ5NDRmYTkxNDk0MzY4M2E5ODE4MzIwODQ2ZDAzN2M1ZWJkNmQ1ZDBiIgotCi1SREVQRU5EU18ke1BOfSArPSAicHl0aG9uLWRpZmZsaWIgcHl0aG9uLXNldHVwdG9vbHMgcHl0aG9uLXBrZ3V0aWwgcHl0aG9uLW1pc2MgcHl0aG9uLWFyZ3BhcnNlIHB5dGhvbi14bWwgcHl0aG9uLWltcG9ydGxpYiBweXRob24tZW51bTM0IHB5dGhvbi1wYXJzZSBweXRob24tcGFyc2UtdHlwZSBweXRob24tc2l4IgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmVoYXZlXzEuMi42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmVoYXZlXzEuMi42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3OTczMDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iZWhhdmVfMS4yLjYuYmIKQEAgLTAsMCArMSwxMCBAQAorU1VNTUFSWSA9ICJBIGJlaGF2aW9yLWRyaXZlbiBkZXZlbG9wbWVudCBmcmFtZXdvcmssIFB5dGhvbiBzdHlsZSIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZDk1MDQzOWU4ZWE2ZWQyMzNlNDI4OGY1ZTFhNDljMDYiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIzZjA1Yzg1OWExYzQ1ZjVlZDMzZTkyNTgxN2FkODg3ZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJiOTY2MjMyN2FhNTMyOTRjMTM1MWIwYTljMzY5MDkzY2NlYzFkMjEwMjZmMDUwYzNiZDliM2U1Y2NjZjgxYTg2IgorCitSREVQRU5EU18ke1BOfSArPSAicHl0aG9uLWRpZmZsaWIgcHl0aG9uLXNldHVwdG9vbHMgcHl0aG9uLXBrZ3V0aWwgcHl0aG9uLW1pc2MgcHl0aG9uLWFyZ3BhcnNlIHB5dGhvbi14bWwgcHl0aG9uLWVudW0zNCBweXRob24tcGFyc2UgcHl0aG9uLXBhcnNlLXR5cGUgcHl0aG9uLXNpeCIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJpdGFycmF5LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJpdGFycmF5LmluYwppbmRleCA3YjZlMGQxLi4zOGEyMmY2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iaXRhcnJheS5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYml0YXJyYXkuaW5jCkBAIC04LDQgKzgsNCBAQAogCiBpbmhlcml0IHB5cGkKIAotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmVzZGsiCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ibGlua2VyLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJsaW5rZXIuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZjM5MDgzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmxpbmtlci5pbmMKQEAgLTAsMCArMSw3IEBACitERVNDUklQVElPTiA9ICJGYXN0LCBzaW1wbGUgb2JqZWN0LXRvLW9iamVjdCBhbmQgYnJvYWRjYXN0IHNpZ25hbGluZy4iCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT05NDZkN2U4OWFmNmY3NzMzYWVhZWJlZDU2MzVkMjY4MiIKKworU1JDX1VSSVttZDVzdW1dID0gIjhiMzcyMjM4MWY4M2MyODEzYzUyZGUzMDE2YjY4ZDMzIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ3MWFlZTI1ZjM5OTJiZDMyNWFmYTM3NzJmMTA2M2RiZGJiY2E5NDdhMDQxYjhiODk0NjZkYzAwZDYwNmY4YjYiCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJsaW5rZXJfMS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmxpbmtlcl8xLjQuYmIKaW5kZXggMGNlMTQxZi4uYmM0MTY0ZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmxpbmtlcl8xLjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmxpbmtlcl8xLjQuYmIKQEAgLTEsOCArMSwyIEBACi1ERVNDUklQVElPTiA9ICJGYXN0LCBzaW1wbGUgb2JqZWN0LXRvLW9iamVjdCBhbmQgYnJvYWRjYXN0IHNpZ25hbGluZy4iCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT05NDZkN2U4OWFmNmY3NzMzYWVhZWJlZDU2MzVkMjY4MiIKLQotU1JDX1VSSVttZDVzdW1dID0gIjhiMzcyMjM4MWY4M2MyODEzYzUyZGUzMDE2YjY4ZDMzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ3MWFlZTI1ZjM5OTJiZDMyNWFmYTM3NzJmMTA2M2RiZGJiY2E5NDdhMDQxYjhiODk0NjZkYzAwZDYwNmY4YjYiCi0KIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1ibGlua2VyLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2FuLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNhbi5pbmMKaW5kZXggMWRiYzgwOS4uYTcxYzQ3YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2FuLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYW4uaW5jCkBAIC0zLDcgKzMsMTUgQEAKIExJQ0VOU0UgPSAiTEdQTHYzIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTM4MTM4YmFhMTAwZDcyNTk5MzQ1OTA4NTBiYzA0MDZlIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiYjJhMTY0ODg3YzFjNmEyYTI0OTBiNWFmYjM2ZTM2ZGIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjk2MWI2Y2U3NWE3ZjA4YjU4NmY0ZDJjYWU4Y2RjNDA5ODgxNzMxYjg1MWZjNDA1ZmEyMWNiMTZiYWQwMGQ4NyIKK1NSQ19VUklbbWQ1c3VtXSA9ICIzMzEwZjBhYTJhODQ5MmQwZmY2MTRlY2Y2MzZlYzhhOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0YTVjMDFkZDY3ZmVlZGEzNWY4OGU2YzEyZWExNGFjOGNhYmQ0MjZiOWJlMGNjNWY5ZmQwODNmZTkwYTlkYmZjIgogCiBQWVBJX1BBQ0tBR0U9InB5dGhvbi1jYW4iCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiXAorICAgICR7UFlUSE9OX1BOfS1jdHlwZXMgXAorICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tbWlzYyBcCisgICAgJHtQWVRIT05fUE59LW5ldHNlcnZlciBcCisgICAgJHtQWVRIT05fUE59LXNxbGl0ZTMgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2FuXzIuMC4wYjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYW5fMi4wLjBiMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM4MWE5ZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYW5fMi4wLjBiMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotcmVxdWlyZSBweXRob24tY2FuLmluYwotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi1zcWxpdGUzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2FuXzIuMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2FuXzIuMS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwZWRiNjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYW5fMi4xLjAuYmIKQEAgLTAsMCArMSw4IEBACityZXF1aXJlIHB5dGhvbi1jYW4uaW5jCitpbmhlcml0IHB5cGkgc2V0dXB0b29scworCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tYXJncGFyc2UgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyAgICAke1BZVEhPTl9QTn0temxpYiBcCisiICAgIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2Fzc2FuZHJhLWRyaXZlci5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYXNzYW5kcmEtZHJpdmVyLmluYwppbmRleCBhNTIyZTY3Li4xNjQ4ZDNlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYXNzYW5kcmEtZHJpdmVyLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYXNzYW5kcmEtZHJpdmVyLmluYwpAQCAtOCw4ICs4LDggQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTJlZTQxMTEyYTQ0ZmU3MDE0ZGNlMzNlMjY0NjhiYTkzIgogU1JDTkFNRSA9ICJjYXNzYW5kcmEtZHJpdmVyIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiMTY1OWIwNzRlMTBjNjEzZTViYTFjZGY5Mjk3NGE1N2EiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjQzYmVkMGZhYzA4ZWU5MTYzMGYwZjM1NTU2YmI2MmMzYjRiMDA3YzIwZDRlNmU4ZDM0OWY3NjllYTY0ODE1MCIKK1NSQ19VUklbbWQ1c3VtXSA9ICI1YzhiNGEzYWRmYzQ4MTgwZThlYzM4YjhjNGU5OTZmZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2MWI2NzBmYjJiYTk1ZDUxZDkxZmE3YjU4OWFhZTM2NjZkZjQ5NDcxM2Y1ZDFlZDc4YmI1YzUxMDc3OGQ3N2YwIgogCiBESVNUVVRJTFNfQlVJTERfQVJHUyArPSAiIFwKICAgICAtLW5vLWxpYmV2IFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNlcnRpZmkuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2VydGlmaS5pbmMKaW5kZXggZTU1MGY3ZS4uMjZkZjVjMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2VydGlmaS5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2VydGlmaS5pbmMKQEAgLTcsNyArNyw3IEBACiBMSUNFTlNFID0gIklTQyIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWY3N2Y2MWQxNGVlNmZlYWM0MjI4ZDNlYmQyNmNjMWYxIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNDhlODM3MGRhOGIzNzBhMTZlMjIzZWU5YzdiNmIwNjMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDA1MjNkMmVmYjYwNTIzZTExM2I0NDYwMjI5OGYwOTYwZTkwMDM4OGNmM2JiNjA0M2Y2NDVjZjU3ZWE5ZTNmNSIKK1NSQ19VUklbbWQ1c3VtXSA9ICIwNjhmZDVjM2M2OTBhZTQ3NTA0YjNlMGJmNGU1NmM0YyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlZGJjM2YyMDM0MjdlZWY1NzFmNzlhNzY5MmJiMTYwYTJiMGY3Y2NhYTMxOTUzZTk5YmQxN2UzMDdjZjYzZjdkIgogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jZXJ0aWZpXzIwMTcuNy4yNy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2VydGlmaV8yMDE4LjEuMTguYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNlcnRpZmlfMjAxNy43LjI3LjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNlcnRpZmlfMjAxOC4xLjE4LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jZmZpLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNmZmkuaW5jCmluZGV4IDhkY2RiNjMuLmU2MDcxZWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNmZmkuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNmZmkuaW5jCkBAIC00LDExICs0LDEzIEBACiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT01Njc3ZTJmZGJmN2NkZGE2MWQ2ZGQyYjU3ZGY1NDdiZiIKIERFUEVORFMgKz0gImxpYmZmaSAke1BZVEhPTl9QTn0tcHljcGFyc2VyIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiYTczMTQ4NzMyNGI1MDFjODI5NTIyMWI2MjlkM2Y1ZjMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYWI4N2RkOTFjMGM0MDczNzU4ZDA3MzM0YzFlNWY3MTJjZThmZTQ4ZjAwN2I4NmY4MjM4NzczOTYzZWU3MDBhNiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhYzg0OTJmNGFkOTUyMzYwNzM3NDEzZTgyZDY2MTkwOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlOTBmMTc5ODBlNmFiMGYzYzJmMzczMGU1NmQxZmU5YmNiYTE4OTFlZWVhNTg5NjZlODlkMzUyNDkyY2M3NGY0IgogCiBSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tY3R5cGVzIFwKICAgICAke1BZVEhPTl9QTn0taW8gXAorICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCiAiCiAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNmZmlfMS4xMS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2ZmaV8xLjExLjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjZDYyZDEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2ZmaV8xLjExLjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLXJlcXVpcmUgcHl0aG9uLWNmZmkuaW5jCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2ZmaV8xLjExLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jZmZpXzEuMTEuNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzY2N2I4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2ZmaV8xLjExLjUuYmIKQEAgLTAsMCArMSw2IEBACityZXF1aXJlIHB5dGhvbi1jZmZpLmluYworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2hhcmRldC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jaGFyZGV0LmluYwppbmRleCA2MDM1NDg4Li42MzA1Mjk5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jaGFyZGV0LmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jaGFyZGV0LmluYwpAQCAtMTEsMyArMTEsMTMgQEAKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICI4NGFiOTJlZDFjNGQ0ZjE2OTE2ZTA1OTA2YjZiNzVhNmMwZmI1ZGI4MjFjYzY1ZTcwY2JkNjRhM2UyYTVlYWFlIgogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCisKK1BBQ0tBR0VTID0rICIke1BOfS1jbGkiCitSREVQRU5EU18ke1BOfS1jbGkgPSAiJHtQTn0gIgorRklMRVNfJHtQTn0tY2xpICs9ICIgXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L2NoYXJkZXQvY2xpIFwKKyIKKworUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNoYXJkZXRfMy4wLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jaGFyZGV0XzMuMC40LmJiCmluZGV4IGI3YTQ2ZTkuLjNiNmZlZWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNoYXJkZXRfMy4wLjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2hhcmRldF8zLjAuNC5iYgpAQCAtMSwyICsxLDQgQEAKIGluaGVyaXQgc2V0dXB0b29scwogcmVxdWlyZSBweXRob24tY2hhcmRldC5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1hcmdwYXJzZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNtZDJfMC43LjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jbWQyXzAuNy43LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTFlZjVmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNtZDJfMC43LjcuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1TVU1NQVJZID0gIkV4dHJhIGZlYXR1cmVzIGZvciBzdGFuZGFyZCBsaWJyYXJ5J3MgY21kIG1vZHVsZSIKLUhPTUVQQUdFID0gImh0dHA6Ly9wYWNrYWdlcy5weXRob24ub3JnL2NtZDIvIgotTElDRU5TRSA9ICJNSVQiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9zZXR1cC5weTtiZWdpbmxpbmU9NDk7ZW5kbGluZT00OTttZDU9MGYxM2M5Y2ZjNzUyODgyMjNjZjdlZGQyZjNiOTg1YTIiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI1NzZiNzhhZGQ2ZDY1MmI0OGRjZjkzNjJjZWNlODhlZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiNGUyZmI5ZmM2NTZhZGNjYzRkMDFkZmQ1NWFiNWE5YjA1ODkwZTk2MTk1MDU0M2Y2OTJlNzg4NTcyNWMyZDcyIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiXAotICAgICR7UFlUSE9OX1BOfS1kb2N0ZXN0IFwKLSAgICAke1BZVEhPTl9QTn0tcHlwYXJzaW5nIFwKLSAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAotICAgICR7UFlUSE9OX1BOfS1zaXggXAotICAgICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQgXAotICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKLSAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKLSAgICAke1BZVEhPTl9QTn0tdGV4dHV0aWxzIFwKLSAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jbWQyXzAuOC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY21kMl8wLjguMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDVhYjk4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY21kMl8wLjguMS5iYgpAQCAtMCwwICsxLDIxIEBACitTVU1NQVJZID0gIkV4dHJhIGZlYXR1cmVzIGZvciBzdGFuZGFyZCBsaWJyYXJ5J3MgY21kIG1vZHVsZSIKK0hPTUVQQUdFID0gImh0dHA6Ly9wYWNrYWdlcy5weXRob24ub3JnL2NtZDIvIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9zZXR1cC5weTtiZWdpbmxpbmU9NTE7ZW5kbGluZT01MTttZDU9MGYxM2M5Y2ZjNzUyODgyMjNjZjdlZGQyZjNiOTg1YTIiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI3MDFiOTE2ZmZhYzk5MTM3YmVhNDEzMjA1MTA2Zjk5MyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkMDk5NzZmOWFkMjMyNzg4M2MyZDA3YjVhY2I0MmU2NmFkNTJiMTdlMzUyODczYzIyMDQxZWQxMjRiZmU4YWJhIgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29scworCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1kb2N0ZXN0IFwKKyAgICAke1BZVEhPTl9QTn0tcHlwYXJzaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tcHlwZXJjbGlwIFwKKyAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAorICAgICR7UFlUSE9OX1BOfS1zaXggXAorICAgICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tdGV4dHV0aWxzIFwKKyAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jb25maWdwYXJzZXIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY29uZmlncGFyc2VyLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWZiODU4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY29uZmlncGFyc2VyLmluYwpAQCAtMCwwICsxLDExIEBACitTVU1NQVJZID0gIlRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBDb25maWdQYXJzZXIgY2xhc3Mgd2hpY2ggaW1wbGVtZW50cyBhIGJhc2ljIGNvbmZpZ3VyYXRpb24gbGFuZ3VhZ2Ugd2hpY2ggcHJvdmlkZXMgYSBzdHJ1Y3R1cmUgc2ltaWxhciB0byB3aGF04oCZcyBmb3VuZCBpbiBNaWNyb3NvZnQgV2luZG93cyBJTkkgZmlsZXMuIgorU0VDVElPTiA9ICJkZXZlbC9weXRob24iCitIT01FUEFHRSA9ICJodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvY29uZmlncGFyc2VyLmh0bWwiCitMSUNFTlNFID0gIk1JVCIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87YmVnaW5saW5lPTg7ZW5kbGluZT04O21kNT04MjI3MTgwMTI2Nzk3YTAxNDhmOTRmNDgzZjNlMTQ4OSIKKworU1JDX1VSSVttZDVzdW1dID0gImNmZGQ5MTVhNWI3YTZjMDk5MTdhNjRhNTczMTQwNTM4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjUzMDhiNDcwMjFiYzIzNDA5NjVjMzcxZjBmMDU4Y2M2OTcxYTA0NTAyNjM4ZDQyNDQyMjVjNDlkODBkYjI3M2EiCisKK2luaGVyaXQgcHlwaQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY29uZmlncGFyc2VyXzMuNS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY29uZmlncGFyc2VyXzMuNS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5ZjA0NWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jb25maWdwYXJzZXJfMy41LjAuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWNvbmZpZ3BhcnNlci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeS12ZWN0b3JzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeS12ZWN0b3JzLmluYwppbmRleCBlOWU0MDE5Li4wMGJiODdiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jcnlwdG9ncmFwaHktdmVjdG9ycy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5LXZlY3RvcnMuaW5jCkBAIC04LDggKzgsOCBAQAogICAgICR7UFlUSE9OX1BOfS1jcnlwdG9ncmFwaHkgXAogIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiMWRiNGMwOTA2MmEzYThlMWUyZDFmNWUzZTRkNzUyZDciCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYmViODMxYWE3MzY2M2EyMjRmNGQ3NTIwNDgzZWQwMmRhNTQ0NTMzYmIwM2IyNmVjMDdhNWY5YTBkZDA5NDFlMSIKK1NSQ19VUklbbWQ1c3VtXSA9ICJlZjExNWI4NzBjYzhkOGI5ZjBmNDE4OWI1MTJiYzE3MCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3OGM0YjRmM2Y4NDg1M2VhNWQwMzhlMmY1M2QzNTUyMjlkZDgxMTlmZTljZjk0OWMzZTQ5N2M4NWM3NjBhNWNhIgogCiBQWVBJX1BBQ0tBR0UgPSAiY3J5cHRvZ3JhcGh5X3ZlY3RvcnMiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeS12ZWN0b3JzXzIuMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5LXZlY3RvcnNfMi4xLjQuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeS12ZWN0b3JzXzIuMC4zLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jcnlwdG9ncmFwaHktdmVjdG9yc18yLjEuNC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeS5pbmMKaW5kZXggNGJhM2UzMi4uNGJlNzkwNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5LmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jcnlwdG9ncmFwaHkuaW5jCkBAIC0xMCw4ICsxMCw4IEBACiAgICAgJHtQWVRIT05fUE59LXNpeCBcCiAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIyNGNiZGFiM2ZkYTIyYmUzMWRkM2FlZjI4MDhmNWQyZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkMDRiYjI0MjUwODZjM2ZlODZmN2JjNDg5MTUyOTBiMTNlNzk4NDk3ODM5ZmJiMThhYjdmNmRmZmNmOThjYzNhIgorU1JDX1VSSVttZDVzdW1dID0gIjlmMzlkNGQ4ZjJiMDVmMjk1ZmEwZmY1MjQ3NWVjNGYyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImU0ZDk2NzM3MWM1YjZiMmU2Nzg1NTA2NjQ3MWQ4NDRjNWQ1MmQyMTBjMzZjMjhkNDlhODUwN2I5NmUyYzUyOTEiCiAKIFJERVBFTkRTXyR7UE59ICs9ICIgXAogICAgICR7UFlUSE9OX1BOfS1jZmZpIFwKQEAgLTI4LDcgKzI4LDYgQEAKICAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCiAgICAgJHtQWVRIT05fUE59LWFzbjFjcnlwdG8gXAogICAgICR7UFlUSE9OX1BOfS1weWNwYXJzZXIgXAotICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKICAgICAke1BZVEhPTl9QTn0tc2V0dXB0b29scyBcCiAgICAgJHtQWVRIT05fUE59LXNpeCBcCiAgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCkBAIC01NSw2ICs1NCw0IEBACiAgICAgJHtsaWJkaXJ9LyR7UFlUSE9OX1BOfTIuNy9zaXRlLXBhY2thZ2VzLyR7U1JDTkFNRX0vaGF6bWF0L2JpbmRpbmdzLy5kZWJ1ZyBcCiAiCiAKLUxERkxBR1NfYXBwZW5kID0gIiAtcHRocmVhZCIKLQogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5XzIuMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5XzIuMC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNWIxZTBiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeV8yLjAuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1jcnlwdG9ncmFwaHkuaW5jCi0KLVNSQ19VUkkgKz0gIiBcCi0gICAgZmlsZTovL3J1bi1wdGVzdCBcCi0iCi0KLURFUEVORFMgKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LWVudW0zNCBcCi0iCi0KLVJERVBFTkRTXyR7UE59ICs9ICIgXAotICAgICR7UFlUSE9OX1BOfS1lbnVtMzQgXAotICAgICR7UFlUSE9OX1BOfS1pcGFkZHJlc3MgXAotIgotCi1SREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LWVudW0zNCBcCi0gICAgJHtQWVRIT05fUE59LWlwYWRkcmVzcyBcCi0gICAgJHtQWVRIT05fUE59LWNvbnRleHRsaWIgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5XzIuMS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5XzIuMS40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljMmY4ODQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jcnlwdG9ncmFwaHlfMi4xLjQuYmIKQEAgLTAsMCArMSwyMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWNyeXB0b2dyYXBoeS5pbmMKKworU1JDX1VSSSArPSAiIFwKKyAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKKyIKKworREVQRU5EUyArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tZW51bTM0IFwKKyIKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWVudW0zNCBcCisgICAgJHtQWVRIT05fUE59LWlwYWRkcmVzcyBcCisiCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tZW51bTM0IFwKKyAgICAke1BZVEhPTl9QTn0taXBhZGRyZXNzIFwKKyAgICAke1BZVEhPTl9QTn0tY29udGV4dGxpYiBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWN5dGhvbi5pbmMKaW5kZXggNTcyY2I5Ni4uNWQzYjlkNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jeXRob24uaW5jCkBAIC01LDE3ICs1LDMxIEBACiBMSUNFTlNFID0gIkFwYWNoZS0yLjAiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9ZTIzZmFkZDZjZWVmOGM2MThmYzFjNjUxOTFkODQ2ZmEiCiBQWVBJX1BBQ0tBR0UgPSAiQ3l0aG9uIgotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJiOTM3NTBiMzQzODJiMDI1ZDY3OGJlYTgxOWI3NDkxYiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlNjg0MGEyYmEyNzA0ZjRmZmI0MGU0NTRjMzZmNzNhZWI0NDBhNDAwNTQ1M2VlOGQ3ZmY2YTAwZDgxMmJhMTc2IgorU1JDX1VSSVttZDVzdW1dID0gIjBlMDU2OGQ2YmVkNGIwOWFkMDFhZmUwYTM4ODA1MzA1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjYzNGUyZjEwZmM4ZDAyNmM2MzNjZmZhY2I0NWNkOGY0NTgyMTQ5ZmE2OGUxNDI4MTI0ZTc2MmRiYzU2NmU2OGEiCiAKIGluaGVyaXQgcHlwaQogCiBSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tbWlzYyBcCiAgICAgJHtQWVRIT05fUE59LW5ldHNlcnZlciBcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorICAgICR7UFlUSE9OX1BOfS1wa2d1dGlsIFwKKyAgICAke1BZVEhPTl9QTn0tcHlwYXJzaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tc2V0dXB0b29scyBcCiAgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKKyAgICAke1BZVEhPTl9QTn0teG1sIFwKKyIKKworUkRFUEVORFNfJHtQTn1fY2xhc3MtbmF0aXZlc2RrICs9ICJcCisgICAgbmF0aXZlc2RrLSR7UFlUSE9OX1BOfS1taXNjIFwKKyAgICBuYXRpdmVzZGstJHtQWVRIT05fUE59LW5ldHNlcnZlciBcCisgICAgbmF0aXZlc2RrLSR7UFlUSE9OX1BOfS1wa2d1dGlsIFwKKyAgICBuYXRpdmVzZGstJHtQWVRIT05fUE59LXB5cGFyc2luZyBcCisgICAgbmF0aXZlc2RrLSR7UFlUSE9OX1BOfS1zZXR1cHRvb2xzIFwKKyAgICBuYXRpdmVzZGstJHtQWVRIT05fUE59LXNoZWxsIFwKKyAgICBuYXRpdmVzZGstJHtQWVRIT05fUE59LXhtbCBcCiAiCiAKIGRvX2luc3RhbGxfYXBwZW5kKCkgewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uXzAuMjcuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWN5dGhvbl8wLjI3LjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkZjk0OTAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uXzAuMjcuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1jeXRob24uaW5jCi0KLVVQU1RSRUFNX0NIRUNLX1VSSSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL0N5dGhvbi8iCi1VUFNUUkVBTV9DSEVDS19SRUdFWCA9ICIvQ3l0aG9uLyg/UDxwdmVyPihcZCtbXC5cLV9dKikrKSIKLQotUkRFUEVORFNfJHtQTn0gKz0gIlwKLSAgICBweXRob24tZGlzdHJpYnV0ZSBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jeXRob25fMC4yOC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uXzAuMjguMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODAzYTZlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uXzAuMjguMi5iYgpAQCAtMCwwICsxLDEwIEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWN5dGhvbi5pbmMKKworVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvQ3l0aG9uLyIKK1VQU1RSRUFNX0NIRUNLX1JFR0VYID0gIi9DeXRob24vKD9QPHB2ZXI+KFxkK1tcLlwtX10qKSspIgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1kaXN0cmlidXRlIFwKKyAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYXRldXRpbC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYXRldXRpbC5pbmMKaW5kZXggY2E1MTA1OS4uMzMzYjVlMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGF0ZXV0aWwuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRhdGV1dGlsLmluYwpAQCAtMSwxMSArMSwxMSBAQAogU1VNTUFSWSA9ICJFeHRlbnNpb25zIHRvIHRoZSBzdGFuZGFyZCBQeXRob24gZGF0ZXRpbWUgbW9kdWxlIgogREVTQ1JJUFRJT04gPSAiVGhlIGRhdGV1dGlsIG1vZHVsZSBwcm92aWRlcyBwb3dlcmZ1bCBleHRlbnNpb25zIHRvIHRoZSBkYXRldGltZSBtb2R1bGUgYXZhaWxhYmxlIGluIHRoZSBQeXRob24gc3RhbmRhcmQgbGlicmFyeS4iCiBIT01FUEFHRSA9ICJodHRwczovL2RhdGV1dGlsLnJlYWR0aGVkb2NzLm9yZyIKLUxJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MzFmNzJkNGNhZDM2NzVmYjA5MTUzN2I5YjJmMzJkZTAiCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSAmIEFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1lMzE1NWM3YmRjNzFmNjZlMDI2Nzg0MTFkMmFiZjk5NiIKIAotU1JDX1VSSVttZDVzdW1dID0gImRiMzhmNmI0NTExY2VmZDc2MDE0NzQ1YmIwY2M0NWE0IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg5MWMzOGIyYTAyZjViYjFiZTNlNDc5Mzg2NmM4ZGY0OWM3ZDE5YmFhYmY5YzFiYWQ2MjU0N2UwYjQ4NjZhY2EiCitTUkNfVVJJW21kNXN1bV0gPSAiMDNhMDhjOGJjZjBhMmIyOWYxY2QyMWI5ZGU0ZDEyZmIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOWQ4MDc0YmU0Yzk5M2ZiZTQ5NDc4NzhjZTU5MzA1MmY3MWRhYzgyOTMyYTY3N2Q0OTE5NGQ4Y2U5Nzc4MDAyZSIKIAogUFlQSV9QQUNLQUdFID0gInB5dGhvbi1kYXRldXRpbCIKIGluaGVyaXQgcHlwaQpAQCAtMTQsNyArMTQsOCBAQAogRklMRVNfJHtQTn0tem9uZWluZm8gPSAiJHtsaWJkaXJ9LyR7UFlUSE9OX0RJUn0vc2l0ZS1wYWNrYWdlcy9kYXRldXRpbC96b25laW5mbyIKIAogUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ID0gIlwKLSAgICAke1BZVEhPTl9QTn0tY29yZSBcCiAgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKKyAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCiAgICAgJHtQWVRIT05fUE59LXNpeCBcCi0gICAgIgorICAgICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGF0ZXV0aWxfMi42LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYXRldXRpbF8yLjcuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGF0ZXV0aWxfMi42LjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRhdGV1dGlsXzIuNy4yLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzXzEuMi40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c18xLjIuNC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjcxYjU1OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzXzEuMi40LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotU1VNTUFSWSA9ICJQeXRob24gYmluZGluZ3MgZm9yIHRoZSBEQnVzIGludGVyLXByb2Nlc3MgY29tbXVuaWNhdGlvbiBzeXN0ZW0iCi1TRUNUSU9OID0gImRldmVsL3B5dGhvbiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL1NvZnR3YXJlL2RidXMiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTBiODMwNDdjZTllOTQ4YjY3YzBmYWNjNWYyMzM0NzZhIgotREVQRU5EUyA9ICJleHBhdCBkYnVzIGRidXMtZ2xpYiB2aXJ0dWFsL2xpYmludGwgcHl0aG9uLXB5cmV4LW5hdGl2ZSIKLQotU1JDX1VSSSA9ICJodHRwOi8vZGJ1cy5mcmVlZGVza3RvcC5vcmcvcmVsZWFzZXMvZGJ1cy1weXRob24vZGJ1cy1weXRob24tJHtQVn0udGFyLmd6IFwKLSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjczNzJhNTg4YzgzYTcyMzJiNGUwODE1OWJmZDQ4ZmU1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImUyZjFkNjg3MWY3NGZiYTIzNjUyZTUxZDEwODczZTU0ZjcxYWRhYjA1MjU4MzNjMTliYWQ5ZTk5YjFiMmY5Y2MiCi1TID0gIiR7V09SS0RJUn0vZGJ1cy1weXRob24tJHtQVn0iCi0KLWluaGVyaXQgZGlzdHV0aWxzLWJhc2UgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1QQUNLQUdFQ09ORklHID89ICIiCi1QQUNLQUdFQ09ORklHW2RvY3NdID0gIi0tZW5hYmxlLWh0bWwtZG9jcywtLWRpc2FibGUtaHRtbC1kb2NzLHB5dGhvbjMtZG9jdXRpbHMtbmF0aXZlIgotUEFDS0FHRUNPTkZJR1thcGktZG9jc10gPSAiLS1lbmFibGUtYXBpLWRvY3MsLS1kaXNhYmxlLWFwaS1kb2NzLHB5dGhvbjMtZG9jdXRpbHMtbmF0aXZlIHB5dGhvbjMtZXB5ZG9jLW5hdGl2ZSIKLQotZXhwb3J0IFNUQUdJTkdfTElCRElSCi1leHBvcnQgU1RBR0lOR19JTkNESVIKLQotUkRFUEVORFNfJHtQTn0gPSAicHl0aG9uLWlvIHB5dGhvbi1sb2dnaW5nIHB5dGhvbi1zdHJpbmdvbGQgcHl0aG9uLXRocmVhZGluZyBweXRob24teG1sIgotCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9wa2djb25maWciCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgICMgUmVtb3ZlIGZpbGVzIHRoYXQgY2xhc2ggd2l0aCBweXRob24zLWRidXM7IHRoZWlyIGNvbnRlbnQgaXMgc2FtZQotICAgIHJtICR7RH0ke2luY2x1ZGVkaXJ9L2RidXMtMS4wL2RidXMvZGJ1cy1weXRob24uaCAke0R9JHtsaWJkaXJ9L3BrZ2NvbmZpZy9kYnVzLXB5dGhvbi5wYwotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c18xLjIuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNfMS4yLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGYxOGNjYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNfMS4yLjYuYmIKQEAgLTAsMCArMSwzMiBAQAorU1VNTUFSWSA9ICJQeXRob24gYmluZGluZ3MgZm9yIHRoZSBEQnVzIGludGVyLXByb2Nlc3MgY29tbXVuaWNhdGlvbiBzeXN0ZW0iCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL1NvZnR3YXJlL2RidXMiCitMSUNFTlNFID0gIk1JVCAmIEFGTC0yLjEgfCBHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIwMzI0MDUxODk5NGRmNmQ4Yzk3NDY3NTY3NWU1Y2E0IFwKKwkJICAgIGZpbGU6Ly9kYnVzLWdtYWluL0NPUFlJTkc7bWQ1PTA1YzNlYWNkNTBmNjliYjFkNThhZmVjNDYwYmFhZDU3ICIKK0RFUEVORFMgPSAiZXhwYXQgZGJ1cyBkYnVzLWdsaWIgdmlydHVhbC9saWJpbnRsIHB5dGhvbi1weXJleC1uYXRpdmUiCisKK1NSQ19VUkkgPSAiaHR0cDovL2RidXMuZnJlZWRlc2t0b3Aub3JnL3JlbGVhc2VzL2RidXMtcHl0aG9uL2RidXMtcHl0aG9uLSR7UFZ9LnRhci5neiBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIxY2UxZGRmMjU4MjA2MGY4Zjk3MTY1MmVhNTRjYzE3ZSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzMmYyOWMxNzE3MmNkYjljYjYxYzY4YjFmMWE3MWRmZTczNTE1MDZmYzgzMDg2OTAyOWM0NzQ0OWJkMDRmYWViIgorUyA9ICIke1dPUktESVJ9L2RidXMtcHl0aG9uLSR7UFZ9IgorCitpbmhlcml0IGRpc3R1dGlscy1iYXNlIGF1dG90b29scyBwa2djb25maWcKKworUEFDS0FHRUNPTkZJRyA/PSAiIgorUEFDS0FHRUNPTkZJR1tkb2NzXSA9ICItLWVuYWJsZS1odG1sLWRvY3MsLS1kaXNhYmxlLWh0bWwtZG9jcyxweXRob24zLWRvY3V0aWxzLW5hdGl2ZSIKK1BBQ0tBR0VDT05GSUdbYXBpLWRvY3NdID0gIi0tZW5hYmxlLWFwaS1kb2NzLC0tZGlzYWJsZS1hcGktZG9jcyxweXRob24zLWRvY3V0aWxzLW5hdGl2ZSBweXRob24zLWVweWRvYy1uYXRpdmUiCisKK2V4cG9ydCBTVEFHSU5HX0xJQkRJUgorZXhwb3J0IFNUQUdJTkdfSU5DRElSCisKK1JERVBFTkRTXyR7UE59ID0gInB5dGhvbi1pbyBweXRob24tbG9nZ2luZyBweXRob24tc3RyaW5nb2xkIHB5dGhvbi10aHJlYWRpbmcgcHl0aG9uLXhtbCIKKworRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vcGtnY29uZmlnIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICAjIFJlbW92ZSBmaWxlcyB0aGF0IGNsYXNoIHdpdGggcHl0aG9uMy1kYnVzOyB0aGVpciBjb250ZW50IGlzIHNhbWUKKyAgICBybSAke0R9JHtpbmNsdWRlZGlyfS9kYnVzLTEuMC9kYnVzL2RidXMtcHl0aG9uLmggJHtEfSR7bGliZGlyfS9wa2djb25maWcvZGJ1cy1weXRob24ucGMKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNtb2NrLzAwMDEtQWRkLWZ1bmN0aW9uYWxpdHktdG8tYWRkLW93bi1vYmplY3RzLXRvLWludGVybmFsLW9iai5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNtb2NrLzAwMDEtQWRkLWZ1bmN0aW9uYWxpdHktdG8tYWRkLW93bi1vYmplY3RzLXRvLWludGVybmFsLW9iai5wYXRjaAppbmRleCBmZGQwMGI2Li5jNGQ4MTc4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzbW9jay8wMDAxLUFkZC1mdW5jdGlvbmFsaXR5LXRvLWFkZC1vd24tb2JqZWN0cy10by1pbnRlcm5hbC1vYmoucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c21vY2svMDAwMS1BZGQtZnVuY3Rpb25hbGl0eS10by1hZGQtb3duLW9iamVjdHMtdG8taW50ZXJuYWwtb2JqLnBhdGNoCkBAIC0xLDcgKzEsOCBAQAotRnJvbSBlZWJlMGY2NjQzNWM0ZDgyMWIwZjVmOTNmNjllZmUxN2I0YTM4NGMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBjNDQzNmZkNDJmMjkzNmU1ZmIwZjk1NDM0ZDA2ZTQ1YWE5OTU5Y2EwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogU2ltb24gQnVzY2ggPHNpbW9uLmJ1c2NoQGxnZS5jb20+CiBEYXRlOiBXZWQsIDkgQXByIDIwMTQgMTM6MTg6MzMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxLzJdIEFkZCBmdW5jdGlvbmFsaXR5IHRvIGFkZCBvd24gb2JqZWN0cyB0byBpbnRlcm5hbCBvYmplY3QKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIGZ1bmN0aW9uYWxpdHkgdG8gYWRkIG93biBvYmplY3RzIHRvIGludGVybmFsIG9iamVjdAorCiAgbGlzdAogCiBJbiBzb21lIGNhc2UgdGhlIHRlc3RzIG1pZ2h0IHdhbnQgdG8gY3JlYXRlIGR5bmFtaWNhbGx5IGRidXMgb2JqZWN0cyB3aGljaCBleHRlbmRlZApAQCAtOSwxNyArMTAsMTggQEAKIHJlZ2lzdGVyIHRob3NlIG9iamVjdHMgd2l0aCB0aGUgaW50ZXJuYWwgb2JqZWN0IG1hbmFnZXIgb2YgZGJ1c21vY2suCiAKIFNpZ25lZC1vZmYtYnk6IFNpbW9uIEJ1c2NoIDxzaW1vbi5idXNjaEBsZ2UuY29tPgorCiAtLS0KLSBkYnVzbW9jay9fX2luaXRfXy5weSAgIHwgICAgNCArKy0tCi0gZGJ1c21vY2svbW9ja29iamVjdC5weSB8ICAgIDggKysrKysrKysKKyBkYnVzbW9jay9fX2luaXRfXy5weSAgIHwgNCArKy0tCisgZGJ1c21vY2svbW9ja29iamVjdC5weSB8IDggKysrKysrKysKICAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9kYnVzbW9jay9fX2luaXRfXy5weSBiL2RidXNtb2NrL19faW5pdF9fLnB5Ci1pbmRleCBmNzk5Y2M3Li42NzE4YzA2IDEwMDY0NAoraW5kZXggOGE0ODJhYi4uM2Q1ZDcxYSAxMDA2NDQKIC0tLSBhL2RidXNtb2NrL19faW5pdF9fLnB5CiArKysgYi9kYnVzbW9jay9fX2luaXRfXy5weQogQEAgLTE0LDggKzE0LDggQEAgX19saWNlbnNlX18gPSAnTEdQTCAzKycKLSBfX3ZlcnNpb25fXyA9ICcwLjEwLjEnCisgX192ZXJzaW9uX18gPSAnMC4xNi43JwogIAogIGZyb20gZGJ1c21vY2subW9ja29iamVjdCBpbXBvcnQgKERCdXNNb2NrT2JqZWN0LCBNT0NLX0lGQUNFLAogLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9CSkVDVF9NQU5BR0VSX0lGQUNFLCBnZXRfb2JqZWN0LCBnZXRfb2JqZWN0cykKQEAgLTMwLDEwICszMiwxMCBAQAogLSAgICAgICAgICAgJ0RCdXNUZXN0Q2FzZScsICdnZXRfb2JqZWN0JywgJ2dldF9vYmplY3RzJ10KICsgICAgICAgICAgICdEQnVzVGVzdENhc2UnLCAnZ2V0X29iamVjdCcsICdnZXRfb2JqZWN0cycsICdhZGRfb2JqZWN0J10KIGRpZmYgLS1naXQgYS9kYnVzbW9jay9tb2Nrb2JqZWN0LnB5IGIvZGJ1c21vY2svbW9ja29iamVjdC5weQotaW5kZXggOTdiNzljZS4uYTk4ZTAzZCAxMDA2NDQKK2luZGV4IDU4NmRiYWQuLmU0ZjEzMGYgMTAwNjQ0CiAtLS0gYS9kYnVzbW9jay9tb2Nrb2JqZWN0LnB5CiArKysgYi9kYnVzbW9jay9tb2Nrb2JqZWN0LnB5Ci1AQCAtNjgyLDYgKzY4MiwxNCBAQCBkYnVzLnNlcnZpY2UuX21ldGhvZF9sb29rdXAgPSBfZGJ1c21vY2tfbWV0aG9kX2xvb2t1cAorQEAgLTY4OCw2ICs2ODgsMTQgQEAgZGJ1cy5zZXJ2aWNlLl9tZXRob2RfbG9va3VwID0gX2RidXNtb2NrX21ldGhvZF9sb29rdXAKICAjIEhlbHBlciBBUEkgZm9yIHRlbXBsYXRlcwogICMKICAKQEAgLTQ4LDYgKzUwLDMgQEAKICAKICBkZWYgZ2V0X29iamVjdHMoKToKICAgICAgJycnUmV0dXJuIGFsbCBleGlzdGluZyBvYmplY3QgcGF0aHMnJycKLS0tIAotMS43LjkuNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzbW9jay8wMDAyLUFkZC1wb3NzaWJpbGl0eS10by1pbXBvcnQtdGVtcGxhdGVzLWZyb20tcGFja2FnZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzbW9jay8wMDAyLUFkZC1wb3NzaWJpbGl0eS10by1pbXBvcnQtdGVtcGxhdGVzLWZyb20tcGFja2FnZXMucGF0Y2gKaW5kZXggOTgxNjk0Zi4uMDZhYjFmMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c21vY2svMDAwMi1BZGQtcG9zc2liaWxpdHktdG8taW1wb3J0LXRlbXBsYXRlcy1mcm9tLXBhY2thZ2VzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNtb2NrLzAwMDItQWRkLXBvc3NpYmlsaXR5LXRvLWltcG9ydC10ZW1wbGF0ZXMtZnJvbS1wYWNrYWdlcy5wYXRjaApAQCAtMSwyMiArMSwyMyBAQAotRnJvbSBmZjFkZmZkNTY3M2JjZDJjYmQ5NTU0YWQ2MjQ3NmQxMDhkYmMxOGFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAwM2JkNWNiNzdjNTQwMzM4NTc4MTBiYjE3NTYyODU5ZWVmYTQxMjIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogU2ltb24gQnVzY2ggPHNpbW9uLmJ1c2NoQGxnZS5jb20+CiBEYXRlOiBXZWQsIDkgQXByIDIwMTQgMTM6MjA6MzMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyLzJdIEFkZCBwb3NzaWJpbGl0eSB0byBpbXBvcnQgdGVtcGxhdGVzIGZyb20gcGFja2FnZXMKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIHBvc3NpYmlsaXR5IHRvIGltcG9ydCB0ZW1wbGF0ZXMgZnJvbSBwYWNrYWdlcwogCiBEb2VzIG5vdCBoYXZlIGFueSB1bml0IHRlc3RzIHlldC4KIAogU2lnbmVkLW9mZi1ieTogU2ltb24gQnVzY2ggPHNpbW9uLmJ1c2NoQGxnZS5jb20+CisKIC0tLQotIGRidXNtb2NrL21vY2tvYmplY3QucHkgfCAgICAzICsrKworIGRidXNtb2NrL21vY2tvYmplY3QucHkgfCAzICsrKwogIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKIAogZGlmZiAtLWdpdCBhL2RidXNtb2NrL21vY2tvYmplY3QucHkgYi9kYnVzbW9jay9tb2Nrb2JqZWN0LnB5Ci1pbmRleCBhOThlMDNkLi45NTMwYzJhIDEwMDY0NAoraW5kZXggZTRmMTMwZi4uMzg5ZGY3MCAxMDA2NDQKIC0tLSBhL2RidXNtb2NrL21vY2tvYmplY3QucHkKICsrKyBiL2RidXNtb2NrL21vY2tvYmplY3QucHkKLUBAIC00OSw2ICs0OSw5IEBAIGRlZiBsb2FkX21vZHVsZShuYW1lKToKLSAKLSAgICAgICAgIHJldHVybiBtb2R1bGUKK0BAIC00Niw2ICs0Niw5IEBAIGRlZiBsb2FkX21vZHVsZShuYW1lKToKKyAgICAgICAgICAgICBleGVjKGYucmVhZCgpLCBtb2QuX19kaWN0X18sIG1vZC5fX2RpY3RfXykKKyAgICAgICAgIHJldHVybiBtb2QKICAKICsgICAgaWYgJy4nIGluIG5hbWU6CiArICAgICAgICByZXR1cm4gaW1wb3J0bGliLmltcG9ydF9tb2R1bGUobmFtZSkKQEAgLTI0LDYgKzI1LDMgQEAKICAgICAgcmV0dXJuIGltcG9ydGxpYi5pbXBvcnRfbW9kdWxlKCdkYnVzbW9jay50ZW1wbGF0ZXMuJyArIG5hbWUpCiAgCiAgCi0tLSAKLTEuNy45LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c21vY2tfMC4xNi43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c21vY2tfMC4xNi43LmJiCmluZGV4IGZiOGMwYWEuLmVjOGM1NGEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNtb2NrXzAuMTYuNy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzbW9ja18wLjE2LjcuYmIKQEAgLTIwLDcgKzIwLDYgQEAKIAogUkRFUEVORFNfJHtQTn0gKz0gIlwKICAgICAke1BZVEhPTl9QTn0tZGJ1cyBcCi0gICAgJHtQWVRIT05fUE59LWltcG9ydGxpYiBcCiAgICAgJHtQWVRIT05fUE59LXB5Z29iamVjdCBcCiAgICAgJHtQWVRIT05fUE59LXhtbCBcCiAgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGVjb3JhdG9yLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRlY29yYXRvci5pbmMKaW5kZXggODU5Zjk3Mi4uNDRlZGI4YSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGVjb3JhdG9yLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kZWNvcmF0b3IuaW5jCkBAIC05LDggKzksOCBAQAogTElDRU5TRSA9ICJCU0QiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9ODkzZjg5NjQxMzgyNjA5NmNlNTI3MGM3MDBhNDk4ZmQiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJhMGY3ZjRmZTAwYWUyZGRlOTM0OTRkOTBjMTkyY2Y4YyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI3Y2I2NGQzOGNiODAwMjk3MTcxMGM4ODk5ZmJkZmI4NTlhMjNhMzY0YjdjOTlkYWIxOWQxZjcxOWMyYmExNmI1IgorU1JDX1VSSVttZDVzdW1dID0gIjI0OWU3Mjk5YjliNGJjZWQwYzM4MjM0M2Y4NGViMWMwIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImMzOWVmYTEzZmJkZWI0NTA2YzQ3NmM5YjNiYWJmNmE3MThkYTk0M2RhYjc4MTFjMjA2MDA1YTRhOTU2YzA4MGMiCiAKIGluaGVyaXQgcHlwaQogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kZWNvcmF0b3JfNC4xLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kZWNvcmF0b3JfNC4zLjAuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRlY29yYXRvcl80LjEuMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGVjb3JhdG9yXzQuMy4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ28tc291dGguaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGphbmdvLXNvdXRoLmluYwppbmRleCBjZTkwNGI2Li5lNGYwM2I5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ28tc291dGguaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRqYW5nby1zb3V0aC5pbmMKQEAgLTEwLDcgKzEwLDcgQEAKIFBZUElfUEFDS0FHRSA9ICJTb3V0aCIKIGluaGVyaXQgcHlwaQogCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZXNkayIKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKIAogUkRFUEVORFNfJHtQTn0gKz0gIlwKICAgICAke1BZVEhPTl9QTn0tZGphbmdvIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRqYW5nby5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ28uaW5jCmluZGV4IDU4ZmQ3MGEuLjRlZjJkN2YgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRqYW5nby5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGphbmdvLmluYwpAQCAtMywyMiArMywzMCBAQAogTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1mMDllYjQ3MjA2NjE0YTQ5NTRjNTFkYjhhOTQ4NDBmYSIKIAotU1JDX1VSSVttZDVzdW1dID0gIjhjZWYwZDQyYWFiYWNiYzQxNGVjNGZiYmI2MDU2ZjNjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjE4MzY4NzgxNjJkZmRmODY1NDkyYmFjZmRmZjAzMjFlNGVlOGYxZTdkNTFkOTMxOTI1NDYwMDBiNTQ5ODJiMjkiCitTUkNfVVJJW21kNXN1bV0gPSAiZjMwNjAxNWUxNmE4ZDUwMjRkYmFjOTIzYWMzNGZmZmIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjIzODM1NjczODVhOWM0MDZkOGE1Y2UwODBhMjY5NGM4MmM2YjczM2UxNTc5MjIxOTdlOGIzOTNiYjNhYWNkOSIKIAogUFlQSV9QQUNLQUdFID0gIkRqYW5nbyIKIGluaGVyaXQgcHlwaQogCiBGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9kamFuZ28iCiAKLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlc2RrIgorQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgogCiBSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1jb21wcmVzc2lvbiBcCisgICAgJHtQWVRIT05fUE59LWN0eXBlcyBcCiAgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKLSAgICAke1BZVEhPTl9QTn0taW1wb3J0bGliIFwKKyAgICAke1BZVEhPTl9QTn0tZW1haWwgXAorICAgICR7UFlUSE9OX1BOfS1odG1sIFwKKyAgICAke1BZVEhPTl9QTn0tanNvbiBcCisgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAorICAgICR7UFlUSE9OX1BOfS1tdWx0aXByb2Nlc3NpbmcgXAorICAgICR7UFlUSE9OX1BOfS1uZXRzZXJ2ZXIgXAogICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKLSAgICAke1BZVEhPTl9QTn0tcGlwIFwKICAgICAke1BZVEhPTl9QTn0tcGtndXRpbCBcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorICAgICR7UFlUSE9OX1BOfS1weXR6IFwKICAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKLSAgICAiCisgICAgJHtQWVRIT05fUE59LXVuaXhhZG1pbiBcCisgICAgJHtQWVRIT05fUE59LXhtbCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ29fMS4xMS4xMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRqYW5nb18xLjExLjEwLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyMzQ3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ29fMS4xMS4xMC5iYgpAQCAtMCwwICsxLDggQEAKK3JlcXVpcmUgcHl0aG9uLWRqYW5nby5pbmMKK2luaGVyaXQgc2V0dXB0b29scworCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tYXJncGFyc2UgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyAgICAke1BZVEhPTl9QTn0temxpYiBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ29fMS4xMS41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGphbmdvXzEuMTEuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2NkNzcxNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ29fMS4xMS41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1yZXF1aXJlIHB5dGhvbi1kamFuZ28uaW5jCi1pbmhlcml0IHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRvbWluYXRlLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRvbWluYXRlLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2Y3NGEwYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRvbWluYXRlLmluYwpAQCAtMCwwICsxLDExIEBACitTVU1NQVJZID0gIkRvbWluYXRlIGlzIGEgUHl0aG9uIGxpYnJhcnkgZm9yIGNyZWF0aW5nIGFuZCBtYW5pcHVsYXRpbmcgSFRNTCBkb2N1bWVudHMgdXNpbmcgYW4gZWxlZ2FudCBET00gQVBJLiIKK0xJQ0VOU0UgPSAiTEdQTHYzIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PWI1MmYyZDU3ZDEwYzRmN2VlNjdhN2ViOTYxNWQ1ZDI0IgorCitTUkNfVVJJW21kNXN1bV0gPSAiNDViZDk3ZTZmNzg4OGFhYzI0YWU4NjAxM2M1NzYzOGUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGI4Y2U2ZjMzNjMzYzlkZDkxNzViMjI4ZDIxYzAwYzgwMWI2YmQwMzI3NzQ3Y2Q1ZTE3ZmMyZGE5MzRjM2E2OSIKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCisgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCisgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZG9taW5hdGVfMi4zLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kb21pbmF0ZV8yLjMuMS5iYgppbmRleCAxM2ViZjkyLi5jMTk0NDVlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kb21pbmF0ZV8yLjMuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kb21pbmF0ZV8yLjMuMS5iYgpAQCAtMSwxMyArMSwyIEBACi1TVU1NQVJZID0gIkRvbWluYXRlIGlzIGEgUHl0aG9uIGxpYnJhcnkgZm9yIGNyZWF0aW5nIGFuZCBtYW5pcHVsYXRpbmcgSFRNTCBkb2N1bWVudHMgdXNpbmcgYW4gZWxlZ2FudCBET00gQVBJLiIKLUxJQ0VOU0UgPSAiTEdQTHYzIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PWI1MmYyZDU3ZDEwYzRmN2VlNjdhN2ViOTYxNWQ1ZDI0IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNDViZDk3ZTZmNzg4OGFhYzI0YWU4NjAxM2M1NzYzOGUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGI4Y2U2ZjMzNjMzYzlkZDkxNzViMjI4ZDIxYzAwYzgwMWI2YmQwMzI3NzQ3Y2Q1ZTE3ZmMyZGE5MzRjM2E2OSIKLQogaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotUkRFUEVORFNfJHtQTn0gKz0gIlwKLSAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCi0gICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCi0gICAgIgorcmVxdWlyZSBweXRob24tZG9taW5hdGUuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1lZGl0b3IuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZWRpdG9yLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDY1MGJkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZWRpdG9yLmluYwpAQCAtMCwwICsxLDkgQEAKK0RFU0NSSVBUSU9OID0gIlByb2dyYW1tYXRpY2FsbHkgb3BlbiBhbmQgZWRpdG9yLCBjYXB0dXJlIHRoZSByZXN1bHQiCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1kMjc5NGMwZGY1YjkwN2ZkYWNlMjM1YTYxOWQ4MDMxNCIKKworU1JDX1VSSVttZDVzdW1dID0gIjBhY2E1ZjJlZjE3NmNlNjhlOThhNWI3ZTMxMzcyODM1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImEzYzA2NmFjZWUyMmExYzk0ZjYzOTM4MzQxZDRmYjM3NGUzZmRkNjkzNjZlZDY2MDNkN2IyNGJlZDFlZmM1NjUiCisKK1BZUElfUEFDS0FHRSA9ICJweXRob24tZWRpdG9yIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1lZGl0b3JfMS4wLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1lZGl0b3JfMS4wLjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdhOWE4YwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWVkaXRvcl8xLjAuMy5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1lZGl0b3IuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ldmRldi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ldmRldi5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWEzODg0YQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWV2ZGV2LmluYwpAQCAtMCwwICsxLDIxIEBACitTVU1NQVJZID0gIlB5dGhvbiBldmRldiBsaWIiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vZ3ZhbGtvdi9weXRob24tZXZkZXYiCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTE4ZGViZGRiYjNmNTJjNjYxYTEyOTcyNGE4ODNhOGUyIgorCitTUkNfVVJJW21kNXN1bV0gPSAiYzdlODU1YWU5Zjk3Zjg2OWE1OWU3NWIyOWYwNWNlNzQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTdlZGFmYzQ2OWE0MTRmNThiNTFhZjFiZmI5ZWUyYmFiYjlmNjI2ZGQyZGY1MzBkNzFjMTE3Njg3MTg1MGFhMSIKKworZG9fY29tcGlsZV9wcmVwZW5kKCkgeworICAgIHJtIC1yZiAke1N9L2V2ZGV2L2Vjb2Rlcy5jCit9CisKK0RJU1RVVElMU19CVUlMRF9BUkdTID0gImJ1aWxkX2Vjb2RlcyAtLWV2ZGV2LWhlYWRlcnMgJHtTVEFHSU5HX0RJUl9UQVJHRVR9L3Vzci9pbmNsdWRlL2xpbnV4L2lucHV0Lmg6JHtTVEFHSU5HX0RJUl9UQVJHRVR9L3Vzci9pbmNsdWRlL2xpbnV4L2lucHV0LWV2ZW50LWNvZGVzLmgiCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWN0eXBlcyBcCisgICAgJHtQWVRIT05fUE59LWZjbnRsIFwKKyAgICAke1BZVEhPTl9QTn0taW8gXAorICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCisgICAgJHtQWVRIT05fUE59LXN0cmluZ29sZCBcCisgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZXZkZXZfMC43LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ldmRldl8wLjcuMC5iYgppbmRleCAwODc1ZGE0Li42MzU0MTM2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ldmRldl8wLjcuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ldmRldl8wLjcuMC5iYgpAQCAtMSwxNyArMSwyIEBACi1TVU1NQVJZID0gIlB5dGhvbiBldmRldiBsaWIiCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vZ3ZhbGtvdi9weXRob24tZXZkZXYiCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTE4ZGViZGRiYjNmNTJjNjYxYTEyOTcyNGE4ODNhOGUyIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiYzdlODU1YWU5Zjk3Zjg2OWE1OWU3NWIyOWYwNWNlNzQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTdlZGFmYzQ2OWE0MTRmNThiNTFhZjFiZmI5ZWUyYmFiYjlmNjI2ZGQyZGY1MzBkNzFjMTE3Njg3MTg1MGFhMSIKLQogaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotUkRFUEVORFNfJHtQTn0gKz0gIlwKLSAgICAke1BZVEhPTl9QTn0tY3R5cGVzIFwKLSAgICAke1BZVEhPTl9QTn0tZmNudGwgXAotICAgICR7UFlUSE9OX1BOfS1pbyBcCi0gICAgJHtQWVRIT05fUE59LXNoZWxsIFwKLSAgICAke1BZVEhPTl9QTn0tc3RyaW5nb2xkIFwKLSAgICAiCityZXF1aXJlIHB5dGhvbi1ldmRldi5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWJhYmVsLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWJhYmVsLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjBlZTE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYmFiZWwuaW5jCkBAIC0wLDAgKzEsMTYgQEAKK0RFU0NSSVBUSU9OID0gImkxOG4gYW5kIGwxMG4gc3VwcG9ydCBmb3IgRmxhc2sgYmFzZWQgb24gYmFiZWwgYW5kIHB5dHoiCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTUxOTE3ZjNlOGU4NThmNWFlMjk1YTdkMGUyZWIzY2M5IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMDc4MDM0NTM3NDNmMTM5MzA5MDIxNTcyYTc5OWM2YjMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzBkNzU3MTBiZDRiMGZlODY2ZjlmMjM0N2RlNmUxOTIwODcxMmY5Y2VjMDA2NDM2YjRjMWMxNWQ0Y2IwYzkzOSIKKworUFlQSV9QQUNLQUdFID0gIkZsYXNrLUJhYmVsIgorCitpbmhlcml0IHB5cGkKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tc3BlYWtsYXRlciBcCisgICAgJHtQWVRIT05fUE59LWJhYmVsIFwKKyAgICAke1BZVEhPTl9QTn0tZmxhc2sgXAorICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWJhYmVsXzAuMTEuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWJhYmVsXzAuMTEuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGU3OGM3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYmFiZWxfMC4xMS4yLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLWJhYmVsLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYm9vdHN0cmFwLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWJvb3RzdHJhcC5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcyM2I5NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWJvb3RzdHJhcC5pbmMKQEAgLTAsMCArMSwxNCBAQAorREVTQ1JJUFRJT04gPSAiQW4gZXh0ZW5zaW9uIHRoYXQgaW5jbHVkZXMgQm9vdHN0cmFwIGluIHlvdXIgcHJvamVjdCwgd2l0aG91dCBhbnkgYm9pbGVycGxhdGUgY29kZS4iCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT1hMDM3NDk3MDlmMDYxMThhMTczNDlkZWI1YTIxMDYxOSIKKworU1JDX1VSSVttZDVzdW1dID0gImU0MGQ1MGY1YzViNjQzOGMxYzYyMDBhNmYyODcxZjgxIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImNiMDhlZDk0MDE4M2Y2MzQzYTY0ZTQ2NWU4M2IzYTNmMTNjNTNlMWJhYWJiOGQ3MmI1ZGE0NTQ1ZWYxMjNhYzgiCisKK1BZUElfUEFDS0FHRSA9ICJGbGFzay1Cb290c3RyYXAiCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWRvbWluYXRlIFwKKyAgICAke1BZVEhPTl9QTn0tZmxhc2sgXAorICAgICR7UFlUSE9OX1BOfS12aXNpdG9yIFwKKyAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1ib290c3RyYXBfMy4zLjcuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWJvb3RzdHJhcF8zLjMuNy4xLmJiCmluZGV4IDJiMmE2ZjkuLmVlYWFkZTkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWJvb3RzdHJhcF8zLjMuNy4xLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWJvb3RzdHJhcF8zLjMuNy4xLmJiCkBAIC0xLDE2ICsxLDIgQEAKLURFU0NSSVBUSU9OID0gIkFuIGV4dGVuc2lvbiB0aGF0IGluY2x1ZGVzIEJvb3RzdHJhcCBpbiB5b3VyIHByb2plY3QsIHdpdGhvdXQgYW55IGJvaWxlcnBsYXRlIGNvZGUuIgotTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTzttZDU9YTAzNzQ5NzA5ZjA2MTE4YTE3MzQ5ZGViNWEyMTA2MTkiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJlNDBkNTBmNWM1YjY0MzhjMWM2MjAwYTZmMjg3MWY4MSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJjYjA4ZWQ5NDAxODNmNjM0M2E2NGU0NjVlODNiM2EzZjEzYzUzZTFiYWFiYjhkNzJiNWRhNDU0NWVmMTIzYWM4IgotCi1QWVBJX1BBQ0tBR0UgPSAiRmxhc2stQm9vdHN0cmFwIgotCiBpbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiXAotICAgICR7UFlUSE9OX1BOfS1kb21pbmF0ZSBcCi0gICAgJHtQWVRIT05fUE59LWZsYXNrIFwKLSAgICAke1BZVEhPTl9QTn0tdmlzaXRvciBcCi0gICAgIgorcmVxdWlyZSBweXRob24tZmxhc2stYm9vdHN0cmFwLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbG9naW4uaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbG9naW4uaW5jCmluZGV4IDdkZGRiYTAuLjU5ZWI2NGYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWxvZ2luLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1sb2dpbi5pbmMKQEAgLTYsOCArNiw4IEBACiBMSUNFTlNFID0gIk1JVCIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PThhYTg3YTFjZDlmYTQxZDk2OWFkMzJjZmRhYzJjNTk2IgogCi1TUkNfVVJJW21kNXN1bV0gPSAiZTA1MGVmYWEyYzRkYmMyZDk3ZjQ4MGE3MGY0ZDQ0YWEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZDI1ZTM1NmIxNGE1OWY1MmRhMGFiMzBjMzFjMmFkMjg1ZmEyM2E4NDBmMGY2OTcxZGY3ZWQyNDdjNzcwODJhNyIKK1NSQ19VUklbbWQ1c3VtXSA9ICIyNWIzNGM3NGJkNTA5NzkyZjI5MWMxNmUxODQyMjVkZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjODE1YzFhYzdiM2UzNWUyMDgxNjg1ZTM4OWE2NjVmMmM3NGQ3ZTA3N2NiOTNjZWNhYmFlYTM1MmRhNDc1MmVjIgogCiBQWVBJX1BBQ0tBR0UgPSAiRmxhc2stTG9naW4iCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWxvZ2luXzAuNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbG9naW5fMC40LjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWxvZ2luXzAuNC4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1sb2dpbl8wLjQuMS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbWFpbC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1tYWlsLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjA4NzAzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbWFpbC5pbmMKQEAgLTAsMCArMSwxMiBAQAorU1VNTUFSWSA9ICJGbGFzayBleHRlbnNpb24gZm9yIHNlbmRpbmcgZW1haWwiCitERVNDUklQVElPTiA9ICJBIEZsYXNrIGV4dGVuc2lvbiBmb3Igc2VuZGluZyBlbWFpbCIKK0hPTUVQQUdFID0gIiBodHRwczovL2dpdGh1Yi5jb20vcmR1cGxhaW4vZmxhc2stZW1haWwiCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTViMTZkZmE2ZDNmMjc1YWNlNTk4NWJiOTI5NDlmNzcwIgorCitTUkNfVVJJW21kNXN1bV0gPSAiMDRiMzVhNDJhNDRlYzdhYTcyNGVjOGNlNTVlMmUwOGUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjJlNWViOWE5NDBiZjQwN2JjZjMwNDEwZWNjMzcwOGYzYzU2Y2M0NGIyOWMzNGUxNzI2ZmU4NTAwNjkzNWY0MSIKKworUFlQSV9QQUNLQUdFID0gIkZsYXNrLU1haWwiCisKK1JERVBFTkRTXyR7UE59ID0gIiR7UFlUSE9OX1BOfS1mbGFzayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW1haWxfMC45LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1tYWlsXzAuOS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMjRkYTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1tYWlsXzAuOS4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLW1haWwuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1taWdyYXRlLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW1pZ3JhdGUuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhZjRmZTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1taWdyYXRlLmluYwpAQCAtMCwwICsxLDE0IEBACitERVNDUklQVElPTiA9ICJTUUxBbGNoZW15IGRhdGFiYXNlIG1pZ3JhdGlvbnMgZm9yIEZsYXNrIGFwcGxpY2F0aW9ucyB1c2luZyBBbGVtYmljIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zYjY5Mzc3Zjc5ZjNmNDhjNjYxNzAxMjM2ZDVhNmE4NSIKKworU1JDX1VSSVttZDVzdW1dID0gImRlZjQxMDZjODA4OTdiN2ZhZDJhZmIzYmMwNTM2MGU0IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImI3MDljYTg2NDI1NTljM2M1YTgxYTMzYWIxMDgzOWZhMDUyMTc3YWNjZDViYTgyMTA0N2E5OWRiNjM1MjU1ZWQiCisKK1BZUElfUEFDS0FHRSA9ICJGbGFzay1NaWdyYXRlIgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1mbGFzay1zcWxhbGNoZW15IFwKKyAgICAke1BZVEhPTl9QTn0tYWxlbWJpYyBcCisgICAgJHtQWVRIT05fUE59LWZsYXNrIFwKKyAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1taWdyYXRlXzIuMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbWlncmF0ZV8yLjEuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2U1MTZmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbWlncmF0ZV8yLjEuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1mbGFzay1taWdyYXRlLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbmF2LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW5hdi5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMyY2NkZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW5hdi5pbmMKQEAgLTAsMCArMSwxMyBAQAorREVTQ1JJUFRJT04gPSAiRWFzaWx5IGNyZWF0ZSBuYXZpZ2F0aW9uIGZvciBGbGFzayBhcHBsaWNhdGlvbnMuIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTzttZDU9MjcyOWVlODIyNTlkNjAxZDkwZDI4YjA1NzRkMTI0MTYiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI0ZDUxY2ZkMDZkNThmOGQwZmU4NTc3NWE2Njk2YzBlNSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0NGU0MGI3NTUzODBhMWU2OGFiNTIxYTJmOTE3NGRlMjU5YTJjOTRkZGNkYWFiZjM2YjNhY2EyZTExMGEzM2Y0IgorCitQWVBJX1BBQ0tBR0UgPSAiZmxhc2stbmF2IgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1ibGlua2VyIFwKKyAgICAke1BZVEhPTl9QTn0tZmxhc2sgXAorICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW5hdl8wLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1uYXZfMC42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwYjViM2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1uYXZfMC42LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLW5hdi5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXB5bW9uZ28uaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stcHltb25nby5pbmMKaW5kZXggZTExMjgzZS4uZmIyZDZlZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stcHltb25nby5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stcHltb25nby5pbmMKQEAgLTMsNyArMyw3IEBACiBIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vbWl0c3VoaWtvL2ZsYXNrLyIKIFNFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgogTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9mbGFza19weW1vbmdvL3dyYXBwZXJzLnB5O3N0YXJ0bGluZT0xO2VuZGxpbmU9MjQ7bWQ1PTQyNGM0ZTEwNDdkMjhlMDFiNGU0NjM0YTA2OWMwMTlkIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vZmxhc2tfcHltb25nby93cmFwcGVycy5weTtiZWdpbmxpbmU9MTtlbmRsaW5lPTI0O21kNT00MjRjNGUxMDQ3ZDI4ZTAxYjRlNDYzNGEwNjljMDE5ZCIKIAogU1JDX1VSSVttZDVzdW1dID0gImQ3YTFiNzE3ZjI3MTU0ZTFmM2EzNTVmOGVjMjQ2N2Q2IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJiYWFhMmJhNTEwN2Q3MmIzYThiZDRiNWMwYzg4ODEzMTZlMzUzNDBhZDFhZTk3OWNjMTNmMWYzYzg4NDNiM2QiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1yZXN0ZnVsLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXJlc3RmdWwuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0ODVmODUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1yZXN0ZnVsLmluYwpAQCAtMCwwICsxLDE2IEBACitTVU1NQVJZID0gIlNpbXBsZSBmcmFtZXdvcmsgZm9yIGNyZWF0aW5nIFJFU1QgQVBJcyIKK0RFU0NSSVBUSU9OID0gIlwKK0ZsYXNrLVJFU1RmdWwgaXMgYW4gZXh0ZW5zaW9uIGZvciBGbGFzayB0aGF0IGFkZHMgc3VwcG9ydCBmb3IgcXVpY2tseSBidWlsZGluZyBcCitSRVNUIEFQSXMiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vZmxhc2stcmVzdGZ1bC9mbGFzay1yZXN0ZnVsIgorTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT02ODViYjU1ZWQ5OWEzNjZiYjQzMTk5NWY1ZWVmMjc4MyIKKworU1JDX1VSSVttZDVzdW1dID0gIjgyNDNjYTEwMTE4NWIxMzBkOGZhNTI5Y2JkYmRiZGRkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU3OTU1MTk1MDEzNDdlMTA4YzQzNmI2OTNmZjlhNGQ3YjM3M2EzYWM5MDY5NjI3ZDY0ZTQwMDFjMDVkZDM0MDciCisKK2luaGVyaXQgcHlwaQorCitQWVBJX1BBQ0tBR0UgPSAiRmxhc2stUkVTVGZ1bCIKKworUkRFUEVORFNfJHtQTn0gPSAiJHtQWVRIT05fUE59LWZsYXNrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stcmVzdGZ1bF8wLjMuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXJlc3RmdWxfMC4zLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTk2OGQxZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXJlc3RmdWxfMC4zLjYuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLXJlc3RmdWwuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1zY3JpcHQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stc2NyaXB0LmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2E3NzdiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stc2NyaXB0LmluYwpAQCAtMCwwICsxLDEyIEBACitERVNDUklQVElPTiA9ICJTY3JpcHRpbmcgc3VwcG9ydCBmb3IgZmxhc2siCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWU2ODYwNDhhZGI2OTM0MWZjOGEwOGNhZWRhNTI4YjQxIgorCitTUkNfVVJJW21kNXN1bV0gPSAiM2ZiZDkxZmUxM2NlYmVkZmIyNDMxMzMxZjZlYWJiNjgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjQyNTk2M2Q5MTA1NGNmY2MxODU4MDcxNDFjNzMxNGE5YzVhZDQ2MzI1OTExYmQyNGRjYjQ4OWJkMDE2MWM2NSIKKworUFlQSV9QQUNLQUdFID0gIkZsYXNrLVNjcmlwdCIKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tZmxhc2sgXAorICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXNjcmlwdF8yLjAuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXNjcmlwdF8yLjAuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2Q1NWFmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stc2NyaXB0XzIuMC42LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLXNjcmlwdC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXNxbGFsY2hlbXkuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stc3FsYWxjaGVteS5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBlZmJjNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXNxbGFsY2hlbXkuaW5jCkBAIC0wLDAgKzEsMTAgQEAKK0RFU0NSSVBUSU9OID0gIkFkZHMgU1FMQWxjaGVteSBzdXBwb3J0IHRvIHlvdXIgRmxhc2sgYXBwbGljYXRpb24uIgorTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT01ZWQxYjhjYzc0MTUxNWE4MzVhN2Y2YmYyZjYyZWY0YSIKKworU1JDX1VSSVttZDVzdW1dID0gIjM3M2NlNjFkZmQwM2I1OTNhZDJlYWJhNjhjOWZlZTM1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU5NzFiOTg1MmI1ODg4NjU1ZjExZGI2MzRlODc3MjVhOTAzMWUxNzBmMzdjMGNlNzg1MWNmODM0OTdmNTZlNTMiCisKK1BZUElfUEFDS0FHRSA9ICJGbGFzay1TUUxBbGNoZW15IgorCitSREVQRU5EU18ke1BOfSA9ICIke1BZVEhPTl9QTn0tc3FsYWxjaGVteSAke1BZVEhPTl9QTn0tZmxhc2siCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1zcWxhbGNoZW15XzIuMy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stc3FsYWxjaGVteV8yLjMuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc5OTc2Ny4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1zcWxhbGNoZW15XzIuMy4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiQWRkcyBTUUxBbGNoZW15IHN1cHBvcnQgdG8geW91ciBGbGFzayBhcHBsaWNhdGlvbi4iCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTVlZDFiOGNjNzQxNTE1YTgzNWE3ZjZiZjJmNjJlZjRhIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiYzg2NDQ5ZjQ0ZTkwZTk5NjE0Mjg3MmFjNGI5N2Y3ZWUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGExOWZmNjJlMzFmODI4MjViNTQ2NzgxMWM3NmUyYTFjNjBiYmE5MjdlMTc1ZmUwOTFhNmY3MzkwNjNkZDgyOSIKLQotUFlQSV9QQUNLQUdFID0gIkZsYXNrLVNRTEFsY2hlbXkiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVJERVBFTkRTXyR7UE59ID0gIiR7UFlUSE9OX1BOfS1zcWxhbGNoZW15ICR7UFlUSE9OX1BOfS1mbGFzayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXNxbGFsY2hlbXlfMi4zLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1zcWxhbGNoZW15XzIuMy4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYzM1NWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1zcWxhbGNoZW15XzIuMy4yLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLXNxbGFsY2hlbXkuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay11cGxvYWRzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXVwbG9hZHMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkN2FjMWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay11cGxvYWRzLmluYwpAQCAtMCwwICsxLDEyIEBACitERVNDUklQVElPTiA9ICJGbGV4aWJsZSBhbmQgZWZmaWNpZW50IHVwbG9hZCBoYW5kbGluZyBmb3IgRmxhc2siCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT1iNzEyYWM2MzRiMzk0Njk2NjBjOWJkZmI4ZDAzNDIxYyIKKworU1JDX1VSSVttZDVzdW1dID0gImU1ZWVlMzRhYTkyYjY0YTRkMjI4NDc2NzJiMzg1OGExIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjUzZWNiZDYwMzM2NjdkNTBhZTAyYjYzYWRlYmJhYTMzYzdmYzU2YzA5ZTUyOTMwMjU4MTBjZjlkODQxZWNiMDIiCisKK1BZUElfUEFDS0FHRSA9ICJGbGFzay1VcGxvYWRzIgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1mbGFzayBcCisgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stdXBsb2Fkc18wLjIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXVwbG9hZHNfMC4yLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM5YjA3ZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXVwbG9hZHNfMC4yLjEuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tZmxhc2stdXBsb2Fkcy5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXVzZXIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stdXNlci5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJiNzE4MgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXVzZXIuaW5jCkBAIC0wLDAgKzEsMTcgQEAKK1NVTU1BUlkgPSAiQ3VzdG9taXphYmxlIHVzZXIgYWNjb3VudCBtYW5hZ2VtZW50IGZvciBGbGFzayIKK0RFU0NSSVBUSU9OID0gIkN1c3RvbWl6YWJsZSBVc2VyIEFjY291bnQgTWFuYWdlbWVudCBmb3IgRmxhc2s7IFJlZ2lzdGVyIFwKK0NvbmZpcm0gZW1haWwsIExvZ2luLCBDaGFuZ2UgdXNlcm5hbWUsIENoYW5nZSBwYXNzd29yZCwgRm9yZ290IFBhc3N3b3JkIFwKK2FuZCBtb3JlLiIKK0hPTUVQQUdFID0gIiBodHRwczovL2dpdGh1Yi5jb20vbGluZ3RoaW8vRmxhc2stVXNlciIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTk3ZGU5N2NkOWQ2ZTIzYzg4MTI5ZDg4NDU4OGNlNzFhIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZjc5NjVlNjZjYTEzOWM4NDM2ODk2ZGEwN2U2NmMyMWYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjAxYWJjYzAzNDNkZmJhZTBjNTYyNzNkOTgzNjJkNWNkYzI2NmFjODRkMjBiM2Y2NWEyMTJlNGEyYzgzYjMwMiIKKworUFlQSV9QQUNLQUdFID0gIkZsYXNrLVVzZXIiCisKK1JERVBFTkRTXyR7UE59ID0gIiR7UFlUSE9OX1BOfS1mbGFzayBcCisgICAgJHtQWVRIT05fUE59LWZsYXNrLWxvZ2luIFwKKyAgICAke1BZVEhPTl9QTn0tZmxhc2stbWFpbCBcCisgICAgJHtQWVRIT05fUE59LWJhYmVsIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stdXNlcl8wLjYuMTkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay11c2VyXzAuNi4xOS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTRkMzc3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stdXNlcl8wLjYuMTkuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tZmxhc2stdXNlci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXd0Zi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay13dGYuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOTA2NTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay13dGYuaW5jCkBAIC0wLDAgKzEsMTUgQEAKK0RFU0NSSVBUSU9OID0gIlNpbXBsZSBpbnRlZ3JhdGlvbiBvZiBGbGFzayBhbmQgV1RGb3Jtcy4iCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTNjYTZiYjMxNjcwNDkyZjc5MWU2YTlmMmZiOWY4YTgwIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNTg2ZjUwZjIzMzkyNmNhZGU0MmUzZDc0NGFjYTNlOGYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWQxNGQ1NWNmZDM1ZjYxM2Q5OWVlN2NiYTBmYzNmYmJlNjNiYTAyZjU0NGQzNDkxNThjMTRjYTE1NTYxY2MzNiIKKworUFlQSV9QQUNLQUdFID0gIkZsYXNrLVdURiIKKworUkRFUEVORFNfJHtQTn0gPSAiXAorICAgICR7UFlUSE9OX1BOfS1mbGFzayBcCisgICAgJHtQWVRIT05fUE59LWl0c2Rhbmdlcm91cyBcCisgICAgJHtQWVRIT05fUE59LWpzb24gXAorICAgICR7UFlUSE9OX1BOfS13dGZvcm1zIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXd0Zi9pbXBvcnQtc2ltcGxlanNvbi1hcy1qc29uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2std3RmL2ltcG9ydC1zaW1wbGVqc29uLWFzLWpzb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3OGY3MDYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2std3RmL2ltcG9ydC1zaW1wbGVqc29uLWFzLWpzb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCi0KLVN1YmplY3Q6IFtQQVRDSF0gaW1wb3J0IHNpbXBsZWpzb24gYXMganNvbgotCi1BdCBydW50aW1lIHB5dGhvbi1GbGFzay1XVEYgdHJpZXMgdG8gaW1wb3J0IGpzb24sIGJ1dCB0aGUgbW9kdWxlIGlzIG5vdCAKLWF2YWlsYWJsZSwgaW1wb3J0IHNpbXBsZWpzb24gYXMganNvbiBzb2x2ZSB0aGUgaXNzdWUuCi0KLVNpZ25lZC1vZmYtYnk6IEZhYmlvIEJlcnRvbiA8ZmFiaW8uYmVydG9uQG9zc3lzdGVtcy5jb20uYnI+Ci0tLS0KLSBmbGFza193dGYvcmVjYXB0Y2hhL3ZhbGlkYXRvcnMucHkgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9mbGFza193dGYvcmVjYXB0Y2hhL3ZhbGlkYXRvcnMucHkgYi9mbGFza193dGYvcmVjYXB0Y2hhL3ZhbGlkYXRvcnMucHkKLWluZGV4IGJjZmYyM2QuLjRhMjQ0YmIgMTAwNjQ0Ci0tLS0gYS9mbGFza193dGYvcmVjYXB0Y2hhL3ZhbGlkYXRvcnMucHkKLSsrKyBiL2ZsYXNrX3d0Zi9yZWNhcHRjaGEvdmFsaWRhdG9ycy5weQotQEAgLTgsNyArOCw3IEBAIGZyb20gZmxhc2sgaW1wb3J0IHJlcXVlc3QsIGN1cnJlbnRfYXBwCi0gZnJvbSB3dGZvcm1zIGltcG9ydCBWYWxpZGF0aW9uRXJyb3IKLSBmcm9tIHdlcmt6ZXVnIGltcG9ydCB1cmxfZW5jb2RlCi0gZnJvbSAuLl9jb21wYXQgaW1wb3J0IHRvX2J5dGVzLCB0b191bmljb2RlCi0taW1wb3J0IGpzb24KLStpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29uCi0gCi0gUkVDQVBUQ0hBX1ZFUklGWV9TRVJWRVIgPSAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpL3NpdGV2ZXJpZnknCi0gUkVDQVBUQ0hBX0VSUk9SX0NPREVTID0gewotLS0gCi0yLjEuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay13dGZfMC4xMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXd0Zl8wLjEyLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OWFmYWY2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXd0Zl8wLjEyLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiU2ltcGxlIGludGVncmF0aW9uIG9mIEZsYXNrIGFuZCBXVEZvcm1zLiIKLUxJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NTA3ZTg2MzVmMjVhMDZkYzRmMDQxYTNhMWIzMzU5YjMiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJjNTNhNzRlOGJhNDgxYmY1MzQwNWZkNWVmZGYwMzM5ZSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiZDk5MzE2Yzk3ZWQxZDFjYjkwYjhmMGMyNDJjODY0MjBhODkxYTZhMjA1OGYyMDcxN2U0MjRiZjViMGJiODBlIgotCi1TUkNfVVJJICs9ICIgZmlsZTovL2ltcG9ydC1zaW1wbGVqc29uLWFzLWpzb24ucGF0Y2giCi0KLVBZUElfUEFDS0FHRSA9ICJGbGFzay1XVEYiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVJERVBFTkRTXyR7UE59ID0gIlwKLSAgICBweXRob24td3Rmb3JtcyBcCi0gICAgcHl0aG9uLXNpbXBsZWpzb24gXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2std3RmXzAuMTQuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXd0Zl8wLjE0LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJmMDkxYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXd0Zl8wLjE0LjIuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tZmxhc2std3RmLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2steHN0YXRpYy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay14c3RhdGljLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWZlMTRlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2steHN0YXRpYy5pbmMKQEAgLTAsMCArMSwxNiBAQAorREVTQ1JJUFRJT04gPSAiWFN0YXRpYyBzdXBwb3J0IGZvciBmbGFzayIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NjU5OTY4ZjZlYmQ0YjcwYjZjMzE5MGQyMGI0YTkyNGMiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIyZjU2MDIzZTE0NDRjOGJkMWZlYzQxYWZlOTNkZTc0MyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyMjZlYThlOTcwNjVhOTQ4OGI1OWJmZTVjOTRhZjRjNmUyZWE3MGEyNTA1MmUzMDFmYjIzMWExMzgxNDkwMTMzIgorCitGSUxFU0VYVFJBUEFUSFNfcHJlcGVuZCA6PSAiJHtUSElTRElSfS9weXRob24tZmxhc2steHN0YXRpYzoiCitTUkNfVVJJICs9ICJmaWxlOi8vcmVtb3ZlLXBpcC1yZXF1aXJlcy5wYXRjaCIKKworUFlQSV9QQUNLQUdFID0gIkZsYXNrLVhTdGF0aWMiCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWZsYXNrIFwKKyAgICAke1BZVEhPTl9QTn0teHN0YXRpYyBcCisgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2steHN0YXRpYy9yZW1vdmUtcGlwLXJlcXVpcmVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2steHN0YXRpYy9yZW1vdmUtcGlwLXJlcXVpcmVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyZDYyMGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay14c3RhdGljL3JlbW92ZS1waXAtcmVxdWlyZXMucGF0Y2gKQEAgLTAsMCArMSw3IEBACistLS0gRmxhc2stWFN0YXRpYy0wLjAuMS9zZXR1cC5weS5vcmlnCTIwMTUtMDEtMzAgMDg6MDE6NTYuMDAwMDAwMDAwIC0wODAwCisrKysgRmxhc2stWFN0YXRpYy0wLjAuMS9zZXR1cC5weQkyMDE3LTA0LTE3IDIxOjQwOjMyLjU3MDE4MTYyNiAtMDcwMAorQEAgLTEsNCArMSwzIEBACistZnJvbSBwaXAucmVxIGltcG9ydCBwYXJzZV9yZXF1aXJlbWVudHMKKyBpbXBvcnQgc2V0dXB0b29scworIAorIHdpdGggb3BlbignUkVBRE1FLnJzdCcpIGFzIGY6CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay14c3RhdGljXzAuMC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2steHN0YXRpY18wLjAuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmYxNGE4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2steHN0YXRpY18wLjAuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1mbGFzay14c3RhdGljLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2suaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2suaW5jCmluZGV4IDc2YjVmYmEuLmVjZjU2MTkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay5pbmMKQEAgLTEzLDQgKzEzLDQgQEAKIAogUFlQSV9QQUNLQUdFID0gIkZsYXNrIgogCi1SREVQRU5EU18ke1BOfSA9ICIke1BZVEhPTl9QTn0td2Vya3pldWcgJHtQWVRIT05fUE59LWppbmphMiAke1BZVEhPTl9QTn0taXRzZGFuZ2Vyb3VzICR7UFlUSE9OX1BOfS1jbGljayIKK1JERVBFTkRTXyR7UE59ID0gIiR7UFlUSE9OX1BOfS13ZXJremV1ZyAke1BZVEhPTl9QTn0td2Vya3pldWctdGVzdHMgJHtQWVRIT05fUE59LWppbmphMiAke1BZVEhPTl9QTn0taXRzZGFuZ2Vyb3VzICR7UFlUSE9OX1BOfS1jbGljayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZ1dHVyZV8wLjE2LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mdXR1cmVfMC4xNi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2ZjdmZTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mdXR1cmVfMC4xNi4wLmJiCkBAIC0wLDAgKzEsMTMgQEAKK0RFU0NSSVBUSU9OID0gIkNsZWFuIHNpbmdsZS1zb3VyY2Ugc3VwcG9ydCBmb3IgUHl0aG9uIDMgYW5kIDIiCitIT01FUEFHRSA9ICJodHRwczovL3B5dGhvbi1mdXR1cmUub3JnIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9M2Y0NTc1MzhiMjk3YmQwZWY4NjU2NGI4YWMyMTZhZDciCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIzZThlODhhMmJkYTQ4ZDU0YjFkYTc2MzRkMDQ3NjBkNyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlMzljZWQxYWI3NjdiNTkzNjY0NmNlZGJhOGJjY2U1ODIzOTgyMzNkNmE2MjcwNjdkNGM2YTQ1NGM5MGNmZWRiIgorCitQWVBJX1BBQ0tBR0VfSEFTSCA9ICI5OWFiZGU4MTU4NDJiYzZlOTdkNWE3ODA2YWQ1MTIzNjYzMGRhMTRjYTJmM2IxZmNlOTRjMGJiOTRkM2QiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ2V2ZW50LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdldmVudC5pbmMKaW5kZXggODg4OWNmYi4uMTM1MTNmMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ2V2ZW50LmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1nZXZlbnQuaW5jCkBAIC0xMSw3ICsxMSw2IEBACiBSREVQRU5EU18ke1BOfSA9ICIke1BZVEhPTl9QTn0tZ3JlZW5sZXQgXAogCQkgICR7UFlUSE9OX1BOfS1taW1lIFwKIAkJICAke1BZVEhPTl9QTn0tcHByaW50IFwKLQkJICAke1BZVEhPTl9QTn0tcmUgXAogCQkgIgogCiBGSUxFU0VYVFJBUEFUSFNfcHJlcGVuZCA6PSAiJHtUSElTRElSfS9weXRob24tZ2V2ZW50OiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdldmVudF8xLjIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdldmVudF8xLjIuMi5iYgppbmRleCBmMzU3Yzk1Li5mMTNiZmQ3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1nZXZlbnRfMS4yLjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ2V2ZW50XzEuMi4yLmJiCkBAIC0xLDMgKzEsNCBAQAogcmVxdWlyZSBweXRob24tZ2V2ZW50LmluYwogaW5oZXJpdCBzZXR1cHRvb2xzCiAKK1JERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tcmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncmVlbmxldC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncmVlbmxldC5pbmMKaW5kZXggMzU4MjBkYi4uN2E0MjI0MCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JlZW5sZXQuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdyZWVubGV0LmluYwpAQCAtMyw3ICszLDcgQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTAzMTQzZDdhMWE5ZjVkOGEwZmVlODI1ZjI0Y2E5YzM2IFwKICAgICAgICAgICAgICAgICAgICAgZmlsZTovL0xJQ0VOU0UuUFNGO21kNT1jMTA2OTMxZDk0MjllZGEwNDkyNjE3ZjAzN2I4ZjY5YSIKIAotU1JDX1VSSVttZDVzdW1dID0gImU4NjM3NjQ3ZDU4YTI2YzRhMWY1MWNhMzkzZTUzYzAwIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImU0Yzk5YzYwMTBhNWQxNTNkNDgxZmRhZjYzYjhhMDc4MjgyNWMwNzIxNTA2ZDg4MDQwM2EzYjliODJhZTM0N2UiCitTUkNfVVJJW21kNXN1bV0gPSAiNmUwYjlkZDUzODVmODFkNDc4NDUxZWM4ZWQxZDYyYjMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMGZlZjgzZDQzYmY4N2E1MTk2YzkxZTczY2I5NzcyZjk0NWE0Y2FhZmY5MTI0Mjc2NmM1OTE2ZDFkZDEzODFlNCIKIAogaW5oZXJpdCBweXBpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncmVlbmxldF8wLjQuMTIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncmVlbmxldF8wLjQuMTMuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdyZWVubGV0XzAuNC4xMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JlZW5sZXRfMC40LjEzLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncnBjaW8tdG9vbHNfMS42LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncnBjaW8tdG9vbHNfMS42LjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmYjEzNmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JwY2lvLXRvb2xzXzEuNi4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiR29vZ2xlIGdSUEMgdG9vbHMiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmdycGMuaW8vIgotU0VDVElPTiA9ICJkZXZlbC9weXRob24iCi0KLURFUEVORFMgPSAicHl0aG9uLWdycGNpbyIKLVJERVBFTkRTXyR7UE59ID0gInB5dGhvbi1ncnBjaW8iCi0KLUxJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vJHtDT01NT05fTElDRU5TRV9ESVJ9L0JTRC0zLUNsYXVzZTttZDU9NTUwNzk0NDY1YmEwZWM1MzEyZDY5MTllMjAzYTU1ZjkiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI4MzVmMTkxNDJlMjZjYjdhZDY4Y2VjM2EwODNlY2RhMiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1N2IzMTEwY2VkNTBhMThmMWIyYmY3ZGE1OGVkMDExZjU3Mjc4YjQ4MDg0ZWQ4MDEzYzY3YTM0ZDQyYTVjYTM3IgotCi0jIEZvciB1c2FnZSBpbiBvdGhlciByZWNpcGllcyB3aGVuIGNvbXBpbGluZyBwcm90b2J1ZiBmaWxlcyAoZS5nLiBieSBncnBjaW8tdG9vbHMpCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpby10b29sc18xLjguNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpby10b29sc18xLjguNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWUwY2MxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JwY2lvLXRvb2xzXzEuOC40LmJiCkBAIC0wLDAgKzEsMTcgQEAKK0RFU0NSSVBUSU9OID0gIkdvb2dsZSBnUlBDIHRvb2xzIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5ncnBjLmlvLyIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorCitERVBFTkRTID0gInB5dGhvbi1ncnBjaW8iCitSREVQRU5EU18ke1BOfSA9ICJweXRob24tZ3JwY2lvIgorCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7Q09NTU9OX0xJQ0VOU0VfRElSfS9CU0QtMy1DbGF1c2U7bWQ1PTU1MDc5NDQ2NWJhMGVjNTMxMmQ2OTE5ZTIwM2E1NWY5IgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29scworCitTUkNfVVJJW21kNXN1bV0gPSAiZTA0ZTY1YWZlNjA0MTBjZjE3OGZmMjY5OGYwNTJhN2MiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZWRjODRjMDkwMzlkM2EwMTAxMmNjZDk3NDUwYWJkMDZlZTZiOTgwNzEwZjZkOWYxOTFiNTBkZWI2Nzc0YTc1YyIKKworIyBGb3IgdXNhZ2UgaW4gb3RoZXIgcmVjaXBpZXMgd2hlbiBjb21waWxpbmcgcHJvdG9idWYgZmlsZXMgKGUuZy4gYnkgZ3JwY2lvLXRvb2xzKQorQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncnBjaW8vMDAwMS1zZXR1cC5weS1Eby1ub3QtbWl4LUMtYW5kLUMtY29tcGlsZXItb3B0aW9ucy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpby8wMDAxLXNldHVwLnB5LURvLW5vdC1taXgtQy1hbmQtQy1jb21waWxlci1vcHRpb25zLnBhdGNoCmluZGV4IDNhYmJjNmQuLjBjMWQ5NjQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpby8wMDAxLXNldHVwLnB5LURvLW5vdC1taXgtQy1hbmQtQy1jb21waWxlci1vcHRpb25zLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpby8wMDAxLXNldHVwLnB5LURvLW5vdC1taXgtQy1hbmQtQy1jb21waWxlci1vcHRpb25zLnBhdGNoCkBAIC0xOCwxOSArMTgsMTYgQEAKICBzZXR1cC5weSB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAotZGlmZiAtLWdpdCBhL3NldHVwLnB5IGIvc2V0dXAucHkKLWluZGV4IGNiODUyNzMuLmY3OTg3OGQgMTAwNjQ0Ci0tLS0gYS9zZXR1cC5weQotKysrIGIvc2V0dXAucHkKLUBAIC0xMTYsNyArMTE2LDcgQEAgaWYgRVhUUkFfRU5WX0NPTVBJTEVfQVJHUyBpcyBOb25lOgotICAgZWxpZiAnd2luMzInIGluIHN5cy5wbGF0Zm9ybToKLSAgICAgRVhUUkFfRU5WX0NPTVBJTEVfQVJHUyArPSAnIC1EX1BZVEhPTl9NU1ZDJworSW5kZXg6IGdycGNpby0xLjguNC9zZXR1cC5weQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdycGNpby0xLjguNC5vcmlnL3NldHVwLnB5CisrKysgZ3JwY2lvLTEuOC40L3NldHVwLnB5CitAQCAtMTE1LDcgKzExNSw3IEBAIGlmIEVYVFJBX0VOVl9DT01QSUxFX0FSR1MgaXMgTm9uZToKKyAgICAgZWxzZToKKyAgICAgICBFWFRSQV9FTlZfQ09NUElMRV9BUkdTICs9ICcgLURfZnRpbWU9X2Z0aW1lNjQgLURfdGltZWI9X190aW1lYjY0JwogICAgZWxpZiAibGludXgiIGluIHN5cy5wbGF0Zm9ybToKIC0gICAgRVhUUkFfRU5WX0NPTVBJTEVfQVJHUyArPSAnIC1zdGQ9YysrMTEgLXN0ZD1nbnU5OSAtZnZpc2liaWxpdHk9aGlkZGVuIC1mbm8td3JhcHYgLWZuby1leGNlcHRpb25zJwogKyAgICBFWFRSQV9FTlZfQ09NUElMRV9BUkdTICs9ICcgLWZ2aXNpYmlsaXR5PWhpZGRlbiAtZm5vLXdyYXB2IC1mbm8tZXhjZXB0aW9ucycKICAgIGVsaWYgImRhcndpbiIgaW4gc3lzLnBsYXRmb3JtOgotICAgICBFWFRSQV9FTlZfQ09NUElMRV9BUkdTICs9ICcgLWZ2aXNpYmlsaXR5PWhpZGRlbiAtZm5vLXdyYXB2JworICAgICBFWFRSQV9FTlZfQ09NUElMRV9BUkdTICs9ICcgLWZ2aXNpYmlsaXR5PWhpZGRlbiAtZm5vLXdyYXB2IC1mbm8tZXhjZXB0aW9ucycKICAKLS0tIAotMi4xMy40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpb18xLjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpb18xLjYuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzE1NWY0Mi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncnBjaW9fMS42LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1ERVNDUklQVElPTiA9ICJHb29nbGUgZ1JQQyIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3JwYy5pby8iCi1TRUNUSU9OID0gImRldmVsL3B5dGhvbiIKLQotREVQRU5EUyA9ICJweXRob24tcHJvdG9idWYiCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLXNldHVwLnB5LURvLW5vdC1taXgtQy1hbmQtQy1jb21waWxlci1vcHRpb25zLnBhdGNoIFwKLSAgICAgICAgICAgIgotUkRFUEVORFNfJHtQTn0gPSAicHl0aG9uLWVudW0zNCBcCi0gICAgICAgICAgICAgICAgICBweXRob24tZnV0dXJlcyBcCi0gICAgICAgICAgICAgICAgICBweXRob24tcHJvdG9idWYgXAotICAgICAgICAgICAgICAgICAgcHl0aG9uLXNldHVwdG9vbHMgXAotICAgICAgICAgICAgICAgICAgcHl0aG9uLXNpeCBcCi0iCi0KLUxJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vJHtDT01NT05fTElDRU5TRV9ESVJ9L0JTRC0zLUNsYXVzZTttZDU9NTUwNzk0NDY1YmEwZWM1MzEyZDY5MTllMjAzYTU1ZjkiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJjOTFiOGMxMDVmZjQxNjNiNDE3OTBmM2I2M2RiOTJlMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI2Y2Q3OTNkNTE1ZWM1MzU4N2E4OTY4ZjJhNTM2NDdmMTQ0OTc2M2FkMDZiZTBkMjg3ZTNjMWU0NzQxOGUxZTUwIgotCi0jIEZvciB1c2FnZSBpbiBvdGhlciByZWNpcGVzIHdoZW4gY29tcGlsaW5nIHByb3RvYnVmIGZpbGVzIChlLmcuIGJ5IGdycGNpby10b29scykKLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JwY2lvXzEuOC40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JwY2lvXzEuOC40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlYzlkODQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncnBjaW9fMS44LjQuYmIKQEAgLTAsMCArMSwyNSBAQAorREVTQ1JJUFRJT04gPSAiR29vZ2xlIGdSUEMiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmdycGMuaW8vIgorU0VDVElPTiA9ICJkZXZlbC9weXRob24iCisKK0RFUEVORFMgPSAicHl0aG9uLXByb3RvYnVmIgorCitTUkNfVVJJX2FwcGVuZF9jbGFzcy10YXJnZXQgPSAiIGZpbGU6Ly8wMDAxLXNldHVwLnB5LURvLW5vdC1taXgtQy1hbmQtQy1jb21waWxlci1vcHRpb25zLnBhdGNoICIKKworUkRFUEVORFNfJHtQTn0gPSAicHl0aG9uLWVudW0zNCBcCisgICAgICAgICAgICAgICAgICBweXRob24tZnV0dXJlcyBcCisgICAgICAgICAgICAgICAgICBweXRob24tcHJvdG9idWYgXAorICAgICAgICAgICAgICAgICAgcHl0aG9uLXNldHVwdG9vbHMgXAorICAgICAgICAgICAgICAgICAgcHl0aG9uLXNpeCBcCisiCisKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vJHtDT01NT05fTElDRU5TRV9ESVJ9L0JTRC0zLUNsYXVzZTttZDU9NTUwNzk0NDY1YmEwZWM1MzEyZDY5MTllMjAzYTU1ZjkiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI3ODYwZjdjNjFkZTM4OTAzMjM2NzBiN2IxZmY2M2U1NiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI4OGQ4N2FhYjljNzg4OWIzYWIyOWRkNzRhYWMxYTU0OTNlZDc4YjliZjVhZmJhMWMwNjljOWRkNTUzMWY5NTFkIgorCisjIEZvciB1c2FnZSBpbiBvdGhlciByZWNpcGVzIHdoZW4gY29tcGlsaW5nIHByb3RvYnVmIGZpbGVzIChlLmcuIGJ5IGdycGNpby10b29scykKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taHRtbDVsaWIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taHRtbDVsaWIuaW5jCmluZGV4IDljNTllMGQuLjBlYjhiZjMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWh0bWw1bGliLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1odG1sNWxpYi5pbmMKQEAgLTIsMTMgKzIsMTQgQEAKIExJQ0VOU0UgPSAiTUlUIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MWJhNWFkYTllNmZlYWQxZmRjMzJmNDNjOWYxMGJhN2MiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI4NTc4ZTRlM2EzNDE0MzZjYjk3NDNhOWU0YTI5OTIzOSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlZTc0N2MwZmZkMzAyOGQyNzIyMDYxOTM2YjVjNjVlZTRmZTEzYzhlNDYxMzUxOWI0NDQ3MTIzZmM0NTQ2Mjk4IgorU1JDX1VSSVttZDVzdW1dID0gIjk0MmEwNjg4ZDZiZGYyMGQwODdjOTgwNWM0MDE4MmFkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjY2Y2IwZGNmZGJiYzRmOWMzYmExYTYzZmRiNTExZmZkYmQ0ZjUxM2IyYjZkODFiODBjZDI2Y2U2YjNmYjM3MzYiCiAKIGluaGVyaXQgcHlwaQogCiBSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1seG1sIFwKICAgICAke1BZVEhPTl9QTn0tc2l4IFwKICAgICAke1BZVEhPTl9QTn0td2ViZW5jb2RpbmdzIFwKICAgICAke1BZVEhPTl9QTn0teG1sIFwKLSAgICAiCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1odG1sNWxpYl8wLjk5OTk5OTk5OS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWh0bWw1bGliXzEuMC4xLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1odG1sNWxpYl8wLjk5OTk5OTk5OS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taHRtbDVsaWJfMS4wLjEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWh1bWFuaXplLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWh1bWFuaXplLmluYwppbmRleCBkOWZhYzA5Li4xN2EzNDQ5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1odW1hbml6ZS5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taHVtYW5pemUuaW5jCkBAIC03LDQgKzcsOCBAQAogU1JDX1VSSVttZDVzdW1dID0gImU4NDczZDlkYzFiMjIwOTExY2FjMmVkZDUzYjFkOTczIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImE0M2Y1NzExNTgzMWFjN2M3MGRlMDk4ZTZhYzQ2YWMxM2JlMDBkNjlhYmJmNjBiZGNhYzI1MTM0NDc4NWJiMTkiCiAKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKKyIKKwogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taW5jcmVtZW50YWwuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taW5jcmVtZW50YWwuaW5jCmluZGV4IDM2NzU0NTguLmI2M2ZhYzkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWluY3JlbWVudGFsLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pbmNyZW1lbnRhbC5pbmMKQEAgLTEyLDMgKzEyLDkgQEAKICAgICAke1BZVEhPTl9QTn0tdHdpc3RlZCBcCiAgICAgJHtQWVRIT05fUE59LWNsaWNrIFwKICIKKworIyAtbmF0aXZlIGlzIG5lZWRlZCB0byBidWlsZCBweXRob25bM10tdHdpc3RlZCwgaG93ZXZlciwgd2UgbmVlZCB0byB0YWtlIHN0ZXBzIHRvCisjIHByZXZlbnQgYSBjaXJjdWxhciBkZXBlbmRlbmN5LiBUaGUgYnVpbGQgYXBwYXJlbnRseSBkb2VzIG5vdCB1c2UgdGhlIHBhcnQgb2YKKyMgcHl0aG9uLWluY3JlbWVudGFsIHdoaWNoIHVzZXMgcHl0aG9uLXR3aXN0ZWQsIHNvIHRoaXMgaGFjayBpcyBPSy4KK1JERVBFTkRTXyR7UFlUSE9OX1BOfS1pbmNyZW1lbnRhbC1uYXRpdmVfcmVtb3ZlID0gIiR7UFlUSE9OX1BOfS10d2lzdGVkLW5hdGl2ZSIKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlwYWRkcmVzc18xLjAuMTguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pcGFkZHJlc3NfMS4wLjE4LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYzRmNTg5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlwYWRkcmVzc18xLjAuMTguYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1TVU1NQVJZID0gIlB5dGhvbiAzLjMrJ3MgaXBhZGRyZXNzIGZvciBQeXRob24gMi42LCAyLjcsIDMuMi4iCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vcGhpaGFnL2lwYWRkcmVzcyIKLUxJQ0VOU0UgPSAiUHl0aG9uLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTdmNTM4NTg0Y2MzNDA3YmY3NjA0MmRlZjcxNjg1NDhhIgotCi1ERVBFTkRTICs9ICJweXRob24tcGlwIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMzEwYzJkZmQ2NGViNmYwZGY0NGFhOGM1OWYyMzM0YTciCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWQ4NTM0YzhlMTg1ZjJkOGExZmRhMWVmNzNmMmM4ZjRiMjMyNjRlOGUzMDA2M2ZlZWI5NTExZDQ5MmE0MTNlMSIKLQotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXBhZGRyZXNzXzEuMC4xOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlwYWRkcmVzc18xLjAuMTkuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM1MGI0NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlwYWRkcmVzc18xLjAuMTkuYmIKQEAgLTAsMCArMSwxMyBAQAorU1VNTUFSWSA9ICJQeXRob24gMy4zKydzIGlwYWRkcmVzcyBmb3IgUHl0aG9uIDIuNiwgMi43LCAzLjIuIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3BoaWhhZy9pcGFkZHJlc3MiCitMSUNFTlNFID0gIlB5dGhvbi0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT03ZjUzODU4NGNjMzQwN2JmNzYwNDJkZWY3MTY4NTQ4YSIKKworREVQRU5EUyArPSAicHl0aG9uLXBpcCIKKworU1JDX1VSSVttZDVzdW1dID0gImQwNjg3ZWZhZjkzYTMyNDc2ZDgxZTkwYmEwNjA5YzU3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjIwMGQ4Njg2MDExZDQ3MGI1ZTRkZTIwN2Q4MDM0NDVkZWVlNDI3NDU1Y2QwY2I3Yzk4MmI2OGNmODI1MjRmODEiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlzbzg2MDEuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXNvODYwMS5pbmMKaW5kZXggNDVkYTc1Zi4uNjFlOWFiYiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXNvODYwMS5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXNvODYwMS5pbmMKQEAgLTYsNCArNiw4IEBACiBTUkNfVVJJW21kNXN1bV0gPSAiNGRlOTQwZjY5MWM1ZWE3NTlmYjI1NDM4NGM4ZGRjZjYiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDljNGIyMGUxZjM4YWE1Y2YxMDlkZGNkMzk2NDdhYzQxOWY5Mjg1MTJjODY5ZGMwMWQ1YzcwOThlZGRlZGU4MiIKIAorUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tZGF0ZXRpbWUgXAorIgorCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pc29ydC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pc29ydC5pbmMKaW5kZXggOTg4NGM0NC4uNmQxM2U1ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXNvcnQuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlzb3J0LmluYwpAQCAtNCw3ICs0LDEyIEBACiBTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO2JlZ2lubGluZT04O2VuZGxpbmU9ODttZDU9ODIyNzE4MDEyNjc5N2EwMTQ4Zjk0ZjQ4M2YzZTE0ODkiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIzNDkxNWEyY2U2MGU2ZmUzZGJjYmY1OTgyZGVlZjliNCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI3OWY0NjE3MmQzYTRlMmU1M2U3MDE2ZTY2M2NjN2E4YjUzOGJlYzUyNWMzNjY3NWZjZmQyNzY3ZGYzMGIzOTgzIgorU1JDX1VSSVttZDVzdW1dID0gImZiNTU0ZTljOGY5YWE3NmUzMzNhMDNkNDcwYTVjZjUyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImI5YzQwZTk3NTBmM2Q3N2U2ZTRkNDQxZDhiMDI2NmNmNTU1ZTdjZGFiZGNmZjMzYzRmZDA2MzY2Y2E3NjFlZjgiCiAKIGluaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1kYXRldGltZSBcCisgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlzb3J0XzQuMi4xNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlzb3J0XzQuMy40LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pc29ydF80LjIuMTUuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlzb3J0XzQuMy40LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pdHNkYW5nZXJvdXMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXRzZGFuZ2Vyb3VzLmluYwppbmRleCA3Mzk1MWZhLi44NGY5ZTc3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pdHNkYW5nZXJvdXMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWl0c2Rhbmdlcm91cy5pbmMKQEAgLTcsMyArNyw4IEBACiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiY2JiM2ZjZjhkM2UzM2RmODYxNzA5ZWNhZjg5ZDllNjYyOWNmZjBhMjE3YmMyODQ4ZjFiNDFjZDMwZDM2MDUxOSIKIAogQ0xFQU5CUk9LRU4gPSAiMSIKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXNpbXBsZWpzb24gXAorICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXRzZGFuZ2Vyb3VzXzAuMjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pdHNkYW5nZXJvdXNfMC4yNC5iYgppbmRleCAwZTE1NmJlLi44Yzk5Y2I0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pdHNkYW5nZXJvdXNfMC4yNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pdHNkYW5nZXJvdXNfMC4yNC5iYgpAQCAtMSwyICsxLDYgQEAKIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCiByZXF1aXJlIHB5dGhvbi1pdHNkYW5nZXJvdXMuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS16bGliIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWphdmFvYmotcHkzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWphdmFvYmotcHkzLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGU4MDJjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tamF2YW9iai1weTMuaW5jCkBAIC0wLDAgKzEsMTUgQEAKK1NVTU1BUlkgPSAiTW9kdWxlIGZvciBzZXJpYWxpemluZyBhbmQgZGUtc2VyaWFsaXppbmcgSmF2YSBvYmplY3RzLiIKK0RFU0NSSVBUSU9OID0gInB5dGhvbi1qYXZhb2JqIGlzIGEgcHl0aG9uIGxpYnJhcnkgdGhhdCBwcm92aWRlcyBmdW5jdGlvbnNcCisgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgKHdyaXRpbmcgaXMgV0lQIGN1cnJlbnRseSkgSmF2YSBvYmplY3RzIHNlcmlhbGl6ZWRcCisgb3Igd2lsbCBiZSBkZXNlcmlhbGl6ZWQgYnkgT2JqZWN0T3V0cHV0U3RyZWFtLiBUaGlzIGZvcm0gb2Ygb2JqZWN0XAorIHJlcHJlc2VudGF0aW9uIGlzIGEgc3RhbmRhcmQgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQgaW4gSmF2YSB3b3JsZC4iCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vdGNhbG1hbnQvcHl0aG9uLWphdmFvYmoiCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9qYXZhb2JqLnB5O2JlZ2lubGluZT0yMTtlbmRsaW5lPTMzO21kNT04YjUwNDQxOWNlNzhmODEzM2IyMWI0ZDRhODllZjdlOSIKKworU1JDX1VSSVttZDVzdW1dID0gImY2NjliYjgwOTkzODBlM2RkODRkYjNkNTQyYWE1YjY4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImI4YjBkMzEwZmQ5N2UxYzc5MTRkNzkxMWVlOWQzZjRiM2Q4NGQyYTY3NGFhOTVhNGIwZGEzZDhmMTU1ZmMxYmIiCisKK2luaGVyaXQgcHlwaQorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qYXZhb2JqLXB5M18wLjIuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWphdmFvYmotcHkzXzAuMi40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMzQ3NDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qYXZhb2JqLXB5M18wLjIuNC5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLWphdmFvYmotcHkzLmluYworaW5oZXJpdCBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qaW5qYTIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tamluamEyLmluYwppbmRleCAzNWNiYjBiLi4wYzBiZjBkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qaW5qYTIuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWppbmphMi5pbmMKQEAgLTQsMTIgKzQsMTIgQEAKIAogUFlQSV9QQUNLQUdFID0gIkppbmphMiIKIAotU1JDX1VSSVttZDVzdW1dID0gIjY0MTE1MzczMjRiNGRiYTA5NTZhYWE4MTA5ZjNjNzdiIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImRkYWEwMWEyMTJjZDZkNjQxNDAxY2IwMWI2MDVmNGE0ZDlmMzdiZmM5MzA0M2Q3Zjc2MGVjNzBmYjk5ZmY5ZmYiCitTUkNfVVJJW21kNXN1bV0gPSAiNjFlZjExMTdmOTQ1NDg2NDcyODUwODE5YjhkMWViM2QiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjg0YmUxYmIwMDQwY2FjYTRjZWE3MjFmY2JiYmJkNjFmOWJlOTQ2NGNhMjM2Mzg3MTU4YjBmZWVhMDE5MTRhNCIKIAogUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1pbyAke1BZVEhPTl9QTn0tcGlja2xlICR7UFlUSE9OX1BOfS1jcnlwdCBcCi0gICAgJHtQWVRIT05fUE59LW1hdGggJHtQWVRIT05fUE59LW5ldGNsaWVudCAke1BZVEhPTl9QTn0tcmUgJHtQWVRIT05fUE59LXRleHR1dGlscyBcCi0gICAgJHtQWVRIT05fUE59LWxhbmcgJHtQWVRIT05fUE59LXBwcmludCAke1BZVEhPTl9QTn0tc2hlbGwgJHtQWVRIT05fUE59LW1hcmt1cHNhZmUgXAorICAgICR7UFlUSE9OX1BOfS1tYXRoICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorICAgICR7UFlUSE9OX1BOfS1wcHJpbnQgJHtQWVRIT05fUE59LXNoZWxsICR7UFlUSE9OX1BOfS1tYXJrdXBzYWZlIFwKICAgICAke1BZVEhPTl9QTn0tanNvbiAke1BZVEhPTl9QTn0tdGhyZWFkaW5nICR7UFlUSE9OX1BOfS1udW1iZXJzIgogCiBDTEVBTkJST0tFTiA9ICIxIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tamluamEyXzIuMTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qaW5qYTJfMi4xMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjMzY2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tamluamEyXzIuMTAuYmIKQEAgLTAsMCArMSw4IEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tamluamEyLmluYworCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tbGFuZyBcCisgICAgJHtQWVRIT05fUE59LXJlIFwKKyAgICAke1BZVEhPTl9QTn0tdGV4dHV0aWxzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWppbmphMl8yLjkuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWppbmphMl8yLjkuNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM4ZTdlZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qaW5qYTJfMi45LjYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1qaW5qYTIuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucGF0Y2guaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnBhdGNoLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDljMDlhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnBhdGNoLmluYwpAQCAtMCwwICsxLDEyIEBACitTVU1NQVJZICA9ICJBcHBsaW5nIEpTT04gcGF0Y2hlcyBpbiBQeXRob24gMi42KyBhbmQgMy54IgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZWZhbmtvZWdsL3B5dGhvbi1qc29uLXBhdGNoIgorTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0zMmIxNWM4NDNiN2EzMjkxMzBmNGUyNjZhMjgxZWJiMyIKKworaW5oZXJpdCBweXBpCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI4M2M0YzlmYWNjYjRhMmZmOGMxZGI4MGNiZGRjNTkwZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0OWYyOWNhYjcwZTkwNjhkYjNiMWRjNmI2NTZjYmUyZWU0ZWRmN2RmZTliZjVhMDA1NWYxN2E0YjY4MDRhNGI5IgorCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWpzb24gJHtQWVRIT05fUE59LWpzb25wb2ludGVyICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgJHtQWVRIT05fUE59LXN0cmluZ29sZCIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnBhdGNoXzEuMTYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucGF0Y2hfMS4xNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJjNjFhNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucGF0Y2hfMS4xNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVNVTU1BUlkgID0gIkFwcGxpbmcgSlNPTiBwYXRjaGVzIGluIFB5dGhvbiAyLjYrIGFuZCAzLngiCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vc3RlZmFua29lZ2wvcHl0aG9uLWpzb24tcGF0Y2giCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTMyYjE1Yzg0M2I3YTMyOTEzMGY0ZTI2NmEyODFlYmIzIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1TUkNfVVJJW21kNXN1bV0gPSAiOGVmMWNlYjAwZGNmOTkyYzllNDM2MTFmNjk4ZjkyNzkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjAyNWMyOGEwOGNlNzQ3NDI5ZWU3NDZiYjIxNzk2YzNiNjQxN2VjODIyODhmOGZlNjUxNGRiNzM5OGYyYWY4YSIKLQotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1qc29uICR7UFlUSE9OX1BOfS1qc29ucG9pbnRlciAke1BZVEhPTl9QTn0tbmV0Y2xpZW50ICR7UFlUSE9OX1BOfS1yZSAke1BZVEhPTl9QTn0tc3RyaW5nb2xkIgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucGF0Y2hfMS4yMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25wYXRjaF8xLjIzLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwY2QzMTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucGF0Y2hfMS4yMy5iYgpAQCAtMCwwICsxLDQgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tanNvbnBhdGNoLmluYworCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LXJlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnBvaW50ZXIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnBvaW50ZXIuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlZDAxZWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucG9pbnRlci5pbmMKQEAgLTAsMCArMSwxMyBAQAorU1VNTUFSWSA9ICJSZXNvbHZlIEpTT04gUG9pbnRlcnMgaW4gUHl0aG9uIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZWZhbmtvZWdsL3B5dGhvbi1qc29uLXBvaW50ZXIiCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT0zMmIxNWM4NDNiN2EzMjkxMzBmNGUyNjZhMjgxZWJiMyIKKworaW5oZXJpdCBweXBpCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI3NDFiOThkMGU2OTNiMDhiNWU0NGUwYTlkYTVhN2JiNyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjMTkyYmE4NjY0OGUwNWZkYWU0ZjA4YTE3ZWMyNTE4MGE5YWVmNTAwOGQ5NzM0MDdiNTgxNzk4YTgzOTc1MzYyIgorCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tanNvbiBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucG9pbnRlcl8xLjEyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnBvaW50ZXJfMS4xMi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjVjMWFhOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucG9pbnRlcl8xLjEyLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotU1VNTUFSWSA9ICJSZXNvbHZlIEpTT04gUG9pbnRlcnMgaW4gUHl0aG9uIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZWZhbmtvZWdsL3B5dGhvbi1qc29uLXBvaW50ZXIiCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTMyYjE1Yzg0M2I3YTMyOTEzMGY0ZTI2NmEyODFlYmIzIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1TUkNfVVJJW21kNXN1bV0gPSAiZWFhYWQ3OWU5ODNkNThlY2JlZTViNGEzMjY3MjM3NzciCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiODE5YjZkZDRmZDBhMThhYzIxOWUwMmEwMTE3ZjI0YjJkMzEyOTZiMGM0NzVjMzM4NjJjZmE5YTE2MTZkNjJjMyIKLQotUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi1yZSBweXRob24tanNvbiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25wb2ludGVyXzIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25wb2ludGVyXzIuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTNhNzc2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnBvaW50ZXJfMi4wLmJiCkBAIC0wLDAgKzEsNCBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1qc29ucG9pbnRlci5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1yZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25zY2hlbWEuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnNjaGVtYS5pbmMKaW5kZXggZGI1N2M2OS4uNmZkYzAyNCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnNjaGVtYS5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnNjaGVtYS5pbmMKQEAgLTExLDE3ICsxMSwxMyBAQAogICAgICR7UFlUSE9OX1BOfS1jb3JlIFwKICAgICAke1BZVEhPTl9QTn0taW8gXAogICAgICR7UFlUSE9OX1BOfS1qc29uIFwKLSAgICAke1BZVEhPTl9QTn0tbGFuZyBcCiAgICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCiAgICAgJHtQWVRIT05fUE59LW51bWJlcnMgXAogICAgICR7UFlUSE9OX1BOfS1wa2d1dGlsIFwKICAgICAke1BZVEhPTl9QTn0tcHByaW50IFwKLSAgICAke1BZVEhPTl9QTn0tcmUgXAogICAgICR7UFlUSE9OX1BOfS1yZmMzOTg3IFwKICAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAogICAgICR7UFlUSE9OX1BOfS1zdHJpY3QtcmZjMzMzOSBcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAotICAgICR7UFlUSE9OX1BOfS10ZXh0dXRpbHMgXAogICAgICR7UFlUSE9OX1BOfS11bml0dGVzdCBcCiAiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25zY2hlbWFfMi42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29uc2NoZW1hXzIuNi4wLmJiCmluZGV4IDNiYjUyMjAuLmI2NzdjNjQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25zY2hlbWFfMi42LjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnNjaGVtYV8yLjYuMC5iYgpAQCAtNSw0ICs1LDggQEAKICAgICAke1BZVEhPTl9QTn0tYXJncGFyc2UgXAogICAgICR7UFlUSE9OX1BOfS1jb250ZXh0bGliIFwKICAgICAke1BZVEhPTl9QTn0tZnVuY3Rvb2xzMzIgXAorICAgICR7UFlUSE9OX1BOfS1sYW5nIFwKKyAgICAke1BZVEhPTl9QTn0tcmUgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyAgICAke1BZVEhPTl9QTn0tdGV4dHV0aWxzIFwgCiAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1sb2NrZmlsZV8wLjEyLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1sb2NrZmlsZV8wLjEyLjIuYmIKaW5kZXggY2QxNTc2MC4uOWFkODY1ZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbG9ja2ZpbGVfMC4xMi4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWxvY2tmaWxlXzAuMTIuMi5iYgpAQCAtMTEsMyArMTEsOSBAQAogCiBTUkNfVVJJW21kNXN1bV0gPSAiYTZhMWE4Mjk1N2EyM2FmZGY0NGNmZGQwMzliNjVmZjkiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNmFlZDAyZGUwM2NiYTI0ZWZhYmNkNjAwYjMwNTQwMTQwNjM0ZmMwNmNmYTYwMzgyMmQ1MDhkNTM2MWU5Zjc5OSIKKworIyBTYXRpc2Z5IHNldHVwLnB5ICdzZXR1cF9yZXF1aXJlcycKK0RFUEVORFMgKz0gIiBcCisgICAgICAgIHB5dGhvbi1wYnItbmF0aXZlIFwKKyAgICAgICAgIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1seG1sLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWx4bWwuaW5jCmluZGV4IDdjMGE3ZDcuLjNmM2ExZTIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWx4bWwuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWx4bWwuaW5jCkBAIC0xMSwxNSArMTEsMTUgQEAKICAgICAgICAgICAgICAgICAgICAgZmlsZTovL2RvYy9saWNlbnNlcy9lbGVtZW50dHJlZS50eHQ7bWQ1PWViMzRkMDM2YTZlM2Q1NjMxNGVlNDlhNjg1MmFjODkxIFwKICAgICAgICAgICAgICAgICAgICAgZmlsZTovL2RvYy9saWNlbnNlcy9CU0QudHh0O21kNT03MDBhMWZjMTdmNDc5N2Q0ZjJkMzQ5NzBjOGVlNjk0YiBcCiAgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9kb2MvbGljZW5zZXMvR1BMLnR4dDttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL2x4bWwvaXNvc2NoZW1hdHJvbi9yZXNvdXJjZXMvcm5nL2lzby1zY2hlbWF0cm9uLnJuZztzdGFydGxpbmU9MjtlbmRsaW5lPTc7bWQ1PWEyOTE0ZDEyYWNjNzA2NmIzZjViNjBlOGY5NGEwMTJlIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9seG1sL2lzb3NjaGVtYXRyb24vcmVzb3VyY2VzL3hzbC9pc28tc2NoZW1hdHJvbi14c2x0MS9pc29fc2NoZW1hdHJvbl9tZXNzYWdlLnhzbDtzdGFydGxpbmU9MjtlbmRsaW5lPTI0O21kNT05Njk3NmRjYzY2MjQ5YzUxZTgwMjZiMTU5Y2E1ZTc1NSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvbHhtbC9pc29zY2hlbWF0cm9uL3Jlc291cmNlcy94c2wvUk5HMlNjaHRybi54c2w7c3RhcnRsaW5lPTI7ZW5kbGluZT03O21kNT01Y2FjNGFkNGI1ZTEzMWExMGU5YWY3NTViMTBmYmJiNyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvbHhtbC9pc29zY2hlbWF0cm9uL3Jlc291cmNlcy9ybmcvaXNvLXNjaGVtYXRyb24ucm5nO2JlZ2lubGluZT0yO2VuZGxpbmU9NzttZDU9OTM5ZTc0MzBjZTg1ZTEyNDJmZjUwYzRlZTk0MzA3NTIgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL2x4bWwvaXNvc2NoZW1hdHJvbi9yZXNvdXJjZXMveHNsL2lzby1zY2hlbWF0cm9uLXhzbHQxL2lzb19zY2hlbWF0cm9uX21lc3NhZ2UueHNsO2JlZ2lubGluZT0yO2VuZGxpbmU9MjQ7bWQ1PWNjODZiN2IyYmJjNjc4ZTEzZjU4ZWE0MDNlYjk5MjliIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9seG1sL2lzb3NjaGVtYXRyb24vcmVzb3VyY2VzL3hzbC9STkcyU2NodHJuLnhzbDtiZWdpbmxpbmU9MjtlbmRsaW5lPTc7bWQ1PTViMDMyMzZkMjkzZGMzNzg0MjA1NTQyYjQwOWQyZjUzIFwKICAgICAgICAgICAgICAgICAgICAgIgogCiBERVBFTkRTICs9ICJsaWJ4bWwyIGxpYnhzbHQiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIyNDc1ODBiZDVkOTQyODcyYmQ5NzJhZDAwODZlNWNiZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiZTNhYWViNWY0NjhhNDlmNTIzZjE2NzM2Y2NmZjdkODJhZjJiNGIzMDMyOTJiYTNkMDUyYjViMjhmM2ZiZTQ3IgorU1JDX1VSSVttZDVzdW1dID0gImMyNjZkOTA2MmUyM2IwOGY2NjQyNjk3OWEyYjM2ZjUxIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImUyNjI5Y2RiY2FkODJiODM5MjJhMzQ4ODkzNzYzMmE0OTgzZWNjMGZlZDNlNWNmYmY0MzBkMDY5MzgyZWViOWIiCiAKIERJU1RVVElMU19CVUlMRF9BUkdTICs9ICIgXAogICAgICAgICAgICAgICAgICAgICAgLS13aXRoLXhzbHQtY29uZmlnPSdwa2ctY29uZmlnIGxpYnhzbHQnIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWx4bWxfNC4xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1seG1sXzQuMi4xLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1seG1sXzQuMS4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1seG1sXzQuMi4xLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tMmNyeXB0by8wMDAxLXNldHVwLnB5LWxpbmstaW4tc3lzcm9vdC1ub3QtaW4taG9zdC1kaXJlY3Rvcmllcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW0yY3J5cHRvLzAwMDEtc2V0dXAucHktbGluay1pbi1zeXNyb290LW5vdC1pbi1ob3N0LWRpcmVjdG9yaWVzLnBhdGNoCmluZGV4IDgxOWM4ZTUuLmM3MWIxNmYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW0yY3J5cHRvLzAwMDEtc2V0dXAucHktbGluay1pbi1zeXNyb290LW5vdC1pbi1ob3N0LWRpcmVjdG9yaWVzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW0yY3J5cHRvLzAwMDEtc2V0dXAucHktbGluay1pbi1zeXNyb290LW5vdC1pbi1ob3N0LWRpcmVjdG9yaWVzLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBmMTFiOWM3MTA4MDUxM2Y5Yjg2N2JhOGY0MDYxM2JhMmViYzZlOTYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBkZmI4M2E0MWFhZWFlMzI2ZTliNmYwMmIyMzNhZjM3NWJjN2I4ODE1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KIERhdGU6IEZyaSwgMjkgTWFyIDIwMTMgMTU6MTc6MTcgKzAxMDAKIFN1YmplY3Q6IFtQQVRDSF0gc2V0dXAucHk6IGxpbmsgaW4gc3lzcm9vdCwgbm90IGluIGhvc3QgZGlyZWN0b3JpZXMKQEAgLTEwLDEyICsxMCwxMiBAQAogIHNldHVwLnB5IHwgNiArKystLS0KICAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogCi1JbmRleDogTTJDcnlwdG8tMC4yMy4wL3NldHVwLnB5Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gTTJDcnlwdG8tMC4yMy4wLm9yaWcvc2V0dXAucHkKLSsrKyBNMkNyeXB0by0wLjIzLjAvc2V0dXAucHkKLUBAIC02Miw3ICs2Miw3IEBAIGNsYXNzIF9NMkNyeXB0b0J1aWxkRXh0KGJ1aWxkX2V4dC5idWlsZF8KLSAgICAgICAgICAgICBzZWxmLm9wZW5zc2wgPSAnYzpcXHBrZycKK2RpZmYgLS1naXQgYS9zZXR1cC5weSBiL3NldHVwLnB5CitpbmRleCAzNDA3YzgyLi4xNWVkN2NkIDEwMDY0NAorLS0tIGEvc2V0dXAucHkKKysrKyBiL3NldHVwLnB5CitAQCAtMTI3LDcgKzEyNyw3IEBAIGNsYXNzIF9NMkNyeXB0b0J1aWxkRXh0KGJ1aWxkX2V4dC5idWlsZF9leHQpOgorICAgICAgICAgICAgICAgICBzZWxmLm9wZW5zc2wgPSBvcy5wYXRoLmpvaW4oc2VsZi5vcGVuc3NsLCAnT3BlblNTTCcpCiAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgIHNlbGYubGlicmFyaWVzID0gWydzc2wnLCAnY3J5cHRvJ10KIC0gICAgICAgICAgICBzZWxmLm9wZW5zc2wgPSAnL3VzcicKQEAgLTIzLDcgKzIzLDcgQEAKICAKICAgICAgZGVmIGZpbmFsaXplX29wdGlvbnMoc2VsZik6CiAgICAgICAgICAnJydPdmVybG9hZGVkIGJ1aWxkX2V4dCBpbXBsZW1lbnRhdGlvbiB0byBhcHBlbmQgY3VzdG9tIG9wZW5zc2wKLUBAIC03NSw4ICs3NSw4IEBAIGNsYXNzIF9NMkNyeXB0b0J1aWxkRXh0KGJ1aWxkX2V4dC5idWlsZF8KK0BAIC0xNDMsOCArMTQzLDggQEAgY2xhc3MgX00yQ3J5cHRvQnVpbGRFeHQoYnVpbGRfZXh0LmJ1aWxkX2V4dCk6CiAgICAgICAgICBpZiBfb3BlbnNzbCBhbmQgb3MucGF0aC5pc2Rpcihfb3BlbnNzbCk6CiAgICAgICAgICAgICAgc2VsZi5vcGVuc3NsID0gX29wZW5zc2wKICAKQEAgLTM0LDMgKzM0LDYgQEAKICAKICAgICAgICAgIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09ICJMaW51eCI6CiAgICAgICAgICAgICAgaWYgX211bHRpYXJjaDogICMgb24gRmVkb3JhL1JIRUwgaXQgaXMgYW4gZW1wdHkgc3RyaW5nCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1ha28uaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbWFrby5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlmYTU1NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1ha28uaW5jCkBAIC0wLDAgKzEsMjEgQEAKK1NVTU1BUlkgPSAiQSBzdXBlci1mYXN0IHRlbXBsYXRpbmcgbGFuZ3VhZ2UgdGhhdCBib3Jyb3dzIHRoZSBiZXN0IGlkZWFzIGZyb20gdGhlIGV4aXN0aW5nIHRlbXBsYXRpbmcgbGFuZ3VhZ2VzIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5tYWtvdGVtcGxhdGVzLm9yZy8iCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MWJiMjFmYTJkMmY3YTUzNGM4ODRiOTkwNDMwYTY4NjMiCisKK1BZUElfUEFDS0FHRSA9ICJNYWtvIgorCitpbmhlcml0IHB5cGkKKworU1JDX1VSSVttZDVzdW1dID0gIjU4MzZjYzk5N2IxYjc3M2VmMzg5YmY2NjI5YzMwZTY1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjRlMDJmZGU1N2JkNGFiYjVlYzQwMDE4MWU0YzMxNGY1NmFjM2U0OWJhNGZiOGIwZDUwYmJhMThjYjI3ZDI1YWUiCisKK1JERVBFTkRTXyR7UE59ID0gIiBcCisgICAgJHtQWVRIT05fUE59LWh0bWwgXAorICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCisgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCisiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1ha29fMS4wLjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tYWtvXzEuMC43LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzNzJlZWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tYWtvXzEuMC43LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1tYWtvLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbWFya3Vwc2FmZS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tYXJrdXBzYWZlLmluYwppbmRleCBlNTBmOGNlLi45MjdmODQ0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tYXJrdXBzYWZlLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tYXJrdXBzYWZlLmluYwpAQCAtOSw0ICs5LDQgQEAKIFBZUElfUEFDS0FHRSA9ICJNYXJrdXBTYWZlIgogaW5oZXJpdCBweXBpCiAKLVJERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tcmUgJHtQWVRIT05fUE59LXN0cmluZ29sZCIKK1JERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tc3RyaW5nb2xkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbWFya3Vwc2FmZV8xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tYXJrdXBzYWZlXzEuMC5iYgppbmRleCA1Yzk4ODRiLi4wNWJiZThhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tYXJrdXBzYWZlXzEuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tYXJrdXBzYWZlXzEuMC5iYgpAQCAtMSw0ICsxLDYgQEAKIGluaGVyaXQgc2V0dXB0b29scwogcmVxdWlyZSBweXRob24tbWFya3Vwc2FmZS5pbmMKIAorUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1yZSIKKwogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tb25vdG9uaWNfMS4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbW9ub3RvbmljXzEuMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWU5MWQxOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tb25vdG9uaWNfMS4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotU1VNTUFSWSA9ICJBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aW1lLm1vbm90b25pYygpIGZvciBQeXRob24gMi4wIHRocm91Z2ggMy4yIgotTElDRU5TRSA9ICJBcGFjaGUtMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZDI3OTRjMGRmNWI5MDdmZGFjZTIzNWE2MTlkODAzMTQiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIzNDM1MTI1MWQxYTY3NjY3YTI1Y2Q3NjczZDJlNDRiZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIyYjQ2OWUyZDdkZDQwM2Y3ZjdmNzkyMjdmZTVhZDU1MWVlMWU3NmY4YmIzMDBhZTkzNTIwOTg4NGI5M2M3YzFiIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWN0eXBlcyAke1BZVEhPTl9QTn0taW8gJHtQWVRIT05fUE59LXJlICR7UFlUSE9OX1BOfS10aHJlYWRpbmciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tb25vdG9uaWNfMS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbW9ub3RvbmljXzEuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzVkOGFlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbW9ub3RvbmljXzEuNC5iYgpAQCAtMCwwICsxLDEwIEBACitTVU1NQVJZID0gIkFuIGltcGxlbWVudGF0aW9uIG9mIHRpbWUubW9ub3RvbmljKCkgZm9yIFB5dGhvbiAyLjAgdGhyb3VnaCAzLjIiCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1kMjc5NGMwZGY1YjkwN2ZkYWNlMjM1YTYxOWQ4MDMxNCIKKworU1JDX1VSSVttZDVzdW1dID0gIjI5MzAyY2Q2YjEwMTNiM2FiMGQxZWQ3OGUyMGQyMmYyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImEwMjYxMWQ1YjUxOGNkNDA1MWJmMjJkMjFiZDBhZTU1YjNhMDNmMmQyOTkzYTE5YjZjOTBkOWQxNjg2OTFmODQiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKK1JERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tY3R5cGVzICR7UFlUSE9OX1BOfS1pbyAke1BZVEhPTl9QTn0tcmUgJHtQWVRIT05fUE59LXRocmVhZGluZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1zZ3BhY2suaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbXNncGFjay5pbmMKaW5kZXggMjI4Y2U1OS4uZmRjODkyNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbXNncGFjay5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbXNncGFjay5pbmMKQEAgLTIsOCArMiwxMiBAQAogTElDRU5TRSA9ICJBcGFjaGUtMi4wIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9Y2Q5NTIzMTgxZDlkNGZiZjdmZmNhNTJlYWEyYTU3NTEiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJkY2Q4NTRmYjQxZWU3NTg0ZWJiZjM1ZTA0OWU2YmU5OCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIxYTJiMTlkZjBmMDM1MTllYzdmMTlmODI2YWZiOTM1YjIwMmQ4OTc5YjA4NTZjNmZiM2RjMjg5NTU3OTlmODg2IgorU1JDX1VSSVttZDVzdW1dID0gIjZkNjQ0YzA2YTg3YTVhMTExYmJiZjViMzRiNGJlNDQwIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjM3OGNjOGE2ZDM1NDViNTMyZGZkMTQ5ZGE3MTVhYmFlNGZkYTJhM2FkYjZkNzRlNTI1ZDBkNWU1MWY0NjkwOWIiCiAKIFBZUElfUEFDS0FHRSA9ICJtc2dwYWNrLXB5dGhvbiIKIGluaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIlwKKyAgICAke1BZVEhPTl9QTn0taW8gXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbXNncGFja18wLjQuOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1zZ3BhY2tfMC41LjYuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1zZ3BhY2tfMC40LjguYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1zZ3BhY2tfMC41LjYuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5kZy1odHRwc2NsaWVudC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZGctaHR0cHNjbGllbnQuaW5jCmluZGV4IDEzM2NhYjEuLmQ3NDMwMjMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5kZy1odHRwc2NsaWVudC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmRnLWh0dHBzY2xpZW50LmluYwpAQCAtMyw4ICszLDggQEAKIExJQ0VOU0UgPSAiQlNEIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTUFOSUZFU1QuaW47bWQ1PWNlMjJjMGNkOTg2ZDJkZTNmNzA3M2NkNmI1NTIzYWUwIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNTlhMmYwYTViM2I2MGU2YzUyMGE5Y2M3YmU5YWZmODciCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2JmZDhjNWNmY2JjMjQxYTkzY2E2YTRlNDVmOTUyNjUwZjVjN2VjZjdjNDliMWRiY2Y1ZjRkMzkwMjQwYmUwYiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhMGQzNDljZjk1MzBlMzMxNjk3YTZlNWFiMWY0MGRlNiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJmYmE0ZDQ3OThkY2FjMjk2NTg3NGYyNGFmYjY2MzFiNDMyNmJhYTRiZDAyNTA1NzQ0ZDM0ZjY5MGMzNTQ4NTZhIgogCiBQWVBJX1BBQ0tBR0UgPSAibmRnX2h0dHBzY2xpZW50IgogCkBAIC0xMyw2ICsxMywxMyBAQAogICAgICR7UFlUSE9OX1BOfS1weWFzbjEgXAogIgogCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tZGF0ZXRpbWUgXAorICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tcHlvcGVuc3NsIFwKKyAgICAke1BZVEhPTl9QTn0tcHlhc24xIFwKKyIKKwogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgogCiBVUFNUUkVBTV9DSEVDS19SRUdFWCA9ICIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZGctaHR0cHNjbGllbnRfMC40LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZGctaHR0cHNjbGllbnRfMC40LjQuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5kZy1odHRwc2NsaWVudF8wLjQuMy5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmRnLWh0dHBzY2xpZW50XzAuNC40LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZXRhZGRyLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5ldGFkZHIuaW5jCmluZGV4IDI2YjBmMWUuLjViNmQ0ZGYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5ldGFkZHIuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5ldGFkZHIuaW5jCkBAIC02LDMgKzYsOCBAQAogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjM4YWVlYzdjZGQwMzUwODFkM2E0YzMwNjM5NGIxOWQ2Nzc2MjNiZjc2ZmEwOTEzZjY2OTUxMjdjNzc1M2FlZmQiCiAKIGluaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tcHByaW50IFwKKyAgICAke1BZVEhPTl9QTn0teG1sIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5ldGFkZHJfMC43LjE5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0YWRkcl8wLjcuMTkuYmIKaW5kZXggNWUwODlhOS4uY2E1YTc5YSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0YWRkcl8wLjcuMTkuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0YWRkcl8wLjcuMTkuYmIKQEAgLTEsMiArMSw2IEBACiByZXF1aXJlIHB5dGhvbi1uZXRhZGRyLmluYwogaW5oZXJpdCBzZXR1cHRvb2xzCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS10ZXh0dXRpbHMgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0d29ya3hfMS4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5ldHdvcmt4XzEuMTEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkYThhZTMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0d29ya3hfMS4xMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLURFU0NSSVBUSU9OID0gIlB5dGhvbiBwYWNrYWdlIGZvciBjcmVhdGluZyBhbmQgbWFuaXB1bGF0aW5nIGdyYXBocyBhbmQgbmV0d29ya3MiCi1MSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT05MjU1ODZlYTU4OGViOTkwZGU4NDBkYzcxZWEzNzUyZiIKLQotU1JDX1VSSVttZDVzdW1dID0gIjZlZjU4NGE4NzllOTE2MzAxM2U5YTc2MmUxY2Y3Y2QxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjBkMGU3MGUxMGRmYjQ3NjAxY2JiMzQyNWEwMGUwM2UyYTJlOTc0NzdiZTZmODA2MzhmZWY5MWQ1NGRkMWU0YjgiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVJERVBFTkRTXyR7UE59ICs9ICJweXRob24tMnRvMyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5ldHdvcmt4XzIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5ldHdvcmt4XzIuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzBjNjg2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0d29ya3hfMi4xLmJiCkBAIC0wLDAgKzEsMTIgQEAKK0RFU0NSSVBUSU9OID0gIlB5dGhvbiBwYWNrYWdlIGZvciBjcmVhdGluZyBhbmQgbWFuaXB1bGF0aW5nIGdyYXBocyBhbmQgbmV0d29ya3MiCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT0zMzc2ZmY3YzljNTgwNDhjNjJkOTE0MzFmN2YwOGNkZSIKKworU1JDX1VSSVttZDVzdW1dID0gIjRhMmMyYTYyZGZjNDZiYTdkNTk0ZGFjYTdjODM0OTk1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjY0MjcyY2E0MTg5NzJiNzBhMTk2Y2IxNWQ5Yzg1YTVhNjA0MWYwOWEyZjMyZTBkMzBjMDI1NWYyNWQ0NThiYjEiCisKK1BZUElfUEFDS0FHRV9FWFQgPSAiemlwIgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29scworCitSREVQRU5EU18ke1BOfSArPSAicHl0aG9uLTJ0bzMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1vYXV0aGxpYi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1vYXV0aGxpYi5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzVkZThhMAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW9hdXRobGliLmluYwpAQCAtMCwwICsxLDI1IEBACitTVU1NQVJZID0gIkEgZ2VuZXJpYywgc3BlYy1jb21wbGlhbnQsIHRob3JvdWdoIGltcGxlbWVudGF0aW9uIG9mIHRoZSBPQXV0aCByZXF1ZXN0LXNpZ25pbmcgbG9naWMiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vaWRhbi9vYXV0aGxpYiIKKworTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT01YmE5Y2U0MTQ2MzYxNWUwODI2MDk4MDYyNTViY2UxYiIKKworU1JDX1VSSSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9hNS84YS8yMTJlOWI0N2ZiNTRiZTEwOWYzZmYwNjg0MTY1YmIzOGM1MTExN2YzNGUxNzVjMzc5ZmNlNWM3ZGY3NTQvb2F1dGhsaWItJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjI3N2E5YTk2NmNjOGM3MmU0OTJiNGVlYjQxMzMyNDQ1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImNlNTdiNTAxZTkwNmZmNGY2MTRlNzFjMzZhM2FiOWVhY2JiOTZkMzVjMjRkMTk3MGQyNTM5YmJjM2VjNzBjZTEiCisKK1MgPSAiJHtXT1JLRElSfS9vYXV0aGxpYi0ke1BWfSIKKworIyBUaGUgZm9sbG93aW5nIGNvbmZpZ3MgJiBkZXBlbmRlbmNpZXMgYXJlIGZyb20gc2V0dXB0b29scyBleHRyYXNfcmVxdWlyZS4KKyMgVGhlc2UgZGVwZW5kZW5jaWVzIGFyZSBvcHRpb25hbCwgaGVuY2UgY2FuIGJlIGNvbnRyb2xsZWQgdmlhIFBBQ0tBR0VDT05GSUcuCisjIFRoZSB1cHN0cmVhbSBuYW1lcyBtYXkgbm90IGNvcnJlc3BvbmQgZXhhY3RseSB0byBiaXRiYWtlIHBhY2thZ2UgbmFtZXMuCisjCisjIFVuY29tbWVudCB0aGlzIGxpbmUgdG8gZW5hYmxlIGFsbCB0aGUgb3B0aW9uYWwgZmVhdHVyZXMuCisjUEFDS0FHRUNPTkZJRyA/PSAidGVzdCBzaWduZWR0b2tlbiBzaWduYWxzIHJzYSIKK1BBQ0tBR0VDT05GSUdbdGVzdF0gPSAiLCwsJHtQWVRIT05fUE59LWJsaW5rZXIgJHtQWVRIT05fUE59LWNyeXB0b2dyYXBoeSAke1BZVEhPTl9QTn0tbm9zZSAke1BZVEhPTl9QTn0tcHlqd3QiCitQQUNLQUdFQ09ORklHW3NpZ25lZHRva2VuXSA9ICIsLCwke1BZVEhPTl9QTn0tY3J5cHRvZ3JhcGh5ICR7UFlUSE9OX1BOfS1weWp3dCIKK1BBQ0tBR0VDT05GSUdbc2lnbmFsc10gPSAiLCwsJHtQWVRIT05fUE59LWJsaW5rZXIiCitQQUNLQUdFQ09ORklHW3JzYV0gPSAiLCwsJHtQWVRIT05fUE59LWNyeXB0b2dyYXBoeSIKKworUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1jb3JlICR7UFlUSE9OX1BOfS1jcnlwdCAke1BZVEhPTl9QTn0tZGF0ZXRpbWUgJHtQWVRIT05fUE59LWpzb24gJHtQWVRIT05fUE59LWxvZ2dpbmcgJHtQWVRIT05fUE59LW1hdGggJHtQWVRIT05fUE59LW5ldGNsaWVudCAke1BZVEhPTl9QTn0tdW5pdHRlc3QiCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW9hdXRobGliXzIuMC42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tb2F1dGhsaWJfMi4wLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDMyOWQyMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW9hdXRobGliXzIuMC42LmJiCkBAIC0wLDAgKzEsNCBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1vYXV0aGxpYi5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1yZSAke1BZVEhPTl9QTn0tbGFuZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhaG8tbXF0dC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYWhvLW1xdHQuaW5jCmluZGV4IGFkMWNlNmEuLmY4MzRlNmYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhaG8tbXF0dC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFoby1tcXR0LmluYwpAQCAtNywxMyArNywxNSBAQAogU1JDTkFNRSA9ICJwYWhvLW1xdHQiCiAKIGluaGVyaXQgcHlwaQotU1JDX1VSSVttZDVzdW1dID0gImI5MzM4MjM2ZTI4MzZlODU3OWVmMTQwOTU2MTg5Y2M0IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJjOWVmNTQ5NGNmYzFlNDFhOWZmZjY1NDRjNWEyY2Q1OWVhNWQ0MDFkOTExOWEwNmVjZjdmYWQ2YTJmZmViOTMiCitTUkNfVVJJW21kNXN1bV0gPSAiMmNjMjdkOGIzNjk3MDBiMWZjOTkzMjVhZGQwZGFkZDIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzE5MTFmNjAzMWRlMzA2YzI3ZWQ3OWRjNzdiNjkwZDdjNTViMGRjYjBmMDQzNGNhMzRlYzYzNjFkMDM3MTEyMiIKIAogREVQRU5EUyArPSAiJHtQWVRIT05fUE59LXB5dGVzdC1ydW5uZXItbmF0aXZlIgogCiBSREVQRU5EU18ke1BOfSA9ICJcCi0gICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tbWF0aCBcCi0gICAgICAgICAgICAgICAke1BZVEhPTl9QTn0taW8gXAotICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCisgICAgJHtQWVRIT05fUE59LWlvIFwKKyAgICAke1BZVEhPTl9QTn0tbG9nZ2luZyBcCisgICAgJHtQWVRIT05fUE59LW1hdGggXAorICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXAogIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFoby1tcXR0XzEuMy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFoby1tcXR0XzEuMy4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMzY5YjJlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhaG8tbXF0dF8xLjMuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1wYWhvLW1xdHQuaW5jCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhaG8tbXF0dF8xLjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhaG8tbXF0dF8xLjMuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTAzMTE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFoby1tcXR0XzEuMy4xLmJiCkBAIC0wLDAgKzEsNiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1wYWhvLW1xdHQuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhbV8xLjguMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhbV8xLjguMi5iYgppbmRleCAwNWJkZGQ1Li42MGEzYjQzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYW1fMS44LjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFtXzEuOC4yLmJiCkBAIC0xMCwzICsxMCw2IEBACiBpbmhlcml0IHB5cGkgc2V0dXB0b29scwogCiBSREVQRU5EU18ke1BOfSA9ICJsaWJwYW0iCisKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAicGFtIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFuZGFzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhbmRhcy5pbmMKaW5kZXggZDFmMzcwNy4uYjlmODRhNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFuZGFzLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYW5kYXMuaW5jCkBAIC0zLDEzICszLDEyIEBACiBoaWdoLXBlcmZvcm1hbmNlLCBlYXN5LXRvLXVzZSBkYXRhIHN0cnVjdHVyZXMgYW5kIGRhdGEgYW5hbHlzaXMgdG9vbHMgZm9yIFwKIHRoZSBQeXRob24gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuIgogSE9NRVBBR0UgPSAiaHR0cDovL3BhbmRhcy5weWRhdGEub3JnLyIKLUxJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NjYwMTdkMzEzNDM0OTAxNzQwOTM4NmJlODUxNzYxNDUiCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWVlMDQ3MGYyZGUzMzZjMzcwYTcxYzJmOGQ1ZTgxYzExIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNGRmODU4ZjI4YjRiZjRmYTA3ZDlmYmI3ZjI1NjgxNzMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTc3N2UwNzYzM2Q4M2Q1NDZjNTU3MDY0MjAxNzk1NTFjOGUwMTA3NWI1M2M0OTdkY2Y4YWU0MDM2NzY2YmM2NiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJjN2EyNzU3YjYwNzc0ODI1NWYzMjcwMjIxYWM2MWQ1OSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0NGE5NDA5MWRkNzFmMDU5MjJlZWM2NjE2MzhlYzFhMzVmMjZkNTczYzExOWFhMmZhZDk2NGYxMGEyODgwZTZjIgogCi1QWVBJX1BBQ0tBR0UgPSAicGFuZGFzIgogaW5oZXJpdCBweXBpCiAKIERFUEVORFMgKz0gIiBcCkBAIC0xNyw2ICsxNiw3IEBACiAiCiAKIFJERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1qc29uIFwKICAgICAke1BZVEhPTl9QTn0tbnVtcHkgXAogICAgICR7UFlUSE9OX1BOfS1kYXRldXRpbCBcCiAgICAgJHtQWVRIT05fUE59LXB5dHogXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFuZGFzXzAuMjAuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhbmRhc18wLjIwLjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwOTczYzguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFuZGFzXzAuMjAuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1wYW5kYXMuaW5jCi0KLVJERVBFTkRTXyR7UE59ICs9ICIgXAotICAgICR7UFlUSE9OX1BOfS1qc29uIFwKLSAgICAke1BZVEhPTl9QTn0taW1wb3J0bGliIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhbmRhc18wLjIyLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYW5kYXNfMC4yMi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzYmZhYjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYW5kYXNfMC4yMi4wLmJiCkBAIC0wLDAgKzEsNyBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1wYW5kYXMuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1mdXR1cmUgXAorICAgICR7UFlUSE9OX1BOfS1qc29uIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhcnNlXzEuOC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFyc2VfMS44LjIuYmIKaW5kZXggMDM3MjIxYS4uOGUxNjM3MiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFyc2VfMS44LjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFyc2VfMS44LjIuYmIKQEAgLTEsNiArMSw2IEBACiBTVU1NQVJZID0gIlBhcnNlIHN0cmluZ3MgdXNpbmcgYSBzcGVjaWZpY2F0aW9uIGJhc2VkIG9uIHRoZSBQeXRob24gZm9ybWF0KCkgc3ludGF4IgogTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9wYXJzZS5weTttZDU9YTg0YjQ5NDU2M2JiYTQ2NmEyZjAyYjA1ZjJlNmFkNGE7c3RhcnRsaW5lPTExOTE7ZW5kbGluZT0xMjEwIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vcGFyc2UucHk7YmVnaW5saW5lPTExOTE7ZW5kbGluZT0xMjA5O21kNT01MTQ3YWZkZDliMzYxNTI5MGFkODczM2YwMTM3YTFhMSIKIAogU1JDX1VSSVttZDVzdW1dID0gIjQyMDAyMzM4NTUxYmRmYTBmMDFiYmU0ZTY3OWExN2RkIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjgwNDhkZGUzZjVjYTA3YWQ3YWM3MzUwNDYwOTUyZDgzYjYzZWFhY2VjZGFjMWIzN2Y0NWZkNzQ4NzBkODQ5ZDIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYXNzbGliLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhc3NsaWIuaW5jCmluZGV4IGYyODljMGUuLjllNDc3ZWMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhc3NsaWIuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhc3NsaWIuaW5jCkBAIC0xMSwzICsxMSw5IEBACiAKIFNSQ19VUklbbWQ1c3VtXSA9ICIyNTQ4NjlkYWUzZmQ5ZjA5ZjA3NDZhM2NiMjlhMGIxNSIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICIzZDk0OGY2NDEzOGMyNTYzMzYxM2YzMDNiY2M0NzExMjZlYWU2N2MwNGQ1ZTNmNmI3YjhjZTYyNDJmODY1M2UwIgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1jcnlwdCBcCisgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAorICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGVwOF8xLjcuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBlcDhfMS43LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2MmI4NjIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGVwOF8xLjcuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVNVTU1BUlkgPSAiUHl0aG9uIHN0eWxlIGd1aWRlIGNoZWNrZXIiCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vZHJlYW1ob3N0L2NsaWZmIgotTElDRU5TRSA9ICJBcGFjaGUtMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FLnJzdDttZDU9ZDhlYmJiZTgzMTI1OWNlMDEwMTc5ZDJmMzEwYjBmM2UiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIyYjAzMTA5YjA2MThhZmUzYjA0YjNlNjNiMzM0YWM5ZCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJhMTEzZDVmNWFkN2E3YWJhY2VmOWRmNWVjM2YyYWYyM2EyMGEyODAwNTkyMTU3N2IxNWRkNTg0ZDA5OWQ1OTAwIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiIFwKLSAgICBweXRob24tcHJldHR5dGFibGUgXAotICAgIHB5dGhvbi1jbWQyIFwKLSAgICBweXRob24tcHlwYXJzaW5nIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGVwOF8xLjcuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBlcDhfMS43LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjEyZDcyZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBlcDhfMS43LjEuYmIKQEAgLTAsMCArMSwxNCBAQAorU1VNTUFSWSA9ICJQeXRob24gc3R5bGUgZ3VpZGUgY2hlY2tlciIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9kcmVhbWhvc3QvY2xpZmYiCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUUucnN0O21kNT1kOGViYmJlODMxMjU5Y2UwMTAxNzlkMmYzMTBiMGYzZSIKKworU1JDX1VSSVttZDVzdW1dID0gIjYwMzgyMWQwNmRiOTQ1YzcxZDgxMWI1YThkNzg0MjNjIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImZlMjQ5YjUyZTIwNDk4ZTU5ZTBiNWM1MjU2YWE1MmVlOTlmYzI5NWIyNmVjOWVhYTg1Nzc2ZmZkYjlmZTYzNzQiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgIHB5dGhvbi1wcmV0dHl0YWJsZSBcCisgICAgcHl0aG9uLWNtZDIgXAorICAgIHB5dGhvbi1weXBhcnNpbmciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wZXhwZWN0LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBleHBlY3QuaW5jCmluZGV4IDQ3ZDA5NzkuLmZhOGFkMDEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBleHBlY3QuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBleHBlY3QuaW5jCkBAIC00LDE1ICs0LDExIEBACiBMSUNFTlNFID0gIklTQyIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTFjN2E3MjUyNTE4ODBhZjhjNmExNDgxODE2NjUzODViIgogCi1TUkNOQU1FID0gInBleHBlY3QiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIzNjk0NDEwMDAxYTk5ZGZmODNmMGI1MDBhMWNhMWM5NSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIzZDEzMjQ2NWE3NWI1N2FhODE4MzQxYzY1MjEzOTJhMDZjYzY2MGZlYjM5ODhkN2YxMDc0ZjM5YmQyM2M5YTkyIgorU1JDX1VSSVttZDVzdW1dID0gIjkxM2ZjMGE2OGE5MTVjZGY2YWQ0MjUwNDkzYzk0Y2Y3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjlmOGViMzI3NzcxNmEwMWZhYWZhYmE1NTNkNjI5ZDNkNjBhMWE2MjRjN2NmNDVkYWE2MDBkMjE0OGMzMDAyMGMiCiAKIFVQU1RSRUFNX0NIRUNLX1VSSSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3BleHBlY3QiCiAKLVMgPSAiJHtXT1JLRElSfS8ke1NSQ05BTUV9LSR7UFZ9IgotCiBSREVQRU5EU18ke1BOfSA9ICJcCiAgICAgJHtQWVRIT05fUE59LWNvcmUgXAogICAgICR7UFlUSE9OX1BOfS1pbyBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wZXhwZWN0XzQuMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGV4cGVjdF80LjUuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGV4cGVjdF80LjIuMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGV4cGVjdF80LjUuMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGlwXzkuMC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGlwXzkuMC4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZGRkOGQ1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBpcF85LjAuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVNVTU1BUlkgPSAiUElQIGlzIGEgdG9vbCBmb3IgaW5zdGFsbGluZyBhbmQgbWFuYWdpbmcgUHl0aG9uIHBhY2thZ2VzIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9waXAucHlwYS5pby8iCi1MSUNFTlNFID0gIk1JVCAmIExHUEwtMi4xIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTI1ZmJhNDUxMDk1NjVmODdkZTIwYmFlODViYzM5NDUyIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMzVmMDFkYTMzMDA5NzE5NDk3ZjAxYTRiYTY5ZDYzYzkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDlmMjQzZTFhN2I0NjFmNjU0YzI2YTcyNWZhMzczMjExYmI3ZmYxN2E5MzAwMDU4YjIwNWM2MTY1OGNhOTQwZCIKLQotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotIyBTaW5jZSBQSVAgaXMgbGlrZSBDUEFOIGZvciBQRVJMIHdlIG5lZWQgdG8gZHJhZyBpbiBhbGwgcHl0aG9uIG1vZHVsZXMgdG8gZW5zdXJlIGV2ZXJ5dGhpbmcgd29ya3MKLVJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCA9ICJweXRob24tbW9kdWxlcyBweXRob24tZGlzdHJpYnV0ZSIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGlwXzkuMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGlwXzkuMC4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzZmM2YmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1waXBfOS4wLjMuYmIKQEAgLTAsMCArMSwxNCBAQAorU1VNTUFSWSA9ICJQSVAgaXMgYSB0b29sIGZvciBpbnN0YWxsaW5nIGFuZCBtYW5hZ2luZyBQeXRob24gcGFja2FnZXMiCitIT01FUEFHRSA9ICJodHRwczovL3BpcC5weXBhLmlvLyIKK0xJQ0VOU0UgPSAiTUlUICYgTEdQTC0yLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9MjVmYmE0NTEwOTU2NWY4N2RlMjBiYWU4NWJjMzk0NTIiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJiMTViMzNmOWFhZDYxZjg4ZDBmOGM4NjZkMTZjNTVkOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3YmY0OGY5YTY5M2JlMWQ1OGY0OWY3YWY3ZTBhZTlmZTI5ZmQ2NzFjZGU4YTU1ZTZlZGNhMzU4MWM0ZWY1Nzk2IgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29scworCisjIFNpbmNlIFBJUCBpcyBsaWtlIENQQU4gZm9yIFBFUkwgd2UgbmVlZCB0byBkcmFnIGluIGFsbCBweXRob24gbW9kdWxlcyB0byBlbnN1cmUgZXZlcnl0aGluZyB3b3JrcworUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ID0gInB5dGhvbi1tb2R1bGVzIHB5dGhvbi1kaXN0cmlidXRlIHB5dGhvbi1taXNjIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHVnZ3kuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGx1Z2d5LmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjAzNTlhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGx1Z2d5LmluYwpAQCAtMCwwICsxLDkgQEAKK1NVTU1BUlkgPSAiUGx1Z2luIGFuZCBob29rIGNhbGxpbmcgbWVjaGFuaXNtcyBmb3IgcHl0aG9uIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5IgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zMzhkYWQ4MDdlZDkzMzdiZmFlYjk5NzljM2JmZTIwZiIKKworU1JDX1VSSVttZDVzdW1dID0gImZmZGRlN2MzYTViYTlhNDQwNDA0NTcwMzY2ZmZiNmQ1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdmOGFlN2Y1YmRmNzU2NzFhNzE4ZDJkYWYwYTY0Yjc4ODVmNzQ1MTBiY2Q5OGIxYTBiYjQyMGViOWE5ZDBjZmYiCisKK2luaGVyaXQgcHlwaQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGx1Z2d5XzAuNi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGx1Z2d5XzAuNi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkY2Q0ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHVnZ3lfMC42LjAuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXBsdWdneS5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBseS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHkuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3NDQ5NTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHkuaW5jCkBAIC0wLDAgKzEsMTggQEAKK1NVTU1BUlkgPSAiUHl0aG9uIExleCBhbmQgWWFjYyIKK0RFU0NSSVBUSU9OID0gIlB5dGhvbiBwbHk6IFBMWSBpcyB5ZXQgYW5vdGhlciBpbXBsZW1lbnRhdGlvbiBvZiBsZXggYW5kIHlhY2MgZm9yIFB5dGhvbiIKK0hPTUVQQUdFID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcGx5IgorU0VDVElPTiA9ICJkZXZlbC9weXRob24iCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRS5tZDtiZWdpbmxpbmU9NTtlbmRsaW5lPTMyO21kNT1mNWVlNWMzNTVjMGU2NzE5Yzc4N2E3MWI4ZjBmYTk2YyIKKworU1JDX1VSSVttZDVzdW1dID0gIjY0NjVmNjAyZTY1NjQ1NWFmZmNkN2M1NzM0YzYzOGY4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjAwYzdjMWFhYTg4MzU4YjljNzY1YjZkMzAwMGM2ZWVjMGJhNDJhYmNhNTM1MWIwOTUzMjFhZWY0NDYwODFkYTMiCisKK2luaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tbmV0Y2xpZW50IFwKKyAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAorIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBseV8zLjEwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGx5XzMuMTAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlNjFlZmEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGx5XzMuMTAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1TVU1NQVJZID0gIlB5dGhvbiBMZXggYW5kIFlhY2MiCi1ERVNDUklQVElPTiA9ICJQeXRob24gcGx5OiBQTFkgaXMgeWV0IGFub3RoZXIgaW1wbGVtZW50YXRpb24gb2YgbGV4IGFuZCB5YWNjIGZvciBQeXRob24iCi1IT01FUEFHRSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3BseSIKLVNFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgotTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUUubWQ7YmVnaW5saW5lPTM7ZW5kbGluZT0zMDttZDU9ZmNiMDRiYzJmNzY1ZTQ2YWI3MDg0ZDZhYjZlNDUyYmIiCi0KLVNSQ05BTUUgPSAicGx5IgotCi1TUkNfVVJJID0gImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvcC8ke1NSQ05BTUV9LyR7U1JDTkFNRX0tJHtQVn0udGFyLmd6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMWQ2M2MxNjZhYjI1MGJhYjg3ZDhkY2M0MmRjY2E3MGUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTZlOTRhZjdkZDcwMzFkOGQ2ZGQ2ZTJhOGUwZGU1OTNiNTExYzIxMWE4NmUyOGE5Yzk2MjFjMjc1YWM4YmFjYiIKLQotUyA9ICIke1dPUktESVJ9LyR7U1JDTkFNRX0tJHtQVn0iCi0KLWluaGVyaXQgc2V0dXB0b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGx5XzMuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHlfMy4xMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjYxNjVjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGx5XzMuMTEuYmIKQEAgLTAsMCArMSwyIEBACityZXF1aXJlIHB5dGhvbi1wbHkuaW5jCitpbmhlcml0IHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByZXRlbmQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJldGVuZC5pbmMKaW5kZXggNzhiNjcxNy4uYjM0MmFlZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJldGVuZC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJldGVuZC5pbmMKQEAgLTMsNyArMyw3IEBACiBMSUNFTlNFID0gIkJTRCIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UucnN0O21kNT00MTE3ODBjMGI3ZmE3NTY3NTNlOTRhZmZlZWU1YmM5OSIKIAotU1JDX1VSSVttZDVzdW1dID0gIjcxNDcwNTBhOTVjOWY0OTQyNDg1NTdiNDJiNThhZDc5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjkzMGYyYzFlMTg1MDNlOGY4YzQwM2FiZTJlMDIxNjZjNGE4ODE5NDE3NDUxNDdlNzEyY2RkNGY0OWYzZmI5NjQiCitTUkNfVVJJW21kNXN1bV0gPSAiYWQ1Mzg4M2VkZTQ4YWVhYzdhZTU4NGYwZGUwMjQwZTgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzkwZWI4MTBjZGU4ZWJiMDZkYWZjYjg3OTZmOWE5NTIyOGNlNzk2NTMxYmM4MDZlNzk0YzJmNDY0OWFhMWIxMCIKIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJldGVuZF8xLjAuOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByZXRlbmRfMS4wLjkuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByZXRlbmRfMS4wLjguYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByZXRlbmRfMS4wLjkuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByb21wdC10b29sa2l0LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByb21wdC10b29sa2l0LmluYwppbmRleCBmNWVkMzQ5Li5jYzQwOWE0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcm9tcHQtdG9vbGtpdC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJvbXB0LXRvb2xraXQuaW5jCkBAIC0xMCw3ICsxMCw2IEBACiBSREVQRU5EU18ke1BOfSArPSAiIFwKICAgICAke1BZVEhPTl9QTn0tY29yZSBcCiAgICAgJHtQWVRIT05fUE59LXNpeCBcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAogICAgICR7UFlUSE9OX1BOfS10ZXJtaW5hbCBcCiAgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCiAgICAgJHtQWVRIT05fUE59LXdjd2lkdGggXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJvbXB0LXRvb2xraXRfMS4wLjE1LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJvbXB0LXRvb2xraXRfMS4wLjE1LmJiCmluZGV4IDc2ZTg0MTAuLjUyN2M5MDUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByb21wdC10b29sa2l0XzEuMC4xNS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcm9tcHQtdG9vbGtpdF8xLjAuMTUuYmIKQEAgLTEsMiArMSw2IEBACiBpbmhlcml0IHB5cGkgc2V0dXB0b29scwogcmVxdWlyZSBweXRob24tcHJvbXB0LXRvb2xraXQuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByb3RvYnVmLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByb3RvYnVmLmluYwppbmRleCAyZjU5ZWY5Li5iODQ5ODNkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcm90b2J1Zi5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJvdG9idWYuaW5jCkBAIC0yLDE1ICsyLDI0IEBACiBIT01FUEFHRSA9ICJodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLyIKIFNFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgogCi1SREVQRU5EU18ke1BOfSA9ICJweXRob24tc2l4IgotCiBMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7Q09NTU9OX0xJQ0VOU0VfRElSfS9CU0QtMy1DbGF1c2U7bWQ1PTU1MDc5NDQ2NWJhMGVjNTMxMmQ2OTE5ZTIwM2E1NWY5IgogCiBpbmhlcml0IHB5cGkKIAotU1JDX1VSSVttZDVzdW1dID0gImJmYzBjNjFjMTU2YTk5NWU5MDk1MjE2OTdlNzU1NzgwIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImVmMDI2MDllZjQ0NTk4Nzk3NmEzYTI2YmZmNzcxMTljNTE4ZTA5MTVjOTY2NjFjM2EzYjE3ODU2ZDBlZjYzNzQiCitTUkNfVVJJW21kNXN1bV0gPSAiMzkzYTUzNDgzMjI0Y2IzMzhkZjVjNjQzNjQ2YzAzMDAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDk4NzlhMjk1ZmQ3MjM0ZTUyM2I2MjA2NjIyM2IxMjhjNWE4YTg4ZjY4MmUzYWZmNjJmYjExNWU0YTBkOGJlMCIKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKKyAgICAke1BZVEhPTl9QTn0tanNvbiBcCisgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAorICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKKyAgICAke1BZVEhPTl9QTn0tcGtndXRpbCBcCisgICAgJHtQWVRIT05fUE59LXNpeCBcCisgICAgJHtQWVRIT05fUE59LXVuaXR0ZXN0IFwKKyIKIAogIyBGb3IgdXNhZ2UgaW4gb3RoZXIgcmVjaXBpZXMgd2hlbiBjb21waWxpbmcgcHJvdG9idWYgZmlsZXMgKGUuZy4gYnkgZ3JwY2lvLXRvb2xzKQogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcm90b2J1Zl8zLjQuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByb3RvYnVmXzMuNS4yLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcm90b2J1Zl8zLjQuMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJvdG9idWZfMy41LjIuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBzdXRpbC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wc3V0aWwuaW5jCmluZGV4IGM5YTdmNmQuLjVkOGU2MWYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBzdXRpbC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHN1dGlsLmluYwpAQCAtMiwxMSArMiwxOSBAQAogTElDRU5TRSA9ICJCU0QiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0wZjAyZTk5ZjdmM2M5YTdmZThlY2ZjNWQ0NGMyYmU2MiIKIAotU1JDX1VSSVttZDVzdW1dID0gIjUyOTI0NGFlYTVkMzJmYjBjMmVhNDZkODBjZTU0YWJjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjEyZGQ5YzhhYmJhZDE1ZjA1NWU5NTc5MTMwMDM1YjM4NjE3MDIwY2UxNzZmNGE0OThiNzg3MGU2MzIxZmZhNjciCitTUkNfVVJJW21kNXN1bV0gPSAiM2IyOTE4MzNkYmVhNjMxZGI5ZDI3MWFhNjAyYTE2OWEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTI0NjdlOTMxMmMyZmExOTE2ODdiODlmZjRiYzJhZDg4NDNiZTRhZjZmYjRkYzk1YTdjYzVmN2Q3YTMyN2IxOCIKKworUEFDS0FHRVMgPSsgIiR7UE59LXRlc3RzIgorCitGSUxFU18ke1BOfS10ZXN0cyArPSAiIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9wc3V0aWwvdGVzdCogXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3BzdXRpbC9fX3B5Y2FjaGVfXy90ZXN0KiBcCisiCisKIAogUkRFUEVORFNfJHtQTn0gKz0gIiBcCiAgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKLSAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCiAgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCisgICAgJHtQWVRIT05fUE59LXhtbCBcCiAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wc3V0aWxfNS4zLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wc3V0aWxfNS4zLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmNDAyYWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHN1dGlsXzUuMy4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotcmVxdWlyZSBweXRob24tcHN1dGlsLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHN1dGlsXzUuNC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHN1dGlsXzUuNC4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhYWJmYjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wc3V0aWxfNS40LjMuYmIKQEAgLTAsMCArMSw2IEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tcHN1dGlsLmluYworCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weS5pbmMKaW5kZXggMWFlZjBlNy4uYzdkNjcyNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHkuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5LmluYwpAQCAtMSw5ICsxLDkgQEAKIFNVTU1BUlkgPSAiTGlicmFyeSB3aXRoIGNyb3NzLXB5dGhvbiBwYXRoLCBpbmktcGFyc2luZywgaW8sIGNvZGUsIGxvZyBmYWNpbGl0aWVzIgogSE9NRVBBR0UgPSAiaHR0cDovL3B5LnJlYWR0aGVkb2NzLmlvLyIKIExJQ0VOU0UgPSAiTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YjUwNmYzZGYyODc3MDhiMmY5OTU4OGI1Y2MzNTEwOTEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1hNmJiMDMyMGIwNGEwYTUwM2YxMmY2OWZlYTQ3OWRlOSIKIAotU1JDX1VSSVttZDVzdW1dID0gImQ5YzNkOGY3MzRiMDgxOWZmNDhlMzU1ZDc3YmYxNzMwIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjBmMmQ1ODVkMjIwNTBlOTBjN2QyOTNiNjQ1MWM4M2RiMDk3ZGY3Nzg3MTk3NGQ5MGVmZDVhMzBkYzEyZmNkZTMiCitTUkNfVVJJW21kNXN1bV0gPSAiMjc5Y2E2OWM2MzIwNjllMWI3MWUxMWIxNDY0MWNhMjgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiY2ExODk0M2UyODIzNTQxNzc1NjMxNmJmYWRhNmNkOTZiMjNjZTYwZGQ1MzI2NDI2OTBkY2ZkYWJhOTg4YTc2ZCIKIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlfMS40LjM0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlfMS41LjIuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5XzEuNC4zNC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlfMS41LjIuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMS1tb2R1bGVzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMS1tb2R1bGVzLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmE1NGNmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlhc24xLW1vZHVsZXMuaW5jCkBAIC0wLDAgKzEsMTYgQEAKK1NVTU1BUlkgPSAiQSBjb2xsZWN0aW9uIG9mIEFTTi4xLWJhc2VkIHByb3RvY29scyBtb2R1bGVzLiIKK0RFU0NSSVBUSU9OID0gIkEgY29sbGVjdGlvbiBvZiBBU04uMSBtb2R1bGVzIGV4cHJlc3NlZCBpbiBmb3JtIG9mIHB5YXNuMVwKKyBjbGFzc2VzLiBJbmNsdWRlcyBwcm90b2NvbHMgUERVcyBkZWZpbml0aW9uIChTTk1QLCBMREFQIGV0Yy4pIGFuZCB2YXJpb3VzXAorIGRhdGEgc3RydWN0dXJlcyAoWC41MDksIFBLQ1MgZXRjLikuIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2V0aW5nb2YvcHlhc24xLW1vZHVsZXMiCitMSUNFTlNFID0gIkJTRC0yLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT0yODA2MDZkOWMxOGYyMDBlMDNlMGMyNDdhYzYxNDc1YSIKKworU1JDX1VSSVttZDVzdW1dID0gImZmOTM4Njk4NTkwZjMxNGZmOWIzZDVjNDg3MzdkODk5IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImFmMDBlYThmMjAyMmI2Mjg3ZGMzNzViMmM3MGYzMWFiNWFmODM5ODlmYzZmZTllYWNkNDk3NmNlMjZjZDdjY2MiCisKK2luaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfSA9ICIke1BZVEhPTl9QTn0tcHlhc24xIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWFzbjEtbW9kdWxlc18wLjIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMS1tb2R1bGVzXzAuMi4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNzg4ODQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWFzbjEtbW9kdWxlc18wLjIuMS5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLXB5YXNuMS1tb2R1bGVzLmluYworaW5oZXJpdCBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWFzbjEuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlhc24xLmluYwppbmRleCBkZWRiMTkxLi5mM2MzMmUwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWFzbjEuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMS5pbmMKQEAgLTMsMTIgKzMsMTEgQEAKIExJQ0VOU0UgPSAiQlNELTItQ2xhdXNlIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS5yc3Q7bWQ1PTI4MDYwNmQ5YzE4ZjIwMGUwM2UwYzI0N2FjNjE0NzVhIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiYTJkMDFjNTYxZDQ5OTYwNTU2NDFiYmJiNzRlZGE1OGYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjAzODBlYTk3ZGIwZWRlMDk1YTBkZDg3Y2UzMDAzZDQ2YzE5NzE5MWY5MjQyMDZlNDNmNzc2ZmM3N2U1MWYwOSIKK1NSQ19VUklbbWQ1c3VtXSA9ICJjYjU4ODNkZGM2YTlmNDA1NjAwNDI5ZjM3Y2YwNzU5YyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkMjU4YjBhNzE5OTRmNzc3MDU5OTgzNTI0OWNlY2UxY2FlZjNjNzBkZWY4NjhjNDkxNWU2ZTVjYTQ5YjY3ZDE1IgogCiBSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIiBcCiAgICAgJHtQWVRIT05fUE59LWNvZGVjcyBcCi0gICAgJHtQWVRIT05fUE59LWxhbmcgXAogICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKICAgICAke1BZVEhPTl9QTn0tbWF0aCBcCiAgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMV8wLjMuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMV8wLjMuNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ2MTkxOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWFzbjFfMC4zLjYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1weWFzbjEuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWFzbjFfMC40LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWFzbjFfMC40LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTEzYzc0ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMV8wLjQuMi5iYgpAQCAtMCwwICsxLDYgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1weWFzbjEuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWxhbmcgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHliaW5kMTEuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHliaW5kMTEuaW5jCmluZGV4IGUyNzNhOGQuLmU0NDFkYzYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YmluZDExLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWJpbmQxMS5pbmMKQEAgLTEsNyArMSw3IEBACiBTVU1NQVJZID0gIlNlYW1sZXNzIG9wZXJhYmlsaXR5IGJldHdlZW4gQysrMTEgYW5kIFB5dGhvbiIKIEhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS93amFrb2IvcHliaW5kMTEiCiBMSUNFTlNFID0gIkJTRC0yLUNsYXVzZSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTliMjdmYWM3ZTkzNzMyM2UzZGU5Y2EzYTdkYjM4ZTM3IgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YmViODcxMTdhZjY5ZmQxMGZiZjlmYjE0YzIyYTJlNjIiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJmNDU0ZDg5OTFmNDdiZWZlNTZkNDEyNmRmODYxZmM5NiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJhOTZhOTI0ZmFlNmUyNzIxZWZiZjI0ZjQ3NTYxMjg0ZmQxZWEwYjY1NTYxOWE4NjIxYzQ0MjMwMzYxODNiODI0IgorU1JDX1VSSVttZDVzdW1dID0gIjJjNjUxYTc1YTIwZGFiYmFhMThhOGIwMjNmZmQ1NGMwIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImNiYjAzNmE4YWFkNTlhMTk5YWQ2NzJmOTg4MTNmODVjNjcyNjQyYzZhNjdiNGZmMzg2OGIxZDZhYmM1ZmFlM2UiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWJpbmQxMV8yLjIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YmluZDExXzIuMi4yLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWJpbmQxMV8yLjIuMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHliaW5kMTFfMi4yLjIuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Ymx1ZXouaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlibHVlei5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk5ZmU1NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Ymx1ZXouaW5jCkBAIC0wLDAgKzEsMjEgQEAKK0RFU0NSSVBUSU9OID0gIkJsdWV0b290aCBQeXRob24gZXh0ZW5zaW9uIG1vZHVsZSIKK0hPTUVQQUdFID0gImh0dHA6Ly9rYXJ1bGlzLmdpdGh1Yi5pby9weWJsdWV6LyIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorCitERVBFTkRTID0gImJsdWV6NSIKKworTElDRU5TRSA9ICJHUEwtMi4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OGE3MWQwNDc1ZDA4ZWVlNzZkOGI2ZDBjNmRiZWM1NDMiCisKK2luaGVyaXQgcHlwaQorCitTUkNfVVJJID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL2MxLzk4LzMxNDk0ODFkNTA4YmVlMTc0MzM1YmU2NzI1ODgwZjAwZDI5N2FmZWJlNzVjMTVlOTE3YWY4ZjZmZTE2OS9QeUJsdWV6LTAuMjIuemlwIgorU1JDX1VSSVttZDVzdW1dID0gIjQ5ZGFiOWQ1YThmMGI3OThjODEyNWM3ZjY0OWJlM2NkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjRjZTAwNjcxNmE1NGQ5ZDE4ZTgxODZhM2YxYzhiMTJhOGU2YmVmZWNmZmU4ZmQ1ODI4YTI5MWZiNjk0Y2U0OWQiCisKK1MgPSAiJHtXT1JLRElSfS9QeUJsdWV6LSR7UFZ9IgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgIGJsdWV6NSBcCisgICAgJHtQWVRIT05fUE59LWZjbnRsIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Ymx1ZXpfMC4yMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Ymx1ZXpfMC4yMi5iYgppbmRleCBlYWI5YzU0Li4zMTU4ZjRiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWJsdWV6XzAuMjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlibHVlel8wLjIyLmJiCkBAIC0xLDE3ICsxLDIgQEAKLURFU0NSSVBUSU9OID0gIkJsdWV0b290aCBQeXRob24gZXh0ZW5zaW9uIG1vZHVsZSIKLUhPTUVQQUdFID0gImh0dHA6Ly9rYXJ1bGlzLmdpdGh1Yi5pby9weWJsdWV6LyIKLVNFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgotCi1SREVQRU5EU18ke1BOfSA9ICJibHVlejUiCi1ERVBFTkRTID0gImJsdWV6NSIKLQotTElDRU5TRSA9ICJHUEwtMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OGE3MWQwNDc1ZDA4ZWVlNzZkOGI2ZDBjNmRiZWM1NDMiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvYzEvOTgvMzE0OTQ4MWQ1MDhiZWUxNzQzMzViZTY3MjU4ODBmMDBkMjk3YWZlYmU3NWMxNWU5MTdhZjhmNmZlMTY5L1B5Qmx1ZXotMC4yMi56aXAiCi1TUkNfVVJJW21kNXN1bV0gPSAiNDlkYWI5ZDVhOGYwYjc5OGM4MTI1YzdmNjQ5YmUzY2QiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGNlMDA2NzE2YTU0ZDlkMThlODE4NmEzZjFjOGIxMmE4ZTZiZWZlY2ZmZThmZDU4MjhhMjkxZmI2OTRjZTQ5ZCIKLQotUyA9ICIke1dPUktESVJ9L1B5Qmx1ZXotJHtQVn0iCityZXF1aXJlIHB5dGhvbi1weWJsdWV6LmluYworaW5oZXJpdCBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNwYXJzZXIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcGFyc2VyLmluYwppbmRleCA2YjA1NDgyLi5kMTEyZDlmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNwYXJzZXIuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3BhcnNlci5pbmMKQEAgLTksNyArOSw4IEBACiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCiAKIFJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiXAotICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyAgICAke1BZVEhPTl9QTn0tcGx5IFwKKyAgICAke1BZVEhPTl9QTn0tcHByaW50IFwKICAgICBjcHAgXAogICAgIGNwcC1zeW1saW5rcyBcCiAgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcGFyc2VyXzIuMTguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNwYXJzZXJfMi4xOC5iYgppbmRleCBhZGJjMWE4Li45ODc0MjczIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNwYXJzZXJfMi4xOC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNwYXJzZXJfMi4xOC5iYgpAQCAtMSwyICsxLDYgQEAKIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCiByZXF1aXJlIHB5dGhvbi1weWNwYXJzZXIuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3J5cHRvLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3J5cHRvLmluYwppbmRleCBmYjJjMTdkLi4yMzJjZGI3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNyeXB0by5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcnlwdG8uaW5jCkBAIC0zLDEyICszLDE2IEBACiBMSUNFTlNFID0gIlBTRnYyIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWVJJR0hUO21kNT0zNWYzNTRkMTk5ZThjYjc2NjdiMDU5YTIzNTc4ZTYzZCIKIAotRklMRVNFWFRSQVBBVEhTX3ByZXBlbmQgOj0gIiR7VEhJU0RJUn0vJHtQTn06IgorRklMRVNFWFRSQVBBVEhTX3ByZXBlbmQgOj0gIiR7VEhJU0RJUn0vcHl0aG9uLXB5Y3J5cHRvOiIKIAogREVQRU5EUyArPSAiIGdtcCIKIAogaW5oZXJpdCBweXBpIGF1dG90b29scy1icm9rZW5zZXAKIAorU1JDX1VSSSArPSAiZmlsZTovL2Nyb3NzLWNvbXBpbGluZy5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vQ1ZFLTIwMTMtNzQ1OS5wYXRjaCBcCisgICAgICAgICAgICIKKwogU1JDX1VSSVttZDVzdW1dID0gIjU1YTYxYTA1NGFhNjY4MTJkYWY1MTYxYTBkNWQ3ZWRhIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImYyY2UxZTk4OWIyNzJjZmNiNjc3NjE2NzYzZTBhMmU3ZWM2NTllZmZhNjdhODhhYTkyYjNhNjU1MjhmNjBhM2MiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3J5cHRvXzIuNi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcnlwdG9fMi42LjEuYmIKaW5kZXggOTE5ZjkxZS4uZTEzZGIwMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcnlwdG9fMi42LjEuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcnlwdG9fMi42LjEuYmIKQEAgLTEsMTAgKzEsNiBAQAogaW5oZXJpdCBkaXN0dXRpbHMKIHJlcXVpcmUgcHl0aG9uLXB5Y3J5cHRvLmluYwogCi1TUkNfVVJJICs9ICJmaWxlOi8vY3Jvc3MtY29tcGlsaW5nLnBhdGNoIFwKLSAgICAgICAgICAgIGZpbGU6Ly9DVkUtMjAxMy03NDU5LnBhdGNoIFwKLSAgICAgICAgICAgIgotCiAjIFdlIGV4cGxpY2l0bHkgY2FsbCBkaXN0dXRpbHNfZG9faW5zdGFsbCwgc2luY2Ugd2Ugd2FudCBpdCB0byBydW4sIGJ1dAogIyAqZG9uJ3QqIHdhbnQgdGhlIGF1dG90b29scyBpbnN0YWxsIHRvIHJ1biwgc2luY2UgdGhpcyBwYWNrYWdlIGRvZXNuJ3QKICMgcHJvdmlkZSBhICJtYWtlIGluc3RhbGwiIHRhcmdldC4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3J5cHRvZG9tZS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNyeXB0b2RvbWUuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0OTY5ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNyeXB0b2RvbWUuaW5jCkBAIC0wLDAgKzEsMjkgQEAKK1NVTU1BUlkgPSAiQ3J5cHRvZ3JhcGhpYyBsaWJyYXJ5IGZvciBQeXRob24iCitERVNDUklQVElPTiA9ICJQeUNyeXB0b2RvbWUgaXMgYSBzZWxmLWNvbnRhaW5lZCBQeXRob24gcGFja2FnZSBvZiBsb3ctbGV2ZWxcCisgY3J5cHRvZ3JhcGhpYyBwcmltaXRpdmVzLiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cucHljcnlwdG9kb21lLm9yZyIKK0xJQ0VOU0UgPSAiUEQgJiBCU0QtMi1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnJzdDttZDU9Nzc1ZmU3NzgzMWMwM2JmODJmMzVhYmMwZTIzMGQ0YzEiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJhMjU4N2I2MzgxYjBlZjRlYjk2MGNlYTFlNzUwN2QwNCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjNWRkMjllOWYxYjczM2U3NDMxMWJmOTVkMGU1NDRlOTFiZDFkMTRiYzAzNjZlOGY0NDM1NjJkOGQ5OTIwYjdkIgorCitpbmhlcml0IHB5cGkKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWlvIFwKKyAgICAke1BZVEhPTl9QTn0tbWF0aCBcCisiCisKK1JERVBFTkRTXyR7UE59LXRlc3RzICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS11bml0dGVzdCBcCisiCisKK1BBQ0tBR0VTID0rICIke1BOfS10ZXN0cyIKKworRklMRVNfJHtQTn0tdGVzdHMgKz0gIiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vQ3J5cHRvL1NlbGZUZXN0LyBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vQ3J5cHRvL1NlbGZUZXN0L19fcHljYWNoZV9fLyBcCisiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3J5cHRvZG9tZV8zLjQuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNyeXB0b2RvbWVfMy40LjExLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3NzAxZWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNyeXB0b2RvbWVfMy40LjExLmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24tcHljcnlwdG9kb21lLmluYworaW5oZXJpdCBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWRidXMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlkYnVzLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzczYjdmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlkYnVzLmluYwpAQCAtMCwwICsxLDExIEBACitERVNDUklQVElPTiA9ICJQeXRob25pYyBEQnVzIGxpYnJhcnkiCitIT01FUEFHRSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5ZGJ1cy8iCitMSUNFTlNFID0gIkxHUEx2Mi4xIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YTkxNjQ2N2I5MTA3NmU2MzFkZDhlZGI3NDI0NzY5YzciCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJjNmFiZDQ0ODYyMzIyNjc5YmQ0ZTkwN2JlYmMzZTBkMCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0MjA3MTYyZWZmNTQyMjM4MjJjMTg1ZGEwNmMxYmE4YTM0MTM3YTk2MDJmM2RhNWE1MjhlZWRmM2Y3OGQwZjJjIgorCitTID0gIiR7V09SS0RJUn0vcHlkYnVzLSR7UFZ9IgorCitSREVQRU5EU18ke1BOfSA9ICIke1BZVEhPTl9QTn0tcHlnb2JqZWN0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlkYnVzXzAuNi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlkYnVzXzAuNi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3MjJhODAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWRidXNfMC42LjAuYmIKQEAgLTAsMCArMSwyIEBACityZXF1aXJlIHB5dGhvbi1weWRidXMuaW5jCitpbmhlcml0IHB5cGkgc2V0dXB0b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlleHBlY3QuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlleHBlY3QuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyZDQxZDUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWV4cGVjdC5pbmMKQEAgLTAsMCArMSwxMSBAQAorU1VNTUFSWSA9ICJQeXRob24gZXhwZWN0YXRvbiBsaWJyYXJ5IgorREVTQ1JJUFRJT04gPSAiTWluaW1hbCBidXQgdmVyeSBmbGV4aWJsZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXhwZWN0IHBhdHRlcm4iCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0hPTUVQQUdFID0gIiBodHRwczovL2JpdGJ1Y2tldC5vcmcvZHd0L3B5ZXhwZWN0IgorTElDRU5TRSA9ICJJU0MiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUUubWQ7bWQ1PTUwMGI4ODRlOWRjZDVmNjc3YTUzY2JiZWU4YWNlOTM5IgorCitpbmhlcml0IHB5cGkKKworU1JDX1VSSVttZDVzdW1dID0gImM3MTMwN2Q2YzcwOTZmZGJkZTA4MTMwMThkZmEwMDkyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImQ2NTZlZjdlMDdhOGFhNTM5Y2UwYTQ4ODNhNjgzMzQxMDM3YjZmYzFjMzI5YmY1NWI2M2JmZmJmMmNjZTk1ODIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWV4cGVjdF8xLjAuMTcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWV4cGVjdF8xLjAuMTcuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI2YmViNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5ZXhwZWN0XzEuMC4xNy5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tcHlleHBlY3QuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWZsYWtlc18xLjIuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Zmxha2VzXzEuMi4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNWUzNDEzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Zmxha2VzXzEuMi4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotU1VNTUFSWSA9ICJwYXNzaXZlIGNoZWNrZXIgb2YgUHl0aG9uIHByb2dyYW1zIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2RyZWFtaG9zdC9jbGlmZiIKLUxJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRS5yc3Q7bWQ1PWViNDg5MTY4NzAzMDZlZjM0YTA2MWNlYzcyN2NjYWU1IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiOTk1NzQ3NTg5ZTk3Yzc1MDU1Y2Y1YjRlMWUwMzFlMGIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMmU0YTFiNjM2ZDg4MDlkOGYwYTY5ZjM0MWFjZjE1YjJlNDAxYTMyMjFlZGUxMWJlNDM5OTExZDIzY2UyMTM5ZSIKLQotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotUkRFUEVORFNfJHtQTn0gKz0gIiBcCi0gICAgcHl0aG9uLXByZXR0eXRhYmxlIFwKLSAgICBweXRob24tY21kMiBcCi0gICAgcHl0aG9uLXB5cGFyc2luZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Zmxha2VzXzEuNi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlmbGFrZXNfMS42LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQ0NDg1OQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Zmxha2VzXzEuNi4wLmJiCkBAIC0wLDAgKzEsMTQgQEAKK1NVTU1BUlkgPSAicGFzc2l2ZSBjaGVja2VyIG9mIFB5dGhvbiBwcm9ncmFtcyIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9kcmVhbWhvc3QvY2xpZmYiCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUUucnN0O21kNT0wMjljZTFiZWIwMjNmMmM0Y2E5ZjQxN2U0OTg0YTg2NSIKKworU1JDX1VSSVttZDVzdW1dID0gImIzODViMGU0Y2Q0MGE1MjI1NTNlOTdjZDJkODM1NzNlIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjhkNjE2YTM4MmYyNDNkYmYxOWI1NDc0M2YyODBiODAxOThiZTBiY2EzYTUzOTZmMWQyZTFmY2E2MjIzZTg4MDUiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1wcmV0dHl0YWJsZSBcCisgICAgJHtQWVRIT05fUE59LWNtZDIgXAorICAgICR7UFlUSE9OX1BOfS1weXBhcnNpbmciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdwZ21lLzAwMDEtcmVmbGVjdC0yLjEtcmVwb3J0aW5nLWZvci1rZXktaW1wb3J0cy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z3BnbWUvMDAwMS1yZWZsZWN0LTIuMS1yZXBvcnRpbmctZm9yLWtleS1pbXBvcnRzLnBhdGNoCmluZGV4IGY1ODcwMzcuLjFmMzFjYjggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z3BnbWUvMDAwMS1yZWZsZWN0LTIuMS1yZXBvcnRpbmctZm9yLWtleS1pbXBvcnRzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z3BnbWUvMDAwMS1yZWZsZWN0LTIuMS1yZXBvcnRpbmctZm9yLWtleS1pbXBvcnRzLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotRnJvbSAxYzE4MTJkZWY3MTE4MDMzODJjYzI4Y2FlYTFmMzVmYjdlZjc3NGIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBlZDQ0NDc0YzExZjU3N2MxNjQ0OTEwOTY0YTkxN2E0Y2Y3MDFiYjBmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogRGFuaWVsIEthaG4gR2lsbG1vciA8ZGtnQGZpZnRoaG9yc2VtYW4ubmV0PgogRGF0ZTogVHVlLCAyNiBKYW4gMjAxNiAxNDoyNDoyNiAtMDUwMAotU3ViamVjdDogW1BBVENIIDEvNV0gcmVmbGVjdCAyLjEgcmVwb3J0aW5nIGZvciBrZXkgaW1wb3J0cworU3ViamVjdDogW1BBVENIXSByZWZsZWN0IDIuMSByZXBvcnRpbmcgZm9yIGtleSBpbXBvcnRzCiAKIEdudVBHIDIuMSBjaGFuZ2VzIGhvdyBpdCByZXBvcnRzIGtleSBpbXBvcnRzLiAgVGhlc2UgY2hhbmdlcyBzaG91bGQKIG1ha2UgdGhlIHB5Z3BnbWUgdGVzdCBzdWl0ZSBjb21wYXRpYmxlIHdpdGggR251UEcgMi4xLgpAQCAtMTIsNiArMTIsNyBAQAogVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAogCiBTaWduZWQtb2ZmLWJ5OiBDYXRhbGluIEVuYWNoZSA8Y2F0YWxpbi5lbmFjaGVAd2luZHJpdmVyLmNvbT4KKwogLS0tCiAgdGVzdHMvdGVzdF9pbXBvcnQucHkgfCAyMiArKysrKysrKysrKy0tLS0tLS0tLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQpAQCAtODYsMyArODcsNCBAQAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwgZ3BnbWUuSU1QT1JUX05FVyB8IGdwZ21lLklNUE9SVF9TRUNSRVQpKQogICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQuaW1wb3J0c1szXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCc5M0MyMjQwRDZCOEFBMTBBQjI4RjcwMUQyQ0Y0NkI3RkM5N0U2QjBGJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUsIGdwZ21lLklNUE9SVF9ORVcpKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlncGdtZS8wMDAyLXBhc3NwaHJhc2VfY2ItaXMtZGVwcmVjYXRlZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z3BnbWUvMDAwMi1wYXNzcGhyYXNlX2NiLWlzLWRlcHJlY2F0ZWQucGF0Y2gKaW5kZXggY2NkOTQxZi4uYzE4Y2YzZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlncGdtZS8wMDAyLXBhc3NwaHJhc2VfY2ItaXMtZGVwcmVjYXRlZC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdwZ21lLzAwMDItcGFzc3BocmFzZV9jYi1pcy1kZXByZWNhdGVkLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotRnJvbSBkYzc1NDgyYWYwOTVkNjY3YTRhOTI2NTVjNGU3ZWIzMTJlODBjNDJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBiYTBkYzgyNzNlNGY4M2JjZDJkNDNiYWE1OTEwYWFlMzRiOTMwNDhjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogRGFuaWVsIEthaG4gR2lsbG1vciA8ZGtnQGZpZnRoaG9yc2VtYW4ubmV0PgogRGF0ZTogTW9uLCAxIEZlYiAyMDE2IDE5OjI1OjEyIC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi81XSBwYXNzcGhyYXNlX2NiIGlzIGRlcHJlY2F0ZWQKK1N1YmplY3Q6IFtQQVRDSF0gcGFzc3BocmFzZV9jYiBpcyBkZXByZWNhdGVkCiAKIGh0dHBzOi8vYnVncy5nbnVwZy5vcmcvZ251cGcvaXNzdWU3NjcgaW5kaWNhdGVzIHRoYXQKIGdwZ21lX3NldF9wYXNzcGhyYXNlX2NiIGlzIGEgZGVwcmVjYXRlZCBjb3JuZXIgb2YgdGhlIEFQSSBhbmQgdGhhdApAQCAtMTksNiArMTksNyBAQAogVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAogCiBTaWduZWQtb2ZmLWJ5OiBDYXRhbGluIEVuYWNoZSA8Y2F0YWxpbi5lbmFjaGVAd2luZHJpdmVyLmNvbT4KKwogLS0tCiAgdGVzdHMvdXRpbC5weSB8IDggKysrKysrKy0KICAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCkBAIC00OCwzICs0OSw0IEBACiArCiAgICAgICAgICAjIGltcG9ydCByZXF1ZXN0ZWQga2V5cyBpbnRvIHRoZSBrZXlyaW5nCiAgICAgICAgICBjdHggPSBncGdtZS5Db250ZXh0KCkKKyAgICAgICAgIGZvciBrZXkgaW4gc2VsZi5pbXBvcnRfa2V5czoKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z3BnbWUvMDAwMy1oYW5kbGUtZ2VuZXJpYy1lcnJvci13aGVuLW5vLXBhc3NwaHJhc2UtY2FsbGJhY2stcHJlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlncGdtZS8wMDAzLWhhbmRsZS1nZW5lcmljLWVycm9yLXdoZW4tbm8tcGFzc3BocmFzZS1jYWxsYmFjay1wcmUucGF0Y2gKaW5kZXggNDYyZjQ0Mi4uNmFjYjY4YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlncGdtZS8wMDAzLWhhbmRsZS1nZW5lcmljLWVycm9yLXdoZW4tbm8tcGFzc3BocmFzZS1jYWxsYmFjay1wcmUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlncGdtZS8wMDAzLWhhbmRsZS1nZW5lcmljLWVycm9yLXdoZW4tbm8tcGFzc3BocmFzZS1jYWxsYmFjay1wcmUucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1Gcm9tIDAyNGZlMjE5NTgyMTQzMDE3YjJmMDJiYzkyNGMwZWQxMDdiNjM2MTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDU3OWI1OTMwZTE1ZGU4ODU1YmY2M2IzYzIwYjZjM2FhZjg5NGMzZWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBEYW5pZWwgS2FobiBHaWxsbW9yIDxka2dAZmlmdGhob3JzZW1hbi5uZXQ+CiBEYXRlOiBNb24sIDEgRmViIDIwMTYgMTk6Mjc6NTkgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSCAzLzVdIGhhbmRsZSBnZW5lcmljIGVycm9yIHdoZW4gbm8gcGFzc3BocmFzZSBjYWxsYmFjayBwcmVzZW50CitTdWJqZWN0OiBbUEFUQ0hdIGhhbmRsZSBnZW5lcmljIGVycm9yIHdoZW4gbm8gcGFzc3BocmFzZSBjYWxsYmFjayBwcmVzZW50CiAKIGFwcGFyZW50bHkgZ3BnIDIuMSByZXR1cm5zIEVSUl9HRU5FUkFMIHJpZ2h0IG5vdyBpZiB0aGUgcGluZW50cnkgd2FzCiBpbiBsb29wYmFjayBtb2RlIGFuZCBubyBwYXNzcGhyYXNlIGNhbGxiYWNrIHdhcyBzdXBwbGllZC4gIEVhcmxpZXIKQEAgLTEwLDYgKzEwLDcgQEAKIFVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKIAogU2lnbmVkLW9mZi1ieTogQ2F0YWxpbiBFbmFjaGUgPGNhdGFsaW4uZW5hY2hlQHdpbmRyaXZlci5jb20+CisKIC0tLQogIHRlc3RzL3Rlc3RfcGFzc3BocmFzZS5weSB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKQEAgLTI2LDMgKzI3LDQgQEAKICsgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4Yy5hcmdzWzFdLCBncGdtZS5FUlJfR0VORVJBTCkKICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgc2VsZi5mYWlsKCdncGdtZS5HcGdtZUVycm9yIG5vdCByYWlzZWQnKQorIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlpZmFjZS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlmYWNlLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjBiMjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlpZmFjZS5pbmMKQEAgLTAsMCArMSwxMSBAQAorU1VNTUFSWSA9ICJQeWlmYWNlIGlzIGEgcGFja2FnZSB0aGF0IGV4cG9zZXMgdGhlIG5ldHdvcmsgaW50ZXJmYWNlcyBvZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBpbiBhIGVhc3kgdG8gdXNlIGFuZCB0cmFuc3BhcmVudCB3YXkiCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0hPTUVQQUdFID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHlpZmFjZS8iCitMSUNFTlNFID0gIkdQTHYzKyIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTRmZTg2OWVlOTg3YTM0MDE5OGZiMGQ1NGM1NWM0N2YxIgorCitTUkNfVVJJW21kNXN1bV0gPSAiMDZjM2M3MWZlNTFkZjc0MGRhZTZhODhhMTNhZmI1ZTAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGJiNzkxMDBjYmNmNzM0NGExY2NhZGRjNTc4Y2Q2NDU1ZGE0N2Q4ZWFjNmViMWJmOTAzZWMzMmUwNDNhZjkyNCIKKworaW5oZXJpdCBweXBpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlmYWNlXzAuMC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlpZmFjZV8wLjAuNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTRjYjMwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlpZmFjZV8wLjAuNS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tcHlpZmFjZS5pbmMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlub3RpZnkuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlpbm90aWZ5LmluYwppbmRleCAwMTY4ZjFhLi45NzVmMTFjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlub3RpZnkuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5aW5vdGlmeS5pbmMKQEAgLTIsNyArMiwxMiBAQAogTElDRU5TRSA9ICJNSVQiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1hYjE3M2NhZGU3OTY1YjQxMTUyODQ2NDU4OWEwODM4MiIKIAotUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi10aHJlYWRpbmcgcHl0aG9uLWlvIHB5dGhvbi1zdWJwcm9jZXNzIHB5dGhvbi1taXNjIHB5dGhvbi1zaGVsbCIKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCisgICAgJHtQWVRIT05fUE59LWlvIFwKKyAgICAke1BZVEhPTl9QTn0tbWlzYyBcCisgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKKyIKIAogU1JDX1VSSVttZDVzdW1dID0gIjhlNTgwZmExZmYzOTcxZjk0YTZmODE2NzJiNzZjNDA2IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjljOTk4YTVkNzYwNmNhODM1MDY1Y2RhYmMwMTNhZTZjNjZlYjllYTc2YTAwYTFlM2JjNmUwY2ZlMmI0ZjcxZjQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlub3RpZnlfMC45LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlub3RpZnlfMC45LjYuYmIKaW5kZXggZDFmODRjMy4uMGM5YTJjNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlpbm90aWZ5XzAuOS42LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5aW5vdGlmeV8wLjkuNi5iYgpAQCAtMSwyICsxLDYgQEAKIGluaGVyaXQgc2V0dXB0b29scwogcmVxdWlyZSBweXRob24tcHlpbm90aWZ5LmluYworCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5amtzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5amtzLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODY2YzU2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlqa3MuaW5jCkBAIC0wLDAgKzEsMjIgQEAKK1NVTU1BUlkgPSAiUHVyZS1QeXRob24gSmF2YSBLZXlzdG9yZSAoSktTKSBsaWJyYXJ5IgorREVTQ1JJUFRJT04gPSAiUHlKS1MgZW5hYmxlcyBQeXRob24gcHJvamVjdHMgdG8gbG9hZCBhbmQgbWFuaXB1bGF0ZVwKKyBKYXZhIEtleVN0b3JlIChKS1MpIGRhdGEgd2l0aG91dCBhIEpWTSBkZXBlbmRlbmN5LiBQeUpLUyBzdXBwb3J0cyBKS1MsXAorIEpDRUtTLCBCS1MgYW5kIFVCRVIgKEJvdW5jeUNhc3RsZSkga2V5c3RvcmVzLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9naXRodWIuY29tL2t1cnRicm9zZS9weWprcyIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9OTY5NGQ2Y2M3MjRjYWY3ZjczODZiZTg4YTRhODE5NTgiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJkNTM1MDFlN2M4MGQ0NjU5Njk3NDJiYzZiZWU5MWQ0OSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3MDljNDRhMzAzZGQ2YjI0NjQwNzhlYmViNjc3NDE3ZTcxNzgxOGQ0YjNkYzM4NDRhNDYyYmVmOWQyMTVkY2M4IgorCitpbmhlcml0IHB5cGkKKworUkRFUEVORFNfJHtQTn0gPSAiXAorICAgICR7UFlUSE9OX1BOfS1qYXZhb2JqLXB5MyBcCisgICAgJHtQWVRIT05fUE59LXB5YXNuMSBcCisgICAgJHtQWVRIT05fUE59LXB5YXNuMS1tb2R1bGVzIFwKKyAgICAke1BZVEhPTl9QTn0tcHljcnlwdG9kb21lIFwKKyAgICAke1BZVEhPTl9QTn0tdHdvZmlzaFwKKyIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlqa3NfMTcuMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlqa3NfMTcuMS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlOTlmMjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWprc18xNy4xLjEuYmIKQEAgLTAsMCArMSwyIEBACityZXF1aXJlIHB5dGhvbi1weWprcy5pbmMKK2luaGVyaXQgc2V0dXB0b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlqd3QuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlqd3QuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmOTI4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWp3dC5pbmMKQEAgLTAsMCArMSwxNyBAQAorU1VNTUFSWSA9ICJKU09OIFdlYiBUb2tlbiBpbXBsZW1lbnRhdGlvbiBpbiBQeXRob24iCitTVU1NQVJZID0gIkpTT04gV2ViIFRva2VuIGltcGxlbWVudGF0aW9uIGluIFB5dGhvbiIKK0RFU0NSSVBUSU9OID0gIkEgUHl0aG9uIGltcGxlbWVudGF0aW9uIG9mIEpTT04gV2ViIFRva2VuIGRyYWZ0IDMyLlwKKyBPcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiB3YXMgd3JpdHRlbiBieSBodHRwczovL2dpdGh1Yi5jb20vcHJvZ3JpdW0iCitIT01FUEFHRSA9ICJodHRwOi8vZ2l0aHViLmNvbS9qcGFkaWxsYS9weWp3dCIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9Njg2MjY3MDVhN2I1MTNjYThkNWY0NGEzZTIwMGVkMGMiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJmN2RiZTBkNjJmMjA4N2E3NjA1OTQ2YWVlY2EwMjU0MSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkYWNiYTU3ODZmZTNiZjFhMGFlODY3Mzg3NGUyOWY5YWM0OTc4NjA5NTVjNTAxMjg5YzYzYjE1ZDNkYWFlNjNhIgorCitQWVBJX1BBQ0tBR0UgPSAiUHlKV1QiCitpbmhlcml0IHB5cGkKKworUkRFUEVORFNfJHtQTn0gPSAiJHtQWVRIT05fUE59LWNyeXB0b2dyYXBoeSIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlqd3RfMS42LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWp3dF8xLjYuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGE3N2I2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlqd3RfMS42LjEuYmIKQEAgLTAsMCArMSwyIEBACityZXF1aXJlIHB5dGhvbi1weWp3dC5pbmMKK2luaGVyaXQgc2V0dXB0b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlsaW50LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bGludC5pbmMKaW5kZXggYzU1YmNlNi4uYmE4NWI5OCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlsaW50LmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWxpbnQuaW5jCkBAIC0zLDIzICszLDEzIEBACiBMSUNFTlNFID0gIkdQTHYyIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NDMyNWFmZDM5NmZlYmNiNjU5YzM2YjQ5NTMzMTM1ZDQiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI5OGExZWU5ODVhM2ViYzg3NmEyMGViNzU3N2RiYWI2OCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIxZjY1YjM4MTVjM2JmNzUyNGI4NDU3MTFkNTRjNDI0MmU0MDU3ZGQ5MzgyNjU4NjYyMDIzOWVjZGZlNTkxZmIxIgorU1JDX1VSSVttZDVzdW1dID0gIjJlYjVmM2NiOGZlNTY3ZWFmNTQyMGRkNDE1MDEyMjAyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImM3NzMxMTg1OWUwYzJkNzkzMjA5NWYzMGQyYjFiZmRjNGI2ZmUxMTFmNTM0NDUwYmE3MjdhNTJlYWUzMzBlZjIiCiAKIGluaGVyaXQgcHlwaQogCiBERVBFTkRTICs9ICIke1BZVEhPTl9QTn0tcHl0ZXN0LXJ1bm5lci1uYXRpdmUiCiAKLVJERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tYXN0cm9pZCBcCi0gICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LWlzb3J0IFwKLSAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCi0gICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKLSAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tanNvbiBcCi0gICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LXBrZ3V0aWwgXAotICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1kaWZmbGliIFwKLSAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tbmV0c2VydmVyIFwKLSAgICAgICAgICAgICAgICAgICIKLQogZG9faW5zdGFsbF9hcHBlbmQoKXsKICAgICBybSAke0R9JHtiaW5kaXJ9L3B5bGludAogICAgIGNhdCA+PiAke0R9JHtiaW5kaXJ9L3B5bGludCA8PEVPRgpAQCAtMzAsMyArMjAsMTkgQEAKICAgICBjaG1vZCA3NTUgJHtEfSR7YmluZGlyfS9weWxpbnQKICAgICBzZWQgLWkgLWUgJ3M6XiMhL3Vzci9iaW4vcHl0aG9uOiMhL3Vzci9iaW4vZW52XCAke1BZVEhPTl9QTn06ZycgJHtEfS8ke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9weWxpbnQvdGVzdC9kYXRhL2FzY3JpcHQKIH0KKworUEFDS0FHRVMgPSsgIiR7UE59LXRlc3RzIgorRklMRVNfJHtQTn0tdGVzdHMrPSAiIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9weWxpbnQvdGVzdC8gXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3B5bGludC90ZXN0dXRpbHMucHkgXAorIgorCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWFzdHJvaWQgXAorICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1pc29ydCBcCisgICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LW51bWJlcnMgXAorICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCisgICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LWpzb24gXAorICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1wa2d1dGlsIFwKKyAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tZGlmZmxpYiBcCisgICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LW5ldHNlcnZlciBcCisgICAgICAgICAgICAgICAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWxpbnRfMS43LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWxpbnRfMS44LjMuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bGludF8xLjcuNC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlsaW50XzEuOC4zLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW1pc3AuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHltaXNwLmluYwppbmRleCAyMWJhN2JiLi43NzY1Y2M1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW1pc3AuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bWlzcC5pbmMKQEAgLTMsNyArMywxMyBAQAogTElDRU5TRSA9ICJCU0QtMi1DbGF1c2UiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1hMzYzOWNmNTc4MGY3MWIxMjVkM2U5ZDFkYzEyN2MyMCIKIAotU1JDX1VSSVttZDVzdW1dID0gIjIwMjRiYWJkOTdhYjU3Y2EwMzYwMzk0ZWRjMzdmMmI2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc0ODBhY2FkYThjYmE5NDcyYTg1MDcwYzU3YmFhZDg5YWU5ZGVlZDgyNmE3NTE1YTRjMTQ5YWM0ODkyMGMyNzMiCitTUkNfVVJJW21kNXN1bV0gPSAiZDRmZWUyYWJiMmQ3NDY4MDEwYjdmZTllYmM2OGIwY2IiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzA0ZmJkODg2MmRmZGUyN2Q3NjdjMDkzZGU4N2ZlYzQyZmM2M2M3MGQ4MzkzNjQzZDFhM2I0Zjc2NWFhZTc4ZiIKIAotUkRFUEVORFNfJHtQTn0gKz0gIiAke1BZVEhPTl9QTn0tcmVxdWVzdHMgJHtQWVRIT05fUE59LWpzb24gJHtQWVRIT05fUE59LWpzb25zY2hlbWEiCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tZGF0ZXV0aWwgXAorICAgICR7UFlUSE9OX1BOfS1qc29uIFwKKyAgICAke1BZVEhPTl9QTn0tanNvbnNjaGVtYSBcCisgICAgJHtQWVRIT05fUE59LXJlcXVlc3RzIFwKKyAgICAke1BZVEhPTl9QTn0tc2l4IFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bWlzcF8yLjQuODAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW1pc3BfMi40Ljg5LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW1pc3BfMi40LjgwLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW1pc3BfMi40Ljg5LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW1vbmdvLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bW9uZ28uaW5jCmluZGV4IDdmMTk5YjQuLmJhZjNkZDUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bW9uZ28uaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bW9uZ28uaW5jCkBAIC02LDEwICs2LDEwIEBACiBNb25nb0RCLiBUaGUgZ3JpZGZzIHBhY2thZ2UgaXMgYSBncmlkZnMgaW1wbGVtZW50YXRpb24gb24gdG9wIG9mIHB5bW9uZ28uIgogSE9NRVBBR0UgPSAiaHR0cDovL2dpdGh1Yi5jb20vbW9uZ29kYi9tb25nby1weXRob24tZHJpdmVyIgogTElDRU5TRSA9ICJBcGFjaGUtMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MmE5NDQ5NDJlMTQ5NmFmMTg4NjkwM2QyNzRkZWRiMTMiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT04NmQzZjNhOTVjMzI0Yzk0NzliZDg5ODY5NjhmNDMyNyIKIAotU1JDX1VSSVttZDVzdW1dID0gIjM1YWU1MzA3M2EyNTYwMzU5MWUwODViMThiYzVhMGVjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImU4MjBkOTM0MTRmM2JlYzFmYTQ1NmM4NGFmYmQ0YWYxYjQzZmY0MTM2NjMyMTYxOWRiNzRlNmJjMDY1ZDY5MjQiCitTUkNfVVJJW21kNXN1bV0gPSAiMGQ3MmM4N2ZiOTNjZWEwNzU5NTI5YmVmYWZlZmNlNTQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjdlYmNiODQ2OTYyZWU0MDM3NGRiMmQ5MDE0YTg5YmVhOWM5ODNhZTYzYzE4Nzc5NTdjM2EwYTc1Njk3NDc5NiIKIAogUEFDS0FHRVMgPSsgIiR7UFlUSE9OX1BOfS1ic29uIgogCkBAIC0xNyw2ICsxNyw3IEBACiAKIFJERVBFTkRTXyR7UFlUSE9OX1BOfS1ic29uICs9ICIgXAogICAgICAke1BZVEhPTl9QTn0tZGF0ZXRpbWUgXAorICAgICAke1BZVEhPTl9QTn0tanNvbiBcCiAgICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAogICAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCiAgICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXApAQCAtMjQsNCArMjUsNSBAQAogCiBSREVQRU5EU18ke1BOfSArPSAiIFwKICAgICAke1BZVEhPTl9QTn0tYnNvbiBcCisgICAgJHtQWVRIT05fUE59LXBwcmludCBcCiAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW1vbmdvXzMuNS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHltb25nb18zLjYuMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHltb25nb18zLjUuMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHltb25nb18zLjYuMS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHluZXRsaW51eC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW5ldGxpbnV4LmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTM5ODk2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHluZXRsaW51eC5pbmMKQEAgLTAsMCArMSwxMSBAQAorU1VNTUFSWSA9ICJMaW51eCBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gbGlicmFyeSBmb3IgUHl0aG9uIgorREVTQ1JJUFRJT04gPSAiVGhpcyBsaWJyYXJ5IGNvbnRhaW5zIFB5dGhvbiBiaW5kaW5ncyB0byBpb2N0bCBjYWxscyIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorSE9NRVBBR0UgPSAiaHR0cDovL2dpdGh1Yi5jb20vcmxpc2Fnb3IvcHluZXRsaW51eCIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTc0ZTE4NjE3MzZlZTk1OTgyNGZlNzU0MjMyM2MxMmU5IgorCitpbmhlcml0IHB5cGkKKworU1JDX1VSSVttZDVzdW1dID0gIjMzMzZlNWQ0YTQ3OGFjY2E0ZTM1YmYzMTI1YjRmODgzIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjRhZDA4Mjk4YzlmNWJhMTVhMTFjZGRjNjM5YmE4Nzc4Y2FiZGZjNDAyYjUxMDY2ZDllMGEzMjVlNWE1YjM5MWMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW5ldGxpbnV4XzEuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bmV0bGludXhfMS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NWFkNmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW5ldGxpbnV4XzEuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tcHluZXRsaW51eC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5b3BlbnNzbC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW9wZW5zc2wuaW5jCmluZGV4IDFiZjgzMjQuLjc3MjJlOGUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5b3BlbnNzbC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlvcGVuc3NsLmluYwpAQCAtNSw4ICs1LDggQEAKIAogREVQRU5EUyArPSAib3BlbnNzbCAke1BZVEhPTl9QTn0tY3J5cHRvZ3JhcGh5IgogCi1TUkNfVVJJW21kNXN1bV0gPSAiMDlkY2QzMDdiOGQyMDY4ZjlkZDVhYWEzYTNhODg5OTIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjk2MzBiOTA2NGE4MmUwNGQ4MjQyZWEwMWQ3YzkzZDcwZWMzMjBmNWUzZWQ0OGU5NWZjYWJjNmIxZDBmNmM3NiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkOWM1MTM0ZGI4YmYzMTgzNTczYjc4NDA5NTRjYWM5NCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyYzEwY2ZiYTQ2YTUyYzBiMDk1MDExODk4MWQ2MWU3MmMxZTViMWFhYzQ1MWNhMWJjNzdkZTFhNjc5NDU2NzczIgogCiBQWVBJX1BBQ0tBR0UgPSAicHlPcGVuU1NMIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW9wZW5zc2xfMTcuMy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlvcGVuc3NsXzE3LjUuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlvcGVuc3NsXzE3LjMuMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlvcGVuc3NsXzE3LjUuMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlwYXJzaW5nLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cGFyc2luZy5pbmMKaW5kZXggMTlmNmQ1NS4uZTMwODM5ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlwYXJzaW5nLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXBhcnNpbmcuaW5jCkBAIC0xOCw0ICsxOCw0IEBACiAgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCiAiCiAKLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgorQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlwZXJjbGlwLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cGVyY2xpcC5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA1ZGU2NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cGVyY2xpcC5pbmMKQEAgLTAsMCArMSwxMiBAQAorREVTQ1JJUFRJT04gPSAiQSBjcm9zcy1wbGF0Zm9ybSBjbGlwYm9hcmQgbW9kdWxlIGZvciBQeXRob24uIChvbmx5IGhhbmRsZXMgcGxhaW4gdGV4dCBmb3Igbm93KSIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87bWQ1PTFlZDkyMTE1YzhmOTZiMTllYzM0ZWQwOWRmNTg2ZTUxIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZDJmNmEzMTI5Y2Q2ZjI1MThiNTJiYjBiOGRlZWVkYTciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiY2U4Mjk0MzNhOWFmNjQwZTA4ZWU4OWIyMGY3YzYyMTMyNzE0YmNjNWQ3N2RmMTE0MDQ0ZDBmY2NiOGMzYjNiOCIKKworaW5oZXJpdCBweXBpCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1jdHlwZXMgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlwZXJjbGlwXzEuNi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlwZXJjbGlwXzEuNi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjOWZjYmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXBlcmNsaXBfMS42LjAuYmIKQEAgLTAsMCArMSw3IEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXB5cGVyY2xpcC5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWNvbnRleHRsaWIgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cm91dGUyLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cm91dGUyLmluYwppbmRleCBkYTFkNGNkLi45ZWM5ODY2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXJvdXRlMi5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlyb3V0ZTIuaW5jCkBAIC0xLDI2ICsxLDI1IEBACiBTVU1NQVJZID0gIkEgcHVyZSBQeXRob24gbmV0bGluayBhbmQgTGludXggbmV0d29yayBjb25maWd1cmF0aW9uIGxpYnJhcnkiCiBMSUNFTlNFID0gIkdQTHYyICYgQXBhY2hlLTIuMCIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UuR1BMLnYyO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9MSUNFTlNFLkFwYWNoZS52MjttZDU9M2I4M2VmOTYzODdmMTQ2NTVmYzg1NGRkYzNjNmJkNTciCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9MSUNFTlNFLkFwYWNoZS52MjttZDU9MzQyODFlMzEyMTY1Zjg0M2EyYjdkMWYxMTRmZTY1Y2UiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI3MzNhZGIzNjJiNjYwM2M3MjY5YzBiM2RmMzA0NWE1NSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1Y2RmNDQ2NTZjZjYyMzM2OWYwY2JmMTgzZDlkMTRhMWE1MGViZGZmYmQ1MGQ0ZTMwZmZkYTYyYzBhMDVkN2IzIgotCi1TUkNfVVJJICs9ICJmaWxlOi8vaW1wb3J0LXNpbXBsZWpzb24tYXMtanNvbi5wYXRjaCIKK1NSQ19VUklbbWQ1c3VtXSA9ICI5YzI1MTU0M2M0MjgyYTJmOGIxYThkNmFhOGFmYzY4OCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3YWZhZDI4ZWUwYTBmM2U3YzM0YWRhYTlmOTUzZDAwNTYwZWQ5OTEwMjAzZTkzZjEwNzgzM2I2ZThkMTUxMTcxIgogCiBGSUxFU0VYVFJBUEFUSFNfcHJlcGVuZCA6PSAiJHtUSElTRElSfS9weXRob24tcHlyb3V0ZTI6IgogCiBpbmhlcml0IHB5cGkKIAotUkRFUEVORFNfJHtQTn0gKz0gIlwKLSAgJHtQWVRIT05fUE59LWRpc3R1dGlscyBcCi0gICR7UFlUSE9OX1BOfS1zaW1wbGVqc29uIFwKLSAgJHtQWVRIT05fUE59LW11bHRpcHJvY2Vzc2luZyBcCi0gICR7UFlUSE9OX1BOfS1pbyAke1BZVEhPTl9QTn0tcHByaW50IFwKLSAgJHtQWVRIT05fUE59LXBpY2tsZSBcCi0gICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKLSAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCi0gICR7UFlUSE9OX1BOfS10ZXh0dXRpbHMgXAotICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCi0gICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWN0eXBlcyBcCisgICAgJHtQWVRIT05fUE59LWRpc3R1dGlscyBcCisgICAgJHtQWVRIT05fUE59LWlvIFwKKyAgICAke1BZVEhPTl9QTn0tanNvbiBcCisgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAorICAgICR7UFlUSE9OX1BOfS1tdWx0aXByb2Nlc3NpbmcgXAorICAgICR7UFlUSE9OX1BOfS1waWNrbGUgXAorICAgICR7UFlUSE9OX1BOfS1wa2d1dGlsIFwKKyAgICAke1BZVEhPTl9QTn0tcHByaW50IFwKKyAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAorICAgICR7UFlUSE9OX1BOfS11bml4YWRtaW4gXAogIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlyb3V0ZTIvaW1wb3J0LXNpbXBsZWpzb24tYXMtanNvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cm91dGUyL2ltcG9ydC1zaW1wbGVqc29uLWFzLWpzb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3M2RhMDcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlyb3V0ZTIvaW1wb3J0LXNpbXBsZWpzb24tYXMtanNvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbd3JvbmcgZGVwZW5kZW5jeV0KLQotU3ViamVjdDogW1BBVENIXSBpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29uCi0KLUF0IHJ1bnRpbWUgcHl0aG9uLXB5cm91dGUyIHRyaWVzIHRvIGltcG9ydCBqc29uLCBidXQgdGhlIG1vZHVsZSBpcyBub3QgCi1hdmFpbGFibGUsIGltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24gc29sdmUgdGhlIGlzc3VlLgotCi1TaWduZWQtb2ZmLWJ5OiBGYWJpbyBCZXJ0b24gPGZhYmlvLmJlcnRvbkBvc3N5c3RlbXMuY29tLmJyPgotLS0tCi0gcHlyb3V0ZTIvbmV0bGluay9ydG5sL2lmaW5mbXNnLnB5IHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvcHlyb3V0ZTIvbmV0bGluay9ydG5sL2lmaW5mbXNnLnB5IGIvcHlyb3V0ZTIvbmV0bGluay9ydG5sL2lmaW5mbXNnLnB5Ci1pbmRleCA0ZjE0ZjI1Li41NTY0M2ViIDEwMDY0NAotLS0tIGEvcHlyb3V0ZTIvbmV0bGluay9ydG5sL2lmaW5mbXNnLnB5Ci0rKysgYi9weXJvdXRlMi9uZXRsaW5rL3J0bmwvaWZpbmZtc2cucHkKLUBAIC0xLDUgKzEsNSBAQAotIGltcG9ydCBvcwotLWltcG9ydCBqc29uCi0raW1wb3J0IHNpbXBsZWpzb24gYXMganNvbgotIGltcG9ydCBlcnJubwotIGltcG9ydCBzZWxlY3QKLSBpbXBvcnQgc3RydWN0Ci0tLSAKLTIuMS40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cm91dGUyXzAuMy4yMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cm91dGUyXzAuMy4yMi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I5YzhlMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXJvdXRlMl8wLjMuMjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLXJlcXVpcmUgcHl0aG9uLXB5cm91dGUyLmluYwotaW5oZXJpdCBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXJvdXRlMl8wLjQuMjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXJvdXRlMl8wLjQuMjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI1ZjFiNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cm91dGUyXzAuNC4yMS5iYgpAQCAtMCwwICsxLDYgQEAKK3JlcXVpcmUgcHl0aG9uLXB5cm91dGUyLmluYworaW5oZXJpdCBzZXR1cHRvb2xzCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzZXJpYWwuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzZXJpYWwuaW5jCmluZGV4IDk5YzZmYzQuLjUyYTdlMDUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c2VyaWFsLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNlcmlhbC5pbmMKQEAgLTIsMjYgKzIsNDEgQEAKIExJQ0VOU0UgPSAiQlNEIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PWQ0NzZkOTQ5MjZkYjZlMDAwOGE1YjM4NjBkMWY1YzBkIgogCi0jIEZJWE1FIG1pZ2h0IHN0b3AgcGFja2FnaW5nIHNlcmlhbHdpbjMyIGFuZCBzZXJpYWxqYXZhIGZpbGVzCitTUkNfVVJJW21kNXN1bV0gPSAiZWQ2MTgzYjE1NTE5YTBhZTk2Njc1ZTljMzMzMGM2OWIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNmUyZDQwMWZkZWUwZWFiOTk2Y2Y3MzRlNjc3NzNhMDE0M2I5MzI3NzJjYThiNDI0NTE0NDBjZmVkOTQyYzYyNyIKKworaW5oZXJpdCBweXBpCisKK1BBQ0tBR0VTID0rICIke1BOfS1qYXZhICR7UE59LW9zeCAke1BOfS13aW4zMiAke1BOfS10b29scyIKKworRklMRVNfJHtQTn0tamF2YSA9ICIgXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3NlcmlhbC8qamF2YSogXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3NlcmlhbC9fX3B5Y2FjaGVfXy8qamF2YSogXAorIgorCitGSUxFU18ke1BOfS1vc3ggPSAiIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zZXJpYWwvdG9vbHMvKm9zeCogXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3NlcmlhbC90b29scy9fX3B5Y2FjaGVfXy8qb3N4KiBcCisiCisKK0ZJTEVTXyR7UE59LXdpbjMyID0gIiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2VyaWFsLypzZXJpYWxjbGkqIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zZXJpYWwvX19weWNhY2hlX18vKnNlcmlhbGNsaSogXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3NlcmlhbC8qd2luMzIqIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zZXJpYWwvX19weWNhY2hlX18vKndpbjMyKiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2VyaWFsL3Rvb2xzL21pbml0ZXJtKiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2VyaWFsL3Rvb2xzL19fcHljYWNoZV9fL21pbml0ZXJtKiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2VyaWFsL3Rvb2xzLyp3aW5kb3dzKiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2VyaWFsL3Rvb2xzL19fcHljYWNoZV9fLyp3aW5kb3dzKiBcCisiCiAKIFJERVBFTkRTXyR7UE59ID0gIlwKICAgICAke1BZVEhPTl9QTn0tZmNudGwgXAogICAgICR7UFlUSE9OX1BOfS1pbyBcCiAgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAogICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKKyAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAogICAgICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQgXAogICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXAogIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZWQ2MTgzYjE1NTE5YTBhZTk2Njc1ZTljMzMzMGM2OWIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNmUyZDQwMWZkZWUwZWFiOTk2Y2Y3MzRlNjc3NzNhMDE0M2I5MzI3NzJjYThiNDI0NTE0NDBjZmVkOTQyYzYyNyIKLQotaW5oZXJpdCBweXBpCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotCSMgV2UgZG9uJ3Qgc3VwcG9ydCBqcHl0aG9uIG5vdy4KLQlpZiBbIC1lICR7RH0ke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zZXJpYWwvc2VyaWFsamF2YS5weSBdOyB0aGVuCi0JCXJtIC1mICR7RH0ke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zZXJpYWwvc2VyaWFsamF2YS5weQotCQlybSAtZiAke0R9JHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2VyaWFsL3NlcmlhbGphdmEucHljCi0JZmkKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c2VyaWFsXzMuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c2VyaWFsXzMuNC5iYgppbmRleCA5MWEwZjI2Li5mZDg1MmEyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNlcmlhbF8zLjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzZXJpYWxfMy40LmJiCkBAIC0xLDQgKzEsNCBAQAogaW5oZXJpdCBzZXR1cHRvb2xzCiByZXF1aXJlIHB5dGhvbi1weXNlcmlhbC5pbmMKIAotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1pbXBvcnRsaWIiCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWFyZ3BhcnNlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzbWlfMC4xLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNtaV8wLjEuMi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWEyMzRkZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNtaV8wLjEuMi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVNVTU1BUlkgPSAiU05NUCBTTUkvTUlCIFBhcnNlciIKLURFU0NSSVBUSU9OID0gIkEgcHVyZS1QeXRob24gaW1wbGVtZW50YXRpb24gb2YgU05NUC9TTUkgTUlCIFwKLSAgcGFyc2luZyBhbmQgY29udmVyc2lvbiBsaWJyYXJ5LiBDYW4gcHJvZHVjZSBQeVNOTVAgTUlCIG1vZHVsZXMuIFwKLSIKLUhPTUVQQUdFID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHlzbWkiCi1TRUNUSU9OID0gImRldmVsL3B5dGhvbiIKLQotTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnJzdDttZDU9ZDhiMWJiYWRkNjM1ZjE4N2RlZTc0ZDk5OWE4YzY3YjgiCi0KLVNSQ05BTUUgPSAicHlzbWkiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzL3NvdXJjZS9wLyR7U1JDTkFNRX0vJHtTUkNOQU1FfS0ke1BWfS50YXIuZ3oiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJmODc1NGU5ZWQ3NTY5OGNjMTZiNDBmMTI1ZGY4NWIxMiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlMDkxMjE4MGZjNmZhYTljMjY0ZGY3OGY5N2U3YzQ1MWY3N2Y4NGY1YmQ4NDAwOThkMmNlN2IxYmY3MDA4MmJjIgotCi1TID0gIiR7V09SS0RJUn0vJHtTUkNOQU1FfS0ke1BWfSIKLQotaW5oZXJpdCBzZXR1cHRvb2xzCi0KLVJERVBFTkRTXyR7UE59ID0gInB5dGhvbi1wbHkiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNtaV8wLjIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c21pXzAuMi4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0NzU5YjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNtaV8wLjIuMi5iYgpAQCAtMCwwICsxLDE2IEBACitTVU1NQVJZID0gIlNOTVAgU01JL01JQiBQYXJzZXIiCitERVNDUklQVElPTiA9ICJBIHB1cmUtUHl0aG9uIGltcGxlbWVudGF0aW9uIG9mIFNOTVAvU01JIE1JQiBcCisgIHBhcnNpbmcgYW5kIGNvbnZlcnNpb24gbGlicmFyeS4gQ2FuIHByb2R1Y2UgUHlTTk1QIE1JQiBtb2R1bGVzLiBcCisiCitIT01FUEFHRSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5c21pIgorU0VDVElPTiA9ICJkZXZlbC9weXRob24iCisKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS5yc3Q7bWQ1PWQ4YjFiYmFkZDYzNWYxODdkZWU3NGQ5OTlhOGM2N2I4IgorCitTUkNfVVJJW21kNXN1bV0gPSAiM2IwZjcxZTRlOWY3MzBkMjExZjA5ZDhlZjUzNzExNDAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMmEzMTVjYzNlNTU2YjM0MjgzNzJiNjlkYTY2M2EyNGQyZjBkZjllOWFiMDc1YjAyMmNiMTMzODU1ZjI1YWVmNyIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gPSAicHl0aG9uLXBseSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c29ja3MuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzb2Nrcy5pbmMKaW5kZXggY2Y5NTA5YS4uNTNlYzFiNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzb2Nrcy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzb2Nrcy5pbmMKQEAgLTMsMTMgKzMsMTYgQEAKIExJQ0VOU0UgPSAiQlNEIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MWQ0NTdiY2ZmYjk2NjFiNDVmNzk5ZDRlZmVlNzJmMTYiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIwNzAwN2VjN2VkNDYyOTJkYWIwNjAxM2YyZTNhZjM2NSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkMDAzMjlmMjdlZmExNTdkYjdlZmUzY2EyNmZjZDY5MDMzY2Q2MWY4MzgyMjQ2MWVlM2Y4YTM1M2I0OGUzM2NmIgorU1JDX1VSSVttZDVzdW1dID0gIjQ0MWM0ZTNiZjViMDQyZjdlNzA2MTNjZDg3MWRmMjZjIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjNmZTUyYzU1ODkwYTI0ODY3NmZkNjlkYzllM2M0ZTgxMTcxOGI3Nzc4MzRiY2FhYjdhODEyNWNmOWRlYWM2NzIiCiAKIFBZUElfUEFDS0FHRSA9ICJQeVNvY2tzIgogCiBSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tZW1haWwgXAogICAgICR7UFlUSE9OX1BOfS1pbyBcCisgICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCisgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKICIKIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzb2Nrc18xLjYuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c29ja3NfMS42LjguYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c29ja3NfMS42LjcuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c29ja3NfMS42LjguYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c3RhY2hlLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c3RhY2hlLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGJjOTlmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzdGFjaGUuaW5jCkBAIC0wLDAgKzEsMTMgQEAKK1NVTU1BUlkgPSAiUHl0aG9uIGltcGxlbWVudGF0aW9uIG9mIE11c3RhY2hlIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2RlZnVua3QvcHlzdGFjaGUiCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWViNDQxNzgwMmM1NjM4NGFhYzcxYjM0NTA1NTI4YTYwIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNDg1ODg1ZTY3YTBmNjQxMWQ1MjUyZTY5YjIwYTM1Y2EiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjdiYmMyNjVmYjk1N2I0ZDZjN2MwNDJiMzM2NTYzMTc5NDQ0YWIzMTNmYjkzYTcxOTc1OTExMWVhYmQzYjg1YSIKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LW5ldHNlcnZlciBcCisiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c3RhY2hlXzAuNS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzdGFjaGVfMC41LjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ1NTAxMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c3RhY2hlXzAuNS40LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXB5c3RhY2hlLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LXJ1bm5lci5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QtcnVubmVyLmluYwppbmRleCBjMTczYTE4Li43NTQ2NzQzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QtcnVubmVyLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QtcnVubmVyLmluYwpAQCAtMSwxNiArMSwxNiBAQAogU1VNTUFSWSA9ICJJbnZva2UgcHkudGVzdCBhcyBkaXN0dXRpbHMgY29tbWFuZCB3aXRoIGRlcGVuZGVuY3kgcmVzb2x1dGlvbiIKIExJQ0VOU0UgPSAiTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZTM4Yjk3MWMyYjRjMzNiOTc4ZDFiOWM5ZWNlOWFlNjMiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1hMzNmMzhiYmY0N2Q0OGM3MGZlMGQ0MGU1Zjc3NDk4ZSIKIAotU1JDX1VSSVttZDVzdW1dID0gImE4ZGQ1N2M4MGNkZTM3YTU4N2RkOGMzNzc0MGMxYWIxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVjOTA5M2U3YTE4NzgwNDA5ZDlhMzg5ZjIwMzY2ZjJmZDM5YWNmYjFkYjYxNTQ1ZmRiMmU5MGNkYmQwYmNhZTQiCitTUkNfVVJJW21kNXN1bV0gPSAiOGY4MzYzYTUyYmJhYmM0Y2VkZDVlMjM5YmViMmJhMTEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMGY3YzNhM2NmNWFlYWQxM2Y1NGJhYWEwMWNlYjQ5ZTVhZTkyYWJhNWQzZmYxOTI4ZTgxZTE4OWM0MGJjNjcwMyIKIAogaW5oZXJpdCBweXBpCiAKIERFUEVORFMgKz0gIiBcCiAgICAgJHtQWVRIT05fUE59LXNldHVwdG9vbHMtc2NtLW5hdGl2ZSIKIAotUkRFUEVORFNfJHtQTn0gPSAiJHtQWVRIT05fUE59LXB5ICR7UFlUSE9OX1BOfS1zZXR1cHRvb2xzICR7UFlUSE9OX1BOfS1hcmdwYXJzZSAke1BZVEhPTl9QTn0tZGVidWdnZXIgJHtQWVRIT05fUE59LWpzb24gXAorUkRFUEVORFNfJHtQTn0gPSAiJHtQWVRIT05fUE59LXB5ICR7UFlUSE9OX1BOfS1zZXR1cHRvb2xzICR7UFlUSE9OX1BOfS1kZWJ1Z2dlciAke1BZVEhPTl9QTn0tanNvbiBcCiAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0taW8iCiAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC1ydW5uZXJfMi4xMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LXJ1bm5lcl8yLjEyLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhNTA1NWMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LXJ1bm5lcl8yLjEyLjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLWluaGVyaXQgc2V0dXB0b29scwotcmVxdWlyZSBweXRob24tcHl0ZXN0LXJ1bm5lci5pbmMKLQotIyBEZXBlbmRlbmN5IG9ubHkgZXhpc3RzIGZvciBweXRob24yCi1SREVQRU5EU18ke1BOfSArPSAicHl0aG9uLWNvbXBpbGVyIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LXJ1bm5lcl8zLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QtcnVubmVyXzMuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzY1YTczCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LXJ1bm5lcl8zLjAuYmIKQEAgLTAsMCArMSw1IEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXB5dGVzdC1ydW5uZXIuaW5jCisKKyMgRGVwZW5kZW5jeSBvbmx5IGV4aXN0cyBmb3IgcHl0aG9uMgorUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi1hcmdwYXJzZSBweXRob24tY29tcGlsZXIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LmluYwppbmRleCA2MTQwMjUwLi40ZmViOWEwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC5pbmMKQEAgLTMsMTggKzMsMjEgQEAKIExJQ0VOU0UgPSAiTUlUIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YzM5YjI0OTY1ZjRhZWY2NDIyMmNiMzVkZTlkNDdjYzQiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI0MDFjMDA1YmQ1N2Y3MWU2M2JhMDE1YWIwODZmZTY3ZCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmNDZlNDllMDM0MGE1MzI3NjQ5OTFjNDk4MjQ0YTYwZTNhMzdkNzQyNGE1MzJiM2ZmMWE2YTc2NTNmMWE0MDNhIgorU1JDX1VSSVttZDVzdW1dID0gIjFiODNhMjVkNDVmYWQ4OTNmNDMwZmM1MDMxNjUzYzU2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjExN2JhZDM2YzFhNzg3ZTFhOGE2NTlkZjM1ZGU1M2JhMDVmOWYzMzk4ZmI5ZTRhYzE3ZTgwYWQ1OTAzZWI4YzUiCiAKIFNSQ19VUklfYXBwZW5kID0gIiBmaWxlOi8vMDAwMS1zZXR1cC5weS1yZW1vdmUtdGhlLXNldHVwX3JlcXVpcmVzLWZvci1zZXR1cHRvb2xzLXNjbS5wYXRjaCBcCiAgICAgICAgICAgICAgICAgICAgZmlsZTovL3B5dGVzdF92ZXJzaW9uX2ZpeC5wYXRjaCAiCiAKIFJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiIFwKLSAgICAke1BZVEhPTl9QTn0tYXJncGFyc2UgXAorICAgICR7UFlUSE9OX1BOfS1hdHRycyBcCiAgICAgJHtQWVRIT05fUE59LWRlYnVnZ2VyIFwKKyAgICAke1BZVEhPTl9QTn0tZG9jdGVzdCBcCiAgICAgJHtQWVRIT05fUE59LWpzb24gXAorICAgICR7UFlUSE9OX1BOfS1wbHVnZ3kgXAogICAgICR7UFlUSE9OX1BOfS1weSBcCiAgICAgJHtQWVRIT05fUE59LXNldHVwdG9vbHMgXAorICAgICR7UFlUSE9OX1BOfS1zaXggXAogIgogCiBGSUxFU0VYVFJBUEFUSFNfcHJlcGVuZCA6PSAiJHtUSElTRElSfS9weXRob24tcHl0ZXN0OiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC8wMDAxLXNldHVwLnB5LXJlbW92ZS10aGUtc2V0dXBfcmVxdWlyZXMtZm9yLXNldHVwdG9vbHMtc2NtLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LzAwMDEtc2V0dXAucHktcmVtb3ZlLXRoZS1zZXR1cF9yZXF1aXJlcy1mb3Itc2V0dXB0b29scy1zY20ucGF0Y2gKaW5kZXggZTI4M2IxNy4uMDZkZmNkZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LzAwMDEtc2V0dXAucHktcmVtb3ZlLXRoZS1zZXR1cF9yZXF1aXJlcy1mb3Itc2V0dXB0b29scy1zY20ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LzAwMDEtc2V0dXAucHktcmVtb3ZlLXRoZS1zZXR1cF9yZXF1aXJlcy1mb3Itc2V0dXB0b29scy1zY20ucGF0Y2gKQEAgLTEsMjkgKzEsMzIgQEAKLUZyb20gZTJkODEwMDljNzkwYjRlYmVjZWQ4NDA4YjZiYWU3ODA2MGNhYmNhZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gMjRhOTAxZmQxNzkyNmU4ZTA1YmU0ZWQyZTAxYjAxMTNhMmUzYTg1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IERlcmVrIFN0cmFrYSA8ZGVyZWtAYXN0ZXJpdXMuaW8+Ci1EYXRlOiBXZWQsIDUgSnVsIDIwMTcgMDk6MzU6NTEgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzFdIHNldHVwLnB5OiByZW1vdmUgdGhlIHNldHVwX3JlcXVpcmVzIGZvciBzZXR1cHRvb2xzLXNjbQorRGF0ZTogVHVlLCAxOSBEZWMgMjAxNyAxMTozNjozOSAtMDUwMAorU3ViamVjdDogW1BBVENIXSBbUEFUQ0ggMS8xXSBzZXR1cC5weTogcmVtb3ZlIHRoZSBzZXR1cF9yZXF1aXJlcyBmb3IKKyBzZXR1cHRvb2xzLXNjbQogCiBUaGUgc2V0dXBfcmVxdWlyZXMgYXJndW1lbnQgZm9yY2VzIHRoZSBkb3dubG9hZCBvZiB0aGUgZWdnIGZpbGUgZm9yIHNldHVwdG9vbHMtc2NtCiBkdXJpbmcgdGhlIGRvX2NvbXBpbGUgcGhhc2UuICBUaGlzIGRvd25sb2FkIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSB0eXBpY2FsIGZldGNoCiBhbmQgbWlycm9yIHN0cnVjdHVyZS4gIFRoZSBvbmx5IHVzYWdlIG9mIHNjbSBpcyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgX3ZlcnNpb24ucHkKIGZpbGUgYW5kIGluIHRoZSByZWxlYXNlIHRhcmJhbGwgaXQgaXMgYWxyZWFkeSBjb3JyZWN0bHkgY3JlYXRlZAogCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW29lIHNwZWNpZmljXQorCiBTaWduZWQtb2ZmLWJ5OiBEZXJlayBTdHJha2EgPGRlcmVrQGFzdGVyaXVzLmlvPgogLS0tCiAgc2V0dXAucHkgfCAxIC0KICAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvc2V0dXAucHkgYi9zZXR1cC5weQotaW5kZXggNzUxODY4Yy4uZWY2ZWJmMSAxMDA2NDQKK2luZGV4IDNlYjM4ZWYuLjExNjMyMDIgMTAwNjQ0CiAtLS0gYS9zZXR1cC5weQogKysrIGIvc2V0dXAucHkKLUBAIC03MSw3ICs3MSw2IEBAIGRlZiBtYWluKCk6CitAQCAtODIsNyArODIsNiBAQCBkZWYgbWFpbigpOgogICAgICAgICAga2V5d29yZHM9InRlc3QgdW5pdHRlc3QiLAogICAgICAgICAgY21kY2xhc3M9eyd0ZXN0JzogUHlUZXN0fSwKICAgICAgICAgICMgdGhlIGZvbGxvd2luZyBzaG91bGQgYmUgZW5hYmxlZCBmb3IgcmVsZWFzZQogLSAgICAgICAgc2V0dXBfcmVxdWlyZXM9WydzZXR1cHRvb2xzLXNjbSddLAorICAgICAgICAgcHl0aG9uX3JlcXVpcmVzPSc+PTIuNywgIT0zLjAuKiwgIT0zLjEuKiwgIT0zLjIuKiwgIT0zLjMuKicsCiAgICAgICAgICBpbnN0YWxsX3JlcXVpcmVzPWluc3RhbGxfcmVxdWlyZXMsCiAgICAgICAgICBleHRyYXNfcmVxdWlyZT1leHRyYXNfcmVxdWlyZSwKLSAgICAgICAgIHBhY2thZ2VzPVsnX3B5dGVzdCcsICdfcHl0ZXN0LmFzc2VydGlvbicsICdfcHl0ZXN0Ll9jb2RlJywgJ19weXRlc3QudmVuZG9yZWRfcGFja2FnZXMnXSwKIC0tIAogMi43LjQKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC9weXRlc3RfdmVyc2lvbl9maXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QvcHl0ZXN0X3ZlcnNpb25fZml4LnBhdGNoCmluZGV4IDkwOGY4NjIuLmIzNzNkOTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC9weXRlc3RfdmVyc2lvbl9maXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0L3B5dGVzdF92ZXJzaW9uX2ZpeC5wYXRjaApAQCAtMzYsNyArMzYsNyBAQAogKyAgICAgICAgcmV0dXJuIHZlcnNpb25fbWF0Y2guZ3JvdXAoMSkKICsgICAgcmFpc2UgUnVudGltZUVycm9yKCJVbmFibGUgdG8gZmluZCB2ZXJzaW9uIHN0cmluZy4iKQogIAotIGRlZiBoYXNfZW52aXJvbm1lbnRfbWFya2VyX3N1cHBvcnQoKToKKyBkZWYgZ2V0X2Vudmlyb25tZW50X21hcmtlcl9zdXBwb3J0X2xldmVsKCk6CiAgICAgICIiIgogQEAgLTU5LDkgKzcyLDcgQEAgZGVmIG1haW4oKToKICAgICAgICAgIG5hbWU9J3B5dGVzdCcsCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3RfMy4yLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3RfMy4yLjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzMjJmMDkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0XzMuMi4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotcmVxdWlyZSBweXRob24tcHl0ZXN0LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0XzMuNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0XzMuNC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwMWFiMDUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3RfMy40LjIuYmIKQEAgLTAsMCArMSw4IEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tcHl0ZXN0LmluYworCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWFyZ3BhcnNlIFwKKyAgICAke1BZVEhPTl9QTn0tY29tcGlsZXIgXAorICAgICR7UFlUSE9OX1BOfS1mdW5jc2lncyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXR6LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dHouaW5jCmluZGV4IDFjNjU2NGIuLjUxOTQ4N2YgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dHouaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dHouaW5jCkBAIC0xLDE3ICsxLDE5IEBACiBTVU1NQVJZID0gIldvcmxkIHRpbWV6b25lIGRlZmluaXRpb25zLCBtb2Rlcm4gYW5kIGhpc3RvcmljYWwiCiBIT01FUEFHRSA9ICJodHRwOi8vcHl0aG9uaG9zdGVkLm9yZy9weXR6IgogTElDRU5TRSA9ICJNSVQiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9MzllYTkyNzUyYTM1Y2Y2N2Q4YTg4NWQ4ZTNhZjNjNjkiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9NDg3OGE5MTU3MDkyMjViY2VhYjczOWJkYzJhMThlOGQiCiAKIGluaGVyaXQgcHlwaQotUFlQSV9QQUNLQUdFX0VYVCA9ICJ6aXAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJmODliZGU4YTgxMWM4YTFhNWJhYzE3ZWFhYTk0MzgzYyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmNWMwNTZlOGY2MmQ0NWJhODIxNWU1Y2I4ZjUwZGZjY2IxOThiNGI5ZmJlYTg1MDA2NzRmMzQ0M2U0Njg5NTg5IgorU1JDX1VSSVttZDVzdW1dID0gImYwNTQ0Mzc5MjBjODk1ZGQxNGE0NTA5ZmFiYWZlMDI5IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImMwNjQyNTMwMmYyY2Y2NjhmMWJiYTdhMGEwM2YzYzFkMzRkNGViZWVmMmM3MjAwM2RhMzA4YjM5NDdjN2Y3NDkiCiAKIFJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiXAogICAgICR7UFlUSE9OX1BOfS1kYXRldGltZSBcCisgICAgJHtQWVRIT05fUE59LWRvY3Rlc3QgXAogICAgICR7UFlUSE9OX1BOfS1pbyBcCisgICAgJHtQWVRIT05fUE59LXBpY2tsZSBcCisgICAgJHtQWVRIT05fUE59LXBwcmludCBcCiAgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCiAiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dHpfMjAxNy4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0el8yMDE4LjQuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dHpfMjAxNy4yLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXR6XzIwMTguNC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1ZGV2LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dWRldi5pbmMKaW5kZXggYWI0YzVmZC4uY2I5MDZjOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1ZGV2LmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVkZXYuaW5jCkBAIC0xNCw2ICsxNCw1IEBACiAgICAgJHtQWVRIT05fUE59LWN0eXBlcyBcCiAgICAgJHtQWVRIT05fUE59LW1pc2MgXAogICAgICR7UFlUSE9OX1BOfS1zaXggXAotICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKICAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dWRldl8wLjIxLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVkZXZfMC4yMS4wLmJiCmluZGV4IDMyNTczYjcuLmEzZTE1MDEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dWRldl8wLjIxLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1ZGV2XzAuMjEuMC5iYgpAQCAtMiw2ICsyLDcgQEAKIAogUkRFUEVORFNfJHtQTn0gPSAiXAogICAgICR7UFlUSE9OX1BOfS1jb250ZXh0bGliIFwKKyAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCiAiCiAKIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVzYi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVzYi5pbmMKaW5kZXggYWYyMDEwOS4uMzBiYmU4NSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1c2IuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dXNiLmluYwpAQCAtMSwxMCArMSwxMCBAQAogU1VNTUFSWSA9ICJQeVVTQiBwcm92aWRlcyBVU0IgYWNjZXNzIG9uIHRoZSBQeXRob24gbGFuZ3VhZ2UiCiBIT01FUEFHRSA9ICJodHRwOi8vcHl1c2Iuc291cmNlZm9yZ2UubmV0LyIKIExJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NTBkNDZiZGE2MjQ4YTBiNGE0NmE2ZDU5YTY2ZWUwOGUiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT01MTY5MWVkMTFjYzJjN2FlOTNlMzgzZjYwZWQ0OWIwZiIKIERFUEVORFMgKz0gImxpYnVzYjEiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJiYzEyZTgzZmYzZWYxMDQ1ZDQzMDZkMTNhOTk1NWZjMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIxNGVjNjYwNzdiZGNkNmYxYWE5ZTg5MmEwYTM1YTU0YmIzYzFlYzU2YWE3NDBlYWQ2NDM0OWMxOGYwMTg2ZDE5IgorU1JDX1VSSVttZDVzdW1dID0gIjg2MmI1NjQ1MmM2NDk0OGM3ODdhZDhlZjk0OTg1OTBiIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjRlOWI3MmNjNGE0MjA1Y2E2NGZiZjFmM2ZmZjM5YTMzNTUxMjE2NmMxNTFhZDEwM2U1NWM4MjIzYWMxNDczNjIiCiAKIGluaGVyaXQgcHlwaQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1c2JfMS4wLjBiMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dXNiXzEuMC4wYjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiNzNkOWYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1c2JfMS4wLjBiMi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotaW5oZXJpdCBkaXN0dXRpbHMKLXJlcXVpcmUgcHl0aG9uLXB5dXNiLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1c2JfMS4wLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVzYl8xLjAuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWE3OTViCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1c2JfMS4wLjIuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXB5dXNiLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl5YW1sLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5eWFtbC5pbmMKaW5kZXggYTNjZjY3Ny4uM2ZlZjBjYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl5YW1sLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXlhbWwuaW5jCkBAIC0xMSw0ICsxMSw4IEBACiBTUkNfVVJJW21kNXN1bV0gPSAiNGMxMjk3NjFiNjYxZDE4MWViZjdmZjRlYjJkNzk5NTAiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTkyNzY2YzYzMDMyMDdhMjBlZmM0NDU1ODc3NzgzMjJkN2Y3M2IxNjFiZDk5NGYyMjdhZGFhMzQxYmEyMTJhYiIKIAorUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tZGF0ZXRpbWUgXAorIgorCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1yZWRpcy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1yZWRpcy5pbmMKaW5kZXggNTcxYmIwOC4uMWE2NWQ3MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcmVkaXMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXJlZGlzLmluYwpAQCAtNiwzICs2LDcgQEAKIAogU1JDX1VSSVttZDVzdW1dID0gIjA0ODM0OGQ4Y2ZlMGI1ZDBiYmEyZjRkODM1MDA1YzNiIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImEyMmNhOTkzY2VhMjk2MmRiYjU4OGY5ZjMwZDAwMTVhYzRhZmNjNDViZWUyN2QzOTc4YzBkYmU5ZTk3YzZjMGYiCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXJvYm90ZnJhbWV3b3JrLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXJvYm90ZnJhbWV3b3JrLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGJiYmM2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcm9ib3RmcmFtZXdvcmsuaW5jCkBAIC0wLDAgKzEsMjYgQEAKK1NVTU1BUlkgPSAiQSBQeXRob24gZ2VuZXJpYyB0ZXN0IGF1dG9tYXRpb24gZnJhbWV3b3JrIgorREVTQ1JJUFRJT04gPSAiR2VuZXJpYyBvcGVuIHNvdXJjZSB0ZXN0IGF0b21hdGlvbiBmcmFtZXdvcmsgZm9yIGFjY2VwdGFuY2VcCit0ZXN0aW5nIGFuZCBhY2NlcHRhbmNlIHRlc3QtZHJpdmVuIGRldmVsb3BtZW50IChBVEREKS4gSXQgaGFzIGVhc3ktdG8tdXNlXAordGFidWxhciB0ZXN0IGRhdGEgc3ludGF4IGFuZCBpdCB1dGlsaXplcyB0aGUga2V5d29yZC1kcml2ZW4gdGVzdGluZyBhcHByb2FjaC5cCitJdHMgdGVzdGluZyBjYXBhYmlsaXRpZXMgY2FuIGJlIGV4dGVuZGVkIGJ5IHRlc3QgbGlicmFyaWVzIGltcGxlbWVudGVkIGVpdGhlclwKK3dpdGggUHl0aG9uIG9yIEphdmEsIGFuZCB1c2VycyBjYW4gY3JlYXRlIG5ldyBoaWdoZXItbGV2ZWwga2V5d29yZHMgZnJvbVwKK2V4aXN0aW5nIG9uZXMgdXNpbmcgdGhlIHNhbWUgc3ludGF4IHRoYXQgaXMgdXNlZCBmb3IgY3JlYXRpbmcgdGVzdCBjYXNlcy4iCitIT01FUEFHRSA9ICJodHRwOi8vcm9ib3RmcmFtZXdvcmsub3JnIgorTElDRU5TRSA9ICJBcGFjaGUtMi4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTNiODNlZjk2Mzg3ZjE0NjU1ZmM4NTRkZGMzYzZiZDU3IgorCitpbmhlcml0IHB5cGkKKworU1JDX1VSSVttZDVzdW1dID0gImVhNDlhNTRiOWQ3ZTM4MzAyNzEyMTk0ZTg1YzM3ZWFhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjIwMThmMjMzNTY4MjI3ZjlhZjhjMzY2ZjkzZTI0M2ExNTdiNzQyZjNiYWY1YjY0OWVjYzk3NTBhYzBlZTFmZjciCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCisgICAgJHtQWVRIT05fUE59LXBwcmludCBcCisgICAgJHtQWVRIT05fUE59LXhtbCBcCisgICAgJHtQWVRIT05fUE59LWRpZmZsaWIgXAorICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXAorICAgICR7UFlUSE9OX1BOfS1odG1sIFwKKyAgICAke1BZVEhPTl9QTn0tZG9jdXRpbHMgXAorICAgICR7UFlUSE9OX1BOfS1jdHlwZXMgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcm9ib3RmcmFtZXdvcmtfMy4wLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1yb2JvdGZyYW1ld29ya18zLjAuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjdkZWRiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcm9ib3RmcmFtZXdvcmtfMy4wLjIuYmIKQEAgLTAsMCArMSw2IEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXJvYm90ZnJhbWV3b3JrLmluYworCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0temxpYiBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zY3J5cHQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2NyeXB0LmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODNkMDViCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2NyeXB0LmluYwpAQCAtMCwwICsxLDE2IEBACitERVNDUklQVElPTiA9ICJCaW5kaW5ncyBmb3IgdGhlIHNjcnlwdCBrZXkgZGVyaXZhdGlvbiBmdW5jdGlvbiBsaWJyYXJ5IgorTElDRU5TRSA9ICJCU0QtMi1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke0NPTU1PTl9MSUNFTlNFX0RJUn0vQlNELTItQ2xhdXNlO21kNT04YmVmOGU2NzEyYjFiZTVhYTc2YWYxZWJkZTlkNjM3OCIKK0hPTUVQQUdFPSJodHRwczovL2JpdGJ1Y2tldC5vcmcvbWhhbGxpbi9weS1zY3J5cHQvb3ZlcnZpZXciCisKK0ZJTEVTRVhUUkFQQVRIU19wcmVwZW5kIDo9ICIke1RISVNESVJ9L3B5dGhvbi1zY3J5cHQ6IgorCitTUkNfVVJJICs9ICJmaWxlOi8vMDAwMS1weS1zY3J5cHQtcmVtb3ZlLXRoZS1oYXJkLWNvZGVkLWluY2x1ZGUtcGF0aHMucGF0Y2giCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJhZThlMzI2M2FhMzFiMDQwYzFmOWM3ZjFlMTg0M2E1NiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJmODIzOWIyZDQ3ZmExZDQwYmMyN2VmZDIzMWRjNzA4MzY5NWQxMGMxYzJhYzUxYTk5MzgwMzYwNzQxZTAzNjJkIgorCitpbmhlcml0IHB5cGkKKworUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICJcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zY3J5cHQvMDAwMS1weS1zY3J5cHQtcmVtb3ZlLXRoZS1oYXJkLWNvZGVkLWluY2x1ZGUtcGF0aHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zY3J5cHQvMDAwMS1weS1zY3J5cHQtcmVtb3ZlLXRoZS1oYXJkLWNvZGVkLWluY2x1ZGUtcGF0aHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDUzNWU0MwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNjcnlwdC8wMDAxLXB5LXNjcnlwdC1yZW1vdmUtdGhlLWhhcmQtY29kZWQtaW5jbHVkZS1wYXRocy5wYXRjaApAQCAtMCwwICsxLDI2IEBACitGcm9tIGQ4ZGI0NzNjZTkzNDZjZDYyNTRjOTBlMTNhYzQ1YjNiYmRlNDk0YzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEZXJlayBTdHJha2EgPGRlcmVrQGFzdGVyaXVzLmlvPgorRGF0ZTogU3VuLCAxMSBNYXIgMjAxOCAxOTo1NTozOCAtMDQwMAorU3ViamVjdDogW1BBVENIXSBweS1zY3J5cHQ6IHJlbW92ZSB0aGUgaGFyZCBjb2RlZCBpbmNsdWRlIHBhdGhzCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBEZXJlayBTdHJha2EgPGRlcmVrQGFzdGVyaXVzLmlvPgorLS0tCisgc2V0dXAucHkgfCAxIC0KKyAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc2V0dXAucHkgYi9zZXR1cC5weQoraW5kZXggZTM2YWRjNC4uMmViZmJmMSAxMDA2NDQKKy0tLSBhL3NldHVwLnB5CisrKysgYi9zZXR1cC5weQorQEAgLTI0LDcgKzI0LDYgQEAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4Jyk6CisgICAgICAgICAgICAgICAgICAgICAgKCdIQVZFX1NZU19TWVNJTkZPX0gnLCAnMScpLAorICAgICAgICAgICAgICAgICAgICAgICgnX0ZJTEVfT0ZGU0VUX0JJVFMnLCAnNjQnKV0KKyAgICAgbGlicmFyaWVzID0gWydjcnlwdG8nLCAncnQnXQorLSAgICBpbmNsdWRlcyA9IFsnL3Vzci9sb2NhbC9pbmNsdWRlJywgJy91c3IvaW5jbHVkZSddCisgICAgIENGTEFHUy5hcHBlbmQoJy1PMicpCisgZWxpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luMzInKToKKyAgICAgZGVmaW5lX21hY3JvcyA9IFsoJ2lubGluZScsICdfX2lubGluZScpXQorLS0gCisyLjcuNApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2NyeXB0XzAuOC42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2NyeXB0XzAuOC42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYmQwMGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zY3J5cHRfMC44LjYuYmIKQEAgLTAsMCArMSwzIEBACitpbmhlcml0IHNldHVwdG9vbHMgcHl0aG9uLWRpcgorcmVxdWlyZSBweXRob24tc2NyeXB0LmluYworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zZXJwZW50LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNlcnBlbnQuaW5jCmluZGV4IDY0NTRlZTAuLjNmNTFiYzIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNlcnBlbnQuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNlcnBlbnQuaW5jCkBAIC0xLDkgKzEsOSBAQAogU1VNTUFSWSA9ICJTZXJpYWxpemF0aW9uIGJhc2VkIG9uIGFzdC5saXRlcmFsX2V2YWwiCiBMSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT05ZjYxMWQ0YzllMjgxNmQzODdiYWI2NGM0MGQ5MzI5NCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT1hY2RlYTY4ZjBlNWE4OWViNmNiZmRmNTRlMzhjMzU2ZSIKIAotU1JDX1VSSVttZDVzdW1dID0gImQ5ZDZhZmE1MWYyNTYwY2Y1OTMzZGNkZmQ5NDcwMTFkIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg0ODBjZTNkODg2NGI4OTc0ZDlmZTM5Njk5OGM2YTdkYWU5NmVkYjY4ZWRmOTA1YmZkMzJlYTlhMTE4NTNiYTUiCitTUkNfVVJJW21kNXN1bV0gPSAiZDBjNTBmMTk0M2ZmODZkODMwZWIzZmU0MGY2ZGMxZTMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjY4NTU0ODNkOTVhMDNiNmFlZTM1ODM2MzY4NGNkMzhhM2E2NzAyNDBkYTViYzZkYTQyNTMwNzljYjA3YjhkZiIKIAogaW5oZXJpdCBweXBpCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNlcnBlbnRfMS4yMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNlcnBlbnRfMS4yNC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2VycGVudF8xLjIzLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zZXJwZW50XzEuMjQuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNldHVwdG9vbHMtc2NtLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNldHVwdG9vbHMtc2NtLmluYwppbmRleCA4MWJiZjMzLi5lYjY2NTgwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zZXR1cHRvb2xzLXNjbS5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2V0dXB0b29scy1zY20uaW5jCkBAIC0xLDE0ICsxLDE0IEBACiBTVU1NQVJZID0gInRoZSBibGVzc2VkIHBhY2thZ2UgdG8gbWFuYWdlIHlvdXIgdmVyc2lvbnMgYnkgc2NtIHRhZ3MiCiBMSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTgzOGMzNjZmNjliNzJjNWRmMDVjOTZkZmY3OWIzNWYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87YmVnaW5saW5lPTg7ZW5kbGluZT04O21kNT04MjI3MTgwMTI2Nzk3YTAxNDhmOTRmNDgzZjNlMTQ4OSIKIAotU1JDX1VSSVttZDVzdW1dID0gImYxNzQ5M2Q1M2YwZDg0MmJiMDE1MmYyMTQ3NzU2NDBiIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ5YWI0Njg1NTg5OTg2YTQyZGE4NTcwNmIzMzExYTJmNzRmMWFmNTY3ZDM5ZmVlNmNiMWUwODhkN2E3NWZiNWYiCitTUkNfVVJJW21kNXN1bV0gPSAiMWI1NWY5Y2VkZGU0YTMzYWI1ZDI4NmM1ZjMwZTg2ZGIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTE2M2U4YTEyZDIxMjFmNzc1NzU3NzNjZmMyYjU5ODgyNzVkYzFmMWQyNTQxZmRmNzgwMTI3YzI5ZGJiZWE5YyIKIAogUFlQSV9QQUNLQUdFID0gInNldHVwdG9vbHNfc2NtIgogaW5oZXJpdCBweXBpCiAKLVJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCA9ICIke1BZVEhPTl9QTn0tcHkgJHtQWVRIT05fUE59LXNldHVwdG9vbHMgJHtQWVRIT05fUE59LWFyZ3BhcnNlICR7UFlUSE9OX1BOfS1kZWJ1Z2dlciAke1BZVEhPTl9QTn0tanNvbiIKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCA9ICIke1BZVEhPTl9QTn0tcHkgJHtQWVRIT05fUE59LXNldHVwdG9vbHMgJHtQWVRIT05fUE59LWRlYnVnZ2VyICR7UFlUSE9OX1BOfS1qc29uIgogUkRFUEVORFNfJHtQTn1fY2xhc3MtbmF0aXZlID0gIiR7UFlUSE9OX1BOfS1zZXR1cHRvb2xzLW5hdGl2ZSIKIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zZXR1cHRvb2xzLXNjbV8xLjE1LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zZXR1cHRvb2xzLXNjbV8xLjE1LjYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmOWJiMGIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2V0dXB0b29scy1zY21fMS4xNS42LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLXNldHVwdG9vbHMtc2NtLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2V0dXB0b29scy1zY21fMS4xNS43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2V0dXB0b29scy1zY21fMS4xNS43LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YjM2ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zZXR1cHRvb2xzLXNjbV8xLjE1LjcuYmIKQEAgLTAsMCArMSw0IEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXNldHVwdG9vbHMtc2NtLmluYworCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWFyZ3BhcnNlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2ltcGxlanNvbi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zaW1wbGVqc29uLmluYwppbmRleCAxM2MwNDU2Li5lMjhkNTE4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zaW1wbGVqc29uLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zaW1wbGVqc29uLmluYwpAQCAtNCwxNCArNCwyMCBAQAogTElDRU5TRSA9ICJNSVQiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9YzYzMzhkN2FiZDMyMWMwYjUwYTJhNTQ3ZTQ0MWM1MmUiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI2ZTJmMWJkNWZiMGE5MjZmYWNmNWQ4OWQyMTdhNzE4MyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwMWEyMmQ0OWRkZDlhMTY4YjEzNmYyNmNhYzg3ZDlhMzM1NjYwY2UwN2FhNWM2MzBiOGUzNjA3ZDZmNDMyNWU3IgorU1JDX1VSSVttZDVzdW1dID0gIjg3MGJmNjI1NzQ2NWNlMmVlOGNhZDE0ZTIzOTRmN2ViIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjRjNGVjZjIwZTA1NDcxNmNjMWU1YTgxY2FkYzQ0ZDNmNDAyNzEwOGQ4ZGQwODYxZDhiMWUzYmQ3YTMyZDRmMGEiCiAKIGluaGVyaXQgcHlwaQogCiBSREVQRU5EU18ke1BOfSArPSAiXAotICAgICR7UFlUSE9OX1BOfS1yZSBcCiAgICAgJHtQWVRIT05fUE59LWlvIFwKICAgICAke1BZVEhPTl9QTn0tbmV0c2VydmVyIFwKICAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCiAiCisKK1BBQ0tBR0VTID0rICIke1BOfS10ZXN0cyIKK1JERVBFTkRTXyR7UE59LXRlc3RzID0gIiR7UE59ICR7UFlUSE9OX1BOfS11bml0dGVzdCIKK0ZJTEVTXyR7UE59LXRlc3RzKz0gIiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2ltcGxlanNvbi90ZXN0cyBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2ltcGxlanNvbi90b29sLnB5KiBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zaW1wbGVqc29uXzMuMTEuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNpbXBsZWpzb25fMy4xMS4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzNlZGZlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNpbXBsZWpzb25fMy4xMS4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLXNpbXBsZWpzb24uaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zaW1wbGVqc29uXzMuMTMuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNpbXBsZWpzb25fMy4xMy4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0YWQ5YTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zaW1wbGVqc29uXzMuMTMuMi5iYgpAQCAtMCwwICsxLDQgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tc2ltcGxlanNvbi5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1yZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNtYnVzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNtYnVzLmluYwppbmRleCBkZWQzMGNlLi5mNDcyYTU3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zbWJ1cy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc21idXMuaW5jCkBAIC0xLDE4ICsxLDEyIEBACiBTVU1NQVJZID0gIlNldCBvZiBpMmMgdG9vbHMgZm9yIGxpbnV4IC0gUHl0aG9uIG1vZHVsZSIKIExJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9zbWJ1c21vZHVsZS5jO3N0YXJ0bGluZT0xO2VuZGxpbmU9MTc7bWQ1PWZhMjRkZjMyMWE1MjBmZjhlMTBmMjAzNDI1YWI5ZmE4IgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vc21idXNtb2R1bGUuYztiZWdpbmxpbmU9MTtlbmRsaW5lPTE3O21kNT1mYTI0ZGYzMjFhNTIwZmY4ZTEwZjIwMzQyNWFiOWZhOCIKK1BSID0gInIxIgogCi1TUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZHMueW9jdG9wcm9qZWN0Lm9yZy9taXJyb3Ivc291cmNlcy9pMmMtdG9vbHMtJHtQVn0udGFyLmJ6MiBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiNzEwNGExMDQzZDExYTVlMmM3YjEzMTYxNGViMWI5NjIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGI1ZTY5ZjJlMmE2ZTNhYTJlY2RmZTZhNWY0OTBiMTQ5YzUwNDQ2ODc3MGY1ODkyMWM4YzViOGE3ODYwYTQ0MSIKK1NSQ19VUkkgPSAiJHtLRVJORUxPUkdfTUlSUk9SfS9zb2Z0d2FyZS91dGlscy9pMmMtdG9vbHMvaTJjLXRvb2xzLSR7UFZ9LnRhci5neiAiCitTUkNfVVJJW21kNXN1bV0gPSAiZDkyYTI4OGQ3MGYzMDZkMzg5NWUzYTdlOWMxNGM5YWEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWI2MGRhZjZmMDExZGUwYWNiNjFkZTU3ZGJhNjJmMjA1NGJiMzlmMTk5NjFkNjdlMGM5MTYxMGYwNzFjYTQwMyIKIAogREVQRU5EUyArPSAiaTJjLXRvb2xzIgogCiBTID0gIiR7V09SS0RJUn0vaTJjLXRvb2xzLSR7UFZ9L3B5LXNtYnVzLyIKLQotZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7Ci0gICAgIyBBZGp1c3QgZm9yIE9FIGhlYWRlciByZW5hbWUKLSAgICBzZWQgLWkgczpsaW51eC9pMmMtZGV2Lmg6bGludXgvaTJjLWRldi11c2VyLmg6IE1vZHVsZS5tawotICAgIHNlZCAtaSBzOmxpbnV4L2kyYy1kZXYuaDpsaW51eC9pMmMtZGV2LXVzZXIuaDogc21idXNtb2R1bGUuYwotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc21idXNfMy4xLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zbWJ1c180LjAuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNtYnVzXzMuMS4yLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zbWJ1c180LjAuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNuaW1weV8wLjguMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zbmltcHlfMC44LjExLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYmRjNmJkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNuaW1weV8wLjguMTEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1TVU1NQVJZID0gIkludGVyYWN0aXZlIFNOTVAgdG9vbCIKLURFU0NSSVBUSU9OID0gIlNuaW1weSBpcyBhIFB5dGhvbi1iYXNlZCB0b29sIHByb3ZpZGluZyBhIHNpbXBsZSBpbnRlcmZhY2UgdG8gYnVpbGQgU05NUCBxdWVyeSIKLUhPTUVQQUdFID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc25pbXB5IgotU0VDVElPTiA9ICJkZXZlbC9weXRob24iCi0KLURFUEVORFMgPSAibGlic21pIHB5dGhvbi1jZmZpLW5hdGl2ZSBweXRob24tdmN2ZXJzaW9uZXItbmF0aXZlIgotCi1MSUNFTlNFID0gIklTQyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL2RvY3MvbGljZW5zZS5yc3Q7bWQ1PTdjNTNhYjJkMTI0MDgyODYyNWMzZTA5M2QwNDlkNGY0IgotCi1TUkNOQU1FID0gInNuaW1weSIKLQotU1JDX1VSSSA9ICJodHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvc291cmNlL3MvJHtTUkNOQU1FfS8ke1NSQ05BTUV9LSR7UFZ9LnRhci5neiIKLQotU1JDX1VSSVttZDVzdW1dID0gIjdmNjI3MGNlMmU3MjA2ZGYxNjU2MDJlNjZkNWNlYjk2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjEwNDEwNjE0YzdiZmYxMDUzY2E2NWJkNzYwY2U5MTlmMWEwNzRmNDk4OGI4NTdkZjRjNTdjZjM1ODQ3OTIyYjAiCi0KLVMgPSAiJHtXT1JLRElSfS8ke1NSQ05BTUV9LSR7UFZ9IgotCi1pbmhlcml0IHNldHVwdG9vbHMKLQotUkRFUEVORFNfJHtQTn0gPSAicHl0aG9uLWNmZmkgXAotICAgICAgICAgICAgICAgICAgcHl0aG9uLXB5Y3BhcnNlciBcCi0gICAgICAgICAgICAgICAgICBweXRob24tcHlzbm1wIFwKLSAgICAgICAgICAgICAgICAgIHB5dGhvbi1zZXR1cHRvb2xzIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNuaW1weV8wLjguMTIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zbmltcHlfMC44LjEyLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1YWY0OGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zbmltcHlfMC44LjEyLmJiCkBAIC0wLDAgKzEsMjAgQEAKK1NVTU1BUlkgPSAiSW50ZXJhY3RpdmUgU05NUCB0b29sIgorREVTQ1JJUFRJT04gPSAiU25pbXB5IGlzIGEgUHl0aG9uLWJhc2VkIHRvb2wgcHJvdmlkaW5nIGEgc2ltcGxlIGludGVyZmFjZSB0byBidWlsZCBTTk1QIHF1ZXJ5IgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zbmltcHkiCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKKworREVQRU5EUyArPSAibGlic21pIHB5dGhvbi1jZmZpLW5hdGl2ZSBweXRob24tdmN2ZXJzaW9uZXItbmF0aXZlIgorCitMSUNFTlNFID0gIklTQyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL2RvY3MvbGljZW5zZS5yc3Q7bWQ1PTdjNTNhYjJkMTI0MDgyODYyNWMzZTA5M2QwNDlkNGY0IgorCitTUkNfVVJJW21kNXN1bV0gPSAiNmQwMTZiNjM1NmRiNDMyZTZhODdhZDcwOGViOGZjYjYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDRlZmNmYmE4NjdmZmIwZTEwY2M4ZDdmOTNhNTUzY2ViNmJkZjJlZTM0ZTQ5NzYyNzQ5MDI4YTJjNzYwOTZjMSIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gPSAicHl0aG9uLWNmZmkgXAorICAgICAgICAgICAgICAgICAgcHl0aG9uLXB5Y3BhcnNlciBcCisgICAgICAgICAgICAgICAgICBweXRob24tcHlzbm1wIFwKKyAgICAgICAgICAgICAgICAgIHB5dGhvbi1zZXR1cHRvb2xzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNwZWFrbGF0ZXIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3BlYWtsYXRlci5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRmYThhNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNwZWFrbGF0ZXIuaW5jCkBAIC0wLDAgKzEsOSBAQAorREVTQ1JJUFRJT04gPSAiTWVkaWEgYXNzZXQgbWFuYWdlbWVudCBmb3IgUHl0aG9uLCB3aXRoIGdsdWUgY29kZSBmb3IgdmFyaW91cyBmcmFtZXdvcmtzIgorTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iODEwNzcwMDc1YTI5YmY0NGI5NjYwNzQ0MGU3YzgwMSIKKworU1JDX1VSSVttZDVzdW1dID0gImU4ZDVkYmUzNmU1M2Q1YTM1Y2ZmMjI3ZTc5NWU4YmJmIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU5ZmVhMzM2ZDBlZWQzOGMxZjBiZjMxODFlZTEyMjJkMGVmNDVmM2E5ZGQzNGViZTY1ZTZiZmZmZGQ2YTY1YTkiCisKK1BZUElfUEFDS0FHRSA9ICJzcGVha2xhdGVyIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zcGVha2xhdGVyXzEuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNwZWFrbGF0ZXJfMS4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2ZmQ1NTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zcGVha2xhdGVyXzEuMy5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1zcGVha2xhdGVyLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3FsYWxjaGVteS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zcWxhbGNoZW15LmluYwppbmRleCBjYzhlODJmLi4wYzE5MWFlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zcWxhbGNoZW15LmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zcWxhbGNoZW15LmluYwpAQCAtMiwxMyArMiwxMyBAQAogYXBwbGljYXRpb24gZGV2ZWxvcGVycyB0aGUgZnVsbCBwb3dlciBhbmQgZmxleGliaWxpdHkgb2YgU1FMIgogSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5zcWxhbGNoZW15Lm9yZy8iCiBMSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTQ1MmY0YjhhZGIwZmViYTQyZTViZTVmMWZiZmJmNTM4IgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YjFjNDEyYzlkOGQxY2UwMThmN2E5Mzc0NDA3YzIyYmIiCiAKIFBZUElfUEFDS0FHRSA9ICJTUUxBbGNoZW15IgogaW5oZXJpdCBweXBpCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJiMzI2NjlkNTNlOTAzYjM1MTIwNjUwMjY1NTJmM2JmZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmMTE5MWUyOWUzNWI2ZmUxYWVmNzE3NWEwOWIxNzA3ZWJiN2JkMDhkMGIxN2NiMGZlYWRhNzZjNDllNWEyZDFlIgorU1JDX1VSSVttZDVzdW1dID0gIjAzZGIxYzhmOGFlOTExOTc3YzBiZjM5NTBhNGM5YzIxIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjZiNTVlYzM3OWMxMWFkNjk2ZjkzNzFjZThlMGRlOTNjN2YyMTEzNDMyM2Y1NmE1NmExYjBkOGZiZWYxNzAxM2MiCiAKIFJERVBFTkRTXyR7UE59ICs9ICIgXAogICAgICR7UFlUSE9OX1BOfS1qc29uIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNxbGFsY2hlbXlfMS4xLjE0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3FsYWxjaGVteV8xLjEuMTcuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNxbGFsY2hlbXlfMS4xLjE0LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zcWxhbGNoZW15XzEuMS4xNy5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3lzdGVtZC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zeXN0ZW1kLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmU1ZGUwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3lzdGVtZC5pbmMKQEAgLTAsMCArMSwxOCBAQAorU1VNTUFSWSA9ICJQeXRob24gaW50ZXJmYWNlIGZvciBsaWJzeXN0ZW1kIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3N5c3RlbWQvcHl0aG9uLXN5c3RlbWQiCitMSUNFTlNFID0gIkxHUEx2Mi4xKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT00ZmJkNjUzODBjZGQyNTU5NTEwNzkwMDhiMzY0NTE2YyIKKworUFlQSV9QQUNLQUdFID0gInN5c3RlbWQtcHl0aG9uIgorREVQRU5EUyArPSAic3lzdGVtZCAoPD0yMzQpIgorUkRFUEVORFNfJHtQTn0gKz0gInN5c3RlbWQgJHtQWVRIT05fUE59LXN5c2xvZyAke1BZVEhPTl9QTn0tbG9nZ2luZyIKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJzeXN0ZW1kIgoraW5oZXJpdCBweXBpIGRpc3Ryb19mZWF0dXJlc19jaGVjaworCitTUkNfVVJJW21kNXN1bV0gPSAiNTA3MWVhNWJjYjk3NjE4NmU5MmEzZjVlNzVkZjIyMWQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZmQwZTQ0YmY3MGVhZGFlNDVhYWRjMjkyY2IwYTdlYjViMGI2MzcyY2QxYjM5MTIyODA0N2QzMzg5NWRiODNlNyIKKworIyBhbGxvdyBmb3IgY29tbW9uIHBhdGNoZXMgZm9yIHB5dGhvbi0gYW5kIHB5dGhvbjMtc3lzdGVtZAorRklMRVNFWFRSQVBBVEhTX3ByZXBlbmQgOj0gIiR7VEhJU0RJUn0vcHl0aG9uLXN5c3RlbWQ6IgorCitTUkNfVVJJX2FwcGVuZF9saWJjLW11c2wgPSAiIGZpbGU6Ly8wMDAxLVByb3ZpZGUtaW1wbGVtZW50YXRpb24tb2Ytc3RybmR1cGEtZm9yLW11c2wucGF0Y2giCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zeXN0ZW1kLzAwMDEtUHJvdmlkZS1pbXBsZW1lbnRhdGlvbi1vZi1zdHJuZHVwYS1mb3ItbXVzbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXN5c3RlbWQvMDAwMS1Qcm92aWRlLWltcGxlbWVudGF0aW9uLW9mLXN0cm5kdXBhLWZvci1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3MDg1YTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zeXN0ZW1kLzAwMDEtUHJvdmlkZS1pbXBsZW1lbnRhdGlvbi1vZi1zdHJuZHVwYS1mb3ItbXVzbC5wYXRjaApAQCAtMCwwICsxLDQyIEBACitGcm9tIDhiNjM5ZjlmYWY2MTk5ZTQ3YjllYWUwNjk4ZDAxYTIyOTE3YjZhYmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBUaW0gT3JsaW5nIDx0aW1vdGh5LnQub3JsaW5nQGxpbnV4LmludGVsLmNvbT4KK0RhdGU6IEZyaSwgMjkgRGVjIDIwMTcgMDk6MTc6MTcgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gUHJvdmlkZSBpbXBsZW1lbnRhdGlvbiBvZiBzdHJuZHVwYSBmb3IgbXVzbAorCitSZXVzZSB0aGUgYXBwcm9hY2ggZnJvbSBvZS1jb3JlOgorL21ldGEvcmVjaXBlcy1jb3JlL3N5c3RlbWQvc3lzdGVtZC8wMDAyLXNyYy1iYXNpYy1taXNzaW5nLmgtY2hlY2stZm9yLW1pc3Npbmctc3RybmR1cGEucGF0Y2gKKworT3JpZ2luYWwgcGF0Y2ggYXV0aG9yOiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8c3lzdGVtZEBlc21pbC5kaz4KKworU2lnbmVkLW9mZi1ieTogVGltIE9ybGluZyA8dGltb3RoeS50Lm9ybGluZ0BsaW51eC5pbnRlbC5jb20KKy0tLQorVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKKyBzeXN0ZW1kL3V0aWwuYyB8IDExICsrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3N5c3RlbWQvdXRpbC5jIGIvc3lzdGVtZC91dGlsLmMKK2luZGV4IGUwMmM4MjUuLjI3N2U2MTEgMTAwNjQ0CistLS0gYS9zeXN0ZW1kL3V0aWwuYworKysrIGIvc3lzdGVtZC91dGlsLmMKK0BAIC0zNCw2ICszNCwxNyBAQAorIAorICNpbmNsdWRlICJ1dGlsLmgiCisgCisrI2lmICFIQVZFX0RFQ0xfU1RSTkRVUEEKKysjZGVmaW5lIHN0cm5kdXBhKHMsIG4pIFwKKysgICh7IFwKKysgICAgY29uc3QgY2hhciAqX19vbGQgPSAocyk7IFwKKysgICAgc2l6ZV90IF9fbGVuID0gc3RybmxlbihfX29sZCwgKG4pKTsgXAorKyAgICBjaGFyICpfX25ldyA9IChjaGFyICopYWxsb2NhKF9fbGVuICsgMSk7IFwKKysgICAgX19uZXdbX19sZW5dID0gJ1wwJzsgXAorKyAgICAoY2hhciAqKW1lbWNweShfX25ldywgX19vbGQsIF9fbGVuKTsgXAorKyAgfSkKKysjZW5kaWYKKysKKyBpbnQgc2FmZV9hdG91KGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkICpyZXRfdSkgeworICAgICAgICAgY2hhciAqeCA9IE5VTEw7CisgICAgICAgICB1bnNpZ25lZCBsb25nIGw7CistLSAKKzIuMTMuNgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zeXN0ZW1kXzIzNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXN5c3RlbWRfMjM0LmJiCmluZGV4IGVmMTE4MzEuLjgwZjI5MDAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXN5c3RlbWRfMjM0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXN5c3RlbWRfMjM0LmJiCkBAIC0xLDEzICsxLDIgQEAKLVNVTU1BUlkgPSAiUHl0aG9uIGludGVyZmFjZSBmb3IgbGlic3lzdGVtZCIKLUhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9zeXN0ZW1kL3B5dGhvbi1zeXN0ZW1kIgotTElDRU5TRSA9ICJMR1BMdjIuMSsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9NGZiZDY1MzgwY2RkMjU1OTUxMDc5MDA4YjM2NDUxNmMiCi0KLVBZUElfUEFDS0FHRSA9ICJzeXN0ZW1kLXB5dGhvbiIKLURFUEVORFMgKz0gInN5c3RlbWQgKDw9MjM0KSIKLVJERVBFTkRTXyR7UE59ICs9ICJzeXN0ZW1kIgotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInN5c3RlbWQiCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLQotU1JDX1VSSVttZDVzdW1dID0gIjUwNzFlYTViY2I5NzYxODZlOTJhM2Y1ZTc1ZGYyMjFkIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImZkMGU0NGJmNzBlYWRhZTQ1YWFkYzI5MmNiMGE3ZWI1YjBiNjM3MmNkMWIzOTEyMjgwNDdkMzM4OTVkYjgzZTciCityZXF1aXJlIHB5dGhvbi1zeXN0ZW1kLmluYworaW5oZXJpdCBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10b3JuYWRvLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXRvcm5hZG8uaW5jCmluZGV4IDJjNTg2NTUuLjI5ZDEwZGEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXRvcm5hZG8uaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXRvcm5hZG8uaW5jCkBAIC00LDEzICs0LDE0IEBACiBwb2xsaW5nLCBXZWJTb2NrZXRzLCBhbmQgb3RoZXIgYXBwbGljYXRpb25zIHRoYXQgcmVxdWlyZSBhIGxvbmctbGl2ZWQgY29ubmVjdGlvbiB0byBlYWNoIHVzZXIuIgogSE9NRVBBR0UgPSAiaHR0cDovL3d3dy50b3JuYWRvd2ViLm9yZy9lbi9zdGFibGUvIgogTElDRU5TRSA9ICJBcGFjaGUtMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vc2V0dXAucHk7c3RhcnRsaW5lPTI7ZW5kbGluZT0xNTttZDU9NWFiNzU3MWE3OWFkNjJkMGNhN2FlYTMwOGJhYzc1NjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9zZXR1cC5weTtiZWdpbmxpbmU9MztlbmRsaW5lPTE1O21kNT04ZDQ2M2ZjNjZmZjhmMjc1MzU0ZmZlODhkMTg5NmUxMiIKIAotU1JDX1VSSVttZDVzdW1dID0gImFiNDFmNjc2NWQ1ODA4OWYzMGJhNTFlOGVjMDg0YTdiIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFmYjhlNDk0Y2Q0NmM2NzRkODZmYWM1ODg1YTNmZjg3YjBlMjgzOTM3YTQ3ZDc0ZWIzYzAyYTQ4YzllODlhZDAiCitTUkNfVVJJW21kNXN1bV0gPSAiYTVmYzdmZDRhZWE5NDg2NzYwOWE0OTFjZTY1Nzg2ZjEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNmQxNGU0N2VhYjBlMTU3OTljZjNjZGNjODZiMGI5ODI3OWRhNjg1MjJjYWFjZTJiZDdjZTY0NDI4NzY4NWYwYSIKIAotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1jb21wcmVzc2lvbiAke1BZVEhPTl9QTn0tbnVtYmVycyAke1BZVEhPTl9QTn0tZW1haWwgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAotICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1wa2d1dGlsICR7UFlUSE9OX1BOfS1odG1sICR7UFlUSE9OX1BOfS1qc29uICR7UFlUSE9OX1BOfS1jZXJ0aWZpICR7UFlUSE9OX1BOfS10aHJlYWRpbmciCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWNvbXByZXNzaW9uICR7UFlUSE9OX1BOfS1udW1iZXJzICR7UFlUSE9OX1BOfS1lbWFpbCBcCisgICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LXBrZ3V0aWwgJHtQWVRIT05fUE59LWh0bWwgJHtQWVRIT05fUE59LWpzb24gJHtQWVRIT05fUE59LWNlcnRpZmkgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCisgICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LWN0eXBlcyIKIAogUkRFUEVORFNfJHtQTn0tdGVzdCArPSAiJHtQTn0gJHtQWVRIT05fUE59LXVuaXR0ZXN0IgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10b3JuYWRvXzQuNS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdG9ybmFkb180LjUuMi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQxMTQ3NS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10b3JuYWRvXzQuNS4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotcmVxdWlyZSBweXRob24tdG9ybmFkby5pbmMKLVJERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tYmFja3BvcnRzLXNzbCAke1BZVEhPTl9QTn0tYmFja3BvcnRzLWFiYyAke1BZVEhPTl9QTn0tc2luZ2xlZGlzcGF0Y2giCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10b3JuYWRvXzQuNS4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdG9ybmFkb180LjUuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTNhNGRiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdG9ybmFkb180LjUuMy5iYgpAQCAtMCwwICsxLDggQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi10b3JuYWRvLmluYworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWJhY2twb3J0cy1hYmMgXAorICAgICR7UFlUSE9OX1BOfS1iYWNrcG9ydHMtc3NsIFwKKyAgICAke1BZVEhPTl9QTn0tc2luZ2xlZGlzcGF0Y2ggXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR3aXN0ZWQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdpc3RlZC5pbmMKaW5kZXggMGRkNTg0Zi4uNjQ4MGFkNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdpc3RlZC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdpc3RlZC5pbmMKQEAgLTM5LDYgKzM5LDEwIEBACiAgICAgJHtQTn0tYmluIFwKICIKIAorREVQRU5EUyArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0taW5jcmVtZW50YWwtbmF0aXZlIFwKKyIKKwogUkRFUEVORFNfJHtQTn0gPSAiXAogICAgICR7UE59LWJpbiBcCiAgICAgJHtQTn0tY29yZSBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10d2lzdGVkXzE3LjkuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR3aXN0ZWRfMTcuOS4wLmJiCmluZGV4IDdmYzhjNjUuLjJiZTE3MDkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR3aXN0ZWRfMTcuOS4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR3aXN0ZWRfMTcuOS4wLmJiCkBAIC0yLDkgKzIsMyBAQAogcmVxdWlyZSBweXRob24tdHdpc3RlZC5pbmMKIAogUkRFUEVORFNfJHtQTn0tY29yZSArPSAiJHtQWVRIT05fUE59LWNvbnRleHRsaWIiCi0KLSMgTm90IHlldCBwb3J0ZWQgdG8gcHkzIHlldCBhdmFpbGFibGUgaW4gcHkyCi0jIFNlZSBzcmMvdHdpc3RlZC9weXRob24vX3NldHVwLnB5IC0tIG5vdFBvcnRlZE1vZHVsZXMKLVJERVBFTkRTXyR7UE59ICs9ICJcCi0gICAgJHtQTn0tbmV3cyBcCi0gICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdvZmlzaC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10d29maXNoLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWFiMjg1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdvZmlzaC5pbmMKQEAgLTAsMCArMSwxMyBAQAorU1VNTUFSWSA9ICJCaW5kaW5ncyBmb3IgdGhlIFR3b2Zpc2ggaW1wbGVtZW50YXRpb24gYnkgTmllbHMgRmVyZ3Vzb24iCitERVNDUklQVElPTiA9ICJCaW5kaW5ncyBmb3IgdGhlIFR3b2Zpc2ggaW1wbGVtZW50YXRpb24gYnkgTmllbHMgRmVyZ3Vzb25cCisgbGlidHdvZmlzaC1kZXYuIgorSE9NRVBBR0UgPSAiaHR0cDovL2dpdGh1Yi5jb20va2V5YmFzZS9weXRob24tdHdvZmlzaCIKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MzNhNjNhYmY2ZDc1NjdiMTY4OWQ4Y2U2OWYwMGU0M2IiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJkN2QyMmYxNmRjNGZmYTBlM2FlMjIwMDY1NDAzM2FiZSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJiMDlkOGJiNTBkMzNiMjNmZjM0Y2FmYjFmOTIwOWY4NThmNzUyOTM1YzZhNWM5MDFlZmI5MmE0MWFjYjgzMGZhIgorCitpbmhlcml0IHB5cGkKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdvZmlzaF8wLjMuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR3b2Zpc2hfMC4zLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODViMDIxNQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR3b2Zpc2hfMC4zLjAuYmIKQEAgLTAsMCArMSwyIEBACityZXF1aXJlIHB5dGhvbi10d29maXNoLmluYworaW5oZXJpdCBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10eXBpbmcuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHlwaW5nLmluYwppbmRleCA0NmJlNDdjLi5hMGVlNmIyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10eXBpbmcuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR5cGluZy5pbmMKQEAgLTMsNyArMyw3IEBACiBMSUNFTlNFID0gIlBTRiIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTY0ZmMyYjMwYjY3ZDBhODQyM2MyNTBlMDM4NmVkNzJmIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiMTQzYWYwYmYzYWZkMTg4NzYyMjc3MWYyZjFmZmU4ZTEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZDUxNGJkODRiMjg0ZGQzZTg0NGYwMzA1YWMwNzUxMWYwOTdlMzI1MTcxZjZjYzRhMjA4NzhkMTFhZDc3MTg0OSIKK1NSQ19VUklbbWQ1c3VtXSA9ICI1YjJhZGUwOGQ4M2JlNDg4ZjE3YjVmZTU4N2MyN2M3NCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkNDAwYTkzNDQyNTQ4MDNhMjM2ODUzM2U0NTMzYTQyMDBkMjFlYjdiNmI3MjljMTczYmMzODIwMWE3NGRiM2YyIgogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10eXBpbmdfMy42LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10eXBpbmdfMy42LjQuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR5cGluZ18zLjYuMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHlwaW5nXzMuNi40LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi11anNvbi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi11anNvbi5pbmMKaW5kZXggOTY1NGQ1YS4uYzNkMGJmZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdWpzb24uaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXVqc29uLmluYwpAQCAtMiw3ICsyLDcgQEAKIERFU0NSSVBUSU9OID0gIlVsdHJhSlNPTiBpcyBhbiB1bHRyYSBmYXN0IEpTT04gZW5jb2RlciBhbmQgZGVjb2RlciB3cml0dGVuIGluIHB1cmUgQyB3aXRoIGJpbmRpbmdzIGZvciBQeXRob24gMi41KyBhbmQgMy4iCiAKIExJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87c3RhcnRsaW5lPTg7ZW5kbGluZT05O21kNT00ZjM2OWIzYzNjMjkwYjRhZWRlODc5NmE0MDY1ZTVhYiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO2JlZ2lubGluZT04O2VuZGxpbmU9ODttZDU9ODhkZjhlNzhiOWVkZmQ3NDQ5NTM4NjIxNzlmMmQxNGUiCiAKIFNSQ19VUklbbWQ1c3VtXSA9ICI0MmY3N2IwY2NlNjg2ZGZhNGRhMmU2ODQ4MGIxZGQyNCIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICJmNjYwNzNlNTUwNmU5MWQyMDRhYjBjNjE0YTE0OGQ1YWE5MzhiZGJmMTA0NzUxYmU2NmY4YWQ3YTIyMmY1Zjg2IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdW5pZGlmZi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi11bmlkaWZmLmluYwppbmRleCAwNDAyNTUwLi5mYzEyMDYyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi11bmlkaWZmLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi11bmlkaWZmLmluYwpAQCAtMyw3ICszLDEyIEBACiBMSUNFTlNFID0gIk1JVCIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTRjNDM0YjA4ZWY0MmZlYTIzNWJiMDE5YjVlNWE5N2IzIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiYzgwOTllZGY4OWQyZTNiYWMxNjEyMzc2NjYyNWEzOGIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTdiYWY3MTg0NmE2OGM1MzA1YTdkNjAwNWRmYjVlY2E4Nzk4ZjEzODYxMTc2MzU1YTI4NWNiZGEzMjA2ODI0ZCIKK1NSQ19VUklbbWQ1c3VtXSA9ICI0N2Y2NjlkNzI3MzU0MWZlYzQ1ZTRjYzBmYmE4ZDhlOSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI5YzlhYjVmYjk2YjY5ODhiNGNkNWRlZjZiMjc1NDkyNDQyYzA0YTU3MDkwMGQzM2FhNjM3MzEwNTc4MDAyNWJjIgogCiBpbmhlcml0IHB5cGkKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWNvZGVjcyBcCisgICAgJHtQWVRIT05fUE59LWlvIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXVuaWRpZmZfMC41LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi11bmlkaWZmXzAuNS41LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi11bmlkaWZmXzAuNS40LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi11bmlkaWZmXzAuNS41LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi12aXNpdG9yLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXZpc2l0b3IuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjMjI4OGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi12aXNpdG9yLmluYwpAQCAtMCwwICsxLDYgQEAKK1NVTU1BUlkgPSAiQSB0aW55IHB5dGhvbmljIHZpc2l0b3IgaW1wbGVtZW50YXRpb24uIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTztiZWdpbmxpbmU9ODtlbmRsaW5lPTg7bWQ1PTgyMjcxODAxMjY3OTdhMDE0OGY5NGY0ODNmM2UxNDg5IgorCitTUkNfVVJJW21kNXN1bV0gPSAiOTRhMDI0ZWQwZWMxYjAyYjQ0OTdjMTUyNjdkMzE5Y2EiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMmM3Mzc5MDNiMmI2ODY0ZWJjNjE2N2VlZjdjZjNiOTk3MTI2ZjFhYTk0YmRmNTkwZjkwZjE0MzZkMjNlNDgwYSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXZpc2l0b3JfMC4xLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi12aXNpdG9yXzAuMS4zLmJiCmluZGV4IDEyMzY1MDYuLmVlZTI1YTUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXZpc2l0b3JfMC4xLjMuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdmlzaXRvcl8wLjEuMy5iYgpAQCAtMSw4ICsxLDIgQEAKLVNVTU1BUlkgPSAiQSB0aW55IHB5dGhvbmljIHZpc2l0b3IgaW1wbGVtZW50YXRpb24uIgotTElDRU5TRSA9ICJNSVQiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTztiZWdpbmxpbmU9ODtlbmRsaW5lPTg7bWQ1PTgyMjcxODAxMjY3OTdhMDE0OGY5NGY0ODNmM2UxNDg5IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiOTRhMDI0ZWQwZWMxYjAyYjQ0OTdjMTUyNjdkMzE5Y2EiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMmM3Mzc5MDNiMmI2ODY0ZWJjNjE2N2VlZjdjZjNiOTk3MTI2ZjFhYTk0YmRmNTkwZjkwZjE0MzZkMjNlNDgwYSIKLQogaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXZpc2l0b3IuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZWJjb2xvcnMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2ViY29sb3JzLmluYwppbmRleCBmZTFhYjk1Li5hMDJiYmJiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZWJjb2xvcnMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlYmNvbG9ycy5pbmMKQEAgLTEsOSArMSw5IEBACiBTVU1NQVJZID0gIlNpbXBsZSBQeXRob24gbW9kdWxlIGZvciB3b3JraW5nIHdpdGggSFRNTC9DU1MgY29sb3IgZGVmaW5pdGlvbnMuIgogTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zNThkZjdlOWViNjVlMTg0M2RiYjM2YWJkNDc2YzVjMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTE5N2FkZDAxNjA4N2U2ODg0YTAxMmIwZjE4NWQ0NGFkIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNDczM2ZhMTA3N2Y2ODBiYmRkOTE4Y2RlZjFlMzJjMTEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTQ3ZTY4NjQ0ZDQxYzBiMWYxZTRkOTM5Y2ZlNDAzOWJkZjFhYjMxMjM0ZGY2M2M3YTRmNTlkNDc2NjQ4NzIwNiIKK1NSQ19VUklbbWQ1c3VtXSA9ICI0MDg5MGRiMzhiMmE4NTZlNTI2YTU2ODg2NDAyNWZlNiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwMzA1NjJmNjI0NDY3YTk5MDFmMGI0NTVmZWYwNTQ4NmE4OGNmYjVkYWExZTM1NmJkNGFhY2VhMDQzODUwYjU5IgogCiBSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgPSAiXAogICAgICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2ViY29sb3JzXzEuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlYmNvbG9yc18xLjguMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2ViY29sb3JzXzEuNy5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2ViY29sb3JzXzEuOC4xLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZWJlbmNvZGluZ3MuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2ViZW5jb2RpbmdzLmluYwppbmRleCBlZDU3YzUyLi4zNGNhNzA2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZWJlbmNvZGluZ3MuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlYmVuY29kaW5ncy5pbmMKQEAgLTEsMTAgKzEsMTMgQEAKIFNVTU1BUlkgPSAiQ2hhcmFjdGVyIGVuY29kaW5nIGFsaWFzZXMgZm9yIGxlZ2FjeSB3ZWIgY29udGVudCIKIExJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87c3RhcnRsaW5lPTg7ZW5kbGluZT05O21kNT1hZjVjODFiZmU5ODg1NWE1NmQzNmI2YmE1ZGUyOTA2ZiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO2JlZ2lubGluZT04O2VuZGxpbmU9ODttZDU9ZTkxMGIzNWIwZWY0ZTFmNjY1YjlhNzVkNmFmYjc3MDkiCiAKIFNSQ19VUklbbWQ1c3VtXSA9ICIzMmY2ZTI2MWQ1MmU1N2JmN2UxYzRkNDE1NDZkMTViOCIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICJiMzZhMWMyNDVmMmQzMDQ5NjVlYjRlMGE4Mjg0ODM3OTI0MWRjMDRiODY1YWZjYzRhYWIxNjc0ODU4N2UxOTIzIgogCiBpbmhlcml0IHB5cGkKIAotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1jb2RlY3MiCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tY29kZWNzIFwKKyAgICAke1BZVEhPTl9QTn0tanNvbiBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZXJremV1Zy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZXJremV1Zy5pbmMKaW5kZXggYjI5NDlhMy4uYzA0YTRlMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2Vya3pldWcuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlcmt6ZXVnLmluYwpAQCAtOCwxNSArOCwyMyBAQAogb2YgY29tbXVuaXR5IGNvbnRyaWJ1dGVkIGFkZG9uIG1vZHVsZXMuIgogSE9NRVBBR0UgPSAiaHR0cDovL3dlcmt6ZXVnLnBvY29vLm9yZy8iCiBMSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWE2OGY1MzYxYTJiMmNhOWZkZjI2YjM4YWFlY2I2ZmFhIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZWQ5YTBiN2MwMjU0NjE2ZDcyZGFkYjk4YjI5M2VmMWIiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJlMzg1YjJjNWE3MTkzY2ZmMjRjNjg5YjMxZTExMjRkYyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI5MDNhN2I4N2I3NDYzNTI0NDU0OGIzMGQzMGRiNGM4OTQ3ZmU2NGM1MTk4ZjU4ODk5ZGRjZDNhMTNjMjNiYjI2IgorU1JDX1VSSVttZDVzdW1dID0gIjZkMjBiNWJlMmQyNDViZTRhYzc3MDZjYzM5MGQxMzBjIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImMzZmQ3YTdkNDE5NzZkOWY0NGRiMzI3MjYwZTI2MzEzMjQ2NjgzNmNlZjZmOTE1MTI4ODllZDYwYWQyNjU1N2MiCiAKIFBZUElfUEFDS0FHRSA9ICJXZXJremV1ZyIKIAogQ0xFQU5CUk9LRU4gPSAiMSIKIAorUEFDS0FHRVMgPSsgIiR7UE59LXRlc3RzIgorRklMRVNfJHtQTn0tdGVzdHMrPSAiIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS93ZXJremV1Zy90ZXN0KiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vd2Vya3pldWcvX19weWNhY2hlX18vdGVzdCogXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3dlcmt6ZXVnL2NvbnRyaWIvdGVzdCogXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3dlcmt6ZXVnL2NvbnRyaWIvX19weWNhY2hlX18vdGVzdCogXAorIgorCiBSREVQRU5EU18ke1BOfSArPSAiIFwKICAgICAke1BZVEhPTl9QTn0tZGF0ZXRpbWUgXAogICAgICR7UFlUSE9OX1BOfS1kaWZmbGliIFwKQEAgLTI0LDExICszMiwxNiBAQAogICAgICR7UFlUSE9OX1BOfS1odG1sIFwKICAgICAke1BZVEhPTl9QTn0taW8gXAogICAgICR7UFlUSE9OX1BOfS1qc29uIFwKKyAgICAke1BZVEhPTl9QTn0tbmV0Y2xpZW50IFwKICAgICAke1BZVEhPTl9QTn0tbmV0c2VydmVyIFwKICAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCiAgICAgJHtQWVRIT05fUE59LXBrZ3V0aWwgXAogICAgICR7UFlUSE9OX1BOfS1wcHJpbnQgXAotICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKICAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKICAgICAke1BZVEhPTl9QTn0tdW5peGFkbWluIFwKICIKKworUkRFUEVORFNfJHtQTn0tdGVzdHMgPSAiIFwKKyAgICAke1BOfSBcCisgICAgJHtQWVRIT05fUE59LXVuaXR0ZXN0IFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlcmt6ZXVnXzAuMTIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlcmt6ZXVnXzAuMTIuMi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzg5MmYxMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZXJremV1Z18wLjEyLjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi13ZXJremV1Zy5pbmMKLQotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS16bGliIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2Vya3pldWdfMC4xNC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2Vya3pldWdfMC4xNC4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiNDExNjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZXJremV1Z18wLjE0LjEuYmIKQEAgLTAsMCArMSw3IEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24td2Vya3pldWcuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyAgICAke1BZVEhPTl9QTn0temxpYiBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13aG9vc2guaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2hvb3NoLmluYwppbmRleCAwYTJjZjNiLi5hNGNhNWRjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13aG9vc2guaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdob29zaC5pbmMKQEAgLTEyLDMgKzEyLDEzIEBACiAKIFBZUElfUEFDS0FHRSA9ICJXaG9vc2giCiBQWVBJX1BBQ0tBR0VfRVhUID0gInppcCIKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWVtYWlsIFwKKyAgICAke1BZVEhPTl9QTn0tbXVsdGlwcm9jZXNzaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tbmV0Y2xpZW50IFwKKyAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCisgICAgJHtQWVRIT05fUE59LXBpY2tsZSBcCisgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKKyAgICAke1BZVEhPTl9QTn0tc3RyaW5nb2xkIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdob29zaF8yLjcuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdob29zaF8yLjcuNC5iYgppbmRleCA0OGRmMzYwLi4zYjQyOTFmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13aG9vc2hfMi43LjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2hvb3NoXzIuNy40LmJiCkBAIC0xLDIgKzEsNiBAQAogaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKIHJlcXVpcmUgcHl0aG9uLXdob29zaC5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td3Rmb3Jtcy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13dGZvcm1zLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTY2OTdmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td3Rmb3Jtcy5pbmMKQEAgLTAsMCArMSwxNiBAQAorREVTQ1JJUFRJT04gPSAiQSBmbGV4aWJsZSBmb3JtcyB2YWxpZGF0aW9uIGFuZCByZW5kZXJpbmcgbGlicmFyeSBmb3IgcHl0aG9uIHdlYiBkZXZlbG9wbWVudC4iCitIT01FUEFHRSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL1dURm9ybXMiCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87bWQ1PWM0NTlhY2NjOTBjNmVkNmE5NDg3OGM4ZmUwNTM1YmUyIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNjkzOGE1NDFmYWZkMWExYWUyZjZiOWI4ODU4OGVlZjIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZmZkZjEwYmQxZmE1NjViODIzMzM4MGNiNzdhMzA0Y2QzNmZkNTVjNzMwMjNlOTFkNGI4MDNjOTZiYzExZDQ2ZiIKKworUFlQSV9QQUNLQUdFID0gIldURm9ybXMiCitQWVBJX1BBQ0tBR0VfRVhUID0gInppcCIKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tbmV0c2VydmVyIFwKKyAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCisgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td3Rmb3Jtc18yLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13dGZvcm1zXzIuMS5iYgppbmRleCA1ZGRjYjQ4Li5mZGIwMTVlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13dGZvcm1zXzIuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13dGZvcm1zXzIuMS5iYgpAQCAtMSwxOCArMSwyIEBACi1ERVNDUklQVElPTiA9ICJBIGZsZXhpYmxlIGZvcm1zIHZhbGlkYXRpb24gYW5kIHJlbmRlcmluZyBsaWJyYXJ5IGZvciBweXRob24gd2ViIGRldmVsb3BtZW50LiIKLUhPTUVQQUdFID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvV1RGb3JtcyIKLVNFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgotTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTzttZDU9YzQ1OWFjY2M5MGM2ZWQ2YTk0ODc4YzhmZTA1MzViZTIiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI2OTM4YTU0MWZhZmQxYTFhZTJmNmI5Yjg4NTg4ZWVmMiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmZmRmMTBiZDFmYTU2NWI4MjMzMzgwY2I3N2EzMDRjZDM2ZmQ1NWM3MzAyM2U5MWQ0YjgwM2M5NmJjMTFkNDZmIgotCi1QWVBJX1BBQ0tBR0UgPSAiV1RGb3JtcyIKLVBZUElfUEFDS0FHRV9FWFQgPSAiemlwIgotCiBpbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiXAotICAgICR7UFlUSE9OX1BOfS1uZXRzZXJ2ZXIgXAotICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKLSAgICAiCityZXF1aXJlIHB5dGhvbi13dGZvcm1zLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24teHN0YXRpYy1mb250LWF3ZXNvbWUuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24teHN0YXRpYy1mb250LWF3ZXNvbWUuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxM2NiODMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi14c3RhdGljLWZvbnQtYXdlc29tZS5pbmMKQEAgLTAsMCArMSwxNyBAQAorREVTQ1JJUFRJT04gPSAiRm9udCBBd2Vzb21lIGljb25zIHBhY2thZ2VkIGZvciBzZXR1cHRvb2xzIChlYXN5X2luc3RhbGwpIC8gcGlwLiIKK0hPTUVQQUdFID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvWFN0YXRpYy1Gb250LUF3ZXNvbWUiCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0xJQ0VOU0UgPSAiQXBhY2hlLTIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTzttZDU9MzEzZDAyMTg5ODY5NGNkMmIwZWE2NTA4YmRmZTUxYTIiCisKK1BZUElfUEFDS0FHRSA9ICJYU3RhdGljLUZvbnQtQXdlc29tZSIKKworaW5oZXJpdCBweXBpCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIxNDFhMGU5YTdlMjFlODJmOTIyNTczYTAwYWUwYzE2NiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlMDFmYjQ4MGNhYWE3Yzc5NjNkY2IzMzI4YTQ3MDBlNjMxYmVmNjA3MGRiMGU4YjY4NTgxNmQyMjBlNjg1ZjZjIgorCitERVBFTkRTICs9ICIgXAorICAgICAgICAke1BZVEhPTl9QTn0teHN0YXRpYyBcCisgICAgICAgICR7UFlUSE9OX1BOfS1waXAgXAorICAgICAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi14c3RhdGljLWZvbnQtYXdlc29tZV80LjcuMC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24teHN0YXRpYy1mb250LWF3ZXNvbWVfNC43LjAuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWU4NWY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24teHN0YXRpYy1mb250LWF3ZXNvbWVfNC43LjAuMC5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi14c3RhdGljLWZvbnQtYXdlc29tZS5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXhzdGF0aWMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24teHN0YXRpYy5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdjN2RiOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXhzdGF0aWMuaW5jCkBAIC0wLDAgKzEsMTQgQEAKK0RFU0NSSVBUSU9OID0gIlhTdGF0aWMgYmFzZSBwYWNrYWdlIHdpdGggbWluaW1hbCBzdXBwb3J0IGNvZGUiCitIT01FUEFHRSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL1hTdGF0aWMiCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FLnR4dDttZDU9MzZhMWU3ZWFhNzFlMWJkMDdiOGQyMjQ3ODM5ZjIyOGUiCisKK1BZUElfUEFDS0FHRSA9ICJYU3RhdGljIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNzA2NGI1ZWE3ZmQxZWU5OTBlMGFlMDUzODMwMWQ5YmMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMGVjOTNkN2M2NmViYjllMGQzMWI2NjQ3NTM0MzdkYzg2MzRjYjY2ZTEzMzEwY2I0N2M5ZWIxZTBiYzY2ZDcyNiIKKworREVQRU5EUyArPSAiIFwKKyAgICAgICAgJHtQWVRIT05fUE59LXBpcCBcCisgICAgICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXhzdGF0aWNfMS4wLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi14c3RhdGljXzEuMC4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwNzMwMzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi14c3RhdGljXzEuMC4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXhzdGF0aWMuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi15YXBwaS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi15YXBwaS5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUxY2U3NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXlhcHBpLmluYwpAQCAtMCwwICsxLDE2IEBACitTVU1NQVJZICA9ICJZZXQgQW5vdGhlciBQeXRob24gUHJvZmlsZXIiCitIT01FUEFHRSA9ICJodHRwOi8veWFwcGkuZ29vZ2xlY29kZS5jb20vIgorCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT02YjEzMWMzMDQxNjM3ZjZhNTE3NWE0MzExMmRkZTA1YyIKKworU1JDX1VSSVttZDVzdW1dID0gImRjNTYyNDA1NzVjOTk5MzhhOTI0ZWFlYjdjMGQ4YmViIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVmNjU3MTI5ZTFiOWI5NTIzNzlmZmJjMDA5MzU3ZDBkY2RiNThjNTBmM2JmZTg4ZmZiYjk5MmU0YjI3YjI2M2MiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKKyAgICAke1BZVEhPTl9QTn0tcGlja2xlIFwKKyAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKKyAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi15YXBwaV8wLjk4LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24teWFwcGlfMC45OC5iYgppbmRleCA1MTMwOGM4Li5hM2JkZGU1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi15YXBwaV8wLjk4LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXlhcHBpXzAuOTguYmIKQEAgLTEsMTUgKzEsMiBAQAotU1VNTUFSWSAgPSAiWWV0IEFub3RoZXIgUHl0aG9uIFByb2ZpbGVyIgotSE9NRVBBR0UgPSAiaHR0cDovL3lhcHBpLmdvb2dsZWNvZGUuY29tLyIKLQotTElDRU5TRSA9ICJNSVQiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTzttZDU9NmIxMzFjMzA0MTYzN2Y2YTUxNzVhNDMxMTJkZGUwNWMiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJkYzU2MjQwNTc1Yzk5OTM4YTkyNGVhZWI3YzBkOGJlYiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1ZjY1NzEyOWUxYjliOTUyMzc5ZmZiYzAwOTM1N2QwZGNkYjU4YzUwZjNiZmU4OGZmYmI5OTJlNGIyN2IyNjNjIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiXAotICAgICR7UFlUSE9OX1BOfS1waWNrbGUgXAotICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXAotICAgICIKK3JlcXVpcmUgcHl0aG9uLXlhcHBpLmluYworaW5oZXJpdCBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi16b3BlaW50ZXJmYWNlLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXpvcGVpbnRlcmZhY2UuaW5jCmluZGV4IDRiMzhhZWEuLjFmYWIyY2MgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXpvcGVpbnRlcmZhY2UuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXpvcGVpbnRlcmZhY2UuaW5jCkBAIC0xMSw2ICsxMSw4IEBACiAKIFJQUk9WSURFU18ke1BOfSArPSAiem9wZS1pbnRlcmZhY2VzIgogCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIiR7UFlUSE9OX1BOfS1kYXRldGltZSIKKwogRklMRVNfJHtQTn0tZGJnICs9ICIke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS8qLmVnZy8qLyovLmRlYnVnIgogRklMRVNfJHtQTn0tZGV2ICs9ICIke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS96b3BlL2ludGVyZmFjZS8qLmMiCiBGSUxFU18ke1BOfS1kb2MgKz0gIiR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3pvcGUvaW50ZXJmYWNlLyoudHh0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWFsZW1iaWNfMC45LjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYWxlbWJpY18wLjkuOC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjQ4ZmU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWFsZW1iaWNfMC45LjguYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWFsZW1iaWMuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXNuMWNyeXB0b18wLjI0LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXNuMWNyeXB0b18wLjI0LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZiZTU3NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hc24xY3J5cHRvXzAuMjQuMC5iYgpAQCAtMCwwICsxLDYgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWFzbjFjcnlwdG8uaW5jCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWFzdHJvaWRfMS41LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXN0cm9pZF8xLjYuMy5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWFzdHJvaWRfMS41LjMuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hc3Ryb2lkXzEuNi4zLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXR0cl8wLjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hdHRyXzAuMy4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4MDY0OGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXR0cl8wLjMuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWF0dHIuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXR0cnNfMTcuMy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWF0dHJzXzE3LjQuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWF0dHJzXzE3LjMuMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWF0dHJzXzE3LjQuMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWF1dG9tYXRfMC42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXV0b21hdF8wLjYuMC5iYgppbmRleCAwNDY5ZTYxLi4yYzc0NzY0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXV0b21hdF8wLjYuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXV0b21hdF8wLjYuMC5iYgpAQCAtMSw0ICsxLDIgQEAKIGluaGVyaXQgc2V0dXB0b29sczMKIHJlcXVpcmUgcHl0aG9uLWF1dG9tYXQuaW5jCi0KLVJERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tZW51bSAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbl8xLjIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hd3MtaW90LWRldmljZS1zZGstcHl0aG9uXzEuMy4xLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbl8xLjIuMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWF3cy1pb3QtZGV2aWNlLXNkay1weXRob25fMS4zLjEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1iYWJlbF8yLjUuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1iYWJlbF8yLjUuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDUwODRhYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYmFiZWxfMi41LjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLWluaGVyaXQgc2V0dXB0b29sczMKLXJlcXVpcmUgcHl0aG9uLWJhYmVsLmluYwotCi0jIFJlcXVpcmVzIF9weWRlY2ltYWwucHkgd2hpY2ggaXMgaW4gbWlzYwotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1taXNjIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWJhYmVsXzIuNS4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWJhYmVsXzIuNS4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3MTVkNTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYmFiZWxfMi41LjMuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1iYWJlbC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1iY3J5cHRfMy4xLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYmNyeXB0XzMuMS40LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYmNyeXB0XzMuMS4zLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYmNyeXB0XzMuMS40LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYmxpbmtlcl8xLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYmxpbmtlcl8xLjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI0YjNjZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1ibGlua2VyXzEuNC5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tYmxpbmtlci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jYW5fMi4wLjBiMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jYW5fMi4wLjBiMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTFkNDViOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2FuXzIuMC4wYjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLXJlcXVpcmUgcHl0aG9uLWNhbi5pbmMKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwotCi1SREVQRU5EU18ke1BOfSArPSAicHl0aG9uMy1zcWxpdGUzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNhbl8yLjEuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jYW5fMi4xLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFhOWU4MQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jYW5fMi4xLjAuYmIKQEAgLTAsMCArMSw3IEBACityZXF1aXJlIHB5dGhvbi1jYW4uaW5jCitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKKworUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWNvZGVjcyBcCisgICAgJHtQWVRIT05fUE59LWNvbXByZXNzaW9uIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jYXNzYW5kcmEtZHJpdmVyXzMuMTEuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jYXNzYW5kcmEtZHJpdmVyXzMuMTMuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNhc3NhbmRyYS1kcml2ZXJfMy4xMS4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2Fzc2FuZHJhLWRyaXZlcl8zLjEzLjAuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jZXJ0aWZpXzIwMTcuNy4yNy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNlcnRpZmlfMjAxOC4xLjE4LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2VydGlmaV8yMDE3LjcuMjcuMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNlcnRpZmlfMjAxOC4xLjE4LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2ZmaV8xLjExLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2ZmaV8xLjExLjUuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jZmZpXzEuMTEuMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNmZmlfMS4xMS41LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2xpY2tfNi43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNsaWNrXzYuNy5iYgppbmRleCBlY2QxNTE0Li4xOTIwNjQ0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2xpY2tfNi43LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jbGlja182LjcuYmIKQEAgLTEsNCArMSwyIEBACiBpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKIHJlcXVpcmUgcHl0aG9uLWNsaWNrLmluYwotCi1SREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWVudW0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY29uZmlncGFyc2VyXzMuNS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNvbmZpZ3BhcnNlcl8zLjUuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzBjYmE1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNvbmZpZ3BhcnNlcl8zLjUuMC5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWNvbmZpZ3BhcnNlci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jb3ZlcmFnZV80LjQuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jb3ZlcmFnZV80LjQuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFhNWM1OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY292ZXJhZ2VfNC40LjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1TVU1NQVJZID0gIkNvZGUgY292ZXJhZ2UgbWVhc3VyZW1lbnQgZm9yIFB5dGhvbiIKLUhPTUVQQUdFID0gImh0dHBzOi8vY292ZXJhZ2UucmVhZHRoZWRvY3MuaW8iCi1MSUNFTlNFID0gIkFwYWNoZS0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9MmVlNDExMTJhNDRmZTcwMTRkY2UzM2UyNjQ2OGJhOTMiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI0YzRkOTk3Y2IzMmJlNDcwM2YxZmRlNTRlNmNkMWIxYyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI3YTljNDQ0MDBlZTBmM2I0NTQ2MDY2ZTA3MTBlMTI1MGZkNzU4MzFhZGMwMmFiOTlkZGExNzZhZDg3MjZmNDI0IgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29sczMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNvdmVyYWdlXzQuNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNvdmVyYWdlXzQuNC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5ODNlMGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY292ZXJhZ2VfNC40LjIuYmIKQEAgLTAsMCArMSwxMCBAQAorU1VNTUFSWSA9ICJDb2RlIGNvdmVyYWdlIG1lYXN1cmVtZW50IGZvciBQeXRob24iCitIT01FUEFHRSA9ICJodHRwczovL2NvdmVyYWdlLnJlYWR0aGVkb2NzLmlvIgorTElDRU5TRSA9ICJBcGFjaGUtMi4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTJlZTQxMTEyYTQ0ZmU3MDE0ZGNlMzNlMjY0NjhiYTkzIgorCitTUkNfVVJJW21kNXN1bV0gPSAiMjlhOWZlODUzNzdlMGY3MzI3Y2Y1ZGIxZTMzNTQ4M2YiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzA5ZDkxYmQ3YTM1MDYzZWM3YTBlNGQ3NTY0NTQ4OGJmYWIzZjBiNjYzNzNlNzcyMmYyM2RhN2Y1YjBmMzRjYyIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jcnlwdG9ncmFwaHktdmVjdG9yc18yLjAuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jcnlwdG9ncmFwaHktdmVjdG9yc18yLjEuNC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNyeXB0b2dyYXBoeS12ZWN0b3JzXzIuMC4zLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY3J5cHRvZ3JhcGh5LXZlY3RvcnNfMi4xLjQuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jcnlwdG9ncmFwaHlfMi4wLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY3J5cHRvZ3JhcGh5XzIuMC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODA3MDQyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jcnlwdG9ncmFwaHlfMi4wLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1pbmhlcml0IHB5cGkgc2V0dXB0b29sczMKLXJlcXVpcmUgcHl0aG9uLWNyeXB0b2dyYXBoeS5pbmMKLQotU1JDX1VSSSArPSAiIFwKLSAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKLSIKLQotUkRFUEVORFNfJHtQTn0gKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LWxhbmcgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNyeXB0b2dyYXBoeV8yLjEuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jcnlwdG9ncmFwaHlfMi4xLjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTk1OTIzMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jcnlwdG9ncmFwaHlfMi4xLjQuYmIKQEAgLTAsMCArMSw4IEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWNyeXB0b2dyYXBoeS5pbmMKKworTERTSEFSRUQgKz0gIi1wdGhyZWFkIgorCitTUkNfVVJJICs9ICIgXAorICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWN5dGhvbl8wLjI3LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY3l0aG9uXzAuMjguMi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWN5dGhvbl8wLjI3LjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jeXRob25fMC4yOC4yLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGF0ZXV0aWxfMi42LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGF0ZXV0aWxfMi43LjIuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kYXRldXRpbF8yLjYuMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRhdGV1dGlsXzIuNy4yLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGVjb3JhdG9yXzQuMS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRlY29yYXRvcl80LjEuMi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzg0MGIyMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGVjb3JhdG9yXzQuMS4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMzCi1yZXF1aXJlIHB5dGhvbi1kZWNvcmF0b3IuaW5jCi0KLVJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiXAotICAgICR7UFlUSE9OX1BOfS1lbnVtIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kZWNvcmF0b3JfNC4zLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGVjb3JhdG9yXzQuMy4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NGNiZGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGVjb3JhdG9yXzQuMy4wLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tZGVjb3JhdG9yLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRqYW5nb18xLjExLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGphbmdvXzEuMTEuMTAuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kamFuZ29fMS4xMS41LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGphbmdvXzEuMTEuMTAuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kbnNweXRob25fMS4xNS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRuc3B5dGhvbl8xLjE1LjAuYmIKaW5kZXggMjYwMjRjNi4uY2U0ZGZkYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRuc3B5dGhvbl8xLjE1LjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRuc3B5dGhvbl8xLjE1LjAuYmIKQEAgLTEsOSArMSwyIEBACiBpbmhlcml0IHNldHVwdG9vbHMzCiByZXF1aXJlIHB5dGhvbi1kbnNweXRob24uaW5jCi0KLSMgUmVxdWlyZXMgX3B5ZGVjaW1hbC5weSB3aGljaCBpcyBpbiBtaXNjCi1SREVQRU5EU18ke1BOfSArPSAiIFwKLSAgICAke1BZVEhPTl9QTn0tZW51bSBcCi0gICAgJHtQWVRIT05fUE59LW1pc2MgXAotICAgICR7UFlUSE9OX1BOfS1zZWxlY3RvcnMgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRvbWluYXRlXzIuMy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRvbWluYXRlXzIuMy4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzMDRjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZG9taW5hdGVfMi4zLjEuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWRvbWluYXRlLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWVkaXRvcl8xLjAuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1lZGl0b3JfMS4wLjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFkMmI4NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1lZGl0b3JfMS4wLjMuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWVkaXRvci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1ldmRldl8wLjcuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1ldmRldl8wLjcuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTkyYjZlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWV2ZGV2XzAuNy4wLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1ldmRldi5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1iYWJlbF8wLjExLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stYmFiZWxfMC4xMS4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwNGU3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stYmFiZWxfMC4xMS4yLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1mbGFzay1iYWJlbC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1ib290c3RyYXBfMy4zLjcuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1ib290c3RyYXBfMy4zLjcuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzdjNzU0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLWJvb3RzdHJhcF8zLjMuNy4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1mbGFzay1ib290c3RyYXAuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stbG9naW5fMC40LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stbG9naW5fMC40LjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1sb2dpbl8wLjQuMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLWxvZ2luXzAuNC4xLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stbWFpbF8wLjkuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1tYWlsXzAuOS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiOTYzYmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stbWFpbF8wLjkuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tZmxhc2stbWFpbC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1taWdyYXRlXzIuMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLW1pZ3JhdGVfMi4xLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk4Y2JmZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1taWdyYXRlXzIuMS4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1mbGFzay1taWdyYXRlLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLW5hdl8wLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stbmF2XzAuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjUxMTUyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLW5hdl8wLjYuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLW5hdi5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1yZXN0ZnVsXzAuMy42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXJlc3RmdWxfMC4zLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJmZjU5YQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1yZXN0ZnVsXzAuMy42LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tZmxhc2stcmVzdGZ1bC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1zY3JpcHRfMi4wLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stc2NyaXB0XzIuMC42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmODg1MTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stc2NyaXB0XzIuMC42LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1mbGFzay1zY3JpcHQuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stc3FsYWxjaGVteV8yLjMuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1zcWxhbGNoZW15XzIuMy4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ZjQ1YmMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stc3FsYWxjaGVteV8yLjMuMi5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tZmxhc2stc3FsYWxjaGVteS5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay11cGxvYWRzXzAuMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXVwbG9hZHNfMC4yLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU4YzJhYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay11cGxvYWRzXzAuMi4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1mbGFzay11cGxvYWRzLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXVzZXJfMC42LjE5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXVzZXJfMC42LjE5LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MTAxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stdXNlcl8wLjYuMTkuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLXVzZXIuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2std3RmXzAuMTQuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay13dGZfMC4xNC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzYyYTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2std3RmXzAuMTQuMi5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tZmxhc2std3RmLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXhzdGF0aWNfMC4wLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2steHN0YXRpY18wLjAuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDEyYmVmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXhzdGF0aWNfMC4wLjEuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLXhzdGF0aWMuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZ3JlZW5sZXRfMC40LjEyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWdyZWVubGV0XzAuNC4xMy5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWdyZWVubGV0XzAuNC4xMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWdyZWVubGV0XzAuNC4xMy5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWh0bWw1bGliXzAuOTk5OTk5OTk5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWh0bWw1bGliXzEuMC4xLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaHRtbDVsaWJfMC45OTk5OTk5OTkuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1odG1sNWxpYl8xLjAuMS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWh5cGVybGlua18xNy4zLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaHlwZXJsaW5rXzE3LjMuMS5iYgppbmRleCAzZDMwYWYyLi43MDgxM2JmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaHlwZXJsaW5rXzE3LjMuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaHlwZXJsaW5rXzE3LjMuMS5iYgpAQCAtMSw0ICsxLDIgQEAKIGluaGVyaXQgc2V0dXB0b29sczMKIHJlcXVpcmUgcHl0aG9uLWh5cGVybGluay5pbmMKLQotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1zZWxlY3RvcnMgJHtQWVRIT05fUE59LWVudW0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaXNvcnRfNC4yLjE1LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWlzb3J0XzQuMy40LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaXNvcnRfNC4yLjE1LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaXNvcnRfNC4zLjQuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1pdHNkYW5nZXJvdXNfMC4yNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1pdHNkYW5nZXJvdXNfMC4yNC5iYgppbmRleCBjZDMwODI1Li5hNzFjMjBmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaXRzZGFuZ2Vyb3VzXzAuMjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWl0c2Rhbmdlcm91c18wLjI0LmJiCkBAIC0xLDIgKzEsNiBAQAogaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCiByZXF1aXJlIHB5dGhvbi1pdHNkYW5nZXJvdXMuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1jb21wcmVzc2lvbiBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtamF2YW9iai1weTNfMC4yLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtamF2YW9iai1weTNfMC4yLjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVjMjNiYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qYXZhb2JqLXB5M18wLjIuNC5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLWphdmFvYmotcHkzLmluYworaW5oZXJpdCBzZXR1cHRvb2xzMwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWppbmphMl8yLjEwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWppbmphMl8yLjEwLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxMTU2YjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtamluamEyXzIuMTAuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWppbmphMi5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qaW5qYTJfMi45LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtamluamEyXzIuOS42LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Mzc1ZjhjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qaW5qYTJfMi45LjYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwotcmVxdWlyZSBweXRob24tamluamEyLmluYwotCi0jIFJlcXVpcmVzIF9weWRlY2ltYWwgd2hpY2ggaXMgaW4gbWlzYwotUkRFUEVORFNfJHtQTn0gKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LW1pc2MgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWpzb25wYXRjaF8xLjIzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWpzb25wYXRjaF8xLjIzLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczZWZjZWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtanNvbnBhdGNoXzEuMjMuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1qc29ucGF0Y2guaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtanNvbnBvaW50ZXJfMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWpzb25wb2ludGVyXzIuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDBhMDliCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWpzb25wb2ludGVyXzIuMC5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWpzb25wb2ludGVyLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWpzb25zY2hlbWFfMi42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtanNvbnNjaGVtYV8yLjYuMC5iYgppbmRleCA1YWFlZTY4Li45MjY5OTA3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtanNvbnNjaGVtYV8yLjYuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtanNvbnNjaGVtYV8yLjYuMC5iYgpAQCAtMSw2ICsxLDIgQEAKIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwogcmVxdWlyZSBweXRob24tanNvbnNjaGVtYS5pbmMKLQotUkRFUEVORFNfJHtQTn0gKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LW1pc2MgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWxhbmd0YWJsZV8wLjAuMzcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbGFuZ3RhYmxlXzAuMC4zNy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzYyY2ExYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbGFuZ3RhYmxlXzAuMC4zNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLURFU0NSSVBUSU9OID0gImxhbmd0YWJsZSBpcyB1c2VkIHRvIGd1ZXNzIHJlYXNvbmFibGUgZGVmYXVsdHMgZm9yIGxvY2FsZSxcCi1rZXlib2FyZCwgdGVycml0b3J5IgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL21pa2UtZmFiaWFuL2xhbmd0YWJsZS8iCi1MSUNFTlNFID0gIkdQTHYzKyIKLVNFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLUIgPSAiJHtTfSIKLQotU1JDUkVWID0gIjNmMDAxZWVmMDI3YmE2OWVmMmZkYjM1YzY3MGI3ZGEyNmI3OWI1ZTIiCi1QViA9ICIwLjAuMzcrZ2l0JHtTUkNQVn0iCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbWlrZS1mYWJpYW4vbGFuZ3RhYmxlLmdpdDticmFuY2g9bWFzdGVyIFwKLSIKLQotaW5oZXJpdCBzZXR1cHRvb2xzMyBweXRob24zbmF0aXZlCi0KLURJU1RVVElMU19JTlNUQUxMX0FSR1MgPSAiLS1wcmVmaXg9JHtEfS8ke3ByZWZpeH0gXAotICAgIC0taW5zdGFsbC1kYXRhPSR7RH0vJHtkYXRhZGlyfS9sYW5ndGFibGUiCi0KLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9LyoiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbGFuZ3RhYmxlXzAuMC4zOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1sYW5ndGFibGVfMC4wLjM4LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjYTU4YzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbGFuZ3RhYmxlXzAuMC4zOC5iYgpAQCAtMCwwICsxLDI5IEBACitERVNDUklQVElPTiA9ICJsYW5ndGFibGUgaXMgdXNlZCB0byBndWVzcyByZWFzb25hYmxlIGRlZmF1bHRzIGZvciBsb2NhbGUsXAora2V5Ym9hcmQsIHRlcnJpdG9yeSIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9taWtlLWZhYmlhbi9sYW5ndGFibGUvIgorTElDRU5TRSA9ICJHUEx2MysiCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCitCID0gIiR7U30iCisKK1NSQ1JFViA9ICIzNTY4N2NhOTU3Yjc0NmYxNTNhNjg3MjEzOTQ2MmIxNDQzZjhjYWQxIgorUFYgPSAiMC4wLjM4K2dpdCR7U1JDUFZ9IgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL21pa2UtZmFiaWFuL2xhbmd0YWJsZS5naXQ7YnJhbmNoPW1hc3RlciBcCisiCisKK2luaGVyaXQgc2V0dXB0b29sczMgcHl0aG9uM25hdGl2ZQorCitESVNUVVRJTFNfSU5TVEFMTF9BUkdTID0gIi0tcHJlZml4PSR7RH0vJHtwcmVmaXh9IFwKKyAgICAtLWluc3RhbGwtZGF0YT0ke0R9LyR7ZGF0YWRpcn0vbGFuZ3RhYmxlIgorCitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS8qIgorCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tY29tcHJlc3Npb24gXAorICAgICR7UFlUSE9OX1BOfS1kb2N0ZXN0IFwKKyAgICAke1BZVEhPTl9QTn0tbG9nZ2luZyBcCisgICAgJHtQWVRIT05fUE59LXhtbCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbHhtbF80LjEuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1seG1sXzQuMi4xLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbHhtbF80LjEuMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWx4bWxfNC4yLjEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1tc2dwYWNrXzAuNC44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW1zZ3BhY2tfMC41LjYuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1tc2dwYWNrXzAuNC44LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbXNncGFja18wLjUuNi5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW11bHRpZGljdF8zLjIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1tdWx0aWRpY3RfMy4yLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2NTU2YjMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW11bHRpZGljdF8zLjIuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotU1VNTUFSWSA9ICJNdWx0aWRpY3RzIGFyZSB1c2VmdWwgZm9yIHdvcmtpbmcgd2l0aCBIVFRQIGhlYWRlcnMsIFVSTCBxdWVyeSBhcmdzIGV0Yy4iCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vYWlvLWxpYnMvbXVsdGlkaWN0LyIKLUxJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWU3NGM5OGFiZTBkZThmNzk4Y2E2MDkxMzdmOWNlZjRhIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29sczMKLQotU1JDX1VSSVttZDVzdW1dID0gImEwMWRhMzFjYTE4NTU1NTdhMWIyZTA1M2M5MzNhZjJmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImUyN2E3YTk1MzE3MzcxYzE1ZWNkYTcyMDZmNmU4YzE0NGYxMGEzMzdiYjJjM2U2MWI1MTc2ZGVhZmJiODhjYjIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbXVsdGlkaWN0XzMuMy4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW11bHRpZGljdF8zLjMuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjljZDU1NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1tdWx0aWRpY3RfMy4zLjIuYmIKQEAgLTAsMCArMSw5IEBACitTVU1NQVJZID0gIk11bHRpZGljdHMgYXJlIHVzZWZ1bCBmb3Igd29ya2luZyB3aXRoIEhUVFAgaGVhZGVycywgVVJMIHF1ZXJ5IGFyZ3MgZXRjLiIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9haW8tbGlicy9tdWx0aWRpY3QvIgorTElDRU5TRSA9ICJBcGFjaGUtMi4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZTc0Yzk4YWJlMGRlOGY3OThjYTYwOTEzN2Y5Y2VmNGEiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworCitTUkNfVVJJW21kNXN1bV0gPSAiMDZjYTkxZDk5M2RlMmQwNGM3ZWU2ZGYwY2JiNDRlYTIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjgyZTYxYzc0MDhlZDBkY2UxODYyMTAwZGI1NTU5NTQ4MTkxMWYxNTlkNmRkZWMwYjM3NWQzNWI2NDQ5NTA5YiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1uZGctaHR0cHNjbGllbnRfMC40LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbmRnLWh0dHBzY2xpZW50XzAuNC40LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbmRnLWh0dHBzY2xpZW50XzAuNC4zLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbmRnLWh0dHBzY2xpZW50XzAuNC40LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbnRwbGliXzAuMy4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW50cGxpYl8wLjMuMy5iYgppbmRleCAzNTQ0MGJjLi45M2RmODNhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbnRwbGliXzAuMy4zLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1udHBsaWJfMC4zLjMuYmIKQEAgLTEwLDMgKzEwLDUgQEAKIFMgPSAiJHtXT1JLRElSfS8ke1NSQ05BTUV9LSR7UFZ9IgogCiBpbmhlcml0IHNldHVwdG9vbHMzIHB5dGhvbjNuYXRpdmUgcHlwaQorCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWRhdGV0aW1lIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW9hdXRobGliXzIuMC42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW9hdXRobGliXzIuMC42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhMTNiNTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtb2F1dGhsaWJfMi4wLjYuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1vYXV0aGxpYi5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wYWhvLW1xdHRfMS4zLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGFoby1tcXR0XzEuMy4xLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGFoby1tcXR0XzEuMy4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGFoby1tcXR0XzEuMy4xLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGFuZGFzXzAuMjAuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wYW5kYXNfMC4yMi4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGFuZGFzXzAuMjAuMy5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBhbmRhc18wLjIyLjAuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wZXhwZWN0XzQuMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBleHBlY3RfNC41LjAuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wZXhwZWN0XzQuMi4xLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGV4cGVjdF80LjUuMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBpZF8yLjEuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1waWRfMi4xLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4OGQ5YTAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBpZF8yLjEuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVNVTU1BUlkgPSAiUGlkZmlsZSBmZWF0dXJpbmcgc3RhbGUgZGV0ZWN0aW9uIGFuZCBmaWxlLWxvY2tpbmcsIGNhbiBhbHNvIFwKLWJlIHVzZWQgYXMgY29udGV4dC1tYW5hZ2VyIG9yIGRlY29yYXRvciIKLUhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS90cmJzL3BpZC8iCi1MSUNFTlNFID0gIkFwYWNoZS0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT04M2Q1M2NiZDMxMDUwNjNmMjAzMDViYzMxMzQ2NGUyOSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjk2MzRiMWUzZDU0NTU0NGE5ZDQ5NmUyNWU0NTMwZDE0IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImI0NDMxNjlkM2RjMjEzOTc2OTViNGE4MjAxNmZhZGI0Y2ZkYjBlZDhiMmRkYjRhYWE0MjhlMTcwMWJiMzRlMWYiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwotCi1TUkNfVVJJICs9ICIgXAotICAgIGZpbGU6Ly8wMDAxLXJlbW92ZS1yZXF1aXJlbWVudC1vZi1ub3NlLnBhdGNoIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1waWRfMi4yLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGlkXzIuMi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MzgzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGlkXzIuMi4wLmJiCkBAIC0wLDAgKzEsMTQgQEAKK1NVTU1BUlkgPSAiUGlkZmlsZSBmZWF0dXJpbmcgc3RhbGUgZGV0ZWN0aW9uIGFuZCBmaWxlLWxvY2tpbmcsIGNhbiBhbHNvIFwKK2JlIHVzZWQgYXMgY29udGV4dC1tYW5hZ2VyIG9yIGRlY29yYXRvciIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS90cmJzL3BpZC8iCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT04M2Q1M2NiZDMxMDUwNjNmMjAzMDViYzMxMzQ2NGUyOSIKKworU1JDX1VSSVttZDVzdW1dID0gIjA0ZDMwMzA4MDEzZDE2YWE4ODJiMzgwNmZlZGE4YWIyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImQ4YmIyY2VlYzIxYTRhZTg0YmU2ZTlkMzIwZGIxZjU2OTM0YjMwZTY3NmUzMWM2ZjA5OGNhNzIxOGIzZDY3ZDQiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworCitTUkNfVVJJICs9ICIgXAorICAgIGZpbGU6Ly8wMDAxLXJlbW92ZS1yZXF1aXJlbWVudC1vZi1ub3NlLnBhdGNoIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wbHVnZ3lfMC42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGx1Z2d5XzAuNi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0MWU4ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGx1Z2d5XzAuNi4wLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tcGx1Z2d5LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBseV8zLjExLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBseV8zLjExLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNDEwYmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGx5XzMuMTEuYmIKQEAgLTAsMCArMSwyIEBACityZXF1aXJlIHB5dGhvbi1wbHkuaW5jCitpbmhlcml0IHNldHVwdG9vbHMzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHJldGVuZF8xLjAuOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wcmV0ZW5kXzEuMC45LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHJldGVuZF8xLjAuOC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXByZXRlbmRfMS4wLjkuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wcm9tcHQtdG9vbGtpdF8xLjAuMTUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHJvbXB0LXRvb2xraXRfMS4wLjE1LmJiCmluZGV4IGQ4ZjYzODkuLjBlOTk5MTcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wcm9tcHQtdG9vbGtpdF8xLjAuMTUuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXByb21wdC10b29sa2l0XzEuMC4xNS5iYgpAQCAtMyw3ICszLDUgQEAKIAogUkRFUEVORFNfJHtQTn0gKz0gIiBcCiAgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKLSAgICAke1BZVEhPTl9QTn0tZW51bSBcCiAgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKLSAgICAke1BZVEhPTl9QTn0tdGV4dHV0aWxzIFwKICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wcm90b2J1Zl8zLjQuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wcm90b2J1Zl8zLjUuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXByb3RvYnVmXzMuNC4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHJvdG9idWZfMy41LjIuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wc3V0aWxfNS4zLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHN1dGlsXzUuNC4zLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHN1dGlsXzUuMy4xLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHN1dGlsXzUuNC4zLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlfMS40LjM0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5XzEuNS4yLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlfMS40LjM0LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlfMS41LjIuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWFzbjEtbW9kdWxlc18wLjIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWFzbjEtbW9kdWxlc18wLjIuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjExODZmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5YXNuMS1tb2R1bGVzXzAuMi4xLmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24tcHlhc24xLW1vZHVsZXMuaW5jCitpbmhlcml0IHNldHVwdG9vbHMzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlhc24xXzAuMy42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5YXNuMV8wLjQuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5YXNuMV8wLjMuNi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5YXNuMV8wLjQuMi5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5YmluZDExXzIuMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5YmluZDExXzIuMi4yLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHliaW5kMTFfMi4yLjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWJpbmQxMV8yLjIuMi5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5Ymx1ZXpfMC4yMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWJsdWV6XzAuMjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTcxMmE3NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWJsdWV6XzAuMjIuYmIKQEAgLTAsMCArMSwyIEBACityZXF1aXJlIHB5dGhvbi1weWJsdWV6LmluYworaW5oZXJpdCBzZXR1cHRvb2xzMwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5Y3J5cHRvXzIuNi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5Y3J5cHRvXzIuNi4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyZDYzNGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHljcnlwdG9fMi42LjEuYmIKQEAgLTAsMCArMSw5IEBACitpbmhlcml0IGRpc3R1dGlsczMKK3JlcXVpcmUgcHl0aG9uLXB5Y3J5cHRvLmluYworCisjIFdlIGV4cGxpY2l0bHkgY2FsbCBkaXN0dXRpbHNfZG9faW5zdGFsbCwgc2luY2Ugd2Ugd2FudCBpdCB0byBydW4sIGJ1dAorIyAqZG9uJ3QqIHdhbnQgdGhlIGF1dG90b29scyBpbnN0YWxsIHRvIHJ1biwgc2luY2UgdGhpcyBwYWNrYWdlIGRvZXNuJ3QKKyMgcHJvdmlkZSBhICJtYWtlIGluc3RhbGwiIHRhcmdldC4KK2RvX2luc3RhbGwoKSB7CisgICAgICAgZGlzdHV0aWxzM19kb19pbnN0YWxsCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHljcnlwdG9kb21lXzMuNC4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWNyeXB0b2RvbWVfMy40LjExLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjMDYyZGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHljcnlwdG9kb21lXzMuNC4xMS5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLXB5Y3J5cHRvZG9tZS5pbmMKK2luaGVyaXQgc2V0dXB0b29sczMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWRidXNfMC42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlkYnVzXzAuNi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZDFjNjMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlkYnVzXzAuNi4wLmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24tcHlkYnVzLmluYworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlleHBlY3RfMS4wLjE3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5ZXhwZWN0XzEuMC4xNy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmQ1ODQwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5ZXhwZWN0XzEuMC4xNy5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLXB5ZXhwZWN0LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5aWZhY2VfMC4wLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlpZmFjZV8wLjAuNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjFlN2IxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5aWZhY2VfMC4wLjUuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1weWlmYWNlLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5amtzXzE3LjEuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWprc18xNy4xLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk4MmZjZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWprc18xNy4xLjEuYmIKQEAgLTAsMCArMSwyIEBACityZXF1aXJlIHB5dGhvbi1weWprcy5pbmMKK2luaGVyaXQgc2V0dXB0b29sczMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWp3dF8xLjYuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWp3dF8xLjYuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzE2ZDIyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5and0XzEuNi4xLmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24tcHlqd3QuaW5jCitpbmhlcml0IHNldHVwdG9vbHMzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlsaW50XzEuNy40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5bGludF8xLjguMy5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5bGludF8xLjcuNC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5bGludF8xLjguMy5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5bWlzcF8yLjQuODAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHltaXNwXzIuNC44OS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5bWlzcF8yLjQuODAuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW1pc3BfMi40Ljg5LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHltb25nb18zLjUuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW1vbmdvXzMuNS4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjAyY2FiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW1vbmdvXzMuNS4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCi1yZXF1aXJlIHB5dGhvbi1weW1vbmdvLmluYwotCi0jIFJlcXVpcmVzIF9weWRlY2ltYWwgd2hpY2ggaXMgaW4gbWlzYwotUkRFUEVORFNfJHtQWVRIT05fUE59LWJzb24gKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LWVudW0gXAotICAgICR7UFlUSE9OX1BOfS1taXNjIFwKLSAgICAke1BZVEhPTl9QTn0tc2VsZWN0b3JzIFwKLSAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHltb25nb18zLjYuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW1vbmdvXzMuNi4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNjRiMTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHltb25nb18zLjYuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tcHltb25nby5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW5ldGxpbnV4XzEuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW5ldGxpbnV4XzEuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNmQ5ZTNjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5bmV0bGludXhfMS4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tcHluZXRsaW51eC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW9wZW5zc2xfMTcuMy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5b3BlbnNzbF8xNy41LjAuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW9wZW5zc2xfMTcuMy4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlvcGVuc3NsXzE3LjUuMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5cGVyY2xpcF8xLjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXBlcmNsaXBfMS42LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU2Zjg4YgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXBlcmNsaXBfMS42LjAuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1weXBlcmNsaXAuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlyb3V0ZTJfMC4zLjIyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5cm91dGUyXzAuNC4yMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5cm91dGUyXzAuMy4yMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5cm91dGUyXzAuNC4yMS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5c2VyaWFsXzMuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXNlcmlhbF8zLjQuYmIKaW5kZXggNDRjMTM2OC4uMTdlZDNmOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5c2VyaWFsXzMuNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlzZXJpYWxfMy40LmJiCkBAIC01LDUgKzUsMyBAQAogICAgIHJtIC1mICR7RH0ke2JpbmRpcn0vbWluaXRlcm0ucHkKICAgICBybWRpciAke0R9JHtiaW5kaXJ9CiB9Ci0KLVJERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tZW51bSAke1BZVEhPTl9QTn0tc2VsZWN0b3JzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5c29ja3NfMS42LjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlzb2Nrc18xLjYuNy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhhYTAxYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlzb2Nrc18xLjYuNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCi1yZXF1aXJlIHB5dGhvbi1weXNvY2tzLmluYwotCi1SREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIlwKLSAgICAke1BZVEhPTl9QTn0tZW51bSBcCi0gICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCi0gICAgJHtQWVRIT05fUE59LXNlbGVjdG9ycyBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlzb2Nrc18xLjYuOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXNvY2tzXzEuNi44LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiZGEwNWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlzb2Nrc18xLjYuOC5iYgpAQCAtMCwwICsxLDYgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tcHlzb2Nrcy5pbmMKKworUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICJcCisgICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl0ZXN0LXJ1bm5lcl8yLjEyLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl0ZXN0LXJ1bm5lcl8zLjAuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXRlc3QtcnVubmVyXzIuMTIuMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dGVzdC1ydW5uZXJfMy4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl0ZXN0XzMuMi4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dGVzdF8zLjQuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dGVzdF8zLjIuMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dGVzdF8zLjQuMi5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dHpfMjAxNy4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dHpfMjAxOC40LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl0el8yMDE3LjIuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXR6XzIwMTguNC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dWRldl8wLjIxLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl1ZGV2XzAuMjEuMC5iYgppbmRleCAwMjkyNTU1Li5hNjJkOTQ0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl1ZGV2XzAuMjEuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl1ZGV2XzAuMjEuMC5iYgpAQCAtMSw4ICsxLDIgQEAKIHJlcXVpcmUgcHl0aG9uLXB5dWRldi5pbmMKLQotUkRFUEVORFNfJHtQTn0gPSAiXAotICAgICR7UFlUSE9OX1BOfS1sYW5nIFwKLSIKLQogaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXVzYl8xLjAuMGIyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dXNiXzEuMC4wYjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxM2U2ZjAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dXNiXzEuMC4wYjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWluaGVyaXQgZGlzdHV0aWxzMwotcmVxdWlyZSBweXRob24tcHl1c2IuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl1c2JfMS4wLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl1c2JfMS4wLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVjZWRlNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXVzYl8xLjAuMi5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLXB5dXNiLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXJlcXVlc3RzXzIuMTguNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1yZXF1ZXN0c18yLjE4LjQuYmIKaW5kZXggZDkxZDk5My4uMGEyNDEwZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXJlcXVlc3RzXzIuMTguNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcmVxdWVzdHNfMi4xOC40LmJiCkBAIC0xLDUgKzEsMiBAQAogaW5oZXJpdCBzZXR1cHRvb2xzMwogcmVxdWlyZSBweXRob24tcmVxdWVzdHMuaW5jCi0KLSMgQWRkIHRoZSBydW50aW1lIGRlcGVuZHMgZm9yIHNlbGVjdG9ycy5weQotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1taXNjIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXJvYm90ZnJhbWV3b3JrXzMuMC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXJvYm90ZnJhbWV3b3JrXzMuMC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNjEzYzMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcm9ib3RmcmFtZXdvcmtfMy4wLjIuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1yb2JvdGZyYW1ld29yay5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zY2FweV8wLjIzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNjYXB5XzAuMjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U3YmFmNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zY2FweV8wLjIzLmJiCkBAIC0wLDAgKzEsMTMgQEAKK0RFU0NSSVBUSU9OID0gIlBhY2tldCBjcmFmdGluZy9zZW5kaW5nL3NuaWZmaW5nLCBQQ0FQIHByb2Nlc3NpbmcgdG9vbCxcCitiYXNlZCBvbiBzY2FweSB3aXRoIHB5dGhvbjMgY29tcGF0aWJpbGl0eSIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3BoYWV0aG9uL3NjYXB5IgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT05NWVhNmVjZmMzNjBlYjQ3ZmU2ZjQ3MGFkNzM2ZDdjZCIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCisKK1BZUElfUEFDS0FHRSA9ICJzY2FweS1weXRob24zIgorCitTUkNfVVJJW21kNXN1bV0gPSAiODY0MmQwOWNhNzI3ZTdlMmI0NTUyMjNhZTk0MDU5YjciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiODc2MDk5MWE2NzE2MmY0M2FmNGQ5ZTY0ODI4YmNlZmMxMDBiYTg4ODU5Yjc1MTc3YWU5ZjdhY2U1NmU1ODE4NiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zY3J5cHRfMC44LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2NyeXB0XzAuOC42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0OTY2NTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2NyeXB0XzAuOC42LmJiCkBAIC0wLDAgKzEsMyBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMyBweXRob24zLWRpcgorcmVxdWlyZSBweXRob24tc2NyeXB0LmluYworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2VycGVudF8xLjIzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNlcnBlbnRfMS4yMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTk5ZGNmYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2VycGVudF8xLjIzLmJiCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMzCi1yZXF1aXJlIHB5dGhvbi1zZXJwZW50LmluYwotCi0jIFJlcXVpcmVzIF9weWRlY2ltYWwgd2hpY2ggaXMgaW4gbWlzYwotUkRFUEVORFNfJHtQTn0gKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LWVudW0gXAotICAgICR7UFlUSE9OX1BOfS1taXNjIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zZXJwZW50XzEuMjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2VycGVudF8xLjI0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMDRkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2VycGVudF8xLjI0LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tc2VycGVudC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zZXR1cHRvb2xzLXNjbV8xLjE1LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2V0dXB0b29scy1zY21fMS4xNS43LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2V0dXB0b29scy1zY21fMS4xNS42LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2V0dXB0b29scy1zY21fMS4xNS43LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2ltcGxlanNvbl8zLjExLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2ltcGxlanNvbl8zLjExLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NGJjMTUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNpbXBsZWpzb25fMy4xMS4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMzCi1yZXF1aXJlIHB5dGhvbi1zaW1wbGVqc29uLmluYwotCi0jIFJlcXVpcmVzIF9weWRlY2ltYWwgd2hpY2ggaXMgaW4gbWlzYwotUkRFUEVORFNfJHtQTn0gKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LW1pc2MgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNpbXBsZWpzb25fMy4xMy4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNpbXBsZWpzb25fMy4xMy4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZjQwNmMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2ltcGxlanNvbl8zLjEzLjIuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1zaW1wbGVqc29uLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNtYnVzXzMuMS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNtYnVzXzQuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNtYnVzXzMuMS4yLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc21idXNfNC4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3BlYWtsYXRlcl8xLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3BlYWtsYXRlcl8xLjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE0ZjY5OQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zcGVha2xhdGVyXzEuMy5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tc3BlYWtsYXRlci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zcWxhbGNoZW15XzEuMS4xNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zcWxhbGNoZW15XzEuMS4xNC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDFmMWU5Ny4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3FsYWxjaGVteV8xLjEuMTQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLWluaGVyaXQgc2V0dXB0b29sczMKLXJlcXVpcmUgcHl0aG9uLXNxbGFsY2hlbXkuaW5jCi0KLSMgUmVxdWlyZXMgX3B5ZGVjaW1hbC5weSB3aGljaCBpcyBpbiBtaXNjCi1SREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWVudW0gJHtQWVRIT05fUE59LW1pc2MiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3FsYWxjaGVteV8xLjEuMTcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3FsYWxjaGVteV8xLjEuMTcuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODZjZjllZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zcWxhbGNoZW15XzEuMS4xNy5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLXNxbGFsY2hlbXkuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3lzdGVtZF8yMzQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3lzdGVtZF8yMzQuYmIKaW5kZXggODQ1YjdkOS4uNTgwZDk5MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXN5c3RlbWRfMjM0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zeXN0ZW1kXzIzNC5iYgpAQCAtMSwxMyArMSwyIEBACi1TVU1NQVJZID0gIlB5dGhvbiBpbnRlcmZhY2UgZm9yIGxpYnN5c3RlbWQiCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vc3lzdGVtZC9weXRob24tc3lzdGVtZCIKLUxJQ0VOU0UgPSAiTEdQTHYyLjErIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTRmYmQ2NTM4MGNkZDI1NTk1MTA3OTAwOGIzNjQ1MTZjIgotCi1QWVBJX1BBQ0tBR0UgPSAic3lzdGVtZC1weXRob24iCi1ERVBFTkRTICs9ICJzeXN0ZW1kICg8PTIzNCkiCi1SREVQRU5EU18ke1BOfSArPSAic3lzdGVtZCIKLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJzeXN0ZW1kIgotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzIGRpc3Ryb19mZWF0dXJlc19jaGVjawotCi1TUkNfVVJJW21kNXN1bV0gPSAiNTA3MWVhNWJjYjk3NjE4NmU5MmEzZjVlNzVkZjIyMWQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZmQwZTQ0YmY3MGVhZGFlNDVhYWRjMjkyY2IwYTdlYjViMGI2MzcyY2QxYjM5MTIyODA0N2QzMzg5NWRiODNlNyIKK3JlcXVpcmUgcHl0aG9uLXN5c3RlbWQuaW5jCitpbmhlcml0IHNldHVwdG9vbHMzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdG9ybmFkb180LjUuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy10b3JuYWRvXzQuNS4zLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdG9ybmFkb180LjUuMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXRvcm5hZG9fNC41LjMuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy10d2lzdGVkXzE3LjkuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy10d2lzdGVkXzE3LjkuMC5iYgppbmRleCBkNzUzM2Q4Li42YmQ4YzUyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdHdpc3RlZF8xNy45LjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXR3aXN0ZWRfMTcuOS4wLmJiCkBAIC0xLDcgKzEsNyBAQAogaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCiByZXF1aXJlIHB5dGhvbi10d2lzdGVkLmluYwogCi1SREVQRU5EU18ke1BOfS1jb3JlICs9ICJweXRob24zLWxhbmciCitQQUNLQUdFU19yZW1vdmUgPSAiJHtQTn0tc3JjIgogCiBGSUxFU18ke1BOfS1jb3JlX2FwcGVuZCArPSAiIFwKICAgJHtsaWJkaXJ9LyR7UFlUSE9OX0RJUn0vc2l0ZS1wYWNrYWdlcy90d2lzdGVkL19fcHljYWNoZV9fIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy10d29maXNoXzAuMy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXR3b2Zpc2hfMC4zLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU5M2Y2ZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy10d29maXNoXzAuMy4wLmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24tdHdvZmlzaC5pbmMKK2luaGVyaXQgc2V0dXB0b29sczMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy11bmlkaWZmXzAuNS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXVuaWRpZmZfMC41LjUuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy11bmlkaWZmXzAuNS40LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdW5pZGlmZl8wLjUuNS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXZjdmVyc2lvbmVyXzIuMTYuMC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXZjdmVyc2lvbmVyXzIuMTYuMC4wLmJiCmluZGV4IDE4OWE2NWEuLmY2MzcyYzggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy12Y3ZlcnNpb25lcl8yLjE2LjAuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdmN2ZXJzaW9uZXJfMi4xNi4wLjAuYmIKQEAgLTE3LDggKzE3LDQgQEAKICAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS92Y3ZlcnNpb25lciouZWdnICR7RH0vJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vCiB9CiAKLVJERVBFTkRTXyR7UE59ICs9ICJcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAotICAgICIKLQogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdmlzaXRvcl8wLjEuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy12aXNpdG9yXzAuMS4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5YmM1MWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdmlzaXRvcl8wLjEuMy5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tdmlzaXRvci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy13ZWJjb2xvcnNfMS43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXdlYmNvbG9yc18xLjguMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXdlYmNvbG9yc18xLjcuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy13ZWJjb2xvcnNfMS44LjEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy13ZWJzb2NrZXRzXzQuMC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXdlYnNvY2tldHNfNC4wLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE0MTI5YwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy13ZWJzb2NrZXRzXzQuMC4xLmJiCkBAIC0wLDAgKzEsMTYgQEAKK1NVTU1BUlkgPSAiQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFdlYlNvY2tldCBQcm90b2NvbCAoUkZDIDY0NTUpIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2FhdWd1c3Rpbi93ZWJzb2NrZXRzIgorCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTUwNzAyNTY3MzhjMDZkMmU1OWFkYmVjMWY0MDU3ZGFjIgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKKworU1JDX1VSSVttZDVzdW1dID0gIjllOGM2YjNjNzBkZWY0MTQ2ZDc1ZmJiMGY1MmJkZmM3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImRhNGQ0ZmJlMDU5YjA0NTNlNzI2ZDZkOTkzNzYwMDY1ZDY5YjgyM2EyN2VmYzMwNDA0MDJhNmZjZmU2YTFlZDkiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKKworUkRFUEVORFNfJHtQTn0gPSAiXAorICAgICR7UFlUSE9OX1BOfS1hc3luY2lvIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy13ZXJremV1Z18wLjEyLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtd2Vya3pldWdfMC4xNC4xLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtd2Vya3pldWdfMC4xMi4yLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtd2Vya3pldWdfMC4xNC4xLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtd3Rmb3Jtc18yLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtd3Rmb3Jtc18yLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWRkNTljZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy13dGZvcm1zXzIuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24td3Rmb3Jtcy5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy14c3RhdGljLWZvbnQtYXdlc29tZV80LjcuMC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXhzdGF0aWMtZm9udC1hd2Vzb21lXzQuNy4wLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM5ZjgwZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy14c3RhdGljLWZvbnQtYXdlc29tZV80LjcuMC4wLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi14c3RhdGljLWZvbnQtYXdlc29tZS5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy14c3RhdGljXzEuMC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXhzdGF0aWNfMS4wLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZjYjcwMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy14c3RhdGljXzEuMC4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi14c3RhdGljLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXlhcHBpXzAuOTguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMteWFwcGlfMC45OC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2RhNWI2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXlhcHBpXzAuOTguYmIKQEAgLTAsMCArMSwyIEBACityZXF1aXJlIHB5dGhvbi15YXBwaS5pbmMKK2luaGVyaXQgc2V0dXB0b29sczMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tYmxpdmV0L3B5dGhvbjMtYmxpdmV0LzAwMTQtaW52b2tpbmctZGQtd2l0aC1pbmZpbml0ZS10aW1lb3V0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1ibGl2ZXQvcHl0aG9uMy1ibGl2ZXQvMDAxNC1pbnZva2luZy1kZC13aXRoLWluZmluaXRlLXRpbWVvdXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJhOWU0ZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tYmxpdmV0L3B5dGhvbjMtYmxpdmV0LzAwMTQtaW52b2tpbmctZGQtd2l0aC1pbmZpbml0ZS10aW1lb3V0LnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK0Zyb20gOTJmZTdkZmQwMTEzMWM5M2E5YjIwMTNjYWJmNzdkNWY0NjkwMGZhYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFR1ZSwgNiBNYXIgMjAxOCAxNzoyODo1NiArMDgwMAorU3ViamVjdDogW1BBVENIXSBpbnZva2luZyBkZCB3aXRoIGluZmluaXRlIHRpbWVvdXQKKworVGhpcyBsYXJnZSB0aW1lb3V0IGlzIG5lZWRlZCB3aGVuIHJ1bm5pbmcgb24gbWFjaGluZXMgd2l0aAorbG90cyBvZiBkaXNrcywgb3Igd2l0aCBzbG93IGRpc2tzLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgorLS0tCisgYmxpdmV0L2RldmljZXMvcGFydGl0aW9uLnB5IHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvYmxpdmV0L2RldmljZXMvcGFydGl0aW9uLnB5IGIvYmxpdmV0L2RldmljZXMvcGFydGl0aW9uLnB5CitpbmRleCBhNzM3MmZiLi44OTQ3NDcyIDEwMDY0NAorLS0tIGEvYmxpdmV0L2RldmljZXMvcGFydGl0aW9uLnB5CisrKysgYi9ibGl2ZXQvZGV2aWNlcy9wYXJ0aXRpb24ucHkKK0BAIC01OTQsNyArNTk0LDcgQEAgY2xhc3MgUGFydGl0aW9uRGV2aWNlKFN0b3JhZ2VEZXZpY2UpOgorICAgICAgICAgY21kID0gWyJkZCIsICJpZj0vZGV2L3plcm8iLCAib2Y9JXMiICUgZGV2aWNlLCAiYnM9JWQiICUgYnMsCisgICAgICAgICAgICAgICAgInNlZWs9JWQiICUgc3RhcnQsICJjb3VudD0lZCIgJSBjb3VudF0KKyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICB1dGlsLnJ1bl9wcm9ncmFtKGNtZCkKKysgICAgICAgICAgICB1dGlsLnJ1bl9wcm9ncmFtKGNtZCwgdGltZW91dD0tMSkKKyAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgICAgICAgbG9nLmVycm9yKHN0cihlKSkKKyAgICAgICAgIGZpbmFsbHk6CistLSAKKzEuOC4zLjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1ibGl2ZXQvcHl0aG9uMy1ibGl2ZXRfMi4yLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLWJsaXZldC9weXRob24zLWJsaXZldF8yLjIuMC5iYgppbmRleCBjYWNjYTY3Li40NmRjMzJkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLWJsaXZldC9weXRob24zLWJsaXZldF8yLjIuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLWJsaXZldC9weXRob24zLWJsaXZldF8yLjIuMC5iYgpAQCAtMjMsNiArMjMsNyBAQAogICAgICAgICAgICBmaWxlOi8vMDAxMS1pbnZva2luZy1mc2NrLXdpdGgtaW5maW5pdGUtdGltZW91dC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDEyLWludm9raW5nLW1rZnMtd2l0aC1pbmZpbml0ZS10aW1lb3V0LnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMTMtUmV2ZXJ0LUFkYXB0LXRvLWxvZ2dpbmctbW9kdWxlLW5hbWUtY2hhbmdlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMTQtaW52b2tpbmctZGQtd2l0aC1pbmZpbml0ZS10aW1lb3V0LnBhdGNoIFwKICIKIAogaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tYmxpdmV0L3B5dGhvbjMtYmxpdmV0Z3VpXzIuMS41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1ibGl2ZXQvcHl0aG9uMy1ibGl2ZXRndWlfMi4xLjUuYmIKaW5kZXggYWM1MDdjYS4uMjhjMjU2NSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1ibGl2ZXQvcHl0aG9uMy1ibGl2ZXRndWlfMi4xLjUuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1ibGl2ZXQvcHl0aG9uMy1ibGl2ZXRndWlfMi4xLjUuYmIKQEAgLTEzLDcgKzEzLDcgQEAKICIKIAogaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJzeXN0ZW1kIgorUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSBzeXN0ZW1kIgogCiBpbmhlcml0IHNldHVwdG9vbHMzIHB5dGhvbjNuYXRpdmUKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1tZWgvcHl0aG9uMy1tZWhfMC40NS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tbWVoL3B5dGhvbjMtbWVoXzAuNDUuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhY2U0OTcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1tZWgvcHl0aG9uMy1tZWhfMC40NS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVNVTU1BUlkgPSAiQSBweXRob24gbGlicmFyeSBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyIKLURFU0NSSVBUSU9OID0gIlRoZSBweXRob24tbWVoIHBhY2thZ2UgaXMgYSBweXRob24gbGlicmFyeSBmb3IgaGFuZGxpbmcsIHNhdmluZywgYW5kIHJlcG9ydGluZyBcCi1leGNlcHRpb25zLiIKLUhPTUVQQUdFID0gImh0dHA6Ly9naXQuZmVkb3JhaG9zdGVkLm9yZy9naXQvP3A9cHl0aG9uLW1laC5naXQiCi1MSUNFTlNFID0gIkdQTHYyKyIKLQotaW5oZXJpdCBzZXR1cHRvb2xzMwotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vcmhpbnN0YWxsZXIvcHl0aG9uLW1laC5naXQ7cHJvdG9jb2w9aHR0cHM7YnJhbmNoPW1hc3RlciBcCi0iCi1TUkNSRVYgPSAiMmJmYzc1MWZkNjgwNTE1ZDQ0ZjcwOTY5NDVhMWUyODJhMWY3ZDZhYSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS8qIgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLW1laC9weXRob24zLW1laF8wLjQ2LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1tZWgvcHl0aG9uMy1tZWhfMC40Ni5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGUyY2JkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1tZWgvcHl0aG9uMy1tZWhfMC40Ni5iYgpAQCAtMCwwICsxLDE3IEBACitTVU1NQVJZID0gIkEgcHl0aG9uIGxpYnJhcnkgZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMiCitERVNDUklQVElPTiA9ICJUaGUgcHl0aG9uLW1laCBwYWNrYWdlIGlzIGEgcHl0aG9uIGxpYnJhcnkgZm9yIGhhbmRsaW5nLCBzYXZpbmcsIGFuZCByZXBvcnRpbmcgXAorZXhjZXB0aW9ucy4iCitIT01FUEFHRSA9ICJodHRwOi8vZ2l0LmZlZG9yYWhvc3RlZC5vcmcvZ2l0Lz9wPXB5dGhvbi1tZWguZ2l0IgorTElDRU5TRSA9ICJHUEx2MisiCisKK2luaGVyaXQgc2V0dXB0b29sczMKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3JoaW5zdGFsbGVyL3B5dGhvbi1tZWguZ2l0O3Byb3RvY29sPWh0dHBzO2JyYW5jaD1tYXN0ZXIgXAorIgorU1JDUkVWID0gImJiMTE1NjcyOGE0Zjc2ZTVlMzYzOGFiMjBiOTQ1NGExNTY4YTk5ZGIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vKiIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24tcHlwYXJ0ZWQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24tcHlwYXJ0ZWQuaW5jCmluZGV4IDY1ZjhjYTEuLmEwZWMwMjggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uLXB5cGFydGVkLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbi1weXBhcnRlZC5pbmMKQEAgLTYsMTYgKzYsMTcgQEAKIExJQ0VOU0UgPSAiR1BMLTIuMCsiCiBMSUNfRklMRVNfQ0hLU1VNID0gIlwKICAgICBmaWxlOi8vQ09QWUlORzttZDU9OGNhNDNjYmM4NDJjMjMzNmU4MzU5MjZjMjE2NmMyOGIgXAotICAgIGZpbGU6Ly9zcmMvX3BlZG1vZHVsZS5jO3N0YXJ0bGluZT0xMDtlbmRsaW5lPTIyO21kNT1lYmNiMjVkZGUxYWM5YzQ2ZTk4NmRlYzc5YjQwNGU3ZSBcCisgICAgZmlsZTovL3NyYy9fcGVkbW9kdWxlLmM7YmVnaW5saW5lPTEwO2VuZGxpbmU9MjI7bWQ1PTllNTMzMDRkYjgxMmI4MGQwOTM5ZTExYmI2OWRjYWIyIFwKICIKIERFUEVORFMgKz0gInBhcnRlZCIKIAogIyB1cHN0cmVhbSBvbmx5IHB1Ymxpc2hlcyByZWxlYXNlcyBpbiBnaXRodWIgYXJjaGl2ZXMgd2hpY2ggYXJlIGRpc2NvdXJhZ2VkCi1TUkNSRVYgPSAiNjljNGE0NzhlNDNkM2VmZjZhZTNhMDExNmZhMzhkYTA2Nzc2ZDVmNSIKLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9yaGluc3RhbGxlci9weXBhcnRlZC5naXQ7cHJvdG9jb2w9aHR0cHMgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1maXgtdmVyc2lvbi1mbG9hdC1jaGVjay5wYXRjaCBcCi0iCitTUkNSRVYgPSAiMWZkYjE1MTIwZjM1ZjVkYTFkYzdlYzExNjUyMmYwYzc5NmE4Mzc2YSIKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9yaGluc3RhbGxlci9weXBhcnRlZC5naXQ7cHJvdG9jb2w9aHR0cHMiCisKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKLVJERVBFTkRTXyR7UE59ICs9ICJwYXJ0ZWQgKD49IDIuMykiCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIiBcCisgICAgcGFydGVkICg+PSAyLjMpIFwKKyIKIFJERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbi1weXBhcnRlZC8wMDAxLWZpeC12ZXJzaW9uLWZsb2F0LWNoZWNrLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24tcHlwYXJ0ZWQvMDAwMS1maXgtdmVyc2lvbi1mbG9hdC1jaGVjay5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGIzYWI5Zi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbi1weXBhcnRlZC8wMDAxLWZpeC12ZXJzaW9uLWZsb2F0LWNoZWNrLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotY2hlY2tfbW9kX3ZlcnNpb24gYnJlYWtzIGlmIG1vZHVsZSB2ZXJzaW9uIGlzIG9mIHgueS56IGZvcm0KLXVzZSBhIHJlZ2V4IHRvIGhlbHAgY2FzdCB4LnkueiB2ZXJzaW9uIHRvIGEgZmxvYXQKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLUluZGV4OiBnaXQvc2V0dXAucHkKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnaXQub3JpZy9zZXR1cC5weQotKysrIGdpdC9zZXR1cC5weQotQEAgLTI1LDYgKzI1LDcgQEAgaW1wb3J0IGdsb2IKLSBpbXBvcnQgb3MKLSBpbXBvcnQgcGxhdGZvcm0KLSBpbXBvcnQgc3lzCi0raW1wb3J0IHJlCi0gZnJvbSBkaXN0dXRpbHMuY2NvbXBpbGVyIGltcG9ydCBuZXdfY29tcGlsZXIKLSBmcm9tIGRpc3R1dGlscy5lcnJvcnMgaW1wb3J0IENvbXBpbGVFcnJvcgotIGZyb20gZGlzdHV0aWxzLmVycm9ycyBpbXBvcnQgTGlua0Vycm9yCi1AQCAtNTEsNiArNTIsOCBAQCBkZWYgcGtnY29uZmlnKCpwYWNrYWdlcywgKiprd2FyZ3MpOgotIAotIGRlZiBjaGVja19tb2RfdmVyc2lvbihtb2R1bGUsIHZlcnNpb24pOgotICAgICBtb2R2ZXJzaW9uID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWyJwa2ctY29uZmlnIiwgIi0tbW9kdmVyc2lvbiIsIG1vZHVsZV0pCi0rICAgIG1hdGNoID0gcmUuc2VhcmNoKCcoWzAtOV0rXC5bMC05XSspJywgbW9kdmVyc2lvbikKLSsgICAgbW9kdmVyc2lvbiA9IG1hdGNoLmdyb3VwKDApCi0gICAgIGlmIG5vdCBmbG9hdChtb2R2ZXJzaW9uKSA+PSBmbG9hdCh2ZXJzaW9uKToKLSAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIioqKiBNaW5pbXVtIHJlcXVpcmVkICVzIHZlcnNpb246ICVzLCBmb3VuZDogJXNcbiIgJSAobW9kdWxlLCB2ZXJzaW9uLCBtb2R2ZXJzaW9uLCkpCi0gICAgICAgICBzeXMuZXhpdCgxKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24tcHlwYXJ0ZWRfMy4xMC43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24tcHlwYXJ0ZWRfMy4xMC43LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTE1YTg5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uLXB5cGFydGVkXzMuMTAuNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLXJlcXVpcmUgcHl0aG9uLXB5cGFydGVkLmluYwotCi1ERVBFTkRTICs9ICJweXRob24tcmUiCi0KLVBWID0gIjMuMTAuNytnaXQke1NSQ1BWfSIKLQotaW5oZXJpdCBkaXN0dXRpbHMKLQotUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi1zdHJpbmdvbGQgcHl0aG9uLWNvZGVjcyBweXRob24tbWF0aCIKLVJERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24tcHlwYXJ0ZWRfMy4xMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24tcHlwYXJ0ZWRfMy4xMS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMDBmZDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbi1weXBhcnRlZF8zLjExLjEuYmIKQEAgLTAsMCArMSwxMCBAQAorcmVxdWlyZSBweXRob24tcHlwYXJ0ZWQuaW5jCisKK1BWID0gIjMuMTAuNytnaXQke1NSQ1BWfSIKKworaW5oZXJpdCBkaXN0dXRpbHMKKworUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi1zdHJpbmdvbGQgcHl0aG9uLWNvZGVjcyBweXRob24tbWF0aCBweXRob24tc3VicHJvY2VzcyIKK1JERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24zLXB5cGFydGVkLzAwMDEtZml4LXZlcnNpb24tZmxvYXQtY2hlY2sucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbjMtcHlwYXJ0ZWQvMDAwMS1maXgtdmVyc2lvbi1mbG9hdC1jaGVjay5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTRmYjBiYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbjMtcHlwYXJ0ZWQvMDAwMS1maXgtdmVyc2lvbi1mbG9hdC1jaGVjay5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLWNoZWNrX21vZF92ZXJzaW9uIGJyZWFrcyBpZiBtb2R1bGUgdmVyc2lvbiBpcyBvZiB4LnkueiBmb3JtCi11c2UgYSByZWdleCB0byBoZWxwIGNhc3QgeC55LnogdmVyc2lvbiB0byBhIGZsb2F0Ci0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1JbmRleDogZ2l0L3NldHVwLnB5Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2l0Lm9yaWcvc2V0dXAucHkKLSsrKyBnaXQvc2V0dXAucHkKLUBAIC0yNSw2ICsyNSw3IEBAIGltcG9ydCBnbG9iCi0gaW1wb3J0IG9zCi0gaW1wb3J0IHBsYXRmb3JtCi0gaW1wb3J0IHN5cwotK2ltcG9ydCByZQotIGZyb20gZGlzdHV0aWxzLmNjb21waWxlciBpbXBvcnQgbmV3X2NvbXBpbGVyCi0gZnJvbSBkaXN0dXRpbHMuZXJyb3JzIGltcG9ydCBDb21waWxlRXJyb3IKLSBmcm9tIGRpc3R1dGlscy5lcnJvcnMgaW1wb3J0IExpbmtFcnJvcgotQEAgLTUxLDYgKzUyLDggQEAgZGVmIHBrZ2NvbmZpZygqcGFja2FnZXMsICoqa3dhcmdzKToKLSAKLSBkZWYgY2hlY2tfbW9kX3ZlcnNpb24obW9kdWxlLCB2ZXJzaW9uKToKLSAgICAgbW9kdmVyc2lvbiA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KFsicGtnLWNvbmZpZyIsICItLW1vZHZlcnNpb24iLCBtb2R1bGVdKQotKyAgICBtYXRjaCA9IHJlLnNlYXJjaChiJyhbMC05XStcLlswLTldKyknLCBtb2R2ZXJzaW9uKQotKyAgICBtb2R2ZXJzaW9uID0gbWF0Y2guZ3JvdXAoMCkKLSAgICAgaWYgbm90IGZsb2F0KG1vZHZlcnNpb24pID49IGZsb2F0KHZlcnNpb24pOgotICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiKioqIE1pbmltdW0gcmVxdWlyZWQgJXMgdmVyc2lvbjogJXMsIGZvdW5kOiAlc1xuIiAlIChtb2R1bGUsIHZlcnNpb24sIG1vZHZlcnNpb24sKSkKLSAgICAgICAgIHN5cy5leGl0KDEpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbjMtcHlwYXJ0ZWRfMy4xMC43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24zLXB5cGFydGVkXzMuMTAuNy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmY3MmMyYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbjMtcHlwYXJ0ZWRfMy4xMC43LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotcmVxdWlyZSBweXRob24tcHlwYXJ0ZWQuaW5jCi0KLURFUEVORFMgKz0gInB5dGhvbjMtcmUiCi0KLVBWID0gIjMuMTAuNytnaXQke1NSQ1BWfSIKLQotaW5oZXJpdCBkaXN0dXRpbHMzCi0KLVJERVBFTkRTXyR7UE59ICs9ICJweXRob24zLXN0cmluZ29sZCBweXRob24zLWNvZGVjcyBweXRob24zLW1hdGgiCi1SREVQRU5EU18ke1BOfV9jbGFzcy1uYXRpdmUgPSAiIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uMy1weXBhcnRlZF8zLjExLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbjMtcHlwYXJ0ZWRfMy4xMS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkNmY5N2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbjMtcHlwYXJ0ZWRfMy4xMS4xLmJiCkBAIC0wLDAgKzEsMTAgQEAKK3JlcXVpcmUgcHl0aG9uLXB5cGFydGVkLmluYworCitQViA9ICIzLjEwLjcrZ2l0JHtTUkNQVn0iCisKK2luaGVyaXQgZGlzdHV0aWxzMworCitSREVQRU5EU18ke1BOfSArPSAicHl0aG9uMy1zdHJpbmdvbGQgcHl0aG9uMy1jb2RlY3MgcHl0aG9uMy1tYXRoIgorUkRFUEVORFNfJHtQTn1fY2xhc3MtbmF0aXZlID0gIiIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL1JFQURNRSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvUkVBRE1FCmluZGV4IGYyOTI4YWIuLjdiNjA2MzAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvUkVBRE1FCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvUkVBRE1FCkBAIC0xMywxNCArMTMsMTQgQEAKIAogVVJJOiBnaXQ6Ly9naXRodWIuY29tL29wZW5lbWJlZGRlZC9vZS1jb3JlLmdpdAogc3ViZGlyZWN0b3J5OiBtZXRhCi1icmFuY2g6IHJvY2tvIAorYnJhbmNoOiBtYXN0ZXIKIHJldmlzaW9uOiBIRUFECiAKIEZvciBzb21lIHJlY2lwZXMsIHRoZSBtZXRhLW9lIGxheWVyIGlzIHJlcXVpcmVkOgogCiBVUkk6IGdpdDovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL21ldGEtb2UuZ2l0CiBzdWJkaXJlY3Rvcnk6IG1ldGEtb2UKLWJyYW5jaDogcm9ja28gCiticmFuY2g6IG1hc3RlcgogcmV2aXNpb246IEhFQUQKIAogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvY29uZi9sYXllci5jb25mCmluZGV4IDg0ZmRkODEuLmYyMDVlZjIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvY29uZi9sYXllci5jb25mCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvY29uZi9sYXllci5jb25mCkBAIC0xNyw2ICsxNyw4IEBACiAKIExBWUVSREVQRU5EU193ZWJzZXJ2ZXIgPSAiY29yZSBvcGVuZW1iZWRkZWQtbGF5ZXIiCiAKK0xBWUVSU0VSSUVTX0NPTVBBVF93ZWJzZXJ2ZXIgPSAic3VtbyIKKwogTElDRU5TRV9QQVRIICs9ICIke0xBWUVSRElSfS9saWNlbnNlcyIKIAogU0lHR0VOX0VYQ0xVREVfU0FGRV9SRUNJUEVfREVQUyArPSAiIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTItbmF0aXZlXzIuNC4yNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTItbmF0aXZlXzIuNC4yNy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGU4OTNkYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyLW5hdGl2ZV8yLjQuMjcuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1ERVNDUklQVElPTiA9ICJUaGUgQXBhY2hlIEhUVFAgU2VydmVyIGlzIGEgcG93ZXJmdWwsIGVmZmljaWVudCwgYW5kIFwKLWV4dGVuc2libGUgd2ViIHNlcnZlci4iCi1TVU1NQVJZID0gIkFwYWNoZSBIVFRQIFNlcnZlciIKLUhPTUVQQUdFID0gImh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyIKLURFUEVORFMgPSAiZXhwYXQtbmF0aXZlIHBjcmUtbmF0aXZlIGFwci1uYXRpdmUgYXByLXV0aWwtbmF0aXZlIgotU0VDVElPTiA9ICJuZXQiCi1MSUNFTlNFID0gIkFwYWNoZS0yLjAiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBuYXRpdmUKLQotU1JDX1VSSSA9ICIke0FQQUNIRV9NSVJST1J9L2h0dHBkL2h0dHBkLSR7UFZ9LnRhci5iejIgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1jb25maWd1cmUtdXNlLXBrZy1jb25maWctZm9yLVBDUkUtZGV0ZWN0aW9uLnBhdGNoIFwKLSAgICAgICAgICAiCi0KLVMgPSAiJHtXT1JLRElSfS9odHRwZC0ke1BWfSIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZGJmZjVhMmI1NDJmYTU4ODU0NDU1YmYxYTBiOTRiODMiCi1TUkNfVVJJW21kNXN1bV0gPSAiOTdiNmJiZmE4M2M4NjZkYmUyMGVmMzE3ZTNhZmQxMDgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzFmY2MxMjgyMzhhNjkwNTE1YmQ4MTc0ZDUzMzBhNTMwOTE2MWVmMzE0YTMyNmFlNDVjN2MxNWVkMTM5YzEzYSIKLQotRVhUUkFfT0VDT05GID0gIi0td2l0aC1hcHI9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vYXByLTEtY29uZmlnIFwKLSAgICAgICAgICAgICAgICAtLXdpdGgtYXByLXV0aWw9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vYXB1LTEtY29uZmlnIFwKLSAgICAgICAgICAgICAgICAtLXByZWZpeD0ke3ByZWZpeH0gLS1kYXRhZGlyPSR7ZGF0YWRpcn0vYXBhY2hlMiBcCi0gICAgICAgICAgICAgICAiCi0KLWRvX2luc3RhbGwgKCkgewotICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfSAke0R9JHtsaWJkaXJ9Ci0gICAgY3Agc2VydmVyL2dlbl90ZXN0X2NoYXIgJHtEfSR7YmluZGlyfQotICAgIGluc3RhbGwgLW0gNzU1IHN1cHBvcnQvYXB4cyAke0R9JHtiaW5kaXJ9LwotICAgIGluc3RhbGwgLW0gNzU1IGh0dHBkICR7RH0ke2JpbmRpcn0vCi0gICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9hcGFjaGUyL2J1aWxkCi0gICAgY3AgJHtTfS9idWlsZC8qLm1rICR7RH0ke2RhdGFkaXJ9L2FwYWNoZTIvYnVpbGQKLSAgICBjcCBidWlsZC8qLm1rICR7RH0ke2RhdGFkaXJ9L2FwYWNoZTIvYnVpbGQKLSAgICBjcCAke1N9L2J1aWxkL2luc3Rkc28uc2ggJHtEfSR7ZGF0YWRpcn0vYXBhY2hlMi9idWlsZAotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtpbmNsdWRlZGlyfS9hcGFjaGUyCi0gICAgY3AgJHtTfS9pbmNsdWRlLyogJHtEfSR7aW5jbHVkZWRpcn0vYXBhY2hlMgotICAgIGNwIGluY2x1ZGUvKiAke0R9JHtpbmNsdWRlZGlyfS9hcGFjaGUyCi0gICAgY3AgJHtTfS9vcy91bml4L29zLmggJHtEfSR7aW5jbHVkZWRpcn0vYXBhY2hlMgotICAgIGNwICR7U30vb3MvdW5peC91bml4ZC5oICR7RH0ke2luY2x1ZGVkaXJ9L2FwYWNoZTIKLQotICAgIGNwIHN1cHBvcnQvZW52dmFycy1zdGQgJHtEfSR7YmluZGlyfS9lbnZ2YXJzCi0gICAgY2htb2QgNzU1ICR7RH0ke2JpbmRpcn0vZW52dmFycwotfQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyLW5hdGl2ZV8yLjQuMjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyLW5hdGl2ZV8yLjQuMjkuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZmMDczYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTItbmF0aXZlXzIuNC4yOS5iYgpAQCAtMCwwICsxLDQ1IEBACitERVNDUklQVElPTiA9ICJUaGUgQXBhY2hlIEhUVFAgU2VydmVyIGlzIGEgcG93ZXJmdWwsIGVmZmljaWVudCwgYW5kIFwKK2V4dGVuc2libGUgd2ViIHNlcnZlci4iCitTVU1NQVJZID0gIkFwYWNoZSBIVFRQIFNlcnZlciIKK0hPTUVQQUdFID0gImh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyIKK0RFUEVORFMgPSAiZXhwYXQtbmF0aXZlIHBjcmUtbmF0aXZlIGFwci1uYXRpdmUgYXByLXV0aWwtbmF0aXZlIgorU0VDVElPTiA9ICJuZXQiCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBuYXRpdmUKKworU1JDX1VSSSA9ICIke0FQQUNIRV9NSVJST1J9L2h0dHBkL2h0dHBkLSR7UFZ9LnRhci5iejIgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1jb25maWd1cmUtdXNlLXBrZy1jb25maWctZm9yLVBDUkUtZGV0ZWN0aW9uLnBhdGNoIFwKKyAgICAgICAgICAiCisKK1MgPSAiJHtXT1JLRElSfS9odHRwZC0ke1BWfSIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YTYyYjBjNzYyMzgyNmZmOTk3NjZmZjEzZmI5MDA3ZjgiCitTUkNfVVJJW21kNXN1bV0gPSAiMGM1OTk0MDRlZjZiNjllZWU5NWJjZDlmY2QwOTQ0MDciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzc3NzUzYTVhMjU1NjhhMmEyNzQyOGIyMjE0OTgwNTY0YmMxYzM4YzFhYmY5Y2NjNzYzMGI2Mzk5OTFmN2YwMCIKKworRVhUUkFfT0VDT05GID0gIi0td2l0aC1hcHI9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vYXByLTEtY29uZmlnIFwKKyAgICAgICAgICAgICAgICAtLXdpdGgtYXByLXV0aWw9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vYXB1LTEtY29uZmlnIFwKKyAgICAgICAgICAgICAgICAtLXByZWZpeD0ke3ByZWZpeH0gLS1kYXRhZGlyPSR7ZGF0YWRpcn0vYXBhY2hlMiBcCisgICAgICAgICAgICAgICAiCisKK2RvX2luc3RhbGwgKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfSAke0R9JHtsaWJkaXJ9CisgICAgY3Agc2VydmVyL2dlbl90ZXN0X2NoYXIgJHtEfSR7YmluZGlyfQorICAgIGluc3RhbGwgLW0gNzU1IHN1cHBvcnQvYXB4cyAke0R9JHtiaW5kaXJ9LworICAgIGluc3RhbGwgLW0gNzU1IGh0dHBkICR7RH0ke2JpbmRpcn0vCisgICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9hcGFjaGUyL2J1aWxkCisgICAgY3AgJHtTfS9idWlsZC8qLm1rICR7RH0ke2RhdGFkaXJ9L2FwYWNoZTIvYnVpbGQKKyAgICBjcCBidWlsZC8qLm1rICR7RH0ke2RhdGFkaXJ9L2FwYWNoZTIvYnVpbGQKKyAgICBjcCAke1N9L2J1aWxkL2luc3Rkc28uc2ggJHtEfSR7ZGF0YWRpcn0vYXBhY2hlMi9idWlsZAorCisgICAgaW5zdGFsbCAtZCAke0R9JHtpbmNsdWRlZGlyfS9hcGFjaGUyCisgICAgY3AgJHtTfS9pbmNsdWRlLyogJHtEfSR7aW5jbHVkZWRpcn0vYXBhY2hlMgorICAgIGNwIGluY2x1ZGUvKiAke0R9JHtpbmNsdWRlZGlyfS9hcGFjaGUyCisgICAgY3AgJHtTfS9vcy91bml4L29zLmggJHtEfSR7aW5jbHVkZWRpcn0vYXBhY2hlMgorICAgIGNwICR7U30vb3MvdW5peC91bml4ZC5oICR7RH0ke2luY2x1ZGVkaXJ9L2FwYWNoZTIKKworICAgIGNwIHN1cHBvcnQvZW52dmFycy1zdGQgJHtEfSR7YmluZGlyfS9lbnZ2YXJzCisgICAgY2htb2QgNzU1ICR7RH0ke2JpbmRpcn0vZW52dmFycworfQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2FwYWNoZS1jb25maWd1cmVfcGVybGJpbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvYXBhY2hlLWNvbmZpZ3VyZV9wZXJsYmluLnBhdGNoCmluZGV4IGM5MDI3OWQuLjkyYzUzZjMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvYXBhY2hlLWNvbmZpZ3VyZV9wZXJsYmluLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvYXBhY2hlLWNvbmZpZ3VyZV9wZXJsYmluLnBhdGNoCkBAIC00LDExICs0LDEzIEBACiAjCiAjIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KIAotLS0tIGEvY29uZmlndXJlLmluCi0rKysgYi9jb25maWd1cmUuaW4KLUBAIC02MzgsMTAgKzYzOCw3IEBACi0gQUNfREVGSU5FX1VOUVVPVEVEKEFQQUNIRV9NUE1fRElSLCAiJE1QTV9ESVIiLAotIAlbTG9jYXRpb24gb2YgdGhlIHNvdXJjZSBmb3IgdGhlIGN1cnJlbnQgTVBNXSkKK0luZGV4OiBodHRwZC0yLjQuMjkvY29uZmlndXJlLmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gaHR0cGQtMi40LjI5Lm9yaWcvY29uZmlndXJlLmluCisrKysgaHR0cGQtMi40LjI5L2NvbmZpZ3VyZS5pbgorQEAgLTg1NSwxMCArODU1LDcgQEAgQUNfREVGSU5FX1VOUVVPVEVEKFNFUlZFUl9DT05GSUdfRklMRSwgIgorIEFDX0RFRklORV9VTlFVT1RFRChBUF9UWVBFU19DT05GSUdfRklMRSwgIiR7cmVsX3N5c2NvbmZkaXJ9L21pbWUudHlwZXMiLAorIAlbTG9jYXRpb24gb2YgdGhlIE1JTUUgdHlwZXMgY29uZmlnIGZpbGUsIHJlbGF0aXZlIHRvIHRoZSBBcGFjaGUgcm9vdCBkaXJlY3RvcnldKQogIAogLXBlcmxiaW49YCRhY19hdXhfZGlyL1ByaW50UGF0aCBwZXJsYAogLWlmIHRlc3QgIngkcGVybGJpbiIgPSAieCI7IHRoZW4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvYXBhY2hlLXNzbC1sdG1haW4tcnBhdGgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2FwYWNoZS1zc2wtbHRtYWluLXJwYXRoLnBhdGNoCmluZGV4IDQxM2RjNTMuLmYxM2RhOTEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvYXBhY2hlLXNzbC1sdG1haW4tcnBhdGgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9hcGFjaGUtc3NsLWx0bWFpbi1ycGF0aC5wYXRjaApAQCAtMSwxMSArMSwxMSBAQAogIGJ1aWxkL2x0bWFpbi5zaCB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiAKLWRpZmYgLS1naXQgYS9idWlsZC9sdG1haW4uc2ggYi9idWlsZC9sdG1haW4uc2gKLWluZGV4IDVlY2E0YWUuLjgwNWI0NjEgMTAwNjQ0Ci0tLS0gYS9idWlsZC9sdG1haW4uc2gKLSsrKyBiL2J1aWxkL2x0bWFpbi5zaAotQEAgLTY5NDQsNyArNjk0NCw3IEBAIGZ1bmNfbW9kZV9saW5rICgpCitJbmRleDogaHR0cGQtMi40LjI5L2J1aWxkL2x0bWFpbi5zaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGh0dHBkLTIuNC4yOS5vcmlnL2J1aWxkL2x0bWFpbi5zaAorKysrIGh0dHBkLTIuNC4yOS9idWlsZC9sdG1haW4uc2gKK0BAIC02OTY5LDcgKzY5NjksNyBAQCBmdW5jX21vZGVfbGluayAoKQogIAlkaXI9JGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdAogIAkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KICAJY2FzZSAkZGlyIGluCkBAIC0xNCw3ICsxNCw3IEBACiAgCSopCiAgCSAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAogIAkgIHRlc3QgLXogIiRhYnNkaXIiICYmIFwKLUBAIC04MTM3LDcgKzgxMzcsNyBAQCBmdW5jX21vZGVfbGluayAoKQorQEAgLTgxNjcsNyArODE2Nyw3IEBAIGZ1bmNfbW9kZV9saW5rICgpCiAgCSAgICAkRUNITyAiKioqICRsaW5rbGliIGlzIG5vdCBwb3J0YWJsZSEiCiAgCSAgZmkKICAJICBpZiB0ZXN0IGxpYiA9ICIkbGlua21vZGUiICYmCkBAIC0yMyw3ICsyMyw3IEBACiAgCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCiAgCSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCiAgCSAgICAjIHNlYXJjaCBwYXRoLgotQEAgLTg0MDQsNyArODQwNCw3IEBAIGZ1bmNfbW9kZV9saW5rICgpCitAQCAtODQzNCw3ICs4NDM0LDcgQEAgZnVuY19tb2RlX2xpbmsgKCkKICAKICAJaWYgdGVzdCBsaWIgPSAiJGxpbmttb2RlIjsgdGhlbgogIAkgIGlmIHRlc3QgLW4gIiRkZXBlbmRlbmN5X2xpYnMiICYmCkBAIC0zMiw3ICszMiw3IEBACiAgCSAgICAgICB0ZXN0IHllcyA9ICIkYnVpbGRfb2xkX2xpYnMiIHx8CiAgCSAgICAgICB0ZXN0IHllcyA9ICIkbGlua19zdGF0aWMiOyB9OyB0aGVuCiAgCSAgICAjIEV4dHJhY3QgLVIgZnJvbSBkZXBlbmRlbmN5X2xpYnMKLUBAIC05MDI1LDcgKzkwMjUsOCBAQCBmdW5jX21vZGVfbGluayAoKQorQEAgLTkwODYsNyArOTA4Niw4IEBAIGZ1bmNfbW9kZV9saW5rICgpCiAgCSAgKikgZnVuY19hcHBlbmQgZmluYWxpemVfcnBhdGggIiAkbGliZGlyIiA7OwogIAkgIGVzYWMKICAJZG9uZQpAQCAtNDIsNyArNDIsNyBAQAogIAkgIGRlcGVuZGVuY3lfbGlicz0iJHRlbXBfeHJwYXRoICRkZXBlbmRlbmN5X2xpYnMiCiAgCWZpCiAgICAgICAgZmkKLUBAIC05NDczLDcgKzk0NzQsNyBAQCBFT0YKK0BAIC05NTM0LDcgKzk1MzUsNyBAQCBFT0YKICAJY2FzZSAkYXJjaGl2ZV9jbWRzIGluCiAgCSAgKlwkTERcICopIHdsPSA7OwogICAgICAgICAgZXNhYwpAQCAtNTEsNyArNTEsNyBAQAogIAkgICMgSGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aHMKICAJICBoYXJkY29kZV9saWJkaXJzPQogIAkgIGRlcF9ycGF0aD0KLUBAIC0xMDIxMSw2ICsxMDIxMiwyNyBAQCBFT0YKK0BAIC0xMDI3Miw2ICsxMDI3MywyNyBAQCBFT0YKICAgICAgICAjIE5vdyBoYXJkY29kZSB0aGUgbGlicmFyeSBwYXRocwogICAgICAgIHJwYXRoPQogICAgICAgIGhhcmRjb2RlX2xpYmRpcnM9CkBAIC03OSw2ICs3OSwzIEBACiAgICAgICAgZm9yIGxpYmRpciBpbiAkY29tcGlsZV9ycGF0aCAkZmluYWxpemVfcnBhdGg7IGRvCiAgCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgogIAkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL3JlcGxhY2UtbHlueC10by1jdXJsLWluLWFwYWNoZWN0bC1zY3JpcHQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL3JlcGxhY2UtbHlueC10by1jdXJsLWluLWFwYWNoZWN0bC1zY3JpcHQucGF0Y2gKaW5kZXggNTg0ZGRjOC4uZTRlMDFiMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9yZXBsYWNlLWx5bngtdG8tY3VybC1pbi1hcGFjaGVjdGwtc2NyaXB0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvcmVwbGFjZS1seW54LXRvLWN1cmwtaW4tYXBhY2hlY3RsLXNjcmlwdC5wYXRjaApAQCAtMTAsMTEgKzEwLDExIEBACiAgc3VwcG9ydC9hcGFjaGVjdGwuaW4gfCAgIDE0ICsrKysrKysrKystLS0tCiAgMSBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvc3VwcG9ydC9hcGFjaGVjdGwuaW4gYi9zdXBwb3J0L2FwYWNoZWN0bC5pbgotaW5kZXggZDRkZmYzOC4uMTA5ZWExMyAxMDA2NDQKLS0tLSBhL3N1cHBvcnQvYXBhY2hlY3RsLmluCi0rKysgYi9zdXBwb3J0L2FwYWNoZWN0bC5pbgotQEAgLTUxLDExICs1MSwxMSBAQCBmaQorSW5kZXg6IGh0dHBkLTIuNC4yOS9zdXBwb3J0L2FwYWNoZWN0bC5pbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGh0dHBkLTIuNC4yOS5vcmlnL3N1cHBvcnQvYXBhY2hlY3RsLmluCisrKysgaHR0cGQtMi40LjI5L3N1cHBvcnQvYXBhY2hlY3RsLmluCitAQCAtNTIsMTEgKzUyLDExIEBAIGZpCiAgIyBhIGNvbW1hbmQgdGhhdCBvdXRwdXRzIGEgZm9ybWF0dGVkIHRleHQgdmVyc2lvbiBvZiB0aGUgSFRNTCBhdCB0aGUKICAjIHVybCBnaXZlbiBvbiB0aGUgY29tbWFuZCBsaW5lLiAgRGVzaWduZWQgZm9yIGx5bngsIGhvd2V2ZXIgb3RoZXIKICAjIHByb2dyYW1zIG1heSB3b3JrLiAgCkBAIC0yOCw3ICsyOCw3IEBACiAgIwogICMgU2V0IHRoaXMgdmFyaWFibGUgdG8gYSBjb21tYW5kIHRoYXQgaW5jcmVhc2VzIHRoZSBtYXhpbXVtCiAgIyBudW1iZXIgb2YgZmlsZSBkZXNjcmlwdG9ycyBhbGxvd2VkIHBlciBjaGlsZCBwcm9jZXNzLiBUaGlzIGlzCi1AQCAtOTEsMTAgKzkxLDE2IEBAIGNvbmZpZ3Rlc3QpCitAQCAtOTIsMTAgKzkyLDE2IEBAIGNvbmZpZ3Rlc3QpCiAgICAgIEVSUk9SPSQ/CiAgICAgIDs7CiAgc3RhdHVzKQpAQCAtNDYsNyArNDYsNCBAQAogKyAgICBmaQogICAgICA7OwogICopCi0gICAgICRIVFRQRCAkQVJHVgotLS0gCi0xLjYuNAotCisgICAgICRIVFRQRCAiJEAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyXzIuNC4yNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTJfMi40LjI3LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODgwODY3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTJfMi40LjI3LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTk0ICswLDAgQEAKLURFU0NSSVBUSU9OID0gIlRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgaXMgYSBwb3dlcmZ1bCwgZWZmaWNpZW50LCBhbmQgXAotZXh0ZW5zaWJsZSB3ZWIgc2VydmVyLiIKLVNVTU1BUlkgPSAiQXBhY2hlIEhUVFAgU2VydmVyIgotSE9NRVBBR0UgPSAiaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIgotREVQRU5EUyA9ICJsaWJ0b29sLW5hdGl2ZSBhcGFjaGUyLW5hdGl2ZSBvcGVuc3NsIGV4cGF0IHBjcmUgYXByIGFwci11dGlsIgotU0VDVElPTiA9ICJuZXQiCi1MSUNFTlNFID0gIkFwYWNoZS0yLjAiCi0KLVNSQ19VUkkgPSAiJHtBUEFDSEVfTUlSUk9SfS9odHRwZC9odHRwZC0ke1BWfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovL3NlcnZlci1tYWtlZmlsZS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9odHRwZC0yLjQuMS1jb3JlbGltaXQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vaHR0cGQtMi40LjQtZXhwb3J0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2h0dHBkLTIuNC4xLXNlbGludXgucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vYXBhY2hlLWNvbmZpZ3VyZV9wZXJsYmluLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL3JlcGxhY2UtbHlueC10by1jdXJsLWluLWFwYWNoZWN0bC1zY3JpcHQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vYXBhY2hlLXNzbC1sdG1haW4tcnBhdGgucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vaHR0cGQtMi40LjMtZml4LXJhY2UtaXNzdWUtb2YtZGlyLWluc3RhbGwucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1jb25maWd1cmUtdXNlLXBrZy1jb25maWctZm9yLVBDUkUtZGV0ZWN0aW9uLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2NvbmZpZ3VyZS1hbGxvdy10by1kaXNhYmxlLXNlbGludXgtc3VwcG9ydC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9pbml0IFwKLSAgICAgICAgICAgZmlsZTovL2FwYWNoZTItdm9sYXRpbGUuY29uZiBcCi0gICAgICAgICAgIGZpbGU6Ly9hcGFjaGUyLnNlcnZpY2UgXAotICAgICAgICAgICBmaWxlOi8vdm9sYXRpbGVzLjA0X2FwYWNoZTIgXAotICAgICAgICAgICIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZGJmZjVhMmI1NDJmYTU4ODU0NDU1YmYxYTBiOTRiODMiCi1TUkNfVVJJW21kNXN1bV0gPSAiOTdiNmJiZmE4M2M4NjZkYmUyMGVmMzE3ZTNhZmQxMDgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzFmY2MxMjgyMzhhNjkwNTE1YmQ4MTc0ZDUzMzBhNTMwOTE2MWVmMzE0YTMyNmFlNDVjN2MxNWVkMTM5YzEzYSIKLQotUyA9ICIke1dPUktESVJ9L2h0dHBkLSR7UFZ9IgotCi1pbmhlcml0IGF1dG90b29scyB1cGRhdGUtcmMuZCBwa2djb25maWcgc3lzdGVtZAotCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiYXBhY2hlMi5zZXJ2aWNlIgotU1lTVEVNRF9BVVRPX0VOQUJMRV8ke1BOfSA9ICJkaXNhYmxlIgotCi1TU1RBVEVfU0NBTl9GSUxFUyArPSAiYXB4cyBjb25maWdfdmFycy5tayBjb25maWcubmljZSIKLQotQ0ZMQUdTX2FwcGVuZCA9ICIgLURQQVRIX01BWD00MDk2IgotQ0ZMQUdTX3ByZXBlbmQgPSAiLUkke1NUQUdJTkdfSU5DRElSfS9vcGVuc3NsICIKLUVYVFJBX09FQ09ORiA9ICItLWVuYWJsZS1zc2wgXAotICAgIC0td2l0aC1zc2w9JHtTVEFHSU5HX0xJQkRJUn0vLi4gXAotICAgIC0td2l0aC1leHBhdD0ke1NUQUdJTkdfTElCRElSfS8uLiBcCi0gICAgLS13aXRoLWFwcj0ke1NUQUdJTkdfQklORElSX0NST1NTfS9hcHItMS1jb25maWcgXAotICAgIC0td2l0aC1hcHItdXRpbD0ke1NUQUdJTkdfQklORElSX0NST1NTfS9hcHUtMS1jb25maWcgXAotICAgIC0tZW5hYmxlLWluZm8gXAotICAgIC0tZW5hYmxlLXJld3JpdGUgXAotICAgIC0td2l0aC1kYm09c2RibSBcCi0gICAgLS13aXRoLWJlcmtlbGV5LWRiPW5vIFwKLSAgICAtLWxvY2Fsc3RhdGVkaXI9L3Zhci8ke0JQTn0gXAotICAgIC0td2l0aC1nZGJtPW5vIFwKLSAgICAtLXdpdGgtbmRibT1ubyBcCi0gICAgLS1pbmNsdWRlZGlyPSR7aW5jbHVkZWRpcn0vJHtCUE59IFwKLSAgICAtLWRhdGFkaXI9JHtkYXRhZGlyfS8ke0JQTn0gXAotICAgIC0tc3lzY29uZmRpcj0ke3N5c2NvbmZkaXJ9LyR7QlBOfSBcCi0gICAgLS1saWJleGVjZGlyPSR7bGliZGlyfS8ke0JQTn0vbW9kdWxlcyBcCi0gICAgYXBfY3Zfdm9pZF9wdHJfbHRfbG9uZz1ubyBcCi0gICAgLS1lbmFibGUtbXBtcy1zaGFyZWQgXAotICAgIGFjX2N2X2hhdmVfdGhyZWFkc2FmZV9wb2xsc2V0PW5vIgotCi1QQUNLQUdFQ09ORklHID89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzZWxpbnV4JywgZCl9IgotUEFDS0FHRUNPTkZJR1tzZWxpbnV4XSA9ICItLWVuYWJsZS1zZWxpbnV4IC0tZW5hYmxlLWxheW91dD1EZWJpYW4gLS1wcmVmaXg9JHtiYXNlX3ByZWZpeH0vLC0tZGlzYWJsZS1zZWxpbnV4LGxpYnNlbGludXgsbGlic2VsaW51eCIKLVBBQ0tBR0VDT05GSUdbb3BlbmxkYXBdID0gIi0tZW5hYmxlLWxkYXAgLS1lbmFibGUtYXV0aG56LWxkYXAsLS1kaXNhYmxlLWxkYXAgLS1kaXNhYmxlLWF1dGhuei1sZGFwLG9wZW5sZGFwIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICAgICAgc2VkIC1pIC1lICdzOiQnJ3twcmVmaXh9L3Vzci9saWIvY2dpLWJpbjokJyd7bGliZGlyfS9jZ2ktYmluOmcnICR7U30vY29uZmlnLmxheW91dAotfQotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICBjYXQgJHtXT1JLRElSfS9pbml0IHwgXAotICAgICAgICBzZWQgLWUgJ3MsL3Vzci9zYmluLywke3NiaW5kaXJ9LyxnJyBcCi0gICAgICAgICAgICAtZSAncywvdXNyL2Jpbi8sJHtiaW5kaXJ9LyxnJyBcCi0gICAgICAgICAgICAtZSAncywvdXNyL2xpYiwke2xpYmRpcn0vLGcnIFwKLSAgICAgICAgICAgIC1lICdzLC9ldGMvLCR7c3lzY29uZmRpcn0vLGcnIFwKLSAgICAgICAgICAgIC1lICdzLC91c3IvLCR7cHJlZml4fS8sZycgPiAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kLyR7QlBOfQotICAgIGNobW9kIDc1NSAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kLyR7QlBOfQotICAgICMgcmVtb3ZlIHRoZSBnb29meSBvcmlnaW5hbCBmaWxlcy4uLgotICAgIHJtIC1yZiAke0R9LyR7c3lzY29uZmRpcn0vJHtCUE59L29yaWdpbmFsCi0gICAgIyBFeHBhdCBzaG91bGQgYmUgZm91bmQgaW4gdGhlIHN0YWdpbmcgYXJlYSB2aWEgREVQRU5EUy4uLgotICAgIHJtIC1mICR7RH0vJHtsaWJkaXJ9L2xpYmV4cGF0LioKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vJHtCUE59L2NvbmYuZAotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vJHtCUE59L21vZHVsZXMuZAotCi0gICAgIyBFbnN1cmUgY29uZmlndXJhdGlvbiBmaWxlIHB1bGxzIGluIGNvbmYuZCBhbmQgbW9kdWxlcy5kCi0gICAgcHJpbnRmICJcbkluY2x1ZGVPcHRpb25hbCAke3N5c2NvbmZkaXJ9LyR7QlBOfS9jb25mLmQvKi5jb25mIiA+PiAke0R9LyR7c3lzY29uZmRpcn0vJHtCUE59L2h0dHBkLmNvbmYKLSAgICBwcmludGYgIlxuSW5jbHVkZU9wdGlvbmFsICR7c3lzY29uZmRpcn0vJHtCUE59L21vZHVsZXMuZC8qLmxvYWQiID4+ICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZgotICAgIHByaW50ZiAiXG5JbmNsdWRlT3B0aW9uYWwgJHtzeXNjb25mZGlyfS8ke0JQTn0vbW9kdWxlcy5kLyouY29uZlxuXG4iID4+ICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZgotICAgICMgbWF0Y2ggd2l0aCB0aGF0IGlzIGluIGluaXQgc2NyaXB0Ci0gICAgcHJpbnRmICJcblBpZEZpbGUgL3J1bi9odHRwZC5waWQiID4+ICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZgotICAgICMgU2V0ICdTZXJ2ZXJOYW1lJyB0byBmaXggZXJyb3IgbWVzc2FnZXMgd2hlbiByZXN0YXJ0IGFwYWNoZSBzZXJ2aWNlCi0gICAgc2VkIC1pICdzL14jU2VydmVyTmFtZSB3d3cuZXhhbXBsZS5jb20vU2VydmVyTmFtZSBsb2NhbGhvc3QvJyAke0R9LyR7c3lzY29uZmRpcn0vJHtCUE59L2h0dHBkLmNvbmYKLQotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC8KLSAgICAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vYXBhY2hlMi12b2xhdGlsZS5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvCi0gICAgZWxpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3Zpbml0JywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcwotICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS92b2xhdGlsZXMuMDRfYXBhY2hlMiAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcy8wNF9hcGFjaGUyCi0gICAgZmkKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9hcGFjaGUyLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICBzZWQgLWkgLWUgJ3MsQFNCSU5ESVJALCR7c2JpbmRpcn0sZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vYXBhY2hlMi5zZXJ2aWNlCi0gICAgc2VkIC1pIC1lICdzLEBCQVNFX0JJTkRJUkAsJHtiYXNlX2JpbmRpcn0sZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vYXBhY2hlMi5zZXJ2aWNlCi0KLSAgICBjaG93biAtUiByb290OnJvb3QgJHtEfQotfQotCi1kb19pbnN0YWxsX2FwcGVuZF9jbGFzcy10YXJnZXQoKSB7Ci0gICAgc2VkIC1pIC1lICdzLCR7U1RBR0lOR19ESVJfSE9TVH0sLGcnIFwKLSAgICAgICAgICAgLWUgJ3MsQVBVX0lOQ0xVREVESVIgPSAuKixBUFVfSU5DTFVERURJUiA9ICxnJyBcCi0gICAgICAgICAgIC1lICdzLEFQVV9DT05GSUcgPSAuKixBUFVfQ09ORklHID0gLGcnICR7RH0ke2RhdGFkaXJ9L2FwYWNoZTIvYnVpbGQvY29uZmlnX3ZhcnMubWsKLQotICAgIHNlZCAtaSAtZSAncywke1NUQUdJTkdfRElSX0hPU1R9LCxnJyBcCi0gICAgICAgICAgIC1lICdzLCIuKi9jb25maWd1cmUiLCJjb25maWd1cmUiLGcnICR7RH0ke2RhdGFkaXJ9L2FwYWNoZTIvYnVpbGQvY29uZmlnLm5pY2UKLSAgICBybSAtcmYgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vcnVuCi19Ci0KLVNZU1JPT1RfUFJFUFJPQ0VTU19GVU5DUyArPSAiYXBhY2hlX3N5c3Jvb3RfcHJlcHJvY2VzcyIKLQotYXBhY2hlX3N5c3Jvb3RfcHJlcHJvY2VzcyAoKSB7Ci0gICAgaW5zdGFsbCAtZCAke1NZU1JPT1RfREVTVERJUn0ke2JpbmRpcl9jcm9zc3NjcmlwdHN9LwotICAgIGluc3RhbGwgLW0gNzU1ICR7RH0ke2JpbmRpcn0vYXB4cyAke1NZU1JPT1RfREVTVERJUn0ke2JpbmRpcl9jcm9zc3NjcmlwdHN9LwotICAgIGluc3RhbGwgLWQgJHtTWVNST09UX0RFU1RESVJ9JHtzYmluZGlyfS8KLSAgICBpbnN0YWxsIC1tIDc1NSAke0R9JHtzYmluZGlyfS9hcGFjaGVjdGwgJHtTWVNST09UX0RFU1RESVJ9JHtzYmluZGlyfS8KLSAgICBzZWQgLWkgJ3MhbXkgJGluc3RhbGxidWlsZGRpciA9IC4qIW15ICRpbnN0YWxsYnVpbGRkaXIgPSAiJHtTVEFHSU5HX0RJUl9IT1NUfS8ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZCI7IScgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS9hcHhzCi0gICAgc2VkIC1pICdzIW15ICRsaWJ0b29sID0gLiohbXkgJGxpYnRvb2wgPSAiJHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vJHtIT1NUX1NZU30tbGlidG9vbCI7IScgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS9hcHhzCi0KLSAgICBzZWQgLWkgJ3MhXkFQUl9DT05GSUcgPSAuKiFBUFJfQ09ORklHID0gJHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vYXByLTEtY29uZmlnIScgJHtTWVNST09UX0RFU1RESVJ9JHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQvY29uZmlnX3ZhcnMubWsKLSAgICBzZWQgLWkgJ3MhXkFQVV9DT05GSUcgPSAuKiFBUFVfQ09ORklHID0gJHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vYXB1LTEtY29uZmlnIScgJHtTWVNST09UX0RFU1RESVJ9JHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQvY29uZmlnX3ZhcnMubWsKLSAgICBzZWQgLWkgJ3MhXmluY2x1ZGVkaXIgPSAuKiFpbmNsdWRlZGlyID0gJHtTVEFHSU5HX0lOQ0RJUn0vYXBhY2hlMiEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCi0gICAgc2VkIC1pICdzIV5DRkxBR1MgPSAtSVteIF0qIUNGTEFHUyA9IC1JJHtTVEFHSU5HX0lOQ0RJUn0vb3BlbnNzbCEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCi0gICAgc2VkIC1pICdzIV5FWFRSQV9MREZMQUdTID0gLiohRVhUUkFfTERGTEFHUyA9IC1MJHtTVEFHSU5HX0xJQkRJUn0hJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5tawotICAgIHNlZCAtaSAncyFeRVhUUkFfSU5DTFVERVMgPSAuKiFFWFRSQV9JTkNMVURFUyA9IC1JJChpbmNsdWRlZGlyKSAtSS4gLUkke1NUQUdJTkdfSU5DRElSfSEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCi0gICAgc2VkIC1pICdzIS0tc3lzcm9vdD1bXiBdKiEtLXN5c3Jvb3Q9JHtTVEFHSU5HX0RJUl9IT1NUfSEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCi19Ci0KLSMKLSMgaW1wbGljYXRpb25zIC0gdXNlZCBieSB1cGRhdGUtcmMuZCBzY3JpcHRzCi0jCi1JTklUU0NSSVBUX05BTUUgPSAiYXBhY2hlMiIKLUlOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIDkxIDIwIgotTEVBRF9TT05BTUUgPSAibGliYXByLTEuc28uMCIKLQotUEFDS0FHRVMgPSAiJHtQTn0tc2NyaXB0cyAke1BOfS1kb2MgJHtQTn0tZGV2ICR7UE59LWRiZyAke1BOfSIKLQotQ09ORkZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0vJHtCUE59L2h0dHBkLmNvbmYgXAotICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vJHtCUE59L21hZ2ljIFwKLSAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9LyR7QlBOfS9taW1lLnR5cGVzIFwKLSAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2luaXQuZC8ke0JQTn0gIgotCi0jIHdlIG92ZXJyaWRlIGhlcmUgcmF0aGVyIHRoYW4gYXBwZW5kIHNvIHRoYXQgLnNvIGxpbmtzIGFyZQotIyBpbmNsdWRlZCBpbiB0aGUgcnVudGltZSBwYWNrYWdlIHJhdGhlciB0aGFuIGhlcmUgKC1kZXYpCi0jIGFuZCB0byBnZXQgYnVpbGQsIGljb25zLCBlcnJvciBpbnRvIHRoZSAtZGV2IHBhY2thZ2UKLUZJTEVTXyR7UE59LWRldiA9ICIke2RhdGFkaXJ9LyR7QlBOfS9idWlsZCBcCi0gICAgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS8ke0JQTn0vaWNvbnMgXAotICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vJHtCUE59L2Vycm9yIFwKLSAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vYXByLWNvbmZpZyAke2JpbmRpcn0vYXB1LWNvbmZpZyBcCi0gICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2FwciouZXhwIFwKLSAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9LyR7QlBOfSBcCi0gICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9LyoubGEgXAotICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS8qLmEgXAotICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9hcHhzIFwKLSAgICAgICAgICAgICAgICAiCi0KLQotIyBtYW51YWwgdG8gbWFudWFsCi1GSUxFU18ke1BOfS1kb2MgKz0gIiAke2RhdGFkaXJ9LyR7QlBOfS9tYW51YWwiCi0KLUZJTEVTXyR7UE59LXNjcmlwdHMgKz0gIiR7YmluZGlyfS9kYm1tYW5hZ2UiCi0KLSMKLSMgb3ZlcnJpZGUgdGhpcyB0b28gLSBoZXJlIGlzIHRoZSBkZWZhdWx0LCBsZXNzIGRhdGFkaXIKLSMKLUZJTEVTXyR7UE59ID0gICIke2JpbmRpcn0gJHtzYmluZGlyfSAke2xpYmV4ZWNkaXJ9ICR7bGliZGlyfS9saWIqLnNvLiogJHtzeXNjb25mZGlyfSBcCi0gICAgICAgICAgICAgICAgJHtzaGFyZWRzdGF0ZWRpcn0gJHtsb2NhbHN0YXRlZGlyfSAvYmluIC9zYmluIC9saWIvKi5zbyogXAotICAgICAgICAgICAgICAgICR7bGliZGlyfS8ke0JQTn0iCi0KLSMgd2Ugd2FudCBodGRvY3MgYW5kIGNnaS1iaW4gdG8gZ28gd2l0aCB0aGUgYmluYXJ5Ci1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS8ke0JQTn0vaHRkb2NzICR7ZGF0YWRpcn0vJHtCUE59L2NnaS1iaW4iCi0KLSNtYWtlIHN1cmUgdGhlIGxvbmUgLnNvIGxpbmtzIGFsc28gZ2V0IHdyYXBwZWQgaW4gdGhlIGJhc2UgcGFja2FnZQotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9saWIqLnNvICR7bGliZGlyfS9wa2djb25maWcvKiIKLQotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vJHtCUE59L21vZHVsZXMvLmRlYnVnIgotCi1SREVQRU5EU18ke1BOfSArPSAib3BlbnNzbCBsaWJnY2MiCi1SREVQRU5EU18ke1BOfS1zY3JpcHRzICs9ICJwZXJsICR7UE59IgotUkRFUEVORFNfJHtQTn0tZGV2ID0gInBlcmwiCi0KLUZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vY2dpLWJpbiIKLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9LyR7QlBOfS8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyXzIuNC4yOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTJfMi40LjI5LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwMjk4YjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyXzIuNC4yOS5iYgpAQCAtMCwwICsxLDE5NCBAQAorREVTQ1JJUFRJT04gPSAiVGhlIEFwYWNoZSBIVFRQIFNlcnZlciBpcyBhIHBvd2VyZnVsLCBlZmZpY2llbnQsIGFuZCBcCitleHRlbnNpYmxlIHdlYiBzZXJ2ZXIuIgorU1VNTUFSWSA9ICJBcGFjaGUgSFRUUCBTZXJ2ZXIiCitIT01FUEFHRSA9ICJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iCitERVBFTkRTID0gImxpYnRvb2wtbmF0aXZlIGFwYWNoZTItbmF0aXZlIG9wZW5zc2wgZXhwYXQgcGNyZSBhcHIgYXByLXV0aWwiCitTRUNUSU9OID0gIm5ldCIKK0xJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKKworU1JDX1VSSSA9ICIke0FQQUNIRV9NSVJST1J9L2h0dHBkL2h0dHBkLSR7UFZ9LnRhci5iejIgXAorICAgICAgICAgICBmaWxlOi8vc2VydmVyLW1ha2VmaWxlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2h0dHBkLTIuNC4xLWNvcmVsaW1pdC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9odHRwZC0yLjQuNC1leHBvcnQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vaHR0cGQtMi40LjEtc2VsaW51eC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9hcGFjaGUtY29uZmlndXJlX3BlcmxiaW4ucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vcmVwbGFjZS1seW54LXRvLWN1cmwtaW4tYXBhY2hlY3RsLXNjcmlwdC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9hcGFjaGUtc3NsLWx0bWFpbi1ycGF0aC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9odHRwZC0yLjQuMy1maXgtcmFjZS1pc3N1ZS1vZi1kaXItaW5zdGFsbC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS11c2UtcGtnLWNvbmZpZy1mb3ItUENSRS1kZXRlY3Rpb24ucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vY29uZmlndXJlLWFsbG93LXRvLWRpc2FibGUtc2VsaW51eC1zdXBwb3J0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2luaXQgXAorICAgICAgICAgICBmaWxlOi8vYXBhY2hlMi12b2xhdGlsZS5jb25mIFwKKyAgICAgICAgICAgZmlsZTovL2FwYWNoZTIuc2VydmljZSBcCisgICAgICAgICAgIGZpbGU6Ly92b2xhdGlsZXMuMDRfYXBhY2hlMiBcCisgICAgICAgICAgIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1hNjJiMGM3NjIzODI2ZmY5OTc2NmZmMTNmYjkwMDdmOCIKK1NSQ19VUklbbWQ1c3VtXSA9ICIwYzU5OTQwNGVmNmI2OWVlZTk1YmNkOWZjZDA5NDQwNyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3Nzc3NTNhNWEyNTU2OGEyYTI3NDI4YjIyMTQ5ODA1NjRiYzFjMzhjMWFiZjljY2M3NjMwYjYzOTk5MWY3ZjAwIgorCitTID0gIiR7V09SS0RJUn0vaHR0cGQtJHtQVn0iCisKK2luaGVyaXQgYXV0b3Rvb2xzIHVwZGF0ZS1yYy5kIHBrZ2NvbmZpZyBzeXN0ZW1kCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJhcGFjaGUyLnNlcnZpY2UiCitTWVNURU1EX0FVVE9fRU5BQkxFXyR7UE59ID0gImRpc2FibGUiCisKK1NTVEFURV9TQ0FOX0ZJTEVTICs9ICJhcHhzIGNvbmZpZ192YXJzLm1rIGNvbmZpZy5uaWNlIgorCitDRkxBR1NfYXBwZW5kID0gIiAtRFBBVEhfTUFYPTQwOTYiCitDRkxBR1NfcHJlcGVuZCA9ICItSSR7U1RBR0lOR19JTkNESVJ9L29wZW5zc2wgIgorRVhUUkFfT0VDT05GID0gIi0tZW5hYmxlLXNzbCBcCisgICAgLS13aXRoLXNzbD0ke1NUQUdJTkdfTElCRElSfS8uLiBcCisgICAgLS13aXRoLWV4cGF0PSR7U1RBR0lOR19MSUJESVJ9Ly4uIFwKKyAgICAtLXdpdGgtYXByPSR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L2Fwci0xLWNvbmZpZyBcCisgICAgLS13aXRoLWFwci11dGlsPSR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L2FwdS0xLWNvbmZpZyBcCisgICAgLS1lbmFibGUtaW5mbyBcCisgICAgLS1lbmFibGUtcmV3cml0ZSBcCisgICAgLS13aXRoLWRibT1zZGJtIFwKKyAgICAtLXdpdGgtYmVya2VsZXktZGI9bm8gXAorICAgIC0tbG9jYWxzdGF0ZWRpcj0vdmFyLyR7QlBOfSBcCisgICAgLS13aXRoLWdkYm09bm8gXAorICAgIC0td2l0aC1uZGJtPW5vIFwKKyAgICAtLWluY2x1ZGVkaXI9JHtpbmNsdWRlZGlyfS8ke0JQTn0gXAorICAgIC0tZGF0YWRpcj0ke2RhdGFkaXJ9LyR7QlBOfSBcCisgICAgLS1zeXNjb25mZGlyPSR7c3lzY29uZmRpcn0vJHtCUE59IFwKKyAgICAtLWxpYmV4ZWNkaXI9JHtsaWJkaXJ9LyR7QlBOfS9tb2R1bGVzIFwKKyAgICBhcF9jdl92b2lkX3B0cl9sdF9sb25nPW5vIFwKKyAgICAtLWVuYWJsZS1tcG1zLXNoYXJlZCBcCisgICAgYWNfY3ZfaGF2ZV90aHJlYWRzYWZlX3BvbGxzZXQ9bm8iCisKK1BBQ0tBR0VDT05GSUcgPz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3NlbGludXgnLCBkKX0iCitQQUNLQUdFQ09ORklHW3NlbGludXhdID0gIi0tZW5hYmxlLXNlbGludXggLS1lbmFibGUtbGF5b3V0PURlYmlhbiAtLXByZWZpeD0ke2Jhc2VfcHJlZml4fS8sLS1kaXNhYmxlLXNlbGludXgsbGlic2VsaW51eCxsaWJzZWxpbnV4IgorUEFDS0FHRUNPTkZJR1tvcGVubGRhcF0gPSAiLS1lbmFibGUtbGRhcCAtLWVuYWJsZS1hdXRobnotbGRhcCwtLWRpc2FibGUtbGRhcCAtLWRpc2FibGUtYXV0aG56LWxkYXAsb3BlbmxkYXAiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworICAgICAgICBzZWQgLWkgLWUgJ3M6JCcne3ByZWZpeH0vdXNyL2xpYi9jZ2ktYmluOiQnJ3tsaWJkaXJ9L2NnaS1iaW46ZycgJHtTfS9jb25maWcubGF5b3V0Cit9CisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZAorICAgIGNhdCAke1dPUktESVJ9L2luaXQgfCBcCisgICAgICAgIHNlZCAtZSAncywvdXNyL3NiaW4vLCR7c2JpbmRpcn0vLGcnIFwKKyAgICAgICAgICAgIC1lICdzLC91c3IvYmluLywke2JpbmRpcn0vLGcnIFwKKyAgICAgICAgICAgIC1lICdzLC91c3IvbGliLCR7bGliZGlyfS8sZycgXAorICAgICAgICAgICAgLWUgJ3MsL2V0Yy8sJHtzeXNjb25mZGlyfS8sZycgXAorICAgICAgICAgICAgLWUgJ3MsL3Vzci8sJHtwcmVmaXh9LyxnJyA+ICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQvJHtCUE59CisgICAgY2htb2QgNzU1ICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQvJHtCUE59CisgICAgIyByZW1vdmUgdGhlIGdvb2Z5IG9yaWdpbmFsIGZpbGVzLi4uCisgICAgcm0gLXJmICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vb3JpZ2luYWwKKyAgICAjIEV4cGF0IHNob3VsZCBiZSBmb3VuZCBpbiB0aGUgc3RhZ2luZyBhcmVhIHZpYSBERVBFTkRTLi4uCisgICAgcm0gLWYgJHtEfS8ke2xpYmRpcn0vbGliZXhwYXQuKgorCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS8ke0JQTn0vY29uZi5kCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS8ke0JQTn0vbW9kdWxlcy5kCisKKyAgICAjIEVuc3VyZSBjb25maWd1cmF0aW9uIGZpbGUgcHVsbHMgaW4gY29uZi5kIGFuZCBtb2R1bGVzLmQKKyAgICBwcmludGYgIlxuSW5jbHVkZU9wdGlvbmFsICR7c3lzY29uZmRpcn0vJHtCUE59L2NvbmYuZC8qLmNvbmYiID4+ICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZgorICAgIHByaW50ZiAiXG5JbmNsdWRlT3B0aW9uYWwgJHtzeXNjb25mZGlyfS8ke0JQTn0vbW9kdWxlcy5kLyoubG9hZCIgPj4gJHtEfS8ke3N5c2NvbmZkaXJ9LyR7QlBOfS9odHRwZC5jb25mCisgICAgcHJpbnRmICJcbkluY2x1ZGVPcHRpb25hbCAke3N5c2NvbmZkaXJ9LyR7QlBOfS9tb2R1bGVzLmQvKi5jb25mXG5cbiIgPj4gJHtEfS8ke3N5c2NvbmZkaXJ9LyR7QlBOfS9odHRwZC5jb25mCisgICAgIyBtYXRjaCB3aXRoIHRoYXQgaXMgaW4gaW5pdCBzY3JpcHQKKyAgICBwcmludGYgIlxuUGlkRmlsZSAvcnVuL2h0dHBkLnBpZCIgPj4gJHtEfS8ke3N5c2NvbmZkaXJ9LyR7QlBOfS9odHRwZC5jb25mCisgICAgIyBTZXQgJ1NlcnZlck5hbWUnIHRvIGZpeCBlcnJvciBtZXNzYWdlcyB3aGVuIHJlc3RhcnQgYXBhY2hlIHNlcnZpY2UKKyAgICBzZWQgLWkgJ3MvXiNTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLmNvbS9TZXJ2ZXJOYW1lIGxvY2FsaG9zdC8nICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZgorCisgICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KKyAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kLworICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9hcGFjaGUyLXZvbGF0aWxlLmNvbmYgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC8KKyAgICBlbGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdmluaXQnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgorICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzCisgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3ZvbGF0aWxlcy4wNF9hcGFjaGUyICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzLzA0X2FwYWNoZTIKKyAgICBmaQorCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2FwYWNoZTIuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIHNlZCAtaSAtZSAncyxAU0JJTkRJUkAsJHtzYmluZGlyfSxnJyAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9hcGFjaGUyLnNlcnZpY2UKKyAgICBzZWQgLWkgLWUgJ3MsQEJBU0VfQklORElSQCwke2Jhc2VfYmluZGlyfSxnJyAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9hcGFjaGUyLnNlcnZpY2UKKworICAgIGNob3duIC1SIHJvb3Q6cm9vdCAke0R9Cit9CisKK2RvX2luc3RhbGxfYXBwZW5kX2NsYXNzLXRhcmdldCgpIHsKKyAgICBzZWQgLWkgLWUgJ3MsJHtTVEFHSU5HX0RJUl9IT1NUfSwsZycgXAorICAgICAgICAgICAtZSAncyxBUFVfSU5DTFVERURJUiA9IC4qLEFQVV9JTkNMVURFRElSID0gLGcnIFwKKyAgICAgICAgICAgLWUgJ3MsQVBVX0NPTkZJRyA9IC4qLEFQVV9DT05GSUcgPSAsZycgJHtEfSR7ZGF0YWRpcn0vYXBhY2hlMi9idWlsZC9jb25maWdfdmFycy5taworCisgICAgc2VkIC1pIC1lICdzLCR7U1RBR0lOR19ESVJfSE9TVH0sLGcnIFwKKyAgICAgICAgICAgLWUgJ3MsIi4qL2NvbmZpZ3VyZSIsImNvbmZpZ3VyZSIsZycgJHtEfSR7ZGF0YWRpcn0vYXBhY2hlMi9idWlsZC9jb25maWcubmljZQorICAgIHJtIC1yZiAke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4KK30KKworU1lTUk9PVF9QUkVQUk9DRVNTX0ZVTkNTICs9ICJhcGFjaGVfc3lzcm9vdF9wcmVwcm9jZXNzIgorCithcGFjaGVfc3lzcm9vdF9wcmVwcm9jZXNzICgpIHsKKyAgICBpbnN0YWxsIC1kICR7U1lTUk9PVF9ERVNURElSfSR7YmluZGlyX2Nyb3Nzc2NyaXB0c30vCisgICAgaW5zdGFsbCAtbSA3NTUgJHtEfSR7YmluZGlyfS9hcHhzICR7U1lTUk9PVF9ERVNURElSfSR7YmluZGlyX2Nyb3Nzc2NyaXB0c30vCisgICAgaW5zdGFsbCAtZCAke1NZU1JPT1RfREVTVERJUn0ke3NiaW5kaXJ9LworICAgIGluc3RhbGwgLW0gNzU1ICR7RH0ke3NiaW5kaXJ9L2FwYWNoZWN0bCAke1NZU1JPT1RfREVTVERJUn0ke3NiaW5kaXJ9LworICAgIHNlZCAtaSAncyFteSAkaW5zdGFsbGJ1aWxkZGlyID0gLiohbXkgJGluc3RhbGxidWlsZGRpciA9ICIke1NUQUdJTkdfRElSX0hPU1R9LyR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkIjshJyAke1NZU1JPT1RfREVTVERJUn0ke2JpbmRpcl9jcm9zc3NjcmlwdHN9L2FweHMKKyAgICBzZWQgLWkgJ3MhbXkgJGxpYnRvb2wgPSAuKiFteSAkbGlidG9vbCA9ICIke1NUQUdJTkdfQklORElSX0NST1NTfS8ke0hPU1RfU1lTfS1saWJ0b29sIjshJyAke1NZU1JPT1RfREVTVERJUn0ke2JpbmRpcl9jcm9zc3NjcmlwdHN9L2FweHMKKworICAgIHNlZCAtaSAncyFeQVBSX0NPTkZJRyA9IC4qIUFQUl9DT05GSUcgPSAke1NUQUdJTkdfQklORElSX0NST1NTfS9hcHItMS1jb25maWchJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5taworICAgIHNlZCAtaSAncyFeQVBVX0NPTkZJRyA9IC4qIUFQVV9DT05GSUcgPSAke1NUQUdJTkdfQklORElSX0NST1NTfS9hcHUtMS1jb25maWchJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5taworICAgIHNlZCAtaSAncyFeaW5jbHVkZWRpciA9IC4qIWluY2x1ZGVkaXIgPSAke1NUQUdJTkdfSU5DRElSfS9hcGFjaGUyIScgJHtTWVNST09UX0RFU1RESVJ9JHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQvY29uZmlnX3ZhcnMubWsKKyAgICBzZWQgLWkgJ3MhXkNGTEFHUyA9IC1JW14gXSohQ0ZMQUdTID0gLUkke1NUQUdJTkdfSU5DRElSfS9vcGVuc3NsIScgJHtTWVNST09UX0RFU1RESVJ9JHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQvY29uZmlnX3ZhcnMubWsKKyAgICBzZWQgLWkgJ3MhXkVYVFJBX0xERkxBR1MgPSAuKiFFWFRSQV9MREZMQUdTID0gLUwke1NUQUdJTkdfTElCRElSfSEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCisgICAgc2VkIC1pICdzIV5FWFRSQV9JTkNMVURFUyA9IC4qIUVYVFJBX0lOQ0xVREVTID0gLUkkKGluY2x1ZGVkaXIpIC1JLiAtSSR7U1RBR0lOR19JTkNESVJ9IScgJHtTWVNST09UX0RFU1RESVJ9JHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQvY29uZmlnX3ZhcnMubWsKKyAgICBzZWQgLWkgJ3MhLS1zeXNyb290PVteIF0qIS0tc3lzcm9vdD0ke1NUQUdJTkdfRElSX0hPU1R9IScgJHtTWVNST09UX0RFU1RESVJ9JHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQvY29uZmlnX3ZhcnMubWsKK30KKworIworIyBpbXBsaWNhdGlvbnMgLSB1c2VkIGJ5IHVwZGF0ZS1yYy5kIHNjcmlwdHMKKyMKK0lOSVRTQ1JJUFRfTkFNRSA9ICJhcGFjaGUyIgorSU5JVFNDUklQVF9QQVJBTVMgPSAiZGVmYXVsdHMgOTEgMjAiCitMRUFEX1NPTkFNRSA9ICJsaWJhcHItMS5zby4wIgorCitQQUNLQUdFUyA9ICIke1BOfS1zY3JpcHRzICR7UE59LWRvYyAke1BOfS1kZXYgJHtQTn0tZGJnICR7UE59IgorCitDT05GRklMRVNfJHtQTn0gPSAiJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZiBcCisgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS8ke0JQTn0vbWFnaWMgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vJHtCUE59L21pbWUudHlwZXMgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kLyR7QlBOfSAiCisKKyMgd2Ugb3ZlcnJpZGUgaGVyZSByYXRoZXIgdGhhbiBhcHBlbmQgc28gdGhhdCAuc28gbGlua3MgYXJlCisjIGluY2x1ZGVkIGluIHRoZSBydW50aW1lIHBhY2thZ2UgcmF0aGVyIHRoYW4gaGVyZSAoLWRldikKKyMgYW5kIHRvIGdldCBidWlsZCwgaWNvbnMsIGVycm9yIGludG8gdGhlIC1kZXYgcGFja2FnZQorRklMRVNfJHtQTn0tZGV2ID0gIiR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkIFwKKyAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9LyR7QlBOfS9pY29ucyBcCisgICAgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS8ke0JQTn0vZXJyb3IgXAorICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9hcHItY29uZmlnICR7YmluZGlyfS9hcHUtY29uZmlnIFwKKyAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vYXByKi5leHAgXAorICAgICAgICAgICAgICAgICAgICR7aW5jbHVkZWRpcn0vJHtCUE59IFwKKyAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vKi5sYSBcCisgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9LyouYSBcCisgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L2FweHMgXAorICAgICAgICAgICAgICAgICIKKworCisjIG1hbnVhbCB0byBtYW51YWwKK0ZJTEVTXyR7UE59LWRvYyArPSAiICR7ZGF0YWRpcn0vJHtCUE59L21hbnVhbCIKKworRklMRVNfJHtQTn0tc2NyaXB0cyArPSAiJHtiaW5kaXJ9L2RibW1hbmFnZSIKKworIworIyBvdmVycmlkZSB0aGlzIHRvbyAtIGhlcmUgaXMgdGhlIGRlZmF1bHQsIGxlc3MgZGF0YWRpcgorIworRklMRVNfJHtQTn0gPSAgIiR7YmluZGlyfSAke3NiaW5kaXJ9ICR7bGliZXhlY2Rpcn0gJHtsaWJkaXJ9L2xpYiouc28uKiAke3N5c2NvbmZkaXJ9IFwKKyAgICAgICAgICAgICAgICAke3NoYXJlZHN0YXRlZGlyfSAke2xvY2Fsc3RhdGVkaXJ9IC9iaW4gL3NiaW4gL2xpYi8qLnNvKiBcCisgICAgICAgICAgICAgICAgJHtsaWJkaXJ9LyR7QlBOfSIKKworIyB3ZSB3YW50IGh0ZG9jcyBhbmQgY2dpLWJpbiB0byBnbyB3aXRoIHRoZSBiaW5hcnkKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9LyR7QlBOfS9odGRvY3MgJHtkYXRhZGlyfS8ke0JQTn0vY2dpLWJpbiIKKworI21ha2Ugc3VyZSB0aGUgbG9uZSAuc28gbGlua3MgYWxzbyBnZXQgd3JhcHBlZCBpbiB0aGUgYmFzZSBwYWNrYWdlCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L2xpYiouc28gJHtsaWJkaXJ9L3BrZ2NvbmZpZy8qIgorCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS8ke0JQTn0vbW9kdWxlcy8uZGVidWciCisKK1JERVBFTkRTXyR7UE59ICs9ICJvcGVuc3NsIGxpYmdjYyIKK1JERVBFTkRTXyR7UE59LXNjcmlwdHMgKz0gInBlcmwgJHtQTn0iCitSREVQRU5EU18ke1BOfS1kZXYgPSAicGVybCIKKworRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9jZ2ktYmluIgorRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vJHtCUE59LyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9oaWF3YXRoYS9oaWF3YXRoYV8xMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2hpYXdhdGhhL2hpYXdhdGhhXzEwLjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiNmFiMjYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2hpYXdhdGhhL2hpYXdhdGhhXzEwLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi1TVU1NQVJZID0gIkxpZ2h0d2VpZ2h0IHNlY3VyZSB3ZWIgc2VydmVyIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5oaWF3YXRoYS13ZWJzZXJ2ZXIub3JnIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgotREVQRU5EUyA9ICJsaWJ4bWwyIGxpYnhzbHQiCi0KLVNFQ1RJT04gPSAibmV0IgotCi1TUkNfVVJJID0gImh0dHA6Ly9oaWF3YXRoYS13ZWJzZXJ2ZXIub3JnL2ZpbGVzLyR7QlB9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly9oaWF3YXRoYS1pbml0IFwKLSAgICAgICAgICAgZmlsZTovL2hpYXdhdGhhLnNlcnZpY2UgIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMzE1NjdkZmMxOGQ0MzViZDQxOWJlMjc5Zjc5NzAwMTkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTlkMTg1ZmIxNmJiMWFiNzA2NzI0NDk0ZDNjYWM4NjQ2NGYxNDg1ZWQ0YjBmZmYwOWExOTJlY2E2ZGE1ZmY4ZSIKLQotSU5JVFNDUklQVF9OQU1FID0gImhpYXdhdGhhIgotSU5JVFNDUklQVF9QQVJBTVMgPSAiZGVmYXVsdHMgNzAiCi0KLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJoaWF3YXRoYS5zZXJ2aWNlIgotCi1pbmhlcml0IGNtYWtlIHVwZGF0ZS1yYy5kIHN5c3RlbWQKLQotRVhUUkFfT0VDTUFLRSA9ICIgLURFTkFCTEVfSVBWNj1PRkYgXAotICAgICAgICAgICAgICAgICAgLURFTkFCTEVfQ0FDSEU9T0ZGIFwKLSAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX0RFQlVHPU9GRiBcCi0gICAgICAgICAgICAgICAgICAtREVOQUJMRV9TU0w9T0ZGIFwKLSAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX1RPT0xLSVQ9T0ZGIFwKLSAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX0NIUk9PVD1PRkYgXAotICAgICAgICAgICAgICAgICAgLURFTkFCTEVfWFNMVD1PTiBcCi0gICAgICAgICAgICAgICAgICAtREVOQUJMRV9UT01BSEFXSz1PRkYgXAotICAgICAgICAgICAgICAgICAgLURDTUFLRV9JTlNUQUxMX01BTkRJUj0ke21hbmRpcn0gXAotICAgICAgICAgICAgICAgICAgLURDTUFLRV9JTlNUQUxMX0JJTkRJUj0ke2JpbmRpcn0gXAotICAgICAgICAgICAgICAgICAgLURDTUFLRV9JTlNUQUxMX1NCSU5ESVI9JHtzYmluZGlyfSBcCi0gICAgICAgICAgICAgICAgICAtRENNQUtFX0lOU1RBTExfU1lTQ09ORkRJUj0ke3N5c2NvbmZkaXJ9IFwKLSAgICAgICAgICAgICAgICAgIC1EQ01BS0VfSU5TVEFMTF9MSUJESVI9JHtsaWJkaXJ9IFwKLSAgICAgICAgICAgICAgICAgIC1EQ01BS0VfSU5TVEFMTF9GVUxMX0xPQ0FMU1RBVEVESVI9JHtsb2NhbHN0YXRlZGlyfSIKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgIyBDb3B5IG92ZXIgaW5pdCBzY3JpcHQgYW5kIHNlZCBpbiB0aGUgY29ycmVjdCBzYmluIHBhdGgKLSAgICBzZWQgLWkgJ3Msc2VkX3NiaW5fcGF0aCwke3NiaW5kaXJ9LCcgJHtXT1JLRElSfS9oaWF3YXRoYS1pbml0Ci0gICAgbWtkaXIgLXAgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCi0gICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vaGlhd2F0aGEtaW5pdCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvaGlhd2F0aGEKLQotICAgICMgY29uZmlndXJlIHBocC1mY2dpIHRvIGhhdmUgYSB3b3JraW5nIGNvbmZpZ3VyYXRpb24KLSAgICAjIGJ5IGRlZmF1bHQgaWYgcGhwIGlzIGluc3RhbGxlZAotICAgIGVjaG8gIlNlcnZlciA9ICR7YmluZGlyfS9waHAtY2dpIDsgMiA7IDEyNy4wLjAuMToyMDA1IDsgbm9ib2R5Om5vYm9keSA7ICR7c3lzY29uZmRpcn0vcGhwL2hpYXdhdGhhLXBocDUvcGhwLmluaSIgPj4gJHtEfSR7c3lzY29uZmRpcn0vaGlhd2F0aGEvcGhwLWZjZ2kuY29uZgotCi0gICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLCd0cnVlJywnZmFsc2UnLGQpfTsgdGhlbgotICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQotICAgICAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L2hpYXdhdGhhLnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgZmkKLQotICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICIke0R9JHtsb2NhbHN0YXRlZGlyfSIgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3J1biIKLX0KLQotQ09ORkZJTEVTXyR7UE59ID0gIiBcCi0gICAgJHtzeXNjb25mZGlyfS9oaWF3YXRoYS9jZ2ktd3JhcHBlci5jb25mIFwKLSAgICAke3N5c2NvbmZkaXJ9L2hpYXdhdGhhL2hpYXdhdGhhLmNvbmYgXAotICAgICR7c3lzY29uZmRpcn0vaGlhd2F0aGEvaW5kZXgueHNsdCBcCi0gICAgJHtzeXNjb25mZGlyfS9oaWF3YXRoYS9taW1ldHlwZS5jb25mIFwKLSAgICAke3N5c2NvbmZkaXJ9L2hpYXdhdGhhL3BocC1mY2dpLmNvbmYgXAotIgotCi1GSUxFU18ke1BOfS1kZXYgPSAiJHtsaWJkaXJ9L2hpYXdhdGhhLyoke1NPTElCU0RFVn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvaGlhd2F0aGEvaGlhd2F0aGFfMTAuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9oaWF3YXRoYS9oaWF3YXRoYV8xMC43LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjM2NhNTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvaGlhd2F0aGEvaGlhd2F0aGFfMTAuNy5iYgpAQCAtMCwwICsxLDY0IEBACitTVU1NQVJZID0gIkxpZ2h0d2VpZ2h0IHNlY3VyZSB3ZWIgc2VydmVyIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5oaWF3YXRoYS13ZWJzZXJ2ZXIub3JnIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgorREVQRU5EUyA9ICJsaWJ4bWwyIGxpYnhzbHQiCisKK1NFQ1RJT04gPSAibmV0IgorCitTUkNfVVJJID0gImh0dHA6Ly9oaWF3YXRoYS13ZWJzZXJ2ZXIub3JnL2ZpbGVzLyR7QlB9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9oaWF3YXRoYS1pbml0IFwKKyAgICAgICAgICAgZmlsZTovL2hpYXdhdGhhLnNlcnZpY2UgIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNTgxYWE3MWM4MzExNzJiYTA2OTEwZGVkYTcxNzMwMmYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzYzZTk5ZDg0YTg1ZGFmYmI3NGJjYzMwYjNlMzAyODYwNTNlYzJhYmJjN2FmZTA4Y2Q4NzE5MzYxMTczNWY3NCIKKworSU5JVFNDUklQVF9OQU1FID0gImhpYXdhdGhhIgorSU5JVFNDUklQVF9QQVJBTVMgPSAiZGVmYXVsdHMgNzAiCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJoaWF3YXRoYS5zZXJ2aWNlIgorCitpbmhlcml0IGNtYWtlIHVwZGF0ZS1yYy5kIHN5c3RlbWQKKworRVhUUkFfT0VDTUFLRSA9ICIgLURFTkFCTEVfSVBWNj1PRkYgXAorICAgICAgICAgICAgICAgICAgLURFTkFCTEVfQ0FDSEU9T0ZGIFwKKyAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX0RFQlVHPU9GRiBcCisgICAgICAgICAgICAgICAgICAtREVOQUJMRV9TU0w9T0ZGIFwKKyAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX1RPT0xLSVQ9T0ZGIFwKKyAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX0NIUk9PVD1PRkYgXAorICAgICAgICAgICAgICAgICAgLURFTkFCTEVfWFNMVD1PTiBcCisgICAgICAgICAgICAgICAgICAtREVOQUJMRV9UT01BSEFXSz1PRkYgXAorICAgICAgICAgICAgICAgICAgLURDTUFLRV9JTlNUQUxMX01BTkRJUj0ke21hbmRpcn0gXAorICAgICAgICAgICAgICAgICAgLURDTUFLRV9JTlNUQUxMX0JJTkRJUj0ke2JpbmRpcn0gXAorICAgICAgICAgICAgICAgICAgLURDTUFLRV9JTlNUQUxMX1NCSU5ESVI9JHtzYmluZGlyfSBcCisgICAgICAgICAgICAgICAgICAtRENNQUtFX0lOU1RBTExfU1lTQ09ORkRJUj0ke3N5c2NvbmZkaXJ9IFwKKyAgICAgICAgICAgICAgICAgIC1EQ01BS0VfSU5TVEFMTF9MSUJESVI9JHtsaWJkaXJ9IFwKKyAgICAgICAgICAgICAgICAgIC1EQ01BS0VfSU5TVEFMTF9GVUxMX0xPQ0FMU1RBVEVESVI9JHtsb2NhbHN0YXRlZGlyfSIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgIyBDb3B5IG92ZXIgaW5pdCBzY3JpcHQgYW5kIHNlZCBpbiB0aGUgY29ycmVjdCBzYmluIHBhdGgKKyAgICBzZWQgLWkgJ3Msc2VkX3NiaW5fcGF0aCwke3NiaW5kaXJ9LCcgJHtXT1JLRElSfS9oaWF3YXRoYS1pbml0CisgICAgbWtkaXIgLXAgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vaGlhd2F0aGEtaW5pdCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvaGlhd2F0aGEKKworICAgICMgY29uZmlndXJlIHBocC1mY2dpIHRvIGhhdmUgYSB3b3JraW5nIGNvbmZpZ3VyYXRpb24KKyAgICAjIGJ5IGRlZmF1bHQgaWYgcGhwIGlzIGluc3RhbGxlZAorICAgIGVjaG8gIlNlcnZlciA9ICR7YmluZGlyfS9waHAtY2dpIDsgMiA7IDEyNy4wLjAuMToyMDA1IDsgbm9ib2R5Om5vYm9keSA7ICR7c3lzY29uZmRpcn0vcGhwL2hpYXdhdGhhLXBocDUvcGhwLmluaSIgPj4gJHtEfSR7c3lzY29uZmRpcn0vaGlhd2F0aGEvcGhwLWZjZ2kuY29uZgorCisgICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLCd0cnVlJywnZmFsc2UnLGQpfTsgdGhlbgorICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgICAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L2hpYXdhdGhhLnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgZmkKKworICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICIke0R9JHtsb2NhbHN0YXRlZGlyfSIgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3J1biIKK30KKworQ09ORkZJTEVTXyR7UE59ID0gIiBcCisgICAgJHtzeXNjb25mZGlyfS9oaWF3YXRoYS9jZ2ktd3JhcHBlci5jb25mIFwKKyAgICAke3N5c2NvbmZkaXJ9L2hpYXdhdGhhL2hpYXdhdGhhLmNvbmYgXAorICAgICR7c3lzY29uZmRpcn0vaGlhd2F0aGEvaW5kZXgueHNsdCBcCisgICAgJHtzeXNjb25mZGlyfS9oaWF3YXRoYS9taW1ldHlwZS5jb25mIFwKKyAgICAke3N5c2NvbmZkaXJ9L2hpYXdhdGhhL3BocC1mY2dpLmNvbmYgXAorIgorCitGSUxFU18ke1BOfS1kZXYgPSAiJHtsaWJkaXJ9L2hpYXdhdGhhLyoke1NPTElCU0RFVn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbW9ua2V5L21vbmtleV8xLjUuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9tb25rZXkvbW9ua2V5XzEuNS42LmJiCmluZGV4IDk3ZGMyNzYuLjU1OWQyNTEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9tb25rZXkvbW9ua2V5XzEuNS42LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9tb25rZXkvbW9ua2V5XzEuNS42LmJiCkBAIC0xNyw2ICsxNyw5IEBACiBTUkNfVVJJW21kNXN1bV0gPSAiOTY5OWU0YzllYTZjZTZiOTg5OTA3YzI1MmFlODAyNTQiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2MzZDg0NTMwNmFhNzRlZTZlZmZkN2FiNjE2OWQxNmFjNGU2NDUwZTU2NDk1NGQwZDBiYWEyZDFlOWJlMWEyMiIKIAorVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9tb25rZXkvbW9ua2V5L3JlbGVhc2VzIgorVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAidig/UDxwdmVyPlxkKyhcLlxkKykrKS50YXIuZ3oiCisKIEVYVFJBX09FQ09ORiA9ICItLXBsdWdkaXI9JHtsaWJkaXJ9L21vbmtleS8gXAogICAgICAgICAgICAgICAgIC0tbG9nZGlyPSR7bG9jYWxzdGF0ZWRpcn0vbG9nL21vbmtleS8gXAogICAgICAgICAgICAgICAgIC0tcGlkZmlsZT0ke2xvY2Fsc3RhdGVkaXJ9L3J1bi9tb25rZXkucGlkIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9maWxlcy8wMDAxLUFsbG93LXRoZS1vdmVycmlkaW5nLW9mLXRoZS1lbmRpYW5uZXNzLXZpYS10aGUtY29uZmkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvZmlsZXMvMDAwMS1BbGxvdy10aGUtb3ZlcnJpZGluZy1vZi10aGUtZW5kaWFubmVzcy12aWEtdGhlLWNvbmZpLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmZDVlZTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvZmlsZXMvMDAwMS1BbGxvdy10aGUtb3ZlcnJpZGluZy1vZi10aGUtZW5kaWFubmVzcy12aWEtdGhlLWNvbmZpLnBhdGNoCkBAIC0wLDAgKzEsODAgQEAKK0Zyb20gYmU5OTcwYWExNmM1MTQyZWY4MTQ1MzFkNzRhMDc5OTBhOGU5ZWIxNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERlcmVrIFN0cmFrYSA8ZGVyZWtAYXN0ZXJpdXMuaW8+CitEYXRlOiBGcmksIDEgRGVjIDIwMTcgMTA6MzI6MjkgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gQWxsb3cgdGhlIG92ZXJyaWRpbmcgb2YgdGhlIGVuZGlhbm5lc3MgdmlhIHRoZSBjb25maWd1cmUgZmxhZworIC0td2l0aC1lbmRpYW4KKworVGhlIGV4aXN0aW5nIGNvbmZpZ3VyZSBvcHRpb25zIGNvbnRhaW4gdGhlIC0td2l0aC1lbmRpYW47IGhvd2V2ZXIsIHRoZSBjb21tYW5kCitsaW5lIGZsYWcgZG9lcyBub3QgYWN0dWFsbHkgZnVuY3Rpb24uICBJdCBkb2VzIG5vdCBzZXQgdGhlIGVuZGlhbm5lc3MgYW5kIGl0CithcHBlYXJzIHRvIGRvIG5vdGhpbmcuCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBEZXJlayBTdHJha2EgPGRlcmVrQGFzdGVyaXVzLmlvPgorCitkaWZmIC0tZ2l0IGEvYXV0by9lbmRpYW5uZXNzIGIvYXV0by9lbmRpYW5uZXNzCitpbmRleCAxYjU1MmI2Li5iZTg0NDg3IDEwMDY0NAorLS0tIGEvYXV0by9lbmRpYW5uZXNzCisrKysgYi9hdXRvL2VuZGlhbm5lc3MKK0BAIC0xMyw3ICsxMywxMyBAQCBjaGVja2luZyBmb3Igc3lzdGVtIGJ5dGUgb3JkZXJpbmcKKyBFTkQKKyAKKyAKKy1jYXQgPDwgRU5EID4gJE5HWF9BVVRPVEVTVC5jCisraWYgWyAiLiROR1hfV0lUSF9FTkRJQU4iID0gIi5saXR0bGUiIF07IHRoZW4KKysgICAgZWNobyAiIGxpdHRsZSBlbmRpYW4iCisrICAgIGhhdmU9TkdYX0hBVkVfTElUVExFX0VORElBTiAuIGF1dG8vaGF2ZQorK2VsaWYgWyAiLiROR1hfV0lUSF9FTkRJQU4iID0gIi5iaWciIF07IHRoZW4KKysgICAgZWNobyAiIGJpZyBlbmRpYW4iCisrZWxzZQorKyAgICBjYXQgPDwgRU5EID4gJE5HWF9BVVRPVEVTVC5jCisgCisgaW50IG1haW4odm9pZCkgeworICAgICBpbnQgaSA9IDB4MTEyMjMzNDQ7CitAQCAtMjYsMjUgKzMyLDI2IEBAIGludCBtYWluKHZvaWQpIHsKKyAKKyBFTkQKKyAKKy1uZ3hfdGVzdD0iJENDICRDQ19URVNUX0ZMQUdTICRDQ19BVVhfRkxBR1MgXAorLSAgICAgICAgICAtbyAkTkdYX0FVVE9URVNUICROR1hfQVVUT1RFU1QuYyAkTkdYX0xEX09QVCAkbmd4X2ZlYXR1cmVfbGlicyIKKysgICAgbmd4X3Rlc3Q9IiRDQyAkQ0NfVEVTVF9GTEFHUyAkQ0NfQVVYX0ZMQUdTIFwKKysgICAgICAgICAgICAgIC1vICROR1hfQVVUT1RFU1QgJE5HWF9BVVRPVEVTVC5jICROR1hfTERfT1BUICRuZ3hfZmVhdHVyZV9saWJzIgorIAorLWV2YWwgIiRuZ3hfdGVzdCA+PiAkTkdYX0FVVE9DT05GX0VSUiAyPiYxIgorKyAgICBldmFsICIkbmd4X3Rlc3QgPj4gJE5HWF9BVVRPQ09ORl9FUlIgMj4mMSIKKyAKKy1pZiBbIC14ICROR1hfQVVUT1RFU1QgXTsgdGhlbgorLSAgICBpZiAkTkdYX0FVVE9URVNUID4vZGV2L251bGwgMj4mMTsgdGhlbgorLSAgICAgICAgZWNobyAiIGxpdHRsZSBlbmRpYW4iCistICAgICAgICBoYXZlPU5HWF9IQVZFX0xJVFRMRV9FTkRJQU4gLiBhdXRvL2hhdmUKKy0gICAgZWxzZQorLSAgICAgICAgZWNobyAiIGJpZyBlbmRpYW4iCistICAgIGZpCisrICAgIGlmIFsgLXggJE5HWF9BVVRPVEVTVCBdOyB0aGVuCisrICAgICAgICBpZiAkTkdYX0FVVE9URVNUID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICAgICAgICAgIGVjaG8gIiBsaXR0bGUgZW5kaWFuIgorKyAgICAgICAgICAgIGhhdmU9TkdYX0hBVkVfTElUVExFX0VORElBTiAuIGF1dG8vaGF2ZQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIGVjaG8gIiBiaWcgZW5kaWFuIgorKyAgICAgICAgZmkKKyAKKy0gICAgcm0gLXJmICROR1hfQVVUT1RFU1QqCisrICAgICAgICBybSAtcmYgJE5HWF9BVVRPVEVTVCoKKyAKKy1lbHNlCistICAgIHJtIC1yZiAkTkdYX0FVVE9URVNUKgorKyAgICBlbHNlCisrICAgICAgICBybSAtcmYgJE5HWF9BVVRPVEVTVCoKKyAKKy0gICAgZWNobworLSAgICBlY2hvICIkMDogZXJyb3I6IGNhbm5vdCBkZXRlY3Qgc3lzdGVtIGJ5dGUgb3JkZXJpbmciCistICAgIGV4aXQgMQorKyAgICAgICAgZWNobworKyAgICAgICAgZWNobyAiJDA6IGVycm9yOiBjYW5ub3QgZGV0ZWN0IHN5c3RlbSBieXRlIG9yZGVyaW5nIgorKyAgICAgICAgZXhpdCAxCisrICAgIGZpCisgZmkKKy0tIAorMi43LjQKKworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvZmlsZXMvbmdpbngtY3Jvc3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvZmlsZXMvbmdpbngtY3Jvc3MucGF0Y2gKaW5kZXggNWU5NjY0NC4uMGExOGJjZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzL25naW54LWNyb3NzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9maWxlcy9uZ2lueC1jcm9zcy5wYXRjaApAQCAtMywxMCArMywxMSBAQAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIAotZGlmZiAtdXJhTiBuZ2lueC0xLjAuMTEub3JpZy9hdXRvL2ZlYXR1cmUgbmdpbngtMS4wLjExL2F1dG8vZmVhdHVyZQotLS0tIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vZmVhdHVyZQkyMDExLTA1LTExIDA2OjUwOjE5LjAwMDAwMDAwMCAtMDUwMAotKysrIG5naW54LTEuMC4xMS9hdXRvL2ZlYXR1cmUJMjAxMS0xMi0yNyAxMzo1Njo0Mi4zMjMzNzAwNDAgLTA2MDAKLUBAIC00OSwxMiArNDksMjAgQEAKK0luZGV4OiBuZ2lueC0xLjEyLjIvYXV0by9mZWF0dXJlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmdpbngtMS4xMi4yLm9yaWcvYXV0by9mZWF0dXJlCisrKysgbmdpbngtMS4xMi4yL2F1dG8vZmVhdHVyZQorQEAgLTQ5LDEyICs0OSwyMCBAQCBldmFsICIvYmluL3NoIC1jIFwiJG5neF90ZXN0XCIgPj4gJE5HWF9BCiAgCiAgaWYgWyAteCAkTkdYX0FVVE9URVNUIF07IHRoZW4KICAKQEAgLTI5LDcgKzMwLDcgQEAKICAgICAgICAgICAgICAgICAgbmd4X2ZvdW5kPXllcwogIAogICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkbmd4X2ZlYXR1cmVfbmFtZSI7IHRoZW4KLUBAIC02OCwxNyArNzUsMjcgQEAKK0BAIC02OCwxNyArNzYsMjcgQEAgaWYgWyAteCAkTkdYX0FVVE9URVNUIF07IHRoZW4KICAKICAgICAgICAgIHZhbHVlKQogICAgICAgICAgICAgICMgL2Jpbi9zaCBpcyB1c2VkIHRvIGludGVyY2VwdCAiS2lsbGVkIiBvciAiQWJvcnQgdHJhcCIgbWVzc2FnZXMKQEAgLTYxLDcgKzYyLDcgQEAKICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIGVjaG8gIiBmb3VuZCBidXQgaXMgbm90IHdvcmtpbmciCiAgICAgICAgICAgICAgZmkKLUBAIC04Niw3ICsxMDUsNyBAQAorQEAgLTg2LDcgKzEwNCw3IEBAIEVORAogIAogICAgICAgICAgYnVnKQogICAgICAgICAgICAgICMgL2Jpbi9zaCBpcyB1c2VkIHRvIGludGVyY2VwdCAiS2lsbGVkIiBvciAiQWJvcnQgdHJhcCIgbWVzc2FnZXMKQEAgLTcwLDEwICs3MSwxMSBAQAogICAgICAgICAgICAgICAgICBlY2hvICIgbm90IGZvdW5kIgogIAogICAgICAgICAgICAgIGVsc2UKLWRpZmYgLXVyYU4gbmdpbngtMS4wLjExLm9yaWcvYXV0by9vcHRpb25zIG5naW54LTEuMC4xMS9hdXRvL29wdGlvbnMKLS0tLSBuZ2lueC0xLjAuMTEub3JpZy9hdXRvL29wdGlvbnMJMjAxMS0xMi0xNCAwNzozNDoxNi4wMDAwMDAwMDAgLTA2MDAKLSsrKyBuZ2lueC0xLjAuMTEvYXV0by9vcHRpb25zCTIwMTEtMTItMjcgMTM6NTY6NDIuMzIzMzcwMDQwIC0wNjAwCi1AQCAtMzUzLDYgKzM1MywxOCBAQAorSW5kZXg6IG5naW54LTEuMTIuMi9hdXRvL29wdGlvbnMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZ2lueC0xLjEyLjIub3JpZy9hdXRvL29wdGlvbnMKKysrKyBuZ2lueC0xLjEyLjIvYXV0by9vcHRpb25zCitAQCAtMzg2LDYgKzM4NiwxOCBAQCAkMDogd2FybmluZzogdGhlIFwiLS13aXRoLXNoYTEtYXNtXCIgb3B0CiAgICAgICAgICAtLXRlc3QtYnVpbGQtZXBvbGwpICAgICAgICAgICAgICBOR1hfVEVTVF9CVUlMRF9FUE9MTD1ZRVMgICA7OwogICAgICAgICAgLS10ZXN0LWJ1aWxkLXNvbGFyaXMtc2VuZGZpbGV2KSAgTkdYX1RFU1RfQlVJTERfU09MQVJJU19TRU5ERklMRVY9WUVTIDs7CiAgCkBAIC05Miw3ICs5NCw3IEBACiAgICAgICAgICAqKQogICAgICAgICAgICAgIGVjaG8gIiQwOiBlcnJvcjogaW52YWxpZCBvcHRpb24gXCIkb3B0aW9uXCIiCiAgICAgICAgICAgICAgZXhpdCAxCi1AQCAtNTMzLDYgKzQ0NSwxNyBAQAorQEAgLTU2OCw2ICs1ODAsMTcgQEAgY2F0IDw8IEVORAogIAogICAgLS13aXRoLWRlYnVnICAgICAgICAgICAgICAgICAgICAgICBlbmFibGUgZGVidWcgbG9nZ2luZwogIApAQCAtMTEwLDcgKzExMiw3IEBACiAgRU5ECiAgCiAgICAgIGV4aXQgMQotQEAgLTU1NCw2ICs1NzcsOCBAQAorQEAgLTU3Niw2ICs1OTksOCBAQCBmaQogIAogIGlmIFsgIi4kTkdYX1BMQVRGT1JNIiA9ICIud2luMzIiIF07IHRoZW4KICAgICAgTkdYX1dJTkU9JFdJTkUKQEAgLTExOSwxMCArMTIxLDExIEBACiAgZmkKICAKICAKLWRpZmYgLXVyYU4gbmdpbngtMS4wLjExLm9yaWcvYXV0by90eXBlcy9zaXplb2YgbmdpbngtMS4wLjExL2F1dG8vdHlwZXMvc2l6ZW9mCi0tLS0gbmdpbngtMS4wLjExLm9yaWcvYXV0by90eXBlcy9zaXplb2YJMjAwNi0wNi0yOCAxMTowMDoyNi4wMDAwMDAwMDAgLTA1MDAKLSsrKyBuZ2lueC0xLjAuMTEvYXV0by90eXBlcy9zaXplb2YJMjAxMS0xMi0yNyAxMzo1Njo0Mi4zMjMzNzAwNDAgLTA2MDAKLUBAIC0xMiw5ICsxMiwxMiBAQAorSW5kZXg6IG5naW54LTEuMTIuMi9hdXRvL3R5cGVzL3NpemVvZgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5naW54LTEuMTIuMi5vcmlnL2F1dG8vdHlwZXMvc2l6ZW9mCisrKysgbmdpbngtMS4xMi4yL2F1dG8vdHlwZXMvc2l6ZW9mCitAQCAtMTIsOSArMTIsMTIgQEAgY2hlY2tpbmcgZm9yICRuZ3hfdHlwZSBzaXplCiAgCiAgRU5ECiAgCkBAIC0xMzcsNyArMTQwLDcgQEAKICAKICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAgI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci1AQCAtMzMsMTUgKzM2LDE2IEBACitAQCAtMzMsMTUgKzM2LDE2IEBAIGludCBtYWluKHZvaWQpIHsKICBFTkQKICAKICAKQEAgLTE2MCwxMCArMTYzLDExIEBACiAgZmkKICAKICAKLWRpZmYgLXVyYU4gbmdpbngtMS4wLjExLm9yaWcvYXV0by91bml4IG5naW54LTEuMC4xMS9hdXRvL3VuaXgKLS0tLSBuZ2lueC0xLjAuMTEub3JpZy9hdXRvL3VuaXgJMjAxMS0xMi0xNCAwNzozNDoxNi4wMDAwMDAwMDAgLTA2MDAKLSsrKyBuZ2lueC0xLjAuMTEvYXV0by91bml4CTIwMTEtMTItMjcgMTM6NTY6NDIuMzI3MzcwMDYwIC0wNjAwCi1AQCAtMzkzLDEzICszOTMsMTMgQEAKK0luZGV4OiBuZ2lueC0xLjEyLjIvYXV0by91bml4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmdpbngtMS4xMi4yLm9yaWcvYXV0by91bml4CisrKysgbmdpbngtMS4xMi4yL2F1dG8vdW5peAorQEAgLTU4NywxMyArNTg3LDEzIEBAIG5neF9mZWF0dXJlX2xpYnM9CiAgCiAgIyBDIHR5cGVzCiAgCkBAIC0xODEsOCArMTg1LDggQEAKICBuZ3hfcGFyYW09TkdYX1BUUl9TSVpFOyBuZ3hfdmFsdWU9JG5neF9zaXplOyAuIGF1dG8vdHlwZXMvdmFsdWUKICAKICAKLUBAIC00MTYsNyArNDE2LDcgQEAKLSAKK0BAIC02MDQsNyArNjA0LDcgQEAgTkdYX0lOQ0xVREVfQVVUT19DT05GSUdfSD0iI2luY2x1ZGUgXCJuZworIG5neF90eXBlPSJ1aW50MzJfdCI7IG5neF90eXBlcz0idV9pbnQzMl90IjsgLiBhdXRvL3R5cGVzL3R5cGVkZWYKICBuZ3hfdHlwZT0idWludDY0X3QiOyBuZ3hfdHlwZXM9InVfaW50NjRfdCI7IC4gYXV0by90eXBlcy90eXBlZGVmCiAgCiAtbmd4X3R5cGU9InNpZ19hdG9taWNfdCI7IG5neF90eXBlcz0iaW50IjsgLiBhdXRvL3R5cGVzL3R5cGVkZWYKQEAgLTE5MCw5ICsxOTQsOSBAQAogIC4gYXV0by90eXBlcy9zaXplb2YKICBuZ3hfcGFyYW09TkdYX1NJR19BVE9NSUNfVF9TSVpFOyBuZ3hfdmFsdWU9JG5neF9zaXplOyAuIGF1dG8vdHlwZXMvdmFsdWUKICAKLUBAIC00MzIsMTUgKzQzMiwxNSBAQAorQEAgLTYyMCwxNSArNjIwLDE1IEBAIG5neF90eXBlPSJybGltX3QiOyBuZ3hfdHlwZXM9ImludCI7IC4gYXUKICAKLSAuIGF1dG8vZW5kaWFuZXNzCisgLiBhdXRvL2VuZGlhbm5lc3MKICAKIC1uZ3hfdHlwZT0ic2l6ZV90IjsgLiBhdXRvL3R5cGVzL3NpemVvZgogK25neF90eXBlPSJzaXplX3QiOyBuZ3hfcGFyYW09IlNJWkVfVCI7IC4gYXV0by90eXBlcy9zaXplb2YKQEAgLTIwOCw0ICsyMTIsNCBAQAogK25neF90eXBlPSJ0aW1lX3QiOyBuZ3hfcGFyYW09IlRJTUVfVCI7IC4gYXV0by90eXBlcy9zaXplb2YKICBuZ3hfcGFyYW09TkdYX1RJTUVfVF9TSVpFOyBuZ3hfdmFsdWU9JG5neF9zaXplOyAuIGF1dG8vdHlwZXMvdmFsdWUKICBuZ3hfcGFyYW09TkdYX1RJTUVfVF9MRU47IG5neF92YWx1ZT0kbmd4X21heF9sZW47IC4gYXV0by90eXBlcy92YWx1ZQotIAorIG5neF9wYXJhbT1OR1hfTUFYX1RJTUVfVF9WQUxVRTsgbmd4X3ZhbHVlPSRuZ3hfbWF4X3ZhbHVlOyAuIGF1dG8vdHlwZXMvdmFsdWUKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnguaW5jCmluZGV4IDRhOTdlMjYuLmU2YWU1MmEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54LmluYwpAQCAtMTQsMTMgKzE0LDE0IEBACiBTUkNfVVJJID0gIiBcCiAgICAgaHR0cDovL25naW54Lm9yZy9kb3dubG9hZC9uZ2lueC0ke1BWfS50YXIuZ3ogXAogICAgIGZpbGU6Ly9uZ2lueC1jcm9zcy5wYXRjaCBcCisgICAgZmlsZTovLzAwMDEtQWxsb3ctdGhlLW92ZXJyaWRpbmctb2YtdGhlLWVuZGlhbm5lc3MtdmlhLXRoZS1jb25maS5wYXRjaCBcCiAgICAgZmlsZTovL25naW54LmNvbmYgXAogICAgIGZpbGU6Ly9uZ2lueC5pbml0IFwKICAgICBmaWxlOi8vbmdpbngtdm9sYXRpbGUuY29uZiBcCiAgICAgZmlsZTovL25naW54LnNlcnZpY2UgXAogIgogCi1pbmhlcml0IHVwZGF0ZS1yYy5kIHVzZXJhZGQgc3lzdGVtZAoraW5oZXJpdCBzaXRlaW5mbyB1cGRhdGUtcmMuZCB1c2VyYWRkIHN5c3RlbWQKIAogU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gIm5naW54LnNlcnZpY2UiCiAKQEAgLTUwLDcgKzUxLDcgQEAKIAogICAgIC4vY29uZmlndXJlIFwKICAgICAtLWNyb3NzYnVpbGQ9TGludXg6JHtUVU5FX0FSQ0h9IFwKLSAgICAtLXdpdGgtZW5kaWFuPSR7QGJhc2VfY29uZGl0aW9uYWwoJ1NJVEVJTkZPX0VORElBTk5FU1MnLCAnbGUnLCAnbGl0dGxlJywgJ2JpZycsIGQpfSBcCisgICAgLS13aXRoLWVuZGlhbj0ke0BvZS51dGlscy5jb25kaXRpb25hbCgnU0lURUlORk9fRU5ESUFOTkVTUycsICdsZScsICdsaXR0bGUnLCAnYmlnJywgZCl9IFwKICAgICAtLXdpdGgtaW50PTQgXAogICAgIC0td2l0aC1sb25nPSR7UFRSU0laRX0gXAogICAgIC0td2l0aC1sb25nLWxvbmc9OCBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnhfMS4xMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuMTIuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YwZTNhZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnhfMS4xMi4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1yZXF1aXJlIG5naW54LmluYwotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT05MDM3NTNkZTVmODZhMWVlMDM0MWZkMmY5NDkxYjI4MiIKLQotU1JDX1VSSVttZDVzdW1dID0gImEzMDdlNzRhY2E5NTQwM2U1ZWUwMGYxNTM4MDdjZTU4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg3OTNiZjQyNjQ4NWEzMGY5MTAyMWI2Yjk0NWE5ZmQ4YTg0ZDg3ZDE3YjU2NjU2MmMzNzk3YWJhOGZhYzc2ZmIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnhfMS4xMi4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuMTIuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWFkMjliCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuMTIuMi5iYgpAQCAtMCwwICsxLDYgQEAKK3JlcXVpcmUgbmdpbnguaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTkwMzc1M2RlNWY4NmExZWUwMzQxZmQyZjk0OTFiMjgyIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNGQyZmM3NjIxMTQzNWYwMjkyNzFmMWNmNmQ3ZWVhZTMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzA1ZjM3OWRhMWQ1ZmI1YWVmYTc5ZTQ1YzgyOTg1MmNhNjk4M2M3Y2QyYTc5MzI4ZjhlMDg0YTMyNGNmMDQxNiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueF8xLjEzLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnhfMS4xMy41LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjJjMTE3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueF8xLjEzLjUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1yZXF1aXJlIG5naW54LmluYwotCi0jIDEuMTIueCBicmFuY2ggaXMgdGhlIGN1cnJlbnQgc3RhYmxlIGJyYW5jaCwgdGhlIHJlY29tbWVuZGVkIGRlZmF1bHQKLSMgMS4xMy54IGlzIHRoZSBjdXJyZW50IG1haW5saW5lIGJyYW5jaGVzIGNvbnRhaW5pbmcgYWxsIG5ldyBmZWF0dXJlcwotREVGQVVMVF9QUkVGRVJFTkNFID0gIi0xIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT05MDM3NTNkZTVmODZhMWVlMDM0MWZkMmY5NDkxYjI4MiIKLQotU1JDX1VSSVttZDVzdW1dID0gImYxOTM3MjIxNTlhZGZiMWViODExN2MwNDkxZmQxN2VjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjBlNzViOTQ0MjliM2Y3NDUzNzdhZWJhM2FmZjk3ZGE3N2JmMmIwM2ZjYjlmZjE1YjNiYWQ5YjAzOGRiMjlmMmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnhfMS4xMy45LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuMTMuOS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjM0Nzk0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuMTMuOS5iYgpAQCAtMCwwICsxLDEwIEBACityZXF1aXJlIG5naW54LmluYworCisjIDEuMTIueCBicmFuY2ggaXMgdGhlIGN1cnJlbnQgc3RhYmxlIGJyYW5jaCwgdGhlIHJlY29tbWVuZGVkIGRlZmF1bHQKKyMgMS4xMy54IGlzIHRoZSBjdXJyZW50IG1haW5saW5lIGJyYW5jaGVzIGNvbnRhaW5pbmcgYWxsIG5ldyBmZWF0dXJlcworREVGQVVMVF9QUkVGRVJFTkNFID0gIi0xIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zNjkxNDAyY2M1NGNlMDlmODAwY2EzNDg2MzRhMmRmZSIKKworU1JDX1VSSVttZDVzdW1dID0gImRjZDQ4MmRkOThkMjAyMjY1OTIxMmYxODNlOGZlODFiIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVmYWVhMTg4NTc1MTZmZTY4ZDMwYmUzOWMzMDMyYmQyMmVkOWNmODVlMWE2ZmRmMzJlMzcyMWQ5NmZmN2ZhNDIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvc3RodHRwZC9zdGh0dHBkXzIuMjcuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9zdGh0dHBkL3N0aHR0cGRfMi4yNy4xLmJiCmluZGV4IGM5ZmU1NWIuLjM3YmQ3NTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9zdGh0dHBkL3N0aHR0cGRfMi4yNy4xLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9zdGh0dHBkL3N0aHR0cGRfMi4yNy4xLmJiCkBAIC0xNCw2ICsxNCw5IEBACiBTUkNfVVJJW21kNXN1bV0gPSAiM2NkYTFiNmM4Yzg1NDJiMTUxMGVhZGI4ZTU0MGQ4YjYiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTFlZTI4MDY0MzJlYWY1YjVkZDI2N2EwNTIzNzAxZjlmMWZhMDBmZWZkNDk5ZDViZWM0MjE2NWE0MWUwNTg0NiIKIAorVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9ibHVlbmVzcy9zdGh0dHBkL3JlbGVhc2VzLyIKK1VQU1RSRUFNX0NIRUNLX1JFR0VYID0gInYoP1A8cHZlcj5cZCsoXC5cZCspKykudGFyLmd6IgorCiBTID0gIiR7V09SS0RJUn0vc3RodHRwZC0ke1BWfSIKIAogaW5oZXJpdCBhdXRvdG9vbHMgdXBkYXRlLXJjLmQgc3lzdGVtZApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW5fNC43LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3BocG15YWRtaW4vcGhwbXlhZG1pbl80LjcuNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjcyZGI1OC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3BocG15YWRtaW4vcGhwbXlhZG1pbl80LjcuNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLVNVTU1BUlkgPSAiV2ViLWJhc2VkIE15U1FMIGFkbWluaXN0cmF0aW9uIGludGVyZmFjZSIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cucGhwbXlhZG1pbi5uZXQiCi0jIE1haW4gY29kZSBpcyBHUEx2MiwgdmVuZG9yL3RlY25pY2tjb20vdGNwZGYgaXMgdW5kZXIgTEdQTHYzLCBqcy9qcXVlcnkgaXMgdW5kZXIgTUlUCi1MSUNFTlNFID0gIkdQTHYyICYgTEdQTHYzICYgTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vdmVuZG9yL3RlY25pY2tjb20vdGNwZGYvTElDRU5TRS5UWFQ7bWQ1PTVjODdiNjZhNTM1OGViY2M0OTViMDNlMGFmY2QzNDJjIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2pzL2pxdWVyeS9NSVQtTElDRU5TRS50eHQ7bWQ1PWU0M2FhNDM3YTZhMWJhNDIxNjUzYmQ1MDM0MzMzYmY5IFwKLSIKLQotU1JDX1VSSSA9ICJodHRwczovL2ZpbGVzLnBocG15YWRtaW4ubmV0L3BocE15QWRtaW4vJHtQVn0vcGhwTXlBZG1pbi0ke1BWfS1hbGwtbGFuZ3VhZ2VzLnRhci54eiBcCi0gICAgICAgICAgIGZpbGU6Ly9hcGFjaGUuY29uZiBcCi0iCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJhOWFlYzA1ZDQ0YzY4YjRhYzVlNDk4NzExOGQ3MGNkNyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1ZmFiNmI5MjMzNjM4NjY0NmJiYjE4OWQ1NTgxNzc5OTQ4N2I1YzI3YjA2Y2FiMGNkZmRjYWIzYzg4ZjU5ODhmIgotCi1TID0gIiR7V09SS0RJUn0vcGhwTXlBZG1pbi0ke1BWfS1hbGwtbGFuZ3VhZ2VzIgotCi1pbmhlcml0IGFsbGFyY2gKLQotZG9faW5zdGFsbCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9LyR7QlBOfQotICAgIGNwIC1SIC0tbm8tZGVyZWZlcmVuY2UgLS1wcmVzZXJ2ZT1tb2RlLGxpbmtzIC12ICogJHtEfSR7ZGF0YWRpcn0vJHtCUE59Ci0gICAgY2hvd24gLVIgcm9vdDpyb290ICR7RH0ke2RhdGFkaXJ9LyR7QlBOfQotICAgICMgRG9uJ3QgaW5zdGFsbCBwYXRjaGVzIHRvIHRhcmdldAotICAgIHJtIC1yZiAke0R9JHtkYXRhZGlyfS8ke0JQTn0vcGF0Y2hlcwotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9hcGFjaGUyL2NvbmYuZAotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2FwYWNoZS5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L2FwYWNoZTIvY29uZi5kL3BocG15YWRtaW4uY29uZgotCi0gICAgIyBSZW1vdmUgYSBmZXcgc2NyaXB0cyB0aGF0IGV4cGxpY2l0bHkgcmVxdWlyZSBiYXNoICghKQotICAgIHJtIC1mICR7RH0ke2RhdGFkaXJ9L3BocG15YWRtaW4vbGlicmFyaWVzL3RyYW5zZm9ybWF0aW9ucy8qLnNoCi19Ci0KLUZJTEVTXyR7UE59ID0gIiR7ZGF0YWRpcn0vJHtCUE59IFwKLSAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vYXBhY2hlMi9jb25mLmQiCi0KLVJERVBFTkRTXyR7UE59ICs9ICJiYXNoIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW5fNC43LjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3BocG15YWRtaW4vcGhwbXlhZG1pbl80LjcuOS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzE1NzJkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW5fNC43LjkuYmIKQEAgLTAsMCArMSw0MSBAQAorU1VNTUFSWSA9ICJXZWItYmFzZWQgTXlTUUwgYWRtaW5pc3RyYXRpb24gaW50ZXJmYWNlIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5waHBteWFkbWluLm5ldCIKKyMgTWFpbiBjb2RlIGlzIEdQTHYyLCB2ZW5kb3IvdGVjbmlja2NvbS90Y3BkZiBpcyB1bmRlciBMR1BMdjMsIGpzL2pxdWVyeSBpcyB1bmRlciBNSVQKK0xJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjMgJiBNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly92ZW5kb3IvdGVjbmlja2NvbS90Y3BkZi9MSUNFTlNFLlRYVDttZDU9NWM4N2I2NmE1MzU4ZWJjYzQ5NWIwM2UwYWZjZDM0MmMgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vanMvanF1ZXJ5L01JVC1MSUNFTlNFLnR4dDttZDU9ZTQzYWE0MzdhNmExYmE0MjE2NTNiZDUwMzQzMzNiZjkgXAorIgorCitTUkNfVVJJID0gImh0dHBzOi8vZmlsZXMucGhwbXlhZG1pbi5uZXQvcGhwTXlBZG1pbi8ke1BWfS9waHBNeUFkbWluLSR7UFZ9LWFsbC1sYW5ndWFnZXMudGFyLnh6IFwKKyAgICAgICAgICAgZmlsZTovL2FwYWNoZS5jb25mIFwKKyIKKworU1JDX1VSSVttZDVzdW1dID0gIjBhODYyZTNmYTUyYzhiOTA3OGUwNDQxZWU4MmJlODMxIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImYxOWI1MDNmMGFmYjBkZDMzODlkNGJiMTFkYWIzZjQzOGQzNmU4NWVlZjExYTVjNDAwYzU5MmZkNWY1MzkzOTgiCisKK1VQU1RSRUFNX0NIRUNLX1VSSSA9ICJodHRwczovL3d3dy5waHBteWFkbWluLm5ldC9kb3dubG9hZHMvIgorVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAicGhwTXlBZG1pbi0oP1A8cHZlcj5cZCsoXC5cZCspKyktYWxsLWxhbmd1YWdlcy50YXIueHoiCisKK1MgPSAiJHtXT1JLRElSfS9waHBNeUFkbWluLSR7UFZ9LWFsbC1sYW5ndWFnZXMiCisKK2luaGVyaXQgYWxsYXJjaAorCitkb19pbnN0YWxsKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vJHtCUE59CisgICAgY3AgLVIgLS1uby1kZXJlZmVyZW5jZSAtLXByZXNlcnZlPW1vZGUsbGlua3MgLXYgKiAke0R9JHtkYXRhZGlyfS8ke0JQTn0KKyAgICBjaG93biAtUiByb290OnJvb3QgJHtEfSR7ZGF0YWRpcn0vJHtCUE59CisgICAgIyBEb24ndCBpbnN0YWxsIHBhdGNoZXMgdG8gdGFyZ2V0CisgICAgcm0gLXJmICR7RH0ke2RhdGFkaXJ9LyR7QlBOfS9wYXRjaGVzCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2FwYWNoZTIvY29uZi5kCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vYXBhY2hlLmNvbmYgJHtEfSR7c3lzY29uZmRpcn0vYXBhY2hlMi9jb25mLmQvcGhwbXlhZG1pbi5jb25mCisKKyAgICAjIFJlbW92ZSBhIGZldyBzY3JpcHRzIHRoYXQgZXhwbGljaXRseSByZXF1aXJlIGJhc2ggKCEpCisgICAgcm0gLWYgJHtEfSR7ZGF0YWRpcn0vcGhwbXlhZG1pbi9saWJyYXJpZXMvdHJhbnNmb3JtYXRpb25zLyouc2gKK30KKworRklMRVNfJHtQTn0gPSAiJHtkYXRhZGlyfS8ke0JQTn0gXAorICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9hcGFjaGUyL2NvbmYuZCIKKworUkRFUEVORFNfJHtQTn0gKz0gImJhc2giCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3hkZWJ1Zy94ZGVidWdfMi41LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3hkZWJ1Zy94ZGVidWdfMi41LjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3NDEzNzguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC94ZGVidWcveGRlYnVnXzIuNS4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotU1VNTUFSWSA9ICJEZWJ1Z2dpbmcgYW5kIHByb2ZpbGluZyBleHRlbnNpb24gZm9yIFBIUCIKLUxJQ0VOU0UgPSAiWGRlYnVnIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MzRkZjNhMjc0YWExMmI3OTU0MTdjNjU2MzRjMDdmMTYiCi0KLURFUEVORFMgPSAicGhwIgotCi1TUkNfVVJJID0gImh0dHA6Ly94ZGVidWcub3JnL2ZpbGVzL3hkZWJ1Zy0ke1BWfS50Z3oiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI2MTY3YjFlMTA0ZjExMDhkNzdmMDhlYjU2MWExMmIyMiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI3ZmRhOTAyMGZkNWEyYzU0OWFlNWE2OTJmY2FiYmIwMGY3NGUzOWRkYTgxZDUzZDI1ZTYyMmJkYWI0ODgwZWMyIgotCi1pbmhlcml0IGF1dG90b29scwotCi1FWFRSQV9PRUNPTkYgKz0gIi0tZW5hYmxlLXhkZWJ1ZyAtd2l0aC1waHAtY29uZmlnPSR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L3BocC1jb25maWciCi0KLWRvX2NvbmZpZ3VyZSgpIHsKLSAgICBjZCAke1N9Ci0gICAgJHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vcGhwaXplCi0gICAgY2QgJHtCfQotCi0gICAgIyBSdW5uaW5nIGF1dG9yZWNvbmYgYXMgYXV0b3Rvb2xzX2RvX2NvbmZpZ3VyZSB3b3VsZCBkbyBoZXJlCi0gICAgIyBicmVha3MgdGhlIGxpYnRvb2wgY29uZmlndXJhdGlvbiByZXN1bHRpbmcgaW4gYSBmYWlsdXJlIGxhdGVyCi0gICAgIyBpbiBkb19jb21waWxlLiBJdCdzIHBvc3NpYmxlIHRoaXMgbWF5IGJlIGZpeGFibGUsIGhvd2V2ZXIgdGhlCi0gICAgIyBlYXNpZXN0IGNvdXJzZSBvZiBhY3Rpb24gZm9yIHRoZSBtb21lbnQgaXMgdG8gYXZvaWQgZG9pbmcgdGhhdC4KLSAgICBvZV9ydW5jb25mCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0gICAgb2VfcnVubWFrZSBpbnN0YWxsIElOU1RBTExfUk9PVD0ke0R9Ci19Ci0KLUZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vcGhwKi9leHRlbnNpb25zLyovKi5zbyIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L3BocCovZXh0ZW5zaW9ucy8qLy5kZWJ1ZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1waHAveGRlYnVnL3hkZWJ1Z18yLjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1waHAveGRlYnVnL3hkZWJ1Z18yLjYuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTE2OTg4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC94ZGVidWcveGRlYnVnXzIuNi4wLmJiCkBAIC0wLDAgKzEsMzMgQEAKK1NVTU1BUlkgPSAiRGVidWdnaW5nIGFuZCBwcm9maWxpbmcgZXh0ZW5zaW9uIGZvciBQSFAiCitMSUNFTlNFID0gIlhkZWJ1ZyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTM0ZGYzYTI3NGFhMTJiNzk1NDE3YzY1NjM0YzA3ZjE2IgorCitERVBFTkRTID0gInBocCByZTJjLW5hdGl2ZSIKKworU1JDX1VSSSA9ICJodHRwOi8veGRlYnVnLm9yZy9maWxlcy94ZGVidWctJHtQVn0udGd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiZWQzNTQ1ODUyZTZmNGEwMGZiODczMDM2MmQwNDMxZWUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjUyNjRjYzAzYmY2OGZjYmIwNGI5NzIyOWY5NmRjYTUwNWQ3Yjg3ZWMyZmIzYmQ0MjQ5ODk2NzgzZDI5Y2JkYyIKKworaW5oZXJpdCBhdXRvdG9vbHMKKworRVhUUkFfT0VDT05GICs9ICItLWVuYWJsZS14ZGVidWcgLXdpdGgtcGhwLWNvbmZpZz0ke1NUQUdJTkdfQklORElSX0NST1NTfS9waHAtY29uZmlnIgorCitkb19jb25maWd1cmUoKSB7CisgICAgY2QgJHtTfQorICAgICR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L3BocGl6ZQorICAgIGNkICR7Qn0KKworICAgICMgUnVubmluZyBhdXRvcmVjb25mIGFzIGF1dG90b29sc19kb19jb25maWd1cmUgd291bGQgZG8gaGVyZQorICAgICMgYnJlYWtzIHRoZSBsaWJ0b29sIGNvbmZpZ3VyYXRpb24gcmVzdWx0aW5nIGluIGEgZmFpbHVyZSBsYXRlcgorICAgICMgaW4gZG9fY29tcGlsZS4gSXQncyBwb3NzaWJsZSB0aGlzIG1heSBiZSBmaXhhYmxlLCBob3dldmVyIHRoZQorICAgICMgZWFzaWVzdCBjb3Vyc2Ugb2YgYWN0aW9uIGZvciB0aGUgbW9tZW50IGlzIHRvIGF2b2lkIGRvaW5nIHRoYXQuCisgICAgb2VfcnVuY29uZgorfQorCitkb19pbnN0YWxsKCkgeworICAgIG9lX3J1bm1ha2UgaW5zdGFsbCBJTlNUQUxMX1JPT1Q9JHtEfQorfQorCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L3BocCovZXh0ZW5zaW9ucy8qLyouc28iCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9waHAqL2V4dGVuc2lvbnMvKi8uZGVidWciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vbmV0ZGF0YS9uZXRkYXRhLzAwMDEtbWFrZWZpbGUtRG8tbm90LWJ1aWxkLWNvbnRyaWItZGlyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL25ldGRhdGEvbmV0ZGF0YS8wMDAxLW1ha2VmaWxlLURvLW5vdC1idWlsZC1jb250cmliLWRpci5wYXRjaAppbmRleCA5YTNhNGE1Li42YTBkNzVlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vbmV0ZGF0YS9uZXRkYXRhLzAwMDEtbWFrZWZpbGUtRG8tbm90LWJ1aWxkLWNvbnRyaWItZGlyLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi9uZXRkYXRhL25ldGRhdGEvMDAwMS1tYWtlZmlsZS1Eby1ub3QtYnVpbGQtY29udHJpYi1kaXIucGF0Y2gKQEAgLTExLDE3ICsxMSwxNyBAQAogIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCi1pbmRleCAzY2NmODJmOC4uYTg1MmU1MjkgMTAwNjQ0CitpbmRleCAyZWE5ZTQwLi5hY2IxYmQ4IDEwMDY0NAogLS0tIGEvTWFrZWZpbGUuYW0KICsrKyBiL01ha2VmaWxlLmFtCi1AQCAtNTIsNyArNTIsNiBAQCBTVUJESVJTID0gXAorQEAgLTU2LDcgKzU2LDYgQEAgU1VCRElSUyA9IFwKICAJc3JjIFwKICAJc3lzdGVtIFwKICAJd2ViIFwKIC0JY29udHJpYiBcCisgCXRlc3RzIFwKICAJJChOVUxMKQogIAotIGRpc3Rfbm9pbnN0X0RBVEE9IFwKIC0tIAogMi4xMy4yCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi9uZXRkYXRhL25ldGRhdGFfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL25ldGRhdGEvbmV0ZGF0YV9naXQuYmIKaW5kZXggMTAwMzY2Mi4uYjBmMTYwMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL25ldGRhdGEvbmV0ZGF0YV9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL25ldGRhdGEvbmV0ZGF0YV9naXQuYmIKQEAgLTEsMTUgKzEsMTUgQEAKIEhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9maXJlaG9sL25ldGRhdGEvIgogU1VNTUFSWSA9ICJSZWFsLXRpbWUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyIKIExJQ0VOU0UgPSAiR1BMdjMiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLm1kO21kNT1hNGEzYjY1MGVhM2Y3NDI2OWNkZmQ0NWEzNTUwZTIxOSBcCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLm1kO21kNT05NWI0OWU5ZWE5NzlhMzM3NTc4ZjEzYzJhM2FiOTUzNSBcCiAgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCBcCiAgICAgICAgICAgICAgICAgICAgIgogCiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vZmlyZWhvbC9uZXRkYXRhLmdpdDtwcm90b2NvbD1odHRwcyBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLW1ha2VmaWxlLURvLW5vdC1idWlsZC1jb250cmliLWRpci5wYXRjaCBcCiAiCi1TUkNSRVYgPSAiZjVmYTM0NmExODhlOTA2YThmMmNjZTNjMmNmMzJhODhjZTgxYzY2NiIKLVBWID0gIjEuNi4wK2dpdCR7U1JDUFZ9IgorU1JDUkVWID0gIjg5ZWQzMDkyNTI5ODFkZGQ1MGY2OTdmZGU0ZmU5MzAxOWNiM2U2NTIiCitQViA9ICIxLjguMCtnaXQke1NSQ1BWfSIKIAogIyBwYXRjaCB0byBkaXNhYmxlIHRpbWVvdXQgYmVjYXVzZSB0aW1lb3V0IGFyZSBub3QgYXZhaWxhYmxlIHdpdGggYWN0dWFsIHZlcnNpb24KICMgb2YgY29yZS11dGlscwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9kaXNhYmxlLXZlcnNpb24tY2hlY2sucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2Rpc2FibGUtdmVyc2lvbi1jaGVjay5wYXRjaAppbmRleCAxY2ExNDgwLi45YWFkODk0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2Rpc2FibGUtdmVyc2lvbi1jaGVjay5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2Rpc2FibGUtdmVyc2lvbi1jaGVjay5wYXRjaApAQCAtNywxMSArNywxMSBAQAogCiBTaWduZWQtb2ZmLWJ5OiBQYXVsIEVnZ2xldG9uIDxwYXVsLmVnZ2xldG9uQGxpbnV4LmludGVsLmNvbT4KIAotZGlmZiAtLWdpdCBhL3dlYm1pbi93ZWJtaW4tbGliLnBsIGIvd2VibWluL3dlYm1pbi1saWIucGwKLWluZGV4IDU3YTM3ZjcuLjgzOGI5NDQgMTAwNzU1Ci0tLS0gYS93ZWJtaW4vd2VibWluLWxpYi5wbAotKysrIGIvd2VibWluL3dlYm1pbi1saWIucGwKLUBAIC0xMDg2LDI4ICsxMDg2LDI4IEBACitJbmRleDogd2VibWluLTEuODUwL3dlYm1pbi93ZWJtaW4tbGliLnBsCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gd2VibWluLTEuODUwLm9yaWcvd2VibWluL3dlYm1pbi1saWIucGwKKysrKyB3ZWJtaW4tMS44NTAvd2VibWluL3dlYm1pbi1saWIucGwKK0BAIC0xMTEyLDI4ICsxMTEyLDI4IEBAIG15ICVtaW5pc2VydjsKICAmbG9hZF90aGVtZV9saWJyYXJ5KCk7CSMgU28gdGhhdCBVSSBmdW5jdGlvbnMgd29yawogIAogICMgTmVlZCBPUyB1cGdyYWRlCkBAIC02Miw0ICs2MiwzIEBACiAgCiAgIyBQYXNzd29yZCBjbG9zZSB0byBleHBpcnkKICBteSAkd2Fybl9kYXlzID0gJGNvbmZpZ3snd2Fybl9kYXlzJ307Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvZXhwb3J0cy1saWIucGwucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2V4cG9ydHMtbGliLnBsLnBhdGNoCmluZGV4IDE3N2Q4YTMuLmQ1ZGZlZDUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvZXhwb3J0cy1saWIucGwucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9leHBvcnRzLWxpYi5wbC5wYXRjaApAQCAtMTQsMTEgKzE0LDExIEBACiAgZXhwb3J0cy9leHBvcnRzLWxpYi5wbCB8ICAgIDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAotZGlmZiAtLWdpdCBhL2V4cG9ydHMvZXhwb3J0cy1saWIucGwgYi9leHBvcnRzL2V4cG9ydHMtbGliLnBsCi1pbmRleCAyMjg5MWMwLi4xYzY3NDk0IDEwMDc1NQotLS0tIGEvZXhwb3J0cy9leHBvcnRzLWxpYi5wbAotKysrIGIvZXhwb3J0cy9leHBvcnRzLWxpYi5wbAotQEAgLTI3Myw3ICsyNzMsNyBAQCByZXR1cm4gISZoYXNfY29tbWFuZCgicnBjLm5mc2QiKSAmJiAhJmhhc19jb21tYW5kKCJuZnNkIikgJiYKK0luZGV4OiB3ZWJtaW4tMS44NTAvZXhwb3J0cy9leHBvcnRzLWxpYi5wbAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHdlYm1pbi0xLjg1MC5vcmlnL2V4cG9ydHMvZXhwb3J0cy1saWIucGwKKysrKyB3ZWJtaW4tMS44NTAvZXhwb3J0cy9leHBvcnRzLWxpYi5wbAorQEAgLTMwMSw3ICszMDEsNyBAQCByZXR1cm4gISZoYXNfY29tbWFuZCgicnBjLm5mc2QiKSAmJiAhJmhhCiAgc3ViIHJlc3RhcnRfbW91bnRkCiAgewogICMgVHJ5IGV4cG9ydGZzIC1yIGZpcnN0CkBAIC0yNyw2ICsyNywzIEBACiAgCW15ICRvdXQgPSAmYmFja3F1b3RlX2xvZ2dlZCgiJGNvbmZpZ3snYXBwbHlfY21kJ30gMj4mMSA8L2Rldi9udWxsIik7CiAgCWlmICghJD8gJiYgJG91dCAhfiAvaW52YWxpZHxlcnJvcnxmYWlsZWQvaSkgewogIAkJIyBMb29rcyBsaWtlIGl0IHdvcmtlZCEKLS0tIAotMS43LjkuNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2luaXQtZXhjbHVkZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvaW5pdC1leGNsdWRlLnBhdGNoCmluZGV4IDU1NjMyMjcuLjQyMTI5MTcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvaW5pdC1leGNsdWRlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvaW5pdC1leGNsdWRlLnBhdGNoCkBAIC0xMSwxMSArMTEsMTEgQEAKICBpbml0L2luaXQtbGliLnBsIHwgIDUgKysrLS0KICAyIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvaW5pdC9pbmRleC5jZ2kgYi9pbml0L2luZGV4LmNnaQotaW5kZXggZDQ4Yjc5My4uMzBkYWZkNCAxMDA3NTUKLS0tLSBhL2luaXQvaW5kZXguY2dpCi0rKysgYi9pbml0L2luZGV4LmNnaQotQEAgLTQ1LDE5ICs0NSwyMCBAQCBlbHNpZiAoJGluaXRfbW9kZSBlcSAiaW5pdCIgJiYgJGFjY2Vzc3snYm9vdHVwJ30pIHsKK0luZGV4OiB3ZWJtaW4tMS44NTAvaW5pdC9pbmRleC5jZ2kKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB3ZWJtaW4tMS44NTAub3JpZy9pbml0L2luZGV4LmNnaQorKysrIHdlYm1pbi0xLjg1MC9pbml0L2luZGV4LmNnaQorQEAgLTQ1LDE5ICs0NSwyMCBAQCBlbHNpZiAoJGluaXRfbW9kZSBlcSAiaW5pdCIgJiYgJGFjY2Vzc3snCiAgCQkJCQkgICAgIDogIiRjb25maWd7J2luaXRfZGlyJ30vJGFjWzBdIik7CiAgCQl9CiAgCUBydW5sZXZlbHMgPSAmbGlzdF9ydW5sZXZlbHMoKTsKQEAgLTQ5LDExICs0OSwxMSBAQAogIAogIAkjIEZvciBlYWNoIGFjdGlvbiwgbG9vayBhdCAvZXRjL3JjKi5kLyogZmlsZXMgdG8gc2VlIGlmIGl0IGlzIAogIAkjIHN0YXJ0ZWQgYXQgYm9vdAotZGlmZiAtLWdpdCBhL2luaXQvaW5pdC1saWIucGwgYi9pbml0L2luaXQtbGliLnBsCi1pbmRleCBlYWQyMWVkLi5iNDE3OTRiIDEwMDc1NQotLS0tIGEvaW5pdC9pbml0LWxpYi5wbAotKysrIGIvaW5pdC9pbml0LWxpYi5wbAotQEAgLTExOSw4ICsxMTksOSBAQCBMaXN0IGJvb3QgdGltZSBhY3Rpb24gbmFtZXMgZnJvbSBpbml0LmQsIHN1Y2ggYXMgaHR0cGQgYW5kIGNyb24uCitJbmRleDogd2VibWluLTEuODUwL2luaXQvaW5pdC1saWIucGwKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB3ZWJtaW4tMS44NTAub3JpZy9pbml0L2luaXQtbGliLnBsCisrKysgd2VibWluLTEuODUwL2luaXQvaW5pdC1saWIucGwKK0BAIC0xMjQsOCArMTI0LDkgQEAgTGlzdCBib290IHRpbWUgYWN0aW9uIG5hbWVzIGZyb20gaW5pdC5kLAogID1jdXQKICBzdWIgbGlzdF9hY3Rpb25zCiAgewpAQCAtNjQsNyArNjQsNyBAQAogIG9wZW5kaXIoRElSLCAkZGlyKTsKICBmb3JlYWNoICRmIChzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikgfSByZWFkZGlyKERJUikpIHsKICAJaWYgKCRmIGVxICIuIiB8fCAkZiBlcSAiLi4iIHx8ICRmID1+IC9cLmJhayQvIHx8ICRmIGVxICJmdW5jdGlvbnMiIHx8Ci1AQCAtMTI4LDcgKzEyOSw3IEBAIGZvcmVhY2ggJGYgKHNvcnQgeyBsYygkYSkgY21wIGxjKCRiKSB9IHJlYWRkaXIoRElSKSkgeworQEAgLTEzMyw3ICsxMzQsNyBAQCBmb3JlYWNoICRmIChzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikgfSByCiAgCSAgICAtZCAiJGRpci8kZiIgfHwgJGYgPX4gL1wuc3dwJC8gfHwgJGYgZXEgInNrZWxldG9uIiB8fAogIAkgICAgJGYgPX4gL1wubG9jayQvIHx8ICRmID1+IC9cLmRwa2ctKG9sZHxkaXN0KSQvIHx8CiAgCSAgICAkZiA9fiAvXlwuZGVwZW5kXC4vIHx8ICRmIGVxICcubGVnYWN5LWJvb3RvcmRlcmluZycgfHwKQEAgLTczLDYgKzczLDMgQEAKICAJaWYgKEBzdGJ1ZiA9IHN0YXQoIiRkaXIvJGYiKSkgewogIAkJcHVzaChAcnYsICIkZiAkc3RidWZbMV0iKTsKICAJCX0KLS0tCi0yLjAuMAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL25ldC1nZW5lcmljLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9uZXQtZ2VuZXJpYy5wYXRjaAppbmRleCA3ZDIwYWZmLi41NTQ5MzkyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL25ldC1nZW5lcmljLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvbmV0LWdlbmVyaWMucGF0Y2gKQEAgLTMsOSArMywxMSBAQAogIyBVcHN0cmVhbS1zdGF0dXM6IE5vdCBhcHByb3ByaWF0ZSBbY29uZmlnXQogIwogIyBTaWduZWQtb2ZmLWJ5OiBQYXVsIEVnZ2xldG9uIDxwYXVsLmVnZ2xldG9uQGxpbnV4LmludGVsLmNvbT4KLS0tLSB3ZWJtaW4tMS41NzAub3JpZy9uZXQvbW9kdWxlLmluZm8KLSsrKyB3ZWJtaW4tMS41NzAvbmV0L21vZHVsZS5pbmZvCi1AQCAtMTEsNyArMTEsNyBAQCBkZXNjX2tvX0tSLlVURi04PeuEpO2KuOybjO2BrCDqtazshLEKK0luZGV4OiB3ZWJtaW4tMS44NTAvbmV0L21vZHVsZS5pbmZvCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gd2VibWluLTEuODUwLm9yaWcvbmV0L21vZHVsZS5pbmZvCisrKysgd2VibWluLTEuODUwL25ldC9tb2R1bGUuaW5mbworQEAgLTE0LDcgKzE0LDcgQEAgZGVzY19rb19LUi5VVEYtOD3rhKTtirjsm4ztgawg6rWs7ISxCiAgbmFtZT1OZXR3b3JraW5nCiAgZGVzY190cj1B8CBZYXD9bGFuZP1ybWFz/QogIGRlc2NfZGU9TmV0endlcmtrb25maWd1cmF0aW9uCkBAIC0xNCw4ICsxNiwxMCBAQAogIGRlc2Nfc2s9S29uZmlndXLhY2lhIHNpZXRlCiAgZGVzY196aF9DTj3N+MLnxeTWwwogIHJpc2s9bG93IG1lZGl1bSBoaWdoCitJbmRleDogd2VibWluLTEuODUwL25ldC9nZW5lcmljLWxpbnV4LWxpYi5wbAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAotKysrIHdlYm1pbi0xLjU3MC9uZXQvZ2VuZXJpYy1saW51eC1saWIucGwKKysrKyB3ZWJtaW4tMS44NTAvbmV0L2dlbmVyaWMtbGludXgtbGliLnBsCiBAQCAtMCwwICsxLDIgQEAKICtkbyAnbGludXgtbGliLnBsJzsKICsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvbmZzLWV4cG9ydC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvbmZzLWV4cG9ydC5wYXRjaAppbmRleCBjMTdlM2IyLi40MjZkNjM3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL25mcy1leHBvcnQucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9uZnMtZXhwb3J0LnBhdGNoCkBAIC0xMiwxMSArMTIsMTEgQEAKIAogU2lnbmVkLW9mZi1ieTogWXUgS2UgPGtlLnl1QGludGVsLmNvbT4KIAotZGlmZiAtLWdpdCBhL2V4cG9ydHMvc2F2ZV9leHBvcnQuY2dpIGIvZXhwb3J0cy9zYXZlX2V4cG9ydC5jZ2kKLWluZGV4IDNiYzJmOTcuLjNlNjAyOTggMTAwNzU1Ci0tLS0gYS9leHBvcnRzL3NhdmVfZXhwb3J0LmNnaQotKysrIGIvZXhwb3J0cy9zYXZlX2V4cG9ydC5jZ2kKLUBAIC00MCw3ICs0MCw3IEBAIGVsc2UgeworSW5kZXg6IHdlYm1pbi0xLjg1MC9leHBvcnRzL3NhdmVfZXhwb3J0LmNnaQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHdlYm1pbi0xLjg1MC5vcmlnL2V4cG9ydHMvc2F2ZV9leHBvcnQuY2dpCisrKysgd2VibWluLTEuODUwL2V4cG9ydHMvc2F2ZV9leHBvcnQuY2dpCitAQCAtNTAsNyArNTAsNyBAQCBlbHNlIHsKICAJCQkmZXJyb3IoJnRleHQoJ3NhdmVfZW5ldG1hc2snLCAkaW57J25ldG1hc2snfSkpOwogIAkJJGV4cHsnaG9zdCd9ID0gJGlueyduZXR3b3JrJ30uIi8iLiRpbnsnbmV0bWFzayd9OwogIAkJfQpAQCAtMjUsOSArMjUsOSBAQAogIAllbHNlIHsKICAJCSRpbnsnaG9zdCd9ID1+IC9cKi8gfHwgJnRvX2lwYWRkcmVzcygkaW57J2hvc3QnfSkgfHwKICAJCQkmZXJyb3IoJnRleHQoJ3NhdmVfZWhvc3QnLCAkaW57J2hvc3QnfSkpOwotQEAgLTcwLDYgKzcwLDExIEBAIGVsc2UgewotIAotIAlkZWxldGUoJG9wdHN7J25vX3N1YnRyZWVfY2hlY2snfSk7IGRlbGV0ZSgkb3B0c3snc3VidHJlZV9jaGVjayd9KTsKK0BAIC04Nyw2ICs4NywxMSBAQCBlbHNlIHsKKyAJZGVsZXRlKCRvcHRzeydub19zdWJ0cmVlX2NoZWNrJ30pOworIAlkZWxldGUoJG9wdHN7J3N1YnRyZWVfY2hlY2snfSk7CiAgCSRvcHRzeydub19zdWJ0cmVlX2NoZWNrJ30gPSAiIiBpZiAoJGlueydub19zdWJ0cmVlX2NoZWNrJ30pOwogKwlpZiAoJGlueydub19zdWJ0cmVlX2NoZWNrJ30pIHsKICsJCSRvcHRzeydub19zdWJ0cmVlX2NoZWNrJ30gPSAiIjsKQEAgLTM1LDUgKzM1LDUgQEAKICsJCSRvcHRzeydzdWJ0cmVlX2NoZWNrJ30gPSAiIjsKICsJfQogIAotIAlkZWxldGUoJG9wdHN7J25vaGlkZSd9KTsgZGVsZXRlKCRvcHRzeydoaWRlJ30pOwotIAkkb3B0c3snbm9oaWRlJ30gPSAiIiBpZiAoJGlueydub2hpZGUnfSk7CisgCWRlbGV0ZSgkb3B0c3snbm9oaWRlJ30pOworIAlkZWxldGUoJG9wdHN7J2hpZGUnfSk7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL3dlYm1pbl8xLjg1MC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vd2VibWluXzEuODUwLmJiCmluZGV4IGFlODhlYjYuLmNlOWJjOTIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vd2VibWluXzEuODUwLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vd2VibWluXzEuODUwLmJiCkBAIC0yNCw2ICsyNCw5IEBACiBTUkNfVVJJW21kNXN1bV0gPSAiY2Q2ZWU5OGY3M2Y5NDE4NTYyMTk3Njc1Yjk1MmQ4MWIiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzY2Y2FhOWU0Y2I1MGQ1NDQ3YmM4YWNlYjc5ODlkMjI4NGRkZTA2MDI3OGY0MDRiMTNlMTcxYzdjZTE2OTBlMSIKIAorVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHA6Ly93d3cud2VibWluLmNvbS9kb3dubG9hZC5odG1sIgorVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAid2VibWluLSg/UDxwdmVyPlxkKyhcLlxkKykrKS50YXIuZ3oiCisKIGluaGVyaXQgcGVybG5hdGl2ZSB1cGRhdGUtcmMuZCBzeXN0ZW1kCiAKIGRvX2NvbmZpZ3VyZSgpIHsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL1JFQURNRSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL1JFQURNRQppbmRleCAzMzY3Nzk3Li43NDMxZThiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9SRUFETUUKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvUkVBRE1FCkBAIC0xLDExICsxLDExIEBACiBUaGlzIGxheWVyIGRlcGVuZHMgb246CiAKIFVSSTogZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuZW1iZWRkZWQvb2UtY29yZS5naXQKLWJyYW5jaDogcm9ja28KK2JyYW5jaDogbWFzdGVyCiByZXZpc2lvbjogSEVBRAogCiBVUkk6IGdpdDovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL21ldGEtb2UuZ2l0Ci1icmFuY2g6IHJvY2tvCiticmFuY2g6IG1hc3RlcgogcmV2aXNpb246IEhFQUQKIG1ldGEteGZjZSBkZXBlbmRzIG9uIG1ldGEtb2UsIG1ldGEtZ25vbWUgYW5kIG1ldGEtbXVsdGltZWRpYSBpbiB0aGlzIHJlcG9zaXRvcnkuCiAKQEAgLTE0LDEwICsxNCw5IEBACiAKIEJCTUFTSyA9ICJtZXRhLXhmY2UvcmVjaXBlcy1tdWx0aW1lZGlhIgogCi1TZW5kIHB1bGwgcmVxdWVzdHMgdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgd2l0aCAnW21ldGEteGZjZV1bcm9ja29dJyBpbiB0aGUgc3ViamVjdCcKK1NlbmQgcHVsbCByZXF1ZXN0cyB0byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyB3aXRoICdbbWV0YS14ZmNlXScgaW4gdGhlIHN1YmplY3QnCiAKIFdoZW4gc2VuZGluZyBzaW5nbGUgcGF0Y2hlcywgcGxlYXNlIHVzaW5nIHNvbWV0aGluZyBsaWtlOgotJ2dpdCBzZW5kLWVtYWlsIC1NIC0xIC0tdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgLS1zdWJqZWN0LXByZWZpeD1tZXRhLXhmY2VdW3JvY2tvXVtQQVRDSCcKKydnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS14ZmNlXVtQQVRDSCcKIAotcm9ja28gQnJhbmNoIE1haW50YWluZXI6Ci1Bcm1pbiBLdXN0ZXIgPGFrdXN0ZXI4MDhAZ21haWwuY29tPgorTGF5ZXIgbWFpbnRhaW5lcjogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvY29uZi9sYXllci5jb25mIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvY29uZi9sYXllci5jb25mCmluZGV4IGFkMjVkY2IuLmJlZThlNzAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9jb25mL2xheWVyLmNvbmYKQEAgLTE4LDYgKzE4LDggQEAKIExBWUVSREVQRU5EU194ZmNlLWxheWVyICs9ICJtdWx0aW1lZGlhLWxheWVyIgogTEFZRVJERVBFTkRTX3hmY2UtbGF5ZXIgKz0gIm1ldGEtcHl0aG9uIgogCitMQVlFUlNFUklFU19DT01QQVRfeGZjZS1sYXllciA9ICJzdW1vIgorCiBTSUdHRU5fRVhDTFVERV9TQUZFX1JFQ0lQRV9ERVBTICs9ICIgXAogICB4ZmNlNC1zZXNzaW9uLT5tYWNoaW5lLWhvc3QgXAogIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL21lbnVsaWJyZS9maWxlcy8wMDAxLWFkZF9sYXVuY2hlci1FeGl0LWVhcmx5LWlmLW5vLXJvdy1pcy1zZWxlY3RlZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy9tZW51bGlicmUvZmlsZXMvMDAwMS1hZGRfbGF1bmNoZXItRXhpdC1lYXJseS1pZi1uby1yb3ctaXMtc2VsZWN0ZWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiMmRmYzkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL21lbnVsaWJyZS9maWxlcy8wMDAxLWFkZF9sYXVuY2hlci1FeGl0LWVhcmx5LWlmLW5vLXJvdy1pcy1zZWxlY3RlZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLUZyb20gMTA2MGU3YWM4YTYzYjkzZDU2MDA2NzE4ZjBlOWIxZDkzODJiMjIyNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IE1vbiwgMzEgT2N0IDIwMTYgMDg6MzM6MTYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gYWRkX2xhdW5jaGVyOiBFeGl0IGVhcmx5IGlmIG5vIHJvdyBpcyBzZWxlY3RlZAotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1TdG9sZW4gZnJvbSBbMV0KLQotWzFdIGh0dHA6Ly9wa2dzLmZlZG9yYXByb2plY3Qub3JnL2NnaXQvcnBtcy9tZW51bGlicmUuZ2l0L3RyZWUvbWVudWxpYnJlLWFkZC1sYXVuY2hlci1ub25lLWNoZWNrLnBhdGNoCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0tLS0KLSBtZW51bGlicmUvTWVudWxpYnJlQXBwbGljYXRpb24ucHkgfCA0ICsrKysKLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9tZW51bGlicmUvTWVudWxpYnJlQXBwbGljYXRpb24ucHkgYi9tZW51bGlicmUvTWVudWxpYnJlQXBwbGljYXRpb24ucHkKLWluZGV4IGUyMzQ4MDAuLmFjNzNiMDMgMTAwNjQ0Ci0tLS0gYS9tZW51bGlicmUvTWVudWxpYnJlQXBwbGljYXRpb24ucHkKLSsrKyBiL21lbnVsaWJyZS9NZW51bGlicmVBcHBsaWNhdGlvbi5weQotQEAgLTE0MTgsNiArMTQxOCwxMCBAQCBjbGFzcyBNZW51bGlicmVXaW5kb3coR3RrLkFwcGxpY2F0aW9uV2luZG93KToKLSAgICAgICAgIG1vZGVsLCBwYXJlbnRfZGF0YSA9IHNlbGYudHJlZXZpZXcuZ2V0X3BhcmVudF9yb3dfZGF0YSgpCi0gICAgICAgICBtb2RlbCwgcm93X2RhdGEgPSBzZWxmLnRyZWV2aWV3LmdldF9zZWxlY3RlZF9yb3dfZGF0YSgpCi0gCi0rICAgICAgICAjIEV4aXQgZWFybHkgaWYgbm8gcm93IGlzIHNlbGVjdGVkCi0rICAgICAgICBpZiBub3Qgcm93X2RhdGE6Ci0rICAgICAgICAgICAgcmV0dXJuCi0rCi0gICAgICAgICAjIEN1cnJlbnRseSBzZWxlY3RlZCBpdGVtIGlzIGEgZGlyZWN0b3J5LCB0YWtlIGl0cyBjYXRlZ29yaWVzLgotICAgICAgICAgaWYgcm93X2RhdGFbMl0gPT0gTWVudUl0ZW1UeXBlcy5ESVJFQ1RPUlk6Ci0gICAgICAgICAgICAgc2VsZi50cmVldmlldy5hZGRfY2hpbGQobmV3X3Jvd19kYXRhKQotLS0gCi0yLjUuNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMvbWVudWxpYnJlL2ZpbGVzLzAwMDItc2V0dXAucHktYXZvaWQtdXNyLXNoYXJlLXNoYXJlLXBhdGhzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL21lbnVsaWJyZS9maWxlcy8wMDAyLXNldHVwLnB5LWF2b2lkLXVzci1zaGFyZS1zaGFyZS1wYXRocy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjYzZDRkYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMvbWVudWxpYnJlL2ZpbGVzLzAwMDItc2V0dXAucHktYXZvaWQtdXNyLXNoYXJlLXNoYXJlLXBhdGhzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotRnJvbSA5OTc4OGI0NTU3NTQzYzQ5MDQ5M2NlMWI4Mjc1MzhjNDkxNDJjMjVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotRGF0ZTogTW9uLCAzMSBPY3QgMjAxNiAwOTowODo1MSArMDEwMAotU3ViamVjdDogW1BBVENIXSBzZXR1cC5weTogYXZvaWQgL3Vzci9zaGFyZS9zaGFyZSBwYXRocwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLS0tLQotIHNldHVwLnB5IHwgNCArKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NldHVwLnB5IGIvc2V0dXAucHkKLWluZGV4IDVmYzIzN2QuLmM0ZmJmN2MgMTAwNjQ0Ci0tLS0gYS9zZXR1cC5weQotKysrIGIvc2V0dXAucHkKLUBAIC0xNDMsNyArMTQzLDcgQEAgY2xhc3MgSW5zdGFsbEFuZFVwZGF0ZURhdGFEaXJlY3RvcnkoRGlzdFV0aWxzRXh0cmEuYXV0by5pbnN0YWxsX2F1dG8pOgotIAotICAgICAgICAgaWYgc2VsZi5yb290OgotICAgICAgICAgICAgIHRhcmdldF9kYXRhID0gb3MucGF0aC5yZWxwYXRoKHNlbGYuaW5zdGFsbF9kYXRhLCBzZWxmLnJvb3QpICsgb3Muc2VwCi0tICAgICAgICAgICAgdGFyZ2V0X3BrZ2RhdGEgPSBvcy5wYXRoLmpvaW4odGFyZ2V0X2RhdGEsICdzaGFyZScsICdtZW51bGlicmUnLCAnJykKLSsgICAgICAgICAgICB0YXJnZXRfcGtnZGF0YSA9IG9zLnBhdGguam9pbih0YXJnZXRfZGF0YSwgJ21lbnVsaWJyZScsICcnKQotICAgICAgICAgICAgIHRhcmdldF9zY3JpcHRzID0gb3MucGF0aC5qb2luKHNlbGYuaW5zdGFsbF9zY3JpcHRzLCAnJykKLSAKLSAgICAgICAgICAgICBkYXRhX2RpciA9IG9zLnBhdGguam9pbihzZWxmLnByZWZpeCwgJ3NoYXJlJywgJ21lbnVsaWJyZScsICcnKQotQEAgLTE1Miw3ICsxNTIsNyBAQCBjbGFzcyBJbnN0YWxsQW5kVXBkYXRlRGF0YURpcmVjdG9yeShEaXN0VXRpbHNFeHRyYS5hdXRvLmluc3RhbGxfYXV0byk6Ci0gICAgICAgICAgICAgIyAtLXVzZXIgaW5zdGFsbAotICAgICAgICAgICAgIHNlbGYucm9vdCA9ICcnCi0gICAgICAgICAgICAgdGFyZ2V0X2RhdGEgPSBvcy5wYXRoLnJlbHBhdGgoc2VsZi5pbnN0YWxsX2RhdGEpICsgb3Muc2VwCi0tICAgICAgICAgICAgdGFyZ2V0X3BrZ2RhdGEgPSBvcy5wYXRoLmpvaW4odGFyZ2V0X2RhdGEsICdzaGFyZScsICdtZW51bGlicmUnLCAnJykKLSsgICAgICAgICAgICB0YXJnZXRfcGtnZGF0YSA9IG9zLnBhdGguam9pbih0YXJnZXRfZGF0YSwgJ21lbnVsaWJyZScsICcnKQotICAgICAgICAgICAgIHRhcmdldF9zY3JpcHRzID0gb3MucGF0aC5qb2luKHNlbGYuaW5zdGFsbF9zY3JpcHRzLCAnJykKLSAKLSAgICAgICAgICAgICAjIFVzZSBhYnNvbHV0ZSBwYXRocwotLS0gCi0yLjUuNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMvbWVudWxpYnJlL2ZpbGVzLzAwMDMtTWVudWxpYnJlWGRnLnB5LWZpeC1sb2FkaW5nLW9mLWRlc2t0b3AtZmlsZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMvbWVudWxpYnJlL2ZpbGVzLzAwMDMtTWVudWxpYnJlWGRnLnB5LWZpeC1sb2FkaW5nLW9mLWRlc2t0b3AtZmlsZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlOTIwODguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL21lbnVsaWJyZS9maWxlcy8wMDAzLU1lbnVsaWJyZVhkZy5weS1maXgtbG9hZGluZy1vZi1kZXNrdG9wLWZpbGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRnJvbSA5MDA5OGQ4MzViNjJiMzhhYzM5NmQ1NWI4MGE2ODQ3NzBkYmFhY2RlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotRGF0ZTogTW9uLCAzMSBPY3QgMjAxNiAxNTo1MDo1MiArMDEwMAotU3ViamVjdDogW1BBVENIXSBNZW51bGlicmVYZGcucHk6IGZpeCBsb2FkaW5nIG9mIGRlc2t0b3AgZmlsZXMKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotZml4ZXM6Ci18IFVuaWNvZGVEZWNvZGVFcnJvcjogJ2FzY2lpJyBjb2RlYyBjYW4ndCBkZWNvZGUgYnlldCAweGQ5IGluIHBvc2l0aW9uIDIzNTogb3JkaW5hbCBub3QgaW4gcmFuZ2UoMTI4KQotCi1hbmQgaW5mb3JtYXRpb24gZGlzcGxheSBub3QgcHJvcGVybHkgZmlsbGVkLgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotLS0tCi0gbWVudWxpYnJlL01lbnVsaWJyZVhkZy5weSB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL21lbnVsaWJyZS9NZW51bGlicmVYZGcucHkgYi9tZW51bGlicmUvTWVudWxpYnJlWGRnLnB5Ci1pbmRleCBlMDRjNWU2Li4xNGIyNTkzIDEwMDY0NAotLS0tIGEvbWVudWxpYnJlL01lbnVsaWJyZVhkZy5weQotKysrIGIvbWVudWxpYnJlL01lbnVsaWJyZVhkZy5weQotQEAgLTc0LDcgKzc0LDcgQEAgY2xhc3MgTWVudWxpYnJlRGVza3RvcEVudHJ5OgotIAotICAgICBkZWYgbG9hZF9wcm9wZXJ0aWVzKHNlbGYsIGZpbGVuYW1lKToKLSAgICAgICAgICIiIkxvYWQgdGhlIHByb3BlcnRpZXMuIiIiCi0tICAgICAgICBpbnB1dF9maWxlID0gb3BlbihmaWxlbmFtZSkKLSsgICAgICAgIGlucHV0X2ZpbGUgPSBvcGVuKGZpbGVuYW1lLCAncnQnLCBlbmNvZGluZz0ndXRmLTgnKQotICAgICAgICAgc2VsZi5sb2FkX3Byb3BlcnRpZXNfZnJvbV90ZXh0KGlucHV0X2ZpbGUucmVhZCgpKQotICAgICAgICAgaW5wdXRfZmlsZS5jbG9zZSgpCi0gCi0tLSAKLTIuNS41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy9tZW51bGlicmUvbWVudWxpYnJlXzIuMS4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL21lbnVsaWJyZS9tZW51bGlicmVfMi4xLjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ZTUyZmUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL21lbnVsaWJyZS9tZW51bGlicmVfMi4xLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1ERVNDUklQVElPTiA9ICJBbiBhZHZhbmNlZCBtZW51IGVkaXRvciIKLUhPTUVQQUdFID0gImh0dHBzOi8vbGF1bmNocGFkLm5ldC9tZW51bGlicmUiCi1TRUNUSU9OID0gIngxMS9ncmFwaGljcyIKLUxJQ0VOU0UgPSAiR1BMdjMiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKLQotREVQRU5EUyA9ICJweXRob24zLWRpc3R1dGlscy1leHRyYS1uYXRpdmUgaW50bHRvb2wtbmF0aXZlIgotCi1pbmhlcml0IGRpc3R1dGlsczMgZ3RrLWljb24tY2FjaGUKLQotU1JDX1VSSSA9ICIgXAotICAgIGh0dHBzOi8vbGF1bmNocGFkLm5ldC9tZW51bGlicmUvMi4xLyR7UFZ9Lytkb3dubG9hZC8ke1BOfS0ke1BWfS50YXIuZ3ogXAotICAgIGZpbGU6Ly8wMDAxLWFkZF9sYXVuY2hlci1FeGl0LWVhcmx5LWlmLW5vLXJvdy1pcy1zZWxlY3RlZC5wYXRjaCBcCi0gICAgZmlsZTovLzAwMDItc2V0dXAucHktYXZvaWQtdXNyLXNoYXJlLXNoYXJlLXBhdGhzLnBhdGNoIFwKLSAgICBmaWxlOi8vMDAwMy1NZW51bGlicmVYZGcucHktZml4LWxvYWRpbmctb2YtZGVza3RvcC1maWxlcy5wYXRjaCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiMTlkOWQzMzM3MzIyZWI1NTEzNDU0YmI4Y2RmYjczOWIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYmRkNjk3NDAxMTk5MDJmMWIxZjhjNzgzMTE1NWY0NDI4NDAzNzkyYTBhNmM0Mjg3YmNiYjM5NWM0ZTcxZmIzMSIKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgc2VkIC1pICdzOiR7RH06OmcnICR7RH0ke2RhdGFkaXJ9L2FwcGxpY2F0aW9ucy9tZW51bGlicmUuZGVza3RvcAotfQotCi1GSUxFU18ke1BOfSArPSAiIFwKLSAgICAke2RhdGFkaXJ9L2FwcGxpY2F0aW9ucyBcCi0gICAgJHtkYXRhZGlyfS9tZW51bGlicmUgXAotICAgICR7ZGF0YWRpcn0vaWNvbnMgXAotIgotCi1SREVQRU5EU18ke1BOfSArPSAiIFwKLSAgICBndGsrMyBcCi0gICAgcHl0aG9uMy1weWdvYmplY3QgXAotICAgIGdub21lLW1lbnVzMyBcCi0gICAgcHl0aG9uMy11bml4YWRtaW4gXAotICAgIHB5dGhvbjMtcHN1dGlsIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy9tZW51bGlicmUvbWVudWxpYnJlXzIuMS41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL21lbnVsaWJyZS9tZW51bGlicmVfMi4xLjUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFmMzQ3MQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy9tZW51bGlicmUvbWVudWxpYnJlXzIuMS41LmJiCkBAIC0wLDAgKzEsNDEgQEAKK0RFU0NSSVBUSU9OID0gIkFuIGFkdmFuY2VkIG1lbnUgZWRpdG9yIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9sYXVuY2hwYWQubmV0L21lbnVsaWJyZSIKK1NFQ1RJT04gPSAieDExL2dyYXBoaWNzIgorTElDRU5TRSA9ICJHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgorCitERVBFTkRTID0gIiBcCisgICAgcHl0aG9uMy1kaXN0dXRpbHMtZXh0cmEtbmF0aXZlIFwKKyAgICBpbnRsdG9vbC1uYXRpdmUgXAorIgorCitpbmhlcml0IGRpc3R1dGlsczMgZ3RrLWljb24tY2FjaGUgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9sYXVuY2hwYWQubmV0L21lbnVsaWJyZS8yLjEvJHtQVn0vK2Rvd25sb2FkLyR7UE59LSR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJlZmM3ZWRiNDliYjBlNWZlYTQ5ZTE1OGI0MDU3MzMzNCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlZjA1YjI3MjJiYWIyYWNiNzA3MGQ2YzhlZDBlN2JkNThiZDRhNDU0MGJmNDk4YWY5ZTg4OTk0NGY5ZGEwOGI1IgorCitkb19jb21waWxlKCkgeworfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBzZWQgLWkgJ3M6JHtEfTo6ZycgJHtEfSR7ZGF0YWRpcn0vYXBwbGljYXRpb25zL21lbnVsaWJyZS5kZXNrdG9wCisgICAgc2VkIC1pICdzOnNoYXJlL3NoYXJlOnNoYXJlOmcnICR7RH0ke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9tZW51bGlicmVfbGliL21lbnVsaWJyZWNvbmZpZy5weQorfQorCitGSUxFU18ke1BOfSArPSAiIFwKKyAgICAke2RhdGFkaXJ9L2FwcGxpY2F0aW9ucyBcCisgICAgJHtkYXRhZGlyfS9tZW51bGlicmUgXAorICAgICR7ZGF0YWRpcn0vaWNvbnMgXAorIgorCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICBndGsrMyBcCisgICAgZ3Rrc291cmNldmlldzMgXAorICAgIHB5dGhvbjMtcHlnb2JqZWN0IFwKKyAgICBnbm9tZS1tZW51czMgXAorICAgIHB5dGhvbjMtdW5peGFkbWluIFwKKyAgICBweXRob24zLXBzdXRpbCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGFyY2hpdmVyL3hhcmNoaXZlcl9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGFyY2hpdmVyL3hhcmNoaXZlcl9naXQuYmIKaW5kZXggZTI3NWFmMC4uYTI3YzhmNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hhcmNoaXZlci94YXJjaGl2ZXJfZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94YXJjaGl2ZXIveGFyY2hpdmVyX2dpdC5iYgpAQCAtMTIsNyArMTIsOSBAQAogUFYgPSAiMC41LjMiCiBTID0gIiR7V09SS0RJUn0vZ2l0IgogCi1pbmhlcml0IHhmY2UtZ2l0IGdldHRleHQgcGtnY29uZmlnIGF1dG90b29scyBndGstaWNvbi1jYWNoZQoraW5oZXJpdCB4ZmNlLWdpdCBnZXR0ZXh0IHBrZ2NvbmZpZyBhdXRvdG9vbHMgZ3RrLWljb24tY2FjaGUgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKICMgaW5zdGFsbCB0YXAgZmlsZXMgZm9yIHRodW5hci1hcmNoaXZlLXBsdWdpbiBpbiAke2xpYmRpcn0vdGh1bmFyLWFyY2hpdmUtcGx1Z2luCiBFWFRSQV9PRUNPTkYgKz0gIi0tbGliZXhlY2Rpcj0ke2xpYmRpcn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZS1wb2xraXQvZmlsZXMvMDAwMS1maXgtTmFtZS1Db21tZW50LWZpZWxkcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlLXBvbGtpdC9maWxlcy8wMDAxLWZpeC1OYW1lLUNvbW1lbnQtZmllbGRzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NzIyNDkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZS1wb2xraXQvZmlsZXMvMDAwMS1maXgtTmFtZS1Db21tZW50LWZpZWxkcy5wYXRjaApAQCAtMCwwICsxLDM0IEBACitGcm9tIGZiMWY4M2MwNGRkNTI2Mjg5N2IwOWU2MGZhOGIzOTA5MGQwZDQ2MTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSZXggRGlldGVyIDxyZGlldGVyQG1hdGgudW5sLmVkdT4KK0RhdGU6IFRodSwgMTIgTm92IDIwMTUgMTM6NTM6MDMgLTA2MDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IE5hbWUvQ29tbWVudCBmaWVsZHMKKworVmFsaWRhdGUgYXMgYSB2YWxpZCAuZGVza3RvcCBmaWxlIHBlcgoraHR0cDovL3N0YW5kYXJkcy5mcmVlZGVza3RvcC5vcmcvZGVza3RvcC1lbnRyeS1zcGVjL2xhdGVzdC8KKworU2VlIGFsc28gaXNzdWUgIzIKKworVXBzdHJlYW0tU3RhdHVzOiBBcHBsaWVkIFsxXQorCitbMV0gaHR0cHM6Ly9naXRodWIuY29tL25jb3BhL3hmY2UtcG9sa2l0L2NvbW1pdC9mYjFmODNjMDRkZDUyNjI4OTdiMDllNjBmYThiMzkwOTBkMGQ0NjE5CistLS0KKyB4ZmNlLXBvbGtpdC5kZXNrdG9wLmluIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3hmY2UtcG9sa2l0LmRlc2t0b3AuaW4gYi94ZmNlLXBvbGtpdC5kZXNrdG9wLmluCitpbmRleCA4NTc1ODk2Li5kZDlmMDljIDEwMDY0NAorLS0tIGEveGZjZS1wb2xraXQuZGVza3RvcC5pbgorKysrIGIveGZjZS1wb2xraXQuZGVza3RvcC5pbgorQEAgLTEsNyArMSw3IEBACisgW0Rlc2t0b3AgRW50cnldCisgVHlwZT1BcHBsaWNhdGlvbgorLV9OYW1lPVhGQ0UgUG9sS2l0CistX0NvbW1lbnQ9UG9saWN5a2l0IEF1dGhlbnRpY2F0aW9uIEFnZW50CisrTmFtZT1YRkNFIFBvbEtpdAorK0NvbW1lbnQ9UG9saWN5a2l0IEF1dGhlbnRpY2F0aW9uIEFnZW50CisgRXhlYz1AeGZjZV9wb2xraXRfbGliZXhlY2RpckAveGZjZS1wb2xraXQKKyBJY29uPWd0ay1kaWFsb2ctYXV0aGVudGljYXRpb24KKyBOb3RTaG93SW49R05PTUU7S0RFOworLS0gCisyLjE0LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2UtcG9sa2l0L3hmY2UtcG9sa2l0XzAuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlLXBvbGtpdC94ZmNlLXBvbGtpdF8wLjIuYmIKaW5kZXggMWZiNGE1Yi4uNTRiZjdjNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2UtcG9sa2l0L3hmY2UtcG9sa2l0XzAuMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZS1wb2xraXQveGZjZS1wb2xraXRfMC4yLmJiCkBAIC02LDYgKzYsOSBAQAogCiBpbmhlcml0IHhmY2UtYXBwCiAKLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9uY29wYS8ke0JQTn0uZ2l0IgorU1JDX1VSSSA9ICIgXAorICAgIGdpdDovL2dpdGh1Yi5jb20vbmNvcGEvJHtCUE59LmdpdCBcCisgICAgZmlsZTovLzAwMDEtZml4LU5hbWUtQ29tbWVudC1maWVsZHMucGF0Y2ggXAorIgogU1JDUkVWID0gIjZhZDFlZTgzM2M5ZTIyZTRkZDcyYThmN2Q1NDU2MmQwNDY5NjUyODMiCiBTID0gIiR7V09SS0RJUn0vZ2l0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2U0LW5vdGlmeWQveGZjZTQtbm90aWZ5ZF8wLjMuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlNC1ub3RpZnlkL3hmY2U0LW5vdGlmeWRfMC4zLjYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjMjM2MGEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2U0LW5vdGlmeWQveGZjZTQtbm90aWZ5ZF8wLjMuNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVNVTU1BUlkgPSAiRWFzaWx5IHRoZW1hYmxlIG5vdGlmaWNhdGlvbiBkYWVtb24gd2l0aCB0cmFuc3BhcmVuY3kgZWZmZWN0cyIKLUhPTUVQQUdFID0gImh0dHA6Ly9nb29kaWVzLnhmY2Uub3JnL3Byb2plY3RzL2FwcGxpY2F0aW9ucy94ZmNlNC1ub3RpZnlkIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIgotREVQRU5EUyA9ICJsaWJ4ZmNlNHV0aWwgbGlieGZjZTR1aSB4ZmNvbmYgZ3RrKyBkYnVzIGRidXMtZ2xpYiBsaWJub3RpZnkgXAotICAgIGRidXMtZ2xpYi1uYXRpdmUgXAotIgotCi1pbmhlcml0IHhmY2UtYXBwCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIxOWU2MDJmYTVlMzNhZmFmNzU2M2YwNjkyNjFhZTFkYiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmNGNhN2MwZGFkZDNkNGNkZjhjZDNjOGFlNjBjY2VhNzdiOGNmNDA5Zjg1MTcxNjE3OTYzNjRlYjFkNzY2Y2Y5IgotCi1kb19jb21waWxlX3ByZXBlbmQoKSB7Ci0gICAgbWtkaXIgLXAgeGZjZTQtbm90aWZ5ZAotfQotCi1GSUxFU18ke1BOfSArPSAiIFwKLSAgICAke3N5c3RlbWRfdXNlcl91bml0ZGlyfSBcCi0gICAgJHtsaWJkaXJ9L3hmY2U0L25vdGlmeWQgXAotICAgICR7ZGF0YWRpcn0vdGhlbWVzIFwKLSAgICAke2RhdGFkaXJ9L2RidXMtMSBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZTQtbm90aWZ5ZC94ZmNlNC1ub3RpZnlkXzAuNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2U0LW5vdGlmeWQveGZjZTQtbm90aWZ5ZF8wLjQuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNWVjNTFiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2U0LW5vdGlmeWQveGZjZTQtbm90aWZ5ZF8wLjQuMi5iYgpAQCAtMCwwICsxLDM1IEBACitTVU1NQVJZID0gIkVhc2lseSB0aGVtYWJsZSBub3RpZmljYXRpb24gZGFlbW9uIHdpdGggdHJhbnNwYXJlbmN5IGVmZmVjdHMiCitIT01FUEFHRSA9ICJodHRwOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9hcHBsaWNhdGlvbnMveGZjZTQtbm90aWZ5ZCIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKK0RFUEVORFMgPSAiIFwKKyAgICBkYnVzIFwKKyAgICBkYnVzLWdsaWIgXAorICAgIGRidXMtZ2xpYi1uYXRpdmUgXAorICAgIGxpYm5vdGlmeSBcCisgICAgbGlieGZjZTR1dGlsIFwKKyAgICBsaWJ4ZmNlNHVpIFwKKyAgICB4ZmNvbmYgXAorICAgIHhmY2U0LXBhbmVsIFwKKyIKKworaW5oZXJpdCB4ZmNlLWFwcAorCitTUkNfVVJJW21kNXN1bV0gPSAiZWNiOTMwZWY2YWU2ZTFmMzEwYTVhZmU1ZjYzOGVmZjgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjZmMjhhZjQ3ZmRmYjQxZGI4NGJkMDAzZjBkNzZmNWY0YWJmMjEzN2QxZTI3ZTlkMzc4ZjA2M2JiOGY4MjM1NiIKKworIyBBdm9pZCB0cm91YmxlIHdpdGggb3RoZXIgZGVza3RvcHMgZS5nIEtERSB3aGljaCBhbHNvIHNoaXBzIGRidXMgc2VydmljZSBuYW1lZAorIyBvcmcuZnJlZWRlc2t0b3AuTm90aWZpY2F0aW9ucworRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1kYnVzLXN0YXJ0LWRhZW1vbiIKKworZG9fY29tcGlsZV9wcmVwZW5kKCkgeworICAgIG1rZGlyIC1wIHhmY2U0LW5vdGlmeWQgeGZjZTQtbm90aWZ5ZC1jb25maWcKK30KKworRklMRVNfJHtQTn0gKz0gIiBcCisgICAgJHtzeXN0ZW1kX3VzZXJfdW5pdGRpcn0gXAorICAgICR7ZGF0YWRpcn0veGZjZTQgXAorICAgICR7ZGF0YWRpcn0vdGhlbWVzIFwKKyAgICAke2RhdGFkaXJ9L2RidXMtMSBcCisgICAgJHtsaWJkaXJ9L3hmY2U0IFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlNC10ZXJtaW5hbC94ZmNlNC10ZXJtaW5hbF8wLjguNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlNC10ZXJtaW5hbC94ZmNlNC10ZXJtaW5hbF8wLjguNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjQyZWRiNi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZTQtdGVybWluYWwveGZjZTQtdGVybWluYWxfMC44LjYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1TVU1NQVJZID0gIlRlcm1pbmFsIGVtdWxhdG9yIGZvciB0aGUgWGZjZSBkZXNrdG9wIGVudmlyb25tZW50IgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotREVQRU5EUyA9ICJnbGliLTIuMCBndGsrMyB2dGUgbGlieGZjZTR1aSIKLQotaW5oZXJpdCB4ZmNlLWFwcAotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS94ZmNlNCBcCi0gICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9nbm9tZS1jb250cm9sLWNlbnRlciIKLQotU1JDX1VSSVttZDVzdW1dID0gIjkyZjVhMzM2NmUzMGY1ZjgyMzhkODI1MGY3MzBiNmFmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImJjMmE1NjA0MDlhMGYwYjY2NmQxYzU1N2U5OTE3NDhiOTg2ZWMyNzU3MmE0NWFlODhiMGVlNWE0ODBkODgxZDciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZTQtdGVybWluYWwveGZjZTQtdGVybWluYWxfMC44LjcuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlNC10ZXJtaW5hbC94ZmNlNC10ZXJtaW5hbF8wLjguNy4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MzBhYmMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZTQtdGVybWluYWwveGZjZTQtdGVybWluYWxfMC44LjcuMy5iYgpAQCAtMCwwICsxLDEyIEBACitTVU1NQVJZID0gIlRlcm1pbmFsIGVtdWxhdG9yIGZvciB0aGUgWGZjZSBkZXNrdG9wIGVudmlyb25tZW50IgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgorREVQRU5EUyA9ICJnbGliLTIuMCBndGsrMyB2dGUgbGlieGZjZTR1aSIKKworaW5oZXJpdCB4ZmNlLWFwcAorCitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS94ZmNlNCBcCisgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9nbm9tZS1jb250cm9sLWNlbnRlciIKKworU1JDX1VSSVttZDVzdW1dID0gImYwMTRkNjEzNDM4ODQ4YjQ1MmYxZjllZWNiZjcwMjdkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImRhZmExNTUxNzc5MzRmYzdkY2UyZDRlZmIzMzQwMmY3NGIxYTU5M2ExN2ZmMTdkMjE4N2E2NDI5ZjU5OWRmZDYiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWJpbmRpbmdzL3ZhbGEveGZjZTQtdmFsYV80LjEwLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWJpbmRpbmdzL3ZhbGEveGZjZTQtdmFsYV80LjEwLjMuYmIKaW5kZXggZDBhMDU5OC4uMjhmOWNkZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1iaW5kaW5ncy92YWxhL3hmY2U0LXZhbGFfNC4xMC4zLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYmluZGluZ3MvdmFsYS94ZmNlNC12YWxhXzQuMTAuMy5iYgpAQCAtMywxMyArMywxNSBAQAogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MjQzYjcyNWQ3MWJiNWRmNGExZTU5MjBiMzQ0Yjg2YWQiCiBERVBFTkRTID0gImxpYnhmY2U0dXRpbCBnYXJjb24geGZjb25mIGxpYnhmY2U0dWkgeGZjZTQtcGFuZWwgZXhvIHZhbGEgeGZjZTQtZGV2LXRvb2xzLW5hdGl2ZSIKIAotaW5oZXJpdCB4ZmNlCitpbmhlcml0IHhmY2UgcGtnY29uZmlnIGRpc3Ryb19mZWF0dXJlc19jaGVjaworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBTUkNfVVJJID0gImh0dHA6Ly9hcmNoaXZlLnhmY2Uub3JnL3NyYy9iaW5kaW5ncy8ke0JQTn0vJHtAeGZjZV92ZXJkaXIoIiR7UFZ9Iil9LyR7QlBOfS0ke1BWfS50YXIuYnoyIgogU1JDX1VSSVttZDVzdW1dID0gIjBiYmIxZDZlNDczZTBmZTliMzM1YjdiMWI0OWQ4YTcxIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjA3YThmMmI3YzA5ZmNkZDNkODZlMGM1MmFkZWEzYzU4Y2EwMTFkMDE0MmE5Mzk5N2EwMWI0YWY3NzI2MGFlN2IiCiAKLUVYVFJBX09FQ09ORiA9ICItd2l0aC12YWxhLWFwaT0wLjM2IgorRVhUUkFfT0VDT05GID0gIi13aXRoLXZhbGEtYXBpPTAuMzgiCiAKIEZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L3ZhbGEtKi92YXBpIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5ncy8wMDAxLVJlbmFtZS11c2Utb2Ytc3Rkb3V0LWFuZC1zdGRlcnIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5ncy8wMDAxLVJlbmFtZS11c2Utb2Ytc3Rkb3V0LWFuZC1zdGRlcnIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3N2NlNGQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9pbXNldHRpbmdzL2ltc2V0dGluZ3MvMDAwMS1SZW5hbWUtdXNlLW9mLXN0ZG91dC1hbmQtc3RkZXJyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotRnJvbSA3ZWU2MmVmMDA4Mzg0NGFiMmZmZmNkMTA2ZTNlZTJlNWYyOWIyYTkxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMTIgSnVsIDIwMTcgMTg6NTM6NTYgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gUmVuYW1lIHVzZSBvZiBzdGRvdXQgYW5kIHN0ZGVycgotCi1TaW5jZSBpdCBzaGFkb3cgdGhlIHN0YW5kYXJkIGRlZmluaXRpb25zIGVzcGVjaWFsbHkKLXNlZW4gb24gbXVzbCB3aGVyZSBsaWJjIGRlZmluZXMgdGhlc2UgYXMgbWFjcm9zIHRoZXkKLWNhdXNlIGFsbCBzaG9ydCBvZiBjb21waWxhdGlvbiBlcnJvcnMgb24gbXVzbCwgdXNpbmcKLWEgbGVhZGluZyB1bmRlcnNjb3JlIG1ha2VzIGl0IHVuaXF1ZQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gaW1zZXR0aW5ncy1kYWVtb24vaW1zZXR0aW5ncy1wcm9jLmMgfCAyOCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvaW1zZXR0aW5ncy1kYWVtb24vaW1zZXR0aW5ncy1wcm9jLmMgYi9pbXNldHRpbmdzLWRhZW1vbi9pbXNldHRpbmdzLXByb2MuYwotaW5kZXggOTE1ZTc4Yi4uYjc4ZmNmZiAxMDA2NDQKLS0tLSBhL2ltc2V0dGluZ3MtZGFlbW9uL2ltc2V0dGluZ3MtcHJvYy5jCi0rKysgYi9pbXNldHRpbmdzLWRhZW1vbi9pbXNldHRpbmdzLXByb2MuYwotQEAgLTM5LDggKzM5LDggQEAKLSAjZGVmaW5lIE1BWFJFU1RBUlQgMwotIAotIHR5cGVkZWYgc3RydWN0IF9JTVNldHRpbmdzUHJvY0luZm8gewotLQlHSU9DaGFubmVsICAgICAqc3Rkb3V0OwotLQlHSU9DaGFubmVsICAgICAqc3RkZXJyOwotKwlHSU9DaGFubmVsICAgICAqX3N0ZG91dDsKLSsJR0lPQ2hhbm5lbCAgICAgKl9zdGRlcnI7Ci0gCUdQaWQgICAgICAgICAgICBwaWQ7Ci0gCUdUaW1lVmFsICAgICAgICBzdGFydGVkX3RpbWU7Ci0gCWd1aW50ICAgICAgICAgICBpZDsKLUBAIC0zNjgsMTIgKzM2OCwxMiBAQCBfc3RhcnRfcHJvY2VzcyhJTVNldHRpbmdzUHJvYyAgICAgKnByb2MsCi0gCQkJCQkgICAgICZvZmQsICZlZmQsCi0gCQkJCQkgICAgIGVycm9yKSkgewotIAkJCXBpbmZvLT5waWQgPSBwaWQ7Ci0tCQkJcGluZm8tPnN0ZG91dCA9IGdfaW9fY2hhbm5lbF91bml4X25ldyhvZmQpOwotLQkJCXBpbmZvLT5zdGRlcnIgPSBnX2lvX2NoYW5uZWxfdW5peF9uZXcoZWZkKTsKLS0JCQlnX2lvX2NoYW5uZWxfc2V0X2Nsb3NlX29uX3VucmVmKHBpbmZvLT5zdGRvdXQsIFRSVUUpOwotLQkJCWdfaW9fY2hhbm5lbF9zZXRfY2xvc2Vfb25fdW5yZWYocGluZm8tPnN0ZGVyciwgVFJVRSk7Ci0tCQkJcGluZm8tPm9pZCA9IGdfaW9fYWRkX3dhdGNoKHBpbmZvLT5zdGRvdXQsIEdfSU9fSU4sIF9sb2dfd3JpdGVfY2IsIHByb2MpOwotLQkJCXBpbmZvLT5laWQgPSBnX2lvX2FkZF93YXRjaChwaW5mby0+c3RkZXJyLCBHX0lPX0lOLCBfbG9nX3dyaXRlX2NiLCBwcm9jKTsKLSsJCQlwaW5mby0+X3N0ZG91dCA9IGdfaW9fY2hhbm5lbF91bml4X25ldyhvZmQpOwotKwkJCXBpbmZvLT5fc3RkZXJyID0gZ19pb19jaGFubmVsX3VuaXhfbmV3KGVmZCk7Ci0rCQkJZ19pb19jaGFubmVsX3NldF9jbG9zZV9vbl91bnJlZihwaW5mby0+X3N0ZG91dCwgVFJVRSk7Ci0rCQkJZ19pb19jaGFubmVsX3NldF9jbG9zZV9vbl91bnJlZihwaW5mby0+X3N0ZGVyciwgVFJVRSk7Ci0rCQkJcGluZm8tPm9pZCA9IGdfaW9fYWRkX3dhdGNoKHBpbmZvLT5fc3Rkb3V0LCBHX0lPX0lOLCBfbG9nX3dyaXRlX2NiLCBwcm9jKTsKLSsJCQlwaW5mby0+ZWlkID0gZ19pb19hZGRfd2F0Y2gocGluZm8tPl9zdGRlcnIsIEdfSU9fSU4sIF9sb2dfd3JpdGVfY2IsIHByb2MpOwotIAkJCWdfZ2V0X2N1cnJlbnRfdGltZSgmcGluZm8tPnN0YXJ0ZWRfdGltZSk7Ci0gCQkJcGluZm8tPmlkID0gZ19jaGlsZF93YXRjaF9hZGQocGlkLCBfd2F0Y2hfaW1fc3RhdHVzX2NiLCBwcm9jKTsKLSAKLUBAIC01MjEsMTMgKzUyMSwxMyBAQCBpbXNldHRpbmdzX3Byb2NfZ2V0X3Byb3BlcnR5KEdPYmplY3QgICAgKm9iamVjdCwKLSBzdGF0aWMgdm9pZAotIGltc2V0dGluZ3NfcHJvY19pbmZvX2ZpbmFsaXplKElNU2V0dGluZ3NQcm9jSW5mbyAqcGluZm8pCi0gewotLQlpZiAocGluZm8tPnN0ZG91dCkgewotLQkJZ19pb19jaGFubmVsX3VucmVmKHBpbmZvLT5zdGRvdXQpOwotLQkJcGluZm8tPnN0ZG91dCA9IE5VTEw7Ci0rCWlmIChwaW5mby0+X3N0ZG91dCkgewotKwkJZ19pb19jaGFubmVsX3VucmVmKHBpbmZvLT5fc3Rkb3V0KTsKLSsJCXBpbmZvLT5fc3Rkb3V0ID0gTlVMTDsKLSAJfQotLQlpZiAocGluZm8tPnN0ZGVycikgewotLQkJZ19pb19jaGFubmVsX3VucmVmKHBpbmZvLT5zdGRlcnIpOwotLQkJcGluZm8tPnN0ZGVyciA9IE5VTEw7Ci0rCWlmIChwaW5mby0+X3N0ZGVycikgewotKwkJZ19pb19jaGFubmVsX3VucmVmKHBpbmZvLT5fc3RkZXJyKTsKLSsJCXBpbmZvLT5fc3RkZXJyID0gTlVMTDsKLSAJfQotIAlpZiAocGluZm8tPm9pZCA+IDApIHsKLSAJCWdfc291cmNlX3JlbW92ZShwaW5mby0+b2lkKTsKLS0tIAotMi4xMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvaW1zZXR0aW5ncy9pbXNldHRpbmdzL2d0ay1pcy1yZXF1aXJlZC1ieS1ub3RpZnkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5ncy9ndGstaXMtcmVxdWlyZWQtYnktbm90aWZ5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDIzNThkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvaW1zZXR0aW5ncy9pbXNldHRpbmdzL2d0ay1pcy1yZXF1aXJlZC1ieS1ub3RpZnkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1ndGsrIGlzIHJlcXVpcmVkIGJ5IGxpbm5vdGlmeS4gU28gbWFrZSBzdXJlIGd0ayBiZSBsaW5rZWQgYmVmb3JlIGxpYm5vdGlmeQotCi1TaWduZWQtb2ZmLWJ5OiBCaWFuIE5haW1lbmcgPGJpYW5ubUBjbi5mdWppdHN1LmNvbT4KLQotZGlmZiAtTnVycCBpbXNldHRpbmdzLTEuNi43Lm9yaWcvY29uZmlndXJlLmFjIGltc2V0dGluZ3MtMS42LjcvY29uZmlndXJlLmFjCi0tLS0gaW1zZXR0aW5ncy0xLjYuNy5vcmlnL2NvbmZpZ3VyZS5hYwkyMDEzLTExLTI2IDE2OjA5OjA5LjAwMDAwMDAwMCArMDgwMAotKysrIGltc2V0dGluZ3MtMS42LjcvY29uZmlndXJlLmFjCTIwMTQtMTItMzAgMTE6Mjc6NDQuMzcwMDAzMjA5ICswODAwCi1AQCAtOTMsOCArOTMsOCBAQCBQS0dfQ0hFQ0tfTU9EVUxFUyhMSUJOT1RJRlksIGxpYm5vdGlmeSwKLSAJCWhhc19vbGRfbGlibm90aWZ5PXllcwotIAkJUEtHX0NIRUNLX01PRFVMRVMoR1RLLCBndGsrLTIuMCA+PSAkR1RLX1JFUVVJUkVEKQotIAkJQUNfREVGSU5FKEhBU19PTERfTElCTk9USUZZLCwgW1VzaW5nIG9sZGVyIGxpYm5vdGlmeV0pCi0tCQlJTURBRU1PTl9DRkxBR1M9IiRHVEtfQ0ZMQUdTICRMSUJOT1RJRllfT0xEX0NGTEFHUyIKLS0JCUlNREFFTU9OX0xJQlM9IiRHVEtfTElCUyAkTElCTk9USUZZX09MRF9MSUJTIl0sWwotKwkJSU1EQUVNT05fQ0ZMQUdTPSIkTElCTk9USUZZX09MRF9DRkxBR1MgJEdUS19DRkxBR1MiCi0rCQlJTURBRU1PTl9MSUJTPSIkTElCTk9USUZZX09MRF9MSUJTICRHVEtfTElCUyJdLFsKLSAJCWhhc19vbGRfbGlibm90aWZ5PW5vCi0gCQlJTURBRU1PTl9DRkxBR1M9IiRMSUJOT1RJRllfQ0ZMQUdTIgotIAkJSU1EQUVNT05fTElCUz0iJExJQk5PVElGWV9MSUJTIl0pCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5ncy9tdWx0aS1saW5lLUFDTE9DQUxfQU1GTEFHUy1pc25vdC1zdXBwb3J0ZWQtYnktYXV0b3JlY29uZi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvaW1zZXR0aW5ncy9pbXNldHRpbmdzL211bHRpLWxpbmUtQUNMT0NBTF9BTUZMQUdTLWlzbm90LXN1cHBvcnRlZC1ieS1hdXRvcmVjb25mLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNWFjODdkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvaW1zZXR0aW5ncy9pbXNldHRpbmdzL211bHRpLWxpbmUtQUNMT0NBTF9BTUZMQUdTLWlzbm90LXN1cHBvcnRlZC1ieS1hdXRvcmVjb25mLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotbXVsdGktbGluZSBBQ0xPQ0FMX0FNRkxBR1MgaXNuJ3Qgc3VwcG9ydGVkIGJ5IGF1dG9yZWNvbmYuCi1JdCB3aWxsIGNhdXNlIGNvbmZpZ3VyZSBlcnJvciBhcyBmb2xsb3cuCi0KLSAgYWNsb2NhbDogZXJyb3I6IG5vbi1vcHRpb24gYXJndW1lbnRzIGFyZSBub3QgYWNjZXB0ZWQ6ICdcJy4KLQotU2lnbmVkLW9mZi1ieTogQmlhbiBOYWltZW5nIDxiaWFubm1AY24uZnVqaXRzdS5jb20+Ci0KLWRpZmYgLU51cnAgaW1zZXR0aW5ncy0xLjcuMS5vcmlnL01ha2VmaWxlLmFtIGltc2V0dGluZ3MtMS43LjEvTWFrZWZpbGUuYW0KLS0tLSBpbXNldHRpbmdzLTEuNy4xLm9yaWcvTWFrZWZpbGUuYW0JMjAxMy0wMi0wOCAxMTozMzo1OS4wMDAwMDAwMDAgKzA5MDAKLSsrKyBpbXNldHRpbmdzLTEuNy4xL01ha2VmaWxlLmFtCTIwMTUtMDYtMjQgMTQ6MTU6MzIuMDcwMDAwMDA3ICswOTAwCi1AQCAtMSw3ICsxLDcgQEAKLSBOVUxMID0KLSBTVUJESVJTID0gZGF0YSBpbXNldHRpbmdzIGltc2V0dGluZ3MtZGFlbW9uIGJhY2tlbmRzIHV0aWxzIHBvIHRlc3RzIGRvY3MKLSAKLS1BQ0xPQ0FMX0FNRkxBR1MgPSAtSW00bWFjcm9zCi0rQUNMT0NBTF9BTUZMQUdTID0gLUkgbTRtYWNyb3MgJChOVUxMKQotIAotIENPTkZJR1VSRV9ERVBFTkRFTkNJRVMgPQkJXAotIAlyZXF1aXJlcwkJCVwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvaW1zZXR0aW5ncy9pbXNldHRpbmdzXzEuNy4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9pbXNldHRpbmdzL2ltc2V0dGluZ3NfMS43LjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhNGNlMDUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9pbXNldHRpbmdzL2ltc2V0dGluZ3NfMS43LjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1TVU1NQVJZID0gIkRlbGl2ZXJ5IGZyYW1ld29yayBmb3IgZ2VuZXJhbCBJbnB1dCBNZXRob2QgY29uZmlndXJhdGlvbiIKLURFU0NSSVBUSU9OID0gIklNU2V0dGluZ3MgaXMgYSBmcmFtZXdvcmsgdGhhdCBkZWxpdmVycyBJbnB1dCBNZXRob2QgXAotc2V0dGluZ3MgYW5kIGFwcGxpZXMgdGhlIGNoYW5nZXMgc28gdGhleSB0YWtlIGVmZmVjdCBcCi1pbW1lZGlhdGVseSB3aXRob3V0IGFueSBuZWVkIHRvIHJlc3RhcnQgYXBwbGljYXRpb25zIFwKLW9yIHRoZSBkZXNrdG9wLiBcCi1UaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIGNvcmUgREJ1cyBzZXJ2aWNlcyBhbmQgc29tZSB1dGlsaXRpZXMuIgotSE9NRVBBR0UgPSAiaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2ltc2V0dGluZ3MvIgotU0VDVElPTiA9ICJBcHBsaWNhdGlvbnMvU3lzdGVtIgotCi1pbmhlcml0IGF1dG90b29scyBndGstZG9jIGdvYmplY3QtaW50cm9zcGVjdGlvbgotCi1TUkNfVVJJID0gImh0dHBzOi8vYml0YnVja2V0Lm9yZy90YWdvaC9pbXNldHRpbmdzL2Rvd25sb2Fkcy8ke0JQTn0tJHtQVn0udGFyLmJ6MiBcCi0gICAgICAgICAgIGZpbGU6Ly9ndGstaXMtcmVxdWlyZWQtYnktbm90aWZ5LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL211bHRpLWxpbmUtQUNMT0NBTF9BTUZMQUdTLWlzbm90LXN1cHBvcnRlZC1ieS1hdXRvcmVjb25mLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtUmVuYW1lLXVzZS1vZi1zdGRvdXQtYW5kLXN0ZGVyci5wYXRjaCBcCi0gICAgICAgICAgICIKLQotU1JDX1VSSVttZDVzdW1dID0gIjgxNTNiMDU4M2E5ZjQ3ZDhhNjJhZjFmOTJmYjlkM2JmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQxYWRkZjA0NThmNzYwMjEyYjZiNjEwMDgzNTA2NmUxNmRlYjNhOGE1MGViMDA1YTBmYzE3ZmJhYzBhMmFlNjYiCi0KLUxJQ0VOU0UgPSAiTEdQTHYyKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTJkNTAyNWQ0YWEzNDk1YmVmZWY4ZjE3MjA2YTViMGExIgotCi1FWFRSQV9PRUNPTkYgPSAiLS13aXRoLXhpbnB1dHNoPTUwLXhpbnB1dC5zaCBcCi0gICAgICAgICAgICAgICAgLS1kaXNhYmxlLXN0YXRpYyBcCi0gICAgICAgICAgICAgICAiCi0KLURFUEVORFMgPSAiZ3RrKyBnY29uZiBsaWJub3RpZnkgZGJ1cy1nbGliIGxpYmd4aW0geGZjb25mIGludGx0b29sLW5hdGl2ZSIKLQotUkRFUEVORFNfJHtQTn0gKz0gImJhc2giCi0KLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2RidXMtMS8qICR7ZGF0YWRpcn0vZ2lyLTEuMC8qICR7bGliZGlyfS9naXJlcG9zaXRvcnktMS4wLyoiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5nc18xLjcuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvaW1zZXR0aW5ncy9pbXNldHRpbmdzXzEuNy4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNjIyYmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5nc18xLjcuMy5iYgpAQCAtMCwwICsxLDMxIEBACitTVU1NQVJZID0gIkRlbGl2ZXJ5IGZyYW1ld29yayBmb3IgZ2VuZXJhbCBJbnB1dCBNZXRob2QgY29uZmlndXJhdGlvbiIKK0RFU0NSSVBUSU9OID0gIklNU2V0dGluZ3MgaXMgYSBmcmFtZXdvcmsgdGhhdCBkZWxpdmVycyBJbnB1dCBNZXRob2QgXAorc2V0dGluZ3MgYW5kIGFwcGxpZXMgdGhlIGNoYW5nZXMgc28gdGhleSB0YWtlIGVmZmVjdCBcCitpbW1lZGlhdGVseSB3aXRob3V0IGFueSBuZWVkIHRvIHJlc3RhcnQgYXBwbGljYXRpb25zIFwKK29yIHRoZSBkZXNrdG9wLiBcCitUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIGNvcmUgREJ1cyBzZXJ2aWNlcyBhbmQgc29tZSB1dGlsaXRpZXMuIgorSE9NRVBBR0UgPSAiaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2ltc2V0dGluZ3MvIgorU0VDVElPTiA9ICJBcHBsaWNhdGlvbnMvU3lzdGVtIgorCitpbmhlcml0IGF1dG90b29scyBndGstZG9jIGdvYmplY3QtaW50cm9zcGVjdGlvbiBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworU1JDX1VSSSA9ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvdGFnb2gvaW1zZXR0aW5ncy9kb3dubG9hZHMvJHtCUE59LSR7UFZ9LnRhci5iejIgXAorICAgICAgICAgICAiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJjNmM2NWEyYjI2NTRmZTlkZmU5YWIyZThiODBjMDc5YSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIxOTZkM2E3NGNlZjI1NGZmODEyYzMyNjgyZDE4MThkNzQwZTM2YTY4Yjk3NmZlZjllOTk3NDhkMjNhNzFhNzFhIgorCitMSUNFTlNFID0gIkxHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0yZDUwMjVkNGFhMzQ5NWJlZmVmOGYxNzIwNmE1YjBhMSIKKworRVhUUkFfT0VDT05GID0gIi0td2l0aC14aW5wdXRzaD01MC14aW5wdXQuc2ggXAorICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1zdGF0aWMgXAorICAgICAgICAgICAgICAgIgorCitERVBFTkRTID0gImd0aysgZ2NvbmYgbGlibm90aWZ5IGRidXMtZ2xpYiBsaWJneGltIHhmY29uZiBpbnRsdG9vbC1uYXRpdmUiCisKK1JERVBFTkRTXyR7UE59ICs9ICJiYXNoIgorCitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9kYnVzLTEvKiAke2RhdGFkaXJ9L2dpci0xLjAvKiAke2xpYmRpcn0vZ2lyZXBvc2l0b3J5LTEuMC8qIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGlidW5pcXVlL2xpYnVuaXF1ZS8wMDAxLU1ha2VmaWxlLmFtLXVzZS1MSUJUT09MLWluc3RlYWQtb2YtaGFyZGNvZGVkLWxpYnRvb2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnVuaXF1ZS9saWJ1bmlxdWUvMDAwMS1NYWtlZmlsZS5hbS11c2UtTElCVE9PTC1pbnN0ZWFkLW9mLWhhcmRjb2RlZC1saWJ0b29sLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJ1bmlxdWUvbGlidW5pcXVlLzAwMDEtTWFrZWZpbGUuYW0tdXNlLUxJQlRPT0wtaW5zdGVhZC1vZi1oYXJkY29kZWQtbGlidG9vbC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9saWJ1bmlxdWUvbGlidW5pcXVlLzAwMDEtTWFrZWZpbGUuYW0tdXNlLUxJQlRPT0wtaW5zdGVhZC1vZi1oYXJkY29kZWQtbGlidG9vbC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGlidW5pcXVlL2xpYnVuaXF1ZS8wMDAxLXRlc3QtdW5pcXVlLUFkZC1mb3JtYXQtcXVhbGlmaWVyLXMtZm9yLXN0cmluZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvbGlidW5pcXVlL2xpYnVuaXF1ZS8wMDAxLXRlc3QtdW5pcXVlLUFkZC1mb3JtYXQtcXVhbGlmaWVyLXMtZm9yLXN0cmluZy5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGlidW5pcXVlL2xpYnVuaXF1ZS8wMDAxLXRlc3QtdW5pcXVlLUFkZC1mb3JtYXQtcXVhbGlmaWVyLXMtZm9yLXN0cmluZy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9saWJ1bmlxdWUvbGlidW5pcXVlLzAwMDEtdGVzdC11bmlxdWUtQWRkLWZvcm1hdC1xdWFsaWZpZXItcy1mb3Itc3RyaW5nLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJ1bmlxdWUvbGlidW5pcXVlL2J1aWxkLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9saWJ1bmlxdWUvbGlidW5pcXVlL2J1aWxkLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJ1bmlxdWUvbGlidW5pcXVlL2J1aWxkLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnVuaXF1ZS9saWJ1bmlxdWUvYnVpbGQucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYnVuaXF1ZS9saWJ1bmlxdWUvZml4X2Zvcl9jb21waWxlX3dpdGhfZ2NjLTQuNi4wLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9saWJ1bmlxdWUvbGlidW5pcXVlL2ZpeF9mb3JfY29tcGlsZV93aXRoX2djYy00LjYuMC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGlidW5pcXVlL2xpYnVuaXF1ZS9maXhfZm9yX2NvbXBpbGVfd2l0aF9nY2MtNC42LjAucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvbGlidW5pcXVlL2xpYnVuaXF1ZS9maXhfZm9yX2NvbXBpbGVfd2l0aF9nY2MtNC42LjAucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYnVuaXF1ZS9saWJ1bmlxdWUvbm9jb25zdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvbGlidW5pcXVlL2xpYnVuaXF1ZS9ub2NvbnN0LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJ1bmlxdWUvbGlidW5pcXVlL25vY29uc3QucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvbGlidW5pcXVlL2xpYnVuaXF1ZS9ub2NvbnN0LnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnVuaXF1ZS9saWJ1bmlxdWVfMS4xLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnVuaXF1ZS9saWJ1bmlxdWVfMS4xLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDllZDA3YQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvbGlidW5pcXVlL2xpYnVuaXF1ZV8xLjEuNi5iYgpAQCAtMCwwICsxLDMwIEBACitTVU1NQVJZID0gIkxpYnJhcnkgZm9yIHN1cHBvcnRpbmcgc2luZ2xlIGluc3RhbmNlIEdUSysgYXBwbGljYXRpb25zIgorREVTQ1JJUFRJT04gPSAiVW5pcXVlIGlzIGEgbGlicmFyeSBmb3Igd3JpdGluZyBzaW5nbGUgaW5zdGFuY2UgR1RLKyBhcHBsaWNhdGlvbnMuIElmIHlvdSBsYXVuY2ggYSBzaW5nbGUgaW5zdGFuY2UgYXBwbGljYXRpb24gdHdpY2UsIHRoZSBzZWNvbmQgaW5zdGFuY2Ugd2lsbCBlaXRoZXIganVzdCBxdWl0IG9yIHdpbGwgc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIHJ1bm5pbmcgaW5zdGFuY2UuIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BdHRpYy9MaWJVbmlxdWUiCitCVUdUUkFDS0VSID0gImh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD1saWJ1bmlxdWUiCisKK1NSQ19VUkkgPSAiJHtHTk9NRV9NSVJST1J9L2xpYnVuaXF1ZS8xLjEvbGlidW5pcXVlLSR7UFZ9LnRhci5iejIgXAorICAgICAgICAgICBmaWxlOi8vZml4X2Zvcl9jb21waWxlX3dpdGhfZ2NjLTQuNi4wLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL25vY29uc3QucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vYnVpbGQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1NYWtlZmlsZS5hbS11c2UtTElCVE9PTC1pbnN0ZWFkLW9mLWhhcmRjb2RlZC1saWJ0b29sLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtdGVzdC11bmlxdWUtQWRkLWZvcm1hdC1xdWFsaWZpZXItcy1mb3Itc3RyaW5nLnBhdGNoIFwKKyAgICAgICAgICAgIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNzk1NTc2OWVmMzFmMWJjNGY4MzQ0NmRiYjM2MjVlNmQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTVjODA0MWNlZjhlMzNjNTU3MzJmMDZhMjkyMzgxY2IzNDVkYjk0NmNmNzkyYTRhZTE4YWE1YzY2Y2RkNGZiYiIKKworUFIgPSAicjciCisKK0RFUEVORFMgPSAiZGJ1cy1nbGliLW5hdGl2ZSBnbGliLTIuMCBndGsrIgorCitQQUNLQUdFQ09ORklHID8/PSAiZGJ1cyIKK1BBQ0tBR0VDT05GSUdbZGJ1c10gPSAiLS1lbmFibGUtZGJ1cywtLWRpc2FibGUtZGJ1cyxkYnVzIGRidXMtZ2xpYiIKKworTElDRU5TRSA9ICJMR1BMdjIuMSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTJkNTAyNWQ0YWEzNDk1YmVmZWY4ZjE3MjA2YTViMGExIgorCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnb2JqZWN0LWludHJvc3BlY3Rpb24gZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGd0ay1kb2MKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtbXVsdGltZWRpYS9wYXJvbGUvcGFyb2xlXzAuOC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Bhcm9sZS9wYXJvbGVfMC44LjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyNDYxMWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Bhcm9sZS9wYXJvbGVfMC44LjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1ERVNDUklQVElPTiA9ICJQYXJvbGUgaXMgYSBtb2Rlcm4gc2ltcGxlIG1lZGlhIHBsYXllciBiYXNlZCBvbiB0aGUgR1N0cmVhbWVyIGZyYW1ld29yayIKLUhPTUVQQUdFID0gImh0dHA6Ly9nb29kaWVzLnhmY2Uub3JnL3Byb2plY3RzL2FwcGxpY2F0aW9ucy9wYXJvbGUiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NTk1MzBiZGYzMzY1OWIyOWU3M2Q0YWRiOWY5ZjY1NTIiCi0KLWluaGVyaXQgeGZjZS1hcHAgZ3RrLWRvYyBtaW1lCi0KLURFUEVORFMgKz0gIiBcCi0gICAgZ2xpYi0yLjAgXAotICAgIGRidXMtZ2xpYiBcCi0gICAgZ3RrKzMgXAotICAgIFwKLSAgICB4ZmNlNC1kZXYtdG9vbHMtbmF0aXZlIFwKLSAgICBsaWJ4ZmNlNHV0aWwgXAotICAgIGxpYnhmY2U0dWkgXAotICAgIHhmY29uZiBcCi0gICAgXAotICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UgXAotICAgIHRhZ2xpYiBcCi0iCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIzNjFlMzA1OWYxMjYzYzc2YTM3MTFkYjJjN2MxYTk3YiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI0YjIxNmY1MjAwNDkwZjhkMmE5YmYxYjNmY2Q5YThiMjA4MzRjOTUyNDliZjEzYjkxNzBjODJlMWZjYmQ4MGY0IgotCi1SREVQRU5EU18ke1BOfSArPSAiZ3N0cmVhbWVyMS4wLXBsdWdpbnMtZ29vZCIKLQotRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1ndGstZG9jIgotCi1QQUNLQUdFQ09ORklHID8/PSAibm90aWZ5IgotUEFDS0FHRUNPTkZJR1tjbHV0dGVyXSA9ICItLWVuYWJsZS1jbHV0dGVyLCAtLWRpc2FibGUtY2x1dHRlciwgY2x1dHRlciIKLVBBQ0tBR0VDT05GSUdbbm90aWZ5XSA9ICItLWVuYWJsZS1ub3RpZnktcGx1Z2luLCAtLWRpc2FibGUtbm90aWZ5LXBsdWdpbiwgbGlibm90aWZ5IgotCi1GSUxFU18ke1BOfSArPSAiIFwKLSAgICAke2RhdGFkaXJ9L2FwcGRhdGEgXAotICAgICR7bGliZGlyfS9wYXJvbGUtMC8qLnNvIFwKLSIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L3Bhcm9sZS0wLy5kZWJ1ZyIKLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L3Bhcm9sZS0wLyoubGEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLW11bHRpbWVkaWEvcGFyb2xlL3Bhcm9sZV8xLjAuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtbXVsdGltZWRpYS9wYXJvbGUvcGFyb2xlXzEuMC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3OWYxYTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLW11bHRpbWVkaWEvcGFyb2xlL3Bhcm9sZV8xLjAuMC5iYgpAQCAtMCwwICsxLDM4IEBACitERVNDUklQVElPTiA9ICJQYXJvbGUgaXMgYSBtb2Rlcm4gc2ltcGxlIG1lZGlhIHBsYXllciBiYXNlZCBvbiB0aGUgR1N0cmVhbWVyIGZyYW1ld29yayIKK0hPTUVQQUdFID0gImh0dHA6Ly9nb29kaWVzLnhmY2Uub3JnL3Byb2plY3RzL2FwcGxpY2F0aW9ucy9wYXJvbGUiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NTk1MzBiZGYzMzY1OWIyOWU3M2Q0YWRiOWY5ZjY1NTIiCisKK2luaGVyaXQgeGZjZS1hcHAgZ3RrLWRvYyBtaW1lCisKK0RFUEVORFMgKz0gIiBcCisgICAgZ2xpYi0yLjAgXAorICAgIGRidXMtZ2xpYiBcCisgICAgZ3RrKzMgXAorICAgIFwKKyAgICB4ZmNlNC1kZXYtdG9vbHMtbmF0aXZlIFwKKyAgICBsaWJ4ZmNlNHV0aWwgXAorICAgIGxpYnhmY2U0dWkgXAorICAgIHhmY29uZiBcCisgICAgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UgXAorICAgIHRhZ2xpYiBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJkMDBkM2NhNTcxOTAwODI2YmY1ZTFmNjk4NmU0Mjk5MiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2NjY2YjMzNWFlYjY5MGZiNTI3Zjc3YjYyYzMyMmJhZjM0ODM0YjU5MzY1OWZkY2QyMWQyMWVkM2YxZTE0MDEwIgorCitSREVQRU5EU18ke1BOfSArPSAiZ3N0cmVhbWVyMS4wLXBsdWdpbnMtZ29vZCIKKworRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1ndGstZG9jIgorCitQQUNLQUdFQ09ORklHID8/PSAibm90aWZ5IgorUEFDS0FHRUNPTkZJR1tjbHV0dGVyXSA9ICItLWVuYWJsZS1jbHV0dGVyLCAtLWRpc2FibGUtY2x1dHRlciwgY2x1dHRlciIKK1BBQ0tBR0VDT05GSUdbbm90aWZ5XSA9ICItLWVuYWJsZS1ub3RpZnktcGx1Z2luLCAtLWRpc2FibGUtbm90aWZ5LXBsdWdpbiwgbGlibm90aWZ5IgorCitGSUxFU18ke1BOfSArPSAiIFwKKyAgICAke2RhdGFkaXJ9L2FwcGRhdGEgXAorICAgICR7bGliZGlyfS9wYXJvbGUtMC8qLnNvIFwKKyIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L3Bhcm9sZS0wLy5kZWJ1ZyIKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L3Bhcm9sZS0wLyoubGEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvcHVsc2VhdWRpby94ZmNlNC1wdWxzZWF1ZGlvLXBsdWdpbl8wLjIuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy9wdWxzZWF1ZGlvL3hmY2U0LXB1bHNlYXVkaW8tcGx1Z2luXzAuMi40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzdjYTcwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy9wdWxzZWF1ZGlvL3hmY2U0LXB1bHNlYXVkaW8tcGx1Z2luXzAuMi40LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotU1VNTUFSWSA9ICJQdWxzZWF1ZGlvIG1peGVyIGZvciB0aGUgeGZjZSBwYW5lbCIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1mNWVhYzZiYjBkNmVjMGRjNjU1ZTQxNzc4MWQ0MDE1ZiIKLQotaW5oZXJpdCB4ZmNlLXBhbmVsLXBsdWdpbiBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLQotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInB1bHNlYXVkaW8geDExIgotCi1ERVBFTkRTICs9ICJwdWxzZWF1ZGlvIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZTBmZmRlNDE5ZmEwMzBmMWY5YmQwYjU2ZTMyNjRhMWMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGQ5MzMwZGRmMWQ0NGE4NjRhMzZkNTY2Y2NlNGI3NmQ0Zjg1OWM1OTg0YmJhNzY1M2Q3ZGMzOWFhMjRkNWMzZSIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiIKLVBBQ0tBR0VDT05GSUdbbGlibm90aWZ5XSA9ICItLWVuYWJsZS1saWJub3RpZnksLS1kaXNhYmxlLWxpYm5vdGlmeSxsaWJub3RpZnkiCi0KLVJSRUNPTU1FTkRTXyR7UE59ID0gInBhdnVjb250cm9sIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3B1bHNlYXVkaW8veGZjZTQtcHVsc2VhdWRpby1wbHVnaW5fMC40LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvcHVsc2VhdWRpby94ZmNlNC1wdWxzZWF1ZGlvLXBsdWdpbl8wLjQuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTQxN2ExCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3B1bHNlYXVkaW8veGZjZTQtcHVsc2VhdWRpby1wbHVnaW5fMC40LjAuYmIKQEAgLTAsMCArMSwxNyBAQAorU1VNTUFSWSA9ICJQdWxzZWF1ZGlvIG1peGVyIGZvciB0aGUgeGZjZSBwYW5lbCIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1mNWVhYzZiYjBkNmVjMGRjNjU1ZTQxNzc4MWQ0MDE1ZiIKKworaW5oZXJpdCB4ZmNlLXBhbmVsLXBsdWdpbiBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInB1bHNlYXVkaW8geDExIgorCitERVBFTkRTICs9ICJwdWxzZWF1ZGlvIgorCitTUkNfVVJJW21kNXN1bV0gPSAiMTJmM2RkOTdlMDJjNjA0ZTIwMjNiNWJhZjMwZDRhNmMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYWVmOWFkNjhhMGI2MDRhNmFlY2E0YzA4MTQ2ZjNlYjQyYmVkYjRmZTFjOGI2NWI4MjY3OWNlYzBlMmZjMWNiMyIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiIKK1BBQ0tBR0VDT05GSUdbbGlibm90aWZ5XSA9ICItLWVuYWJsZS1saWJub3RpZnksLS1kaXNhYmxlLWxpYm5vdGlmeSxsaWJub3RpZnkiCisKK1JSRUNPTU1FTkRTXyR7UE59ID0gInBhdnVjb250cm9sIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3RpbWVyL3hmY2U0LXRpbWVyLXBsdWdpbi8wMDAxLVNwZWNpZnktc3RyaW5nLWZvcm1hdC1leHBsaWNpdGx5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3RpbWVyL3hmY2U0LXRpbWVyLXBsdWdpbi8wMDAxLVNwZWNpZnktc3RyaW5nLWZvcm1hdC1leHBsaWNpdGx5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjBiYjA1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy90aW1lci94ZmNlNC10aW1lci1wbHVnaW4vMDAwMS1TcGVjaWZ5LXN0cmluZy1mb3JtYXQtZXhwbGljaXRseS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLUZyb20gNmI3ODZlMWMxNjEwMjZhYjU0ODZhYzIxODg5MWE4NWRiNjViZjNiYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDIyIE1hciAyMDE3IDE1OjI4OjI0IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIFNwZWNpZnkgc3RyaW5nIGZvcm1hdCBleHBsaWNpdGx5Ci0KLUF2b2lkcyBiZWxvdyBlcnJvcnMgd2hlbiBjb21waWxpbmcgd2l0aCAtV2Zvcm1hdC1zZWN1cml0eQotCi1lcnJvcjogZm9ybWF0IHN0cmluZyBpcyBub3QgYSBzdHJpbmcgbGl0ZXJhbCAocG90ZW50aWFsbHkgaW5zZWN1cmUpCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi0gc3JjL3hmY2V0aW1lci5jIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3hmY2V0aW1lci5jIGIvc3JjL3hmY2V0aW1lci5jCi1pbmRleCA2MDE3NzJmLi40Yjg5NjgyIDEwMDY0NAotLS0tIGEvc3JjL3hmY2V0aW1lci5jCi0rKysgYi9zcmMveGZjZXRpbWVyLmMKLUBAIC0xOTAsNyArMTkwLDcgQEAgc3RhdGljIGdib29sZWFuIHVwZGF0ZV9mdW5jdGlvbiAoZ3BvaW50ZXIgZGF0YSl7Ci0gCi0gICAgIGRpYWxvZyA9IGd0a19tZXNzYWdlX2RpYWxvZ19uZXcgKE5VTEwsIEdUS19ESUFMT0dfTU9EQUwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX01FU1NBR0VfV0FSTklORywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfQlVUVE9OU19OT05FLCBkaWFsb2dfbWVzc2FnZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0JVVFRPTlNfTk9ORSwgIiVzIiwgZGlhbG9nX21lc3NhZ2UpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICBndGtfd2luZG93X3NldF90aXRsZSAoKEd0a1dpbmRvdyAqKSBkaWFsb2csIGRpYWxvZ190aXRsZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gIAotLS0gCi0yLjEyLjAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3RpbWVyL3hmY2U0LXRpbWVyLXBsdWdpbl8xLjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy90aW1lci94ZmNlNC10aW1lci1wbHVnaW5fMS42LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2MTUxOTIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3RpbWVyL3hmY2U0LXRpbWVyLXBsdWdpbl8xLjYuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVNVTU1BUlkgPSAiWEZDRSBwYW5lbCBwbHVnaW4gdG8gZ2VuZXJhdGUgYWxhcm0gbWVzc2FnZXMiCi1ERVNDUklQVElPTiA9ICJUaGlzIGlzIGEgc2ltcGxlIHBsdWdpbiB0aGF0IGxldHMgdGhlIHVzZXIgcnVuIGFuIGFsYXJtIGF0IGEgc3BlY2lmaWVkIHRpbWUgb3IgYXQgdGhlIGVuZCBvZiBhIHNwZWNpZmllZCBjb3VudGRvd24gcGVyaW9kIgotSE9NRVBBR0UgPSAiaHR0cDovL2dvb2RpZXMueGZjZS5vcmcvcHJvamVjdHMvcGFuZWwtcGx1Z2lucy94ZmNlNC10aW1lci1wbHVnaW4iCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YWUzOTI3MTI2N2ZkNjNlYjc2MTk0MzJmZjI0ZTdmZjEiCi0KLWluaGVyaXQgeGZjZS1wYW5lbC1wbHVnaW4KLQotU1JDX1VSSSArPSAiZmlsZTovLzAwMDEtU3BlY2lmeS1zdHJpbmctZm9ybWF0LWV4cGxpY2l0bHkucGF0Y2giCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIzYmUyYTRjY2ZiMmFmMjA0NDFiMWQyNWMyY2VhNWYyOCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIzOWQ3ZDIxZjA5OWJjNDIxOWY2YTYxNTYxNDJmMGJiYjgzNzQ5ODZlZTE5NzBhOWMwYzhkYzEzOGI4N2Y4NjdjIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3RpbWVyL3hmY2U0LXRpbWVyLXBsdWdpbl8xLjcuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy90aW1lci94ZmNlNC10aW1lci1wbHVnaW5fMS43LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRkYzZmNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy90aW1lci94ZmNlNC10aW1lci1wbHVnaW5fMS43LjAuYmIKQEAgLTAsMCArMSwxMCBAQAorU1VNTUFSWSA9ICJYRkNFIHBhbmVsIHBsdWdpbiB0byBnZW5lcmF0ZSBhbGFybSBtZXNzYWdlcyIKK0RFU0NSSVBUSU9OID0gIlRoaXMgaXMgYSBzaW1wbGUgcGx1Z2luIHRoYXQgbGV0cyB0aGUgdXNlciBydW4gYW4gYWxhcm0gYXQgYSBzcGVjaWZpZWQgdGltZSBvciBhdCB0aGUgZW5kIG9mIGEgc3BlY2lmaWVkIGNvdW50ZG93biBwZXJpb2QiCitIT01FUEFHRSA9ICJodHRwOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9wYW5lbC1wbHVnaW5zL3hmY2U0LXRpbWVyLXBsdWdpbiIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1hZTM5MjcxMjY3ZmQ2M2ViNzYxOTQzMmZmMjRlN2ZmMSIKKworaW5oZXJpdCB4ZmNlLXBhbmVsLXBsdWdpbgorCitTUkNfVVJJW21kNXN1bV0gPSAiMzJlNmExNGU4MGJmOWE5M2RiMmYyYjNiZmQ3ZGU5MjAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMmU0ZTUzNDNlMzk5MjYyMzBjYzk4MWQ1ZmU1NmNkNThhMmYzODE3ZDJlOWI2MDg5YjU2NzNhMmUzOWJmN2U5YiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy93ZWF0aGVyL3hmY2U0LXdlYXRoZXItcGx1Z2luXzAuOC4xMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy93ZWF0aGVyL3hmY2U0LXdlYXRoZXItcGx1Z2luXzAuOC4xMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDllYWFhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3dlYXRoZXIveGZjZTQtd2VhdGhlci1wbHVnaW5fMC44LjEwLmJiCkBAIC0wLDAgKzEsMTMgQEAKK1NVTU1BUlkgPSAiUGFuZWwgcGx1Z2luIHRvIGRpc3BsYXkgY3VycmVudCB0ZW1wZXJhdHVyZSBhbmQgd2VhdGhlciBjb25kaXRpb24iCitIT01FUEFHRSA9ICJodHRwOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9wYW5lbC1wbHVnaW5zL3hmY2U0LXdlYXRoZXItcGx1Z2luIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgorCitpbmhlcml0IHhmY2UtcGFuZWwtcGx1Z2luCisKK0RFUEVORFMgKz0gImxpYnNvdXAtMi40IGRidXMtZ2xpYiB1cG93ZXIiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJiYmE3Zjc1MGI5N2M4ZmMzNjU2NzE1MjY4ZWRhZDc5MiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlZTZkNDNjNDQ0OTA0NjMxYzI0MDQ3MGUxNWU5NjIxNWMyY2U0NTExNThiZmRiZjIzNGJjZTg5MmJmNjBlYWI4IgorCitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS94ZmNlNC93ZWF0aGVyIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3dlYXRoZXIveGZjZTQtd2VhdGhlci1wbHVnaW5fMC44LjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvd2VhdGhlci94ZmNlNC13ZWF0aGVyLXBsdWdpbl8wLjguOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDllZDJjZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvd2VhdGhlci94ZmNlNC13ZWF0aGVyLXBsdWdpbl8wLjguOS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLVNVTU1BUlkgPSAiUGFuZWwgcGx1Z2luIHRvIGRpc3BsYXkgY3VycmVudCB0ZW1wZXJhdHVyZSBhbmQgd2VhdGhlciBjb25kaXRpb24iCi1IT01FUEFHRSA9ICJodHRwOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9wYW5lbC1wbHVnaW5zL3hmY2U0LXdlYXRoZXItcGx1Z2luIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotCi1pbmhlcml0IHhmY2UtcGFuZWwtcGx1Z2luCi0KLURFUEVORFMgKz0gImxpYnNvdXAtMi40IGRidXMtZ2xpYiB1cG93ZXIiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIwYzU2YzA1N2UxYzM1NGIzMDQwOWI3ODcxYWI2ZjMxNCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwZTE1ZDE0YjNlMThjM2RhNDZhZDIzZWUzMTU4YTI1MjIwZjE0NzRhNDhiNjExZGU5NmVkYjU2MjIxYWVjZWU1IgotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS94ZmNlNC93ZWF0aGVyIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3doaXNrZXJtZW51L3hmY2U0LXdoaXNrZXJtZW51LXBsdWdpbl8yLjEuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy93aGlza2VybWVudS94ZmNlNC13aGlza2VybWVudS1wbHVnaW5fMi4xLjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjNjdhMmYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3doaXNrZXJtZW51L3hmY2U0LXdoaXNrZXJtZW51LXBsdWdpbl8yLjEuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVNVTU1BUlkgPSAiQW4gYWx0ZXJuYXRlIG1lbnUgZm9yIHRoZSBYZmNlIGRlc2t0b3AgZW52aXJvbm1lbnQiCi1IT01FUEFHRSA9ICJodHRwOi8vZ290dGNvZGUub3JnL3hmY2U0LXdoaXNrZXJtZW51LXBsdWdpbi8iCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMiCi0KLWluaGVyaXQgeGZjZS1wYW5lbC1wbHVnaW4gY21ha2UKLQotU1JDX1VSSVttZDVzdW1dID0gIjAzMmEyYmIwYTBkNGEyZTNjOGMxMzY5MTBjOGI1NTFkIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImU4OTE4YzEyNTVmN2FiODZiOTUwZWJkMTM1NTVmZTg3MDQ2YzAxYTFhNGNiMGI1ZDQ2MDAyNGI2ZWZjMDE3NjkiCi0KLVJSRUNPTU1FTkRTXyR7UE59ICs9ICJtZW51bGlicmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvd2hpc2tlcm1lbnUveGZjZTQtd2hpc2tlcm1lbnUtcGx1Z2luXzIuMS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3doaXNrZXJtZW51L3hmY2U0LXdoaXNrZXJtZW51LXBsdWdpbl8yLjEuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjJjZmYwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3doaXNrZXJtZW51L3hmY2U0LXdoaXNrZXJtZW51LXBsdWdpbl8yLjEuNi5iYgpAQCAtMCwwICsxLDExIEBACitTVU1NQVJZID0gIkFuIGFsdGVybmF0ZSBtZW51IGZvciB0aGUgWGZjZSBkZXNrdG9wIGVudmlyb25tZW50IgorSE9NRVBBR0UgPSAiaHR0cDovL2dvdHRjb2RlLm9yZy94ZmNlNC13aGlza2VybWVudS1wbHVnaW4vIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgorCitpbmhlcml0IHhmY2UtcGFuZWwtcGx1Z2luIGNtYWtlCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJiMmIyYmFjYzhkNWYzYzMxMTlhMGYzMTdiNjA3NDI3NiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI4YjJhOGVlMTQ0NWRmMzlhMmNkYTEzOWUzNTNmMmU5ZWMzNzIwYTc4MDI5NmRjNDFiN2Q0YWViZGU1NzM3MWZjIgorCitSUkVDT01NRU5EU18ke1BOfSArPSAibWVudWxpYnJlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3hrYi94ZmNlNC14a2ItcGx1Z2luXzAuOC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3hrYi94ZmNlNC14a2ItcGx1Z2luXzAuOC4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTYyYzAzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy94a2IveGZjZTQteGtiLXBsdWdpbl8wLjguMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVNVTU1BUlkgPSAiWEtCIGxheW91dCBzd2l0Y2hpbmcgcGFuZWwgcGx1Zy1pbiBmb3IgdGhlIFhmY2UgZGVza3RvcCBlbnZpcm9ubWVudCIKLUhPTUVQQUdFID0gImh0dHA6Ly9nb29kaWVzLnhmY2Uub3JnL3Byb2plY3RzL3BhbmVsLXBsdWdpbnMveGZjZTQteGtiLXBsdWdpbiIKLVNFQ1RJT04gPSAieDExL2FwcGxpY2F0aW9uIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTQ5NmYwOWYwODRiMGY3ZTZmMDJmNzY5YTg0NDkwYzZiIgotCi1pbmhlcml0IHhmY2UtcGFuZWwtcGx1Z2luCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJlNGU4OTc3NDFlYmUyODI3MTkyOTcxYzJhYWFkODM1ZCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIzYjBkM2I5ZjRiN2MzZTNlN2JlNjY4ZTJmN2M4NDViODliMTZlMGVkM2RiMmJhY2I1NDRhMTcyNzI2ODJjZWQwIgotCi1ERVBFTkRTICs9ICJsaWJ4a2xhdmllciBsaWJ3bmNrMyBsaWJyc3ZnIGdhcmNvbiIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0veGZjZTQveGtiIgotCi1SREVQRU5EU18ke1BOfSA9ICJ4ZmNlNC1zZXR0aW5ncyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy94a2IveGZjZTQteGtiLXBsdWdpbl8wLjguMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy94a2IveGZjZTQteGtiLXBsdWdpbl8wLjguMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWUzNzQwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3hrYi94ZmNlNC14a2ItcGx1Z2luXzAuOC4xLmJiCkBAIC0wLDAgKzEsMTYgQEAKK1NVTU1BUlkgPSAiWEtCIGxheW91dCBzd2l0Y2hpbmcgcGFuZWwgcGx1Zy1pbiBmb3IgdGhlIFhmY2UgZGVza3RvcCBlbnZpcm9ubWVudCIKK0hPTUVQQUdFID0gImh0dHA6Ly9nb29kaWVzLnhmY2Uub3JnL3Byb2plY3RzL3BhbmVsLXBsdWdpbnMveGZjZTQteGtiLXBsdWdpbiIKK1NFQ1RJT04gPSAieDExL2FwcGxpY2F0aW9uIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTQ5NmYwOWYwODRiMGY3ZTZmMDJmNzY5YTg0NDkwYzZiIgorCitpbmhlcml0IHhmY2UtcGFuZWwtcGx1Z2luCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI3MjUzMGJmNTlkN2NkOTAyMzI2NDY5ZTVhN2E5ODkyYiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjMTllY2YxMjYyMDFkZWI2MTQ4NzQxYzUyMTEyNDc3MWFkMzk2YWRjODc0NDcxNTEyYWI1ZmZlMTk0NjU2N2ExIgorCitERVBFTkRTICs9ICJsaWJ4a2xhdmllciBsaWJ3bmNrMyBsaWJyc3ZnIGdhcmNvbiIKKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0veGZjZTQveGtiIgorCitSREVQRU5EU18ke1BOfSA9ICJ4ZmNlNC1zZXR0aW5ncyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtc3VwcG9ydC92aW0vdmltXyUuYmJhcHBlbmQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXN1cHBvcnQvdmltL3ZpbV8lLmJiYXBwZW5kCmluZGV4IDI1NDAzZTYuLjdiNDQ5NjMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtc3VwcG9ydC92aW0vdmltXyUuYmJhcHBlbmQKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1zdXBwb3J0L3ZpbS92aW1fJS5iYmFwcGVuZApAQCAtMSw2ICsxIEBACi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLQkjIFRoZSBtb3VzZSBiZWluZyBhdXRvZW5hYmxlZCBpcyBqdXN0IGFubm95aW5nIGluIHhmY2U0LXRlcm1pbmFsIChtb3VzZQotCSMgZHJhZyBtYWtlIHZpbSBnbyBpbnRvIHZpc3VhbCBtb2RlIGFuZCB0aGVyZSBpcyBubyByaWdodCBjbGljayBtZW51KSwKLQkjIGRlbGV0ZSB0aGUgYmxvY2suCi0Jc2VkIC1pICcvdGhlIG1vdXNlIHdvcmtzIGp1c3QgZmluZS8sKzRkJyAke0R9LyR7ZGF0YWRpcn0vJHtCUE59L3ZpbXJjCi19CityZXF1aXJlICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneDExJywgJyR7QlBOfV94ZmNlLmluYycsICcnLCBkKX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtc3VwcG9ydC92aW0vdmltX3hmY2UuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1zdXBwb3J0L3ZpbS92aW1feGZjZS5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU0MDNlNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtc3VwcG9ydC92aW0vdmltX3hmY2UuaW5jCkBAIC0wLDAgKzEsNiBAQAorZG9faW5zdGFsbF9hcHBlbmQoKSB7CisJIyBUaGUgbW91c2UgYmVpbmcgYXV0b2VuYWJsZWQgaXMganVzdCBhbm5veWluZyBpbiB4ZmNlNC10ZXJtaW5hbCAobW91c2UKKwkjIGRyYWcgbWFrZSB2aW0gZ28gaW50byB2aXN1YWwgbW9kZSBhbmQgdGhlcmUgaXMgbm8gcmlnaHQgY2xpY2sgbWVudSksCisJIyBkZWxldGUgdGhlIGJsb2NrLgorCXNlZCAtaSAnL3RoZSBtb3VzZSB3b3JrcyBqdXN0IGZpbmUvLCs0ZCcgJHtEfS8ke2RhdGFkaXJ9LyR7QlBOfS92aW1yYworfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG8vY29uZmlndXJlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG8vY29uZmlndXJlLnBhdGNoCmluZGV4IGVmMjdlNDIuLjg5Y2MxZjMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9leG8vZXhvL2NvbmZpZ3VyZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4by9jb25maWd1cmUucGF0Y2gKQEAgLTEsNiArMSwyMCBAQAotLS0tIGEvY29uZmlndXJlLmFjCTIwMDctMTItMDIgMTA6Mzc6MDYuMDAwMDAwMDAwIC0wMjAwCi0rKysgYi9jb25maWd1cmUuYWMJMjAwOC0wNi0wNSAxNzoyMTo0Mi4wMDAwMDAwMDAgLTAzMDAKLUBAIC0xMjcsMjIgKzEyNywyNCBAQAorRnJvbSAxM2E3NDU4MmZmZDdmODFkYmQ2NmE3Mjk2ZmM3NjAwNzcxOGU5ZDRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhcyBNdWVsbGVyIDxzY2huaXR6ZWx0b255QGdteC5kZT4KK0RhdGU6IE1vbiwgMSBBdWcgMjAxMSAxNzoxNjoyOSArMDIwMAorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+CisKKy0tLQorIGNvbmZpZ3VyZS5hYyB8IDM0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDBkZTVjZWIuLjNmOTJkMWIgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTE0MywyMiArMTQzLDI0IEBAIEFDX0ZVTkNfTU1BUCgpCiAgZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogIGRubCAqKiogQ2hlY2sgZm9yIHN0cmZ0aW1lKCkgZXh0ZW5zaW9ucyAqKioKICBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4by9leG8tbm8tdGVzdHMtMC44LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG8vZXhvLW5vLXRlc3RzLTAuOC5wYXRjaAppbmRleCBhYzhiY2E1Li4zNDhlMTQ3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4by9leG8tbm8tdGVzdHMtMC44LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9leG8vZXhvL2V4by1uby10ZXN0cy0wLjgucGF0Y2gKQEAgLTEsMjIgKzEsMjQgQEAKLUZyb20gNWYxZTE5ODYwZDg5NjQ3NDg4YmRkMzJhMDJmYjMzMmY2OTQzNDQwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gOTIzMWEyZDViOWM1NDA2ZjMzYWVmM2FiNGRlMmRiZWM5YjA4ZWQxMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KIERhdGU6IEZyaSwgMTggTWF5IDIwMTIgMjE6MTM6MDAgKzAyMDAKIFN1YmplY3Q6IFtQQVRDSF0gRG8gbm90IHJ1biB0ZXN0cyBhdCBidWlsZCB0aW1lCiBNSU1FLVZlcnNpb246IDEuMAogQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci1VcHN0cmVhbS1TdGF0dXM6IE5vdC1BcHBsaWNhYmxlCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCiAKIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KKwogLS0tCi0gTWFrZWZpbGUuYW0gfCAgICAzICstLQotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorIE1ha2VmaWxlLmFtIHwgMyArLS0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCi1pbmRleCAwYWIzODUzLi4zZTcyMzkxIDEwMDY0NAoraW5kZXggMjI2ZTc5ZC4uNjJhZDE4ZCAxMDA2NDQKIC0tLSBhL01ha2VmaWxlLmFtCiArKysgYi9NYWtlZmlsZS5hbQotQEAgLTgsOCArOCw3IEBAIFNVQkRJUlMgPQkJCQkJCQkJXAorQEAgLTksOCArOSw3IEBAIFNVQkRJUlMgPQkJCQkJCQkJXAogIAlkb2NzCQkJCQkJCQlcCiAgCWljb25zCQkJCQkJCQlcCiAgCXBpeG1hcHMJCQkJCQkJCVwKQEAgLTI0LDggKzI2LDUgQEAKIC0JdGVzdHMKICsJcG8KICAKLSBBVVRPTUFLRV9PUFRJT05TID0JCQkJCQkJXAotIAkxLjkJCQkJCQkJCVwKLS0tIAotMS43LjQuNAotCisgZGlzdGNsZWFuLWxvY2FsOgorIAlybSAtcmYgKi5jYWNoZSAqfgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG8vcmVkdWNlLWJ1aWxkLXRvLWV4by1jc291cmNlLW9ubHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4by9yZWR1Y2UtYnVpbGQtdG8tZXhvLWNzb3VyY2Utb25seS5wYXRjaAppbmRleCA5OTMxOGQ1Li4wNzY0Nzc1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4by9yZWR1Y2UtYnVpbGQtdG8tZXhvLWNzb3VyY2Utb25seS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4by9yZWR1Y2UtYnVpbGQtdG8tZXhvLWNzb3VyY2Utb25seS5wYXRjaApAQCAtMTAsOSArMTAsMTAgQEAKIGJ1aWxkaW5nIHhmY2UtcGFja2FnZXMgZnJvbSBnaXQgaW5zdGVhZCBvZiB0YXJiYWxsIHRoaXMgZXhvLWNzb3VyY2UtbmF0aXZlIGlzCiByZXF1aXJlZC4KIAotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KIAogU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgorCiAtLS0KICBNYWtlZmlsZS5hbSAgfCAxMCArLS0tLS0tLS0tCiAgY29uZmlndXJlLmFjIHwgMjIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDAsNyArNDEsNyBAQAogIGRpc3RjbGVhbi1sb2NhbDoKICAJcm0gLXJmICouY2FjaGUgKn4KIGRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IGJhNTM5NWQuLjI2MDUwNjcgMTAwNjQ0CitpbmRleCAzZjkyZDFiLi4wZDRjYzM4IDEwMDY0NAogLS0tIGEvY29uZmlndXJlLmFjCiArKysgYi9jb25maWd1cmUuYWMKIEBAIC0xMTYsMTUgKzExNiw2IEBAIEFDX1BST0dfQ0MoKQpAQCAtNjUsOSArNjYsOSBAQAogIFhEVF9DSEVDS19QQUNLQUdFKFtHTElCXSwgW2dsaWItMi4wXSwgWzIuNDIuMF0pCiAtWERUX0NIRUNLX1BBQ0tBR0UoW0dJT10sIFtnaW8tMi4wXSwgWzIuNDIuMF0pCiAtWERUX0NIRUNLX1BBQ0tBR0UoW0dUS10sIFtndGsrLTIuMF0sIFsyLjI0LjBdKQotLVhEVF9DSEVDS19QQUNLQUdFKFtHVEszXSwgW2d0aystMy4wXSwgWzMuMjAuMF0pCistWERUX0NIRUNLX1BBQ0tBR0UoW0dUSzNdLCBbZ3RrKy0zLjBdLCBbMy4yMi4wXSkKIC1YRFRfQ0hFQ0tfUEFDS0FHRShbR1RIUkVBRF0sIFtndGhyZWFkLTIuMF0sIFsyLjQyLjBdKQotLVhEVF9DSEVDS19QQUNLQUdFKFtMSUJYRkNFNFVUSUxdLCBbbGlieGZjZTR1dGlsLTEuMF0sIFs0LjEwLjBdKQorLVhEVF9DSEVDS19QQUNLQUdFKFtMSUJYRkNFNFVUSUxdLCBbbGlieGZjZTR1dGlsLTEuMF0sIFs0LjEyLjBdKQogLVhEVF9DSEVDS19QQUNLQUdFKFtMSUJYRkNFNFVJXSwgW2xpYnhmY2U0dWktMV0sIFs0LjEyLjBdKQogLVhEVF9DSEVDS19QQUNLQUdFKFtMSUJYRkNFNFVJMl0sIFtsaWJ4ZmNlNHVpLTJdLCBbNC4xMi4wXSkKIC1YRFRfQ0hFQ0tfT1BUSU9OQUxfUEFDS0FHRShbR0lPX1VOSVhdLCBbZ2lvLXVuaXgtMi4wXSwgWzIuNDIuMF0sIFtnaW8tdW5peF0sIFtHSU8tVW5peCBmZWF0dXJlc10pCkBAIC04MCw1ICs4MSw1IEBACiAgZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioKICBkbmwgKioqIENoZWNrIGZvciBndGstZG9jICoqKgogLS0gCi0yLjkuNAorMi4xNC4zCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9leG8vZXhvXzAuMTEuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9leG8vZXhvXzAuMTEuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU1MDhjMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4b18wLjExLjUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi1ERVNDUklQVElPTj0iQXBwbGljYXRpb24gbGlicmFyeSBmb3IgdGhlIFhmY2UgZGVza3RvcCBlbnZpcm9ubWVudCIKLVNFQ1RJT04gPSAieDExIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotREVQRU5EUyA9ICJndGsrIGxpYnhmY2U0dXRpbCBsaWJ4ZmNlNHVpIHZpcnR1YWwvbGlieDExIGxpYnVyaS1wZXJsLW5hdGl2ZSBjYWlybyIKLURFUEVORFNfY2xhc3MtbmF0aXZlID0gImdsaWItMi4wLW5hdGl2ZSB4ZmNlNC1kZXYtdG9vbHMtbmF0aXZlIGludGx0b29sLW5hdGl2ZSIKLQotaW5oZXJpdCB4ZmNlIHB5dGhvbm5hdGl2ZSBwZXJsbmF0aXZlIGd0ay1kb2MgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCi0KLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVNfY2xhc3MtbmF0aXZlID0gIiIKLQotIyBTUkNfVVJJIG11c3QgZm9sbG93IGluaGVyaXRlZCBvbmUKLVNSQ19VUkkgKz0gIiBcCi0gICAgZmlsZTovL2V4by1uby10ZXN0cy0wLjgucGF0Y2ggXAotICAgIGZpbGU6Ly9jb25maWd1cmUucGF0Y2ggXAotIgotCi1TUkNfVVJJX2FwcGVuZF9jbGFzcy1uYXRpdmUgPSAiIFwKLSAgICBmaWxlOi8vcmVkdWNlLWJ1aWxkLXRvLWV4by1jc291cmNlLW9ubHkucGF0Y2ggXAotIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMmU1NjBlZGZhOGRkZjc3ZTIxYzQ3ODdhNmY2MDAxNzEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGU4NjI5ZjMzNzgzZWJhMWNlNmQwOTJhNDJjMjgyMTc0NThhMGNjM2QxYWQ3NDc0MDk3YjkxODcwNTQ5NTVjMSIKLQotUEFDS0FHRVMgPSsgImV4by1jc291cmNlIgotCi0jIE5vdGU6IHB5dGhvbiBiaW5kaW5ncyBkaWQgbm90IHdvcmsgaW4gb2UtZGV2IGFuZCBhcmUgYWJvdXQgdG8gYmUgbW92ZWQgdG8KLSMgcHl4ZmNlIHNlZSBodHRwOi8vY29tbWVudHMuZ21hbmUub3JnL2dtYW5lLmNvbXAuZGVza3RvcC54ZmNlLmRldmVsLnZlcnNpb240LzE5NTYwCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS94ZmNlNC8gXAotICAgICAgICAgICAgICAgICR7bGliZGlyfS94ZmNlNC9leG8tMSBcCi0iCi0KLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2dpby9tb2R1bGVzLy5kZWJ1ZyBcCi0iCi0KLUZJTEVTX2V4by1jc291cmNlICs9ICIke2JpbmRpcn0vZXhvLWNzb3VyY2UiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG9fMC4xMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG9fMC4xMi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyNTZiNTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4b18wLjEyLjAuYmIKQEAgLTAsMCArMSwzOSBAQAorREVTQ1JJUFRJT049IkFwcGxpY2F0aW9uIGxpYnJhcnkgZm9yIHRoZSBYZmNlIGRlc2t0b3AgZW52aXJvbm1lbnQiCitTRUNUSU9OID0gIngxMSIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKK0RFUEVORFMgPSAiZ3RrKyBsaWJ4ZmNlNHV0aWwgbGlieGZjZTR1aSB2aXJ0dWFsL2xpYngxMSBsaWJ1cmktcGVybC1uYXRpdmUgY2Fpcm8iCitERVBFTkRTX2NsYXNzLW5hdGl2ZSA9ICJnbGliLTIuMC1uYXRpdmUgeGZjZTQtZGV2LXRvb2xzLW5hdGl2ZSBpbnRsdG9vbC1uYXRpdmUiCisKK2luaGVyaXQgeGZjZSBweXRob25uYXRpdmUgcGVybG5hdGl2ZSBndGstZG9jIGRpc3Ryb19mZWF0dXJlc19jaGVjaworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTX2NsYXNzLW5hdGl2ZSA9ICIiCisKKyMgU1JDX1VSSSBtdXN0IGZvbGxvdyBpbmhlcml0ZWQgb25lCitTUkNfVVJJICs9ICIgXAorICAgIGZpbGU6Ly9leG8tbm8tdGVzdHMtMC44LnBhdGNoIFwKKyAgICBmaWxlOi8vY29uZmlndXJlLnBhdGNoIFwKKyIKKworU1JDX1VSSV9hcHBlbmRfY2xhc3MtbmF0aXZlID0gIiBcCisgICAgZmlsZTovL3JlZHVjZS1idWlsZC10by1leG8tY3NvdXJjZS1vbmx5LnBhdGNoIFwKKyIKKworU1JDX1VSSVttZDVzdW1dID0gIjcyNGFmY2NhMjI0ZjVmYjIyYjUxMDkyNmQyNzQwZTUyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjY0Yjg4MjcxYTM3ZDBlYzdkY2EwNjJjN2JjNjFjYTMyMzExNmY3ODU1MDkyYWMzOTY5OGM0MjFhMmYzMGExOGYiCisKK1BBQ0tBR0VTID0rICJleG8tY3NvdXJjZSIKKworIyBOb3RlOiBweXRob24gYmluZGluZ3MgZGlkIG5vdCB3b3JrIGluIG9lLWRldiBhbmQgYXJlIGFib3V0IHRvIGJlIG1vdmVkIHRvCisjIHB5eGZjZSBzZWUgaHR0cDovL2NvbW1lbnRzLmdtYW5lLm9yZy9nbWFuZS5jb21wLmRlc2t0b3AueGZjZS5kZXZlbC52ZXJzaW9uNC8xOTU2MAorRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0veGZjZTQvIFwKKyAgICAgICAgICAgICAgICAke2xpYmRpcn0veGZjZTQvZXhvLTEgXAorIgorCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9naW8vbW9kdWxlcy8uZGVidWcgXAorIgorCitGSUxFU19leG8tY3NvdXJjZSArPSAiJHtiaW5kaXJ9L2V4by1jc291cmNlIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9ndGsteGZjZS1lbmdpbmUvZ3RrLXhmY2UtZW5naW5lL2dsaWItMi41NC1mdGJmcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9ndGsteGZjZS1lbmdpbmUvZ3RrLXhmY2UtZW5naW5lL2dsaWItMi41NC1mdGJmcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjg5MTAyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2d0ay14ZmNlLWVuZ2luZS9ndGsteGZjZS1lbmdpbmUvZ2xpYi0yLjU0LWZ0YmZzLnBhdGNoCkBAIC0wLDAgKzEsMjMgQEAKK0Rlc2NyaXB0aW9uOiBGaXggRlRCRlMgd2l0aCBnbGliIDIuNTQKKyBnbGliLW1rZW51bXMgbm93IGV4cGVjdHMgaW5wdXQgZmlsZXMgdG8gYmUgVVRGLTgsCisgZml4IHRoZSBlbmNvZGluZyBvZiBsaWJnbm9tZXVpL2dub21lLXNjb3Jlcy5oCitBdXRob3I6IEFkcmlhbiBCdW5rIDxidW5rQGRlYmlhbi5vcmc+CisKK3BvcnRlZCBmcm9tOiBodHRwczovL2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTg3MDczOAorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKK0luZGV4OiBndGsteGZjZS1lbmdpbmUtMy4yLjAvZ3RrLTMuMC94ZmNlX3N0eWxlX3R5cGVzLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBndGsteGZjZS1lbmdpbmUtMy4yLjAub3JpZy9ndGstMy4wL3hmY2Vfc3R5bGVfdHlwZXMuaAorKysrIGd0ay14ZmNlLWVuZ2luZS0zLjIuMC9ndGstMy4wL3hmY2Vfc3R5bGVfdHlwZXMuaAorQEAgLTE5LDcgKzE5LDcgQEAKKyAgKgorICAqICBQb3J0aW9ucyBiYXNlZCBUaGluaWNlIHBvcnQgYnkgCisgICogICAgICAgICAgICAgICAgICAgICAgIFRpbSBHZXJsYSA8dGltZ0BycnYubmV0PiwKKy0gKiAgICAgICAgICAgICAgICAgICAgICAgVG9tYXMg1mdyZW4gPHN0cmljQGluZy51bXUuc2UsCisrICogICAgICAgICAgICAgICAgICAgICAgIFRvbWFzIMOWZ3JlbiA8c3RyaWNAaW5nLnVtdS5zZT4sCisgICogICAgICAgICAgICAgICAgICAgICAgIFJpY2hhcmQgSHVsdCA8cmh1bHRAY29kZWZhY3Rvcnkuc2U+CisgICogIFBvcnRpb25zIGJhc2VkIG9uIFNtb290aCB0aGVtZSBieQorICAqICAgICAgICAgICAgICAgICAgICAgICBBbmRyZXcgSm9obnNvbiA8YWpnZW5pdXNAYWpnZW5pdXMudXM+CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZ3RrLXhmY2UtZW5naW5lL2d0ay14ZmNlLWVuZ2luZV8zLjIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9ndGsteGZjZS1lbmdpbmUvZ3RrLXhmY2UtZW5naW5lXzMuMi4wLmJiCmluZGV4IGFlN2Y5OWYuLmVmNGY0YmYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9ndGsteGZjZS1lbmdpbmUvZ3RrLXhmY2UtZW5naW5lXzMuMi4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9ndGsteGZjZS1lbmdpbmUvZ3RrLXhmY2UtZW5naW5lXzMuMi4wLmJiCkBAIC04LDYgKzgsOCBAQAogCiBSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCitTUkNfVVJJICs9ICJmaWxlOi8vZ2xpYi0yLjU0LWZ0YmZzLnBhdGNoIgorCiBTUkNfVVJJW21kNXN1bV0gPSAiMzYzZDZjMTZhNDhhMDBlMjZkNDVjNDVjMmUxZmQ3MzkiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiODc1YzljM2JkYTk2ZmFmMDUwYTIyMjQ2NDljYzQyMTI5ZmZiNjYyYzRkZTMzYWRkOGMwZmQxZmI4NjBiNDdlZCIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2xpYnhmY2U0dWkvZmlsZXMvMDAwMS1saWJ4ZmNlNGtiZC1wcml2YXRlLXhmY2U0LWtleWJvYXJkLXNob3J0Y3V0cy54bWwtZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2xpYnhmY2U0dWkvZmlsZXMvMDAwMS1saWJ4ZmNlNGtiZC1wcml2YXRlLXhmY2U0LWtleWJvYXJkLXNob3J0Y3V0cy54bWwtZml4LnBhdGNoCmluZGV4IGI4YzkxNzguLjZkMTA3YjEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9saWJ4ZmNlNHVpL2ZpbGVzLzAwMDEtbGlieGZjZTRrYmQtcHJpdmF0ZS14ZmNlNC1rZXlib2FyZC1zaG9ydGN1dHMueG1sLWZpeC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvbGlieGZjZTR1aS9maWxlcy8wMDAxLWxpYnhmY2U0a2JkLXByaXZhdGUteGZjZTQta2V5Ym9hcmQtc2hvcnRjdXRzLnhtbC1maXgucGF0Y2gKQEAgLTksNiArOSw3IEBACiAKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgorCiAtLS0KICBsaWJ4ZmNlNGtiZC1wcml2YXRlL3hmY2U0LWtleWJvYXJkLXNob3J0Y3V0cy54bWwgfCAgICA0ICsrKysKICAxIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKQEAgLTE3LDggKzE4LDggQEAKIGluZGV4IDcyM2ExMGQuLmU2NTAyZjMgMTAwNjQ0CiAtLS0gYS9saWJ4ZmNlNGtiZC1wcml2YXRlL3hmY2U0LWtleWJvYXJkLXNob3J0Y3V0cy54bWwKICsrKyBiL2xpYnhmY2U0a2JkLXByaXZhdGUveGZjZTQta2V5Ym9hcmQtc2hvcnRjdXRzLnhtbAotQEAgLTY2LDQgKzY2LDggQEAKLSAgICAgICA8cHJvcGVydHkgbmFtZT0iJmx0O0NvbnRyb2wmZ3Q7RjEyIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJ3b3Jrc3BhY2VfMTJfa2V5Ii8+CitAQCAtNzUsNCArNzUsOCBAQAorICAgICAgIDxwcm9wZXJ0eSBuYW1lPSImbHQ7UHJpbWFyeSZndDtGMTIiIHR5cGU9InN0cmluZyIgdmFsdWU9IndvcmtzcGFjZV8xMl9rZXkiLz4KICAgICAgPC9wcm9wZXJ0eT4KICAgIDwvcHJvcGVydHk+CiArICA8cHJvcGVydHkgbmFtZT0icHJvdmlkZXJzIiB0eXBlPSJhcnJheSI+CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAteGZjZS1leHRlbmRlZC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC14ZmNlLWV4dGVuZGVkLmJiCmluZGV4IGNjMjMxYjQuLmI3M2M5ZWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC14ZmNlLWV4dGVuZGVkLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC14ZmNlLWV4dGVuZGVkLmJiCkBAIC01LDcgKzUsOSBAQAogCiBQUiA9ICJyMTAiCiAKLWluaGVyaXQgcGFja2FnZWdyb3VwCitpbmhlcml0IHBhY2thZ2Vncm91cCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogIyBtYW5kYXRvcnkKIFJERVBFTkRTXyR7UE59ID0gIiBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvdGh1bmFyL3RodW5hcl8xLjYuMTIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvdGh1bmFyL3RodW5hcl8xLjYuMTIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmMWIyM2UuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3RodW5hci90aHVuYXJfMS42LjEyLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotU1VNTUFSWSA9ICJGaWxlIG1hbmFnZXIgZm9yIHRoZSBYZmNlIERlc2t0b3AgRW52aXJvbm1lbnQiCi1TRUNUSU9OID0gIngxMSIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKLURFUEVORFMgPSAiZXhvIGdsaWItMi4wIGd0aysgZ2RrLXBpeGJ1ZiBsaWJ4ZmNlNHV0aWwgbGlieGZjZTR1aSB4ZmNvbmYgbGlic20gZGJ1cy1nbGliIHN0YXJ0dXAtbm90aWZpY2F0aW9uIGxpYm5vdGlmeSB4ZmNlNC1wYW5lbCB1ZGV2IgotCi1pbmhlcml0IHhmY2UgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCi0KLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCi0KLVNSQ19VUkkgPSAiaHR0cDovL2FyY2hpdmUueGZjZS5vcmcvc3JjL3hmY2UvJHtCUE59LyR7QCcke1BWfSdbMDozXX0vVGh1bmFyLSR7UFZ9LnRhci5iejIiCi1TUkNfVVJJW21kNXN1bV0gPSAiMWJkZjNjNGE1N2ZmODg2YzUxMjM0MWYyNGI1ZTBlODgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZmIyMjA5MWYwN2VjNmRlMmM5ZDlkODljNjEyODlkMmJjMzQzNmIzNmM4YzUzY2NiYzljMzJjYThhOTlmMjA4NiIKLQotUyA9ICIke1dPUktESVJ9L1RodW5hci0ke1BWfS8iCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIiCi1QQUNLQUdFQ09ORklHW3BjcmVdID0gIi0tZW5hYmxlLXBjcmUsLS1kaXNhYmxlLXBjcmUsbGlicGNyZSIKLQotRklMRVNfJHtQTn0gKz0gIiBcCi0gICAgJHtsaWJkaXJ9L3RodW5hcngtMi8qIFwKLSAgICAke2xpYmRpcn0veGZjZTQvcGFuZWwvcGx1Z2lucy8qIFwKLSAgICAke2xpYmRpcn0vVGh1bmFyL1tUdF1odW5hciogXAotICAgICR7ZGF0YWRpcn0vYXBwZGF0YSBcCi0gICAgJHtkYXRhZGlyfS9kYnVzLTEgXAotICAgICR7ZGF0YWRpcn0vcG9sa2l0LTEgXAotICAgICR7ZGF0YWRpcn0vVGh1bmFyIFwKLSAgICAke2RhdGFkaXJ9L3hmY2U0L3BhbmVsL3BsdWdpbnMvKiBcCi0iCi0KLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L3RodW5hcngtMi8uZGVidWcvIFwKLSAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3hmY2U0L3BhbmVsL3BsdWdpbnMvLmRlYnVnLyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9UaHVuYXIvLmRlYnVnLyIKLQotUlJFQ09NTUVORFNfJHtQTn0gPSAiZ3ZmcyBndmZzZC10cmFzaCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS90aHVuYXIvdGh1bmFyXzEuNi4xNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS90aHVuYXIvdGh1bmFyXzEuNi4xNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzBlMjUwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3RodW5hci90aHVuYXJfMS42LjE1LmJiCkBAIC0wLDAgKzEsMzUgQEAKK1NVTU1BUlkgPSAiRmlsZSBtYW5hZ2VyIGZvciB0aGUgWGZjZSBEZXNrdG9wIEVudmlyb25tZW50IgorU0VDVElPTiA9ICJ4MTEiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYiCitERVBFTkRTID0gImV4byBnbGliLTIuMCBndGsrIGdkay1waXhidWYgbGlieGZjZTR1dGlsIGxpYnhmY2U0dWkgeGZjb25mIGxpYnNtIGRidXMtZ2xpYiBzdGFydHVwLW5vdGlmaWNhdGlvbiBsaWJub3RpZnkgeGZjZTQtcGFuZWwgdWRldiIKKworaW5oZXJpdCB4ZmNlIGRpc3Ryb19mZWF0dXJlc19jaGVjaworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJID0gImh0dHA6Ly9hcmNoaXZlLnhmY2Uub3JnL3NyYy94ZmNlLyR7QlBOfS8ke0AnJHtQVn0nWzA6M119L1RodW5hci0ke1BWfS50YXIuYnoyIgorU1JDX1VSSVttZDVzdW1dID0gIjhmZWEyYWY2OWMzYWNiYjI3M2ZkMWExNzdkM2Q4ZTQ3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImU4MTI5MWE4NTE5ZjQ5NWUwYTA1OWZmMWYyZDI5NjA4YmM2ZDM3YzBiZTgzYjFmMzhmM2M5YWEyNWY4ZDI1MmQiCisKK1MgPSAiJHtXT1JLRElSfS9UaHVuYXItJHtQVn0vIgorCitQQUNLQUdFQ09ORklHID8/PSAiIgorUEFDS0FHRUNPTkZJR1twY3JlXSA9ICItLWVuYWJsZS1wY3JlLC0tZGlzYWJsZS1wY3JlLGxpYnBjcmUiCisKK0ZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7bGliZGlyfS90aHVuYXJ4LTIvKiBcCisgICAgJHtsaWJkaXJ9L3hmY2U0L3BhbmVsL3BsdWdpbnMvKiBcCisgICAgJHtsaWJkaXJ9L1RodW5hci9bVHRdaHVuYXIqIFwKKyAgICAke2RhdGFkaXJ9L2FwcGRhdGEgXAorICAgICR7ZGF0YWRpcn0vZGJ1cy0xIFwKKyAgICAke2RhdGFkaXJ9L3BvbGtpdC0xIFwKKyAgICAke2RhdGFkaXJ9L1RodW5hciBcCisgICAgJHtkYXRhZGlyfS94ZmNlNC9wYW5lbC9wbHVnaW5zLyogXAorIgorCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS90aHVuYXJ4LTIvLmRlYnVnLyBcCisgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS94ZmNlNC9wYW5lbC9wbHVnaW5zLy5kZWJ1Zy8gXAorICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vVGh1bmFyLy5kZWJ1Zy8iCisKK1JSRUNPTU1FTkRTXyR7UE59ID0gImd2ZnMgZ3Zmc2QtdHJhc2giCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvdHVtYmxlci90dW1ibGVyXzAuMS4zMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS90dW1ibGVyL3R1bWJsZXJfMC4xLjMxLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZjU0MTlhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS90dW1ibGVyL3R1bWJsZXJfMC4xLjMxLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotREVTQ1JJUFRJT049IlRodW1ibmFpbCBzZXJ2aWNlIGltcGxlbWVudGluZyB0aGUgdGh1bWJuYWlsIG1hbmFnZW1lbnQgRC1CdXMgc3BlY2lmaWNhdGlvbiIKLVNFQ1RJT04gPSAieDExL2xpYnMiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMiCi1ERVBFTkRTID0gImRidXMtZ2xpYiBkYnVzLWdsaWItbmF0aXZlIGZyZWV0eXBlIGdkay1waXhidWYgcG9wcGxlciBjdXJsIHhmY2U0LWRldi10b29scy1uYXRpdmUgbGlieG1sMiBsaWJnc2YiCi0KLWluaGVyaXQgeGZjZSBndGstZG9jCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIwMDY3MDU0ZTZmMWY5MGExM2Y5MGZhYWRmY2ExZTg5ZSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkMGZkMzI5MjczZmY2YWM5ODg4NWVhZGU0YzNkOGM4N2E0ZGQwODE2ZjcxMzY0NjEzMDgwOGJmYTkwYjg3MTczIgotU1JDX1VSSSArPSAiZmlsZTovLzAwMDEtY29uZmlndXJlLXVzZS1wa2ctY29uZmlnLWZvci1mcmVldHlwZTIucGF0Y2giCi0KLUlOU0FORV9TS0lQXyR7UE59ID0gImRldi1zbyIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiIKLVBBQ0tBR0VDT05GSUdbZ3N0cmVhbWVyLXRodW1ibmFpbGVyXSA9ICItLWVuYWJsZS1nc3RyZWFtZXItdGh1bWJuYWlsZXIsLS1kaXNhYmxlLWdzdHJlYW1lci10aHVtYm5haWxlcixnc3RyZWFtZXIxLjAgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZSIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vZGJ1cy0xL3NlcnZpY2VzIFwKLSAgICAgICAgICAgICAgICAke2xpYmRpcn0vdHVtYmxlci0xL3R1bWJsZXJkIFwKLSAgICAgICAgICAgICAgICAke2xpYmRpcn0vdHVtYmxlci0xL3BsdWdpbnMvKi5zbyBcCi0gICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3R1bWJsZXItMS9wbHVnaW5zL2NhY2hlLyouc28gXAotIgotCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS90dW1ibGVyLTEvcGx1Z2lucy8qLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3R1bWJsZXItMS9wbHVnaW5zL2NhY2hlLyoubGEiCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS90dW1ibGVyLTEvLmRlYnVnIFwKLSAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3R1bWJsZXItMS9wbHVnaW5zLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS90dW1ibGVyLTEvcGx1Z2lucy9jYWNoZS8uZGVidWcgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3R1bWJsZXIvdHVtYmxlcl8wLjIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS90dW1ibGVyL3R1bWJsZXJfMC4yLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UwYzU1NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS90dW1ibGVyL3R1bWJsZXJfMC4yLjAuYmIKQEAgLTAsMCArMSwzNSBAQAorREVTQ1JJUFRJT049IlRodW1ibmFpbCBzZXJ2aWNlIGltcGxlbWVudGluZyB0aGUgdGh1bWJuYWlsIG1hbmFnZW1lbnQgRC1CdXMgc3BlY2lmaWNhdGlvbiIKK1NFQ1RJT04gPSAieDExL2xpYnMiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMiCitERVBFTkRTID0gImRidXMtZ2xpYiBkYnVzLWdsaWItbmF0aXZlIGZyZWV0eXBlIGdkay1waXhidWYgcG9wcGxlciBjdXJsIHhmY2U0LWRldi10b29scy1uYXRpdmUgbGlieG1sMiBsaWJnc2YiCisKK2luaGVyaXQgeGZjZSBndGstZG9jCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJkZDVmOWJhZTZhMjQ3MGViNWZmZjBkYzllZGQzZWEwOSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0ZTI3YTU5Njk0YjBhNWNjNjllYmNjYmRiMDBjNzI0ZTY3MGI1YjdjMzBiYzRkYzBiNDYxYWFjOTNmMjM0ZmFjIgorU1JDX1VSSSArPSAiZmlsZTovLzAwMDEtY29uZmlndXJlLXVzZS1wa2ctY29uZmlnLWZvci1mcmVldHlwZTIucGF0Y2giCisKK0lOU0FORV9TS0lQXyR7UE59ID0gImRldi1zbyIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiIKK1BBQ0tBR0VDT05GSUdbZ3N0cmVhbWVyLXRodW1ibmFpbGVyXSA9ICItLWVuYWJsZS1nc3RyZWFtZXItdGh1bWJuYWlsZXIsLS1kaXNhYmxlLWdzdHJlYW1lci10aHVtYm5haWxlcixnc3RyZWFtZXIxLjAgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZSIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgIyBNYWtlZmlsZSBzZWVtcyB0byByYWNlIG9uIGNyZWF0aW9uIG9mIHN5bWxpbmsuIFNvIGVuc3VyZSBjcmVhdGlvbiBoZXJlCisgICAgIyB1bnRpbCBmaXhlZCBwcm9wZXJseQorICAgIGxuIC1zZiB0dW1ibGVyLXhkZy1jYWNoZS5zbyAke0R9JHtsaWJkaXJ9L3R1bWJsZXItMS9wbHVnaW5zL2NhY2hlL3R1bWJsZXItY2FjaGUtcGx1Z2luLnNvCit9CisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2RidXMtMS9zZXJ2aWNlcyBcCisgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3R1bWJsZXItMS90dW1ibGVyZCBcCisgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3R1bWJsZXItMS9wbHVnaW5zLyouc28gXAorICAgICAgICAgICAgICAgICR7bGliZGlyfS90dW1ibGVyLTEvcGx1Z2lucy9jYWNoZS8qLnNvIFwKKyIKKworRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vdHVtYmxlci0xL3BsdWdpbnMvKi5sYSBcCisgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS90dW1ibGVyLTEvcGx1Z2lucy9jYWNoZS8qLmxhIgorRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vdHVtYmxlci0xLy5kZWJ1ZyBcCisgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS90dW1ibGVyLTEvcGx1Z2lucy8uZGVidWcgXAorICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vdHVtYmxlci0xL3BsdWdpbnMvY2FjaGUvLmRlYnVnIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1hcHBmaW5kZXIveGZjZTQtYXBwZmluZGVyXzQuMTIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1hcHBmaW5kZXIveGZjZTQtYXBwZmluZGVyXzQuMTIuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTc1YTgyNy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZjZTQtYXBwZmluZGVyL3hmY2U0LWFwcGZpbmRlcl80LjEyLjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1ERVNDUklQVElPTj0iWGZjZTQgQXBwbGljYXRpb24gRmluZGVyIgotU0VDVElPTiA9ICJ4MTEiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYiCi1ERVBFTkRTPSJnbGliLTIuMCBndGsrIGxpYnhmY2U0dXRpbCBsaWJ4ZmNlNHVpIGdhcmNvbiBkYnVzLWdsaWIgeGZjb25mIgotCi1pbmhlcml0IHhmY2UgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCi0KLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIwYjIzOGIzMDY4NjM4OGM1MDdjMTE5YjEyNjY0ZjFhMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIyYWQ0YTU4MDE5YTc2YTZiNjRhODE2MDUwZGIyNWY5Njg1NDkxN2MyZjJlODlkNmE5ZGY2YzE4ZTZjODRjNTY3IgotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9hcHBkYXRhIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LWFwcGZpbmRlci94ZmNlNC1hcHBmaW5kZXJfNC4xMy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LWFwcGZpbmRlci94ZmNlNC1hcHBmaW5kZXJfNC4xMy4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNzM5MTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZjZTQtYXBwZmluZGVyL3hmY2U0LWFwcGZpbmRlcl80LjEzLjAuYmIKQEAgLTAsMCArMSwxNCBAQAorREVTQ1JJUFRJT049IlhmY2U0IEFwcGxpY2F0aW9uIEZpbmRlciIKK1NFQ1RJT04gPSAieDExIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIgorREVQRU5EUz0iZ2xpYi0yLjAgZ3RrKzMgbGlieGZjZTR1dGlsIGxpYnhmY2U0dWkgZ2FyY29uIGRidXMtZ2xpYiB4ZmNvbmYiCisKK2luaGVyaXQgeGZjZSBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworU1JDX1VSSVttZDVzdW1dID0gIjZiNmNmMDgwYzg5MWY3OTQ1OTUzZjgwODRhOTAxNTUyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImMwZWIzYjI5ZWJhM2NmYTkxNzVlZDM1MTc0ZTgzYTIxZmFhMmEyNDIzZGRiNzk1MDFmZTg4NDZjYzQzMGUzYWUiCisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2FwcGRhdGEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZjZTQtcGFuZWwveGZjZTQtcGFuZWxfNC4xMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXBhbmVsL3hmY2U0LXBhbmVsXzQuMTIuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODAzMzJjZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZjZTQtcGFuZWwveGZjZTQtcGFuZWxfNC4xMi4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotU1VNTUFSWSA9ICJYZmNlNCBQYW5lbCIKLVNFQ1RJT04gPSAieDExIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTI2YThiZDc1ZDhmODQ5OGJkYmJlNjRhMjc3OTFkNGVlIgotREVQRU5EUyA9ICJsaWJ4ZmNlNHV0aWwgZ2FyY29uIGxpYnhmY2U0dWkgeGZjb25mIGV4byBndGsrIGd0ayszIGRidXMgY2Fpcm8gdmlydHVhbC9saWJ4MTEgbGlieG1sMiBsaWJ3bmNrIgotCi1pbmhlcml0IHhmY2UgZ3RrLWRvYyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLQotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjBiOTQzZjJlNzJhMzY5M2RkZGIxYWY1NTk4MjZjYjYyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjkzZDU4YjgwY2NhOWM5ZWI1OGFkYjI4MWJjNzU0MDRkZjdjZjZjYWU4OWY3Zjk4YmI5ZjM4NjkwMDA5YWEyZTgiCi1TUkNfVVJJICs9ICIgXAotICAgIGZpbGU6Ly8wMDAxLWNsb2NrLXRpbWUtbWFrZS1jaGFuZ2Utb2Ytc3lzdGVtLXMtdGltZXpvbmUtY2hhbmdlLXQucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAyLXdpbmRvd21lbnUtZG8tbm90LWRpc3BsYXktZGVza3RvcC1pY29uLXdoZW4tbm8td2luZG8ucGF0Y2ggXAotIgotCi1FWFRSQV9PRUNPTkYgKz0gIi0tZW5hYmxlLWd0azMiCi0KLXB5dGhvbiBwb3B1bGF0ZV9wYWNrYWdlc19wcmVwZW5kKCkgewotICAgIHBsdWdpbl9kaXIgPSBkLmV4cGFuZCgnJHtsaWJkaXJ9L3hmY2U0L3BhbmVsL3BsdWdpbnMvJykKLSAgICBwbHVnaW5fbmFtZSA9IGQuZXhwYW5kKCcke1BOfS1wbHVnaW4tJXMnKQotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIHBsdWdpbl9kaXIsICdebGliKC4qKS5zbyQnLCBwbHVnaW5fbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAnJHtQTn0gcGx1Z2luIGZvciAlcycsIGV4dHJhX2RlcGVuZHM9JycsIHByZXBlbmQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICBhdXhfZmlsZXNfcGF0dGVybj1bJyR7ZGF0YWRpcn0veGZjZTQvcGFuZWwvcGx1Z2lucy8lcy5kZXNrdG9wJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyR7c3lzY29uZmRpcn0veGRnL3hmY2UvcGFuZWwvJXMtKicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcke2RhdGFkaXJ9L2ljb25zL2hpY29sb3IvNDh4NDgvYXBwcy8qLSVzLnBuZycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcke2JpbmRpcn0vKiVzKiddKQotfQotCi1QQUNLQUdFU19EWU5BTUlDICs9ICJeJHtQTn0tcGx1Z2luLS4qIgotCi1QQUNLQUdFUyA9KyAiJHtQTn0tZ3RrMyIKLQotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS94ZmNlNC9wYW5lbC9taWdyYXRlIFwKLSAgICAgICAgICAgICAgICAke2xpYmRpcn0veGZjZTQvcGFuZWwvd3JhcHBlci0xLjAiCi0KLUZJTEVTXyR7UE59LWd0azMgPSAiIFwKLSAgICAke2xpYmRpcn0vbGlieGZjZTRwYW5lbC0yLjAke1NPTElCU30gXAotICAgICR7bGliZGlyfS94ZmNlNC9wYW5lbC93cmFwcGVyLTIuMCBcCi0iCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS94ZmNlNC9wYW5lbC9wbHVnaW5zLy5kZWJ1ZyBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZjZTQtcGFuZWwveGZjZTQtcGFuZWxfNC4xMi4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXBhbmVsL3hmY2U0LXBhbmVsXzQuMTIuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2M5YTRiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXBhbmVsL3hmY2U0LXBhbmVsXzQuMTIuMi5iYgpAQCAtMCwwICsxLDQ0IEBACitTVU1NQVJZID0gIlhmY2U0IFBhbmVsIgorU0VDVElPTiA9ICJ4MTEiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MjZhOGJkNzVkOGY4NDk4YmRiYmU2NGEyNzc5MWQ0ZWUiCitERVBFTkRTID0gImxpYnhmY2U0dXRpbCBnYXJjb24gbGlieGZjZTR1aSB4ZmNvbmYgZXhvIGd0aysgZ3RrKzMgZGJ1cyBjYWlybyB2aXJ0dWFsL2xpYngxMSBsaWJ4bWwyIGxpYnduY2siCisKK2luaGVyaXQgeGZjZSBndGstZG9jIGRpc3Ryb19mZWF0dXJlc19jaGVjayBndGstaWNvbi1jYWNoZQorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJW21kNXN1bV0gPSAiODAzYzlhYWJjMjkyNWRjOTdmOTZkZTEyNWM1MmJhMmUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDIwNThhYmI4MWI4Zjg3NjkxZDM5OTk2Mjc0NDdkZTcxYzMyODViY2YwNTVmMzA4YWFiNWNlZmFiMmRlMGNlOSIKK1NSQ19VUkkgKz0gIiBcCisgICAgZmlsZTovLzAwMDEtY2xvY2stdGltZS1tYWtlLWNoYW5nZS1vZi1zeXN0ZW0tcy10aW1lem9uZS1jaGFuZ2UtdC5wYXRjaCBcCisgICAgZmlsZTovLzAwMDItd2luZG93bWVudS1kby1ub3QtZGlzcGxheS1kZXNrdG9wLWljb24td2hlbi1uby13aW5kby5wYXRjaCBcCisiCisKK0VYVFJBX09FQ09ORiArPSAiLS1lbmFibGUtZ3RrMyIKKworcHl0aG9uIHBvcHVsYXRlX3BhY2thZ2VzX3ByZXBlbmQoKSB7CisgICAgcGx1Z2luX2RpciA9IGQuZXhwYW5kKCcke2xpYmRpcn0veGZjZTQvcGFuZWwvcGx1Z2lucy8nKQorICAgIHBsdWdpbl9uYW1lID0gZC5leHBhbmQoJyR7UE59LXBsdWdpbi0lcycpCisgICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgcGx1Z2luX2RpciwgJ15saWIoLiopLnNvJCcsIHBsdWdpbl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICcke1BOfSBwbHVnaW4gZm9yICVzJywgZXh0cmFfZGVwZW5kcz0nJywgcHJlcGVuZD1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgIGF1eF9maWxlc19wYXR0ZXJuPVsnJHtkYXRhZGlyfS94ZmNlNC9wYW5lbC9wbHVnaW5zLyVzLmRlc2t0b3AnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJHtzeXNjb25mZGlyfS94ZGcveGZjZS9wYW5lbC8lcy0qJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyR7ZGF0YWRpcn0vaWNvbnMvaGljb2xvci80OHg0OC9hcHBzLyotJXMucG5nJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyR7YmluZGlyfS8qJXMqJ10pCit9CisKK1BBQ0tBR0VTX0RZTkFNSUMgKz0gIl4ke1BOfS1wbHVnaW4tLioiCisKK1BBQ0tBR0VTID0rICIke1BOfS1ndGszIgorCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L3hmY2U0L3BhbmVsL21pZ3JhdGUgXAorICAgICAgICAgICAgICAgICR7bGliZGlyfS94ZmNlNC9wYW5lbC93cmFwcGVyLTEuMCIKKworRklMRVNfJHtQTn0tZ3RrMyA9ICIgXAorICAgICR7bGliZGlyfS9saWJ4ZmNlNHBhbmVsLTIuMCR7U09MSUJTfSBcCisgICAgJHtsaWJkaXJ9L3hmY2U0L3BhbmVsL3dyYXBwZXItMi4wIFwKKyIKK0ZJTEVTXyR7UE59LWRiZyArPSAiIFwKKyAgICAke2xpYmRpcn0veGZjZTQvcGFuZWwvcGx1Z2lucy8uZGVidWcgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXBvd2VyLW1hbmFnZXIveGZjZTQtcG93ZXItbWFuYWdlcl8xLjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1wb3dlci1tYW5hZ2VyL3hmY2U0LXBvd2VyLW1hbmFnZXJfMS42LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4ZDAwZGYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXBvd2VyLW1hbmFnZXIveGZjZTQtcG93ZXItbWFuYWdlcl8xLjYuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLVNVTU1BUlkgPSAiUG93ZXIgbWFuYWdlciBmb3IgdGhlIFhmY2UgZGVza3RvcCBlbnZpcm9ubWVudCIKLUhPTUVQQUdFID0gImh0dHA6Ly9nb29kaWVzLnhmY2Uub3JnL3Byb2plY3RzL2FwcGxpY2F0aW9ucy94ZmNlNC1wb3dlci1tYW5hZ2VyIgotU0VDVElPTiA9ICJ4MTEiCi0KLUxJQ0VOU0UgPSAiR1BMdjIrIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NTk1MzBiZGYzMzY1OWIyOWU3M2Q0YWRiOWY5ZjY1NTIiCi0KLWluaGVyaXQgeGZjZSBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLQotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKLQotREVQRU5EUyArPSAiZ3RrKzMgZ2xpYi0yLjAgZGJ1cy1nbGliIHhmY29uZiBsaWJ4ZmNlNHVpIGxpYnhmY2U0dXRpbCBsaWJub3RpZnkgXAotICAgICAgICAgICBsaWJ4cmFuZHIgdmlydHVhbC9saWJ4MTEgbGlieGV4dCB4ZmNlNC1wYW5lbCB1cG93ZXIgbGlieHNjcm5zYXZlciIKLQotU1JDX1VSSVttZDVzdW1dID0gIjJlMmUyNGExYTIyOTEyZDZhNTYxYmE2MTU1ODg3NTAzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImJkZTMxNTdlMDZhYjMxZmYyMzY0OGQxNjNkNTNlZTUwOTVmNzgxOTU0NGE5ZjQ4ZDNhOTZkNTc4Mjk4NTdmMmIiCi0KLUVYVFJBX09FQ09ORiA9ICIgXAotICAgIC0tZW5hYmxlLW5ldHdvcmstbWFuYWdlciBcCi0gICAgLS1lbmFibGUtcGFuZWwtcGx1Z2lucyBcCi0iCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IgotUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICItLWVuYWJsZS1wb2xraXQsIC0tZGlzYWJsZS1wb2xraXQsIHBvbGtpdCIKLQotUEFDS0FHRVMgKz0gInhmY2U0LXBvd2VybWFuYWdlci1wbHVnaW4iCi0KLUZJTEVTXyR7UE59ICs9ICIgXAotICAgICR7ZGF0YWRpcn0vcG9sa2l0LTEgXAotICAgICR7ZGF0YWRpcn0vYXBwZGF0YSBcCi0iCi0KLUZJTEVTX3hmY2U0LXBvd2VybWFuYWdlci1wbHVnaW4gPSAiIFwKLSAgICAke2xpYmRpcn0veGZjZTQgXAotICAgICR7ZGF0YWRpcn0veGZjZTQgXAotIgotCi1SREVQRU5EU194ZmNlNC1wb3dlcm1hbmFnZXItcGx1Z2luID0gIiR7UE59IgotUkRFUEVORFNfJHtQTn0gPSAibmV0d29ya21hbmFnZXIgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLCcnLCdjb25zb2xla2l0JyxkKX0iCi0KLSMgeGZjZTQtYnJpZ2h0bmVzcy1wbHVnaW4gd2FzIHJlcGxhY2VkIGJ5IHhmY2U0LXBvd2VybWFuYWdlci1wbHVnaW4KLVJQUk9WSURFU194ZmNlNC1wb3dlcm1hbmFnZXItcGx1Z2luICs9ICJ4ZmNlNC1icmlnaHRuZXNzLXBsdWdpbiIKLVJSRVBMQUNFU194ZmNlNC1wb3dlcm1hbmFnZXItcGx1Z2luICs9ICJ4ZmNlNC1icmlnaHRuZXNzLXBsdWdpbiIKLVJDT05GTElDVFNfeGZjZTQtcG93ZXJtYW5hZ2VyLXBsdWdpbiArPSAieGZjZTQtYnJpZ2h0bmVzcy1wbHVnaW4iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZjZTQtcG93ZXItbWFuYWdlci94ZmNlNC1wb3dlci1tYW5hZ2VyXzEuNi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXBvd2VyLW1hbmFnZXIveGZjZTQtcG93ZXItbWFuYWdlcl8xLjYuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDExN2IwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXBvd2VyLW1hbmFnZXIveGZjZTQtcG93ZXItbWFuYWdlcl8xLjYuMS5iYgpAQCAtMCwwICsxLDQ0IEBACitTVU1NQVJZID0gIlBvd2VyIG1hbmFnZXIgZm9yIHRoZSBYZmNlIGRlc2t0b3AgZW52aXJvbm1lbnQiCitIT01FUEFHRSA9ICJodHRwOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9hcHBsaWNhdGlvbnMveGZjZTQtcG93ZXItbWFuYWdlciIKK1NFQ1RJT04gPSAieDExIgorCitMSUNFTlNFID0gIkdQTHYyKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgorCitpbmhlcml0IHhmY2UgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK0RFUEVORFMgKz0gImd0ayszIGdsaWItMi4wIGRidXMtZ2xpYiB4ZmNvbmYgbGlieGZjZTR1aSBsaWJ4ZmNlNHV0aWwgbGlibm90aWZ5IFwKKyAgICAgICAgICAgbGlieHJhbmRyIHZpcnR1YWwvbGlieDExIGxpYnhleHQgeGZjZTQtcGFuZWwgdXBvd2VyIGxpYnhzY3Juc2F2ZXIiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIxN2YwZTY0NjRhZDZiM2JjNmE2NTdmNTk1YmY5MTQzMCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIxZWE4MjU0NTIzNDNiODk1NTY2MDY4MDE4YjZkNTA3ODYwOGY4ZjQ2Y2U4MDc1YmE2YmJiNGI4NDhmNDg2NTZiIgorCitFWFRSQV9PRUNPTkYgPSAiIFwKKyAgICAtLWVuYWJsZS1uZXR3b3JrLW1hbmFnZXIgXAorICAgIC0tZW5hYmxlLXBhbmVsLXBsdWdpbnMgXAorIgorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsIGQpfSIKK1BBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiLS1lbmFibGUtcG9sa2l0LCAtLWRpc2FibGUtcG9sa2l0LCBwb2xraXQiCisKK1BBQ0tBR0VTICs9ICJ4ZmNlNC1wb3dlcm1hbmFnZXItcGx1Z2luIgorCitGSUxFU18ke1BOfSArPSAiIFwKKyAgICAke2RhdGFkaXJ9L3BvbGtpdC0xIFwKKyAgICAke2RhdGFkaXJ9L2FwcGRhdGEgXAorIgorCitGSUxFU194ZmNlNC1wb3dlcm1hbmFnZXItcGx1Z2luID0gIiBcCisgICAgJHtsaWJkaXJ9L3hmY2U0IFwKKyAgICAke2RhdGFkaXJ9L3hmY2U0IFwKKyIKKworUkRFUEVORFNfeGZjZTQtcG93ZXJtYW5hZ2VyLXBsdWdpbiA9ICIke1BOfSIKK1JERVBFTkRTXyR7UE59ID0gIm5ldHdvcmttYW5hZ2VyICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCdzeXN0ZW1kJywnJywnY29uc29sZWtpdCcsZCl9IgorCisjIHhmY2U0LWJyaWdodG5lc3MtcGx1Z2luIHdhcyByZXBsYWNlZCBieSB4ZmNlNC1wb3dlcm1hbmFnZXItcGx1Z2luCitSUFJPVklERVNfeGZjZTQtcG93ZXJtYW5hZ2VyLXBsdWdpbiArPSAieGZjZTQtYnJpZ2h0bmVzcy1wbHVnaW4iCitSUkVQTEFDRVNfeGZjZTQtcG93ZXJtYW5hZ2VyLXBsdWdpbiArPSAieGZjZTQtYnJpZ2h0bmVzcy1wbHVnaW4iCitSQ09ORkxJQ1RTX3hmY2U0LXBvd2VybWFuYWdlci1wbHVnaW4gKz0gInhmY2U0LWJyaWdodG5lc3MtcGx1Z2luIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXNldHRpbmdzL3hmY2U0LXNldHRpbmdzX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1zZXR0aW5ncy94ZmNlNC1zZXR0aW5nc19naXQuYmIKaW5kZXggNzcxZGEyYy4uYmY5YmQzMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXNldHRpbmdzL3hmY2U0LXNldHRpbmdzX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZjZTQtc2V0dGluZ3MveGZjZTQtc2V0dGluZ3NfZ2l0LmJiCkBAIC0xMywxMiArMTMsMTIgQEAKICMgKyBtaW5vciBidWdmaXhlcyAtIHNlbnQgbWFpbmxpbmUgYnV0IG5vIHJlc3BvbnNlCiAjICsgb3B0aW9uIHRvIGhpZGUgbW91c2Vwb2ludGVyIGZvciBhIHNwZWNpZmljICh0b3VjaCkgaW5wdXQgZGV2aWNlIC0gc2VudCBtYWlubGluZSBidXQgbm8gcmVzcG9uc2UKIFNSQ19VUkkgPSAiIFwKLSAgICBnaXQ6Ly9naXRodWIuY29tL3NjaG5pdHplbHRvbnkveGZjZTQtc2V0dGluZ3MuZ2l0O3Byb3RvY29sPWdpdDticmFuY2g9Zm9yLW9lLTQuMTIuMC0xIFwKKyAgICBnaXQ6Ly9naXRodWIuY29tL3NjaG5pdHplbHRvbnkveGZjZTQtc2V0dGluZ3MuZ2l0O3Byb3RvY29sPWdpdDticmFuY2g9Zm9yLW9lLTQuMTIuMyBcCiAgICAgZmlsZTovLzAwMDEteHNldHRpbmdzLnhtbC1TZXQtZGVmYXVsdC10aGVtZXMucGF0Y2ggXAogIgotU1JDUkVWID0gImM2NjgzY2IyY2ZmNDg5YzE2YzJjN2I1ZWFiNDAxN2JiNDYxZjA3ZjEiCitTUkNSRVYgPSAiYjcwMWFjOGI2NmI4M2MxNzQ2OWRkNTAwOWRhNTFlZWI1OWViYTQ0MiIKIFMgPSAiJHtXT1JLRElSfS9naXQiCi1QViA9ICI0LjEyLjArZ2l0JHtTUkNQVn0iCitQViA9ICI0LjEyLjMrZ2l0JHtTUkNQVn0iCiAKIEVYVFJBX09FQ09ORiArPSAiLS1lbmFibGUtbWFpbnRhaW5lci1tb2RlIC0tZGlzYWJsZS1kZWJ1ZyIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmZGVza3RvcC94ZmRlc2t0b3BfNC4xMi4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmZGVza3RvcC94ZmRlc2t0b3BfNC4xMi4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYWVjZjgyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmRlc2t0b3AveGZkZXNrdG9wXzQuMTIuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVNVTU1BUlkgPSAiWGZjZTQgRGVza3RvcCBNYW5hZ2VyIgotU0VDVElPTiA9ICJ4MTEvYmFzZSIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKLURFUEVORFMgPSAiZ2xpYi0yLjAgZ3RrKyBsaWJ4ZmNlNHV0aWwgbGlieGZjZTR1aSBsaWJ3bmNrIHhmY29uZiBkYnVzLWdsaWIgZGJ1cy1nbGliLW5hdGl2ZSB0aHVuYXIgZ2FyY29uIGV4byIKLQotaW5oZXJpdCB4ZmNlIGRpc3Ryb19mZWF0dXJlc19jaGVjawotCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiY2IzNGY0ZjMzM2Q3ZDEyMmYxNjg4ZDJmMTU1MjAyYzgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYThhOGQ5Mzc0NGQ4NDJjYTZhYzFmOWJkMmM4Nzg5ZWUxNzg5MzdiY2E3ZTE3MGU1MjM5Y2JkYmVmMzA1MjBhYyIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiIKLVBBQ0tBR0VDT05GSUdbbm90aWZ5XSA9ICItLWVuYWJsZS1ub3RpZmljYXRpb25zLC0tZGlzYWJsZS1ub3RpZmljYXRpb25zLGxpYm5vdGlmeSIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vYmFja2dyb3VuZHMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZkZXNrdG9wL3hmZGVza3RvcF80LjEyLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZkZXNrdG9wL3hmZGVza3RvcF80LjEyLjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDljYmU3MQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmRlc2t0b3AveGZkZXNrdG9wXzQuMTIuNC5iYgpAQCAtMCwwICsxLDE3IEBACitTVU1NQVJZID0gIlhmY2U0IERlc2t0b3AgTWFuYWdlciIKK1NFQ1RJT04gPSAieDExL2Jhc2UiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYiCitERVBFTkRTID0gImdsaWItMi4wIGd0aysgbGlieGZjZTR1dGlsIGxpYnhmY2U0dWkgbGlid25jayB4ZmNvbmYgZGJ1cy1nbGliIGRidXMtZ2xpYi1uYXRpdmUgdGh1bmFyIGdhcmNvbiBleG8iCisKK2luaGVyaXQgeGZjZSBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworU1JDX1VSSVttZDVzdW1dID0gIjc1NzE4ODkzNjhiZTcyZGYxODVjZTJkNDcwZjM3MTk4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjA5OGEzNTUxMDU2MjkwN2UxNDMxZDVhZGJmYTgzMDc0ODRhMjM1YzFkZWM2YTQzZTJkNThkMmFjNDI0MWYxY2IiCisKK1BBQ0tBR0VDT05GSUcgPz89ICIiCitQQUNLQUdFQ09ORklHW25vdGlmeV0gPSAiLS1lbmFibGUtbm90aWZpY2F0aW9ucywtLWRpc2FibGUtbm90aWZpY2F0aW9ucyxsaWJub3RpZnkiCisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2JhY2tncm91bmRzIgo=