{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\components\\TreePanel\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\components\\TreePanel\\index.vue","mtime":1787567871522},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICJUcmVlU2lkZWJhciIsDQogIHByb3BzOiB7DQogICAgLy8g5qCR5b2i5pWw5o2uDQogICAgdHJlZURhdGE6IHsNCiAgICAgIHR5cGU6IEFycmF5LA0KICAgICAgZGVmYXVsdDogKCkgPT4gW10NCiAgICB9LA0KICAgIC8vIOagh+mimA0KICAgIHRpdGxlOiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAn5qCR5b2i57uT5p6EJw0KICAgIH0sDQogICAgLy8g5qCH6aKY5Zu+5qCH57G75ZCNDQogICAgdGl0bGVJY29uQ2xhc3M6IHsNCiAgICAgIHR5cGU6IFN0cmluZywNCiAgICAgIGRlZmF1bHQ6ICdlbC1pY29uLW9mZmljZS1idWlsZGluZycNCiAgICB9LA0KICAgIC8vIOaYr+WQpuaYvuekuuaQnOe0ouahhg0KICAgIHNob3dTZWFyY2g6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiB0cnVlDQogICAgfSwNCiAgICAvLyDmkJzntKLmoYbljaDkvY3nrKYNCiAgICBzZWFyY2hQbGFjZWhvbGRlcjogew0KICAgICAgdHlwZTogU3RyaW5nLA0KICAgICAgZGVmYXVsdDogJ+ivt+i+k+WFpeWQjeensCcNCiAgICB9LA0KICAgIC8vIOaYr+WQpum7mOiupOaUtui1t+S+p+i+ueagjw0KICAgIGRlZmF1bHRDb2xsYXBzZWQ6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgLy8g5qCR6YWN572u6aG5DQogICAgdHJlZVByb3BzOiB7DQogICAgICB0eXBlOiBPYmplY3QsDQogICAgICBkZWZhdWx0OiAoKSA9PiAoew0KICAgICAgICBjaGlsZHJlbjogImNoaWxkcmVuIiwNCiAgICAgICAgbGFiZWw6ICJsYWJlbCINCiAgICAgIH0pDQogICAgfSwNCiAgICAvLyDoioLngrnllK/kuIDmoIfor4blrZfmrrUNCiAgICBub2RlS2V5OiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAnaWQnDQogICAgfSwNCiAgICAvLyDmmK/lkKblnKjngrnlh7voioLngrnml7blsZXlvIDmiJbmlLbotbcNCiAgICBleHBhbmRPbkNsaWNrTm9kZTogew0KICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgIGRlZmF1bHQ6IGZhbHNlDQogICAgfSwNCiAgICAvLyDmmK/lkKbmmL7npLrlpI3pgInmoYYNCiAgICBzaG93Q2hlY2tib3g6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgLy8g5piv5ZCm5Lil5qC855qE6YG15b6q54i25a2Q5LiN5LqS55u45YWz6IGUDQogICAgY2hlY2tTdHJpY3RseTogew0KICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgIGRlZmF1bHQ6IGZhbHNlDQogICAgfSwNCiAgICAvLyDmmK/lkKbpu5jorqTlsZXlvIDmiYDmnInoioLngrkNCiAgICBkZWZhdWx0RXhwYW5kQWxsOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIC8vIOm7mOiupOWxleW8gOeahOiKgueCueeahGtleeaVsOe7hA0KICAgIGRlZmF1bHRFeHBhbmRlZEtleXM6IHsNCiAgICAgIHR5cGU6IEFycmF5LA0KICAgICAgZGVmYXVsdDogKCkgPT4gW10NCiAgICB9LA0KICAgIC8vIOm7mOiupOWuveW6pg0KICAgIGRlZmF1bHRXaWR0aDogew0KICAgICAgdHlwZTogTnVtYmVyLA0KICAgICAgZGVmYXVsdDogMjIwDQogICAgfSwNCiAgICAvLyDmlLbotbfml7bnmoTlrr3luqYNCiAgICBjb2xsYXBzZWRXaWR0aDogew0KICAgICAgdHlwZTogTnVtYmVyLA0KICAgICAgZGVmYXVsdDogMjANCiAgICB9LA0KICAgIC8vIOacgOWwj+WuveW6pg0KICAgIG1pbldpZHRoOiB7DQogICAgICB0eXBlOiBOdW1iZXIsDQogICAgICBkZWZhdWx0OiAxODANCiAgICB9LA0KICAgIC8vIOacgOWkp+WuveW6pg0KICAgIG1heFdpZHRoOiB7DQogICAgICB0eXBlOiBOdW1iZXIsDQogICAgICBkZWZhdWx0OiA0MDANCiAgICB9LA0KICAgIC8vIOacrOWcsOWtmOWCqOeahOWuveW6pmtleQ0KICAgIHN0b3JhZ2VLZXk6IHsNCiAgICAgIHR5cGU6IFN0cmluZywNCiAgICAgIGRlZmF1bHQ6ICd0cmVlLXNpZGViYXItd2lkdGgnDQogICAgfSwNCiAgICAvLyDmmK/lkKblkK/nlKjmnKzlnLDlrZjlgqjlrr3luqYNCiAgICBlbmFibGVTdG9yYWdlOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogdHJ1ZQ0KICAgIH0sDQogICAgLy8g6Ieq5a6a5LmJ6L+H5ruk5pa55rOVDQogICAgZmlsdGVyTWV0aG9kOiB7DQogICAgICB0eXBlOiBGdW5jdGlvbiwNCiAgICAgIGRlZmF1bHQ6IG51bGwNCiAgICB9DQogIH0sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIHNlYXJjaEtleXdvcmQ6ICIiLA0KICAgICAgY29sbGFwc2VkOiB0aGlzLmRlZmF1bHRDb2xsYXBzZWQsDQogICAgICBzaWRlYmFyV2lkdGg6IHRoaXMuZGVmYXVsdENvbGxhcHNlZCA/IHRoaXMuY29sbGFwc2VkV2lkdGggOiB0aGlzLmRlZmF1bHRXaWR0aCwNCiAgICAgIGlzUmVzaXppbmc6IGZhbHNlLA0KICAgICAgc3RhcnRYOiAwLA0KICAgICAgc3RhcnRXaWR0aDogMCwNCiAgICAgIHNhdmVXaWR0aFRpbWVyOiBudWxsLA0KICAgICAgcmFmSWQ6IG51bGwsDQogICAgICBpc0xvYWRpbmdGcm9tU3RvcmFnZTogZmFsc2UsDQogICAgICBleHBhbmRlZEFsbDogdGhpcy5kZWZhdWx0RXhwYW5kQWxsDQogICAgfTsNCiAgfSwNCiAgY29tcHV0ZWQ6IHsNCiAgICAvLyDorqHnrpflvZPliY3mmK/lkKblhajpg6jlsZXlvIANCiAgICBpc0V4cGFuZGVkQWxsOiB7DQogICAgICBnZXQoKSB7DQogICAgICAgIHJldHVybiB0aGlzLmV4cGFuZGVkQWxsOw0KICAgICAgfSwNCiAgICAgIHNldCh2YWwpIHsNCiAgICAgICAgdGhpcy5leHBhbmRlZEFsbCA9IHZhbDsNCiAgICAgIH0NCiAgICB9DQogIH0sDQogIHdhdGNoOiB7DQogICAgY29sbGFwc2VkKG5ld1ZhbCwgb2xkVmFsKSB7DQogICAgICBpZiAobmV3VmFsICE9PSBvbGRWYWwpIHsNCiAgICAgICAgdGhpcy5oYW5kbGVDb2xsYXBzZUNoYW5nZShuZXdWYWwpOw0KICAgICAgICB0aGlzLiRlbWl0KCJjb2xsYXBzZWQtY2hhbmdlIiwgbmV3VmFsKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8vIOebkeWQrOWGhemDqOWxleW8gOeKtuaAgeWPmOWMlu+8jOinpuWPkeWunumZheagkeeahOWxleW8gC/mlLbotbcNCiAgICBleHBhbmRlZEFsbChuZXdWYWwpIHsNCiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsNCiAgICAgICAgaWYgKG5ld1ZhbCkgew0KICAgICAgICAgIHRoaXMuZXhwYW5kQWxsTm9kZXMoKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLmNvbGxhcHNlQWxsTm9kZXMoKTsNCiAgICAgICAgfQ0KICAgICAgfSk7DQogICAgICB0aGlzLiRlbWl0KCJleHBhbmRlZC1hbGwtY2hhbmdlIiwgbmV3VmFsKTsNCiAgICB9LA0KICAgIC8vIOebkeWQrOaQnOe0ouWFs+mUruivjQ0KICAgIHNlYXJjaEtleXdvcmQodmFsKSB7DQogICAgICBpZiAodGhpcy4kcmVmcy50cmVlUmVmKSB7DQogICAgICAgIHRoaXMuJHJlZnMudHJlZVJlZi5maWx0ZXIodmFsKTsNCiAgICAgICAgdGhpcy4kZW1pdCgic2VhcmNoIiwgdmFsKTsNCiAgICAgIH0NCiAgICB9DQogIH0sDQogIG1vdW50ZWQoKSB7DQogICAgdGhpcy5pc0xvYWRpbmdGcm9tU3RvcmFnZSA9IHRydWUNCiAgICBpZiAoIXRoaXMuY29sbGFwc2VkICYmIHRoaXMuZW5hYmxlU3RvcmFnZSkgew0KICAgICAgY29uc3Qgc2F2ZWRXaWR0aCA9IHRoaXMuZ2V0U2F2ZWRXaWR0aCgpOw0KICAgICAgaWYgKHNhdmVkV2lkdGggIT09IG51bGwpIHsNCiAgICAgICAgdGhpcy5zaWRlYmFyV2lkdGggPSBzYXZlZFdpZHRoOw0KICAgICAgfQ0KICAgIH0NCiAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7DQogICAgICB0aGlzLmlzTG9hZGluZ0Zyb21TdG9yYWdlID0gZmFsc2UNCiAgICB9KQ0KICAgIGlmICh0aGlzLmV4cGFuZGVkQWxsKSB7DQogICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7DQogICAgICAgIHRoaXMuZXhwYW5kQWxsTm9kZXMoKTsNCiAgICAgIH0pOw0KICAgIH0NCiAgfSwNCiAgYmVmb3JlRGVzdHJveSgpIHsNCiAgICB0aGlzLmNsZWFudXAoKTsNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIC8vIOiKgueCuei/h+a7pOaWueazlQ0KICAgIGZpbHRlck5vZGVNZXRob2QodmFsdWUsIGRhdGEpIHsNCiAgICAgIGlmICh0aGlzLmZpbHRlck1ldGhvZCkgew0KICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJNZXRob2QodmFsdWUsIGRhdGEpOw0KICAgICAgfQ0KICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHRydWU7DQogICAgICByZXR1cm4gZGF0YS5sYWJlbCAmJiBkYXRhLmxhYmVsLmluZGV4T2YodmFsdWUpICE9PSAtMTsNCiAgICB9LA0KICAgIC8vIOa4heeQhuWumuaXtuWZqOWSjOWKqOeUu+W4pw0KICAgIGNsZWFudXAoKSB7DQogICAgICBpZiAodGhpcy5yYWZJZCkgew0KICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnJhZklkKTsNCiAgICAgICAgdGhpcy5yYWZJZCA9IG51bGw7DQogICAgICB9DQogICAgICBpZiAodGhpcy5zYXZlV2lkdGhUaW1lcikgew0KICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zYXZlV2lkdGhUaW1lcik7DQogICAgICAgIHRoaXMuc2F2ZVdpZHRoVGltZXIgPSBudWxsOw0KICAgICAgfQ0KICAgIH0sDQogICAgLy8g5aSE55CG5pS26LW3L+WxleW8gOeKtuaAgeWPmOWMlg0KICAgIGhhbmRsZUNvbGxhcHNlQ2hhbmdlKGlzQ29sbGFwc2VkKSB7DQogICAgICBpZiAoaXNDb2xsYXBzZWQpIHsNCiAgICAgICAgdGhpcy5zYXZlV2lkdGhUb1N0b3JhZ2UoKTsNCiAgICAgICAgdGhpcy5zaWRlYmFyV2lkdGggPSB0aGlzLmNvbGxhcHNlZFdpZHRoOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgY29uc3Qgc2F2ZWRXaWR0aCA9IHRoaXMuZ2V0U2F2ZWRXaWR0aCgpOw0KICAgICAgICB0aGlzLnNpZGViYXJXaWR0aCA9IHNhdmVkV2lkdGggIT09IG51bGwgPyBzYXZlZFdpZHRoIDogdGhpcy5kZWZhdWx0V2lkdGg7DQogICAgICB9DQogICAgfSwNCiAgICAvLyDojrflj5bkv53lrZjnmoTlrr3luqYNCiAgICBnZXRTYXZlZFdpZHRoKCkgew0KICAgICAgaWYgKCF0aGlzLmVuYWJsZVN0b3JhZ2UpIHsNCiAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICB9DQogICAgICB0cnkgew0KICAgICAgICBjb25zdCBzYXZlZFdpZHRoID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTsNCiAgICAgICAgaWYgKHNhdmVkV2lkdGgpIHsNCiAgICAgICAgICBjb25zdCB3aWR0aCA9IHBhcnNlSW50KHNhdmVkV2lkdGgsIDEwKTsNCiAgICAgICAgICBpZiAoIWlzTmFOKHdpZHRoKSAmJiB3aWR0aCA+PSB0aGlzLm1pbldpZHRoICYmIHdpZHRoIDw9IHRoaXMubWF4V2lkdGgpIHsNCiAgICAgICAgICAgIHJldHVybiB3aWR0aDsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGxvYWQgc2lkZWJhciB3aWR0aCBmcm9tIHN0b3JhZ2Ugd2l0aCBrZXkgJHt0aGlzLnN0b3JhZ2VLZXl9OmAsIGVycm9yKTsNCiAgICAgIH0NCiAgICAgIHJldHVybiBudWxsOw0KICAgIH0sDQogICAgLy8g5L+d5a2Y5a695bqm5Yiw5pys5Zyw5a2Y5YKoDQogICAgc2F2ZVdpZHRoVG9TdG9yYWdlKCkgew0KICAgICAgaWYgKHRoaXMuY29sbGFwc2VkIHx8ICF0aGlzLmVuYWJsZVN0b3JhZ2UpIHJldHVybjsNCiAgICAgIHRyeSB7DQogICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5zaWRlYmFyV2lkdGgudG9TdHJpbmcoKSk7DQogICAgICB9IGNhdGNoIChlcnJvcikgew0KICAgICAgICBjb25zb2xlLndhcm4oYEZhaWxlZCB0byBzYXZlIHNpZGViYXIgd2lkdGggdG8gc3RvcmFnZSB3aXRoIGtleSAke3RoaXMuc3RvcmFnZUtleX06YCwgZXJyb3IpOw0KICAgICAgfQ0KICAgIH0sDQogICAgLy8g5YiH5o2i5L6n6L655qCP5pS26LW3L+WxleW8gOeKtuaAgQ0KICAgIHRvZ2dsZUNvbGxhcHNlZCgpIHsNCiAgICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkOw0KICAgIH0sDQogICAgLy8g5YiH5o2i5bGV5byAL+aKmOWPoOaJgOacieiKgueCuQ0KICAgIHRvZ2dsZUV4cGFuZEFsbCgpIHsNCiAgICAgIHRoaXMuaXNFeHBhbmRlZEFsbCA9ICF0aGlzLmlzRXhwYW5kZWRBbGw7DQogICAgfSwNCiAgICAvLyDlsZXlvIDmiYDmnInoioLngrkNCiAgICBleHBhbmRBbGxOb2RlcygpIHsNCiAgICAgIGlmICghdGhpcy4kcmVmcy50cmVlUmVmKSByZXR1cm47DQogICAgICBjb25zdCBhbGxOb2RlcyA9IHRoaXMuZ2V0QWxsTm9kZXModGhpcy4kcmVmcy50cmVlUmVmLnJvb3QpOw0KICAgICAgYWxsTm9kZXMuZm9yRWFjaChub2RlID0+IHsNCiAgICAgICAgaWYgKG5vZGUuZXhwYW5kZWQgIT09IHVuZGVmaW5lZCAmJiAhbm9kZS5leHBhbmRlZCkgew0KICAgICAgICAgIG5vZGUuZXhwYW5kZWQgPSB0cnVlOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOiOt+WPluaJgOacieiKgueCuQ0KICAgIGdldEFsbE5vZGVzKHJvb3ROb2RlKSB7DQogICAgICBjb25zdCBub2RlcyA9IFtdOw0KICAgICAgY29uc3QgdHJhdmVyc2UgPSAobm9kZSkgPT4gew0KICAgICAgICBpZiAoIW5vZGUpIHJldHVybjsNCiAgICAgICAgbm9kZXMucHVzaChub2RlKTsNCiAgICAgICAgaWYgKG5vZGUuY2hpbGROb2RlcyAmJiBub2RlLmNoaWxkTm9kZXMubGVuZ3RoKSB7DQogICAgICAgICAgbm9kZS5jaGlsZE5vZGVzLmZvckVhY2goY2hpbGQgPT4gdHJhdmVyc2UoY2hpbGQpKTsNCiAgICAgICAgfQ0KICAgICAgfTsNCiAgICAgIHRyYXZlcnNlKHJvb3ROb2RlKTsNCiAgICAgIHJldHVybiBub2RlczsNCiAgICB9LA0KICAgIC8vIOaUtui1t+aJgOacieiKgueCuQ0KICAgIGNvbGxhcHNlQWxsTm9kZXMoKSB7DQogICAgICBpZiAoIXRoaXMuJHJlZnMudHJlZVJlZikgcmV0dXJuOw0KICAgICAgY29uc3QgYWxsTm9kZXMgPSB0aGlzLmdldEFsbE5vZGVzKHRoaXMuJHJlZnMudHJlZVJlZi5yb290KTsNCiAgICAgIGFsbE5vZGVzLmZvckVhY2gobm9kZSA9PiB7DQogICAgICAgIGlmIChub2RlLmV4cGFuZGVkICE9PSB1bmRlZmluZWQgJiYgbm9kZS5leHBhbmRlZCkgew0KICAgICAgICAgIG5vZGUuZXhwYW5kZWQgPSBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDlpITnkIbliLfmlrDmk43kvZwNCiAgICBoYW5kbGVSZWZyZXNoKCkgew0KICAgICAgdGhpcy4kZW1pdCgicmVmcmVzaCIpOw0KICAgIH0sDQogICAgLy8g6IqC54K554K55Ye75LqL5Lu2DQogICAgb25Ob2RlQ2xpY2soZGF0YSwgbm9kZSwgZSkgew0KICAgICAgdGhpcy4kZW1pdCgibm9kZS1jbGljayIsIGRhdGEsIG5vZGUsIGUpOw0KICAgIH0sDQogICAgLy8g5aSN6YCJ5qGG6YCJ5Lit5LqL5Lu2DQogICAgb25DaGVjayhkYXRhLCBjaGVja2VkSW5mbykgew0KICAgICAgdGhpcy4kZW1pdCgiY2hlY2siLCBkYXRhLCBjaGVja2VkSW5mbyk7DQogICAgfSwNCiAgICAvLyDoioLngrnlsZXlvIDkuovku7YNCiAgICBvbk5vZGVFeHBhbmQoZGF0YSwgbm9kZSwgZSkgew0KICAgICAgdGhpcy4kZW1pdCgibm9kZS1leHBhbmQiLCBkYXRhLCBub2RlLCBlKTsNCiAgICB9LA0KICAgIC8vIOiKgueCueaKmOWPoOS6i+S7tg0KICAgIG9uTm9kZUNvbGxhcHNlKGRhdGEsIG5vZGUsIGUpIHsNCiAgICAgIHRoaXMuJGVtaXQoIm5vZGUtY29sbGFwc2UiLCBkYXRhLCBub2RlLCBlKTsNCiAgICB9LA0KICAgIC8vIOaQnOe0ouWkhOeQhg0KICAgIG9uU2VhcmNoKCkgew0KICAgICAgLy8g5pCc57Si6YC76L6R5bey5ZyoIHdhdGNoIOS4reWkhOeQhg0KICAgIH0sDQogICAgLy8g6K6+572u5b2T5YmN6YCJ5Lit55qE6IqC54K5DQogICAgc2V0Q3VycmVudEtleShrZXkpIHsNCiAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVSZWYpIHsNCiAgICAgICAgdGhpcy4kcmVmcy50cmVlUmVmLnNldEN1cnJlbnRLZXkoa2V5KTsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8vIOiOt+WPluW9k+WJjemAieS4reeahOiKgueCuQ0KICAgIGdldEN1cnJlbnROb2RlKCkgew0KICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZVJlZikgew0KICAgICAgICByZXR1cm4gdGhpcy4kcmVmcy50cmVlUmVmLmdldEN1cnJlbnROb2RlKCk7DQogICAgICB9DQogICAgICByZXR1cm4gbnVsbDsNCiAgICB9LA0KICAgIC8vIOiOt+WPluW9k+WJjemAieS4reeahOiKgueCueeahGtleQ0KICAgIGdldEN1cnJlbnRLZXkoKSB7DQogICAgICBpZiAodGhpcy4kcmVmcy50cmVlUmVmKSB7DQogICAgICAgIHJldHVybiB0aGlzLiRyZWZzLnRyZWVSZWYuZ2V0Q3VycmVudEtleSgpOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIG51bGw7DQogICAgfSwNCiAgICAvLyDorr7nva7pgInkuK3nmoToioLngrlrZXlz77yI5aSN6YCJ5qGG77yJDQogICAgc2V0Q2hlY2tlZEtleXMoa2V5cykgew0KICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZVJlZiAmJiB0aGlzLnNob3dDaGVja2JveCkgew0KICAgICAgICB0aGlzLiRyZWZzLnRyZWVSZWYuc2V0Q2hlY2tlZEtleXMoa2V5cyk7DQogICAgICB9DQogICAgfSwNCiAgICAvLyDojrflj5bpgInkuK3nmoToioLngrlrZXlz77yI5aSN6YCJ5qGG77yJDQogICAgZ2V0Q2hlY2tlZEtleXMoKSB7DQogICAgICBpZiAodGhpcy4kcmVmcy50cmVlUmVmICYmIHRoaXMuc2hvd0NoZWNrYm94KSB7DQogICAgICAgIHJldHVybiB0aGlzLiRyZWZzLnRyZWVSZWYuZ2V0Q2hlY2tlZEtleXMoKTsNCiAgICAgIH0NCiAgICAgIHJldHVybiBbXTsNCiAgICB9LA0KICAgIC8vIOiOt+WPlumAieS4reeahOiKgueCue+8iOWkjemAieahhu+8iQ0KICAgIGdldENoZWNrZWROb2RlcygpIHsNCiAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVSZWYgJiYgdGhpcy5zaG93Q2hlY2tib3gpIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuJHJlZnMudHJlZVJlZi5nZXRDaGVja2VkTm9kZXMoKTsNCiAgICAgIH0NCiAgICAgIHJldHVybiBbXTsNCiAgICB9LA0KICAgIC8vIOa4heepuuaQnOe0og0KICAgIGNsZWFyU2VhcmNoKCkgew0KICAgICAgdGhpcy5zZWFyY2hLZXl3b3JkID0gIiI7DQogICAgICBpZiAodGhpcy4kcmVmcy50cmVlUmVmKSB7DQogICAgICAgIHRoaXMuJHJlZnMudHJlZVJlZi5maWx0ZXIoIiIpOw0KICAgICAgfQ0KICAgIH0sDQogICAgLy8g6L+H5ruk5qCRDQogICAgZmlsdGVyKHZhbHVlKSB7DQogICAgICB0aGlzLnNlYXJjaEtleXdvcmQgPSB2YWx1ZTsNCiAgICB9LA0KICAgIC8vIOW8gOWni+iwg+aVtOWkp+Wwjw0KICAgIHN0YXJ0UmVzaXplKGUpIHsNCiAgICAgIGUucHJldmVudERlZmF1bHQoKTsNCiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7DQogICAgICB0aGlzLmlzUmVzaXppbmcgPSB0cnVlOw0KICAgICAgdGhpcy5zdGFydFggPSBlLnR5cGUgPT09ICdtb3VzZWRvd24nID8gZS5jbGllbnRYIDogZS50b3VjaGVzWzBdLmNsaWVudFg7DQogICAgICB0aGlzLnN0YXJ0V2lkdGggPSB0aGlzLnNpZGViYXJXaWR0aDsNCiAgICAgIA0KICAgICAgaWYgKGUudHlwZSA9PT0gJ21vdXNlZG93bicpIHsNCiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVSZXNpemVNb3ZlKTsNCiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuc3RvcFJlc2l6ZSk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLmhhbmRsZVJlc2l6ZU1vdmUsIHsgcGFzc2l2ZTogZmFsc2UgfSk7DQogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5zdG9wUmVzaXplKTsNCiAgICAgIH0NCiAgICAgIHRoaXMuZGlzYWJsZVVzZXJTZWxlY3QoKTsNCiAgICB9LA0KICAgIC8vIOWkhOeQhuiwg+aVtOWkp+Wwj+enu+WKqA0KICAgIGhhbmRsZVJlc2l6ZU1vdmUoZSkgew0KICAgICAgaWYgKCF0aGlzLmlzUmVzaXppbmcpIHJldHVybjsNCiAgICAgIGlmICh0aGlzLnJhZklkKSB7DQogICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQpOw0KICAgICAgfQ0KICAgICAgdGhpcy5yYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7DQogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsNCiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsNCiAgICAgICAgY29uc3QgY2xpZW50WCA9IGUudHlwZSA9PT0gJ21vdXNlbW92ZScgPyBlLmNsaWVudFggOiBlLnRvdWNoZXNbMF0uY2xpZW50WDsNCiAgICAgICAgY29uc3QgZGVsdGFYID0gY2xpZW50WCAtIHRoaXMuc3RhcnRYOw0KICAgICAgICBjb25zdCBuZXdXaWR0aCA9IHRoaXMuc3RhcnRXaWR0aCArIGRlbHRhWDsNCiAgICAgICAgY29uc3QgY2xhbXBlZFdpZHRoID0gTWF0aC5tYXgodGhpcy5taW5XaWR0aCwgTWF0aC5taW4odGhpcy5tYXhXaWR0aCwgbmV3V2lkdGgpKTsNCiAgICAgICAgaWYgKE1hdGguYWJzKGNsYW1wZWRXaWR0aCAtIHRoaXMuc2lkZWJhcldpZHRoKSA+PSAxKSB7DQogICAgICAgICAgdGhpcy5zaWRlYmFyV2lkdGggPSBjbGFtcGVkV2lkdGg7DQogICAgICAgIH0NCiAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g5YGc5q2i6LCD5pW05aSn5bCPDQogICAgc3RvcFJlc2l6ZSgpIHsNCiAgICAgIGlmICghdGhpcy5pc1Jlc2l6aW5nKSByZXR1cm47DQogICAgICB0aGlzLmlzUmVzaXppbmcgPSBmYWxzZTsNCiAgICAgIGlmICh0aGlzLnJhZklkKSB7DQogICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQpOw0KICAgICAgICB0aGlzLnJhZklkID0gbnVsbDsNCiAgICAgIH0NCiAgICAgIHRoaXMuc3RhcnRYID0gMDsNCiAgICAgIHRoaXMuc3RhcnRXaWR0aCA9IDA7DQogICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZVJlc2l6ZU1vdmUpOw0KICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuc3RvcFJlc2l6ZSk7DQogICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLmhhbmRsZVJlc2l6ZU1vdmUpOw0KICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLnN0b3BSZXNpemUpOw0KICAgICAgdGhpcy5lbmFibGVVc2VyU2VsZWN0KCk7DQogICAgICB0aGlzLnNhdmVXaWR0aFRvU3RvcmFnZSgpOw0KICAgIH0sDQogICAgLy8g56aB55So55So5oi36YCJ5oupDQogICAgZGlzYWJsZVVzZXJTZWxlY3QoKSB7DQogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3QgPSAnbm9uZSc7DQogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndlYmtpdFVzZXJTZWxlY3QgPSAnbm9uZSc7DQogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1velVzZXJTZWxlY3QgPSAnbm9uZSc7DQogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1zVXNlclNlbGVjdCA9ICdub25lJzsNCiAgICB9LA0KICAgIC8vIOWQr+eUqOeUqOaIt+mAieaLqQ0KICAgIGVuYWJsZVVzZXJTZWxlY3QoKSB7DQogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3QgPSAnJzsNCiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2Via2l0VXNlclNlbGVjdCA9ICcnOw0KICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5tb3pVc2VyU2VsZWN0ID0gJyc7DQogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1zVXNlclNlbGVjdCA9ICcnOw0KICAgIH0sDQogICAgLy8g6YeN572u5a695bqm5Yiw6buY6K6k5YC8DQogICAgcmVzZXRXaWR0aCgpIHsNCiAgICAgIHRoaXMuc2lkZWJhcldpZHRoID0gdGhpcy5kZWZhdWx0V2lkdGg7DQogICAgICB0aGlzLnNhdmVXaWR0aFRvU3RvcmFnZSgpOw0KICAgIH0sDQogICAgLy8g6I635Y+W5b2T5YmN5a695bqmDQogICAgZ2V0Q3VycmVudFdpZHRoKCkgew0KICAgICAgcmV0dXJuIHRoaXMuc2lkZWJhcldpZHRoOw0KICAgIH0sDQogICAgLy8g6K6+572u5a695bqmDQogICAgc2V0V2lkdGgod2lkdGgpIHsNCiAgICAgIGlmICh0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInICYmIHdpZHRoID49IHRoaXMubWluV2lkdGggJiYgd2lkdGggPD0gdGhpcy5tYXhXaWR0aCkgew0KICAgICAgICB0aGlzLnNpZGViYXJXaWR0aCA9IHdpZHRoOw0KICAgICAgICBpZiAoIXRoaXMuY29sbGFwc2VkKSB7DQogICAgICAgICAgdGhpcy5zYXZlV2lkdGhUb1N0b3JhZ2UoKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfQ0KfTsNCg=="},null]}