{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\components\\control\\HtTreeselect.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\components\\control\\HtTreeselect.vue","mtime":1733309211704},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgdXRpbHMgZnJvbSAiQC91dGlscy5qcyI7DQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogImh0LXNlbGVjdCIsDQogIHByb3BzOiBbDQogICAgInZhbGlkYXRlIiwNCiAgICAidmFsdWUiLA0KICAgICJuYW1lIiwNCiAgICAicGVybWlzc2lvbiIsDQogICAgIm11bHRpcGxlIiwNCiAgICAic2VsZWN0bGlzdCIsDQogICAgImxpbmthZ2UiLA0KICAgICJnYW5nZWQiLA0KCSJ0b29sdGlwcGxhY2VtZW50IiwNCgkiZmlsdGVyYWJsZSIsDQoJImFsbG93Q3JlYXRlIiwNCgkic3R5bGVzIg0KICBdLA0KICBkYXRhKCkgew0KICAgIHJldHVybiB7DQogICAgICBpbnB1dFZhbDogW10sDQogICAgICBpbnB1dFZhbG5ldzogIiIsDQogICAgICBjb25maWc6IHt9LA0KICAgICAgdG90YWw6IDEwLA0KICAgICAgcGFnZVNpemU6IDUsDQogICAgICBjdXJyZW50UGFnZTogMSwNCiAgICAgIG9wdGlvbnM6IFtdLA0KCSAgdGVtcG9wdGlvbnM6W10sDQoJICBkZWZhdWx0UHJvcHM6IHsNCgkgICAgY2hpbGRyZW46ICJjaGlsZHJlbiIsDQoJICAgIGxhYmVsOiAidmFsdWUiDQoJICB9DQogICAgfTsNCiAgfSwNCiAgd2F0Y2g6IHsNCiAgICBpbnB1dFZhbDogZnVuY3Rpb24obmV3VmFsLCBvbGRWYWwpIHsNCiAgICAgIHRoaXMuJGVtaXQoImlucHV0IiwgbmV3VmFsKTsNCiAgICB9DQogIH0sDQogIGNvbXB1dGVkOiB7DQogICAgaW5wdXRXcml0ZWFibGU6IGZ1bmN0aW9uKCkgew0KICAgICAgcmV0dXJuIHV0aWxzLmdldFdyaXRlYWJsZSh0aGlzLnBlcm1pc3Npb24pOw0KICAgIH0sDQogICAgaW5wdXRWYWxpZGF0ZTogZnVuY3Rpb24oKSB7DQogICAgICB2YXIgdmFsaWRhdGVPYmogPSB0aGlzLiRzdG9yZS5zdGF0ZS5pbmRleC52YWxpZGF0ZTsNCiAgICAgIHJldHVybiB1dGlscy5hZGRSZXF1aXJlZE9yTm90KA0KICAgICAgICB0aGlzLnBlcm1pc3Npb24sDQogICAgICAgIHRoaXMudmFsaWRhdGUsDQogICAgICAgIHZhbGlkYXRlT2JqLA0KICAgICAgICB0aGlzDQogICAgICApOw0KICAgIH0sDQogICAgaW5wdXROYW1lOiBmdW5jdGlvbigpIHsNCiAgICAgIGxldCBsYWJlbGRlc2MgPSAiIjsNCiAgICAgIGlmKHRoaXMuJHNsb3RzICYmIHRoaXMuJHNsb3RzLmxhYmVsZGVzYyAmJiB0aGlzLiRzbG90cy5sYWJlbGRlc2NbMF0uY2hpbGRyZW4gJiYgdGhpcy4kc2xvdHMubGFiZWxkZXNjWzBdLmNoaWxkcmVuWzBdLnRleHQpew0KICAgICAgICBsYWJlbGRlc2MgPSB0aGlzLiRzbG90cy5sYWJlbGRlc2NbMF0uY2hpbGRyZW5bMF0udGV4dDsNCiAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IHRoaXMubmFtZSA6IHV0aWxzLmdldE5hbWUoKSsgIi0iICtsYWJlbGRlc2M7DQogICAgICB9ZWxzZXsNCiAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IHRoaXMubmFtZSA6IHV0aWxzLmdldE5hbWUoKTsNCiAgICAgIH0NCiAgICB9DQogIH0sDQogIG1vdW50ZWQoKSB7DQogICAgdGhpcy5vcHRpb25zID0gdGhpcy5zZWxlY3RsaXN0ID8gdGhpcy5zZWxlY3RsaXN0IDogW107DQogICAgY29uc3QgX21lID0gdGhpczsNCiAgICBjb25zdCBleHAgPSB0aGlzLmxpbmthZ2U7DQogICAgaWYgKGV4cCAmJiBleHAubGVuZ3RoID4gMCAmJiB0aGlzLiRwYXJlbnQuaXNWaWV3KSB7DQogICAgICBjb25zdCBwSW5zdCA9IHV0aWxzLmdldE9ubGluZUZvcm1JbnN0YW5jZShfbWUpOw0KICAgICAgX21lLnRyYWNlcyA9IHt9Ow0KDQogICAgICBleHAuZm9yRWFjaChtID0+IHsNCiAgICAgICAgbS5lZmZlY3QuZm9yRWFjaChtID0+IHsNCiAgICAgICAgICBjb25zdCBwYXRoID0gYHBlcm1pc3Npb24uZmllbGRzLiR7bS50YXJnZXR9YDsNCiAgICAgICAgICBjb25zdCBvbGRWYWwgPSB1dGlscy5nZXRWYWx1ZUJ5UGF0aChwSW5zdCwgcGF0aCk7DQogICAgICAgICAgX21lLnRyYWNlc1twYXRoXSA9IG9sZFZhbDsNCiAgICAgICAgfSk7DQoNCiAgICAgICAgX21lLiR3YXRjaCgNCiAgICAgICAgICAiaW5wdXRWYWwiLA0KICAgICAgICAgIGZ1bmN0aW9uKG5ld1ZhbCwgb2xkVmFsKSB7DQogICAgICAgICAgICBpZiAobmV3VmFsICE9PSBvbGRWYWwgJiYgbS52YWx1ZSA9PSBuZXdWYWwpIHsNCiAgICAgICAgICAgICAgbS5lZmZlY3QuZm9yRWFjaChlZiA9PiB7DQogICAgICAgICAgICAgICAgX21lLiRzdG9yZS5kaXNwYXRjaCgiaW5kZXgvZGVsVmFsaWRhdGUiKTsNCiAgICAgICAgICAgICAgICBjb25zdCBwID0gYHBlcm1pc3Npb24uZmllbGRzLiR7ZWYudGFyZ2V0fWA7DQogICAgICAgICAgICAgICAgbGV0IHZhbCA9IF9tZS50cmFjZXNbcF07DQogICAgICAgICAgICAgICAgaWYgKG0udmFsdWUgPT09IG5ld1ZhbCkgew0KICAgICAgICAgICAgICAgICAgdmFsID0gZWYudHlwZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgX21lLiRzdG9yZS5kaXNwYXRjaCgiaW5kZXgvbGlua2FnZVZhbGlkYXRlIiwgZWYpOw0KICAgICAgICAgICAgICAgIHV0aWxzLnNldFZhbHVlQnlQYXRoKHBJbnN0LCBwLCB2YWwpOw0KICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9LA0KICAgICAgICAgIHsgaW1tZWRpYXRlOiB0cnVlIH0NCiAgICAgICAgKTsNCiAgICAgIH0pOw0KICAgIH0NCiAgICBjb25zdCBnYW5nZWQgPSB0aGlzLmdhbmdlZDsNCiAgICAvL+WIpOaWreaYr+WQpuacieWPguaVsOe7keWumg0KICAgIGlmIChnYW5nZWQgJiYgZ2FuZ2VkLmJpbmQgJiYgdGhpcy5jb25maWcpIHsNCiAgICAgIGNvbnN0IGJpbmQgPSBnYW5nZWQuYmluZDsNCiAgICAgIGNvbnN0IGZvcm1WbSA9IHV0aWxzLmdldE9ubGluZUZvcm1JbnN0YW5jZShfbWUpOw0KICAgICAgZm9ybVZtLiR3YXRjaCgNCiAgICAgICAgImRhdGEiLA0KICAgICAgICBmdW5jdGlvbihuZXdWYWwsIG9sZFZhbCkgew0KICAgICAgICAgIGZvciAodmFyIGtleSBpbiBiaW5kKSB7DQogICAgICAgICAgICBjb25zdCBwSW5zdCA9IHV0aWxzLmdldE9ubGluZUZvcm1JbnN0YW5jZShfbWUpOw0KICAgICAgICAgICAgY29uc3QgdmFsID0gdXRpbHMuZ2V0VmFsdWVCeVBhdGgocEluc3QsIGJpbmRba2V5XSk7DQogICAgICAgICAgICBfbWUuc2VhcmNoKGZhbHNlLCB2YWwpOw0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgeyBkZWVwOiB0cnVlIH0NCiAgICAgICk7DQogICAgfQ0KDQogICAgLy/lm57mmL4NCiAgICBpZiAoDQogICAgICB0aGlzLmlucHV0VmFsICYmDQogICAgICB0aGlzLmlucHV0VmFsLmNvbnN0cnVjdG9yID09IEFycmF5ICYmDQogICAgICB0aGlzLmlucHV0VmFsLmxlbmd0aCA+IDAgJiYNCiAgICAgIHRoaXMuaW5wdXRWYWxuZXcgPT0gIiIgJiYNCiAgICAgIHRoaXMuc2VsZWN0bGlzdA0KICAgICkgew0KICAgICAgdmFyIGlucHV0VmFsQXJyID0gW107DQogICAgICBpZiAoISh0aGlzLmlucHV0VmFsIGluc3RhbmNlb2YgQXJyYXkpKSB7DQogICAgICAgIHRoaXMuaW5wdXRWYWwgPSB0aGlzLmlucHV0VmFsLnNwbGl0KCIsIik7DQogICAgICB9DQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW5wdXRWYWwubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgZm9yICh2YXIgYSA9IDA7IGEgPCB0aGlzLnNlbGVjdGxpc3QubGVuZ3RoOyBhKyspIHsNCiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RsaXN0W2FdLmtleSA9PSB0aGlzLmlucHV0VmFsW2ldKSB7DQogICAgICAgICAgICBpbnB1dFZhbEFyci5wdXNoKHRoaXMuc2VsZWN0bGlzdFthXS52YWx1ZSk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIHRoaXMuaW5wdXRWYWxuZXcgPSBpbnB1dFZhbEFyci5qb2luKCIsIik7DQogICAgfSBlbHNlIHsNCiAgICAgIGlmICgNCiAgICAgICAgdGhpcy5pbnB1dFZhbCAmJg0KICAgICAgICB0aGlzLmlucHV0VmFsLmxlbmd0aCA+IDAgJiYNCiAgICAgICAgdGhpcy5pbnB1dFZhbCBpbnN0YW5jZW9mIEFycmF5DQogICAgICApIHsNCiAgICAgICAgdGhpcy5pbnB1dFZhbCA9IHRoaXMuaW5wdXRWYWwuc3BsaXQoIiwiKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMuaW5wdXRWYWxuZXcgPSB0aGlzLmlucHV0VmFsOw0KICAgICAgfQ0KICAgICAgaWYgKHRoaXMuaW5wdXRWYWwgIT0gIiIgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCAhPSAwKSB7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5vcHRpb25zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgaWYgKHRoaXMub3B0aW9uc1tpXS5rZXkgPT0gdGhpcy5pbnB1dFZhbCkgew0KICAgICAgICAgICAgdGhpcy5pbnB1dFZhbG5ldyA9IHRoaXMub3B0aW9uc1tpXS52YWx1ZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgY3JlYXRlZCgpIHsNCiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLnNlbGVjdGxpc3QgPyB0aGlzLnNlbGVjdGxpc3QgOiBbXTsNCiAgICAvL+WKqOaAgeS8oOWFpQ0KICAgIGlmICh0aGlzLmdhbmdlZCAmJiB0aGlzLmdhbmdlZC5hbGlhcyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoIDwgMSkgew0KICAgICAgdGhpcy4kc3RvcmUuZGlzcGF0Y2goImZvcm0vZ2V0QnlBbGlhc0NxIiwgdGhpcy5nYW5nZWQuYWxpYXMpLnRoZW4ocmVzID0+IHsNCiAgICAgICAgdGhpcy5jb25maWcgPSByZXM7DQogICAgICAgIHRoaXMuc2VhcmNoKCk7DQogICAgICB9KTsNCiAgICB9DQogICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5pbmRleE9mKCJbIikgPT0gMCkgew0KICAgICAgdmFyIHNlbGVjdFZhbCA9IHRoaXMudmFsdWUuc3Vic3RyKDAsIHRoaXMudmFsdWUubGVuZ3RoIC0gMSk7DQogICAgICBzZWxlY3RWYWwgPSBzZWxlY3RWYWwuc3Vic3RyKDEpOw0KICAgICAgaWYgKHNlbGVjdFZhbCA9PT0gIiIpIHsNCiAgICAgICAgdGhpcy5pbnB1dFZhbCA9IHNlbGVjdFZhbDsNCiAgICAgICAgcmV0dXJuOw0KICAgICAgfQ0KICAgICAgdmFyIHNlbGVjdFZhbDIgPSBzZWxlY3RWYWwuc3BsaXQoIiwiKTsNCiAgICAgIHZhciBzZWxlY3RWYWxuZXcgPSBbXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0VmFsMi5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZWxlY3RWYWxuZXcucHVzaChzZWxlY3RWYWwyW2ldLnRyaW0oKSk7DQogICAgICB9DQogICAgICB0aGlzLmlucHV0VmFsID0gc2VsZWN0VmFsbmV3Ow0KICAgIH0gZWxzZSB7DQogICAgICB0aGlzLmlucHV0VmFsID0gdGhpcy52YWx1ZTsNCiAgICB9DQogICAgdGhpcy4kdmFsaWRhdG9yID0gdGhpcy4kcm9vdC4kdmFsaWRhdG9yOw0KICB9LA0KICBtZXRob2RzOiB7DQogICAgY2xlYXIoKSB7DQoJICBpZih0aGlzLm11bHRpcGxlKXsNCgkJdGhpcy50ZW1wb3B0aW9ucyA9IFtdOw0KCQl0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpIHsNCgkJICB0aGlzLiRyZWZzLnRyZWVzZWxlY3RFbFRyZWUuc2V0Q2hlY2tlZEtleXMoW10sdHJ1ZSk7DQoJICAgIH0pDQoJICB9ZWxzZXsNCgkJdGhpcy4kcmVmcy50cmVlc2VsZWN0RWxUcmVlLnNldEN1cnJlbnROb2RlKHt9KTsNCgkgIH0NCiAgICB9LA0KICAgIGNsaWNrTmF0aXZlOiBmdW5jdGlvbigpIHsNCiAgICAgIC8v5Yqo5oCB5Lyg5YWlDQogICAgICBpZiAodGhpcy5nYW5nZWQgJiYgdGhpcy5nYW5nZWQuYWxpYXMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA8IDEpIHsNCiAgICAgICAgdGhpcy4kc3RvcmUNCiAgICAgICAgICAuZGlzcGF0Y2goImZvcm0vZ2V0QnlBbGlhc0NxIiwgdGhpcy5nYW5nZWQuYWxpYXMpDQogICAgICAgICAgLnRoZW4ocmVzID0+IHsNCiAgICAgICAgICAgIHRoaXMuY29uZmlnID0gcmVzOw0KICAgICAgICAgICAgdGhpcy5zZWFyY2goKTsNCiAgICAgICAgICB9KTsNCiAgICAgIH0NCiAgICB9LA0KICAgIHNlbGVjdEJsdXI6IGZ1bmN0aW9uKHZhbCkgew0KICAgICAgdGhpcy5zZWFyY2goKTsNCiAgICB9LA0KCWhhbmRsZUNoZWNrQ2hhbmdlKGRhdGEpew0KCQlsZXQgY2hlY2tlZE5vZGVzID0gdGhpcy4kcmVmcy50cmVlc2VsZWN0RWxUcmVlLmdldENoZWNrZWROb2RlcygpOw0KCQl0aGlzLmlucHV0VmFsID0gW107DQoJCXRoaXMudGVtcG9wdGlvbnMgPSBjaGVja2VkTm9kZXM7DQoJCWZvcihsZXQgZGF0YSBvZiBjaGVja2VkTm9kZXMpIHsNCgkJCXRoaXMuaW5wdXRWYWwucHVzaChkYXRhLmtleSk7DQoNCgkJfQ0KCX0sDQoJaGFuZGxlTm9kZUNsaWNrKGRhdGEpIHsNCgkgIGlmKCF0aGlzLm11bHRpcGxlKXsNCgkJdGhpcy5pbnB1dFZhbCA9IGRhdGEudmFsdWU7DQoJCXRoaXMuJHJlZnMudHJlZXNlbGVjdC5ibHVyKCk7DQoJCXNldFRpbWVvdXQoKCkgPT4gew0KCQkgIHRoaXMuJHZhbGlkYXRvci52YWxpZGF0ZSgpOw0KCQl9KTsNCgkgIH0NCg0KCX0sDQoJZmlsdGVyTm9kZSh2YWx1ZSwgZGF0YSkgew0KCQlpZiAoIXZhbHVlKSByZXR1cm4gdHJ1ZTsNCgkJcmV0dXJuIGRhdGEudmFsdWUuaW5kZXhPZih2YWx1ZSkgIT09IC0xOw0KCX0sDQoJZmlsdGVyTWV0aG9kKHF1ZXJ5KSB7DQoJCXRoaXMuJHJlZnMudHJlZXNlbGVjdEVsVHJlZS5maWx0ZXIocXVlcnkpOw0KCX0sDQogICAgcmVtb3RlTWV0aG9kOiBmdW5jdGlvbih2YWwpIHsNCiAgICAgIGlmICh2YWwpIHsNCiAgICAgICAgdGhpcy5zZWFyY2goZmFsc2UsIHZhbCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLnBhcmFtID0gIiI7DQogICAgICAgIHRoaXMuc2VhcmNoKCk7DQogICAgICB9DQogICAgfSwNCiAgICBoYW5kbGVDdXJyZW50Q2hhbmdlOiBmdW5jdGlvbihjdXJyZW50UGFnZSkgew0KICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IGN1cnJlbnRQYWdlOw0KICAgICAgdGhpcy5zZWFyY2goY3VycmVudFBhZ2UpOw0KICAgIH0sDQogICAgc2VhcmNoKGN1cnJlbnRQYWdlLCBwYXJhbSkgew0KICAgICAgaWYgKCF0aGlzLmNvbmZpZykgcmV0dXJuOw0KICAgICAgdmFyIHN0ciA9IHRoaXMuY29uZmlnOw0KICAgICAgY29uc3QgX3RoaXMgPSB0aGlzOw0KICAgICAgdmFyIGdhbmdlZCA9IHRoaXMuZ2FuZ2VkOw0KICAgICAgdGhpcy5wYWdlU2l6ZSA9IHN0ci5wYWdlU2l6ZTsNCiAgICAgIC8vIGlmKHN0ci5uZWVkUGFnZSA9PT0gMSl7DQogICAgICB2YXIgcGFnZUJlYW4gPSB7DQogICAgICAgIHBhZ2VCZWFuOiB7DQogICAgICAgICAgcGFnZTogY3VycmVudFBhZ2UgPyBjdXJyZW50UGFnZSA6IDEsDQogICAgICAgICAgcGFnZVNpemU6IHN0ci5wYWdlU2l6ZSwNCiAgICAgICAgICBzaG93VG90YWw6ICJ0cnVlIg0KICAgICAgICB9DQogICAgICB9Ow0KICAgICAgaWYgKHBhcmFtKSB7DQogICAgICAgIGlmIChzdHIuZHNUeXBlID09ICJkYXRhU291cmNlIikgew0KICAgICAgICAgIGxldCBCYXNlNjQgPSByZXF1aXJlKCJqcy1iYXNlNjQiKS5CYXNlNjQ7DQogICAgICAgICAgc3RyLmN1cnJlbnRQYWdlID0gY3VycmVudFBhZ2UgPyBjdXJyZW50UGFnZSA6IDE7DQogICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGdhbmdlZC5iaW5kKSA9PT0gInt9Iikgew0KICAgICAgICAgICAgc3RyLnF1ZXJ5RGF0YSA9IEJhc2U2NC5lbmNvZGUoDQogICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KFt7IGtleTogZ2FuZ2VkLnZhbHVlQmluZCwgdmFsdWU6IHBhcmFtIH1dKQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdmFyIHF1ZXJ5RGF0YSA9IFtdOw0KICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIGdhbmdlZC5iaW5kKSB7DQogICAgICAgICAgICAgIGNvbnN0IHBJbnN0ID0gdXRpbHMuZ2V0T25saW5lRm9ybUluc3RhbmNlKF90aGlzKTsNCiAgICAgICAgICAgICAgY29uc3QgdmFsID0gdXRpbHMuZ2V0VmFsdWVCeVBhdGgocEluc3QsIGdhbmdlZC5iaW5kW2tleV0pOw0KICAgICAgICAgICAgICBpZiAodmFsKSB7DQogICAgICAgICAgICAgICAgcXVlcnlEYXRhLnB1c2goeyBrZXk6IGtleSwgdmFsdWU6IHZhbCB9KTsNCiAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBxdWVyeURhdGEucHVzaCh7IGtleToga2V5LCB2YWx1ZTogcGFyYW0gfSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN0ci5xdWVyeURhdGEgPSBCYXNlNjQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KHF1ZXJ5RGF0YSkpOw0KICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB2YXIgdGVtcGxhdGVQYSA9IHRoaXMuY29uZmlnLmRhdGFQYXJhbTsNCiAgICAgICAgICBpZiAodGhpcy5jb25maWcucmVxdWVzdFR5cGUgPT0gIlBPU1QiICYmIHRlbXBsYXRlUGEpIHsNCiAgICAgICAgICAgIHZhciBjb25kaXRpb25maWVsZCA9IEpTT04ucGFyc2Uoc3RyLmNvbmRpdGlvbmZpZWxkKTsNCiAgICAgICAgICAgIGNvbmRpdGlvbmZpZWxkLmZvckVhY2goZWxlID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgcEluc3QgPSB1dGlscy5nZXRPbmxpbmVGb3JtSW5zdGFuY2UoX3RoaXMpOw0KICAgICAgICAgICAgICBjb25zdCB2YWwgPSB1dGlscy5nZXRWYWx1ZUJ5UGF0aChwSW5zdCwgZ2FuZ2VkLmJpbmRbZWxlLmZpZWxkXSk7DQogICAgICAgICAgICAgIGlmICh2YWwpIHsNCiAgICAgICAgICAgICAgICB0ZW1wbGF0ZVBhID0gdGVtcGxhdGVQYS5yZXBsYWNlKA0KICAgICAgICAgICAgICAgICAgbmV3IFJlZ0V4cCgiXFx7IiArIGVsZS5maWVsZCArICJcXH0iLCAiZyIpLA0KICAgICAgICAgICAgICAgICAgdmFsDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICB0ZW1wbGF0ZVBhID0gdGVtcGxhdGVQYS5yZXBsYWNlKA0KICAgICAgICAgICAgICAgICAgbmV3IFJlZ0V4cCgiXFx7IiArIGVsZS5maWVsZCArICJcXH0iLCAiZyIpLA0KICAgICAgICAgICAgICAgICAgcGFyYW0NCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIH0NCiAgICAgICAgICBzdHIucGFnZUJlYW4gPSB1dGlscy5wYXJzZVRvSnNvbih0ZW1wbGF0ZVBhKTsNCiAgICAgICAgfQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgc3RyLnBhZ2VCZWFuID0gcGFnZUJlYW47DQogICAgICAgIHN0ci5jdXJyZW50UGFnZSA9IGN1cnJlbnRQYWdlID8gY3VycmVudFBhZ2UgOiAxOw0KICAgICAgICBzdHIucXVlcnlEYXRhID0gIiI7DQogICAgICB9DQogICAgICAvL30NCiAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCJmb3JtL3NlbGVjdFF1ZXJ5Iiwgc3RyKS50aGVuKHJlcyA9PiB7DQoJCWlmKHRoaXMuY29uZmlnICYmdGhpcy5jb25maWcuZHNUeXBlID09PSAicmVzdGZ1bCIpew0KCQkJX3RoaXMub3B0aW9ucyA9IHJlcy5yb3dzOw0KCQkJcmV0dXJuIDsNCgkJfQ0KICAgICAgICBfdGhpcy50b3RhbCA9IHJlcy50b3RhbDsNCiAgICAgICAgX3RoaXMub3B0aW9ucyA9IFtdOw0KICAgICAgICByZXMucm93cy5mb3JFYWNoKG0gPT4gew0KICAgICAgICAgIHZhciBvcHRpb24gPSB7fTsNCiAgICAgICAgICBpZiAoX3RoaXMuZ2FuZ2VkLnZhbHVlQmluZCkgew0KICAgICAgICAgICAgb3B0aW9uLmtleSA9IG1bZ2FuZ2VkLnZhbHVlQmluZF07DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmIChfdGhpcy5nYW5nZWQubGFiZWxCaW5kKSB7DQogICAgICAgICAgICBvcHRpb24udmFsdWUgPSBtW2dhbmdlZC5sYWJlbEJpbmRdOw0KICAgICAgICAgIH0NCiAgICAgICAgICBfdGhpcy5vcHRpb25zLnB1c2gob3B0aW9uKTsNCiAgICAgICAgfSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgX3RoaXMub3B0aW9ucy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgIGlmIChfdGhpcy5pbnB1dFZhbG5ldyA9PSBfdGhpcy5vcHRpb25zW2ldLmtleSkgew0KICAgICAgICAgICAgX3RoaXMuaW5wdXRWYWxuZXcgPSBfdGhpcy5vcHRpb25zW2ldLnZhbHVlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9KTsNCiAgICB9DQogIH0NCn07DQo="},null]}