‘liusuyi’
2023-05-24 0484a33f0550b344382f0d3caac5b26bbba23ca0
1
{"remainingRequest":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js!F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\src\\components\\Crontab\\result.vue?vue&type=script&lang=js&","dependencies":[{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\src\\components\\Crontab\\result.vue","mtime":1675221397092},{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\babel.config.js","mtime":1675221397043},{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1678842086999},{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1678842086986},{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1678842088721},{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1678842086999},{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1678842089772}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLm1hdGNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc29ydC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgpleHBvcnQgZGVmYXVsdCB7CiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGRheVJ1bGU6ICcnLAogICAgICBkYXlSdWxlU3VwOiAnJywKICAgICAgZGF0ZUFycjogW10sCiAgICAgIHJlc3VsdExpc3Q6IFtdLAogICAgICBpc1Nob3c6IGZhbHNlCiAgICB9OwogIH0sCiAgbmFtZTogJ2Nyb250YWItcmVzdWx0JywKICBtZXRob2RzOiB7CiAgICAvLyDooajovr7lvI/lgLzlj5jljJbml7bvvIzlvIDlp4vljrvorqHnrpfnu5PmnpwKICAgIGV4cHJlc3Npb25DaGFuZ2U6IGZ1bmN0aW9uIGV4cHJlc3Npb25DaGFuZ2UoKSB7CiAgICAgIC8vIOiuoeeul+W8gOWniy3pmpDol4/nu5PmnpwKICAgICAgdGhpcy5pc1Nob3cgPSBmYWxzZTsKICAgICAgLy8g6I635Y+W6KeE5YiZ5pWw57uEWzDnp5LjgIEx5YiG44CBMuaXtuOAgTPml6XjgIE05pyI44CBNeaYn+acn+OAgTblubRdCiAgICAgIHZhciBydWxlQXJyID0gdGhpcy4kb3B0aW9ucy5wcm9wc0RhdGEuZXguc3BsaXQoJyAnKTsKICAgICAgLy8g55So5LqO6K6w5b2V6L+b5YWl5b6q546v55qE5qyh5pWwCiAgICAgIHZhciBudW1zID0gMDsKICAgICAgLy8g55So5LqO5pqC5pe25a2Y56ym5Y+35pe26Ze06KeE5YiZ57uT5p6c55qE5pWw57uECiAgICAgIHZhciByZXN1bHRBcnIgPSBbXTsKICAgICAgLy8g6I635Y+W5b2T5YmN5pe26Ze057K+56Gu6IezW+W5tOOAgeaciOOAgeaXpeOAgeaXtuOAgeWIhuOAgeenkl0KICAgICAgdmFyIG5UaW1lID0gbmV3IERhdGUoKTsKICAgICAgdmFyIG5ZZWFyID0gblRpbWUuZ2V0RnVsbFllYXIoKTsKICAgICAgdmFyIG5Nb250aCA9IG5UaW1lLmdldE1vbnRoKCkgKyAxOwogICAgICB2YXIgbkRheSA9IG5UaW1lLmdldERhdGUoKTsKICAgICAgdmFyIG5Ib3VyID0gblRpbWUuZ2V0SG91cnMoKTsKICAgICAgdmFyIG5NaW4gPSBuVGltZS5nZXRNaW51dGVzKCk7CiAgICAgIHZhciBuU2Vjb25kID0gblRpbWUuZ2V0U2Vjb25kcygpOwogICAgICAvLyDmoLnmja7op4TliJnojrflj5bliLDov5ExMDDlubTlj6/og73lubTmlbDnu4TjgIHmnIjmlbDnu4TnrYnnrYkKICAgICAgdGhpcy5nZXRTZWNvbmRBcnIocnVsZUFyclswXSk7CiAgICAgIHRoaXMuZ2V0TWluQXJyKHJ1bGVBcnJbMV0pOwogICAgICB0aGlzLmdldEhvdXJBcnIocnVsZUFyclsyXSk7CiAgICAgIHRoaXMuZ2V0RGF5QXJyKHJ1bGVBcnJbM10pOwogICAgICB0aGlzLmdldE1vbnRoQXJyKHJ1bGVBcnJbNF0pOwogICAgICB0aGlzLmdldFdlZWtBcnIocnVsZUFycls1XSk7CiAgICAgIHRoaXMuZ2V0WWVhckFycihydWxlQXJyWzZdLCBuWWVhcik7CiAgICAgIC8vIOWwhuiOt+WPluWIsOeahOaVsOe7hOi1i+WAvC3mlrnkvr/kvb/nlKgKICAgICAgdmFyIHNEYXRlID0gdGhpcy5kYXRlQXJyWzBdOwogICAgICB2YXIgbURhdGUgPSB0aGlzLmRhdGVBcnJbMV07CiAgICAgIHZhciBoRGF0ZSA9IHRoaXMuZGF0ZUFyclsyXTsKICAgICAgdmFyIEREYXRlID0gdGhpcy5kYXRlQXJyWzNdOwogICAgICB2YXIgTURhdGUgPSB0aGlzLmRhdGVBcnJbNF07CiAgICAgIHZhciBZRGF0ZSA9IHRoaXMuZGF0ZUFycls1XTsKICAgICAgLy8g6I635Y+W5b2T5YmN5pe26Ze05Zyo5pWw57uE5Lit55qE57Si5byVCiAgICAgIHZhciBzSWR4ID0gdGhpcy5nZXRJbmRleChzRGF0ZSwgblNlY29uZCk7CiAgICAgIHZhciBtSWR4ID0gdGhpcy5nZXRJbmRleChtRGF0ZSwgbk1pbik7CiAgICAgIHZhciBoSWR4ID0gdGhpcy5nZXRJbmRleChoRGF0ZSwgbkhvdXIpOwogICAgICB2YXIgRElkeCA9IHRoaXMuZ2V0SW5kZXgoRERhdGUsIG5EYXkpOwogICAgICB2YXIgTUlkeCA9IHRoaXMuZ2V0SW5kZXgoTURhdGUsIG5Nb250aCk7CiAgICAgIHZhciBZSWR4ID0gdGhpcy5nZXRJbmRleChZRGF0ZSwgblllYXIpOwogICAgICAvLyDph43nva7mnIjml6Xml7bliIbnp5LnmoTlh73mlbAo5ZCO6Z2i55So55qE5q+U6L6D5aSaKQogICAgICB2YXIgcmVzZXRTZWNvbmQgPSBmdW5jdGlvbiByZXNldFNlY29uZCgpIHsKICAgICAgICBzSWR4ID0gMDsKICAgICAgICBuU2Vjb25kID0gc0RhdGVbc0lkeF07CiAgICAgIH07CiAgICAgIHZhciByZXNldE1pbiA9IGZ1bmN0aW9uIHJlc2V0TWluKCkgewogICAgICAgIG1JZHggPSAwOwogICAgICAgIG5NaW4gPSBtRGF0ZVttSWR4XTsKICAgICAgICByZXNldFNlY29uZCgpOwogICAgICB9OwogICAgICB2YXIgcmVzZXRIb3VyID0gZnVuY3Rpb24gcmVzZXRIb3VyKCkgewogICAgICAgIGhJZHggPSAwOwogICAgICAgIG5Ib3VyID0gaERhdGVbaElkeF07CiAgICAgICAgcmVzZXRNaW4oKTsKICAgICAgfTsKICAgICAgdmFyIHJlc2V0RGF5ID0gZnVuY3Rpb24gcmVzZXREYXkoKSB7CiAgICAgICAgRElkeCA9IDA7CiAgICAgICAgbkRheSA9IEREYXRlW0RJZHhdOwogICAgICAgIHJlc2V0SG91cigpOwogICAgICB9OwogICAgICB2YXIgcmVzZXRNb250aCA9IGZ1bmN0aW9uIHJlc2V0TW9udGgoKSB7CiAgICAgICAgTUlkeCA9IDA7CiAgICAgICAgbk1vbnRoID0gTURhdGVbTUlkeF07CiAgICAgICAgcmVzZXREYXkoKTsKICAgICAgfTsKICAgICAgLy8g5aaC5p6c5b2T5YmN5bm05Lu95LiN5Li65pWw57uE5Lit5b2T5YmN5YC8CiAgICAgIGlmIChuWWVhciAhPT0gWURhdGVbWUlkeF0pIHsKICAgICAgICByZXNldE1vbnRoKCk7CiAgICAgIH0KICAgICAgLy8g5aaC5p6c5b2T5YmN5pyI5Lu95LiN5Li65pWw57uE5Lit5b2T5YmN5YC8CiAgICAgIGlmIChuTW9udGggIT09IE1EYXRlW01JZHhdKSB7CiAgICAgICAgcmVzZXREYXkoKTsKICAgICAgfQogICAgICAvLyDlpoLmnpzlvZPliY3igJzml6XigJ3kuI3kuLrmlbDnu4TkuK3lvZPliY3lgLwKICAgICAgaWYgKG5EYXkgIT09IEREYXRlW0RJZHhdKSB7CiAgICAgICAgcmVzZXRIb3VyKCk7CiAgICAgIH0KICAgICAgLy8g5aaC5p6c5b2T5YmN4oCc5pe24oCd5LiN5Li65pWw57uE5Lit5b2T5YmN5YC8CiAgICAgIGlmIChuSG91ciAhPT0gaERhdGVbaElkeF0pIHsKICAgICAgICByZXNldE1pbigpOwogICAgICB9CiAgICAgIC8vIOWmguaenOW9k+WJjeKAnOWIhuKAneS4jeS4uuaVsOe7hOS4reW9k+WJjeWAvAogICAgICBpZiAobk1pbiAhPT0gbURhdGVbbUlkeF0pIHsKICAgICAgICByZXNldFNlY29uZCgpOwogICAgICB9CgogICAgICAvLyDlvqrnjq/lubTku73mlbDnu4QKICAgICAgZ29ZZWFyOiBmb3IgKHZhciBZaSA9IFlJZHg7IFlpIDwgWURhdGUubGVuZ3RoOyBZaSsrKSB7CiAgICAgICAgdmFyIFlZID0gWURhdGVbWWldOwogICAgICAgIC8vIOWmguaenOWIsOi+vuacgOWkp+WAvOaXtgogICAgICAgIGlmIChuTW9udGggPiBNRGF0ZVtNRGF0ZS5sZW5ndGggLSAxXSkgewogICAgICAgICAgcmVzZXRNb250aCgpOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIC8vIOW+queOr+aciOS7veaVsOe7hAogICAgICAgIGdvTW9udGg6IGZvciAodmFyIE1pID0gTUlkeDsgTWkgPCBNRGF0ZS5sZW5ndGg7IE1pKyspIHsKICAgICAgICAgIC8vIOi1i+WAvOOAgeaWueS+v+WQjumdoui/kOeulwogICAgICAgICAgdmFyIE1NID0gTURhdGVbTWldOwogICAgICAgICAgTU0gPSBNTSA8IDEwID8gJzAnICsgTU0gOiBNTTsKICAgICAgICAgIC8vIOWmguaenOWIsOi+vuacgOWkp+WAvOaXtgogICAgICAgICAgaWYgKG5EYXkgPiBERGF0ZVtERGF0ZS5sZW5ndGggLSAxXSkgewogICAgICAgICAgICByZXNldERheSgpOwogICAgICAgICAgICBpZiAoTWkgPT0gTURhdGUubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgIHJlc2V0TW9udGgoKTsKICAgICAgICAgICAgICBjb250aW51ZSBnb1llYXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICAvLyDlvqrnjq/ml6XmnJ/mlbDnu4QKICAgICAgICAgIGdvRGF5OiBmb3IgKHZhciBEaSA9IERJZHg7IERpIDwgRERhdGUubGVuZ3RoOyBEaSsrKSB7CiAgICAgICAgICAgIC8vIOi1i+WAvOOAgeaWueS+v+WQjumdoui/kOeulwogICAgICAgICAgICB2YXIgREQgPSBERGF0ZVtEaV07CiAgICAgICAgICAgIHZhciB0aGlzREQgPSBERCA8IDEwID8gJzAnICsgREQgOiBERDsKCiAgICAgICAgICAgIC8vIOWmguaenOWIsOi+vuacgOWkp+WAvOaXtgogICAgICAgICAgICBpZiAobkhvdXIgPiBoRGF0ZVtoRGF0ZS5sZW5ndGggLSAxXSkgewogICAgICAgICAgICAgIHJlc2V0SG91cigpOwogICAgICAgICAgICAgIGlmIChEaSA9PSBERGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICByZXNldERheSgpOwogICAgICAgICAgICAgICAgaWYgKE1pID09IE1EYXRlLmxlbmd0aCAtIDEpIHsKICAgICAgICAgICAgICAgICAgcmVzZXRNb250aCgpOwogICAgICAgICAgICAgICAgICBjb250aW51ZSBnb1llYXI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb250aW51ZSBnb01vbnRoOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8g5Yik5pat5pel5pyf55qE5ZCI5rOV5oCn77yM5LiN5ZCI5rOV55qE6K+d5Lmf5piv6Lez5Ye65b2T5YmN5b6q546vCiAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrRGF0ZShZWSArICctJyArIE1NICsgJy0nICsgdGhpc0REICsgJyAwMDowMDowMCcpICE9PSB0cnVlICYmIHRoaXMuZGF5UnVsZSAhPT0gJ3dvcmtEYXknICYmIHRoaXMuZGF5UnVsZSAhPT0gJ2xhc3RXZWVrJyAmJiB0aGlzLmRheVJ1bGUgIT09ICdsYXN0RGF5JykgewogICAgICAgICAgICAgIHJlc2V0RGF5KCk7CiAgICAgICAgICAgICAgY29udGludWUgZ29Nb250aDsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyDlpoLmnpzml6XmnJ/op4TliJnkuK3mnInlgLzml7YKICAgICAgICAgICAgaWYgKHRoaXMuZGF5UnVsZSA9PSAnbGFzdERheScpIHsKICAgICAgICAgICAgICAvLyDlpoLmnpzkuI3mmK/lkIjms5Xml6XmnJ/liJnpnIDopoHlsIbliY3lsIbml6XmnJ/osIPliLDlkIjms5Xml6XmnJ/ljbPmnIjmnKvmnIDlkI7kuIDlpKkKCiAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tEYXRlKFlZICsgJy0nICsgTU0gKyAnLScgKyB0aGlzREQgKyAnIDAwOjAwOjAwJykgIT09IHRydWUpIHsKICAgICAgICAgICAgICAgIHdoaWxlIChERCA+IDAgJiYgdGhpcy5jaGVja0RhdGUoWVkgKyAnLScgKyBNTSArICctJyArIHRoaXNERCArICcgMDA6MDA6MDAnKSAhPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICBERC0tOwogICAgICAgICAgICAgICAgICB0aGlzREQgPSBERCA8IDEwID8gJzAnICsgREQgOiBERDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXlSdWxlID09ICd3b3JrRGF5JykgewogICAgICAgICAgICAgIC8vIOagoemqjOW5tuiwg+aVtOWmguaenOaYrzLmnIgzMOWPt+i/meenjeaXpeacn+S8oOi/m+adpeaXtumcgOiwg+aVtOiHs+ato+W4uOaciOW6lQogICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrRGF0ZShZWSArICctJyArIE1NICsgJy0nICsgdGhpc0REICsgJyAwMDowMDowMCcpICE9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoREQgPiAwICYmIHRoaXMuY2hlY2tEYXRlKFlZICsgJy0nICsgTU0gKyAnLScgKyB0aGlzREQgKyAnIDAwOjAwOjAwJykgIT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgREQtLTsKICAgICAgICAgICAgICAgICAgdGhpc0REID0gREQgPCAxMCA/ICcwJyArIEREIDogREQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIC8vIOiOt+WPlui+vuWIsOadoeS7tueahOaXpeacn+aYr+aYn+acn1gKICAgICAgICAgICAgICB2YXIgdGhpc1dlZWsgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoWVkgKyAnLScgKyBNTSArICctJyArIHRoaXNERCArICcgMDA6MDA6MDAnKSwgJ3dlZWsnKTsKICAgICAgICAgICAgICAvLyDlvZPmmJ/mnJ/ml6Xml7YKICAgICAgICAgICAgICBpZiAodGhpc1dlZWsgPT0gMSkgewogICAgICAgICAgICAgICAgLy8g5YWI5om+5LiL5LiA5Liq5pel77yM5bm25Yik5pat5piv5ZCm5Li65pyI5bqVCiAgICAgICAgICAgICAgICBERCsrOwogICAgICAgICAgICAgICAgdGhpc0REID0gREQgPCAxMCA/ICcwJyArIEREIDogREQ7CiAgICAgICAgICAgICAgICAvLyDliKTmlq3kuIvkuIDml6Xlt7Lnu4/kuI3mmK/lkIjms5Xml6XmnJ8KICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrRGF0ZShZWSArICctJyArIE1NICsgJy0nICsgdGhpc0REICsgJyAwMDowMDowMCcpICE9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgIEREIC09IDM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzV2VlayA9PSA3KSB7CiAgICAgICAgICAgICAgICAvLyDlvZPmmJ/mnJ825pe25Y+q6ZyA5Yik5pat5LiN5pivMeWPt+WwseWPr+i/m+ihjOaTjeS9nAogICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF5UnVsZVN1cCAhPT0gMSkgewogICAgICAgICAgICAgICAgICBERC0tOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgREQgKz0gMjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXlSdWxlID09ICd3ZWVrRGF5JykgewogICAgICAgICAgICAgIC8vIOWmguaenOaMh+WumuS6huaYr+aYn+acn+WHoAogICAgICAgICAgICAgIC8vIOiOt+WPluW9k+WJjeaXpeacn+aYr+WxnuS6juaYn+acn+WHoAogICAgICAgICAgICAgIHZhciBfdGhpc1dlZWsgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoWVkgKyAnLScgKyBNTSArICctJyArIEREICsgJyAwMDowMDowMCcpLCAnd2VlaycpOwogICAgICAgICAgICAgIC8vIOagoemqjOW9k+WJjeaYn+acn+aYr+WQpuWcqOaYn+acn+axoO+8iGRheVJ1bGVTdXDvvInkuK0KICAgICAgICAgICAgICBpZiAodGhpcy5kYXlSdWxlU3VwLmluZGV4T2YoX3RoaXNXZWVrKSA8IDApIHsKICAgICAgICAgICAgICAgIC8vIOWmguaenOWIsOi+vuacgOWkp+WAvOaXtgogICAgICAgICAgICAgICAgaWYgKERpID09IEREYXRlLmxlbmd0aCAtIDEpIHsKICAgICAgICAgICAgICAgICAgcmVzZXREYXkoKTsKICAgICAgICAgICAgICAgICAgaWYgKE1pID09IE1EYXRlLmxlbmd0aCAtIDEpIHsKICAgICAgICAgICAgICAgICAgICByZXNldE1vbnRoKCk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWUgZ29ZZWFyOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGdvTW9udGg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXlSdWxlID09ICdhc3NXZWVrJykgewogICAgICAgICAgICAgIC8vIOWmguaenOaMh+WumuS6huaYr+esrOWHoOWRqOeahOaYn+acn+WHoAogICAgICAgICAgICAgIC8vIOiOt+WPluavj+aciDHlj7fmmK/lsZ7kuo7mmJ/mnJ/lh6AKICAgICAgICAgICAgICB2YXIgX3RoaXNXZWVrMiA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZShZWSArICctJyArIE1NICsgJy0nICsgREQgKyAnIDAwOjAwOjAwJyksICd3ZWVrJyk7CiAgICAgICAgICAgICAgaWYgKHRoaXMuZGF5UnVsZVN1cFsxXSA+PSBfdGhpc1dlZWsyKSB7CiAgICAgICAgICAgICAgICBERCA9ICh0aGlzLmRheVJ1bGVTdXBbMF0gLSAxKSAqIDcgKyB0aGlzLmRheVJ1bGVTdXBbMV0gLSBfdGhpc1dlZWsyICsgMTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgREQgPSB0aGlzLmRheVJ1bGVTdXBbMF0gKiA3ICsgdGhpcy5kYXlSdWxlU3VwWzFdIC0gX3RoaXNXZWVrMiArIDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF5UnVsZSA9PSAnbGFzdFdlZWsnKSB7CiAgICAgICAgICAgICAgLy8g5aaC5p6c5oyH5a6a5LqG5q+P5pyI5pyA5ZCO5LiA5Liq5pif5pyf5YegCiAgICAgICAgICAgICAgLy8g5qCh6aqM5bm26LCD5pW05aaC5p6c5pivMuaciDMw5Y+36L+Z56eN5pel5pyf5Lyg6L+b5p2l5pe26ZyA6LCD5pW06Iez5q2j5bi45pyI5bqVCiAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tEYXRlKFlZICsgJy0nICsgTU0gKyAnLScgKyB0aGlzREQgKyAnIDAwOjAwOjAwJykgIT09IHRydWUpIHsKICAgICAgICAgICAgICAgIHdoaWxlIChERCA+IDAgJiYgdGhpcy5jaGVja0RhdGUoWVkgKyAnLScgKyBNTSArICctJyArIHRoaXNERCArICcgMDA6MDA6MDAnKSAhPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICBERC0tOwogICAgICAgICAgICAgICAgICB0aGlzREQgPSBERCA8IDEwID8gJzAnICsgREQgOiBERDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy8g6I635Y+W5pyI5pyr5pyA5ZCO5LiA5aSp5piv5pif5pyf5YegCiAgICAgICAgICAgICAgdmFyIF90aGlzV2VlazMgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoWVkgKyAnLScgKyBNTSArICctJyArIHRoaXNERCArICcgMDA6MDA6MDAnKSwgJ3dlZWsnKTsKICAgICAgICAgICAgICAvLyDmib7liLDopoHmsYLkuK3mnIDov5HnmoTpgqPkuKrmmJ/mnJ/lh6AKICAgICAgICAgICAgICBpZiAodGhpcy5kYXlSdWxlU3VwIDwgX3RoaXNXZWVrMykgewogICAgICAgICAgICAgICAgREQgLT0gX3RoaXNXZWVrMyAtIHRoaXMuZGF5UnVsZVN1cDsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF5UnVsZVN1cCA+IF90aGlzV2VlazMpIHsKICAgICAgICAgICAgICAgIEREIC09IDcgLSAodGhpcy5kYXlSdWxlU3VwIC0gX3RoaXNXZWVrMyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIOWIpOaWreaXtumXtOWAvOaYr+WQpuWwj+S6jjEw572u5o2i5oiQ4oCcMDXigJ3ov5nnp43moLzlvI8KICAgICAgICAgICAgREQgPSBERCA8IDEwID8gJzAnICsgREQgOiBERDsKCiAgICAgICAgICAgIC8vIOW+queOr+KAnOaXtuKAneaVsOe7hAogICAgICAgICAgICBnb0hvdXI6IGZvciAodmFyIGhpID0gaElkeDsgaGkgPCBoRGF0ZS5sZW5ndGg7IGhpKyspIHsKICAgICAgICAgICAgICB2YXIgaGggPSBoRGF0ZVtoaV0gPCAxMCA/ICcwJyArIGhEYXRlW2hpXSA6IGhEYXRlW2hpXTsKCiAgICAgICAgICAgICAgLy8g5aaC5p6c5Yiw6L6+5pyA5aSn5YC85pe2CiAgICAgICAgICAgICAgaWYgKG5NaW4gPiBtRGF0ZVttRGF0ZS5sZW5ndGggLSAxXSkgewogICAgICAgICAgICAgICAgcmVzZXRNaW4oKTsKICAgICAgICAgICAgICAgIGlmIChoaSA9PSBoRGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgIHJlc2V0SG91cigpOwogICAgICAgICAgICAgICAgICBpZiAoRGkgPT0gRERhdGUubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgICAgIHJlc2V0RGF5KCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKE1pID09IE1EYXRlLmxlbmd0aCAtIDEpIHsKICAgICAgICAgICAgICAgICAgICAgIHJlc2V0TW9udGgoKTsKICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGdvWWVhcjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY29udGludWUgZ29Nb250aDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBjb250aW51ZSBnb0RheTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyDlvqrnjq8i5YiGIuaVsOe7hAogICAgICAgICAgICAgIGdvTWluOiBmb3IgKHZhciBtaSA9IG1JZHg7IG1pIDwgbURhdGUubGVuZ3RoOyBtaSsrKSB7CiAgICAgICAgICAgICAgICB2YXIgbW0gPSBtRGF0ZVttaV0gPCAxMCA/ICcwJyArIG1EYXRlW21pXSA6IG1EYXRlW21pXTsKCiAgICAgICAgICAgICAgICAvLyDlpoLmnpzliLDovr7mnIDlpKflgLzml7YKICAgICAgICAgICAgICAgIGlmIChuU2Vjb25kID4gc0RhdGVbc0RhdGUubGVuZ3RoIC0gMV0pIHsKICAgICAgICAgICAgICAgICAgcmVzZXRTZWNvbmQoKTsKICAgICAgICAgICAgICAgICAgaWYgKG1pID09IG1EYXRlLmxlbmd0aCAtIDEpIHsKICAgICAgICAgICAgICAgICAgICByZXNldE1pbigpOwogICAgICAgICAgICAgICAgICAgIGlmIChoaSA9PSBoRGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICByZXNldEhvdXIoKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChEaSA9PSBERGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0RGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChNaSA9PSBNRGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRNb250aCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGdvWWVhcjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBnb01vbnRoOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgY29udGludWUgZ29EYXk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGdvSG91cjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC8vIOW+queOryLnp5Ii5pWw57uECiAgICAgICAgICAgICAgICBnb1NlY29uZDogZm9yICh2YXIgc2kgPSBzSWR4OyBzaSA8PSBzRGF0ZS5sZW5ndGggLSAxOyBzaSsrKSB7CiAgICAgICAgICAgICAgICAgIHZhciBzcyA9IHNEYXRlW3NpXSA8IDEwID8gJzAnICsgc0RhdGVbc2ldIDogc0RhdGVbc2ldOwogICAgICAgICAgICAgICAgICAvLyDmt7vliqDlvZPliY3ml7bpl7TvvIjml7bpl7TlkIjms5XmgKflnKjml6XmnJ/lvqrnjq/ml7blt7Lnu4/liKTmlq3vvIkKICAgICAgICAgICAgICAgICAgaWYgKE1NICE9PSAnMDAnICYmIEREICE9PSAnMDAnKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0QXJyLnB1c2goWVkgKyAnLScgKyBNTSArICctJyArIEREICsgJyAnICsgaGggKyAnOicgKyBtbSArICc6JyArIHNzKTsKICAgICAgICAgICAgICAgICAgICBudW1zKys7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgLy8g5aaC5p6c5p2h5pWw5ruh5LqG5bCx6YCA5Ye65b6q546vCiAgICAgICAgICAgICAgICAgIGlmIChudW1zID09IDUpIGJyZWFrIGdvWWVhcjsKICAgICAgICAgICAgICAgICAgLy8g5aaC5p6c5Yiw6L6+5pyA5aSn5YC85pe2CiAgICAgICAgICAgICAgICAgIGlmIChzaSA9PSBzRGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzZXRTZWNvbmQoKTsKICAgICAgICAgICAgICAgICAgICBpZiAobWkgPT0gbURhdGUubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgICAgICAgcmVzZXRNaW4oKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChoaSA9PSBoRGF0ZS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0SG91cigpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoRGkgPT0gRERhdGUubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0RGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1pID09IE1EYXRlLmxlbmd0aCAtIDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0TW9udGgoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGdvWWVhcjsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgZ29Nb250aDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBnb0RheTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGdvSG91cjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY29udGludWUgZ29NaW47CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gLy9nb1NlY29uZAogICAgICAgICAgICAgIH0gLy9nb01pbgogICAgICAgICAgICB9IC8vZ29Ib3VyCiAgICAgICAgICB9IC8vZ29EYXkKICAgICAgICB9IC8vZ29Nb250aAogICAgICB9CiAgICAgIC8vIOWIpOaWrTEwMOW5tOWGheeahOe7k+aenOadoeaVsAogICAgICBpZiAocmVzdWx0QXJyLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgdGhpcy5yZXN1bHRMaXN0ID0gWyfmsqHmnInovr7liLDmnaHku7bnmoTnu5PmnpzvvIEnXTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnJlc3VsdExpc3QgPSByZXN1bHRBcnI7CiAgICAgICAgaWYgKHJlc3VsdEFyci5sZW5ndGggIT09IDUpIHsKICAgICAgICAgIHRoaXMucmVzdWx0TGlzdC5wdXNoKCfmnIDov5ExMDDlubTlhoXlj6rmnInkuIrpnaInICsgcmVzdWx0QXJyLmxlbmd0aCArICfmnaHnu5PmnpzvvIEnKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgLy8g6K6h566X5a6M5oiQLeaYvuekuue7k+aenAogICAgICB0aGlzLmlzU2hvdyA9IHRydWU7CiAgICB9LAogICAgLy8g55So5LqO6K6h566X5p+Q5L2N5pWw5a2X5Zyo5pWw57uE5Lit55qE57Si5byVCiAgICBnZXRJbmRleDogZnVuY3Rpb24gZ2V0SW5kZXgoYXJyLCB2YWx1ZSkgewogICAgICBpZiAodmFsdWUgPD0gYXJyWzBdIHx8IHZhbHVlID4gYXJyW2Fyci5sZW5ndGggLSAxXSkgewogICAgICAgIHJldHVybiAwOwogICAgICB9IGVsc2UgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aCAtIDE7IGkrKykgewogICAgICAgICAgaWYgKHZhbHVlID4gYXJyW2ldICYmIHZhbHVlIDw9IGFycltpICsgMV0pIHsKICAgICAgICAgICAgcmV0dXJuIGkgKyAxOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8vIOiOt+WPliLlubQi5pWw57uECiAgICBnZXRZZWFyQXJyOiBmdW5jdGlvbiBnZXRZZWFyQXJyKHJ1bGUsIHllYXIpIHsKICAgICAgdGhpcy5kYXRlQXJyWzVdID0gdGhpcy5nZXRPcmRlckFycih5ZWFyLCB5ZWFyICsgMTAwKTsKICAgICAgaWYgKHJ1bGUgIT09IHVuZGVmaW5lZCkgewogICAgICAgIGlmIChydWxlLmluZGV4T2YoJy0nKSA+PSAwKSB7CiAgICAgICAgICB0aGlzLmRhdGVBcnJbNV0gPSB0aGlzLmdldEN5Y2xlQXJyKHJ1bGUsIHllYXIgKyAxMDAsIGZhbHNlKTsKICAgICAgICB9IGVsc2UgaWYgKHJ1bGUuaW5kZXhPZignLycpID49IDApIHsKICAgICAgICAgIHRoaXMuZGF0ZUFycls1XSA9IHRoaXMuZ2V0QXZlcmFnZUFycihydWxlLCB5ZWFyICsgMTAwKTsKICAgICAgICB9IGVsc2UgaWYgKHJ1bGUgIT09ICcqJykgewogICAgICAgICAgdGhpcy5kYXRlQXJyWzVdID0gdGhpcy5nZXRBc3NpZ25BcnIocnVsZSk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLy8g6I635Y+WIuaciCLmlbDnu4QKICAgIGdldE1vbnRoQXJyOiBmdW5jdGlvbiBnZXRNb250aEFycihydWxlKSB7CiAgICAgIHRoaXMuZGF0ZUFycls0XSA9IHRoaXMuZ2V0T3JkZXJBcnIoMSwgMTIpOwogICAgICBpZiAocnVsZS5pbmRleE9mKCctJykgPj0gMCkgewogICAgICAgIHRoaXMuZGF0ZUFycls0XSA9IHRoaXMuZ2V0Q3ljbGVBcnIocnVsZSwgMTIsIGZhbHNlKTsKICAgICAgfSBlbHNlIGlmIChydWxlLmluZGV4T2YoJy8nKSA+PSAwKSB7CiAgICAgICAgdGhpcy5kYXRlQXJyWzRdID0gdGhpcy5nZXRBdmVyYWdlQXJyKHJ1bGUsIDEyKTsKICAgICAgfSBlbHNlIGlmIChydWxlICE9PSAnKicpIHsKICAgICAgICB0aGlzLmRhdGVBcnJbNF0gPSB0aGlzLmdldEFzc2lnbkFycihydWxlKTsKICAgICAgfQogICAgfSwKICAgIC8vIOiOt+WPliLml6Ui5pWw57uELeS4u+imgeS4uuaXpeacn+inhOWImQogICAgZ2V0V2Vla0FycjogZnVuY3Rpb24gZ2V0V2Vla0FycihydWxlKSB7CiAgICAgIC8vIOWPquacieW9k+aXpeacn+inhOWImeeahOS4pOS4quWAvOWdh+S4uuKAnOKAneaXtuWImeihqOi+vuaXpeacn+aYr+aciemAiemhueeahAogICAgICBpZiAodGhpcy5kYXlSdWxlID09ICcnICYmIHRoaXMuZGF5UnVsZVN1cCA9PSAnJykgewogICAgICAgIGlmIChydWxlLmluZGV4T2YoJy0nKSA+PSAwKSB7CiAgICAgICAgICB0aGlzLmRheVJ1bGUgPSAnd2Vla0RheSc7CiAgICAgICAgICB0aGlzLmRheVJ1bGVTdXAgPSB0aGlzLmdldEN5Y2xlQXJyKHJ1bGUsIDcsIGZhbHNlKTsKICAgICAgICB9IGVsc2UgaWYgKHJ1bGUuaW5kZXhPZignIycpID49IDApIHsKICAgICAgICAgIHRoaXMuZGF5UnVsZSA9ICdhc3NXZWVrJzsKICAgICAgICAgIHZhciBtYXRjaFJ1bGUgPSBydWxlLm1hdGNoKC9bMC05XXsxfS9nKTsKICAgICAgICAgIHRoaXMuZGF5UnVsZVN1cCA9IFtOdW1iZXIobWF0Y2hSdWxlWzFdKSwgTnVtYmVyKG1hdGNoUnVsZVswXSldOwogICAgICAgICAgdGhpcy5kYXRlQXJyWzNdID0gWzFdOwogICAgICAgICAgaWYgKHRoaXMuZGF5UnVsZVN1cFsxXSA9PSA3KSB7CiAgICAgICAgICAgIHRoaXMuZGF5UnVsZVN1cFsxXSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChydWxlLmluZGV4T2YoJ0wnKSA+PSAwKSB7CiAgICAgICAgICB0aGlzLmRheVJ1bGUgPSAnbGFzdFdlZWsnOwogICAgICAgICAgdGhpcy5kYXlSdWxlU3VwID0gTnVtYmVyKHJ1bGUubWF0Y2goL1swLTldezEsMn0vZylbMF0pOwogICAgICAgICAgdGhpcy5kYXRlQXJyWzNdID0gWzMxXTsKICAgICAgICAgIGlmICh0aGlzLmRheVJ1bGVTdXAgPT0gNykgewogICAgICAgICAgICB0aGlzLmRheVJ1bGVTdXAgPSAwOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAocnVsZSAhPT0gJyonICYmIHJ1bGUgIT09ICc/JykgewogICAgICAgICAgdGhpcy5kYXlSdWxlID0gJ3dlZWtEYXknOwogICAgICAgICAgdGhpcy5kYXlSdWxlU3VwID0gdGhpcy5nZXRBc3NpZ25BcnIocnVsZSk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLy8g6I635Y+WIuaXpSLmlbDnu4Qt5bCR6YeP5Li65pel5pyf6KeE5YiZCiAgICBnZXREYXlBcnI6IGZ1bmN0aW9uIGdldERheUFycihydWxlKSB7CiAgICAgIHRoaXMuZGF0ZUFyclszXSA9IHRoaXMuZ2V0T3JkZXJBcnIoMSwgMzEpOwogICAgICB0aGlzLmRheVJ1bGUgPSAnJzsKICAgICAgdGhpcy5kYXlSdWxlU3VwID0gJyc7CiAgICAgIGlmIChydWxlLmluZGV4T2YoJy0nKSA+PSAwKSB7CiAgICAgICAgdGhpcy5kYXRlQXJyWzNdID0gdGhpcy5nZXRDeWNsZUFycihydWxlLCAzMSwgZmFsc2UpOwogICAgICAgIHRoaXMuZGF5UnVsZVN1cCA9ICdudWxsJzsKICAgICAgfSBlbHNlIGlmIChydWxlLmluZGV4T2YoJy8nKSA+PSAwKSB7CiAgICAgICAgdGhpcy5kYXRlQXJyWzNdID0gdGhpcy5nZXRBdmVyYWdlQXJyKHJ1bGUsIDMxKTsKICAgICAgICB0aGlzLmRheVJ1bGVTdXAgPSAnbnVsbCc7CiAgICAgIH0gZWxzZSBpZiAocnVsZS5pbmRleE9mKCdXJykgPj0gMCkgewogICAgICAgIHRoaXMuZGF5UnVsZSA9ICd3b3JrRGF5JzsKICAgICAgICB0aGlzLmRheVJ1bGVTdXAgPSBOdW1iZXIocnVsZS5tYXRjaCgvWzAtOV17MSwyfS9nKVswXSk7CiAgICAgICAgdGhpcy5kYXRlQXJyWzNdID0gW3RoaXMuZGF5UnVsZVN1cF07CiAgICAgIH0gZWxzZSBpZiAocnVsZS5pbmRleE9mKCdMJykgPj0gMCkgewogICAgICAgIHRoaXMuZGF5UnVsZSA9ICdsYXN0RGF5JzsKICAgICAgICB0aGlzLmRheVJ1bGVTdXAgPSAnbnVsbCc7CiAgICAgICAgdGhpcy5kYXRlQXJyWzNdID0gWzMxXTsKICAgICAgfSBlbHNlIGlmIChydWxlICE9PSAnKicgJiYgcnVsZSAhPT0gJz8nKSB7CiAgICAgICAgdGhpcy5kYXRlQXJyWzNdID0gdGhpcy5nZXRBc3NpZ25BcnIocnVsZSk7CiAgICAgICAgdGhpcy5kYXlSdWxlU3VwID0gJ251bGwnOwogICAgICB9IGVsc2UgaWYgKHJ1bGUgPT0gJyonKSB7CiAgICAgICAgdGhpcy5kYXlSdWxlU3VwID0gJ251bGwnOwogICAgICB9CiAgICB9LAogICAgLy8g6I635Y+WIuaXtiLmlbDnu4QKICAgIGdldEhvdXJBcnI6IGZ1bmN0aW9uIGdldEhvdXJBcnIocnVsZSkgewogICAgICB0aGlzLmRhdGVBcnJbMl0gPSB0aGlzLmdldE9yZGVyQXJyKDAsIDIzKTsKICAgICAgaWYgKHJ1bGUuaW5kZXhPZignLScpID49IDApIHsKICAgICAgICB0aGlzLmRhdGVBcnJbMl0gPSB0aGlzLmdldEN5Y2xlQXJyKHJ1bGUsIDI0LCB0cnVlKTsKICAgICAgfSBlbHNlIGlmIChydWxlLmluZGV4T2YoJy8nKSA+PSAwKSB7CiAgICAgICAgdGhpcy5kYXRlQXJyWzJdID0gdGhpcy5nZXRBdmVyYWdlQXJyKHJ1bGUsIDIzKTsKICAgICAgfSBlbHNlIGlmIChydWxlICE9PSAnKicpIHsKICAgICAgICB0aGlzLmRhdGVBcnJbMl0gPSB0aGlzLmdldEFzc2lnbkFycihydWxlKTsKICAgICAgfQogICAgfSwKICAgIC8vIOiOt+WPliLliIYi5pWw57uECiAgICBnZXRNaW5BcnI6IGZ1bmN0aW9uIGdldE1pbkFycihydWxlKSB7CiAgICAgIHRoaXMuZGF0ZUFyclsxXSA9IHRoaXMuZ2V0T3JkZXJBcnIoMCwgNTkpOwogICAgICBpZiAocnVsZS5pbmRleE9mKCctJykgPj0gMCkgewogICAgICAgIHRoaXMuZGF0ZUFyclsxXSA9IHRoaXMuZ2V0Q3ljbGVBcnIocnVsZSwgNjAsIHRydWUpOwogICAgICB9IGVsc2UgaWYgKHJ1bGUuaW5kZXhPZignLycpID49IDApIHsKICAgICAgICB0aGlzLmRhdGVBcnJbMV0gPSB0aGlzLmdldEF2ZXJhZ2VBcnIocnVsZSwgNTkpOwogICAgICB9IGVsc2UgaWYgKHJ1bGUgIT09ICcqJykgewogICAgICAgIHRoaXMuZGF0ZUFyclsxXSA9IHRoaXMuZ2V0QXNzaWduQXJyKHJ1bGUpOwogICAgICB9CiAgICB9LAogICAgLy8g6I635Y+WIuenkiLmlbDnu4QKICAgIGdldFNlY29uZEFycjogZnVuY3Rpb24gZ2V0U2Vjb25kQXJyKHJ1bGUpIHsKICAgICAgdGhpcy5kYXRlQXJyWzBdID0gdGhpcy5nZXRPcmRlckFycigwLCA1OSk7CiAgICAgIGlmIChydWxlLmluZGV4T2YoJy0nKSA+PSAwKSB7CiAgICAgICAgdGhpcy5kYXRlQXJyWzBdID0gdGhpcy5nZXRDeWNsZUFycihydWxlLCA2MCwgdHJ1ZSk7CiAgICAgIH0gZWxzZSBpZiAocnVsZS5pbmRleE9mKCcvJykgPj0gMCkgewogICAgICAgIHRoaXMuZGF0ZUFyclswXSA9IHRoaXMuZ2V0QXZlcmFnZUFycihydWxlLCA1OSk7CiAgICAgIH0gZWxzZSBpZiAocnVsZSAhPT0gJyonKSB7CiAgICAgICAgdGhpcy5kYXRlQXJyWzBdID0gdGhpcy5nZXRBc3NpZ25BcnIocnVsZSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDmoLnmja7kvKDov5vmnaXnmoRtaW4tbWF46L+U5Zue5LiA5Liq6aG65bqP55qE5pWw57uECiAgICBnZXRPcmRlckFycjogZnVuY3Rpb24gZ2V0T3JkZXJBcnIobWluLCBtYXgpIHsKICAgICAgdmFyIGFyciA9IFtdOwogICAgICBmb3IgKHZhciBpID0gbWluOyBpIDw9IG1heDsgaSsrKSB7CiAgICAgICAgYXJyLnB1c2goaSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGFycjsKICAgIH0sCiAgICAvLyDmoLnmja7op4TliJnkuK3mjIflrprnmoTpm7bmlaPlgLzov5Tlm57kuIDkuKrmlbDnu4QKICAgIGdldEFzc2lnbkFycjogZnVuY3Rpb24gZ2V0QXNzaWduQXJyKHJ1bGUpIHsKICAgICAgdmFyIGFyciA9IFtdOwogICAgICB2YXIgYXNzaWdpbkFyciA9IHJ1bGUuc3BsaXQoJywnKTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhc3NpZ2luQXJyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgYXJyW2ldID0gTnVtYmVyKGFzc2lnaW5BcnJbaV0pOwogICAgICB9CiAgICAgIGFyci5zb3J0KHRoaXMuY29tcGFyZSk7CiAgICAgIHJldHVybiBhcnI7CiAgICB9LAogICAgLy8g5qC55o2u5LiA5a6a566X5pyv6KeE5YiZ6K6h566X6L+U5Zue5LiA5Liq5pWw57uECiAgICBnZXRBdmVyYWdlQXJyOiBmdW5jdGlvbiBnZXRBdmVyYWdlQXJyKHJ1bGUsIGxpbWl0KSB7CiAgICAgIHZhciBhcnIgPSBbXTsKICAgICAgdmFyIGFnQXJyID0gcnVsZS5zcGxpdCgnLycpOwogICAgICB2YXIgbWluID0gTnVtYmVyKGFnQXJyWzBdKTsKICAgICAgdmFyIHN0ZXAgPSBOdW1iZXIoYWdBcnJbMV0pOwogICAgICB3aGlsZSAobWluIDw9IGxpbWl0KSB7CiAgICAgICAgYXJyLnB1c2gobWluKTsKICAgICAgICBtaW4gKz0gc3RlcDsKICAgICAgfQogICAgICByZXR1cm4gYXJyOwogICAgfSwKICAgIC8vIOagueaNruinhOWImei/lOWbnuS4gOS4quWFt+acieWRqOacn+aAp+eahOaVsOe7hAogICAgZ2V0Q3ljbGVBcnI6IGZ1bmN0aW9uIGdldEN5Y2xlQXJyKHJ1bGUsIGxpbWl0LCBzdGF0dXMpIHsKICAgICAgLy8gc3RhdHVzLS3ooajnpLrmmK/lkKbku44w5byA5aeL77yI5YiZ5LuOMeW8gOWni++8iQogICAgICB2YXIgYXJyID0gW107CiAgICAgIHZhciBjeWNsZUFyciA9IHJ1bGUuc3BsaXQoJy0nKTsKICAgICAgdmFyIG1pbiA9IE51bWJlcihjeWNsZUFyclswXSk7CiAgICAgIHZhciBtYXggPSBOdW1iZXIoY3ljbGVBcnJbMV0pOwogICAgICBpZiAobWluID4gbWF4KSB7CiAgICAgICAgbWF4ICs9IGxpbWl0OwogICAgICB9CiAgICAgIGZvciAodmFyIGkgPSBtaW47IGkgPD0gbWF4OyBpKyspIHsKICAgICAgICB2YXIgYWRkID0gMDsKICAgICAgICBpZiAoc3RhdHVzID09IGZhbHNlICYmIGkgJSBsaW1pdCA9PSAwKSB7CiAgICAgICAgICBhZGQgPSBsaW1pdDsKICAgICAgICB9CiAgICAgICAgYXJyLnB1c2goTWF0aC5yb3VuZChpICUgbGltaXQgKyBhZGQpKTsKICAgICAgfQogICAgICBhcnIuc29ydCh0aGlzLmNvbXBhcmUpOwogICAgICByZXR1cm4gYXJyOwogICAgfSwKICAgIC8vIOavlOi+g+aVsOWtl+Wkp+Wwj++8iOeUqOS6jkFycmF5LnNvcnTvvIkKICAgIGNvbXBhcmU6IGZ1bmN0aW9uIGNvbXBhcmUodmFsdWUxLCB2YWx1ZTIpIHsKICAgICAgaWYgKHZhbHVlMiAtIHZhbHVlMSA+IDApIHsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIDE7CiAgICAgIH0KICAgIH0sCiAgICAvLyDmoLzlvI/ljJbml6XmnJ/moLzlvI/lpoLvvJoyMDE3LTktMTkgMTg6MDQ6MzMKICAgIGZvcm1hdERhdGU6IGZ1bmN0aW9uIGZvcm1hdERhdGUodmFsdWUsIHR5cGUpIHsKICAgICAgLy8g6K6h566X5pel5pyf55u45YWz5YC8CiAgICAgIHZhciB0aW1lID0gdHlwZW9mIHZhbHVlID09ICdudW1iZXInID8gbmV3IERhdGUodmFsdWUpIDogdmFsdWU7CiAgICAgIHZhciBZID0gdGltZS5nZXRGdWxsWWVhcigpOwogICAgICB2YXIgTSA9IHRpbWUuZ2V0TW9udGgoKSArIDE7CiAgICAgIHZhciBEID0gdGltZS5nZXREYXRlKCk7CiAgICAgIHZhciBoID0gdGltZS5nZXRIb3VycygpOwogICAgICB2YXIgbSA9IHRpbWUuZ2V0TWludXRlcygpOwogICAgICB2YXIgcyA9IHRpbWUuZ2V0U2Vjb25kcygpOwogICAgICB2YXIgd2VlayA9IHRpbWUuZ2V0RGF5KCk7CiAgICAgIC8vIOWmguaenOS8oOmAkuS6hnR5cGXnmoTor50KICAgICAgaWYgKHR5cGUgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgcmV0dXJuIFkgKyAnLScgKyAoTSA8IDEwID8gJzAnICsgTSA6IE0pICsgJy0nICsgKEQgPCAxMCA/ICcwJyArIEQgOiBEKSArICcgJyArIChoIDwgMTAgPyAnMCcgKyBoIDogaCkgKyAnOicgKyAobSA8IDEwID8gJzAnICsgbSA6IG0pICsgJzonICsgKHMgPCAxMCA/ICcwJyArIHMgOiBzKTsKICAgICAgfSBlbHNlIGlmICh0eXBlID09ICd3ZWVrJykgewogICAgICAgIC8vIOWcqHF1YXJ0euS4rSAx5Li65pif5pyf5pelCiAgICAgICAgcmV0dXJuIHdlZWsgKyAxOwogICAgICB9CiAgICB9LAogICAgLy8g5qOA5p+l5pel5pyf5piv5ZCm5a2Y5ZyoCiAgICBjaGVja0RhdGU6IGZ1bmN0aW9uIGNoZWNrRGF0ZSh2YWx1ZSkgewogICAgICB2YXIgdGltZSA9IG5ldyBEYXRlKHZhbHVlKTsKICAgICAgdmFyIGZvcm1hdCA9IHRoaXMuZm9ybWF0RGF0ZSh0aW1lKTsKICAgICAgcmV0dXJuIHZhbHVlID09PSBmb3JtYXQ7CiAgICB9CiAgfSwKICB3YXRjaDogewogICAgJ2V4JzogJ2V4cHJlc3Npb25DaGFuZ2UnCiAgfSwKICBwcm9wczogWydleCddLAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICAvLyDliJ3lp4vljJYg6I635Y+W5LiA5qyh57uT5p6cCiAgICB0aGlzLmV4cHJlc3Npb25DaGFuZ2UoKTsKICB9Cn07"},null]}