6709c630d64db1134b0f11d529ee8044.json 111 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js!D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\setting\\devise\\diyIndex.vue?vue&type=script&crossorigin=anonymous&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\setting\\devise\\diyIndex.vue","mtime":1761703101492},{"path":"D:\\front\\item\\zyAdmin\\babel.config.js","mtime":1761614925168},{"path":"D:\\front\\item\\zyAdmin\\.babelrc","mtime":1761614925165},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovZnJvbnQvaXRlbS96eUFkbWluL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNvcnQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zcGxpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy50cmltLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7CmltcG9ydCB7IGNhdGVnb3J5TGlzdCBhcyBfY2F0ZWdvcnlMaXN0LCBkaXlQcm9JbmZvLCBkaXlQcm9TYXZlLCBzZXREZWZhdWx0LCByZWNvdmVyeSwgZGl5VXBkYXRlTmFtZSwgZ2V0Um91dGluZUNvZGUgfSBmcm9tICdAL2FwaS9kaXknOwppbXBvcnQgdnVlZHJhZ2dhYmxlIGZyb20gJ3Z1ZWRyYWdnYWJsZSc7CmltcG9ydCBtUGFnZSBmcm9tICdAL2NvbXBvbmVudHMvbW9iaWxlUGFnZS9pbmRleC5qcyc7CmltcG9ydCBtQ29uZmlnIGZyb20gJ0AvY29tcG9uZW50cy9tb2JpbGVDb25maWcvaW5kZXguanMnOwppbXBvcnQgZm9vdFBhZ2UgZnJvbSAnQC9jb21wb25lbnRzL3BhZ2VzRm9vdCc7CmltcG9ydCB7IG1hcFN0YXRlIH0gZnJvbSAndnVleCc7CmltcG9ydCBodG1sMmNhbnZhcyBmcm9tICdodG1sMmNhbnZhcyc7CmltcG9ydCB0aGVtZSBmcm9tICdAL21peGlucy90aGVtZSc7CmltcG9ydCBTZXR0aW5nIGZyb20gJ0Avc2V0dGluZyc7CmltcG9ydCBRUkNvZGUgZnJvbSAncXJjb2RlanMyJzsKZXhwb3J0IGRlZmF1bHQgewogIGluamVjdDogWydyZWxvYWQnXSwKICBuYW1lOiAnaW5kZXgudnVlJywKICBjb21wb25lbnRzOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoewogICAgZm9vdFBhZ2U6IGZvb3RQYWdlLAogICAgaHRtbDJjYW52YXM6IGh0bWwyY2FudmFzLAogICAgZHJhZ2dhYmxlOiB2dWVkcmFnZ2FibGUKICB9LCBtUGFnZSksIG1Db25maWcpLAogIGZpbHRlcnM6IHsKICAgIGZpbHRlclR4dDogZnVuY3Rpb24gZmlsdGVyVHh0KHZhbCkgewogICAgICBpZiAodmFsKSB7CiAgICAgICAgcmV0dXJuIHZhbCA9IHZhbC5zdWJzdHIoMCwgdmFsLmxlbmd0aCAtIDEpOwogICAgICB9CiAgICB9CiAgfSwKICBjb21wdXRlZDogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBtYXBTdGF0ZSh7CiAgICB0aXRsZVR4dDogZnVuY3Rpb24gdGl0bGVUeHQoc3RhdGUpIHsKICAgICAgcmV0dXJuIHN0YXRlLm1vYmlsZENvbmZpZy5wYWdlVGl0bGUgfHwgJ+mmlumhtSc7CiAgICB9LAogICAgc2hvd1R4dDogZnVuY3Rpb24gc2hvd1R4dChzdGF0ZSkgewogICAgICByZXR1cm4gc3RhdGUubW9iaWxkQ29uZmlnLnBhZ2VTaG93OwogICAgfSwKICAgIGNvbG9yVHh0OiBmdW5jdGlvbiBjb2xvclR4dChzdGF0ZSkgewogICAgICByZXR1cm4gc3RhdGUubW9iaWxkQ29uZmlnLnBhZ2VDb2xvcjsKICAgIH0sCiAgICBwaWNUeHQ6IGZ1bmN0aW9uIHBpY1R4dChzdGF0ZSkgewogICAgICByZXR1cm4gc3RhdGUubW9iaWxkQ29uZmlnLnBhZ2VQaWM7CiAgICB9LAogICAgY29sb3JQaWNrZXJUeHQ6IGZ1bmN0aW9uIGNvbG9yUGlja2VyVHh0KHN0YXRlKSB7CiAgICAgIHJldHVybiBzdGF0ZS5tb2JpbGRDb25maWcucGFnZUNvbG9yUGlja2VyOwogICAgfSwKICAgIHRhYlZhbFR4dDogZnVuY3Rpb24gdGFiVmFsVHh0KHN0YXRlKSB7CiAgICAgIHJldHVybiBzdGF0ZS5tb2JpbGRDb25maWcucGFnZVRhYlZhbDsKICAgIH0sCiAgICBwaWNVcmxUeHQ6IGZ1bmN0aW9uIHBpY1VybFR4dChzdGF0ZSkgewogICAgICByZXR1cm4gc3RhdGUubW9iaWxkQ29uZmlnLnBhZ2VQaWNVcmw7CiAgICB9LAogICAgcGFnZUZvb3RlclR5cGU6IGZ1bmN0aW9uIHBhZ2VGb290ZXJUeXBlKHN0YXRlKSB7CiAgICAgIHJldHVybiBzdGF0ZS5tb2JpbGRDb25maWcucGFnZUZvb3Rlci5uYXZDb25maWcudGFiVmFsIHx8IDA7CiAgICB9LAogICAgcGFnZUZvb3RlckJvdHRvbTogZnVuY3Rpb24gcGFnZUZvb3RlckJvdHRvbShzdGF0ZSkgewogICAgICByZXR1cm4gc3RhdGUubW9iaWxkQ29uZmlnLnBhZ2VGb290ZXIubWJDb25maWcudmFsOwogICAgfSwKICAgIGRlZmF1bHRBcnJheXM6IGZ1bmN0aW9uIGRlZmF1bHRBcnJheXMoc3RhdGUpIHsKICAgICAgcmV0dXJuIHN0YXRlLm1vYmlsZENvbmZpZy5kZWZhdWx0QXJyYXk7CiAgICB9CiAgfSkpLCB7fSwgewogICAgbmFtZVR4dDogewogICAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgICByZXR1cm4gdGhpcy4kc3RvcmUuc3RhdGUubW9iaWxkQ29uZmlnLnBhZ2VOYW1lOwogICAgICB9LAogICAgICBzZXQ6IGZ1bmN0aW9uIHNldCh2YWx1ZSkgewogICAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL1VQTkFNRScsIHZhbHVlKTsKICAgICAgfQogICAgfQogIH0pLAogIG1peGluczogW3RoZW1lXSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgQmFzZVVSTDogU2V0dGluZy5hcGlCYXNlVVJMLnJlcGxhY2UoL2FkbWluYXBpLywgJycpLAogICAgICBxcmNvZGVJbWc6ICcnLAogICAgICBtb2RhbDogZmFsc2UsCiAgICAgIGNsaWVudEhlaWdodDogJycsCiAgICAgIC8v6aG16Z2i5Yqo5oCB6auY5bqmCiAgICAgIHJvbGxIZWlnaHQ6ICcnLAogICAgICBsZWZ0TWVudTogW10sCiAgICAgIC8vIOW3puS+p+iPnOWNlQogICAgICBsQ29uZmlnOiBbXSwKICAgICAgLy8g5bem5L6n57uE5Lu2CiAgICAgIG1Db25maWc6IFtdLAogICAgICAvLyDkuK3pl7Tnu4Tku7bmuLLmn5MKICAgICAgckNvbmZpZzogW10sCiAgICAgIC8vIOWPs+S+p+e7hOS7tumFjee9rgogICAgICBhY3RpdmVDb25maWdOYW1lOiAnJywKICAgICAgcHJvcHNPYmo6IHt9LAogICAgICAvLyDnu4Tku7bkvKDpgJLnmoTmlbDmja4sCiAgICAgIGFjdGl2ZUluZGV4OiAtMTAwLAogICAgICAvLyDpgInkuK3nmoTkuIvmoIcKICAgICAgbnVtYmVyOiAwLAogICAgICBwYWdlSWQ6ICcnLAogICAgICBwYWdlTmFtZTogJycsCiAgICAgIHBhZ2VUeXBlOiAnJywKICAgICAgY2F0ZWdvcnk6IFtdLAogICAgICB0YWJMaXN0OiBbewogICAgICAgIHRpdGxlOiAn57uE5Lu25bqTJywKICAgICAgICBrZXk6IDAKICAgICAgfSwgewogICAgICAgIHRpdGxlOiAn6aG16Z2i6ZO+5o6lJywKICAgICAgICBrZXk6IDEKICAgICAgfV0sCiAgICAgIGZvb3RBY3RpdmU6IGZhbHNlLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgcmVsTG9hZGluZzogZmFsc2UsCiAgICAgIGlzU2VhcmNoOiBmYWxzZSwKICAgICAgaXNUYWI6IGZhbHNlLAogICAgICBpc0ZsbG93OiBmYWxzZSwKICAgICAgaXNDb21iOiBmYWxzZSwKICAgICAgaXNTZXJ2aWNlOiBmYWxzZSwKICAgICAgdmlzaWJsZTogdHJ1ZSwKICAgICAgZGl5U3RhdHVzOiAwLAogICAgICBuYW1lTW9kYWw6IGZhbHNlLAogICAgICBzYXZlTmFtZTogJycKICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIHRoaXMuY2F0ZWdvcnlMaXN0KCk7CiAgICB0aGlzLnBhZ2VJZCA9IHRoaXMuJHJvdXRlLnF1ZXJ5LmlkOwogICAgdGhpcy5wYWdlTmFtZSA9IHRoaXMuJHJvdXRlLnF1ZXJ5Lm5hbWU7CiAgICB0aGlzLnBhZ2VUeXBlID0gdGhpcy4kcm91dGUucXVlcnkudHlwZTsKICAgIHRoaXMubENvbmZpZyA9IHRoaXMub2JqVG9BcnIobVBhZ2UpOwogICAgdmFyIGltZ0xpc3QgPSB7CiAgICAgIGltZ0xpc3Q6IFtyZXF1aXJlKCdAL2Fzc2V0cy9pbWFnZXMvZm9vdC0wMDUucG5nJyksIHJlcXVpcmUoJ0AvYXNzZXRzL2ltYWdlcy9mb290LTAwNi5wbmcnKV0sCiAgICAgIG5hbWU6ICfotK3nianovaYnLAogICAgICBsaW5rOiAnL3BhZ2VzL29yZGVyX2FkZGNhcnQvb3JkZXJfYWRkY2FydCcKICAgIH07CiAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgIF90aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9GT09URVInLCB7CiAgICAgICAgdGl0bGU6ICfmmK/lkKboh6rlrprkuYknLAogICAgICAgIG5hbWU6IGltZ0xpc3QKICAgICAgfSk7CiAgICAgIF90aGlzLmFycmF5U29ydCgpOwogICAgICBpZiAoX3RoaXMucGFnZUlkICE9IDApIHsKICAgICAgICBfdGhpcy5nZXREZWZhdWx0Q29uZmlnKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX3RoaXMuc2hvd1RpdGxlKCk7CiAgICAgIH0KICAgICAgX3RoaXMuY2xpZW50SGVpZ2h0ID0gIiIuY29uY2F0KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpIC0gNjUuODE7IC8v6I635Y+W5rWP6KeI5Zmo5Y+v6KeG5Yy65Z+f6auY5bqmCiAgICAgIHZhciBIID0gIiIuY29uY2F0KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpIC0gMTgwOwogICAgICBfdGhpcy5yb2xsSGVpZ2h0ID0gSCA+IDY1MCA/IDY1MCA6IEg7CiAgICAgIHZhciB0aGF0ID0gX3RoaXM7CiAgICAgIHdpbmRvdy5vbnJlc2l6ZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB0aGF0LmNsaWVudEhlaWdodCA9ICIiLmNvbmNhdChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAtIDY1LjgxOwogICAgICAgIHZhciBIID0gIiIuY29uY2F0KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpIC0gMTgwOwogICAgICAgIHRoYXQucm9sbEhlaWdodCA9IEggPiA2NTAgPyA2NTAgOiBIOwogICAgICB9OwogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBleHBvcnRWaWV3OiBmdW5jdGlvbiBleHBvcnRWaWV3KCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgdmFyIHRoYXQgPSB0aGlzOwogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgY29uc29sZS5sb2coX3RoaXMyLm1Db25maWcpOwogICAgICB9KTsKICAgIH0sCiAgICBpbXBvcnRWaWV3OiBmdW5jdGlvbiBpbXBvcnRWaWV3KCkge30sCiAgICBwcmV2aWV3OiBmdW5jdGlvbiBwcmV2aWV3KCkgewogICAgICB0aGlzLm1vZGFsID0gdHJ1ZTsKICAgICAgdGhpcy5jcmVhdFFyQ29kZSh0aGlzLnBhZ2VJZCwgdGhpcy5kaXlTdGF0dXMpOwogICAgICB0aGlzLnJvdXRpbmVDb2RlKHRoaXMucGFnZUlkKTsKICAgIH0sCiAgICAvL+Wwj+eoi+W6j+S6jOe7tOeggQogICAgcm91dGluZUNvZGU6IGZ1bmN0aW9uIHJvdXRpbmVDb2RlKGlkKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICBnZXRSb3V0aW5lQ29kZShpZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMzLnFyY29kZUltZyA9IHJlcy5kYXRhLmltYWdlOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgX3RoaXMzLiRtZXNzYWdlLmVycm9yKGVycik7CiAgICAgIH0pOwogICAgfSwKICAgIC8v55Sf5oiQ5LqM57u056CBCiAgICBjcmVhdFFyQ29kZTogZnVuY3Rpb24gY3JlYXRRckNvZGUoaWQsIHN0YXR1cykgewogICAgICB0aGlzLiRyZWZzLnFyQ29kZVVybC5pbm5lckhUTUwgPSAnJzsKICAgICAgdmFyIHVybCA9ICcnOwogICAgICBpZiAoc3RhdHVzKSB7CiAgICAgICAgdXJsID0gIiIuY29uY2F0KHRoaXMuQmFzZVVSTCwgInBhZ2VzL2luZGV4L2luZGV4Iik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdXJsID0gIiIuY29uY2F0KHRoaXMuQmFzZVVSTCwgInBhZ2VzL2FubmV4L3NwZWNpYWwvaW5kZXg/aWQ9IikuY29uY2F0KGlkKTsKICAgICAgfQogICAgICB2YXIgcXJjb2RlID0gbmV3IFFSQ29kZSh0aGlzLiRyZWZzLnFyQ29kZVVybCwgewogICAgICAgIHRleHQ6IHVybCwKICAgICAgICAvLyDpnIDopoHovazmjaLkuLrkuoznu7TnoIHnmoTlhoXlrrkKICAgICAgICB3aWR0aDogMTYwLAogICAgICAgIGhlaWdodDogMTYwLAogICAgICAgIGNvbG9yRGFyazogJyMwMDAwMDAnLAogICAgICAgIGNvbG9yTGlnaHQ6ICcjZmZmZmZmJywKICAgICAgICBjb3JyZWN0TGV2ZWw6IFFSQ29kZS5Db3JyZWN0TGV2ZWwuSAogICAgICB9KTsKICAgIH0sCiAgICBjaGFuZ05hbWU6IGZ1bmN0aW9uIGNoYW5nTmFtZSh2YWwpIHsKICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvVVBOQU1FJywgdmFsKTsKICAgIH0sCiAgICBjYW5jZWw6IGZ1bmN0aW9uIGNhbmNlbCgpIHsKICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7CiAgICB9LAogICAgZGV0ZXJtaW5lOiBmdW5jdGlvbiBkZXRlcm1pbmUoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICBpZiAodGhpcy5uYW1lVHh0LnRyaW0oKSA9PSAnJykgewogICAgICAgIHJldHVybiB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXmqKHmnb/lkI3np7AnKTsKICAgICAgfQogICAgICBpZiAodGhpcy5wYWdlSWQgPT0gMCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygn5L+u5pS55oiQ5YqfJyk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGRpeVVwZGF0ZU5hbWUodGhpcy5wYWdlSWQsIHsKICAgICAgICBuYW1lOiB0aGlzLm5hbWVUeHQKICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM0LnZpc2libGUgPSBmYWxzZTsKICAgICAgICBfdGhpczQuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycikgewogICAgICAgIF90aGlzNC4kbWVzc2FnZS5lcnJvcihlcnIubXNnKTsKICAgICAgfSk7CiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlOwogICAgfSwKICAgIHJldHVyblRhcDogZnVuY3Rpb24gcmV0dXJuVGFwKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgdGhpcy4kbXNnYm94KHsKICAgICAgICB0aXRsZTogJ+a4qemmqOaPkOekuicsCiAgICAgICAgbWVzc2FnZTogJ+ehruWumuemu+W8gOatpOmhtemdou+8n+ezu+e7n+WPr+iDveS4jeS8muS/neWtmOaCqOaJgOWBmueahOabtOaUueOAgicsCiAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgaWNvbkNsYXNzOiAnZWwtaWNvbi13YXJuaW5nJywKICAgICAgICBjb25maXJtQnV0dG9uQ2xhc3M6ICdidG4tY3VzdG9tLWNhbmNlbCcKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXM1LiRyb3V0ZXIucHVzaChfdGhpczUuJHJvdXRlUHJvU3RyICsgJy9zZXR0aW5nL3BhZ2VzL2RldmlzZS8wJyk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgIH0sCiAgICBsZWZ0UmVtb3ZlOiBmdW5jdGlvbiBsZWZ0UmVtb3ZlKF9yZWYpIHsKICAgICAgdmFyIHRvID0gX3JlZi50bywKICAgICAgICBmcm9tID0gX3JlZi5mcm9tLAogICAgICAgIGl0ZW0gPSBfcmVmLml0ZW0sCiAgICAgICAgY2xvbmUgPSBfcmVmLmNsb25lLAogICAgICAgIG9sZEluZGV4ID0gX3JlZi5vbGRJbmRleCwKICAgICAgICBuZXdJbmRleCA9IF9yZWYubmV3SW5kZXg7CiAgICAgIGlmICh0aGlzLmlzU2VhcmNoICYmIG5ld0luZGV4ID09IDApIHsKICAgICAgICBpZiAoaXRlbS5fdW5kZXJseWluZ192bV8ubmFtZSA9PSAnel93ZWNoYXRfYXR0ZW50aW9uJykgewogICAgICAgICAgdGhpcy5pc0ZsbG93ID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvQVJSQVlSRUFTVCcsIHRoaXMubUNvbmZpZ1swXS5udW0pOwogICAgICAgICAgdGhpcy5tQ29uZmlnLnNwbGljZSgwLCAxKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHRoaXMuaXNGbGxvdyA9IHRydWUgJiYgbmV3SW5kZXggPj0gMSkgewogICAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL0FSUkFZUkVBU1QnLCB0aGlzLm1Db25maWdbMF0ubnVtKTsKICAgICAgfQogICAgfSwKICAgIG9uTW92ZTogZnVuY3Rpb24gb25Nb3ZlKGUpIHsKICAgICAgaWYgKGUucmVsYXRlZENvbnRleHQuZWxlbWVudC5uYW1lID09ICdzZWFyY2hfYm94JykgcmV0dXJuIGZhbHNlOwogICAgICBpZiAoZS5yZWxhdGVkQ29udGV4dC5lbGVtZW50Lm5hbWUgPT0gJ25hdl9iYXInKSByZXR1cm4gZmFsc2U7CiAgICAgIGlmIChlLnJlbGF0ZWRDb250ZXh0LmVsZW1lbnQubmFtZSA9PSAnaG9tZV9jb21iJykgcmV0dXJuIGZhbHNlOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0sCiAgICBvbkNvcHk6IGZ1bmN0aW9uIG9uQ29weSgpIHsKICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCflpI3liLbmiJDlip8nKTsKICAgIH0sCiAgICBvbkVycm9yOiBmdW5jdGlvbiBvbkVycm9yKCkgewogICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCflpI3liLblpLHotKUnKTsKICAgIH0sCiAgICAvL+iuvue9rum7mOiupOaVsOaNrgogICAgc2V0bW9yZW46IGZ1bmN0aW9uIHNldG1vcmVuKCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgc2V0RGVmYXVsdCh0aGlzLnBhZ2VJZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM2LiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICBfdGhpczYuJG1lc3NhZ2UuZXJyb3IoZXJyLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8v5oGi5aSN6buY6K6kCiAgICBnZXRtb3JlbjogZnVuY3Rpb24gZ2V0bW9yZW4oKSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwogICAgICByZWNvdmVyeSh0aGlzLnBhZ2VJZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM3LiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgICAgX3RoaXM3LnJlbG9hZCgpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgX3RoaXM3LiRtZXNzYWdlLmVycm9yKGVyci5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDpobXpnaLmoIfpopjngrnlh7sKICAgIHNob3dUaXRsZTogZnVuY3Rpb24gc2hvd1RpdGxlKCkgewogICAgICBjb25zb2xlLmxvZygnZGlhbmppJyk7CiAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSAtMTAwOwogICAgICB2YXIgb2JqID0ge307CiAgICAgIGZvciAodmFyIGkgaW4gbUNvbmZpZykgewogICAgICAgIGlmIChpID09ICdwYWdlVGl0bGUnKSB7CiAgICAgICAgICAvLyB0aGlzLnJDb25maWcgPSBvYmoKICAgICAgICAgIG9iaiA9IG1Db25maWdbaV07CiAgICAgICAgICBvYmouY29uZmlnTmFtZSA9IG1Db25maWdbaV0ubmFtZTsKICAgICAgICAgIG9iai5jbmFtZSA9ICfpobXpnaLorr7nva4nOwogICAgICAgIH0KICAgICAgfQogICAgICB2YXIgYWJjID0gb2JqOwogICAgICB0aGlzLnJDb25maWcgPSBbXTsKICAgICAgdGhpcy5yQ29uZmlnWzBdID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTsKICAgIH0sCiAgICAvLyDpobXpnaLlupXpg6jngrnlh7sKICAgIHNob3dGb290OiBmdW5jdGlvbiBzaG93Rm9vdCgpIHsKICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IC0xMDE7CiAgICAgIHZhciBvYmogPSB7fTsKICAgICAgZm9yICh2YXIgaSBpbiBtQ29uZmlnKSB7CiAgICAgICAgaWYgKGkgPT0gJ3BhZ2VGb290JykgewogICAgICAgICAgLy8gdGhpcy5yQ29uZmlnID0gb2JqCiAgICAgICAgICBvYmogPSBtQ29uZmlnW2ldOwogICAgICAgICAgb2JqLmNvbmZpZ05hbWUgPSBtQ29uZmlnW2ldLm5hbWU7CiAgICAgICAgICBvYmouY25hbWUgPSAn5bqV6YOo6I+c5Y2VJzsKICAgICAgICB9CiAgICAgIH0KICAgICAgdmFyIGFiYyA9IG9iajsKICAgICAgdGhpcy5yQ29uZmlnID0gW107CiAgICAgIHRoaXMuckNvbmZpZ1swXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSk7CiAgICB9LAogICAgLy8g5a+56LGh6L2s5pWw57uECiAgICBvYmpUb0FycjogZnVuY3Rpb24gb2JqVG9BcnIoZGF0YSkgewogICAgICB2YXIgb2JqID0gT2JqZWN0LmtleXMoZGF0YSk7CiAgICAgIHZhciBtID0gb2JqLm1hcChmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsKICAgICAgfSk7CiAgICAgIHJldHVybiBtOwogICAgfSwKICAgIGxvZzogZnVuY3Rpb24gbG9nKGV2dCkgewogICAgICAvLyDkuK3pl7Tmi5bmi73mjpLluo8KICAgICAgaWYgKGV2dC5tb3ZlZCkgewogICAgICAgIGlmIChldnQubW92ZWQuZWxlbWVudC5uYW1lID09ICdzZWFyY2hfYm94JykgewogICAgICAgICAgcmV0dXJuIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+l57uE5Lu256aB5q2i5ouW5ou9Jyk7CiAgICAgICAgfQogICAgICAgIC8vIGlmIChldnQubW92ZWQuZWxlbWVudC5uYW1lID09ICJuYXZfYmFyIikgewogICAgICAgIC8vICAgICByZXR1cm4gdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor6Xnu4Tku7bnpoHmraLmi5bmi70iKTsKICAgICAgICAvLyB9CiAgICAgICAgZXZ0Lm1vdmVkLm9sZE51bSA9IHRoaXMubUNvbmZpZ1tldnQubW92ZWQub2xkSW5kZXhdLm51bTsKICAgICAgICBldnQubW92ZWQubmV3TnVtID0gdGhpcy5tQ29uZmlnW2V2dC5tb3ZlZC5uZXdJbmRleF0ubnVtOwogICAgICAgIGV2dC5tb3ZlZC5zdGF0dXMgPSBldnQubW92ZWQub2xkSW5kZXggPiBldnQubW92ZWQubmV3SW5kZXg7CiAgICAgICAgdGhpcy5tQ29uZmlnLmZvckVhY2goZnVuY3Rpb24gKGVsLCBpbmRleCkgewogICAgICAgICAgZWwubnVtID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKiAxMDAwICsgaW5kZXg7CiAgICAgICAgfSk7CiAgICAgICAgZXZ0Lm1vdmVkLmxpc3QgPSB0aGlzLm1Db25maWc7CiAgICAgICAgdGhpcy5yQ29uZmlnID0gW107CiAgICAgICAgdmFyIGl0ZW0gPSBldnQubW92ZWQuZWxlbWVudDsKICAgICAgICB2YXIgdGVtcEl0ZW0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGl0ZW0pKTsKICAgICAgICB0aGlzLnJDb25maWcucHVzaCh0ZW1wSXRlbSk7CiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGV2dC5tb3ZlZC5uZXdJbmRleDsKICAgICAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9TRVRDT05GSUdOQU1FJywgaXRlbS5uYW1lKTsKICAgICAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9kZWZhdWx0QXJyYXlTb3J0JywgZXZ0Lm1vdmVkKTsKICAgICAgfQogICAgICAvLyDku47lt6blkJHlj7Pmi5bmi73mjpLluo8KICAgICAgaWYgKGV2dC5hZGRlZCkgewogICAgICAgIHZhciBkYXRhID0gZXZ0LmFkZGVkLmVsZW1lbnQ7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIHZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAqIDEwMDA7CiAgICAgICAgZGF0YS5udW0gPSB0aW1lc3RhbXA7CiAgICAgICAgdGhpcy5hY3RpdmVDb25maWdOYW1lID0gZGF0YS5uYW1lOwogICAgICAgIHZhciBfdGVtcEl0ZW0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICAgICAgICBfdGVtcEl0ZW0uaWQgPSAnaWQnICsgX3RlbXBJdGVtLm51bTsKICAgICAgICB0aGlzLm1Db25maWdbZXZ0LmFkZGVkLm5ld0luZGV4XSA9IF90ZW1wSXRlbTsKICAgICAgICB0aGlzLnJDb25maWcgPSBbXTsKICAgICAgICB0aGlzLnJDb25maWcucHVzaChfdGVtcEl0ZW0pOwogICAgICAgIHRoaXMubUNvbmZpZy5mb3JFYWNoKGZ1bmN0aW9uIChlbCwgaW5kZXgpIHsKICAgICAgICAgIGVsLm51bSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpICogMTAwMCArIGluZGV4OwogICAgICAgIH0pOwogICAgICAgIGV2dC5hZGRlZC5saXN0ID0gdGhpcy5tQ29uZmlnOwogICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBldnQuYWRkZWQubmV3SW5kZXg7CiAgICAgICAgLy8g5L+d5a2Y57uE5Lu25ZCN56ewCiAgICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvU0VUQ09ORklHTkFNRScsIGRhdGEubmFtZSk7CiAgICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvZGVmYXVsdEFycmF5U29ydCcsIGV2dC5hZGRlZCk7CiAgICAgIH0KICAgIH0sCiAgICBjbG9uZURvZzogZnVuY3Rpb24gY2xvbmVEb2coZGF0YSkgewogICAgICAvLyB0aGlzLm1Db25maWcucHVzaCh0ZW1wSXRlbSkKICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe30sIGRhdGEpOwogICAgfSwKICAgIC8v5pWw57uE5YWD57Sg5LqS5o2i5L2N572uCiAgICBzd2FwQXJyYXk6IGZ1bmN0aW9uIHN3YXBBcnJheShhcnIsIGluZGV4MSwgaW5kZXgyKSB7CiAgICAgIGFycltpbmRleDFdID0gYXJyLnNwbGljZShpbmRleDIsIDEsIGFycltpbmRleDFdKVswXTsKICAgICAgcmV0dXJuIGFycjsKICAgIH0sCiAgICAvL+eCueWHu+S4iuS4i+enu+WKqO+8mwogICAgbW92ZVBhZ2U6IGZ1bmN0aW9uIG1vdmVQYWdlKGl0ZW0sIGluZGV4LCB0eXBlKSB7CiAgICAgIGlmICh0eXBlKSB7CiAgICAgICAgaWYgKGluZGV4ID09IDApIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKGluZGV4ID09IHRoaXMubUNvbmZpZy5sZW5ndGggLSAxKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChpdGVtLm5hbWUgPT0gJ3NlYXJjaF9ib3gnIHx8IGl0ZW0ubmFtZSA9PSAnbmF2X2JhcicgfHwgaXRlbS5uYW1lID09ICdob21lX2NvbWInKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+l57uE5Lu256aB5q2i56e75YqoJyk7CiAgICAgIH0KICAgICAgaWYgKHR5cGUpIHsKICAgICAgICBpZiAodGhpcy5tQ29uZmlnW2luZGV4IC0gMV0ubmFtZSA9PSAnc2VhcmNoX2JveCcgfHwgdGhpcy5tQ29uZmlnW2luZGV4IC0gMV0ubmFtZSA9PSAnbmF2X2JhcicgfHwgdGhpcy5tQ29uZmlnW2luZGV4IC0gMV0ubmFtZSA9PSAnaG9tZV9jb21iJykgewogICAgICAgICAgcmV0dXJuIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn5pCc57Si5qGG5oiW6YCJ6aG55Y2h5oiW6L2u5pKt5pCc57Si5b+F6aG75Li66aG26YOoJyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuc3dhcEFycmF5KHRoaXMubUNvbmZpZywgaW5kZXggLSAxLCBpbmRleCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5zd2FwQXJyYXkodGhpcy5tQ29uZmlnLCBpbmRleCwgaW5kZXggKyAxKTsKICAgICAgfQogICAgICB2YXIgb2JqID0ge307CiAgICAgIHRoaXMuckNvbmZpZyA9IFtdOwogICAgICBvYmoub2xkSW5kZXggPSBpbmRleDsKICAgICAgaWYgKHR5cGUpIHsKICAgICAgICBvYmoubmV3SW5kZXggPSBpbmRleCAtIDE7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgb2JqLm5ld0luZGV4ID0gaW5kZXggKyAxOwogICAgICB9CiAgICAgIHRoaXMubUNvbmZpZy5mb3JFYWNoKGZ1bmN0aW9uIChlbCwgaW5kZXgpIHsKICAgICAgICBlbC5udW0gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAqIDEwMDAgKyBpbmRleDsKICAgICAgfSk7CiAgICAgIHZhciB0ZW1wSXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbSkpOwogICAgICB0aGlzLnJDb25maWcucHVzaCh0ZW1wSXRlbSk7CiAgICAgIG9iai5lbGVtZW50ID0gaXRlbTsKICAgICAgb2JqLmxpc3QgPSB0aGlzLm1Db25maWc7CiAgICAgIGlmICh0eXBlKSB7CiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4IC0gMTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaW5kZXggKyAxOwogICAgICB9CiAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL1NFVENPTkZJR05BTUUnLCBpdGVtLm5hbWUpOwogICAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9kZWZhdWx0QXJyYXlTb3J0Jywgb2JqKTsKICAgIH0sCiAgICAvLyDnu4Tku7bmt7vliqAKICAgIGFkZERvbUNvbjogZnVuY3Rpb24gYWRkRG9tQ29uKGl0ZW0sIHR5cGUsIGluZGV4KSB7CiAgICAgIGlmIChpdGVtLm5hbWUgPT0gJ3NlYXJjaF9ib3gnKSB7CiAgICAgICAgaWYgKHRoaXMuaXNTZWFyY2gpIHJldHVybiB0aGlzLiRtZXNzYWdlLmVycm9yKCfor6Xnu4Tku7blj6rog73mt7vliqDkuIDmrKEnKTsKICAgICAgICBpZiAodGhpcy5pc0NvbWIpIHJldHVybiB0aGlzLiRtZXNzYWdlLmVycm9yKCfova7mkq3mkJzntKLkuI3og73lkozmkJzntKLnu4Tku7bkuI7pgInpobnljaHnu4Tku7blkIzml7blrZjlnKgnKTsKICAgICAgICB0aGlzLmlzU2VhcmNoID0gdHJ1ZTsKICAgICAgfQogICAgICBpZiAoaXRlbS5uYW1lID09ICduYXZfYmFyJykgewogICAgICAgIGlmICh0aGlzLmlzVGFiKSByZXR1cm4gdGhpcy4kbWVzc2FnZS5lcnJvcign6K+l57uE5Lu25Y+q6IO95re75Yqg5LiA5qyhJyk7CiAgICAgICAgaWYgKHRoaXMuaXNDb21iKSByZXR1cm4gdGhpcy4kbWVzc2FnZS5lcnJvcign6L2u5pKt5pCc57Si5LiN6IO95ZKM5pCc57Si57uE5Lu25LiO6YCJ6aG55Y2h57uE5Lu25ZCM5pe25a2Y5ZyoJyk7CiAgICAgICAgdGhpcy5pc1RhYiA9IHRydWU7CiAgICAgIH0KICAgICAgaWYgKGl0ZW0ubmFtZSA9PSAnaG9tZV9jb21iJykgewogICAgICAgIGlmICh0aGlzLmlzQ29tYikgcmV0dXJuIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivpee7hOS7tuWPquiDvea3u+WKoOS4gOasoScpOwogICAgICAgIGlmICh0aGlzLmlzU2VhcmNoIHx8IHRoaXMuaXNUYWIpIHJldHVybiB0aGlzLiRtZXNzYWdlLmVycm9yKCfova7mkq3mkJzntKLkuI3og73lkozmkJzntKLnu4Tku7bkuI7pgInpobnljaHnu4Tku7blkIzml7blrZjlnKgnKTsKICAgICAgICB0aGlzLmlzQ29tYiA9IHRydWU7CiAgICAgIH0KICAgICAgaWYgKGl0ZW0ubmFtZSA9PSAnaG9tZV9zZXJ2aWNlJykgewogICAgICAgIGlmICh0aGlzLmlzU2VydmljZSkgcmV0dXJuIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivpee7hOS7tuWPquiDvea3u+WKoOS4gOasoScpOwogICAgICAgIHRoaXMuaXNTZXJ2aWNlID0gdHJ1ZTsKICAgICAgfQogICAgICB2YXIgb2JqID0ge307CiAgICAgIHZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAqIDEwMDA7CiAgICAgIGl0ZW0ubnVtID0gIiIuY29uY2F0KHRpbWVzdGFtcCk7CiAgICAgIGl0ZW0uaWQgPSAiaWQiLmNvbmNhdCh0aW1lc3RhbXApOwogICAgICB0aGlzLmFjdGl2ZUNvbmZpZ05hbWUgPSBpdGVtLm5hbWU7CiAgICAgIHZhciB0ZW1wSXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbSkpOwogICAgICBjb25zb2xlLmxvZyh0ZW1wSXRlbSwgJ3RlbXBJdGVtdGVtcEl0ZW10ZW1wSXRlbScpOwogICAgICBpZiAoaXRlbS5uYW1lID09ICdob21lX2NvbWInKSB7CiAgICAgICAgdGhpcy5yQ29uZmlnID0gW107CiAgICAgICAgdGhpcy5tQ29uZmlnLnVuc2hpZnQodGVtcEl0ZW0pOwogICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSAwOwogICAgICAgIHRoaXMuckNvbmZpZy5wdXNoKHRlbXBJdGVtKTsKICAgICAgfSBlbHNlIGlmIChpdGVtLm5hbWUgPT0gJ3NlYXJjaF9ib3gnKSB7CiAgICAgICAgdGhpcy5yQ29uZmlnID0gW107CiAgICAgICAgdGhpcy5tQ29uZmlnLnVuc2hpZnQodGVtcEl0ZW0pOwogICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSAwOwogICAgICAgIHRoaXMuckNvbmZpZy5wdXNoKHRlbXBJdGVtKTsKICAgICAgfSBlbHNlIGlmIChpdGVtLm5hbWUgPT0gJ25hdl9iYXInKSB7CiAgICAgICAgdGhpcy5yQ29uZmlnID0gW107CiAgICAgICAgaWYgKHRoaXMubUNvbmZpZ1swXSAmJiB0aGlzLm1Db25maWdbMF0ubmFtZSA9PT0gJ3NlYXJjaF9ib3gnKSB7CiAgICAgICAgICB0aGlzLm1Db25maWcuc3BsaWNlKDEsIDAsIHRlbXBJdGVtKTsKICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSAxOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLm1Db25maWcuc3BsaWNlKDAsIDAsIHRlbXBJdGVtKTsKICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSAwOwogICAgICAgIH0KICAgICAgICB0aGlzLnJDb25maWcucHVzaCh0ZW1wSXRlbSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHR5cGUpIHsKICAgICAgICAgIHRoaXMuckNvbmZpZyA9IFtdOwogICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT0gMCAmJiB0aGlzLm1Db25maWdbMV0gJiYgdGhpcy5tQ29uZmlnWzFdLm5hbWUgPT0gJ25hdl9iYXInKSB7CiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSAyOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMuYWN0aXZlSW5kZXggPj0gMCA/IHRoaXMuYWN0aXZlSW5kZXggKyAxIDogdGhpcy5tQ29uZmlnLmxlbmd0aDsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMubUNvbmZpZy5zcGxpY2UodGhpcy5hY3RpdmVJbmRleCwgMCwgdGVtcEl0ZW0pOwogICAgICAgICAgdGhpcy5yQ29uZmlnLnB1c2godGVtcEl0ZW0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLm1Db25maWcuc3BsaWNlKGluZGV4ICsgMSwgMCwgdGVtcEl0ZW0pOwogICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4OwogICAgICAgIH0KICAgICAgfQogICAgICB0aGlzLm1Db25maWcuZm9yRWFjaChmdW5jdGlvbiAoZWwsIGluZGV4KSB7CiAgICAgICAgZWwubnVtID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKiAxMDAwICsgaW5kZXg7CiAgICAgIH0pOwogICAgICAvLyDkv53lrZjnu4Tku7blkI3np7AKICAgICAgb2JqLmVsZW1lbnQgPSBpdGVtOwogICAgICBvYmoubGlzdCA9IHRoaXMubUNvbmZpZzsKICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvU0VUQ09ORklHTkFNRScsIGl0ZW0ubmFtZSk7CiAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL2RlZmF1bHRBcnJheVNvcnQnLCBvYmopOwogICAgfSwKICAgIC8v5Lit6Ze06aG154K55Ye75re75Yqg5qih5Z2X77ybCiAgICBiaW5kQWRkRG9tOiBmdW5jdGlvbiBiaW5kQWRkRG9tKGl0ZW0sIHR5cGUsIGluZGV4KSB7CiAgICAgIHZhciBpID0gaXRlbTsKICAgICAgdGhpcy5sQ29uZmlnLmZvckVhY2goZnVuY3Rpb24gKGopIHsKICAgICAgICBpZiAoaXRlbS5uYW1lID09IGoubmFtZSkgewogICAgICAgICAgaSA9IGo7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgdGhpcy5hZGREb21Db24oaSwgdHlwZSwgaW5kZXgpOwogICAgfSwKICAgIC8v5bem6L656YWN572u5qih5Z2X54K55Ye75re75Yqg77ybCiAgICBhZGREb206IGZ1bmN0aW9uIGFkZERvbShpdGVtLCB0eXBlKSB7CiAgICAgIHRoaXMuYWRkRG9tQ29uKGl0ZW0sIHR5cGUpOwogICAgfSwKICAgIC8vIOeCueWHu+aYvuekuuebuOW6lOeahOmFjee9rgogICAgYmluZGNvbmZpZzogZnVuY3Rpb24gYmluZGNvbmZpZyhpdGVtLCBpbmRleCkgewogICAgICB0aGlzLnJDb25maWcgPSBbXTsKICAgICAgdmFyIHRlbXBJdGVtID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpdGVtKSk7CiAgICAgIHRoaXMuckNvbmZpZy5wdXNoKHRlbXBJdGVtKTsKICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4OwogICAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9TRVRDT05GSUdOQU1FJywgaXRlbS5uYW1lKTsKICAgIH0sCiAgICBiaW5kSGlkZTogZnVuY3Rpb24gYmluZEhpZGUoaXRlbSkgewogICAgICB2YXIgb2JqID0gdGhpcy4kc3RvcmUuc3RhdGUubW9iaWxkQ29uZmlnLmRlZmF1bHRBcnJheTsKICAgICAgdmFyIG51bSA9IHRoaXMuckNvbmZpZ1swXS5udW07CiAgICAgIG9ialtudW1dLmlzSGlkZSA9ICFvYmpbbnVtXS5pc0hpZGU7CiAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL1VQREFURUFSUicsIHsKICAgICAgICBudW06IG51bSwKICAgICAgICB2YWw6IG9ialtudW1dCiAgICAgIH0pOwogICAgfSwKICAgIC8vIOe7hOS7tuWIoOmZpAogICAgYmluZERlbGV0ZTogZnVuY3Rpb24gYmluZERlbGV0ZShpdGVtLCBrZXkpIHsKICAgICAgaWYgKGl0ZW0ubmFtZSA9PSAnc2VhcmNoX2JveCcpIHsKICAgICAgICB0aGlzLmlzU2VhcmNoID0gZmFsc2U7CiAgICAgIH0KICAgICAgaWYgKGl0ZW0ubmFtZSA9PSAnbmF2X2JhcicpIHsKICAgICAgICB0aGlzLmlzVGFiID0gZmFsc2U7CiAgICAgIH0KICAgICAgaWYgKGl0ZW0ubmFtZSA9PSAnaG9tZV9jb21iJykgewogICAgICAgIHRoaXMuaXNDb21iID0gZmFsc2U7CiAgICAgIH0KICAgICAgaWYgKGl0ZW0ubmFtZSA9PSAnaG9tZV9zZXJ2aWNlJykgewogICAgICAgIHRoaXMuaXNTZXJ2aWNlID0gZmFsc2U7CiAgICAgIH0KICAgICAgdGhpcy5tQ29uZmlnLnNwbGljZShrZXksIDEpOwogICAgICB0aGlzLnJDb25maWcuc3BsaWNlKDAsIDEpOwogICAgICBpZiAodGhpcy5tQ29uZmlnLmxlbmd0aCAhPSBrZXkpIHsKICAgICAgICB0aGlzLnJDb25maWcucHVzaCh0aGlzLm1Db25maWdba2V5XSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHRoaXMubUNvbmZpZy5sZW5ndGgpIHsKICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBrZXkgLSAxOwogICAgICAgICAgdGhpcy5yQ29uZmlnLnB1c2godGhpcy5tQ29uZmlnW2tleSAtIDFdKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5zaG93VGl0bGUoKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgLy8g5Yig6Zmk56ys5Yeg5Liq6YWN572uCiAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL0RFTEVURUFSUkFZJywgaXRlbSk7CiAgICB9LAogICAgLy8g57uE5Lu26L+U5ZueCiAgICBjb25maWc6IGZ1bmN0aW9uIGNvbmZpZyhkYXRhKSB7CiAgICAgIHZhciBwcm9wc09iaiA9IHRoaXMucHJvcHNPYmo7CiAgICAgIHByb3BzT2JqLmRhdGEgPSBkYXRhOwogICAgICBwcm9wc09iai5uYW1lID0gdGhpcy5hY3RpdmVDb25maWdOYW1lOwogICAgfSwKICAgIGFkZFNvcnQ6IGZ1bmN0aW9uIGFkZFNvcnQoYXJyLCBpbmRleDEsIGluZGV4MikgewogICAgICBhcnJbaW5kZXgxXSA9IGFyci5zcGxpY2UoaW5kZXgyLCAxLCBhcnJbaW5kZXgxXSlbMF07CiAgICAgIHJldHVybiBhcnI7CiAgICB9LAogICAgLy8g5pWw57uE5o6S5bqPCiAgICBhcnJheVNvcnQ6IGZ1bmN0aW9uIGFycmF5U29ydCgpIHsKICAgICAgdmFyIHRlbXBBcnIgPSBbXTsKICAgICAgdmFyIGJhc2lzID0gewogICAgICAgIHRpdGxlOiAn5Z+656GA57uE5Lu2JywKICAgICAgICBsaXN0OiBbXSwKICAgICAgICBpc09wZW46IHRydWUKICAgICAgfTsKICAgICAgdmFyIG1hcmtldGluZyA9IHsKICAgICAgICB0aXRsZTogJ+iQpemUgOe7hOS7ticsCiAgICAgICAgbGlzdDogW10sCiAgICAgICAgaXNPcGVuOiB0cnVlCiAgICAgIH07CiAgICAgIHZhciB0b29sID0gewogICAgICAgIHRpdGxlOiAn5bel5YW357uE5Lu2JywKICAgICAgICBsaXN0OiBbXSwKICAgICAgICBpc09wZW46IHRydWUKICAgICAgfTsKICAgICAgdGhpcy5sQ29uZmlnLm1hcChmdW5jdGlvbiAoZWwsIGluZGV4KSB7CiAgICAgICAgaWYgKGVsLnR5cGUgPT0gMCkgewogICAgICAgICAgYmFzaXMubGlzdC5wdXNoKGVsKTsKICAgICAgICB9CiAgICAgICAgaWYgKGVsLnR5cGUgPT0gMSkgewogICAgICAgICAgbWFya2V0aW5nLmxpc3QucHVzaChlbCk7CiAgICAgICAgfQogICAgICAgIGlmIChlbC50eXBlID09IDIpIHsKICAgICAgICAgIHRvb2wubGlzdC5wdXNoKGVsKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICB0ZW1wQXJyLnB1c2goYmFzaXMsIG1hcmtldGluZywgdG9vbCk7CiAgICAgIHRoaXMubGVmdE1lbnUgPSB0ZW1wQXJyOwogICAgfSwKICAgIC8vIHRvSW1hZ2UodmFsKXsKICAgIC8vICAgICBodG1sMmNhbnZhcyh0aGlzLiRyZWZzLmltZ0NvbnRhaW5lcix7CiAgICAvLyAgICAgICAgIHVzZUNPUlM6dHJ1ZSwKICAgIC8vICAgICAgICAgbG9nZ2luZzp0cnVlLAogICAgLy8gICAgICAgICB0YWludFRlc3Q6IGZhbHNlLAogICAgLy8gICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IG51bGwKICAgIC8vICAgICB9KS50aGVuKChjYW52YXMpID0+IHsKICAgIC8vICAgICAgICAgbGV0IGltZ1VybCA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnKTsKICAgIC8vICAgICAgICAgdGhpcy5kaXlTYXZlRGF0ZSh2YWwsaW1nVXJsKQogICAgLy8gICAgIH0pOwogICAgLy8gfSwKICAgIGRpeVNhdmVEYXRlOiBmdW5jdGlvbiBkaXlTYXZlRGF0ZSh2YWwsIG51bSwgdHlwZSwgc2F2ZSkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKICAgICAgZGl5UHJvU2F2ZSh0eXBlID8gMCA6IHRoaXMucGFnZUlkLCB7CiAgICAgICAgdHlwZTogdGhpcy5wYWdlVHlwZSB8fCBzYXZlLAogICAgICAgIHZhbHVlOiB2YWwsCiAgICAgICAgdGl0bGU6IHRoaXMudGl0bGVUeHQsCiAgICAgICAgbmFtZTogdGhpcy5uYW1lVHh0IHx8ICfmqKHmnb8nLAogICAgICAgIGlzX3Nob3c6IHRoaXMuc2hvd1R4dCA/IDEgOiAwLAogICAgICAgIGlzX2JnX2NvbG9yOiB0aGlzLmNvbG9yVHh0ID8gMSA6IDAsCiAgICAgICAgY29sb3JfcGlja2VyOiB0aGlzLmNvbG9yUGlja2VyVHh0LAogICAgICAgIGJnX3BpYzogdGhpcy5waWNVcmxUeHQsCiAgICAgICAgYmdfdGFiX3ZhbDogdGhpcy50YWJWYWxUeHQsCiAgICAgICAgaXNfYmdfcGljOiB0aGlzLnBpY1R4dCA/IDEgOiAwCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzOC5wYWdlSWQgPSByZXMuZGF0YS5pZDsKICAgICAgICBfdGhpczguJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICB2YXIgdGhhdCA9IF90aGlzODsKICAgICAgICBfdGhpczgubmFtZU1vZGFsID0gZmFsc2U7CiAgICAgICAgaWYgKG51bSA9PSAyKSB7CiAgICAgICAgICBfdGhpczgucmVsTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKF90aGlzOC4kcm91dGVQcm9TdHIgKyAnL3NldHRpbmcvcGFnZXMvZGV2aXNlLzAnKTsKICAgICAgICAgIH0sIDIwMDApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczgubG9hZGluZyA9IGZhbHNlOwogICAgICAgIH0KICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzOC5yZWxMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgX3RoaXM4LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICBfdGhpczguJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIHNhdmVNb2RhbDogZnVuY3Rpb24gc2F2ZU1vZGFsKCkgewogICAgICBpZiAoIXRoaXMuc2F2ZU5hbWUpIHJldHVybiB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+WFiOi+k+WFpeaooeadv+WQjeensCcpOwogICAgICB0aGlzLnNhdmVDb25maWcoMSwgdGhpcy5zYXZlTmFtZSk7CiAgICB9LAogICAgY2xvc2VXaW5kb3c6IGZ1bmN0aW9uIGNsb3NlV2luZG93KCkgewogICAgICB0aGlzLiRtc2dib3goewogICAgICAgIHRpdGxlOiAn5o+Q56S6JywKICAgICAgICBtZXNzYWdlOiAn5YWz6Zet6aG16Z2i5YmN6K+35YWI5L+d5a2Y5pWw5o2u77yM5pyq5L+d5a2Y55qE6K+d5pWw5o2u5Lya5Lii5aSxJywKICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICBpY29uQ2xhc3M6ICdlbC1pY29uLXdhcm5pbmcnLAogICAgICAgIGNvbmZpcm1CdXR0b25DbGFzczogJ2J0bi1jdXN0b20tY2FuY2VsJwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vIHRoaXMuc2F2ZUNvbmZpZygpOwogICAgICAgICAgd2luZG93LmNsb3NlKCk7CiAgICAgICAgfSwgMTAwMCk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgIH0sCiAgICAvLyDkv53lrZjphY3nva4KICAgIHNhdmVDb25maWc6IGZ1bmN0aW9uIHNhdmVDb25maWcobnVtLCB0eXBlLCBzYXZlKSB7CiAgICAgIHZhciBfdGhpczkgPSB0aGlzOwogICAgICBpZiAodGhpcy5tQ29uZmlnLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+aaguacqua3u+WKoOS7u+S9lee7hOS7tu+8jOS/neWtmOWksei0pe+8gScpOwogICAgICB9CiAgICAgIGlmIChudW0gPT0gMSkgewogICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5yZWxMb2FkaW5nID0gdHJ1ZTsKICAgICAgfQogICAgICB2YXIgdmFsID0gdGhpcy4kc3RvcmUuc3RhdGUubW9iaWxkQ29uZmlnLmRlZmF1bHRBcnJheTsKICAgICAgaWYgKCF0aGlzLmZvb3RBY3RpdmUpIHsKICAgICAgICB2YXIgdGltZXN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKiAxMDAwOwogICAgICAgIHZhbFt0aW1lc3RhbXBdID0gdGhpcy4kc3RvcmUuc3RhdGUubW9iaWxkQ29uZmlnLnBhZ2VGb290ZXI7CiAgICAgICAgdGhpcy5mb290QWN0aXZlID0gdHJ1ZTsKICAgICAgfQogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXM5LmRpeVNhdmVEYXRlKHZhbCwgbnVtLCB0eXBlLCBzYXZlKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6I635Y+W6buY6K6k6YWN572uCiAgICBnZXREZWZhdWx0Q29uZmlnOiBmdW5jdGlvbiBnZXREZWZhdWx0Q29uZmlnKCkgewogICAgICB2YXIgX3RoaXMwID0gdGhpczsKICAgICAgZGl5UHJvSW5mbyh0aGlzLnBhZ2VJZCwgewogICAgICAgIHR5cGU6IDEKICAgICAgfSkudGhlbihmdW5jdGlvbiAoX3JlZjIpIHsKICAgICAgICB2YXIgZGF0YSA9IF9yZWYyLmRhdGE7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIHZhciB0ZW1wQVJSID0gW107CiAgICAgICAgX3RoaXMwLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy90aXRsZVVwZGF0YScsIGRhdGEuaW5mby50aXRsZSk7CiAgICAgICAgX3RoaXMwLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9uYW1lVXBkYXRhJywgZGF0YS5pbmZvLm5hbWUpOwogICAgICAgIF90aGlzMC4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvc2hvd1VwZGF0YScsIGRhdGEuaW5mby5pc19zaG93KTsKICAgICAgICBfdGhpczAuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL2NvbG9yVXBkYXRhJywgZGF0YS5pbmZvLmlzX2JnX2NvbG9yIHx8IDApOwogICAgICAgIF90aGlzMC4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvcGljVXBkYXRhJywgZGF0YS5pbmZvLmlzX2JnX3BpYyB8fCAwKTsKICAgICAgICBfdGhpczAuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3BpY2tlclVwZGF0YScsIGRhdGEuaW5mby5jb2xvcl9waWNrZXIgfHwgJyNmNWY1ZjUnKTsKICAgICAgICBfdGhpczAuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3JhZGlvVXBkYXRhJywgZGF0YS5pbmZvLmJnX3RhYl92YWwgfHwgMCk7CiAgICAgICAgX3RoaXMwLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9waWN1cmxVcGRhdGEnLCBkYXRhLmluZm8uYmdfcGljIHx8ICcnKTsKICAgICAgICBfdGhpczAuZGl5U3RhdHVzID0gZGF0YS5pbmZvLnN0YXR1czsKICAgICAgICB2YXIgbmV3QXJyID0gX3RoaXMwLm9ialRvQXJyKGRhdGEuaW5mby52YWx1ZSk7CiAgICAgICAgZnVuY3Rpb24gc29ydE51bWJlcihhLCBiKSB7CiAgICAgICAgICByZXR1cm4gYS50aW1lc3RhbXAgLSBiLnRpbWVzdGFtcDsKICAgICAgICB9CiAgICAgICAgbmV3QXJyLnNvcnQoc29ydE51bWJlcik7CiAgICAgICAgbmV3QXJyLm1hcChmdW5jdGlvbiAoZWwsIGluZGV4KSB7CiAgICAgICAgICBpZiAoZWwubmFtZSA9PSAnaGVhZGVyU2VyY2gnKSB7CiAgICAgICAgICAgIF90aGlzMC5pc1NlYXJjaCA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZWwubmFtZSA9PSAndGFiTmF2JykgewogICAgICAgICAgICBfdGhpczAuaXNUYWIgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGVsLm5hbWUgPT0gJ2hvbWVDb21iJykgewogICAgICAgICAgICBfdGhpczAuaXNDb21iID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChlbC5uYW1lID09ICdjdXN0b21lclNlcnZpY2UnKSB7CiAgICAgICAgICAgIF90aGlzMC5pc1NlcnZpY2UgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGVsLm5hbWUgPT0gJ2dvb2RMaXN0JykgewogICAgICAgICAgICAvLyBsZXQgc3RvcmFnZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2U7CiAgICAgICAgICAgIC8vIHN0b3JhZ2Uuc2V0SXRlbShlbC50aW1lc3RhbXAsIGVsLnNlbGVjdENvbmZpZy5hY3RpdmVWYWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBlbC5pZCA9ICdpZCcgKyBlbC50aW1lc3RhbXA7CiAgICAgICAgICBfdGhpczAubENvbmZpZy5tYXAoZnVuY3Rpb24gKGl0ZW0sIGopIHsKICAgICAgICAgICAgaWYgKGVsLm5hbWUgPT0gaXRlbS5kZWZhdWx0TmFtZSkgewogICAgICAgICAgICAgIGl0ZW0ubnVtID0gZWwudGltZXN0YW1wOwogICAgICAgICAgICAgIGl0ZW0uaWQgPSAnaWQnICsgZWwudGltZXN0YW1wOwogICAgICAgICAgICAgIHZhciB0ZW1wSXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbSkpOwogICAgICAgICAgICAgIHRlbXBBUlIucHVzaCh0ZW1wSXRlbSk7CiAgICAgICAgICAgICAgb2JqW2VsLnRpbWVzdGFtcF0gPSBlbDsKICAgICAgICAgICAgICBfdGhpczAubUNvbmZpZy5wdXNoKHRlbXBJdGVtKTsKICAgICAgICAgICAgICAvLyDkv53lrZjpu5jorqTnu4Tku7bphY3nva4KICAgICAgICAgICAgICBfdGhpczAuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL0FEREFSUkFZJywgewogICAgICAgICAgICAgICAgbnVtOiBlbC50aW1lc3RhbXAsCiAgICAgICAgICAgICAgICB2YWw6IGVsCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICAgIHZhciBvYmpzID0gbmV3QXJyW25ld0Fyci5sZW5ndGggLSAxXTsKICAgICAgICBpZiAob2Jqcy5uYW1lID09ICdwYWdlRm9vdCcpIHsKICAgICAgICAgIF90aGlzMC4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvZm9vdFBhZ2VVcGRhdGEnLCBvYmpzKTsKICAgICAgICB9CiAgICAgICAgX3RoaXMwLnNob3dUaXRsZSgpOwogICAgICB9KTsKICAgIH0sCiAgICBjYXRlZ29yeUxpc3Q6IGZ1bmN0aW9uIGNhdGVnb3J5TGlzdCgpIHsKICAgICAgdmFyIF90aGlzMSA9IHRoaXM7CiAgICAgIF9jYXRlZ29yeUxpc3QoZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMS5jYXRlZ29yeSA9IHJlcy5kYXRhOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDph43nva4KICAgIHJlYXN0OiBmdW5jdGlvbiByZWFzdCgpIHsKICAgICAgdmFyIF90aGlzMTAgPSB0aGlzOwogICAgICBpZiAodGhpcy5wYWdlSWQgPT0gMCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+aWsOWinumhtemdou+8jOaXoOazlemHjee9ricpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJGNvbmZpcm0oJ+atpOaTjeS9nOWwhua4heepuuaooeadv+WGheWuuSwg5piv5ZCm57un57utPycsICfmj5DnpLonLCB7CiAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXMxMC5tQ29uZmlnID0gW107CiAgICAgICAgICBfdGhpczEwLnJDb25maWcgPSBbXTsKICAgICAgICAgIF90aGlzMTAuYWN0aXZlSW5kZXggPSAtOTk7CiAgICAgICAgICBfdGhpczEwLmdldERlZmF1bHRDb25maWcoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfQogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3RpdGxlVXBkYXRhJywgJycpOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvbmFtZVVwZGF0YScsICcnKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3Nob3dVcGRhdGEnLCAxKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL2NvbG9yVXBkYXRhJywgMCk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9waWNVcGRhdGEnLCAwKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3BpY2tlclVwZGF0YScsICcjZjVmNWY1Jyk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9yYWRpb1VwZGF0YScsIDApOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvcGljdXJsVXBkYXRhJywgJycpOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvU0VURU1QVFknKTsKICB9LAogIGRlc3Ryb3llZDogZnVuY3Rpb24gZGVzdHJveWVkKCkgewogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvdGl0bGVVcGRhdGEnLCAnJyk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9uYW1lVXBkYXRhJywgJycpOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvc2hvd1VwZGF0YScsIDEpOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvY29sb3JVcGRhdGEnLCAwKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3BpY1VwZGF0YScsIDApOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvcGlja2VyVXBkYXRhJywgJyNmNWY1ZjUnKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3JhZGlvVXBkYXRhJywgMCk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9waWN1cmxVcGRhdGEnLCAnJyk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9TRVRFTVBUWScpOwogIH0KfTs="},{"version":3,"names":["categoryList","diyProInfo","diyProSave","setDefault","recovery","diyUpdateName","getRoutineCode","vuedraggable","mPage","mConfig","footPage","mapState","html2canvas","theme","Setting","QRCode","inject","name","components","_objectSpread","draggable","filters","filterTxt","val","substr","length","computed","titleTxt","state","mobildConfig","pageTitle","showTxt","pageShow","colorTxt","pageColor","picTxt","pagePic","colorPickerTxt","pageColorPicker","tabValTxt","pageTabVal","picUrlTxt","pagePicUrl","pageFooterType","pageFooter","navConfig","tabVal","pageFooterBottom","mbConfig","defaultArrays","defaultArray","nameTxt","get","$store","pageName","set","value","commit","mixins","data","BaseURL","apiBaseURL","replace","qrcodeImg","modal","clientHeight","rollHeight","leftMenu","lConfig","rConfig","activeConfigName","propsObj","activeIndex","number","pageId","pageType","category","tabList","title","key","footActive","loading","relLoading","isSearch","isTab","isFllow","isComb","isService","visible","diyStatus","nameModal","saveName","created","_this","$route","query","id","type","objToArr","imgList","require","link","$nextTick","arraySort","getDefaultConfig","showTitle","concat","document","documentElement","H","that","window","onresize","methods","exportView","_this2","console","log","importView","preview","creatQrCode","routineCode","_this3","then","res","image","catch","err","$message","error","status","$refs","qrCodeUrl","innerHTML","url","qrcode","text","width","height","colorDark","colorLight","correctLevel","CorrectLevel","changName","cancel","determine","_this4","trim","success","msg","returnTap","_this5","$msgbox","message","showCancelButton","cancelButtonText","confirmButtonText","iconClass","confirmButtonClass","$router","push","$routeProStr","leftRemove","_ref","to","from","item","clone","oldIndex","newIndex","_underlying_vm_","num","splice","onMove","e","relatedContext","element","onCopy","onError","setmoren","_this6","getmoren","_this7","reload","obj","i","configName","cname","abc","JSON","parse","stringify","showFoot","Object","keys","m","map","evt","moved","warning","oldNum","newNum","forEach","el","index","Date","getTime","list","tempItem","added","timestamp","cloneDog","swapArray","arr","index1","index2","movePage","addDomCon","unshift","bindAddDom","j","addDom","bindconfig","bindHide","isHide","bindDelete","config","addSort","tempArr","basis","isOpen","marketing","tool","diySaveDate","save","_this8","is_show","is_bg_color","color_picker","bg_pic","bg_tab_val","is_bg_pic","setTimeout","location","saveModal","saveConfig","closeWindow","close","_this9","_this0","_ref2","tempARR","info","newArr","sortNumber","a","b","sort","defaultName","objs","_this1","reast","_this10","$confirm","beforeDestroy","destroyed"],"sources":["src/pages/setting/devise/diyIndex.vue"],"sourcesContent":["\r\n、<template>\r\n <!-- 添加主题-首页装修 -->\r\n <div class=\"diy-page\">\r\n <div class=\"i-layout-page-header header-title\">\r\n <div class=\"fl_header\">\r\n <!-- <span class=\"ivu-page-header-title mr20\" style=\"padding: 0\" v-text=\"$route.meta.title\"></span> -->\r\n <div class=\"f-title acea-row row-middle\">\r\n <div class=\"acea-row row-middle cup\" @click=\"returnTap\">\r\n <div class=\"iconfont iconfanhui\"></div>\r\n <div class=\"return\">返回</div>\r\n </div>\r\n <div class=\"mr20\">\r\n <span class=\"name mr5\">当前页面:{{ nameTxt || '模板' }}</span>\r\n <el-popover v-model=\"visible\" width=\"347\">\r\n <span slot=\"reference\" class=\"iconfont iconzidingyicaidan cup\"></span>\r\n <template>\r\n <div class=\"flex\">\r\n <el-input\r\n v-model=\"nameTxt\"\r\n placeholder=\"必填不超过15个字\"\r\n maxlength=\"15\"\r\n style=\"width: 200px\"\r\n ></el-input>\r\n <el-button type=\"text\" @click=\"cancel\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"determine\">确定</el-button>\r\n </div>\r\n </template>\r\n </el-popover>\r\n </div>\r\n </div>\r\n <div class=\"rbtn\">\r\n <!-- <el-button class=\"ml20 header-btn look\" v-db-click @click=\"exportView\" :loading=\"loading\">导出</el-button>\r\n <el-button class=\"ml20 header-btn look\" v-db-click @click=\"importView\" :loading=\"loading\">导入</el-button> -->\r\n <el-button class=\"ml20 header-btn look\" v-db-click @click=\"preview\" :loading=\"loading\">预览</el-button>\r\n <el-button class=\"ml20 header-btn close\" v-db-click @click=\"saveConfig(1)\" :loading=\"loading\">保存</el-button>\r\n <el-button class=\"ml20 header-btn save\" v-db-click @click=\"saveConfig(2)\" :loading=\"loading\"\r\n >保存并关闭</el-button\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <el-card :bordered=\"false\" shadow=\"never\">\r\n <div class=\"diy-wrapper\" :style=\"'height:' + clientHeight + 'px;'\">\r\n <!-- 左侧 -->\r\n <div class=\"left\">\r\n <div class=\"wrapper\" :style=\"'height:' + clientHeight + 'px;'\">\r\n <div class=\"list\" v-for=\"(item, index) in leftMenu\" :key=\"index\">\r\n <div class=\"tips\" @click=\"item.isOpen = !item.isOpen\">\r\n {{ item.title }}\r\n <div class=\"iconfont iconyou\" v-if=\"!item.isOpen\"></div>\r\n <div class=\"iconfont iconxia\" v-else></div>\r\n </div>\r\n <!-- 拖拽组件 -->\r\n <draggable\r\n class=\"dragArea list-group\"\r\n :list=\"item.list\"\r\n :group=\"{ name: 'people', pull: 'clone', put: false }\"\r\n :clone=\"cloneDog\"\r\n dragClass=\"dragClass\"\r\n filter=\".search , .navbar , .homeComb , .service\"\r\n >\r\n <div\r\n class=\"list-group-item\"\r\n :class=\"{\r\n search: element.cname == '搜索框',\r\n navbar: element.cname == '选项卡',\r\n homeComb: element.cname == '轮播搜索',\r\n service: element.cname == '悬浮按钮',\r\n }\"\r\n v-for=\"(element, index) in item.list\"\r\n :key=\"element.id\"\r\n @click=\"addDom(element, 1)\"\r\n v-show=\"item.isOpen\"\r\n >\r\n <div>\r\n <div class=\"position\" style=\"display: none\">释放鼠标将组建添加到此处</div>\r\n <svg class=\"conter iconfont-diy icon svg-icon\" aria-hidden=\"true\">\r\n <use :xlink:href=\"element.icon\"></use>\r\n </svg>\r\n <p class=\"conter\">{{ element.cname }}</p>\r\n </div>\r\n </div>\r\n </draggable>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- 中间自定义配置移动端页面 -->\r\n <div class=\"wrapper-con\">\r\n <div class=\"content\">\r\n <div class=\"contxt\">\r\n <div class=\"overflowy\">\r\n <div class=\"picture\"><img src=\"@/assets/images/electric.png\" /></div>\r\n <div class=\"page-title\" :class=\"{ on: activeIndex == -100 }\" @click=\"showTitle\">\r\n {{ titleTxt }}\r\n <div class=\"delete-box\"></div>\r\n <div class=\"handle\"></div>\r\n </div>\r\n </div>\r\n <div class=\"scrollCon\" :style=\"'height:' + rollHeight + 'px;'\">\r\n <div style=\"width: 460px; margin: 0 auto\">\r\n <div\r\n class=\"scroll-box\"\r\n :class=\"\r\n picTxt && tabValTxt == 2\r\n ? 'fullsize noRepeat'\r\n : picTxt && tabValTxt == 1\r\n ? 'repeat ysize'\r\n : 'noRepeat ysize'\r\n \"\r\n :style=\"\r\n 'background-color:' +\r\n (colorTxt ? colorPickerTxt : '') +\r\n ';background-image: url(' +\r\n (picTxt ? picUrlTxt : '') +\r\n ');min-height:' +\r\n rollHeight +\r\n 'px;'\r\n \"\r\n ref=\"imgContainer\"\r\n >\r\n <draggable\r\n class=\"dragArea list-group\"\r\n :list=\"mConfig\"\r\n group=\"people\"\r\n @change=\"log\"\r\n filter=\".top\"\r\n :move=\"onMove\"\r\n animation=\"300\"\r\n >\r\n <div\r\n class=\"mConfig-item\"\r\n :class=\"{\r\n on: activeIndex == key,\r\n top: item.name == 'search_box' || item.name == 'nav_bar',\r\n hide: defaultArrays[item.num].isHide,\r\n }\"\r\n v-for=\"(item, key) in mConfig\"\r\n :key=\"key\"\r\n @click.stop=\"bindconfig(item, key)\"\r\n :style=\"colorTxt ? 'background-color:' + colorPickerTxt + ';' : 'background-color:#fff;'\"\r\n >\r\n <component\r\n :is=\"item.name\"\r\n ref=\"getComponentData\"\r\n :configData=\"propsObj\"\r\n :index=\"key\"\r\n :num=\"item.num\"\r\n :colorStyle=\"colorStyle\"\r\n ></component>\r\n <div class=\"delete-box\">\r\n <div class=\"handleType\">\r\n <div\r\n class=\"iconfont\"\r\n :class=\"defaultArrays[item.num].isHide ? 'iconyincang' : 'iconxianshi'\"\r\n @click.stop=\"bindHide(item)\"\r\n ></div>\r\n <div class=\"iconfont iconshanchu3\" @click.stop=\"bindDelete(item, key)\"></div>\r\n <div class=\"iconfont icona-fuzhi1\" @click.stop=\"bindAddDom(item, 0, key)\"></div>\r\n <div\r\n class=\"iconfont iconshang\"\r\n :class=\"key === 0 ? 'on' : ''\"\r\n @click.stop=\"movePage(item, key, 1)\"\r\n ></div>\r\n <div\r\n class=\"iconfont iconxia\"\r\n :class=\"key === mConfig.length - 1 ? 'on' : ''\"\r\n @click.stop=\"movePage(item, key, 0)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"handle\"></div>\r\n <div class=\"delete-name\" :class=\"{ on: activeIndex == key }\">{{ item.cname }}</div>\r\n </div>\r\n </draggable>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"overflowy\">\r\n <div\r\n class=\"page-foot\"\r\n @click=\"showFoot\"\r\n :class=\"{ on: activeIndex == -101 }\"\r\n :style=\"pageFooterType == 1 ? 'bottom:' + (50 + pageFooterBottom) + 'px' : ''\"\r\n >\r\n <footPage></footPage>\r\n <div class=\"delete-box\"></div>\r\n <div class=\"handle\"></div>\r\n </div>\r\n </div>\r\n <div class=\"defaultData\" v-if=\"pageId !== 0\">\r\n <!-- <div class=\"data\" @click=\"setmoren\">设置默认</div>\r\n <div class=\"data\" @click=\"getmoren\">恢复默认</div> -->\r\n <el-button class=\"data\" @click=\"showTitle\">页面设置</el-button>\r\n <el-button class=\"data\" @click=\"nameModal = true\">另存模板</el-button>\r\n <el-button class=\"data\" @click=\"reast\">重置</el-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- 右侧页面设置 -->\r\n <div class=\"right-box\">\r\n <div class=\"mConfig-item\" style=\"background-color: #fff\" v-for=\"(item, key) in rConfig\" :key=\"key\">\r\n <!-- <div class=\"title-bar\">{{ item.cname }}</div> -->\r\n <component\r\n :is=\"item.configName\"\r\n @config=\"config\"\r\n :activeIndex=\"activeIndex\"\r\n :num=\"item.num\"\r\n :index=\"key\"\r\n ></component>\r\n </div>\r\n </div>\r\n </div>\r\n </el-card>\r\n <el-dialog :visible.sync=\"modal\" width=\"540px\" title=\"预览\">\r\n <div>\r\n <div v-viewer class=\"acea-row row-around code\">\r\n <div class=\"acea-row row-column-around row-between-wrapper\">\r\n <div class=\"QRpic\" ref=\"qrCodeUrl\"></div>\r\n <span class=\"mt10\">公众号二维码</span>\r\n </div>\r\n <div class=\"acea-row row-column-around row-between-wrapper\">\r\n <div class=\"QRpic\">\r\n <img v-lazy=\"qrcodeImg\" />\r\n </div>\r\n <span class=\"mt10\">小程序二维码</span>\r\n </div>\r\n </div>\r\n </div>\r\n </el-dialog>\r\n <el-dialog :visible.sync=\"nameModal\" width=\"470px\" title=\"设置模版名称\" :show-close=\"true\">\r\n <el-input v-model=\"saveName\" placeholder=\"请输入模版名称\"></el-input>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button v-db-click @click=\"nameModal = false\">取 消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"saveModal\">确 定</el-button>\r\n </span>\r\n </el-dialog>\r\n <!--<div class=\"foot-box\">-->\r\n <!--<Button @click=\"reast\">重置</Button>-->\r\n <!--<Button type=\"primary\" @click=\"saveConfig\" :loading=\"loading\"-->\r\n <!--&gt;保存-->\r\n <!--</Button-->\r\n <!--&gt;-->\r\n <!--</div>-->\r\n </div>\r\n</template>\r\n\r\n<script crossorigin=\"anonymous\">\r\nimport { categoryList, diyProInfo, diyProSave, setDefault, recovery, diyUpdateName, getRoutineCode } from '@/api/diy';\r\nimport vuedraggable from 'vuedraggable';\r\nimport mPage from '@/components/mobilePage/index.js';\r\nimport mConfig from '@/components/mobileConfig/index.js';\r\nimport footPage from '@/components/pagesFoot';\r\nimport { mapState } from 'vuex';\r\nimport html2canvas from 'html2canvas';\r\nimport theme from '@/mixins/theme';\r\nimport Setting from '@/setting';\r\nimport QRCode from 'qrcodejs2';\r\n\r\nexport default {\r\n inject: ['reload'],\r\n name: 'index.vue',\r\n components: {\r\n footPage,\r\n html2canvas,\r\n draggable: vuedraggable,\r\n ...mPage,\r\n ...mConfig,\r\n },\r\n filters: {\r\n filterTxt(val) {\r\n if (val) {\r\n return (val = val.substr(0, val.length - 1));\r\n }\r\n },\r\n },\r\n computed: {\r\n ...mapState({\r\n titleTxt: (state) => state.mobildConfig.pageTitle || '首页',\r\n showTxt: (state) => state.mobildConfig.pageShow,\r\n colorTxt: (state) => state.mobildConfig.pageColor,\r\n picTxt: (state) => state.mobildConfig.pagePic,\r\n colorPickerTxt: (state) => state.mobildConfig.pageColorPicker,\r\n tabValTxt: (state) => state.mobildConfig.pageTabVal,\r\n picUrlTxt: (state) => state.mobildConfig.pagePicUrl,\r\n pageFooterType: (state) => state.mobildConfig.pageFooter.navConfig.tabVal || 0,\r\n pageFooterBottom: (state) => state.mobildConfig.pageFooter.mbConfig.val,\r\n defaultArrays: (state) => state.mobildConfig.defaultArray,\r\n }),\r\n nameTxt: {\r\n get() {\r\n return this.$store.state.mobildConfig.pageName;\r\n },\r\n set(value) {\r\n this.$store.commit('mobildConfig/UPNAME', value);\r\n },\r\n },\r\n },\r\n mixins: [theme],\r\n data() {\r\n return {\r\n BaseURL: Setting.apiBaseURL.replace(/adminapi/, ''),\r\n qrcodeImg: '',\r\n modal: false,\r\n clientHeight: '', //页面动态高度\r\n rollHeight: '',\r\n leftMenu: [], // 左侧菜单\r\n lConfig: [], // 左侧组件\r\n mConfig: [], // 中间组件渲染\r\n rConfig: [], // 右侧组件配置\r\n activeConfigName: '',\r\n propsObj: {}, // 组件传递的数据,\r\n activeIndex: -100, // 选中的下标\r\n number: 0,\r\n pageId: '',\r\n pageName: '',\r\n pageType: '',\r\n category: [],\r\n tabList: [\r\n {\r\n title: '组件库',\r\n key: 0,\r\n },\r\n {\r\n title: '页面链接',\r\n key: 1,\r\n },\r\n ],\r\n footActive: false,\r\n loading: false,\r\n relLoading: false,\r\n isSearch: false,\r\n isTab: false,\r\n isFllow: false,\r\n isComb: false,\r\n isService: false,\r\n visible: true,\r\n diyStatus: 0,\r\n nameModal: false,\r\n saveName: '',\r\n };\r\n },\r\n created() {\r\n this.categoryList();\r\n this.pageId = this.$route.query.id;\r\n this.pageName = this.$route.query.name;\r\n this.pageType = this.$route.query.type;\r\n this.lConfig = this.objToArr(mPage);\r\n let imgList = {\r\n imgList: [require('@/assets/images/foot-005.png'), require('@/assets/images/foot-006.png')],\r\n name: '购物车',\r\n link: '/pages/order_addcart/order_addcart',\r\n };\r\n this.$nextTick(() => {\r\n this.$store.commit('mobildConfig/FOOTER', { title: '是否自定义', name: imgList });\r\n this.arraySort();\r\n if (this.pageId != 0) {\r\n this.getDefaultConfig();\r\n } else {\r\n this.showTitle();\r\n }\r\n this.clientHeight = `${document.documentElement.clientHeight}` - 65.81; //获取浏览器可视区域高度\r\n let H = `${document.documentElement.clientHeight}` - 180;\r\n this.rollHeight = H > 650 ? 650 : H;\r\n let that = this;\r\n window.onresize = function () {\r\n that.clientHeight = `${document.documentElement.clientHeight}` - 65.81;\r\n let H = `${document.documentElement.clientHeight}` - 180;\r\n that.rollHeight = H > 650 ? 650 : H;\r\n };\r\n });\r\n },\r\n methods: {\r\n exportView() {\r\n let that = this;\r\n this.loading = true;\r\n this.$nextTick(() => {\r\n console.log(this.mConfig);\r\n });\r\n },\r\n importView() {},\r\n preview() {\r\n this.modal = true;\r\n this.creatQrCode(this.pageId, this.diyStatus);\r\n this.routineCode(this.pageId);\r\n },\r\n //小程序二维码\r\n routineCode(id) {\r\n getRoutineCode(id)\r\n .then((res) => {\r\n this.qrcodeImg = res.data.image;\r\n })\r\n .catch((err) => {\r\n this.$message.error(err);\r\n });\r\n },\r\n //生成二维码\r\n creatQrCode(id, status) {\r\n this.$refs.qrCodeUrl.innerHTML = '';\r\n let url = '';\r\n if (status) {\r\n url = `${this.BaseURL}pages/index/index`;\r\n } else {\r\n url = `${this.BaseURL}pages/annex/special/index?id=${id}`;\r\n }\r\n var qrcode = new QRCode(this.$refs.qrCodeUrl, {\r\n text: url, // 需要转换为二维码的内容\r\n width: 160,\r\n height: 160,\r\n colorDark: '#000000',\r\n colorLight: '#ffffff',\r\n correctLevel: QRCode.CorrectLevel.H,\r\n });\r\n },\r\n changName(val) {\r\n this.$store.commit('mobildConfig/UPNAME', val);\r\n },\r\n cancel() {\r\n this.visible = false;\r\n },\r\n determine() {\r\n if (this.nameTxt.trim() == '') {\r\n return this.$message.error('请输入模板名称');\r\n }\r\n if (this.pageId == 0) {\r\n this.$message.success('修改成功');\r\n return false;\r\n }\r\n diyUpdateName(this.pageId, { name: this.nameTxt })\r\n .then((res) => {\r\n this.visible = false;\r\n this.$message.success(res.msg);\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n this.visible = false;\r\n },\r\n returnTap() {\r\n this.$msgbox({\r\n title: '温馨提示',\r\n message: '确定离开此页面?系统可能不会保存您所做的更改。',\r\n showCancelButton: true,\r\n cancelButtonText: '取消',\r\n confirmButtonText: '确定',\r\n iconClass: 'el-icon-warning',\r\n confirmButtonClass: 'btn-custom-cancel',\r\n })\r\n .then(() => {\r\n this.$router.push(this.$routeProStr + '/setting/pages/devise/0');\r\n })\r\n .catch(() => {});\r\n },\r\n leftRemove({ to, from, item, clone, oldIndex, newIndex }) {\r\n if (this.isSearch && newIndex == 0) {\r\n if (item._underlying_vm_.name == 'z_wechat_attention') {\r\n this.isFllow = true;\r\n } else {\r\n this.$store.commit('mobildConfig/ARRAYREAST', this.mConfig[0].num);\r\n this.mConfig.splice(0, 1);\r\n }\r\n }\r\n if ((this.isFllow = true && newIndex >= 1)) {\r\n this.$store.commit('mobildConfig/ARRAYREAST', this.mConfig[0].num);\r\n }\r\n },\r\n onMove(e) {\r\n if (e.relatedContext.element.name == 'search_box') return false;\r\n if (e.relatedContext.element.name == 'nav_bar') return false;\r\n if (e.relatedContext.element.name == 'home_comb') return false;\r\n return true;\r\n },\r\n onCopy() {\r\n this.$message.success('复制成功');\r\n },\r\n onError() {\r\n this.$message.error('复制失败');\r\n },\r\n //设置默认数据\r\n setmoren() {\r\n setDefault(this.pageId)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n //恢复默认\r\n getmoren() {\r\n recovery(this.pageId)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.reload();\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n // 页面标题点击\r\n showTitle() {\r\n console.log('dianji')\r\n this.activeIndex = -100;\r\n let obj = {};\r\n for (var i in mConfig) {\r\n if (i == 'pageTitle') {\r\n // this.rConfig = obj\r\n obj = mConfig[i];\r\n obj.configName = mConfig[i].name;\r\n obj.cname = '页面设置';\r\n }\r\n }\r\n let abc = obj;\r\n this.rConfig = [];\r\n this.rConfig[0] = JSON.parse(JSON.stringify(obj));\r\n },\r\n // 页面底部点击\r\n showFoot() {\r\n this.activeIndex = -101;\r\n let obj = {};\r\n for (var i in mConfig) {\r\n if (i == 'pageFoot') {\r\n // this.rConfig = obj\r\n obj = mConfig[i];\r\n obj.configName = mConfig[i].name;\r\n obj.cname = '底部菜单';\r\n }\r\n }\r\n let abc = obj;\r\n this.rConfig = [];\r\n this.rConfig[0] = JSON.parse(JSON.stringify(obj));\r\n },\r\n // 对象转数组\r\n objToArr(data) {\r\n let obj = Object.keys(data);\r\n let m = obj.map((key) => data[key]);\r\n return m;\r\n },\r\n log(evt) {\r\n // 中间拖拽排序\r\n if (evt.moved) {\r\n if (evt.moved.element.name == 'search_box') {\r\n return this.$message.warning('该组件禁止拖拽');\r\n }\r\n // if (evt.moved.element.name == \"nav_bar\") {\r\n // return this.$message.warning(\"该组件禁止拖拽\");\r\n // }\r\n evt.moved.oldNum = this.mConfig[evt.moved.oldIndex].num;\r\n evt.moved.newNum = this.mConfig[evt.moved.newIndex].num;\r\n evt.moved.status = evt.moved.oldIndex > evt.moved.newIndex;\r\n this.mConfig.forEach((el, index) => {\r\n el.num = new Date().getTime() * 1000 + index;\r\n });\r\n evt.moved.list = this.mConfig;\r\n this.rConfig = [];\r\n let item = evt.moved.element;\r\n let tempItem = JSON.parse(JSON.stringify(item));\r\n this.rConfig.push(tempItem);\r\n this.activeIndex = evt.moved.newIndex;\r\n this.$store.commit('mobildConfig/SETCONFIGNAME', item.name);\r\n this.$store.commit('mobildConfig/defaultArraySort', evt.moved);\r\n }\r\n // 从左向右拖拽排序\r\n if (evt.added) {\r\n let data = evt.added.element;\r\n let obj = {};\r\n let timestamp = new Date().getTime() * 1000;\r\n data.num = timestamp;\r\n this.activeConfigName = data.name;\r\n let tempItem = JSON.parse(JSON.stringify(data));\r\n tempItem.id = 'id' + tempItem.num;\r\n this.mConfig[evt.added.newIndex] = tempItem;\r\n this.rConfig = [];\r\n this.rConfig.push(tempItem);\r\n this.mConfig.forEach((el, index) => {\r\n el.num = new Date().getTime() * 1000 + index;\r\n });\r\n evt.added.list = this.mConfig;\r\n this.activeIndex = evt.added.newIndex;\r\n // 保存组件名称\r\n this.$store.commit('mobildConfig/SETCONFIGNAME', data.name);\r\n this.$store.commit('mobildConfig/defaultArraySort', evt.added);\r\n }\r\n },\r\n cloneDog(data) {\r\n // this.mConfig.push(tempItem)\r\n return {\r\n ...data,\r\n };\r\n },\r\n //数组元素互换位置\r\n swapArray(arr, index1, index2) {\r\n arr[index1] = arr.splice(index2, 1, arr[index1])[0];\r\n return arr;\r\n },\r\n //点击上下移动;\r\n movePage(item, index, type) {\r\n if (type) {\r\n if (index == 0) {\r\n return;\r\n }\r\n } else {\r\n if (index == this.mConfig.length - 1) {\r\n return;\r\n }\r\n }\r\n if (item.name == 'search_box' || item.name == 'nav_bar' || item.name == 'home_comb') {\r\n return this.$message.warning('该组件禁止移动');\r\n }\r\n if (type) {\r\n if (\r\n this.mConfig[index - 1].name == 'search_box' ||\r\n this.mConfig[index - 1].name == 'nav_bar' ||\r\n this.mConfig[index - 1].name == 'home_comb'\r\n ) {\r\n return this.$message.warning('搜索框或选项卡或轮播搜索必须为顶部');\r\n }\r\n this.swapArray(this.mConfig, index - 1, index);\r\n } else {\r\n this.swapArray(this.mConfig, index, index + 1);\r\n }\r\n let obj = {};\r\n this.rConfig = [];\r\n obj.oldIndex = index;\r\n if (type) {\r\n obj.newIndex = index - 1;\r\n } else {\r\n obj.newIndex = index + 1;\r\n }\r\n this.mConfig.forEach((el, index) => {\r\n el.num = new Date().getTime() * 1000 + index;\r\n });\r\n let tempItem = JSON.parse(JSON.stringify(item));\r\n this.rConfig.push(tempItem);\r\n obj.element = item;\r\n obj.list = this.mConfig;\r\n if (type) {\r\n this.activeIndex = index - 1;\r\n } else {\r\n this.activeIndex = index + 1;\r\n }\r\n\r\n this.$store.commit('mobildConfig/SETCONFIGNAME', item.name);\r\n this.$store.commit('mobildConfig/defaultArraySort', obj);\r\n },\r\n // 组件添加\r\n addDomCon(item, type, index) {\r\n if (item.name == 'search_box') {\r\n if (this.isSearch) return this.$message.error('该组件只能添加一次');\r\n if (this.isComb) return this.$message.error('轮播搜索不能和搜索组件与选项卡组件同时存在');\r\n this.isSearch = true;\r\n }\r\n if (item.name == 'nav_bar') {\r\n if (this.isTab) return this.$message.error('该组件只能添加一次');\r\n if (this.isComb) return this.$message.error('轮播搜索不能和搜索组件与选项卡组件同时存在');\r\n this.isTab = true;\r\n }\r\n if (item.name == 'home_comb') {\r\n if (this.isComb) return this.$message.error('该组件只能添加一次');\r\n if (this.isSearch || this.isTab) return this.$message.error('轮播搜索不能和搜索组件与选项卡组件同时存在');\r\n this.isComb = true;\r\n }\r\n if (item.name == 'home_service') {\r\n if (this.isService) return this.$message.error('该组件只能添加一次');\r\n this.isService = true;\r\n }\r\n let obj = {};\r\n let timestamp = new Date().getTime() * 1000;\r\n item.num = `${timestamp}`;\r\n item.id = `id${timestamp}`;\r\n this.activeConfigName = item.name;\r\n let tempItem = JSON.parse(JSON.stringify(item));\r\n console.log(tempItem,'tempItemtempItemtempItem')\r\n if (item.name == 'home_comb') {\r\n this.rConfig = [];\r\n this.mConfig.unshift(tempItem);\r\n this.activeIndex = 0;\r\n this.rConfig.push(tempItem);\r\n } else if (item.name == 'search_box') {\r\n this.rConfig = [];\r\n this.mConfig.unshift(tempItem);\r\n this.activeIndex = 0;\r\n this.rConfig.push(tempItem);\r\n } else if (item.name == 'nav_bar') {\r\n this.rConfig = [];\r\n if (this.mConfig[0] && this.mConfig[0].name === 'search_box') {\r\n this.mConfig.splice(1, 0, tempItem);\r\n this.activeIndex = 1;\r\n } else {\r\n this.mConfig.splice(0, 0, tempItem);\r\n this.activeIndex = 0;\r\n }\r\n this.rConfig.push(tempItem);\r\n } else {\r\n if (type) {\r\n this.rConfig = [];\r\n if (this.activeIndex == 0 && this.mConfig[1] && this.mConfig[1].name == 'nav_bar') {\r\n this.activeIndex = 2;\r\n } else {\r\n this.activeIndex = this.activeIndex >= 0 ? this.activeIndex + 1 : this.mConfig.length;\r\n }\r\n this.mConfig.splice(this.activeIndex, 0, tempItem);\r\n this.rConfig.push(tempItem);\r\n } else {\r\n this.mConfig.splice(index + 1, 0, tempItem);\r\n this.activeIndex = index;\r\n }\r\n }\r\n this.mConfig.forEach((el, index) => {\r\n el.num = new Date().getTime() * 1000 + index;\r\n });\r\n // 保存组件名称\r\n obj.element = item;\r\n obj.list = this.mConfig;\r\n this.$store.commit('mobildConfig/SETCONFIGNAME', item.name);\r\n this.$store.commit('mobildConfig/defaultArraySort', obj);\r\n },\r\n //中间页点击添加模块;\r\n bindAddDom(item, type, index) {\r\n let i = item;\r\n this.lConfig.forEach((j) => {\r\n if (item.name == j.name) {\r\n i = j;\r\n }\r\n });\r\n this.addDomCon(i, type, index);\r\n },\r\n //左边配置模块点击添加;\r\n addDom(item, type) {\r\n this.addDomCon(item, type);\r\n },\r\n // 点击显示相应的配置\r\n bindconfig(item, index) {\r\n this.rConfig = [];\r\n let tempItem = JSON.parse(JSON.stringify(item));\r\n this.rConfig.push(tempItem);\r\n this.activeIndex = index;\r\n this.$store.commit('mobildConfig/SETCONFIGNAME', item.name);\r\n },\r\n bindHide(item) {\r\n let obj = this.$store.state.mobildConfig.defaultArray;\r\n let num = this.rConfig[0].num;\r\n obj[num].isHide = !obj[num].isHide;\r\n this.$store.commit('mobildConfig/UPDATEARR', { num: num, val: obj[num] });\r\n },\r\n // 组件删除\r\n bindDelete(item, key) {\r\n if (item.name == 'search_box') {\r\n this.isSearch = false;\r\n }\r\n if (item.name == 'nav_bar') {\r\n this.isTab = false;\r\n }\r\n if (item.name == 'home_comb') {\r\n this.isComb = false;\r\n }\r\n if (item.name == 'home_service') {\r\n this.isService = false;\r\n }\r\n this.mConfig.splice(key, 1);\r\n this.rConfig.splice(0, 1);\r\n if (this.mConfig.length != key) {\r\n this.rConfig.push(this.mConfig[key]);\r\n } else {\r\n if (this.mConfig.length) {\r\n this.activeIndex = key - 1;\r\n this.rConfig.push(this.mConfig[key - 1]);\r\n } else {\r\n this.showTitle();\r\n }\r\n }\r\n // 删除第几个配置\r\n this.$store.commit('mobildConfig/DELETEARRAY', item);\r\n },\r\n // 组件返回\r\n config(data) {\r\n let propsObj = this.propsObj;\r\n propsObj.data = data;\r\n propsObj.name = this.activeConfigName;\r\n },\r\n addSort(arr, index1, index2) {\r\n arr[index1] = arr.splice(index2, 1, arr[index1])[0];\r\n return arr;\r\n },\r\n // 数组排序\r\n arraySort() {\r\n let tempArr = [];\r\n let basis = {\r\n title: '基础组件',\r\n list: [],\r\n isOpen: true,\r\n };\r\n let marketing = {\r\n title: '营销组件',\r\n list: [],\r\n isOpen: true,\r\n };\r\n let tool = {\r\n title: '工具组件',\r\n list: [],\r\n isOpen: true,\r\n };\r\n this.lConfig.map((el, index) => {\r\n if (el.type == 0) {\r\n basis.list.push(el);\r\n }\r\n if (el.type == 1) {\r\n marketing.list.push(el);\r\n }\r\n if (el.type == 2) {\r\n tool.list.push(el);\r\n }\r\n });\r\n tempArr.push(basis, marketing, tool);\r\n this.leftMenu = tempArr;\r\n },\r\n // toImage(val){\r\n // html2canvas(this.$refs.imgContainer,{\r\n // useCORS:true,\r\n // logging:true,\r\n // taintTest: false,\r\n // backgroundColor: null\r\n // }).then((canvas) => {\r\n // let imgUrl = canvas.toDataURL('image/jpeg');\r\n // this.diySaveDate(val,imgUrl)\r\n // });\r\n // },\r\n diySaveDate(val, num, type, save) {\r\n diyProSave(type ? 0 : this.pageId, {\r\n type: this.pageType || save,\r\n value: val,\r\n title: this.titleTxt,\r\n name: this.nameTxt || '模板',\r\n is_show: this.showTxt ? 1 : 0,\r\n is_bg_color: this.colorTxt ? 1 : 0,\r\n color_picker: this.colorPickerTxt,\r\n bg_pic: this.picUrlTxt,\r\n bg_tab_val: this.tabValTxt,\r\n is_bg_pic: this.picTxt ? 1 : 0,\r\n })\r\n .then((res) => {\r\n this.pageId = res.data.id;\r\n this.$message.success(res.msg);\r\n let that = this;\r\n this.nameModal = false;\r\n if (num == 2) {\r\n this.relLoading = false;\r\n setTimeout(() => {\r\n window.location.replace(this.$routeProStr + '/setting/pages/devise/0');\r\n }, 2000);\r\n } else {\r\n this.loading = false;\r\n }\r\n })\r\n .catch((res) => {\r\n this.relLoading = false;\r\n this.loading = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n saveModal() {\r\n if (!this.saveName) return this.$message.warning('请先输入模板名称');\r\n this.saveConfig(1, this.saveName);\r\n },\r\n closeWindow() {\r\n this.$msgbox({\r\n title: '提示',\r\n message: '关闭页面前请先保存数据,未保存的话数据会丢失',\r\n showCancelButton: true,\r\n cancelButtonText: '取消',\r\n confirmButtonText: '确定',\r\n iconClass: 'el-icon-warning',\r\n confirmButtonClass: 'btn-custom-cancel',\r\n })\r\n .then(() => {\r\n setTimeout(() => {\r\n // this.saveConfig();\r\n window.close();\r\n }, 1000);\r\n })\r\n .catch(() => {});\r\n },\r\n // 保存配置\r\n saveConfig(num, type, save) {\r\n if (this.mConfig.length == 0) {\r\n return this.$message.error('暂未添加任何组件,保存失败!');\r\n }\r\n if (num == 1) {\r\n this.loading = true;\r\n } else {\r\n this.relLoading = true;\r\n }\r\n let val = this.$store.state.mobildConfig.defaultArray;\r\n if (!this.footActive) {\r\n let timestamp = new Date().getTime() * 1000;\r\n val[timestamp] = this.$store.state.mobildConfig.pageFooter;\r\n this.footActive = true;\r\n }\r\n this.$nextTick(() => {\r\n this.diySaveDate(val, num, type, save);\r\n });\r\n },\r\n // 获取默认配置\r\n getDefaultConfig() {\r\n diyProInfo(this.pageId, {\r\n type: 1,\r\n }).then(({ data }) => {\r\n let obj = {};\r\n let tempARR = [];\r\n this.$store.commit('mobildConfig/titleUpdata', data.info.title);\r\n this.$store.commit('mobildConfig/nameUpdata', data.info.name);\r\n this.$store.commit('mobildConfig/showUpdata', data.info.is_show);\r\n this.$store.commit('mobildConfig/colorUpdata', data.info.is_bg_color || 0);\r\n this.$store.commit('mobildConfig/picUpdata', data.info.is_bg_pic || 0);\r\n this.$store.commit('mobildConfig/pickerUpdata', data.info.color_picker || '#f5f5f5');\r\n this.$store.commit('mobildConfig/radioUpdata', data.info.bg_tab_val || 0);\r\n this.$store.commit('mobildConfig/picurlUpdata', data.info.bg_pic || '');\r\n this.diyStatus = data.info.status;\r\n let newArr = this.objToArr(data.info.value);\r\n\r\n function sortNumber(a, b) {\r\n return a.timestamp - b.timestamp;\r\n }\r\n newArr.sort(sortNumber);\r\n newArr.map((el, index) => {\r\n if (el.name == 'headerSerch') {\r\n this.isSearch = true;\r\n }\r\n if (el.name == 'tabNav') {\r\n this.isTab = true;\r\n }\r\n if (el.name == 'homeComb') {\r\n this.isComb = true;\r\n }\r\n if (el.name == 'customerService') {\r\n this.isService = true;\r\n }\r\n if (el.name == 'goodList') {\r\n // let storage = window.localStorage;\r\n // storage.setItem(el.timestamp, el.selectConfig.activeValue);\r\n }\r\n el.id = 'id' + el.timestamp;\r\n this.lConfig.map((item, j) => {\r\n if (el.name == item.defaultName) {\r\n item.num = el.timestamp;\r\n item.id = 'id' + el.timestamp;\r\n let tempItem = JSON.parse(JSON.stringify(item));\r\n tempARR.push(tempItem);\r\n obj[el.timestamp] = el;\r\n this.mConfig.push(tempItem);\r\n // 保存默认组件配置\r\n this.$store.commit('mobildConfig/ADDARRAY', {\r\n num: el.timestamp,\r\n val: el,\r\n });\r\n }\r\n });\r\n });\r\n\r\n let objs = newArr[newArr.length - 1];\r\n\r\n if (objs.name == 'pageFoot') {\r\n this.$store.commit('mobildConfig/footPageUpdata', objs);\r\n }\r\n this.showTitle();\r\n });\r\n },\r\n categoryList() {\r\n categoryList((res) => {\r\n this.category = res.data;\r\n });\r\n },\r\n // 重置\r\n reast() {\r\n if (this.pageId == 0) {\r\n this.$message.error('新增页面,无法重置');\r\n } else {\r\n this.$confirm('此操作将清空模板内容, 是否继续?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n }).then((res) => {\r\n this.mConfig = [];\r\n this.rConfig = [];\r\n this.activeIndex = -99;\r\n this.getDefaultConfig();\r\n });\r\n }\r\n },\r\n },\r\n beforeDestroy() {\r\n this.$store.commit('mobildConfig/titleUpdata', '');\r\n this.$store.commit('mobildConfig/nameUpdata', '');\r\n this.$store.commit('mobildConfig/showUpdata', 1);\r\n this.$store.commit('mobildConfig/colorUpdata', 0);\r\n this.$store.commit('mobildConfig/picUpdata', 0);\r\n this.$store.commit('mobildConfig/pickerUpdata', '#f5f5f5');\r\n this.$store.commit('mobildConfig/radioUpdata', 0);\r\n this.$store.commit('mobildConfig/picurlUpdata', '');\r\n this.$store.commit('mobildConfig/SETEMPTY');\r\n },\r\n destroyed() {\r\n this.$store.commit('mobildConfig/titleUpdata', '');\r\n this.$store.commit('mobildConfig/nameUpdata', '');\r\n this.$store.commit('mobildConfig/showUpdata', 1);\r\n this.$store.commit('mobildConfig/colorUpdata', 0);\r\n this.$store.commit('mobildConfig/picUpdata', 0);\r\n this.$store.commit('mobildConfig/pickerUpdata', '#f5f5f5');\r\n this.$store.commit('mobildConfig/radioUpdata', 0);\r\n this.$store.commit('mobildConfig/picurlUpdata', '');\r\n this.$store.commit('mobildConfig/SETEMPTY');\r\n },\r\n};\r\n</script>\r\n<style>\r\n.el-main {\r\n padding: 0px !important;\r\n}\r\n</style>\r\n<style scoped>\r\n.header-title {\r\n background: var(--prev-color-primary);\r\n border-radius: 0;\r\n margin-bottom: 0;\r\n padding: 16px;\r\n}\r\n.ivu-page-header-title {\r\n color: #fff;\r\n font-size: 16px;\r\n}\r\n</style>\r\n<style scoped lang=\"scss\">\r\n::v-deep .el-card__body {\r\n padding: 0;\r\n}\r\n::v-deep {\r\n .icondel_1,\r\n .upload-box {\r\n cursor: pointer;\r\n }\r\n .el-checkbox,\r\n .el-radio {\r\n margin-bottom: 15px;\r\n margin-right: 15px;\r\n }\r\n}\r\n.c_label {\r\n margin-top: 0;\r\n}\r\n::v-deep .el-button--small {\r\n // border-radius: 0;\r\n border-radius: 4px;\r\n}\r\n.look,\r\n.look:hover,\r\n.look:focus,\r\n.look:active,\r\n.close,\r\n.close:hover,\r\n.close:focus,\r\n.close:active {\r\n background: var(--prev-color-primary);\r\n color: #fff;\r\n border-color: #fff;\r\n}\r\n\r\n.save,\r\n.save:hover,\r\n.save:active,\r\n.save:focus {\r\n background: #fff;\r\n color: var(--prev-color-primary);\r\n border-color: var(--prev-color-primary);\r\n}\r\n::v-deep .c_row-item {\r\n margin-bottom: 15px;\r\n}\r\n.ysize {\r\n background-size: 100%;\r\n}\r\n\r\n.fullsize {\r\n background-size: 100% 100%;\r\n}\r\n\r\n.repeat {\r\n background-repeat: repeat;\r\n}\r\n\r\n.noRepeat {\r\n background-repeat: no-repeat;\r\n}\r\n.fl_header {\r\n color: #fff;\r\n .f-title {\r\n position: relative;\r\n }\r\n .return {\r\n color: #fff;\r\n margin-right: 34px;\r\n margin-left: 5px;\r\n &::after {\r\n content: ' ';\r\n position: absolute;\r\n width: 1px;\r\n height: 16px;\r\n background-color: rgba(238, 238, 238, 0.5);\r\n left: 65px;\r\n top: 50%;\r\n margin-top: -8px;\r\n }\r\n }\r\n .iconfont {\r\n color: #fff;\r\n }\r\n .f_title {\r\n &:hover {\r\n .return {\r\n color: rgba(255, 255, 255, 0.8);\r\n }\r\n .iconfanhui {\r\n color: rgba(255, 255, 255, 0.8);\r\n }\r\n }\r\n .name {\r\n font-size: 16px;\r\n }\r\n .iconfont {\r\n margin-left: 10px;\r\n color: #fff;\r\n }\r\n }\r\n}\r\n.wrapper-con {\r\n position: relative;\r\n flex: 1;\r\n background: #f0f2f5;\r\n display: flex;\r\n justify-content: center;\r\n padding-top: 20px;\r\n height: 100%;\r\n .acticons {\r\n position: absolute;\r\n right: 20px;\r\n top: 20px;\r\n display: flex;\r\n flex-direction: column;\r\n z-index: 1;\r\n .el-button + .el-button {\r\n margin-left: 0;\r\n }\r\n }\r\n /* min-width 700px; */\r\n}\r\n.main .content-wrapper {\r\n padding: 0 !important;\r\n}\r\n.defaultData {\r\n /* margin-left 20px; */\r\n cursor: pointer;\r\n position: absolute;\r\n left: 50%;\r\n margin-left: 245px;\r\n\r\n .data {\r\n display: block;\r\n margin-top: 20px;\r\n color: #282828;\r\n background-color: #fff;\r\n width: 94px;\r\n text-align: center;\r\n height: 32px;\r\n border-radius: 3px;\r\n font-size: 12px;\r\n margin-left: 0 !important;\r\n }\r\n\r\n .data:hover {\r\n background-color: #2d8cf0;\r\n color: #fff;\r\n border: 0;\r\n }\r\n}\r\n\r\n.overflowy {\r\n margin-right: 4px;\r\n\r\n .picture {\r\n width: 379px;\r\n height: 20px;\r\n margin: 0 auto;\r\n background-color: #fff;\r\n }\r\n}\r\n\r\n.bnt {\r\n width: 80px !important;\r\n}\r\n\r\n/* 定义滑块 内阴影+圆角 */\r\n::-webkit-scrollbar-thumb {\r\n -webkit-box-shadow: inset 0 0 6px #fff;\r\n display: none;\r\n}\r\n\r\n.left:hover::-webkit-scrollbar-thumb,\r\n.right-box:hover::-webkit-scrollbar-thumb {\r\n display: block;\r\n}\r\n\r\n.contxt:hover ::-webkit-scrollbar-thumb {\r\n display: block;\r\n}\r\n\r\n::-webkit-scrollbar {\r\n width: 4px !important; /* 对垂直流动条有效 */\r\n}\r\n\r\n.scrollCon {\r\n overflow-y: scroll;\r\n overflow-x: hidden;\r\n}\r\n\r\n.scroll-box .position {\r\n display: block !important;\r\n height: 40px;\r\n text-align: center;\r\n line-height: 40px;\r\n border: 1px dashed var(--prev-color-primary);\r\n color: var(--prev-color-primary);\r\n background-color: #edf4fb;\r\n}\r\n\r\n.scroll-box .conter {\r\n display: none !important;\r\n}\r\n.conter {\r\n margin-top: 3px;\r\n}\r\n.dragClass {\r\n background-color: #fff;\r\n}\r\n\r\n.ivu-mt {\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.iconfont-diy {\r\n font-size: 24px;\r\n color: var(--prev-color-primary);\r\n}\r\n\r\n.diy-wrapper {\r\n max-width: 100%;\r\n min-width: 1100px;\r\n display: flex;\r\n justify-content: space-between;\r\n height: calc(100vh - 62px);\r\n .left {\r\n min-width: 300px;\r\n max-width: 300px;\r\n /* border 1px solid #DDDDDD */\r\n border-radius: 4px;\r\n height: 100%;\r\n\r\n .title-bar {\r\n display: flex;\r\n color: #333;\r\n border-bottom: 1px solid #eee;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n\r\n .title-item {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex: 1;\r\n height: 45px;\r\n\r\n &.on {\r\n color: var(--prev-color-primary);\r\n font-size: 14px;\r\n border-bottom: 1px solid var(--prev-color-primary);\r\n }\r\n }\r\n }\r\n\r\n .wrapper {\r\n padding: 15px;\r\n overflow-y: scroll;\r\n -webkit-overflow-scrolling: touch;\r\n\r\n .tips {\r\n display: flex;\r\n justify-content: space-between;\r\n padding-bottom: 15px;\r\n font-size: 13px;\r\n color: #000;\r\n cursor: pointer;\r\n\r\n .ivu-icon {\r\n color: #000;\r\n }\r\n }\r\n }\r\n\r\n .link-item {\r\n padding: 10px;\r\n border-bottom: 1px solid #f5f5f5;\r\n font-size: 12px;\r\n color: #323232;\r\n\r\n .name {\r\n font-size: 14px;\r\n color: var(--prev-color-primary);\r\n }\r\n .copy_btn {\r\n cursor: pointer;\r\n }\r\n\r\n .link-txt {\r\n margin-top: 2px;\r\n word-break: break-all;\r\n }\r\n\r\n .params {\r\n margin-top: 5px;\r\n color: #1cbe6b;\r\n word-break: break-all;\r\n\r\n .txt {\r\n color: #323232;\r\n }\r\n\r\n span {\r\n &:last-child i {\r\n display: none;\r\n color: red;\r\n }\r\n }\r\n }\r\n\r\n .lable {\r\n display: flex;\r\n margin-top: 5px;\r\n color: #999;\r\n\r\n p {\r\n flex: 1;\r\n word-break: break-all;\r\n }\r\n\r\n button {\r\n margin-left: 30px;\r\n width: 38px;\r\n }\r\n }\r\n }\r\n\r\n .dragArea.list-group {\r\n display: flex;\r\n flex-wrap: wrap;\r\n\r\n .list-group-item {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n width: 74px;\r\n height: 66px;\r\n margin-right: 17px;\r\n margin-bottom: 10px;\r\n font-size: 12px;\r\n color: #666;\r\n cursor: pointer;\r\n border-radius: 5px;\r\n text-align: center;\r\n\r\n &:hover {\r\n box-shadow: 0 0 5px 0 rgba(24, 144, 255, 0.3);\r\n border-right: 5px;\r\n transform: scale(1.1);\r\n transition: all 0.2s;\r\n }\r\n\r\n &:nth-child(3n) {\r\n margin-right: 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .content {\r\n position: relative;\r\n height: 100%;\r\n width: 100%;\r\n\r\n .page-foot {\r\n position: relative;\r\n width: 379px;\r\n margin: 0 auto 20px auto;\r\n\r\n .delete-box {\r\n display: none;\r\n position: absolute;\r\n left: -2px;\r\n top: 0;\r\n width: 383px;\r\n height: 100%;\r\n border: 2px dashed var(--prev-color-primary);\r\n padding: 10px 0;\r\n }\r\n\r\n &:hover,\r\n &.on {\r\n /* cursor: move; */\r\n .delete-box {\r\n /* display: block; */\r\n }\r\n }\r\n\r\n &.on {\r\n cursor: move;\r\n\r\n .delete-box {\r\n display: block;\r\n border: 2px solid var(--prev-color-primary);\r\n box-shadow: 0 0 10px 0 rgba(24, 144, 255, 0.3);\r\n }\r\n }\r\n }\r\n\r\n .page-title {\r\n position: relative;\r\n height: 35px;\r\n line-height: 35px;\r\n background: #fff;\r\n font-size: 15px;\r\n color: #333333;\r\n text-align: center;\r\n width: 379px;\r\n margin: 0 auto;\r\n\r\n .delete-box {\r\n display: none;\r\n position: absolute;\r\n left: -2px;\r\n top: 0;\r\n width: 383px;\r\n height: 100%;\r\n border: 2px dashed var(--prev-color-primary);\r\n padding: 10px 0;\r\n\r\n span {\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n width: 32px;\r\n height: 16px;\r\n line-height: 16px;\r\n display: inline-block;\r\n text-align: center;\r\n font-size: 10px;\r\n color: #fff;\r\n background: rgba(0, 0, 0, 0.4);\r\n margin-left: 2px;\r\n cursor: pointer;\r\n z-index: 11;\r\n }\r\n }\r\n\r\n &:hover,\r\n &.on {\r\n /* cursor: move; */\r\n .delete-box {\r\n /* display: block; */\r\n }\r\n }\r\n\r\n &.on {\r\n cursor: move;\r\n\r\n .delete-box {\r\n display: block;\r\n border: 2px solid var(--prev-color-primary);\r\n box-shadow: 0 0 10px 0 rgba(24, 144, 255, 0.3);\r\n }\r\n }\r\n }\r\n\r\n .scroll-box {\r\n flex: 1;\r\n background-color: #fff;\r\n width: 379px;\r\n margin: 0 auto;\r\n padding-top: 1px;\r\n }\r\n\r\n .dragArea.list-group {\r\n width: 100%;\r\n height: 100%;\r\n\r\n .mConfig-item {\r\n position: relative;\r\n cursor: move;\r\n &.hide {\r\n &::before {\r\n position: absolute;\r\n content: '已隐藏';\r\n background: rgba(0, 0, 0, 0.5);\r\n width: 100%;\r\n height: 100%;\r\n z-index: 99;\r\n color: #fff;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n }\r\n .delete-name.on {\r\n background: var(--prev-color-primary-light-3);\r\n color: #fff;\r\n &::before {\r\n background: var(--prev-color-primary-light-3);\r\n }\r\n }\r\n .delete-name {\r\n position: absolute;\r\n top: 0;\r\n background: #fff;\r\n left: -100px;\r\n width: 86px;\r\n height: 32px;\r\n text-align: center;\r\n line-height: 32px;\r\n font-size: 13px;\r\n color: #666;\r\n border-radius: 3px;\r\n\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n width: 10px;\r\n height: 10px;\r\n background: #fff;\r\n transform: rotate(45deg);\r\n top: 50%;\r\n right: -5px;\r\n margin-top: -5px;\r\n }\r\n }\r\n .delete-box {\r\n display: none;\r\n position: absolute;\r\n left: -2px;\r\n top: 0;\r\n width: 383px;\r\n height: 100%;\r\n border: 2px dashed var(--prev-color-primary);\r\n\r\n /* padding: 10px 0; */\r\n .handleType {\r\n position: absolute;\r\n right: -43px;\r\n top: 0;\r\n width: 36px;\r\n border-radius: 4px;\r\n background-color: var(--prev-color-primary);\r\n cursor: pointer;\r\n color: #fff;\r\n font-weight: bold;\r\n text-align: center;\r\n padding: 4px 0;\r\n .el-tooltip {\r\n background-color: inherit;\r\n color: inherit;\r\n }\r\n .iconfont {\r\n padding: 5px 0;\r\n\r\n &.on {\r\n opacity: 0.4;\r\n }\r\n }\r\n }\r\n }\r\n\r\n &.on {\r\n cursor: move;\r\n\r\n .delete-box {\r\n display: block;\r\n border: 2px solid var(--prev-color-primary);\r\n box-shadow: 0 0 10px 0 rgba(24, 144, 255, 0.3);\r\n }\r\n }\r\n }\r\n\r\n .mConfig-item:hover {\r\n transform: scale(1.01);\r\n box-shadow: 0 0 10px 0 rgba(24, 144, 255, 0.3);\r\n transition: all 0.2s;\r\n }\r\n }\r\n }\r\n\r\n .right-box {\r\n max-width: 400px;\r\n min-width: 400px;\r\n height: 100%;\r\n border-radius: 4px;\r\n overflow: scroll;\r\n -webkit-overflow-scrolling: touch;\r\n\r\n ::v-deep .ivu-tabs-bar {\r\n margin-bottom: 16px;\r\n }\r\n\r\n .title-bar {\r\n width: 100%;\r\n height: 45px;\r\n line-height: 45px;\r\n padding-left: 24px;\r\n color: #000;\r\n border-radius: 4px;\r\n border-bottom: 1px solid #eee;\r\n font-size: 14px;\r\n }\r\n }\r\n\r\n ::-webkit-scrollbar {\r\n width: 6px;\r\n background-color: transparent;\r\n }\r\n\r\n ::-webkit-scrollbar-track {\r\n border-radius: 10px;\r\n }\r\n\r\n ::-webkit-scrollbar-thumb {\r\n background-color: #bfc1c4;\r\n }\r\n}\r\n\r\n.foot-box {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 80px;\r\n background: #fff;\r\n box-shadow: 0px -2px 4px 0px rgba(0, 0, 0, 0.03);\r\n\r\n button {\r\n width: 100px;\r\n height: 32px;\r\n font-size: 13px;\r\n\r\n &:first-child {\r\n margin-right: 20px;\r\n }\r\n }\r\n}\r\n\r\n::v-deep .ivu-scroll-loader {\r\n display: none;\r\n}\r\n\r\n::v-deep .ivu-card-body {\r\n width: 100%;\r\n padding: 0;\r\n height: calc(100vh - 73px);\r\n}\r\n\r\n.rbtn {\r\n position: absolute;\r\n right: 20px;\r\n}\r\n.code {\r\n position: relative;\r\n}\r\n\r\n.QRpic {\r\n width: 160px;\r\n height: 160px;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n}\r\n.contxt {\r\n display: flex;\r\n flex-direction: column;\r\n overflow: hidden;\r\n height: 100%;\r\n}\r\n\r\n.contxt:hover ::-webkit-scrollbar-thumb {\r\n display: block;\r\n}\r\n.iconfont-diy {\r\n font-size: 24px;\r\n color: var(--prev-color-primary);\r\n}\r\n.icon {\r\n width: 28px;\r\n height: 28px;\r\n // vertical-align: -0.15em;\r\n fill: currentColor;\r\n overflow: hidden;\r\n}\r\n</style>\r\n"],"mappings":";;;;;;;;;;;;;;;;;AAyPA,SAAAA,YAAA,IAAAA,aAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAC,QAAA,EAAAC,aAAA,EAAAC,cAAA;AACA,OAAAC,YAAA;AACA,OAAAC,KAAA;AACA,OAAAC,OAAA;AACA,OAAAC,QAAA;AACA,SAAAC,QAAA;AACA,OAAAC,WAAA;AACA,OAAAC,KAAA;AACA,OAAAC,OAAA;AACA,OAAAC,MAAA;AAEA;EACAC,MAAA;EACAC,IAAA;EACAC,UAAA,EAAAC,aAAA,CAAAA,aAAA;IACAT,QAAA,EAAAA,QAAA;IACAE,WAAA,EAAAA,WAAA;IACAQ,SAAA,EAAAb;EAAA,GACAC,KAAA,GACAC,OAAA,CACA;EACAY,OAAA;IACAC,SAAA,WAAAA,UAAAC,GAAA;MACA,IAAAA,GAAA;QACA,OAAAA,GAAA,GAAAA,GAAA,CAAAC,MAAA,IAAAD,GAAA,CAAAE,MAAA;MACA;IACA;EACA;EACAC,QAAA,EAAAP,aAAA,CAAAA,aAAA,KACAR,QAAA;IACAgB,QAAA,WAAAA,SAAAC,KAAA;MAAA,OAAAA,KAAA,CAAAC,YAAA,CAAAC,SAAA;IAAA;IACAC,OAAA,WAAAA,QAAAH,KAAA;MAAA,OAAAA,KAAA,CAAAC,YAAA,CAAAG,QAAA;IAAA;IACAC,QAAA,WAAAA,SAAAL,KAAA;MAAA,OAAAA,KAAA,CAAAC,YAAA,CAAAK,SAAA;IAAA;IACAC,MAAA,WAAAA,OAAAP,KAAA;MAAA,OAAAA,KAAA,CAAAC,YAAA,CAAAO,OAAA;IAAA;IACAC,cAAA,WAAAA,eAAAT,KAAA;MAAA,OAAAA,KAAA,CAAAC,YAAA,CAAAS,eAAA;IAAA;IACAC,SAAA,WAAAA,UAAAX,KAAA;MAAA,OAAAA,KAAA,CAAAC,YAAA,CAAAW,UAAA;IAAA;IACAC,SAAA,WAAAA,UAAAb,KAAA;MAAA,OAAAA,KAAA,CAAAC,YAAA,CAAAa,UAAA;IAAA;IACAC,cAAA,WAAAA,eAAAf,KAAA;MAAA,OAAAA,KAAA,CAAAC,YAAA,CAAAe,UAAA,CAAAC,SAAA,CAAAC,MAAA;IAAA;IACAC,gBAAA,WAAAA,iBAAAnB,KAAA;MAAA,OAAAA,KAAA,CAAAC,YAAA,CAAAe,UAAA,CAAAI,QAAA,CAAAzB,GAAA;IAAA;IACA0B,aAAA,WAAAA,cAAArB,KAAA;MAAA,OAAAA,KAAA,CAAAC,YAAA,CAAAqB,YAAA;IAAA;EACA;IACAC,OAAA;MACAC,GAAA,WAAAA,IAAA;QACA,YAAAC,MAAA,CAAAzB,KAAA,CAAAC,YAAA,CAAAyB,QAAA;MACA;MACAC,GAAA,WAAAA,IAAAC,KAAA;QACA,KAAAH,MAAA,CAAAI,MAAA,wBAAAD,KAAA;MACA;IACA;EAAA,EACA;EACAE,MAAA,GAAA7C,KAAA;EACA8C,IAAA,WAAAA,KAAA;IACA;MACAC,OAAA,EAAA9C,OAAA,CAAA+C,UAAA,CAAAC,OAAA;MACAC,SAAA;MACAC,KAAA;MACAC,YAAA;MAAA;MACAC,UAAA;MACAC,QAAA;MAAA;MACAC,OAAA;MAAA;MACA3D,OAAA;MAAA;MACA4D,OAAA;MAAA;MACAC,gBAAA;MACAC,QAAA;MAAA;MACAC,WAAA;MAAA;MACAC,MAAA;MACAC,MAAA;MACApB,QAAA;MACAqB,QAAA;MACAC,QAAA;MACAC,OAAA,GACA;QACAC,KAAA;QACAC,GAAA;MACA,GACA;QACAD,KAAA;QACAC,GAAA;MACA,EACA;MACAC,UAAA;MACAC,OAAA;MACAC,UAAA;MACAC,QAAA;MACAC,KAAA;MACAC,OAAA;MACAC,MAAA;MACAC,SAAA;MACAC,OAAA;MACAC,SAAA;MACAC,SAAA;MACAC,QAAA;IACA;EACA;EACAC,OAAA,WAAAA,QAAA;IAAA,IAAAC,KAAA;IACA,KAAA7F,YAAA;IACA,KAAA0E,MAAA,QAAAoB,MAAA,CAAAC,KAAA,CAAAC,EAAA;IACA,KAAA1C,QAAA,QAAAwC,MAAA,CAAAC,KAAA,CAAA9E,IAAA;IACA,KAAA0D,QAAA,QAAAmB,MAAA,CAAAC,KAAA,CAAAE,IAAA;IACA,KAAA7B,OAAA,QAAA8B,QAAA,CAAA1F,KAAA;IACA,IAAA2F,OAAA;MACAA,OAAA,GAAAC,OAAA,kCAAAA,OAAA;MACAnF,IAAA;MACAoF,IAAA;IACA;IACA,KAAAC,SAAA;MACAT,KAAA,CAAAxC,MAAA,CAAAI,MAAA;QAAAqB,KAAA;QAAA7D,IAAA,EAAAkF;MAAA;MACAN,KAAA,CAAAU,SAAA;MACA,IAAAV,KAAA,CAAAnB,MAAA;QACAmB,KAAA,CAAAW,gBAAA;MACA;QACAX,KAAA,CAAAY,SAAA;MACA;MACAZ,KAAA,CAAA5B,YAAA,MAAAyC,MAAA,CAAAC,QAAA,CAAAC,eAAA,CAAA3C,YAAA;MACA,IAAA4C,CAAA,MAAAH,MAAA,CAAAC,QAAA,CAAAC,eAAA,CAAA3C,YAAA;MACA4B,KAAA,CAAA3B,UAAA,GAAA2C,CAAA,eAAAA,CAAA;MACA,IAAAC,IAAA,GAAAjB,KAAA;MACAkB,MAAA,CAAAC,QAAA;QACAF,IAAA,CAAA7C,YAAA,MAAAyC,MAAA,CAAAC,QAAA,CAAAC,eAAA,CAAA3C,YAAA;QACA,IAAA4C,CAAA,MAAAH,MAAA,CAAAC,QAAA,CAAAC,eAAA,CAAA3C,YAAA;QACA6C,IAAA,CAAA5C,UAAA,GAAA2C,CAAA,eAAAA,CAAA;MACA;IACA;EACA;EACAI,OAAA;IACAC,UAAA,WAAAA,WAAA;MAAA,IAAAC,MAAA;MACA,IAAAL,IAAA;MACA,KAAA7B,OAAA;MACA,KAAAqB,SAAA;QACAc,OAAA,CAAAC,GAAA,CAAAF,MAAA,CAAA1G,OAAA;MACA;IACA;IACA6G,UAAA,WAAAA,WAAA;IACAC,OAAA,WAAAA,QAAA;MACA,KAAAvD,KAAA;MACA,KAAAwD,WAAA,MAAA9C,MAAA,OAAAe,SAAA;MACA,KAAAgC,WAAA,MAAA/C,MAAA;IACA;IACA;IACA+C,WAAA,WAAAA,YAAAzB,EAAA;MAAA,IAAA0B,MAAA;MACApH,cAAA,CAAA0F,EAAA,EACA2B,IAAA,WAAAC,GAAA;QACAF,MAAA,CAAA3D,SAAA,GAAA6D,GAAA,CAAAjE,IAAA,CAAAkE,KAAA;MACA,GACAC,KAAA,WAAAC,GAAA;QACAL,MAAA,CAAAM,QAAA,CAAAC,KAAA,CAAAF,GAAA;MACA;IACA;IACA;IACAP,WAAA,WAAAA,YAAAxB,EAAA,EAAAkC,MAAA;MACA,KAAAC,KAAA,CAAAC,SAAA,CAAAC,SAAA;MACA,IAAAC,GAAA;MACA,IAAAJ,MAAA;QACAI,GAAA,MAAA5B,MAAA,MAAA9C,OAAA;MACA;QACA0E,GAAA,MAAA5B,MAAA,MAAA9C,OAAA,mCAAA8C,MAAA,CAAAV,EAAA;MACA;MACA,IAAAuC,MAAA,OAAAxH,MAAA,MAAAoH,KAAA,CAAAC,SAAA;QACAI,IAAA,EAAAF,GAAA;QAAA;QACAG,KAAA;QACAC,MAAA;QACAC,SAAA;QACAC,UAAA;QACAC,YAAA,EAAA9H,MAAA,CAAA+H,YAAA,CAAAjC;MACA;IACA;IACAkC,SAAA,WAAAA,UAAAxH,GAAA;MACA,KAAA8B,MAAA,CAAAI,MAAA,wBAAAlC,GAAA;IACA;IACAyH,MAAA,WAAAA,OAAA;MACA,KAAAxD,OAAA;IACA;IACAyD,SAAA,WAAAA,UAAA;MAAA,IAAAC,MAAA;MACA,SAAA/F,OAAA,CAAAgG,IAAA;QACA,YAAAnB,QAAA,CAAAC,KAAA;MACA;MACA,SAAAvD,MAAA;QACA,KAAAsD,QAAA,CAAAoB,OAAA;QACA;MACA;MACA/I,aAAA,MAAAqE,MAAA;QAAAzD,IAAA,OAAAkC;MAAA,GACAwE,IAAA,WAAAC,GAAA;QACAsB,MAAA,CAAA1D,OAAA;QACA0D,MAAA,CAAAlB,QAAA,CAAAoB,OAAA,CAAAxB,GAAA,CAAAyB,GAAA;MACA,GACAvB,KAAA,WAAAC,GAAA;QACAmB,MAAA,CAAAlB,QAAA,CAAAC,KAAA,CAAAF,GAAA,CAAAsB,GAAA;MACA;MACA,KAAA7D,OAAA;IACA;IACA8D,SAAA,WAAAA,UAAA;MAAA,IAAAC,MAAA;MACA,KAAAC,OAAA;QACA1E,KAAA;QACA2E,OAAA;QACAC,gBAAA;QACAC,gBAAA;QACAC,iBAAA;QACAC,SAAA;QACAC,kBAAA;MACA,GACAnC,IAAA;QACA4B,MAAA,CAAAQ,OAAA,CAAAC,IAAA,CAAAT,MAAA,CAAAU,YAAA;MACA,GACAnC,KAAA;IACA;IACAoC,UAAA,WAAAA,WAAAC,IAAA;MAAA,IAAAC,EAAA,GAAAD,IAAA,CAAAC,EAAA;QAAAC,IAAA,GAAAF,IAAA,CAAAE,IAAA;QAAAC,IAAA,GAAAH,IAAA,CAAAG,IAAA;QAAAC,KAAA,GAAAJ,IAAA,CAAAI,KAAA;QAAAC,QAAA,GAAAL,IAAA,CAAAK,QAAA;QAAAC,QAAA,GAAAN,IAAA,CAAAM,QAAA;MACA,SAAAtF,QAAA,IAAAsF,QAAA;QACA,IAAAH,IAAA,CAAAI,eAAA,CAAAzJ,IAAA;UACA,KAAAoE,OAAA;QACA;UACA,KAAAhC,MAAA,CAAAI,MAAA,iCAAAhD,OAAA,IAAAkK,GAAA;UACA,KAAAlK,OAAA,CAAAmK,MAAA;QACA;MACA;MACA,SAAAvF,OAAA,WAAAoF,QAAA;QACA,KAAApH,MAAA,CAAAI,MAAA,iCAAAhD,OAAA,IAAAkK,GAAA;MACA;IACA;IACAE,MAAA,WAAAA,OAAAC,CAAA;MACA,IAAAA,CAAA,CAAAC,cAAA,CAAAC,OAAA,CAAA/J,IAAA;MACA,IAAA6J,CAAA,CAAAC,cAAA,CAAAC,OAAA,CAAA/J,IAAA;MACA,IAAA6J,CAAA,CAAAC,cAAA,CAAAC,OAAA,CAAA/J,IAAA;MACA;IACA;IACAgK,MAAA,WAAAA,OAAA;MACA,KAAAjD,QAAA,CAAAoB,OAAA;IACA;IACA8B,OAAA,WAAAA,QAAA;MACA,KAAAlD,QAAA,CAAAC,KAAA;IACA;IACA;IACAkD,QAAA,WAAAA,SAAA;MAAA,IAAAC,MAAA;MACAjL,UAAA,MAAAuE,MAAA,EACAiD,IAAA,WAAAC,GAAA;QACAwD,MAAA,CAAApD,QAAA,CAAAoB,OAAA,CAAAxB,GAAA,CAAAyB,GAAA;MACA,GACAvB,KAAA,WAAAC,GAAA;QACAqD,MAAA,CAAApD,QAAA,CAAAC,KAAA,CAAAF,GAAA,CAAAsB,GAAA;MACA;IACA;IACA;IACAgC,QAAA,WAAAA,SAAA;MAAA,IAAAC,MAAA;MACAlL,QAAA,MAAAsE,MAAA,EACAiD,IAAA,WAAAC,GAAA;QACA0D,MAAA,CAAAtD,QAAA,CAAAoB,OAAA,CAAAxB,GAAA,CAAAyB,GAAA;QACAiC,MAAA,CAAAC,MAAA;MACA,GACAzD,KAAA,WAAAC,GAAA;QACAuD,MAAA,CAAAtD,QAAA,CAAAC,KAAA,CAAAF,GAAA,CAAAsB,GAAA;MACA;IACA;IACA;IACA5C,SAAA,WAAAA,UAAA;MACAW,OAAA,CAAAC,GAAA;MACA,KAAA7C,WAAA;MACA,IAAAgH,GAAA;MACA,SAAAC,CAAA,IAAAhL,OAAA;QACA,IAAAgL,CAAA;UACA;UACAD,GAAA,GAAA/K,OAAA,CAAAgL,CAAA;UACAD,GAAA,CAAAE,UAAA,GAAAjL,OAAA,CAAAgL,CAAA,EAAAxK,IAAA;UACAuK,GAAA,CAAAG,KAAA;QACA;MACA;MACA,IAAAC,GAAA,GAAAJ,GAAA;MACA,KAAAnH,OAAA;MACA,KAAAA,OAAA,MAAAwH,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,SAAA,CAAAP,GAAA;IACA;IACA;IACAQ,QAAA,WAAAA,SAAA;MACA,KAAAxH,WAAA;MACA,IAAAgH,GAAA;MACA,SAAAC,CAAA,IAAAhL,OAAA;QACA,IAAAgL,CAAA;UACA;UACAD,GAAA,GAAA/K,OAAA,CAAAgL,CAAA;UACAD,GAAA,CAAAE,UAAA,GAAAjL,OAAA,CAAAgL,CAAA,EAAAxK,IAAA;UACAuK,GAAA,CAAAG,KAAA;QACA;MACA;MACA,IAAAC,GAAA,GAAAJ,GAAA;MACA,KAAAnH,OAAA;MACA,KAAAA,OAAA,MAAAwH,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,SAAA,CAAAP,GAAA;IACA;IACA;IACAtF,QAAA,WAAAA,SAAAvC,IAAA;MACA,IAAA6H,GAAA,GAAAS,MAAA,CAAAC,IAAA,CAAAvI,IAAA;MACA,IAAAwI,CAAA,GAAAX,GAAA,CAAAY,GAAA,WAAArH,GAAA;QAAA,OAAApB,IAAA,CAAAoB,GAAA;MAAA;MACA,OAAAoH,CAAA;IACA;IACA9E,GAAA,WAAAA,IAAAgF,GAAA;MACA;MACA,IAAAA,GAAA,CAAAC,KAAA;QACA,IAAAD,GAAA,CAAAC,KAAA,CAAAtB,OAAA,CAAA/J,IAAA;UACA,YAAA+G,QAAA,CAAAuE,OAAA;QACA;QACA;QACA;QACA;QACAF,GAAA,CAAAC,KAAA,CAAAE,MAAA,QAAA/L,OAAA,CAAA4L,GAAA,CAAAC,KAAA,CAAA9B,QAAA,EAAAG,GAAA;QACA0B,GAAA,CAAAC,KAAA,CAAAG,MAAA,QAAAhM,OAAA,CAAA4L,GAAA,CAAAC,KAAA,CAAA7B,QAAA,EAAAE,GAAA;QACA0B,GAAA,CAAAC,KAAA,CAAApE,MAAA,GAAAmE,GAAA,CAAAC,KAAA,CAAA9B,QAAA,GAAA6B,GAAA,CAAAC,KAAA,CAAA7B,QAAA;QACA,KAAAhK,OAAA,CAAAiM,OAAA,WAAAC,EAAA,EAAAC,KAAA;UACAD,EAAA,CAAAhC,GAAA,OAAAkC,IAAA,GAAAC,OAAA,YAAAF,KAAA;QACA;QACAP,GAAA,CAAAC,KAAA,CAAAS,IAAA,QAAAtM,OAAA;QACA,KAAA4D,OAAA;QACA,IAAAiG,IAAA,GAAA+B,GAAA,CAAAC,KAAA,CAAAtB,OAAA;QACA,IAAAgC,QAAA,GAAAnB,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,SAAA,CAAAzB,IAAA;QACA,KAAAjG,OAAA,CAAA2F,IAAA,CAAAgD,QAAA;QACA,KAAAxI,WAAA,GAAA6H,GAAA,CAAAC,KAAA,CAAA7B,QAAA;QACA,KAAApH,MAAA,CAAAI,MAAA,+BAAA6G,IAAA,CAAArJ,IAAA;QACA,KAAAoC,MAAA,CAAAI,MAAA,kCAAA4I,GAAA,CAAAC,KAAA;MACA;MACA;MACA,IAAAD,GAAA,CAAAY,KAAA;QACA,IAAAtJ,IAAA,GAAA0I,GAAA,CAAAY,KAAA,CAAAjC,OAAA;QACA,IAAAQ,GAAA;QACA,IAAA0B,SAAA,OAAAL,IAAA,GAAAC,OAAA;QACAnJ,IAAA,CAAAgH,GAAA,GAAAuC,SAAA;QACA,KAAA5I,gBAAA,GAAAX,IAAA,CAAA1C,IAAA;QACA,IAAA+L,SAAA,GAAAnB,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,SAAA,CAAApI,IAAA;QACAqJ,SAAA,CAAAhH,EAAA,UAAAgH,SAAA,CAAArC,GAAA;QACA,KAAAlK,OAAA,CAAA4L,GAAA,CAAAY,KAAA,CAAAxC,QAAA,IAAAuC,SAAA;QACA,KAAA3I,OAAA;QACA,KAAAA,OAAA,CAAA2F,IAAA,CAAAgD,SAAA;QACA,KAAAvM,OAAA,CAAAiM,OAAA,WAAAC,EAAA,EAAAC,KAAA;UACAD,EAAA,CAAAhC,GAAA,OAAAkC,IAAA,GAAAC,OAAA,YAAAF,KAAA;QACA;QACAP,GAAA,CAAAY,KAAA,CAAAF,IAAA,QAAAtM,OAAA;QACA,KAAA+D,WAAA,GAAA6H,GAAA,CAAAY,KAAA,CAAAxC,QAAA;QACA;QACA,KAAApH,MAAA,CAAAI,MAAA,+BAAAE,IAAA,CAAA1C,IAAA;QACA,KAAAoC,MAAA,CAAAI,MAAA,kCAAA4I,GAAA,CAAAY,KAAA;MACA;IACA;IACAE,QAAA,WAAAA,SAAAxJ,IAAA;MACA;MACA,OAAAxC,aAAA,KACAwC,IAAA;IAEA;IACA;IACAyJ,SAAA,WAAAA,UAAAC,GAAA,EAAAC,MAAA,EAAAC,MAAA;MACAF,GAAA,CAAAC,MAAA,IAAAD,GAAA,CAAAzC,MAAA,CAAA2C,MAAA,KAAAF,GAAA,CAAAC,MAAA;MACA,OAAAD,GAAA;IACA;IACA;IACAG,QAAA,WAAAA,SAAAlD,IAAA,EAAAsC,KAAA,EAAA3G,IAAA;MACA,IAAAA,IAAA;QACA,IAAA2G,KAAA;UACA;QACA;MACA;QACA,IAAAA,KAAA,SAAAnM,OAAA,CAAAgB,MAAA;UACA;QACA;MACA;MACA,IAAA6I,IAAA,CAAArJ,IAAA,oBAAAqJ,IAAA,CAAArJ,IAAA,iBAAAqJ,IAAA,CAAArJ,IAAA;QACA,YAAA+G,QAAA,CAAAuE,OAAA;MACA;MACA,IAAAtG,IAAA;QACA,IACA,KAAAxF,OAAA,CAAAmM,KAAA,MAAA3L,IAAA,oBACA,KAAAR,OAAA,CAAAmM,KAAA,MAAA3L,IAAA,iBACA,KAAAR,OAAA,CAAAmM,KAAA,MAAA3L,IAAA,iBACA;UACA,YAAA+G,QAAA,CAAAuE,OAAA;QACA;QACA,KAAAa,SAAA,MAAA3M,OAAA,EAAAmM,KAAA,MAAAA,KAAA;MACA;QACA,KAAAQ,SAAA,MAAA3M,OAAA,EAAAmM,KAAA,EAAAA,KAAA;MACA;MACA,IAAApB,GAAA;MACA,KAAAnH,OAAA;MACAmH,GAAA,CAAAhB,QAAA,GAAAoC,KAAA;MACA,IAAA3G,IAAA;QACAuF,GAAA,CAAAf,QAAA,GAAAmC,KAAA;MACA;QACApB,GAAA,CAAAf,QAAA,GAAAmC,KAAA;MACA;MACA,KAAAnM,OAAA,CAAAiM,OAAA,WAAAC,EAAA,EAAAC,KAAA;QACAD,EAAA,CAAAhC,GAAA,OAAAkC,IAAA,GAAAC,OAAA,YAAAF,KAAA;MACA;MACA,IAAAI,QAAA,GAAAnB,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,SAAA,CAAAzB,IAAA;MACA,KAAAjG,OAAA,CAAA2F,IAAA,CAAAgD,QAAA;MACAxB,GAAA,CAAAR,OAAA,GAAAV,IAAA;MACAkB,GAAA,CAAAuB,IAAA,QAAAtM,OAAA;MACA,IAAAwF,IAAA;QACA,KAAAzB,WAAA,GAAAoI,KAAA;MACA;QACA,KAAApI,WAAA,GAAAoI,KAAA;MACA;MAEA,KAAAvJ,MAAA,CAAAI,MAAA,+BAAA6G,IAAA,CAAArJ,IAAA;MACA,KAAAoC,MAAA,CAAAI,MAAA,kCAAA+H,GAAA;IACA;IACA;IACAiC,SAAA,WAAAA,UAAAnD,IAAA,EAAArE,IAAA,EAAA2G,KAAA;MACA,IAAAtC,IAAA,CAAArJ,IAAA;QACA,SAAAkE,QAAA,cAAA6C,QAAA,CAAAC,KAAA;QACA,SAAA3C,MAAA,cAAA0C,QAAA,CAAAC,KAAA;QACA,KAAA9C,QAAA;MACA;MACA,IAAAmF,IAAA,CAAArJ,IAAA;QACA,SAAAmE,KAAA,cAAA4C,QAAA,CAAAC,KAAA;QACA,SAAA3C,MAAA,cAAA0C,QAAA,CAAAC,KAAA;QACA,KAAA7C,KAAA;MACA;MACA,IAAAkF,IAAA,CAAArJ,IAAA;QACA,SAAAqE,MAAA,cAAA0C,QAAA,CAAAC,KAAA;QACA,SAAA9C,QAAA,SAAAC,KAAA,cAAA4C,QAAA,CAAAC,KAAA;QACA,KAAA3C,MAAA;MACA;MACA,IAAAgF,IAAA,CAAArJ,IAAA;QACA,SAAAsE,SAAA,cAAAyC,QAAA,CAAAC,KAAA;QACA,KAAA1C,SAAA;MACA;MACA,IAAAiG,GAAA;MACA,IAAA0B,SAAA,OAAAL,IAAA,GAAAC,OAAA;MACAxC,IAAA,CAAAK,GAAA,MAAAjE,MAAA,CAAAwG,SAAA;MACA5C,IAAA,CAAAtE,EAAA,QAAAU,MAAA,CAAAwG,SAAA;MACA,KAAA5I,gBAAA,GAAAgG,IAAA,CAAArJ,IAAA;MACA,IAAA+L,QAAA,GAAAnB,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,SAAA,CAAAzB,IAAA;MACAlD,OAAA,CAAAC,GAAA,CAAA2F,QAAA;MACA,IAAA1C,IAAA,CAAArJ,IAAA;QACA,KAAAoD,OAAA;QACA,KAAA5D,OAAA,CAAAiN,OAAA,CAAAV,QAAA;QACA,KAAAxI,WAAA;QACA,KAAAH,OAAA,CAAA2F,IAAA,CAAAgD,QAAA;MACA,WAAA1C,IAAA,CAAArJ,IAAA;QACA,KAAAoD,OAAA;QACA,KAAA5D,OAAA,CAAAiN,OAAA,CAAAV,QAAA;QACA,KAAAxI,WAAA;QACA,KAAAH,OAAA,CAAA2F,IAAA,CAAAgD,QAAA;MACA,WAAA1C,IAAA,CAAArJ,IAAA;QACA,KAAAoD,OAAA;QACA,SAAA5D,OAAA,YAAAA,OAAA,IAAAQ,IAAA;UACA,KAAAR,OAAA,CAAAmK,MAAA,OAAAoC,QAAA;UACA,KAAAxI,WAAA;QACA;UACA,KAAA/D,OAAA,CAAAmK,MAAA,OAAAoC,QAAA;UACA,KAAAxI,WAAA;QACA;QACA,KAAAH,OAAA,CAAA2F,IAAA,CAAAgD,QAAA;MACA;QACA,IAAA/G,IAAA;UACA,KAAA5B,OAAA;UACA,SAAAG,WAAA,cAAA/D,OAAA,YAAAA,OAAA,IAAAQ,IAAA;YACA,KAAAuD,WAAA;UACA;YACA,KAAAA,WAAA,QAAAA,WAAA,aAAAA,WAAA,YAAA/D,OAAA,CAAAgB,MAAA;UACA;UACA,KAAAhB,OAAA,CAAAmK,MAAA,MAAApG,WAAA,KAAAwI,QAAA;UACA,KAAA3I,OAAA,CAAA2F,IAAA,CAAAgD,QAAA;QACA;UACA,KAAAvM,OAAA,CAAAmK,MAAA,CAAAgC,KAAA,SAAAI,QAAA;UACA,KAAAxI,WAAA,GAAAoI,KAAA;QACA;MACA;MACA,KAAAnM,OAAA,CAAAiM,OAAA,WAAAC,EAAA,EAAAC,KAAA;QACAD,EAAA,CAAAhC,GAAA,OAAAkC,IAAA,GAAAC,OAAA,YAAAF,KAAA;MACA;MACA;MACApB,GAAA,CAAAR,OAAA,GAAAV,IAAA;MACAkB,GAAA,CAAAuB,IAAA,QAAAtM,OAAA;MACA,KAAA4C,MAAA,CAAAI,MAAA,+BAAA6G,IAAA,CAAArJ,IAAA;MACA,KAAAoC,MAAA,CAAAI,MAAA,kCAAA+H,GAAA;IACA;IACA;IACAmC,UAAA,WAAAA,WAAArD,IAAA,EAAArE,IAAA,EAAA2G,KAAA;MACA,IAAAnB,CAAA,GAAAnB,IAAA;MACA,KAAAlG,OAAA,CAAAsI,OAAA,WAAAkB,CAAA;QACA,IAAAtD,IAAA,CAAArJ,IAAA,IAAA2M,CAAA,CAAA3M,IAAA;UACAwK,CAAA,GAAAmC,CAAA;QACA;MACA;MACA,KAAAH,SAAA,CAAAhC,CAAA,EAAAxF,IAAA,EAAA2G,KAAA;IACA;IACA;IACAiB,MAAA,WAAAA,OAAAvD,IAAA,EAAArE,IAAA;MACA,KAAAwH,SAAA,CAAAnD,IAAA,EAAArE,IAAA;IACA;IACA;IACA6H,UAAA,WAAAA,WAAAxD,IAAA,EAAAsC,KAAA;MACA,KAAAvI,OAAA;MACA,IAAA2I,QAAA,GAAAnB,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,SAAA,CAAAzB,IAAA;MACA,KAAAjG,OAAA,CAAA2F,IAAA,CAAAgD,QAAA;MACA,KAAAxI,WAAA,GAAAoI,KAAA;MACA,KAAAvJ,MAAA,CAAAI,MAAA,+BAAA6G,IAAA,CAAArJ,IAAA;IACA;IACA8M,QAAA,WAAAA,SAAAzD,IAAA;MACA,IAAAkB,GAAA,QAAAnI,MAAA,CAAAzB,KAAA,CAAAC,YAAA,CAAAqB,YAAA;MACA,IAAAyH,GAAA,QAAAtG,OAAA,IAAAsG,GAAA;MACAa,GAAA,CAAAb,GAAA,EAAAqD,MAAA,IAAAxC,GAAA,CAAAb,GAAA,EAAAqD,MAAA;MACA,KAAA3K,MAAA,CAAAI,MAAA;QAAAkH,GAAA,EAAAA,GAAA;QAAApJ,GAAA,EAAAiK,GAAA,CAAAb,GAAA;MAAA;IACA;IACA;IACAsD,UAAA,WAAAA,WAAA3D,IAAA,EAAAvF,GAAA;MACA,IAAAuF,IAAA,CAAArJ,IAAA;QACA,KAAAkE,QAAA;MACA;MACA,IAAAmF,IAAA,CAAArJ,IAAA;QACA,KAAAmE,KAAA;MACA;MACA,IAAAkF,IAAA,CAAArJ,IAAA;QACA,KAAAqE,MAAA;MACA;MACA,IAAAgF,IAAA,CAAArJ,IAAA;QACA,KAAAsE,SAAA;MACA;MACA,KAAA9E,OAAA,CAAAmK,MAAA,CAAA7F,GAAA;MACA,KAAAV,OAAA,CAAAuG,MAAA;MACA,SAAAnK,OAAA,CAAAgB,MAAA,IAAAsD,GAAA;QACA,KAAAV,OAAA,CAAA2F,IAAA,MAAAvJ,OAAA,CAAAsE,GAAA;MACA;QACA,SAAAtE,OAAA,CAAAgB,MAAA;UACA,KAAA+C,WAAA,GAAAO,GAAA;UACA,KAAAV,OAAA,CAAA2F,IAAA,MAAAvJ,OAAA,CAAAsE,GAAA;QACA;UACA,KAAA0B,SAAA;QACA;MACA;MACA;MACA,KAAApD,MAAA,CAAAI,MAAA,6BAAA6G,IAAA;IACA;IACA;IACA4D,MAAA,WAAAA,OAAAvK,IAAA;MACA,IAAAY,QAAA,QAAAA,QAAA;MACAA,QAAA,CAAAZ,IAAA,GAAAA,IAAA;MACAY,QAAA,CAAAtD,IAAA,QAAAqD,gBAAA;IACA;IACA6J,OAAA,WAAAA,QAAAd,GAAA,EAAAC,MAAA,EAAAC,MAAA;MACAF,GAAA,CAAAC,MAAA,IAAAD,GAAA,CAAAzC,MAAA,CAAA2C,MAAA,KAAAF,GAAA,CAAAC,MAAA;MACA,OAAAD,GAAA;IACA;IACA;IACA9G,SAAA,WAAAA,UAAA;MACA,IAAA6H,OAAA;MACA,IAAAC,KAAA;QACAvJ,KAAA;QACAiI,IAAA;QACAuB,MAAA;MACA;MACA,IAAAC,SAAA;QACAzJ,KAAA;QACAiI,IAAA;QACAuB,MAAA;MACA;MACA,IAAAE,IAAA;QACA1J,KAAA;QACAiI,IAAA;QACAuB,MAAA;MACA;MACA,KAAAlK,OAAA,CAAAgI,GAAA,WAAAO,EAAA,EAAAC,KAAA;QACA,IAAAD,EAAA,CAAA1G,IAAA;UACAoI,KAAA,CAAAtB,IAAA,CAAA/C,IAAA,CAAA2C,EAAA;QACA;QACA,IAAAA,EAAA,CAAA1G,IAAA;UACAsI,SAAA,CAAAxB,IAAA,CAAA/C,IAAA,CAAA2C,EAAA;QACA;QACA,IAAAA,EAAA,CAAA1G,IAAA;UACAuI,IAAA,CAAAzB,IAAA,CAAA/C,IAAA,CAAA2C,EAAA;QACA;MACA;MACAyB,OAAA,CAAApE,IAAA,CAAAqE,KAAA,EAAAE,SAAA,EAAAC,IAAA;MACA,KAAArK,QAAA,GAAAiK,OAAA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACAK,WAAA,WAAAA,YAAAlN,GAAA,EAAAoJ,GAAA,EAAA1E,IAAA,EAAAyI,IAAA;MAAA,IAAAC,MAAA;MACAzO,UAAA,CAAA+F,IAAA,YAAAvB,MAAA;QACAuB,IAAA,OAAAtB,QAAA,IAAA+J,IAAA;QACAlL,KAAA,EAAAjC,GAAA;QACAuD,KAAA,OAAAnD,QAAA;QACAV,IAAA,OAAAkC,OAAA;QACAyL,OAAA,OAAA7M,OAAA;QACA8M,WAAA,OAAA5M,QAAA;QACA6M,YAAA,OAAAzM,cAAA;QACA0M,MAAA,OAAAtM,SAAA;QACAuM,UAAA,OAAAzM,SAAA;QACA0M,SAAA,OAAA9M,MAAA;MACA,GACAwF,IAAA,WAAAC,GAAA;QACA+G,MAAA,CAAAjK,MAAA,GAAAkD,GAAA,CAAAjE,IAAA,CAAAqC,EAAA;QACA2I,MAAA,CAAA3G,QAAA,CAAAoB,OAAA,CAAAxB,GAAA,CAAAyB,GAAA;QACA,IAAAvC,IAAA,GAAA6H,MAAA;QACAA,MAAA,CAAAjJ,SAAA;QACA,IAAAiF,GAAA;UACAgE,MAAA,CAAAzJ,UAAA;UACAgK,UAAA;YACAnI,MAAA,CAAAoI,QAAA,CAAArL,OAAA,CAAA6K,MAAA,CAAA1E,YAAA;UACA;QACA;UACA0E,MAAA,CAAA1J,OAAA;QACA;MACA,GACA6C,KAAA,WAAAF,GAAA;QACA+G,MAAA,CAAAzJ,UAAA;QACAyJ,MAAA,CAAA1J,OAAA;QACA0J,MAAA,CAAA3G,QAAA,CAAAC,KAAA,CAAAL,GAAA,CAAAyB,GAAA;MACA;IACA;IACA+F,SAAA,WAAAA,UAAA;MACA,UAAAzJ,QAAA,cAAAqC,QAAA,CAAAuE,OAAA;MACA,KAAA8C,UAAA,SAAA1J,QAAA;IACA;IACA2J,WAAA,WAAAA,YAAA;MACA,KAAA9F,OAAA;QACA1E,KAAA;QACA2E,OAAA;QACAC,gBAAA;QACAC,gBAAA;QACAC,iBAAA;QACAC,SAAA;QACAC,kBAAA;MACA,GACAnC,IAAA;QACAuH,UAAA;UACA;UACAnI,MAAA,CAAAwI,KAAA;QACA;MACA,GACAzH,KAAA;IACA;IACA;IACAuH,UAAA,WAAAA,WAAA1E,GAAA,EAAA1E,IAAA,EAAAyI,IAAA;MAAA,IAAAc,MAAA;MACA,SAAA/O,OAAA,CAAAgB,MAAA;QACA,YAAAuG,QAAA,CAAAC,KAAA;MACA;MACA,IAAA0C,GAAA;QACA,KAAA1F,OAAA;MACA;QACA,KAAAC,UAAA;MACA;MACA,IAAA3D,GAAA,QAAA8B,MAAA,CAAAzB,KAAA,CAAAC,YAAA,CAAAqB,YAAA;MACA,UAAA8B,UAAA;QACA,IAAAkI,SAAA,OAAAL,IAAA,GAAAC,OAAA;QACAvL,GAAA,CAAA2L,SAAA,SAAA7J,MAAA,CAAAzB,KAAA,CAAAC,YAAA,CAAAe,UAAA;QACA,KAAAoC,UAAA;MACA;MACA,KAAAsB,SAAA;QACAkJ,MAAA,CAAAf,WAAA,CAAAlN,GAAA,EAAAoJ,GAAA,EAAA1E,IAAA,EAAAyI,IAAA;MACA;IACA;IACA;IACAlI,gBAAA,WAAAA,iBAAA;MAAA,IAAAiJ,MAAA;MACAxP,UAAA,MAAAyE,MAAA;QACAuB,IAAA;MACA,GAAA0B,IAAA,WAAA+H,KAAA;QAAA,IAAA/L,IAAA,GAAA+L,KAAA,CAAA/L,IAAA;QACA,IAAA6H,GAAA;QACA,IAAAmE,OAAA;QACAF,MAAA,CAAApM,MAAA,CAAAI,MAAA,6BAAAE,IAAA,CAAAiM,IAAA,CAAA9K,KAAA;QACA2K,MAAA,CAAApM,MAAA,CAAAI,MAAA,4BAAAE,IAAA,CAAAiM,IAAA,CAAA3O,IAAA;QACAwO,MAAA,CAAApM,MAAA,CAAAI,MAAA,4BAAAE,IAAA,CAAAiM,IAAA,CAAAhB,OAAA;QACAa,MAAA,CAAApM,MAAA,CAAAI,MAAA,6BAAAE,IAAA,CAAAiM,IAAA,CAAAf,WAAA;QACAY,MAAA,CAAApM,MAAA,CAAAI,MAAA,2BAAAE,IAAA,CAAAiM,IAAA,CAAAX,SAAA;QACAQ,MAAA,CAAApM,MAAA,CAAAI,MAAA,8BAAAE,IAAA,CAAAiM,IAAA,CAAAd,YAAA;QACAW,MAAA,CAAApM,MAAA,CAAAI,MAAA,6BAAAE,IAAA,CAAAiM,IAAA,CAAAZ,UAAA;QACAS,MAAA,CAAApM,MAAA,CAAAI,MAAA,8BAAAE,IAAA,CAAAiM,IAAA,CAAAb,MAAA;QACAU,MAAA,CAAAhK,SAAA,GAAA9B,IAAA,CAAAiM,IAAA,CAAA1H,MAAA;QACA,IAAA2H,MAAA,GAAAJ,MAAA,CAAAvJ,QAAA,CAAAvC,IAAA,CAAAiM,IAAA,CAAApM,KAAA;QAEA,SAAAsM,WAAAC,CAAA,EAAAC,CAAA;UACA,OAAAD,CAAA,CAAA7C,SAAA,GAAA8C,CAAA,CAAA9C,SAAA;QACA;QACA2C,MAAA,CAAAI,IAAA,CAAAH,UAAA;QACAD,MAAA,CAAAzD,GAAA,WAAAO,EAAA,EAAAC,KAAA;UACA,IAAAD,EAAA,CAAA1L,IAAA;YACAwO,MAAA,CAAAtK,QAAA;UACA;UACA,IAAAwH,EAAA,CAAA1L,IAAA;YACAwO,MAAA,CAAArK,KAAA;UACA;UACA,IAAAuH,EAAA,CAAA1L,IAAA;YACAwO,MAAA,CAAAnK,MAAA;UACA;UACA,IAAAqH,EAAA,CAAA1L,IAAA;YACAwO,MAAA,CAAAlK,SAAA;UACA;UACA,IAAAoH,EAAA,CAAA1L,IAAA;YACA;YACA;UAAA;UAEA0L,EAAA,CAAA3G,EAAA,UAAA2G,EAAA,CAAAO,SAAA;UACAuC,MAAA,CAAArL,OAAA,CAAAgI,GAAA,WAAA9B,IAAA,EAAAsD,CAAA;YACA,IAAAjB,EAAA,CAAA1L,IAAA,IAAAqJ,IAAA,CAAA4F,WAAA;cACA5F,IAAA,CAAAK,GAAA,GAAAgC,EAAA,CAAAO,SAAA;cACA5C,IAAA,CAAAtE,EAAA,UAAA2G,EAAA,CAAAO,SAAA;cACA,IAAAF,QAAA,GAAAnB,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,SAAA,CAAAzB,IAAA;cACAqF,OAAA,CAAA3F,IAAA,CAAAgD,QAAA;cACAxB,GAAA,CAAAmB,EAAA,CAAAO,SAAA,IAAAP,EAAA;cACA8C,MAAA,CAAAhP,OAAA,CAAAuJ,IAAA,CAAAgD,QAAA;cACA;cACAyC,MAAA,CAAApM,MAAA,CAAAI,MAAA;gBACAkH,GAAA,EAAAgC,EAAA,CAAAO,SAAA;gBACA3L,GAAA,EAAAoL;cACA;YACA;UACA;QACA;QAEA,IAAAwD,IAAA,GAAAN,MAAA,CAAAA,MAAA,CAAApO,MAAA;QAEA,IAAA0O,IAAA,CAAAlP,IAAA;UACAwO,MAAA,CAAApM,MAAA,CAAAI,MAAA,gCAAA0M,IAAA;QACA;QACAV,MAAA,CAAAhJ,SAAA;MACA;IACA;IACAzG,YAAA,WAAAA,aAAA;MAAA,IAAAoQ,MAAA;MACApQ,aAAA,WAAA4H,GAAA;QACAwI,MAAA,CAAAxL,QAAA,GAAAgD,GAAA,CAAAjE,IAAA;MACA;IACA;IACA;IACA0M,KAAA,WAAAA,MAAA;MAAA,IAAAC,OAAA;MACA,SAAA5L,MAAA;QACA,KAAAsD,QAAA,CAAAC,KAAA;MACA;QACA,KAAAsI,QAAA;UACA3G,iBAAA;UACAD,gBAAA;UACA1D,IAAA;QACA,GAAA0B,IAAA,WAAAC,GAAA;UACA0I,OAAA,CAAA7P,OAAA;UACA6P,OAAA,CAAAjM,OAAA;UACAiM,OAAA,CAAA9L,WAAA;UACA8L,OAAA,CAAA9J,gBAAA;QACA;MACA;IACA;EACA;EACAgK,aAAA,WAAAA,cAAA;IACA,KAAAnN,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;EACA;EACAgN,SAAA,WAAAA,UAAA;IACA,KAAApN,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;IACA,KAAAJ,MAAA,CAAAI,MAAA;EACA;AACA","ignoreList":[]}]}