{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\zDemo\\editField\\ModelAttr.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\zDemo\\editField\\ModelAttr.vue","mtime":1734116152835},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgZm9ybSBmcm9tICdAL2FwaS9mb3JtLmpzJzsNCmltcG9ydCB1dGlscyBmcm9tICdAL2hvdGVudC11aS11dGlsLmpzJzsNCg0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnQnVzaW5lc3NPYmpBdHRyJywNCiAgcHJvcHM6IFsnb3BlbkdyYW5kU29uQXR0cicsICdhdHRyVGFibGVEYXRhJywgJ2Zvcm1EYXRhJywgJ2VudEluZGV4JywgJ2dyYW5kU29uSW5kZXgnXSwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgaW5kZXg6IDAsDQogICAgICBzb25JbmRleDogMCwNCiAgICAgIGlzT3BlbkdyYW5kU29uQXR0cjogZmFsc2UsDQogICAgICBoaWRlQXR0cjogW10sDQogICAgICBzb25EYXRhOiBbXSwNCiAgICAgIHRhYmxlRGF0YTogW10sDQogICAgICBkYXRhVHlwZTogWw0KICAgICAgICB7IGtleTogJ3ZhcmNoYXInLCB2YWx1ZTogJ+Wtl+espuS4sicgfSwNCiAgICAgICAgeyBrZXk6ICdudW1iZXInLCB2YWx1ZTogJ+aVsOWtlycgfSwNCiAgICAgICAgeyBrZXk6ICdkYXRlJywgdmFsdWU6ICfml6XmnJ8nIH0sDQogICAgICAgIHsga2V5OiAnY2xvYicsIHZhbHVlOiAn5aSn5paH5pysJyB9LA0KICAgICAgXSwNCiAgICAgIGRhdGVGb3JtYXQ6IFsNCiAgICAgICAgeyBrZXk6ICd5eXl5LU1NLWRkIEhIOm1tOnNzJywgdmFsdWU6ICd5eXl5LU1NLWRkIEhIOm1tOnNzJyB9LA0KICAgICAgICB7IGtleTogJ3l5eXktTU0tZGQnLCB2YWx1ZTogJ3l5eXktTU0tZGQnIH0sDQogICAgICBdLA0KICAgIH07DQogIH0sDQogIGNvbXB1dGVkOiB7DQogICAgYXR0ckRhdGE6IGZ1bmN0aW9uKCkgew0KICAgICAgY29uc3QgZGF0YSA9IHRoaXMub3BlbkdyYW5kU29uQXR0ciA/IHRoaXMuc29uRGF0YSA6IHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0Ow0KICAgICAgcmV0dXJuIGRhdGE7DQogICAgfSwNCiAgfSwNCiAgd2F0Y2g6IHsNCiAgICBvcGVuR3JhbmRTb25BdHRyOiBmdW5jdGlvbih2KSB7DQogICAgICB0aGlzLmlzT3BlbkdyYW5kU29uQXR0ciA9IHY7DQogICAgfSwNCiAgICBhdHRyVGFibGVEYXRhOiBmdW5jdGlvbih2KSB7DQogICAgICB0aGlzLnNvbkRhdGEgPSB2Ow0KICAgIH0sDQogICAgZm9ybURhdGE6IGZ1bmN0aW9uKHYpIHsNCiAgICAgIHRoaXMudGFibGVEYXRhID0gdjsNCiAgICB9LA0KICAgIGVudEluZGV4OiBmdW5jdGlvbih2KSB7DQogICAgICB0aGlzLmluZGV4ID0gdjsNCiAgICB9LA0KICAgIGdyYW5kU29uSW5kZXg6IGZ1bmN0aW9uKHYpIHsNCiAgICAgIHRoaXMuc29uSW5kZXggPSB2Ow0KICAgIH0sDQogIH0sDQogIGJlZm9yZURlc3Ryb3koKSB7DQogICAgLy8g57uE5Lu25rOo6ZSA56e76Zmk5LqL5Lu255uR5ZCs5Zmo77yM5Lul6Ziy5aSa5qyh6LCD55SoDQogICAgdGhpcy4kcm9vdC4kb2ZmKCd2YWxpZGF0ZUZpZWxkJyk7DQogIH0sDQogIG1vdW50ZWQoKSB7DQogICAgY29uc3QgX3RoaXMgPSB0aGlzOw0KICAgIGRvY3VtZW50Lm9ua2V5ZG93biA9IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKF90aGlzLmZvcm1EYXRhLmVudHMgJiYgX3RoaXMuZm9ybURhdGEuZW50cy5sZW5ndGggPiAwKSB7DQogICAgICAgIGNvbnN0IGtleSA9IHdpbmRvdy5ldmVudC5rZXlDb2RlOw0KICAgICAgICBpZiAoa2V5ID09IDExMykgew0KICAgICAgICAgIC8vID09IDgzICYmIGV2ZW50LmN0cmxLZXkNCiAgICAgICAgICBfdGhpcy5hZGRBdHRyUm93cygpOw0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQogICAgICAgICAgICBfdGhpcy4kcmVmcy5hdHRyVGFibGVTY3JvbGxiYXJIZWlnaHQuYm9keVdyYXBwZXIuc2Nyb2xsVG9wID0gX3RoaXMuJHJlZnMuYXR0clRhYmxlU2Nyb2xsYmFySGVpZ2h0LmJvZHlXcmFwcGVyLnNjcm9sbEhlaWdodDsNCiAgICAgICAgICB9LCA1MDApOw0KICAgICAgICB9DQogICAgICB9DQogICAgfTsNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIC8vIOagoemqjOW9k+WJjeWunuS9k+Wtl+autQ0KICAgIGNoZWNrRW50RnVuYyh0eXBlKSB7DQogICAgICBjb25zdCBjaGVja0VudEZ1bmNEYXRhID0gew0KICAgICAgICB0eXBlOiB0eXBlLA0KICAgICAgICBmb3JtRGF0YTogW3RoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XV0sDQogICAgICB9Ow0KICAgICAgdGhpcy4kcm9vdC4kZW1pdCgndmFsaWRhdGVGaWVsZCcsIGNoZWNrRW50RnVuY0RhdGEpOw0KICAgIH0sDQogICAgLy8g6KGo5Y2V5pWw5o2u5Yqg6L29DQogICAgZ2V0Rm9ybURhdGEoKSB7DQogICAgICBjb25zdCB0aGlzXyA9IHRoaXM7DQogICAgICBpZiAodGhpc18uZm9ybURhdGEuaWQpIHsNCiAgICAgICAgZm9ybS5nZXRFbnREYXRhKHRoaXNfLmZvcm1EYXRhLmlkLCByZXNwID0+IHsNCiAgICAgICAgICByZXNwLmRhdGEuZW50cy5mb3JFYWNoKChlbnREYXRhLCBpbmRleCkgPT4gew0KICAgICAgICAgICAgaWYgKGVudERhdGEuaXNFeHRlcm5hbCA9PSAnMScgJiYgaW5kZXggPT0gMCkgew0KICAgICAgICAgICAgICBlbnREYXRhLnNob3cgPSAn5Li75a6e5L2TLeWklic7DQogICAgICAgICAgICB9IGVsc2UgaWYgKGVudERhdGEuaXNFeHRlcm5hbCA9PSAnMScpIHsNCiAgICAgICAgICAgICAgZW50RGF0YS5zaG93ID0gJ+WtkOWunuS9ky3lpJYnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7DQogICAgICAgICAgICAgIGVudERhdGEuaXNDaGVjayA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZW50RGF0YS5jaGlsZHJlbikgew0KICAgICAgICAgICAgICBlbnREYXRhLmNoaWxkcmVuLmZvckVhY2godiA9PiB7DQogICAgICAgICAgICAgICAgaWYgKHYuaXNFeHRlcm5hbCA9PSAnMScpIHsNCiAgICAgICAgICAgICAgICAgIHYuc2hvdyA9ICflrZnlrp7kvZMt5aSWJzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9yIChsZXQgcSA9IDA7IHEgPCBlbnREYXRhLmF0dHJpYnV0ZUxpc3QubGVuZ3RoOyBxKyspIHsNCiAgICAgICAgICAgICAgaWYgKGVudERhdGEuYXR0cmlidXRlTGlzdFtxXSkgew0KICAgICAgICAgICAgICAgIGlmIChlbnREYXRhLmF0dHJpYnV0ZUxpc3RbcV0uaXNSZXF1aXJlZCA9PSAwKSB7DQogICAgICAgICAgICAgICAgICBlbnREYXRhLmF0dHJpYnV0ZUxpc3RbcV0uaXNSZXF1aXJlZCA9ICcwJzsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgZW50RGF0YS5hdHRyaWJ1dGVMaXN0W3FdLmlzUmVxdWlyZWQgPSAnMSc7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50RGF0YS5hdHRyaWJ1dGVMaXN0Lmxlbmd0aCAtIDEgLSBxOyBpKyspIHsNCiAgICAgICAgICAgICAgICBpZiAoZW50RGF0YS5hdHRyaWJ1dGVMaXN0W2ldLmluZGV4ID4gZW50RGF0YS5hdHRyaWJ1dGVMaXN0W2kgKyAxXS5pbmRleCkgew0KICAgICAgICAgICAgICAgICAgY29uc3QgdGVtcCA9IGVudERhdGEuYXR0cmlidXRlTGlzdFtpXTsNCiAgICAgICAgICAgICAgICAgIGVudERhdGEuYXR0cmlidXRlTGlzdFtpXSA9IGVudERhdGEuYXR0cmlidXRlTGlzdFtpICsgMV07DQogICAgICAgICAgICAgICAgICBlbnREYXRhLmF0dHJpYnV0ZUxpc3RbaSArIDFdID0gdGVtcDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9KTsNCiAgICAgICAgICByZXNwLmRhdGEuZW50cy5mb3JFYWNoKGRhdGEgPT4gew0KICAgICAgICAgICAgZGF0YS5pc0NoZWNrID0gZmFsc2U7DQogICAgICAgICAgfSk7DQogICAgICAgICAgLy8g6I635Y+W6YCJ5Lit5a6e5L2TDQogICAgICAgICAgcmVzcC5kYXRhLmVudHNbdGhpc18uZW50SW5kZXhdLmlzQ2hlY2sgPSB0cnVlOw0KICAgICAgICAgIHRoaXNfLiRlbWl0KCd1cGRhdGU6Zm9ybURhdGEnLCByZXNwLmRhdGEpOw0KICAgICAgICB9KTsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8vIOWIt+aWsOWFg+aVsOaNrg0KICAgIHJlbG9hZEJ5RW50SWQoZW50KSB7DQogICAgICBsZXQgaWQgPSBlbnQuaWQ7DQogICAgICBpZiAodGhpcy5vcGVuR3JhbmRTb25BdHRyICYmIGVudC5jaGlsZHJlbiAmJiBlbnQuY2hpbGRyZW4ubGVuZ3RoID4gMCkgew0KICAgICAgICBpZCA9IGVudC5jaGlsZHJlblt0aGlzLmdyYW5kU29uSW5kZXhdLmlkOw0KICAgICAgfQ0KICAgICAgY29uc3QgX3RoaXMgPSB0aGlzOw0KICAgICAgZm9ybS5yZWxvYWRCeUVudElkKGlkLCBfdGhpcy5mb3JtRGF0YS5hbGlhcykudGhlbihyZXNwID0+IHsNCiAgICAgICAgaWYgKHJlc3Auc3RhdGUpIHsNCiAgICAgICAgICBfdGhpcy4kbWVzc2FnZSh7DQogICAgICAgICAgICBtZXNzYWdlOiAn5Yi35paw5oiQ5YqfLOiLpeWtl+auteacieWPmOWMluivt+mHjeaWsOaLluaLveWtl+auteiuvuiuoeihqOWNlScsDQogICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsDQogICAgICAgICAgfSk7DQogICAgICAgICAgX3RoaXMuZ2V0Rm9ybURhdGEoKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsgbWVzc2FnZTogcmVzcC5tZXNzYWdlLCB0eXBlOiAnZXJyb3InIH0pOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICB9LA0KICAgIGVudEJsdXIoaW5kZXgpIHsNCiAgICAgIHRoaXMuJGVtaXQoJ2VudEJsdXInLCBpbmRleCk7DQogICAgICB0aGlzLmNoZWNrRW50RnVuYyh0cnVlKTsNCiAgICB9LA0KICAgIGNoaW5lc2VGb3JtYXQoaWQsIGxpc3QsIHBhcmFtLCBpbmRleCwgdikgew0KICAgICAgdGhpcy4kZW1pdCgnY2hpbmVzZUZvcm1hdCcsIGlkLCBsaXN0LCBwYXJhbSwgaW5kZXgsIHYpOw0KICAgIH0sDQogICAgLy8g5paw5aKe5a2X5q61DQogICAgYWRkQXR0clJvd3MoKSB7DQogICAgICBjb25zdCByb3cgPSB7DQogICAgICAgIGNvbW1lbnQ6ICcnLA0KICAgICAgICBuYW1lOiAnJywNCiAgICAgICAgaXNSZXF1aXJlZDogJzAnLA0KICAgICAgICBkYXRhVHlwZTogJ3ZhcmNoYXInLA0KICAgICAgICBmb3JtYXQ6ICcnLA0KICAgICAgICBpbnRMZW46ICcnLA0KICAgICAgICBhdHRyTGVuZ3RoOiAyMDAsDQogICAgICAgIGRlY2ltYWxMZW46IDAsDQogICAgICAgIGlzTmV3OiB0cnVlLA0KICAgICAgICBkZWZhdWx0VmFsdWU6ICcnLA0KICAgICAgICBkZXNjOiAnJywNCiAgICAgICAgaW5kZXg6IHRoaXMub3BlbkdyYW5kU29uQXR0ciA/IHRoaXMuc29uRGF0YS5sZW5ndGggKyAxIDogdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3QubGVuZ3RoICsgMSwNCiAgICAgIH07DQogICAgICBpZiAodGhpcy5vcGVuR3JhbmRTb25BdHRyKSB7DQogICAgICAgIHRoaXMuc29uRGF0YS5wdXNoKHJvdyk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdC5wdXNoKHJvdyk7DQogICAgICB9DQogICAgfSwNCiAgICAvLyDmlbDmja7nsbvlnovliIfmjaLorr7nva7pu5jorqTlgLwNCiAgICBkZWZhdWx0RGF0YUZvcm1hdChyb3csIGluZGV4KSB7DQogICAgICBsZXQgc2VsZWN0QXR0ciA9IHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0Ow0KICAgICAgaWYgKHRoaXMub3BlbkdyYW5kU29uQXR0cikgew0KICAgICAgICBzZWxlY3RBdHRyID0gdGhpcy5zb25EYXRhOw0KICAgICAgfQ0KICAgICAgc2VsZWN0QXR0cltpbmRleF0uYXR0ckxlbmd0aCA9IDA7DQogICAgICBzZWxlY3RBdHRyW2luZGV4XS5kZWNpbWFsTGVuID0gMDsNCiAgICAgIHNlbGVjdEF0dHJbaW5kZXhdLmZvcm1hdCA9ICcnOw0KICAgICAgaWYgKHJvdy5kYXRhVHlwZSA9PSAnZGF0ZScpIHsNCiAgICAgICAgc2VsZWN0QXR0cltpbmRleF0uZm9ybWF0ID0gJ3l5eXktTU0tZGQgSEg6bW06c3MnOw0KICAgICAgfSBlbHNlIGlmIChyb3cuZGF0YVR5cGUgPT0gJ3ZhcmNoYXInKSB7DQogICAgICAgIHNlbGVjdEF0dHJbaW5kZXhdLmF0dHJMZW5ndGggPSAyMDA7DQogICAgICB9IGVsc2UgaWYgKHJvdy5kYXRhVHlwZSA9PSAnbnVtYmVyJykgew0KICAgICAgICBzZWxlY3RBdHRyW2luZGV4XS5hdHRyTGVuZ3RoID0gMTA7DQogICAgICAgIHNlbGVjdEF0dHJbaW5kZXhdLmRlY2ltYWxMZW4gPSAyOw0KICAgICAgfQ0KICAgIH0sDQogICAgaGFuZGxlQ29tbWFuZChwYXJhbSkgew0KICAgICAgc3dpdGNoIChwYXJhbS5jb21tYW5kKSB7DQogICAgICAgIGNhc2UgJ2RlbCc6DQogICAgICAgICAgdGhpcy5kZWxldGVBdHRyUm93cyhwYXJhbS5yb3csIHBhcmFtLmluZGV4KTsNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAndXAnOg0KICAgICAgICAgIHRoaXMuYXR0clVwKHBhcmFtLnJvdywgcGFyYW0uaW5kZXgpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdkb3duJzoNCiAgICAgICAgICB0aGlzLmF0dHJEb3duKHBhcmFtLnJvdywgcGFyYW0uaW5kZXgpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgIGJyZWFrOw0KICAgICAgfQ0KICAgIH0sDQoNCiAgICAvLyDliKDpmaTlrZfmrrUg5Lyq5Yig6ZmkIOiuvue9ruWtl+autSBzdGF0dXMg5YC8IGhpZGUNCiAgICBpc0RlbChyb3csIGluZGV4KSB7DQogICAgICBsZXQgY291bnQgPSAwOw0KICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3QuZm9yRWFjaChpdGVtID0+IHsNCiAgICAgICAgaWYgKGl0ZW0uc3RhdHVzID09PSAnaGlkZScpIHsNCiAgICAgICAgICBjb3VudCsrOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICAgIGlmIChjb3VudCA+PSB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdC5sZW5ndGggLSAxKSB7DQogICAgICAgIHRoaXMuJG1lc3NhZ2UoeyBtZXNzYWdlOiAn5pyA5ZCO5LiA5Liq5a2X5q615LiN6IO95Yig6Zmk77yBJywgdHlwZTogJ3dhcm5pbmcnIH0pOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgICBpZiAoIXRoaXMuZm9ybURhdGEuZGVwbG95ZWQpIHsNCiAgICAgICAgZm9ybQ0KICAgICAgICAgIC5kZWxldGVBdHRyKHJvdy5pZCkNCiAgICAgICAgICAudGhlbihyZXNwID0+IHsNCiAgICAgICAgICAgIGlmIChyZXNwLmRhdGEuc3RhdGUpIHsNCiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7IG1lc3NhZ2U6IHJlc3AuZGF0YS5tZXNzYWdlLCB0eXBlOiAnc3VjY2VzcycgfSk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsgbWVzc2FnZTogcmVzcC5kYXRhLm1lc3NhZ2UsIHR5cGU6ICdlcnJvcicgfSk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9KQ0KICAgICAgICAgIC50aGVuKCgpID0+IHsNCiAgICAgICAgICAgIHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0LnNwbGljZShpbmRleCwgMSk7DQogICAgICAgICAgICB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdC5mb3JFYWNoKChpdGVtLCBhdHRySW5kZXgpID0+IHsNCiAgICAgICAgICAgICAgaWYgKGF0dHJJbmRleCA9PSBpbmRleCkgew0KICAgICAgICAgICAgICAgIGl0ZW0uaW5kZXggPSBpdGVtLmluZGV4IC0gMTsNCiAgICAgICAgICAgICAgICArK2luZGV4Ow0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIGZvcm0uc2F2ZUVudERhdGEodGhpcy5mb3JtRGF0YSkudGhlbihyZXNwID0+IHsNCiAgICAgICAgICAgICAgaWYgKHJlc3AuZGF0YS5zdGF0ZSkgew0KICAgICAgICAgICAgICAgIHRoaXMuZm9ybURhdGEucmV2Kys7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0pOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgZm9ybS5yZW1vdmVBdHRyKHJvdywgdGhpcy5mb3JtRGF0YS5hbGlhcykudGhlbihyZXNwID0+IHsNCiAgICAgICAgICBpZiAocmVzcC5kYXRhLnN0YXRlKSB7DQogICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgICAgbWVzc2FnZTogYCR7cmVzcC5kYXRhLm1lc3NhZ2V977yM5bu65qih5pWw5o2u5bey5pu05paw77yBYCwNCiAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLA0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0aGlzLiRlbWl0KCdnZXRGb3JtRGF0YScpOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsgbWVzc2FnZTogcmVzcC5kYXRhLm1lc3NhZ2UsIHR5cGU6ICdlcnJvcicgfSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8vIOWIoOmZpOWtl+autQ0KICAgIGRlbGV0ZUF0dHJSb3dzKHJvdywgaW5kZXgpIHsNCiAgICAgIGlmICghdGhpcy5vcGVuR3JhbmRTb25BdHRyKSB7DQogICAgICAgIGlmIChyb3cuaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3Quc3BsaWNlKGluZGV4LCAxKTsNCiAgICAgICAgICB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdC5mb3JFYWNoKChpdGVtLCBhdHRySW5kZXgpID0+IHsNCiAgICAgICAgICAgIGlmIChhdHRySW5kZXggPT0gaW5kZXgpIHsNCiAgICAgICAgICAgICAgaXRlbS5pbmRleCA9IGl0ZW0uaW5kZXggLSAxOw0KICAgICAgICAgICAgICArK2luZGV4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pOw0KICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgICAgICB0aGlzLmlzRGVsKHJvdywgaW5kZXgpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgaWYgKCFyb3cuaWQpIHsNCiAgICAgICAgICB0aGlzLmF0dHJUYWJsZURhdGEuc3BsaWNlKGluZGV4LCAxKTsNCiAgICAgICAgICB0aGlzLmF0dHJUYWJsZURhdGEuZm9yRWFjaCgoaXRlbSwgaSkgPT4gew0KICAgICAgICAgICAgaWYgKGkgPT0gaW5kZXgpIHsNCiAgICAgICAgICAgICAgaXRlbS5pbmRleCA9IGl0ZW0uaW5kZXggLSAxOw0KICAgICAgICAgICAgICArK2luZGV4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pOw0KICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgICAgICB0aGlzLmlzRGVsKHJvdywgaW5kZXgpOw0KICAgICAgfQ0KICAgIH0sDQogICAgYXR0clVwKHJvdywgaW5kZXgpIHsNCiAgICAgIGlmICghdGhpcy5vcGVuR3JhbmRTb25BdHRyKSB7DQogICAgICAgIHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0W2luZGV4XS5pbmRleCA9IHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0W2luZGV4XS5pbmRleCAtIDE7DQogICAgICAgIHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0W2luZGV4IC0gMV0uaW5kZXggPSB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdFtpbmRleCAtIDFdLmluZGV4ICsgMTsNCiAgICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3QgPSB1dGlscy5hcnJheU1vdmUodGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3QsIHJvdywgJ3VwJyk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLnNvbkRhdGFbaW5kZXhdLmluZGV4ID0gdGhpcy5zb25EYXRhW2luZGV4XS5pbmRleCAtIDE7DQogICAgICAgIHRoaXMuc29uRGF0YVtpbmRleCAtIDFdLmluZGV4ID0gdGhpcy5zb25EYXRhW2luZGV4IC0gMV0uaW5kZXggKyAxOw0KICAgICAgICB0aGlzLnNvbkRhdGEgPSB1dGlscy5hcnJheU1vdmUodGhpcy5zb25EYXRhLCByb3csICd1cCcpOw0KICAgICAgfQ0KICAgIH0sDQogICAgYXR0ckRvd24ocm93LCBpbmRleCkgew0KICAgICAgaWYgKCF0aGlzLm9wZW5HcmFuZFNvbkF0dHIpIHsNCiAgICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3RbaW5kZXhdLmluZGV4ID0gdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3RbaW5kZXhdLmluZGV4ICsgMTsNCiAgICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3RbaW5kZXggKyAxXS5pbmRleCA9IHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0W2luZGV4ICsgMV0uaW5kZXggLSAxOw0KICAgICAgICB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdCA9IHV0aWxzLmFycmF5TW92ZSh0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdCwgcm93LCAnZG93bicpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpcy5zb25EYXRhW2luZGV4XS5pbmRleCA9IHRoaXMuc29uRGF0YVtpbmRleF0uaW5kZXggKyAxOw0KICAgICAgICB0aGlzLnNvbkRhdGFbaW5kZXggKyAxXS5pbmRleCA9IHRoaXMuc29uRGF0YVtpbmRleCArIDFdLmluZGV4IC0gMTsNCiAgICAgICAgdGhpcy5zb25EYXRhID0gdXRpbHMuYXJyYXlNb3ZlKHRoaXMuc29uRGF0YSwgcm93LCAnZG93bicpOw0KICAgICAgfQ0KICAgIH0sDQogICAgcmVjb3Zlcnkocm93KSB7DQogICAgICBmb3JtLnJlY292ZXJ5KHJvdywgdGhpcy5mb3JtRGF0YS5hbGlhcykudGhlbihyZXNwID0+IHsNCiAgICAgICAgaWYgKHJlc3AuZGF0YS5zdGF0ZSkgew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoew0KICAgICAgICAgICAgbWVzc2FnZTogYCR7cmVzcC5kYXRhLm1lc3NhZ2V977yM5bu65qih5pWw5o2u5bey5pu05pawYCwNCiAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywNCiAgICAgICAgICB9KTsNCiAgICAgICAgICB0aGlzLiRlbWl0KCdnZXRGb3JtRGF0YScpOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICB9LA0KICAgIHJlZnJlc2hBdHRyKGNiKSB7DQogICAgICBjb25zdCBwYXJhbSA9IHsNCiAgICAgICAgZHNhbGlhczogdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmRzTmFtZSwNCiAgICAgICAgaXNUYWJsZTogJzEnLA0KICAgICAgICBvYmpOYW1lOiB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0udGFibGVOYW1lLA0KICAgICAgfTsNCiAgICAgIGlmICh0aGlzLm9wZW5HcmFuZFNvbkF0dHIpIHsNCiAgICAgICAgcGFyYW0ub2JqTmFtZSA9IHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5jaGlsZHJlblt0aGlzLmdyYW5kU29uSW5kZXhdLnRhYmxlTmFtZTsNCiAgICAgICAgcGFyYW0uZHNhbGlhcyA9IHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5jaGlsZHJlblt0aGlzLmdyYW5kU29uSW5kZXhdLmRzTmFtZTsNCiAgICAgIH0NCiAgICAgIGZvcm0NCiAgICAgICAgLmdldEhpZGVBdHRyKHBhcmFtLm9iak5hbWUpDQogICAgICAgIC50aGVuKHJlc3AgPT4gew0KICAgICAgICAgIGlmIChyZXNwKSB7DQogICAgICAgICAgICB0aGlzLmhpZGVBdHRyID0gcmVzcDsNCiAgICAgICAgICB9DQogICAgICAgIH0pDQogICAgICAgIC50aGVuKCgpID0+IHsNCiAgICAgICAgICBmb3JtDQogICAgICAgICAgICAuZ2V0VGFibGVMaXN0KHBhcmFtKQ0KICAgICAgICAgICAgLnRoZW4ocmVzcCA9PiB7DQogICAgICAgICAgICAgIHRoaXMuaXNFeGl0ID0gZmFsc2U7DQogICAgICAgICAgICAgIHRoaXMucmVmcmVzaERhdGEgPSByZXNwOw0KICAgICAgICAgICAgfSkNCiAgICAgICAgICAgIC50aGVuKCgpID0+IHsNCiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJlZnJlc2hEYXRhLmRhdGEubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZWZyZXNoRGF0YS5kYXRhW2ldLm5hbWUgPT0gcGFyYW0ub2JqTmFtZSkgew0KICAgICAgICAgICAgICAgICAgLy8g5Yig6Zmk5Li76ZSu5ZKM5aSW6ZSuDQogICAgICAgICAgICAgICAgICB0aGlzLiRodHRwLmdldChgXCR7Zm9ybX0vYm8vZGVmL3YxL3JlbG9hZEJ5RW50SWQ/ZW50SWQ9JHt0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uaWR9YCkudGhlbihyZXNwID0+IHsNCiAgICAgICAgICAgICAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKA0KICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHJlc3AuZGF0YS50YWJsZS5jb2x1bW5MaXN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL2NoYXJMZW4vZywgJ2F0dHJMZW5ndGgnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL2ZpZWxkTmFtZS9nLCAnbmFtZScpDQogICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvY29sdW1uVHlwZS9nLCAnZGF0YVR5cGUnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL2ZkYXRhVHlwZS9nLCAnZmNvbHVtblR5cGUnKSwNCiAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgX3RoaXMgPSB0aGlzOw0KICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oaWRlQXR0ci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgbGV0IGF0dHIgPSAnJzsNCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVBdHRyLmZvckVhY2godiA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBhdHRyICs9IGAke3YuZmllbGROYW1lfSxgOw0KICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICAgIGpzb24gPSBqc29uLmZpbHRlcih2YWx1ZSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIWF0dHIuaW5jbHVkZXModmFsdWUuZmllbGROYW1lKTsNCiAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcGVuR3JhbmRTb25BdHRyKSB7DQogICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmNoaWxkcmVuW3RoaXMuZ3JhbmRTb25JbmRleF0uYXR0cmlidXRlTGlzdCA9IGpzb247DQogICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5jaGlsZHJlblt0aGlzLmdyYW5kU29uSW5kZXhdOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0ID0ganNvbjsNCiAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEuYXR0cmlidXRlTGlzdCA9IGRhdGEuYXR0cmlidXRlTGlzdC5maWx0ZXIoaXRlbSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsID0gaXRlbS5uYW1lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICAgICAgICFpdGVtLmlzUGsgJiYgdmFsICE9ICdGX0ZPUk1fREFUQV9SRVZfJyAmJiB2YWwgIT0gJ1JFRl9JRF8nICYmICghX3RoaXMuZm9ybURhdGEuZW50cy5mayB8fCB2YWwgIT0gX3RoaXMuZm9ybURhdGEuZW50cy5may50b1VwcGVyQ2FzZSgpKQ0KICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICBkYXRhLmF0dHJpYnV0ZUxpc3QuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICBpdGVtLmluZGV4ID0gaW5kZXggKyAxOw0KICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmF0dHJMZW5ndGggPT0gMCAmJiBpdGVtLmludExlbiAhPSAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmF0dHJMZW5ndGggPSBpdGVtLmludExlbjsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsgbWVzc2FnZTogJ+WIt+aWsOaIkOWKnycsIHR5cGU6ICdzdWNjZXNzJyB9KTsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0V4aXQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzRXhpdCkgew0KICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3BlbkdyYW5kU29uQXR0cikgew0KICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uY2hpbGRyZW5bdGhpcy5ncmFuZFNvbkluZGV4XS5hdHRyaWJ1dGVMaXN0ID0gW107DQogICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0R3JhbmRTb25FbnRzQnlJbmRleCh0aGlzLmdyYW5kU29uSW5kZXgsIHRoaXMuZW50SW5kZXgpOw0KICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZW50SW5kZXggPT0gMCkgew0KICAgICAgICAgICAgICAgICAgICAgIGZvcm0ucmVtb3ZlQnVzaW5lc3NPYmoodGhpcy5mb3JtRGF0YS5pZCkudGhlbigoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZURpYWxvZ0Nsb3NlKCk7DQogICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3QgPSBbXTsNCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdnZXRFbnRzQnlJbmRleCcsIHRoaXMuZW50SW5kZXgpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9LCA1MDApOw0KICAgICAgICAgICAgICB0aGlzLmlzRXhpdCA9IGZhbHNlOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0pOw0KICAgIH0sDQogIH0sDQp9Ow0K"},null]}