{"remainingRequest":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\ljzc-fvue\\src\\components\\flow\\startByKey.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\src\\components\\flow\\startByKey.vue","mtime":1705040076868},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\babel.config.js","mtime":1701311296006},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkQ6L2plbmtpbnMvd29ya3NwYWNlL2xqemMtZnZ1ZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCAicmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCByZXEgZnJvbSAiQC9yZXF1ZXN0LmpzIjsKaW1wb3J0IHsgbWFwU3RhdGUsIG1hcEFjdGlvbnMgfSBmcm9tICJ2dWV4IjsKaW1wb3J0IEZvcm1Db250ZW50IGZyb20gIkAvY29tcG9uZW50cy9mbG93L2Zvcm1Db250ZW50LnZ1ZSI7CmltcG9ydCBUYXNrU2VsZWN0RGVzdGluYXRpb24gZnJvbSAiQC9jb21wb25lbnRzL2Zsb3cvdGFzay90YXNrU2VsZWN0RGVzdGluYXRpb24udnVlIjsKaW1wb3J0IHV0aWxzIGZyb20gIkAvdXRpbHMuanMiOwppbXBvcnQgeyBCYXNlNjQgfSBmcm9tICJqcy1iYXNlNjQiOwppbXBvcnQgeyBkZWJ1Z2xvZyB9IGZyb20gInV0aWwiOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogInN0YXJ0QnlLZXkiLAogIGNvbXBvbmVudHM6IHsKICAgIEZvcm1Db250ZW50OiBGb3JtQ29udGVudCwKICAgIFRhc2tTZWxlY3REZXN0aW5hdGlvbjogVGFza1NlbGVjdERlc3RpbmF0aW9uCiAgfSwKICBwcm9wczogWyJkZWZLZXkiXSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgZGlzYWJsZWQ6IHRydWUsCiAgICAgIG5vZGVEZWY6IHt9LAogICAgICBpbnN0SWQ6ICIiLAogICAgICBsZWFkZXJJZDogMCwKICAgICAgZmxvd0lkOiAiIiwKICAgICAgZGVmTmFtZTogIiIsCiAgICAgIGRlZklkOiAiIiwKICAgICAgaXNTaG93U3RhcnRCdG46IHRydWUKICAgIH07CiAgfSwKICBjb21wdXRlZDogbWFwU3RhdGUoewogICAgLy8gY3VyT3JnUG9zdDogc3RhdGUgPT4gc3RhdGUudXNlci5wb3N0Q2hhcmdlLAogICAgLy8gZGVmSWQ6IGFzeW5jIGZ1bmN0aW9uKCkgewogICAgLy8gICB2YXIgZGVmSWQgPSAiIjsKICAgIC8vICAgaWYgKHRoaXMuZGVmS2V5KSB7CiAgICAvLyAgICAgdmFyIHAgPSBhd2FpdCB0aGlzLmdldERlZigpOwogICAgLy8gICAgIHAudGhlbihyZXMgPT4gewogICAgLy8gICAgICAgZGVidWdnZXI7CiAgICAvLyAgICAgICBkZWZJZCA9IHJlczsKICAgIC8vICAgICB9KTsKICAgIC8vICAgICAvLyByZXR1cm4gIjEyNDU5MDk1MDQ1MjY1MTYyMjQiOwogICAgLy8gICB9CiAgICAvLyAgIHJldHVybiBkZWZJZDsKICAgIC8vIH0KICB9KSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIC8v5aaC5p6c6K+l5a2X5q6155qE5qCh6aqM5Y+X5Y+m5LiA5Liq5a2X5q615b2x5ZON44CC5YiZ55uR5ZCs5Y+m5LiA5Liq5a2X5q615o6n5Lu25Y+R5biD55qE5YC85pS55Y+Y5LqL5Lu2CiAgICB0aGlzLiRyb290LiRvbigic3RhcnRGbG93QnRuQ2hhbmdlIiwgZnVuY3Rpb24gKHZhbHVlKSB7CiAgICAgIF90aGlzLmlzU2hvd1N0YXJ0QnRuID0gdmFsdWU7CiAgICB9KTsKICAgIC8v55uR5ZCs6KGo5Y2V5Yqg6L295a6M5oiQ5Y+R5biD5LqL5Lu2CiAgICB0aGlzLiRyb290LiRvbigiZm9ybUxvYWRpbmciLCBmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgX3RoaXMuZGlzYWJsZWQgPSB2YWx1ZTsKICAgIH0pOwogIH0sCiAgbWV0aG9kczogewogICAgZ2V0RGVmOiBmdW5jdGlvbiBnZXREZWYoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoIC8qI19fUFVSRV9fKi9yZWdlbmVyYXRvclJ1bnRpbWUubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkgewogICAgICAgIHZhciB0aGlzXywgcHJvbWlzZTsKICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICB0aGlzXyA9IF90aGlzMjsKICAgICAgICAgICAgICBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgICAgcmVxLmdldCh3aW5kb3cuY29udGV4dC5icG1Nb2RlbCArICIvZmxvdy9kZWYvdjEvZ2V0SnNvbj9kZWZLZXk9IiArIHRoaXNfLmRlZktleSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzLmRhdGEuZGVmSWQpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDQ7CiAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KCJyZXR1cm4iLCBfY29udGV4dC5zZW50KTsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOWHhuWkh+aVsOaNrgogICAgaGFuZGxlRGF0YTogZnVuY3Rpb24gaGFuZGxlRGF0YShmb3JtRGF0YVN0cikgewogICAgICB2YXIgZGF0YSA9IHsKICAgICAgICBkZWZJZDogdGhpcy5kZWZJZAogICAgICB9OwogICAgICAvLyBVUkzooajljZUKICAgICAgaWYgKGZvcm1EYXRhU3RyLmNvbnN0cnVjdG9yID09IE9iamVjdCkgewogICAgICAgIGRhdGEuZm9ybVR5cGUgPSAiZnJhbWUiOwogICAgICAgIGlmIChmb3JtRGF0YVN0ci5idXNpbmVzc0tleSkgewogICAgICAgICAgZGF0YS5idXNpbmVzc0tleSA9IGZvcm1EYXRhU3RyLmJ1c2luZXNzS2V5OwogICAgICAgIH0KICAgICAgICBpZiAoZm9ybURhdGFTdHIuc3lzQ29kZSkgewogICAgICAgICAgZGF0YS5zeXNDb2RlID0gZm9ybURhdGFTdHIuc3lzQ29kZTsKICAgICAgICB9CiAgICAgICAgaWYgKGZvcm1EYXRhU3RyLnZhcnMpIHsKICAgICAgICAgIGRhdGEudmFycyA9IGZvcm1EYXRhU3RyLnZhcnM7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGZvcm1EYXRhU3RyLmNvbnN0cnVjdG9yID09IFN0cmluZykgewogICAgICAgIGRhdGEuZGF0YSA9IEJhc2U2NC5lbmNvZGUoZm9ybURhdGFTdHIpOwogICAgICAgIGRhdGEuZm9ybVR5cGUgPSAiaW5uZXIiOwogICAgICB9CiAgICAgIGRhdGEuc3VwcG9ydE1vYmlsZSA9IDA7CiAgICAgIGlmICh0aGlzLmluc3RJZCkgewogICAgICAgIGRhdGEucHJvSW5zdElkID0gdGhpcy5pbnN0SWQ7CiAgICAgIH0KICAgICAgaWYgKHRoaXMuY3VyT3JnUG9zdCAmJiB0aGlzLmN1ck9yZ1Bvc3Qub3JnKSB7CiAgICAgICAgZGF0YS5zdGFydE9yZ0lkID0gdGhpcy5jdXJPcmdQb3N0Lm9yZy5pZDsKICAgICAgfQogICAgICBpZiAod2luZG93LnVyZ2VudFN0YXRlVmFsdWUpIHsKICAgICAgICBkYXRhLnVyZ2VudFN0YXRlVmFsdWUgPSB3aW5kb3cudXJnZW50U3RhdGVWYWx1ZTsKICAgICAgfQogICAgICBpZiAodGhpcy5sZWFkZXJJZCAmJiB0aGlzLmxlYWRlcklkICE9IDApIHsKICAgICAgICBkYXRhLmFnZW50TGVhZGVySWQgPSB0aGlzLmxlYWRlcklkOwogICAgICB9CiAgICAgIHJldHVybiBkYXRhOwogICAgfSwKICAgIHN0YXJ0OiBmdW5jdGlvbiBzdGFydCgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHZhciB0aGlzXyA9IHRoaXM7CiAgICAgIC8v6I635Y+WVlVF6KGo5Y2V5a6e5L6LKOWIpOaWreaYr+WQpuaYr+WcqOe6v+ihqOWNlSkKICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJvbmxpbmUtZm9ybSIpWzBdKSB7CiAgICAgICAgdmFyIHRhYmxlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJvbmxpbmUtZm9ybSIpWzBdLl9fdnVlX18ucGVybWlzc2lvbi50YWJsZTsgLy/ojrflj5blrZDooajmnYPpmZAKICAgICAgICB2YXIgYm9EYXRhID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoIm9ubGluZS1mb3JtIilbMF0uX192dWVfXy5kYXRhOyAvL+iOt+WPluihqOWNlWJv5a+56LGhCiAgICAgICAgdmFyIHpEYXRhID0ge307CiAgICAgICAgZm9yICh2YXIgayBpbiBib0RhdGEpIHsKICAgICAgICAgIHpEYXRhID0gYm9EYXRhW2tdOwogICAgICAgIH0KICAgICAgICBmb3IgKHZhciBrZXkgaW4gdGFibGVzKSB7CiAgICAgICAgICAvL+WmguaenOacieWvvOWFpeWxnuaAp++8jOWImeihqOaYjuS4jeaYr+WtkOihqOiAjOaYr+aVsOaNruaKpeihqO+8jOS4jeWBmuW/heWhq+agoemqjAogICAgICAgICAgaWYgKHRhYmxlc1trZXldICYmIHRhYmxlc1trZXldLmhhc093blByb3BlcnR5KCJleHBvcnQiKSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICgodGFibGVzW2tleV0ucmVxdWlyZWQgPT0gdHJ1ZSB8fCB0YWJsZXNba2V5XS5yZXF1aXJlZCA9PSAidHJ1ZSIpICYmIHpEYXRhWyJzdWJfIiArIGtleV0gJiYgekRhdGFbInN1Yl8iICsga2V5XS5sZW5ndGggPT0gMCkgewogICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICBtZXNzYWdlOiAi5a2Q6KGo5b+F5aGr5LiA5p2h6K6w5b2VIiwKICAgICAgICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgdXRpbHMuZ2V0T25saW5lRm9ybURhdGEodHJ1ZSkudGhlbihmdW5jdGlvbiAoZm9ybURhdGFTdHIpIHsKICAgICAgICB1dGlscy5jbG9zZUFsbE5vdGlmaWNhdGlvbigpOwogICAgICAgIGlmICghX3RoaXMzLm5vZGVEZWYubG9jYWxQcm9wZXJ0aWVzLmp1bXBUeXBlICYmICFfdGhpczMubm9kZURlZi5sb2NhbFByb3BlcnRpZXMuY2hvaWNlRXhjdXRvcikgewogICAgICAgICAgX3RoaXMzLnByb2Nlc3NTdGFydChmb3JtRGF0YVN0cik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF90aGlzMy4kc3RvcmUuZGlzcGF0Y2goInN0b3JlUHJvY2Vzcy9nZXRBZnRlckp1bXBOb2RlcyIsIHsKICAgICAgICAgICAgdGFza0lkOiAiIiwKICAgICAgICAgICAgZGF0YTogQmFzZTY0LmVuY29kZShmb3JtRGF0YVN0ciksCiAgICAgICAgICAgIGRlZklkOiBfdGhpczMuZGVmSWQgfHwgIiIsCiAgICAgICAgICAgIGluc3RJZDogX3RoaXMzLmluc3RJZCB8fCAiIgogICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoZGF0YSkgewogICAgICAgICAgICBpZiAoZGF0YS5hZnRlck5vZGVzLmxlbmd0aCA9PSAwIHx8IGRhdGEuYWZ0ZXJOb2Rlcy5sZW5ndGggPT0gMSAmJiBkYXRhLmFmdGVyTm9kZXNbMF0uZXhjdXRvckxpc3QgIT0gdW5kZWZpbmVkICYmIGRhdGEuYWZ0ZXJOb2Rlc1swXS5leGN1dG9yTGlzdC5sZW5ndGggPT0gMSkgewogICAgICAgICAgICAgIF90aGlzMy5wcm9jZXNzU3RhcnQoZm9ybURhdGFTdHIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHZhciBmb3JtRGF0YSA9IHt9OwogICAgICAgICAgICAgIGlmIChmb3JtRGF0YVN0ci5jb25zdHJ1Y3RvciA9PSBPYmplY3QpIHsKICAgICAgICAgICAgICAgIGZvcm1EYXRhID0gZm9ybURhdGFTdHI7CiAgICAgICAgICAgICAgICBmb3JtRGF0YS5kYXRhID0gIiI7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtRGF0YVN0ci5jb25zdHJ1Y3RvciA9PSBTdHJpbmcpIHsKICAgICAgICAgICAgICAgIGZvcm1EYXRhLmRhdGEgPSBCYXNlNjQuZW5jb2RlKGZvcm1EYXRhU3RyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX3RoaXMzLiRyZWZzLnRhc2tTZWxlY3REZXN0aW5hdGlvbi5zaG93RGlhbG9nKGZvcm1EYXRhLCAiIiwgIiIpOyAvL+eItue7hOS7tuiwg+eUqOWtkOe7hOS7tuaWueazlQogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZWFzb24pIHsKICAgICAgICByZXR1cm4gdXRpbHMuaGFuZGxlR2V0Rm9ybURhdGFSZWplY3QocmVhc29uLCB0cnVlKS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHJldHVybiB0aGlzXy5wcm9jZXNzU3RhcnQoKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAogICAgLy/mtYHnqIvlj5HotbcKICAgIHByb2Nlc3NTdGFydDogZnVuY3Rpb24gcHJvY2Vzc1N0YXJ0KGZvcm1EYXRhU3RyKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICB2YXIgZm9ybUtleSA9IHRoaXMuJHJlZnMuZm9ybUNvbnRlbnQuZm9ybUtleTsKICAgICAgdmFyIGRhdGEgPSB0aGlzLmhhbmRsZURhdGEoZm9ybURhdGFTdHIpOwogICAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZm9ybUltcG9ydFRlbXBKc29uJykpIHsKICAgICAgICBkYXRhLnVwZGF0ZVN1YlRhYmxlSnNvbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2Zvcm1JbXBvcnRUZW1wSnNvbicpOwogICAgICB9CiAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlOwogICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgic3RvcmVQcm9jZXNzL3N0YXJ0IiwgZGF0YSkudGhlbihmdW5jdGlvbiAocm93KSB7CiAgICAgICAgX3RoaXM0LiRzdG9yZS5kaXNwYXRjaCgic3RvcmVQcm9jZXNzL2dldEluc3RhbmNlQnlJbnN0SWQiLCByb3cuaW5zdElkKS50aGVuKGZ1bmN0aW9uIChpbnN0cykgewogICAgICAgICAgaWYgKHJvdy5jdXJCb1BrVmFsKSB7CiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2Zvcm1JbXBvcnRUZW1wUmVmSWQnLCByb3cuY3VyQm9Qa1ZhbCk7CiAgICAgICAgICB9CiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdmb3JtSW1wb3J0VGVtcEpzb24nKTsKICAgICAgICAgIF90aGlzNC4kcm91dGVyLnB1c2goIi92LWZsb3cvdi1kb25lLyIgKyBfdGhpczQuZGVmS2V5KTsKICAgICAgICAgIC8qIGlmIChpbnN0cy5zdGF0dXMgIT0gImVuZCIpIHsNCiAgICAgICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCgiL3YtZmxvdy92LWRvbmUiKTsNCiAgICAgICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCgiL2luc3QvIiArIHJvdy5pbnN0SWQgKyAiL3JlcXVlc3QiKTsNCiAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCgiL2luc3RSZWFkLyIgKyByb3cuaW5zdElkICsgIi9teVJlcXVlc3QiKTsNCiAgICAgICAgICAgfSovCiAgICAgICAgfSk7CiAgICAgIH0pLmZpbmFsbHkoZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNC5kaXNhYmxlZCA9IGZhbHNlOwogICAgICB9KTsKICAgIH0sCiAgICAvL+S/neWtmAogICAgc2F2ZURyYWZ0OiBmdW5jdGlvbiBzYXZlRHJhZnQoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB2YXIgZm9ybUtleSA9IHRoaXMuJHJlZnMuZm9ybUNvbnRlbnQuZm9ybUtleTsKICAgICAgdmFyIHRoaXNfID0gdGhpczsKICAgICAgdXRpbHMuZ2V0T25saW5lRm9ybURhdGEodHJ1ZSkudGhlbihmdW5jdGlvbiAoZm9ybURhdGFTdHIpIHsKICAgICAgICB1dGlscy5jbG9zZUFsbE5vdGlmaWNhdGlvbigpOwogICAgICAgIHZhciBkYXRhID0gdGhpc18uaGFuZGxlRGF0YShmb3JtRGF0YVN0cik7CiAgICAgICAgZGF0YS5mb3JtS2V5ID0gZm9ybUtleTsKICAgICAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZm9ybUltcG9ydFRlbXBKc29uJykpIHsKICAgICAgICAgIGRhdGEudXBkYXRlU3ViVGFibGVKc29uID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZm9ybUltcG9ydFRlbXBKc29uJyk7CiAgICAgICAgfQogICAgICAgIHRoaXNfLiRzdG9yZS5kaXNwYXRjaCgic3RvcmVQcm9jZXNzL3NhdmVEcmFmdCIsIGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJvdykgewogICAgICAgICAgaWYgKHJvdy5jdXJCb1BrVmFsKSB7CiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2Zvcm1JbXBvcnRUZW1wUmVmSWQnLCByb3cuY3VyQm9Qa1ZhbCk7CiAgICAgICAgICB9CiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdmb3JtSW1wb3J0VGVtcEpzb24nKTsKICAgICAgICAgIHRoaXNfLmlzTXlSZXF1ZXN0ID0gdHJ1ZTsKICAgICAgICAgIHRoaXNfLiRyb3V0ZXIucmVwbGFjZSgiL3N0YXJ0LyIgKyB0aGlzXy5kZWZJZCArICIvIiArIHJvdy5pbnN0SWQpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyKSB7fSk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZWFzb24pIHsKICAgICAgICByZXR1cm4gdXRpbHMuaGFuZGxlR2V0Rm9ybURhdGFSZWplY3QocmVhc29uKS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHJldHVybiBfdGhpczUucHJvY2Vzc1N0YXJ0KCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8v6L+U5ZueCiAgICBiYWNrOiBmdW5jdGlvbiBiYWNrKCkgewogICAgICB1dGlscy5jbG9zZUFsbE5vdGlmaWNhdGlvbigpOwogICAgICBpZiAodGhpcy5pc015UmVxdWVzdCkgewogICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKCIvdi1mbG93L3YtcmVxdWVzdCIpOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChKU09OLnN0cmluZ2lmeSh0aGlzLiRyb3V0ZS5xdWVyeSkgPT0gInt9IikgewogICAgICAgICAgdGhpcy4kcm91dGVyLmdvKC0xKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kcm91dGVyLnB1c2goIi9ob21lIik7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICB2YXIgcCA9IHRoaXMuZ2V0RGVmKCk7CiAgICBwLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICBfdGhpczYuZGVmSWQgPSByZXM7CiAgICAgIC8v5Y+W5Y+R6LW36IqC54K555qE5bGe5oCn55So5LqO5Yik5pat5piv5ZCm5Y+v5Lul6YCJ5oup6Lev5b6E6Lez6L2sCiAgICAgIHdpbmRvdy5hZ2VudExlYWRlcklkID0gX3RoaXM2LmxlYWRlcklkOwogICAgICBfdGhpczYuJHN0b3JlLmRpc3BhdGNoKCJzdG9yZVByb2Nlc3MvZ2V0Q3VyTm9kZVByb3BlcnRpZXMiLCB7CiAgICAgICAgZGVmSWQ6IF90aGlzNi5kZWZJZCB8fCAiIiwKICAgICAgICBpbnN0SWQ6IF90aGlzNi5pbnN0SWQgfHwgIiIsCiAgICAgICAgdGFza0lkOiAiIgogICAgICB9KS50aGVuKGZ1bmN0aW9uIChOb2RlRGVmKSB7CiAgICAgICAgX3RoaXM2Lm5vZGVEZWYgPSBOb2RlRGVmOwogICAgICAgIGlmIChOb2RlRGVmLm5vZGVQcm9wZXJ0aWVzICYmIE5vZGVEZWYubm9kZVByb3BlcnRpZXNbMF0uaW5pdEZpbGxEYXRhKSB7CiAgICAgICAgICBfdGhpcy5pbml0RmlsbERhdGEgPSBOb2RlRGVmLm5vZGVQcm9wZXJ0aWVzWzBdLmluaXRGaWxsRGF0YTsKICAgICAgICAgIF90aGlzLiRyZWZzWydmb3JtQ29udGVudCddLnNldEluaXRGaWxsRGF0YShfdGhpcy5pbml0RmlsbERhdGEpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIC8v6I635Y+W5rWB56iL5L+h5oGvCiAgICAgIHJlcS5nZXQod2luZG93LmNvbnRleHQuYnBtTW9kZWwgKyAiL2Zsb3cvZGVmL3YxL2RlZkdldD9kZWZJZD0iICsgX3RoaXM2LmRlZklkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczYuZGVmTmFtZSA9IHJlcy5kYXRhLm5hbWU7CiAgICAgIH0pOwogICAgfSk7CiAgfQp9Ow=="},null]}