{"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\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\xcjy-fvue\\src\\router\\router.js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\router\\router.js","mtime":1754597344136},{"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\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS94Y2p5LWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmluZC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZpbmQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5zb21lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zdGFydHMtd2l0aC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiOwppbXBvcnQgVnVlIGZyb20gJ3Z1ZSc7CmltcG9ydCBSb3V0ZXIgZnJvbSAndnVlLXJvdXRlcic7CmltcG9ydCBzdG9yZSBmcm9tICdAL3N0b3JlJzsKaW1wb3J0IE5vdEZvdW5kIGZyb20gJ0Avdmlld3MvTm90Rm91bmQudnVlJzsKaW1wb3J0IExvZ2luIGZyb20gJ0Avdmlld3MvTG9naW4vaW5kZXgudnVlJzsKaW1wb3J0IHJlcSBmcm9tICdAL3JlcXVlc3QnOwppbXBvcnQgdWMgZnJvbSAnQC9hcGkvdWMuanMnOwppbXBvcnQgcG9ydGFsIGZyb20gJ0AvYXBpL3BvcnRhbC5qcyc7Ci8v6Lev55SxCmltcG9ydCBtYWluUm91dGVyIGZyb20gJ0Avcm91dGVyL21vZHVsZS1yb3V0ZXInOwppbXBvcnQgY3VzdG9tU3lzdGVtUm91dGVyIGZyb20gJ0Avcm91dGVyL2N1c3RvbS1zeXN0ZW0tcm91dGVyJzsKaW1wb3J0IGJpZ1NjcmVlblJvdXRlciBmcm9tICdAL3JvdXRlci9iaWdTY3JlZW5Sb3V0ZXInOwppbXBvcnQgTGF5b3V0IGZyb20gJ0AvY29tcG9uZW50cy9sYXlvdXQvTGF5b3V0LnZ1ZSc7Ci8vIOa2iOaBr+e7hOS7tgppbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAnZWxlbWVudC11aSc7CmltcG9ydCBTcGFya01ENSBmcm9tICdzcGFyay1tZDUnOwpWdWUudXNlKFJvdXRlcik7CnZhciByb3V0ZXIgPSBuZXcgUm91dGVyKHsKICBtb2RlOiAnaGlzdG9yeScsCiAgYmFzZTogcHJvY2Vzcy5lbnYuQkFTRV9VUkwsCiAgcm91dGVzOiBbCiAgLy8g6YeN5a6a5ZCR5YiwbG9naW4KICB7CiAgICBwYXRoOiAnLycsCiAgICByZWRpcmVjdDogewogICAgICBuYW1lOiAnbG9naW4nCiAgICB9CiAgfSwKICAvLyDnmbvlvZXpobXpnaIKICB7CiAgICBwYXRoOiAnL2xvZ2luJywKICAgIG5hbWU6ICdsb2dpbicsCiAgICBjb21wb25lbnQ6IExvZ2luLAogICAgbWV0YTogewogICAgICBzaW5nbGU6IHRydWUsCiAgICAgIGFub255bW91czogdHJ1ZQogICAgfQogIH0sCiAgLy8g6YeN572u5a+G56CBCiAgewogICAgcGF0aDogJy9yZXNldFB3ZFZpZXcnLAogICAgbmFtZTogJ3Jlc2V0UHdkVmlld0lubmVyJywKICAgIHByb3BzOiB0cnVlLAogICAgY29tcG9uZW50OiBmdW5jdGlvbiBjb21wb25lbnQoKSB7CiAgICAgIHJldHVybiBpbXBvcnQoJ0Avdmlld3MvUmVzZXRQd2RWaWV3LnZ1ZScpOwogICAgfQogIH0sCiAgLy8g6Lez6L2s6Ym05p2D562J5b6F6aG16Z2iCiAgewogICAgcGF0aDogJy9zYWZldHknLAogICAgbmFtZTogJ3NhZmV0eScsCiAgICBjb21wb25lbnQ6IGZ1bmN0aW9uIGNvbXBvbmVudCgpIHsKICAgICAgcmV0dXJuIGltcG9ydCgnQC92aWV3cy9Mb2FkaW5nLnZ1ZScpOwogICAgfSwKICAgIG1ldGE6IHsKICAgICAgc2luZ2xlOiB0cnVlLAogICAgICBhbm9ueW1vdXM6IHRydWUKICAgIH0KICB9LCB7CiAgICBwYXRoOiAnL3BhdHJvbCcsCiAgICBuYW1lOiAncGF0cm9sJywKICAgIGNvbXBvbmVudDogZnVuY3Rpb24gY29tcG9uZW50KCkgewogICAgICByZXR1cm4gaW1wb3J0KCdAL3ZpZXdzL0xvYWRpbmcudnVlJyk7CiAgICB9LAogICAgbWV0YTogewogICAgICBzaW5nbGU6IHRydWUsCiAgICAgIGFub255bW91czogdHJ1ZQogICAgfQogIH0sIHsKICAgIHBhdGg6ICcvd2Vic29ja2V0Q2hlY2snLAogICAgbmFtZTogJ3dlYnNvY2tldENoZWNrJywKICAgIGNvbXBvbmVudDogZnVuY3Rpb24gY29tcG9uZW50KCkgewogICAgICByZXR1cm4gaW1wb3J0KCdAL3ZpZXdzL1dlYnNvY2tldENoZWNrLnZ1ZScpOwogICAgfSwKICAgIG1ldGE6IHsKICAgICAgc2luZ2xlOiB0cnVlLAogICAgICBhbm9ueW1vdXM6IHRydWUKICAgIH0KICB9LCB7CiAgICBwYXRoOiAnL2V2ZW50UmVnaXN0cmF0aW9uJywKICAgIG5hbWU6ICdldmVudFJlZ2lzdHJhdGlvblNpbmdsZScsCiAgICBjb21wb25lbnQ6IGZ1bmN0aW9uIGNvbXBvbmVudCgpIHsKICAgICAgcmV0dXJuIGltcG9ydCgnQC92aWV3cy9wYXRyb2xBbmRSZXNjdWUvY29tbWFuZERpc3BhdGNoL0V2ZW50UmVnaXN0cmF0aW9uJyk7CiAgICB9CiAgfSwgewogICAgcGF0aDogJy9pbmZvcm1hdGlPbkZvckF0dGVudGlvbicsCiAgICBuYW1lOiAnaW5mb3JtYXRpT25Gb3JBdHRlbnRpb25TaW5nbGUnLAogICAgY29tcG9uZW50OiBmdW5jdGlvbiBjb21wb25lbnQoKSB7CiAgICAgIHJldHVybiBpbXBvcnQoJ0Avdmlld3MvcGF0cm9sQW5kUmVzY3VlL29wZXJhdGlvbmFsTW9uaXRvcmluZy9pbmZvcm1hdGlPbkZvckF0dGVudGlvbicpOwogICAgfQogIH0sIHsKICAgIHBhdGg6ICcvc3BlY2lhbFdhcm5pbmdJbmZvcm1hdGlvbicsCiAgICBuYW1lOiAnc3BlY2lhbFdhcm5pbmdJbmZvcm1hdGlvblNpbmdsZScsCiAgICBjb21wb25lbnQ6IGZ1bmN0aW9uIGNvbXBvbmVudCgpIHsKICAgICAgcmV0dXJuIGltcG9ydCgnQC92aWV3cy9wYXRyb2xBbmRSZXNjdWUvb3BlcmF0aW9uYWxNb25pdG9yaW5nL3NwZWNpYWxXYXJuaW5nSW5mb3JtYXRpb24nKTsKICAgIH0KICB9LCB7CiAgICBwYXRoOiAnL2luZm9ybWF0aU9uRm9yQXR0ZW50aW9uUHVibGlzaCcsCiAgICBuYW1lOiAnaW5mb3JtYXRpT25Gb3JBdHRlbnRpb25QdWJsaXNoU2luZ2xlJywKICAgIGNvbXBvbmVudDogZnVuY3Rpb24gY29tcG9uZW50KCkgewogICAgICByZXR1cm4gaW1wb3J0KCdAL3ZpZXdzL3BhdHJvbEFuZFJlc2N1ZS9vcGVyYXRpb25hbE1vbml0b3JpbmcvaW5mb3JtYXRpT25Gb3JBdHRlbnRpb24vcHVibGlzaC52dWUnKTsKICAgIH0KICB9LCB7CiAgICBwYXRoOiAnL3NwZWNpYWxXYXJuaW5nSW5mb3JtYXRpb25QdWJsaXNoJywKICAgIG5hbWU6ICdzcGVjaWFsV2FybmluZ0luZm9ybWF0aW9uUHVibGlzaFNpbmdsZScsCiAgICBjb21wb25lbnQ6IGZ1bmN0aW9uIGNvbXBvbmVudCgpIHsKICAgICAgcmV0dXJuIGltcG9ydCgnQC92aWV3cy9wYXRyb2xBbmRSZXNjdWUvb3BlcmF0aW9uYWxNb25pdG9yaW5nL3NwZWNpYWxXYXJuaW5nSW5mb3JtYXRpb24vcHVibGlzaC52dWUnKTsKICAgIH0KICB9XS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGJpZ1NjcmVlblJvdXRlciksIFsKICAvLyDlkI7lj7DpobXpnaIKICB7CiAgICBwYXRoOiAnL3BsYXRMYXlvdXQnLAogICAgbmFtZTogJ3BsYXRMYXlvdXQnLAogICAgY29tcG9uZW50OiBMYXlvdXQsCiAgICBtZXRhOiB7CiAgICAgIHNpbmdsZTogdHJ1ZSwKICAgICAgYW5vbnltb3VzOiB0cnVlCiAgICB9LAogICAgY2hpbGRyZW46IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkoY3VzdG9tU3lzdGVtUm91dGVyKSwgX3RvQ29uc3VtYWJsZUFycmF5KG1haW5Sb3V0ZXIpLCBbCiAgICAvLyA0MDTpobXpnaIKICAgIHsKICAgICAgcGF0aDogJy86Y2F0Y2hBbGwoLiopJywKICAgICAgY29tcG9uZW50OiBOb3RGb3VuZCwKICAgICAgbWV0YTogewogICAgICAgIC8vIHNpbmdsZTogdHJ1ZQogICAgICB9CiAgICB9XSkKICB9LAogIC8vIDQwNOmhtemdogogIHsKICAgIHBhdGg6ICcvOmNhdGNoQWxsKC4qKScsCiAgICBjb21wb25lbnQ6IE5vdEZvdW5kLAogICAgbWV0YTogewogICAgICAvLyBzaW5nbGU6IHRydWUKICAgIH0KICB9XSkKfSk7CnZhciBjcmVhdGVSb3V0ZXIgPSBmdW5jdGlvbiBjcmVhdGVSb3V0ZXIoKSB7CiAgcmV0dXJuIG5ldyBSb3V0ZXIoewogICAgbW9kZTogJ2hpc3RvcnknLAogICAgcm91dGVzOiBbXQogIH0pOwp9OwoKLy/ph43lhpnliqjmgIHmt7vliqDot6/nlLHmlrnms5UKcm91dGVyLiRhZGRSb3V0ZXMgPSBmdW5jdGlvbiAocGFyYW1zKSB7CiAgdmFyIG5ld1JvdXRlciA9IGNyZWF0ZVJvdXRlcigpOwogIHJvdXRlci5tYXRjaGVyID0gbmV3Um91dGVyLm1hdGNoZXI7IC8v6YeN572u6Lev55Sx6KeE5YiZCiAgcm91dGVyLmFkZFJvdXRlcyhwYXJhbXMpOyAvLyDmt7vliqDot6/nlLEKfTsKCi8v5Yqo5oCB5paw5aKe5LqM57qn6Lev55SxCnJvdXRlci5hZGRMaXN0ID0gZnVuY3Rpb24gKCkgewogIHJldHVybiBmYWxzZTsKfTsKdmFyIHJlZ2lzdGVyUm91dGVGcmVzaCA9IHRydWU7CnZhciBzc29SZWRpcmVjdCA9IGZ1bmN0aW9uIHNzb1JlZGlyZWN0KCkgewogIGlmICh3aW5kb3cuc3NvQ29uZmlnLm1vZGUgPT09ICdjYXMnKSB7CiAgICB2YXIgc2VydmljZSA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOwogICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3NlcnZpY2UnLCBzZXJ2aWNlKTsKICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gd2luZG93LnNzb0NvbmZpZy51cmwgKyAnP3NlcnZpY2U9JyArIHNlcnZpY2U7CiAgfSBlbHNlIGlmICh3aW5kb3cuc3NvQ29uZmlnLm1vZGUgPT09ICdvYXV0aCcpIHsKICAgIGlmICghd2luZG93LnNzb0NvbmZpZy5jbGllbnRJZCkgewogICAgICB0aHJvdyAnb2F1dGjmqKHlvI/kuIvlv4Xpobvmj5DkvptjbGllbnRJZCc7CiAgICB9CiAgICB2YXIgX3NlcnZpY2UgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzZXJ2aWNlJywgX3NlcnZpY2UpOwogICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAiIi5jb25jYXQod2luZG93LnNzb0NvbmZpZy51cmwsICI/cmVzcG9uc2VfdHlwZT1jb2RlJmNsaWVudF9pZD0iKS5jb25jYXQod2luZG93LnNzb0NvbmZpZy5jbGllbnRJZCwgIiZyZWRpcmVjdF91cmk9IikuY29uY2F0KF9zZXJ2aWNlKTsKICB9Cn07CnZhciBoYW5kZWxTaG9ydFVybCA9IGZ1bmN0aW9uIGhhbmRlbFNob3J0VXJsKHRvLCBmcm9tLCBuZXh0KSB7CiAgcmVxLmdldCgnJHtwb3J0YWx9L3BvcnRhbC9zaG9ydHVybE1hbmFnZS92MS9nZXRMb25nVXJsQnlTaG9ydFVybD9zaG9ydFVybD0nICsgdG8uZnVsbFBhdGguc3Vic3RyKDEpLCAnJywgZmFsc2UpLnRoZW4oZnVuY3Rpb24gKHJlc3ApIHsKICAgIGlmIChyZXNwICYmIHJlc3AuZGF0YSAmJiByZXNwLmRhdGEuc3RhdGUpIHsKICAgICAgc3RvcmUuZGlzcGF0Y2goJ2xvZ2luL3ZhbGlkQW5kQ29tcGxldGVkQ3VycmVudCcsIHJlc3AuZGF0YS52YWx1ZS5ndWVzdFRva2VuKS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBuZXh0KHsKICAgICAgICAgIHBhdGg6IHJlc3AuZGF0YS52YWx1ZS51cmwKICAgICAgICB9KTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIGxvZ291dEFuZENsZWFuVXAodG8sIGZyb20sIG5leHQpOwogICAgICB9KTsKICAgIH0gZWxzZSB7CiAgICAgIG5leHQoewogICAgICAgIHBhdGg6ICcvbWVzc2FnZUZpbGxQYWdlLycgKyByZXNwLmRhdGEubWVzc2FnZQogICAgICB9KTsKICAgIH0KICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICBsb2dvdXRBbmRDbGVhblVwKHRvLCBmcm9tLCBuZXh0KTsKICB9KTsKfTsKdmFyIGdldEFsbERpY3QgPSBmdW5jdGlvbiBnZXRBbGxEaWN0KCkgewogIHBvcnRhbC5nZXRTeXNEaWN0KCkudGhlbihmdW5jdGlvbiAoZGF0YSkgewogICAgaWYgKGRhdGEpIHsKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnZGljdF9kYXRhJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwogICAgfQogIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHsKICAgIGNvbnNvbGUubG9nKGVyciwgJ+Wtl+WFuGVycicpOwogIH0pOwp9Owp2YXIgbG9nb3V0QW5kQ2xlYW5VcCA9IGZ1bmN0aW9uIGxvZ291dEFuZENsZWFuVXAodG8sIGZyb20sIG5leHQpIHsKICBzdG9yZS5kaXNwYXRjaCgnbG9naW4vbG9nb3V0QW5kQ2xlYW5VcCcpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgaWYgKHdpbmRvdy5zc29Db25maWcubW9kZSAmJiB3aW5kb3cuc3NvQ29uZmlnLm1vZGUgIT09ICdqd3QnKSB7CiAgICAgIHNzb1JlZGlyZWN0KCk7CiAgICB9IGVsc2UgaWYgKCF3aW5kb3cuc3NvQ29uZmlnLm1vZGUgfHwgd2luZG93LnNzb0NvbmZpZy5tb2RlID09PSAnand0JykgewogICAgICBuZXh0KHsKICAgICAgICBwYXRoOiAnL2xvZ2luJwogICAgICAgIC8vIHF1ZXJ5OiB7CiAgICAgICAgLy8gICAgIHJlZGlyZWN0OiB0by5mdWxsUGF0aAogICAgICAgIC8vIH0KICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyAn55m75b2V5aSx6LSlJzsKICAgIH0KICB9KTsKfTsKdmFyIGRlY29kZVRva2VuID0gZnVuY3Rpb24gZGVjb2RlVG9rZW4oa2V5KSB7CiAgdmFyIHNwYXJrU3RyID0gJyc7CiAgdmFyIHNwYXJrID0gbmV3IFNwYXJrTUQ1KCk7CiAgc3BhcmsuYXBwZW5kKGtleSk7CiAgc3BhcmtTdHIgPSBzcGFyay5lbmQoKTsKICBjb25zb2xlLmxvZygnc3BhcmtTdHInLCBzcGFya1N0cik7CiAgdmFyIEJhc2U2NCA9IHJlcXVpcmUoJ2pzLWJhc2U2NCcpLkJhc2U2NDsKICB2YXIgdG9rZW4gPSBCYXNlNjQuZW5jb2RlKHNwYXJrU3RyKTsKICByZXR1cm4gdG9rZW47Cn07CgovLyDpgJrov4fotKblj7fnmbvlvZUKdmFyIGFjY291bnRMb2dpbiA9IGZ1bmN0aW9uIGFjY291bnRMb2dpbih1c2VySW5mbywgbmV4dCwgbmFtZSkgewogIHZhciBwdWJsaXNoSWQgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6ICcnOwogIHN0b3JlLmRpc3BhdGNoKCdsb2dpbi9sb2dpbkJ5UHJpbmNpcGFsJywgdXNlckluZm8pLnRoZW4oZnVuY3Rpb24gKGxvZ2luU3RhdHVzKSB7CiAgICBpZiAobG9naW5TdGF0dXMgJiYgbG9naW5TdGF0dXMgPT0gdHJ1ZSkgewogICAgICBnZXRBbGxEaWN0KCk7CiAgICAgIC8vIOiOt+WPluW9k+WJjeeUqOaIt+eahOaMiemSruOAgeaWueazleadg+mZkAogICAgICBzdG9yZS5kaXNwYXRjaCgnbWVudS9nZXRDdXJyZW50VXNlck1ldGhvZEF1dGgnKTsKICAgICAgLy/ojrflj5bliY3lj7DpobXpnaLmiYDmnInoj5zljZUKICAgICAgc3RvcmUuZGlzcGF0Y2goJ21lbnUvYWN0aW9uRnJvbnRNZW51cycpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIGlmIChyZXMubGVuZ3RoKSB7CiAgICAgICAgICBzdG9yZS5kaXNwYXRjaCgnbG9naW4vY2hlY2tVc2VySW5mb1N0YXRlJykudGhlbihmdW5jdGlvbiAoaXNGaW5pc2hVc2VySW5mbykgewogICAgICAgICAgICBpZiAoIWlzRmluaXNoVXNlckluZm8pIHsKICAgICAgICAgICAgICBuZXh0KHsKICAgICAgICAgICAgICAgIHBhdGg6ICcvcGxhdExheW91dC9wZXJzb25hbEluZm8nCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgLy8g5LqL5Lu255m76K6wCiAgICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdldmVudFJlZ2lzdHJhdGlvblNpbmdsZScpIHsKICAgICAgICAgICAgICAgIG5leHQoewogICAgICAgICAgICAgICAgICBwYXRoOiAnL2V2ZW50UmVnaXN0cmF0aW9uJwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09PSAnaW5mb3JtYXRpT25Gb3JBdHRlbnRpb25TaW5nbGUnKSB7CiAgICAgICAgICAgICAgICBuZXh0KHsKICAgICAgICAgICAgICAgICAgcGF0aDogJy9pbmZvcm1hdGlPbkZvckF0dGVudGlvbicKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ3NwZWNpYWxXYXJuaW5nSW5mb3JtYXRpb25TaW5nbGUnKSB7CiAgICAgICAgICAgICAgICBuZXh0KHsKICAgICAgICAgICAgICAgICAgcGF0aDogJy9zcGVjaWFsV2FybmluZ0luZm9ybWF0aW9uJwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09PSAnaW5mb3JtYXRpT25Gb3JBdHRlbnRpb25QdWJsaXNoU2luZ2xlJykgewogICAgICAgICAgICAgICAgbmV4dCh7CiAgICAgICAgICAgICAgICAgIHBhdGg6ICcvaW5mb3JtYXRpT25Gb3JBdHRlbnRpb25QdWJsaXNoJywKICAgICAgICAgICAgICAgICAgcXVlcnk6IHsKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoSWQ6IHB1Ymxpc2hJZAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICdzcGVjaWFsV2FybmluZ0luZm9ybWF0aW9uUHVibGlzaFNpbmdsZScpIHsKICAgICAgICAgICAgICAgIG5leHQoewogICAgICAgICAgICAgICAgICBwYXRoOiAnL3NwZWNpYWxXYXJuaW5nSW5mb3JtYXRpb25QdWJsaXNoJywKICAgICAgICAgICAgICAgICAgcXVlcnk6IHsKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoSWQ6IHB1Ymxpc2hJZAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8g6Lez6L2s5Yiw5p2D6ZmQ6aG16Z2iCiAgICAgICAgICAgICAgICB2YXIgX3JlZiA9IHJlcyAmJiByZXMuZmluZChmdW5jdGlvbiAoaSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBpLmFsaWFzID09PSAnbm9ybWFsJzsKICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbjsKICAgICAgICAgICAgICAgIHZhciBnZXRQYXRoID0gZnVuY3Rpb24gZ2V0UGF0aCh0cmVlRGF0YSkgewogICAgICAgICAgICAgICAgICB2YXIgcGF0aCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7CiAgICAgICAgICAgICAgICAgIHJldHVybiBwYXRoICsgIi8iLmNvbmNhdCh0cmVlRGF0YVswXS5hbGlhcyk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgbmV4dCh7CiAgICAgICAgICAgICAgICAgIHBhdGg6IGdldFBhdGgoY2hpbGRyZW4sICcvcGxhdExheW91dCcpCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBNZXNzYWdlLmVycm9yKCfmirHmrYnvvIHmgqjlsJrml6Dlj6/orr/pl67pobXpnaLvvIzor7fogZTns7vnrqHnkIblkZjmt7vliqDvvIEnKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogIH0pOwp9Owpyb3V0ZXIuYmVmb3JlRWFjaCgvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogIHZhciBfcmVmMiA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlKHRvLCBmcm9tLCBuZXh0KSB7CiAgICB2YXIgZGF0YSwgdG9rZW4sIHB0aywgdGlja2V0OwogICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgY2FzZSAwOgogICAgICAgICAgLy8g6am+6am26Iix55m75b2V5Yiw5LqL5Lu255m76K6w5oiW6ICF5bel5L2c5Y+w5pC65bimdG9rZW5LZXkKICAgICAgICAgIGlmICgodG8ubmFtZSA9PT0gJ2V2ZW50UmVnaXN0cmF0aW9uU2luZ2xlJyB8fCB0by5uYW1lID09PSAnaW5mb3JtYXRpT25Gb3JBdHRlbnRpb25TaW5nbGUnIHx8IHRvLm5hbWUgPT09ICdzcGVjaWFsV2FybmluZ0luZm9ybWF0aW9uU2luZ2xlJyB8fCB0by5uYW1lID09PSAnaW5mb3JtYXRpT25Gb3JBdHRlbnRpb25QdWJsaXNoU2luZ2xlJyB8fCB0by5uYW1lID09PSAnc3BlY2lhbFdhcm5pbmdJbmZvcm1hdGlvblB1Ymxpc2hTaW5nbGUnIHx8IHRvLm5hbWUgPT09ICdwYXRyb2wnKSAmJiB0by5xdWVyeS50b2tlbktleSkgewogICAgICAgICAgICBkZWNvZGVUb2tlbignYWRtaW4nICsgJ0FydGZlc3NAMDI0Jyk7CiAgICAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAga2V5OiB0by5xdWVyeS50b2tlbktleQogICAgICAgICAgICB9OwogICAgICAgICAgICB0b2tlbiA9IHsKICAgICAgICAgICAgICB0b2tlbjogJycsCiAgICAgICAgICAgICAgdG9rZW5LZXk6IHRvLnF1ZXJ5LnRva2VuS2V5CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHVjLmF1dGhGb3JtVXNlclRva2VuS2V5KGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgIGlmIChyZXMuc3VjY2VzcykgewogICAgICAgICAgICAgICAgdG9rZW4udG9rZW4gPSByZXMuZGF0YTsKICAgICAgICAgICAgICAgIHVjLmF1dGhVc2VySW5mbyh0b2tlbikudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3VjY2VzcykgewogICAgICAgICAgICAgICAgICAgIC8v5ZCM5q2l5ZCO6I635Y+W55So5oi35ZCN5a+G56CB55m75b2VCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleSA9ICdBcnRmZXNzQDAyNCc7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRlY29kZVRva2VuU3RyID0gZGVjb2RlVG9rZW4ocmVzLmRhdGEudXNlckNvZGUgKyBrZXkpOwogICAgICAgICAgICAgICAgICAgIHZhciBwdWJsaXNoSWQgPSB0by5xdWVyeS5wdWJsaXNoSWQgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgYWNjb3VudExvZ2luKHsKICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQ6IHJlcy5kYXRhLnVzZXJDb2RlLAogICAgICAgICAgICAgICAgICAgICAgdG9rZW46IGRlY29kZVRva2VuU3RyLAogICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6ICcnCiAgICAgICAgICAgICAgICAgICAgfSwgbmV4dCwgdG8ubmFtZSwgcHVibGlzaElkKTsKICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICAgICAgICAgICAgICAgIG5leHQoewogICAgICAgICAgICAgICAgICAgICAgcGF0aDogJy9sb2dpbicKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIE1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgICAgICAgICAgICBuZXh0KHsKICAgICAgICAgICAgICAgICAgcGF0aDogJy9sb2dpbicKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICAgIE1lc3NhZ2UuZXJyb3IoZXJyKTsKICAgICAgICAgICAgICBuZXh0KHsKICAgICAgICAgICAgICAgIHBhdGg6ICcvbG9naW4nCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIOe7n+S4gOmXqOaIt+WIsOaQuuW4pnB0a+eZu+W9lQogICAgICAgICAgaWYgKCh0by5uYW1lID09PSAnc2FmZXR5JyB8fCB0by5uYW1lID09PSAncGF0cm9sJykgJiYgdG8ucXVlcnkucHRrKSB7CiAgICAgICAgICAgIHB0ayA9IHRvLnF1ZXJ5LnB0azsKICAgICAgICAgICAgdWMudmFsaWRhdGVLZXlBbmRHZXRVc2VyKHB0aykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0ZSkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzKTsKICAgICAgICAgICAgICAgIHZhciBhY2NvdW50ID0gcmVzLnZhbHVlLmFjY291bnQgfHwgJyc7CiAgICAgICAgICAgICAgICB2YXIga2V5ID0gJ0FydGZlc3NAMDI0JzsKICAgICAgICAgICAgICAgIHZhciBkZWNvZGVUb2tlblN0ciA9IGRlY29kZVRva2VuKGFjY291bnQgKyBrZXkpOwogICAgICAgICAgICAgICAgYWNjb3VudExvZ2luKHsKICAgICAgICAgICAgICAgICAgYWNjb3VudDogYWNjb3VudCwKICAgICAgICAgICAgICAgICAgdG9rZW46IGRlY29kZVRva2VuU3RyLAogICAgICAgICAgICAgICAgICBwYXNzd29yZDogJycKICAgICAgICAgICAgICAgIH0sIG5leHQsIHRvLm5hbWUpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBNZXNzYWdlLmVycm9yKCfpqozor4HlpLHotKUnKTsKICAgICAgICAgICAgICAgIG5leHQoewogICAgICAgICAgICAgICAgICBwYXRoOiAnL2xvZ2luJwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgTWVzc2FnZS5lcnJvcihlcnIgfHwgJ+mqjOivgeWksei0pScpOwogICAgICAgICAgICAgIG5leHQoewogICAgICAgICAgICAgICAgcGF0aDogJy9sb2dpbicKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgICBzdG9yZS5kaXNwYXRjaCgnbWVudS9nZXRBbGxtZW51cycsIHt9KS50aGVuKGZ1bmN0aW9uIChtZW51cykgewogICAgICAgICAgICAvL2hyZWboj5zljZXkuI3ov5vov5nmrrXku6PnoIEKICAgICAgICAgICAgaWYgKHRvLmZ1bGxQYXRoLmluZGV4T2YoJ2hyZWYnKSA9PT0gLTEpIHsKICAgICAgICAgICAgICB2YXIgYWxpYXMgPSB0by5mdWxsUGF0aC5zcGxpdCgnLycpWzFdOwogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVudXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGlmIChtZW51c1tpXS5hbGlhcyA9PT0gYWxpYXMpIHsKICAgICAgICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ21lbnUvZ2V0Q3VycmVudE1lbnUnLCB7CiAgICAgICAgICAgICAgICAgICAgYWxpYXM6IG1lbnVzW2ldLmFsaWFzLAogICAgICAgICAgICAgICAgICAgIG5hbWU6IG1lbnVzW2ldLm5hbWUKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICBpZiAoIXRvLmZ1bGxQYXRoLnN0YXJ0c1dpdGgoJy9zdXJsLycpKSB7CiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA2OwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGhhbmRlbFNob3J0VXJsKHRvLCBmcm9tLCBuZXh0KTsKICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoInJldHVybiIpOwogICAgICAgIGNhc2UgNjoKICAgICAgICAgIGlmICghKHRvLm5hbWUgPT09ICdsb2dpbicgJiYgd2luZG93LnNzb0NvbmZpZy5tb2RlICYmIHdpbmRvdy5zc29Db25maWcubW9kZSAhPT0gJ2p3dCcpKSB7CiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxMzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoISgod2luZG93LnNzb0NvbmZpZy5tb2RlID09PSAnY2FzJyB8fCB3aW5kb3cuc3NvQ29uZmlnLm1vZGUgPT09ICdvYXV0aCcpICYmICh0by5xdWVyeS5jb2RlIHx8IHRvLnF1ZXJ5LnRpY2tldCkpKSB7CiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxMjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnJlcGxhY2UoJy9sb2dpbicsICcnKTsKICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoInJldHVybiIpOwogICAgICAgIGNhc2UgMTI6CiAgICAgICAgICBzc29SZWRpcmVjdCgpOwogICAgICAgIGNhc2UgMTM6CiAgICAgICAgICBpZiAoZnJvbS5uYW1lICE9PSAnZGVmU3RhcnQnIHx8IHRvLm5hbWUgIT09ICdpbnN0U3RhcnQnKSB7CiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2Zvcm1JbXBvcnRUZW1wUmVmSWQnKTsKICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnZm9ybUltcG9ydFRlbXBKc29uJyk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc2Vzc2lvblN0b3JhZ2UubWVudV9hbGlhcyAmJiB0by5mdWxsUGF0aCAmJiB0by5mdWxsUGF0aC5zcGxpdCgnLycpWzFdID09PSAnaG9tZScpIHsKICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2UubWVudV9hbGlhcyA9ICcnOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHRvLm1hdGNoZWQuc29tZShmdW5jdGlvbiAocmVjb3JkKSB7CiAgICAgICAgICAgIHJldHVybiAhcmVjb3JkLm1ldGEuYW5vbnltb3VzOwogICAgICAgICAgfSkpIHsKICAgICAgICAgICAgdGlja2V0ID0gdG8ucXVlcnkudG9rZW47IC8vIDIu5b2T5YmN5bey57uP5LuO5Y2V54K56aG16Z2i6YeN5a6a5ZCR5Zue5p2l5LqG77yM5LiU5ZyodXJs5Zyw5Z2A5Lit5pC65bim5LqGdGlja2V05oiWY29kZe+8mwogICAgICAgICAgICBpZiAod2luZG93LnNzb0NvbmZpZy5tb2RlID09PSAnY2FzJykgewogICAgICAgICAgICAgIHRpY2tldCA9IHRvLnF1ZXJ5LnRpY2tldDsKICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cuc3NvQ29uZmlnLm1vZGUgPT09ICdvYXV0aCcpIHsKICAgICAgICAgICAgICB0aWNrZXQgPSB0by5xdWVyeS5jb2RlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN0b3JlCiAgICAgICAgICAgIC8vIDMu5pC65bimdGlja2V05YGa55So5oi36Ym05p2D77ybCiAgICAgICAgICAgIC5kaXNwYXRjaCgnbG9naW4vdmFsaWRBbmRDb21wbGV0ZWRDdXJyZW50JywgdGlja2V0KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBzdG9yZS5kaXNwYXRjaCgnbWVudS9hY3Rpb25Gcm9udE1lbnVzJyk7CiAgICAgICAgICAgICAgc3RvcmUuX3ZtLiRyb290LiRlbWl0KCdsb2dpbi1jb21wbGV0ZWQnKTsKICAgICAgICAgICAgICBpZiAocmVnaXN0ZXJSb3V0ZUZyZXNoKSB7CiAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvblN0b3JhZ2UubWVudV9hbGlhcykgewogICAgICAgICAgICAgICAgICB2YXIgcGF0aCA9ICcvJyArIHNlc3Npb25TdG9yYWdlLm1lbnVfYWxpYXM7CiAgICAgICAgICAgICAgICAgIHZhciBpc0NoaWxkcmVuID0gcm91dGVyLmFkZExpc3QocGF0aCwgcm91dGVyLm9wdGlvbnMucm91dGVzKTsgLy/liqjmgIHmlrDlop7kuoznuqfot6/nlLEKICAgICAgICAgICAgICAgICAgLy/lvZPliY3ngrnlh7voj5zljZXnmoTot6/nlLHliKvlkI3kuI3lrZjlnKggcm91dGVyLmpzIOmHjOmdogogICAgICAgICAgICAgICAgICAvLyBpZiAoIWlzQ2hpbGRyZW4pIHsKICAgICAgICAgICAgICAgICAgLy8gICBsZXQgYWxpYXNfbmV3ID0gewogICAgICAgICAgICAgICAgICAvLyAgICAgcGF0aDogcGF0aCwKICAgICAgICAgICAgICAgICAgLy8gICAgIG5hbWU6ICdhbGlhc19uZXcnLAogICAgICAgICAgICAgICAgICAvLyAgICAgY29tcG9uZW50OiByZXNvbHZlID0+CiAgICAgICAgICAgICAgICAgIC8vICAgICAgIHJlcXVpcmUoWydAL3ZpZXdzL21lbnVDb250ZW50LnZ1ZSddLCByZXNvbHZlKSwKICAgICAgICAgICAgICAgICAgLy8gICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICAgICAgICAvLyAgIH0KICAgICAgICAgICAgICAgICAgLy8gICByb3V0ZXIub3B0aW9ucy5yb3V0ZXMucHVzaChhbGlhc19uZXcpCiAgICAgICAgICAgICAgICAgIC8vICAgcm91dGVyLmFkZExpc3QocGF0aCwgcm91dGVyLm9wdGlvbnMucm91dGVzKSAvL+WKqOaAgeaWsOWinuS6jOe6p+i3r+eUsQogICAgICAgICAgICAgICAgICAvLyB9CiAgICAgICAgICAgICAgICAgIHJvdXRlci5yZXBsYWNlKHsKICAgICAgICAgICAgICAgICAgICBwYXRoOiB0by5wYXRoLAogICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiB0by5xdWVyeQogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJlZ2lzdGVyUm91dGVGcmVzaCA9IGZhbHNlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICAgICAgLy8gdXJs5Zyw5Z2A5bimdG9rZW7nmoTmlrnlvI/orqTor4HmiJDlip/lkI7liKDpmaR1cmzkuK3nmoR0b2tlbgogICAgICAgICAgICAgIC8vIHJlbW92ZVVybFBhcmFtcygndG9rZW5LZXknKQogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgLy8gNC7pibTmnYPlpLHotKXml7bmoLnmja7lvZPliY3mqKHlvI/ph43lrprlkJHliLDlr7nlupTpobXpnaLjgIIKICAgICAgICAgICAgICBsb2dvdXRBbmRDbGVhblVwKHRvLCBmcm9tLCBuZXh0KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICB9CiAgICAgICAgY2FzZSAxNjoKICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgfQogICAgfSwgX2NhbGxlZSk7CiAgfSkpOwogIHJldHVybiBmdW5jdGlvbiAoX3gsIF94MiwgX3gzKSB7CiAgICByZXR1cm4gX3JlZjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICB9Owp9KCkpOwpleHBvcnQgZGVmYXVsdCByb3V0ZXI7"},null]}