ZGlmZiAtLWdpdCBhL2x5bnEvUjMwNS9hcC9hcHAvZ29haGVhZC9pbnRlcmZhY2U1LjAvenRlX3dlYl9tZ210LmMgYi9seW5xL1IzMDUvYXAvYXBwL2dvYWhlYWQvaW50ZXJmYWNlNS4wL3p0ZV93ZWJfbWdtdC5jCmluZGV4IGYwNzY3Y2UuLjczYWY0YzMgMTAwNzU1Ci0tLSBhL2x5bnEvUjMwNS9hcC9hcHAvZ29haGVhZC9pbnRlcmZhY2U1LjAvenRlX3dlYl9tZ210LmMKKysrIGIvbHlucS9SMzA1L2FwL2FwcC9nb2FoZWFkL2ludGVyZmFjZTUuMC96dGVfd2ViX21nbXQuYwpAQCAtMTY0LDMxICsxNjQsNiBAQAogCQlyZXR1cm47CiAJfQogCi0JaWYgKHVzZXIgIT0gTlVMTCkgewotCQlzbG9nKE1JU0NfUFJJTlQsIFNMT0dfREVCVUcsIiB6dGVfbWdtdF9sb2dpbiAgdXNlciA9ICVzXG4iLCB1c2VyKTsKLQkJcFVzZXIgPSAoY2hhciAqKXp0ZV9iYXNlNjRfZGVjb2RlKChjb25zdCB1bnNpZ25lZCBjaGFyICopdXNlciwgc3RybGVuKHVzZXIpLCAodW5zaWduZWQgaW50KikmdXNlcl9uYW1lX2xlbik7Ci0JCWlmIChOVUxMID09IHBVc2VyKSB7Ci0JCQl6dGVfd3JpdGVfcmVzdWx0X3RvX3dlYih3cCwgTE9HSU5fRkFJTCk7Ci0JCQlyZXR1cm47Ci0JCX0KLQotCQkvL3N0cm5jcHkodXNlcl9uYW1lLCBwVXNlciwgdXNlcl9uYW1lX2xlbik7Ci0JCWlmKHVzZXJfbmFtZV9sZW4gPCBzaXplb2YodXNlcl9uYW1lKSkKLQkJCXNucHJpbnRmKHVzZXJfbmFtZSx1c2VyX25hbWVfbGVuKzEsIiVzIixwVXNlcik7Ci0JCWVsc2UKLQkJCXNucHJpbnRmKHVzZXJfbmFtZSxzaXplb2YodXNlcl9uYW1lKSwiJXMiLHBVc2VyKTsKLQkJZnJlZShwVXNlcik7Ci0KLQkJc2xvZyhNSVNDX1BSSU5ULCBTTE9HX0RFQlVHLCIgenRlX21nbXRfbG9naW4gIHVzZXJfbmFtZSA9ICVzXG4iLCB1c2VyX25hbWUpOwotCQljZmdfZ2V0X2l0ZW0oImFkbWluX3VzZXIiLCBidWYsIHNpemVvZihidWYpKTsKLQkJaWYgKDAgIT0gc3RyY21wKHVzZXJfbmFtZSwgYnVmKSkgewotCQkJc2xvZyhNSVNDX1BSSU5ULCBTTE9HX0VSUiwiIHp0ZV9tZ210X2xvZ2luIHVzZXJfbmFtZSBmYWlsIFxuIik7Ci0JCQl6dGVfd3JpdGVfcmVzdWx0X3RvX3dlYih3cCwgTE9HSU5fVVNFUl9OQU1FX05PVF9FWFNJVCk7Ci0JCQlyZXR1cm47Ci0JCX0KLQkJc2xvZyhNSVNDX1BSSU5ULCBTTE9HX0RFQlVHLCIgenRlX21nbXRfbG9naW4gdWVybmFtZSBjb3JyZWN0IFxuIik7Ci0JfQotCXNsb2coTUlTQ19QUklOVCwgU0xPR19ERUJVRywiW2xvZ2luXSBsb2dpbjEgLT4genRlX3Bhc3N3b3JkX2VuY29kZTolcy5cbiIsIHBzdyk7IC8qbGludCAhZTI2Ki8KICNpZmRlZiBXRUJTX1NFQ1VSSVRZCiAJenRlX3Bhc3N3b3JkID0ganNfYWVzX2RlY29kZShwc3csIHN0cmxlbihwc3cpLCAodW5zaWduZWQgaW50KikmenRlX3Bhc3N3b3JkX2xlbik7CiAjZWxzZQpAQCAtMjE3LDYgKzE5MiwzMyBAQAogCQlyZXR1cm47CiAJfQogCisJaWYgKHVzZXIgIT0gTlVMTCkgeworCQlzbG9nKE1JU0NfUFJJTlQsIFNMT0dfREVCVUcsIiB6dGVfbWdtdF9sb2dpbiAgdXNlciA9ICVzXG4iLCB1c2VyKTsKKwkJcFVzZXIgPSAoY2hhciAqKXp0ZV9iYXNlNjRfZGVjb2RlKChjb25zdCB1bnNpZ25lZCBjaGFyICopdXNlciwgc3RybGVuKHVzZXIpLCAodW5zaWduZWQgaW50KikmdXNlcl9uYW1lX2xlbik7CisJCWlmIChOVUxMID09IHBVc2VyKSB7CisJCQl6dGVfd3JpdGVfcmVzdWx0X3RvX3dlYih3cCwgTE9HSU5fRkFJTCk7CisJCQlyZXR1cm47CisJCX0KKworCQkvL3N0cm5jcHkodXNlcl9uYW1lLCBwVXNlciwgdXNlcl9uYW1lX2xlbik7CisJCWlmKHVzZXJfbmFtZV9sZW4gPCBzaXplb2YodXNlcl9uYW1lKSkKKwkJCXNucHJpbnRmKHVzZXJfbmFtZSx1c2VyX25hbWVfbGVuKzEsIiVzIixwVXNlcik7CisJCWVsc2UKKwkJCXNucHJpbnRmKHVzZXJfbmFtZSxzaXplb2YodXNlcl9uYW1lKSwiJXMiLHBVc2VyKTsKKwkJZnJlZShwVXNlcik7CisKKwkJc2xvZyhNSVNDX1BSSU5ULCBTTE9HX0RFQlVHLCIgenRlX21nbXRfbG9naW4gIHVzZXJfbmFtZSA9ICVzXG4iLCB1c2VyX25hbWUpOworCQljZmdfZ2V0X2l0ZW0oImFkbWluX3VzZXIiLCBidWYsIHNpemVvZihidWYpKTsKKwkJaWYgKDAgIT0gc3RyY21wKHVzZXJfbmFtZSwgYnVmKSkgeworCQkJc2xvZyhNSVNDX1BSSU5ULCBTTE9HX0VSUiwiIHp0ZV9tZ210X2xvZ2luIHVzZXJfbmFtZSBmYWlsIFxuIik7CisJCQl6dGVfcmVkdWN0X2xvZ2luX3RpbWVzKCk7CisJCQl6dGVfd3JpdGVfcmVzdWx0X3RvX3dlYih3cCwgTE9HSU5fVVNFUl9OQU1FX05PVF9FWFNJVCk7CisJCQlyZXR1cm47CisJCX0KKwkJc2xvZyhNSVNDX1BSSU5ULCBTTE9HX0RFQlVHLCIgenRlX21nbXRfbG9naW4gdWVybmFtZSBjb3JyZWN0IFxuIik7CisJfQorCXNsb2coTUlTQ19QUklOVCwgU0xPR19ERUJVRywiW2xvZ2luXSBsb2dpbjEgLT4genRlX3Bhc3N3b3JkX2VuY29kZTolcy5cbiIsIHBzdyk7IC8qbGludCAhZTI2Ki8KKwogCS8vZ2V0IHJlcXVlc3QgaXAgYWRkcgogCWlwX2FkZHJlc3MgPSB3ZWJzR2V0UmVxdWVzdElwYWRkcih3cCk7CiAjaWYgMCAvLyBrdyAzCQpkaWZmIC0tZ2l0IGEvbHlucS9SMzA1L2FwL2FwcC96dGVfd2VidWkvaTE4bi9NZXNzYWdlc19lbi5wcm9wZXJ0aWVzIGIvbHlucS9SMzA1L2FwL2FwcC96dGVfd2VidWkvaTE4bi9NZXNzYWdlc19lbi5wcm9wZXJ0aWVzCmluZGV4IDdmZDhhOWEuLmIwYWE3NzIgMTAwNzU1Ci0tLSBhL2x5bnEvUjMwNS9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfZW4ucHJvcGVydGllcworKysgYi9seW5xL1IzMDUvYXAvYXBwL3p0ZV93ZWJ1aS9pMThuL01lc3NhZ2VzX2VuLnByb3BlcnRpZXMKQEAgLTUzNiw2ICs1MzYsNyBAQAogc21zX3NhdmVfdGlwID0gU2F2aW5nLi4uDQogDQogI2xvZ2luDQordXNlcm5hbWUgPSBVc2VybmFtZQ0KIHBhc3N3b3JkID0gUGFzc3dvcmQNCiBwdWsgPSBQVUsNCiBsb2dpbiA9IExvZ2luDQpAQCAtNTQzLDggKzU0NCw4IEBACiBuZXdfcGluID0gTmV3IFBJTg0KIGNvbmZpcm1fcGluID0gQ29uZmlybSBOZXcgUElODQogcHVrX2xvY2tlZCA9IFlvdXIgU0lNIGNhcmQgaXMgbG9ja2VkIHBlcm1hbmVudGx5LiBQbGVhc2UgY29udGFjdCB5b3VyIG9wZXJhdG9yLg0KLXBhc3N3b3JkX2Vycm9yID0gUGFzc3dvcmQgaXMgaW5jb3JyZWN0IQ0KLXBhc3N3b3JkX2Vycm9yX2xlZnQgPSBQYXNzd29yZCBpcyBpbmNvcnJlY3QhPGJyLz5Zb3UgaGF2ZSB7MH0gYXR0ZW1wdChzKSBsZWZ0Lg0KK3Bhc3N3b3JkX2Vycm9yID0gVXNlcm5hbWUgb3IgcGFzc3dvcmQgaXMgaW5jb3JyZWN0IQ0KK3Bhc3N3b3JkX2Vycm9yX2xlZnQgPSBVc2VybmFtZSBvciBwYXNzd29yZCBpcyBpbmNvcnJlY3QhPGJyLz5Zb3UgaGF2ZSB7MH0gYXR0ZW1wdChzKSBsZWZ0Lg0KIHBhc3N3b3JkX2Vycm9yX2FjY291bnRfbG9jayA9IFlvdXIgYWNjb3VudCBpcyBsb2NrZWQuIDxici8+UmVtYWluaW5nIHRpbWU6DQogcGFzc3dvcmRfZXJyb3JfZml2ZV90aW1lcyA9IFlvdScndmUgaW5wdXQgNSB0aW1lcyBpbmNvcnJlY3RseS4gUmV0cnkgaW4gNSBtaW51dGVzLg0KIHBhc3N3b3JkX2Vycm9yX2FjY291bnRfbG9ja190aW1lID0gWW91ciBhY2NvdW50IGlzIGxvY2tlZC4gPGJyLz5QbGVhc2UgdHJ5IGxhdGVyLg0KZGlmZiAtLWdpdCBhL2x5bnEvUjMwNS9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfemgtY24ucHJvcGVydGllcyBiL2x5bnEvUjMwNS9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfemgtY24ucHJvcGVydGllcwppbmRleCBmYzljMzdhLi40MzM0YTZjIDEwMDc1NQotLS0gYS9seW5xL1IzMDUvYXAvYXBwL3p0ZV93ZWJ1aS9pMThuL01lc3NhZ2VzX3poLWNuLnByb3BlcnRpZXMKKysrIGIvbHlucS9SMzA1L2FwL2FwcC96dGVfd2VidWkvaTE4bi9NZXNzYWdlc196aC1jbi5wcm9wZXJ0aWVzCkBAIC01MzgsNiArNTM4LDcgQEAKIHNtc19zYXZlX3RpcCA9IOS/neWtmOiNieeov+S4rS4uLg0KIA0KICNsb2dpbg0KK3VzZXJuYW1lID0g55So5oi35ZCNDQogcGFzc3dvcmQgPSDlr4bnoIENCiBwdWsgPSBQVUsNCiBsb2dpbiA9IOeZu+W9lQ0KQEAgLTU0NSw4ICs1NDYsOCBAQAogbmV3X3BpbiA9IOaWsCBQSU4NCiBjb25maXJtX3BpbiA9IOehruiupOaWsCBQSU4NCiBwdWtfbG9ja2VkID0g5oKo55qEIFNJTeWNoeW3suW9u+W6lemUgeWumuOAguivt+iBlOezu+aCqOeahOi/kOiQpeWVhuOAgg0KLXBhc3N3b3JkX2Vycm9yID0g5a+G56CB5LiN5q2j56Gu77yBDQotcGFzc3dvcmRfZXJyb3JfbGVmdCA9IOWvhueggeS4jeato+ehru+8gTxici8+5oKo55qE5Ymp5L2Z5bCd6K+V5qyh5pWw77yaezB944CCDQorcGFzc3dvcmRfZXJyb3IgPSDnlKjmiLflkI3miJblr4bnoIHkuI3mraPnoa7vvIENCitwYXNzd29yZF9lcnJvcl9sZWZ0ID0g55So5oi35ZCN5oiW5a+G56CB5LiN5q2j56Gu77yBPGJyLz7mgqjnmoTliankvZnlsJ3or5XmrKHmlbDvvJp7MH3jgIINCiBwYXNzd29yZF9lcnJvcl9hY2NvdW50X2xvY2sgPSDkvaDnmoTotKbmiLfooqvplIHlrprjgII8YnIvPuWJqeS9meaXtumXtO+8mg0KIHBhc3N3b3JkX2Vycm9yX2ZpdmVfdGltZXMgPSDmgqjlt7Lnu4/ovpPplJk15qyh44CC6K+3NeWIhumSn+WQjuWGjeivleOAgg0KIHBhc3N3b3JkX2Vycm9yX2FjY291bnRfbG9ja190aW1lID0g5oKo55qE6LSm5oi35bey6KKr6ZSB5a6a44CCPGJyLz7or7fnqI3lkI7lho3or5XjgIINCmRpZmYgLS1naXQgYS9seW5xL1IzMDUvYXAvYXBwL3p0ZV93ZWJ1aS9qcy9jb20uanMgYi9seW5xL1IzMDUvYXAvYXBwL3p0ZV93ZWJ1aS9qcy9jb20uanMKaW5kZXggY2M5M2I2NS4uNmYzZjBhMSAxMDA3NTUKLS0tIGEvbHlucS9SMzA1L2FwL2FwcC96dGVfd2VidWkvanMvY29tLmpzCisrKyBiL2x5bnEvUjMwNS9hcC9hcHAvenRlX3dlYnVpL2pzL2NvbS5qcwpAQCAtOTEsNyArOTEsOCBAQAogICAgICAgICBmdW5jdGlvbiBwcmVwYXJlKHZhbHVlcywgaXNQb3N0KSB7DQogICAgICAgICAgICAgdmFyIG9iaiA9IHsNCiAgICAgICAgICAgICAgICAgZ29mb3JtSWQ6ICJMT0dJTiIsDQotICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBjb25maWcuUEFTU1dPUkRfRU5DT0RFID8gQmFzZTY0LmVuY29kZSh2YWx1ZXMucGFzc3dvcmQpIDogdmFsdWVzLnBhc3N3b3JkDQorICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBjb25maWcuUEFTU1dPUkRfRU5DT0RFID8gQmFzZTY0LmVuY29kZSh2YWx1ZXMucGFzc3dvcmQpIDogdmFsdWVzLnBhc3N3b3JkLA0KKyAgICAgICAgICAgICAgICB1c2VybmFtZTogY29uZmlnLlBBU1NXT1JEX0VOQ09ERSA/IEJhc2U2NC5lbmNvZGUodmFsdWVzLnVzZXJuYW1lKSA6IHZhbHVlcy51c2VybmFtZQ0KICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgcmV0dXJuIG9iajsNCiAgICAgICAgIH0NCkBAIC04MTY1LDYgKzgxNjYsNyBAQAogICAgICAgICAgICAgdGFyZ2V0LmxvZ2luU2VjdXJpdHlTdXBwb3J0ID0ga28ub2JzZXJ2YWJsZShjb25maWcuTE9HSU5fU0VDVVJJVFlfU1VQUE9SVCk7DQogICAgICAgICAgICAgdGFyZ2V0Lm5ld1BJTiAgICAgICAgICAgICAgID0ga28ub2JzZXJ2YWJsZSgpOwkJCQ0KICAgICAgICAgICAgIHRhcmdldC5wYXNzd29yZCAgICAgICAgICAgICA9IGtvLm9ic2VydmFibGUoKTsNCisgICAgICAgICAgICB0YXJnZXQudXNlcm5hbWUgICAgICAgICAgICAgPSBrby5vYnNlcnZhYmxlKCk7DQogICAgICAgICAgICAgdGFyZ2V0LlBJTiAgICAgICAgICAgICAgICAgID0ga28ub2JzZXJ2YWJsZSgpOw0KICAgICAgICAgICAgIHRhcmdldC5waW5OdW1iZXIgICAgICAgICAgICA9IGtvLm9ic2VydmFibGUoZGF0YS5waW5udW1iZXIpOwkJCQ0KICAgICAgICAgICAgIHRhcmdldC5QVUsgICAgICAgICAgICAgICAgICA9IGtvLm9ic2VydmFibGUoKTsNCkBAIC04MjI0LDYgKzgyMjYsNyBAQAogICAgICAgICAgICAgICAgIHZhciBjaXBoZXJ0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgIGlmIChjb25maWcuUEFTU1dPUkRfRU5DT0RFKSB7DQogCQkgICAgY2lwaGVydGV4dCA9IHRhcmdldC5wYXNzd29yZCgpOw0KKyAgICAgICAgICAgIHZhciB1c2VybmFtZSA9IHRhcmdldC51c2VybmFtZSgpOw0KIAkJfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgIHZhciBrcGFyYW0gPSBzZXJ2aWNlLmdldERldmljZUluZm9Mb3coKTsNCiAgICAgICAgICAgICAgICAgICAgIHZhciB0a2V5ID0gQ3J5cHRvSlMuZW5jLkxhdGluMS5wYXJzZShrcGFyYW0uc2tleSk7DQpAQCAtODIzNSw3ICs4MjM4LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgIH0pLnRvU3RyaW5nKCk7DQogCQl9DQogICAgICAgICAgICAgICAgIHNlcnZpY2UubG9naW4oew0KLSAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6Y2lwaGVydGV4dA0KKyAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6Y2lwaGVydGV4dCwNCisgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZQ0KICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAoaW5mbykgew0KICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgdGltZXIgPSBsb2dpblN0YXR1c0NoZWNraW5nVGltZXIoKTsNCkBAIC04MjUyLDYgKzgyNTYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgbG9nb3V0LmluaXQoKTsNCiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnBhc3N3b3JkKCIiKTsNCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQudXNlcm5hbWUoIiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvbmZpZy5MT0dJTl9TRUNVUklUWV9TVVBQT1JUKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmNoZWNrTG9naW5EYXRhKGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmxvZ2luQ291bnQoKSA9PSBjb25maWcuTUFYX0xPR0lOX0NPVU5UKSB7DQpAQCAtODMzNiw5ICs4MzQxLDEyIEBACiAgICAgICAgICAgICBmdW5jdGlvbiBzZXRGb2N1cygpew0KICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgIHZhciB0eHRBZG1pbiA9ICQoJyN0eHRBZG1pbjp2aXNpYmxlJyk7DQorICAgICAgICAgICAgICAgICAgICB2YXIgdHh0VXNlciA9ICQoJyN0eHRVc2VyOnZpc2libGUnKTsNCiAgICAgICAgICAgICAgICAgICAgIHZhciB0eHRQSU4gPSAkKCcjdHh0UElOOnZpc2libGUnKTsNCiAgICAgICAgICAgICAgICAgICAgIHZhciB0eHRQVUsgPSAkKCcjdHh0UFVLOnZpc2libGUnKTsNCi0gICAgICAgICAgICAgICAgICAgIGlmICh0eHRBZG1pbi5sZW5ndGggPiAwKSB7DQorICAgICAgICAgICAgICAgICAgICBpZih0eHRVc2VyLmxlbmd0aCA+IDApIHsNCisgICAgICAgICAgICAgICAgICAgICAgICB0eHRVc2VyLmZvY3VzKCk7DQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR4dEFkbWluLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICB0eHRBZG1pbi5mb2N1cygpOw0KICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eHRQSU4ubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgIHR4dFBJTi5mb2N1cygpOw0KZGlmZiAtLWdpdCBhL2x5bnEvUjMwNS9hcC9hcHAvenRlX3dlYnVpL3N1YnBnL2VudHJ5Lmh0bWwgYi9seW5xL1IzMDUvYXAvYXBwL3p0ZV93ZWJ1aS9zdWJwZy9lbnRyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUzZGY1YzQKLS0tIC9kZXYvbnVsbAorKysgYi9seW5xL1IzMDUvYXAvYXBwL3p0ZV93ZWJ1aS9zdWJwZy9lbnRyeS5odG1sCkBAIC0wLDAgKzEsMTEwIEBACis8ZGl2IGlkPSJsb2dpbkZvcm1zIj4NCisgICAgPGRpdiBjbGFzcz0icm93IG1hcmdpbi10b3AtMTYwIHBhZGRpbmctYm90dG9tLTUwIj4NCisgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy0zIj48L2Rpdj4NCisgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02IiBpZD0ibG9naW4tZm9ybS1jb250YWluZXIiPg0KKwk8ZGl2IGlkPSJsb2dpbkNvbnRhaW5lciIgY2xhc3M9ImxvZ2luX2ZyYW1lIGZvcm0taG9yaXpvbnRhbCBtYXJnaW4tdG9wLTUwIG1hcmdpbi1ib3R0b20tNTAiIGRhdGEtYmluZD0idmlzaWJsZTpwYWdlU3RhdGUoKSE9NCI+DQorCQk8Zm9ybSBpZD0iZnJtTG9naW4iIGRhdGEtYmluZD0idmlzaWJsZTpwYWdlU3RhdGUoKT09MCI+DQorICAgICAgICAgICAgPGRpdiBkYXRhLWJpbmQ9InZpc2libGU6IGxvZ2luU2VjdXJpdHlTdXBwb3J0KCkgJiYgYWNjb3VudExvY2tlZCgpIiBjbGFzcz0icm93IGZvcm0tZ3JvdXAgY29sb3JSZWQiPg0KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtMTIiPg0KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gZGF0YS10cmFucz0icGFzc3dvcmRfZXJyb3JfYWNjb3VudF9sb2NrIj48L3NwYW4+IDxzcGFuIGRhdGEtYmluZD0idGV4dDogbGVmdFVubG9ja1RpbWUiPjwvc3Bhbj4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZTsiIGNsYXNzPSJyb3cgZm9ybS1ncm91cCI+DQorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy0xMiI+DQorICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZGF0YS10cmFucz0icGFzc3dvcmQiIGZvcj0idHh0QWRtaW4iPjwvbGFiZWw+DQorICAgICAgICAgICAgICAgIDwvZGl2Pg0KKwkJCTwvZGl2Pg0KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyBmb3JtLWdyb3VwIj4NCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTgiPg0KKyAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJ0eHRVc2VyIiBhdXRvY29tcGxldGU9Im9mZiIgZGF0YS1wbGFjZWhvbGRlcj0idXNlcm5hbWUiIGRhdGEtYmluZD0idmFsdWU6dXNlcm5hbWUsIHZhbHVlVXBkYXRlOiAna2V5cHJlc3MnIiAgbWF4bGVuZ3RoPSIzMiIgbmFtZT0idHh0VXNlciIgc3R5bGU9ImJvcmRlcjoycHggc29saWQgcmdiKDIyMSwgMjIxLCAyMjEpOyIgY2xhc3M9InJlcXVpcmVkIGZvcm0tY29udHJvbCIvPg0KKyAgICAgICAgICAgICAgICA8L2Rpdj4NCisgICAgICAgICAgICA8L2Rpdj4NCisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3cgZm9ybS1ncm91cCI+DQorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy04Ij4NCisgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0idHh0QWRtaW4iIGF1dG9jb21wbGV0ZT0ib2ZmIiBkYXRhLXBsYWNlaG9sZGVyPSJwYXNzd29yZCIgZGF0YS1iaW5kPSJ2YWx1ZTpwYXNzd29yZCwgdmFsdWVVcGRhdGU6ICdrZXlwcmVzcyciICBtYXhsZW5ndGg9IjMyIiBuYW1lPSJ0eHRBZG1pbiIgc3R5bGU9ImJvcmRlcjoycHggc29saWQgcmdiKDIyMSwgMjIxLCAyMjEpOyIgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJyZXF1aXJlZCBmb3JtLWNvbnRyb2wiLz4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy00Ij4NCisgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iYnRuTG9naW4iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIiBkYXRhLXRyYW5zPSJsb2dpbiIgdHlwZT0ic3VibWl0IiBmb3JtbWV0aG9kPSJwb3N0IiAvPg0KKyAgICAgICAgICAgICAgICA8L2Rpdj4NCisgICAgICAgICAgICA8L2Rpdj4NCisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3cgZm9ybS1ncm91cCIgZGF0YS1iaW5kPSJ2aXNpYmxlOiBzaG93RW50cmFuY2UiPg0KKyAgICAgICAgICAgICAgICA8ZGl2IGRhdGEtYmluZD0idmlzaWJsZTogIXNoYXJlUGF0aEludmFsaWQoKSIgY2xhc3M9ImNvbC14cy0xMiI+DQorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiI+PGltZyBzcmM9InBpYy9waWNfcmVkLnBuZyI+PC9zcGFuPg0KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNjYW4iPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtdHJhbnM9ImJyb3dzZV9zZGNhcmQiIGhyZWY9IiNodHRwc2hhcmVfZ3Vlc3QiPjwvYT4NCisgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICAgICAgICAgIDxkaXYgZGF0YS10cmFucz0ic2Rfc2hhcmVfcGF0aF9pbnZhbGlkIiBkYXRhLWJpbmQ9InZpc2libGU6IHNoYXJlUGF0aEludmFsaWQoKSIgY2xhc3M9ImNvbC14cy0xMiBjb2xvclJlZCI+PC9kaXY+DQorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4NCisgICAgICAgICAgICA8L2Rpdj4NCisJCTwvZm9ybT4NCisJCTxmb3JtIGlkPSJmcm1QSU4iIGRhdGEtYmluZD0idmlzaWJsZTpwYWdlU3RhdGUoKT09MSI+DQorICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IGZvcm0tZ3JvdXAiPg0KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9tcHQgY29sLXhzLTYiPg0KKyAgICAgICAgICAgICAgICAgICAgPHAgZGF0YS10cmFucz0iZW50ZXJfcGluIj48L3A+DQorICAgICAgICAgICAgICAgICAgICA8cCBkYXRhLWJpbmQ9InZpc2libGU6cGluTnVtYmVyKCk+MSIgY2xhc3M9ImltcG9ydGFudC1wcm9tcHQgbWFyZ2luYm90dG9tMTUiPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGRhdGEtdHJhbnM9ImF0dGVtcHRzX2xlZnQiPjwvc3Bhbj4gPHNwYW4gZGF0YS1iaW5kPSd0ZXh0OnBpbk51bWJlcic+PC9zcGFuPg0KKyAgICAgICAgICAgICAgICAgICAgPC9wPg0KKyAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImltcG9ydGFudC1wcm9tcHQiIGRhdGEtYmluZD0idmlzaWJsZTpwaW5OdW1iZXIoKT09MSIgZGF0YS10cmFucz0ibGFzdF9lbnRlcl9waW4iPjwvcD4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IGZvcm0tZ3JvdXAiPg0KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiI+DQorICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZGF0YS10cmFucz0ncGluJyBmb3I9J3R4dFBJTic+PC9sYWJlbD4NCisgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0ndHh0UElOJyBuYW1lPSJ0eHRQSU4iIGF1dG9jb21wbGV0ZT0ib2ZmIiBkYXRhLWJpbmQ9InZhbHVlOlBJTiwgdmFsdWVVcGRhdGU6ICdrZXlwcmVzcyciIG1heGxlbmd0aD0nOCcgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJyZXF1aXJlZCBmb3JtLWNvbnRyb2wiIC8+DQorICAgICAgICAgICAgICAgIDwvZGl2Pg0KKyAgICAgICAgICAgIDwvZGl2Pg0KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyBmb3JtLWdyb3VwIj4NCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYiPg0KKyAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJidG5QaW5BcHBseSIgZGF0YS10cmFucz0ibmV4dF9zdGVwIiB0eXBlPSJzdWJtaXQiIGZvcm1tZXRob2Q9InBvc3QiIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIC8+DQorICAgICAgICAgICAgICAgIDwvZGl2Pg0KKyAgICAgICAgICAgIDwvZGl2Pg0KKwkJPC9mb3JtPg0KKwkJPGZvcm0gaWQ9ImZybVBVSyIgZGF0YS1iaW5kPSJ2aXNpYmxlOnBhZ2VTdGF0ZSgpPT0yIj4NCisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3cgZm9ybS1ncm91cCI+DQorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb21wdCBjb2wteHMtNiI+DQorICAgICAgICAgICAgICAgICAgICA8cCBkYXRhLXRyYW5zPSJlbnRlcl9wdWsiPjwvcD4NCisgICAgICAgICAgICAgICAgICAgIDxwIGRhdGEtYmluZD0idmlzaWJsZTpwdWtOdW1iZXIoKT4xIiBjbGFzcz0iaW1wb3J0YW50LXByb21wdCI+DQorICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZGF0YS10cmFucz0iYXR0ZW1wdHNfbGVmdCI+PC9zcGFuPiA8c3BhbiBkYXRhLWJpbmQ9J3RleHQ6cHVrTnVtYmVyJz48L3NwYW4+DQorICAgICAgICAgICAgICAgICAgICA8L3A+DQorICAgICAgICAgICAgICAgICAgICA8cCBkYXRhLWJpbmQ9InZpc2libGU6cHVrTnVtYmVyKCk9PTEiIGRhdGEtdHJhbnM9Imxhc3RfZW50ZXJfcHVrIiBjbGFzcz0iaW1wb3J0YW50LXByb21wdCI+PC9wPg0KKyAgICAgICAgICAgICAgICA8L2Rpdj4NCisgICAgICAgICAgICA8L2Rpdj4NCisJCQk8ZGl2IGNsYXNzPSJyb3cgZm9ybS1ncm91cCI+DQorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02Ij4NCisgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBkYXRhLXRyYW5zPSdwdWsnIGZvcj0ndHh0UFVLJz48L2xhYmVsPg0KKwkJCQkJPGlucHV0IGlkPSd0eHRQVUsnIG5hbWU9InR4dFBVSyIgYXV0b2NvbXBsZXRlPSJvZmYiIGRhdGEtYmluZD0idmFsdWU6UFVLLCB2YWx1ZVVwZGF0ZTogJ2tleXByZXNzJyIgbWF4bGVuZ3RoPSc4JyB0eXBlPSJwYXNzd29yZCIgY2xhc3M9InJlcXVpcmVkIGZvcm0tY29udHJvbCIgLz4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorCQkJPC9kaXY+DQorCQkJPGRpdiBjbGFzcz0icm93IGZvcm0tZ3JvdXAiPg0KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiI+DQorICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZGF0YS10cmFucz0nbmV3X3BpbicgZm9yPSd0eHROZXdQSU4nPjwvbGFiZWw+DQorCQkJCQk8aW5wdXQgaWQ9J3R4dE5ld1BJTicgbmFtZT0idHh0TmV3UElOIiBhdXRvY29tcGxldGU9Im9mZiIgZGF0YS1iaW5kPSJ2YWx1ZTpuZXdQSU4sIHZhbHVlVXBkYXRlOiAna2V5cHJlc3MnIiBtYXhsZW5ndGg9JzgnIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0icmVxdWlyZWQgZm9ybS1jb250cm9sIiAvPg0KKyAgICAgICAgICAgICAgICA8L2Rpdj4NCisJCQk8L2Rpdj4NCisJCQk8ZGl2IGNsYXNzPSJyb3cgZm9ybS1ncm91cCI+DQorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02Ij4NCisgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBkYXRhLXRyYW5zPSdjb25maXJtX3BpbicgZm9yPSd0eHRDb25maXJtUElOJz48L2xhYmVsPg0KKwkJCQkJPGlucHV0IGlkPSd0eHRDb25maXJtUElOJyBuYW1lPSJ0eHRDb25maXJtUElOIiBhdXRvY29tcGxldGU9Im9mZiINCisJCQkJCQlkYXRhLWJpbmQ9InZhbHVlOmNvbmZpcm1QSU4sIHZhbHVlVXBkYXRlOiAna2V5cHJlc3MnIiBtYXhsZW5ndGg9JzgnIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0icmVxdWlyZWQgZm9ybS1jb250cm9sIg0KKwkJCQkJLz4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorCQkJPC9kaXY+DQorCQkJPGRpdiBjbGFzcz0icm93IGZvcm0tZ3JvdXAiPg0KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiI+DQorCQkJCQk8aW5wdXQgaWQ9ImJ0blBVS0FwcGx5IiBkYXRhLXRyYW5zPSJuZXh0X3N0ZXAiIHR5cGU9InN1Ym1pdCIgZm9ybW1ldGhvZD0icG9zdCIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgLz4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorCQkJPC9kaXY+DQorCQk8L2Zvcm0+DQorICAgICAgICA8ZGl2IGRhdGEtYmluZD0idmlzaWJsZTpwYWdlU3RhdGUoKT09NSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPg0KKyAgICAgICAgICAgIDxpbWcgaWQ9ImxvYWRpbmdJbWciIHNyYz0icGljL3Jlc19sb2FkaW5nLmdpZiIvPg0KKyAgICAgICAgPC9kaXY+DQorCQk8ZGl2IGlkPSJwdWtfbG9ja2VkIiBkYXRhLXRyYW5zPSJwdWtfbG9ja2VkIiBkYXRhLWJpbmQ9InZpc2libGU6cGFnZVN0YXRlKCk9PTMiIGNsYXNzPSJpbXBvcnRhbnQtcHJvbXB0IHByb21wdCI+PC9kaXY+DQorCQk8ZGl2IGNsYXNzPSJsb2dpbl9ib3R0b20iPjwvZGl2Pg0KKwk8L2Rpdj4NCisNCisNCisgICAgICAgIDwvZGl2Pg0KKyAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTMiPjwvZGl2Pg0KKyAgICA8L2Rpdj4NCis8L2Rpdj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9seW5xL1IzMDZCUi9hcC9hcHAvY2NhcHAvY2NfcHJvYy5jIGIvbHlucS9SMzA2QlIvYXAvYXBwL2NjYXBwL2NjX3Byb2MuYwppbmRleCA3ZDVhOTEwLi4xYjJjYzViIDEwMDc1NQotLS0gYS9seW5xL1IzMDZCUi9hcC9hcHAvY2NhcHAvY2NfcHJvYy5jCisrKyBiL2x5bnEvUjMwNkJSL2FwL2FwcC9jY2FwcC9jY19wcm9jLmMKQEAgLTIxODgsNiArMjE4OCw5IEBACiAgICAgICAgICAgICBtc2dCdWYudXNNc2dDbWQgPSBaQ0NfUkVMRUFTRV9FOw0KICAgICAgICAgICAgIG1zZ0J1Zi5zcmNfaWQgPSBNT0RVTEVfSURfU0xJQzsNCiAgICAgICAgICAgICB6Q2NfU2VuZE1zZ1RvU3ViKCZtc2dCdWYpOw0KKwkJCQ0KKwkJCS8qZml4IHRoZSBpc3N1ZSBvZiBwcm9iYWJpbGl0eSBjYWxsYmFjayBmYWlsdXJlLCBjYWxsIGhhcyBub3QgYmVlbiBlc3RhYmxpc2hlZCB5ZXQsIHdpdGggYSBwcm9iYWJpbGl0eSBvZiBoYW5naW5nIHVwKi8NCisJCQlzbGVlcCgxKTsNCiAgICAgICAgICAgICANCiAgICAgICAgICAgICB6Q2NfU2VuZEF0SGFuZ3VwUmVxKCk7DQogICAgICAgICAgICAgenRlX2xvZ19hcHBlbmQoX19GSUxFX18sIF9fTElORV9fLCAienRlX2NjYXBwLmxvZyIsIiVzICB6Q2NfTVJpbmdpbmdTdGF0ZTogWkNDX1JFTEVBU0VfRSA8LS0tXG4iLF9fRlVOQ1RJT05fXyk7DQpkaWZmIC0tZ2l0IGEvbHlucS9SMzA2QlIvYXAvYXBwL3p0ZV93ZWJ1aS9pMThuL01lc3NhZ2VzX2VuLnByb3BlcnRpZXMgYi9seW5xL1IzMDZCUi9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfZW4ucHJvcGVydGllcwppbmRleCAwNmEyMThjLi45MTdhOTQ3IDEwMDc1NQotLS0gYS9seW5xL1IzMDZCUi9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfZW4ucHJvcGVydGllcworKysgYi9seW5xL1IzMDZCUi9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfZW4ucHJvcGVydGllcwpAQCAtMTgyMSw2ICsxODIxLDcgQEAKIGNhbGxfYmFja19leHBsYWluID0gSWYgdGhlIG51bWJlciBpcyBpbiB0aGUgY2FsbGJhY2sgbGlzdCwgcGlja2luZyB1cCB0aGUgcGhvbmUgd2lsbCBhdXRvbWF0aWNhbGx5IGhhbmcgdXAgdGhlIGNhbGwgYW5kIHRoZW4gY2FsbCBiYWNrLg0KIGNhbGxpbmdfbGltaXRfZXhwbGFpbiA9IExpbWl0IE91dGdvaW5nIENhbGxzIER1cmF0aW9uOiBMaW1pdCB0aGUgZHVyYXRpb24gb2Ygb3V0Z29pbmcgY2FsbHMsIGlmIHRoZSBzZXQgdGltZSBpcyBleGNlZWRlZCwgdGhlIHBob25lIHdpbGwgaGFuZyB1cC4NCiBjYWxsZWRfbGltaXRfZXhwbGFpbiA9IExpbWl0IFJlY2VpdmVkIENhbGxzIER1cmF0aW9uOiBMaW1pdCB0aGUgZHVyYXRpb24gb2YgcmV2ZWl2ZWQgY2FsbHMsIGlmIHRoZSBzZXQgdGltZSBpcyBleGNlZWRlZCwgdGhlIHBob25lIHdpbGwgaGFuZyB1cC4NCitjYWxsX2ZvcndhcmRfZXhwbGFpbiA9IFRvIHVzZSB0aGUgY2FsbCBmb3J3YXJkaW5nLCB5b3UgbmVlZCB0byBjb250YWN0IHRoZSBvcGVyYXRvciB0byBhY3RpdmF0ZSBpdC4gVG8gY2FuY2VsIHRoZSBjYWxsIGZvcndhcmRpbmcsIHlvdSBuZWVkIHRvIGNsZWFyIHRoZSBudW1iZXIgYW5kIGFwcGx5Lg0KIGNhbGxfZm9yd2FyZF9hbGxfZXhwbGFpbiA9IEZvcndhcmQgYWxsIGNhbGxzIHRvIHBob25lIG51bWJlcjogRm9yd2FyZCBhbGwgY2FsbHMgdG8gdGhlIHNwZWNpZmllZCBwaG9uZSBudW1iZXIuDQogY2FsbF9mb3J3YXJkX25vYW5zd2VyX2V4cGxhaW4gPSBGb3J3YXJkIGlmIG5vdCBhbnN3ZXJlZCB0byBwaG9uZSBudW1iZXI6IEZvcndhcmQgY2FsbHMgdG8gdGhlIHNwZWNpZmllZCBwaG9uZSBudW1iZXIgaWYgbm90IGFuc3dlcmVkLg0KIGNhbGxfZm9yd2FyZF9ub3JlYWNoX2V4cGxhaW4gPSBGb3J3YXJkIGlmIG91dCBvZiByZWFjaCB0byBwaG9uZSBudW1iZXI6IEZvcndhcmQgY2FsbHMgdG8gdGhlIHNwZWNpZmllZCBwaG9uZSBudW1iZXIgaWYgb3V0IG9mIHJlYWNoLg0KZGlmZiAtLWdpdCBhL2x5bnEvUjMwNkJSL2FwL2FwcC96dGVfd2VidWkvaTE4bi9NZXNzYWdlc196aC1jbi5wcm9wZXJ0aWVzIGIvbHlucS9SMzA2QlIvYXAvYXBwL3p0ZV93ZWJ1aS9pMThuL01lc3NhZ2VzX3poLWNuLnByb3BlcnRpZXMKaW5kZXggZTVjN2ZiZS4uMjEzMzJmMiAxMDA3NTUKLS0tIGEvbHlucS9SMzA2QlIvYXAvYXBwL3p0ZV93ZWJ1aS9pMThuL01lc3NhZ2VzX3poLWNuLnByb3BlcnRpZXMKKysrIGIvbHlucS9SMzA2QlIvYXAvYXBwL3p0ZV93ZWJ1aS9pMThuL01lc3NhZ2VzX3poLWNuLnByb3BlcnRpZXMKQEAgLTE4MjUsNiArMTgyNSw3IEBACiBjYWxsX2JhY2tfZXhwbGFpbiA9IOWmguaenOadpeeUteWPt+eggeWcqOWbnuaLqOWPt+eggeWIl+ihqOS4re+8jOaLv+i1t+ivneacuuWQjuS8muiHquWKqOaMguaWre+8jOW5tuiHquWKqOWbnuaLqOivpeWPt+eggeOAgg0KIGNhbGxpbmdfbGltaXRfZXhwbGFpbiA9IOS4u+WPq+aXtumVv+mZkOWItu+8mumZkOWItuS4u+WPq+mAmuivneaXtumVv++8jOi2hei/h+mZkOWItuaXtu+8jOWwhuiHquWKqOaMguaWreOAgg0KIGNhbGxlZF9saW1pdF9leHBsYWluID0g6KKr5Y+r5pe26ZW/6ZmQ5Yi277ya6ZmQ5Yi26KKr5Y+r6YCa6K+d5pe26ZW/77yM6LaF6L+H6ZmQ5Yi25pe277yM5bCG6Ieq5Yqo5oyC5pat44CCDQorY2FsbF9mb3J3YXJkX2V4cGxhaW4gPSDopoHkvb/nlKjlkbzlj6vovaznp7vlip/og73vvIzpnIDopoHogZTns7vov5DokKXllYblvIDpgJrmlrnlj6/orr7nva7vvIzlj5bmtojlkbzlj6vovaznp7vpnIDopoHlsIblj7fnoIHmuIXnqbrlkI7lupTnlKjjgIINCiBjYWxsX2ZvcndhcmRfYWxsX2V4cGxhaW4gPSDovaznp7vmiYDmnInlj7fnoIHvvJrmiYDmnInlkbzlj6vpg73lsIbovaznp7vliLDmjIflrprnmoTlj7fnoIHjgIINCiBjYWxsX2ZvcndhcmRfbm9hbnN3ZXJfZXhwbGFpbiA9IOi9rOenu+aXoOW6lOetlO+8muWRvOWPq+aXoOazleW6lOetlOaXtui9rOenu+WIsOaMh+WumueahOWPt+eggeOAgg0KIGNhbGxfZm9yd2FyZF9ub3JlYWNoX2V4cGxhaW4gPSDovaznp7vkuI3lj6/ovr7vvJrlkbzlj6vkuI3lj6/ovr7ml7bovaznp7vliLDmjIflrprnmoTlj7fnoIHjgIINCmRpZmYgLS1naXQgYS9seW5xL1IzMDZCUi9hcC9hcHAvenRlX3dlYnVpL3N1YnBnL3ZvaWNlX2NhbGxfZm9yd2FyZGluZy5odG1sIGIvbHlucS9SMzA2QlIvYXAvYXBwL3p0ZV93ZWJ1aS9zdWJwZy92b2ljZV9jYWxsX2ZvcndhcmRpbmcuaHRtbAppbmRleCA2OTBmOTk3Li4zOTRhYzI1IDEwMDc1NQotLS0gYS9seW5xL1IzMDZCUi9hcC9hcHAvenRlX3dlYnVpL3N1YnBnL3ZvaWNlX2NhbGxfZm9yd2FyZGluZy5odG1sCisrKyBiL2x5bnEvUjMwNkJSL2FwL2FwcC96dGVfd2VidWkvc3VicGcvdm9pY2VfY2FsbF9mb3J3YXJkaW5nLmh0bWwKQEAgLTgzLDYgKzgzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ub3RlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJub3Rlcy10aXRsZSI+Jm5ic3A7PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJub3Rlcy1jb250ZW50Ij4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdHJhbnM9ImNhbGxfZm9yd2FyZF9leHBsYWluIj48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS10cmFucz0iY2FsbF9mb3J3YXJkX2FsbF9leHBsYWluIj48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS10cmFucz0iY2FsbF9mb3J3YXJkX25vYW5zd2VyX2V4cGxhaW4iPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXRyYW5zPSJjYWxsX2ZvcndhcmRfbm9yZWFjaF9leHBsYWluIj48L2xpPg0KZGlmZiAtLWdpdCBhL2x5bnEvUzMwMEFJL2FsbGJpbnMvengyOTc1MjB2My9wcmpfY3BlL252XzIzMGEvUmVmX252cndfMHgyNkMwMC5iaW4gYi9seW5xL1MzMDBBSS9hbGxiaW5zL3p4Mjk3NTIwdjMvcHJqX2NwZS9udl8yMzBhL1JlZl9udnJ3XzB4MjZDMDAuYmluCmluZGV4IDljNzMyOWUuLmZlMmI5ODYgMTAwNjQ0Ci0tLSBhL2x5bnEvUzMwMEFJL2FsbGJpbnMvengyOTc1MjB2My9wcmpfY3BlL252XzIzMGEvUmVmX252cndfMHgyNkMwMC5iaW4KKysrIGIvbHlucS9TMzAwQUkvYWxsYmlucy96eDI5NzUyMHYzL3Byal9jcGUvbnZfMjMwYS9SZWZfbnZyd18weDI2QzAwLmJpbgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9seW5xL1MzMDBBSS9hcC9hcHAvY2NhcHAvY2NfcHJvYy5jIGIvbHlucS9TMzAwQUkvYXAvYXBwL2NjYXBwL2NjX3Byb2MuYwppbmRleCA3ZDVhOTEwLi4xYjJjYzViIDEwMDc1NQotLS0gYS9seW5xL1MzMDBBSS9hcC9hcHAvY2NhcHAvY2NfcHJvYy5jCisrKyBiL2x5bnEvUzMwMEFJL2FwL2FwcC9jY2FwcC9jY19wcm9jLmMKQEAgLTIxODgsNiArMjE4OCw5IEBACiAgICAgICAgICAgICBtc2dCdWYudXNNc2dDbWQgPSBaQ0NfUkVMRUFTRV9FOw0KICAgICAgICAgICAgIG1zZ0J1Zi5zcmNfaWQgPSBNT0RVTEVfSURfU0xJQzsNCiAgICAgICAgICAgICB6Q2NfU2VuZE1zZ1RvU3ViKCZtc2dCdWYpOw0KKwkJCQ0KKwkJCS8qZml4IHRoZSBpc3N1ZSBvZiBwcm9iYWJpbGl0eSBjYWxsYmFjayBmYWlsdXJlLCBjYWxsIGhhcyBub3QgYmVlbiBlc3RhYmxpc2hlZCB5ZXQsIHdpdGggYSBwcm9iYWJpbGl0eSBvZiBoYW5naW5nIHVwKi8NCisJCQlzbGVlcCgxKTsNCiAgICAgICAgICAgICANCiAgICAgICAgICAgICB6Q2NfU2VuZEF0SGFuZ3VwUmVxKCk7DQogICAgICAgICAgICAgenRlX2xvZ19hcHBlbmQoX19GSUxFX18sIF9fTElORV9fLCAienRlX2NjYXBwLmxvZyIsIiVzICB6Q2NfTVJpbmdpbmdTdGF0ZTogWkNDX1JFTEVBU0VfRSA8LS0tXG4iLF9fRlVOQ1RJT05fXyk7DQpkaWZmIC0tZ2l0IGEvbHlucS9TMzAwQUkvYXAvYXBwL2dvYWhlYWQvaW50ZXJmYWNlNS4wL3p0ZV93ZWJfaW50ZXJmYWNlLmggYi9seW5xL1MzMDBBSS9hcC9hcHAvZ29haGVhZC9pbnRlcmZhY2U1LjAvenRlX3dlYl9pbnRlcmZhY2UuaAppbmRleCBmMmQ1M2I3Li4zZTVhYmE4IDEwMDc1NQotLS0gYS9seW5xL1MzMDBBSS9hcC9hcHAvZ29haGVhZC9pbnRlcmZhY2U1LjAvenRlX3dlYl9pbnRlcmZhY2UuaAorKysgYi9seW5xL1MzMDBBSS9hcC9hcHAvZ29haGVhZC9pbnRlcmZhY2U1LjAvenRlX3dlYl9pbnRlcmZhY2UuaApAQCAtMjUwLDYgKzI1MCw3IEBACiAjZGVmaW5lIEdPRk9STV9NR01UX1NOVFAgIlNOVFAiCiAjZGVmaW5lIEdPRk9STV9NR01UX1NZU0xPRyAgIlNZU0xPRyIKICNkZWZpbmUgR09GT1JNX01HTVRfU0NIRURVTEVfU0VUVElORyAiU0NIRURVTEVfU0VUVElORyIKKyNkZWZpbmUgR09GT1JNX01HTVRfQkFUVEVSWV9WT0lDRV9TRVRUSU5HICJCQVRURVJZX1ZPSUNFX1NFVFRJTkciCiAvLyNkZWZpbmUgR09GT1JNX0hUVFBfUkVESVJFQ1QgIkhUVFBfUkVESVJFQ1QiCiAvKm1hbmFnZW1lbnQgZW5kKi8KIApkaWZmIC0tZ2l0IGEvbHlucS9TMzAwQUkvYXAvYXBwL2dvYWhlYWQvaW50ZXJmYWNlNS4wL3p0ZV93ZWJfbWdtdC5jIGIvbHlucS9TMzAwQUkvYXAvYXBwL2dvYWhlYWQvaW50ZXJmYWNlNS4wL3p0ZV93ZWJfbWdtdC5jCmluZGV4IGNiYjUxNDMuLjc2OWU5YmMgMTAwNzU1Ci0tLSBhL2x5bnEvUzMwMEFJL2FwL2FwcC9nb2FoZWFkL2ludGVyZmFjZTUuMC96dGVfd2ViX21nbXQuYworKysgYi9seW5xL1MzMDBBSS9hcC9hcHAvZ29haGVhZC9pbnRlcmZhY2U1LjAvenRlX3dlYl9tZ210LmMKQEAgLTEzNzYsNiArMTM3NiwxOCBAQAogCXJldHVybjsKIH0KIAordm9pZCB6dGVfZ29mb3JtX21nbXRfYmF0dGVyeV92b2ljZV9zZXR0aW5nX3Byb2Nlc3Mod2Vic190IHdwKQoreworCWNoYXIgKmJhdHRlcnlfdm9pY2Vfdm9sdGFnZSA9IE5VTEw7CisKKwliYXR0ZXJ5X3ZvaWNlX3ZvbHRhZ2UgPSB3ZWJzR2V0VmFyKHdwLCBUKCJiYXR0ZXJ5X3ZvaWNlX3ZvbHRhZ2UiKSwgVCgiIikpOworCWNmZ19zZXQoImJhdHRlcnlfdm9pY2Vfdm9sdGFnZSIsIGJhdHRlcnlfdm9pY2Vfdm9sdGFnZSk7CisJY2ZnX3NhdmUoKTsKKworCXp0ZV93cml0ZV9yZXN1bHRfdG9fd2ViKHdwLCBTVUNDRVNTKTsKKwlyZXR1cm47Cit9CisKIHZvaWQgenRlX2dvZm9ybV9tYW10X2N3bXBfcHJvY2Vzcyh3ZWJzX3Qgd3ApCiB7CiAJY2hhciAqY3dtcF9lbmFibGUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvbHlucS9TMzAwQUkvYXAvYXBwL2dvYWhlYWQvaW50ZXJmYWNlNS4wL3p0ZV93ZWJfbWdtdC5oIGIvbHlucS9TMzAwQUkvYXAvYXBwL2dvYWhlYWQvaW50ZXJmYWNlNS4wL3p0ZV93ZWJfbWdtdC5oCmluZGV4IDQ3OGJlNDAuLmE5OWMzMmQgMTAwNzU1Ci0tLSBhL2x5bnEvUzMwMEFJL2FwL2FwcC9nb2FoZWFkL2ludGVyZmFjZTUuMC96dGVfd2ViX21nbXQuaAorKysgYi9seW5xL1MzMDBBSS9hcC9hcHAvZ29haGVhZC9pbnRlcmZhY2U1LjAvenRlX3dlYl9tZ210LmgKQEAgLTgxLDYgKzgxLDcgQEAKIGV4dGVybiB2b2lkIHp0ZV9tZ210X3NldF9kZXZpY2Vtb2RlKHdlYnNfdCB3cCk7CiAKIGV4dGVybiB2b2lkIHp0ZV9nb2Zvcm1fbWdtdF9zY2hlZHVsZV9zZXR0aW5nX3Byb2Nlc3Mod2Vic190IHdwKTsKK2V4dGVybiB2b2lkIHp0ZV9nb2Zvcm1fbWdtdF9iYXR0ZXJ5X3ZvaWNlX3NldHRpbmdfcHJvY2Vzcyh3ZWJzX3Qgd3ApOwogZXh0ZXJuIHZvaWQgenRlX2dvZm9ybV9tYW10X2N3bXBfcHJvY2Vzcyh3ZWJzX3Qgd3ApOwogCiBleHRlcm4gdm9pZCB6dGVfZ29mb3JtX21nbXRfc250cF9wcm9jZXNzKHdlYnNfdCB3cCk7CmRpZmYgLS1naXQgYS9seW5xL1MzMDBBSS9hcC9hcHAvZ29haGVhZC9pbnRlcmZhY2U1LjAvenRlX3dlYl91dGlsLmMgYi9seW5xL1MzMDBBSS9hcC9hcHAvZ29haGVhZC9pbnRlcmZhY2U1LjAvenRlX3dlYl91dGlsLmMKaW5kZXggMmIwODZiMi4uM2E2NzViNyAxMDA3NTUKLS0tIGEvbHlucS9TMzAwQUkvYXAvYXBwL2dvYWhlYWQvaW50ZXJmYWNlNS4wL3p0ZV93ZWJfdXRpbC5jCisrKyBiL2x5bnEvUzMwMEFJL2FwL2FwcC9nb2FoZWFkL2ludGVyZmFjZTUuMC96dGVfd2ViX3V0aWwuYwpAQCAtMTU4LDYgKzE1OCw3IEBACiAJLy97R09GT1JNX01HTVRfU0VUX0VYVEVSTkFMX05WLCB6dGVfZ29mb3JtX3NldF9leHRlcm5hbF9udn0sCiAJe0dPRk9STV9NR01UX1NDSEVEVUxFX1NFVFRJTkcsIHp0ZV9nb2Zvcm1fbWdtdF9zY2hlZHVsZV9zZXR0aW5nX3Byb2Nlc3N9LAogCXtHT0ZPUk1fTUdNVF9TTlRQLCB6dGVfZ29mb3JtX21nbXRfc250cF9wcm9jZXNzfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1NOVFDJ6NbDCisJe0dPRk9STV9NR01UX0JBVFRFUllfVk9JQ0VfU0VUVElORywgenRlX2dvZm9ybV9tZ210X2JhdHRlcnlfdm9pY2Vfc2V0dGluZ19wcm9jZXNzfSwKIAl7R09GT1JNX1NOVFBfR0VUREFUQVNUQVRJQywgenRlX2dvZm9ybV9zbnRwX2dldGRhdGFzdGF0aWNfcHJvY2Vzc30sICAgICAgICAgLy+0pbeic2VydmVy0KPXvMqxvOQKIAkvL3tHT0ZPUk1fTUdNVF9TWVNMT0csIHp0ZV9nb2Zvcm1fbWdtdF9zeXNsb2dfcHJvY2Vzc30sICAgICAgICAgICAgICAgICAgICAgICAvL8+1zbNMT0cKIApkaWZmIC0tZ2l0IGEvbHlucS9TMzAwQUkvYXAvYXBwL3p0ZV9jb21tL2F0X2N0bC9zcmMvYXRjb25maWcvZXh0YXRfc29mdGFwX3JlZ2lzdGVyLmMgYi9seW5xL1MzMDBBSS9hcC9hcHAvenRlX2NvbW0vYXRfY3RsL3NyYy9hdGNvbmZpZy9leHRhdF9zb2Z0YXBfcmVnaXN0ZXIuYwppbmRleCBkZjEzOTVhLi4xMjE5ZTBkIDEwMDc1NQotLS0gYS9seW5xL1MzMDBBSS9hcC9hcHAvenRlX2NvbW0vYXRfY3RsL3NyYy9hdGNvbmZpZy9leHRhdF9zb2Z0YXBfcmVnaXN0ZXIuYworKysgYi9seW5xL1MzMDBBSS9hcC9hcHAvenRlX2NvbW0vYXRfY3RsL3NyYy9hdGNvbmZpZy9leHRhdF9zb2Z0YXBfcmVnaXN0ZXIuYwpAQCAtOTIyLDYgKzkyMiw0MSBAQAogCXJldHVybiBBVF9FTkQ7DQogfQ0KIA0KK2ludCBleHRfYXRfZ3Bpb19pbl9mdW5jKGNoYXIgKmF0X3BhcmFzLCB2b2lkICoqIHJlc19tc2cpDQorew0KKwlpZihhdF9wYXJhcyAmJiBzdHJsZW4oYXRfcGFyYXMpID4gMCAmJiBzdHJsZW4oYXRfcGFyYXMpIDwgNSkNCisJew0KKwkJaW50IGdwaW9fbnVtID0gMDsNCisJCWNoYXIgY21kWzEyOF0gPSB7MH07DQorCQljaGFyIGdwaW9fZGlyWzEyXSA9IHswfTsNCisJCWNoYXIgKmF0X3N0ciA9IG1hbGxvYyg2NCk7DQorDQorCQlncGlvX251bSA9IGF0b2koYXRfcGFyYXMpOw0KKwkJc25wcmludGYoY21kLCBzaXplb2YoY21kKSwgImVjaG8gXCIlZFwiID4gL3N5cy9jbGFzcy9ncGlvL2V4cG9ydCIsIGdwaW9fbnVtKTsNCisJCXN5c3RlbShjbWQpOw0KKwkJc25wcmludGYoY21kLCBzaXplb2YoY21kKSwgImVjaG8gaW4gPiAvc3lzL2NsYXNzL2dwaW8vZ3BpbyVkL2RpcmVjdGlvbiIsIGdwaW9fbnVtKTsNCisJCXN5c3RlbShjbWQpOw0KKw0KKwkJc25wcmludGYoY21kLCBzaXplb2YoY21kKSwgImdyZXAgXCJHUElPJWRfXCIgL3N5cy9rZXJuZWwvZGVidWcvengyOV9ncGlvIHwgYXdrICd7cHJpbnQgJDJ9JyIsIGdwaW9fbnVtKTsNCisJCWV4ZWN1dGVDb21tYW5kKGNtZCwgZ3Bpb19kaXIsIHNpemVvZihncGlvX2RpcikpOw0KKw0KKwkJaWYoc3RybGVuKGdwaW9fZGlyKSA+IDApDQorCQl7DQorCQkJc3ByaW50ZihhdF9zdHIsICJcclxuK0dQSU8lZDogJXNcclxuT0tcclxuIiwgZ3Bpb19udW0sIGdwaW9fZGlyKTsNCisJCX0NCisJCWVsc2UNCisJCXsNCisJCQlzcHJpbnRmKGF0X3N0ciwgIlxyXG4rR1BJTyVkOiBOTyBTVUNIIEdQSU9cclxuRVJST1JcclxuIiwgZ3Bpb19udW0pOw0KKwkJfQ0KKw0KKwkJKnJlc19tc2cgPSBhdF9zdHI7DQorCQlyZXR1cm4gQVRfRU5EOw0KKwl9DQorDQorCSpyZXNfbXNnID0gYXRfZXJyX2J1aWxkKEFURVJSX1BBUkFNX0lOVkFMSUQpOw0KKwlyZXR1cm4gQVRfRU5EOw0KK30NCisNCiBzdGF0aWMgaW50IGV4dHJhY3Rfc3NfZGF0YShjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50ICphdmdfbnVtMSwgaW50ICphdmdfbnVtMikNCiB7DQogICAgIEZJTEUgKmZpbGUgPSBwb3BlbihmaWxlbmFtZSwgInIiKTsNCkBAIC0xMDExLDYgKzEwNDYsMjIgQEAKIAlyZXR1cm4gQVRfRU5EOw0KIH0NCiANCitpbnQgZXh0X2F0X2JhdHRlcnlfdm9pY2Vfdm9sdGFnZV9mdW5jKGNoYXIgKmF0X3BhcmFzLCB2b2lkICoqIHJlc19tc2cpDQorew0KKwlpZihhdF9wYXJhcyAmJiBzdHJsZW4oYXRfcGFyYXMpID09IDQpDQorCXsNCisJCWNoYXIgKmF0X3N0ciA9IG1hbGxvYygzMik7DQorCQljZmdfc2V0KCJiYXR0ZXJ5X3ZvaWNlX3ZvbHRhZ2UiLCBhdF9wYXJhcyk7DQorCQlzbnByaW50ZihhdF9zdHIsIDMyLCAiXHJcbitCQVRURVJZX1ZPSUNFOiAlc1xyXG5PS1xyXG4iLCBhdF9wYXJhcyk7DQorDQorCQkqcmVzX21zZyA9IGF0X3N0cjsNCisJCXJldHVybiBBVF9FTkQ7DQorCX0NCisNCisJKnJlc19tc2cgPSBhdF9lcnJfYnVpbGQoQVRFUlJfUEFSQU1fSU5WQUxJRCk7DQorCXJldHVybiBBVF9FTkQ7DQorfQ0KKw0KIHZvaWQgZXh0X25vdGVsY29tX3JlZ2lzdCgpDQogew0KICAgICByZWdpc3Rlcl9zZXJ2X2Z1bmMyKCJaV0lGST0iLCBNT0RVTEVfSURfV0lGSSwgDQpAQCAtMTA1MSw4ICsxMTAyLDEwIEBACiAJcmVnaXN0ZXJfc2Vydl9mdW5jKCJMQU5fSVA/IiwgMCwgZXh0X2F0X2xhbl9pcF9mdW5jKTsNCiAJcmVnaXN0ZXJfc2Vydl9mdW5jKCJBVFZfR1BJTz8iLCAwLCBleHRfYXRfYXR2X2dwaW9fZnVuYyk7DQogCXJlZ2lzdGVyX3NlcnZfZnVuYygiR1BJTz0iLCAwLCBleHRfYXRfZ3Bpb19mdW5jKTsNCisJcmVnaXN0ZXJfc2Vydl9mdW5jKCJHUElPX0lOPSIsIDAsIGV4dF9hdF9ncGlvX2luX2Z1bmMpOw0KIAlyZWdpc3Rlcl9zZXJ2X2Z1bmMoIldMQU5fU1MiLCAwLCBleHRfYXRfd2xhbl9zc19mdW5jKTsNCiAJcmVnaXN0ZXJfc2Vydl9mdW5jKCJGTVRFU1Q9IiwgMCwgZXh0X2F0X2RlbGF5X3NodXRfZG93bl9mdW5jKTsNCisJcmVnaXN0ZXJfc2Vydl9mdW5jKCJCQVRURVJZX1ZPSUNFPSIsIDAsIGV4dF9hdF9iYXR0ZXJ5X3ZvaWNlX3ZvbHRhZ2VfZnVuYyk7DQogfQ0KIA0KIHZvaWQgYXRfY29tbV9pbml0KHZvaWQpDQpkaWZmIC0tZ2l0IGEvbHlucS9TMzAwQUkvYXAvYXBwL3p0ZV93ZWJ1aS9pMThuL01lc3NhZ2VzX2VuLnByb3BlcnRpZXMgYi9seW5xL1MzMDBBSS9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfZW4ucHJvcGVydGllcwppbmRleCBkMDEzYWMzLi4xNDJjODFmIDEwMDc1NQotLS0gYS9seW5xL1MzMDBBSS9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfZW4ucHJvcGVydGllcworKysgYi9seW5xL1MzMDBBSS9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfZW4ucHJvcGVydGllcwpAQCAtMTgxNywzICsxODE3LDExIEBACiBjYWxsaW5nX3doaXRlX251bWJlcl9saXN0ID0gV2hpdGVsaXN0IG9mIE91dGdvaW5nIENhbGxzDQogYWRkX2NhbGxlZF93aGl0ZV9udW1iZXJfbGlzdCA9IEFkZCBOdW1iZXIgdG8gV2hpdGVsaXN0IG9mIFJlY2VpdmVkIENhbGxzDQogY2FsbGVkX3doaXRlX251bWJlcl9saXN0ID0gV2hpdGVsaXN0IG9mIFJlY2VpdmVkIENhbGxzDQorYmF0dGVyeV92b2ljZV9zZXQgPSBWb2ljZSBDb25maWd1cmF0aW9uDQorYmF0dGVyeV92b2ljZV9pbmZvID0gSWYgYmF0dGVyeSB2b2x0YWdlIGJlbG93IHNldCwgbXV0ZSB2b2ljZSwgb25seSBlZmZlY3RpdmUgcG93ZXJlZCBieSBiYXR0ZXJ5DQorY2xvc2Vfdm9pY2Vfdm9sdGFnZSA9IENsb3NlIFZvaWNlIFZvbHRhZ2UobVYpDQorY2xvc2Vfdm9pY2Vfc2VsZWN0XzAgPSBBbHdheXMgZWZmZWN0aXZlDQorY2xvc2Vfdm9pY2Vfc2VsZWN0XzM2MDAgPSAzNjAwDQorY2xvc2Vfdm9pY2Vfc2VsZWN0XzM3MDAgPSAzNzAwDQorY2xvc2Vfdm9pY2Vfc2VsZWN0XzM4MDAgPSAzODAwDQorY2xvc2Vfdm9pY2Vfc2VsZWN0XzM5MDAgPSAzOTAwDQpkaWZmIC0tZ2l0IGEvbHlucS9TMzAwQUkvYXAvYXBwL3p0ZV93ZWJ1aS9pMThuL01lc3NhZ2VzX3poLWNuLnByb3BlcnRpZXMgYi9seW5xL1MzMDBBSS9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfemgtY24ucHJvcGVydGllcwppbmRleCA2YmFlODA2Li42ODFkY2JkIDEwMDc1NQotLS0gYS9seW5xL1MzMDBBSS9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfemgtY24ucHJvcGVydGllcworKysgYi9seW5xL1MzMDBBSS9hcC9hcHAvenRlX3dlYnVpL2kxOG4vTWVzc2FnZXNfemgtY24ucHJvcGVydGllcwpAQCAtMTgyMSwzICsxODIxLDExIEBACiBjYWxsaW5nX3doaXRlX251bWJlcl9saXN0ID0g5Li75Y+r55m95ZCN5Y2V5Y+356CB5YiX6KGoDQogYWRkX2NhbGxlZF93aGl0ZV9udW1iZXJfbGlzdCA9IOa3u+WKoOiiq+WPq+eZveWQjeWNleWPt+eggQ0KIGNhbGxlZF93aGl0ZV9udW1iZXJfbGlzdCA9IOiiq+WPq+eZveWQjeWNleWPt+eggeWIl+ihqA0KK2JhdHRlcnlfdm9pY2Vfc2V0ID0g6K+t6Z+z6YWN572uDQorYmF0dGVyeV92b2ljZV9pbmZvID0g55S15rGg55S16YeP5L2O5LqO6K6+5a6a5YC85pe277yM5YWz6Zet6K+t6Z+z5Yqf6IO977yM5LuF5Zyo55S15rGg5L6b55S15pe255Sf5pWIDQorY2xvc2Vfdm9pY2Vfdm9sdGFnZSA9IOWFs+mXreivremfs+eUteWOiyhtVikNCitjbG9zZV92b2ljZV9zZWxlY3RfMCA9IOebtOaOpeeUn+aViA0KK2Nsb3NlX3ZvaWNlX3NlbGVjdF8zNjAwID0gMzYwMA0KK2Nsb3NlX3ZvaWNlX3NlbGVjdF8zNzAwID0gMzcwMA0KK2Nsb3NlX3ZvaWNlX3NlbGVjdF8zODAwID0gMzgwMA0KK2Nsb3NlX3ZvaWNlX3NlbGVjdF8zOTAwID0gMzkwMA0KZGlmZiAtLWdpdCBhL2x5bnEvUzMwMEFJL2FwL2FwcC96dGVfd2VidWkvanMvY29tLmpzIGIvbHlucS9TMzAwQUkvYXAvYXBwL3p0ZV93ZWJ1aS9qcy9jb20uanMKaW5kZXggZTM0MzJhZC4uNjgwMjNmMSAxMDA3NTUKLS0tIGEvbHlucS9TMzAwQUkvYXAvYXBwL3p0ZV93ZWJ1aS9qcy9jb20uanMKKysrIGIvbHlucS9TMzAwQUkvYXAvYXBwL3p0ZV93ZWJ1aS9qcy9jb20uanMKQEAgLTQzMTcsNiArNDMxNyw0MSBAQAogICAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KICAgICB9DQorDQorICAgIGZ1bmN0aW9uIGdldEJhdHRlcnlWb2ljZVNldHRpbmcoKSB7DQorICAgICAgICByZXR1cm4gc3R1ZmZNYWtlKGFyZ3VtZW50cywge30sIHByZXBhcmUsIGRlYWwsIG51bGwsIGZhbHNlKTsNCisgICAgICAgIGZ1bmN0aW9uIHByZXBhcmUodmFsdWVzLCBpc1Bvc3QpIHsNCisgICAgICAgICAgICB2YXIgdmFsdWVSZXEgPSB7fTsNCisgICAgICAgICAgICB2YWx1ZVJlcS5jbWQgPSAiYmF0dGVyeV92b2ljZV92b2x0YWdlIjsNCisgICAgICAgICAgICByZXR1cm4gdmFsdWVSZXE7DQorICAgICAgICB9DQorICAgICAgICBmdW5jdGlvbiBkZWFsKHBhcmFtRCkgew0KKyAgICAgICAgICAgIGlmIChwYXJhbUQpIHsNCisgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHt9Ow0KKyAgICAgICAgICAgICAgICByZXN1bHQuYmF0dGVyeV92b2ljZV92b2x0YWdlID0gcGFyYW1ELmJhdHRlcnlfdm9pY2Vfdm9sdGFnZTsNCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCisgICAgICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgICAgICByZXR1cm4gZXJyVW5rbm93bk9iajsNCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorICAgIH0NCisgICAgZnVuY3Rpb24gc2V0QmF0dGVyeVZvaWNlU2V0dGluZygpIHsNCisgICAgICAgIHJldHVybiBzdHVmZk1ha2UoYXJndW1lbnRzLCB7fSwgcHJlcGFyZSwgZGVhbCwgbnVsbCwgdHJ1ZSk7DQorICAgICAgICBmdW5jdGlvbiBwcmVwYXJlKHZhbHVlcywgaXNQb3N0KSB7DQorICAgICAgICAgICAgdmFyIHZhbHVlUmVxID0ge307DQorICAgICAgICAgICAgdmFsdWVSZXEuZ29mb3JtSWQgPSAiQkFUVEVSWV9WT0lDRV9TRVRUSU5HIjsNCisgICAgICAgICAgICB2YWx1ZVJlcS5iYXR0ZXJ5X3ZvaWNlX3ZvbHRhZ2UgPSB2YWx1ZXMuYmF0dGVyeV92b2ljZV92b2x0YWdlOw0KKyAgICAgICAgICAgIHJldHVybiB2YWx1ZVJlcTsNCisgICAgICAgIH0NCisgICAgICAgIGZ1bmN0aW9uIGRlYWwocGFyYW1EKSB7DQorICAgICAgICAgICAgaWYgKHBhcmFtRCkgew0KKyAgICAgICAgICAgICAgICByZXR1cm4gcGFyYW1EOw0KKyAgICAgICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgICAgIHJldHVybiBlcnJVbmtub3duT2JqOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgfQ0KKyAgICANCiAgICAgZnVuY3Rpb24gZ2V0Q3dtcFNldHRpbmcoKSB7DQogICAgICAgICByZXR1cm4gc3R1ZmZNYWtlKGFyZ3VtZW50cywge30sIHByZXBhcmUsIGRlYWwsIG51bGwsIGZhbHNlKTsNCiAgICAgICAgIGZ1bmN0aW9uIHByZXBhcmUodmFsdWVzLCBpc1Bvc3QpIHsNCkBAIC02NDQ3LDYgKzY0ODIsOCBAQAogICAgICAgICByZXN0YXJ0OiByZXN0YXJ0LA0KICAgICAgICAgZ2V0U2NoZWR1bGVTZXR0aW5nOiBnZXRTY2hlZHVsZVNldHRpbmcsDQogICAgICAgICBzZXRTY2hlZHVsZVNldHRpbmc6IHNldFNjaGVkdWxlU2V0dGluZywNCisgICAgICAgIGdldEJhdHRlcnlWb2ljZVNldHRpbmc6IGdldEJhdHRlcnlWb2ljZVNldHRpbmcsDQorICAgICAgICBzZXRCYXR0ZXJ5Vm9pY2VTZXR0aW5nOiBzZXRCYXR0ZXJ5Vm9pY2VTZXR0aW5nLA0KICAgICAgICAgZ2V0Q3dtcFNldHRpbmc6IGdldEN3bXBTZXR0aW5nLA0KICAgICAgICAgc2V0Q3dtcFNldHRpbmc6IHNldEN3bXBTZXR0aW5nLA0KICAgICAgICAgdXBkYXRlVGltZXJGbGFnOiB1cGRhdGVUaW1lckZsYWcsDQpAQCAtNzA1OCw2ICs3MDk1LDEwIEBACiAJCQlyZXR1cm4gbmV3IE9wdGlvbihpdGVtLm5hbWUsIGl0ZW0udmFsdWUpOw0KIAkJfSk7DQogDQorICAgICAgICB2YXIgYmF0dGVyeVZvaWNlTW9kZXMgPSBfLm1hcChjb25maWcuYmF0dGVyeVZvaWNlU2V0TW9kZXMsIGZ1bmN0aW9uKGl0ZW0pIHsNCisJCQlyZXR1cm4gbmV3IE9wdGlvbihpdGVtLm5hbWUsIGl0ZW0udmFsdWUpOw0KKwkJfSk7DQorDQogCQl2YXIgc3Zfc250cFllYXJzICAgID0gW107DQogCQl2YXIgc3Zfc250cE1vbnRocyAgID0gW107DQogCQl2YXIgc3Zfc250cERhdGVzICAgID0gW107ICAvL++/ve+/ve+/vd2077+90KHvv73vv73vv73vv73vv73vv73vv73vv73vv73vv70NCkBAIC03Mzk1LDcgKzc0MzYsMjIgQEAKIAkJCQkhdGFyZ2V0LmlzT3RoZXIyKCkgJiYgJCgiI3NudHBfc2VydmVyMiIpLmZpbmQoIi5lcnJvciIpLmhpZGUoKTsNCiAJCQl9DQogDQorICAgICAgICAgICAgdmFyIHN2X2JhdHRlcnlWb2ljZUluZm8gPSBzZXJ2aWNlLmdldEJhdHRlcnlWb2ljZVNldHRpbmcoKTsNCisgICAgICAgICAgICB0YXJnZXQuYmF0dGVyeVZvaWNlTW9kZXMgPSBrby5vYnNlcnZhYmxlQXJyYXkoYmF0dGVyeVZvaWNlTW9kZXMpOw0KKyAgICAgICAgICAgIHRhcmdldC5jdXJyZW50Vm9pY2VNb2RlID0ga28ub2JzZXJ2YWJsZShzdl9iYXR0ZXJ5Vm9pY2VJbmZvLmJhdHRlcnlfdm9pY2Vfdm9sdGFnZSk7DQogDQorICAgICAgICAgICAgdGFyZ2V0LmJhdHRlcnlWb2ljZVNhdmUgPSBmdW5jdGlvbiAoKSB7DQorICAgICAgICAgICAgICAgIHNob3dMb2FkaW5nKCk7DQorICAgICAgICAgICAgICAgIHZhciBwYXJhbXMgPSB7fTsNCisgICAgICAgICAgICAgICAgcGFyYW1zLmJhdHRlcnlfdm9pY2Vfdm9sdGFnZSA9IHRhcmdldC5jdXJyZW50Vm9pY2VNb2RlKCk7DQorICAgICAgICAgICAgICAgIHNlcnZpY2Uuc2V0QmF0dGVyeVZvaWNlU2V0dGluZyhwYXJhbXMsIGZ1bmN0aW9uIChyZXN1bHQpIHsNCisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0ICE9ICJzdWNjZXNzIikgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yT3ZlcmxheSgpOw0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCisgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzT3ZlcmxheSgpOw0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICB9KTsNCisgICAgICAgICAgICB9Ow0KICAgICAgICAgfQ0KIA0KIAkgICAgLy8g77+977+9yrzvv73vv70gVmlld01vZGVs77+977+977+977+977+977+977+977+977+977+9zbzvv73vv70NCmRpZmYgLS1naXQgYS9seW5xL1MzMDBBSS9hcC9hcHAvenRlX3dlYnVpL2pzL2V4dC9zZXRfYWljODgwMGQ0MGkuanMgYi9seW5xL1MzMDBBSS9hcC9hcHAvenRlX3dlYnVpL2pzL2V4dC9zZXRfYWljODgwMGQ0MGkuanMKaW5kZXggOGE4MzM1Ni4uYjY5ZDA5ZSAxMDA3NTUKLS0tIGEvbHlucS9TMzAwQUkvYXAvYXBwL3p0ZV93ZWJ1aS9qcy9leHQvc2V0X2FpYzg4MDBkNDBpLmpzCisrKyBiL2x5bnEvUzMwMEFJL2FwL2FwcC96dGVfd2VidWkvanMvZXh0L3NldF9haWM4ODAwZDQwaS5qcwpAQCAtNzIsNiArNzIsMjMgQEAKICAgICAgICAgICAgICAgICBuYW1lOiAnM0cgT25seScsDQogICAgICAgICAgICAgICAgIHZhbHVlOiAnT25seV9XQ0RNQScNCiAgICAgICAgICAgICB9DQorICAgICAgICBdLA0KKyAgICAgICAgYmF0dGVyeVZvaWNlU2V0TW9kZXM6IFt7DQorICAgICAgICAgICAgICAgIG5hbWU6ICJBbHdheXMgb24iLA0KKyAgICAgICAgICAgICAgICB2YWx1ZTogIjAiDQorICAgICAgICAgICAgfSwgew0KKyAgICAgICAgICAgICAgICBuYW1lOiAiMzYwMCBtViIsDQorICAgICAgICAgICAgICAgIHZhbHVlOiAiMzYwMCINCisgICAgICAgICAgICB9LCB7DQorICAgICAgICAgICAgICAgIG5hbWU6ICIzNzAwIG1WIiwNCisgICAgICAgICAgICAgICAgdmFsdWU6ICIzNzAwIg0KKyAgICAgICAgICAgIH0sIHsNCisgICAgICAgICAgICAgICAgbmFtZTogIjM4MDAgbVYiLA0KKyAgICAgICAgICAgICAgICB2YWx1ZTogIjM4MDAiDQorICAgICAgICAgICAgfSwgew0KKyAgICAgICAgICAgICAgICBuYW1lOiAiMzkwMCBtViIsDQorICAgICAgICAgICAgICAgIHZhbHVlOiAiMzkwMCINCisgICAgICAgICAgICB9DQogICAgICAgICBdDQogICAgIH07DQogDQpkaWZmIC0tZ2l0IGEvbHlucS9TMzAwQUkvYXAvYXBwL3p0ZV93ZWJ1aS9zdWJwZy9hZG1fb3RoZXJzLmh0bWwgYi9seW5xL1MzMDBBSS9hcC9hcHAvenRlX3dlYnVpL3N1YnBnL2FkbV9vdGhlcnMuaHRtbAppbmRleCAxMTJiMDlmLi5mNmVjOWQ0IDEwMDc1NQotLS0gYS9seW5xL1MzMDBBSS9hcC9hcHAvenRlX3dlYnVpL3N1YnBnL2FkbV9vdGhlcnMuaHRtbAorKysgYi9seW5xL1MzMDBBSS9hcC9hcHAvenRlX3dlYnVpL3N1YnBnL2FkbV9vdGhlcnMuaHRtbApAQCAtMjAyLDYgKzIwMiwyNCBAQAogCQkJPC9kaXY+DQogCQk8L2Zvcm0+DQogDQorCQk8Zm9ybSBpZD0iZnJtQmF0dGVyeVZvaWNlU2V0IiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPg0KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tYm9keSI+DQorICAgICAgICAgICAgICAgIDxoMyBkYXRhLXRyYW5zPSJiYXR0ZXJ5X3ZvaWNlX3NldCIgY2xhc3M9ImZvcm0tdGl0bGUiPjwvaDM+DQorCQkJCTxkaXYgY2xhc3M9InJvdyBmb3JtLWdyb3VwIj4NCisgICAgICAgICAgICAgICAgICAgIDxkaXYgZGF0YS10cmFucz0iYmF0dGVyeV92b2ljZV9pbmZvIiBjbGFzcz0iY29sLXhzLTEyIj48L2Rpdj4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyBmb3JtLWdyb3VwIj4JCQkJICAgIA0KKyAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wteHMtNCBzaWRlLXJpZ2h0IiBkYXRhLXRyYW5zPSdjbG9zZV92b2ljZV92b2x0YWdlJyBmb3I9ImJhdHRlcnlWb2ljZVNldHRpbmciPjwvbGFiZWw+DQorCQkJCQk8ZGl2IGNsYXNzPSJjb2wteHMtNCI+DQorCQkJCQkJPHNlbGVjdCBpZD0iYmF0dGVyeVZvaWNlU2V0dGluZyIgY2xhc3M9ImZvcm0tY29udHJvbCIgZGF0YS10cmFuc2lkPSJjbG9zZV92b2ljZV9zZWxlY3QiIGRhdGEtYmluZD0ib3B0aW9uczogYmF0dGVyeVZvaWNlTW9kZXMsIHZhbHVlOiBjdXJyZW50Vm9pY2VNb2RlLCBvcHRpb25zVGV4dDogdHJhbnNPcHRpb24oJ2Nsb3NlX3ZvaWNlX3NlbGVjdCcpLCBvcHRpb25zVmFsdWU6ICd2YWx1ZSciPjwvc2VsZWN0Pg0KKwkJCQkJPC9kaXY+DQorICAgICAgICAgICAgICAgIDwvZGl2Pg0KKwkJCQk8ZGl2IGNsYXNzPSJmb3JtLWJ1dHRvbnMiPg0KKwkJCQkJPGlucHV0IGRhdGEtYmluZD0iY2xpY2s6YmF0dGVyeVZvaWNlU2F2ZSIgZGF0YS10cmFucz0iYXBwbHkiIHR5cGU9InN1Ym1pdCIgZm9ybW1ldGhvZD0icG9zdCIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBtYXJnaW4tcmlnaHQtMjAiLz4NCisJCQkJPC9kaXY+DQorICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICA8L2Zvcm0+DQorDQogICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWJvZHkiPg0KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQgbWFyZ2luLXRvcC0yMCBsaW5lLWhlaWdodC0zMCI+DQogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQpkaWZmIC0tZ2l0IGEvbHlucS9TMzAwQUkvYXAvcHJvamVjdC96eDI5NzUyMHYzL3Byal9jcGUvZnMvbm9ybWFsL3Jvb3Rmcy9ldGNfcm8vZGVmYXVsdC9kZWZhdWx0X3BhcmFtZXRlcl91c2VyIGIvbHlucS9TMzAwQUkvYXAvcHJvamVjdC96eDI5NzUyMHYzL3Byal9jcGUvZnMvbm9ybWFsL3Jvb3Rmcy9ldGNfcm8vZGVmYXVsdC9kZWZhdWx0X3BhcmFtZXRlcl91c2VyCmluZGV4IGFlYjQ3ZjMuLjM2ZDc4NWQgMTAwNzU1Ci0tLSBhL2x5bnEvUzMwMEFJL2FwL3Byb2plY3QvengyOTc1MjB2My9wcmpfY3BlL2ZzL25vcm1hbC9yb290ZnMvZXRjX3JvL2RlZmF1bHQvZGVmYXVsdF9wYXJhbWV0ZXJfdXNlcgorKysgYi9seW5xL1MzMDBBSS9hcC9wcm9qZWN0L3p4Mjk3NTIwdjMvcHJqX2NwZS9mcy9ub3JtYWwvcm9vdGZzL2V0Y19yby9kZWZhdWx0L2RlZmF1bHRfcGFyYW1ldGVyX3VzZXIKQEAgLTU1NywzICs1NTcsNCBAQAogY2FsbF9jc3BfbnVtYmVyPQogI2ZvciB2b2ljZSBlbmQKIHdpZmlfc3dpdGNoX3N0YXR1cz0KK2JhdHRlcnlfdm9pY2Vfdm9sdGFnZT0wCg==