{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\obstacleClearingRescue\\RescueFollowUp\\components\\TablePage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\obstacleClearingRescue\\RescueFollowUp\\components\\TablePage\\index.vue","mtime":1756238905243},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\babel.config.js","mtime":1741314102158},{"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:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5yZWR1Y2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLnJlZHVjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgeyBkaWN0aW9uYXJ5RXNjYXBlLCBnZXREaWN0aW9uYXJ5QnlDb2RlIH0gZnJvbSAnQC91dGlscy9kaWN0aW9uYXJ5JzsKaW1wb3J0IHsgcmVmaW5lUmVxdWVzdEJvZHksIHNldFF1ZXJ5VmFsdWUgfSBmcm9tICdAL3V0aWxzL3JlcXVlc3RXcmFwcGVycyc7CmltcG9ydCBwYWdpbmF0aW9uIGZyb20gJ0AvY29tcG9uZW50cy9TdXBlclBhZ2luYXRpb24vaW5kZXgudnVlJzsKaW1wb3J0IHsgVGFibGVNaXhpbiB9IGZyb20gJ0AvbWl4aW5zL3RhYmxlTWl4aW4nOwppbXBvcnQgdHJlZVNpZGUgZnJvbSAnQC9jb21wb25lbnRzL3RyZWVTaWRlL2luZGV4LnZ1ZSc7CmltcG9ydCBTZWFyY2hDb21tb24gZnJvbSAnQC9jb21wb25lbnRzL1NlYXJjaENvbW1vbi9pbmRleC52dWUnOwppbXBvcnQgeyB0YWJsZURhdGEgfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvb2JzdGFjbGVDbGVhcmluZ1Jlc2N1ZS9yZXNjdWVGb2xsb3dVcCc7CmltcG9ydCBUcmVlRGlhbG9nIGZyb20gJy4vY29tcG9uZW50cy9UcmVlRGlhbG9nL2luZGV4LnZ1ZSc7CmltcG9ydCBQdWJTdWIgZnJvbSAncHVic3ViLWpzJzsKaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnOwppbXBvcnQgeyBnZXRUcmVlIH0gZnJvbSAnQC9hcGkvdHJlZSc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnVGFibGVQYWdlJywKICBjb21wb25lbnRzOiB7CiAgICBUcmVlRGlhbG9nOiBUcmVlRGlhbG9nLAogICAgcGFnaW5hdGlvbjogcGFnaW5hdGlvbiwKICAgIHRyZWVTaWRlOiB0cmVlU2lkZSwKICAgIFNlYXJjaENvbW1vbjogU2VhcmNoQ29tbW9uCiAgfSwKICBtaXhpbnM6IFtUYWJsZU1peGluXSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgcHViU3ViOiBudWxsLAogICAgICB0YWJsZU1heEhlaWdodDogJzYwMHB4JywKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIHRhYmxlTG9hZGluZzogZmFsc2UsCiAgICAgIHRyZWVEYXRhOiBbXSwKICAgICAgLy/lt6bovrnmoJEKICAgICAgZGVmYXVsdFByb3BzOiB7CiAgICAgICAgY2hpbGRyZW46ICdjaGlsZHJlbicsCiAgICAgICAgbGFiZWw6ICduYW1lJwogICAgICB9LAogICAgICB0YWJsZURhdGE6IFtdLAogICAgICBjdXJyZW50RGF0YURlbDogW10sCiAgICAgIG9wdGlvbkxpc3Q6IFt7CiAgICAgICAgdGl0bGU6ICfmlZHmj7TljZXlj7cnLAogICAgICAgIHByb3A6IFsnUkVTQ1VFX05PXyddLAogICAgICAgIHR5cGU6ICdpbnB1dCcsCiAgICAgICAgZGVmYXVsdDogdHJ1ZQogICAgICB9LCB7CiAgICAgICAgdGl0bGU6ICfmlZHmj7TnsbvlnosnLAogICAgICAgIHByb3A6IFsnUkVTQ1VFX1RZUEVfJ10sCiAgICAgICAgdHlwZTogJ3NlbGVjdCcsCiAgICAgICAgb3B0aW9uOiBnZXREaWN0aW9uYXJ5QnlDb2RlKCdqeWx4JyksCiAgICAgICAgbXVsdGlwbGU6IHRydWUKICAgICAgfSwgewogICAgICAgIHRpdGxlOiAn5oql5qGI5p2l5rqQJywKICAgICAgICBwcm9wOiBbJ1JFU0NVRV9TUkNfJ10sCiAgICAgICAgdHlwZTogJ3NlbGVjdCcsCiAgICAgICAgb3B0aW9uOiBnZXREaWN0aW9uYXJ5QnlDb2RlKCdiYWx5JyksCiAgICAgICAgbXVsdGlwbGU6IHRydWUKICAgICAgfQogICAgICAvLyB7dGl0bGU6ICfmiYDlsZ7ot6/mrrUnLCBwcm9wOiBbJ3JvYWRfTmFtZV8nXSwgdHlwZTogJ2lucHV0JywgZGVmYXVsdDogdHJ1ZX0KICAgICAgXSwKICAgICAgcGFyYW1zOiB7CiAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgIHBhZ2VTaXplOiAyMCwKICAgICAgICAgIHBhZ2U6IDEsCiAgICAgICAgICB0b3RhbDogMAogICAgICAgIH0sCiAgICAgICAgcXVlcnlzOiBbewogICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgcHJvcGVydHk6ICdSRVNDVUVfVFlQRV8nLAogICAgICAgICAgdmFsdWU6ICcnCiAgICAgICAgfSwgewogICAgICAgICAgb3BlcmF0aW9uOiAnRVFVQUwnLAogICAgICAgICAgcHJvcGVydHk6ICdSRVNDVUVfTk9fJywKICAgICAgICAgIHZhbHVlOiAnJwogICAgICAgIH0sIHsKICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywKICAgICAgICAgIHByb3BlcnR5OiAnUkVTQ1VFX1NSQ18nLAogICAgICAgICAgdmFsdWU6ICcnCiAgICAgICAgfSwKICAgICAgICAvLyB7b3BlcmF0aW9uOiAnTElLRScsIHByb3BlcnR5OiAncm9hZF9OYW1lXycsIHZhbHVlOiAnJ30sCiAgICAgICAgewogICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgcHJvcGVydHk6ICdyZXNjdWVfU3RhdHVzXycsCiAgICAgICAgICB2YWx1ZTogWyc0JywgJzUnXQogICAgICAgIH0sIHsKICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywKICAgICAgICAgIHByb3BlcnR5OiAncm9hZElkJwogICAgICAgIH0sIHsKICAgICAgICAgIG9wZXJhdGlvbjogJ0JFVFdFRU4nLAogICAgICAgICAgcHJvcGVydHk6ICdyZXNjdWVfdGltZV8nLAogICAgICAgICAgdmFsdWU6IFttb21lbnQoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbTpzcycpLCBtb21lbnQoKS5lbmRPZignbW9udGgnKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKV0KICAgICAgICB9XSwKICAgICAgICBzb3J0ZXI6IFt7CiAgICAgICAgICBwcm9wZXJ0eTogJ2NyZWF0ZVRpbWUnLAogICAgICAgICAgZGlyZWN0aW9uOiAnREVTQycKICAgICAgICB9XSAvLyDmjpLluo/lrZfmrrUKICAgICAgfSwKICAgICAgdHJlZURpYWxvZzogZmFsc2UsCiAgICAgIC8vIOenkeebruS/oeaBr+W8ueWxggogICAgICB0cmVlSXRlbUlkOiAnJywKICAgICAgLy8g5qCR5b2i55uu5b2VaWQKICAgICAgdHJlZUl0ZW06IHt9LAogICAgICAvLyDmoJHlvaLoioLngrnpgInkuK3lr7nosaEKICAgICAgdHJlZUl0ZW1QYXJlbnRJZDogJycgLy8g5qCR5b2i55uu5b2V54i257qnaWQKICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIC8vIOiOt+WPluagkeW9ouebruW9lQogICAgdGhpcy5nZXRPcmdUcmVlRGF0YShmdW5jdGlvbiAodHJlZURhdGEpIHsKICAgICAgLy8g5Zue6LCD5Lit6buY6K6k6YCJ5Lit56ys5LiA6aG55bm25bCG5YW2aWTkvZzkuLrlj4LmlbDor7fmsYLooajmoLwKICAgICAgX3RoaXMudHJlZUl0ZW0gPSB0cmVlRGF0YVswXSB8fCB7fTsKICAgICAgdmFyIGFycmF5ID0gW107CiAgICAgIGlmIChfdGhpcy50cmVlSXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7CiAgICAgICAgYXJyYXkgPSBfdGhpcy5leHRyYWN0SWRzKF90aGlzLnRyZWVJdGVtKTsKICAgICAgfQogICAgICBfdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKF8pIHsKICAgICAgICB2YXIgX3RoaXMkJHJlZnMkdHJlZVNpZGUsIF90cmVlRGF0YSQsIF90aGlzJCRyZWZzJHRyZWVTaWRlMjsKICAgICAgICAoX3RoaXMkJHJlZnMkdHJlZVNpZGUgPSBfdGhpcy4kcmVmcy50cmVlU2lkZSkgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUgPT09IHZvaWQgMCB8fCBfdGhpcyQkcmVmcyR0cmVlU2lkZS5zZXRDdXJyZW50S2V5KChfdHJlZURhdGEkID0gdHJlZURhdGFbMF0pID09PSBudWxsIHx8IF90cmVlRGF0YSQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90cmVlRGF0YSQuaWQpOwogICAgICAgIChfdGhpcyQkcmVmcyR0cmVlU2lkZTIgPSBfdGhpcy4kcmVmcy50cmVlU2lkZSkgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUyID09PSB2b2lkIDAgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUyLmV4cGFuZEhhbmRsZSh0cnVlLCAyKTsKICAgICAgfSk7CiAgICAgIHNldFF1ZXJ5VmFsdWUoX3RoaXMucGFyYW1zLCAncm9hZElkICcsIGFycmF5KTsKICAgICAgX3RoaXMubG9hZERhdGEoKTsKICAgIH0pOwogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgdGhpcy5wdWJTdWIgPSBQdWJTdWIuc3Vic2NyaWJlKCdUYWJsZVBhZ2UnLCBmdW5jdGlvbiAoXywgZGF0YSkgewogICAgICBzd2l0Y2ggKGRhdGEudHlwZSkgewogICAgICAgIGNhc2UgJ2FkZCc6CiAgICAgICAgICBfdGhpczIucGFyYW1zLnBhZ2VCZWFuLnBhZ2UgPSAxOwogICAgICAgICAgX3RoaXMyLmxvYWREYXRhKCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdlZGl0JzoKICAgICAgICAgIF90aGlzMi5sb2FkRGF0YSgpOwogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0pOwogIH0sCiAgbWV0aG9kczogewogICAgZXh0cmFjdElkczogZnVuY3Rpb24gZXh0cmFjdElkcyhub2RlKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICB2YXIgaWRzID0gW107CiAgICAgIC8vIOWmguaenOW9k+WJjeiKgueCueaciSBjaGlsZHJlbu+8jOWImemAkuW9kuaPkOWPlgogICAgICBpZiAobm9kZS5jaGlsZHJlbikgewogICAgICAgIGlkcyA9IG5vZGUuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChjaGlsZCkgewogICAgICAgICAgcmV0dXJuIGNoaWxkLmlkOwogICAgICAgIH0pOyAvLyDmj5Dlj5blvZPliY3oioLngrnnmoQgaWQKICAgICAgICAvLyDpgJLlvZLmj5Dlj5blrZDoioLngrnnmoQgaWQKICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7CiAgICAgICAgICBpZHMgPSBpZHMuY29uY2F0KF90aGlzMy5leHRyYWN0SWRzKGNoaWxkKSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGlkczsKICAgIH0sCiAgICAvLyDml7bpl7TojIPlm7TliIfmjaIKICAgIGRhdGVQaWNrZXJDaGFuZ2U6IGZ1bmN0aW9uIGRhdGVQaWNrZXJDaGFuZ2UodmFsKSB7CiAgICAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdyZXNjdWVfdGltZV8nLCB2YWwpOwogICAgICB0aGlzLnBhcmFtcy5wYWdlQmVhbi5wYWdlID0gMTsKICAgICAgdGhpcy5sb2FkRGF0YSgpOwogICAgfSwKICAgIC8vIOiOt+WPlui3r+auteagkQogICAgZ2V0T3JnVHJlZURhdGE6IGZ1bmN0aW9uIGdldE9yZ1RyZWVEYXRhKGNhbGxiYWNrKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF95aWVsZCRnZXRUcmVlLCB2YWx1ZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMDsKICAgICAgICAgICAgICBfdGhpczQudHJlZUxvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA0OwogICAgICAgICAgICAgIHJldHVybiBnZXRUcmVlKCk7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfeWllbGQkZ2V0VHJlZSA9IF9jb250ZXh0LnNlbnQ7CiAgICAgICAgICAgICAgdmFsdWUgPSBfeWllbGQkZ2V0VHJlZS52YWx1ZTsKICAgICAgICAgICAgICBfdGhpczQudHJlZURhdGEgPSBbdmFsdWVdOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDc7CiAgICAgICAgICAgICAgX3RoaXM0LnRyZWVMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soX3RoaXM0LnRyZWVEYXRhKTsKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuZmluaXNoKDcpOwogICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZSwgbnVsbCwgW1swLCwgNywgMTFdXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIHRyYW5zZm9ybVRyZWVEYXRhOiBmdW5jdGlvbiB0cmFuc2Zvcm1UcmVlRGF0YShkYXRhKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgbmFtZTogZGF0YS5uYW1lLAogICAgICAgIGlkOiBkYXRhLmlkLAogICAgICAgIGNoaWxkcmVuOiBkYXRhLmNoaWxkcmVuLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBjaGlsZCkgewogICAgICAgICAgYWNjLnB1c2goewogICAgICAgICAgICBpZDogY2hpbGQuaWQsCiAgICAgICAgICAgIG5hbWU6IGNoaWxkLm5hbWUsCiAgICAgICAgICAgIHBhdGg6IGNoaWxkLnBhdGgsCiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZC5yb2FkTGlzdC5tYXAoZnVuY3Rpb24gKHJvYWQpIHsKICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgaWQ6IHJvYWQuaWQsCiAgICAgICAgICAgICAgICBuYW1lOiByb2FkLm5hbWUsCiAgICAgICAgICAgICAgICBwYXRoOiByb2FkLnBhdGgKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9KQogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gYWNjOwogICAgICAgIH0sIFtdKQogICAgICB9OwogICAgfSwKICAgIC8v5bem6L655qCR6IqC54K5CiAgICBjdXJyZW50Q2hhbmdlOiBmdW5jdGlvbiBjdXJyZW50Q2hhbmdlKG5vZGVJdGVtKSB7CiAgICAgIGlmIChub2RlSXRlbS5pZCA9PT0gJzE3NjYwMTc0Njg0NDQ0NTA4MTYnKSB7CiAgICAgICAgc2V0UXVlcnlWYWx1ZSh0aGlzLnBhcmFtcywgJ3JvYWRJZCcsIHRoaXMuZXh0cmFjdElkcyhub2RlSXRlbSkpOwogICAgICB9IGVsc2UgaWYgKG5vZGVJdGVtLmNoaWxkcmVuICYmIG5vZGVJdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHsKICAgICAgICB2YXIgYXJyYXkgPSBub2RlSXRlbS5jaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICAgIH0pOwogICAgICAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdyb2FkSWQnLCBhcnJheSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc2V0UXVlcnlWYWx1ZSh0aGlzLnBhcmFtcywgJ3JvYWRJZCcsIFtub2RlSXRlbSA9PT0gbnVsbCB8fCBub2RlSXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbm9kZUl0ZW0uaWRdIHx8IFtdKTsKICAgICAgfQogICAgICAvLyDliKTmlq3mmK/lkKbmmK/kuIDnuqfnm67lvZXvvIjmnIkgY2hpbGRyZW4g5bGe5oCn77yJCiAgICAgIC8vIGlmIChub2RlSXRlbS5jaGlsZHJlbiAmJiBub2RlSXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7CiAgICAgIC8vICAgY29uc3QgYXJyYXkgPSBub2RlSXRlbS5jaGlsZHJlbi5tYXAoaXRlbSA9PiBpdGVtLmlkKQogICAgICAvLyAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdyb2FkSWQgJywgYXJyYXkpCiAgICAgIC8vIH0gZWxzZSB7CiAgICAgIC8vICAgc2V0UXVlcnlWYWx1ZSh0aGlzLnBhcmFtcywgJ3JvYWRJZCcsIFtub2RlSXRlbT8uaWRdIHx8IFtdKQogICAgICAvLyB9CiAgICAgIHRoaXMucGFyYW1zLnBhZ2VCZWFuLnBhZ2UgPSAxOwogICAgICB0aGlzLmNhbGNUYWJsZUhlaWdodCg1MDApOwogICAgICBQdWJTdWIucHVibGlzaCgnVHJlZUl0ZW1TZWxlY3RlZCcsIG5vZGVJdGVtKTsKICAgICAgdGhpcy50cmVlSXRlbSA9IG5vZGVJdGVtIHx8IHt9OwogICAgICB0aGlzLmxvYWREYXRhKCk7CiAgICB9LAogICAgc2VsZWN0YWJsZTogZnVuY3Rpb24gc2VsZWN0YWJsZShyb3csIGluZGV4KSB7CiAgICAgIHJldHVybiByb3cucmVzY3VlU3RhdHVzIDwgJzEnOwogICAgfSwKICAgIC8vIOWIoOmZpAogICAgaGFuZGxlRGVsZXRlOiBmdW5jdGlvbiBoYW5kbGVEZWxldGUoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB0aGlzLmNsaWNrVGltZXIgPSB0cnVlOwogICAgICB0aGlzLiRjb25maXJtKCfnoa7lrprliKDpmaTpgInkuK3nmoTkuovku7bkv6Hmga/lkJfvvJ8nLCAn5o+Q56S6JywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu6K6kJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkgewogICAgICAgIHZhciBpZHMsIF95aWVsZCR0YWJsZURlbGV0ZSwgc3RhdGUsIG1lc3NhZ2UsIF90aGlzNSRwYXJhbXMkcGFnZUJlYSwgcGFnZSwgcGFnZVNpemUsIHRvdGFsLCB0b3RhbFBhZ2VzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBpZHMgPSBfdGhpczUuY3VycmVudERhdGFEZWwuam9pbigpOwogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEZWxldGUoaWRzKTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURlbGV0ZSA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJHRhYmxlRGVsZXRlLnN0YXRlOwogICAgICAgICAgICAgIG1lc3NhZ2UgPSBfeWllbGQkdGFibGVEZWxldGUubWVzc2FnZTsKICAgICAgICAgICAgICBpZiAoIXN0YXRlKSB7CiAgICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDE1OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF90aGlzNS4kbWVzc2FnZS5zdWNjZXNzKCJcdTRFOEJcdTRFRjZcdTUyMjBcdTk2NjRcdTYyMTBcdTUyOUYiKTsKICAgICAgICAgICAgICBfdGhpczUkcGFyYW1zJHBhZ2VCZWEgPSBfdGhpczUucGFyYW1zLnBhZ2VCZWFuLCBwYWdlID0gX3RoaXM1JHBhcmFtcyRwYWdlQmVhLnBhZ2UsIHBhZ2VTaXplID0gX3RoaXM1JHBhcmFtcyRwYWdlQmVhLnBhZ2VTaXplLCB0b3RhbCA9IF90aGlzNSRwYXJhbXMkcGFnZUJlYS50b3RhbDsKICAgICAgICAgICAgICB0b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHRvdGFsIC8gcGFnZVNpemUpOyAvLyDorqHnrpfmgLvpobXmlbAKICAgICAgICAgICAgICBpZiAodG90YWxQYWdlcyA+IDEgJiYgcGFnZSA9PT0gdG90YWxQYWdlcykgewogICAgICAgICAgICAgICAgaWYgKF90aGlzNS50YWJsZURhdGEubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgICAgICAgIC8vIOW9k+WJjemhteWPquacieS4gOadoeaVsOaNrgogICAgICAgICAgICAgICAgICBfdGhpczUucGFyYW1zLnBhZ2VCZWFuLnBhZ2UgLT0gMTsgLy8g6L+U5Zue5YmN5LiA6aG1CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMTM7CiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzNS5sb2FkRGF0YSgpOwogICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMTY7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgICAgX3RoaXM1LiRtZXNzYWdlLmVycm9yKG1lc3NhZ2UpOwogICAgICAgICAgICBjYXNlIDE2OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyKTsKICAgICAgfSkpKS5jYXRjaChmdW5jdGlvbiAoXykgewogICAgICAgIHJldHVybiBfOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDmkqTlm54KICAgIHJldm9jYXRpb246IGZ1bmN0aW9uIChfcmV2b2NhdGlvbikgewogICAgICBmdW5jdGlvbiByZXZvY2F0aW9uKF94KSB7CiAgICAgICAgcmV0dXJuIF9yZXZvY2F0aW9uLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgIH0KICAgICAgcmV2b2NhdGlvbi50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gX3Jldm9jYXRpb24udG9TdHJpbmcoKTsKICAgICAgfTsKICAgICAgcmV0dXJuIHJldm9jYXRpb247CiAgICB9KGZ1bmN0aW9uIChfcmVmMikgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdmFyIGlkID0gX3JlZjIuaWQ7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuaSpOWbnuaVkeaPtOWnlOa0vuWQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9fYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMoKSB7CiAgICAgICAgdmFyIF95aWVsZCRyZXZvY2F0aW9uLCBzdGF0ZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0MykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiByZXZvY2F0aW9uKGlkKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF95aWVsZCRyZXZvY2F0aW9uID0gX2NvbnRleHQzLnNlbnQ7CiAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkcmV2b2NhdGlvbi5zdGF0ZTsKICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgIF90aGlzNi4kbWVzc2FnZS5zdWNjZXNzKCfmkqTlm57miJDlip/vvIEnKTsKICAgICAgICAgICAgICAgIF90aGlzNi5sb2FkRGF0YSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUzKTsKICAgICAgfSkpKTsKICAgIH0pLAogICAgZGljdGlvbmFyeUVzY2FwZTogZGljdGlvbmFyeUVzY2FwZSwKICAgIC8v6I635Y+W56eR55uu5qCRCiAgICBnZXRUcmVlRGF0YTogZnVuY3Rpb24gZ2V0VHJlZURhdGEoY2FsbGJhY2spIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQoKSB7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gZ2V0VHJlZSgnMycpOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX2NvbnRleHQ0LnQwID0gX2NvbnRleHQ0LnNlbnQ7CiAgICAgICAgICAgICAgX2NvbnRleHQ0LnQxID0gewogICAgICAgICAgICAgICAgbmFtZTogJ+inhOeroOWItuW6picsCiAgICAgICAgICAgICAgICBlZGl0OiAxLAogICAgICAgICAgICAgICAgaWQ6ICcnLAogICAgICAgICAgICAgICAgcGFyZW50SWQ6ICcnLAogICAgICAgICAgICAgICAgY2hpbGRyZW46IF9jb250ZXh0NC50MAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgX3RoaXM3LnRyZWVEYXRhID0gW19jb250ZXh0NC50MV07CiAgICAgICAgICAgICAgLy8g5L+d6K+B6YeN5paw5Yi35paw5qCR5pWw5o2u5ZCO77yM6YCJ5Lit5pWI5p6c5LiN5aSx5pWICiAgICAgICAgICAgICAgaWYgKF90aGlzNy50cmVlSXRlbS5pZCkgewogICAgICAgICAgICAgICAgX3RoaXM3LiRuZXh0VGljayhmdW5jdGlvbiAoXykgewogICAgICAgICAgICAgICAgICB2YXIgX3RoaXM3JCRyZWZzJHRyZWVTaWRlOwogICAgICAgICAgICAgICAgICAoX3RoaXM3JCRyZWZzJHRyZWVTaWRlID0gX3RoaXM3LiRyZWZzLnRyZWVTaWRlKSA9PT0gbnVsbCB8fCBfdGhpczckJHJlZnMkdHJlZVNpZGUgPT09IHZvaWQgMCB8fCBfdGhpczckJHJlZnMkdHJlZVNpZGUuc2V0Q3VycmVudEtleShfdGhpczcudHJlZUl0ZW0uaWQpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKF90aGlzNy50cmVlRGF0YSk7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNCk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8v6I635Y+W5pWw5o2uCiAgICBsb2FkRGF0YTogZnVuY3Rpb24gbG9hZERhdGEoKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1KCkgewogICAgICAgIHZhciBfeWllbGQkdGFibGVEYXRhLCBfeWllbGQkdGFibGVEYXRhJHRvdGEsIHRvdGFsLCBfeWllbGQkdGFibGVEYXRhJHJvd3MsIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1JChfY29udGV4dDUpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NS5wcmV2ID0gX2NvbnRleHQ1Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF90aGlzOC50YWJsZUxvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEYXRhKHJlZmluZVJlcXVlc3RCb2R5KF90aGlzOC5wYXJhbXMpKTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURhdGEgPSBfY29udGV4dDUuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkdGFibGVEYXRhJHRvdGEgPSBfeWllbGQkdGFibGVEYXRhLnRvdGFsOwogICAgICAgICAgICAgIHRvdGFsID0gX3lpZWxkJHRhYmxlRGF0YSR0b3RhID09PSB2b2lkIDAgPyAwIDogX3lpZWxkJHRhYmxlRGF0YSR0b3RhOwogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURhdGEkcm93cyA9IF95aWVsZCR0YWJsZURhdGEucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHRhYmxlRGF0YSRyb3dzID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCR0YWJsZURhdGEkcm93czsKICAgICAgICAgICAgICBfdGhpczgucGFyYW1zLnBhZ2VCZWFuLnRvdGFsID0gdG90YWw7CiAgICAgICAgICAgICAgX3RoaXM4LnRhYmxlRGF0YSA9IHJvd3M7CiAgICAgICAgICAgICAgX3RoaXM4LnRhYmxlTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU1KTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5qCR6IqC54K55pON5L2cCiAgICBvcGVyYXRlRXZlbnQ6IGZ1bmN0aW9uIG9wZXJhdGVFdmVudCh0eXBlLCBkYXRhKSB7CiAgICAgIHZhciBfdGhpczkgPSB0aGlzOwogICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICBjYXNlICfmlrDlop4nOgogICAgICAgICAgdGhpcy50cmVlSXRlbVBhcmVudElkID0gZGF0YS5pZDsKICAgICAgICAgIHRoaXMudHJlZURpYWxvZyA9IHRydWU7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICfnvJbovpEnOgogICAgICAgICAgdGhpcy50cmVlSXRlbUlkID0gZGF0YS5pZDsKICAgICAgICAgIHRoaXMudHJlZUl0ZW1QYXJlbnRJZCA9IGRhdGEucGFyZW50SWQ7CiAgICAgICAgICB0aGlzLnRyZWVEaWFsb2cgPSB0cnVlOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAn5Yig6ZmkJzoKICAgICAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuWIoOmZpOmAieS4rei1hOaWmeWIhuexu+WQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu6K6kJywKICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU2KCkgewogICAgICAgICAgICB2YXIgX3lpZWxkJHRyZWVEZWxldGUsIHN0YXRlOwogICAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTYkKF9jb250ZXh0NikgewogICAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Ni5wcmV2ID0gX2NvbnRleHQ2Lm5leHQpIHsKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSAyOwogICAgICAgICAgICAgICAgICByZXR1cm4gdHJlZURlbGV0ZShkYXRhLmlkKTsKICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgX3lpZWxkJHRyZWVEZWxldGUgPSBfY29udGV4dDYuc2VudDsKICAgICAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkdHJlZURlbGV0ZS5zdGF0ZTsKICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgICAgICAgICAgICAgX3RoaXM5LiRtZXNzYWdlLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1OEQ0NFx1NjU5OVx1NTIwNlx1N0M3Qlx1NjIxMFx1NTI5RiIpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIF90aGlzOS4kbWVzc2FnZS5lcnJvcigiXHU1MjIwXHU5NjY0XHU4RDQ0XHU2NTk5XHU1MjA2XHU3QzdCXHU1OTMxXHU4RDI1Iik7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSA3OwogICAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXM5LmdldFRyZWVEYXRhKCk7CiAgICAgICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ2LnN0b3AoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIF9jYWxsZWU2KTsKICAgICAgICAgIH0pKSkuY2F0Y2goZnVuY3Rpb24gKF8pIHsKICAgICAgICAgICAgcmV0dXJuIF87CiAgICAgICAgICB9KTsKICAgICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9LAogICAgLy8g55uu5b2V5pS55Y+YCiAgICBjYXRhbG9nQ2hhbmdlOiBmdW5jdGlvbiBjYXRhbG9nQ2hhbmdlKGRpYWxvZ05hbWUpIHsKICAgICAgdmFyIF90aGlzMTAgPSB0aGlzOwogICAgICB0aGlzLmdldFRyZWVEYXRhKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgcmV0dXJuIF90aGlzMTBbZGlhbG9nTmFtZV0gPSBmYWxzZTsKICAgICAgfSk7CiAgICB9LAogICAgLy/kv67mlLkKICAgIGhhbmRsZURiQ2xpY2s6IGZ1bmN0aW9uIGhhbmRsZURiQ2xpY2socm93KSB7CiAgICAgIGlmICh0aGlzLmNsaWNrVGltZXIpIHJldHVybiB0aGlzLmNsaWNrVGltZXIgPSBmYWxzZTsKICAgICAgdGhpcy5jaGFuZ2VQYWdlKCdFZGl0QWRkUGFnZScsIHJvdyk7CiAgICB9LAogICAgLy8g5pS55Y+Y6aG16Z2iCiAgICBjaGFuZ2VQYWdlOiBmdW5jdGlvbiBjaGFuZ2VQYWdlKCkgewogICAgICB2YXIgcGFnZU5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICcnOwogICAgICB2YXIgcm93ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTsKICAgICAgdmFyIHR5cGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6ICcnOwogICAgICBpZiAoIXBhZ2VOYW1lKSByZXR1cm47CiAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZVBhZ2UnLCBwYWdlTmFtZSwgZnVuY3Rpb24gKF8pIHsKICAgICAgICBQdWJTdWIucHVibGlzaChwYWdlTmFtZSwgcm93KTsKICAgICAgfSwgdHlwZSB8fCAn6K+m5oOFJyk7CiAgICB9CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgLy8g5Zyo57uE5Lu26ZSA5q+B5LmL5YmNIOa4hemZpOiuoumYhea2iOaBrwogICAgUHViU3ViLnVuc3Vic2NyaWJlKHRoaXMucHViU3ViKTsKICB9Cn07"},null]}