403Webshell
Server IP : 185.208.173.17  /  Your IP : 87.236.161.98
Web Server : Microsoft-IIS/10.0
System : Windows NT SRV8576125506 10.0 build 26100 (Windows Server 2016) AMD64
User : IUSR ( 0)
PHP Version : 7.4.13
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /inetpub/wwwroot/parsmega.nuxt/node_modules/.cache/nuxt/dist/server/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /inetpub/wwwroot/parsmega.nuxt/node_modules/.cache/nuxt/dist/server/server.js.map
{"version":3,"file":"server.js","sources":["webpack:///webpack/bootstrap","webpack:///external \"vue\"","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///external \"ufo\"","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesServer.js","webpack:///./node_modules/ufo/dist/index.cjs","webpack:///external \"vuex\"","webpack:///external \"vue-meta\"","webpack:///external \"axios\"","webpack:///external \"vue-no-ssr\"","webpack:///external \"vue-client-only\"","webpack:///external \"vue-router\"","webpack:///external \"cookie\"","webpack:///external \"vue-i18n\"","webpack:///./api/api_list.js","webpack:///external \"vue-lazy-hydration\"","webpack:///./layouts/error.vue?df33","webpack:///./node_modules/.cache/nuxt/components/nuxt-loading.vue?6bfc","webpack:///./components/shared/footer/app_footer_copyright.vue?4823","webpack:///./components/shared/footer/app_footer_link.vue?55b4","webpack:///./components/shared/footer/app_footer_title.vue?9827","webpack:///./components/shared/footer/app_footer.vue?35b0","webpack:///./components/shared/navigation/navigation_contact_bar.vue?0ec9","webpack:///./components/shared/navigation/navigation_logo_link.vue?c66c","webpack:///./components/shared/navigation/navigation_item.vue?0f2b","webpack:///./components/shared/navigation/navigation_menu_drawer.vue?e1aa","webpack:///./components/shared/navigation/navigation_menu_bar.vue?3c93","webpack:///./components/shared/navigation/navigation_bar.vue?4ee1","webpack:///./layouts/default.vue?b72d","webpack:///./node_modules/.cache/nuxt/empty.js","webpack:///external \"node-fetch\"","webpack:///./node_modules/is-https/dist/index.js","webpack:///external \"defu\"","webpack:///./store/category_filter_data.js","webpack:///./middleware/redirects.js","webpack:///./assets/images/error_page.png","webpack:///./layouts/error.vue?4710","webpack:///./layouts/error.vue?6f44","webpack:///./node_modules/.cache/nuxt/components/nuxt-loading.vue?e6e8","webpack:///./node_modules/.cache/nuxt/components/nuxt-loading.vue?c01f","webpack:///./components/shared/footer/app_footer_copyright.vue?3cd0","webpack:///./components/shared/footer/app_footer_copyright.vue?ef1d","webpack:///./components/shared/footer/app_footer_link.vue?455c","webpack:///./components/shared/footer/app_footer_link.vue?fa4e","webpack:///./components/shared/footer/app_footer_title.vue?a02b","webpack:///./components/shared/footer/app_footer_title.vue?62cf","webpack:///./components/shared/footer/app_footer.vue?4811","webpack:///./components/shared/footer/app_footer.vue?03b4","webpack:///./components/shared/navigation/navigation_contact_bar.vue?3bb4","webpack:///./components/shared/navigation/navigation_contact_bar.vue?1459","webpack:///./assets/images/logo.svg","webpack:///./components/shared/navigation/navigation_logo_link.vue?40bb","webpack:///./components/shared/navigation/navigation_logo_link.vue?b664","webpack:///./components/shared/navigation/navigation_item.vue?59da","webpack:///./components/shared/navigation/navigation_item.vue?2241","webpack:///./components/shared/navigation/navigation_menu_drawer.vue?29e4","webpack:///./components/shared/navigation/navigation_menu_drawer.vue?8054","webpack:///./components/shared/navigation/navigation_menu_bar.vue?5733","webpack:///./components/shared/navigation/navigation_menu_bar.vue?f0e4","webpack:///./components/shared/navigation/navigation_bar.vue?6938","webpack:///./components/shared/navigation/navigation_bar.vue?0573","webpack:///./layouts/default.vue?7d5c","webpack:///./layouts/default.vue?d89e","webpack:///external \"intersection-observer\"","webpack:///external \"js-cookie\"","webpack:///external \"url\"","webpack:///external \"core-js/modules/esnext.map.delete-all.js\"","webpack:///external \"core-js/modules/esnext.map.every.js\"","webpack:///external \"core-js/modules/esnext.map.filter.js\"","webpack:///external \"core-js/modules/esnext.map.find.js\"","webpack:///external \"core-js/modules/esnext.map.find-key.js\"","webpack:///external \"core-js/modules/esnext.map.includes.js\"","webpack:///external \"core-js/modules/esnext.map.key-of.js\"","webpack:///external \"core-js/modules/esnext.map.map-keys.js\"","webpack:///external \"core-js/modules/esnext.map.map-values.js\"","webpack:///external \"core-js/modules/esnext.map.merge.js\"","webpack:///external \"core-js/modules/esnext.map.reduce.js\"","webpack:///external \"core-js/modules/esnext.map.some.js\"","webpack:///external \"core-js/modules/esnext.map.update.js\"","webpack:///./node_modules/.cache/nuxt/middleware.js","webpack:///./node_modules/.cache/nuxt/utils.js","webpack:///./node_modules/.cache/nuxt/mixins/fetch.server.js","webpack:///./node_modules/.cache/nuxt/router.scrollBehavior.js","webpack:///./node_modules/.cache/nuxt/router.js","webpack:///./node_modules/.cache/nuxt/components/nuxt-child.js","webpack:///./layouts/error.vue","webpack:///./layouts/error.vue?63b9","webpack:///./layouts/error.vue?8252","webpack:///./node_modules/.cache/nuxt/components/nuxt.js","webpack:///./node_modules/.cache/nuxt/components/nuxt-loading.vue","webpack:///./node_modules/.cache/nuxt/components/nuxt-loading.vue?a27d","webpack:///./node_modules/.cache/nuxt/components/nuxt-loading.vue?153a","webpack:///./layouts/default.vue","webpack:///./components/shared/footer/app_footer.vue","webpack:///./components/shared/footer/app_footer_copyright.vue","webpack:///./components/shared/footer/app_footer_copyright.vue?6bca","webpack:///./components/shared/footer/app_footer_copyright.vue?05c7","webpack:///./components/shared/footer/app_footer_link.vue","webpack:///./components/shared/footer/app_footer_link.vue?128c","webpack:///./components/shared/footer/app_footer_link.vue?e678","webpack:///./components/shared/footer/app_footer_title.vue","webpack:///./components/shared/footer/app_footer_title.vue?3724","webpack:///./components/shared/footer/app_footer_title.vue?1571","webpack:///./components/shared/footer/app_footer.vue?1c65","webpack:///./components/shared/footer/app_footer.vue?632f","webpack:///./components/shared/navigation/navigation_bar.vue","webpack:///./components/shared/navigation/navigation_contact_bar.vue","webpack:///./components/shared/navigation/navigation_contact_bar.vue?7cb9","webpack:///./components/shared/navigation/navigation_contact_bar.vue?51d9","webpack:///./components/shared/navigation/navigation_menu_bar.vue","webpack:///./components/shared/navigation/navigation_menu_drawer.vue","webpack:///./components/shared/navigation/navigation_logo_link.vue","webpack:///./components/shared/navigation/navigation_logo_link.vue?d976","webpack:///./components/shared/navigation/navigation_logo_link.vue?2990","webpack:///./components/shared/navigation/navigation_item.vue","webpack:///./components/shared/navigation/navigation_item.vue?36ed","webpack:///./components/shared/navigation/navigation_item.vue?ff50","webpack:///./components/shared/navigation/navigation_menu_drawer.vue?878d","webpack:///./components/shared/navigation/navigation_menu_drawer.vue?ec5f","webpack:///./components/shared/navigation/navigation_menu_bar.vue?a051","webpack:///./components/shared/navigation/navigation_menu_bar.vue?cc30","webpack:///./components/shared/navigation/navigation_bar.vue?72b9","webpack:///./components/shared/navigation/navigation_bar.vue?2293","webpack:///./layouts/default.vue?3d85","webpack:///./layouts/default.vue?a350","webpack:///./node_modules/.cache/nuxt/App.js","webpack:///./node_modules/.cache/nuxt/store.js","webpack:///./node_modules/.cache/nuxt/v-lazy-load.js","webpack:///./languages/fa.js","webpack:///./languages/en.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/options.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/utils-common.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/plugin.utils.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/middleware.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/plugin.routing.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/head-meta.js","webpack:///./node_modules/klona/full/index.mjs","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/plugin.main.js","webpack:///./node_modules/.cache/nuxt/axios.js","webpack:///./node_modules/.cache/nuxt/index.js","webpack:///./node_modules/.cache/nuxt/components/nuxt-link.server.js","webpack:///./node_modules/.cache/nuxt/server.js","webpack:///external \"vue-slick-carousel\"","webpack:///external \"@splidejs/splide\"","webpack:///external \"vue-inner-image-zoom\"","webpack:///external \"devalue\""],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded chunks\n \t// \"0\" means \"already loaded\"\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// require() chunk loading for javascript\n\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] !== 0) {\n \t\t\tvar chunk = require(\"./\" + ({\"1\":\"pages/about-us/index\",\"2\":\"pages/articles/index\",\"3\":\"pages/articles/post/_slug/index\",\"4\":\"pages/contact-us/index\",\"5\":\"pages/index\",\"6\":\"pages/products/_slug/index\",\"7\":\"pages/products/category/_slug/index\",\"8\":\"pages/products/index\"}[chunkId]||chunkId) + \".js\");\n \t\t\tvar moreModules = chunk.modules, chunkIds = chunk.ids;\n \t\t\tfor(var moduleId in moreModules) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t\tfor(var i = 0; i < chunkIds.length; i++)\n \t\t\t\tinstalledChunks[chunkIds[i]] = 0;\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/_nuxt/\";\n\n \t// uncaught error handler for webpack runtime\n \t__webpack_require__.oe = function(err) {\n \t\tprocess.nextTick(function() {\n \t\t\tthrow err; // catch this error by using import().catch()\n \t\t});\n \t};\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 35);\n","module.exports = require(\"vue\");","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */,\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options =\n    typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) {\n    // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n          injectStyles.call(\n            this,\n            (options.functional ? this.parent : this).$root.$options.shadowRoot\n          )\n        }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection(h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","module.exports = require(\"ufo\");","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = cssWithMappingToString(item, useSourceMap);\n\n      if (item[2]) {\n        return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n      }\n\n      return content;\n    }).join('');\n  }; // import a list of modules into the list\n  // eslint-disable-next-line func-names\n\n\n  list.i = function (modules, mediaQuery, dedupe) {\n    if (typeof modules === 'string') {\n      // eslint-disable-next-line no-param-reassign\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    if (dedupe) {\n      for (var i = 0; i < this.length; i++) {\n        // eslint-disable-next-line prefer-destructuring\n        var id = this[i][0];\n\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n\n    for (var _i = 0; _i < modules.length; _i++) {\n      var item = [].concat(modules[_i]);\n\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        // eslint-disable-next-line no-continue\n        continue;\n      }\n\n      if (mediaQuery) {\n        if (!item[2]) {\n          item[2] = mediaQuery;\n        } else {\n          item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n        }\n      }\n\n      list.push(item);\n    }\n  };\n\n  return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n  var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n  var cssMapping = item[3];\n\n  if (!cssMapping) {\n    return content;\n  }\n\n  if (useSourceMap && typeof btoa === 'function') {\n    var sourceMapping = toComment(cssMapping);\n    var sourceURLs = cssMapping.sources.map(function (source) {\n      return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n    });\n    return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n  }\n\n  return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n  // eslint-disable-next-line no-undef\n  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n  var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n  return \"/*# \".concat(data, \" */\");\n}","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n  var styles = []\n  var newStyles = {}\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i]\n    var id = item[0]\n    var css = item[1]\n    var media = item[2]\n    var sourceMap = item[3]\n    var part = {\n      id: parentId + ':' + i,\n      css: css,\n      media: media,\n      sourceMap: sourceMap\n    }\n    if (!newStyles[id]) {\n      styles.push(newStyles[id] = { id: id, parts: [part] })\n    } else {\n      newStyles[id].parts.push(part)\n    }\n  }\n  return styles\n}\n","import listToStyles from './listToStyles'\n\nexport default function addStylesServer (parentId, list, isProduction, context) {\n  if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n    context = __VUE_SSR_CONTEXT__\n  }\n  if (context) {\n    if (!context.hasOwnProperty('styles')) {\n      Object.defineProperty(context, 'styles', {\n        enumerable: true,\n        get: function() {\n          return renderStyles(context._styles)\n        }\n      })\n      // expose renderStyles for vue-server-renderer (vuejs/#6353)\n      context._renderStyles = renderStyles\n    }\n\n    var styles = context._styles || (context._styles = {})\n    list = listToStyles(parentId, list)\n    if (isProduction) {\n      addStyleProd(styles, list)\n    } else {\n      addStyleDev(styles, list)\n    }\n  }\n}\n\n// In production, render as few style tags as possible.\n// (mostly because IE9 has a limit on number of style tags)\nfunction addStyleProd (styles, list) {\n  for (var i = 0; i < list.length; i++) {\n    var parts = list[i].parts\n    for (var j = 0; j < parts.length; j++) {\n      var part = parts[j]\n      // group style tags by media types.\n      var id = part.media || 'default'\n      var style = styles[id]\n      if (style) {\n        if (style.ids.indexOf(part.id) < 0) {\n          style.ids.push(part.id)\n          style.css += '\\n' + part.css\n        }\n      } else {\n        styles[id] = {\n          ids: [part.id],\n          css: part.css,\n          media: part.media\n        }\n      }\n    }\n  }\n}\n\n// In dev we use individual style tag for each module for hot-reload\n// and source maps.\nfunction addStyleDev (styles, list) {\n  for (var i = 0; i < list.length; i++) {\n    var parts = list[i].parts\n    for (var j = 0; j < parts.length; j++) {\n      var part = parts[j]\n      styles[part.id] = {\n        ids: [part.id],\n        css: part.css,\n        media: part.media\n      }\n    }\n  }\n}\n\nfunction renderStyles (styles) {\n  var css = ''\n  for (var key in styles) {\n    var style = styles[key]\n    css += '<style data-vue-ssr-id=\"' + style.ids.join(' ') + '\"' +\n        (style.media ? ( ' media=\"' + style.media + '\"' ) : '') + '>' +\n        style.css + '</style>'\n  }\n  return css\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst n = /[^\\0-\\x7E]/;\nconst t = /[\\x2E\\u3002\\uFF0E\\uFF61]/g;\nconst o = { overflow: \"Overflow Error\", \"not-basic\": \"Illegal Input\", \"invalid-input\": \"Invalid Input\" };\nconst e = Math.floor;\nconst r = String.fromCharCode;\nfunction s(n2) {\n  throw new RangeError(o[n2]);\n}\nconst c = function(n2, t2) {\n  return n2 + 22 + 75 * (n2 < 26) - ((t2 != 0) << 5);\n};\nconst u = function(n2, t2, o2) {\n  let r2 = 0;\n  for (n2 = o2 ? e(n2 / 700) : n2 >> 1, n2 += e(n2 / t2); n2 > 455; r2 += 36) {\n    n2 = e(n2 / 35);\n  }\n  return e(r2 + 36 * n2 / (n2 + 38));\n};\nfunction toASCII(o2) {\n  return function(n2, o3) {\n    const e2 = n2.split(\"@\");\n    let r2 = \"\";\n    e2.length > 1 && (r2 = e2[0] + \"@\", n2 = e2[1]);\n    const s2 = function(n3, t2) {\n      const o4 = [];\n      let e3 = n3.length;\n      for (; e3--; ) {\n        o4[e3] = t2(n3[e3]);\n      }\n      return o4;\n    }((n2 = n2.replace(t, \".\")).split(\".\"), o3).join(\".\");\n    return r2 + s2;\n  }(o2, function(t2) {\n    return n.test(t2) ? \"xn--\" + function(n2) {\n      const t3 = [];\n      const o3 = (n2 = function(n3) {\n        const t4 = [];\n        let o4 = 0;\n        const e2 = n3.length;\n        for (; o4 < e2; ) {\n          const r2 = n3.charCodeAt(o4++);\n          if (r2 >= 55296 && r2 <= 56319 && o4 < e2) {\n            const e3 = n3.charCodeAt(o4++);\n            (64512 & e3) == 56320 ? t4.push(((1023 & r2) << 10) + (1023 & e3) + 65536) : (t4.push(r2), o4--);\n          } else {\n            t4.push(r2);\n          }\n        }\n        return t4;\n      }(n2)).length;\n      let f = 128;\n      let i = 0;\n      let l = 72;\n      for (const o4 of n2) {\n        o4 < 128 && t3.push(r(o4));\n      }\n      const h = t3.length;\n      let p = h;\n      for (h && t3.push(\"-\"); p < o3; ) {\n        let o4 = 2147483647;\n        for (const t4 of n2) {\n          t4 >= f && t4 < o4 && (o4 = t4);\n        }\n        const a = p + 1;\n        o4 - f > e((2147483647 - i) / a) && s(\"overflow\"), i += (o4 - f) * a, f = o4;\n        for (const o5 of n2) {\n          if (o5 < f && ++i > 2147483647 && s(\"overflow\"), o5 == f) {\n            let n3 = i;\n            for (let o6 = 36; ; o6 += 36) {\n              const s2 = o6 <= l ? 1 : o6 >= l + 26 ? 26 : o6 - l;\n              if (n3 < s2) {\n                break;\n              }\n              const u2 = n3 - s2;\n              const f2 = 36 - s2;\n              t3.push(r(c(s2 + u2 % f2, 0))), n3 = e(u2 / f2);\n            }\n            t3.push(r(c(n3, 0))), l = u(i, a, p == h), i = 0, ++p;\n          }\n        }\n        ++i, ++f;\n      }\n      return t3.join(\"\");\n    }(t2) : t2;\n  });\n}\n\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\nconst ENC_BRACKET_OPEN_RE = /%5B/gi;\nconst ENC_BRACKET_CLOSE_RE = /%5D/gi;\nconst ENC_CARET_RE = /%5E/gi;\nconst ENC_BACKTICK_RE = /%60/gi;\nconst ENC_CURLY_OPEN_RE = /%7B/gi;\nconst ENC_PIPE_RE = /%7C/gi;\nconst ENC_CURLY_CLOSE_RE = /%7D/gi;\nconst ENC_SPACE_RE = /%20/gi;\nconst ENC_SLASH_RE = /%2F/gi;\nconst ENC_ENC_SLASH_RE = /%252F/gi;\nfunction encode(text) {\n  return encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\nfunction encodeHash(text) {\n  return encode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\nfunction encodeQueryValue(text) {\n  return encode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\nfunction encodeQueryKey(text) {\n  return encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\nfunction encodePath(text) {\n  return encode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\").replace(ENC_ENC_SLASH_RE, \"%2F\").replace(AMPERSAND_RE, \"%26\").replace(PLUS_RE, \"%2B\");\n}\nfunction encodeParam(text) {\n  return encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text = \"\") {\n  try {\n    return decodeURIComponent(\"\" + text);\n  } catch (_err) {\n    return \"\" + text;\n  }\n}\nfunction decodePath(text) {\n  return decode(text.replace(ENC_SLASH_RE, \"%252F\"));\n}\nfunction decodeQueryValue(text) {\n  return decode(text.replace(PLUS_RE, \" \"));\n}\nfunction encodeHost(name = \"\") {\n  return toASCII(name);\n}\n\nfunction parseQuery(paramsStr = \"\") {\n  const obj = {};\n  if (paramsStr[0] === \"?\") {\n    paramsStr = paramsStr.substr(1);\n  }\n  for (const param of paramsStr.split(\"&\")) {\n    const s = param.match(/([^=]+)=?(.*)/) || [];\n    if (s.length < 2) {\n      continue;\n    }\n    const key = decode(s[1]);\n    if (key === \"__proto__\" || key === \"constructor\") {\n      continue;\n    }\n    const value = decodeQueryValue(s[2] || \"\");\n    if (obj[key]) {\n      if (Array.isArray(obj[key])) {\n        obj[key].push(value);\n      } else {\n        obj[key] = [obj[key], value];\n      }\n    } else {\n      obj[key] = value;\n    }\n  }\n  return obj;\n}\nfunction encodeQueryItem(key, val) {\n  if (!val) {\n    return encodeQueryKey(key);\n  }\n  if (Array.isArray(val)) {\n    return val.map((_val) => `${encodeQueryKey(key)}=${encodeQueryValue(_val)}`).join(\"&\");\n  }\n  return `${encodeQueryKey(key)}=${encodeQueryValue(val)}`;\n}\nfunction stringifyQuery(query) {\n  return Object.keys(query).map((k) => encodeQueryItem(k, query[k])).join(\"&\");\n}\n\nclass $URL {\n  constructor(input = \"\") {\n    this.query = {};\n    if (typeof input !== \"string\") {\n      throw new TypeError(`URL input should be string received ${typeof input} (${input})`);\n    }\n    const parsed = parseURL(input);\n    this.protocol = decode(parsed.protocol);\n    this.host = decode(parsed.host);\n    this.auth = decode(parsed.auth);\n    this.pathname = decodePath(parsed.pathname);\n    this.query = parseQuery(parsed.search);\n    this.hash = decode(parsed.hash);\n  }\n  get hostname() {\n    return parseHost(this.host).hostname;\n  }\n  get port() {\n    return parseHost(this.host).port || \"\";\n  }\n  get username() {\n    return parseAuth(this.auth).username;\n  }\n  get password() {\n    return parseAuth(this.auth).password || \"\";\n  }\n  get hasProtocol() {\n    return this.protocol.length;\n  }\n  get isAbsolute() {\n    return this.hasProtocol || this.pathname[0] === \"/\";\n  }\n  get search() {\n    const q = stringifyQuery(this.query);\n    return q.length ? \"?\" + q : \"\";\n  }\n  get searchParams() {\n    const p = new URLSearchParams();\n    for (const name in this.query) {\n      const value = this.query[name];\n      if (Array.isArray(value)) {\n        value.forEach((v) => p.append(name, v));\n      } else {\n        p.append(name, value || \"\");\n      }\n    }\n    return p;\n  }\n  get origin() {\n    return (this.protocol ? this.protocol + \"//\" : \"\") + encodeHost(this.host);\n  }\n  get fullpath() {\n    return encodePath(this.pathname) + this.search + encodeHash(this.hash);\n  }\n  get encodedAuth() {\n    if (!this.auth) {\n      return \"\";\n    }\n    const { username, password } = parseAuth(this.auth);\n    return encodeURIComponent(username) + (password ? \":\" + encodeURIComponent(password) : \"\");\n  }\n  get href() {\n    const auth = this.encodedAuth;\n    const originWithAuth = (this.protocol ? this.protocol + \"//\" : \"\") + (auth ? auth + \"@\" : \"\") + encodeHost(this.host);\n    return this.hasProtocol && this.isAbsolute ? originWithAuth + this.fullpath : this.fullpath;\n  }\n  append(url) {\n    if (url.hasProtocol) {\n      throw new Error(\"Cannot append a URL with protocol\");\n    }\n    Object.assign(this.query, url.query);\n    if (url.pathname) {\n      this.pathname = withTrailingSlash(this.pathname) + withoutLeadingSlash(url.pathname);\n    }\n    if (url.hash) {\n      this.hash = url.hash;\n    }\n  }\n  toJSON() {\n    return this.href;\n  }\n  toString() {\n    return this.href;\n  }\n}\n\nfunction isRelative(inputStr) {\n  return [\"./\", \"../\"].some((str) => inputStr.startsWith(str));\n}\nfunction hasProtocol(inputStr, acceptProtocolRelative = false) {\n  return /^\\w+:\\/\\/.+/.test(inputStr) || acceptProtocolRelative && /^\\/\\/[^/]+/.test(inputStr);\n}\nconst TRAILING_SLASH_RE = /\\/$|\\/\\?/;\nfunction hasTrailingSlash(input = \"\", queryParams = false) {\n  if (!queryParams) {\n    return input.endsWith(\"/\");\n  }\n  return TRAILING_SLASH_RE.test(input);\n}\nfunction withoutTrailingSlash(input = \"\", queryParams = false) {\n  if (!queryParams) {\n    return (hasTrailingSlash(input) ? input.slice(0, -1) : input) || \"/\";\n  }\n  if (!hasTrailingSlash(input, true)) {\n    return input || \"/\";\n  }\n  const [s0, ...s] = input.split(\"?\");\n  return (s0.slice(0, -1) || \"/\") + (s.length ? `?${s.join(\"?\")}` : \"\");\n}\nfunction withTrailingSlash(input = \"\", queryParams = false) {\n  if (!queryParams) {\n    return input.endsWith(\"/\") ? input : input + \"/\";\n  }\n  if (hasTrailingSlash(input, true)) {\n    return input || \"/\";\n  }\n  const [s0, ...s] = input.split(\"?\");\n  return s0 + \"/\" + (s.length ? `?${s.join(\"?\")}` : \"\");\n}\nfunction hasLeadingSlash(input = \"\") {\n  return input.startsWith(\"/\");\n}\nfunction withoutLeadingSlash(input = \"\") {\n  return (hasLeadingSlash(input) ? input.substr(1) : input) || \"/\";\n}\nfunction withLeadingSlash(input = \"\") {\n  return hasLeadingSlash(input) ? input : \"/\" + input;\n}\nfunction cleanDoubleSlashes(input = \"\") {\n  return input.split(\"://\").map((str) => str.replace(/\\/{2,}/g, \"/\")).join(\"://\");\n}\nfunction withBase(input, base) {\n  if (isEmptyURL(base)) {\n    return input;\n  }\n  const _base = withoutTrailingSlash(base);\n  if (input.startsWith(_base)) {\n    return input;\n  }\n  return joinURL(_base, input);\n}\nfunction withoutBase(input, base) {\n  if (isEmptyURL(base)) {\n    return input;\n  }\n  const _base = withoutTrailingSlash(base);\n  if (input.startsWith(_base)) {\n    return input.substr(_base.length) || \"/\";\n  }\n  return input;\n}\nfunction withQuery(input, query) {\n  const parsed = parseURL(input);\n  const mergedQuery = { ...parseQuery(parsed.search), ...query };\n  parsed.search = stringifyQuery(mergedQuery);\n  return stringifyParsedURL(parsed);\n}\nfunction getQuery(input) {\n  return parseQuery(parseURL(input).search);\n}\nfunction isEmptyURL(url) {\n  return !url || url === \"/\";\n}\nfunction isNonEmptyURL(url) {\n  return url && url !== \"/\";\n}\nfunction joinURL(base, ...input) {\n  let url = base || \"\";\n  for (const i of input.filter(isNonEmptyURL)) {\n    url = url ? withTrailingSlash(url) + withoutLeadingSlash(i) : i;\n  }\n  return url;\n}\nfunction createURL(input) {\n  return new $URL(input);\n}\nfunction normalizeURL(input) {\n  return createURL(input).toString();\n}\nfunction resolveURL(base, ...input) {\n  const url = createURL(base);\n  for (const i of input.filter(isNonEmptyURL)) {\n    url.append(createURL(i));\n  }\n  return url.toString();\n}\nfunction isSamePath(p1, p2) {\n  return decode(withoutTrailingSlash(p1)) === decode(withoutTrailingSlash(p2));\n}\n\nfunction parseURL(input = \"\", defaultProto) {\n  if (!hasProtocol(input, true)) {\n    return defaultProto ? parseURL(defaultProto + input) : parsePath(input);\n  }\n  const [protocol = \"\", auth, hostAndPath] = (input.replace(/\\\\/g, \"/\").match(/([^:/]+:)?\\/\\/([^/@]+@)?(.*)/) || []).splice(1);\n  const [host = \"\", path = \"\"] = (hostAndPath.match(/([^/?#]*)(.*)?/) || []).splice(1);\n  const { pathname, search, hash } = parsePath(path);\n  return {\n    protocol,\n    auth: auth ? auth.substr(0, auth.length - 1) : \"\",\n    host,\n    pathname,\n    search,\n    hash\n  };\n}\nfunction parsePath(input = \"\") {\n  const [pathname = \"\", search = \"\", hash = \"\"] = (input.match(/([^#?]*)(\\?[^#]*)?(#.*)?/) || []).splice(1);\n  return {\n    pathname,\n    search,\n    hash\n  };\n}\nfunction parseAuth(input = \"\") {\n  const [username, password] = input.split(\":\");\n  return {\n    username: decode(username),\n    password: decode(password)\n  };\n}\nfunction parseHost(input = \"\") {\n  const [hostname, port] = (input.match(/([^/]*)(:0-9+)?/) || []).splice(1);\n  return {\n    hostname: decode(hostname),\n    port\n  };\n}\nfunction stringifyParsedURL(parsed) {\n  const fullpath = parsed.pathname + (parsed.search ? (parsed.search.startsWith(\"?\") ? \"\" : \"?\") + parsed.search : \"\") + parsed.hash;\n  if (!parsed.protocol) {\n    return fullpath;\n  }\n  return parsed.protocol + \"//\" + (parsed.auth ? parsed.auth + \"@\" : \"\") + parsed.host + fullpath;\n}\n\nexports.$URL = $URL;\nexports.cleanDoubleSlashes = cleanDoubleSlashes;\nexports.createURL = createURL;\nexports.decode = decode;\nexports.decodePath = decodePath;\nexports.decodeQueryValue = decodeQueryValue;\nexports.encode = encode;\nexports.encodeHash = encodeHash;\nexports.encodeHost = encodeHost;\nexports.encodeParam = encodeParam;\nexports.encodePath = encodePath;\nexports.encodeQueryItem = encodeQueryItem;\nexports.encodeQueryKey = encodeQueryKey;\nexports.encodeQueryValue = encodeQueryValue;\nexports.getQuery = getQuery;\nexports.hasLeadingSlash = hasLeadingSlash;\nexports.hasProtocol = hasProtocol;\nexports.hasTrailingSlash = hasTrailingSlash;\nexports.isEmptyURL = isEmptyURL;\nexports.isNonEmptyURL = isNonEmptyURL;\nexports.isRelative = isRelative;\nexports.isSamePath = isSamePath;\nexports.joinURL = joinURL;\nexports.normalizeURL = normalizeURL;\nexports.parseAuth = parseAuth;\nexports.parseHost = parseHost;\nexports.parsePath = parsePath;\nexports.parseQuery = parseQuery;\nexports.parseURL = parseURL;\nexports.resolveURL = resolveURL;\nexports.stringifyParsedURL = stringifyParsedURL;\nexports.stringifyQuery = stringifyQuery;\nexports.withBase = withBase;\nexports.withLeadingSlash = withLeadingSlash;\nexports.withQuery = withQuery;\nexports.withTrailingSlash = withTrailingSlash;\nexports.withoutBase = withoutBase;\nexports.withoutLeadingSlash = withoutLeadingSlash;\nexports.withoutTrailingSlash = withoutTrailingSlash;\n","module.exports = require(\"vuex\");","module.exports = require(\"vue-meta\");","module.exports = require(\"axios\");","module.exports = require(\"vue-no-ssr\");","module.exports = require(\"vue-client-only\");","module.exports = require(\"vue-router\");","module.exports = require(\"cookie\");","module.exports = require(\"vue-i18n\");","const faBaseUrl = \"https://panel.parsmega.com/index.php/wp-json/wp/v2/\";\nconst enBaseUrl = \"https://enpanel.parsmega.com/index.php/wp-json/wp/v2/\";\n\nfunction getBaseUrlForLocale(local) {\n  return local == \"fa\" ? faBaseUrl : enBaseUrl;\n}\n\nfunction apiValidator(response) {\n  if (!response && !response.data) {\n    return {\n      isValid: false,\n      result: null,\n    };\n  }\n  return {\n    isValid: parseInt(response.status) < 300,\n    result: response.data || null,\n  };\n}\n\nfunction mapArticle(article) {\n  return {\n    id: article.id,\n    slug: article.slug,\n    title: article.title.rendered,\n    content: article.acf.content,\n    image: article.acf.image,\n    canonicalAdress: article.acf.canonical_address,\n    summary: article.acf.summary,\n    seoDescription: article.acf.seo_description,\n    link: `/articles/post/${article.slug}`,\n    publishDate: article.date_gmt,\n    seoJsonLd: article.acf.structured_data || null,\n  };\n}\n\nfunction mapCategory(category) {\n  return {\n    id: category.id,\n    slug: category.slug,\n    parent: category.parent,\n    image: category.acf.banner,\n    content: category.acf.content,\n    seoDescription: category.acf.seo_description,\n    title: category.acf.browser_tab_title,\n    seoJsonLd: category.acf.structured_data || null,\n  };\n}\n\nfunction mapProduct(product) {\n  let images = [];\n  if (product.acf.gallery_image_1) images.push(product.acf.gallery_image_1);\n  if (product.acf.gallery_image_2) images.push(product.acf.gallery_image_2);\n  if (product.acf.gallery_image_3) images.push(product.acf.gallery_image_3);\n  if (product.acf.gallery_image_4) images.push(product.acf.gallery_image_4);\n\n  let files = [];\n  if (product.acf.manual_file1 && product.acf.manual_file1.manual_file_adress) {\n    files.push({\n      name: product.acf.manual_file1.manual_file_name,\n      url: product.acf.manual_file1.manual_file_adress,\n    });\n  }\n  if (product.acf.manual_file2 && product.acf.manual_file2.manual_file_adress) {\n    files.push({\n      name: product.acf.manual_file2.manual_file_name,\n      url: product.acf.manual_file2.manual_file_adress,\n    });\n  }\n  if (product.acf.manual_file3 && product.acf.manual_file3.manual_file_adress) {\n    files.push({\n      name: product.acf.manual_file3.manual_file_name,\n      url: product.acf.manual_file3.manual_file_adress,\n    });\n  }\n  if (product.acf.manual_file4 && product.acf.manual_file4.manual_file_adress) {\n    files.push({\n      name: product.acf.manual_file4.manual_file_name,\n      url: product.acf.manual_file4.manual_file_adress,\n    });\n  }\n\n  let videos = [];\n  if (product.acf.videos_000_video_link_1)\n    videos.push(product.acf.videos_000_video_link_1);\n  if (product.acf.videos_001_video_link_2)\n    videos.push(product.acf.videos_001_video_link_2);\n  if (product.acf.videos_002_video_link_3)\n    videos.push(product.acf.videos_002_video_link_3);\n  if (product.acf.videos_003_video_link_4)\n    videos.push(product.acf.videos_003_video_link_4);\n  if (product.acf.videos_004_video_link_5)\n    videos.push(product.acf.videos_004_video_link_5);\n  if (product.acf.videos_005_video_link_6)\n    videos.push(product.acf.videos_005_video_link_6);\n  if (product.acf.videos_006_video_link_7)\n    videos.push(product.acf.videos_006_video_link_7);\n  if (product.acf.videos_007_video_link_8)\n    videos.push(product.acf.videos_007_video_link_8);\n  if (product.acf.videos_008_video_link_9)\n    videos.push(product.acf.videos_008_video_link_9);\n  if (product.acf.videos_009_video_link_10)\n    videos.push(product.acf.videos_009_video_link_10);\n\n  return {\n    acf: product.acf,\n    categories: product.categories || [],\n    id: product.id,\n    title: product.title.rendered,\n    slug: product.slug,\n    summary: product.acf.summary,\n    canonicalAdress: product.acf.canonical_address,\n    hasGuarantee: product.acf.has_guarantee,\n    guaranteeValue: product.acf.guarantee_value,\n    images: images,\n    files: files,\n    price: product.acf.product_price,\n    purchaseLink: product.acf.purchase_link,\n    seoDescription: product.acf.seo_description,\n    sourcePageAddress: product.acf.source_page_address,\n    description: product.acf.description,\n    videos: videos,\n    link: `/products/${product.slug}`,\n    seoJsonLd: product.acf.structured_data || null,\n    order: {\n      homePage: product.acf.home_page_order || 100000,\n      productsPage: product.acf.main_category_order || 100000,\n      categoryPage: product.acf.products_page_order || 100000,\n    },\n  };\n}\n\nexport function addComment(connector, local, name, email, content, postId) {\n  console.log(\"local addComment\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}/comments?author_name=${name}&author_email=${email}&content=${content}&post=${postId}`;\n  return connector.post(url);\n}\n\nexport async function getBlogSlider(connector, local) {\n  const sliderCategory = 8;\n  console.log(\"local getBlogSlider\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}articles?_embed&categories=${sliderCategory}`;\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (!isValid) return null;\n    let articles = result.map(mapArticle);\n    return articles.length > 0 ? articles[0] : null;\n  } catch (e) {\n    return null;\n  }\n}\n\nexport async function getArticle(connector, local, slug) {\n  console.log(\"local getArticle\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}articles?_embed&filter[name]=${slug}`;\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (!isValid) return null;\n    let articles = result.map(mapArticle);\n    return articles.length > 0 ? articles[0] : null;\n  } catch (e) {\n    return null;\n  }\n}\n\nexport async function getArticles(connector, local, articleCount = 1, page = 1) {\n  console.log(\"local getArticles\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}articles?status=publish&per_page=${articleCount}&page=${page}`;\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (isValid) return result.map(mapArticle);\n    return [];\n  } catch (e) {\n    return [];\n  }\n}\n\nexport async function getCategory(connector, local, slug) {\n  console.log(\"local getCategory\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}categories?slug=${slug}`;\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (!isValid) return null;\n    return result.map(mapCategory)[0];\n  } catch (e) {\n    return null;\n  }\n}\n\nexport async function getComments(connector, local, postId) {\n  console.log(\"local getComments\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}/comments?per_page=50&post=${postId}`;\n\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (!isValid) return [];\n\n    return result.map((comment) => {\n      return {\n        id: comment.id,\n        authorName: comment.author_name,\n        parent: comment.parent,\n        date: comment.date_gmt,\n        content: comment.content.rendered,\n      };\n    });\n  } catch (e) {\n    return [];\n  }\n}\n\nexport async function getCustomers(connector, local, customerCount = 1, page = 1) {\n  console.log(\"local getCustomers\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}customers?status=publish&per_page=${customerCount}&page=${page}`;\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (isValid)\n      return result.map((slide) => {\n        return {\n          id: slide.id,\n          name: slide.acf.customer_name,\n          link: slide.acf.customer_link,\n          logo: slide.acf.customer_logo,\n        };\n      });\n    return [];\n  } catch (e) {\n    return [];\n  }\n}\n\nexport async function getFooterLinks(connector, local) {\n  console.log(\"local getFooterLinks\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}footerlinks?status=publish&per_page=100&page=1`;\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (isValid)\n      return result.map((item) => {\n        return {\n          id: item.id,\n          showName: item.acf.showname,\n          order: item.acf.order_in_column,\n          column: item.acf.column_number,\n          linkUrl: item.acf.link_url,\n          isExternal: item.acf.is_external_link == \"true\",\n        };\n      });\n    return [];\n  } catch (e) {\n    return [];\n  }\n}\n\nexport async function getProduct(connector, local, slug) {\n  console.log(\"local getProduct\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}products?_embed&filter[name]=${slug}`;\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (!isValid) return null;\n    return result.map(mapProduct)[0];\n  } catch (e) {\n    return null;\n  }\n}\n\nexport async function getProducts(connector, local, productCount = 1, page = 1) {\n  console.log(\"local getProducts\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}products?status=publish&per_page=${productCount}&page=${page}`;\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (isValid) return result.map(mapProduct);\n    return [];\n  } catch (e) {\n    return [];\n  }\n}\n\nexport async function getProductsByCategoryId(\n  connector,\n  local,\n  categoryId,\n  productCount = 100,\n  page = 1\n) {\n  console.log(\"local getProductsByCategoryId\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}products?status=publish&categories=${categoryId}&per_page=${productCount}&page=${page}`;\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (isValid) return result.map(mapProduct);\n    return [];\n  } catch (e) {\n    return [];\n  }\n}\n\nexport async function getSimilarProducts(\n  connector,\n  local,\n  productCount = 4,\n  categoryId\n) {\n  console.log(\"local getSimilarProducts\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}products?status=publish&per_page=${productCount}&categories=${categoryId}`;\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (isValid) return result.map(mapProduct);\n    return [];\n  } catch (e) {\n    return [];\n  }\n}\n\nexport async function getSlides(connector, local, slideCount = 1, page = 1) {\n  console.log(\"local getSlides\", local);\n  const baseUrl = getBaseUrlForLocale(local);\n  const url = `${baseUrl}slides?status=publish&per_page=${slideCount}&page=${page}`;\n  try {\n    const apiResult = await connector.get(url);\n    const { isValid, result } = apiValidator(apiResult);\n    if (isValid)\n      return result.map((slide) => {\n        return {\n          id: slide.id,\n          title: slide.acf.slide_title,\n          description: slide.acf.slide_description,\n          link: slide.acf.slide_link,\n          image: slide.acf.slide_image,\n        };\n      });\n    return [];\n  } catch (e) {\n    return [];\n  }\n}\n","module.exports = require(\"vue-lazy-hydration\");","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/string-replace-loader/index.js??ref--12!./error.vue?vue&type=style&index=0&id=f1fe3c98&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"437f22e0\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??ref--3-oneOf-1-1!../../../vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--3-oneOf-1-2!../../../vue-loader/lib/index.js??vue-loader-options!./nuxt-loading.vue?vue&type=style&index=0&id=0a6c674f&prod&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../../../vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"339a7c13\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_copyright.vue?vue&type=style&index=0&id=11bd7140&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"84ee9680\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_link.vue?vue&type=style&index=0&id=1a59aadf&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"85fb410c\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_title.vue?vue&type=style&index=0&id=26b8a362&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"b4f63620\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer.vue?vue&type=style&index=0&id=39e1f500&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"29db2d29\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_contact_bar.vue?vue&type=style&index=0&id=8875293a&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"55f6db62\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_logo_link.vue?vue&type=style&index=0&id=2301b45b&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"4f719460\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_item.vue?vue&type=style&index=0&id=4f134f80&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"339d3072\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_menu_drawer.vue?vue&type=style&index=0&id=119f9dc8&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"08e6ec88\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_menu_bar.vue?vue&type=style&index=0&id=8336deaa&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"49459634\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_bar.vue?vue&type=style&index=0&id=237fa5d8&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"731ba4e7\", content, true, context)\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/string-replace-loader/index.js??ref--12!./default.vue?vue&type=style&index=0&id=f4ecc31a&prod&lang=scss&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to SSR context\nvar add = require(\"!../node_modules/vue-style-loader/lib/addStylesServer.js\").default\nmodule.exports.__inject__ = function (context) {\n  add(\"efbe4050\", content, true, context)\n};","// This file is intentionally left empty for noop aliases\n","module.exports = require(\"node-fetch\");","'use strict';\n\nfunction isHTTPS(req, trustProxy = true) {\n  const _xForwardedProto = trustProxy && req.headers ? req.headers[\"x-forwarded-proto\"] : void 0;\n  const protoCheck = typeof _xForwardedProto === \"string\" ? _xForwardedProto.includes(\"https\") : void 0;\n  if (protoCheck) {\n    return true;\n  }\n  const _encrypted = req.connection ? req.connection.encrypted : void 0;\n  const encryptedCheck = _encrypted !== void 0 ? _encrypted === true : void 0;\n  if (encryptedCheck) {\n    return true;\n  }\n  if (protoCheck === void 0 && encryptedCheck === void 0) {\n    return void 0;\n  }\n  return false;\n}\n\nmodule.exports = isHTTPS;\n","module.exports = require(\"defu\");","const analogConvertorFilterData = [\n    {\n\t\tsectionTitle: \"technicalFilter\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"converter type\",\n\t\t\t\tkey: \"technical__008_converter_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"Analog to digital\",\n\t\t\t\t\t\"Digital to analog\",\n\t\t\t\t\t\"Isolator signal\",\n\t\t\t\t\t\"Signal converter\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t}\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Electrical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"power supply\",\n\t\t\t\tkey: \"electrical__000_power_supply\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"12 VDC\",\n\t\t\t\t\t\"24 VDC\",\n\t\t\t\t\t\"230 VAC\",\n\t\t\t\t\t\"no power supply\"\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Display Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"display\",\n\t\t\t\tkey: \"display__000_display\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Physical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"installation type\",\n\t\t\t\tkey: \"physical__003_installation_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"Din Rail\",\n\t\t\t\t\t\"Panel\",\n\t\t\t\t\t\"walled\",\n\t\t\t\t\t\"desktop\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Analog Input Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"analog input\",\n\t\t\t\tkey: \"analog_input__000_analog_input\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"analog input type\",\n\t\t\t\tkey: \"analog_input__002_analog_input_type\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"0-10V; 0-5V; 0-20mA; 4-20mA\",\n\t\t\t\t\t\"0/4-20 mA; 0-5/10 V; ±5/10 V\",\n\t\t\t\t\t\"±0-20 mA; 0/4-20 mA; 0-5/10 V; ±5/10 V\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Analog Output Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"analog output\",\n\t\t\t\tkey: \"analog_output__000_analog_output\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"analog output type\",\n\t\t\t\tkey: \"analog_output__003_analog_output_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"0-10V; 0-5V; 0-20mA; 4-20mA\",\n\t\t\t\t\t\"0/4-20 mA; 0-5/10 V; ±5/10 V\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Serial Communication Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"serial communication\",\n\t\t\t\tkey: \"serial__000_serial_communication\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: null\n\t\t\t},\n            {\n                title: \"port type\",\n                key: \"serial__002_serial_port_type\",\n\t\t\t\tinputType: \"checkbox\",\n                values: [\n                    \"RS485\",\n                    \"RS232\",\n                    \"RS422\",\n                ],\n                selectedValues: []\n            }\n\t\t]\n\t},\n];\n\nconst counterTimerFilterData = [\n\t{\n\t\tsectionTitle: \"technicalFilter\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"controller type\",\n\t\t\t\tkey: \"technical__012_controller_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"timer\",\n\t\t\t\t\t\"counter\",\n\t\t\t\t\t\"telemeter\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"controller input type\",\n\t\t\t\tkey: \"technical__013_controller_input_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"Encoder\",\n\t\t\t\t\t\"NPN\",\n\t\t\t\t\t\"PNP\"\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"inputOutputFilter\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"analog output\",\n\t\t\t\tkey: \"analog_output__000_analog_output\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"analog output type\",\n\t\t\t\tkey: \"analog_output__003_analog_output_type\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"0-10V; 0-5V; 0-20mA; 4-20mA\",\n\t\t\t\t\t\"0/4-20 mA; 0-5/10 V; ±5/10 V\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"connectionFilter\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"serial communication\",\n\t\t\t\tkey: \"serial__000_serial_communication\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"serial port type\",\n\t\t\t\tkey: \"serial__002_serial_port_type\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"RS485\",\n\t\t\t\t\t\"RS232\",\n\t\t\t\t\t\"RS422\"\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"otherFilter\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"display\",\n\t\t\t\tkey: \"display__000_display\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"power supply\",\n\t\t\t\tkey: \"electrical__000_power_supply\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"12 VDC\",\n\t\t\t\t\t\"24 VDC\",\n\t\t\t\t\t\"230 VAC\"\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"installation type\",\n\t\t\t\tkey: \"physical__003_installation_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"Din Rail\",\n\t\t\t\t\t\"Panel\",\n\t\t\t\t\t\"walled\",\n\t\t\t\t\t\"desktop\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t}\n];\n\nconst ioDevelopmentFilterData = [\n    {\n\t\tsectionTitle: \"technicalFilter\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"number of digital outputs\",\n\t\t\t\tkey: \"technical__010_number_of_digital_outputs\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"4\",\n\t\t\t\t\t\"8\",\n\t\t\t\t\t\"12\",\n\t\t\t\t\t\"16\"\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"number of digital inputs\",\n\t\t\t\tkey: \"technical__011_number_of_digital_inputs\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"4\",\n\t\t\t\t\t\"8\",\n\t\t\t\t\t\"12\",\n\t\t\t\t\t\"16\"\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t}\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Electrical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"power supply\",\n\t\t\t\tkey: \"electrical__000_power_supply\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"12 VDC\",\n\t\t\t\t\t\"24 VDC\",\n\t\t\t\t\t\"230 VAC\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Physical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"installation type\",\n\t\t\t\tkey: \"physical__003_installation_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"Din Rail\",\n\t\t\t\t\t\"Panel\",\n\t\t\t\t\t\"walled\",\n\t\t\t\t\t\"desktop\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Digital Input Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"digital input\",\n\t\t\t\tkey: \"digital_input__000_digital_input\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Digital Output Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"digital output\",\n\t\t\t\tkey: \"digital_output__000_digital_output\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Serial Communication Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"serial communication\",\n\t\t\t\tkey: \"serial__000_serial_communication\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: null\n\t\t\t},\n            {\n                title: \"port type\",\n                key: \"serial__002_serial_port_type\",\n\t\t\t\tinputType: \"checkbox\",\n                values: [\n                    \"RS485\",\n                    \"RS232\",\n                    \"RS422\",\n                ],\n                selectedValues: []\n            }\n\t\t]\n\t},\n\n];\n\nconst productsPageFilterData = [\n    {\n\t\tsectionTitle: \"technicalFilter\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"controller type\",\n\t\t\t\tkey: \"technical__012_controller_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"timer\",\n\t\t\t\t\t\"counter\",\n\t\t\t\t\t\"telemeter\",\n\t\t\t\t\t\"USB to RS232\",\n\t\t\t\t\t\"USB to RS485\",\n\t\t\t\t\t\"RS485 to FIELDBUS\",\n\t\t\t\t\t\"RS232 to FIELDBUS\",\n\t\t\t\t\t\"RS232 to RS485\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"controller input type\",\n\t\t\t\tkey: \"technical__013_controller_input_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"Encoder\",\n\t\t\t\t\t\"NPN\",\n\t\t\t\t\t\"PNP\"\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t}\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Electrical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"power supply\",\n\t\t\t\tkey: \"electrical__000_power_supply\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"12 VDC\",\n\t\t\t\t\t\"24 VDC\",\n\t\t\t\t\t\"230 VAC\",\n\t\t\t\t\t\"no power supply\"\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"battery\",\n\t\t\t\tkey: \"electrical__002_battery\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Physical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"installation type\",\n\t\t\t\tkey: \"physical__003_installation_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"Din Rail\",\n\t\t\t\t\t\"Panel\",\n\t\t\t\t\t\"walled\",\n\t\t\t\t\t\"desktop\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Digital Input Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"digital input\",\n\t\t\t\tkey: \"digital_input__000_digital_input\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Digital Output Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"digital output\",\n\t\t\t\tkey: \"digital_output__000_digital_output\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Serial Communication Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"serial communication\",\n\t\t\t\tkey: \"serial__000_serial_communication\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: null\n\t\t\t},\n            {\n                title: \"port type\",\n                key: \"serial__002_serial_port_type\",\n\t\t\t\tinputType: \"checkbox\",\n                values: [\n                    \"RS485\",\n                    \"RS232\",\n                    \"RS422\",\n                ],\n                selectedValues: []\n            }\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Display Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"display\",\n\t\t\t\tkey: \"display__000_display\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\n];\n\nconst serialConvertorFilterData = [\n    {\n\t\tsectionTitle: \"technicalFilter\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"converter type\",\n\t\t\t\tkey: \"technical__008_converter_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"USB to RS232\",\n                    \"USB to RS485\",\n                    \"RS485 to FIELDBUS\",\n                    \"RS232 to FIELDBUS\",\n                    \"RS232 to RS485\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Electrical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"power supply\",\n\t\t\t\tkey: \"electrical__000_power_supply\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"12 VDC\",\n\t\t\t\t\t\"24 VDC\",\n\t\t\t\t\t\"230 VAC\",\n                    \"no power supply\"\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Physical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"installation type\",\n\t\t\t\tkey: \"physical__003_installation_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"Din Rail\",\n\t\t\t\t\t\"Panel\",\n\t\t\t\t\t\"walled\",\n\t\t\t\t\t\"desktop\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Serial Communication Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"serial communication\",\n\t\t\t\tkey: \"serial__000_serial_communication\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: null\n\t\t\t},\n            {\n                title: \"port type\",\n                key: \"serial__002_serial_port_type\",\n\t\t\t\tinputType: \"checkbox\",\n                values: [\n                    \"RS485\",\n                    \"RS232\",\n                    \"RS422\",\n                ],\n                selectedValues: []\n            }\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Fieldbus Properties\",\n\t\titems: [\n\t\t\t{\n                title: \"fieldbus port type\",\n                key: \"fieldbus__002_fieldbus_port_type\",\n\t\t\t\tinputType: \"checkbox\",\n                values: [\n                    \"CANopen\",\n\t\t\t\t\t\"CC-LINK\",\n\t\t\t\t\t\"DeviceNet\",\n\t\t\t\t\t\"EtherCAT\",\n\t\t\t\t\t\"Ethernet/IP\",\n\t\t\t\t\t\"Ethernet TCP/IP\",\n\t\t\t\t\t\"Modbus/TCP\",\n\t\t\t\t\t\"POWERLINK\",\n\t\t\t\t\t\"Profibus DP\",\n\t\t\t\t\t\"Profinet IO\",\n                ],\n                selectedValues: []\n            }\n\t\t]\n\t}\n];\n\nconst temperatureHumidityFilterData = [\n    {\n\t\tsectionTitle: \"technicalFilter\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"controller type\",\n\t\t\t\tkey: \"technical__012_controller_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"temperature\",\n\t\t\t\t\t\"humidity\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"controller input type\",\n\t\t\t\tkey: \"technical__013_controller_input_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"RTD\",\n\t\t\t\t\t\"thermocouple k\",\n\t\t\t\t\t\"thermocouple j\",\n\t\t\t\t\t\"0-10V\",\n\t\t\t\t\t\"0/4-20mA\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"control method\",\n\t\t\t\tkey: \"technical__014_control_method\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"pid\",\n\t\t\t\t\t\"on/off\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Electrical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"power supply\",\n\t\t\t\tkey: \"electrical__000_power_supply\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"12 VDC\",\n\t\t\t\t\t\"24 VDC\",\n\t\t\t\t\t\"230 VAC\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Display Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"display\",\n\t\t\t\tkey: \"display__000_display\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Physical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"installation type\",\n\t\t\t\tkey: \"physical__003_installation_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"Din Rail\",\n\t\t\t\t\t\"Panel\",\n\t\t\t\t\t\"walled\",\n\t\t\t\t\t\"desktop\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Analog Output Properties\",\n\t\titems: [\n\t\t\t{\n                title: \"analog output\",\n                key: \"analog_output__000_analog_output\",\n\t\t\t\tinputType: \"radio\",\n                values: [\n                    \"true\",\n\t\t\t\t\t\"false\",\n                ],\n                selectedValues: []\n            },\n\t\t\t{\n                title: \"analog output type\",\n                key: \"analog_output__003_analog_output_type\",\n\t\t\t\tinputType: \"radio\",\n                values: [\n                    \"0-10V; 0-5V; 0-20mA; 4-20mA\",\n\t\t\t\t\t\"0/4-20 mA; 0-5/10 V; ±5/10 V\",\n                ],\n                selectedValues: []\n            }\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Serial Communication Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"serial communication\",\n\t\t\t\tkey: \"serial__000_serial_communication\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: null\n\t\t\t},\n            {\n                title: \"port type\",\n                key: \"serial__002_serial_port_type\",\n\t\t\t\tinputType: \"checkbox\",\n                values: [\n                    \"RS485\",\n                    \"RS232\",\n                    \"RS422\",\n                ],\n                selectedValues: []\n            }\n\t\t]\n\t},\n\n];\n\nconst weighingFilterData = [\n    {\n\t\tsectionTitle: \"technicalFilter\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"load cells supply\",\n\t\t\t\tkey: \"technical__001_load_cells_supply\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"5 VDC\",\n\t\t\t\t\t\"10 VDC\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"a/d_converter\",\n\t\t\t\tkey: \"technical__003_a/d_converter\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"24bit\",\n\t\t\t\t\t\"20bit\",\n\t\t\t\t\t\"16bit\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t}\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Electrical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"power supply\",\n\t\t\t\tkey: \"electrical__000_power_supply\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"12 VDC\",\n\t\t\t\t\t\"24 VDC\",\n\t\t\t\t\t\"230 VAC\",\n\t\t\t\t\t\"no power supply\"\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Display Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"display\",\n\t\t\t\tkey: \"display__000_display\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Physical Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"installation type\",\n\t\t\t\tkey: \"physical__003_installation_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"Din Rail\",\n\t\t\t\t\t\"Panel\",\n\t\t\t\t\t\"walled\",\n\t\t\t\t\t\"desktop\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Analog Output Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"analog output\",\n\t\t\t\tkey: \"analog_output__000_analog_output\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"analog output type\",\n\t\t\t\tkey: \"analog_output__003_analog_output_type\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"0-10V; 0-5V; 0-20mA; 4-20mA\",\n\t\t\t\t\t\"0/4-20 mA; 0-5/10 V; ±5/10 V\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"isolation\",\n\t\t\t\tkey: \"analog_output__005_isolation\",\n\t\t\t\tinputType: \"checkbox\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"isolated\",\n\t\t\t\t\t\"non-isolated\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Digital Input Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"digital input\",\n\t\t\t\tkey: \"digital_input__000_digital_input\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\tsectionTitle: \"Digital Output Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"digital output\",\n\t\t\t\tkey: \"digital_output__000_digital_output\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: []\n\t\t\t},\n\t\t]\n\t},\n    {\n\t\tsectionTitle: \"Serial Communication Properties\",\n\t\titems: [\n\t\t\t{\n\t\t\t\ttitle: \"serial communication\",\n\t\t\t\tkey: \"serial__000_serial_communication\",\n\t\t\t\tinputType: \"radio\",\n\t\t\t\tvalues: [\n\t\t\t\t\t\"true\",\n\t\t\t\t\t\"false\",\n\t\t\t\t],\n\t\t\t\tselectedValues: null\n\t\t\t},\n            {\n                title: \"port type\",\n                key: \"serial__002_serial_port_type\",\n\t\t\t\tinputType: \"checkbox\",\n                values: [\n                    \"RS485\",\n                    \"RS232\",\n                    \"RS422\",\n                ],\n                selectedValues: []\n            }\n\t\t]\n\t},\n];\n\nexport function getFilterDataByCategorySlug(slug) {\n    if (slug === \"counter-timer\") return  counterTimerFilterData;\n    if (slug === \"analog-converter\") return analogConvertorFilterData;\n    if (slug === \"serial-converter\") return serialConvertorFilterData;\n    if (slug === \"temperature-humidity\") return temperatureHumidityFilterData;\n    if (slug === \"io-development-module\") return ioDevelopmentFilterData;\n    if (slug === \"weight\") return weighingFilterData;\n    return productsPageFilterData;\n}","const redirects = [\r\n  //articles\r\n  {\r\n    from: \"/articles/36-industrial-automation/54-تفاوت-لودسل-4-سیم-و-6-سیم\",\r\n    to: \"/articles/post/تفاوت-لودسل-4-سیم-و-6-سیم\",\r\n  },\r\n  {\r\n    from: \"/articles/36-industrial-automation/49-روش-های-تست-لودسل\",\r\n    to: \"/articles/post/روش-های-تست-لودسل\",\r\n  },\r\n  {\r\n    from:\r\n      \"/articles/36-industrial-automation/40-افزایش-دقت-اندازه-گیری-لودسل-به-کمک-ارت\",\r\n    to: \"/articles/post/افزایش-دقت-اندازه-گیری-لودسل-به-کمک-ارت\",\r\n  },\r\n\r\n  //categories\r\n  { from: \"/products/weight\", to: \"/products/category/weight\" },\r\n  { from: \"/products/converter\", to: \"/products/category/analog-converter\" },\r\n  {\r\n    from: \"/products/relay-board\",\r\n    to: \"/products/category/io-development-module\",\r\n  },\r\n  {\r\n    from: \"/products/controlers\",\r\n    to: \"/products/category/io-development-module\",\r\n  },\r\n\r\n  //products\r\n  {\r\n    from: \"/products/converter/usb/usb-rs485-isolated-converter\",\r\n    to: \"/products/مبدل-usb-به-rs485-ایزوله-pm-us01\",\r\n  },\r\n  {\r\n    from:\r\n      \"/products/weight/transmitter/pm-ltd11a-weight-transmitter-analog-digital-rs485\",\r\n    to: \"/products/ترانسمیتر-و-نمایشگر-وزن-pm-ltd11a\",\r\n  },\r\n  {\r\n    from:\r\n      \"/products/weight/transmitter/pm-ltd11t-weight-transmitter-digital-rs485\",\r\n    to: \"/products/ترانسمیتر-و-نمایشگر-وزنpm-ltd11r\",\r\n  },\r\n  {\r\n    from: \"/products/weight/indicator/pm-ld01-weight-indicator-rs485\",\r\n    to: \"/products/نمایشگر-وزن-pm-ld01\",\r\n  },\r\n  {\r\n    from: \"/products/weight/indicator/pm-ld01a-weight-indicator-rs485-analog\",\r\n    to: \"/products/نمایشگر-وزن-pm-ld01a\",\r\n  },\r\n  {\r\n    from: \"/products/weight/indicator/pm-ld31-weight-indicator-rs485\",\r\n    to: \"/products/نمایشگر-وزن-pm-ld31\",\r\n  },\r\n  {\r\n    from: \"/products/weight/indicator/pm-ld31a-weight-indicator-rs485-analog\",\r\n    to: \"/products/نمایشگر-وزن-pm-ld31a\",\r\n  },\r\n  {\r\n    from:\r\n      \"/products/weight/transmitter/pm-lt11a-weight-transmitter-analog-rs485\",\r\n    to: \"/products/ترانسمیتر-وزن-pm-lt11a\",\r\n  },\r\n  {\r\n    from: \"/products/weight/transmitter/pm-lt11t-weight-transmitter-rs485\",\r\n    to: \"/products/ترانسمیتر-وزن-pm-lt11t\",\r\n  },\r\n  {\r\n    from:\r\n      \"/products/weight/transmitter/pm-lt12a-2-channel-weight-transmitter-analog-rs485\",\r\n    to: \"/products/ترانسمیتر-وزن-دو-کانال-pm-lt12a\",\r\n  },\r\n  {\r\n    from:\r\n      \"/products/weight/transmitter/pm-lt12t-2-channel-weight-transmitter-rs485\",\r\n    to: \"/products/ترانسمیتر-وزن-دو-کانال-pm-lt12t\",\r\n  },\r\n  {\r\n    from:\r\n      \"/products/weight/transmitter/pm-lt12-2-channel-weight-transmitter-rs485\",\r\n    to: \"/products/ترانسمیتر-وزن-دو-کانال-pm-lt12\",\r\n  },\r\n  {\r\n    from:\r\n      \"/products/temperature-humidity/display/temperature-indicator-controller-pm-tdc21\",\r\n    to: \"/products\",\r\n  },\r\n  {\r\n    from: \"/products/controlers/two-chanel-vibrate-controller\",\r\n    to: \"/products/کنترلر-ویبره-دو-کانال-pm-vc12\",\r\n  },\r\n  {\r\n    from: \"/products/converter/analog/signal-isolator-pm-iso11\",\r\n    to: \"/products/سیگنال-ایزولاتور-pm-iso11\",\r\n  },\r\n  {\r\n    from: \"/products/converter/analog/analog-converter-transmitter-pm-at13\",\r\n    to: \"/products/ترانسمیتر-آنالوگ-3-کانال-pm-at13\",\r\n  },\r\n  {\r\n    from: \"/products/relay-board/remote-io-rtu-module-pm-rio18t\",\r\n    to: \"/products/ماژول-ریموت-io-خروجی-ترانزیستور-pm-rio18t\",\r\n  },\r\n  {\r\n    from: \"/products/relay-board/remote-io-rtu-module-pm-rio18l\",\r\n    to: \"/products/ماژول-ریموت-io-خروجی-رله-5-آمپر-pm-rio18l\",\r\n  },\r\n  {\r\n    from: \"/products/relay-board/remote-io-rtu-module-pm-rio18h\",\r\n    to: \"/products/ماژول-ریموت-io-خروجی-رله-16-آمپر-pm-rio18h\",\r\n  },\r\n  {\r\n    from: \"/products/relay-board/relay-board-8\",\r\n    to: \"/products/برد-رله-8-کانال-pm-rl08s\",\r\n  },\r\n];\r\n\r\nexport default function(req, res, next) {\r\n  var url = req.url.split(\"?\")[0];\r\n  var urlParams = null;\r\n  if (req.url.includes(\"?\")) urlParams = \"?\" + req.url.split(\"?\")[1];\r\n\r\n  const redirect = redirects.find((r) => encodeURI(r.from) === url);\r\n\r\n  if (redirect) {\r\n    var newLocation = redirect.to;\r\n    if (urlParams) newLocation += urlParams;\r\n\r\n    res.writeHead(301, { Location: encodeURI(newLocation) });\r\n    res.end();\r\n  } else next();\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/error_page.289c1aa.png\";","export * from \"-!../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/string-replace-loader/index.js??ref--12!./error.vue?vue&type=style&index=0&id=f1fe3c98&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".error__page[data-v-f1fe3c98]{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:15px;text-align:center}.error__image[data-v-f1fe3c98]{display:block;margin:0 auto;max-width:550px;width:80%}.error__text[data-v-f1fe3c98]{font-size:14px;font-weight:700;margin-top:20px;text-align:center}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","export * from \"-!../../../vue-style-loader/index.js??ref--3-oneOf-1-0!../../../css-loader/dist/cjs.js??ref--3-oneOf-1-1!../../../vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--3-oneOf-1-2!../../../vue-loader/lib/index.js??vue-loader-options!./nuxt-loading.vue?vue&type=style&index=0&id=0a6c674f&prod&lang=css&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".nuxt-progress{position:fixed;top:0;left:0;right:0;height:5px;width:0;opacity:1;transition:width .1s,opacity .4s;background-color:#ffb301;z-index:999999}.nuxt-progress.nuxt-progress-notransition{transition:none}.nuxt-progress-failed{background-color:red}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_copyright.vue?vue&type=style&index=0&id=11bd7140&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".copyright[data-v-11bd7140]{background:#191b1e;color:#fff;font-size:12px;padding:8px 16px;text-align:center}.copyright__company[data-v-11bd7140]{color:#ffb301;display:inline-block;font-weight:700;margin:0 3px}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_link.vue?vue&type=style&index=0&id=1a59aadf&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".footer-link[data-v-1a59aadf]{color:#f7f7f7;display:block;font-size:13px;margin:10.66667px 0;overflow:hidden;text-decoration:none;text-overflow:ellipsis;width:100%;white-space:nowrap}.footer-link[data-v-1a59aadf]:hover{color:#ffb301}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_title.vue?vue&type=style&index=0&id=26b8a362&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".footer-title[data-v-26b8a362]{color:#fff;font-size:14px;font-weight:700;margin:16px 0;opacity:.8}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer.vue?vue&type=style&index=0&id=39e1f500&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".footer[data-v-39e1f500]{justify-self:end;background:#30343a;bottom:0;content-visibility:auto;right:0;width:100%}.footer__content[data-v-39e1f500]{margin:0 auto;max-width:1080px;padding:16px}.footer__column-1[data-v-39e1f500],.footer__column-2[data-v-39e1f500]{display:inline-block;vertical-align:top;width:49%}.footer__column-3[data-v-39e1f500]{border-top:1px solid #b7b7b7;display:block;margin-top:8px}.footer__column-4[data-v-39e1f500]{display:none}.footer__text[data-v-39e1f500]{color:#f7f7f7;display:block;font-size:13px;line-height:1.8;margin:10.66667px 0;text-decoration:none}.footer__text--en[data-v-39e1f500]{direction:ltr;text-align:right}.footer__text__icon[data-v-39e1f500]{font-size:20px;float:right;margin-left:8px}.footer__text__icon--map[data-v-39e1f500]{margin-bottom:30px}.footer__text--phone[data-v-39e1f500]{display:inline-block;margin-left:5px;vertical-align:top}.footer__social-link[data-v-39e1f500]{color:#f7f7f7;display:inline-block;font-size:20px;margin:5px 5px 5px 32px;text-decoration:none}@media (min-width:1024px){.footer__column-1[data-v-39e1f500],.footer__column-2[data-v-39e1f500],.footer__column-3[data-v-39e1f500],.footer__column-4[data-v-39e1f500]{border:none;display:inline-block;margin-top:0;vertical-align:top;width:24.6%}.footer__column-1[data-v-39e1f500],.footer__column-2[data-v-39e1f500]{width:20.6%}.footer__column-3[data-v-39e1f500],.footer__column-4[data-v-39e1f500]{width:28.6%}.footer__column-4[data-v-39e1f500]{padding-right:4%}}[data-lang=en] .footer__text[data-v-39e1f500]{text-align:left}[data-lang=en] .footer__text--en[data-v-39e1f500]{direction:ltr;text-align:left}[data-lang=en] .footer__text--phone[data-v-39e1f500]{margin-left:0;margin-right:5px}[data-lang=en] .footer__text__icon[data-v-39e1f500]{float:left;margin-left:0;margin-right:8px}[data-lang=en] .footer__social-link[data-v-39e1f500]{margin-left:0;margin-right:32px}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_contact_bar.vue?vue&type=style&index=0&id=8875293a&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contact-bar[data-v-8875293a]{background:#30343a;color:#fff;height:30px;font-size:13px;line-height:30px;overflow:hidden;position:relative;white-space:nowrap;z-index:102}.contact-bar__contents[data-v-8875293a]{margin:0 auto;max-width:1080px;padding:0 16px}.contact-bar__icon[data-v-8875293a]{display:inline-block;font-size:20px;vertical-align:middle}.contact-bar__mail[data-v-8875293a],.contact-bar__support[data-v-8875293a]{color:#fff;display:inline-block;direction:ltr;text-decoration:none;vertical-align:middle}.contact-bar__support[data-v-8875293a]{text-align:right}.contact-bar__mail[data-v-8875293a]{float:left;text-align:left}.contact-bar__social-link[data-v-8875293a],.contact-bar__times[data-v-8875293a]{display:none}@media (min-width:1024px){.contact-bar__mail[data-v-8875293a],.contact-bar__support[data-v-8875293a],.contact-bar__times[data-v-8875293a]{display:inline-block;float:none;margin-left:32px}.contact-bar__social-link[data-v-8875293a]{color:#fff;display:block;float:left;font-size:17px;margin-right:32px;margin-top:3px;text-decoration:none}}[data-lang=en] .contact-bar__support[data-v-8875293a]{float:right;text-align:right}[data-lang=en] .contact-bar__icon[data-v-8875293a]{float:left;margin-left:0;margin-right:4px;margin-top:4px}@media (min-width:1024px){[data-lang=en] .contact-bar__social-link[data-v-8875293a]{float:right;margin-left:32px;margin-right:0}[data-lang=en] .contact-bar__mail[data-v-8875293a],[data-lang=en] .contact-bar__support[data-v-8875293a],[data-lang=en] .contact-bar__times[data-v-8875293a]{float:none;margin-left:0;margin-right:32px}}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"img/logo.237ab1d.svg\";","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_logo_link.vue?vue&type=style&index=0&id=2301b45b&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".logo-link[data-v-2301b45b]{display:inline-block;overflow:hidden;position:relative;text-decoration:none;vertical-align:text-top;width:100px}.logo-link[data-v-2301b45b]:after{content:\\\"\\\";display:block;padding-top:24%}.logo[data-v-2301b45b]{display:block;position:absolute;right:0;top:0;width:100%}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_item.vue?vue&type=style&index=0&id=4f134f80&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".child-link[data-v-4f134f80],.root-link[data-v-4f134f80]{color:#30343a;cursor:pointer;display:block;height:32px;line-height:32px;overflow:hidden;text-align:center;text-decoration:none;width:100%}.child-link[data-v-4f134f80]:hover,.root-link[data-v-4f134f80]:hover{color:#ffb301}.root-link[data-v-4f134f80]{font-weight:700;position:relative}.root-link__go-parent-on-desktop[data-v-4f134f80]{display:none}.root-link--has-child[data-v-4f134f80]{height:auto}@media (min-width:1024px){.root-link[data-v-4f134f80]{display:inline-block;height:50px;line-height:50px;padding:0 16px;vertical-align:middle;width:auto}.root-link--has-child[data-v-4f134f80]{position:relative}.root-link--has-child .root-link__go-parent-on-desktop[data-v-4f134f80]{display:block;height:100%;position:absolute;right:0;top:0;width:100%}.root-link--has-child[data-v-4f134f80]:hover{overflow:visible}.root-link--has-child:hover .links-childs-wrapper[data-v-4f134f80]{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.16);height:auto;opacity:1;right:0;top:50px;width:260px}}.root-link--active[data-v-4f134f80]{color:#ffb301}.links-childs-wrapper[data-v-4f134f80]{height:0;opacity:0;overflow:hidden;position:relative;transition:all .2s ease-in-out}.links-childs-wrapper--active[data-v-4f134f80]{height:auto;opacity:1}@media (min-width:1024px){.links-childs-wrapper[data-v-4f134f80]{position:absolute}}.child-link[data-v-4f134f80]{font-weight:400}@media (min-width:1024px){.child-link[data-v-4f134f80]{padding:0 16px;text-align:right}}@media (min-width:1024px){[data-lang=en] .links-childs-wrapper[data-v-4f134f80]{left:0;right:unset}[data-lang=en] .child-link[data-v-4f134f80]{text-align:left}}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_menu_drawer.vue?vue&type=style&index=0&id=119f9dc8&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".drawer[data-v-119f9dc8]{background:#fff;bottom:0;display:inline-block;height:100vh;left:0;opacity:0;overflow:hidden;padding:50px 16px 100px;position:fixed;right:0;top:30px;transform:translateX(100%);transition:all .2s ease-in-out;vertical-align:middle;width:100%;z-index:101}.drawer--active[data-v-119f9dc8]{opacity:1;transform:translateX(0)}.drawer__header[data-v-119f9dc8]{background:#fff;height:50px;line-height:50px;padding:0 16px;position:fixed;right:0;top:0;width:100%}.drawer__close-btn[data-v-119f9dc8]{display:inline-block;font-size:32px;margin-left:8px;vertical-align:middle}.drawer__body[data-v-119f9dc8]{height:100%;overflow-y:auto}.drawer__footer[data-v-119f9dc8]{background:#fff;bottom:50px;height:100px;line-height:1;padding:10px 16px;position:fixed;right:0;text-align:center;width:100%}.drawer__call-btn[data-v-119f9dc8]{background:#30343a;border-radius:4px;color:#fff;display:block;direction:ltr;font-weight:700;height:32px;line-height:32px;margin:0 auto 24px;max-width:200px;padding:0 16px;text-align:center;text-decoration:none}.drawer__call-btn__icon[data-v-119f9dc8]{display:inline-block;font-size:22px;margin-right:8px;vertical-align:middle}.drawer__social-link[data-v-119f9dc8]{color:#30343a;display:inline-block;font-size:18px;margin:0 16px;text-decoration:none;vertical-align:middle}@media (min-width:1024px){.drawer[data-v-119f9dc8]{bottom:auto;height:50px;line-height:50px;left:auto;opacity:1;overflow:visible;padding:0;position:relative;right:auto;top:auto;transform:none;transition:none;width:auto;z-index:inherit}.drawer__footer[data-v-119f9dc8],.drawer__header[data-v-119f9dc8]{display:none}.drawer__body[data-v-119f9dc8]{overflow:visible}}[data-lang=en] .drawer__close-btn[data-v-119f9dc8]{margin-left:0;margin-right:8px}[data-lang=en] .drawer__call-btn__icon[data-v-119f9dc8]{margin-left:8px;margin-right:0}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_menu_bar.vue?vue&type=style&index=0&id=8336deaa&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".menu-bar[data-v-8336deaa]{height:50px;line-height:50px}.menu-bar--colored[data-v-8336deaa]{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.16)}.menu-bar__contents[data-v-8336deaa]{padding:0 16px;margin:0 auto;max-width:1080px}.menu-bar__hamburger-btn[data-v-8336deaa]{display:inline-block;font-size:32px;margin-left:8px;vertical-align:middle}@media (min-width:1024px){.menu-bar__hamburger-btn[data-v-8336deaa]{display:none}}@media (min-width:1024px){.menu-bar__logo[data-v-8336deaa]{margin-left:32px}}[data-lang=en] .menu-bar__hamburger-btn[data-v-8336deaa]{margin-left:0;margin-right:8px}@media (min-width:1024px){[data-lang=en] .menu-bar__logo[data-v-8336deaa]{margin-left:0;margin-right:32px}}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_bar.vue?vue&type=style&index=0&id=237fa5d8&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".navigation[data-v-237fa5d8]{height:80px;position:fixed;right:0;top:0;width:100%;will-change:transform;z-index:100}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","export * from \"-!../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../node_modules/sass-resources-loader/lib/loader.js??ref--7-oneOf-1-4!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/string-replace-loader/index.js??ref--12!./default.vue?vue&type=style&index=0&id=f4ecc31a&prod&lang=scss&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@font-face{font-family:\\\"icomoon\\\";src:url(/fonts/icomoon.ttf?3ikylm) format(\\\"truetype\\\"),url(/fonts/icomoon.woff?3ikylm) format(\\\"woff\\\"),url(/fonts/icomoon.svg?3ikylm#icomoon) format(\\\"svg\\\");font-weight:400;font-style:normal;font-display:swap}[class*=\\\" icon-\\\"],[class^=icon-]{font-family:\\\"icomoon\\\"!important;speak:never;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-aparat:before{content:\\\"\\\\e900\\\"}.icon-linkedin:before{content:\\\"\\\\e901\\\"}.icon-youtube:before{content:\\\"\\\\e902\\\"}.icon-mail_outline:before{content:\\\"\\\\e903\\\"}.icon-add:before{content:\\\"\\\\e904\\\"}.icon-clear:before{content:\\\"\\\\e905\\\"}.icon-map:before{content:\\\"\\\\e906\\\"}.icon-filter_list:before{content:\\\"\\\\e907\\\"}.icon-remove:before{content:\\\"\\\\e908\\\"}.icon-guarantee:before{content:\\\"\\\\e909\\\"}.icon-access_time:before{content:\\\"\\\\e90a\\\"}.icon-storage:before{content:\\\"\\\\e90b\\\"}.icon-instagram:before{content:\\\"\\\\e90c\\\"}.icon-mode_comment:before{content:\\\"\\\\e90d\\\"}.icon-file_download:before{content:\\\"\\\\e90e\\\"}.icon-telegram:before{content:\\\"\\\\e90f\\\"}.icon-compare:before{content:\\\"\\\\e910\\\"}.icon-support:before{content:\\\"\\\\e911\\\"}.icon-local_shipping:before{content:\\\"\\\\e912\\\"}.icon-arrow_back:before{content:\\\"\\\\e913\\\"}.icon-arrow_forward:before{content:\\\"\\\\e914\\\"}.icon-check:before{content:\\\"\\\\e915\\\"}.icon-menu:before{content:\\\"\\\\e916\\\"}.icon-share:before{content:\\\"\\\\e917\\\"}.icon-check_box:before{content:\\\"\\\\e918\\\"}.icon-star:before{content:\\\"\\\\e919\\\"}.icon-star_half:before{content:\\\"\\\\e91a\\\"}.icon-star_outline:before{content:\\\"\\\\e91b\\\"}.icon-twitter:before{content:\\\"\\\\e91c\\\"}.icon-description:before{content:\\\"\\\\e91d\\\"}.icon-done:before{content:\\\"\\\\e91e\\\"}.icon-keyboard_arrow_right:before{content:\\\"\\\\e91f\\\"}.icon-keyboard_arrow_left:before{content:\\\"\\\\e920\\\"}.icon-find_in_page:before{content:\\\"\\\\e921\\\"}.icon-language:before{content:\\\"\\\\e922\\\"}.icon-keyboard_arrow_down:before{content:\\\"\\\\e923\\\"}.icon-search:before{content:\\\"\\\\e924\\\"}.icon-view_list:before{content:\\\"\\\\e925\\\"}.icon-zoom_in:before{content:\\\"\\\\e926\\\"}.icon-zoom_out:before{content:\\\"\\\\e927\\\"}@font-face{font-family:Shabnam;src:url(/fonts/Shabnam-FD.eot);src:url(/fonts/Shabnam-FD.eot?#iefix) format(\\\"embedded-opentype\\\"),url(/fonts/Shabnam-FD.woff2) format(\\\"woff2\\\"),url(/fonts/Shabnam-FD.woff) format(\\\"woff\\\"),url(/fonts/Shabnam-FD.ttf) format(\\\"truetype\\\");font-weight:400;font-display:swap}@font-face{font-family:Shabnam;src:url(/fonts/Shabnam-Bold-FD.eot);src:url(/fonts/Shabnam-Bold-FD.eot?#iefix) format(\\\"embedded-opentype\\\"),url(/fonts/Shabnam-Bold-FD.woff2) format(\\\"woff2\\\"),url(/fonts/Shabnam-Bold-FD.woff) format(\\\"woff\\\"),url(/fonts/Shabnam-Bold-FD.ttf) format(\\\"truetype\\\");font-weight:700;font-display:swap}@font-face{font-family:Shabnam;src:url(/fonts/Shabnam-Thin-FD.eot);src:url(/fonts/Shabnam-Thin-FD.eot?#iefix) format(\\\"embedded-opentype\\\"),url(/fonts/Shabnam-Thin-FD.woff2) format(\\\"woff2\\\"),url(/fonts/Shabnam-Thin-FD.woff) format(\\\"woff\\\"),url(/fonts/Shabnam-Thin-FD.ttf) format(\\\"truetype\\\");font-weight:100;font-display:swap}@font-face{font-family:Shabnam;src:url(/fonts/Shabnam-Light-FD.eot);src:url(/fonts/Shabnam-Light-FD.eot?#iefix) format(\\\"embedded-opentype\\\"),url(/fonts/Shabnam-Light-FD.woff2) format(\\\"woff2\\\"),url(/fonts/Shabnam-Light-FD.woff) format(\\\"woff\\\"),url(/fonts/Shabnam-Light-FD.ttf) format(\\\"truetype\\\");font-weight:300;font-display:swap}@font-face{font-family:Shabnam;src:url(/fonts/Shabnam-Medium-FD.eot);src:url(/fonts/Shabnam-Medium-FD.eot?#iefix) format(\\\"embedded-opentype\\\"),url(/fonts/Shabnam-Medium-FD.woff2) format(\\\"woff2\\\"),url(/fonts/Shabnam-Medium-FD.woff) format(\\\"woff\\\"),url(/fonts/Shabnam-Medium-FD.ttf) format(\\\"truetype\\\");font-weight:500;font-display:swap}*{box-sizing:border-box}html{background:#f7f7f7;font-family:Shabnam,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,tahoma;font-size:14px}body{margin:0;padding:0}.app{direction:rtl;display:flex;flex-direction:column;justify-content:starts;min-height:100vh;padding-top:80px}.app--en{direction:ltr;font-family:Roboto,system-ui,-apple-system,Segoe UI,Ubuntu,Cantarell,Noto Sans,sans-serif,tahoma}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","module.exports = require(\"intersection-observer\");","module.exports = require(\"js-cookie\");","module.exports = require(\"url\");","module.exports = require(\"core-js/modules/esnext.map.delete-all.js\");","module.exports = require(\"core-js/modules/esnext.map.every.js\");","module.exports = require(\"core-js/modules/esnext.map.filter.js\");","module.exports = require(\"core-js/modules/esnext.map.find.js\");","module.exports = require(\"core-js/modules/esnext.map.find-key.js\");","module.exports = require(\"core-js/modules/esnext.map.includes.js\");","module.exports = require(\"core-js/modules/esnext.map.key-of.js\");","module.exports = require(\"core-js/modules/esnext.map.map-keys.js\");","module.exports = require(\"core-js/modules/esnext.map.map-values.js\");","module.exports = require(\"core-js/modules/esnext.map.merge.js\");","module.exports = require(\"core-js/modules/esnext.map.reduce.js\");","module.exports = require(\"core-js/modules/esnext.map.some.js\");","module.exports = require(\"core-js/modules/esnext.map.update.js\");","const middleware = {}\n\nmiddleware['redirects'] = require('..\\\\..\\\\..\\\\middleware\\\\redirects.js')\nmiddleware['redirects'] = middleware['redirects'].default || middleware['redirects']\n\nexport default middleware\n","import Vue from 'vue'\nimport { isSamePath as _isSamePath, joinURL, normalizeURL, withQuery, withoutTrailingSlash } from 'ufo'\n\n// window.{{globals.loadedCallback}} hook\n// Useful for jsdom testing or plugins (https://github.com/tmpvar/jsdom#dealing-with-asynchronous-script-loading)\nif (process.client) {\n  window.onNuxtReadyCbs = []\n  window.onNuxtReady = (cb) => {\n    window.onNuxtReadyCbs.push(cb)\n  }\n}\n\nexport function createGetCounter (counterObject, defaultKey = '') {\n  return function getCounter (id = defaultKey) {\n    if (counterObject[id] === undefined) {\n      counterObject[id] = 0\n    }\n    return counterObject[id]++\n  }\n}\n\nexport function empty () {}\n\nexport function globalHandleError (error) {\n  if (Vue.config.errorHandler) {\n    Vue.config.errorHandler(error)\n  }\n}\n\nexport function interopDefault (promise) {\n  return promise.then(m => m.default || m)\n}\n\nexport function hasFetch(vm) {\n  return vm.$options && typeof vm.$options.fetch === 'function' && !vm.$options.fetch.length\n}\nexport function purifyData(data) {\n  if (process.env.NODE_ENV === 'production') {\n    return data\n  }\n\n  return Object.entries(data).filter(\n    ([key, value]) => {\n      const valid = !(value instanceof Function) && !(value instanceof Promise)\n      if (!valid) {\n        console.warn(`${key} is not able to be stringified. This will break in a production environment.`)\n      }\n      return valid\n    }\n    ).reduce((obj, [key, value]) => {\n      obj[key] = value\n      return obj\n    }, {})\n}\nexport function getChildrenComponentInstancesUsingFetch(vm, instances = []) {\n  const children = vm.$children || []\n  for (const child of children) {\n    if (child.$fetch) {\n      instances.push(child)\n      continue; // Don't get the children since it will reload the template\n    }\n    if (child.$children) {\n      getChildrenComponentInstancesUsingFetch(child, instances)\n    }\n  }\n  return instances\n}\n\nexport function applyAsyncData (Component, asyncData) {\n  if (\n    // For SSR, we once all this function without second param to just apply asyncData\n    // Prevent doing this for each SSR request\n    !asyncData && Component.options.__hasNuxtData\n  ) {\n    return\n  }\n\n  const ComponentData = Component.options._originDataFn || Component.options.data || function () { return {} }\n  Component.options._originDataFn = ComponentData\n\n  Component.options.data = function () {\n    const data = ComponentData.call(this, this)\n    if (this.$ssrContext) {\n      asyncData = this.$ssrContext.asyncData[Component.cid]\n    }\n    return { ...data, ...asyncData }\n  }\n\n  Component.options.__hasNuxtData = true\n\n  if (Component._Ctor && Component._Ctor.options) {\n    Component._Ctor.options.data = Component.options.data\n  }\n}\n\nexport function sanitizeComponent (Component) {\n  // If Component already sanitized\n  if (Component.options && Component._Ctor === Component) {\n    return Component\n  }\n  if (!Component.options) {\n    Component = Vue.extend(Component) // fix issue #6\n    Component._Ctor = Component\n  } else {\n    Component._Ctor = Component\n    Component.extendOptions = Component.options\n  }\n  // If no component name defined, set file path as name, (also fixes #5703)\n  if (!Component.options.name && Component.options.__file) {\n    Component.options.name = Component.options.__file\n  }\n  return Component\n}\n\nexport function getMatchedComponents (route, matches = false, prop = 'components') {\n  return Array.prototype.concat.apply([], route.matched.map((m, index) => {\n    return Object.keys(m[prop]).map((key) => {\n      matches && matches.push(index)\n      return m[prop][key]\n    })\n  }))\n}\n\nexport function getMatchedComponentsInstances (route, matches = false) {\n  return getMatchedComponents(route, matches, 'instances')\n}\n\nexport function flatMapComponents (route, fn) {\n  return Array.prototype.concat.apply([], route.matched.map((m, index) => {\n    return Object.keys(m.components).reduce((promises, key) => {\n      if (m.components[key]) {\n        promises.push(fn(m.components[key], m.instances[key], m, key, index))\n      } else {\n        delete m.components[key]\n      }\n      return promises\n    }, [])\n  }))\n}\n\nexport function resolveRouteComponents (route, fn) {\n  return Promise.all(\n    flatMapComponents(route, async (Component, instance, match, key) => {\n      // If component is a function, resolve it\n      if (typeof Component === 'function' && !Component.options) {\n        try {\n          Component = await Component()\n        } catch (error) {\n          // Handle webpack chunk loading errors\n          // This may be due to a new deployment or a network problem\n          if (\n            error &&\n            error.name === 'ChunkLoadError' &&\n            typeof window !== 'undefined' &&\n            window.sessionStorage\n          ) {\n            const timeNow = Date.now()\n            const previousReloadTime = parseInt(window.sessionStorage.getItem('nuxt-reload'))\n\n            // check for previous reload time not to reload infinitely\n            if (!previousReloadTime || previousReloadTime + 60000 < timeNow) {\n              window.sessionStorage.setItem('nuxt-reload', timeNow)\n              window.location.reload(true /* skip cache */)\n            }\n          }\n\n          throw error\n        }\n      }\n      match.components[key] = Component = sanitizeComponent(Component)\n      return typeof fn === 'function' ? fn(Component, instance, match, key) : Component\n    })\n  )\n}\n\nexport async function getRouteData (route) {\n  if (!route) {\n    return\n  }\n  // Make sure the components are resolved (code-splitting)\n  await resolveRouteComponents(route)\n  // Send back a copy of route with meta based on Component definition\n  return {\n    ...route,\n    meta: getMatchedComponents(route).map((Component, index) => {\n      return { ...Component.options.meta, ...(route.matched[index] || {}).meta }\n    })\n  }\n}\n\nexport async function setContext (app, context) {\n  // If context not defined, create it\n  if (!app.context) {\n    app.context = {\n      isStatic: process.static,\n      isDev: false,\n      isHMR: false,\n      app,\n      store: app.store,\n      payload: context.payload,\n      error: context.error,\n      base: app.router.options.base,\n      env: {}\n    }\n    // Only set once\n\n    if (context.ssrContext) {\n      app.context.ssrContext = context.ssrContext\n    }\n    app.context.redirect = (status, path, query) => {\n      if (!status) {\n        return\n      }\n      app.context._redirected = true\n      // if only 1 or 2 arguments: redirect('/') or redirect('/', { foo: 'bar' })\n      let pathType = typeof path\n      if (typeof status !== 'number' && (pathType === 'undefined' || pathType === 'object')) {\n        query = path || {}\n        path = status\n        pathType = typeof path\n        status = 302\n      }\n      if (pathType === 'object') {\n        path = app.router.resolve(path).route.fullPath\n      }\n      // \"/absolute/route\", \"./relative/route\" or \"../relative/route\"\n      if (/(^[.]{1,2}\\/)|(^\\/(?!\\/))/.test(path)) {\n        app.context.next({\n          path,\n          query,\n          status\n        })\n      } else {\n        path = withQuery(path, query)\n        if (process.server) {\n          app.context.next({\n            path,\n            status\n          })\n        }\n        if (process.client) {\n          // https://developer.mozilla.org/en-US/docs/Web/API/Location/replace\n          window.location.replace(path)\n\n          // Throw a redirect error\n          throw new Error('ERR_REDIRECT')\n        }\n      }\n    }\n    if (process.server) {\n      app.context.beforeNuxtRender = fn => context.beforeRenderFns.push(fn)\n    }\n    if (process.client) {\n      app.context.nuxtState = window.__NUXT__\n    }\n  }\n\n  // Dynamic keys\n  const [currentRouteData, fromRouteData] = await Promise.all([\n    getRouteData(context.route),\n    getRouteData(context.from)\n  ])\n\n  if (context.route) {\n    app.context.route = currentRouteData\n  }\n\n  if (context.from) {\n    app.context.from = fromRouteData\n  }\n\n  app.context.next = context.next\n  app.context._redirected = false\n  app.context._errored = false\n  app.context.isHMR = false\n  app.context.params = app.context.route.params || {}\n  app.context.query = app.context.route.query || {}\n}\n\nexport function middlewareSeries (promises, appContext) {\n  if (!promises.length || appContext._redirected || appContext._errored) {\n    return Promise.resolve()\n  }\n  return promisify(promises[0], appContext)\n    .then(() => {\n      return middlewareSeries(promises.slice(1), appContext)\n    })\n}\n\nexport function promisify (fn, context) {\n  let promise\n  if (fn.length === 2) {\n    // fn(context, callback)\n    promise = new Promise((resolve) => {\n      fn(context, function (err, data) {\n        if (err) {\n          context.error(err)\n        }\n        data = data || {}\n        resolve(data)\n      })\n    })\n  } else {\n    promise = fn(context)\n  }\n\n  if (promise && promise instanceof Promise && typeof promise.then === 'function') {\n    return promise\n  }\n  return Promise.resolve(promise)\n}\n\n// Imported from vue-router\nexport function getLocation (base, mode) {\n  if (mode === 'hash') {\n    return window.location.hash.replace(/^#\\//, '')\n  }\n\n  base = decodeURI(base).slice(0, -1) // consideration is base is normalized with trailing slash\n  let path = decodeURI(window.location.pathname)\n\n  if (base && path.startsWith(base)) {\n    path = path.slice(base.length)\n  }\n\n  const fullPath = (path || '/') + window.location.search + window.location.hash\n\n  return normalizeURL(fullPath)\n}\n\n// Imported from path-to-regexp\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nexport function compile (str, options) {\n  return tokensToFunction(parse(str, options), options)\n}\n\nexport function getQueryDiff (toQuery, fromQuery) {\n  const diff = {}\n  const queries = { ...toQuery, ...fromQuery }\n  for (const k in queries) {\n    if (String(toQuery[k]) !== String(fromQuery[k])) {\n      diff[k] = true\n    }\n  }\n  return diff\n}\n\nexport function normalizeError (err) {\n  let message\n  if (!(err.message || typeof err === 'string')) {\n    try {\n      message = JSON.stringify(err, null, 2)\n    } catch (e) {\n      message = `[${err.constructor.name}]`\n    }\n  } else {\n    message = err.message || err\n  }\n  return {\n    ...err,\n    message,\n    statusCode: (err.statusCode || err.status || (err.response && err.response.status) || 500)\n  }\n}\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nconst PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n  // \"/route(\\\\d+)\"  => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n  // \"/*\"            => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n  '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  const tokens = []\n  let key = 0\n  let index = 0\n  let path = ''\n  const defaultDelimiter = (options && options.delimiter) || '/'\n  let res\n\n  while ((res = PATH_REGEXP.exec(str)) != null) {\n    const m = res[0]\n    const escaped = res[1]\n    const offset = res.index\n    path += str.slice(index, offset)\n    index = offset + m.length\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1]\n      continue\n    }\n\n    const next = str[index]\n    const prefix = res[2]\n    const name = res[3]\n    const capture = res[4]\n    const group = res[5]\n    const modifier = res[6]\n    const asterisk = res[7]\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path)\n      path = ''\n    }\n\n    const partial = prefix != null && next != null && next !== prefix\n    const repeat = modifier === '+' || modifier === '*'\n    const optional = modifier === '?' || modifier === '*'\n    const delimiter = res[2] || defaultDelimiter\n    const pattern = capture || group\n\n    tokens.push({\n      name: name || key++,\n      prefix: prefix || '',\n      delimiter,\n      optional,\n      repeat,\n      partial,\n      asterisk: Boolean(asterisk),\n      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n    })\n  }\n\n  // Match any characters still remaining.\n  if (index < str.length) {\n    path += str.substr(index)\n  }\n\n  // If the path exists, push it onto the end.\n  if (path) {\n    tokens.push(path)\n  }\n\n  return tokens\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str, slashAllowed) {\n  const re = slashAllowed ? /[?#]/g : /[/?#]/g\n  return encodeURI(str).replace(re, (c) => {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n  return encodeURIComponentPretty(str, true)\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n  // Compile all the tokens into regexps.\n  const matches = new Array(tokens.length)\n\n  // Compile all the patterns before compilation.\n  for (let i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n    }\n  }\n\n  return function (obj, opts) {\n    let path = ''\n    const data = obj || {}\n    const options = opts || {}\n    const encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n    for (let i = 0; i < tokens.length; i++) {\n      const token = tokens[i]\n\n      if (typeof token === 'string') {\n        path += token\n\n        continue\n      }\n\n      const value = data[token.name || 'pathMatch']\n      let segment\n\n      if (value == null) {\n        if (token.optional) {\n          // Prepend partial segment prefixes.\n          if (token.partial) {\n            path += token.prefix\n          }\n\n          continue\n        } else {\n          throw new TypeError('Expected \"' + token.name + '\" to be defined')\n        }\n      }\n\n      if (Array.isArray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) {\n            continue\n          } else {\n            throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n          }\n        }\n\n        for (let j = 0; j < value.length; j++) {\n          segment = encode(value[j])\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n      if (!matches[i].test(segment)) {\n        throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n      }\n\n      path += token.prefix + segment\n    }\n\n    return path\n  }\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options && options.sensitive ? '' : 'i'\n}\n\nexport function addLifecycleHook(vm, hook, fn) {\n  if (!vm.$options[hook]) {\n    vm.$options[hook] = []\n  }\n  if (!vm.$options[hook].includes(fn)) {\n    vm.$options[hook].push(fn)\n  }\n}\n\nexport const urlJoin = joinURL\n\nexport const stripTrailingSlash = withoutTrailingSlash\n\nexport const isSamePath = _isSamePath\n\nexport function setScrollRestoration (newVal) {\n  try {\n    window.history.scrollRestoration = newVal;\n  } catch(e) {}\n}\n","import Vue from 'vue'\nimport { hasFetch, normalizeError, addLifecycleHook, purifyData, createGetCounter } from '../utils'\n\nasync function serverPrefetch() {\n  if (!this._fetchOnServer) {\n    return\n  }\n\n  // Call and await on $fetch\n  try {\n    await this.$options.fetch.call(this)\n  } catch (err) {\n    if (process.dev) {\n      console.error('Error in fetch():', err)\n    }\n    this.$fetchState.error = normalizeError(err)\n  }\n  this.$fetchState.pending = false\n\n  // Define an ssrKey for hydration\n  this._fetchKey = this._fetchKey || this.$ssrContext.fetchCounters['']++\n\n  // Add data-fetch-key on parent element of Component\n  const attrs = this.$vnode.data.attrs = this.$vnode.data.attrs || {}\n  attrs['data-fetch-key'] = this._fetchKey\n\n  // Add to ssrContext for window.__NUXT__.fetch\n\n  this.$ssrContext.nuxt.fetch[this._fetchKey] =\n    this.$fetchState.error ? { _error: this.$fetchState.error } : purifyData(this._data)\n}\n\nexport default {\n  created() {\n    if (!hasFetch(this)) {\n      return\n    }\n\n    if (typeof this.$options.fetchOnServer === 'function') {\n      this._fetchOnServer = this.$options.fetchOnServer.call(this) !== false\n    } else {\n      this._fetchOnServer = this.$options.fetchOnServer !== false\n    }\n\n    const defaultKey = this.$options._scopeId || this.$options.name || ''\n    const getCounter = createGetCounter(this.$ssrContext.fetchCounters, defaultKey)\n\n    if (typeof this.$options.fetchKey === 'function') {\n      this._fetchKey = this.$options.fetchKey.call(this, getCounter)\n    } else {\n      const key = 'string' === typeof this.$options.fetchKey ? this.$options.fetchKey : defaultKey\n      this._fetchKey = key ? key + ':' + getCounter(key) : String(getCounter(key))\n    }\n\n    // Added for remove vue undefined warning while ssr\n    this.$fetch = () => {} // issue #8043\n    Vue.util.defineReactive(this, '$fetchState', {\n      pending: true,\n      error: null,\n      timestamp: Date.now()\n    })\n\n    addLifecycleHook(this, 'serverPrefetch', serverPrefetch)\n  }\n}\n","import { getMatchedComponents, setScrollRestoration } from './utils'\n\nif (process.client) {\n  if ('scrollRestoration' in window.history) {\n    setScrollRestoration('manual')\n\n    // reset scrollRestoration to auto when leaving page, allowing page reload\n    // and back-navigation from other pages to use the browser to restore the\n    // scrolling position.\n    window.addEventListener('beforeunload', () => {\n      setScrollRestoration('auto')\n    })\n\n    // Setting scrollRestoration to manual again when returning to this page.\n    window.addEventListener('load', () => {\n      setScrollRestoration('manual')\n    })\n  }\n}\n\nfunction shouldScrollToTop(route) {\n   const Pages = getMatchedComponents(route)\n   if (Pages.length === 1) {\n     const { options = {} } = Pages[0]\n     return options.scrollToTop !== false\n   }\n   return Pages.some(({ options }) => options && options.scrollToTop)\n}\n\nexport default function (to, from, savedPosition) {\n  // If the returned position is falsy or an empty object, will retain current scroll position\n  let position = false\n  const isRouteChanged = to !== from\n\n  // savedPosition is only available for popstate navigations (back button)\n  if (savedPosition) {\n    position = savedPosition\n  } else if (isRouteChanged && shouldScrollToTop(to)) {\n    position = { x: 0, y: 0 }\n  }\n\n  const nuxt = window.$nuxt\n\n  if (\n    // Initial load (vuejs/vue-router#3199)\n    !isRouteChanged ||\n    // Route hash changes\n    (to.path === from.path && to.hash !== from.hash)\n  ) {\n    nuxt.$nextTick(() => nuxt.$emit('triggerScroll'))\n  }\n\n  return new Promise((resolve) => {\n    // wait for the out transition to complete (if necessary)\n    nuxt.$once('triggerScroll', () => {\n      // coords will be used if no selector is provided,\n      // or if the selector didn't match any element.\n      if (to.hash) {\n        let hash = to.hash\n        // CSS.escape() is not supported with IE and Edge.\n        if (typeof window.CSS !== 'undefined' && typeof window.CSS.escape !== 'undefined') {\n          hash = '#' + window.CSS.escape(hash.substr(1))\n        }\n        try {\n          if (document.querySelector(hash)) {\n            // scroll to anchor by returning the selector\n            position = { selector: hash }\n          }\n        } catch (e) {\n          console.warn('Failed to save scroll position. Please add CSS.escape() polyfill (https://github.com/mathiasbynens/CSS.escape).')\n        }\n      }\n      resolve(position)\n    })\n  })\n}\n","import Vue from 'vue'\nimport Router from 'vue-router'\nimport { normalizeURL, decode } from 'ufo'\nimport { interopDefault } from './utils'\nimport scrollBehavior from './router.scrollBehavior.js'\n\nconst _132a657c = () => interopDefault(import('..\\\\..\\\\..\\\\pages\\\\about-us\\\\index.vue' /* webpackChunkName: \"pages/about-us/index\" */))\nconst _12959ebd = () => interopDefault(import('..\\\\..\\\\..\\\\pages\\\\articles\\\\index.vue' /* webpackChunkName: \"pages/articles/index\" */))\nconst _81dac662 = () => interopDefault(import('..\\\\..\\\\..\\\\pages\\\\contact-us\\\\index.vue' /* webpackChunkName: \"pages/contact-us/index\" */))\nconst _ed4f3ecc = () => interopDefault(import('..\\\\..\\\\..\\\\pages\\\\index.vue' /* webpackChunkName: \"pages/index\" */))\nconst _7eb57136 = () => interopDefault(import('..\\\\..\\\\..\\\\pages\\\\products\\\\index.vue' /* webpackChunkName: \"pages/products/index\" */))\nconst _22027066 = () => interopDefault(import('..\\\\..\\\\..\\\\pages\\\\articles\\\\post\\\\_slug\\\\index.vue' /* webpackChunkName: \"pages/articles/post/_slug/index\" */))\nconst _7f1010d2 = () => interopDefault(import('..\\\\..\\\\..\\\\pages\\\\products\\\\category\\\\_slug\\\\index.vue' /* webpackChunkName: \"pages/products/category/_slug/index\" */))\nconst _32345cd4 = () => interopDefault(import('..\\\\..\\\\..\\\\pages\\\\products\\\\_slug\\\\index.vue' /* webpackChunkName: \"pages/products/_slug/index\" */))\n\nconst emptyFn = () => {}\n\nVue.use(Router)\n\nexport const routerOptions = {\n  mode: 'history',\n  base: '/',\n  linkActiveClass: 'nuxt-link-active',\n  linkExactActiveClass: 'nuxt-link-exact-active',\n  scrollBehavior,\n\n  routes: [{\n    path: \"/about-us\",\n    component: _132a657c,\n    name: \"about-us___fa\"\n  }, {\n    path: \"/articles\",\n    component: _12959ebd,\n    name: \"articles___fa\"\n  }, {\n    path: \"/contact-us\",\n    component: _81dac662,\n    name: \"contact-us___fa\"\n  }, {\n    path: \"/en\",\n    component: _ed4f3ecc,\n    name: \"index___en\"\n  }, {\n    path: \"/products\",\n    component: _7eb57136,\n    name: \"products___fa\"\n  }, {\n    path: \"/en/about-us\",\n    component: _132a657c,\n    name: \"about-us___en\"\n  }, {\n    path: \"/en/articles\",\n    component: _12959ebd,\n    name: \"articles___en\"\n  }, {\n    path: \"/en/contact-us\",\n    component: _81dac662,\n    name: \"contact-us___en\"\n  }, {\n    path: \"/en/products\",\n    component: _7eb57136,\n    name: \"products___en\"\n  }, {\n    path: \"/en/articles/post/:slug\",\n    component: _22027066,\n    name: \"articles-post-slug___en\"\n  }, {\n    path: \"/en/products/category/:slug\",\n    component: _7f1010d2,\n    name: \"products-category-slug___en\"\n  }, {\n    path: \"/articles/post/:slug\",\n    component: _22027066,\n    name: \"articles-post-slug___fa\"\n  }, {\n    path: \"/en/products/:slug\",\n    component: _32345cd4,\n    name: \"products-slug___en\"\n  }, {\n    path: \"/products/category/:slug\",\n    component: _7f1010d2,\n    name: \"products-category-slug___fa\"\n  }, {\n    path: \"/products/:slug\",\n    component: _32345cd4,\n    name: \"products-slug___fa\"\n  }, {\n    path: \"/\",\n    component: _ed4f3ecc,\n    name: \"index___fa\"\n  }],\n\n  fallback: false\n}\n\nexport function createRouter (ssrContext, config) {\n  const base = (config._app && config._app.basePath) || routerOptions.base\n  const router = new Router({ ...routerOptions, base  })\n\n  // TODO: remove in Nuxt 3\n  const originalPush = router.push\n  router.push = function push (location, onComplete = emptyFn, onAbort) {\n    return originalPush.call(this, location, onComplete, onAbort)\n  }\n\n  const resolve = router.resolve.bind(router)\n  router.resolve = (to, current, append) => {\n    if (typeof to === 'string') {\n      to = normalizeURL(to)\n    }\n    return resolve(to, current, append)\n  }\n\n  return router\n}\n","\nexport default {\n  name: 'NuxtChild',\n  functional: true,\n  props: {\n    nuxtChildKey: {\n      type: String,\n      default: ''\n    },\n    keepAlive: Boolean,\n    keepAliveProps: {\n      type: Object,\n      default: undefined\n    }\n  },\n  render (_, { parent, data, props }) {\n    const h = parent.$createElement\n\n    data.nuxtChild = true\n    const _parent = parent\n    const transitions = parent.$nuxt.nuxt.transitions\n    const defaultTransition = parent.$nuxt.nuxt.defaultTransition\n\n    let depth = 0\n    while (parent) {\n      if (parent.$vnode && parent.$vnode.data.nuxtChild) {\n        depth++\n      }\n      parent = parent.$parent\n    }\n    data.nuxtChildDepth = depth\n    const transition = transitions[depth] || defaultTransition\n    const transitionProps = {}\n    transitionsKeys.forEach((key) => {\n      if (typeof transition[key] !== 'undefined') {\n        transitionProps[key] = transition[key]\n      }\n    })\n\n    const listeners = {}\n    listenersKeys.forEach((key) => {\n      if (typeof transition[key] === 'function') {\n        listeners[key] = transition[key].bind(_parent)\n      }\n    })\n    if (process.client) {\n      // Add triggerScroll event on beforeEnter (fix #1376)\n      const beforeEnter = listeners.beforeEnter\n      listeners.beforeEnter = (el) => {\n        // Ensure to trigger scroll event after calling scrollBehavior\n        window.$nuxt.$nextTick(() => {\n          window.$nuxt.$emit('triggerScroll')\n        })\n        if (beforeEnter) {\n          return beforeEnter.call(_parent, el)\n        }\n      }\n    }\n\n    // make sure that leave is called asynchronous (fix #5703)\n    if (transition.css === false) {\n      const leave = listeners.leave\n\n      // only add leave listener when user didnt provide one\n      // or when it misses the done argument\n      if (!leave || leave.length < 2) {\n        listeners.leave = (el, done) => {\n          if (leave) {\n            leave.call(_parent, el)\n          }\n\n          _parent.$nextTick(done)\n        }\n      }\n    }\n\n    let routerView = h('routerView', data)\n\n    if (props.keepAlive) {\n      routerView = h('keep-alive', { props: props.keepAliveProps }, [routerView])\n    }\n\n    return h('transition', {\n      props: transitionProps,\n      on: listeners\n    }, [routerView])\n  }\n}\n\nconst transitionsKeys = [\n  'name',\n  'mode',\n  'appear',\n  'css',\n  'type',\n  'duration',\n  'enterClass',\n  'leaveClass',\n  'appearClass',\n  'enterActiveClass',\n  'enterActiveClass',\n  'leaveActiveClass',\n  'appearActiveClass',\n  'enterToClass',\n  'leaveToClass',\n  'appearToClass'\n]\n\nconst listenersKeys = [\n  'beforeEnter',\n  'enter',\n  'afterEnter',\n  'enterCancelled',\n  'beforeLeave',\n  'leave',\n  'afterLeave',\n  'leaveCancelled',\n  'beforeAppear',\n  'appear',\n  'afterAppear',\n  'appearCancelled'\n]\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"error__page\"},[_vm._ssrNode(\"<img\"+(_vm._ssrAttr(\"src\",require(\"@/assets/images/error_page.png\")))+\" alt class=\\\"error__image\\\" data-v-f1fe3c98> <div class=\\\"error__text\\\" data-v-f1fe3c98>\"+_vm._ssrEscape(\"\\n        \"+_vm._s(_vm.errorText)+\"\\n    \")+\"</div>\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../node_modules/babel-loader/lib/index.js??ref--2-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/string-replace-loader/index.js??ref--12!./error.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js??ref--2-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/string-replace-loader/index.js??ref--12!./error.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./error.vue?vue&type=template&id=f1fe3c98&scoped=true&\"\nimport script from \"./error.vue?vue&type=script&lang=js&\"\nexport * from \"./error.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./error.vue?vue&type=style&index=0&id=f1fe3c98&prod&lang=scss&scoped=true&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  \"f1fe3c98\",\n  \"0370879f\"\n  \n)\n\nexport default component.exports","import Vue from 'vue'\nimport { compile } from '../utils'\n\nimport NuxtError from '../..\\\\..\\\\..\\\\layouts\\\\error.vue'\n\nimport NuxtChild from './nuxt-child'\n\nexport default {\n  name: 'Nuxt',\n  components: {\n    NuxtChild,\n    NuxtError\n  },\n  props: {\n    nuxtChildKey: {\n      type: String,\n      default: undefined\n    },\n    keepAlive: Boolean,\n    keepAliveProps: {\n      type: Object,\n      default: undefined\n    },\n    name: {\n      type: String,\n      default: 'default'\n    }\n  },\n  errorCaptured (error) {\n    // if we receive and error while showing the NuxtError component\n    // capture the error and force an immediate update so we re-render\n    // without the NuxtError component\n    if (this.displayingNuxtError) {\n      this.errorFromNuxtError = error\n      this.$forceUpdate()\n    }\n  },\n  computed: {\n    routerViewKey () {\n      // If nuxtChildKey prop is given or current route has children\n      if (typeof this.nuxtChildKey !== 'undefined' || this.$route.matched.length > 1) {\n        return this.nuxtChildKey || compile(this.$route.matched[0].path)(this.$route.params)\n      }\n\n      const [matchedRoute] = this.$route.matched\n\n      if (!matchedRoute) {\n        return this.$route.path\n      }\n\n      const Component = matchedRoute.components.default\n\n      if (Component && Component.options) {\n        const { options } = Component\n\n        if (options.key) {\n          return (typeof options.key === 'function' ? options.key(this.$route) : options.key)\n        }\n      }\n\n      const strict = /\\/$/.test(matchedRoute.path)\n      return strict ? this.$route.path : this.$route.path.replace(/\\/$/, '')\n    }\n  },\n  beforeCreate () {\n    Vue.util.defineReactive(this, 'nuxt', this.$root.$options.nuxt)\n  },\n  render (h) {\n    // if there is no error\n    if (!this.nuxt.err) {\n      // Directly return nuxt child\n      return h('NuxtChild', {\n        key: this.routerViewKey,\n        props: this.$props\n      })\n    }\n\n    // if an error occurred within NuxtError show a simple\n    // error message instead to prevent looping\n    if (this.errorFromNuxtError) {\n      this.$nextTick(() => (this.errorFromNuxtError = false))\n\n      return h('div', {}, [\n        h('h2', 'An error occurred while showing the error page'),\n        h('p', 'Unfortunately an error occurred and while showing the error page another error occurred'),\n        h('p', `Error details: ${this.errorFromNuxtError.toString()}`),\n        h('nuxt-link', { props: { to: '/' } }, 'Go back to home')\n      ])\n    }\n\n    // track if we are showing the NuxtError component\n    this.displayingNuxtError = true\n    this.$nextTick(() => (this.displayingNuxtError = false))\n\n    return h(NuxtError, {\n      props: {\n        error: this.nuxt.err\n      }\n    })\n  }\n}\n","\nexport default {\n  name: 'NuxtLoading',\n  data () {\n    return {\n      percent: 0,\n      show: false,\n      canSucceed: true,\n      reversed: false,\n      skipTimerCount: 0,\n      rtl: false,\n      throttle: 200,\n      duration: 5000,\n      continuous: true\n    }\n  },\n  computed: {\n    left () {\n      if (!this.continuous && !this.rtl) {\n        return false\n      }\n      return this.rtl\n        ? (this.reversed ? '0px' : 'auto')\n        : (!this.reversed ? '0px' : 'auto')\n    }\n  },\n  beforeDestroy () {\n    this.clear()\n  },\n  methods: {\n    clear () {\n      clearInterval(this._timer)\n      clearTimeout(this._throttle)\n      this._timer = null\n    },\n    start () {\n      this.clear()\n      this.percent = 0\n      this.reversed = false\n      this.skipTimerCount = 0\n      this.canSucceed = true\n\n      if (this.throttle) {\n        this._throttle = setTimeout(() => this.startTimer(), this.throttle)\n      } else {\n        this.startTimer()\n      }\n      return this\n    },\n    set (num) {\n      this.show = true\n      this.canSucceed = true\n      this.percent = Math.min(100, Math.max(0, Math.floor(num)))\n      return this\n    },\n    get () {\n      return this.percent\n    },\n    increase (num) {\n      this.percent = Math.min(100, Math.floor(this.percent + num))\n      return this\n    },\n    decrease (num) {\n      this.percent = Math.max(0, Math.floor(this.percent - num))\n      return this\n    },\n    pause () {\n      clearInterval(this._timer)\n      return this\n    },\n    resume () {\n      this.startTimer()\n      return this\n    },\n    finish () {\n      this.percent = this.reversed ? 0 : 100\n      this.hide()\n      return this\n    },\n    hide () {\n      this.clear()\n      setTimeout(() => {\n        this.show = false\n        this.$nextTick(() => {\n          this.percent = 0\n          this.reversed = false\n        })\n      }, 500)\n      return this\n    },\n    fail (error) {\n      this.canSucceed = false\n      return this\n    },\n    startTimer () {\n      if (!this.show) {\n        this.show = true\n      }\n      if (typeof this._cut === 'undefined') {\n        this._cut = 10000 / Math.floor(this.duration)\n      }\n\n      this._timer = setInterval(() => {\n        /**\n         * When reversing direction skip one timers\n         * so 0, 100 are displayed for two iterations\n         * also disable css width transitioning\n         * which otherwise interferes and shows\n         * a jojo effect\n         */\n        if (this.skipTimerCount > 0) {\n          this.skipTimerCount--\n          return\n        }\n\n        if (this.reversed) {\n          this.decrease(this._cut)\n        } else {\n          this.increase(this._cut)\n        }\n\n        if (this.continuous) {\n          if (this.percent >= 100) {\n            this.skipTimerCount = 1\n\n            this.reversed = !this.reversed\n          } else if (this.percent <= 0) {\n            this.skipTimerCount = 1\n\n            this.reversed = !this.reversed\n          }\n        }\n      }, 100)\n    }\n  },\n  render (h) {\n    let el = h(false)\n    if (this.show) {\n      el = h('div', {\n        staticClass: 'nuxt-progress',\n        class: {\n          'nuxt-progress-notransition': this.skipTimerCount > 0,\n          'nuxt-progress-failed': !this.canSucceed\n        },\n        style: {\n          width: this.percent + '%',\n          left: this.left\n        }\n      })\n    }\n    return el\n  }\n}\n","import mod from \"-!../../../babel-loader/lib/index.js??ref--2-0!../../../vue-loader/lib/index.js??vue-loader-options!./nuxt-loading.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../babel-loader/lib/index.js??ref--2-0!../../../vue-loader/lib/index.js??vue-loader-options!./nuxt-loading.vue?vue&type=script&lang=js&\"","var render, staticRenderFns\nimport script from \"./nuxt-loading.vue?vue&type=script&lang=js&\"\nexport * from \"./nuxt-loading.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./nuxt-loading.vue?vue&type=style&index=0&id=0a6c674f&prod&lang=css&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  null,\n  \"7ed7cee1\"\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.applicationClassList,attrs:{\"data-lang\":_vm.language}},[_c('navigation-bar'),_vm._ssrNode(\" \"),_c('Nuxt'),_vm._ssrNode(\" \"),_c('app-footer')],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LazyHydrate',{attrs:{\"when-visible\":\"\"}},[_c('footer',{staticClass:\"footer\"},[_c('div',{staticClass:\"footer__content\"},[_c('div',{staticClass:\"footer__column-1\"},[_c('footer-title',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"pars mega products\"))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.column1Links),function(item){return _c('footer-link',{key:item.id,attrs:{\"is-external\":item.isExternal,\"text\":item.showName,\"href\":item.linkUrl}})})],2),_vm._v(\" \"),_c('div',{staticClass:\"footer__column-2\"},[_c('footer-title',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"quick access\"))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.column2Links),function(item){return _c('footer-link',{key:item.id,attrs:{\"is-external\":item.isExternal,\"text\":item.showName,\"href\":item.linkUrl}})})],2),_vm._v(\" \"),_c('div',{staticClass:\"footer__column-3\"},[_c('footer-title',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"contact info\"))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('a',{staticClass:\"footer__text footer__text--phone footer__text--en\",attrs:{\"href\":`tel:${_vm.telephone}`}},[_c('i',{staticClass:\"icon-support footer__text__icon\"}),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.telephone)+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('a',{staticClass:\"footer__text footer__text--phone footer__text--en\",attrs:{\"href\":`tel:${_vm.telephone2}`}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.telephone2)+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"footer__text\"},[_c('i',{staticClass:\"icon-mail_outline footer__text__icon\"}),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"contactEmailValue\"))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"footer__text\"},[_c('i',{staticClass:\"icon-map footer__text__icon footer__text__icon--map\"}),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"contactAddressValue\"))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('a',{staticClass:\"footer__social-link\",attrs:{\"href\":_vm.$t('contactLinkdin')}},[_c('i',{staticClass:\"icon-linkedin\"})]),_vm._v(\" \"),_c('a',{staticClass:\"footer__social-link\",attrs:{\"href\":_vm.$t('contactYoutube')}},[_c('i',{staticClass:\"icon-youtube\"})]),_vm._v(\" \"),_c('a',{staticClass:\"footer__social-link\",attrs:{\"href\":_vm.$t('contactTelegramLink')}},[_c('i',{staticClass:\"icon-telegram\"})]),_vm._v(\" \"),_c('a',{staticClass:\"footer__social-link\",attrs:{\"href\":_vm.$t('contactInstagramLink')}},[_c('i',{staticClass:\"icon-instagram\"})])],1),_vm._v(\" \"),_c('div',{staticClass:\"footer__column-4\"},[_c('footer-title',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"about pars mega\"))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"footer__text\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"footerAboutLine1\"))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"footer__text\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"footerAboutLine2\"))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"footer__text\"},[_c('i',{staticClass:\"icon-access_time footer__text__icon\"}),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"contactWorkTimes\"))+\"\\n\\t\\t\\t\\t\")])],1)]),_vm._v(\" \"),_c('footer-copyright')],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"copyright\"},[_vm._ssrNode(_vm._ssrEscape(\"\\n\\t\"+_vm._s(_vm.$t(\"copyright1\"))+\"\\n\\t\")+\"<b class=\\\"copyright__company\\\" data-v-11bd7140>\"+_vm._ssrEscape(\"\\n\\t\\t\"+_vm._s(_vm.$t(\"parsmega\"))+\"\\n\\t\")+\"</b>\"+_vm._ssrEscape(\"\\n\\t\"+_vm._s(_vm.$t(\"copyright2\"))+\"\\n\"))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_copyright.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_copyright.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./app_footer_copyright.vue?vue&type=template&id=11bd7140&scoped=true&\"\nimport script from \"./app_footer_copyright.vue?vue&type=script&lang=js&\"\nexport * from \"./app_footer_copyright.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./app_footer_copyright.vue?vue&type=style&index=0&id=11bd7140&prod&lang=scss&scoped=true&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  \"11bd7140\",\n  \"d958c34a\"\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isExternal)?_c('a',{staticClass:\"footer-link\",attrs:{\"href\":_vm.href,\"target\":\"_blank\"}},[_vm._ssrNode(_vm._ssrEscape(\"\\n\\t\"+_vm._s(_vm.text)+\"\\n\"))],2):_c('nuxt-link',{staticClass:\"footer-link\",attrs:{\"to\":_vm.localePath(_vm.href)}},[_vm._v(\"\\n\\t\"+_vm._s(_vm.text)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_link.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_link.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./app_footer_link.vue?vue&type=template&id=1a59aadf&scoped=true&\"\nimport script from \"./app_footer_link.vue?vue&type=script&lang=js&\"\nexport * from \"./app_footer_link.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./app_footer_link.vue?vue&type=style&index=0&id=1a59aadf&prod&lang=scss&scoped=true&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  \"1a59aadf\",\n  \"6d2ce496\"\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"footer-title\"},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_title.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer_title.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./app_footer_title.vue?vue&type=template&id=26b8a362&scoped=true&\"\nimport script from \"./app_footer_title.vue?vue&type=script&lang=js&\"\nexport * from \"./app_footer_title.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./app_footer_title.vue?vue&type=style&index=0&id=26b8a362&prod&lang=scss&scoped=true&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  \"26b8a362\",\n  \"1c93ba6c\"\n  \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./app_footer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./app_footer.vue?vue&type=template&id=39e1f500&scoped=true&\"\nimport script from \"./app_footer.vue?vue&type=script&lang=js&\"\nexport * from \"./app_footer.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./app_footer.vue?vue&type=style&index=0&id=39e1f500&prod&lang=scss&scoped=true&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  \"39e1f500\",\n  \"b7f1bc5a\"\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"navigation\"},[_c('contact-bar'),_vm._ssrNode(\" \"),_c('menu-bar')],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"contact-bar\"},[_vm._ssrNode(\"<div class=\\\"contact-bar__contents\\\" data-v-8875293a><a\"+(_vm._ssrAttr(\"href\",`tel:${_vm.telephone}`))+\" class=\\\"contact-bar__support\\\" data-v-8875293a>\"+_vm._ssrEscape(\"\\n\\t\\t\\t\"+_vm._s(_vm.telephone)+\"\\n\\t\\t\\t\")+\"<i class=\\\"icon-support contact-bar__icon\\\" data-v-8875293a></i></a> <span class=\\\"contact-bar__mail\\\" data-v-8875293a>\"+_vm._ssrEscape(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t(\"contactEmailValue\"))+\"\\n\\t\\t\\t\")+\"<i class=\\\"icon-mail_outline contact-bar__icon\\\" data-v-8875293a></i></span> <span class=\\\"contact-bar__times\\\" data-v-8875293a><i class=\\\"icon-access_time contact-bar__icon\\\" data-v-8875293a></i>\"+_vm._ssrEscape(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t(\"contactWorkTimes\"))+\"\\n\\t\\t\")+\"</span> <a\"+(_vm._ssrAttr(\"href\",_vm.$t('contactLinkdin')))+\" class=\\\"contact-bar__social-link\\\" data-v-8875293a><i class=\\\"icon-linkedin\\\" data-v-8875293a></i></a> <a\"+(_vm._ssrAttr(\"href\",_vm.$t('contactYoutube')))+\" class=\\\"contact-bar__social-link\\\" data-v-8875293a><i class=\\\"icon-youtube\\\" data-v-8875293a></i></a> <a\"+(_vm._ssrAttr(\"href\",_vm.$t('contactTelegramLink')))+\" class=\\\"contact-bar__social-link\\\" data-v-8875293a><i class=\\\"icon-telegram\\\" data-v-8875293a></i></a> <a\"+(_vm._ssrAttr(\"href\",_vm.$t('contactInstagramLink')))+\" class=\\\"contact-bar__social-link\\\" data-v-8875293a><i class=\\\"icon-instagram\\\" data-v-8875293a></i></a></div>\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_contact_bar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_contact_bar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./navigation_contact_bar.vue?vue&type=template&id=8875293a&scoped=true&\"\nimport script from \"./navigation_contact_bar.vue?vue&type=script&lang=js&\"\nexport * from \"./navigation_contact_bar.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./navigation_contact_bar.vue?vue&type=style&index=0&id=8875293a&prod&lang=scss&scoped=true&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  \"8875293a\",\n  \"f8fec2ec\"\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"menu-bar menu-bar--colored\"},[_vm._ssrNode(\"<div class=\\\"menu-bar__contents\\\" data-v-8336deaa>\",\"</div>\",[_vm._ssrNode(\"<i class=\\\"icon-menu menu-bar__hamburger-btn\\\" data-v-8336deaa></i> \"),_c('logo-link',{staticClass:\"menu-bar__logo\"}),_vm._ssrNode(\" \"),_c('menu-drawer',{attrs:{\"is-drawer-active\":_vm.isDrawerActive},on:{\"close\":_vm.hideDrawer}})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"drawer\",class:{ 'drawer--active': _vm.isDrawerActive }},[_vm._ssrNode(\"<div class=\\\"drawer__header\\\" data-v-119f9dc8>\",\"</div>\",[_vm._ssrNode(\"<i class=\\\"icon-clear drawer__close-btn\\\" data-v-119f9dc8></i> \"),_c('logo-link')],2),_vm._ssrNode(\" \"),_vm._ssrNode(\"<div class=\\\"drawer__body\\\" data-v-119f9dc8>\",\"</div>\",_vm._l((_vm.rootMenuItems),function(link){return _c('navigation-item',{key:link.name,attrs:{\"link\":link,\"subLinks\":_vm.getMenuItemChilds(link.name)}})}),1),_vm._ssrNode(\" <div class=\\\"drawer__footer\\\" data-v-119f9dc8><a\"+(_vm._ssrAttr(\"href\",'tel:' + _vm.supportPhone))+\" class=\\\"drawer__call-btn\\\" data-v-119f9dc8>\"+_vm._ssrEscape(\"\\n      \"+_vm._s(_vm.supportPhone)+\"\\n      \")+\"<i class=\\\"icon-support drawer__call-btn__icon\\\" data-v-119f9dc8></i></a> <a\"+(_vm._ssrAttr(\"href\",_vm.$t('contactLinkdin')))+\" class=\\\"drawer__social-link\\\" data-v-119f9dc8><i class=\\\"icon-linkedin\\\" data-v-119f9dc8></i></a> <a\"+(_vm._ssrAttr(\"href\",_vm.$t('contactYoutube')))+\" class=\\\"drawer__social-link\\\" data-v-119f9dc8><i class=\\\"icon-youtube\\\" data-v-119f9dc8></i></a> <a\"+(_vm._ssrAttr(\"href\",_vm.$t('contactTelegramLink')))+\" class=\\\"drawer__social-link\\\" data-v-119f9dc8><i class=\\\"icon-telegram\\\" data-v-119f9dc8></i></a> <a\"+(_vm._ssrAttr(\"href\",_vm.$t('contactInstagramLink')))+\" class=\\\"drawer__social-link\\\" data-v-119f9dc8><i class=\\\"icon-instagram\\\" data-v-119f9dc8></i></a></div>\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('nuxt-link',{staticClass:\"logo-link\",attrs:{\"to\":_vm.localePath('/')}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"assets/images/logo.svg\"),\"alt\":\"لوگوی پارس مگا\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_logo_link.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_logo_link.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./navigation_logo_link.vue?vue&type=template&id=2301b45b&scoped=true&\"\nimport script from \"./navigation_logo_link.vue?vue&type=script&lang=js&\"\nexport * from \"./navigation_logo_link.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./navigation_logo_link.vue?vue&type=style&index=0&id=2301b45b&prod&lang=scss&scoped=true&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  \"2301b45b\",\n  \"c43e00b8\"\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.hasSubLinks)?_c('div',{staticClass:\"root-link root-link--has-child\",on:{\"click\":_vm.toogleChilds}},[_vm._ssrNode(\"<div class=\\\"root-link\\\" style=\\\"padding: 0\\\" data-v-4f134f80>\",\"</div>\",[_vm._ssrNode(_vm._ssrEscape(\"\\n\\t\\t\"+_vm._s(_vm.$t(_vm.link.showName))+\"\\n\\t\\t\")),(_vm.link.url)?_c('nuxt-link',{staticClass:\"root-link__go-parent-on-desktop\",attrs:{\"to\":_vm.localePath(_vm.link.url)}}):_vm._e()],2),_vm._ssrNode(\" \"),_vm._ssrNode(\"<div\"+(_vm._ssrClass(\"links-childs-wrapper\",{ 'links-childs-wrapper--active': _vm.isChildsWrapperActive }))+\" data-v-4f134f80>\",\"</div>\",_vm._l((_vm.subLinks),function(item){return _c('nuxt-link',{key:item.name,staticClass:\"child-link\",attrs:{\"to\":_vm.localePath(item.url)}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t(item.showName))+\"\\n\\t\\t\")])}),1)],2):_c('nuxt-link',{staticClass:\"root-link\",attrs:{\"to\":_vm.localePath(_vm.link.url),\"exact\":_vm.link.url == '/',\"active-class\":'root-link--active'}},[_vm._v(\"\\n\\t\"+_vm._s(_vm.$t(_vm.link.showName))+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_item.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_item.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./navigation_item.vue?vue&type=template&id=4f134f80&scoped=true&\"\nimport script from \"./navigation_item.vue?vue&type=script&lang=js&\"\nexport * from \"./navigation_item.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./navigation_item.vue?vue&type=style&index=0&id=4f134f80&prod&lang=scss&scoped=true&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  \"4f134f80\",\n  \"c9e8d126\"\n  \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_menu_drawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_menu_drawer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./navigation_menu_drawer.vue?vue&type=template&id=119f9dc8&scoped=true&\"\nimport script from \"./navigation_menu_drawer.vue?vue&type=script&lang=js&\"\nexport * from \"./navigation_menu_drawer.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./navigation_menu_drawer.vue?vue&type=style&index=0&id=119f9dc8&prod&lang=scss&scoped=true&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  \"119f9dc8\",\n  \"0a8a5067\"\n  \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_menu_bar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_menu_bar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./navigation_menu_bar.vue?vue&type=template&id=8336deaa&scoped=true&\"\nimport script from \"./navigation_menu_bar.vue?vue&type=script&lang=js&\"\nexport * from \"./navigation_menu_bar.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./navigation_menu_bar.vue?vue&type=style&index=0&id=8336deaa&prod&lang=scss&scoped=true&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  \"8336deaa\",\n  \"9f6ad6e6\"\n  \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_bar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--2-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/string-replace-loader/index.js??ref--12!./navigation_bar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./navigation_bar.vue?vue&type=template&id=237fa5d8&scoped=true&\"\nimport script from \"./navigation_bar.vue?vue&type=script&lang=js&\"\nexport * from \"./navigation_bar.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./navigation_bar.vue?vue&type=style&index=0&id=237fa5d8&prod&lang=scss&scoped=true&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  \"237fa5d8\",\n  \"11f55cae\"\n  \n)\n\nexport default component.exports","import mod from \"-!../node_modules/babel-loader/lib/index.js??ref--2-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/string-replace-loader/index.js??ref--12!./default.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js??ref--2-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/string-replace-loader/index.js??ref--12!./default.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./default.vue?vue&type=template&id=f4ecc31a&\"\nimport script from \"./default.vue?vue&type=script&lang=js&\"\nexport * from \"./default.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./default.vue?vue&type=style&index=0&id=f4ecc31a&prod&lang=scss&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  null,\n  \"538b0398\"\n  \n)\n\nexport default component.exports","import Vue from 'vue'\nimport { decode, parsePath, withoutBase, withoutTrailingSlash, normalizeURL } from 'ufo'\n\nimport { getMatchedComponentsInstances, getChildrenComponentInstancesUsingFetch, promisify, globalHandleError, urlJoin, sanitizeComponent } from './utils'\nimport NuxtError from '..\\\\..\\\\..\\\\layouts\\\\error.vue'\nimport NuxtLoading from './components/nuxt-loading.vue'\n\nimport _6f6c098b from '..\\\\..\\\\..\\\\layouts\\\\default.vue'\n\nconst layouts = { \"_default\": sanitizeComponent(_6f6c098b) }\n\nexport default {\n  render (h, props) {\n    const loadingEl = h('NuxtLoading', { ref: 'loading' })\n\n    const layoutEl = h(this.layout || 'nuxt')\n    const templateEl = h('div', {\n      domProps: {\n        id: '__layout'\n      },\n      key: this.layoutName\n    }, [layoutEl])\n\n    const transitionEl = h('transition', {\n      props: {\n        name: 'layout',\n        mode: 'out-in'\n      },\n      on: {\n        beforeEnter (el) {\n          // Ensure to trigger scroll event after calling scrollBehavior\n          window.$nuxt.$nextTick(() => {\n            window.$nuxt.$emit('triggerScroll')\n          })\n        }\n      }\n    }, [templateEl])\n\n    return h('div', {\n      domProps: {\n        id: '__nuxt'\n      }\n    }, [\n      loadingEl,\n\n      transitionEl\n    ])\n  },\n\n  data: () => ({\n    isOnline: true,\n\n    layout: null,\n    layoutName: '',\n\n    nbFetching: 0\n    }),\n\n  beforeCreate () {\n    Vue.util.defineReactive(this, 'nuxt', this.$options.nuxt)\n  },\n  created () {\n    // Add this.$nuxt in child instances\n    this.$root.$options.$nuxt = this\n\n    if (process.client) {\n      // add to window so we can listen when ready\n      window.$nuxt = this\n\n      this.refreshOnlineStatus()\n      // Setup the listeners\n      window.addEventListener('online', this.refreshOnlineStatus)\n      window.addEventListener('offline', this.refreshOnlineStatus)\n    }\n    // Add $nuxt.error()\n    this.error = this.nuxt.error\n    // Add $nuxt.context\n    this.context = this.$options.context\n  },\n\n  async mounted () {\n    this.$loading = this.$refs.loading\n\n    if (this.isPreview) {\n      if (this.$store && this.$store._actions.nuxtServerInit) {\n        this.$loading.start()\n        await this.$store.dispatch('nuxtServerInit', this.context)\n      }\n      await this.refresh()\n      this.$loading.finish()\n    }\n  },\n\n  watch: {\n    'nuxt.err': 'errorChanged'\n  },\n\n  computed: {\n    isOffline () {\n      return !this.isOnline\n    },\n\n    isFetching () {\n      return this.nbFetching > 0\n    },\n\n    isPreview () {\n      return Boolean(this.$options.previewData)\n    },\n  },\n\n  methods: {\n    refreshOnlineStatus () {\n      if (process.client) {\n        if (typeof window.navigator.onLine === 'undefined') {\n          // If the browser doesn't support connection status reports\n          // assume that we are online because most apps' only react\n          // when they now that the connection has been interrupted\n          this.isOnline = true\n        } else {\n          this.isOnline = window.navigator.onLine\n        }\n      }\n    },\n\n    async refresh () {\n      const pages = getMatchedComponentsInstances(this.$route)\n\n      if (!pages.length) {\n        return\n      }\n      this.$loading.start()\n\n      const promises = pages.map((page) => {\n        const p = []\n\n        // Old fetch\n        if (page.$options.fetch && page.$options.fetch.length) {\n          p.push(promisify(page.$options.fetch, this.context))\n        }\n        if (page.$fetch) {\n          p.push(page.$fetch())\n        } else {\n          // Get all component instance to call $fetch\n          for (const component of getChildrenComponentInstancesUsingFetch(page.$vnode.componentInstance)) {\n            p.push(component.$fetch())\n          }\n        }\n\n        if (page.$options.asyncData) {\n          p.push(\n            promisify(page.$options.asyncData, this.context)\n              .then((newData) => {\n                for (const key in newData) {\n                  Vue.set(page.$data, key, newData[key])\n                }\n              })\n          )\n        }\n\n        return Promise.all(p)\n      })\n      try {\n        await Promise.all(promises)\n      } catch (error) {\n        this.$loading.fail(error)\n        globalHandleError(error)\n        this.error(error)\n      }\n      this.$loading.finish()\n    },\n    errorChanged () {\n      if (this.nuxt.err) {\n        if (this.$loading) {\n          if (this.$loading.fail) {\n            this.$loading.fail(this.nuxt.err)\n          }\n          if (this.$loading.finish) {\n            this.$loading.finish()\n          }\n        }\n\n        let errorLayout = (NuxtError.options || NuxtError).layout;\n\n        if (typeof errorLayout === 'function') {\n          errorLayout = errorLayout(this.context)\n        }\n\n        this.setLayout(errorLayout)\n      }\n    },\n\n    setLayout (layout) {\n      if (!layout || !layouts['_' + layout]) {\n        layout = 'default'\n      }\n      this.layoutName = layout\n      this.layout = layouts['_' + layout]\n      return this.layout\n    },\n    loadLayout (layout) {\n      if (!layout || !layouts['_' + layout]) {\n        layout = 'default'\n      }\n      return Promise.resolve(layouts['_' + layout])\n    },\n\n    getRouterBase() {\n      return withoutTrailingSlash(this.$router.options.base)\n    },\n    getRoutePath(route = '/') {\n      const base = this.getRouterBase()\n      return withoutTrailingSlash(withoutBase(parsePath(route).pathname, base))\n    },\n    getStaticAssetsPath(route = '/') {\n      const { staticAssetsBase } = window.__NUXT__\n\n      return urlJoin(staticAssetsBase, this.getRoutePath(route))\n    },\n\n      async fetchStaticManifest() {\n      return window.__NUXT_IMPORT__('manifest.js', normalizeURL(urlJoin(this.getStaticAssetsPath(), 'manifest.js')))\n    },\n\n    setPagePayload(payload) {\n      this._pagePayload = payload\n      this._fetchCounters = {}\n    },\n    async fetchPayload(route, prefetch) {\n      const path = decode(this.getRoutePath(route))\n\n      const manifest = await this.fetchStaticManifest()\n      if (!manifest.routes.includes(path)) {\n        if (!prefetch) { this.setPagePayload(false) }\n        throw new Error(`Route ${path} is not pre-rendered`)\n      }\n\n      const src = urlJoin(this.getStaticAssetsPath(route), 'payload.js')\n      try {\n        const payload = await window.__NUXT_IMPORT__(path, normalizeURL(src))\n        if (!prefetch) { this.setPagePayload(payload) }\n        return payload\n      } catch (err) {\n        if (!prefetch) { this.setPagePayload(false) }\n        throw err\n      }\n    }\n  },\n\n  components: {\n    NuxtLoading\n  }\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nVue.use(Vuex)\n\nconst VUEX_PROPERTIES = ['state', 'getters', 'actions', 'mutations']\n\nlet store = {};\n\n(function updateModules () {\n  // If store is an exported method = classic mode (deprecated)\n\n  // Enforce store modules\n  store.modules = store.modules || {}\n\n  resolveStoreModules(require('..\\\\..\\\\..\\\\store\\\\category_filter_data.js'), 'category_filter_data.js')\n\n  // If the environment supports hot reloading...\n})()\n\n// createStore\nexport const createStore = store instanceof Function ? store : () => {\n  return new Vuex.Store(Object.assign({\n    strict: (process.env.NODE_ENV !== 'production')\n  }, store))\n}\n\nfunction normalizeRoot (moduleData, filePath) {\n  moduleData = moduleData.default || moduleData\n\n  if (moduleData.commit) {\n    throw new Error(`[nuxt] ${filePath} should export a method that returns a Vuex instance.`)\n  }\n\n  if (typeof moduleData !== 'function') {\n    // Avoid TypeError: setting a property that has only a getter when overwriting top level keys\n    moduleData = Object.assign({}, moduleData)\n  }\n  return normalizeModule(moduleData, filePath)\n}\n\nfunction normalizeModule (moduleData, filePath) {\n  if (moduleData.state && typeof moduleData.state !== 'function') {\n    console.warn(`'state' should be a method that returns an object in ${filePath}`)\n\n    const state = Object.assign({}, moduleData.state)\n    // Avoid TypeError: setting a property that has only a getter when overwriting top level keys\n    moduleData = Object.assign({}, moduleData, { state: () => state })\n  }\n  return moduleData\n}\n\nfunction resolveStoreModules (moduleData, filename) {\n  moduleData = moduleData.default || moduleData\n  // Remove store src + extension (./foo/index.js -> foo/index)\n  const namespace = filename.replace(/\\.(js|mjs)$/, '')\n  const namespaces = namespace.split('/')\n  let moduleName = namespaces[namespaces.length - 1]\n  const filePath = `store/${filename}`\n\n  moduleData = moduleName === 'state'\n    ? normalizeState(moduleData, filePath)\n    : normalizeModule(moduleData, filePath)\n\n  // If src is a known Vuex property\n  if (VUEX_PROPERTIES.includes(moduleName)) {\n    const property = moduleName\n    const propertyStoreModule = getStoreModule(store, namespaces, { isProperty: true })\n\n    // Replace state since it's a function\n    mergeProperty(propertyStoreModule, moduleData, property)\n    return\n  }\n\n  // If file is foo/index.js, it should be saved as foo\n  const isIndexModule = (moduleName === 'index')\n  if (isIndexModule) {\n    namespaces.pop()\n    moduleName = namespaces[namespaces.length - 1]\n  }\n\n  const storeModule = getStoreModule(store, namespaces)\n\n  for (const property of VUEX_PROPERTIES) {\n    mergeProperty(storeModule, moduleData[property], property)\n  }\n\n  if (moduleData.namespaced === false) {\n    delete storeModule.namespaced\n  }\n}\n\nfunction normalizeState (moduleData, filePath) {\n  if (typeof moduleData !== 'function') {\n    console.warn(`${filePath} should export a method that returns an object`)\n    const state = Object.assign({}, moduleData)\n    return () => state\n  }\n  return normalizeModule(moduleData, filePath)\n}\n\nfunction getStoreModule (storeModule, namespaces, { isProperty = false } = {}) {\n  // If ./mutations.js\n  if (!namespaces.length || (isProperty && namespaces.length === 1)) {\n    return storeModule\n  }\n\n  const namespace = namespaces.shift()\n\n  storeModule.modules[namespace] = storeModule.modules[namespace] || {}\n  storeModule.modules[namespace].namespaced = true\n  storeModule.modules[namespace].modules = storeModule.modules[namespace].modules || {}\n\n  return getStoreModule(storeModule.modules[namespace], namespaces, { isProperty })\n}\n\nfunction mergeProperty (storeModule, moduleData, property) {\n  if (!moduleData) {\n    return\n  }\n\n  if (property === 'state') {\n    storeModule.state = moduleData || storeModule.state\n  } else {\n    storeModule[property] = Object.assign({}, storeModule[property], moduleData)\n  }\n}\n","import Vue from 'vue';\nrequire('intersection-observer');\n\nlet options = {\"images\":true,\"videos\":true,\"audios\":true,\"iframes\":true,\"native\":false,\"directiveOnly\":true,\"loadingClass\":\"isLoading\",\"loadedClass\":\"isLoaded\",\"appendClass\":\"lazyLoad\",\"observerConfig\":{},\"globalName\":\"nuxt\"};\nlet observer = null;\nlet attributes = ['src', 'poster', 'srcset'];\nlet elementsMap = {\n  img: 'images',\n  video: 'videos',\n  audio: 'audios',\n  iframe: 'iframes',\n  picture: 'images',\n}\n\nconst capitalize = (s) =>{\n  if(typeof s !== 'string') return ''\n  return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\nconst setAttributes = (el, defaultImage=false) =>{\n  let elementTagName = el.tagName.toLowerCase();\n  if(elementTagName !== 'svg'){\n    let media = el.children && el.children.length > 0 ? [...el.children, el] : [el];\n    media.forEach(el =>{\n      for(let attribute of attributes){\n        if(el.dataset[attribute]){\n          el[attribute] = defaultImage ? options.defaultImage : el.dataset[attribute];\n          if(!defaultImage) el.removeAttribute(`data-${attribute}`);\n        }\n        if(el.load) el.load();\n        if(elementTagName === 'audio' && el.getAttribute('data-lazy-controls') === 'true'){\n          el.removeAttribute('controls')\n          el.removeAttribute('data-lazy-controls')\n        }\n      }\n    })\n  }\n}\n\nconst setBackground = (el) =>{\n  el.style.backgroundImage = `url(${el.getAttribute('lazy-background')})`\n  el.removeAttribute('lazy-background');\n  if(options.loadedClass !== false) el.classList.add(options.loadedClass)\n}\n\nconst setClasses = (el, type) =>{\n  let elementTagName = el.tagName.toLowerCase();\n  if(['img', 'picture', 'video'].includes(elementTagName)){\n    el = elementTagName === 'picture' ? el.querySelector('img') : el;\n    let eventName = elementTagName === 'video' ? 'loadeddata' : 'load';\n    const e = elementTagName === 'picture' ? el.parentNode : el;\n    if(options.loadingClass !== false && type === 'loading'){\n      e.classList.add(options.loadingClass)\n      el.addEventListener(eventName, () =>{\n        e.classList.remove(options.loadingClass)\n      });\n    } else if(options.loadedClass !== false && type === 'loaded'){\n      el.addEventListener(eventName, () =>{\n        e.classList.add(options.loadedClass)\n      });\n    }\n  } else if(type === 'loaded' && options.loadedClass !== false){\n    el.classList.add(options.loadedClass)\n  }\n}\n\nconst removeNotLazy = (el) => {\n  el.removeAttribute('data-no-lazy');\n  el.removeAttribute('data-not-lazy');\n}\n\nif(process.browser){\n  let isWindowLoaded = false;\n  let globalName = capitalize(options.globalName) || 'Nuxt';\n  window[`on${globalName}Ready`](() => {isWindowLoaded = true})\n  observer = new IntersectionObserver((entries, self) => {\n    if(isWindowLoaded){\n      entries.forEach(entry => {\n        if(entry.isIntersecting){\n          let el = entry.target;\n          if(el.getAttribute('lazy-background')){\n            setBackground(el);\n          } else {\n            setAttributes(el);\n            setClasses(el, 'loaded')\n            setClasses(el, 'loading')\n            self.unobserve(el)\n          }\n        }\n      })\n    }\n  }, options.observerConfig);\n}\n\nconst vLazyLoad = Vue.directive('lazy-load', {\n  inserted(el, {value, def}) {\n    def.set(el, value)\n  },\n\n  update(el, {value, def}, vNode, oldVnode) {\n    for(let attribute of attributes){\n      if(oldVnode.data.attrs && vNode.data.attrs && oldVnode.data.attrs[`data-${attribute}`] !== vNode.data.attrs[`data-${attribute}`]){\n        def.set(el, value);\n        break;\n      }\n    }\n  },\n\n  set(el, value) {\n    if(options.native === true){\n      if(options.appendClass) el.classList.add(options.appendClass);\n      if(['notLazy', 'noLazy'].every(d => el.dataset[d] === undefined)){\n        el.setAttribute('loading', 'lazy');\n        removeNotLazy(el)\n        if(options.loadedClass){\n          el.addEventListener('load', () =>{\n            el.classList.add(options.loadedClass);\n          })\n        }\n      }\n    } else {\n      if(options.defaultImage) setAttributes(el, true)\n      if(process.browser){\n        if(value){\n          let media = [];\n          value.replace(/( )src=/g, ' data-src=');\n          value.replace(/( )srcset=/g, ' data-srcset=');\n          value.replace(/( )poster=/g, ' data-poster=');\n          el.innerHTML = value;\n\n          for(let key in elementsMap){\n            if(options[elementsMap[key]]) media.push(...el.querySelectorAll(key))\n          }\n\n          for(let element of media){\n            if(options.appendClass !== false) element.classList.add(options.appendClass);\n            observer.observe(element);\n          }\n        } else{\n          let element = el.tagName.toLowerCase() === 'source' ? el.parentNode : el;\n          if(options[elementsMap[element.tagName.toLowerCase()]] !== true || ['notLazy', 'noLazy'].some(d => element.dataset[d] !== undefined)){\n            setAttributes(element);\n            removeNotLazy(element)\n          } else {\n            if(element.dataset.manualLazy === undefined){\n              if(options.appendClass !== false) element.classList.add(options.appendClass);\n              if(element.tagName.toLowerCase() === 'audio' && !element.getAttribute('controls')){\n                element.setAttribute('controls', '')\n                element.setAttribute('data-lazy-controls', 'true')\n              }\n              observer.observe(element)\n            }\n          }\n        }\n      }\n    }\n  }\n});\n\nconst vLazyBackground = Vue.directive('lazy-background', {\n  inserted(el, {def}) {\n    def.set(el)\n  },\n\n  update(el, {def}, vNode, oldVnode) {\n    def.set(el, vNode.data.attrs['lazy-background'] !== oldVnode.data.attrs['lazy-background'])\n  },\n\n  set(el, hasBackgroundChanged=false) {\n    if(process.browser){\n      if(options.defaultImage) el.style.backgroundImage = `url(${options.defaultImage})`\n      if(['notLazy', 'noLazy'].some(d => el.dataset[d] !== undefined)){\n        setBackground(el)\n      } else {\n        if(el.dataset.manualLazy === undefined){\n          if(options.appendClass !== false) el.classList.add(options.appendClass);\n          observer.observe(el)\n        }\n\n        if(hasBackgroundChanged){\n          observer.unobserve(el)\n          observer.observe(el)\n        }\n      }\n    }\n  }\n});\n\nVue.use(vLazyLoad);\nVue.use(vLazyBackground);\n\nconst lazyLoadMedia = (el) =>{\n  el.removeAttribute('data-manual-lazy');\n  if(options.appendClass !== false) el.classList.add(options.appendClass);\n  if(el.getAttribute('lazy-background')) setBackground(el);\n  else {\n    setAttributes(el);\n    setClasses(el, 'loading')\n    setClasses(el, 'loaded')\n  }\n}\n\nconst lazyLoadInject = (e) =>{\n  if(e.target){\n    let media = e.target.querySelectorAll('[data-manual-lazy]');\n    [...media].forEach(m => lazyLoadMedia(m))\n  } else lazyLoadMedia(e)\n}\n\n// IE Polyfill\n// if (!Array.from && options.polyfill) {\n//   Array.from = (function () {\n//     var toStr = Object.prototype.toString;\n//     var isCallable = function (fn) {\n//       return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\n//     };\n//     var toInteger = function (value) {\n//       var number = Number(value);\n//       if (isNaN(number)) { return 0; }\n//       if (number === 0 || !isFinite(number)) { return number; }\n//       return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n//     };\n//     var maxSafeInteger = Math.pow(2, 53) - 1;\n//     var toLength = function (value) {\n//       var len = toInteger(value);\n//       return Math.min(Math.max(len, 0), maxSafeInteger);\n//     };\n\n//     return function from(arrayLike) {\n//       var C = this;\n//       var items = Object(arrayLike);\n//       if (arrayLike == null) {\n//         throw new TypeError(\"Array.from requires an array-like object - not null or undefined\");\n//       }\n//       var mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n//       var T;\n//       if (typeof mapFn !== 'undefined') {\n//         if (!isCallable(mapFn)) {\n//           throw new TypeError('Array.from: when provided, the second argument must be a function');\n//         }\n\n//         if (arguments.length > 2) {\n//           T = arguments[2];\n//         }\n//       }\n//       var len = toLength(items.length);\n//       var A = isCallable(C) ? Object(new C(len)) : new Array(len);\n//       var k = 0;\n//       var kValue;\n//       while (k < len) {\n//         kValue = items[k];\n//         if (mapFn) {\n//           A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\n//         } else {\n//           A[k] = kValue;\n//         }\n//         k += 1;\n//       }\n//       A.length = len;\n//       return A;\n//     };\n//   }());\n// }\n\nexport default (context, inject) =>{\n  inject('lazyLoad', lazyLoadInject)\n}","export default {\n  // main menu\n  \"work time\": \"شنبه تا چهارشنبه 09:00 تا 18:00 | پنجشنبه 09:00 تا 13:00\",\n  home: \"صفحه نخست\",\n  products: \"محصولات\",\n  \"contact-us\": \"ارتباط با ما\",\n  blog: \"وبلاگ\",\n  \"about-us\": \"درباره ما\",\n\n  \"more details\": \"جزئیات بیشتر\",\n  parsmega: \"پارس‌مگا\",\n\n  // home page features\n  warranty: \"گارانتی\",\n  guarantee: \"گارانتی\",\n  support: \"پشتیبانی\",\n  \"immediate sending\": \"ارسال فوری\",\n  \"18-month warranty for return of products\": \"گارانتی 18 ماهه پارس مگا\",\n  \"support during business hours\": \"پشتیبانی پس از فروش تخصصی\",\n  \"send immediately after ordering products\":\n    \"ارسال بلافاصله بعد از سفارش کالا\",\n\n  //home page products\n  \"new products\": \"آخرین محصولات\",\n  \"view all products\": \"مشاهده همه محصولات\",\n\n  // home page about\n  \"about pars mega\": \"درباره پارس مگا\",\n  \"home about title\":\n    \"ما معتقدیم مشتریان بهترین داوران در مورد کیفیت محصولات ما هستند.\",\n  \"home about description\":\n    \"گروه مهندسی پارس مگا صنعت با نام تجاری پارس مگا در سال 1389 با هدف فعالیت در زمینه خدمات اتوماسیون صنعتی و الکترونیک شکل گرفت.گروه مهندسی پارس مگا با پشتوانه سال­ ها تجربه در زمینه اتوماسیون صنعتی و استفاده از به­ روزترین محصولات از برند­های معتبر جهانی یکی از پیشگامان ارائه و توسعه خدمات اتوماسیون صنعتی و کنترل در ایران می­ باشد. این گروه با دارا بودن کادری دانش آموخته و مجرب که مسلط به استفاده از ابزار و ادوات کنترلی روز دنیا می­ باشند، اقدام به طراحی و اجرای پروژه­ های اتوماسیون صنعتی در طیف وسیعی از نیازهای بازار و صنعت نموده است .\",\n\n  // home page customers\n  \"our customers\": \"برخی مشتریان ما\",\n  \"products count\": \"تعداد محصول\",\n  \"customers count\": \"تعداد مشتری\",\n  \"products sold\": \"محصولات فروش رفته\",\n\n  // home page blog section\n  \"new articles\": \"آخرین مقالات\",\n  \"see all\": \"مشاهده همه\",\n\n  // footer\n  \"pars mega products\": \"محصولات پارس مگا\",\n  \"quick access\": \"دسترسی سریع\",\n  \"contact info\": \"اطلاعات تماس\",\n  copyright1: \"کلیه حقوق برای شرکت\",\n  copyright2: \"محفوظ است.\",\n  footerAboutLine1:\n    \"شرکت پارس مگا به پشتوانه سال‌ها تجربه و دانش بروز مهندسان خود یکی از شرکت‌های پیشرو در زمینه تولید تجهیزات اتوماسیون صنعتی است.\",\n  footerAboutLine2:\n    \"ترانسمیتر های لودسل، نمایشگر لودسل، نمایشگر سیگنال‌های آنالوگ، کارت‌های ریموت و بردهای رله از جمله محصولات پارس مگا است.\",\n\n  // contact us page\n  \"contact us tel\": \"شماره تماس و ساعات کاری\",\n  \"contact us social\": \"ایمیل و شبکه های اجتماعی\",\n  \"contact us address\": \"آدرس شرکت\",\n  contactAddressValue:\n    \"تهران، چهاردانگه، ابتدای شهرک صنعتی چهاردانگه، مجتمع تجاری اداری کوشک ایرانیان، بلوک A، طبقه اول، واحد 1\",\n  contactSupportPhone2Value: \"+98 21-55940166\",\n  contactSupportPhoneValue: \"+98 21-91009955\",\n  contactWorkTimes: \"شنبه تا چهارشنبه 09:00 تا 18:00 | پنجشنبه 09:00 تا 13:00\",\n  contactEmailValue: \"info@parsmega.com\",\n  contactLinkdin: \"https://www.linkedin.com/company/parsmega\",\n  contactTelegramLink: \"https://t.me/ParsMega\",\n  contactTwitterLink: \"https://twitter.com/parsmega_com\",\n  contactInstagramLink: \"https://www.instagram.com/parsmega\",\n  contactYoutubeLink:\n    \"https://www.youtube.com/channel/UCv3gN-au1Py2Uc53Hu5goCQ\",\n  contactAparatLink: \"#\",\n  today: \"امروز\",\n\n  // products page\n  \"home page\": \"صفحه نخست\",\n  \"download the manual\": \"دانلود دفترچه راهنما\",\n  \"see details\": \"مشاهده جزئیات\",\n  \"main features of the product\": \"ویژگی‌های اصلی کالا\",\n  review: \"نقد و بررسی\",\n  specifications: \"مشخصات\",\n  downloadFiles: \"دانلود فایل راهنما شماره \",\n  videos: \"ویدئوها\",\n  comments: \"نظرات\",\n  getDocuments: \"دریافت لیست فایل‌های راهنمای محصول\",\n  watchVideos: \"مشاهده فایل‌های آموزشی محصول\",\n  seeAll: \"مشاهده جزئیات\",\n  manualFiles: \"فایلهای راهنما\",\n  relaitedProducts: \"محصولات مشابه\",\n  guaranteeMonth: \"ماه ضمانت\",\n  filterProducts: \"فیلتر محصولات\",\n  settedFilters: \"فیلترهای اعمال شده\",\n  deleteFilter: \"حذف\",\n  inputOutputFilter: \"ورودی/خروجی\",\n  displayScreenFilter: \"صفحه نمایش\",\n  technicalFilter: \"تکنیکال\",\n  connectionFilter: \"درگاه ارتباطی\",\n  notFoundProduc: \"محصولی با فیلترهای اعمال شده یافت نشد!\",\n  otherFilter: \"سایر\",\n\n  // catgories\n  controllers: \"کنترلرها\",\n  converter: \"مبدل\",\n  \"relay board\": \"برد رله\",\n  weight: \"وزن\",\n  productsCategories: \"دسته‌بندی محصولات\",\n  \"counter-timer\": \"کانتر و تایمر\",\n  \"serial-converter\": \"مبدل سریال\",\n  \"temperature-humidity\": \"دما و رطوبت\",\n  \"io-development-module\": \"ماژولهای توسعه\",\n  \"analog-converter\": \"مبدل آنالوگ\",\n  weighing: \"توزین\",\n\n  //wp categoreis\n  articles: \"مقالات\",\n  \"product categories\": \"محصولات\",\n  controllers: \"کنترلر\",\n  converter: \"مبدل\",\n  \"relay board\": \"برد رله\",\n  weight: \"وزن\",\n\n  // wblog\n  \"read more\": \"ادامه مطلب\",\n  \"next page\": \"صفحه بعد\",\n  \"previus page\": \"صفحه قبل\",\n  today: \"امروز\",\n  yesterday: \"دیروز\",\n  \"week ago\": \"هفته پیش\",\n  \"month ago\": \"ماه پیش\",\n  \"years ago\": \"سال پیش\",\n\n  // products properties\n  \"Article Content\": \"متن مقاله\",\n  content: \"محتوی\",\n\n  //propertis category\n  \"Technical Properties\": \"مشخصات فنی\",\n  \"Electrical Properties\": \"مشخصات الکتریکی\",\n  \"Display Properties\": \"مشخصات صفحه نمایش\",\n  \"Physical Properties\": \"مشخصات فیزیکی\",\n  \"Analog Output Properties\": \"مشخصات خروجی آنالوگ\",\n  \"Digital Input Properties\": \"مشخصات ورودی دیجیتال\",\n  \"Digital Output Properties\": \"مشخصات خروجی دیجیتال\",\n  \"Serial Communication Properties\": \"مشخصات ارتباط سریال\",\n  \"Fieldbus Properties\": \"مشخصات ارتباط فیلدباس\",\n  \"Analog Input Properties\": \"مشخصات ورودی آنالوگ\",\n\n  // properties list\n\n  \"extra details\": \"توضیحات بیشتر\",\n\n  \"number of load cells\": \"تعداد لودسل قابل اتصال\",\n  \"load cells supply\": \"ولتاژ تحریک لودسل\",\n  \"measurement range\": \"محدوده ورودی آنالوگ\",\n  \"a/d converter\": \"مبدل آنالوگ به دیجیتال\",\n  \"digital filter\": \"فیلتر دیجیتال\",\n  \"conversions per second\": \"فرکانس تبدیل\",\n  linearity: \"میزان خطی بودن \",\n  \"thermal drift\": \"پایداری حرارتی\",\n  \"converter type\": \"نوع مبدل\",\n  \"conversion frequency\": \"فرکانس تبدیل\",\n  \"number of digital outputs\": \"تعداد خروجی دیجیتال\",\n  \"number of digital inputs\": \"تعداد ورودی دیجیتال\",\n  \"controller type\": \"نوع کنترلر\",\n  \"controller input type\": \"نوع  ورودی\",\n  \"control method\": \"نوع کنترل\",\n  \"\": \"\",\n\n  \"power supply\": \"منبع تغذیه\",\n  \"power consumption\": \"توان مصرفی\",\n  battery: \"باتری\",\n  \"battery type\": \"نوع باتری\",\n\n  display: \"نمایشگر\",\n  \"display range\": \"محدوده نمایش\",\n  \"display type\": \"نوع نمایشگر\",\n  \"key pad\": \"صفحه کلید\",\n\n  dimensions: \"ابعاد\",\n  \"body Material\": \"جنس بدنه\",\n  \"protection according\": \"درجه حفاظت\",\n  \"installation type\": \"نحوه نصب\",\n  \"type of wiring\": \"نوع سیم بندی\",\n  \"working temperature\": \"محدوده دمای کاری\",\n\n  \"analog output\": \"خروجی آنالوگ\",\n  \"analog output accuracy\": \"دقت آنالوگ خروجی\",\n  \"analog output linearity\": \"خطی بودن خروجی آنالوگ\",\n  \"analog output type\": \"نوع خروجی آنالوگ\",\n  \"analog output thermal drift\": \"پایداری حرارتی در خروجی آنالوگ\",\n  isolation: \"ایزولاسیون\",\n\n  \"digital input\": \"ورودی دیجیتال\",\n  \"number of digital inputs\": \"تعداد ورودی دیجیتال\",\n\n  \"digital output\": \"خروجی دیجیتال\",\n  \"number of digital outputs\": \"تعداد خروجی دیجیتال\",\n\n  \"serial communication\": \"ارتباط سریال\",\n  \"number of serial ports\": \"تعداد پورت سریال\",\n  \"serial port type\": \"نوع پورت سریال\",\n\n  \"fieldbus communication\": \"ارتباط fieldbus\",\n  \"number of fieldbus ports\": \"تعداد پورت fieldbus\",\n  \"fieldbus port type\": \"نوع پورت fieldbus\",\n\n  \"analog input\": \"ورودی آنالوگ\",\n  \"analog input accuracy\": \"دقت آنالوگ ورودی\",\n  \"analog input type\": \"نوع آنالوگ ورودی\",\n  \"analog input linearity\": \"خطی بودن ورودی آنالوگ\",\n  \"analog input thermal drift\": \"پایداری حرارتی در ورودی آنالوگ\",\n\n  // values\n  true: \"دارد\",\n  false: \"ندارد\",\n  telemeter: \"دورشمار\",\n  counter: \"کانتر\",\n  timer: \"تایمر\",\n\n  // comments\n  addCommentTitle:\n    \"ضمن قدردانی از حسن انتخاب شما، باعث افتخار است تا با ارائه نظرات، انتقادات و پیشنهادات سازنده خود، ما را در راستای دستیابی به هدف اصلی‌مان که جلب رضایت شما کاربران عزیز است یاری نمایید.\",\n  commentAuthorError: \"نام فرستنده پیام وارد نشده است.\",\n  commentEmailError:\n    \"برای ثبت نظر نیاز به وارد کردن یک پست الکترونیک معتبر می‌باشد.\",\n  commentContentError: \"متن پیام وارد نشده است.\",\n  addComment: \"ثبت نظر\",\n  commentAuthorName: \"نام و نام خانوادگی\",\n  commentEmail: \"پست الکترونیک\",\n  commentContent: \"متن پیام یا نظر خود را وارد نمایید\",\n  commentSuccess: \"پیام شما با موفقیت ارسال شد.\",\n  commentFailed:\n    \"فرآیند ارسال پیام با خطا مواجه شده است، لطفا مجددا اقدام فرمایید.\",\n\n  //other\n  product: \"محصول\",\n  productApp: \"نرم‌افزار محصولات\"\n};\n","export default {\n  // main menu\n  \"work time\": \"Saturday to Wednesday 09:00 to 18:00 | Thursday 09:00 to 13:00\",\n  home: \"Home\",\n  products: \"Products\",\n  \"contact-us\": \"Contact-us\",\n  blog: \"Weblog\",\n  \"about-us\": \"About-us\",\n\n  \"more details\": \"More info\",\n  parsmega: \"Parsmega\",\n\n  // home page features\n  warranty: \"Warranty\",\n  guarantee: \"Guarantee\",\n  support: \"Support\",\n  \"immediate sending\": \"Immediate Sending\",\n  \"18-month warranty for return of products\": \"18-month money back guarantee\",\n  \"support during business hours\": \"Support during business hours\",\n  \"send immediately after ordering products\":\n    \"Sending immediately after ordering\",\n\n  //home page products\n  \"new products\": \"Last products\",\n  \"view all products\": \"Show all products\",\n\n  // home page about\n  \"about pars mega\": \"About Parsmega\",\n  \"home about title\":\n    \"We believe customers are the best judges of the quality of our products.\",\n  \"home about description\":\n    \"Parsmega Sanat Engineering Group with Pars Mega brand was formed in 2010 with the aim of working in the field of industrial automation and electronic services. Pars Mega Engineering Group with the support of years of experience in the field of industrial automation and using the latest products from reputable global brands Is one of the pioneers in providing and developing industrial automation and control services in Iran.This group, with its educated and experienced staff who are proficient in using the latest tools and control devices in the world, designs and implements industrial automation projects in It has a wide range of market and industry needs.\",\n\n  // home page customers\n  \"our customers\": \"Some of our customers\",\n  \"products count\": \"Producst count\",\n  \"customers count\": \"Customers count\",\n  \"products sold\": \"Products sold\",\n\n  // home page blog section\n  \"new articles\": \"New articles\",\n  \"see all\": \"See all\",\n\n  // footer\n  \"pars mega products\": \"Parsmega Products\",\n  \"quick access\": \"Quick Access\",\n  \"contact info\": \"Contact Info\",\n  copyright1: \"All rights reserved for\",\n  copyright2: \"\",\n  footerAboutLine1:\n    \"Parsmega Company is one of the leading companies in the field of industrial automation equipment, backed by years of experience and knowledge of its engineers.\",\n  footerAboutLine2:\n    \"Load cell transmitters, load cell display, analog signal display, remote cards and relay boards are among Pars Mega products.\",\n\n  // contact us page\n  \"contact us tel\": \"Contact number and working hours\",\n  \"contact us social\": \"Email and social networks\",\n  \"contact us address\": \"Address\",\n  contactAddressValue:\n    \"Unit 1,First Floor, Block A, Kushk Iranian Commercial and Administrative Complex, Chahardangeh, Tehran, Iran\",\n  contactSupportPhone2Value: \"+98 21-55940166\",\n  contactSupportPhoneValue: \"+98 21-91009955\",\n  contactWorkTimes:\n    \"Saturday to Wednesday 09:00 to 18:00 | Thursday 09:00 to 13:00\",\n  contactEmailValue: \"info@parsmega.com\",\n  contactLinkdin: \"https://www.linkedin.com/company/parsmega\",\n  contactTelegramLink: \"https://t.me/ParsMega\",\n  contactTwitterLink: \"https://twitter.com/parsmega_com\",\n  contactInstagramLink: \"https://www.instagram.com/parsmega\",\n  contactYoutubeLink:\n    \"https://www.youtube.com/channel/UCv3gN-au1Py2Uc53Hu5goCQ\",\n  contactAparatLink: \"#\",\n  today: \"Today\",\n\n  // products page\n  \"home page\": \"Home\",\n  \"download the manual\": \"Download files\",\n  \"see details\": \"See details\",\n  \"main features of the product\": \"Main features\",\n  review: \"Review\",\n  specifications: \"Specifications\",\n  downloadFiles: \"Download file number \",\n  videos: \"Videos\",\n  comments: \"Comments\",\n  getDocuments: \"Get documents\",\n  watchVideos: \"See videos\",\n  seeAll: \"See All\",\n  manualFiles: \"Manual files\",\n  relaitedProducts: \"Simila products\",\n  guaranteeMonth: \"Month guarantee\",\n  filterProducts: \"Filter producsts\",\n  settedFilters: \"Active filters\",\n  deleteFilter: \"remove\",\n  inputOutputFilter: \"InputOutput\",\n  displayScreenFilter: \"Display\",\n  technicalFilter: \"Technical\",\n  connectionFilter: \"Connections\",\n  notFoundProduc: \"Not Found\",\n\n  // catgories\n  controllers: \"Controllers\",\n  converter: \"Converter\",\n  \"relay board\": \"Relay Board\",\n  weight: \"Weight\",\n  productsCategories: \"Categories\",\n  \"counter-timer\": \"Counter & Timer\",\n  \"serial-converter\": \"Serial Converter\",\n  \"temperature-humidity\": \"Temperature & Humidity\",\n  \"io-development-module\": \"IO Development Module\",\n  \"analog-converter\": \"Analog Converter\",\n  weighing: \"Weighing\",\n\n  //wp categoreis\n  articles: \"Articles\",\n  \"product categories\": \"Products\",\n  controllers: \"Controllers\",\n  converter: \"Converter\",\n  \"relay board\": \"Relay Board\",\n  weight: \"weight\",\n\n  // wblog\n  \"read more\": \"Read more\",\n  \"next page\": \"Next page\",\n  \"previus page\": \"Previus page\",\n  today: \"Today\",\n  yesterday: \"yesterday\",\n  \"week ago\": \"Week ago\",\n  \"month ago\": \"Month ago\",\n  \"years ago\": \"Years ago\",\n\n  // products properties\n  \"Article Content\": \"Contents\",\n  content: \"Content\",\n\n  //propertis category\n  \"Technical Properties\": \"Technical Properties\",\n  \"Electrical Properties\": \"Electrical Properties\",\n  \"Display Properties\": \"Display Properties\",\n  \"Physical Properties\": \"Physical Properties\",\n  \"Analog Output Properties\": \"Analog Output Properties\",\n  \"Digital Input Properties\": \"Digital Input Properties\",\n  \"Digital Output Properties\": \"Digital Output Properties\",\n  \"Serial Communication Properties\": \"Serial Communication Properties\",\n  \"Fieldbus Properties\": \"Fieldbus Properties\",\n  \"Analog Input Properties\": \"Analog Input Properties\",\n\n  // properties list\n\n  \"extra details\": \"More info\",\n\n  \"number of load cells\": \"Number of load cells\",\n  \"load cells supply\": \"Load cells supply\",\n  \"measurement range\": \"Measurement range\",\n  \"a/d converter\": \"a/d converter\",\n  \"digital filter\": \"Digital filter\",\n  \"conversions per second\": \"Conversions per second\",\n  linearity: \"Linearity\",\n  \"thermal drift\": \"Thermal drift\",\n  \"converter type\": \"Converter type\",\n  \"conversion frequency\": \"Conversion frequency\",\n  \"number of digital outputs\": \"Number of digital outputs\",\n  \"number of digital inputs\": \"Number of digital inputs\",\n  \"controller type\": \"Controller type\",\n  \"controller input type\": \"Controller input type\",\n  \"control method\": \"Control method\",\n\n  \"power supply\": \"Power supply\",\n  \"power consumption\": \"Power consumption\",\n  battery: \"Battery\",\n  \"battery type\": \"Battery type\",\n\n  display: \"Display\",\n  \"display range\": \"Display range\",\n  \"display type\": \"Display type\",\n  \"key pad\": \"key pad\",\n\n  dimensions: \"Dimensions\",\n  \"body Material\": \"Body material\",\n  \"protection according\": \"Protection according\",\n  \"installation type\": \"Installation type\",\n  \"type of wiring\": \"Type of wiring\",\n  \"working temperature\": \"Working temperature\",\n\n  \"analog output\": \"Analog output\",\n  \"analog output accuracy\": \"Analog output accuracy\",\n  \"analog output linearity\": \"Analog output linearity\",\n  \"analog output type\": \"Analog output type\",\n  \"analog output thermal drift\": \"Analog output thermal drift\",\n  isolation: \"Isolation\",\n\n  \"digital input\": \"Digital input\",\n  \"number of digital inputs\": \"Number of digital inputs\",\n\n  \"digital output\": \"Digital output\",\n  \"number of digital outputs\": \"Number of digital outputs\",\n\n  \"serial communication\": \"Serial communication\",\n  \"number of serial ports\": \"Number of serial ports\",\n  \"serial port type\": \"Serial port type\",\n\n  \"fieldbus communication\": \"Fieldbus communication\",\n  \"number of fieldbus ports\": \"Number of fieldbus ports\",\n  \"fieldbus port type\": \"Fieldbus port type\",\n\n  \"analog input\": \"Analog input\",\n  \"analog input accuracy\": \"Analog input accuracy\",\n  \"analog input type\": \"Analog input type\",\n  \"analog input linearity\": \"Analog input linearity\",\n  \"analog input thermal drift\": \"Analog input thermal drift\",\n\n  // values\n  true: \"Yes\",\n  false: \"No\",\n\n  // comments\n  addCommentTitle:\n    \"While appreciating your good choice, we are proud to help you achieve our main goal, which is to satisfy you, dear users, by providing your constructive comments, criticisms and suggestions.\",\n  commentAuthorError: \"Please enter your name\",\n  commentEmailError: \"Please enter your email\",\n  commentContentError: \"Please enter your message\",\n  addComment: \"Send\",\n  commentAuthorName: \"Name\",\n  commentEmail: \"Email\",\n  commentContent: \"Enter your comments here\",\n  commentSuccess: \"Your message has been successfully sent.\",\n  commentFailed:\n    \"The message sending process has encountered an error, please try again.\",\n\n  //other\n  product: \"Product\",\n   productApp: \"Parsmega Desktop Application\"\n};\n","import locale774aad26 from '../..\\\\..\\\\..\\\\languages\\\\fa.js'\nimport locale77427e78 from '../..\\\\..\\\\..\\\\languages\\\\en.js'\n\nexport const Constants = {\n  COMPONENT_OPTIONS_KEY: \"nuxtI18n\",\n  STRATEGIES: {\"PREFIX\":\"prefix\",\"PREFIX_EXCEPT_DEFAULT\":\"prefix_except_default\",\"PREFIX_AND_DEFAULT\":\"prefix_and_default\",\"NO_PREFIX\":\"no_prefix\"},\n}\nexport const nuxtOptions = {\n  isUniversalMode: true,\n  trailingSlash: undefined,\n}\nexport const options = {\n  vueI18n: {},\n  vueI18nLoader: false,\n  locales: [{\"code\":\"fa\",\"iso\":\"fa-IR\",\"file\":\"fa.js\",\"dir\":\"rtl\"},{\"code\":\"en\",\"iso\":\"en-US\",\"file\":\"en.js\",\"dir\":\"ltr\"}],\n  defaultLocale: \"fa\",\n  defaultDirection: \"ltr\",\n  routesNameSeparator: \"___\",\n  defaultLocaleRouteNameSuffix: \"default\",\n  sortRoutes: true,\n  strategy: \"prefix_except_default\",\n  lazy: false,\n  langDir: \"C:\\\\inetpub\\\\wwwroot\\\\parsmega.com\\\\languages\",\n  rootRedirect: null,\n  detectBrowserLanguage: false,\n  differentDomains: false,\n  seo: false,\n  baseUrl: \"\",\n  vuex: {\"moduleName\":\"i18n\",\"syncLocale\":false,\"syncMessages\":false,\"syncRouteParams\":true},\n  parsePages: true,\n  pages: {},\n  skipSettingLocaleOnNavigate: false,\n  beforeLanguageSwitch: () => null,\n  onBeforeLanguageSwitch: () => {},\n  onLanguageSwitched: () => null,\n  fallbackLocale: \"fa\",\n  useCookie: false,\n  normalizedLocales: [{\"code\":\"fa\",\"iso\":\"fa-IR\",\"file\":\"fa.js\",\"dir\":\"rtl\"},{\"code\":\"en\",\"iso\":\"en-US\",\"file\":\"en.js\",\"dir\":\"ltr\"}],\n  localeCodes: [\"fa\",\"en\"],\n}\n\nexport const localeMessages = {\n  'fa.js': () => Promise.resolve(locale774aad26),\n  'en.js': () => Promise.resolve(locale77427e78),\n}\n","import Cookie from 'cookie'\nimport JsCookie from 'js-cookie'\n\n/** @typedef {import('../../types/internal').ResolvedOptions} ResolvedOptions */\n\n/**\n * Formats a log message, prefixing module's name to it.\n *\n * @param {string} text\n * @return {string}\n */\nexport function formatMessage (text) {\n  return `[nuxt-i18n] ${text}`\n}\n\n/**\n * Parses locales provided from browser through `accept-language` header.\n *\n * @param {string} input\n * @return {string[]} An array of locale codes. Priority determined by order in array.\n */\nexport function parseAcceptLanguage (input) {\n  // Example input: en-US,en;q=0.9,nb;q=0.8,no;q=0.7\n  // Contains tags separated by comma.\n  // Each tag consists of locale code (2-3 letter language code) and optionally country code\n  // after dash. Tag can also contain score after semicolon, that is assumed to match order\n  // so it's not explicitly used.\n  return input.split(',').map(tag => tag.split(';')[0])\n}\n\n/**\n * Find locale code that best matches provided list of browser locales.\n *\n * @param {ResolvedOptions['normalizedLocales']} appLocales The user-configured locales that are to be matched.\n * @param {readonly string[]} browserLocales The locales to match against configured.\n * @return {string | undefined}\n */\nexport function matchBrowserLocale (appLocales, browserLocales) {\n  /** @type {{ code: string, score: number }[]} */\n  const matchedLocales = []\n\n  // Normalise appLocales input\n  /** @type {{ code: string, iso: string }[]} */\n  const normalizedAppLocales = []\n  for (const appLocale of appLocales) {\n    const { code } = appLocale\n    const iso = appLocale.iso || code\n    normalizedAppLocales.push({ code, iso })\n  }\n\n  // First pass: match exact locale.\n  for (const [index, browserCode] of browserLocales.entries()) {\n    const matchedLocale = normalizedAppLocales.find(appLocale => appLocale.iso.toLowerCase() === browserCode.toLowerCase())\n    if (matchedLocale) {\n      matchedLocales.push({ code: matchedLocale.code, score: 1 - index / browserLocales.length })\n      break\n    }\n  }\n\n  // Second pass: match only locale code part of the browser locale (not including country).\n  for (const [index, browserCode] of browserLocales.entries()) {\n    const languageCode = browserCode.split('-')[0].toLowerCase()\n    const matchedLocale = normalizedAppLocales.find(appLocale => appLocale.iso.split('-')[0].toLowerCase() === languageCode)\n    if (matchedLocale) {\n      // Deduct a thousandth for being non-exact match.\n      matchedLocales.push({ code: matchedLocale.code, score: 0.999 - index / browserLocales.length })\n      break\n    }\n  }\n\n  // Sort the list by score (0 - lowest, 1 - highest).\n  if (matchedLocales.length > 1) {\n    matchedLocales.sort((localeA, localeB) => {\n      if (localeA.score === localeB.score) {\n        // If scores are equal then pick more specific (longer) code.\n        return localeB.code.length - localeA.code.length\n      }\n\n      return localeB.score - localeA.score\n    })\n  }\n\n  return matchedLocales.length ? matchedLocales[0].code : undefined\n}\n\n/**\n * Get locale code that corresponds to current hostname\n *\n * @param  {ResolvedOptions['normalizedLocales']} locales\n * @param  {import('http').IncomingMessage | undefined} req\n * @return {string} Locale code found if any\n */\nexport function getLocaleDomain (locales, req) {\n  /** @type {string | undefined} */\n  let host\n\n  if (process.client) {\n    host = window.location.host\n  } else if (req) {\n    const detectedHost = req.headers['x-forwarded-host'] || req.headers.host\n    host = Array.isArray(detectedHost) ? detectedHost[0] : detectedHost\n  }\n\n  if (host) {\n    const matchingLocale = locales.find(l => l.domain === host)\n    if (matchingLocale) {\n      return matchingLocale.code\n    }\n  }\n\n  return ''\n}\n\n/**\n * Creates a RegExp for route paths\n *\n * @param  {readonly string[]} localeCodes\n * @return {RegExp}\n */\nexport function getLocalesRegex (localeCodes) {\n  return new RegExp(`^/(${localeCodes.join('|')})(?:/|$)`, 'i')\n}\n\n/**\n * Creates getter for getLocaleFromRoute\n *\n * @param  {readonly string[]} localeCodes\n * @param  {Pick<ResolvedOptions, 'routesNameSeparator' | 'defaultLocaleRouteNameSuffix'>} options\n */\nexport function createLocaleFromRouteGetter (localeCodes, { routesNameSeparator, defaultLocaleRouteNameSuffix }) {\n  const localesPattern = `(${localeCodes.join('|')})`\n  const defaultSuffixPattern = `(?:${routesNameSeparator}${defaultLocaleRouteNameSuffix})?`\n  const regexpName = new RegExp(`${routesNameSeparator}${localesPattern}${defaultSuffixPattern}$`, 'i')\n  const regexpPath = getLocalesRegex(localeCodes)\n  /**\n   * Extract locale code from given route:\n   * - If route has a name, try to extract locale from it\n   * - Otherwise, fall back to using the routes'path\n   * @param  {import('vue-router').Route} route\n   * @return {string} Locale code found if any\n   */\n  const getLocaleFromRoute = route => {\n    // Extract from route name\n    if (route.name) {\n      const matches = route.name.match(regexpName)\n      if (matches && matches.length > 1) {\n        return matches[1]\n      }\n    } else if (route.path) {\n      // Extract from path\n      const matches = route.path.match(regexpPath)\n      if (matches && matches.length > 1) {\n        return matches[1]\n      }\n    }\n\n    return ''\n  }\n\n  return getLocaleFromRoute\n}\n\n/**\n * @param {import('http').IncomingMessage | undefined} req\n * @param {{ useCookie: boolean, cookieKey: string, localeCodes: readonly string[] }} options\n * @return {string | undefined}\n */\nexport function getLocaleCookie (req, { useCookie, cookieKey, localeCodes }) {\n  if (useCookie) {\n    let localeCode\n\n    if (process.client) {\n      localeCode = JsCookie.get(cookieKey)\n    } else if (req && typeof req.headers.cookie !== 'undefined') {\n      const cookies = req.headers && req.headers.cookie ? Cookie.parse(req.headers.cookie) : {}\n      localeCode = cookies[cookieKey]\n    }\n\n    if (localeCode && localeCodes.includes(localeCode)) {\n      return localeCode\n    }\n  }\n}\n\n/**\n * @param {string} locale\n * @param {import('http').ServerResponse | undefined} res\n * @param {{ useCookie: boolean, cookieDomain: string | null, cookieKey: string, cookieSecure: boolean, cookieCrossOrigin: boolean}} options\n */\nexport function setLocaleCookie (locale, res, { useCookie, cookieDomain, cookieKey, cookieSecure, cookieCrossOrigin }) {\n  if (!useCookie) {\n    return\n  }\n  const date = new Date()\n  /** @type {import('cookie').CookieSerializeOptions} */\n  const cookieOptions = {\n    expires: new Date(date.setDate(date.getDate() + 365)),\n    path: '/',\n    sameSite: cookieCrossOrigin ? 'none' : 'lax',\n    secure: cookieCrossOrigin || cookieSecure\n  }\n\n  if (cookieDomain) {\n    cookieOptions.domain = cookieDomain\n  }\n\n  if (process.client) {\n    // @ts-ignore\n    JsCookie.set(cookieKey, locale, cookieOptions)\n  } else if (res) {\n    let headers = res.getHeader('Set-Cookie') || []\n    if (!Array.isArray(headers)) {\n      headers = [String(headers)]\n    }\n\n    const redirectCookie = Cookie.serialize(cookieKey, locale, cookieOptions)\n    headers.push(redirectCookie)\n\n    res.setHeader('Set-Cookie', headers)\n  }\n}\n","import isHTTPS from 'is-https'\nimport { localeMessages, options } from './options'\nimport { formatMessage } from './utils-common'\n// @ts-ignore\nimport { hasProtocol } from '~i18n-ufo'\n\n/** @typedef {import('../../types/internal').ResolvedOptions} ResolvedOptions */\n\n/**\n * Asynchronously load messages from translation files\n *\n * @param {import('@nuxt/types').Context} context\n * @param {string} locale Language code to load\n * @return {Promise<void>}\n */\nexport async function loadLanguageAsync (context, locale) {\n  const { app } = context\n  const { i18n } = app\n\n  if (!i18n.loadedLanguages) {\n    i18n.loadedLanguages = []\n  }\n\n  if (!i18n.loadedLanguages.includes(locale)) {\n    const localeObject = options.normalizedLocales.find(l => l.code === locale)\n    if (localeObject) {\n      const { file } = localeObject\n      if (file) {\n        /*  */\n        /** @type {import('vue-i18n').LocaleMessageObject | undefined} */\n        let messages\n        if (process.client) {\n          const { nuxtState } = context\n          if (nuxtState && nuxtState.__i18n && nuxtState.__i18n.langs[locale]) {\n            messages = nuxtState.__i18n.langs[locale]\n            // Even if already cached in Nuxt state, trigger locale import so that HMR kicks-in on changes to that file.\n            if (context.isDev) {\n              localeMessages[file]()\n            }\n          }\n        }\n        if (!messages) {\n          try {\n            // @ts-ignore\n            const getter = await localeMessages[file]().then(m => m.default || m)\n            messages = typeof getter === 'function' ? await Promise.resolve(getter(context, locale)) : getter\n          } catch (error) {\n            // eslint-disable-next-line no-console\n            console.error(formatMessage(`Failed loading async locale export: ${error.message}`))\n          }\n        }\n        if (messages) {\n          i18n.setLocaleMessage(locale, messages)\n          i18n.loadedLanguages.push(locale)\n        }\n        /*  */\n      } else {\n        console.warn(formatMessage(`Could not find lang file for locale ${locale}`))\n      }\n    } else {\n      console.warn(formatMessage(`Attempted to load messages for non-existant locale code \"${locale}\"`))\n    }\n  }\n}\n\n/**\n * Resolves base URL value if provided as function. Otherwise just returns verbatim.\n *\n * @param {string | ((context: import('@nuxt/types').Context) => string)} baseUrl\n * @param {import('@nuxt/types').Context} context\n * @param {import('../../types').Locale} localeCode\n * @param {Pick<ResolvedOptions, 'differentDomains' | 'normalizedLocales'>} options\n * @return {string}\n */\nexport function resolveBaseUrl (baseUrl, context, localeCode, { differentDomains, normalizedLocales }) {\n  if (typeof baseUrl === 'function') {\n    return baseUrl(context)\n  }\n\n  if (differentDomains && localeCode) {\n    // Lookup the `differentDomain` origin associated with given locale.\n    const domain = getDomainFromLocale(localeCode, context.req, { normalizedLocales })\n    if (domain) {\n      return domain\n    }\n  }\n\n  return baseUrl\n}\n\n/**\n * Gets the `differentDomain` domain from locale.\n *\n * @param {string} localeCode\n * @param {import('http').IncomingMessage | undefined} req\n * @param {Pick<ResolvedOptions, 'normalizedLocales'>} options\n * @return {string | undefined}\n */\nexport function getDomainFromLocale (localeCode, req, { normalizedLocales }) {\n// Lookup the `differentDomain` origin associated with given locale.\n  const lang = normalizedLocales.find(locale => locale.code === localeCode)\n  if (lang && lang.domain) {\n    if (hasProtocol(lang.domain)) {\n      return lang.domain\n    }\n    let protocol\n    if (process.server) {\n      protocol = (req && isHTTPS(req)) ? 'https' : 'http'\n    } else {\n      protocol = window.location.protocol.split(':')[0]\n    }\n    return `${protocol}://${lang.domain}`\n  }\n\n  // eslint-disable-next-line no-console\n  console.warn(formatMessage(`Could not find domain name for locale ${localeCode}`))\n}\n\n/**\n * @param {import('vuex').Store<Record<string, boolean>>} store\n * @param {Required<import('../../types').VuexOptions>} vuex\n * @param {readonly string[]} localeCodes\n */\nexport function registerStore (store, vuex, localeCodes) {\n  /** @typedef {{\n   *    locale?: string\n   *    messages?: Record<string, string>\n   *    routeParams?: Record<string, Record<string, string>>\n   * }} ModuleStore\n   *\n   * @type {import('vuex').Module<ModuleStore, {}>}\n   */\n  const storeModule = {\n    namespaced: true,\n    state: () => ({\n      ...(vuex.syncLocale ? { locale: '' } : {}),\n      ...(vuex.syncMessages ? { messages: {} } : {}),\n      ...(vuex.syncRouteParams ? { routeParams: {} } : {})\n    }),\n    actions: {\n      ...(vuex.syncLocale\n        ? {\n            setLocale ({ commit }, locale) {\n              commit('setLocale', locale)\n            }\n          }\n        : {}),\n      ...(vuex.syncMessages\n        ? {\n            setMessages ({ commit }, messages) {\n              commit('setMessages', messages)\n            }\n          }\n        : {}),\n      ...(vuex.syncRouteParams\n        ? {\n            setRouteParams ({ commit }, params) {\n              if (process.env.NODE_ENV === 'development') {\n                validateRouteParams(params, localeCodes)\n              }\n              commit('setRouteParams', params)\n            }\n          }\n        : {})\n    },\n    mutations: {\n      ...(vuex.syncLocale\n        ? {\n            setLocale (state, locale) {\n              state.locale = locale\n            }\n          }\n        : {}),\n      ...(vuex.syncMessages\n        ? {\n            setMessages (state, messages) {\n              state.messages = messages\n            }\n          }\n        : {}),\n      ...(vuex.syncRouteParams\n        ? {\n            setRouteParams (state, params) {\n              state.routeParams = params\n            }\n          }\n        : {})\n    },\n    getters: {\n      ...(vuex.syncRouteParams\n        ? {\n            localeRouteParams: ({ routeParams }) => {\n              /** @type {(locale: string) => Record<string, string>} */\n              const paramsGetter = locale => (routeParams && routeParams[locale]) || {}\n              return paramsGetter\n            }\n          }\n        : {})\n    }\n  }\n  store.registerModule(vuex.moduleName, storeModule, { preserveState: !!store.state[vuex.moduleName] })\n}\n\n/**\n * Dispatch store module actions to keep it in sync with app's locale data\n *\n * @param  {import('vuex').Store<void>} store\n * @param  {string | null} locale The current locale\n * @param  {object | null} messages Current messages\n * @param  {ResolvedOptions['vuex']} vuex\n * @return {Promise<void>}\n */\nexport async function syncVuex (store, locale = null, messages = null, vuex) {\n  if (vuex && store) {\n    if (locale !== null && vuex.syncLocale) {\n      await store.dispatch(vuex.moduleName + '/setLocale', locale)\n    }\n    if (messages !== null && vuex.syncMessages) {\n      await store.dispatch(vuex.moduleName + '/setMessages', messages)\n    }\n  }\n}\n\n/**\n * Validate setRouteParams action's payload\n *\n * @param {object} routeParams The action's payload\n * @param {readonly string[]} localeCodes\n */\nexport function validateRouteParams (routeParams, localeCodes) {\n  if (!isObject(routeParams)) {\n    // eslint-disable-next-line no-console\n    console.warn(formatMessage('Route params should be an object'))\n    return\n  }\n\n  for (const [key, value] of Object.entries(routeParams)) {\n    if (!localeCodes.includes(key)) {\n    // eslint-disable-next-line no-console\n      console.warn(formatMessage(`Trying to set route params for key ${key} which is not a valid locale`))\n    } else if (!isObject(value)) {\n    // eslint-disable-next-line no-console\n      console.warn(formatMessage(`Trying to set route params for locale ${key} with a non-object value`))\n    }\n  }\n}\n\n/**\n * @param {any} value\n * @return {boolean}\n */\nfunction isObject (value) {\n  return value && !Array.isArray(value) && typeof value === 'object'\n}\n","// @ts-ignore\nimport nuxtMiddleware from '../middleware'\n\n/** @type {import('@nuxt/types').Middleware} */\nconst i18nMiddleware = async (context) => {\n  const { app, isHMR } = context\n\n  if (isHMR) {\n    return\n  }\n\n  const [status, redirectPath, preserveQuery] = await app.i18n.__onNavigate(context.route)\n  if (status && redirectPath) {\n    const query = preserveQuery ? context.route.query : undefined\n    context.redirect(status, redirectPath, query)\n  }\n}\n\nnuxtMiddleware.nuxti18n = i18nMiddleware\n","import './middleware'\nimport Vue from 'vue'\nimport { Constants, nuxtOptions, options } from './options'\nimport { getDomainFromLocale } from './plugin.utils'\n// @ts-ignore\nimport { withoutTrailingSlash, withTrailingSlash } from '~i18n-ufo'\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @type {Vue['localePath']}\n */\nfunction localePath (route, locale) {\n  const localizedRoute = resolveRoute.call(this, route, locale)\n  return localizedRoute ? localizedRoute.route.fullPath : ''\n}\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @type {Vue['localeRoute']}\n */\nfunction localeRoute (route, locale) {\n  const resolved = resolveRoute.call(this, route, locale)\n  return resolved ? resolved.route : undefined\n}\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @type {Vue['localeLocation']}\n */\nfunction localeLocation (route, locale) {\n  const resolved = resolveRoute.call(this, route, locale)\n  return resolved ? resolved.location : undefined\n}\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @param {import('vue-router').RawLocation} route\n * @param {string} [locale]\n * @return {ReturnType<import('vue-router').default['resolve']> | undefined}\n */\nfunction resolveRoute (route, locale) {\n  // Abort if no route or no locale\n  if (!route) {\n    return\n  }\n\n  const { i18n } = this\n\n  locale = locale || i18n.locale\n\n  if (!locale) {\n    return\n  }\n\n  // If route parameter is a string, check if it's a path or name of route.\n  if (typeof route === 'string') {\n    if (route[0] === '/') {\n      // If route parameter is a path, create route object with path.\n      route = { path: route }\n    } else {\n      // Else use it as route name.\n      route = { name: route }\n    }\n  }\n\n  let localizedRoute = Object.assign({}, route)\n\n  if (localizedRoute.path && !localizedRoute.name) {\n    const resolvedRoute = this.router.resolve(localizedRoute).route\n    const resolvedRouteName = this.getRouteBaseName(resolvedRoute)\n    if (resolvedRouteName) {\n      localizedRoute = {\n        name: getLocaleRouteName(resolvedRouteName, locale),\n        params: resolvedRoute.params,\n        query: resolvedRoute.query,\n        hash: resolvedRoute.hash\n      }\n    } else {\n      const isDefaultLocale = locale === options.defaultLocale\n      // if route has a path defined but no name, resolve full route using the path\n      const isPrefixed =\n          // don't prefix default locale\n          !(isDefaultLocale && [Constants.STRATEGIES.PREFIX_EXCEPT_DEFAULT, Constants.STRATEGIES.PREFIX_AND_DEFAULT].includes(options.strategy)) &&\n          // no prefix for any language\n          !(options.strategy === Constants.STRATEGIES.NO_PREFIX) &&\n          // no prefix for different domains\n          !i18n.differentDomains\n      if (isPrefixed) {\n        localizedRoute.path = `/${locale}${localizedRoute.path}`\n      }\n      localizedRoute.path = nuxtOptions.trailingSlash ? withTrailingSlash(localizedRoute.path, true) : withoutTrailingSlash(localizedRoute.path, true)\n    }\n  } else {\n    if (!localizedRoute.name && !localizedRoute.path) {\n      localizedRoute.name = this.getRouteBaseName()\n    }\n\n    localizedRoute.name = getLocaleRouteName(localizedRoute.name, locale)\n\n    const { params } = localizedRoute\n    if (params && params['0'] === undefined && params.pathMatch) {\n      params['0'] = params.pathMatch\n    }\n  }\n\n  const resolvedRoute = this.router.resolve(localizedRoute)\n  if (resolvedRoute.route.name) {\n    return resolvedRoute\n  }\n  // If didn't resolve to an existing route then just return resolved route based on original input.\n  return this.router.resolve(route)\n}\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @type {Vue['switchLocalePath']}\n */\nfunction switchLocalePath (locale) {\n  const name = this.getRouteBaseName()\n  if (!name) {\n    return ''\n  }\n\n  const { i18n, route, store } = this\n  const { params, ...routeCopy } = route\n  let langSwitchParams = {}\n  if (options.vuex && options.vuex.syncRouteParams && store) {\n    langSwitchParams = store.getters[`${options.vuex.moduleName}/localeRouteParams`](locale)\n  }\n  const baseRoute = Object.assign({}, routeCopy, {\n    name,\n    params: {\n      ...params,\n      ...langSwitchParams,\n      0: params.pathMatch\n    }\n  })\n  let path = this.localePath(baseRoute, locale)\n\n  // Handle different domains\n  if (i18n.differentDomains) {\n    const getDomainOptions = {\n      differentDomains: i18n.differentDomains,\n      normalizedLocales: options.normalizedLocales\n    }\n    const domain = getDomainFromLocale(locale, this.req, getDomainOptions)\n    if (domain) {\n      path = domain + path\n    }\n  }\n\n  return path\n}\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @type {Vue['getRouteBaseName']}\n */\nfunction getRouteBaseName (givenRoute) {\n  const route = givenRoute !== undefined ? givenRoute : this.route\n  if (!route || !route.name) {\n    return\n  }\n  return route.name.split(options.routesNameSeparator)[0]\n}\n\n/**\n * @param {string | undefined} routeName\n * @param {string} locale\n */\nfunction getLocaleRouteName (routeName, locale) {\n  let name = routeName + (options.strategy === Constants.STRATEGIES.NO_PREFIX ? '' : options.routesNameSeparator + locale)\n\n  if (locale === options.defaultLocale && options.strategy === Constants.STRATEGIES.PREFIX_AND_DEFAULT) {\n    name += options.routesNameSeparator + options.defaultLocaleRouteNameSuffix\n  }\n\n  return name\n}\n\n/**\n * @template {(...args: any[]) => any} T\n * @param {T} targetFunction\n * @return {(this: Vue, ...args: Parameters<T>) => ReturnType<T>}\n */\nconst VueInstanceProxy = function (targetFunction) {\n  return function () {\n    const proxy = {\n      getRouteBaseName: this.getRouteBaseName,\n      i18n: this.$i18n,\n      localePath: this.localePath,\n      localeRoute: this.localeRoute,\n      localeLocation: this.localeLocation,\n      req: process.server ? this.$ssrContext.req : null,\n      route: this.$route,\n      router: this.$router,\n      store: this.$store\n    }\n\n    return targetFunction.call(proxy, ...arguments)\n  }\n}\n\n/**\n * @template {(...args: any[]) => any} T\n * @param {import('@nuxt/types').Context} context\n * @param {T} targetFunction\n * @return {(...args: Parameters<T>) => ReturnType<T>}\n */\nconst NuxtContextProxy = function (context, targetFunction) {\n  return function () {\n    const { app, req, route, store } = context\n\n    const proxy = {\n      getRouteBaseName: app.getRouteBaseName,\n      i18n: app.i18n,\n      localePath: app.localePath,\n      localeLocation: app.localeLocation,\n      localeRoute: app.localeRoute,\n      req: process.server ? req : null,\n      route,\n      router: app.router,\n      store\n    }\n\n    return targetFunction.call(proxy, ...arguments)\n  }\n}\n\n/** @type {import('vue').PluginObject<void>} */\nconst plugin = {\n  install (Vue) {\n    Vue.mixin({\n      methods: {\n        localePath: VueInstanceProxy(localePath),\n        localeRoute: VueInstanceProxy(localeRoute),\n        localeLocation: VueInstanceProxy(localeLocation),\n        switchLocalePath: VueInstanceProxy(switchLocalePath),\n        getRouteBaseName: VueInstanceProxy(getRouteBaseName)\n      }\n    })\n  }\n}\n\n/** @type {import('@nuxt/types').Plugin} */\nexport default (context) => {\n  Vue.use(plugin)\n  const { app, store } = context\n\n  app.localePath = context.localePath = NuxtContextProxy(context, localePath)\n  app.localeRoute = context.localeRoute = NuxtContextProxy(context, localeRoute)\n  app.localeLocation = context.localeLocation = NuxtContextProxy(context, localeLocation)\n  app.switchLocalePath = context.switchLocalePath = NuxtContextProxy(context, switchLocalePath)\n  app.getRouteBaseName = context.getRouteBaseName = NuxtContextProxy(context, getRouteBaseName)\n\n  if (store) {\n    store.localePath = app.localePath\n    store.localeRoute = app.localeRoute\n    store.localeLocation = app.localeLocation\n    store.switchLocalePath = app.switchLocalePath\n    store.getRouteBaseName = app.getRouteBaseName\n  }\n}\n","import VueMeta from 'vue-meta'\nimport { Constants, options } from './options'\nimport { formatMessage } from './utils-common'\n\n/**\n * @this {import('vue/types/vue').Vue}\n * @return {import('vue-meta').MetaInfo}\n */\nexport function nuxtI18nHead ({ addDirAttribute = true, addSeoAttributes = false } = {}) {\n  // Can happen when using from a global mixin.\n  if (!this.$i18n) {\n    return {}\n  }\n\n  /** @type {import('../../types/vue').NuxtI18nMeta} */\n  const metaObject = {\n    htmlAttrs: {},\n    link: [],\n    meta: []\n  }\n\n  const currentLocale = this.$i18n.localeProperties\n  const currentLocaleIso = currentLocale.iso\n  const currentLocaleDir = currentLocale.dir || options.defaultDirection\n\n  /**\n   * Adding Direction Attribute:\n   */\n  if (addDirAttribute) {\n    metaObject.htmlAttrs.dir = currentLocaleDir\n  }\n\n  /**\n   * Adding SEO Meta:\n   */\n  if (\n    addSeoAttributes &&\n    // @ts-ignore\n    (VueMeta.hasMetaInfo ? VueMeta.hasMetaInfo(this) : this._hasMetaInfo) &&\n    this.$i18n.locale &&\n    this.$i18n.locales &&\n    this.$options[Constants.COMPONENT_OPTIONS_KEY] !== false &&\n    // @ts-ignore\n    !(this.$options[Constants.COMPONENT_OPTIONS_KEY] && this.$options[Constants.COMPONENT_OPTIONS_KEY].seo === false)\n  ) {\n    if (currentLocaleIso) {\n      metaObject.htmlAttrs.lang = currentLocaleIso // TODO: simple lang or \"specific\" lang with territory?\n    }\n\n    const locales = /** @type {import('../../types').LocaleObject[]} */(this.$i18n.locales)\n\n    addHreflangLinks.bind(this)(locales, this.$i18n.__baseUrl, metaObject.link)\n    addCanonicalLinks.bind(this)(this.$i18n.__baseUrl, metaObject.link)\n    addCurrentOgLocale.bind(this)(currentLocale, currentLocaleIso, metaObject.meta)\n    addAlternateOgLocales.bind(this)(locales, currentLocaleIso, metaObject.meta)\n  }\n\n  /**\n   * Internals:\n   */\n\n  /**\n   * @this {import('vue/types/vue').Vue}\n   *\n   * @param {import('../../types').LocaleObject[]} locales\n   * @param {string} baseUrl\n   * @param {import('../../types/vue').NuxtI18nMeta['link']} link\n   */\n  function addHreflangLinks (locales, baseUrl, link) {\n    if (options.strategy === Constants.STRATEGIES.NO_PREFIX) {\n      return\n    }\n    /** @type {Map<string, import('../../types').LocaleObject>} */\n    const localeMap = new Map()\n    for (const locale of locales) {\n      const localeIso = locale.iso\n\n      if (!localeIso) {\n        // eslint-disable-next-line no-console\n        console.warn(formatMessage('Locale ISO code is required to generate alternate link'))\n        continue\n      }\n\n      const [language, region] = localeIso.split('-')\n\n      if (language && region && (locale.isCatchallLocale || !localeMap.has(language))) {\n        localeMap.set(language, locale)\n      }\n\n      localeMap.set(localeIso, locale)\n    }\n\n    for (const [iso, mapLocale] of localeMap.entries()) {\n      const localePath = this.switchLocalePath(mapLocale.code)\n      if (localePath) {\n        link.push({\n          hid: `i18n-alt-${iso}`,\n          rel: 'alternate',\n          href: toAbsoluteUrl(localePath, baseUrl),\n          hreflang: iso\n        })\n      }\n    }\n\n    if (options.defaultLocale) {\n      const localePath = this.switchLocalePath(options.defaultLocale)\n      if (localePath) {\n        link.push({\n          hid: 'i18n-xd',\n          rel: 'alternate',\n          href: toAbsoluteUrl(localePath, baseUrl),\n          hreflang: 'x-default'\n        })\n      }\n    }\n  }\n\n  /**\n   * @this {import('vue/types/vue').Vue}\n   *\n   * @param {string} baseUrl\n   * @param {import('../../types/vue').NuxtI18nMeta['link']} link\n   */\n  function addCanonicalLinks (baseUrl, link) {\n    const currentRoute = this.localeRoute({\n      ...this.$route,\n      name: this.getRouteBaseName()\n    })\n\n    const canonicalPath = currentRoute ? currentRoute.path : null\n\n    if (canonicalPath) {\n      link.push({\n        hid: 'i18n-can',\n        rel: 'canonical',\n        href: toAbsoluteUrl(canonicalPath, baseUrl)\n      })\n    }\n  }\n\n  /**\n   * @this {import('vue/types/vue').Vue}\n   *\n   * @param {import('../../types').LocaleObject} currentLocale\n   * @param {string | undefined} currentLocaleIso\n   * @param {import('../../types/vue').NuxtI18nMeta['meta']} meta\n   */\n  function addCurrentOgLocale (currentLocale, currentLocaleIso, meta) {\n    const hasCurrentLocaleAndIso = currentLocale && currentLocaleIso\n\n    if (!hasCurrentLocaleAndIso) {\n      return\n    }\n\n    meta.push({\n      hid: 'i18n-og',\n      property: 'og:locale',\n      // Replace dash with underscore as defined in spec: language_TERRITORY\n      content: hypenToUnderscore(currentLocaleIso)\n    })\n  }\n\n  /**\n   * @this {import('vue/types/vue').Vue}\n   *\n   * @param {import('../../types').LocaleObject[]} locales\n   * @param {string | undefined} currentLocaleIso\n   * @param {import('../../types/vue').NuxtI18nMeta['meta']} meta\n   */\n  function addAlternateOgLocales (locales, currentLocaleIso, meta) {\n    const localesWithoutCurrent = locales.filter(locale => {\n      const localeIso = locale.iso\n      return localeIso && localeIso !== currentLocaleIso\n    })\n\n    if (localesWithoutCurrent.length) {\n      const alternateLocales = localesWithoutCurrent.map(locale => ({\n        hid: `i18n-og-alt-${locale.iso}`,\n        property: 'og:locale:alternate',\n        content: hypenToUnderscore(locale.iso)\n      }))\n\n      meta.push(...alternateLocales)\n    }\n  }\n\n  /**\n   * @param {string | undefined} str\n   * @return {string}\n   */\n  function hypenToUnderscore (str) {\n    return (str || '').replace(/-/g, '_')\n  }\n\n  /**\n   * @param {string} urlOrPath\n   * @param {string} baseUrl\n   */\n  function toAbsoluteUrl (urlOrPath, baseUrl) {\n    if (urlOrPath.match(/^https?:\\/\\//)) {\n      return urlOrPath\n    }\n    return baseUrl + urlOrPath\n  }\n\n  return metaObject\n}\n\n/**\n * @deprecated Use `nuxtI18nHead()` instead.\n * @this {import('vue/types/vue').Vue}\n */\nexport function nuxtI18nSeo () {\n  return nuxtI18nHead.call(this, { addDirAttribute: false, addSeoAttributes: true })\n}\n","function set(obj, key, val) {\n\tif (typeof val.value === 'object') val.value = klona(val.value);\n\tif (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {\n\t\tObject.defineProperty(obj, key, val);\n\t} else obj[key] = val.value;\n}\n\nexport function klona(x) {\n\tif (typeof x !== 'object') return x;\n\n\tvar i=0, k, list, tmp, str=Object.prototype.toString.call(x);\n\n\tif (str === '[object Object]') {\n\t\ttmp = Object.create(x.__proto__ || null);\n\t} else if (str === '[object Array]') {\n\t\ttmp = Array(x.length);\n\t} else if (str === '[object Set]') {\n\t\ttmp = new Set;\n\t\tx.forEach(function (val) {\n\t\t\ttmp.add(klona(val));\n\t\t});\n\t} else if (str === '[object Map]') {\n\t\ttmp = new Map;\n\t\tx.forEach(function (val, key) {\n\t\t\ttmp.set(klona(key), klona(val));\n\t\t});\n\t} else if (str === '[object Date]') {\n\t\ttmp = new Date(+x);\n\t} else if (str === '[object RegExp]') {\n\t\ttmp = new RegExp(x.source, x.flags);\n\t} else if (str === '[object DataView]') {\n\t\ttmp = new x.constructor( klona(x.buffer) );\n\t} else if (str === '[object ArrayBuffer]') {\n\t\ttmp = x.slice(0);\n\t} else if (str.slice(-6) === 'Array]') {\n\t\t// ArrayBuffer.isView(x)\n\t\t// ~> `new` bcuz `Buffer.slice` => ref\n\t\ttmp = new x.constructor(x);\n\t}\n\n\tif (tmp) {\n\t\tfor (list=Object.getOwnPropertySymbols(x); i < list.length; i++) {\n\t\t\tset(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));\n\t\t}\n\n\t\tfor (i=0, list=Object.getOwnPropertyNames(x); i < list.length; i++) {\n\t\t\tif (Object.hasOwnProperty.call(tmp, k=list[i]) && tmp[k] === x[k]) continue;\n\t\t\tset(tmp, k, Object.getOwnPropertyDescriptor(x, k));\n\t\t}\n\t}\n\n\treturn tmp || x;\n}\n","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\nimport { nuxtI18nHead, nuxtI18nSeo } from './head-meta'\nimport { Constants, nuxtOptions, options } from './options'\nimport {\n  createLocaleFromRouteGetter,\n  getLocaleCookie,\n  getLocaleDomain,\n  getLocalesRegex,\n  matchBrowserLocale,\n  parseAcceptLanguage,\n  setLocaleCookie\n} from './utils-common'\nimport { loadLanguageAsync, resolveBaseUrl, registerStore, syncVuex } from './plugin.utils'\n// @ts-ignore\nimport { joinURL } from '~i18n-ufo'\n// @ts-ignore\nimport { klona } from '~i18n-klona'\n\nVue.use(VueI18n)\n\n/** @type {import('@nuxt/types').Plugin} */\nexport default async (context) => {\n  const { app, route, store, req, res, redirect } = context\n\n  if (options.vuex && store) {\n    registerStore(store, options.vuex, options.localeCodes)\n  }\n\n  const { lazy } = options\n  const injectInNuxtState = lazy && (lazy === true || lazy.skipNuxtState !== true)\n\n  if (process.server && injectInNuxtState) {\n    const devalue = (await import('devalue')).default\n    context.beforeNuxtRender(({ nuxtState }) => {\n      /** @type {Record<string, import('vue-i18n').LocaleMessageObject>} */\n      const langs = {}\n      const { fallbackLocale, locale } = app.i18n\n      if (locale && locale !== fallbackLocale) {\n        // @ts-ignore Using internal API to avoid unnecessary cloning.\n        const messages = app.i18n._getMessages()[locale]\n        if (messages) {\n          try {\n            devalue(messages)\n            langs[locale] = messages\n          } catch {\n            // Ignore - client-side will load the chunk asynchronously.\n          }\n        }\n      }\n      nuxtState.__i18n = { langs }\n    })\n  }\n\n  const {\n    alwaysRedirect,\n    fallbackLocale,\n    onlyOnNoPrefix,\n    onlyOnRoot,\n    useCookie,\n    cookieKey,\n    cookieDomain,\n    cookieSecure,\n    cookieCrossOrigin\n  } = /** @type {Required<import('../../types').DetectBrowserLanguageOptions>} */(options.detectBrowserLanguage)\n\n  /**\n   * @param {string | undefined} newLocale\n   * @param {{ initialSetup?: boolean }} [options=false]\n   */\n  const loadAndSetLocale = async (newLocale, { initialSetup = false } = {}) => {\n    if (!newLocale) {\n      return\n    }\n\n    // Abort if different domains option enabled\n    if (!initialSetup && app.i18n.differentDomains) {\n      return\n    }\n\n    const oldLocale = app.i18n.locale\n\n    if (newLocale === oldLocale) {\n      return\n    }\n\n    const localeOverride = app.i18n.onBeforeLanguageSwitch(oldLocale, newLocale, initialSetup, context)\n    if (localeOverride && app.i18n.localeCodes.includes(localeOverride)) {\n      if (localeOverride === oldLocale) {\n        return\n      }\n      newLocale = localeOverride\n    }\n\n    if (!initialSetup) {\n      app.i18n.beforeLanguageSwitch(oldLocale, newLocale)\n    }\n\n    if (useCookie) {\n      app.i18n.setLocaleCookie(newLocale)\n    }\n\n    if (options.langDir) {\n      const i18nFallbackLocale = app.i18n.fallbackLocale\n\n      if (options.lazy) {\n        // Load fallback locale(s).\n        if (i18nFallbackLocale) {\n        /** @type {Promise<void>[]} */\n          let localesToLoadPromises = []\n          if (Array.isArray(i18nFallbackLocale)) {\n            localesToLoadPromises = i18nFallbackLocale.map(fbLocale => loadLanguageAsync(context, fbLocale))\n          } else if (typeof i18nFallbackLocale === 'object') {\n            if (i18nFallbackLocale[newLocale]) {\n              localesToLoadPromises = localesToLoadPromises.concat(i18nFallbackLocale[newLocale].map(fbLocale => loadLanguageAsync(context, fbLocale)))\n            }\n            if (i18nFallbackLocale.default) {\n              localesToLoadPromises = localesToLoadPromises.concat(i18nFallbackLocale.default.map(fbLocale => loadLanguageAsync(context, fbLocale)))\n            }\n          } else if (newLocale !== i18nFallbackLocale) {\n            localesToLoadPromises.push(loadLanguageAsync(context, i18nFallbackLocale))\n          }\n          await Promise.all(localesToLoadPromises)\n        }\n        await loadLanguageAsync(context, newLocale)\n      } else {\n        // Load all locales.\n        await Promise.all(options.localeCodes.map(locale => loadLanguageAsync(context, locale)))\n      }\n    }\n\n    app.i18n.locale = newLocale\n    /** @type {import('../../types').LocaleObject} */\n    const newLocaleProperties = options.normalizedLocales.find(l => l.code === newLocale) || { code: newLocale }\n    // In case certain locale has more properties than another, reset all the properties.\n    for (const key of Object.keys(app.i18n.localeProperties)) {\n      app.i18n.localeProperties[key] = undefined\n    }\n    // Copy properties of the new locale\n    for (const [key, value] of Object.entries(newLocaleProperties)) {\n      Vue.set(app.i18n.localeProperties, key, klona(value))\n    }\n\n    if (options.vuex) {\n      await syncVuex(store, newLocale, app.i18n.getLocaleMessage(newLocale), options.vuex)\n    }\n\n    // Must retrieve from context as it might have changed since plugin initialization.\n    const { route } = context\n    const redirectPath = getRedirectPathForLocale(route, newLocale)\n\n    if (initialSetup) {\n      // Redirect will be delayed until middleware runs as redirecting from plugin does not\n      // work in SPA (https://github.com/nuxt/nuxt.js/issues/4491).\n      app.i18n.__redirect = redirectPath\n    } else {\n      app.i18n.onLanguageSwitched(oldLocale, newLocale)\n\n      if (redirectPath) {\n        redirect(redirectPath)\n      }\n    }\n  }\n\n  const getLocaleFromRoute = createLocaleFromRouteGetter(options.localeCodes, {\n    routesNameSeparator: options.routesNameSeparator,\n    defaultLocaleRouteNameSuffix: options.defaultLocaleRouteNameSuffix\n  })\n\n  /**\n   * Gets the redirect path for locale.\n   *\n   * @param {import(\"vue-router\").Route} route\n   * @param {string | undefined} locale\n   * @return {string} The redirect path for locale.\n   */\n  const getRedirectPathForLocale = (route, locale) => {\n    // Redirects are ignored if it is a nuxt generate.\n    if (process.static && process.server) {\n      return ''\n    }\n\n    if (!locale || app.i18n.differentDomains || options.strategy === Constants.STRATEGIES.NO_PREFIX) {\n      return ''\n    }\n\n    if (getLocaleFromRoute(route) === locale) {\n      // If \"onlyOnRoot\" or \"onlyOnNoPrefix\" is set and strategy is \"prefix_and_default\", prefer unprefixed route for\n      // default locale.\n      if (!(onlyOnRoot || onlyOnNoPrefix) || locale !== options.defaultLocale || options.strategy !== Constants.STRATEGIES.PREFIX_AND_DEFAULT) {\n        return ''\n      }\n    }\n\n    // At this point we are left with route that either has no or different locale.\n    let redirectPath = app.switchLocalePath(locale)\n\n    if (!redirectPath) {\n      // Current route could be 404 in which case attempt to find matching route for given locale.\n      redirectPath = app.localePath(route.fullPath, locale)\n    }\n\n    if (!redirectPath || redirectPath === route.fullPath || redirectPath.startsWith('//')) {\n      return ''\n    }\n\n    return redirectPath\n  }\n\n  /**\n   * Called by middleware on navigation (also on the initial one).\n   *\n   * @type {import('../../types/internal').onNavigateInternal}\n   */\n  const onNavigate = async route => {\n    // Handle root path redirect\n    if (route.path === '/' && options.rootRedirect) {\n      let statusCode = 302\n      let path = options.rootRedirect\n\n      if (typeof options.rootRedirect !== 'string') {\n        statusCode = options.rootRedirect.statusCode\n        path = options.rootRedirect.path\n      }\n\n      return [statusCode, `/${path}`, /* preserve query */true]\n    }\n\n    const storedRedirect = app.i18n.__redirect\n    if (storedRedirect) {\n      app.i18n.__redirect = null\n      return [302, storedRedirect]\n    }\n\n    const resolveBaseUrlOptions = {\n      differentDomains: options.differentDomains,\n      normalizedLocales: options.normalizedLocales\n    }\n    app.i18n.__baseUrl = resolveBaseUrl(options.baseUrl, context, app.i18n.locale, resolveBaseUrlOptions)\n\n    const finalLocale =\n      (options.detectBrowserLanguage && doDetectBrowserLanguage(route)) ||\n      getLocaleFromRoute(route) || app.i18n.locale || app.i18n.defaultLocale || ''\n\n    if (options.skipSettingLocaleOnNavigate) {\n      app.i18n.__pendingLocale = finalLocale\n      app.i18n.__pendingLocalePromise = new Promise(resolve => {\n        app.i18n.__resolvePendingLocalePromise = resolve\n      })\n    } else {\n      await app.i18n.setLocale(finalLocale)\n    }\n\n    return [null, null]\n  }\n\n  const finalizePendingLocaleChange = async () => {\n    if (!app.i18n.__pendingLocale) {\n      return\n    }\n    await app.i18n.setLocale(app.i18n.__pendingLocale)\n    app.i18n.__resolvePendingLocalePromise('')\n    app.i18n.__pendingLocale = null\n  }\n\n  const waitForPendingLocaleChange = async () => {\n    if (app.i18n.__pendingLocale) {\n      await app.i18n.__pendingLocalePromise\n    }\n  }\n\n  const getBrowserLocale = () => {\n    if (process.client && typeof navigator !== 'undefined' && navigator.languages) {\n      // Get browser language either from navigator if running on client side, or from the headers\n      return matchBrowserLocale(options.normalizedLocales, navigator.languages)\n    } else if (req && typeof req.headers['accept-language'] !== 'undefined') {\n      return matchBrowserLocale(options.normalizedLocales, parseAcceptLanguage(req.headers['accept-language']))\n    } else {\n      return undefined\n    }\n  }\n\n  /**\n   * @param {import('vue-router').Route} route\n   * @return {string} Returns the browser locale that was detected or an empty string otherwise.\n   */\n  const doDetectBrowserLanguage = route => {\n    // Browser detection is ignored if it is a nuxt generate.\n    if (process.static && process.server) {\n      return ''\n    }\n\n    if (options.strategy !== Constants.STRATEGIES.NO_PREFIX) {\n      if (onlyOnRoot) {\n        if (route.path !== '/') {\n          return ''\n        }\n      } else if (onlyOnNoPrefix) {\n        if (!alwaysRedirect && route.path.match(getLocalesRegex(options.localeCodes))) {\n          return ''\n        }\n      }\n    }\n\n    let matchedLocale\n\n    if (useCookie && (matchedLocale = app.i18n.getLocaleCookie())) {\n      // Get preferred language from cookie if present and enabled\n    } else {\n      // Try to get locale from either navigator or header detection\n      matchedLocale = getBrowserLocale()\n    }\n\n    const finalLocale = matchedLocale || fallbackLocale\n\n    // Handle cookie option to prevent multiple redirections\n    if (finalLocale && (!useCookie || alwaysRedirect || !app.i18n.getLocaleCookie())) {\n      if (finalLocale !== app.i18n.locale) {\n        return finalLocale\n      }\n    }\n\n    return ''\n  }\n\n  /**\n   * Extends the newly created vue-i18n instance with nuxt-i18n properties.\n   *\n   * @param {import('vue-i18n').IVueI18n} i18n\n   */\n  const extendVueI18nInstance = i18n => {\n    i18n.locales = klona(options.locales)\n    i18n.localeCodes = klona(options.localeCodes)\n    i18n.localeProperties = Vue.observable(klona(options.normalizedLocales.find(l => l.code === i18n.locale) || { code: i18n.locale }))\n    i18n.defaultLocale = options.defaultLocale\n    i18n.differentDomains = options.differentDomains\n    i18n.beforeLanguageSwitch = options.beforeLanguageSwitch\n    i18n.onBeforeLanguageSwitch = options.onBeforeLanguageSwitch\n    i18n.onLanguageSwitched = options.onLanguageSwitched\n    i18n.setLocaleCookie = locale => setLocaleCookie(locale, res, { useCookie, cookieDomain, cookieKey, cookieSecure, cookieCrossOrigin })\n    i18n.getLocaleCookie = () => getLocaleCookie(req, { useCookie, cookieKey, localeCodes: options.localeCodes })\n    i18n.setLocale = (locale) => loadAndSetLocale(locale)\n    i18n.getBrowserLocale = () => getBrowserLocale()\n    i18n.finalizePendingLocaleChange = finalizePendingLocaleChange\n    i18n.waitForPendingLocaleChange = waitForPendingLocaleChange\n    i18n.__baseUrl = app.i18n.__baseUrl\n    i18n.__pendingLocale = app.i18n.__pendingLocale\n    i18n.__pendingLocalePromise = app.i18n.__pendingLocalePromise\n    i18n.__resolvePendingLocalePromise = app.i18n.__resolvePendingLocalePromise\n  }\n\n  // Set instance options\n  const vueI18nOptions = typeof options.vueI18n === 'function' ? await options.vueI18n(context) : klona(options.vueI18n)\n  vueI18nOptions.componentInstanceCreatedListener = extendVueI18nInstance\n  // @ts-ignore\n  app.i18n = context.i18n = new VueI18n(vueI18nOptions)\n  // Initialize locale and fallbackLocale as vue-i18n defaults those to 'en-US' if falsey\n  app.i18n.locale = ''\n  app.i18n.fallbackLocale = vueI18nOptions.fallbackLocale || ''\n  extendVueI18nInstance(app.i18n)\n  const resolveBaseUrlOptions = {\n    differentDomains: options.differentDomains,\n    normalizedLocales: options.normalizedLocales\n  }\n  app.i18n.__baseUrl = resolveBaseUrl(options.baseUrl, context, '', resolveBaseUrlOptions)\n  app.i18n.__onNavigate = onNavigate\n\n  Vue.prototype.$nuxtI18nSeo = nuxtI18nSeo\n  Vue.prototype.$nuxtI18nHead = nuxtI18nHead\n\n  if (store) {\n    // Inject in store.\n    store.$i18n = app.i18n\n\n    if (store.state.localeDomains) {\n      for (const locale of app.i18n.locales) {\n        if (typeof (locale) === 'string') {\n          continue\n        }\n        locale.domain = store.state.localeDomains[locale.code]\n      }\n    }\n  }\n\n  /** @type {string | undefined} */\n  let finalLocale = options.detectBrowserLanguage ? doDetectBrowserLanguage(route) : ''\n\n  if (!finalLocale) {\n    const { vuex } = options\n    if (vuex && vuex.syncLocale && store && store.state[vuex.moduleName].locale !== '') {\n      finalLocale = store.state[vuex.moduleName].locale\n    } else if (app.i18n.differentDomains) {\n      const domainLocale = getLocaleDomain(options.normalizedLocales, req)\n      finalLocale = domainLocale\n    } else if (options.strategy !== Constants.STRATEGIES.NO_PREFIX) {\n      const routeLocale = getLocaleFromRoute(route)\n      finalLocale = routeLocale\n    }\n  }\n\n  if (!finalLocale && useCookie) {\n    finalLocale = app.i18n.getLocaleCookie()\n  }\n\n  if (!finalLocale) {\n    finalLocale = app.i18n.defaultLocale || ''\n  }\n\n  await loadAndSetLocale(finalLocale, { initialSetup: true })\n\n  if (process.client && process.static && nuxtOptions.isUniversalMode) {\n    const [_, redirectTo] = await onNavigate(context.route)\n    if (redirectTo) {\n      location.assign(joinURL(context.base, redirectTo))\n    }\n  }\n}\n","import Axios from 'axios'\nimport defu from 'defu'\n\n// Axios.prototype cannot be modified\nconst axiosExtra = {\n  setBaseURL (baseURL) {\n    this.defaults.baseURL = baseURL\n  },\n  setHeader (name, value, scopes = 'common') {\n    for (const scope of Array.isArray(scopes) ? scopes : [ scopes ]) {\n      if (!value) {\n        delete this.defaults.headers[scope][name];\n        continue\n      }\n      this.defaults.headers[scope][name] = value\n    }\n  },\n  setToken (token, type, scopes = 'common') {\n    const value = !token ? null : (type ? type + ' ' : '') + token\n    this.setHeader('Authorization', value, scopes)\n  },\n  onRequest(fn) {\n    this.interceptors.request.use(config => fn(config) || config)\n  },\n  onResponse(fn) {\n    this.interceptors.response.use(response => fn(response) || response)\n  },\n  onRequestError(fn) {\n    this.interceptors.request.use(undefined, error => fn(error) || Promise.reject(error))\n  },\n  onResponseError(fn) {\n    this.interceptors.response.use(undefined, error => fn(error) || Promise.reject(error))\n  },\n  onError(fn) {\n    this.onRequestError(fn)\n    this.onResponseError(fn)\n  },\n  create(options) {\n    return createAxiosInstance(defu(options, this.defaults))\n  }\n}\n\n// Request helpers ($get, $post, ...)\nfor (const method of ['request', 'delete', 'get', 'head', 'options', 'post', 'put', 'patch']) {\n  axiosExtra['$' + method] = function () { return this[method].apply(this, arguments).then(res => res && res.data) }\n}\n\nconst extendAxiosInstance = axios => {\n  for (const key in axiosExtra) {\n    axios[key] = axiosExtra[key].bind(axios)\n  }\n}\n\nconst createAxiosInstance = axiosOptions => {\n  // Create new axios instance\n  const axios = Axios.create(axiosOptions)\n  axios.CancelToken = Axios.CancelToken\n  axios.isCancel = Axios.isCancel\n\n  // Extend axios proto\n  extendAxiosInstance(axios)\n\n  // Intercept to apply default headers\n  axios.onRequest((config) => {\n    config.headers = { ...axios.defaults.headers.common, ...config.headers }\n  })\n\n  // Setup interceptors\n\n  setupProgress(axios)\n\n  return axios\n}\n\nconst setupProgress = (axios) => {\n  if (process.server) {\n    return\n  }\n\n  // A noop loading inteterface for when $nuxt is not yet ready\n  const noopLoading = {\n    finish: () => { },\n    start: () => { },\n    fail: () => { },\n    set: () => { }\n  }\n\n  const $loading = () => {\n    const $nuxt = typeof window !== 'undefined' && window['$nuxt']\n    return ($nuxt && $nuxt.$loading && $nuxt.$loading.set) ? $nuxt.$loading : noopLoading\n  }\n\n  let currentRequests = 0\n\n  axios.onRequest(config => {\n    if (config && config.progress === false) {\n      return\n    }\n\n    currentRequests++\n  })\n\n  axios.onResponse(response => {\n    if (response && response.config && response.config.progress === false) {\n      return\n    }\n\n    currentRequests--\n    if (currentRequests <= 0) {\n      currentRequests = 0\n      $loading().finish()\n    }\n  })\n\n  axios.onError(error => {\n    if (error && error.config && error.config.progress === false) {\n      return\n    }\n\n    currentRequests--\n\n    if (Axios.isCancel(error)) {\n      if (currentRequests <= 0) {\n        currentRequests = 0\n        $loading().finish()\n      }\n      return\n    }\n\n    $loading().fail()\n    $loading().finish()\n  })\n\n  const onProgress = e => {\n    if (!currentRequests || !e.total) {\n      return\n    }\n    const progress = ((e.loaded * 100) / (e.total * currentRequests))\n    $loading().set(Math.min(100, progress))\n  }\n\n  axios.defaults.onUploadProgress = onProgress\n  axios.defaults.onDownloadProgress = onProgress\n}\n\nexport default (ctx, inject) => {\n  // runtimeConfig\n  const runtimeConfig = ctx.$config && ctx.$config.axios || {}\n  // baseURL\n  const baseURL = process.browser\n    ? (runtimeConfig.browserBaseURL || runtimeConfig.browserBaseUrl || runtimeConfig.baseURL || runtimeConfig.baseUrl || 'http://localhost:3000/')\n      : (runtimeConfig.baseURL || runtimeConfig.baseUrl || process.env._AXIOS_BASE_URL_ || 'http://localhost:3000/')\n\n  // Create fresh objects for all default header scopes\n  // Axios creates only one which is shared across SSR requests!\n  // https://github.com/mzabriskie/axios/blob/master/lib/defaults.js\n  const headers = {\n    \"common\": {\n        \"Accept\": \"application/json, text/plain, */*\"\n    },\n    \"delete\": {},\n    \"get\": {},\n    \"head\": {},\n    \"post\": {},\n    \"put\": {},\n    \"patch\": {}\n}\n\n  const axiosOptions = {\n    baseURL,\n    headers\n  }\n\n  // Proxy SSR request headers headers\n  if (process.server && ctx.req && ctx.req.headers) {\n    const reqHeaders = { ...ctx.req.headers }\n    for (const h of [\"accept\",\"cf-connecting-ip\",\"cf-ray\",\"content-length\",\"content-md5\",\"content-type\",\"host\",\"x-forwarded-host\",\"x-forwarded-port\",\"x-forwarded-proto\"]) {\n      delete reqHeaders[h]\n    }\n    axiosOptions.headers.common = { ...reqHeaders, ...axiosOptions.headers.common }\n  }\n\n  if (process.server) {\n    // Don't accept brotli encoding because Node can't parse it\n    axiosOptions.headers.common['accept-encoding'] = 'gzip, deflate'\n  }\n\n  const axios = createAxiosInstance(axiosOptions)\n\n  // Inject axios to the context as $axios\n  ctx.$axios = axios\n  inject('axios', axios)\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport Meta from 'vue-meta'\nimport ClientOnly from 'vue-client-only'\nimport NoSsr from 'vue-no-ssr'\nimport { createRouter } from './router.js'\nimport NuxtChild from './components/nuxt-child.js'\nimport NuxtError from '..\\\\..\\\\..\\\\layouts\\\\error.vue'\nimport Nuxt from './components/nuxt.js'\nimport App from './App.js'\nimport { setContext, getLocation, getRouteData, normalizeError } from './utils'\nimport { createStore } from './store.js'\n\n/* Plugins */\n\nimport nuxt_plugin_vlazyload_80a2605c from 'nuxt_plugin_vlazyload_80a2605c' // Source: .\\\\v-lazy-load.js (mode: 'all')\nimport nuxt_plugin_pluginutils_641bc50a from 'nuxt_plugin_pluginutils_641bc50a' // Source: .\\\\nuxt-i18n\\\\plugin.utils.js (mode: 'all')\nimport nuxt_plugin_pluginrouting_fb819056 from 'nuxt_plugin_pluginrouting_fb819056' // Source: .\\\\nuxt-i18n\\\\plugin.routing.js (mode: 'all')\nimport nuxt_plugin_pluginmain_7000688c from 'nuxt_plugin_pluginmain_7000688c' // Source: .\\\\nuxt-i18n\\\\plugin.main.js (mode: 'all')\nimport nuxt_plugin_axios_7d28a438 from 'nuxt_plugin_axios_7d28a438' // Source: .\\\\axios.js (mode: 'all')\nimport nuxt_plugin_vwaypoint_2be9ebc9 from 'nuxt_plugin_vwaypoint_2be9ebc9' // Source: ..\\\\..\\\\..\\\\plugins\\\\v-waypoint.js (mode: 'client')\nimport nuxt_plugin_animateclient_e4aa626e from 'nuxt_plugin_animateclient_e4aa626e' // Source: ..\\\\..\\\\..\\\\plugins\\\\animate.client.js (mode: 'client')\n\n// Component: <ClientOnly>\nVue.component(ClientOnly.name, ClientOnly)\n\n// TODO: Remove in Nuxt 3: <NoSsr>\nVue.component(NoSsr.name, {\n  ...NoSsr,\n  render (h, ctx) {\n    if (process.client && !NoSsr._warned) {\n      NoSsr._warned = true\n\n      console.warn('<no-ssr> has been deprecated and will be removed in Nuxt 3, please use <client-only> instead')\n    }\n    return NoSsr.render(h, ctx)\n  }\n})\n\n// Component: <NuxtChild>\nVue.component(NuxtChild.name, NuxtChild)\nVue.component('NChild', NuxtChild)\n\n// Component NuxtLink is imported in server.js or client.js\n\n// Component: <Nuxt>\nVue.component(Nuxt.name, Nuxt)\n\nObject.defineProperty(Vue.prototype, '$nuxt', {\n  get() {\n    const globalNuxt = this.$root.$options.$nuxt\n    if (process.client && !globalNuxt && typeof window !== 'undefined') {\n      return window.$nuxt\n    }\n    return globalNuxt\n  },\n  configurable: true\n})\n\nVue.use(Meta, {\"keyName\":\"head\",\"attribute\":\"data-n-head\",\"ssrAttribute\":\"data-n-head-ssr\",\"tagIDKeyName\":\"hid\"})\n\nconst defaultTransition = {\"name\":\"page\",\"mode\":\"out-in\",\"appear\":false,\"appearClass\":\"appear\",\"appearActiveClass\":\"appear-active\",\"appearToClass\":\"appear-to\"}\n\nconst originalRegisterModule = Vuex.Store.prototype.registerModule\n\nfunction registerModule (path, rawModule, options = {}) {\n  const preserveState = process.client && (\n    Array.isArray(path)\n      ? !!path.reduce((namespacedState, path) => namespacedState && namespacedState[path], this.state)\n      : path in this.state\n  )\n  return originalRegisterModule.call(this, path, rawModule, { preserveState, ...options })\n}\n\nasync function createApp(ssrContext, config = {}) {\n  const router = await createRouter(ssrContext, config)\n\n  const store = createStore(ssrContext)\n  // Add this.$router into store actions/mutations\n  store.$router = router\n\n  // Fix SSR caveat https://github.com/nuxt/nuxt.js/issues/3757#issuecomment-414689141\n  store.registerModule = registerModule\n\n  // Create Root instance\n\n  // here we inject the router and store to all child components,\n  // making them available everywhere as `this.$router` and `this.$store`.\n  const app = {\n    head: function() {\n    const isEn = this.$i18n?.locale == \"en\";\n\n    const link = [\n      { rel: \"icon\", type: \"image/x-icon\", href: \"/favicon.ico\" }\n    ];\n    if (isEn) link.push({ rel: \"stylesheet\", href: \"https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;700&display=swap\" });\n\n    return {\n      htmlAttrs: {\n        lang: this.$i18n.locale\n      },\n      meta: [\n        { charset: \"utf-8\" },\n        { name: \"viewport\", content: \"width=device-width, initial-scale=1\" },\n        { hid: \"description\", name: \"description\", content: \"\" },\n      ],\n      link: link\n    };\n  },\n\n    store,\n    router,\n    nuxt: {\n      defaultTransition,\n      transitions: [defaultTransition],\n      setTransitions (transitions) {\n        if (!Array.isArray(transitions)) {\n          transitions = [transitions]\n        }\n        transitions = transitions.map((transition) => {\n          if (!transition) {\n            transition = defaultTransition\n          } else if (typeof transition === 'string') {\n            transition = Object.assign({}, defaultTransition, { name: transition })\n          } else {\n            transition = Object.assign({}, defaultTransition, transition)\n          }\n          return transition\n        })\n        this.$options.nuxt.transitions = transitions\n        return transitions\n      },\n\n      err: null,\n      dateErr: null,\n      error (err) {\n        err = err || null\n        app.context._errored = Boolean(err)\n        err = err ? normalizeError(err) : null\n        let nuxt = app.nuxt // to work with @vue/composition-api, see https://github.com/nuxt/nuxt.js/issues/6517#issuecomment-573280207\n        if (this) {\n          nuxt = this.nuxt || this.$options.nuxt\n        }\n        nuxt.dateErr = Date.now()\n        nuxt.err = err\n        // Used in src/server.js\n        if (ssrContext) {\n          ssrContext.nuxt.error = err\n        }\n        return err\n      }\n    },\n    ...App\n  }\n\n  // Make app available into store via this.app\n  store.app = app\n\n  const next = ssrContext ? ssrContext.next : location => app.router.push(location)\n  // Resolve route\n  let route\n  if (ssrContext) {\n    route = router.resolve(ssrContext.url).route\n  } else {\n    const path = getLocation(router.options.base, router.options.mode)\n    route = router.resolve(path).route\n  }\n\n  // Set context to app.context\n  await setContext(app, {\n    store,\n    route,\n    next,\n    error: app.nuxt.error.bind(app),\n    payload: ssrContext ? ssrContext.payload : undefined,\n    req: ssrContext ? ssrContext.req : undefined,\n    res: ssrContext ? ssrContext.res : undefined,\n    beforeRenderFns: ssrContext ? ssrContext.beforeRenderFns : undefined,\n    ssrContext\n  })\n\n  function inject(key, value) {\n    if (!key) {\n      throw new Error('inject(key, value) has no key provided')\n    }\n    if (value === undefined) {\n      throw new Error(`inject('${key}', value) has no value provided`)\n    }\n\n    key = '$' + key\n    // Add into app\n    app[key] = value\n    // Add into context\n    if (!app.context[key]) {\n      app.context[key] = value\n    }\n\n    // Add into store\n    store[key] = app[key]\n\n    // Check if plugin not already installed\n    const installKey = '__nuxt_' + key + '_installed__'\n    if (Vue[installKey]) {\n      return\n    }\n    Vue[installKey] = true\n    // Call Vue.use() to install the plugin into vm\n    Vue.use(() => {\n      if (!Object.prototype.hasOwnProperty.call(Vue.prototype, key)) {\n        Object.defineProperty(Vue.prototype, key, {\n          get () {\n            return this.$root.$options[key]\n          }\n        })\n      }\n    })\n  }\n\n  // Inject runtime config as $config\n  inject('config', config)\n\n  if (process.client) {\n    // Replace store state before plugins execution\n    if (window.__NUXT__ && window.__NUXT__.state) {\n      store.replaceState(window.__NUXT__.state)\n    }\n  }\n\n  // Add enablePreview(previewData = {}) in context for plugins\n  if (process.static && process.client) {\n    app.context.enablePreview = function (previewData = {}) {\n      app.previewData = Object.assign({}, previewData)\n      inject('preview', previewData)\n    }\n  }\n  // Plugin execution\n\n  if (typeof nuxt_plugin_vlazyload_80a2605c === 'function') {\n    await nuxt_plugin_vlazyload_80a2605c(app.context, inject)\n  }\n\n  if (typeof nuxt_plugin_pluginutils_641bc50a === 'function') {\n    await nuxt_plugin_pluginutils_641bc50a(app.context, inject)\n  }\n\n  if (typeof nuxt_plugin_pluginrouting_fb819056 === 'function') {\n    await nuxt_plugin_pluginrouting_fb819056(app.context, inject)\n  }\n\n  if (typeof nuxt_plugin_pluginmain_7000688c === 'function') {\n    await nuxt_plugin_pluginmain_7000688c(app.context, inject)\n  }\n\n  if (typeof nuxt_plugin_axios_7d28a438 === 'function') {\n    await nuxt_plugin_axios_7d28a438(app.context, inject)\n  }\n\n  if (process.client && typeof nuxt_plugin_vwaypoint_2be9ebc9 === 'function') {\n    await nuxt_plugin_vwaypoint_2be9ebc9(app.context, inject)\n  }\n\n  if (process.client && typeof nuxt_plugin_animateclient_e4aa626e === 'function') {\n    await nuxt_plugin_animateclient_e4aa626e(app.context, inject)\n  }\n\n  // Lock enablePreview in context\n  if (process.static && process.client) {\n    app.context.enablePreview = function () {\n      console.warn('You cannot call enablePreview() outside a plugin.')\n    }\n  }\n\n  // Wait for async component to be resolved first\n  await new Promise((resolve, reject) => {\n    // Ignore 404s rather than blindly replacing URL in browser\n    if (process.client) {\n      const { route } = router.resolve(app.context.route.fullPath)\n      if (!route.matched.length) {\n        return resolve()\n      }\n    }\n    router.replace(app.context.route.fullPath, resolve, (err) => {\n      // https://github.com/vuejs/vue-router/blob/v3.4.3/src/util/errors.js\n      if (!err._isRouter) return reject(err)\n      if (err.type !== 2 /* NavigationFailureType.redirected */) return resolve()\n\n      // navigated to a different route in router guard\n      const unregister = router.afterEach(async (to, from) => {\n        if (process.server && ssrContext && ssrContext.url) {\n          ssrContext.url = to.fullPath\n        }\n        app.context.route = await getRouteData(to)\n        app.context.params = to.params || {}\n        app.context.query = to.query || {}\n        unregister()\n        resolve()\n      })\n    })\n  })\n\n  return {\n    store,\n    app,\n    router\n  }\n}\n\nexport { createApp, NuxtError }\n","import Vue from 'vue'\n\nexport default {\n  name: 'NuxtLink',\n  extends: Vue.component('RouterLink'),\n  props: {\n    prefetch: {\n      type: Boolean,\n      default: true\n    },\n    noPrefetch: {\n      type: Boolean,\n      default: false\n    }\n  }\n}\n","import Vue from 'vue'\nimport { joinURL, normalizeURL, withQuery } from 'ufo'\nimport fetch from 'node-fetch'\nimport middleware from './middleware.js'\nimport {\n  applyAsyncData,\n  middlewareSeries,\n  sanitizeComponent,\n  getMatchedComponents,\n  promisify\n} from './utils.js'\nimport fetchMixin from './mixins/fetch.server'\nimport { createApp, NuxtError } from './index.js'\nimport NuxtLink from './components/nuxt-link.server.js' // should be included after ./index.js\n\n// Update serverPrefetch strategy\nVue.config.optionMergeStrategies.serverPrefetch = Vue.config.optionMergeStrategies.created\n\n// Fetch mixin\nif (!Vue.__nuxt__fetch__mixin__) {\n  Vue.mixin(fetchMixin)\n  Vue.__nuxt__fetch__mixin__ = true\n}\n\n// Component: <NuxtLink>\nVue.component(NuxtLink.name, NuxtLink)\nVue.component('NLink', NuxtLink)\n\nif (!global.fetch) { global.fetch = fetch }\n\nconst noopApp = () => new Vue({ render: h => h('div', { domProps: { id: '__nuxt' } }) })\n\nconst createNext = ssrContext => (opts) => {\n  // If static target, render on client-side\n  ssrContext.redirected = opts\n  if (ssrContext.target === 'static' || !ssrContext.res) {\n    ssrContext.nuxt.serverRendered = false\n    return\n  }\n  let fullPath = withQuery(opts.path, opts.query)\n  const $config = ssrContext.runtimeConfig || {}\n  const routerBase = ($config._app && $config._app.basePath) || '/'\n  if (!fullPath.startsWith('http') && (routerBase !== '/' && !fullPath.startsWith(routerBase))) {\n    fullPath = joinURL(routerBase, fullPath)\n  }\n  // Avoid loop redirect\n  if (decodeURI(fullPath) === decodeURI(ssrContext.url)) {\n    ssrContext.redirected = false\n    return\n  }\n  ssrContext.res.writeHead(opts.status, {\n    Location: normalizeURL(fullPath)\n  })\n  ssrContext.res.end()\n}\n\n// This exported function will be called by `bundleRenderer`.\n// This is where we perform data-prefetching to determine the\n// state of our application before actually rendering it.\n// Since data fetching is async, this function is expected to\n// return a Promise that resolves to the app instance.\nexport default async (ssrContext) => {\n  // Create ssrContext.next for simulate next() of beforeEach() when wanted to redirect\n  ssrContext.redirected = false\n  ssrContext.next = createNext(ssrContext)\n  // Used for beforeNuxtRender({ Components, nuxtState })\n  ssrContext.beforeRenderFns = []\n  // Nuxt object (window.{{globals.context}}, defaults to window.__NUXT__)\n  ssrContext.nuxt = { layout: 'default', data: [], fetch: {}, error: null, state: null, serverRendered: true, routePath: '' }\n\n    ssrContext.fetchCounters = {}\n\n  // Remove query from url is static target\n\n  if (ssrContext.url) {\n    ssrContext.url = ssrContext.url.split('?')[0]\n  }\n\n  // Public runtime config\n  ssrContext.nuxt.config = ssrContext.runtimeConfig.public\n  if (ssrContext.nuxt.config._app) {\n    __webpack_public_path__ = joinURL(ssrContext.nuxt.config._app.cdnURL, ssrContext.nuxt.config._app.assetsPath)\n  }\n  // Create the app definition and the instance (created for each request)\n  const { app, router, store } = await createApp(ssrContext, ssrContext.runtimeConfig.private)\n  const _app = new Vue(app)\n  // Add ssr route path to nuxt context so we can account for page navigation between ssr and csr\n  ssrContext.nuxt.routePath = app.context.route.path\n\n  // Add meta infos (used in renderer.js)\n  ssrContext.meta = _app.$meta()\n\n  // Keep asyncData for each matched component in ssrContext (used in app/utils.js via this.$ssrContext)\n  ssrContext.asyncData = {}\n\n  const beforeRender = async () => {\n    // Call beforeNuxtRender() methods\n    await Promise.all(ssrContext.beforeRenderFns.map(fn => promisify(fn, { Components, nuxtState: ssrContext.nuxt })))\n\n    ssrContext.rendered = () => {\n      // Add the state from the vuex store\n      ssrContext.nuxt.state = store.state\n\n      // Stop recording store mutations\n      ssrContext.unsetMutationObserver()\n    }\n  }\n\n  const renderErrorPage = async () => {\n    // Don't server-render the page in static target\n    if (ssrContext.target === 'static') {\n      ssrContext.nuxt.serverRendered = false\n    }\n\n    // Load layout for error page\n    const layout = (NuxtError.options || NuxtError).layout\n    const errLayout = typeof layout === 'function' ? layout.call(NuxtError, app.context) : layout\n    ssrContext.nuxt.layout = errLayout || 'default'\n    await _app.loadLayout(errLayout)\n    _app.setLayout(errLayout)\n\n    await beforeRender()\n    return _app\n  }\n  const render404Page = () => {\n    app.context.error({ statusCode: 404, path: ssrContext.url, message: 'This page could not be found' })\n    return renderErrorPage()\n  }\n\n  // Components are already resolved by setContext -> getRouteData (app/utils.js)\n  const Components = getMatchedComponents(app.context.route)\n\n  /*\n  ** Dispatch store nuxtServerInit\n  */\n  if (store._actions && store._actions.nuxtServerInit) {\n    try {\n      await store.dispatch('nuxtServerInit', app.context)\n    } catch (err) {\n      console.debug('Error occurred when calling nuxtServerInit: ', err.message)\n      throw err\n    }\n  }\n  // ...If there is a redirect or an error, stop the process\n  if (ssrContext.redirected) {\n    return noopApp()\n  }\n  if (ssrContext.nuxt.error) {\n    return renderErrorPage()\n  }\n\n  /*\n  ** Call global middleware (nuxt.config.js)\n  */\n  let midd = [\"nuxti18n\"]\n  midd = midd.map((name) => {\n    if (typeof name === 'function') {\n      return name\n    }\n    if (typeof middleware[name] !== 'function') {\n      app.context.error({ statusCode: 500, message: 'Unknown middleware ' + name })\n    }\n    return middleware[name]\n  })\n  await middlewareSeries(midd, app.context)\n  // ...If there is a redirect or an error, stop the process\n  if (ssrContext.redirected) {\n    return noopApp()\n  }\n  if (ssrContext.nuxt.error) {\n    return renderErrorPage()\n  }\n\n  // Record store mutations for full-static after nuxtServerInit and Middleware\n  ssrContext.nuxt.mutations =[]\n  ssrContext.unsetMutationObserver = store.subscribe(m => { ssrContext.nuxt.mutations.push([m.type, m.payload]) })\n\n  /*\n  ** Set layout\n  */\n  let layout = Components.length ? Components[0].options.layout : NuxtError.layout\n  if (typeof layout === 'function') {\n    layout = layout(app.context)\n  }\n  await _app.loadLayout(layout)\n  if (ssrContext.nuxt.error) {\n    return renderErrorPage()\n  }\n  layout = _app.setLayout(layout)\n  ssrContext.nuxt.layout = _app.layoutName\n\n  /*\n  ** Call middleware (layout + pages)\n  */\n  midd = []\n\n  layout = sanitizeComponent(layout)\n  if (layout.options.middleware) {\n    midd = midd.concat(layout.options.middleware)\n  }\n\n  Components.forEach((Component) => {\n    if (Component.options.middleware) {\n      midd = midd.concat(Component.options.middleware)\n    }\n  })\n  midd = midd.map((name) => {\n    if (typeof name === 'function') {\n      return name\n    }\n    if (typeof middleware[name] !== 'function') {\n      app.context.error({ statusCode: 500, message: 'Unknown middleware ' + name })\n    }\n    return middleware[name]\n  })\n  await middlewareSeries(midd, app.context)\n  // ...If there is a redirect or an error, stop the process\n  if (ssrContext.redirected) {\n    return noopApp()\n  }\n  if (ssrContext.nuxt.error) {\n    return renderErrorPage()\n  }\n\n  /*\n  ** Call .validate()\n  */\n  let isValid = true\n  try {\n    for (const Component of Components) {\n      if (typeof Component.options.validate !== 'function') {\n        continue\n      }\n\n      isValid = await Component.options.validate(app.context)\n\n      if (!isValid) {\n        break\n      }\n    }\n  } catch (validationError) {\n    // ...If .validate() threw an error\n    app.context.error({\n      statusCode: validationError.statusCode || '500',\n      message: validationError.message\n    })\n    return renderErrorPage()\n  }\n\n  // ...If .validate() returned false\n  if (!isValid) {\n    // Render a 404 error page\n    return render404Page()\n  }\n\n  // If no Components found, returns 404\n  if (!Components.length) {\n    return render404Page()\n  }\n\n  // Call asyncData & fetch hooks on components matched by the route.\n  const asyncDatas = await Promise.all(Components.map((Component) => {\n    const promises = []\n\n    // Call asyncData(context)\n    if (Component.options.asyncData && typeof Component.options.asyncData === 'function') {\n      const promise = promisify(Component.options.asyncData, app.context)\n      promise.then((asyncDataResult) => {\n        ssrContext.asyncData[Component.cid] = asyncDataResult\n        applyAsyncData(Component)\n        return asyncDataResult\n      })\n      promises.push(promise)\n    } else {\n      promises.push(null)\n    }\n\n    // Call fetch(context)\n    if (Component.options.fetch && Component.options.fetch.length) {\n      promises.push(Component.options.fetch(app.context))\n    } else {\n      promises.push(null)\n    }\n\n    return Promise.all(promises)\n  }))\n\n  // datas are the first row of each\n  ssrContext.nuxt.data = asyncDatas.map(r => r[0] || {})\n\n  // ...If there is a redirect or an error, stop the process\n  if (ssrContext.redirected) {\n    return noopApp()\n  }\n  if (ssrContext.nuxt.error) {\n    return renderErrorPage()\n  }\n\n  // Call beforeNuxtRender methods & add store state\n  await beforeRender()\n\n  return _app\n}\n","module.exports = require(\"vue-slick-carousel\");","module.exports = require(\"@splidejs/splide\");","module.exports = require(\"vue-inner-image-zoom\");","module.exports = require(\"devalue\");"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnHA;;;;;;;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/FA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxcA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAOA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAMA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACpWA;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;ACnBA;;;;;;;ACAA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAGA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAGA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAIA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAUA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAIA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAOA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAYA;AACA;AAEA;AAGA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAOA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAIA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACh8BA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;;;;;;ACpIA;;;;;;;ACAA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;;;;;;;ACAA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;ACAA;AAEA;AACA;AAEA;;ACLA;AACA;AACA;AACA;AACA;AACA,aAKA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAMA;AACA;AACA;AACA;AACA;AACA;AACA,iBAEA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;;AC3mBA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AChEA;AAEA,aAgBA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3EA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAmBA;;AC5GA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAIA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxJA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;ACFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;;;;;ACFA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;AADA;AACA;AACA;;ACHA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;AADA;AACA;AACA;;ACHA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ATtBA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AUrDA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;ACFA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;ACFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;ACFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;AADA;AACA;AACA;;ACHA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ANtBA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AO5CA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ATtBA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AU5BA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AftBA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AgBVA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A9BtBA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A+BvBA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAAA;AAAA;AAEA;AACA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAKA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,iBAQA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA,mBASA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AC5PA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AC9HA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA,aAqBA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAgCA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AAEA;AACA,iBAeA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;;ACvOA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,eAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA,iBAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA,eAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;;;;;AC5NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA,qBASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AAAA;AACA,uBAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7PA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;;ACtNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACpDA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA,iBAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAAA;AAAA;AAEA,eAKA;AACA;;;;;;;;;;AChaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA,iBAEA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAEA;AACA;AAKA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,eAKA;AACA;AACA;AACA,eAKA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA,eAEA;AAEA,eAEA;AACA;AACA;AACA,eAIA;AACA;AACA;AACA;AACA;AACA,iBAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;;ACjTA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;;;;;AC9SA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;A","sourceRoot":""}

Youez - 2016 - github.com/yon3zu
LinuXploit