{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\HomePage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\HomePage\\index.vue","mtime":1749816374523},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQge2RpY3Rpb25hcnlFc2NhcGV9IGZyb20gJ0AvdXRpbHMvZGljdGlvbmFyeScNCmltcG9ydCB7DQogIGdldFRyZWUsDQogIHRhYmxlRGF0YWEsDQogIHRhYmxlRGF0YWFMaXN0LA0KICB0YWJsZURhdGFiLA0KICB0YWJsZURhdGFiTGlzdCwNCiAgdGFibGVEYXRhYywNCiAgdGFibGVEYXRhY0xpc3QNCn0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2hvbWVQYWdlJw0KaW1wb3J0IHtUYWJsZU1peGlufSBmcm9tICdAL21peGlucy90YWJsZU1peGluJw0KaW1wb3J0IHBhZ2luYXRpb24gZnJvbSAnQC9jb21wb25lbnRzL1N1cGVyUGFnaW5hdGlvbi9pbmRleC52dWUnDQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogJ0hvbWVQYWdlJywNCiAgY29tcG9uZW50czoge3BhZ2luYXRpb259LA0KICBtaXhpbnM6IFtUYWJsZU1peGluXSwNCiAgY29tcHV0ZWQ6IHsNCiAgICBzdGF0dXNTdHlsZSgpIHsNCiAgICAgIHJldHVybiAoaXRlbSkgPT4gew0KICAgICAgICBzd2l0Y2ggKGl0ZW0pIHsNCiAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICByZXR1cm4gJyM5MDkzOTknDQogICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgcmV0dXJuICcjNDA5RUZGJw0KICAgICAgICAgIGNhc2UgMjoNCiAgICAgICAgICAgIHJldHVybiAnI0U2QTIzQycNCiAgICAgICAgICBjYXNlIDM6DQogICAgICAgICAgICByZXR1cm4gJyM0MGUyZmYnDQogICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgcmV0dXJuICcjNjdDMjNBJw0KICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgIHJldHVybiAnI0Y1NkM2QycNCiAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgcmV0dXJuICcnDQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogIH0sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIHBhZ2VSZXN1bHQ6IHsNCiAgICAgICAgdHlwZW9mOiBPYmplY3QsDQogICAgICAgIGRlZmF1bHQ6IF8gPT4gKHsNCiAgICAgICAgICBwYWdlOiAxLA0KICAgICAgICAgIHBhZ2VTaXplOiAyMCwNCiAgICAgICAgICB0b3RhbDogMA0KICAgICAgICB9KQ0KICAgICAgfSwNCiAgICAgIHBhcmFtczogew0KICAgICAgICBwYWdlQmVhbjoge3BhZ2VTaXplOiAxMCwgcGFnZTogMSwgdG90YWw6IDB9DQogICAgICB9LA0KICAgICAgdGFza0xpc3RvdGhlcmFhYTogW10sLy/ku7vliqHliJfooagNCiAgICAgIHRhc2tMaXN0b3RoZXJiYmI6IFtdLC8v5LqL5Lu25p+l6K+i5YiX6KGoDQogICAgICB0aW1lU2hvdzogJ2RheScsIC8vIOm7mOiupOmAieaLqeKAnOaXpeKAnQ0KICAgICAgdGFza0xpc3RvdGhlcmNjYzogW10sLy/lvILluLjkv6Hmga/liJfooagNCiAgICAgIHBhZ2luYXRpb25BYWE6IHtwYWdlU2l6ZTogMTAsIHBhZ2U6IDEsIHRvdGFsOiAwfSwgLy8gdGFza0xpc3RvdGhlcmFhYSDnmoTliIbpobXlj4LmlbANCiAgICAgIHBhZ2luYXRpb25CYmI6IHtwYWdlU2l6ZTogMTAsIHBhZ2U6IDEsIHRvdGFsOiAwfSwgLy8gdGFza0xpc3RvdGhlcmJiYiDnmoTliIbpobXlj4LmlbANCiAgICAgIHBhZ2luYXRpb25DY2M6IHtwYWdlU2l6ZTogMTAsIHBhZ2U6IDEsIHRvdGFsOiAwfSwgLy8gdGFza0xpc3RvdGhlcmNjYyDnmoTliIbpobXlj4LmlbANCiAgICAgIGV2ZW50U3RhdHVzOiBudWxsLCAvLyDlvZPliY3ngrnlh7vnmoTkuovku7bnirbmgIEt5LqL5Lu25p+l6K+i5YiX6KGoDQogICAgICBjdXJyZW50VHlwZTogMSwgLy8g6buY6K6k57G75Z6L5Li65beh5p+l5Lu75YqhDQogICAgICBiYWNrZ3JvdW5kSW1hZ2VVcmw6IHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9ob21lUGFnZS9kYW5nLnBuZycpLA0KICAgICAgdGFibGVEYXRhOiBbXSwNCiAgICAgIGN1cnJlbnRNZW51OiAnaG9tZVBhZ2UnLA0KICAgICAgdGFza0xpc3Q6IFtdLC8v5LqL5Lu25p+l6K+iDQogICAgICB0YXNrTGlzdG90aGVyOiBbXSwvL+W9k+WJjeS7u+WKoQ0KICAgICAgdGFza0xpc3RvdGhlckxpc3Q6IFtdLC8v5byC5bi45L+h5oGvDQogICAgICBjdXJyZW50QWN0aXZlSW5kZXg6IC0xLCAvLyDmlrDlop7lj5jph4/vvIzorrDlvZXlvZPliY3ngrnlh7vnmoTntKLlvJUNCiAgICAgIG9yZ0xpc3Q6IFtdLA0KICAgICAgY3VycmVudFN0YXJ0VGltZTogJycsIC8vIOaWsOWinuWPmOmHj++8jOWtmOWCqOW9k+WJjeW8gOWni+aXtumXtA0KICAgICAgY3VycmVudEVuZFRpbWU6ICcnLCAvLyDmlrDlop7lj5jph4/vvIzlrZjlgqjlvZPliY3nu5PmnZ/ml7bpl7QNCiAgICAgIGhhbmRsZVR5cGU6IDANCiAgICB9DQogIH0sDQogIGNyZWF0ZWQoKSB7DQogICAgLy8g5Yid5aeL5YyW6buY6K6k6YCJ5Lit4oCc5pel4oCdDQogICAgdGhpcy50aW1lU2hvdyA9ICdkYXknDQogICAgLy8g6I635Y+W5b2T5YmN5pel5pyfDQogICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKQ0KICAgIGNvbnN0IHllYXIgPSBub3cuZ2V0RnVsbFllYXIoKQ0KICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKG5vdy5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKSAvLyDmnIjku73ku44gMCDlvIDlp4vvvIzpnIDopoEgKzENCiAgICBjb25zdCBkYXkgPSBTdHJpbmcobm93LmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKQ0KICAgIHRoaXMuY3VycmVudFN0YXJ0VGltZSA9IGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fWANCiAgICB0aGlzLmN1cnJlbnRFbmRUaW1lID0gdGhpcy5jdXJyZW50U3RhcnRUaW1lDQoNCiAgICAvLyDpu5jorqTngrnlh7vigJzkuovku7bmgLvmlbAo5Lu2KeKAnQ0KICAgIHRoaXMuaGFuZGxlVGFza0NsaWNrKDApIC8vIDAg6KGo56S65LqL5Lu25oC75pWwDQogICAgdGhpcy50YXNrTGlzdG90aGVyRGF0YSgpDQogICAgdGhpcy50YXNrTGlzdG90aGVyTGlzdERhdGEoKQ0KICAgIHRoaXMudGFza0xpc3REYXRhKHRoaXMuY3VycmVudFN0YXJ0VGltZSwgdGhpcy5jdXJyZW50RW5kVGltZSkNCiAgICB0aGlzLkxpc3RhYWEoKQ0KICAgIHRoaXMuTGlzdGJiYih0aGlzLmN1cnJlbnRTdGFydFRpbWUsIHRoaXMuY3VycmVudEVuZFRpbWUpDQogICAgdGhpcy5MaXN0Y2NjKCkNCiAgICB0aGlzLmdldE9yZ1RyZWVEYXRhKCkNCiAgfSwNCiAgd2F0Y2g6IHsNCiAgICAvLyDnm5HlkKwgdGltZVNob3cg55qE5Y+Y5YyWDQogICAgdGltZVNob3cobmV3VmFsKSB7DQogICAgICB0aGlzLmhhbmRsZVRpbWVDaGFuZ2UobmV3VmFsKSAvLyDosIPnlKjml7bpl7Tlj5jljJblpITnkIbmlrnms5UNCiAgICB9DQogICAgLy8gdGhpcy5vcGVuUGFnZSgpDQogIH0sDQogIG1vdW50ZWQoKSB7DQogICAgbGV0IGN1cnJlbnRVc2VyID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXJEZXRhaWwnKQ0KICAgIHRoaXMubmFtZSA9IEpTT04ucGFyc2UoY3VycmVudFVzZXIpLnVzZXIuZnVsbG5hbWUNCiAgICB0aGlzLmRlcHROYW1lID0gSlNPTi5wYXJzZShjdXJyZW50VXNlcikub3JnWzBdLmRlcHROYW1lDQogICAgdGhpcy5vcmdOYW1lID0gSlNPTi5wYXJzZShjdXJyZW50VXNlcikub3JnWzBdLm9yZ05hbWUNCiAgICB0aGlzLiRidXMuJG9uKCdyZWZyZXNoQWJub3JtYWxMaXN0RXZlbnQnLCAoKSA9PiB7DQogICAgICB0aGlzLkxpc3RjY2MoKQ0KICAgICAgLy/liLfmlrDlvILluLgNCiAgICB9KQ0KICB9LA0KICBtZXRob2RzOiB7DQogICAgZGljdGlvbmFyeUVzY2FwZSwNCg0KICAgIC8vIOi3s+i9rOWIsOS6i+S7tueZu+iusOmhtemdog0KICAgIG5hdmlnYXRlVG9FdmVudFJlZ2lzdHJhdGlvbmEoKSB7DQogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7cGF0aDogJ3BhdHJvbEFuZFJlc2N1ZS9yb2FkV2F0Y2gvaW5zcGVjdGlvblJlc3VsdHMnfSkNCiAgICB9LA0KICAgIG5hdmlnYXRlVG9FdmVudFJlZ2lzdHJhdGlvbmIoKSB7DQogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7cGF0aDogJ3BhdHJvbEFuZFJlc2N1ZS9jb21tYW5kRGlzcGF0Y2gvZXZlbnRSZWdpc3RyYXRpb24nfSkNCiAgICB9LA0KICAgIG5hdmlnYXRlVG9FdmVudFJlZ2lzdHJhdGlvbmMoKSB7DQogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7cGF0aDogJ3BhdHJvbEFuZFJlc2N1ZS9vYnN0YWNsZUNsZWFyaW5nUmVzY3VlL3Jlc2N1ZVJlZ2lzdHJhdGlvbid9KQ0KICAgIH0sDQogICAgLy8g5aSE55CG5pe26Ze05Y+Y5YyWDQogICAgaGFuZGxlVGltZUNoYW5nZSh0aW1lVHlwZSkgew0KICAgICAgbGV0IHN0YXJ0VGltZSA9ICcnDQogICAgICBsZXQgZW5kVGltZSA9ICcnDQoNCiAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkNCiAgICAgIGNvbnN0IHllYXIgPSBub3cuZ2V0RnVsbFllYXIoKQ0KICAgICAgY29uc3QgbW9udGggPSBTdHJpbmcobm93LmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpIC8vIOaciOS7veS7jiAwIOW8gOWni++8jOmcgOimgSArMQ0KICAgICAgY29uc3QgZGF5ID0gU3RyaW5nKG5vdy5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJykNCg0KICAgICAgc3dpdGNoICh0aW1lVHlwZSkgew0KICAgICAgICBjYXNlICdkYXknOiAvLyDml6UNCiAgICAgICAgICBzdGFydFRpbWUgPSBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gDQogICAgICAgICAgZW5kVGltZSA9IHN0YXJ0VGltZSAvLyDlvIDlp4vml7bpl7Tlkoznu5PmnZ/ml7bpl7Tnm7jlkIwNCiAgICAgICAgICBicmVhaw0KICAgICAgICBjYXNlICdtb250aCc6IC8vIOaciA0KICAgICAgICAgIHN0YXJ0VGltZSA9IGAke3llYXJ9LSR7bW9udGh9LTAxYCAvLyDlvZPliY3mnIjnmoTnrKzkuIDlpKkNCiAgICAgICAgICBlbmRUaW1lID0gYCR7eWVhcn0tJHttb250aH0tJHtuZXcgRGF0ZSh5ZWFyLCBub3cuZ2V0TW9udGgoKSArIDEsIDApLmdldERhdGUoKX1gIC8vIOW9k+WJjeaciOeahOacgOWQjuS4gOWkqQ0KICAgICAgICAgIGJyZWFrDQogICAgICAgIGNhc2UgJ3llYXInOiAvLyDlubQNCiAgICAgICAgICBzdGFydFRpbWUgPSBgJHt5ZWFyfS0wMS0wMWAgLy8g5b2T5YmN5bm055qE56ys5LiA5aSpDQogICAgICAgICAgZW5kVGltZSA9IGAke3llYXJ9LTEyLTMxYCAvLyDlvZPliY3lubTnmoTmnIDlkI7kuIDlpKkNCiAgICAgICAgICBicmVhaw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgIHN0YXJ0VGltZSA9ICcnDQogICAgICAgICAgZW5kVGltZSA9ICcnDQogICAgICB9DQogICAgICAvLyDlrZjlgqjlvZPliY3ml7bpl7TojIPlm7QNCiAgICAgIHRoaXMuY3VycmVudFN0YXJ0VGltZSA9IHN0YXJ0VGltZQ0KICAgICAgdGhpcy5jdXJyZW50RW5kVGltZSA9IGVuZFRpbWUNCg0KICAgICAgLy8g6LCD55SoIExpc3RiYmIg5pa55rOV77yM5Lyg5YWl5pe26Ze06IyD5Zu0DQogICAgICB0aGlzLkxpc3RiYmIoc3RhcnRUaW1lLCBlbmRUaW1lKQ0KICAgICAgLy8g6LCD55SoIHRhc2tMaXN0RGF0YSDmlrnms5XvvIzkvKDlhaXml7bpl7TojIPlm7QNCiAgICAgIHRoaXMudGFza0xpc3REYXRhKHN0YXJ0VGltZSwgZW5kVGltZSkNCiAgICB9LA0KDQogICAgLy/lvILluLjkv6Hmga8NCiAgICBhc3luYyB0YXNrTGlzdG90aGVyTGlzdERhdGEoKSB7DQogICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWUNCiAgICAgIHRyeSB7DQogICAgICAgIC8vIOehruS/nSBvcmdMaXN0IOW3sui1i+WAvA0KICAgICAgICBpZiAoIXRoaXMub3JnTGlzdCB8fCB0aGlzLm9yZ0xpc3QubGVuZ3RoID09PSAwKSB7DQogICAgICAgICAgYXdhaXQgdGhpcy5nZXRPcmdUcmVlRGF0YSgpIC8vIOetieW+hSBnZXRPcmdUcmVlRGF0YSDlrozmiJANCiAgICAgICAgfQ0KICAgICAgICAvLyDor7fmsYIgdGFibGVEYXRhIOaOpeWPow0KICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRhYmxlRGF0YWIodGhpcy5vcmdMaXN0KQ0KICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsdWUpIHsNCiAgICAgICAgICB0aGlzLnRhc2tMaXN0b3RoZXJMaXN0ID0gcmVzcG9uc2UudmFsdWUgLy8g5bCG5o6l5Y+j6L+U5Zue55qE5pWw5o2u6LWL5YC857uZIHRhc2tMaXN0b3RoZXINCiAgICAgICAgfQ0KICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgY29uc29sZS5lcnJvcign6K+35rGC5pWw5o2u5aSx6LSlOicsIGVycm9yKQ0KICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZQ0KICAgICAgfQ0KICAgIH0sDQogICAgLy/kuovku7bnu5/orqENCiAgICBhc3luYyB0YXNrTGlzdERhdGEoc3RhcnRUaW1lLCBlbmRUaW1lKSB7DQogICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWUNCiAgICAgIHRyeSB7DQogICAgICAgIC8vIOehruS/nSBvcmdMaXN0IOW3sui1i+WAvA0KICAgICAgICBpZiAoIXRoaXMub3JnTGlzdCB8fCB0aGlzLm9yZ0xpc3QubGVuZ3RoID09PSAwKSB7DQogICAgICAgICAgYXdhaXQgdGhpcy5nZXRPcmdUcmVlRGF0YSgpIC8vIOetieW+hSBnZXRPcmdUcmVlRGF0YSDlrozmiJANCiAgICAgICAgfQ0KICAgICAgICAvLyDmnoTpgKDor7fmsYLkvZMNCiAgICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSB7DQogICAgICAgICAgZ3JvdXBSZWxhdGlvbjogJ0FORCcsDQogICAgICAgICAgZ3JvdXBUcmVlOiB7fSwNCiAgICAgICAgICBwYWdlQmVhbjogew0KICAgICAgICAgICAgcGFnZTogMSwNCiAgICAgICAgICAgIHBhZ2VTaXplOiAxMCwNCiAgICAgICAgICAgIHNob3dUb3RhbDogdHJ1ZQ0KICAgICAgICAgIH0sDQogICAgICAgICAgcGFyYW1zOiB7DQogICAgICAgICAgICAvLyBzdGFydFRpbWU6IHN0YXJ0VGltZSwgLy8g5byA5aeL5pe26Ze0DQogICAgICAgICAgICAvLyBlbmRUaW1lOiBlbmRUaW1lIC8vIOe7k+adn+aXtumXtA0KICAgICAgICAgIH0sDQogICAgICAgICAgcXVlcnlzOiBbXSwNCiAgICAgICAgICBzb3J0ZXI6IFsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgZGlyZWN0aW9uOiAnQVNDJywNCiAgICAgICAgICAgICAgcHJvcGVydHk6ICcnDQogICAgICAgICAgICB9DQogICAgICAgICAgXQ0KICAgICAgICB9DQogICAgICAgIC8vIOaJk+WNsOivt+axguS9k++8jOajgOafpeaYr+WQpuato+ehrg0KICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRhYmxlRGF0YWMocmVxdWVzdEJvZHksIHRoaXMub3JnTGlzdCwgc3RhcnRUaW1lLCBlbmRUaW1lKQ0KICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsdWUpIHsNCiAgICAgICAgICB0aGlzLnRhc2tMaXN0ID0gcmVzcG9uc2UudmFsdWUgLy8g5bCG5o6l5Y+j6L+U5Zue55qE5pWw5o2u6LWL5YC857uZIHRhc2tMaXN0b3RoZXINCiAgICAgICAgfQ0KICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgY29uc29sZS5lcnJvcign6K+35rGC5pWw5o2u5aSx6LSlOicsIGVycm9yKQ0KICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZQ0KICAgICAgfQ0KICAgIH0sDQogICAgLy/kuovku7bmn6Xor6Lngrnlh7st6K+35rGC5YiX6KGoDQogICAgaGFuZGxlVGFza0NsaWNrKGluZGV4KSB7DQogICAgICB0aGlzLmN1cnJlbnRBY3RpdmVJbmRleCA9IGluZGV4IC8vIOabtOaWsOW9k+WJjeeCueWHu+eahOe0ouW8lQ0KICAgICAgc3dpdGNoIChpbmRleCkgew0KICAgICAgICBjYXNlIDA6IC8vIOS6i+S7tuaAu+aVsA0KICAgICAgICAgIHRoaXMuZXZlbnRTdGF0dXMgPSBudWxsIC8vIOS4jeS8oCBldmVudFN0YXR1cw0KICAgICAgICAgIGJyZWFrDQogICAgICAgIGNhc2UgMTogLy8g5b6F5o6l5Y2V5LqL5Lu2DQogICAgICAgICAgdGhpcy5ldmVudFN0YXR1cyA9IFstMSwgMCwgMV0NCiAgICAgICAgICBicmVhaw0KICAgICAgICBjYXNlIDI6IC8vIOWkhOe9ruS4reS6i+S7tg0KICAgICAgICAgIHRoaXMuZXZlbnRTdGF0dXMgPSBbMl0NCiAgICAgICAgICBicmVhaw0KICAgICAgICBjYXNlIDM6IC8vIOWkhOe9rue7k+adn+S6i+S7tg0KICAgICAgICAgIHRoaXMuZXZlbnRTdGF0dXMgPSBbM10NCiAgICAgICAgICBicmVhaw0KICAgICAgICBjYXNlIDQ6IC8vIOW3suWKnue7k+S6i+S7tg0KICAgICAgICAgIHRoaXMuZXZlbnRTdGF0dXMgPSBbNF0NCiAgICAgICAgICBicmVhaw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgIHRoaXMuZXZlbnRTdGF0dXMgPSBudWxsDQogICAgICB9DQogICAgICAvLyDkvb/nlKjlvZPliY3ml7bpl7TojIPlm7TosIPnlKggTGlzdGJiYg0KICAgICAgdGhpcy5wYWdpbmF0aW9uQmJiLnBhZ2UgPSAxDQogICAgICB0aGlzLkxpc3RiYmIodGhpcy5jdXJyZW50U3RhcnRUaW1lLCB0aGlzLmN1cnJlbnRFbmRUaW1lKQ0KICAgIH0sDQoNCiAgICAvL+S6i+S7tuWIl+ihqOafpeivog0KICAgIGFzeW5jIExpc3RiYmIoc3RhcnRUaW1lLCBlbmRUaW1lKSB7DQogICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWUNCiAgICAgIHRyeSB7DQogICAgICAgIC8vIOehruS/nSBvcmdMaXN0IOW3sui1i+WAvA0KICAgICAgICBpZiAoIXRoaXMub3JnTGlzdCB8fCB0aGlzLm9yZ0xpc3QubGVuZ3RoID09PSAwKSB7DQogICAgICAgICAgYXdhaXQgdGhpcy5nZXRPcmdUcmVlRGF0YSgpIC8vIOetieW+hSBnZXRPcmdUcmVlRGF0YSDlrozmiJANCiAgICAgICAgfQ0KICAgICAgICAvLyDmnoTpgKDor7fmsYLkvZMNCiAgICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSB7DQogICAgICAgICAgZ3JvdXBSZWxhdGlvbjogJ0FORCcsDQogICAgICAgICAgZ3JvdXBUcmVlOiB7fSwNCiAgICAgICAgICBwYWdlQmVhbjogew0KICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdpbmF0aW9uQmJiLnBhZ2UsIC8vIOW9k+WJjemhteeggQ0KICAgICAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdGlvbkJiYi5wYWdlU2l6ZSwgLy8g5q+P6aG15p2h5pWwDQogICAgICAgICAgICBzaG93VG90YWw6IHRydWUNCiAgICAgICAgICB9LA0KDQogICAgICAgICAgcGFyYW1zOiB7DQogICAgICAgICAgICBzdGFydFRpbWU6IHN0YXJ0VGltZSwgLy8g5byA5aeL5pe26Ze0DQogICAgICAgICAgICBlbmRUaW1lOiBlbmRUaW1lIC8vIOe7k+adn+aXtumXtA0KICAgICAgICAgIH0sDQogICAgICAgICAgcXVlcnlzOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGdyb3VwOiAnbWFpbicsDQogICAgICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywNCiAgICAgICAgICAgICAgcGFyZW50R3JvdXA6ICcnLA0KICAgICAgICAgICAgICBwcm9wZXJ0eTogJ2V2ZW50U3RhdHVzJywNCiAgICAgICAgICAgICAgcmVsYXRpb246ICdBTkQnLA0KICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5ldmVudFN0YXR1cw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgZ3JvdXA6ICdtYWluJywNCiAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLCAvLyDkvb/nlKggSU4g5pON5L2c56ymDQogICAgICAgICAgICAgIHBhcmVudEdyb3VwOiAnJywNCiAgICAgICAgICAgICAgcHJvcGVydHk6ICdyb2FkX2lkXycsIC8vIOWxnuaAp+WQjQ0KICAgICAgICAgICAgICByZWxhdGlvbjogJ0FORCcsDQogICAgICAgICAgICAgIHZhbHVlOiB0aGlzLm9yZ0xpc3QgLy8g5Lyg5YWlIG9yZ0xpc3Qg5pWw57uEDQogICAgICAgICAgICB9DQogICAgICAgICAgXSwNCiAgICAgICAgICBzb3J0ZXI6IFsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgZGlyZWN0aW9uOiAnREVTQycsDQogICAgICAgICAgICAgIHByb3BlcnR5OiAnJw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIF0NCiAgICAgICAgfQ0KICAgICAgICAvLyDmiZPljbDor7fmsYLkvZPvvIzmo4Dmn6XmmK/lkKbmraPnoa4NCiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0YWJsZURhdGFiTGlzdChyZXF1ZXN0Qm9keSkNCiAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJvd3MpIHsNCiAgICAgICAgICB0aGlzLnRhc2tMaXN0b3RoZXJiYmIgPSByZXNwb25zZS5yb3dzIC8vIOWwhuaOpeWPo+i/lOWbnueahOaVsOaNrui1i+WAvOe7mSB0YXNrTGlzdG90aGVyDQogICAgICAgICAgdGhpcy5wYWdpbmF0aW9uQmJiLnRvdGFsID0gcmVzcG9uc2UudG90YWwgfHwgMCAvLyDmm7TmlrDmgLvmnaHmlbANCiAgICAgICAgfQ0KICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgY29uc29sZS5lcnJvcign6K+35rGC5pWw5o2u5aSx6LSlOicsIGVycm9yKQ0KICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZQ0KICAgICAgfQ0KICAgIH0sDQogICAgLy/lvZPliY3ku7vliqENCiAgICBhc3luYyB0YXNrTGlzdG90aGVyRGF0YSgpIHsNCiAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZQ0KICAgICAgdHJ5IHsNCiAgICAgICAgLy8g56Gu5L+dIG9yZ0xpc3Qg5bey6LWL5YC8DQogICAgICAgIGlmICghdGhpcy5vcmdMaXN0IHx8IHRoaXMub3JnTGlzdC5sZW5ndGggPT09IDApIHsNCiAgICAgICAgICBhd2FpdCB0aGlzLmdldE9yZ1RyZWVEYXRhKCkgLy8g562J5b6FIGdldE9yZ1RyZWVEYXRhIOWujOaIkA0KICAgICAgICB9DQogICAgICAgIC8vIOivt+axgiB0YWJsZURhdGEg5o6l5Y+jDQogICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGFibGVEYXRhYSh0aGlzLm9yZ0xpc3QpDQogICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWx1ZSkgew0KICAgICAgICAgIHRoaXMudGFza0xpc3RvdGhlciA9IHJlc3BvbnNlLnZhbHVlIC8vIOWwhuaOpeWPo+i/lOWbnueahOaVsOaNrui1i+WAvOe7mSB0YXNrTGlzdG90aGVyDQogICAgICAgIH0NCiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivt+axguaVsOaNruWksei0pTonLCBlcnJvcikNCiAgICAgIH0gZmluYWxseSB7DQogICAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2UNCiAgICAgIH0NCiAgICB9LA0KICAgIC8v5Lu75Yqh54K55Ye7Leivt+axguWIl+ihqA0KICAgIHRhc2tDaGFuZ2UoaW5kZXgpIHsNCiAgICAgIHRoaXMucGFnaW5hdGlvbkFhYS5wYWdlID0gMQ0KICAgICAgaWYgKGluZGV4ID09PSAwKSB7DQogICAgICAgIHRoaXMuY3VycmVudFR5cGUgPSAxIC8vIOW3oeafpeS7u+WKoQ0KICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gMSkgew0KICAgICAgICB0aGlzLmN1cnJlbnRUeXBlID0gMiAvLyDkuovku7blpITnva7ku7vliqENCiAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IDIpIHsNCiAgICAgICAgdGhpcy5jdXJyZW50VHlwZSA9IDMgLy8g5pWR5o+05Lu75YqhDQogICAgICB9DQogICAgICB0aGlzLkxpc3RhYWEoKSAvLyDosIPnlKjmjqXlj6PliLfmlrDmlbDmja4NCiAgICB9LA0KDQogICAgLy8g5qC55o2uIGN1cnJlbnRUeXBlIOi/lOWbnuWvueW6lOeahOaXtumXtOWtl+autQ0KICAgIGdldFRhc2tUaW1lKHRhc2spIHsNCiAgICAgIGlmICh0aGlzLmN1cnJlbnRUeXBlID09PSAxKSB7DQogICAgICAgIHJldHVybiB0YXNrLmNyZWF0ZVRpbWUgLy8g5beh5p+l5Lu75YqhDQogICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudFR5cGUgPT09IDIpIHsNCiAgICAgICAgcmV0dXJuIHRhc2suZXZlbnRUaW1lIC8vIOS6i+S7tuWkhOe9ruS7u+WKoQ0KICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRUeXBlID09PSAzKSB7DQogICAgICAgIHJldHVybiB0YXNrLnJlc2N1ZVRpbWUgLy8g5pWR5o+05Lu75YqhDQogICAgICB9DQogICAgICByZXR1cm4gJycgLy8g6buY6K6k6L+U5Zue56m65a2X56ym5LiyDQogICAgfSwNCiAgICAvL+S7u+WKoeWIl+ihqA0KICAgIGFzeW5jIExpc3RhYWEoKSB7DQogICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWUNCiAgICAgIHRyeSB7DQogICAgICAgIC8vIOehruS/nSBvcmdMaXN0IOW3sui1i+WAvA0KICAgICAgICBpZiAoIXRoaXMub3JnTGlzdCB8fCB0aGlzLm9yZ0xpc3QubGVuZ3RoID09PSAwKSB7DQogICAgICAgICAgYXdhaXQgdGhpcy5nZXRPcmdUcmVlRGF0YSgpIC8vIOetieW+hSBnZXRPcmdUcmVlRGF0YSDlrozmiJANCiAgICAgICAgfQ0KICAgICAgICAvLyDmnoTpgKDor7fmsYLkvZMNCiAgICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSB7DQogICAgICAgICAgZ3JvdXBSZWxhdGlvbjogJ0FORCcsDQogICAgICAgICAgZ3JvdXBUcmVlOiB7fSwNCiAgICAgICAgICBwYWdlQmVhbjogew0KICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdpbmF0aW9uQWFhLnBhZ2UsIC8vIOW9k+WJjemhteeggQ0KICAgICAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdGlvbkFhYS5wYWdlU2l6ZSwgLy8g5q+P6aG15p2h5pWwDQogICAgICAgICAgICBzaG93VG90YWw6IHRydWUNCiAgICAgICAgICB9LA0KICAgICAgICAgIHBhcmFtczoge30sDQogICAgICAgICAgcXVlcnlzOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGdyb3VwOiAnbWFpbicsDQogICAgICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywgLy8g5L2/55SoIElOIOaTjeS9nOespg0KICAgICAgICAgICAgICBwYXJlbnRHcm91cDogJycsDQogICAgICAgICAgICAgIHByb3BlcnR5OiAncm9hZF9pZF8nLCAvLyDlsZ7mgKflkI0NCiAgICAgICAgICAgICAgcmVsYXRpb246ICdBTkQnLA0KICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5vcmdMaXN0IC8vIOS8oOWFpSBvcmdMaXN0IOaVsOe7hA0KICAgICAgICAgICAgfQ0KICAgICAgICAgIF0sDQogICAgICAgICAgc29ydGVyOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGRpcmVjdGlvbjogJ0RFU0MnLA0KICAgICAgICAgICAgICBwcm9wZXJ0eTogdGhpcy5jdXJyZW50VHlwZSA9PT0gMSA/ICdjcmVhdGVUaW1lJyA6IHRoaXMuY3VycmVudFR5cGUgPT09IDIgPyAnZXZlbnRUaW1lJyA6ICdyZXNjdWVUaW1lJw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIF0NCiAgICAgICAgfQ0KICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRhYmxlRGF0YWFMaXN0KHJlcXVlc3RCb2R5LCB0aGlzLmN1cnJlbnRUeXBlKQ0KICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2Uucm93cykgew0KICAgICAgICAgIHRoaXMudGFza0xpc3RvdGhlcmFhYSA9IHJlc3BvbnNlLnJvd3MgLy8g5bCG5o6l5Y+j6L+U5Zue55qE5pWw5o2u6LWL5YC857uZIHRhc2tMaXN0b3RoZXINCiAgICAgICAgICB0aGlzLnBhZ2luYXRpb25BYWEudG90YWwgPSByZXNwb25zZS50b3RhbCB8fCAwIC8vIOabtOaWsOaAu+adoeaVsA0KICAgICAgICB9DQogICAgICB9IGNhdGNoIChlcnJvcikgew0KICAgICAgICBjb25zb2xlLmVycm9yKCfor7fmsYLmlbDmja7lpLHotKU6JywgZXJyb3IpDQogICAgICB9IGZpbmFsbHkgew0KICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlDQogICAgICB9DQogICAgfSwNCg0KICAgIC8v5byC5bi454K55Ye7DQogICAgY2hhbmdlKGluZGV4KSB7DQogICAgICB0aGlzLnBhZ2luYXRpb25DY2MucGFnZSA9IDENCiAgICAgIGxldCBoYW5kbGVUeXBlID0gbnVsbA0KICAgICAgaWYgKGluZGV4ID09PSAxKSB7DQogICAgICAgIGhhbmRsZVR5cGUgPSAxIC8vIOeOsOWcuuWkhOeQhg0KICAgICAgICB0aGlzLmhhbmRsZVR5cGUgPSAxDQogICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSAyKSB7DQogICAgICAgIGhhbmRsZVR5cGUgPSAyIC8vIOS4iuaKpeS4reW/gw0KICAgICAgICB0aGlzLmhhbmRsZVR5cGUgPSAyDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLmhhbmRsZVR5cGUgPSAwDQogICAgICB9DQogICAgICB0aGlzLkxpc3RjY2MoaGFuZGxlVHlwZSkgLy8g6LCD55SoIExpc3RjY2Mg5pa55rOV5bm25Lyg6YCSIGhhbmRsZVR5cGUNCiAgICB9LA0KICAgIC8v5byC5bi45YiX6KGoDQogICAgYXN5bmMgTGlzdGNjYyhoYW5kbGVUeXBlKSB7DQogICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWUNCiAgICAgIHRyeSB7DQogICAgICAgIC8vIOehruS/nSBvcmdMaXN0IOW3sui1i+WAvA0KICAgICAgICBpZiAoIXRoaXMub3JnTGlzdCB8fCB0aGlzLm9yZ0xpc3QubGVuZ3RoID09PSAwKSB7DQogICAgICAgICAgYXdhaXQgdGhpcy5nZXRPcmdUcmVlRGF0YSgpIC8vIOetieW+hSBnZXRPcmdUcmVlRGF0YSDlrozmiJANCiAgICAgICAgfQ0KICAgICAgICAvLyDojrflj5blvZPliY3ml7bpl7TlubbmoLzlvI/ljJbkuLogWVlZWS1NTS1ERA0KICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpDQogICAgICAgIGNvbnN0IHllYXIgPSBub3cuZ2V0RnVsbFllYXIoKQ0KICAgICAgICBjb25zdCBtb250aCA9IFN0cmluZyhub3cuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJykgLy8g5pyI5Lu95LuOIDAg5byA5aeL77yM6ZyA6KaBICsxDQogICAgICAgIGNvbnN0IGRheSA9IFN0cmluZyhub3cuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpDQogICAgICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gIC8vIOagvOW8j+WMluS4uiBZWVlZLU1NLUREDQogICAgICAgIC8vIOaehOmAoOivt+axguS9kw0KICAgICAgICBjb25zdCByZXF1ZXN0Qm9keSA9IHsNCiAgICAgICAgICBncm91cFJlbGF0aW9uOiAnQU5EJywNCiAgICAgICAgICBncm91cFRyZWU6IHt9LA0KICAgICAgICAgIHBhZ2VCZWFuOiB7DQogICAgICAgICAgICBwYWdlOiB0aGlzLnBhZ2luYXRpb25DY2MucGFnZSwgLy8g5b2T5YmN6aG156CBDQogICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0aW9uQ2NjLnBhZ2VTaXplLCAvLyDmr4/pobXmnaHmlbANCiAgICAgICAgICAgIHNob3dUb3RhbDogdHJ1ZQ0KICAgICAgICAgIH0sDQogICAgICAgICAgcGFyYW1zOiB7fSwNCiAgICAgICAgICBxdWVyeXM6IFsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgJ2dyb3VwJzogJ21haW4nLA0KICAgICAgICAgICAgICAnb3BlcmF0aW9uJzogJ0VRVUFMJywNCiAgICAgICAgICAgICAgJ3BhcmVudEdyb3VwJzogJycsDQogICAgICAgICAgICAgICdwcm9wZXJ0eSc6ICdUQVNLX0RBVEVfJywNCiAgICAgICAgICAgICAgJ3JlbGF0aW9uJzogJ0FORCcsDQogICAgICAgICAgICAgICd2YWx1ZSc6IGZvcm1hdHRlZERhdGUNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGdyb3VwOiAnbWFpbicsDQogICAgICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywgLy8g5L2/55SoIElOIOaTjeS9nOespg0KICAgICAgICAgICAgICBwYXJlbnRHcm91cDogJycsDQogICAgICAgICAgICAgIHByb3BlcnR5OiAncm9hZF9pZF8nLCAvLyDlsZ7mgKflkI0NCiAgICAgICAgICAgICAgcmVsYXRpb246ICdBTkQnLA0KICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5vcmdMaXN0IC8vIOS8oOWFpSBvcmdMaXN0IOaVsOe7hA0KICAgICAgICAgICAgfQ0KICAgICAgICAgIF0sDQogICAgICAgICAgc29ydGVyOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGRpcmVjdGlvbjogJ0RFU0MnLA0KICAgICAgICAgICAgICBwcm9wZXJ0eTogJ2luc3BlY3RUaW1lJw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIF0NCiAgICAgICAgfQ0KICAgICAgICAvLyDlpoLmnpwgaGFuZGxlVHlwZSDkuI3kuLrnqbrvvIzmt7vliqDliLAgcXVlcnlzIOS4rQ0KICAgICAgICBpZiAoaGFuZGxlVHlwZSAhPT0gbnVsbCkgew0KICAgICAgICAgIHJlcXVlc3RCb2R5LnF1ZXJ5cy5wdXNoKHsNCiAgICAgICAgICAgIGdyb3VwOiAnbWFpbicsDQogICAgICAgICAgICBvcGVyYXRpb246ICdFUVVBTCcsDQogICAgICAgICAgICBwYXJlbnRHcm91cDogJycsDQogICAgICAgICAgICBwcm9wZXJ0eTogJ2hhbmRsZVR5cGUnLA0KICAgICAgICAgICAgcmVsYXRpb246ICdBTkQnLA0KICAgICAgICAgICAgdmFsdWU6IGhhbmRsZVR5cGUNCiAgICAgICAgICB9KQ0KICAgICAgICB9DQogICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGFibGVEYXRhY0xpc3QocmVxdWVzdEJvZHkpDQogICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5yb3dzKSB7DQogICAgICAgICAgdGhpcy50YXNrTGlzdG90aGVyY2NjID0gcmVzcG9uc2Uucm93cyAvLyDlsIbmjqXlj6Pov5Tlm57nmoTmlbDmja7otYvlgLznu5kgdGFza0xpc3RvdGhlcg0KICAgICAgICAgIHRoaXMucGFnaW5hdGlvbkNjYy50b3RhbCA9IHJlc3BvbnNlLnRvdGFsIHx8IDAgLy8g5pu05paw5oC75p2h5pWwDQogICAgICAgIH0NCiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivt+axguaVsOaNruWksei0pTonLCBlcnJvcikNCiAgICAgIH0gZmluYWxseSB7DQogICAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2UNCiAgICAgIH0NCiAgICB9LA0KICAgIC8v5Yi35paw5byC5bi45L+h5oGvDQogICAgcmVmcmVzaEFibm9ybWFsTGlzdCgpIHsNCiAgICAgIHRoaXMuJGJ1cy4kZW1pdCgncmVmcmVzaEFibm9ybWFsTGlzdEV2ZW50JykNCiAgICB9LA0KICAgIC8vIOiOt+WPluWFrOWPuOagkS3lsIZpZOmbhuWQiOi1t+adpeS8oOe7meWQjuerrw0KICAgIGFzeW5jIGdldE9yZ1RyZWVEYXRhKGNhbGxiYWNrKSB7DQogICAgICB0cnkgew0KICAgICAgICB0aGlzLnRyZWVMb2FkaW5nID0gdHJ1ZQ0KICAgICAgICBjb25zdCB2YWx1ZWRhdGEgPSBhd2FpdCBnZXRUcmVlKCkNCiAgICAgICAgLy8g5o+Q5Y+W5omA5pyJIHJvYWRMaXN0IOS4reeahCBpZA0KICAgICAgICBjb25zdCBhbGxJZHMgPSBbXQ0KICAgICAgICB2YWx1ZWRhdGEudmFsdWUuZm9yRWFjaCgoaXRlbSkgPT4gew0KICAgICAgICAgIGlmIChpdGVtLnJvYWRMaXN0ICYmIGl0ZW0ucm9hZExpc3QubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgaXRlbS5yb2FkTGlzdC5mb3JFYWNoKChyb2FkKSA9PiB7DQogICAgICAgICAgICAgIGlmIChyb2FkLmlkKSB7DQogICAgICAgICAgICAgICAgYWxsSWRzLnB1c2gocm9hZC5pZCkgLy8g5bCGIGlkIOa3u+WKoOWIsOaVsOe7hOS4rQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KQ0KICAgICAgICAgIH0NCiAgICAgICAgfSkNCiAgICAgICAgdGhpcy5vcmdMaXN0ID0gYWxsSWRzDQogICAgICB9IGZpbmFsbHkgew0KICAgICAgICB0aGlzLnRyZWVMb2FkaW5nID0gZmFsc2UNCiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2sodGhpcy50cmVlRGF0YSkNCiAgICAgICAgLy8gdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZQ0KICAgICAgfQ0KICAgIH0sDQogICAgLy8g5Lu75Yqh5YiX6KGo5YiG6aG15LqL5Lu2DQogICAgaGFuZGxlU2l6ZUNoYW5nZUFhYShwYWdlU2l6ZSkgew0KICAgICAgdGhpcy5wYWdpbmF0aW9uQWFhLnBhZ2VTaXplID0gcGFnZVNpemUNCiAgICAgIHRoaXMucGFnaW5hdGlvbkFhYS5wYWdlID0gMSAvLyDph43nva7kuLrnrKzkuIDpobUNCiAgICAgIHRoaXMuTGlzdGFhYSgpIC8vIOmHjeaWsOivt+axguaVsOaNrg0KICAgIH0sDQogICAgaGFuZGxlQ3VycmVudENoYW5nZUFhYShwYWdlKSB7DQogICAgICB0aGlzLnBhZ2luYXRpb25BYWEucGFnZSA9IHBhZ2UNCiAgICAgIHRoaXMuTGlzdGFhYSgpIC8vIOmHjeaWsOivt+axguaVsOaNrg0KICAgIH0sDQoNCiAgICAvLyDkuovku7bmn6Xor6LliJfooajliIbpobXkuovku7YNCiAgICBoYW5kbGVTaXplQ2hhbmdlQmJiKHBhZ2VTaXplKSB7DQogICAgICB0aGlzLnBhZ2luYXRpb25CYmIucGFnZVNpemUgPSBwYWdlU2l6ZQ0KICAgICAgdGhpcy5wYWdpbmF0aW9uQmJiLnBhZ2UgPSAxIC8vIOmHjee9ruS4uuesrOS4gOmhtQ0KICAgICAgdGhpcy5MaXN0YmJiKHRoaXMuY3VycmVudFN0YXJ0VGltZSwgdGhpcy5jdXJyZW50RW5kVGltZSkgLy8g6YeN5paw6K+35rGC5pWw5o2uDQogICAgfSwNCiAgICBoYW5kbGVDdXJyZW50Q2hhbmdlQmJiKHBhZ2UpIHsNCiAgICAgIHRoaXMucGFnaW5hdGlvbkJiYi5wYWdlID0gcGFnZQ0KICAgICAgdGhpcy5MaXN0YmJiKHRoaXMuY3VycmVudFN0YXJ0VGltZSwgdGhpcy5jdXJyZW50RW5kVGltZSkgLy8g6YeN5paw6K+35rGC5pWw5o2uDQogICAgfSwNCg0KICAgIC8vIOW8guW4uOWIl+ihqOWIhumhteS6i+S7tg0KICAgIGhhbmRsZVNpemVDaGFuZ2VDY2MocGFnZVNpemUpIHsNCiAgICAgIHRoaXMucGFnaW5hdGlvbkNjYy5wYWdlU2l6ZSA9IHBhZ2VTaXplDQogICAgICB0aGlzLnBhZ2luYXRpb25DY2MucGFnZSA9IDEgLy8g6YeN572u5Li656ys5LiA6aG1DQogICAgICB0aGlzLkxpc3RjY2MoKSAvLyDph43mlrDor7fmsYLmlbDmja4NCiAgICB9LA0KICAgIGhhbmRsZUN1cnJlbnRDaGFuZ2VDY2MocGFnZSkgew0KICAgICAgdGhpcy5wYWdpbmF0aW9uQ2NjLnBhZ2UgPSBwYWdlDQogICAgICB0aGlzLkxpc3RjY2MoKSAvLyDph43mlrDor7fmsYLmlbDmja4NCiAgICB9DQogIH0NCn0NCg=="},null]}