car_web/node_modules/.cache/babel-loader/5eca3f8ff222a851680d9062eb9...

1 line
62 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"remainingRequest":"D:\\workspace\\car_web\\node_modules\\babel-loader\\lib\\index.js!D:\\workspace\\car_web\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\workspace\\car_web\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\workspace\\car_web\\src\\components\\Crontab\\result.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\workspace\\car_web\\src\\components\\Crontab\\result.vue","mtime":1708672711873},{"path":"D:\\workspace\\car_web\\babel.config.js","mtime":1708672711828},{"path":"D:\\workspace\\car_web\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\workspace\\car_web\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\workspace\\car_web\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\workspace\\car_web\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgewogIHZhbHVlOiB0cnVlCn0pOwpleHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5wdXNoLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zb3J0LmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcubWF0Y2guanMiKTsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KdmFyIF9kZWZhdWx0ID0gZXhwb3J0cy5kZWZhdWx0ID0gewogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBkYXlSdWxlOiAnJywKICAgICAgZGF5UnVsZVN1cDogJycsCiAgICAgIGRhdGVBcnI6IFtdLAogICAgICByZXN1bHRMaXN0OiBbXSwKICAgICAgaXNTaG93OiBmYWxzZQogICAgfTsKICB9LAogIG5hbWU6ICdjcm9udGFiLXJlc3VsdCcsCiAgbWV0aG9kczogewogICAgLy8g6KGo6L6+5byP5YC85Y+Y5YyW5pe277yM5byA5aeL5Y676K6h566X57uT5p6cCiAgICBleHByZXNzaW9uQ2hhbmdlOiBmdW5jdGlvbiBleHByZXNzaW9uQ2hhbmdlKCkgewogICAgICAvLyDorqHnrpflvIDlp4st6ZqQ6JeP57uT5p6cCiAgICAgIHRoaXMuaXNTaG93ID0gZmFsc2U7CiAgICAgIC8vIOiOt+WPluinhOWImeaVsOe7hFsw56eS44CBMeWIhuOAgTLml7bjgIEz5pel44CBNOaciOOAgTXmmJ/mnJ/jgIE25bm0XQogICAgICB2YXIgcnVsZUFyciA9IHRoaXMuJG9wdGlvbnMucHJvcHNEYXRhLmV4LnNwbGl0KCcgJyk7CiAgICAgIC8vIOeUqOS6juiusOW9lei/m+WFpeW+queOr+eahOasoeaVsAogICAgICB2YXIgbnVtcyA9IDA7CiAgICAgIC8vIOeUqOS6juaaguaXtuWtmOespuWPt+aXtumXtOinhOWImee7k+aenOeahOaVsOe7hAogICAgICB2YXIgcmVzdWx0QXJyID0gW107CiAgICAgIC8vIOiOt+WPluW9k+WJjeaXtumXtOeyvuehruiHs1vlubTjgIHmnIjjgIHml6XjgIHml7bjgIHliIbjgIHnp5JdCiAgICAgIHZhciBuVGltZSA9IG5ldyBEYXRlKCk7CiAgICAgIHZhciBuWWVhciA9IG5UaW1lLmdldEZ1bGxZZWFyKCk7CiAgICAgIHZhciBuTW9udGggPSBuVGltZS5nZXRNb250aCgpICsgMTsKICAgICAgdmFyIG5EYXkgPSBuVGltZS5nZXREYXRlKCk7CiAgICAgIHZhciBuSG91ciA9IG5UaW1lLmdldEhvdXJzKCk7CiAgICAgIHZhciBuTWluID0gblRpbWUuZ2V0TWludXRlcygpOwogICAgICB2YXIgblNlY29uZCA9IG5UaW1lLmdldFNlY29uZHMoKTsKICAgICAgLy8g5qC55o2u6KeE5YiZ6I635Y+W5Yiw6L+RMTAw5bm05Y+v6IO95bm05pWw57uE44CB5pyI5pWw57uE562J562JCiAgICAgIHRoaXMuZ2V0U2Vjb25kQXJyKHJ1bGVBcnJbMF0pOwogICAgICB0aGlzLmdldE1pbkFycihydWxlQXJyWzFdKTsKICAgICAgdGhpcy5nZXRIb3VyQXJyKHJ1bGVBcnJbMl0pOwogICAgICB0aGlzLmdldERheUFycihydWxlQXJyWzNdKTsKICAgICAgdGhpcy5nZXRNb250aEFycihydWxlQXJyWzRdKTsKICAgICAgdGhpcy5nZXRXZWVrQXJyKHJ1bGVBcnJbNV0pOwogICAgICB0aGlzLmdldFllYXJBcnIocnVsZUFycls2XSwgblllYXIpOwogICAgICAvLyDlsIbojrflj5bliLDnmoTmlbDnu4TotYvlgLwt5pa55L6/5L2/55SoCiAgICAgIHZhciBzRGF0ZSA9IHRoaXMuZGF0ZUFyclswXTsKICAgICAgdmFyIG1EYXRlID0gdGhpcy5kYXRlQXJyWzFdOwogICAgICB2YXIgaERhdGUgPSB0aGlzLmRhdGVBcnJbMl07CiAgICAgIHZhciBERGF0ZSA9IHRoaXMuZGF0ZUFyclszXTsKICAgICAgdmFyIE1EYXRlID0gdGhpcy5kYXRlQXJyWzRdOwogICAgICB2YXIgWURhdGUgPSB0aGlzLmRhdGVBcnJbNV07CiAgICAgIC8vIOiOt+WPluW9k+WJjeaXtumXtOWcqOaVsOe7hOS4reeahOe0ouW8lQogICAgICB2YXIgc0lkeCA9IHRoaXMuZ2V0SW5kZXgoc0RhdGUsIG5TZWNvbmQpOwogICAgICB2YXIgbUlkeCA9IHRoaXMuZ2V0SW5kZXgobURhdGUsIG5NaW4pOwogICAgICB2YXIgaElkeCA9IHRoaXMuZ2V0SW5kZXgoaERhdGUsIG5Ib3VyKTsKICAgICAgdmFyIERJZHggPSB0aGlzLmdldEluZGV4KEREYXRlLCBuRGF5KTsKICAgICAgdmFyIE1JZHggPSB0aGlzLmdldEluZGV4KE1EYXRlLCBuTW9udGgpOwogICAgICB2YXIgWUlkeCA9IHRoaXMuZ2V0SW5kZXgoWURhdGUsIG5ZZWFyKTsKICAgICAgLy8g6YeN572u5pyI5pel5pe25YiG56eS55qE5Ye95pWwKOWQjumdoueUqOeahOavlOi+g+WkmikKICAgICAgdmFyIHJlc2V0U2Vjb25kID0gZnVuY3Rpb24gcmVzZXRTZWNvbmQoKSB7CiAgICAgICAgc0lkeCA9IDA7CiAgICAgICAgblNlY29uZCA9IHNEYXRlW3NJZHhdOwogICAgICB9OwogICAgICB2YXIgcmVzZXRNaW4gPSBmdW5jdGlvbiByZXNldE1pbigpIHsKICAgICAgICBtSWR4ID0gMDsKICAgICAgICBuTWluID0gbURhdGVbbUlkeF07CiAgICAgICAgcmVzZXRTZWNvbmQoKTsKICAgICAgfTsKICAgICAgdmFyIHJlc2V0SG91ciA9IGZ1bmN0aW9uIHJlc2V0SG91cigpIHsKICAgICAgICBoSWR4ID0gMDsKICAgICAgICBuSG91ciA9IGhEYXRlW2hJZHhdOwogICAgICAgIHJlc2V0TWluKCk7CiAgICAgIH07CiAgICAgIHZhciByZXNldERheSA9IGZ1bmN0aW9uIHJlc2V0RGF5KCkgewogICAgICAgIERJZHggPSAwOwogICAgICAgIG5EYXkgPSBERGF0ZVtESWR4XTsKICAgICAgICByZXNldEhvdXIoKTsKICAgICAgfTsKICAgICAgdmFyIHJlc2V0TW9udGggPSBmdW5jdGlvbiByZXNldE1vbnRoKCkgewogICAgICAgIE1JZHggPSAwOwogICAgICAgIG5Nb250aCA9IE1EYXRlW01JZHhdOwogICAgICAgIHJlc2V0RGF5KCk7CiAgICAgIH07CiAgICAgIC8vIOWmguaenOW9k+WJjeW5tOS7veS4jeS4uuaVsOe7hOS4reW9k+WJjeWAvAogICAgICBpZiAoblllYXIgIT09IFlEYXRlW1lJZHhdKSB7CiAgICAgICAgcmVzZXRNb250aCgpOwogICAgICB9CiAgICAgIC8vIOWmguaenOW9k+WJjeaciOS7veS4jeS4uuaVsOe7hOS4reW9k+WJjeWAvAogICAgICBpZiAobk1vbnRoICE9PSBNRGF0ZVtNSWR4XSkgewogICAgICAgIHJlc2V0RGF5KCk7CiAgICAgIH0KICAgICAgLy8g5aaC5p6c5b2T5YmN4oCc5pel4oCd5LiN5Li65pWw57uE5Lit5b2T5YmN5YC8CiAgICAgIGlmIChuRGF5ICE9PSBERGF0ZVtESWR4XSkgewogICAgICAgIHJlc2V0SG91cigpOwogICAgICB9CiAgICAgIC8vIOWmguaenOW9k+WJjeKAnOaXtuKAneS4jeS4uuaVsOe7hOS4reW9k+WJjeWAvAogICAgICBpZiAobkhvdXIgIT09IGhEYXRlW2hJZHhdKSB7CiAgICAgICAgcmVzZXRNaW4oKTsKICAgICAgfQogICAgICAvLyDlpoLmnpzlvZPliY3igJzliIbigJ3kuI3kuLrmlbDnu4TkuK3lvZPliY3lgLwKICAgICAgaWYgKG5NaW4gIT09IG1EYXRlW21JZHhdKSB7CiAgICAgICAgcmVzZXRTZWNvbmQoKTsKICAgICAgfQoKICAgICAgLy8g5b6q546v5bm05Lu95pWw57uECiAgICAgIGdvWWVhcjogZm9yICh2YXIgWWkgPSBZSWR4OyBZaSA8IFlEYXRlLmxlbmd0aDsgWWkrKykgewogICAgICAgIHZhciBZWSA9IFlEYXRlW1lpXTsKICAgICAgICAvLyDlpoLmnpzliLDovr7mnIDlpKflgLzml7YKICAgICAgICBpZiAobk1vbnRoID4gTURhdGVbTURhdGUubGVuZ3RoIC0gMV0pIHsKICAgICAgICAgIHJlc2V0TW9udGgoKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICAvLyDlvqrnjq/mnIjku73mlbDnu4QKICAgICAgICBnb01vbnRoOiBmb3IgKHZhciBNaSA9IE1JZHg7IE1pIDwgTURhdGUubGVuZ3RoOyBNaSsrKSB7CiAgICAgICAgICAvLyDotYvlgLzjgIHmlrnkvr/lkI7pnaLov5DnrpcKICAgICAgICAgIHZhciBNTSA9IE1EYXRlW01pXTsKICAgICAgICAgIE1NID0gTU0gPCAxMCA/ICcwJyArIE1NIDogTU07CiAgICAgICAgICAvLyDlpoLmnpzliLDovr7mnIDlpKflgLzml7YKICAgICAgICAgIGlmIChuRGF5ID4gRERhdGVbRERhdGUubGVuZ3RoIC0gMV0pIHsKICAgICAgICAgICAgcmVzZXREYXkoKTsKICAgICAgICAgICAgaWYgKE1pID09IE1EYXRlLmxlbmd0aCAtIDEpIHsKICAgICAgICAgICAgICByZXNldE1vbnRoKCk7CiAgICAgICAgICAgICAgY29udGludWUgZ29ZZWFyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgLy8g5b6q546v5pel5pyf5pWw57uECiAgICAgICAgICBnb0RheTogZm9yICh2YXIgRGkgPSBESWR4OyBEaSA8IEREYXRlLmxlbmd0aDsgRGkrKykgewogICAgICAgICAgICAvLyDotYvlgLzjgIHmlrnkvr/lkI7pnaLov5DnrpcKICAgICAgICAgICAgdmFyIEREID0gRERhdGVbRGldOwogICAgICAgICAgICB2YXIgdGhpc0REID0gREQgPCAxMCA/ICcwJyArIEREIDogREQ7CgogICAgICAgICAgICAvLyDlpoLmnpzliLDovr7mnIDlpKflgLzml7YKICAgICAgICAgICAgaWYgKG5Ib3VyID4gaERhdGVbaERhdGUubGVuZ3RoIC0gMV0pIHsKICAgICAgICAgICAgICByZXNldEhvdXIoKTsKICAgICAgICAgICAgICBpZiAoRGkgPT0gRERhdGUubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgcmVzZXREYXkoKTsKICAgICAgICAgICAgICAgIGlmIChNaSA9PSBNRGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgIHJlc2V0TW9udGgoKTsKICAgICAgICAgICAgICAgICAgY29udGludWUgZ29ZZWFyOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29udGludWUgZ29Nb250aDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIOWIpOaWreaXpeacn+eahOWQiOazleaAp++8jOS4jeWQiOazleeahOivneS5n+aYr+i3s+WHuuW9k+WJjeW+queOrwogICAgICAgICAgICBpZiAodGhpcy5jaGVja0RhdGUoWVkgKyAnLScgKyBNTSArICctJyArIHRoaXNERCArICcgMDA6MDA6MDAnKSAhPT0gdHJ1ZSAmJiB0aGlzLmRheVJ1bGUgIT09ICd3b3JrRGF5JyAmJiB0aGlzLmRheVJ1bGUgIT09ICdsYXN0V2VlaycgJiYgdGhpcy5kYXlSdWxlICE9PSAnbGFzdERheScpIHsKICAgICAgICAgICAgICByZXNldERheSgpOwogICAgICAgICAgICAgIGNvbnRpbnVlIGdvTW9udGg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8g5aaC5p6c5pel5pyf6KeE5YiZ5Lit5pyJ5YC85pe2CiAgICAgICAgICAgIGlmICh0aGlzLmRheVJ1bGUgPT0gJ2xhc3REYXknKSB7CiAgICAgICAgICAgICAgLy8g5aaC5p6c5LiN5piv5ZCI5rOV5pel5pyf5YiZ6ZyA6KaB5bCG5YmN5bCG5pel5pyf6LCD5Yiw5ZCI5rOV5pel5pyf5Y2z5pyI5pyr5pyA5ZCO5LiA5aSpCgogICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrRGF0ZShZWSArICctJyArIE1NICsgJy0nICsgdGhpc0REICsgJyAwMDowMDowMCcpICE9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoREQgPiAwICYmIHRoaXMuY2hlY2tEYXRlKFlZICsgJy0nICsgTU0gKyAnLScgKyB0aGlzREQgKyAnIDAwOjAwOjAwJykgIT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgREQtLTsKICAgICAgICAgICAgICAgICAgdGhpc0REID0gREQgPCAxMCA/ICcwJyArIEREIDogREQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF5UnVsZSA9PSAnd29ya0RheScpIHsKICAgICAgICAgICAgICAvLyDmoKHpqozlubbosIPmlbTlpoLmnpzmmK8y5pyIMzDlj7fov5nnp43ml6XmnJ/kvKDov5vmnaXml7bpnIDosIPmlbToh7PmraPluLjmnIjlupUKICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja0RhdGUoWVkgKyAnLScgKyBNTSArICctJyArIHRoaXNERCArICcgMDA6MDA6MDAnKSAhPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgd2hpbGUgKEREID4gMCAmJiB0aGlzLmNoZWNrRGF0ZShZWSArICctJyArIE1NICsgJy0nICsgdGhpc0REICsgJyAwMDowMDowMCcpICE9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgIERELS07CiAgICAgICAgICAgICAgICAgIHRoaXNERCA9IEREIDwgMTAgPyAnMCcgKyBERCA6IEREOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyDojrflj5bovr7liLDmnaHku7bnmoTml6XmnJ/mmK/mmJ/mnJ9YCiAgICAgICAgICAgICAgdmFyIHRoaXNXZWVrID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKFlZICsgJy0nICsgTU0gKyAnLScgKyB0aGlzREQgKyAnIDAwOjAwOjAwJyksICd3ZWVrJyk7CiAgICAgICAgICAgICAgLy8g5b2T5pif5pyf5pel5pe2CiAgICAgICAgICAgICAgaWYgKHRoaXNXZWVrID09IDEpIHsKICAgICAgICAgICAgICAgIC8vIOWFiOaJvuS4i+S4gOS4quaXpe+8jOW5tuWIpOaWreaYr+WQpuS4uuaciOW6lQogICAgICAgICAgICAgICAgREQrKzsKICAgICAgICAgICAgICAgIHRoaXNERCA9IEREIDwgMTAgPyAnMCcgKyBERCA6IEREOwogICAgICAgICAgICAgICAgLy8g5Yik5pat5LiL5LiA5pel5bey57uP5LiN5piv5ZCI5rOV5pel5pyfCiAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja0RhdGUoWVkgKyAnLScgKyBNTSArICctJyArIHRoaXNERCArICcgMDA6MDA6MDAnKSAhPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICBERCAtPSAzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpc1dlZWsgPT0gNykgewogICAgICAgICAgICAgICAgLy8g5b2T5pif5pyfNuaXtuWPqumcgOWIpOaWreS4jeaYrzHlj7flsLHlj6/ov5vooYzmk43kvZwKICAgICAgICAgICAgICAgIGlmICh0aGlzLmRheVJ1bGVTdXAgIT09IDEpIHsKICAgICAgICAgICAgICAgICAgREQtLTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIEREICs9IDI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF5UnVsZSA9PSAnd2Vla0RheScpIHsKICAgICAgICAgICAgICAvLyDlpoLmnpzmjIflrprkuobmmK/mmJ/mnJ/lh6AKICAgICAgICAgICAgICAvLyDojrflj5blvZPliY3ml6XmnJ/mmK/lsZ7kuo7mmJ/mnJ/lh6AKICAgICAgICAgICAgICB2YXIgX3RoaXNXZWVrID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKFlZICsgJy0nICsgTU0gKyAnLScgKyBERCArICcgMDA6MDA6MDAnKSwgJ3dlZWsnKTsKICAgICAgICAgICAgICAvLyDmoKHpqozlvZPliY3mmJ/mnJ/mmK/lkKblnKjmmJ/mnJ/msaDvvIhkYXlSdWxlU3Vw77yJ5LitCiAgICAgICAgICAgICAgaWYgKHRoaXMuZGF5UnVsZVN1cC5pbmRleE9mKF90aGlzV2VlaykgPCAwKSB7CiAgICAgICAgICAgICAgICAvLyDlpoLmnpzliLDovr7mnIDlpKflgLzml7YKICAgICAgICAgICAgICAgIGlmIChEaSA9PSBERGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgIHJlc2V0RGF5KCk7CiAgICAgICAgICAgICAgICAgIGlmIChNaSA9PSBNRGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzZXRNb250aCgpOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGdvWWVhcjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBjb250aW51ZSBnb01vbnRoOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF5UnVsZSA9PSAnYXNzV2VlaycpIHsKICAgICAgICAgICAgICAvLyDlpoLmnpzmjIflrprkuobmmK/nrKzlh6DlkajnmoTmmJ/mnJ/lh6AKICAgICAgICAgICAgICAvLyDojrflj5bmr4/mnIgx5Y+35piv5bGe5LqO5pif5pyf5YegCiAgICAgICAgICAgICAgdmFyIF90aGlzV2VlazIgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoWVkgKyAnLScgKyBNTSArICctJyArIEREICsgJyAwMDowMDowMCcpLCAnd2VlaycpOwogICAgICAgICAgICAgIGlmICh0aGlzLmRheVJ1bGVTdXBbMV0gPj0gX3RoaXNXZWVrMikgewogICAgICAgICAgICAgICAgREQgPSAodGhpcy5kYXlSdWxlU3VwWzBdIC0gMSkgKiA3ICsgdGhpcy5kYXlSdWxlU3VwWzFdIC0gX3RoaXNXZWVrMiArIDE7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIEREID0gdGhpcy5kYXlSdWxlU3VwWzBdICogNyArIHRoaXMuZGF5UnVsZVN1cFsxXSAtIF90aGlzV2VlazIgKyAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRheVJ1bGUgPT0gJ2xhc3RXZWVrJykgewogICAgICAgICAgICAgIC8vIOWmguaenOaMh+WumuS6huavj+aciOacgOWQjuS4gOS4quaYn+acn+WHoAogICAgICAgICAgICAgIC8vIOagoemqjOW5tuiwg+aVtOWmguaenOaYrzLmnIgzMOWPt+i/meenjeaXpeacn+S8oOi/m+adpeaXtumcgOiwg+aVtOiHs+ato+W4uOaciOW6lQogICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrRGF0ZShZWSArICctJyArIE1NICsgJy0nICsgdGhpc0REICsgJyAwMDowMDowMCcpICE9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoREQgPiAwICYmIHRoaXMuY2hlY2tEYXRlKFlZICsgJy0nICsgTU0gKyAnLScgKyB0aGlzREQgKyAnIDAwOjAwOjAwJykgIT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgREQtLTsKICAgICAgICAgICAgICAgICAgdGhpc0REID0gREQgPCAxMCA/ICcwJyArIEREIDogREQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIC8vIOiOt+WPluaciOacq+acgOWQjuS4gOWkqeaYr+aYn+acn+WHoAogICAgICAgICAgICAgIHZhciBfdGhpc1dlZWszID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKFlZICsgJy0nICsgTU0gKyAnLScgKyB0aGlzREQgKyAnIDAwOjAwOjAwJyksICd3ZWVrJyk7CiAgICAgICAgICAgICAgLy8g5om+5Yiw6KaB5rGC5Lit5pyA6L+R55qE6YKj5Liq5pif5pyf5YegCiAgICAgICAgICAgICAgaWYgKHRoaXMuZGF5UnVsZVN1cCA8IF90aGlzV2VlazMpIHsKICAgICAgICAgICAgICAgIEREIC09IF90aGlzV2VlazMgLSB0aGlzLmRheVJ1bGVTdXA7CiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRheVJ1bGVTdXAgPiBfdGhpc1dlZWszKSB7CiAgICAgICAgICAgICAgICBERCAtPSA3IC0gKHRoaXMuZGF5UnVsZVN1cCAtIF90aGlzV2VlazMpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAvLyDliKTmlq3ml7bpl7TlgLzmmK/lkKblsI/kuo4xMOe9ruaNouaIkOKAnDA14oCd6L+Z56eN5qC85byPCiAgICAgICAgICAgIEREID0gREQgPCAxMCA/ICcwJyArIEREIDogREQ7CgogICAgICAgICAgICAvLyDlvqrnjq/igJzml7bigJ3mlbDnu4QKICAgICAgICAgICAgZ29Ib3VyOiBmb3IgKHZhciBoaSA9IGhJZHg7IGhpIDwgaERhdGUubGVuZ3RoOyBoaSsrKSB7CiAgICAgICAgICAgICAgdmFyIGhoID0gaERhdGVbaGldIDwgMTAgPyAnMCcgKyBoRGF0ZVtoaV0gOiBoRGF0ZVtoaV07CgogICAgICAgICAgICAgIC8vIOWmguaenOWIsOi+vuacgOWkp+WAvOaXtgogICAgICAgICAgICAgIGlmIChuTWluID4gbURhdGVbbURhdGUubGVuZ3RoIC0gMV0pIHsKICAgICAgICAgICAgICAgIHJlc2V0TWluKCk7CiAgICAgICAgICAgICAgICBpZiAoaGkgPT0gaERhdGUubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgICByZXNldEhvdXIoKTsKICAgICAgICAgICAgICAgICAgaWYgKERpID09IEREYXRlLmxlbmd0aCAtIDEpIHsKICAgICAgICAgICAgICAgICAgICByZXNldERheSgpOwogICAgICAgICAgICAgICAgICAgIGlmIChNaSA9PSBNRGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICByZXNldE1vbnRoKCk7CiAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBnb1llYXI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGdvTW9udGg7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgY29udGludWUgZ29EYXk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy8g5b6q546vIuWIhiLmlbDnu4QKICAgICAgICAgICAgICBnb01pbjogZm9yICh2YXIgbWkgPSBtSWR4OyBtaSA8IG1EYXRlLmxlbmd0aDsgbWkrKykgewogICAgICAgICAgICAgICAgdmFyIG1tID0gbURhdGVbbWldIDwgMTAgPyAnMCcgKyBtRGF0ZVttaV0gOiBtRGF0ZVttaV07CgogICAgICAgICAgICAgICAgLy8g5aaC5p6c5Yiw6L6+5pyA5aSn5YC85pe2CiAgICAgICAgICAgICAgICBpZiAoblNlY29uZCA+IHNEYXRlW3NEYXRlLmxlbmd0aCAtIDFdKSB7CiAgICAgICAgICAgICAgICAgIHJlc2V0U2Vjb25kKCk7CiAgICAgICAgICAgICAgICAgIGlmIChtaSA9PSBtRGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzZXRNaW4oKTsKICAgICAgICAgICAgICAgICAgICBpZiAoaGkgPT0gaERhdGUubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgICAgICAgcmVzZXRIb3VyKCk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoRGkgPT0gRERhdGUubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXNldERheSgpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTWkgPT0gTURhdGUubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0TW9udGgoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBnb1llYXI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgZ29Nb250aDsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGdvRGF5OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBnb0hvdXI7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyDlvqrnjq8i56eSIuaVsOe7hAogICAgICAgICAgICAgICAgZ29TZWNvbmQ6IGZvciAodmFyIHNpID0gc0lkeDsgc2kgPD0gc0RhdGUubGVuZ3RoIC0gMTsgc2krKykgewogICAgICAgICAgICAgICAgICB2YXIgc3MgPSBzRGF0ZVtzaV0gPCAxMCA/ICcwJyArIHNEYXRlW3NpXSA6IHNEYXRlW3NpXTsKICAgICAgICAgICAgICAgICAgLy8g5re75Yqg5b2T5YmN5pe26Ze077yI5pe26Ze05ZCI5rOV5oCn5Zyo5pel5pyf5b6q546v5pe25bey57uP5Yik5pat77yJCiAgICAgICAgICAgICAgICAgIGlmIChNTSAhPT0gJzAwJyAmJiBERCAhPT0gJzAwJykgewogICAgICAgICAgICAgICAgICAgIHJlc3VsdEFyci5wdXNoKFlZICsgJy0nICsgTU0gKyAnLScgKyBERCArICcgJyArIGhoICsgJzonICsgbW0gKyAnOicgKyBzcyk7CiAgICAgICAgICAgICAgICAgICAgbnVtcysrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIC8vIOWmguaenOadoeaVsOa7oeS6huWwsemAgOWHuuW+queOrwogICAgICAgICAgICAgICAgICBpZiAobnVtcyA9PSA1KSBicmVhayBnb1llYXI7CiAgICAgICAgICAgICAgICAgIC8vIOWmguaenOWIsOi+vuacgOWkp+WAvOaXtgogICAgICAgICAgICAgICAgICBpZiAoc2kgPT0gc0RhdGUubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgICAgIHJlc2V0U2Vjb25kKCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKG1pID09IG1EYXRlLmxlbmd0aCAtIDEpIHsKICAgICAgICAgICAgICAgICAgICAgIHJlc2V0TWluKCk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoaGkgPT0gaERhdGUubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXNldEhvdXIoKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERpID09IEREYXRlLmxlbmd0aCAtIDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldERheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChNaSA9PSBNRGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldE1vbnRoKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBnb1llYXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGdvTW9udGg7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgZ29EYXk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBnb0hvdXI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGdvTWluOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IC8vZ29TZWNvbmQKICAgICAgICAgICAgICB9IC8vZ29NaW4KICAgICAgICAgICAgfSAvL2dvSG91cgogICAgICAgICAgfSAvL2dvRGF5CiAgICAgICAgfSAvL2dvTW9udGgKICAgICAgfQogICAgICAvLyDliKTmlq0xMDDlubTlhoXnmoTnu5PmnpzmnaHmlbAKICAgICAgaWYgKHJlc3VsdEFyci5sZW5ndGggPT0gMCkgewogICAgICAgIHRoaXMucmVzdWx0TGlzdCA9IFsn5rKh5pyJ6L6+5Yiw5p2h5Lu255qE57uT5p6c77yBJ107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5yZXN1bHRMaXN0ID0gcmVzdWx0QXJyOwogICAgICAgIGlmIChyZXN1bHRBcnIubGVuZ3RoICE9PSA1KSB7CiAgICAgICAgICB0aGlzLnJlc3VsdExpc3QucHVzaCgn5pyA6L+RMTAw5bm05YaF5Y+q5pyJ5LiK6Z2iJyArIHJlc3VsdEFyci5sZW5ndGggKyAn5p2h57uT5p6c77yBJyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIOiuoeeul+WujOaIkC3mmL7npLrnu5PmnpwKICAgICAgdGhpcy5pc1Nob3cgPSB0cnVlOwogICAgfSwKICAgIC8vIOeUqOS6juiuoeeul+afkOS9jeaVsOWtl+WcqOaVsOe7hOS4reeahOe0ouW8lQogICAgZ2V0SW5kZXg6IGZ1bmN0aW9uIGdldEluZGV4KGFyciwgdmFsdWUpIHsKICAgICAgaWYgKHZhbHVlIDw9IGFyclswXSB8fCB2YWx1ZSA+IGFyclthcnIubGVuZ3RoIC0gMV0pIHsKICAgICAgICByZXR1cm4gMDsKICAgICAgfSBlbHNlIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGggLSAxOyBpKyspIHsKICAgICAgICAgIGlmICh2YWx1ZSA+IGFycltpXSAmJiB2YWx1ZSA8PSBhcnJbaSArIDFdKSB7CiAgICAgICAgICAgIHJldHVybiBpICsgMTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAvLyDojrflj5Yi5bm0IuaVsOe7hAogICAgZ2V0WWVhckFycjogZnVuY3Rpb24gZ2V0WWVhckFycihydWxlLCB5ZWFyKSB7CiAgICAgIHRoaXMuZGF0ZUFycls1XSA9IHRoaXMuZ2V0T3JkZXJBcnIoeWVhciwgeWVhciArIDEwMCk7CiAgICAgIGlmIChydWxlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICBpZiAocnVsZS5pbmRleE9mKCctJykgPj0gMCkgewogICAgICAgICAgdGhpcy5kYXRlQXJyWzVdID0gdGhpcy5nZXRDeWNsZUFycihydWxlLCB5ZWFyICsgMTAwLCBmYWxzZSk7CiAgICAgICAgfSBlbHNlIGlmIChydWxlLmluZGV4T2YoJy8nKSA+PSAwKSB7CiAgICAgICAgICB0aGlzLmRhdGVBcnJbNV0gPSB0aGlzLmdldEF2ZXJhZ2VBcnIocnVsZSwgeWVhciArIDEwMCk7CiAgICAgICAgfSBlbHNlIGlmIChydWxlICE9PSAnKicpIHsKICAgICAgICAgIHRoaXMuZGF0ZUFycls1XSA9IHRoaXMuZ2V0QXNzaWduQXJyKHJ1bGUpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8vIOiOt+WPliLmnIgi5pWw57uECiAgICBnZXRNb250aEFycjogZnVuY3Rpb24gZ2V0TW9udGhBcnIocnVsZSkgewogICAgICB0aGlzLmRhdGVBcnJbNF0gPSB0aGlzLmdldE9yZGVyQXJyKDEsIDEyKTsKICAgICAgaWYgKHJ1bGUuaW5kZXhPZignLScpID49IDApIHsKICAgICAgICB0aGlzLmRhdGVBcnJbNF0gPSB0aGlzLmdldEN5Y2xlQXJyKHJ1bGUsIDEyLCBmYWxzZSk7CiAgICAgIH0gZWxzZSBpZiAocnVsZS5pbmRleE9mKCcvJykgPj0gMCkgewogICAgICAgIHRoaXMuZGF0ZUFycls0XSA9IHRoaXMuZ2V0QXZlcmFnZUFycihydWxlLCAxMik7CiAgICAgIH0gZWxzZSBpZiAocnVsZSAhPT0gJyonKSB7CiAgICAgICAgdGhpcy5kYXRlQXJyWzRdID0gdGhpcy5nZXRBc3NpZ25BcnIocnVsZSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDojrflj5Yi5pelIuaVsOe7hC3kuLvopoHkuLrml6XmnJ/op4TliJkKICAgIGdldFdlZWtBcnI6IGZ1bmN0aW9uIGdldFdlZWtBcnIocnVsZSkgewogICAgICAvLyDlj6rmnInlvZPml6XmnJ/op4TliJnnmoTkuKTkuKrlgLzlnYfkuLrigJzigJ3ml7bliJnooajovr7ml6XmnJ/mmK/mnInpgInpobnnmoQKICAgICAgaWYgKHRoaXMuZGF5UnVsZSA9PSAnJyAmJiB0aGlzLmRheVJ1bGVTdXAgPT0gJycpIHsKICAgICAgICBpZiAocnVsZS5pbmRleE9mKCctJykgPj0gMCkgewogICAgICAgICAgdGhpcy5kYXlSdWxlID0gJ3dlZWtEYXknOwogICAgICAgICAgdGhpcy5kYXlSdWxlU3VwID0gdGhpcy5nZXRDeWNsZUFycihydWxlLCA3LCBmYWxzZSk7CiAgICAgICAgfSBlbHNlIGlmIChydWxlLmluZGV4T2YoJyMnKSA+PSAwKSB7CiAgICAgICAgICB0aGlzLmRheVJ1bGUgPSAnYXNzV2Vlayc7CiAgICAgICAgICB2YXIgbWF0Y2hSdWxlID0gcnVsZS5tYXRjaCgvWzAtOV17MX0vZyk7CiAgICAgICAgICB0aGlzLmRheVJ1bGVTdXAgPSBbTnVtYmVyKG1hdGNoUnVsZVsxXSksIE51bWJlcihtYXRjaFJ1bGVbMF0pXTsKICAgICAgICAgIHRoaXMuZGF0ZUFyclszXSA9IFsxXTsKICAgICAgICAgIGlmICh0aGlzLmRheVJ1bGVTdXBbMV0gPT0gNykgewogICAgICAgICAgICB0aGlzLmRheVJ1bGVTdXBbMV0gPSAwOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAocnVsZS5pbmRleE9mKCdMJykgPj0gMCkgewogICAgICAgICAgdGhpcy5kYXlSdWxlID0gJ2xhc3RXZWVrJzsKICAgICAgICAgIHRoaXMuZGF5UnVsZVN1cCA9IE51bWJlcihydWxlLm1hdGNoKC9bMC05XXsxLDJ9L2cpWzBdKTsKICAgICAgICAgIHRoaXMuZGF0ZUFyclszXSA9IFszMV07CiAgICAgICAgICBpZiAodGhpcy5kYXlSdWxlU3VwID09IDcpIHsKICAgICAgICAgICAgdGhpcy5kYXlSdWxlU3VwID0gMDsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKHJ1bGUgIT09ICcqJyAmJiBydWxlICE9PSAnPycpIHsKICAgICAgICAgIHRoaXMuZGF5UnVsZSA9ICd3ZWVrRGF5JzsKICAgICAgICAgIHRoaXMuZGF5UnVsZVN1cCA9IHRoaXMuZ2V0QXNzaWduQXJyKHJ1bGUpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8vIOiOt+WPliLml6Ui5pWw57uELeWwkemHj+S4uuaXpeacn+inhOWImQogICAgZ2V0RGF5QXJyOiBmdW5jdGlvbiBnZXREYXlBcnIocnVsZSkgewogICAgICB0aGlzLmRhdGVBcnJbM10gPSB0aGlzLmdldE9yZGVyQXJyKDEsIDMxKTsKICAgICAgdGhpcy5kYXlSdWxlID0gJyc7CiAgICAgIHRoaXMuZGF5UnVsZVN1cCA9ICcnOwogICAgICBpZiAocnVsZS5pbmRleE9mKCctJykgPj0gMCkgewogICAgICAgIHRoaXMuZGF0ZUFyclszXSA9IHRoaXMuZ2V0Q3ljbGVBcnIocnVsZSwgMzEsIGZhbHNlKTsKICAgICAgICB0aGlzLmRheVJ1bGVTdXAgPSAnbnVsbCc7CiAgICAgIH0gZWxzZSBpZiAocnVsZS5pbmRleE9mKCcvJykgPj0gMCkgewogICAgICAgIHRoaXMuZGF0ZUFyclszXSA9IHRoaXMuZ2V0QXZlcmFnZUFycihydWxlLCAzMSk7CiAgICAgICAgdGhpcy5kYXlSdWxlU3VwID0gJ251bGwnOwogICAgICB9IGVsc2UgaWYgKHJ1bGUuaW5kZXhPZignVycpID49IDApIHsKICAgICAgICB0aGlzLmRheVJ1bGUgPSAnd29ya0RheSc7CiAgICAgICAgdGhpcy5kYXlSdWxlU3VwID0gTnVtYmVyKHJ1bGUubWF0Y2goL1swLTldezEsMn0vZylbMF0pOwogICAgICAgIHRoaXMuZGF0ZUFyclszXSA9IFt0aGlzLmRheVJ1bGVTdXBdOwogICAgICB9IGVsc2UgaWYgKHJ1bGUuaW5kZXhPZignTCcpID49IDApIHsKICAgICAgICB0aGlzLmRheVJ1bGUgPSAnbGFzdERheSc7CiAgICAgICAgdGhpcy5kYXlSdWxlU3VwID0gJ251bGwnOwogICAgICAgIHRoaXMuZGF0ZUFyclszXSA9IFszMV07CiAgICAgIH0gZWxzZSBpZiAocnVsZSAhPT0gJyonICYmIHJ1bGUgIT09ICc/JykgewogICAgICAgIHRoaXMuZGF0ZUFyclszXSA9IHRoaXMuZ2V0QXNzaWduQXJyKHJ1bGUpOwogICAgICAgIHRoaXMuZGF5UnVsZVN1cCA9ICdudWxsJzsKICAgICAgfSBlbHNlIGlmIChydWxlID09ICcqJykgewogICAgICAgIHRoaXMuZGF5UnVsZVN1cCA9ICdudWxsJzsKICAgICAgfQogICAgfSwKICAgIC8vIOiOt+WPliLml7Yi5pWw57uECiAgICBnZXRIb3VyQXJyOiBmdW5jdGlvbiBnZXRIb3VyQXJyKHJ1bGUpIHsKICAgICAgdGhpcy5kYXRlQXJyWzJdID0gdGhpcy5nZXRPcmRlckFycigwLCAyMyk7CiAgICAgIGlmIChydWxlLmluZGV4T2YoJy0nKSA+PSAwKSB7CiAgICAgICAgdGhpcy5kYXRlQXJyWzJdID0gdGhpcy5nZXRDeWNsZUFycihydWxlLCAyNCwgdHJ1ZSk7CiAgICAgIH0gZWxzZSBpZiAocnVsZS5pbmRleE9mKCcvJykgPj0gMCkgewogICAgICAgIHRoaXMuZGF0ZUFyclsyXSA9IHRoaXMuZ2V0QXZlcmFnZUFycihydWxlLCAyMyk7CiAgICAgIH0gZWxzZSBpZiAocnVsZSAhPT0gJyonKSB7CiAgICAgICAgdGhpcy5kYXRlQXJyWzJdID0gdGhpcy5nZXRBc3NpZ25BcnIocnVsZSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDojrflj5Yi5YiGIuaVsOe7hAogICAgZ2V0TWluQXJyOiBmdW5jdGlvbiBnZXRNaW5BcnIocnVsZSkgewogICAgICB0aGlzLmRhdGVBcnJbMV0gPSB0aGlzLmdldE9yZGVyQXJyKDAsIDU5KTsKICAgICAgaWYgKHJ1bGUuaW5kZXhPZignLScpID49IDApIHsKICAgICAgICB0aGlzLmRhdGVBcnJbMV0gPSB0aGlzLmdldEN5Y2xlQXJyKHJ1bGUsIDYwLCB0cnVlKTsKICAgICAgfSBlbHNlIGlmIChydWxlLmluZGV4T2YoJy8nKSA+PSAwKSB7CiAgICAgICAgdGhpcy5kYXRlQXJyWzFdID0gdGhpcy5nZXRBdmVyYWdlQXJyKHJ1bGUsIDU5KTsKICAgICAgfSBlbHNlIGlmIChydWxlICE9PSAnKicpIHsKICAgICAgICB0aGlzLmRhdGVBcnJbMV0gPSB0aGlzLmdldEFzc2lnbkFycihydWxlKTsKICAgICAgfQogICAgfSwKICAgIC8vIOiOt+WPliLnp5Ii5pWw57uECiAgICBnZXRTZWNvbmRBcnI6IGZ1bmN0aW9uIGdldFNlY29uZEFycihydWxlKSB7CiAgICAgIHRoaXMuZGF0ZUFyclswXSA9IHRoaXMuZ2V0T3JkZXJBcnIoMCwgNTkpOwogICAgICBpZiAocnVsZS5pbmRleE9mKCctJykgPj0gMCkgewogICAgICAgIHRoaXMuZGF0ZUFyclswXSA9IHRoaXMuZ2V0Q3ljbGVBcnIocnVsZSwgNjAsIHRydWUpOwogICAgICB9IGVsc2UgaWYgKHJ1bGUuaW5kZXhPZignLycpID49IDApIHsKICAgICAgICB0aGlzLmRhdGVBcnJbMF0gPSB0aGlzLmdldEF2ZXJhZ2VBcnIocnVsZSwgNTkpOwogICAgICB9IGVsc2UgaWYgKHJ1bGUgIT09ICcqJykgewogICAgICAgIHRoaXMuZGF0ZUFyclswXSA9IHRoaXMuZ2V0QXNzaWduQXJyKHJ1bGUpOwogICAgICB9CiAgICB9LAogICAgLy8g5qC55o2u5Lyg6L+b5p2l55qEbWluLW1heOi/lOWbnuS4gOS4qumhuuW6j+eahOaVsOe7hAogICAgZ2V0T3JkZXJBcnI6IGZ1bmN0aW9uIGdldE9yZGVyQXJyKG1pbiwgbWF4KSB7CiAgICAgIHZhciBhcnIgPSBbXTsKICAgICAgZm9yICh2YXIgaSA9IG1pbjsgaSA8PSBtYXg7IGkrKykgewogICAgICAgIGFyci5wdXNoKGkpOwogICAgICB9CiAgICAgIHJldHVybiBhcnI7CiAgICB9LAogICAgLy8g5qC55o2u6KeE5YiZ5Lit5oyH5a6a55qE6Zu25pWj5YC86L+U5Zue5LiA5Liq5pWw57uECiAgICBnZXRBc3NpZ25BcnI6IGZ1bmN0aW9uIGdldEFzc2lnbkFycihydWxlKSB7CiAgICAgIHZhciBhcnIgPSBbXTsKICAgICAgdmFyIGFzc2lnaW5BcnIgPSBydWxlLnNwbGl0KCcsJyk7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXNzaWdpbkFyci5sZW5ndGg7IGkrKykgewogICAgICAgIGFycltpXSA9IE51bWJlcihhc3NpZ2luQXJyW2ldKTsKICAgICAgfQogICAgICBhcnIuc29ydCh0aGlzLmNvbXBhcmUpOwogICAgICByZXR1cm4gYXJyOwogICAgfSwKICAgIC8vIOagueaNruS4gOWumueul+acr+inhOWImeiuoeeul+i/lOWbnuS4gOS4quaVsOe7hAogICAgZ2V0QXZlcmFnZUFycjogZnVuY3Rpb24gZ2V0QXZlcmFnZUFycihydWxlLCBsaW1pdCkgewogICAgICB2YXIgYXJyID0gW107CiAgICAgIHZhciBhZ0FyciA9IHJ1bGUuc3BsaXQoJy8nKTsKICAgICAgdmFyIG1pbiA9IE51bWJlcihhZ0FyclswXSk7CiAgICAgIHZhciBzdGVwID0gTnVtYmVyKGFnQXJyWzFdKTsKICAgICAgd2hpbGUgKG1pbiA8PSBsaW1pdCkgewogICAgICAgIGFyci5wdXNoKG1pbik7CiAgICAgICAgbWluICs9IHN0ZXA7CiAgICAgIH0KICAgICAgcmV0dXJuIGFycjsKICAgIH0sCiAgICAvLyDmoLnmja7op4TliJnov5Tlm57kuIDkuKrlhbfmnInlkajmnJ/mgKfnmoTmlbDnu4QKICAgIGdldEN5Y2xlQXJyOiBmdW5jdGlvbiBnZXRDeWNsZUFycihydWxlLCBsaW1pdCwgc3RhdHVzKSB7CiAgICAgIC8vIHN0YXR1cy0t6KGo56S65piv5ZCm5LuOMOW8gOWni++8iOWImeS7jjHlvIDlp4vvvIkKICAgICAgdmFyIGFyciA9IFtdOwogICAgICB2YXIgY3ljbGVBcnIgPSBydWxlLnNwbGl0KCctJyk7CiAgICAgIHZhciBtaW4gPSBOdW1iZXIoY3ljbGVBcnJbMF0pOwogICAgICB2YXIgbWF4ID0gTnVtYmVyKGN5Y2xlQXJyWzFdKTsKICAgICAgaWYgKG1pbiA+IG1heCkgewogICAgICAgIG1heCArPSBsaW1pdDsKICAgICAgfQogICAgICBmb3IgKHZhciBpID0gbWluOyBpIDw9IG1heDsgaSsrKSB7CiAgICAgICAgdmFyIGFkZCA9IDA7CiAgICAgICAgaWYgKHN0YXR1cyA9PSBmYWxzZSAmJiBpICUgbGltaXQgPT0gMCkgewogICAgICAgICAgYWRkID0gbGltaXQ7CiAgICAgICAgfQogICAgICAgIGFyci5wdXNoKE1hdGgucm91bmQoaSAlIGxpbWl0ICsgYWRkKSk7CiAgICAgIH0KICAgICAgYXJyLnNvcnQodGhpcy5jb21wYXJlKTsKICAgICAgcmV0dXJuIGFycjsKICAgIH0sCiAgICAvLyDmr5TovoPmlbDlrZflpKflsI/vvIjnlKjkuo5BcnJheS5zb3J077yJCiAgICBjb21wYXJlOiBmdW5jdGlvbiBjb21wYXJlKHZhbHVlMSwgdmFsdWUyKSB7CiAgICAgIGlmICh2YWx1ZTIgLSB2YWx1ZTEgPiAwKSB7CiAgICAgICAgcmV0dXJuIC0xOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiAxOwogICAgICB9CiAgICB9LAogICAgLy8g5qC85byP5YyW5pel5pyf5qC85byP5aaC77yaMjAxNy05LTE5IDE4OjA0OjMzCiAgICBmb3JtYXREYXRlOiBmdW5jdGlvbiBmb3JtYXREYXRlKHZhbHVlLCB0eXBlKSB7CiAgICAgIC8vIOiuoeeul+aXpeacn+ebuOWFs+WAvAogICAgICB2YXIgdGltZSA9IHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyA/IG5ldyBEYXRlKHZhbHVlKSA6IHZhbHVlOwogICAgICB2YXIgWSA9IHRpbWUuZ2V0RnVsbFllYXIoKTsKICAgICAgdmFyIE0gPSB0aW1lLmdldE1vbnRoKCkgKyAxOwogICAgICB2YXIgRCA9IHRpbWUuZ2V0RGF0ZSgpOwogICAgICB2YXIgaCA9IHRpbWUuZ2V0SG91cnMoKTsKICAgICAgdmFyIG0gPSB0aW1lLmdldE1pbnV0ZXMoKTsKICAgICAgdmFyIHMgPSB0aW1lLmdldFNlY29uZHMoKTsKICAgICAgdmFyIHdlZWsgPSB0aW1lLmdldERheSgpOwogICAgICAvLyDlpoLmnpzkvKDpgJLkuoZ0eXBl55qE6K+dCiAgICAgIGlmICh0eXBlID09IHVuZGVmaW5lZCkgewogICAgICAgIHJldHVybiBZICsgJy0nICsgKE0gPCAxMCA/ICcwJyArIE0gOiBNKSArICctJyArIChEIDwgMTAgPyAnMCcgKyBEIDogRCkgKyAnICcgKyAoaCA8IDEwID8gJzAnICsgaCA6IGgpICsgJzonICsgKG0gPCAxMCA/ICcwJyArIG0gOiBtKSArICc6JyArIChzIDwgMTAgPyAnMCcgKyBzIDogcyk7CiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnd2VlaycpIHsKICAgICAgICAvLyDlnKhxdWFydHrkuK0gMeS4uuaYn+acn+aXpQogICAgICAgIHJldHVybiB3ZWVrICsgMTsKICAgICAgfQogICAgfSwKICAgIC8vIOajgOafpeaXpeacn+aYr+WQpuWtmOWcqAogICAgY2hlY2tEYXRlOiBmdW5jdGlvbiBjaGVja0RhdGUodmFsdWUpIHsKICAgICAgdmFyIHRpbWUgPSBuZXcgRGF0ZSh2YWx1ZSk7CiAgICAgIHZhciBmb3JtYXQgPSB0aGlzLmZvcm1hdERhdGUodGltZSk7CiAgICAgIHJldHVybiB2YWx1ZSA9PT0gZm9ybWF0OwogICAgfQogIH0sCiAgd2F0Y2g6IHsKICAgICdleCc6ICdleHByZXNzaW9uQ2hhbmdlJwogIH0sCiAgcHJvcHM6IFsnZXgnXSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgLy8g5Yid5aeL5YyWIOiOt+WPluS4gOasoee7k+aenAogICAgdGhpcy5leHByZXNzaW9uQ2hhbmdlKCk7CiAgfQp9Ow=="},{"version":3,"names":["data","dayRule","dayRuleSup","dateArr","resultList","isShow","name","methods","expressionChange","ruleArr","$options","propsData","ex","split","nums","resultArr","nTime","Date","nYear","getFullYear","nMonth","getMonth","nDay","getDate","nHour","getHours","nMin","getMinutes","nSecond","getSeconds","getSecondArr","getMinArr","getHourArr","getDayArr","getMonthArr","getWeekArr","getYearArr","sDate","mDate","hDate","DDate","MDate","YDate","sIdx","getIndex","mIdx","hIdx","DIdx","MIdx","YIdx","resetSecond","resetMin","resetHour","resetDay","resetMonth","goYear","Yi","length","YY","goMonth","Mi","MM","goDay","Di","DD","thisDD","checkDate","thisWeek","formatDate","indexOf","goHour","hi","hh","goMin","mi","mm","goSecond","si","ss","push","arr","value","i","rule","year","getOrderArr","undefined","getCycleArr","getAverageArr","getAssignArr","matchRule","match","Number","min","max","assiginArr","sort","compare","limit","agArr","step","status","cycleArr","add","Math","round","value1","value2","type","time","Y","M","D","h","m","s","week","getDay","format","watch","props","mounted"],"sources":["src/components/Crontab/result.vue"],"sourcesContent":["<template>\r\n\t<div class=\"popup-result\">\r\n\t\t<p class=\"title\">最近5次运行时间</p>\r\n\t\t<ul class=\"popup-result-scroll\">\r\n\t\t\t<template v-if='isShow'>\r\n\t\t\t\t<li v-for='item in resultList' :key=\"item\">{{item}}</li>\r\n\t\t\t</template>\r\n\t\t\t<li v-else>计算结果中...</li>\r\n\t\t</ul>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tdayRule: '',\r\n\t\t\tdayRuleSup: '',\r\n\t\t\tdateArr: [],\r\n\t\t\tresultList: [],\r\n\t\t\tisShow: false\r\n\t\t}\r\n\t},\r\n\tname: 'crontab-result',\r\n\tmethods: {\r\n\t\t// 表达式值变化时,开始去计算结果\r\n\t\texpressionChange() {\r\n\r\n\t\t\t// 计算开始-隐藏结果\r\n\t\t\tthis.isShow = false;\r\n\t\t\t// 获取规则数组[0秒、1分、2时、3日、4月、5星期、6年]\r\n\t\t\tlet ruleArr = this.$options.propsData.ex.split(' ');\r\n\t\t\t// 用于记录进入循环的次数\r\n\t\t\tlet nums = 0;\r\n\t\t\t// 用于暂时存符号时间规则结果的数组\r\n\t\t\tlet resultArr = [];\r\n\t\t\t// 获取当前时间精确至[年、月、日、时、分、秒]\r\n\t\t\tlet nTime = new Date();\r\n\t\t\tlet nYear = nTime.getFullYear();\r\n\t\t\tlet nMonth = nTime.getMonth() + 1;\r\n\t\t\tlet nDay = nTime.getDate();\r\n\t\t\tlet nHour = nTime.getHours();\r\n\t\t\tlet nMin = nTime.getMinutes();\r\n\t\t\tlet nSecond = nTime.getSeconds();\r\n\t\t\t// 根据规则获取到近100年可能年数组、月数组等等\r\n\t\t\tthis.getSecondArr(ruleArr[0]);\r\n\t\t\tthis.getMinArr(ruleArr[1]);\r\n\t\t\tthis.getHourArr(ruleArr[2]);\r\n\t\t\tthis.getDayArr(ruleArr[3]);\r\n\t\t\tthis.getMonthArr(ruleArr[4]);\r\n\t\t\tthis.getWeekArr(ruleArr[5]);\r\n\t\t\tthis.getYearArr(ruleArr[6], nYear);\r\n\t\t\t// 将获取到的数组赋值-方便使用\r\n\t\t\tlet sDate = this.dateArr[0];\r\n\t\t\tlet mDate = this.dateArr[1];\r\n\t\t\tlet hDate = this.dateArr[2];\r\n\t\t\tlet DDate = this.dateArr[3];\r\n\t\t\tlet MDate = this.dateArr[4];\r\n\t\t\tlet YDate = this.dateArr[5];\r\n\t\t\t// 获取当前时间在数组中的索引\r\n\t\t\tlet sIdx = this.getIndex(sDate, nSecond);\r\n\t\t\tlet mIdx = this.getIndex(mDate, nMin);\r\n\t\t\tlet hIdx = this.getIndex(hDate, nHour);\r\n\t\t\tlet DIdx = this.getIndex(DDate, nDay);\r\n\t\t\tlet MIdx = this.getIndex(MDate, nMonth);\r\n\t\t\tlet YIdx = this.getIndex(YDate, nYear);\r\n\t\t\t// 重置月日时分秒的函数(后面用的比较多)\r\n\t\t\tconst resetSecond = function () {\r\n\t\t\t\tsIdx = 0;\r\n\t\t\t\tnSecond = sDate[sIdx]\r\n\t\t\t}\r\n\t\t\tconst resetMin = function () {\r\n\t\t\t\tmIdx = 0;\r\n\t\t\t\tnMin = mDate[mIdx]\r\n\t\t\t\tresetSecond();\r\n\t\t\t}\r\n\t\t\tconst resetHour = function () {\r\n\t\t\t\thIdx = 0;\r\n\t\t\t\tnHour = hDate[hIdx]\r\n\t\t\t\tresetMin();\r\n\t\t\t}\r\n\t\t\tconst resetDay = function () {\r\n\t\t\t\tDIdx = 0;\r\n\t\t\t\tnDay = DDate[DIdx]\r\n\t\t\t\tresetHour();\r\n\t\t\t}\r\n\t\t\tconst resetMonth = function () {\r\n\t\t\t\tMIdx = 0;\r\n\t\t\t\tnMonth = MDate[MIdx]\r\n\t\t\t\tresetDay();\r\n\t\t\t}\r\n\t\t\t// 如果当前年份不为数组中当前值\r\n\t\t\tif (nYear !== YDate[YIdx]) {\r\n\t\t\t\tresetMonth();\r\n\t\t\t}\r\n\t\t\t// 如果当前月份不为数组中当前值\r\n\t\t\tif (nMonth !== MDate[MIdx]) {\r\n\t\t\t\tresetDay();\r\n\t\t\t}\r\n\t\t\t// 如果当前“日”不为数组中当前值\r\n\t\t\tif (nDay !== DDate[DIdx]) {\r\n\t\t\t\tresetHour();\r\n\t\t\t}\r\n\t\t\t// 如果当前“时”不为数组中当前值\r\n\t\t\tif (nHour !== hDate[hIdx]) {\r\n\t\t\t\tresetMin();\r\n\t\t\t}\r\n\t\t\t// 如果当前“分”不为数组中当前值\r\n\t\t\tif (nMin !== mDate[mIdx]) {\r\n\t\t\t\tresetSecond();\r\n\t\t\t}\r\n\r\n\t\t\t// 循环年份数组\r\n\t\t\tgoYear: for (let Yi = YIdx; Yi < YDate.length; Yi++) {\r\n\t\t\t\tlet YY = YDate[Yi];\r\n\t\t\t\t// 如果到达最大值时\r\n\t\t\t\tif (nMonth > MDate[MDate.length - 1]) {\r\n\t\t\t\t\tresetMonth();\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\t// 循环月份数组\r\n\t\t\t\tgoMonth: for (let Mi = MIdx; Mi < MDate.length; Mi++) {\r\n\t\t\t\t\t// 赋值、方便后面运算\r\n\t\t\t\t\tlet MM = MDate[Mi];\r\n\t\t\t\t\tMM = MM < 10 ? '0' + MM : MM;\r\n\t\t\t\t\t// 如果到达最大值时\r\n\t\t\t\t\tif (nDay > DDate[DDate.length - 1]) {\r\n\t\t\t\t\t\tresetDay();\r\n\t\t\t\t\t\tif (Mi == MDate.length - 1) {\r\n\t\t\t\t\t\t\tresetMonth();\r\n\t\t\t\t\t\t\tcontinue goYear;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// 循环日期数组\r\n\t\t\t\t\tgoDay: for (let Di = DIdx; Di < DDate.length; Di++) {\r\n\t\t\t\t\t\t// 赋值、方便后面运算\r\n\t\t\t\t\t\tlet DD = DDate[Di];\r\n\t\t\t\t\t\tlet thisDD = DD < 10 ? '0' + DD : DD;\r\n\r\n\t\t\t\t\t\t// 如果到达最大值时\r\n\t\t\t\t\t\tif (nHour > hDate[hDate.length - 1]) {\r\n\t\t\t\t\t\t\tresetHour();\r\n\t\t\t\t\t\t\tif (Di == DDate.length - 1) {\r\n\t\t\t\t\t\t\t\tresetDay();\r\n\t\t\t\t\t\t\t\tif (Mi == MDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\tresetMonth();\r\n\t\t\t\t\t\t\t\t\tcontinue goYear;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcontinue goMonth;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// 判断日期的合法性,不合法的话也是跳出当前循环\r\n\t\t\t\t\t\tif (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true && this.dayRule !== 'workDay' && this.dayRule !== 'lastWeek' && this.dayRule !== 'lastDay') {\r\n\t\t\t\t\t\t\tresetDay();\r\n\t\t\t\t\t\t\tcontinue goMonth;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// 如果日期规则中有值时\r\n\t\t\t\t\t\tif (this.dayRule == 'lastDay') {\r\n\t\t\t\t\t\t\t// 如果不是合法日期则需要将前将日期调到合法日期即月末最后一天\r\n\r\n\t\t\t\t\t\t\tif (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {\r\n\t\t\t\t\t\t\t\twhile (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {\r\n\t\t\t\t\t\t\t\t\tDD--;\r\n\r\n\t\t\t\t\t\t\t\t\tthisDD = DD < 10 ? '0' + DD : DD;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (this.dayRule == 'workDay') {\r\n\t\t\t\t\t\t\t// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底\r\n\t\t\t\t\t\t\tif (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {\r\n\t\t\t\t\t\t\t\twhile (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {\r\n\t\t\t\t\t\t\t\t\tDD--;\r\n\t\t\t\t\t\t\t\t\tthisDD = DD < 10 ? '0' + DD : DD;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// 获取达到条件的日期是星期X\r\n\t\t\t\t\t\t\tlet thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');\r\n\t\t\t\t\t\t\t// 当星期日时\r\n\t\t\t\t\t\t\tif (thisWeek == 1) {\r\n\t\t\t\t\t\t\t\t// 先找下一个日,并判断是否为月底\r\n\t\t\t\t\t\t\t\tDD++;\r\n\t\t\t\t\t\t\t\tthisDD = DD < 10 ? '0' + DD : DD;\r\n\t\t\t\t\t\t\t\t// 判断下一日已经不是合法日期\r\n\t\t\t\t\t\t\t\tif (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {\r\n\t\t\t\t\t\t\t\t\tDD -= 3;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else if (thisWeek == 7) {\r\n\t\t\t\t\t\t\t\t// 当星期6时只需判断不是1号就可进行操作\r\n\t\t\t\t\t\t\t\tif (this.dayRuleSup !== 1) {\r\n\t\t\t\t\t\t\t\t\tDD--;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tDD += 2;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (this.dayRule == 'weekDay') {\r\n\t\t\t\t\t\t\t// 如果指定了是星期几\r\n\t\t\t\t\t\t\t// 获取当前日期是属于星期几\r\n\t\t\t\t\t\t\tlet thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');\r\n\t\t\t\t\t\t\t// 校验当前星期是否在星期池dayRuleSup中\r\n\t\t\t\t\t\t\tif (this.dayRuleSup.indexOf(thisWeek) < 0) {\r\n\t\t\t\t\t\t\t\t// 如果到达最大值时\r\n\t\t\t\t\t\t\t\tif (Di == DDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\tresetDay();\r\n\t\t\t\t\t\t\t\t\tif (Mi == MDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\tresetMonth();\r\n\t\t\t\t\t\t\t\t\t\tcontinue goYear;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tcontinue goMonth;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (this.dayRule == 'assWeek') {\r\n\t\t\t\t\t\t\t// 如果指定了是第几周的星期几\r\n\t\t\t\t\t\t\t// 获取每月1号是属于星期几\r\n\t\t\t\t\t\t\tlet thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');\r\n\t\t\t\t\t\t\tif (this.dayRuleSup[1] >= thisWeek) {\r\n\t\t\t\t\t\t\t\tDD = (this.dayRuleSup[0] - 1) * 7 + this.dayRuleSup[1] - thisWeek + 1;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tDD = this.dayRuleSup[0] * 7 + this.dayRuleSup[1] - thisWeek + 1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (this.dayRule == 'lastWeek') {\r\n\t\t\t\t\t\t\t// 如果指定了每月最后一个星期几\r\n\t\t\t\t\t\t\t// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底\r\n\t\t\t\t\t\t\tif (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {\r\n\t\t\t\t\t\t\t\twhile (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {\r\n\t\t\t\t\t\t\t\t\tDD--;\r\n\t\t\t\t\t\t\t\t\tthisDD = DD < 10 ? '0' + DD : DD;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// 获取月末最后一天是星期几\r\n\t\t\t\t\t\t\tlet thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');\r\n\t\t\t\t\t\t\t// 找到要求中最近的那个星期几\r\n\t\t\t\t\t\t\tif (this.dayRuleSup < thisWeek) {\r\n\t\t\t\t\t\t\t\tDD -= thisWeek - this.dayRuleSup;\r\n\t\t\t\t\t\t\t} else if (this.dayRuleSup > thisWeek) {\r\n\t\t\t\t\t\t\t\tDD -= 7 - (this.dayRuleSup - thisWeek)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// 判断时间值是否小于10置换成“05”这种格式\r\n\t\t\t\t\t\tDD = DD < 10 ? '0' + DD : DD;\r\n\r\n\t\t\t\t\t\t// 循环“时”数组\r\n\t\t\t\t\t\tgoHour: for (let hi = hIdx; hi < hDate.length; hi++) {\r\n\t\t\t\t\t\t\tlet hh = hDate[hi] < 10 ? '0' + hDate[hi] : hDate[hi]\r\n\r\n\t\t\t\t\t\t\t// 如果到达最大值时\r\n\t\t\t\t\t\t\tif (nMin > mDate[mDate.length - 1]) {\r\n\t\t\t\t\t\t\t\tresetMin();\r\n\t\t\t\t\t\t\t\tif (hi == hDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\tresetHour();\r\n\t\t\t\t\t\t\t\t\tif (Di == DDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\tresetDay();\r\n\t\t\t\t\t\t\t\t\t\tif (Mi == MDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\t\tresetMonth();\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue goYear;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tcontinue goMonth;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tcontinue goDay;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// 循环\"分\"数组\r\n\t\t\t\t\t\t\tgoMin: for (let mi = mIdx; mi < mDate.length; mi++) {\r\n\t\t\t\t\t\t\t\tlet mm = mDate[mi] < 10 ? '0' + mDate[mi] : mDate[mi];\r\n\r\n\t\t\t\t\t\t\t\t// 如果到达最大值时\r\n\t\t\t\t\t\t\t\tif (nSecond > sDate[sDate.length - 1]) {\r\n\t\t\t\t\t\t\t\t\tresetSecond();\r\n\t\t\t\t\t\t\t\t\tif (mi == mDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\tresetMin();\r\n\t\t\t\t\t\t\t\t\t\tif (hi == hDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\t\tresetHour();\r\n\t\t\t\t\t\t\t\t\t\t\tif (Di == DDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tresetDay();\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (Mi == MDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresetMonth();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue goYear;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue goMonth;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue goDay;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tcontinue goHour;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// 循环\"秒\"数组\r\n\t\t\t\t\t\t\t\tgoSecond: for (let si = sIdx; si <= sDate.length - 1; si++) {\r\n\t\t\t\t\t\t\t\t\tlet ss = sDate[si] < 10 ? '0' + sDate[si] : sDate[si];\r\n\t\t\t\t\t\t\t\t\t// 添加当前时间(时间合法性在日期循环时已经判断)\r\n\t\t\t\t\t\t\t\t\tif (MM !== '00' && DD !== '00') {\r\n\t\t\t\t\t\t\t\t\t\tresultArr.push(YY + '-' + MM + '-' + DD + ' ' + hh + ':' + mm + ':' + ss)\r\n\t\t\t\t\t\t\t\t\t\tnums++;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// 如果条数满了就退出循环\r\n\t\t\t\t\t\t\t\t\tif (nums == 5) break goYear;\r\n\t\t\t\t\t\t\t\t\t// 如果到达最大值时\r\n\t\t\t\t\t\t\t\t\tif (si == sDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\tresetSecond();\r\n\t\t\t\t\t\t\t\t\t\tif (mi == mDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\t\tresetMin();\r\n\t\t\t\t\t\t\t\t\t\t\tif (hi == hDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tresetHour();\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (Di == DDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresetDay();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (Mi == MDate.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresetMonth();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue goYear;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue goMonth;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue goDay;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue goHour;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tcontinue goMin;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} //goSecond\r\n\t\t\t\t\t\t\t} //goMin\r\n\t\t\t\t\t\t}//goHour\r\n\t\t\t\t\t}//goDay\r\n\t\t\t\t}//goMonth\r\n\t\t\t}\r\n\t\t\t// 判断100年内的结果条数\r\n\t\t\tif (resultArr.length == 0) {\r\n\t\t\t\tthis.resultList = ['没有达到条件的结果!'];\r\n\t\t\t} else {\r\n\t\t\t\tthis.resultList = resultArr;\r\n\t\t\t\tif (resultArr.length !== 5) {\r\n\t\t\t\t\tthis.resultList.push('最近100年内只有上面' + resultArr.length + '条结果!')\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// 计算完成-显示结果\r\n\t\t\tthis.isShow = true;\r\n\r\n\r\n\t\t},\r\n\t\t// 用于计算某位数字在数组中的索引\r\n\t\tgetIndex(arr, value) {\r\n\t\t\tif (value <= arr[0] || value > arr[arr.length - 1]) {\r\n\t\t\t\treturn 0;\r\n\t\t\t} else {\r\n\t\t\t\tfor (let i = 0; i < arr.length - 1; i++) {\r\n\t\t\t\t\tif (value > arr[i] && value <= arr[i + 1]) {\r\n\t\t\t\t\t\treturn i + 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 获取\"年\"数组\r\n\t\tgetYearArr(rule, year) {\r\n\t\t\tthis.dateArr[5] = this.getOrderArr(year, year + 100);\r\n\t\t\tif (rule !== undefined) {\r\n\t\t\t\tif (rule.indexOf('-') >= 0) {\r\n\t\t\t\t\tthis.dateArr[5] = this.getCycleArr(rule, year + 100, false)\r\n\t\t\t\t} else if (rule.indexOf('/') >= 0) {\r\n\t\t\t\t\tthis.dateArr[5] = this.getAverageArr(rule, year + 100)\r\n\t\t\t\t} else if (rule !== '*') {\r\n\t\t\t\t\tthis.dateArr[5] = this.getAssignArr(rule)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 获取\"月\"数组\r\n\t\tgetMonthArr(rule) {\r\n\t\t\tthis.dateArr[4] = this.getOrderArr(1, 12);\r\n\t\t\tif (rule.indexOf('-') >= 0) {\r\n\t\t\t\tthis.dateArr[4] = this.getCycleArr(rule, 12, false)\r\n\t\t\t} else if (rule.indexOf('/') >= 0) {\r\n\t\t\t\tthis.dateArr[4] = this.getAverageArr(rule, 12)\r\n\t\t\t} else if (rule !== '*') {\r\n\t\t\t\tthis.dateArr[4] = this.getAssignArr(rule)\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 获取\"日\"数组-主要为日期规则\r\n\t\tgetWeekArr(rule) {\r\n\t\t\t// 只有当日期规则的两个值均为“”时则表达日期是有选项的\r\n\t\t\tif (this.dayRule == '' && this.dayRuleSup == '') {\r\n\t\t\t\tif (rule.indexOf('-') >= 0) {\r\n\t\t\t\t\tthis.dayRule = 'weekDay';\r\n\t\t\t\t\tthis.dayRuleSup = this.getCycleArr(rule, 7, false)\r\n\t\t\t\t} else if (rule.indexOf('#') >= 0) {\r\n\t\t\t\t\tthis.dayRule = 'assWeek';\r\n\t\t\t\t\tlet matchRule = rule.match(/[0-9]{1}/g);\r\n\t\t\t\t\tthis.dayRuleSup = [Number(matchRule[1]), Number(matchRule[0])];\r\n\t\t\t\t\tthis.dateArr[3] = [1];\r\n\t\t\t\t\tif (this.dayRuleSup[1] == 7) {\r\n\t\t\t\t\t\tthis.dayRuleSup[1] = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (rule.indexOf('L') >= 0) {\r\n\t\t\t\t\tthis.dayRule = 'lastWeek';\r\n\t\t\t\t\tthis.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0]);\r\n\t\t\t\t\tthis.dateArr[3] = [31];\r\n\t\t\t\t\tif (this.dayRuleSup == 7) {\r\n\t\t\t\t\t\tthis.dayRuleSup = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (rule !== '*' && rule !== '?') {\r\n\t\t\t\t\tthis.dayRule = 'weekDay';\r\n\t\t\t\t\tthis.dayRuleSup = this.getAssignArr(rule)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 获取\"日\"数组-少量为日期规则\r\n\t\tgetDayArr(rule) {\r\n\t\t\tthis.dateArr[3] = this.getOrderArr(1, 31);\r\n\t\t\tthis.dayRule = '';\r\n\t\t\tthis.dayRuleSup = '';\r\n\t\t\tif (rule.indexOf('-') >= 0) {\r\n\t\t\t\tthis.dateArr[3] = this.getCycleArr(rule, 31, false)\r\n\t\t\t\tthis.dayRuleSup = 'null';\r\n\t\t\t} else if (rule.indexOf('/') >= 0) {\r\n\t\t\t\tthis.dateArr[3] = this.getAverageArr(rule, 31)\r\n\t\t\t\tthis.dayRuleSup = 'null';\r\n\t\t\t} else if (rule.indexOf('W') >= 0) {\r\n\t\t\t\tthis.dayRule = 'workDay';\r\n\t\t\t\tthis.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0]);\r\n\t\t\t\tthis.dateArr[3] = [this.dayRuleSup];\r\n\t\t\t} else if (rule.indexOf('L') >= 0) {\r\n\t\t\t\tthis.dayRule = 'lastDay';\r\n\t\t\t\tthis.dayRuleSup = 'null';\r\n\t\t\t\tthis.dateArr[3] = [31];\r\n\t\t\t} else if (rule !== '*' && rule !== '?') {\r\n\t\t\t\tthis.dateArr[3] = this.getAssignArr(rule)\r\n\t\t\t\tthis.dayRuleSup = 'null';\r\n\t\t\t} else if (rule == '*') {\r\n\t\t\t\tthis.dayRuleSup = 'null';\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 获取\"时\"数组\r\n\t\tgetHourArr(rule) {\r\n\t\t\tthis.dateArr[2] = this.getOrderArr(0, 23);\r\n\t\t\tif (rule.indexOf('-') >= 0) {\r\n\t\t\t\tthis.dateArr[2] = this.getCycleArr(rule, 24, true)\r\n\t\t\t} else if (rule.indexOf('/') >= 0) {\r\n\t\t\t\tthis.dateArr[2] = this.getAverageArr(rule, 23)\r\n\t\t\t} else if (rule !== '*') {\r\n\t\t\t\tthis.dateArr[2] = this.getAssignArr(rule)\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 获取\"分\"数组\r\n\t\tgetMinArr(rule) {\r\n\t\t\tthis.dateArr[1] = this.getOrderArr(0, 59);\r\n\t\t\tif (rule.indexOf('-') >= 0) {\r\n\t\t\t\tthis.dateArr[1] = this.getCycleArr(rule, 60, true)\r\n\t\t\t} else if (rule.indexOf('/') >= 0) {\r\n\t\t\t\tthis.dateArr[1] = this.getAverageArr(rule, 59)\r\n\t\t\t} else if (rule !== '*') {\r\n\t\t\t\tthis.dateArr[1] = this.getAssignArr(rule)\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 获取\"秒\"数组\r\n\t\tgetSecondArr(rule) {\r\n\t\t\tthis.dateArr[0] = this.getOrderArr(0, 59);\r\n\t\t\tif (rule.indexOf('-') >= 0) {\r\n\t\t\t\tthis.dateArr[0] = this.getCycleArr(rule, 60, true)\r\n\t\t\t} else if (rule.indexOf('/') >= 0) {\r\n\t\t\t\tthis.dateArr[0] = this.getAverageArr(rule, 59)\r\n\t\t\t} else if (rule !== '*') {\r\n\t\t\t\tthis.dateArr[0] = this.getAssignArr(rule)\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 根据传进来的min-max返回一个顺序的数组\r\n\t\tgetOrderArr(min, max) {\r\n\t\t\tlet arr = [];\r\n\t\t\tfor (let i = min; i <= max; i++) {\r\n\t\t\t\tarr.push(i);\r\n\t\t\t}\r\n\t\t\treturn arr;\r\n\t\t},\r\n\t\t// 根据规则中指定的零散值返回一个数组\r\n\t\tgetAssignArr(rule) {\r\n\t\t\tlet arr = [];\r\n\t\t\tlet assiginArr = rule.split(',');\r\n\t\t\tfor (let i = 0; i < assiginArr.length; i++) {\r\n\t\t\t\tarr[i] = Number(assiginArr[i])\r\n\t\t\t}\r\n\t\t\tarr.sort(this.compare)\r\n\t\t\treturn arr;\r\n\t\t},\r\n\t\t// 根据一定算术规则计算返回一个数组\r\n\t\tgetAverageArr(rule, limit) {\r\n\t\t\tlet arr = [];\r\n\t\t\tlet agArr = rule.split('/');\r\n\t\t\tlet min = Number(agArr[0]);\r\n\t\t\tlet step = Number(agArr[1]);\r\n\t\t\twhile (min <= limit) {\r\n\t\t\t\tarr.push(min);\r\n\t\t\t\tmin += step;\r\n\t\t\t}\r\n\t\t\treturn arr;\r\n\t\t},\r\n\t\t// 根据规则返回一个具有周期性的数组\r\n\t\tgetCycleArr(rule, limit, status) {\r\n\t\t\t// status--表示是否从0开始则从1开始\r\n\t\t\tlet arr = [];\r\n\t\t\tlet cycleArr = rule.split('-');\r\n\t\t\tlet min = Number(cycleArr[0]);\r\n\t\t\tlet max = Number(cycleArr[1]);\r\n\t\t\tif (min > max) {\r\n\t\t\t\tmax += limit;\r\n\t\t\t}\r\n\t\t\tfor (let i = min; i <= max; i++) {\r\n\t\t\t\tlet add = 0;\r\n\t\t\t\tif (status == false && i % limit == 0) {\r\n\t\t\t\t\tadd = limit;\r\n\t\t\t\t}\r\n\t\t\t\tarr.push(Math.round(i % limit + add))\r\n\t\t\t}\r\n\t\t\tarr.sort(this.compare)\r\n\t\t\treturn arr;\r\n\t\t},\r\n\t\t// 比较数字大小用于Array.sort\r\n\t\tcompare(value1, value2) {\r\n\t\t\tif (value2 - value1 > 0) {\r\n\t\t\t\treturn -1;\r\n\t\t\t} else {\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 格式化日期格式如2017-9-19 18:04:33\r\n\t\tformatDate(value, type) {\r\n\t\t\t// 计算日期相关值\r\n\t\t\tlet time = typeof value == 'number' ? new Date(value) : value;\r\n\t\t\tlet Y = time.getFullYear();\r\n\t\t\tlet M = time.getMonth() + 1;\r\n\t\t\tlet D = time.getDate();\r\n\t\t\tlet h = time.getHours();\r\n\t\t\tlet m = time.getMinutes();\r\n\t\t\tlet s = time.getSeconds();\r\n\t\t\tlet week = time.getDay();\r\n\t\t\t// 如果传递了type的话\r\n\t\t\tif (type == undefined) {\r\n\t\t\t\treturn Y + '-' + (M < 10 ? '0' + M : M) + '-' + (D < 10 ? '0' + D : D) + ' ' + (h < 10 ? '0' + h : h) + ':' + (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s);\r\n\t\t\t} else if (type == 'week') {\r\n\t\t\t\t// 在quartz中 1为星期日\r\n\t\t\t\treturn week + 1;\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 检查日期是否存在\r\n\t\tcheckDate(value) {\r\n\t\t\tlet time = new Date(value);\r\n\t\t\tlet format = this.formatDate(time)\r\n\t\t\treturn value === format;\r\n\t\t}\r\n\t},\r\n\twatch: {\r\n\t\t'ex': 'expressionChange'\r\n\t},\r\n\tprops: ['ex'],\r\n\tmounted: function () {\r\n\t\t// 初始化 获取一次结果\r\n\t\tthis.expressionChange();\r\n\t}\r\n}\r\n\r\n</script>\r\n"],"mappings":"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"}]}