ZGlmZiAtLWdpdCBhL2ZwZGZzZGsvZm9ybWZpbGxlci9jZmZsX2ludGVyYWN0aXZlZm9ybWZpbGxlci5jcHAgYi9mcGRmc2RrL2Zvcm1maWxsZXIvY2ZmbF9pbnRlcmFjdGl2ZWZvcm1maWxsZXIuY3BwCmluZGV4IGVhYmI4OTkuLjEwY2VmZDIgMTAwNjQ0Ci0tLSBhL2ZwZGZzZGsvZm9ybWZpbGxlci9jZmZsX2ludGVyYWN0aXZlZm9ybWZpbGxlci5jcHAKKysrIGIvZnBkZnNkay9mb3JtZmlsbGVyL2NmZmxfaW50ZXJhY3RpdmVmb3JtZmlsbGVyLmNwcApAQCAtODYzLDMzICs4NjMsMzMgQEAKICAgICBpbnQgblNlbEVuZCwKICAgICBib29sIGJLZXlEb3duLAogICAgIHVpbnQzMl90IG5GbGFnKSB7Ci0gIGJvb2wgYlJDID0gdHJ1ZTsKLSAgYm9vbCBiRXhpdCA9IGZhbHNlOwotICBDRkZMX1ByaXZhdGVEYXRhKiBwRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZGTF9Qcml2YXRlRGF0YSo+KHBQcml2YXRlRGF0YSk7Ci0gIEFTU0VSVChwRGF0YS0+cFdpZGdldCk7CisgIC8vIENvcHkgdGhlIHByaXZhdGUgZGF0YSBzaW5jZSB0aGUgd2luZG93IG93bmluZyBpdCBtYXkgbm90IHN1cnZpdmUuCisgIENGRkxfUHJpdmF0ZURhdGEgcHJpdmF0ZURhdGEgPQorICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8Q0ZGTF9Qcml2YXRlRGF0YSo+KHBQcml2YXRlRGF0YSk7CisgIEFTU0VSVChwcml2YXRlRGF0YS5wV2lkZ2V0KTsKIAotICBDRkZMX0Zvcm1GaWxsZXIqIHBGb3JtRmlsbGVyID0gR2V0Rm9ybUZpbGxlcihwRGF0YS0+cFdpZGdldCwgZmFsc2UpOworICBDRkZMX0Zvcm1GaWxsZXIqIHBGb3JtRmlsbGVyID0gR2V0Rm9ybUZpbGxlcihwcml2YXRlRGF0YS5wV2lkZ2V0LCBmYWxzZSk7CiAKICNpZmRlZiBQREZfRU5BQkxFX1hGQQotICBpZiAocEZvcm1GaWxsZXItPklzRmllbGRGdWxsKHBEYXRhLT5wUGFnZVZpZXcpKSB7Ci0gICAgQ1BERlNES19Bbm5vdDo6T2JzZXJ2ZWRQdHIgcE9ic2VydmVkKHBEYXRhLT5wV2lkZ2V0KTsKLSAgICBpZiAoT25GdWxsKCZwT2JzZXJ2ZWQsIHBEYXRhLT5wUGFnZVZpZXcsIG5GbGFnKSB8fCAhcE9ic2VydmVkKQotICAgICAgcmV0dXJuIHtiUkMsIHRydWV9OworICBpZiAocEZvcm1GaWxsZXItPklzRmllbGRGdWxsKHByaXZhdGVEYXRhLnBQYWdlVmlldykpIHsKKyAgICBDUERGU0RLX0Fubm90OjpPYnNlcnZlZFB0ciBwT2JzZXJ2ZWQocHJpdmF0ZURhdGEucFdpZGdldCk7CisgICAgaWYgKE9uRnVsbCgmcE9ic2VydmVkLCBwcml2YXRlRGF0YS5wUGFnZVZpZXcsIG5GbGFnKSB8fCAhcE9ic2VydmVkKQorICAgICAgcmV0dXJuIHt0cnVlLCB0cnVlfTsKICAgfQogI2VuZGlmICAvLyBQREZfRU5BQkxFX1hGQQogCiAgIGlmIChtX2JOb3RpZnlpbmcgfHwKLSAgICAgICFwRGF0YS0+cFdpZGdldC0+R2V0QUFjdGlvbihDUERGX0FBY3Rpb246OktleVN0cm9rZSkuR2V0RGljdCgpKSB7Ci0gICAgcmV0dXJuIHtiUkMsIGJFeGl0fTsKKyAgICAgICFwcml2YXRlRGF0YS5wV2lkZ2V0LT5HZXRBQWN0aW9uKENQREZfQUFjdGlvbjo6S2V5U3Ryb2tlKS5HZXREaWN0KCkpIHsKKyAgICByZXR1cm4ge3RydWUsIGZhbHNlfTsKICAgfQogCiAgIENGWF9BdXRvUmVzdG9yZXI8Ym9vbD4gcmVzdG9yZXIoJm1fYk5vdGlmeWluZyk7CiAgIG1fYk5vdGlmeWluZyA9IHRydWU7Ci0gIGludCBuQWdlID0gcERhdGEtPnBXaWRnZXQtPkdldEFwcGVhcmFuY2VBZ2UoKTsKLSAgaW50IG5WYWx1ZUFnZSA9IHBEYXRhLT5wV2lkZ2V0LT5HZXRWYWx1ZUFnZSgpOwogCisgIGludCBuQWdlID0gcHJpdmF0ZURhdGEucFdpZGdldC0+R2V0QXBwZWFyYW5jZUFnZSgpOworICBpbnQgblZhbHVlQWdlID0gcHJpdmF0ZURhdGEucFdpZGdldC0+R2V0VmFsdWVBZ2UoKTsKICAgQ1BERlNES19Gb3JtRmlsbEVudmlyb25tZW50KiBwRm9ybUZpbGxFbnYgPQotICAgICAgcERhdGEtPnBQYWdlVmlldy0+R2V0Rm9ybUZpbGxFbnYoKTsKKyAgICAgIHByaXZhdGVEYXRhLnBQYWdlVmlldy0+R2V0Rm9ybUZpbGxFbnYoKTsKIAogICBQREZTREtfRmllbGRBY3Rpb24gZmE7CiAgIGZhLmJNb2RpZmllciA9IENQREZTREtfRm9ybUZpbGxFbnZpcm9ubWVudDo6SXNDVFJMS2V5RG93bihuRmxhZyk7CkBAIC05MDEsMzcgKzkwMSwzOCBAQAogICBmYS5iUkMgPSB0cnVlOwogICBmYS5uU2VsU3RhcnQgPSBuU2VsU3RhcnQ7CiAgIGZhLm5TZWxFbmQgPSBuU2VsRW5kOworICBwRm9ybUZpbGxlci0+R2V0QWN0aW9uRGF0YShwcml2YXRlRGF0YS5wUGFnZVZpZXcsIENQREZfQUFjdGlvbjo6S2V5U3Ryb2tlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYSk7CisgIHBGb3JtRmlsbGVyLT5TYXZlU3RhdGUocHJpdmF0ZURhdGEucFBhZ2VWaWV3KTsKIAotICBwRm9ybUZpbGxlci0+R2V0QWN0aW9uRGF0YShwRGF0YS0+cFBhZ2VWaWV3LCBDUERGX0FBY3Rpb246OktleVN0cm9rZSwgZmEpOwotICBwRm9ybUZpbGxlci0+U2F2ZVN0YXRlKHBEYXRhLT5wUGFnZVZpZXcpOworICBDUERGU0RLX0Fubm90OjpPYnNlcnZlZFB0ciBwT2JzZXJ2ZWQocHJpdmF0ZURhdGEucFdpZGdldCk7CisgIGJvb2wgYWN0aW9uX3N0YXR1cyA9IHByaXZhdGVEYXRhLnBXaWRnZXQtPk9uQUFjdGlvbigKKyAgICAgIENQREZfQUFjdGlvbjo6S2V5U3Ryb2tlLCBmYSwgcHJpdmF0ZURhdGEucFBhZ2VWaWV3KTsKIAotICBDUERGU0RLX0Fubm90OjpPYnNlcnZlZFB0ciBwT2JzZXJ2ZWQocERhdGEtPnBXaWRnZXQpOwotICBpZiAoIXBEYXRhLT5wV2lkZ2V0LT5PbkFBY3Rpb24oQ1BERl9BQWN0aW9uOjpLZXlTdHJva2UsIGZhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcERhdGEtPnBQYWdlVmlldykpIHsKLSAgICBpZiAoIUlzVmFsaWRBbm5vdChwRGF0YS0+cFBhZ2VWaWV3LCBwRGF0YS0+cFdpZGdldCkpCi0gICAgICBiRXhpdCA9IHRydWU7Ci0gICAgcmV0dXJuIHtiUkMsIGJFeGl0fTsKLSAgfQorICBpZiAoIXBPYnNlcnZlZCB8fCAhSXNWYWxpZEFubm90KHByaXZhdGVEYXRhLnBQYWdlVmlldywgcHJpdmF0ZURhdGEucFdpZGdldCkpCisgICAgcmV0dXJuIHt0cnVlLCB0cnVlfTsKIAotICBpZiAoIXBPYnNlcnZlZCB8fCAhSXNWYWxpZEFubm90KHBEYXRhLT5wUGFnZVZpZXcsIHBEYXRhLT5wV2lkZ2V0KSkKLSAgICByZXR1cm4ge2JSQywgdHJ1ZX07CisgIGlmICghYWN0aW9uX3N0YXR1cykKKyAgICByZXR1cm4ge3RydWUsIGZhbHNlfTsKIAotICBpZiAobkFnZSAhPSBwRGF0YS0+cFdpZGdldC0+R2V0QXBwZWFyYW5jZUFnZSgpKSB7CisgIGJvb2wgYkV4aXQgPSBmYWxzZTsKKyAgaWYgKG5BZ2UgIT0gcHJpdmF0ZURhdGEucFdpZGdldC0+R2V0QXBwZWFyYW5jZUFnZSgpKSB7CiAgICAgQ1BXTF9XbmQqIHBXbmQgPSBwRm9ybUZpbGxlci0+UmVzZXRQREZXaW5kb3coCi0gICAgICAgIHBEYXRhLT5wUGFnZVZpZXcsIG5WYWx1ZUFnZSA9PSBwRGF0YS0+cFdpZGdldC0+R2V0VmFsdWVBZ2UoKSk7Ci0gICAgcERhdGEgPSByZWludGVycHJldF9jYXN0PENGRkxfUHJpdmF0ZURhdGEqPihwV25kLT5HZXRBdHRhY2hlZERhdGEoKSk7CisgICAgICAgIHByaXZhdGVEYXRhLnBQYWdlVmlldywgblZhbHVlQWdlID09IHByaXZhdGVEYXRhLnBXaWRnZXQtPkdldFZhbHVlQWdlKCkpOworICAgIGlmICghcFduZCkKKyAgICAgIHJldHVybiB7dHJ1ZSwgdHJ1ZX07CisgICAgcHJpdmF0ZURhdGEgPSAqcmVpbnRlcnByZXRfY2FzdDxDRkZMX1ByaXZhdGVEYXRhKj4ocFduZC0+R2V0QXR0YWNoZWREYXRhKCkpOwogICAgIGJFeGl0ID0gdHJ1ZTsKICAgfQorICBpZiAoZmEuYlJDKSB7CisgICAgcEZvcm1GaWxsZXItPlNldEFjdGlvbkRhdGEocHJpdmF0ZURhdGEucFBhZ2VWaWV3LCBDUERGX0FBY3Rpb246OktleVN0cm9rZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYSk7CisgIH0gZWxzZSB7CisgICAgcEZvcm1GaWxsZXItPlJlc3RvcmVTdGF0ZShwcml2YXRlRGF0YS5wUGFnZVZpZXcpOworICB9CisgIGlmIChwRm9ybUZpbGxFbnYtPkdldEZvY3VzQW5ub3QoKSA9PSBwcml2YXRlRGF0YS5wV2lkZ2V0KQorICAgIHJldHVybiB7ZmFsc2UsIGJFeGl0fTsKIAotICBpZiAoZmEuYlJDKQotICAgIHBGb3JtRmlsbGVyLT5TZXRBY3Rpb25EYXRhKHBEYXRhLT5wUGFnZVZpZXcsIENQREZfQUFjdGlvbjo6S2V5U3Ryb2tlLCBmYSk7Ci0gIGVsc2UKLSAgICBwRm9ybUZpbGxlci0+UmVzdG9yZVN0YXRlKHBEYXRhLT5wUGFnZVZpZXcpOwotICBiUkMgPSBmYWxzZTsKLQotICBpZiAocEZvcm1GaWxsRW52LT5HZXRGb2N1c0Fubm90KCkgPT0gcERhdGEtPnBXaWRnZXQpCi0gICAgcmV0dXJuIHtiUkMsIGJFeGl0fTsKLQotICBwRm9ybUZpbGxlci0+Q29tbWl0RGF0YShwRGF0YS0+cFBhZ2VWaWV3LCBuRmxhZyk7Ci0gIHJldHVybiB7YlJDLCB0cnVlfTsKKyAgcEZvcm1GaWxsZXItPkNvbW1pdERhdGEocHJpdmF0ZURhdGEucFBhZ2VWaWV3LCBuRmxhZyk7CisgIHJldHVybiB7ZmFsc2UsIHRydWV9OwogfQpkaWZmIC0tZ2l0IGEvZnBkZnNkay9mcGRmZm9ybWZpbGxfZW1iZWRkZXJ0ZXN0LmNwcCBiL2ZwZGZzZGsvZnBkZmZvcm1maWxsX2VtYmVkZGVydGVzdC5jcHAKaW5kZXggOTMzNTA4Ny4uNTZlMTY2MiAxMDA2NDQKLS0tIGEvZnBkZnNkay9mcGRmZm9ybWZpbGxfZW1iZWRkZXJ0ZXN0LmNwcAorKysgYi9mcGRmc2RrL2ZwZGZmb3JtZmlsbF9lbWJlZGRlcnRlc3QuY3BwCkBAIC01MDYsNiArNTA2LDE3IEBACiAgIEVYUEVDVF9FUSgwdSwgYWxlcnRzLnNpemUoKSk7CiB9CiAKK1RFU1RfRihGUERGRm9ybUZpbGxFbWJlZGRlcnRlc3QsIEJVR183NjUzODQpIHsKKyAgRVhQRUNUX1RSVUUoT3BlbkRvY3VtZW50KCJidWdfNzY1Mzg0LnBkZiIpKTsKKyAgRlBERl9QQUdFIHBhZ2UgPSBMb2FkUGFnZSgwKTsKKyAgRVhQRUNUX1RSVUUocGFnZSk7CisKKyAgRG9PcGVuQWN0aW9ucygpOworICBGT1JNX09uTEJ1dHRvbkRvd24oZm9ybV9oYW5kbGUoKSwgcGFnZSwgMCwgMTQwLCA1OTApOworICBGT1JNX09uTEJ1dHRvblVwKGZvcm1faGFuZGxlKCksIHBhZ2UsIDAsIDE0MCwgNTkwKTsKKyAgVW5sb2FkUGFnZShwYWdlKTsKK30KKwogI2VuZGlmICAvLyBQREZfRU5BQkxFX1Y4CiAKIFRFU1RfRihGUERGRm9ybUZpbGxFbWJlZGRlcnRlc3QsIEZvcm1UZXh0KSB7CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNzY1Mzg0LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzc2NTM4NC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZGU4NWQzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzc2NTM4NC5pbgpAQCAtMCwwICsxLDEwNSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA0IDAgUgorICAvT3BlbkFjdGlvbiAxMCAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbCisgICAgMyAwIFIKKyAgXQorPj4KK2VuZG9iagorJSBQYWdlIG51bWJlciAwLgore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQW5ub3RzIFsKKyAgICA4IDAgUgorICAgIDkgMCBSCisgICAgXQorPj4KK2VuZG9iagorJSBGb3Jtcwore3tvYmplY3QgNCAwfX0gPDwKKyAgL1hGQSBbCisgICAgKHhkcDp4ZHApIDQzIDAgUgorICAgIChmb3JtKSA0OSAwIFIKKyAgICAoPC94ZHA6eGRwPikgNTAgMCBSCisgIF0KKyAgL0ZpZWxkcyBbCisgICAgOCAwIFIKKyAgICA5IDAgUgorICAgIF0KKz4+CitlbmRvYmoKKyUgRmllbGRzCit7e29iamVjdCA4IDB9fSA8PAorICAvRlQgL0NoCisgIC9GZiAwCisgIC9UIChNeUZpZWxkKQorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvUmVjdCBbMCAwIDgwMCA4MDBdCisgIC9PcHQgWyh0ZXN0IDEpICh0ZXN0IDIpXQorICAvQUEgPDwgL0sgMjAgMCBSID4+Cis+PgorZW5kb2JqCislIEZpZWxkcwore3tvYmplY3QgOSAwfX0gPDwKKyAgL0ZUIC9UeAorICAvVCAoTXlGaWVsZDIpCisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9WIChteWZpZWxkXzIpCisgIC9SZWN0IFswIDAgMSAxXQorPj4KK2VuZG9iagorJSBKUyBBY3Rpb24KK3t7b2JqZWN0IDIwIDB9fSA8PAorICAvVHlwZSAvQWN0aW9uCisgIC9TIC9KYXZhU2NyaXB0CisgIC9KUyAyMSAwIFIKKz4+CitlbmRvYmoKKyUgSlMgcHJvZ3JhbSB0byBleGV4dXRlCit7e29iamVjdCAyMSAwfX0gPDwKKz4+CitzdHJlYW0KK2Z1bmN0aW9uIGdjKCkgeworICB0bXAgPSBbXTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCAweDIwMDAwMDsgaSsrKQorICAgIHRtcC5wdXNoKG5ldyBVaW50OEFycmF5KDEwKSk7CisgIHRtcCA9IG51bGw7Cit9Cit0aGlzLmdldEZpZWxkKCJNeUZpZWxkMiIpLnNldEZvY3VzKCk7Cit0aGlzLmdldEZpZWxkKCJNeUZpZWxkIikuYm9yZGVyU3R5bGU9ImRhc2hlZCI7Cit0aGlzLmdldEZpZWxkKCJNeUZpZWxkIikuc2V0Rm9jdXMoKTsKK2djKCk7CitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNDMgMH19IDw8Cis+PnN0cmVhbQorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzx4ZHA6eGRwIHhtbG5zOnhkcD0iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIj4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA0OSAwfX0gPDwKKz4+c3RyZWFtCis8Y29uZmlnPjwvY29uZmlnPgorPHRlbXBsYXRlPjwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNTAgMH19IDw8Cis+PnN0cmVhbQorPC94ZHA6eGRwPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z183NjUzODQucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzc2NTM4NC5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNhYTVmNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z183NjUzODQucGRmCkBAIC0wLDAgKzEsMTU5IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA0IDAgUgorICAvT3BlbkFjdGlvbiAxMCAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFsKKyAgICAzIDAgUgorICBdCis+PgorZW5kb2JqCislIFBhZ2UgbnVtYmVyIDAuCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0Fubm90cyBbCisgICAgOCAwIFIKKyAgICA5IDAgUgorICAgIF0KKz4+CitlbmRvYmoKKyUgRm9ybXMKKzQgMCBvYmogPDwKKyAgL1hGQSBbCisgICAgKHhkcDp4ZHApIDQzIDAgUgorICAgIChmb3JtKSA0OSAwIFIKKyAgICAoPC94ZHA6eGRwPikgNTAgMCBSCisgIF0KKyAgL0ZpZWxkcyBbCisgICAgOCAwIFIKKyAgICA5IDAgUgorICAgIF0KKz4+CitlbmRvYmoKKyUgRmllbGRzCis4IDAgb2JqIDw8CisgIC9GVCAvQ2gKKyAgL0ZmIDAKKyAgL1QgKE15RmllbGQpCisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9SZWN0IFswIDAgODAwIDgwMF0KKyAgL09wdCBbKHRlc3QgMSkgKHRlc3QgMildCisgIC9BQSA8PCAvSyAyMCAwIFIgPj4KKz4+CitlbmRvYmoKKyUgRmllbGRzCis5IDAgb2JqIDw8CisgIC9GVCAvVHgKKyAgL1QgKE15RmllbGQyKQorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvViAobXlmaWVsZF8yKQorICAvUmVjdCBbMCAwIDEgMV0KKz4+CitlbmRvYmoKKyUgSlMgQWN0aW9uCisyMCAwIG9iaiA8PAorICAvVHlwZSAvQWN0aW9uCisgIC9TIC9KYXZhU2NyaXB0CisgIC9KUyAyMSAwIFIKKz4+CitlbmRvYmoKKyUgSlMgcHJvZ3JhbSB0byBleGV4dXRlCisyMSAwIG9iaiA8PAorPj4KK3N0cmVhbQorZnVuY3Rpb24gZ2MoKSB7CisgIHRtcCA9IFtdOworICBmb3IgKHZhciBpID0gMDsgaSA8IDB4MjAwMDAwOyBpKyspCisgICAgdG1wLnB1c2gobmV3IFVpbnQ4QXJyYXkoMTApKTsKKyAgdG1wID0gbnVsbDsKK30KK3RoaXMuZ2V0RmllbGQoIk15RmllbGQyIikuc2V0Rm9jdXMoKTsKK3RoaXMuZ2V0RmllbGQoIk15RmllbGQiKS5ib3JkZXJTdHlsZT0iZGFzaGVkIjsKK3RoaXMuZ2V0RmllbGQoIk15RmllbGQiKS5zZXRGb2N1cygpOworZ2MoKTsKK2VuZHN0cmVhbQorZW5kb2JqCis0MyAwIG9iaiA8PAorPj5zdHJlYW0KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8eGRwOnhkcCB4bWxuczp4ZHA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGRwLyI+CitlbmRzdHJlYW0KK2VuZG9iagorNDkgMCBvYmogPDwKKz4+c3RyZWFtCis8Y29uZmlnPjwvY29uZmlnPgorPHRlbXBsYXRlPjwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagorNTAgMCBvYmogPDwKKz4+c3RyZWFtCis8L3hkcDp4ZHA+CitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCA1MQorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDEwNyAwMDAwMCBuIAorMDAwMDAwMDE5NSAwMDAwMCBuIAorMDAwMDAwMDI5MiAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDQzNiAwMDAwMCBuIAorMDAwMDAwMDYwNCAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDczMiAwMDAwMCBuIAorMDAwMDAwMDgyNCAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMTEwNiAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMTIzMCAwMDAwMCBuIAorMDAwMDAwMTMwOCAwMDAwMCBuIAordHJhaWxlcjw8IC9Sb290IDEgMCBSIC9TaXplIDUxID4+CitzdGFydHhyZWYKKzEzNTcKKyUlRU9GCg==