Welcome to mirror list, hosted at ThFree Co, Russian Federation.

settings-apps-settings-apps.js.map « dist - github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 45e87632b4149b3b975b9c191d4b08f6aa2cd77e (plain)
1
2
3
4
5
<<<<<<< HEAD
{"version":3,"file":"settings-apps-settings-apps.js?v=a5f2375a4af256153b26","sources":["webpack:///nextcloud/apps/settings/src/mixins/AppManagement.js","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/PrefixMixin.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/views/Apps.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue?vue&type=style&index=0&id=59a92e62&scoped=true&lang=scss&","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss&","webpack:///nextcloud/apps/settings/src/views/Apps.vue?vue&type=style&index=0&id=d3714d0a&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=css&","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?5e97","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?6cce","webpack://nextcloud/./apps/settings/src/views/Apps.vue?642f","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?9bb8","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue","webpack:///nextcloud/apps/settings/src/components/AppList.vue","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue","webpack:///nextcloud/apps/settings/src/components/Markdown.vue","webpack:///nextcloud/apps/settings/src/components/PrefixMixin.vue","webpack:///nextcloud/apps/settings/src/components/SvgFilterMixin.vue","webpack:///nextcloud/apps/settings/src/views/Apps.vue","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?9a02","webpack://nextcloud/./apps/settings/src/components/AppList.vue?a32f","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?32ec","webpack://nextcloud/./apps/settings/src/components/AppList/AppScore.vue?18e4","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?5ce2","webpack://nextcloud/./apps/settings/src/components/PrefixMixin.vue?c3f5","webpack://nextcloud/./apps/settings/src/components/SvgFilterMixin.vue?3cde","webpack://nextcloud/./apps/settings/src/views/Apps.vue?b34b","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue?vue&type=template&id=59a92e62&scoped=true&","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true&","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true&","webpack:///nextcloud/apps/settings/src/views/Apps.vue?vue&type=template&id=d3714d0a&scoped=true&"],"sourcesContent":["/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nexport default {\n  computed: {\n    appGroups: function appGroups() {\n      return this.app.groups.map(function (group) {\n        return {\n          id: group,\n          name: group\n        };\n      });\n    },\n    installing: function installing() {\n      return this.$store.getters.loading('install');\n    },\n    isLoading: function isLoading() {\n      return this.app && this.$store.getters.loading(this.app.id);\n    },\n    enableButtonText: function enableButtonText() {\n      if (this.app.needsDownload) {\n        return t('settings', 'Download and enable');\n      }\n\n      return t('settings', 'Enable');\n    },\n    forceEnableButtonText: function forceEnableButtonText() {\n      if (this.app.needsDownload) {\n        return t('settings', 'Enable untested app');\n      }\n\n      return t('settings', 'Enable untested app');\n    },\n    enableButtonTooltip: function enableButtonTooltip() {\n      if (this.app.needsDownload) {\n        return t('settings', 'The app will be downloaded from the App Store');\n      }\n\n      return false;\n    },\n    forceEnableButtonTooltip: function forceEnableButtonTooltip() {\n      var base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.');\n\n      if (this.app.needsDownload) {\n        return base + ' ' + t('settings', 'The app will be downloaded from the App Store');\n      }\n\n      return base;\n    }\n  },\n  data: function data() {\n    return {\n      groupCheckedAppsData: false\n    };\n  },\n  mounted: function mounted() {\n    if (this.app && this.app.groups && this.app.groups.length > 0) {\n      this.groupCheckedAppsData = true;\n    }\n  },\n  methods: {\n    asyncFindGroup: function asyncFindGroup(query) {\n      return this.$store.dispatch('getGroups', {\n        search: query,\n        limit: 5,\n        offset: 0\n      });\n    },\n    isLimitedToGroups: function isLimitedToGroups(app) {\n      if (this.app.groups.length || this.groupCheckedAppsData) {\n        return true;\n      }\n\n      return false;\n    },\n    setGroupLimit: function setGroupLimit() {\n      if (!this.groupCheckedAppsData) {\n        this.$store.dispatch('enableApp', {\n          appId: this.app.id,\n          groups: []\n        });\n      }\n    },\n    canLimitToGroups: function canLimitToGroups(app) {\n      if (app.types && app.types.includes('filesystem') || app.types.includes('prelogin') || app.types.includes('authentication') || app.types.includes('logging') || app.types.includes('prevent_group_restriction')) {\n        return false;\n      }\n\n      return true;\n    },\n    addGroupLimitation: function addGroupLimitation(group) {\n      var groups = this.app.groups.concat([]).concat([group.id]);\n      this.$store.dispatch('enableApp', {\n        appId: this.app.id,\n        groups: groups\n      });\n    },\n    removeGroupLimitation: function removeGroupLimitation(group) {\n      var currentGroups = this.app.groups.concat([]);\n      var index = currentGroups.indexOf(group.id);\n\n      if (index > -1) {\n        currentGroups.splice(index, 1);\n      }\n\n      this.$store.dispatch('enableApp', {\n        appId: this.app.id,\n        groups: currentGroups\n      });\n    },\n    forceEnable: function forceEnable(appId) {\n      this.$store.dispatch('forceEnableApp', {\n        appId: appId,\n        groups: []\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    enable: function enable(appId) {\n      this.$store.dispatch('enableApp', {\n        appId: appId,\n        groups: []\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    disable: function disable(appId) {\n      this.$store.dispatch('disableApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    remove: function remove(appId) {\n      this.$store.dispatch('uninstallApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    install: function install(appId) {\n      this.$store.dispatch('enableApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    update: function update(appId) {\n      this.$store.dispatch('updateApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport Multiselect from '@nextcloud/vue/dist/Components/Multiselect';\nimport AppManagement from '../mixins/AppManagement';\nimport PrefixMixin from './PrefixMixin';\nimport Markdown from './Markdown';\nexport default {\n  name: 'AppDetails',\n  components: {\n    Multiselect: Multiselect,\n    Markdown: Markdown\n  },\n  mixins: [AppManagement, PrefixMixin],\n  props: {\n    app: {\n      type: Object,\n      required: true\n    }\n  },\n  data: function data() {\n    return {\n      groupCheckedAppsData: false\n    };\n  },\n  computed: {\n    appstoreUrl: function appstoreUrl() {\n      return \"https://apps.nextcloud.com/apps/\".concat(this.app.id);\n    },\n    licence: function licence() {\n      if (this.app.licence) {\n        return t('settings', '{license}-licensed', {\n          license: ('' + this.app.licence).toUpperCase()\n        });\n      }\n\n      return null;\n    },\n    author: function author() {\n      if (typeof this.app.author === 'string') {\n        return [{\n          '@value': this.app.author\n        }];\n      }\n\n      if (this.app.author['@value']) {\n        return [this.app.author];\n      }\n\n      return this.app.author;\n    },\n    appGroups: function appGroups() {\n      return this.app.groups.map(function (group) {\n        return {\n          id: group,\n          name: group\n        };\n      });\n    },\n    groups: function groups() {\n      return this.$store.getters.getGroups.filter(function (group) {\n        return group.id !== 'disabled';\n      }).sort(function (a, b) {\n        return a.name.localeCompare(b.name);\n      });\n    }\n  },\n  mounted: function mounted() {\n    if (this.app.groups.length > 0) {\n      this.groupCheckedAppsData = true;\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport AppItem from './AppList/AppItem';\nimport PrefixMixin from './PrefixMixin';\nimport pLimit from 'p-limit';\nexport default {\n  name: 'AppList',\n  components: {\n    AppItem: AppItem\n  },\n  mixins: [PrefixMixin],\n  props: ['category', 'app', 'search'],\n  computed: {\n    counter: function counter() {\n      return this.apps.filter(function (app) {\n        return app.update;\n      }).length;\n    },\n    loading: function loading() {\n      return this.$store.getters.loading('list');\n    },\n    hasPendingUpdate: function hasPendingUpdate() {\n      return this.apps.filter(function (app) {\n        return app.update;\n      }).length > 1;\n    },\n    showUpdateAll: function showUpdateAll() {\n      return this.hasPendingUpdate && ['installed', 'updates'].includes(this.category);\n    },\n    apps: function apps() {\n      var _this = this;\n\n      var apps = this.$store.getters.getAllApps.filter(function (app) {\n        return app.name.toLowerCase().search(_this.search.toLowerCase()) !== -1;\n      }).sort(function (a, b) {\n        var sortStringA = '' + (a.active ? 0 : 1) + (a.update ? 0 : 1) + a.name;\n        var sortStringB = '' + (b.active ? 0 : 1) + (b.update ? 0 : 1) + b.name;\n        return OC.Util.naturalSortCompare(sortStringA, sortStringB);\n      });\n\n      if (this.category === 'installed') {\n        return apps.filter(function (app) {\n          return app.installed;\n        });\n      }\n\n      if (this.category === 'enabled') {\n        return apps.filter(function (app) {\n          return app.active && app.installed;\n        });\n      }\n\n      if (this.category === 'disabled') {\n        return apps.filter(function (app) {\n          return !app.active && app.installed;\n        });\n      }\n\n      if (this.category === 'app-bundles') {\n        return apps.filter(function (app) {\n          return app.bundles;\n        });\n      }\n\n      if (this.category === 'updates') {\n        return apps.filter(function (app) {\n          return app.update;\n        });\n      }\n\n      if (this.category === 'featured') {\n        return apps.filter(function (app) {\n          return app.level === 200;\n        });\n      } // filter app store categories\n\n\n      return apps.filter(function (app) {\n        return app.appstore && app.category !== undefined && (app.category === _this.category || app.category.indexOf(_this.category) > -1);\n      });\n    },\n    bundles: function bundles() {\n      var _this2 = this;\n\n      return this.$store.getters.getServerData.bundles.filter(function (bundle) {\n        return _this2.bundleApps(bundle.id).length > 0;\n      });\n    },\n    bundleApps: function bundleApps() {\n      return function (bundle) {\n        return this.$store.getters.getAllApps.filter(function (app) {\n          return app.bundleIds !== undefined && app.bundleIds.includes(bundle);\n        });\n      };\n    },\n    searchApps: function searchApps() {\n      var _this3 = this;\n\n      if (this.search === '') {\n        return [];\n      }\n\n      return this.$store.getters.getAllApps.filter(function (app) {\n        if (app.name.toLowerCase().search(_this3.search.toLowerCase()) !== -1) {\n          return !_this3.apps.find(function (_app) {\n            return _app.id === app.id;\n          });\n        }\n\n        return false;\n      });\n    },\n    useAppStoreView: function useAppStoreView() {\n      return !this.useListView && !this.useBundleView;\n    },\n    useListView: function useListView() {\n      return this.category === 'installed' || this.category === 'enabled' || this.category === 'disabled' || this.category === 'updates' || this.category === 'featured';\n    },\n    useBundleView: function useBundleView() {\n      return this.category === 'app-bundles';\n    },\n    allBundlesEnabled: function allBundlesEnabled() {\n      var self = this;\n      return function (id) {\n        return self.bundleApps(id).filter(function (app) {\n          return !app.active;\n        }).length === 0;\n      };\n    },\n    bundleToggleText: function bundleToggleText() {\n      var self = this;\n      return function (id) {\n        if (self.allBundlesEnabled(id)) {\n          return t('settings', 'Disable all');\n        }\n\n        return t('settings', 'Enable all');\n      };\n    }\n  },\n  methods: {\n    toggleBundle: function toggleBundle(id) {\n      if (this.allBundlesEnabled(id)) {\n        return this.disableBundle(id);\n      }\n\n      return this.enableBundle(id);\n    },\n    enableBundle: function enableBundle(id) {\n      var apps = this.bundleApps(id).map(function (app) {\n        return app.id;\n      });\n      this.$store.dispatch('enableApp', {\n        appId: apps,\n        groups: []\n      }).catch(function (error) {\n        console.error(error);\n        OC.Notification.show(error);\n      });\n    },\n    disableBundle: function disableBundle(id) {\n      var apps = this.bundleApps(id).map(function (app) {\n        return app.id;\n      });\n      this.$store.dispatch('disableApp', {\n        appId: apps,\n        groups: []\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    updateAll: function updateAll() {\n      var _this4 = this;\n\n      var limit = pLimit(1);\n      this.apps.filter(function (app) {\n        return app.update;\n      }).map(function (app) {\n        return limit(function () {\n          return _this4.$store.dispatch('updateApp', {\n            appId: app.id\n          });\n        });\n      });\n    }\n  }\n};","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport AppScore from './AppScore';\nimport AppManagement from '../../mixins/AppManagement';\nimport SvgFilterMixin from '../SvgFilterMixin';\nexport default {\n  name: 'AppItem',\n  components: {\n    AppScore: AppScore\n  },\n  mixins: [AppManagement, SvgFilterMixin],\n  props: {\n    app: {},\n    category: {},\n    listView: {\n      type: Boolean,\n      default: true\n    }\n  },\n  data: function data() {\n    return {\n      isSelected: false,\n      scrolled: false,\n      screenshotLoaded: false\n    };\n  },\n  computed: {\n    hasRating: function hasRating() {\n      return this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5;\n    }\n  },\n  watch: {\n    '$route.params.id': function $routeParamsId(id) {\n      this.isSelected = this.app.id === id;\n    }\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    this.isSelected = this.app.id === this.$route.params.id;\n\n    if (this.app.releases && this.app.screenshot) {\n      var image = new Image();\n\n      image.onload = function (e) {\n        _this.screenshotLoaded = true;\n      };\n\n      image.src = this.app.screenshot;\n    }\n  },\n  watchers: {},\n  methods: {\n    showAppDetails: function showAppDetails(event) {\n      var _this2 = this;\n\n      return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n        return regeneratorRuntime.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                if (!(event.currentTarget.tagName === 'INPUT' || event.currentTarget.tagName === 'A')) {\n                  _context.next = 2;\n                  break;\n                }\n\n                return _context.abrupt(\"return\");\n\n              case 2:\n                _context.prev = 2;\n                _context.next = 5;\n                return _this2.$router.push({\n                  name: 'apps-details',\n                  params: {\n                    category: _this2.category,\n                    id: _this2.app.id\n                  }\n                });\n\n              case 5:\n                _context.next = 9;\n                break;\n\n              case 7:\n                _context.prev = 7;\n                _context.t0 = _context[\"catch\"](2);\n\n              case 9:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, null, [[2, 7]]);\n      }))();\n    },\n    prefix: function prefix(_prefix, content) {\n      return _prefix + '_' + content;\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { imagePath } from '@nextcloud/router';\nexport default {\n  name: 'AppScore',\n  props: ['score'],\n  computed: {\n    scoreImage: function scoreImage() {\n      var score = Math.round(this.score * 10);\n      var imageName = 'rating/s' + score + '.svg';\n      return imagePath('core', imageName);\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { marked } from 'marked';\nimport dompurify from 'dompurify';\nexport default {\n  name: 'Markdown',\n  props: {\n    text: {\n      type: String,\n      default: ''\n    }\n  },\n  computed: {\n    renderMarkdown: function renderMarkdown() {\n      var renderer = new marked.Renderer();\n\n      renderer.link = function (href, title, text) {\n        var prot;\n\n        try {\n          prot = decodeURIComponent(unescape(href)).replace(/[^\\w:]/g, '').toLowerCase();\n        } catch (e) {\n          return '';\n        }\n\n        if (prot.indexOf('http:') !== 0 && prot.indexOf('https:') !== 0) {\n          return '';\n        }\n\n        var out = '<a href=\"' + href + '\" rel=\"noreferrer noopener\"';\n\n        if (title) {\n          out += ' title=\"' + title + '\"';\n        }\n\n        out += '>' + text + '</a>';\n        return out;\n      };\n\n      renderer.image = function (href, title, text) {\n        if (text) {\n          return text;\n        }\n\n        return title;\n      };\n\n      renderer.blockquote = function (quote) {\n        return quote;\n      };\n\n      return dompurify.sanitize(marked(this.text.trim(), {\n        renderer: renderer,\n        gfm: false,\n        highlight: false,\n        tables: false,\n        breaks: false,\n        pedantic: false,\n        sanitize: true,\n        smartLists: true,\n        smartypants: false\n      }), {\n        SAFE_FOR_JQUERY: true,\n        ALLOWED_TAGS: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'strong', 'p', 'a', 'ul', 'ol', 'li', 'em', 'del', 'blockquote']\n      });\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nexport default {\n  name: 'PrefixMixin',\n  methods: {\n    prefix: function prefix(_prefix, content) {\n      return _prefix + '_' + content;\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nexport default {\n  name: 'SvgFilterMixin',\n  data: function data() {\n    return {\n      filterId: ''\n    };\n  },\n  computed: {\n    filterUrl: function filterUrl() {\n      return \"url(#\".concat(this.filterId, \")\");\n    }\n  },\n  mounted: function mounted() {\n    this.filterId = 'invertIconApps' + Math.floor(Math.random() * 100) + new Date().getSeconds() + new Date().getMilliseconds();\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus';\nimport Vue from 'vue';\nimport VueLocalStorage from 'vue-localstorage';\nimport AppContent from '@nextcloud/vue/dist/Components/AppContent';\nimport AppNavigation from '@nextcloud/vue/dist/Components/AppNavigation';\nimport AppNavigationCounter from '@nextcloud/vue/dist/Components/AppNavigationCounter';\nimport AppNavigationItem from '@nextcloud/vue/dist/Components/AppNavigationItem';\nimport AppNavigationSpacer from '@nextcloud/vue/dist/Components/AppNavigationSpacer';\nimport AppSidebar from '@nextcloud/vue/dist/Components/AppSidebar';\nimport AppSidebarTab from '@nextcloud/vue/dist/Components/AppSidebarTab';\nimport Content from '@nextcloud/vue/dist/Components/Content';\nimport AppList from '../components/AppList';\nimport AppDetails from '../components/AppDetails';\nimport AppManagement from '../mixins/AppManagement';\nimport AppScore from '../components/AppList/AppScore';\nimport Markdown from '../components/Markdown';\nVue.use(VueLocalStorage);\nexport default {\n  name: 'Apps',\n  components: {\n    AppContent: AppContent,\n    AppDetails: AppDetails,\n    AppList: AppList,\n    AppNavigation: AppNavigation,\n    AppNavigationCounter: AppNavigationCounter,\n    AppNavigationItem: AppNavigationItem,\n    AppNavigationSpacer: AppNavigationSpacer,\n    AppScore: AppScore,\n    AppSidebar: AppSidebar,\n    AppSidebarTab: AppSidebarTab,\n    Content: Content,\n    Markdown: Markdown\n  },\n  mixins: [AppManagement],\n  props: {\n    category: {\n      type: String,\n      default: 'installed'\n    },\n    id: {\n      type: String,\n      default: ''\n    }\n  },\n  data: function data() {\n    return {\n      searchQuery: '',\n      screenshotLoaded: false\n    };\n  },\n  computed: {\n    loading: function loading() {\n      return this.$store.getters.loading('categories');\n    },\n    loadingList: function loadingList() {\n      return this.$store.getters.loading('list');\n    },\n    app: function app() {\n      var _this = this;\n\n      return this.apps.find(function (app) {\n        return app.id === _this.id;\n      });\n    },\n    categories: function categories() {\n      return this.$store.getters.getCategories;\n    },\n    apps: function apps() {\n      return this.$store.getters.getAllApps;\n    },\n    updateCount: function updateCount() {\n      return this.$store.getters.getUpdateCount;\n    },\n    settings: function settings() {\n      return this.$store.getters.getServerData;\n    },\n    hasRating: function hasRating() {\n      return this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5;\n    },\n    // sidebar app binding\n    appSidebar: function appSidebar() {\n      var authorName = function authorName(xmlNode) {\n        if (xmlNode['@value']) {\n          // Complex node (with email or homepage attribute)\n          return xmlNode['@value'];\n        } // Simple text node\n\n\n        return xmlNode;\n      };\n\n      var author = Array.isArray(this.app.author) ? this.app.author.map(authorName).join(', ') : authorName(this.app.author);\n      var license = t('settings', '{license}-licensed', {\n        license: ('' + this.app.licence).toUpperCase()\n      });\n      var subtitle = t('settings', 'by {author}\\n{license}', {\n        author: author,\n        license: license\n      });\n      return {\n        subtitle: subtitle,\n        background: this.app.screenshot && this.screenshotLoaded ? this.app.screenshot : this.app.preview,\n        compact: !(this.app.screenshot && this.screenshotLoaded),\n        title: this.app.name\n      };\n    },\n    changelog: function changelog() {\n      return function (release) {\n        return release.translations.en.changelog;\n      };\n    }\n  },\n  watch: {\n    category: function category() {\n      this.searchQuery = '';\n    },\n    app: function app() {\n      var _this$app,\n          _this$app2,\n          _this2 = this;\n\n      this.screenshotLoaded = false;\n\n      if ((_this$app = this.app) !== null && _this$app !== void 0 && _this$app.releases && (_this$app2 = this.app) !== null && _this$app2 !== void 0 && _this$app2.screenshot) {\n        var image = new Image();\n\n        image.onload = function (e) {\n          _this2.screenshotLoaded = true;\n        };\n\n        image.src = this.app.screenshot;\n      }\n    }\n  },\n  beforeMount: function beforeMount() {\n    this.$store.dispatch('getCategories');\n    this.$store.dispatch('getAllApps');\n    this.$store.dispatch('getGroups', {\n      offset: 0,\n      limit: 5\n    });\n    this.$store.commit('setUpdateCount', this.$store.getters.getServerData.updateCount);\n  },\n  mounted: function mounted() {\n    subscribe('nextcloud:unified-search.search', this.setSearch);\n    subscribe('nextcloud:unified-search.reset', this.resetSearch);\n  },\n  beforeDestroy: function beforeDestroy() {\n    unsubscribe('nextcloud:unified-search.search', this.setSearch);\n    unsubscribe('nextcloud:unified-search.reset', this.resetSearch);\n  },\n  methods: {\n    setSearch: function setSearch(_ref) {\n      var query = _ref.query;\n      this.searchQuery = query;\n    },\n    resetSearch: function resetSearch() {\n      this.searchQuery = '';\n    },\n    hideAppDetails: function hideAppDetails() {\n      this.$router.push({\n        name: 'apps-category',\n        params: {\n          category: this.category\n        }\n      });\n    }\n  }\n};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-details[data-v-59a92e62] {\\n  padding: 20px;\\n}\\n.app-details__actions-manage[data-v-59a92e62] {\\n  display: flex;\\n}\\n.app-details__actions-manage input[data-v-59a92e62] {\\n  flex: 0 1 auto;\\n  min-width: 0;\\n  text-overflow: ellipsis;\\n  white-space: nowrap;\\n  overflow: hidden;\\n}\\n.app-details__dependencies[data-v-59a92e62] {\\n  opacity: 0.7;\\n}\\n.app-details__documentation[data-v-59a92e62] {\\n  padding-top: 20px;\\n}\\n.app-details__description[data-v-59a92e62] {\\n  padding-top: 20px;\\n}\\n.force[data-v-59a92e62] {\\n  color: var(--color-error);\\n  border-color: var(--color-error);\\n  background: var(--color-main-background);\\n}\\n.force[data-v-59a92e62]:hover,\\n.force[data-v-59a92e62]:active {\\n  color: var(--color-main-background);\\n  border-color: var(--color-error) !important;\\n  background: var(--color-error);\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".settings-markdown[data-v-11f4a1b0] h1,\\n.settings-markdown[data-v-11f4a1b0] h2,\\n.settings-markdown[data-v-11f4a1b0] h3,\\n.settings-markdown[data-v-11f4a1b0] h4,\\n.settings-markdown[data-v-11f4a1b0] h5,\\n.settings-markdown[data-v-11f4a1b0] h6 {\\n  font-weight: 600;\\n  line-height: 120%;\\n  margin-top: 24px;\\n  margin-bottom: 12px;\\n  color: var(--color-main-text);\\n}\\n.settings-markdown[data-v-11f4a1b0] h1 {\\n  font-size: 36px;\\n  margin-top: 48px;\\n}\\n.settings-markdown[data-v-11f4a1b0] h2 {\\n  font-size: 28px;\\n  margin-top: 48px;\\n}\\n.settings-markdown[data-v-11f4a1b0] h3 {\\n  font-size: 24px;\\n}\\n.settings-markdown[data-v-11f4a1b0] h4 {\\n  font-size: 21px;\\n}\\n.settings-markdown[data-v-11f4a1b0] h5 {\\n  font-size: 17px;\\n}\\n.settings-markdown[data-v-11f4a1b0] h6 {\\n  font-size: var(--default-font-size);\\n}\\n.settings-markdown[data-v-11f4a1b0] pre {\\n  white-space: pre;\\n  overflow-x: auto;\\n  background-color: var(--color-background-dark);\\n  border-radius: var(--border-radius);\\n  padding: 1em 1.3em;\\n  margin-bottom: 1em;\\n}\\n.settings-markdown[data-v-11f4a1b0] p code {\\n  background-color: var(--color-background-dark);\\n  border-radius: var(--border-radius);\\n  padding: 0.1em 0.3em;\\n}\\n.settings-markdown[data-v-11f4a1b0] li {\\n  position: relative;\\n}\\n.settings-markdown[data-v-11f4a1b0] ul, .settings-markdown[data-v-11f4a1b0] ol {\\n  padding-left: 10px;\\n  margin-left: 10px;\\n}\\n.settings-markdown[data-v-11f4a1b0] ul li {\\n  list-style-type: disc;\\n}\\n.settings-markdown[data-v-11f4a1b0] ul > li > ul > li {\\n  list-style-type: circle;\\n}\\n.settings-markdown[data-v-11f4a1b0] ul > li > ul > li ul li {\\n  list-style-type: square;\\n}\\n.settings-markdown[data-v-11f4a1b0] blockquote {\\n  padding-left: 1em;\\n  border-left: 4px solid var(--color-primary-element);\\n  color: var(--color-text-maxcontrast);\\n  margin-left: 0;\\n  margin-right: 0;\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-sidebar[data-v-d3714d0a]:not(.app-sidebar--without-background) :not(.app-sidebar-header--compact) .app-sidebar-header__figure {\\n  background-size: cover;\\n}\\n.app-sidebar[data-v-d3714d0a]:not(.app-sidebar--without-background) .app-sidebar-header--compact .app-sidebar-header__figure {\\n  background-size: 32px;\\n  filter: invert(1);\\n}\\n.app-sidebar[data-v-d3714d0a].app-sidebar--without-background .app-sidebar-header__figure {\\n  display: flex;\\n  align-items: center;\\n  justify-content: center;\\n}\\n.app-sidebar[data-v-d3714d0a].app-sidebar--without-background .app-sidebar-header__figure--default-app-icon {\\n  width: 32px;\\n  height: 32px;\\n  background-size: 32px;\\n}\\n.app-sidebar[data-v-d3714d0a] .app-sidebar-header__desc .app-sidebar-header__subtitle {\\n  overflow: visible !important;\\n  height: auto;\\n  white-space: normal !important;\\n  line-height: 16px;\\n}\\n.app-sidebar[data-v-d3714d0a] .app-sidebar-header__action {\\n  margin: 0 20px;\\n}\\n.app-sidebar[data-v-d3714d0a] .app-sidebar-header__action input {\\n  margin: 3px;\\n}\\n.app-sidebar-tabs__release h2[data-v-d3714d0a] {\\n  border-bottom: 1px solid var(--color-border);\\n}\\n.app-sidebar-tabs__release[data-v-d3714d0a]  h3 {\\n  font-size: 20px;\\n}\\n.app-sidebar-tabs__release[data-v-d3714d0a]  h4 {\\n  font-size: 17px;\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.force[data-v-429da85a] {\\n\\tbackground: var(--color-main-background);\\n\\tborder-color: var(--color-error);\\n\\tcolor: var(--color-error);\\n}\\n.force[data-v-429da85a]:hover,\\n.force[data-v-429da85a]:active {\\n\\tbackground: var(--color-error);\\n\\tborder-color: var(--color-error) !important;\\n\\tcolor: var(--color-main-background);\\n}\\n\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetails.vue?vue&type=style&index=0&id=59a92e62&scoped=true&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Apps.vue?vue&type=style&index=0&id=d3714d0a&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=css&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./AppDetails.vue?vue&type=template&id=59a92e62&scoped=true&\"\nimport script from \"./AppDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./AppDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppDetails.vue?vue&type=style&index=0&id=59a92e62&scoped=true&lang=scss&\"\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  null,\n  \"59a92e62\",\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/srv/www/htdocs/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('59a92e62')) {\n      api.createRecord('59a92e62', component.options)\n    } else {\n      api.reload('59a92e62', component.options)\n    }\n    module.hot.accept(\"./AppDetails.vue?vue&type=template&id=59a92e62&scoped=true&\", function () {\n      api.rerender('59a92e62', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppDetails.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./AppList.vue?vue&type=template&id=6d1e92a4&\"\nimport script from \"./AppList.vue?vue&type=script&lang=js&\"\nexport * from \"./AppList.vue?vue&type=script&lang=js&\"\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  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/srv/www/htdocs/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('6d1e92a4')) {\n      api.createRecord('6d1e92a4', component.options)\n    } else {\n      api.reload('6d1e92a4', component.options)\n    }\n    module.hot.accept(\"./AppList.vue?vue&type=template&id=6d1e92a4&\", function () {\n      api.rerender('6d1e92a4', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppList.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./AppItem.vue?vue&type=template&id=429da85a&scoped=true&\"\nimport script from \"./AppItem.vue?vue&type=script&lang=js&\"\nexport * from \"./AppItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=css&\"\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  null,\n  \"429da85a\",\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/srv/www/htdocs/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('429da85a')) {\n      api.createRecord('429da85a', component.options)\n    } else {\n      api.reload('429da85a', component.options)\n    }\n    module.hot.accept(\"./AppItem.vue?vue&type=template&id=429da85a&scoped=true&\", function () {\n      api.rerender('429da85a', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppList/AppItem.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./AppScore.vue?vue&type=template&id=0ecce4fc&\"\nimport script from \"./AppScore.vue?vue&type=script&lang=js&\"\nexport * from \"./AppScore.vue?vue&type=script&lang=js&\"\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  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/srv/www/htdocs/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('0ecce4fc')) {\n      api.createRecord('0ecce4fc', component.options)\n    } else {\n      api.reload('0ecce4fc', component.options)\n    }\n    module.hot.accept(\"./AppScore.vue?vue&type=template&id=0ecce4fc&\", function () {\n      api.rerender('0ecce4fc', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppList/AppScore.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true&\"\nimport script from \"./Markdown.vue?vue&type=script&lang=js&\"\nexport * from \"./Markdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss&\"\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  null,\n  \"11f4a1b0\",\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/srv/www/htdocs/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('11f4a1b0')) {\n      api.createRecord('11f4a1b0', component.options)\n    } else {\n      api.reload('11f4a1b0', component.options)\n    }\n    module.hot.accept(\"./Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true&\", function () {\n      api.rerender('11f4a1b0', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/Markdown.vue\"\nexport default component.exports","var render, staticRenderFns\nimport script from \"./PrefixMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./PrefixMixin.vue?vue&type=script&lang=js&\"\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  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/srv/www/htdocs/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('b4ed0c44')) {\n      api.createRecord('b4ed0c44', component.options)\n    } else {\n      api.reload('b4ed0c44', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/PrefixMixin.vue\"\nexport default component.exports","var render, staticRenderFns\nimport script from \"./SvgFilterMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./SvgFilterMixin.vue?vue&type=script&lang=js&\"\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  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/srv/www/htdocs/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('9219d434')) {\n      api.createRecord('9219d434', component.options)\n    } else {\n      api.reload('9219d434', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/SvgFilterMixin.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Apps.vue?vue&type=template&id=d3714d0a&scoped=true&\"\nimport script from \"./Apps.vue?vue&type=script&lang=js&\"\nexport * from \"./Apps.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Apps.vue?vue&type=style&index=0&id=d3714d0a&lang=scss&scoped=true&\"\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  null,\n  \"d3714d0a\",\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/srv/www/htdocs/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('d3714d0a')) {\n      api.createRecord('d3714d0a', component.options)\n    } else {\n      api.reload('d3714d0a', component.options)\n    }\n    module.hot.accept(\"./Apps.vue?vue&type=template&id=d3714d0a&scoped=true&\", function () {\n      api.rerender('d3714d0a', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/views/Apps.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetails.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrefixMixin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrefixMixin.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgFilterMixin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgFilterMixin.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Apps.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Apps.vue?vue&type=script&lang=js&\"","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    { staticClass: \"app-details\" },\n    [\n      _c(\"div\", { staticClass: \"app-details__actions\" }, [\n        _vm.app.active && _vm.canLimitToGroups(_vm.app)\n          ? _c(\n              \"div\",\n              { staticClass: \"app-details__actions-groups\" },\n              [\n                _c(\"input\", {\n                  directives: [\n                    {\n                      name: \"model\",\n                      rawName: \"v-model\",\n                      value: _vm.groupCheckedAppsData,\n                      expression: \"groupCheckedAppsData\",\n                    },\n                  ],\n                  staticClass: \"groups-enable__checkbox checkbox\",\n                  attrs: {\n                    id: _vm.prefix(\"groups_enable\", _vm.app.id),\n                    type: \"checkbox\",\n                  },\n                  domProps: {\n                    value: _vm.app.id,\n                    checked: Array.isArray(_vm.groupCheckedAppsData)\n                      ? _vm._i(_vm.groupCheckedAppsData, _vm.app.id) > -1\n                      : _vm.groupCheckedAppsData,\n                  },\n                  on: {\n                    change: [\n                      function ($event) {\n                        var $$a = _vm.groupCheckedAppsData,\n                          $$el = $event.target,\n                          $$c = $$el.checked ? true : false\n                        if (Array.isArray($$a)) {\n                          var $$v = _vm.app.id,\n                            $$i = _vm._i($$a, $$v)\n                          if ($$el.checked) {\n                            $$i < 0 &&\n                              (_vm.groupCheckedAppsData = $$a.concat([$$v]))\n                          } else {\n                            $$i > -1 &&\n                              (_vm.groupCheckedAppsData = $$a\n                                .slice(0, $$i)\n                                .concat($$a.slice($$i + 1)))\n                          }\n                        } else {\n                          _vm.groupCheckedAppsData = $$c\n                        }\n                      },\n                      _vm.setGroupLimit,\n                    ],\n                  },\n                }),\n                _vm._v(\" \"),\n                _c(\n                  \"label\",\n                  { attrs: { for: _vm.prefix(\"groups_enable\", _vm.app.id) } },\n                  [_vm._v(_vm._s(_vm.t(\"settings\", \"Limit to groups\")))]\n                ),\n                _vm._v(\" \"),\n                _c(\"input\", {\n                  staticClass: \"group_select\",\n                  attrs: {\n                    type: \"hidden\",\n                    title: _vm.t(\"settings\", \"All\"),\n                    value: \"\",\n                  },\n                }),\n                _vm._v(\" \"),\n                _vm.isLimitedToGroups(_vm.app)\n                  ? _c(\n                      \"Multiselect\",\n                      {\n                        staticClass: \"multiselect-vue\",\n                        attrs: {\n                          options: _vm.groups,\n                          value: _vm.appGroups,\n                          \"options-limit\": 5,\n                          placeholder: _vm.t(\n                            \"settings\",\n                            \"Limit app usage to groups\"\n                          ),\n                          label: \"name\",\n                          \"track-by\": \"id\",\n                          multiple: true,\n                          \"close-on-select\": false,\n                          \"tag-width\": 60,\n                        },\n                        on: {\n                          select: _vm.addGroupLimitation,\n                          remove: _vm.removeGroupLimitation,\n                          \"search-change\": _vm.asyncFindGroup,\n                        },\n                      },\n                      [\n                        _c(\n                          \"span\",\n                          { attrs: { slot: \"noResult\" }, slot: \"noResult\" },\n                          [_vm._v(_vm._s(_vm.t(\"settings\", \"No results\")))]\n                        ),\n                      ]\n                    )\n                  : _vm._e(),\n              ],\n              1\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _c(\"div\", { staticClass: \"app-details__actions-manage\" }, [\n          _vm.app.update\n            ? _c(\"input\", {\n                staticClass: \"update primary\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.t(\"settings\", \"Update to {version}\", {\n                    version: _vm.app.update,\n                  }),\n                  disabled: _vm.installing || _vm.isLoading,\n                },\n                on: {\n                  click: function ($event) {\n                    return _vm.update(_vm.app.id)\n                  },\n                },\n              })\n            : _vm._e(),\n          _vm._v(\" \"),\n          _vm.app.canUnInstall\n            ? _c(\"input\", {\n                staticClass: \"uninstall\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.t(\"settings\", \"Remove\"),\n                  disabled: _vm.installing || _vm.isLoading,\n                },\n                on: {\n                  click: function ($event) {\n                    return _vm.remove(_vm.app.id)\n                  },\n                },\n              })\n            : _vm._e(),\n          _vm._v(\" \"),\n          _vm.app.active\n            ? _c(\"input\", {\n                staticClass: \"enable\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.t(\"settings\", \"Disable\"),\n                  disabled: _vm.installing || _vm.isLoading,\n                },\n                on: {\n                  click: function ($event) {\n                    return _vm.disable(_vm.app.id)\n                  },\n                },\n              })\n            : _vm._e(),\n          _vm._v(\" \"),\n          !_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible)\n            ? _c(\"input\", {\n                directives: [\n                  {\n                    name: \"tooltip\",\n                    rawName: \"v-tooltip.auto\",\n                    value: _vm.enableButtonTooltip,\n                    expression: \"enableButtonTooltip\",\n                    modifiers: { auto: true },\n                  },\n                ],\n                staticClass: \"enable primary\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.enableButtonText,\n                  disabled:\n                    !_vm.app.canInstall || _vm.installing || _vm.isLoading,\n                },\n                on: {\n                  click: function ($event) {\n                    return _vm.enable(_vm.app.id)\n                  },\n                },\n              })\n            : !_vm.app.active && !_vm.app.canInstall\n            ? _c(\"input\", {\n                directives: [\n                  {\n                    name: \"tooltip\",\n                    rawName: \"v-tooltip.auto\",\n                    value: _vm.forceEnableButtonTooltip,\n                    expression: \"forceEnableButtonTooltip\",\n                    modifiers: { auto: true },\n                  },\n                ],\n                staticClass: \"enable force\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.forceEnableButtonText,\n                  disabled: _vm.installing || _vm.isLoading,\n                },\n                on: {\n                  click: function ($event) {\n                    return _vm.forceEnable(_vm.app.id)\n                  },\n                },\n              })\n            : _vm._e(),\n        ]),\n      ]),\n      _vm._v(\" \"),\n      _c(\"ul\", { staticClass: \"app-details__dependencies\" }, [\n        _vm.app.missingMinOwnCloudVersion\n          ? _c(\"li\", [\n              _vm._v(\n                \"\\n\\t\\t\\t\" +\n                  _vm._s(\n                    _vm.t(\n                      \"settings\",\n                      \"This app has no minimum Nextcloud version assigned. This will be an error in the future.\"\n                    )\n                  ) +\n                  \"\\n\\t\\t\"\n              ),\n            ])\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.missingMaxOwnCloudVersion\n          ? _c(\"li\", [\n              _vm._v(\n                \"\\n\\t\\t\\t\" +\n                  _vm._s(\n                    _vm.t(\n                      \"settings\",\n                      \"This app has no maximum Nextcloud version assigned. This will be an error in the future.\"\n                    )\n                  ) +\n                  \"\\n\\t\\t\"\n              ),\n            ])\n          : _vm._e(),\n        _vm._v(\" \"),\n        !_vm.app.canInstall\n          ? _c(\"li\", [\n              _vm._v(\n                \"\\n\\t\\t\\t\" +\n                  _vm._s(\n                    _vm.t(\n                      \"settings\",\n                      \"This app cannot be installed because the following dependencies are not fulfilled:\"\n                    )\n                  ) +\n                  \"\\n\\t\\t\\t\"\n              ),\n              _c(\n                \"ul\",\n                { staticClass: \"missing-dependencies\" },\n                _vm._l(_vm.app.missingDependencies, function (dep, index) {\n                  return _c(\"li\", { key: index }, [\n                    _vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(dep) + \"\\n\\t\\t\\t\\t\"),\n                  ])\n                }),\n                0\n              ),\n            ])\n          : _vm._e(),\n      ]),\n      _vm._v(\" \"),\n      _c(\"p\", { staticClass: \"app-details__documentation\" }, [\n        !_vm.app.internal\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.appstoreUrl,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"View in store\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.website\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.website,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"Visit website\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.bugs\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.bugs,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"Report a bug\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.documentation && _vm.app.documentation.user\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.documentation.user,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"User documentation\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.documentation && _vm.app.documentation.admin\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.documentation.admin,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"Admin documentation\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.documentation && _vm.app.documentation.developer\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.documentation.developer,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [\n                _vm._v(\n                  _vm._s(_vm.t(\"settings\", \"Developer documentation\")) + \" ↗\"\n                ),\n              ]\n            )\n          : _vm._e(),\n      ]),\n      _vm._v(\" \"),\n      _c(\"Markdown\", {\n        staticClass: \"app-details__description\",\n        attrs: { text: _vm.app.description },\n      }),\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", { attrs: { id: \"app-content-inner\" } }, [\n    _c(\n      \"div\",\n      {\n        staticClass: \"apps-list\",\n        class: {\n          installed: _vm.useBundleView || _vm.useListView,\n          store: _vm.useAppStoreView,\n        },\n        attrs: { id: \"apps-list\" },\n      },\n      [\n        _vm.useListView\n          ? [\n              _vm.showUpdateAll\n                ? _c(\"div\", { staticClass: \"counter\" }, [\n                    _vm._v(\n                      \"\\n\\t\\t\\t\\t\" +\n                        _vm._s(\n                          _vm.n(\n                            \"settings\",\n                            \"%n app has an update available\",\n                            \"%n apps have an update available\",\n                            _vm.counter\n                          )\n                        ) +\n                        \"\\n\\t\\t\\t\\t\"\n                    ),\n                    _vm.showUpdateAll\n                      ? _c(\n                          \"button\",\n                          {\n                            staticClass: \"primary\",\n                            attrs: { id: \"app-list-update-all\" },\n                            on: { click: _vm.updateAll },\n                          },\n                          [\n                            _vm._v(\n                              \"\\n\\t\\t\\t\\t\\t\" +\n                                _vm._s(_vm.t(\"settings\", \"Update all\")) +\n                                \"\\n\\t\\t\\t\\t\"\n                            ),\n                          ]\n                        )\n                      : _vm._e(),\n                  ])\n                : _vm._e(),\n              _vm._v(\" \"),\n              _c(\n                \"transition-group\",\n                {\n                  staticClass: \"apps-list-container\",\n                  attrs: { name: \"app-list\", tag: \"div\" },\n                },\n                _vm._l(_vm.apps, function (app) {\n                  return _c(\"AppItem\", {\n                    key: app.id,\n                    attrs: { app: app, category: _vm.category },\n                  })\n                }),\n                1\n              ),\n            ]\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.useBundleView\n          ? _c(\n              \"transition-group\",\n              {\n                staticClass: \"apps-list-container\",\n                attrs: { name: \"app-list\", tag: \"div\" },\n              },\n              [\n                _vm._l(_vm.bundles, function (bundle) {\n                  return [\n                    _c(\"div\", { key: bundle.id, staticClass: \"apps-header\" }, [\n                      _c(\"div\", { staticClass: \"app-image\" }),\n                      _vm._v(\" \"),\n                      _c(\"h2\", [\n                        _vm._v(_vm._s(bundle.name) + \" \"),\n                        _c(\"input\", {\n                          attrs: {\n                            type: \"button\",\n                            value: _vm.bundleToggleText(bundle.id),\n                          },\n                          on: {\n                            click: function ($event) {\n                              return _vm.toggleBundle(bundle.id)\n                            },\n                          },\n                        }),\n                      ]),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"app-version\" }),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"app-level\" }),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"app-groups\" }),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"actions\" }, [\n                        _vm._v(\"\\n\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\"),\n                      ]),\n                    ]),\n                    _vm._v(\" \"),\n                    _vm._l(_vm.bundleApps(bundle.id), function (app) {\n                      return _c(\"AppItem\", {\n                        key: bundle.id + app.id,\n                        attrs: { app: app, category: _vm.category },\n                      })\n                    }),\n                  ]\n                }),\n              ],\n              2\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.useAppStoreView\n          ? _vm._l(_vm.apps, function (app) {\n              return _c(\"AppItem\", {\n                key: app.id,\n                attrs: { app: app, category: _vm.category, \"list-view\": false },\n              })\n            })\n          : _vm._e(),\n      ],\n      2\n    ),\n    _vm._v(\" \"),\n    _c(\n      \"div\",\n      { staticClass: \"apps-list installed\", attrs: { id: \"apps-list-search\" } },\n      [\n        _c(\n          \"div\",\n          { staticClass: \"apps-list-container\" },\n          [\n            _vm.search !== \"\" && _vm.searchApps.length > 0\n              ? [\n                  _c(\"div\", { staticClass: \"section\" }, [\n                    _c(\"div\"),\n                    _vm._v(\" \"),\n                    _c(\"td\", { attrs: { colspan: \"5\" } }, [\n                      _c(\"h2\", [\n                        _vm._v(\n                          _vm._s(\n                            _vm.t(\"settings\", \"Results from other categories\")\n                          )\n                        ),\n                      ]),\n                    ]),\n                  ]),\n                  _vm._v(\" \"),\n                  _vm._l(_vm.searchApps, function (app) {\n                    return _c(\"AppItem\", {\n                      key: app.id,\n                      attrs: {\n                        app: app,\n                        category: _vm.category,\n                        \"list-view\": true,\n                      },\n                    })\n                  }),\n                ]\n              : _vm._e(),\n          ],\n          2\n        ),\n      ]\n    ),\n    _vm._v(\" \"),\n    _vm.search !== \"\" &&\n    !_vm.loading &&\n    _vm.searchApps.length === 0 &&\n    _vm.apps.length === 0\n      ? _c(\n          \"div\",\n          {\n            staticClass: \"emptycontent emptycontent-search\",\n            attrs: { id: \"apps-list-empty\" },\n          },\n          [\n            _c(\"div\", {\n              staticClass: \"icon-settings-dark\",\n              attrs: { id: \"app-list-empty-icon\" },\n            }),\n            _vm._v(\" \"),\n            _c(\"h2\", [\n              _vm._v(\n                _vm._s(_vm.t(\"settings\", \"No apps found for your version\"))\n              ),\n            ]),\n          ]\n        )\n      : _vm._e(),\n    _vm._v(\" \"),\n    _c(\"div\", { attrs: { id: \"searchresults\" } }),\n  ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    {\n      staticClass: \"section\",\n      class: { selected: _vm.isSelected },\n      on: { click: _vm.showAppDetails },\n    },\n    [\n      _c(\n        \"div\",\n        {\n          staticClass: \"app-image app-image-icon\",\n          on: { click: _vm.showAppDetails },\n        },\n        [\n          (_vm.listView && !_vm.app.preview) ||\n          (!_vm.listView && !_vm.screenshotLoaded)\n            ? _c(\"div\", { staticClass: \"icon-settings-dark\" })\n            : _vm.listView && _vm.app.preview\n            ? _c(\n                \"svg\",\n                { attrs: { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\" } },\n                [\n                  _c(\"defs\", [\n                    _c(\n                      \"filter\",\n                      { attrs: { id: _vm.filterId } },\n                      [\n                        _c(\"feColorMatrix\", {\n                          attrs: {\n                            in: \"SourceGraphic\",\n                            type: \"matrix\",\n                            values:\n                              \"-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0\",\n                          },\n                        }),\n                      ],\n                      1\n                    ),\n                  ]),\n                  _vm._v(\" \"),\n                  _c(\"image\", {\n                    staticClass: \"app-icon\",\n                    attrs: {\n                      x: \"0\",\n                      y: \"0\",\n                      width: \"32\",\n                      height: \"32\",\n                      preserveAspectRatio: \"xMinYMin meet\",\n                      filter: _vm.filterUrl,\n                      \"xlink:href\": _vm.app.preview,\n                    },\n                  }),\n                ]\n              )\n            : _vm._e(),\n          _vm._v(\" \"),\n          !_vm.listView && _vm.app.screenshot && _vm.screenshotLoaded\n            ? _c(\"img\", { attrs: { src: _vm.app.screenshot, width: \"100%\" } })\n            : _vm._e(),\n        ]\n      ),\n      _vm._v(\" \"),\n      _c(\n        \"div\",\n        { staticClass: \"app-name\", on: { click: _vm.showAppDetails } },\n        [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.app.name) + \"\\n\\t\")]\n      ),\n      _vm._v(\" \"),\n      !_vm.listView\n        ? _c(\"div\", { staticClass: \"app-summary\" }, [\n            _vm._v(\"\\n\\t\\t\" + _vm._s(_vm.app.summary) + \"\\n\\t\"),\n          ])\n        : _vm._e(),\n      _vm._v(\" \"),\n      _vm.listView\n        ? _c(\"div\", { staticClass: \"app-version\" }, [\n            _vm.app.version\n              ? _c(\"span\", [_vm._v(_vm._s(_vm.app.version))])\n              : _vm.app.appstoreData.releases[0].version\n              ? _c(\"span\", [\n                  _vm._v(_vm._s(_vm.app.appstoreData.releases[0].version)),\n                ])\n              : _vm._e(),\n          ])\n        : _vm._e(),\n      _vm._v(\" \"),\n      _c(\n        \"div\",\n        { staticClass: \"app-level\" },\n        [\n          _vm.app.level === 300\n            ? _c(\n                \"span\",\n                {\n                  directives: [\n                    {\n                      name: \"tooltip\",\n                      rawName: \"v-tooltip.auto\",\n                      value: _vm.t(\n                        \"settings\",\n                        \"This app is supported via your current Nextcloud subscription.\"\n                      ),\n                      expression:\n                        \"t('settings', 'This app is supported via your current Nextcloud subscription.')\",\n                      modifiers: { auto: true },\n                    },\n                  ],\n                  staticClass: \"supported icon-checkmark-color\",\n                },\n                [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"settings\", \"Supported\")))]\n              )\n            : _vm._e(),\n          _vm._v(\" \"),\n          _vm.app.level === 200\n            ? _c(\n                \"span\",\n                {\n                  directives: [\n                    {\n                      name: \"tooltip\",\n                      rawName: \"v-tooltip.auto\",\n                      value: _vm.t(\n                        \"settings\",\n                        \"Featured apps are developed by and within the community. They offer central functionality and are ready for production use.\"\n                      ),\n                      expression:\n                        \"t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')\",\n                      modifiers: { auto: true },\n                    },\n                  ],\n                  staticClass: \"official icon-checkmark\",\n                },\n                [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"settings\", \"Featured\")))]\n              )\n            : _vm._e(),\n          _vm._v(\" \"),\n          _vm.hasRating && !_vm.listView\n            ? _c(\"AppScore\", { attrs: { score: _vm.app.score } })\n            : _vm._e(),\n        ],\n        1\n      ),\n      _vm._v(\" \"),\n      _c(\"div\", { staticClass: \"actions\" }, [\n        _vm.app.error\n          ? _c(\"div\", { staticClass: \"warning\" }, [\n              _vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.app.error) + \"\\n\\t\\t\"),\n            ])\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.isLoading\n          ? _c(\"div\", { staticClass: \"icon icon-loading-small\" })\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.update\n          ? _c(\"input\", {\n              staticClass: \"update primary\",\n              attrs: {\n                type: \"button\",\n                value: _vm.t(\"settings\", \"Update to {update}\", {\n                  update: _vm.app.update,\n                }),\n                disabled: _vm.installing || _vm.isLoading,\n              },\n              on: {\n                click: function ($event) {\n                  $event.stopPropagation()\n                  return _vm.update(_vm.app.id)\n                },\n              },\n            })\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.canUnInstall\n          ? _c(\"input\", {\n              staticClass: \"uninstall\",\n              attrs: {\n                type: \"button\",\n                value: _vm.t(\"settings\", \"Remove\"),\n                disabled: _vm.installing || _vm.isLoading,\n              },\n              on: {\n                click: function ($event) {\n                  $event.stopPropagation()\n                  return _vm.remove(_vm.app.id)\n                },\n              },\n            })\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.active\n          ? _c(\"input\", {\n              staticClass: \"enable\",\n              attrs: {\n                type: \"button\",\n                value: _vm.t(\"settings\", \"Disable\"),\n                disabled: _vm.installing || _vm.isLoading,\n              },\n              on: {\n                click: function ($event) {\n                  $event.stopPropagation()\n                  return _vm.disable(_vm.app.id)\n                },\n              },\n            })\n          : _vm._e(),\n        _vm._v(\" \"),\n        !_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible)\n          ? _c(\"input\", {\n              directives: [\n                {\n                  name: \"tooltip\",\n                  rawName: \"v-tooltip.auto\",\n                  value: _vm.enableButtonTooltip,\n                  expression: \"enableButtonTooltip\",\n                  modifiers: { auto: true },\n                },\n              ],\n              staticClass: \"enable\",\n              attrs: {\n                type: \"button\",\n                value: _vm.enableButtonText,\n                disabled:\n                  !_vm.app.canInstall || _vm.installing || _vm.isLoading,\n              },\n              on: {\n                click: function ($event) {\n                  $event.stopPropagation()\n                  return _vm.enable(_vm.app.id)\n                },\n              },\n            })\n          : !_vm.app.active\n          ? _c(\"input\", {\n              directives: [\n                {\n                  name: \"tooltip\",\n                  rawName: \"v-tooltip.auto\",\n                  value: _vm.forceEnableButtonTooltip,\n                  expression: \"forceEnableButtonTooltip\",\n                  modifiers: { auto: true },\n                },\n              ],\n              staticClass: \"enable force\",\n              attrs: {\n                type: \"button\",\n                value: _vm.forceEnableButtonText,\n                disabled: _vm.installing || _vm.isLoading,\n              },\n              on: {\n                click: function ($event) {\n                  $event.stopPropagation()\n                  return _vm.forceEnable(_vm.app.id)\n                },\n              },\n            })\n          : _vm._e(),\n      ]),\n    ]\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"img\", {\n    staticClass: \"app-score-image\",\n    attrs: { src: _vm.scoreImage },\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", {\n    staticClass: \"settings-markdown\",\n    domProps: { innerHTML: _vm._s(_vm.renderMarkdown) },\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"Content\",\n    {\n      class: { \"with-app-sidebar\": _vm.app },\n      attrs: {\n        \"app-name\": \"settings\",\n        \"content-class\": { \"icon-loading\": _vm.loadingList },\n        \"navigation-class\": { \"icon-loading\": _vm.loading },\n      },\n    },\n    [\n      _c(\"AppNavigation\", {\n        scopedSlots: _vm._u([\n          {\n            key: \"list\",\n            fn: function () {\n              return [\n                _c(\"AppNavigationItem\", {\n                  attrs: {\n                    id: \"app-category-your-apps\",\n                    to: { name: \"apps\" },\n                    exact: true,\n                    icon: \"icon-category-installed\",\n                    title: _vm.t(\"settings\", \"Your apps\"),\n                  },\n                }),\n                _vm._v(\" \"),\n                _c(\"AppNavigationItem\", {\n                  attrs: {\n                    id: \"app-category-enabled\",\n                    to: {\n                      name: \"apps-category\",\n                      params: { category: \"enabled\" },\n                    },\n                    icon: \"icon-category-enabled\",\n                    title: _vm.t(\"settings\", \"Active apps\"),\n                  },\n                }),\n                _vm._v(\" \"),\n                _c(\"AppNavigationItem\", {\n                  attrs: {\n                    id: \"app-category-disabled\",\n                    to: {\n                      name: \"apps-category\",\n                      params: { category: \"disabled\" },\n                    },\n                    icon: \"icon-category-disabled\",\n                    title: _vm.t(\"settings\", \"Disabled apps\"),\n                  },\n                }),\n                _vm._v(\" \"),\n                _vm.updateCount > 0\n                  ? _c(\n                      \"AppNavigationItem\",\n                      {\n                        attrs: {\n                          id: \"app-category-updates\",\n                          to: {\n                            name: \"apps-category\",\n                            params: { category: \"updates\" },\n                          },\n                          icon: \"icon-download\",\n                          title: _vm.t(\"settings\", \"Updates\"),\n                        },\n                      },\n                      [\n                        _c(\n                          \"AppNavigationCounter\",\n                          { attrs: { slot: \"counter\" }, slot: \"counter\" },\n                          [\n                            _vm._v(\n                              \"\\n\\t\\t\\t\\t\\t\" +\n                                _vm._s(_vm.updateCount) +\n                                \"\\n\\t\\t\\t\\t\"\n                            ),\n                          ]\n                        ),\n                      ],\n                      1\n                    )\n                  : _vm._e(),\n                _vm._v(\" \"),\n                _c(\"AppNavigationItem\", {\n                  attrs: {\n                    id: \"app-category-your-bundles\",\n                    to: {\n                      name: \"apps-category\",\n                      params: { category: \"app-bundles\" },\n                    },\n                    icon: \"icon-category-app-bundles\",\n                    title: _vm.t(\"settings\", \"App bundles\"),\n                  },\n                }),\n                _vm._v(\" \"),\n                _c(\"AppNavigationSpacer\"),\n                _vm._v(\" \"),\n                _vm.settings.appstoreEnabled\n                  ? [\n                      _c(\"AppNavigationItem\", {\n                        attrs: {\n                          id: \"app-category-featured\",\n                          to: {\n                            name: \"apps-category\",\n                            params: { category: \"featured\" },\n                          },\n                          icon: \"icon-favorite\",\n                          title: _vm.t(\"settings\", \"Featured apps\"),\n                        },\n                      }),\n                      _vm._v(\" \"),\n                      _vm._l(_vm.categories, function (cat) {\n                        return _c(\"AppNavigationItem\", {\n                          key: \"icon-category-\" + cat.ident,\n                          attrs: {\n                            icon: \"icon-category-\" + cat.ident,\n                            to: {\n                              name: \"apps-category\",\n                              params: { category: cat.ident },\n                            },\n                            title: cat.displayName,\n                          },\n                        })\n                      }),\n                    ]\n                  : _vm._e(),\n                _vm._v(\" \"),\n                _c(\"AppNavigationItem\", {\n                  attrs: {\n                    id: \"app-developer-docs\",\n                    href: \"settings.developerDocumentation\",\n                    title: _vm.t(\"settings\", \"Developer documentation\") + \" ↗\",\n                  },\n                }),\n              ]\n            },\n            proxy: true,\n          },\n        ]),\n      }),\n      _vm._v(\" \"),\n      _c(\n        \"AppContent\",\n        {\n          staticClass: \"app-settings-content\",\n          class: { \"icon-loading\": _vm.loadingList },\n        },\n        [\n          _c(\"AppList\", {\n            attrs: {\n              category: _vm.category,\n              app: _vm.app,\n              search: _vm.searchQuery,\n            },\n          }),\n        ],\n        1\n      ),\n      _vm._v(\" \"),\n      _vm.id && _vm.app\n        ? _c(\n            \"AppSidebar\",\n            _vm._b(\n              {\n                class: {\n                  \"app-sidebar--without-background\": !_vm.appSidebar.background,\n                },\n                on: { close: _vm.hideAppDetails },\n                scopedSlots: _vm._u(\n                  [\n                    !_vm.appSidebar.background\n                      ? {\n                          key: \"header\",\n                          fn: function () {\n                            return [\n                              _c(\"div\", {\n                                staticClass:\n                                  \"app-sidebar-header__figure--default-app-icon icon-settings-dark\",\n                              }),\n                            ]\n                          },\n                          proxy: true,\n                        }\n                      : null,\n                    {\n                      key: \"description\",\n                      fn: function () {\n                        return [\n                          _vm.app.level === 300 ||\n                          _vm.app.level === 200 ||\n                          _vm.hasRating\n                            ? _c(\n                                \"div\",\n                                { staticClass: \"app-level\" },\n                                [\n                                  _vm.app.level === 300\n                                    ? _c(\n                                        \"span\",\n                                        {\n                                          directives: [\n                                            {\n                                              name: \"tooltip\",\n                                              rawName: \"v-tooltip.auto\",\n                                              value: _vm.t(\n                                                \"settings\",\n                                                \"This app is supported via your current Nextcloud subscription.\"\n                                              ),\n                                              expression:\n                                                \"t('settings', 'This app is supported via your current Nextcloud subscription.')\",\n                                              modifiers: { auto: true },\n                                            },\n                                          ],\n                                          staticClass:\n                                            \"supported icon-checkmark-color\",\n                                        },\n                                        [\n                                          _vm._v(\n                                            \"\\n\\t\\t\\t\\t\\t\" +\n                                              _vm._s(\n                                                _vm.t(\"settings\", \"Supported\")\n                                              )\n                                          ),\n                                        ]\n                                      )\n                                    : _vm._e(),\n                                  _vm._v(\" \"),\n                                  _vm.app.level === 200\n                                    ? _c(\n                                        \"span\",\n                                        {\n                                          directives: [\n                                            {\n                                              name: \"tooltip\",\n                                              rawName: \"v-tooltip.auto\",\n                                              value: _vm.t(\n                                                \"settings\",\n                                                \"Featured apps are developed by and within the community. They offer central functionality and are ready for production use.\"\n                                              ),\n                                              expression:\n                                                \"t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')\",\n                                              modifiers: { auto: true },\n                                            },\n                                          ],\n                                          staticClass:\n                                            \"official icon-checkmark\",\n                                        },\n                                        [\n                                          _vm._v(\n                                            \"\\n\\t\\t\\t\\t\\t\" +\n                                              _vm._s(\n                                                _vm.t(\"settings\", \"Featured\")\n                                              )\n                                          ),\n                                        ]\n                                      )\n                                    : _vm._e(),\n                                  _vm._v(\" \"),\n                                  _vm.hasRating\n                                    ? _c(\"AppScore\", {\n                                        attrs: {\n                                          score:\n                                            _vm.app.appstoreData.ratingOverall,\n                                        },\n                                      })\n                                    : _vm._e(),\n                                ],\n                                1\n                              )\n                            : _vm._e(),\n                        ]\n                      },\n                      proxy: true,\n                    },\n                  ],\n                  null,\n                  true\n                ),\n              },\n              \"AppSidebar\",\n              _vm.appSidebar,\n              false\n            ),\n            [\n              _vm._v(\" \"),\n              _vm._v(\" \"),\n              _c(\n                \"AppSidebarTab\",\n                {\n                  attrs: {\n                    id: \"desc\",\n                    icon: \"icon-category-office\",\n                    name: _vm.t(\"settings\", \"Details\"),\n                    order: 0,\n                  },\n                },\n                [_c(\"AppDetails\", { attrs: { app: _vm.app } })],\n                1\n              ),\n              _vm._v(\" \"),\n              _vm.app.appstoreData &&\n              _vm.app.releases[0].translations.en.changelog\n                ? _c(\n                    \"AppSidebarTab\",\n                    {\n                      attrs: {\n                        id: \"desca\",\n                        icon: \"icon-category-organization\",\n                        name: _vm.t(\"settings\", \"Changelog\"),\n                        order: 1,\n                      },\n                    },\n                    _vm._l(_vm.app.releases, function (release) {\n                      return _c(\n                        \"div\",\n                        {\n                          key: release.version,\n                          staticClass: \"app-sidebar-tabs__release\",\n                        },\n                        [\n                          _c(\"h2\", [_vm._v(_vm._s(release.version))]),\n                          _vm._v(\" \"),\n                          _vm.changelog(release)\n                            ? _c(\"Markdown\", {\n                                attrs: { text: _vm.changelog(release) },\n                              })\n                            : _vm._e(),\n                        ],\n                        1\n                      )\n                    }),\n                    0\n                  )\n                : _vm._e(),\n            ],\n            1\n          )\n        : _vm._e(),\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }"],"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;;;ACzLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;AC3RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;ACtTA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAYA;AACA;AACA;;A;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAYA;AACA;AACA;;A;;;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;ACvCA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;;;A;;;;;;;;;;;;;A;;;;;;;;;;;;;A;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;;AC5XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;;AC5QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;A","sourceRoot":""}
=======
{"version":3,"file":"settings-apps-settings-apps.js?v=a2e2fa5f03a6f10d3519","sources":["webpack:///nextcloud/apps/settings/src/mixins/AppManagement.js","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/PrefixMixin.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/views/Apps.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue?vue&type=style&index=0&id=59a92e62&scoped=true&lang=scss&","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss&","webpack:///nextcloud/apps/settings/src/views/Apps.vue?vue&type=style&index=0&id=d3714d0a&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=css&","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?5e97","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?6cce","webpack://nextcloud/./apps/settings/src/views/Apps.vue?642f","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?9bb8","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue","webpack:///nextcloud/apps/settings/src/components/AppList.vue","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue","webpack:///nextcloud/apps/settings/src/components/Markdown.vue","webpack:///nextcloud/apps/settings/src/components/PrefixMixin.vue","webpack:///nextcloud/apps/settings/src/components/SvgFilterMixin.vue","webpack:///nextcloud/apps/settings/src/views/Apps.vue","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?9a02","webpack://nextcloud/./apps/settings/src/components/AppList.vue?a32f","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?32ec","webpack://nextcloud/./apps/settings/src/components/AppList/AppScore.vue?18e4","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?5ce2","webpack://nextcloud/./apps/settings/src/components/PrefixMixin.vue?c3f5","webpack://nextcloud/./apps/settings/src/components/SvgFilterMixin.vue?3cde","webpack://nextcloud/./apps/settings/src/views/Apps.vue?b34b","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue?vue&type=template&id=59a92e62&scoped=true&","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true&","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true&","webpack:///nextcloud/apps/settings/src/views/Apps.vue?vue&type=template&id=d3714d0a&scoped=true&"],"sourcesContent":["/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license  GPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nexport default {\n  computed: {\n    appGroups: function appGroups() {\n      return this.app.groups.map(function (group) {\n        return {\n          id: group,\n          name: group\n        };\n      });\n    },\n    installing: function installing() {\n      return this.$store.getters.loading('install');\n    },\n    isLoading: function isLoading() {\n      return this.app && this.$store.getters.loading(this.app.id);\n    },\n    enableButtonText: function enableButtonText() {\n      if (this.app.needsDownload) {\n        return t('settings', 'Download and enable');\n      }\n\n      return t('settings', 'Enable');\n    },\n    forceEnableButtonText: function forceEnableButtonText() {\n      if (this.app.needsDownload) {\n        return t('settings', 'Enable untested app');\n      }\n\n      return t('settings', 'Enable untested app');\n    },\n    enableButtonTooltip: function enableButtonTooltip() {\n      if (this.app.needsDownload) {\n        return t('settings', 'The app will be downloaded from the App Store');\n      }\n\n      return false;\n    },\n    forceEnableButtonTooltip: function forceEnableButtonTooltip() {\n      var base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.');\n\n      if (this.app.needsDownload) {\n        return base + ' ' + t('settings', 'The app will be downloaded from the App Store');\n      }\n\n      return base;\n    }\n  },\n  data: function data() {\n    return {\n      groupCheckedAppsData: false\n    };\n  },\n  mounted: function mounted() {\n    if (this.app && this.app.groups && this.app.groups.length > 0) {\n      this.groupCheckedAppsData = true;\n    }\n  },\n  methods: {\n    asyncFindGroup: function asyncFindGroup(query) {\n      return this.$store.dispatch('getGroups', {\n        search: query,\n        limit: 5,\n        offset: 0\n      });\n    },\n    isLimitedToGroups: function isLimitedToGroups(app) {\n      if (this.app.groups.length || this.groupCheckedAppsData) {\n        return true;\n      }\n\n      return false;\n    },\n    setGroupLimit: function setGroupLimit() {\n      if (!this.groupCheckedAppsData) {\n        this.$store.dispatch('enableApp', {\n          appId: this.app.id,\n          groups: []\n        });\n      }\n    },\n    canLimitToGroups: function canLimitToGroups(app) {\n      if (app.types && app.types.includes('filesystem') || app.types.includes('prelogin') || app.types.includes('authentication') || app.types.includes('logging') || app.types.includes('prevent_group_restriction')) {\n        return false;\n      }\n\n      return true;\n    },\n    addGroupLimitation: function addGroupLimitation(group) {\n      var groups = this.app.groups.concat([]).concat([group.id]);\n      this.$store.dispatch('enableApp', {\n        appId: this.app.id,\n        groups: groups\n      });\n    },\n    removeGroupLimitation: function removeGroupLimitation(group) {\n      var currentGroups = this.app.groups.concat([]);\n      var index = currentGroups.indexOf(group.id);\n\n      if (index > -1) {\n        currentGroups.splice(index, 1);\n      }\n\n      this.$store.dispatch('enableApp', {\n        appId: this.app.id,\n        groups: currentGroups\n      });\n    },\n    forceEnable: function forceEnable(appId) {\n      this.$store.dispatch('forceEnableApp', {\n        appId: appId,\n        groups: []\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    enable: function enable(appId) {\n      this.$store.dispatch('enableApp', {\n        appId: appId,\n        groups: []\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    disable: function disable(appId) {\n      this.$store.dispatch('disableApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    remove: function remove(appId) {\n      this.$store.dispatch('uninstallApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    install: function install(appId) {\n      this.$store.dispatch('enableApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    update: function update(appId) {\n      this.$store.dispatch('updateApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport Multiselect from '@nextcloud/vue/dist/Components/Multiselect';\nimport AppManagement from '../mixins/AppManagement';\nimport PrefixMixin from './PrefixMixin';\nimport Markdown from './Markdown';\nexport default {\n  name: 'AppDetails',\n  components: {\n    Multiselect: Multiselect,\n    Markdown: Markdown\n  },\n  mixins: [AppManagement, PrefixMixin],\n  props: {\n    app: {\n      type: Object,\n      required: true\n    }\n  },\n  data: function data() {\n    return {\n      groupCheckedAppsData: false\n    };\n  },\n  computed: {\n    appstoreUrl: function appstoreUrl() {\n      return \"https://apps.nextcloud.com/apps/\".concat(this.app.id);\n    },\n    licence: function licence() {\n      if (this.app.licence) {\n        return t('settings', '{license}-licensed', {\n          license: ('' + this.app.licence).toUpperCase()\n        });\n      }\n\n      return null;\n    },\n    author: function author() {\n      if (typeof this.app.author === 'string') {\n        return [{\n          '@value': this.app.author\n        }];\n      }\n\n      if (this.app.author['@value']) {\n        return [this.app.author];\n      }\n\n      return this.app.author;\n    },\n    appGroups: function appGroups() {\n      return this.app.groups.map(function (group) {\n        return {\n          id: group,\n          name: group\n        };\n      });\n    },\n    groups: function groups() {\n      return this.$store.getters.getGroups.filter(function (group) {\n        return group.id !== 'disabled';\n      }).sort(function (a, b) {\n        return a.name.localeCompare(b.name);\n      });\n    }\n  },\n  mounted: function mounted() {\n    if (this.app.groups.length > 0) {\n      this.groupCheckedAppsData = true;\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport AppItem from './AppList/AppItem';\nimport PrefixMixin from './PrefixMixin';\nimport pLimit from 'p-limit';\nexport default {\n  name: 'AppList',\n  components: {\n    AppItem: AppItem\n  },\n  mixins: [PrefixMixin],\n  props: ['category', 'app', 'search'],\n  computed: {\n    counter: function counter() {\n      return this.apps.filter(function (app) {\n        return app.update;\n      }).length;\n    },\n    loading: function loading() {\n      return this.$store.getters.loading('list');\n    },\n    hasPendingUpdate: function hasPendingUpdate() {\n      return this.apps.filter(function (app) {\n        return app.update;\n      }).length > 1;\n    },\n    showUpdateAll: function showUpdateAll() {\n      return this.hasPendingUpdate && ['installed', 'updates'].includes(this.category);\n    },\n    apps: function apps() {\n      var _this = this;\n\n      var apps = this.$store.getters.getAllApps.filter(function (app) {\n        return app.name.toLowerCase().search(_this.search.toLowerCase()) !== -1;\n      }).sort(function (a, b) {\n        var sortStringA = '' + (a.active ? 0 : 1) + (a.update ? 0 : 1) + a.name;\n        var sortStringB = '' + (b.active ? 0 : 1) + (b.update ? 0 : 1) + b.name;\n        return OC.Util.naturalSortCompare(sortStringA, sortStringB);\n      });\n\n      if (this.category === 'installed') {\n        return apps.filter(function (app) {\n          return app.installed;\n        });\n      }\n\n      if (this.category === 'enabled') {\n        return apps.filter(function (app) {\n          return app.active && app.installed;\n        });\n      }\n\n      if (this.category === 'disabled') {\n        return apps.filter(function (app) {\n          return !app.active && app.installed;\n        });\n      }\n\n      if (this.category === 'app-bundles') {\n        return apps.filter(function (app) {\n          return app.bundles;\n        });\n      }\n\n      if (this.category === 'updates') {\n        return apps.filter(function (app) {\n          return app.update;\n        });\n      }\n\n      if (this.category === 'featured') {\n        return apps.filter(function (app) {\n          return app.level === 200;\n        });\n      } // filter app store categories\n\n\n      return apps.filter(function (app) {\n        return app.appstore && app.category !== undefined && (app.category === _this.category || app.category.indexOf(_this.category) > -1);\n      });\n    },\n    bundles: function bundles() {\n      var _this2 = this;\n\n      return this.$store.getters.getServerData.bundles.filter(function (bundle) {\n        return _this2.bundleApps(bundle.id).length > 0;\n      });\n    },\n    bundleApps: function bundleApps() {\n      return function (bundle) {\n        return this.$store.getters.getAllApps.filter(function (app) {\n          return app.bundleIds !== undefined && app.bundleIds.includes(bundle);\n        });\n      };\n    },\n    searchApps: function searchApps() {\n      var _this3 = this;\n\n      if (this.search === '') {\n        return [];\n      }\n\n      return this.$store.getters.getAllApps.filter(function (app) {\n        if (app.name.toLowerCase().search(_this3.search.toLowerCase()) !== -1) {\n          return !_this3.apps.find(function (_app) {\n            return _app.id === app.id;\n          });\n        }\n\n        return false;\n      });\n    },\n    useAppStoreView: function useAppStoreView() {\n      return !this.useListView && !this.useBundleView;\n    },\n    useListView: function useListView() {\n      return this.category === 'installed' || this.category === 'enabled' || this.category === 'disabled' || this.category === 'updates' || this.category === 'featured';\n    },\n    useBundleView: function useBundleView() {\n      return this.category === 'app-bundles';\n    },\n    allBundlesEnabled: function allBundlesEnabled() {\n      var self = this;\n      return function (id) {\n        return self.bundleApps(id).filter(function (app) {\n          return !app.active;\n        }).length === 0;\n      };\n    },\n    bundleToggleText: function bundleToggleText() {\n      var self = this;\n      return function (id) {\n        if (self.allBundlesEnabled(id)) {\n          return t('settings', 'Disable all');\n        }\n\n        return t('settings', 'Enable all');\n      };\n    }\n  },\n  methods: {\n    toggleBundle: function toggleBundle(id) {\n      if (this.allBundlesEnabled(id)) {\n        return this.disableBundle(id);\n      }\n\n      return this.enableBundle(id);\n    },\n    enableBundle: function enableBundle(id) {\n      var apps = this.bundleApps(id).map(function (app) {\n        return app.id;\n      });\n      this.$store.dispatch('enableApp', {\n        appId: apps,\n        groups: []\n      }).catch(function (error) {\n        console.error(error);\n        OC.Notification.show(error);\n      });\n    },\n    disableBundle: function disableBundle(id) {\n      var apps = this.bundleApps(id).map(function (app) {\n        return app.id;\n      });\n      this.$store.dispatch('disableApp', {\n        appId: apps,\n        groups: []\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    updateAll: function updateAll() {\n      var _this4 = this;\n\n      var limit = pLimit(1);\n      this.apps.filter(function (app) {\n        return app.update;\n      }).map(function (app) {\n        return limit(function () {\n          return _this4.$store.dispatch('updateApp', {\n            appId: app.id\n          });\n        });\n      });\n    }\n  }\n};","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport AppScore from './AppScore';\nimport AppManagement from '../../mixins/AppManagement';\nimport SvgFilterMixin from '../SvgFilterMixin';\nexport default {\n  name: 'AppItem',\n  components: {\n    AppScore: AppScore\n  },\n  mixins: [AppManagement, SvgFilterMixin],\n  props: {\n    app: {},\n    category: {},\n    listView: {\n      type: Boolean,\n      default: true\n    }\n  },\n  data: function data() {\n    return {\n      isSelected: false,\n      scrolled: false,\n      screenshotLoaded: false\n    };\n  },\n  computed: {\n    hasRating: function hasRating() {\n      return this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5;\n    }\n  },\n  watch: {\n    '$route.params.id': function $routeParamsId(id) {\n      this.isSelected = this.app.id === id;\n    }\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    this.isSelected = this.app.id === this.$route.params.id;\n\n    if (this.app.releases && this.app.screenshot) {\n      var image = new Image();\n\n      image.onload = function (e) {\n        _this.screenshotLoaded = true;\n      };\n\n      image.src = this.app.screenshot;\n    }\n  },\n  watchers: {},\n  methods: {\n    showAppDetails: function showAppDetails(event) {\n      var _this2 = this;\n\n      return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n        return regeneratorRuntime.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                if (!(event.currentTarget.tagName === 'INPUT' || event.currentTarget.tagName === 'A')) {\n                  _context.next = 2;\n                  break;\n                }\n\n                return _context.abrupt(\"return\");\n\n              case 2:\n                _context.prev = 2;\n                _context.next = 5;\n                return _this2.$router.push({\n                  name: 'apps-details',\n                  params: {\n                    category: _this2.category,\n                    id: _this2.app.id\n                  }\n                });\n\n              case 5:\n                _context.next = 9;\n                break;\n\n              case 7:\n                _context.prev = 7;\n                _context.t0 = _context[\"catch\"](2);\n\n              case 9:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, null, [[2, 7]]);\n      }))();\n    },\n    prefix: function prefix(_prefix, content) {\n      return _prefix + '_' + content;\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { imagePath } from '@nextcloud/router';\nexport default {\n  name: 'AppScore',\n  props: ['score'],\n  computed: {\n    scoreImage: function scoreImage() {\n      var score = Math.round(this.score * 10);\n      var imageName = 'rating/s' + score + '.svg';\n      return imagePath('core', imageName);\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { marked } from 'marked';\nimport dompurify from 'dompurify';\nexport default {\n  name: 'Markdown',\n  props: {\n    text: {\n      type: String,\n      default: ''\n    }\n  },\n  computed: {\n    renderMarkdown: function renderMarkdown() {\n      var renderer = new marked.Renderer();\n\n      renderer.link = function (href, title, text) {\n        var prot;\n\n        try {\n          prot = decodeURIComponent(unescape(href)).replace(/[^\\w:]/g, '').toLowerCase();\n        } catch (e) {\n          return '';\n        }\n\n        if (prot.indexOf('http:') !== 0 && prot.indexOf('https:') !== 0) {\n          return '';\n        }\n\n        var out = '<a href=\"' + href + '\" rel=\"noreferrer noopener\"';\n\n        if (title) {\n          out += ' title=\"' + title + '\"';\n        }\n\n        out += '>' + text + '</a>';\n        return out;\n      };\n\n      renderer.image = function (href, title, text) {\n        if (text) {\n          return text;\n        }\n\n        return title;\n      };\n\n      renderer.blockquote = function (quote) {\n        return quote;\n      };\n\n      return dompurify.sanitize(marked(this.text.trim(), {\n        renderer: renderer,\n        gfm: false,\n        highlight: false,\n        tables: false,\n        breaks: false,\n        pedantic: false,\n        sanitize: true,\n        smartLists: true,\n        smartypants: false\n      }), {\n        SAFE_FOR_JQUERY: true,\n        ALLOWED_TAGS: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'strong', 'p', 'a', 'ul', 'ol', 'li', 'em', 'del', 'blockquote']\n      });\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nexport default {\n  name: 'PrefixMixin',\n  methods: {\n    prefix: function prefix(_prefix, content) {\n      return _prefix + '_' + content;\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nexport default {\n  name: 'SvgFilterMixin',\n  data: function data() {\n    return {\n      filterId: ''\n    };\n  },\n  computed: {\n    filterUrl: function filterUrl() {\n      return \"url(#\".concat(this.filterId, \")\");\n    }\n  },\n  mounted: function mounted() {\n    this.filterId = 'invertIconApps' + Math.floor(Math.random() * 100) + new Date().getSeconds() + new Date().getMilliseconds();\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus';\nimport Vue from 'vue';\nimport VueLocalStorage from 'vue-localstorage';\nimport AppContent from '@nextcloud/vue/dist/Components/AppContent';\nimport AppNavigation from '@nextcloud/vue/dist/Components/AppNavigation';\nimport AppNavigationCounter from '@nextcloud/vue/dist/Components/AppNavigationCounter';\nimport AppNavigationItem from '@nextcloud/vue/dist/Components/AppNavigationItem';\nimport AppNavigationSpacer from '@nextcloud/vue/dist/Components/AppNavigationSpacer';\nimport AppSidebar from '@nextcloud/vue/dist/Components/AppSidebar';\nimport AppSidebarTab from '@nextcloud/vue/dist/Components/AppSidebarTab';\nimport Content from '@nextcloud/vue/dist/Components/Content';\nimport AppList from '../components/AppList';\nimport AppDetails from '../components/AppDetails';\nimport AppManagement from '../mixins/AppManagement';\nimport AppScore from '../components/AppList/AppScore';\nimport Markdown from '../components/Markdown';\nVue.use(VueLocalStorage);\nexport default {\n  name: 'Apps',\n  components: {\n    AppContent: AppContent,\n    AppDetails: AppDetails,\n    AppList: AppList,\n    AppNavigation: AppNavigation,\n    AppNavigationCounter: AppNavigationCounter,\n    AppNavigationItem: AppNavigationItem,\n    AppNavigationSpacer: AppNavigationSpacer,\n    AppScore: AppScore,\n    AppSidebar: AppSidebar,\n    AppSidebarTab: AppSidebarTab,\n    Content: Content,\n    Markdown: Markdown\n  },\n  mixins: [AppManagement],\n  props: {\n    category: {\n      type: String,\n      default: 'installed'\n    },\n    id: {\n      type: String,\n      default: ''\n    }\n  },\n  data: function data() {\n    return {\n      searchQuery: '',\n      screenshotLoaded: false\n    };\n  },\n  computed: {\n    loading: function loading() {\n      return this.$store.getters.loading('categories');\n    },\n    loadingList: function loadingList() {\n      return this.$store.getters.loading('list');\n    },\n    app: function app() {\n      var _this = this;\n\n      return this.apps.find(function (app) {\n        return app.id === _this.id;\n      });\n    },\n    categories: function categories() {\n      return this.$store.getters.getCategories;\n    },\n    apps: function apps() {\n      return this.$store.getters.getAllApps;\n    },\n    updateCount: function updateCount() {\n      return this.$store.getters.getUpdateCount;\n    },\n    settings: function settings() {\n      return this.$store.getters.getServerData;\n    },\n    hasRating: function hasRating() {\n      return this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5;\n    },\n    // sidebar app binding\n    appSidebar: function appSidebar() {\n      var authorName = function authorName(xmlNode) {\n        if (xmlNode['@value']) {\n          // Complex node (with email or homepage attribute)\n          return xmlNode['@value'];\n        } // Simple text node\n\n\n        return xmlNode;\n      };\n\n      var author = Array.isArray(this.app.author) ? this.app.author.map(authorName).join(', ') : authorName(this.app.author);\n      var license = t('settings', '{license}-licensed', {\n        license: ('' + this.app.licence).toUpperCase()\n      });\n      var subtitle = t('settings', 'by {author}\\n{license}', {\n        author: author,\n        license: license\n      });\n      return {\n        subtitle: subtitle,\n        background: this.app.screenshot && this.screenshotLoaded ? this.app.screenshot : this.app.preview,\n        compact: !(this.app.screenshot && this.screenshotLoaded),\n        title: this.app.name\n      };\n    },\n    changelog: function changelog() {\n      return function (release) {\n        return release.translations.en.changelog;\n      };\n    }\n  },\n  watch: {\n    category: function category() {\n      this.searchQuery = '';\n    },\n    app: function app() {\n      var _this$app,\n          _this$app2,\n          _this2 = this;\n\n      this.screenshotLoaded = false;\n\n      if ((_this$app = this.app) !== null && _this$app !== void 0 && _this$app.releases && (_this$app2 = this.app) !== null && _this$app2 !== void 0 && _this$app2.screenshot) {\n        var image = new Image();\n\n        image.onload = function (e) {\n          _this2.screenshotLoaded = true;\n        };\n\n        image.src = this.app.screenshot;\n      }\n    }\n  },\n  beforeMount: function beforeMount() {\n    this.$store.dispatch('getCategories');\n    this.$store.dispatch('getAllApps');\n    this.$store.dispatch('getGroups', {\n      offset: 0,\n      limit: 5\n    });\n    this.$store.commit('setUpdateCount', this.$store.getters.getServerData.updateCount);\n  },\n  mounted: function mounted() {\n    subscribe('nextcloud:unified-search.search', this.setSearch);\n    subscribe('nextcloud:unified-search.reset', this.resetSearch);\n  },\n  beforeDestroy: function beforeDestroy() {\n    unsubscribe('nextcloud:unified-search.search', this.setSearch);\n    unsubscribe('nextcloud:unified-search.reset', this.resetSearch);\n  },\n  methods: {\n    setSearch: function setSearch(_ref) {\n      var query = _ref.query;\n      this.searchQuery = query;\n    },\n    resetSearch: function resetSearch() {\n      this.searchQuery = '';\n    },\n    hideAppDetails: function hideAppDetails() {\n      this.$router.push({\n        name: 'apps-category',\n        params: {\n          category: this.category\n        }\n      });\n    }\n  }\n};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-details[data-v-59a92e62] {\\n  padding: 20px;\\n}\\n.app-details__actions-manage[data-v-59a92e62] {\\n  display: flex;\\n}\\n.app-details__actions-manage input[data-v-59a92e62] {\\n  flex: 0 1 auto;\\n  min-width: 0;\\n  text-overflow: ellipsis;\\n  white-space: nowrap;\\n  overflow: hidden;\\n}\\n.app-details__dependencies[data-v-59a92e62] {\\n  opacity: 0.7;\\n}\\n.app-details__documentation[data-v-59a92e62] {\\n  padding-top: 20px;\\n}\\n.app-details__description[data-v-59a92e62] {\\n  padding-top: 20px;\\n}\\n.force[data-v-59a92e62] {\\n  color: var(--color-error);\\n  border-color: var(--color-error);\\n  background: var(--color-main-background);\\n}\\n.force[data-v-59a92e62]:hover,\\n.force[data-v-59a92e62]:active {\\n  color: var(--color-main-background);\\n  border-color: var(--color-error) !important;\\n  background: var(--color-error);\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".settings-markdown[data-v-11f4a1b0] h1,\\n.settings-markdown[data-v-11f4a1b0] h2,\\n.settings-markdown[data-v-11f4a1b0] h3,\\n.settings-markdown[data-v-11f4a1b0] h4,\\n.settings-markdown[data-v-11f4a1b0] h5,\\n.settings-markdown[data-v-11f4a1b0] h6 {\\n  font-weight: 600;\\n  line-height: 120%;\\n  margin-top: 24px;\\n  margin-bottom: 12px;\\n  color: var(--color-main-text);\\n}\\n.settings-markdown[data-v-11f4a1b0] h1 {\\n  font-size: 36px;\\n  margin-top: 48px;\\n}\\n.settings-markdown[data-v-11f4a1b0] h2 {\\n  font-size: 28px;\\n  margin-top: 48px;\\n}\\n.settings-markdown[data-v-11f4a1b0] h3 {\\n  font-size: 24px;\\n}\\n.settings-markdown[data-v-11f4a1b0] h4 {\\n  font-size: 21px;\\n}\\n.settings-markdown[data-v-11f4a1b0] h5 {\\n  font-size: 17px;\\n}\\n.settings-markdown[data-v-11f4a1b0] h6 {\\n  font-size: var(--default-font-size);\\n}\\n.settings-markdown[data-v-11f4a1b0] pre {\\n  white-space: pre;\\n  overflow-x: auto;\\n  background-color: var(--color-background-dark);\\n  border-radius: var(--border-radius);\\n  padding: 1em 1.3em;\\n  margin-bottom: 1em;\\n}\\n.settings-markdown[data-v-11f4a1b0] p code {\\n  background-color: var(--color-background-dark);\\n  border-radius: var(--border-radius);\\n  padding: 0.1em 0.3em;\\n}\\n.settings-markdown[data-v-11f4a1b0] li {\\n  position: relative;\\n}\\n.settings-markdown[data-v-11f4a1b0] ul, .settings-markdown[data-v-11f4a1b0] ol {\\n  padding-left: 10px;\\n  margin-left: 10px;\\n}\\n.settings-markdown[data-v-11f4a1b0] ul li {\\n  list-style-type: disc;\\n}\\n.settings-markdown[data-v-11f4a1b0] ul > li > ul > li {\\n  list-style-type: circle;\\n}\\n.settings-markdown[data-v-11f4a1b0] ul > li > ul > li ul li {\\n  list-style-type: square;\\n}\\n.settings-markdown[data-v-11f4a1b0] blockquote {\\n  padding-left: 1em;\\n  border-left: 4px solid var(--color-primary-element);\\n  color: var(--color-text-maxcontrast);\\n  margin-left: 0;\\n  margin-right: 0;\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-sidebar[data-v-d3714d0a]:not(.app-sidebar--without-background) :not(.app-sidebar-header--compact) .app-sidebar-header__figure {\\n  background-size: cover;\\n}\\n.app-sidebar[data-v-d3714d0a]:not(.app-sidebar--without-background) .app-sidebar-header--compact .app-sidebar-header__figure {\\n  background-size: 32px;\\n  filter: invert(1);\\n}\\n.app-sidebar[data-v-d3714d0a].app-sidebar--without-background .app-sidebar-header__figure {\\n  display: flex;\\n  align-items: center;\\n  justify-content: center;\\n}\\n.app-sidebar[data-v-d3714d0a].app-sidebar--without-background .app-sidebar-header__figure--default-app-icon {\\n  width: 32px;\\n  height: 32px;\\n  background-size: 32px;\\n}\\n.app-sidebar[data-v-d3714d0a] .app-sidebar-header__desc .app-sidebar-header__subtitle {\\n  overflow: visible !important;\\n  height: auto;\\n  white-space: normal !important;\\n  line-height: 16px;\\n}\\n.app-sidebar[data-v-d3714d0a] .app-sidebar-header__action {\\n  margin: 0 20px;\\n}\\n.app-sidebar[data-v-d3714d0a] .app-sidebar-header__action input {\\n  margin: 3px;\\n}\\n.app-sidebar-tabs__release h2[data-v-d3714d0a] {\\n  border-bottom: 1px solid var(--color-border);\\n}\\n.app-sidebar-tabs__release[data-v-d3714d0a]  h3 {\\n  font-size: 20px;\\n}\\n.app-sidebar-tabs__release[data-v-d3714d0a]  h4 {\\n  font-size: 17px;\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.force[data-v-429da85a] {\\n\\tbackground: var(--color-main-background);\\n\\tborder-color: var(--color-error);\\n\\tcolor: var(--color-error);\\n}\\n.force[data-v-429da85a]:hover,\\n.force[data-v-429da85a]:active {\\n\\tbackground: var(--color-error);\\n\\tborder-color: var(--color-error) !important;\\n\\tcolor: var(--color-main-background);\\n}\\n\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetails.vue?vue&type=style&index=0&id=59a92e62&scoped=true&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Apps.vue?vue&type=style&index=0&id=d3714d0a&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=css&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./AppDetails.vue?vue&type=template&id=59a92e62&scoped=true&\"\nimport script from \"./AppDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./AppDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppDetails.vue?vue&type=style&index=0&id=59a92e62&scoped=true&lang=scss&\"\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  null,\n  \"59a92e62\",\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/louis/workspace/nextcloud/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('59a92e62')) {\n      api.createRecord('59a92e62', component.options)\n    } else {\n      api.reload('59a92e62', component.options)\n    }\n    module.hot.accept(\"./AppDetails.vue?vue&type=template&id=59a92e62&scoped=true&\", function () {\n      api.rerender('59a92e62', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppDetails.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./AppList.vue?vue&type=template&id=6d1e92a4&\"\nimport script from \"./AppList.vue?vue&type=script&lang=js&\"\nexport * from \"./AppList.vue?vue&type=script&lang=js&\"\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  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/louis/workspace/nextcloud/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('6d1e92a4')) {\n      api.createRecord('6d1e92a4', component.options)\n    } else {\n      api.reload('6d1e92a4', component.options)\n    }\n    module.hot.accept(\"./AppList.vue?vue&type=template&id=6d1e92a4&\", function () {\n      api.rerender('6d1e92a4', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppList.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./AppItem.vue?vue&type=template&id=429da85a&scoped=true&\"\nimport script from \"./AppItem.vue?vue&type=script&lang=js&\"\nexport * from \"./AppItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=css&\"\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  null,\n  \"429da85a\",\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/louis/workspace/nextcloud/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('429da85a')) {\n      api.createRecord('429da85a', component.options)\n    } else {\n      api.reload('429da85a', component.options)\n    }\n    module.hot.accept(\"./AppItem.vue?vue&type=template&id=429da85a&scoped=true&\", function () {\n      api.rerender('429da85a', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppList/AppItem.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./AppScore.vue?vue&type=template&id=0ecce4fc&\"\nimport script from \"./AppScore.vue?vue&type=script&lang=js&\"\nexport * from \"./AppScore.vue?vue&type=script&lang=js&\"\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  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/louis/workspace/nextcloud/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('0ecce4fc')) {\n      api.createRecord('0ecce4fc', component.options)\n    } else {\n      api.reload('0ecce4fc', component.options)\n    }\n    module.hot.accept(\"./AppScore.vue?vue&type=template&id=0ecce4fc&\", function () {\n      api.rerender('0ecce4fc', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppList/AppScore.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true&\"\nimport script from \"./Markdown.vue?vue&type=script&lang=js&\"\nexport * from \"./Markdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss&\"\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  null,\n  \"11f4a1b0\",\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/louis/workspace/nextcloud/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('11f4a1b0')) {\n      api.createRecord('11f4a1b0', component.options)\n    } else {\n      api.reload('11f4a1b0', component.options)\n    }\n    module.hot.accept(\"./Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true&\", function () {\n      api.rerender('11f4a1b0', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/Markdown.vue\"\nexport default component.exports","var render, staticRenderFns\nimport script from \"./PrefixMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./PrefixMixin.vue?vue&type=script&lang=js&\"\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  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/louis/workspace/nextcloud/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('b4ed0c44')) {\n      api.createRecord('b4ed0c44', component.options)\n    } else {\n      api.reload('b4ed0c44', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/PrefixMixin.vue\"\nexport default component.exports","var render, staticRenderFns\nimport script from \"./SvgFilterMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./SvgFilterMixin.vue?vue&type=script&lang=js&\"\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  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/louis/workspace/nextcloud/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('9219d434')) {\n      api.createRecord('9219d434', component.options)\n    } else {\n      api.reload('9219d434', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"apps/settings/src/components/SvgFilterMixin.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Apps.vue?vue&type=template&id=d3714d0a&scoped=true&\"\nimport script from \"./Apps.vue?vue&type=script&lang=js&\"\nexport * from \"./Apps.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Apps.vue?vue&type=style&index=0&id=d3714d0a&lang=scss&scoped=true&\"\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  null,\n  \"d3714d0a\",\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/louis/workspace/nextcloud/server/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('d3714d0a')) {\n      api.createRecord('d3714d0a', component.options)\n    } else {\n      api.reload('d3714d0a', component.options)\n    }\n    module.hot.accept(\"./Apps.vue?vue&type=template&id=d3714d0a&scoped=true&\", function () {\n      api.rerender('d3714d0a', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"apps/settings/src/views/Apps.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetails.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrefixMixin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrefixMixin.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgFilterMixin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgFilterMixin.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Apps.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Apps.vue?vue&type=script&lang=js&\"","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    { staticClass: \"app-details\" },\n    [\n      _c(\"div\", { staticClass: \"app-details__actions\" }, [\n        _vm.app.active && _vm.canLimitToGroups(_vm.app)\n          ? _c(\n              \"div\",\n              { staticClass: \"app-details__actions-groups\" },\n              [\n                _c(\"input\", {\n                  directives: [\n                    {\n                      name: \"model\",\n                      rawName: \"v-model\",\n                      value: _vm.groupCheckedAppsData,\n                      expression: \"groupCheckedAppsData\",\n                    },\n                  ],\n                  staticClass: \"groups-enable__checkbox checkbox\",\n                  attrs: {\n                    id: _vm.prefix(\"groups_enable\", _vm.app.id),\n                    type: \"checkbox\",\n                  },\n                  domProps: {\n                    value: _vm.app.id,\n                    checked: Array.isArray(_vm.groupCheckedAppsData)\n                      ? _vm._i(_vm.groupCheckedAppsData, _vm.app.id) > -1\n                      : _vm.groupCheckedAppsData,\n                  },\n                  on: {\n                    change: [\n                      function ($event) {\n                        var $$a = _vm.groupCheckedAppsData,\n                          $$el = $event.target,\n                          $$c = $$el.checked ? true : false\n                        if (Array.isArray($$a)) {\n                          var $$v = _vm.app.id,\n                            $$i = _vm._i($$a, $$v)\n                          if ($$el.checked) {\n                            $$i < 0 &&\n                              (_vm.groupCheckedAppsData = $$a.concat([$$v]))\n                          } else {\n                            $$i > -1 &&\n                              (_vm.groupCheckedAppsData = $$a\n                                .slice(0, $$i)\n                                .concat($$a.slice($$i + 1)))\n                          }\n                        } else {\n                          _vm.groupCheckedAppsData = $$c\n                        }\n                      },\n                      _vm.setGroupLimit,\n                    ],\n                  },\n                }),\n                _vm._v(\" \"),\n                _c(\n                  \"label\",\n                  { attrs: { for: _vm.prefix(\"groups_enable\", _vm.app.id) } },\n                  [_vm._v(_vm._s(_vm.t(\"settings\", \"Limit to groups\")))]\n                ),\n                _vm._v(\" \"),\n                _c(\"input\", {\n                  staticClass: \"group_select\",\n                  attrs: {\n                    type: \"hidden\",\n                    title: _vm.t(\"settings\", \"All\"),\n                    value: \"\",\n                  },\n                }),\n                _vm._v(\" \"),\n                _vm.isLimitedToGroups(_vm.app)\n                  ? _c(\n                      \"Multiselect\",\n                      {\n                        staticClass: \"multiselect-vue\",\n                        attrs: {\n                          options: _vm.groups,\n                          value: _vm.appGroups,\n                          \"options-limit\": 5,\n                          placeholder: _vm.t(\n                            \"settings\",\n                            \"Limit app usage to groups\"\n                          ),\n                          label: \"name\",\n                          \"track-by\": \"id\",\n                          multiple: true,\n                          \"close-on-select\": false,\n                          \"tag-width\": 60,\n                        },\n                        on: {\n                          select: _vm.addGroupLimitation,\n                          remove: _vm.removeGroupLimitation,\n                          \"search-change\": _vm.asyncFindGroup,\n                        },\n                      },\n                      [\n                        _c(\n                          \"span\",\n                          { attrs: { slot: \"noResult\" }, slot: \"noResult\" },\n                          [_vm._v(_vm._s(_vm.t(\"settings\", \"No results\")))]\n                        ),\n                      ]\n                    )\n                  : _vm._e(),\n              ],\n              1\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _c(\"div\", { staticClass: \"app-details__actions-manage\" }, [\n          _vm.app.update\n            ? _c(\"input\", {\n                staticClass: \"update primary\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.t(\"settings\", \"Update to {version}\", {\n                    version: _vm.app.update,\n                  }),\n                  disabled: _vm.installing || _vm.isLoading,\n                },\n                on: {\n                  click: function ($event) {\n                    return _vm.update(_vm.app.id)\n                  },\n                },\n              })\n            : _vm._e(),\n          _vm._v(\" \"),\n          _vm.app.canUnInstall\n            ? _c(\"input\", {\n                staticClass: \"uninstall\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.t(\"settings\", \"Remove\"),\n                  disabled: _vm.installing || _vm.isLoading,\n                },\n                on: {\n                  click: function ($event) {\n                    return _vm.remove(_vm.app.id)\n                  },\n                },\n              })\n            : _vm._e(),\n          _vm._v(\" \"),\n          _vm.app.active\n            ? _c(\"input\", {\n                staticClass: \"enable\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.t(\"settings\", \"Disable\"),\n                  disabled: _vm.installing || _vm.isLoading,\n                },\n                on: {\n                  click: function ($event) {\n                    return _vm.disable(_vm.app.id)\n                  },\n                },\n              })\n            : _vm._e(),\n          _vm._v(\" \"),\n          !_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible)\n            ? _c(\"input\", {\n                directives: [\n                  {\n                    name: \"tooltip\",\n                    rawName: \"v-tooltip.auto\",\n                    value: _vm.enableButtonTooltip,\n                    expression: \"enableButtonTooltip\",\n                    modifiers: { auto: true },\n                  },\n                ],\n                staticClass: \"enable primary\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.enableButtonText,\n                  disabled:\n                    !_vm.app.canInstall || _vm.installing || _vm.isLoading,\n                },\n                on: {\n                  click: function ($event) {\n                    return _vm.enable(_vm.app.id)\n                  },\n                },\n              })\n            : !_vm.app.active && !_vm.app.canInstall\n            ? _c(\"input\", {\n                directives: [\n                  {\n                    name: \"tooltip\",\n                    rawName: \"v-tooltip.auto\",\n                    value: _vm.forceEnableButtonTooltip,\n                    expression: \"forceEnableButtonTooltip\",\n                    modifiers: { auto: true },\n                  },\n                ],\n                staticClass: \"enable force\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.forceEnableButtonText,\n                  disabled: _vm.installing || _vm.isLoading,\n                },\n                on: {\n                  click: function ($event) {\n                    return _vm.forceEnable(_vm.app.id)\n                  },\n                },\n              })\n            : _vm._e(),\n        ]),\n      ]),\n      _vm._v(\" \"),\n      _c(\"ul\", { staticClass: \"app-details__dependencies\" }, [\n        _vm.app.missingMinOwnCloudVersion\n          ? _c(\"li\", [\n              _vm._v(\n                \"\\n\\t\\t\\t\" +\n                  _vm._s(\n                    _vm.t(\n                      \"settings\",\n                      \"This app has no minimum Nextcloud version assigned. This will be an error in the future.\"\n                    )\n                  ) +\n                  \"\\n\\t\\t\"\n              ),\n            ])\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.missingMaxOwnCloudVersion\n          ? _c(\"li\", [\n              _vm._v(\n                \"\\n\\t\\t\\t\" +\n                  _vm._s(\n                    _vm.t(\n                      \"settings\",\n                      \"This app has no maximum Nextcloud version assigned. This will be an error in the future.\"\n                    )\n                  ) +\n                  \"\\n\\t\\t\"\n              ),\n            ])\n          : _vm._e(),\n        _vm._v(\" \"),\n        !_vm.app.canInstall\n          ? _c(\"li\", [\n              _vm._v(\n                \"\\n\\t\\t\\t\" +\n                  _vm._s(\n                    _vm.t(\n                      \"settings\",\n                      \"This app cannot be installed because the following dependencies are not fulfilled:\"\n                    )\n                  ) +\n                  \"\\n\\t\\t\\t\"\n              ),\n              _c(\n                \"ul\",\n                { staticClass: \"missing-dependencies\" },\n                _vm._l(_vm.app.missingDependencies, function (dep, index) {\n                  return _c(\"li\", { key: index }, [\n                    _vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(dep) + \"\\n\\t\\t\\t\\t\"),\n                  ])\n                }),\n                0\n              ),\n            ])\n          : _vm._e(),\n      ]),\n      _vm._v(\" \"),\n      _c(\"p\", { staticClass: \"app-details__documentation\" }, [\n        !_vm.app.internal\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.appstoreUrl,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"View in store\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.website\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.website,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"Visit website\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.bugs\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.bugs,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"Report a bug\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.documentation && _vm.app.documentation.user\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.documentation.user,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"User documentation\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.documentation && _vm.app.documentation.admin\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.documentation.admin,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"Admin documentation\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.documentation && _vm.app.documentation.developer\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.documentation.developer,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\",\n                },\n              },\n              [\n                _vm._v(\n                  _vm._s(_vm.t(\"settings\", \"Developer documentation\")) + \" ↗\"\n                ),\n              ]\n            )\n          : _vm._e(),\n      ]),\n      _vm._v(\" \"),\n      _c(\"Markdown\", {\n        staticClass: \"app-details__description\",\n        attrs: { text: _vm.app.description },\n      }),\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", { attrs: { id: \"app-content-inner\" } }, [\n    _c(\n      \"div\",\n      {\n        staticClass: \"apps-list\",\n        class: {\n          installed: _vm.useBundleView || _vm.useListView,\n          store: _vm.useAppStoreView,\n        },\n        attrs: { id: \"apps-list\" },\n      },\n      [\n        _vm.useListView\n          ? [\n              _vm.showUpdateAll\n                ? _c(\"div\", { staticClass: \"counter\" }, [\n                    _vm._v(\n                      \"\\n\\t\\t\\t\\t\" +\n                        _vm._s(\n                          _vm.n(\n                            \"settings\",\n                            \"%n app has an update available\",\n                            \"%n apps have an update available\",\n                            _vm.counter\n                          )\n                        ) +\n                        \"\\n\\t\\t\\t\\t\"\n                    ),\n                    _vm.showUpdateAll\n                      ? _c(\n                          \"button\",\n                          {\n                            staticClass: \"primary\",\n                            attrs: { id: \"app-list-update-all\" },\n                            on: { click: _vm.updateAll },\n                          },\n                          [\n                            _vm._v(\n                              \"\\n\\t\\t\\t\\t\\t\" +\n                                _vm._s(_vm.t(\"settings\", \"Update all\")) +\n                                \"\\n\\t\\t\\t\\t\"\n                            ),\n                          ]\n                        )\n                      : _vm._e(),\n                  ])\n                : _vm._e(),\n              _vm._v(\" \"),\n              _c(\n                \"transition-group\",\n                {\n                  staticClass: \"apps-list-container\",\n                  attrs: { name: \"app-list\", tag: \"div\" },\n                },\n                _vm._l(_vm.apps, function (app) {\n                  return _c(\"AppItem\", {\n                    key: app.id,\n                    attrs: { app: app, category: _vm.category },\n                  })\n                }),\n                1\n              ),\n            ]\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.useBundleView\n          ? _c(\n              \"transition-group\",\n              {\n                staticClass: \"apps-list-container\",\n                attrs: { name: \"app-list\", tag: \"div\" },\n              },\n              [\n                _vm._l(_vm.bundles, function (bundle) {\n                  return [\n                    _c(\"div\", { key: bundle.id, staticClass: \"apps-header\" }, [\n                      _c(\"div\", { staticClass: \"app-image\" }),\n                      _vm._v(\" \"),\n                      _c(\"h2\", [\n                        _vm._v(_vm._s(bundle.name) + \" \"),\n                        _c(\"input\", {\n                          attrs: {\n                            type: \"button\",\n                            value: _vm.bundleToggleText(bundle.id),\n                          },\n                          on: {\n                            click: function ($event) {\n                              return _vm.toggleBundle(bundle.id)\n                            },\n                          },\n                        }),\n                      ]),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"app-version\" }),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"app-level\" }),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"app-groups\" }),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"actions\" }, [\n                        _vm._v(\"\\n\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\"),\n                      ]),\n                    ]),\n                    _vm._v(\" \"),\n                    _vm._l(_vm.bundleApps(bundle.id), function (app) {\n                      return _c(\"AppItem\", {\n                        key: bundle.id + app.id,\n                        attrs: { app: app, category: _vm.category },\n                      })\n                    }),\n                  ]\n                }),\n              ],\n              2\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.useAppStoreView\n          ? _vm._l(_vm.apps, function (app) {\n              return _c(\"AppItem\", {\n                key: app.id,\n                attrs: { app: app, category: _vm.category, \"list-view\": false },\n              })\n            })\n          : _vm._e(),\n      ],\n      2\n    ),\n    _vm._v(\" \"),\n    _c(\n      \"div\",\n      { staticClass: \"apps-list installed\", attrs: { id: \"apps-list-search\" } },\n      [\n        _c(\n          \"div\",\n          { staticClass: \"apps-list-container\" },\n          [\n            _vm.search !== \"\" && _vm.searchApps.length > 0\n              ? [\n                  _c(\"div\", { staticClass: \"section\" }, [\n                    _c(\"div\"),\n                    _vm._v(\" \"),\n                    _c(\"td\", { attrs: { colspan: \"5\" } }, [\n                      _c(\"h2\", [\n                        _vm._v(\n                          _vm._s(\n                            _vm.t(\"settings\", \"Results from other categories\")\n                          )\n                        ),\n                      ]),\n                    ]),\n                  ]),\n                  _vm._v(\" \"),\n                  _vm._l(_vm.searchApps, function (app) {\n                    return _c(\"AppItem\", {\n                      key: app.id,\n                      attrs: {\n                        app: app,\n                        category: _vm.category,\n                        \"list-view\": true,\n                      },\n                    })\n                  }),\n                ]\n              : _vm._e(),\n          ],\n          2\n        ),\n      ]\n    ),\n    _vm._v(\" \"),\n    _vm.search !== \"\" &&\n    !_vm.loading &&\n    _vm.searchApps.length === 0 &&\n    _vm.apps.length === 0\n      ? _c(\n          \"div\",\n          {\n            staticClass: \"emptycontent emptycontent-search\",\n            attrs: { id: \"apps-list-empty\" },\n          },\n          [\n            _c(\"div\", {\n              staticClass: \"icon-settings-dark\",\n              attrs: { id: \"app-list-empty-icon\" },\n            }),\n            _vm._v(\" \"),\n            _c(\"h2\", [\n              _vm._v(\n                _vm._s(_vm.t(\"settings\", \"No apps found for your version\"))\n              ),\n            ]),\n          ]\n        )\n      : _vm._e(),\n    _vm._v(\" \"),\n    _c(\"div\", { attrs: { id: \"searchresults\" } }),\n  ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    {\n      staticClass: \"section\",\n      class: { selected: _vm.isSelected },\n      on: { click: _vm.showAppDetails },\n    },\n    [\n      _c(\n        \"div\",\n        {\n          staticClass: \"app-image app-image-icon\",\n          on: { click: _vm.showAppDetails },\n        },\n        [\n          (_vm.listView && !_vm.app.preview) ||\n          (!_vm.listView && !_vm.screenshotLoaded)\n            ? _c(\"div\", { staticClass: \"icon-settings-dark\" })\n            : _vm.listView && _vm.app.preview\n            ? _c(\n                \"svg\",\n                { attrs: { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\" } },\n                [\n                  _c(\"defs\", [\n                    _c(\n                      \"filter\",\n                      { attrs: { id: _vm.filterId } },\n                      [\n                        _c(\"feColorMatrix\", {\n                          attrs: {\n                            in: \"SourceGraphic\",\n                            type: \"matrix\",\n                            values:\n                              \"-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0\",\n                          },\n                        }),\n                      ],\n                      1\n                    ),\n                  ]),\n                  _vm._v(\" \"),\n                  _c(\"image\", {\n                    staticClass: \"app-icon\",\n                    attrs: {\n                      x: \"0\",\n                      y: \"0\",\n                      width: \"32\",\n                      height: \"32\",\n                      preserveAspectRatio: \"xMinYMin meet\",\n                      filter: _vm.filterUrl,\n                      \"xlink:href\": _vm.app.preview,\n                    },\n                  }),\n                ]\n              )\n            : _vm._e(),\n          _vm._v(\" \"),\n          !_vm.listView && _vm.app.screenshot && _vm.screenshotLoaded\n            ? _c(\"img\", { attrs: { src: _vm.app.screenshot, width: \"100%\" } })\n            : _vm._e(),\n        ]\n      ),\n      _vm._v(\" \"),\n      _c(\n        \"div\",\n        { staticClass: \"app-name\", on: { click: _vm.showAppDetails } },\n        [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.app.name) + \"\\n\\t\")]\n      ),\n      _vm._v(\" \"),\n      !_vm.listView\n        ? _c(\"div\", { staticClass: \"app-summary\" }, [\n            _vm._v(\"\\n\\t\\t\" + _vm._s(_vm.app.summary) + \"\\n\\t\"),\n          ])\n        : _vm._e(),\n      _vm._v(\" \"),\n      _vm.listView\n        ? _c(\"div\", { staticClass: \"app-version\" }, [\n            _vm.app.version\n              ? _c(\"span\", [_vm._v(_vm._s(_vm.app.version))])\n              : _vm.app.appstoreData.releases[0].version\n              ? _c(\"span\", [\n                  _vm._v(_vm._s(_vm.app.appstoreData.releases[0].version)),\n                ])\n              : _vm._e(),\n          ])\n        : _vm._e(),\n      _vm._v(\" \"),\n      _c(\n        \"div\",\n        { staticClass: \"app-level\" },\n        [\n          _vm.app.level === 300\n            ? _c(\n                \"span\",\n                {\n                  directives: [\n                    {\n                      name: \"tooltip\",\n                      rawName: \"v-tooltip.auto\",\n                      value: _vm.t(\n                        \"settings\",\n                        \"This app is supported via your current Nextcloud subscription.\"\n                      ),\n                      expression:\n                        \"t('settings', 'This app is supported via your current Nextcloud subscription.')\",\n                      modifiers: { auto: true },\n                    },\n                  ],\n                  staticClass: \"supported icon-checkmark-color\",\n                },\n                [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"settings\", \"Supported\")))]\n              )\n            : _vm._e(),\n          _vm._v(\" \"),\n          _vm.app.level === 200\n            ? _c(\n                \"span\",\n                {\n                  directives: [\n                    {\n                      name: \"tooltip\",\n                      rawName: \"v-tooltip.auto\",\n                      value: _vm.t(\n                        \"settings\",\n                        \"Featured apps are developed by and within the community. They offer central functionality and are ready for production use.\"\n                      ),\n                      expression:\n                        \"t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')\",\n                      modifiers: { auto: true },\n                    },\n                  ],\n                  staticClass: \"official icon-checkmark\",\n                },\n                [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"settings\", \"Featured\")))]\n              )\n            : _vm._e(),\n          _vm._v(\" \"),\n          _vm.hasRating && !_vm.listView\n            ? _c(\"AppScore\", { attrs: { score: _vm.app.score } })\n            : _vm._e(),\n        ],\n        1\n      ),\n      _vm._v(\" \"),\n      _c(\"div\", { staticClass: \"actions\" }, [\n        _vm.app.error\n          ? _c(\"div\", { staticClass: \"warning\" }, [\n              _vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.app.error) + \"\\n\\t\\t\"),\n            ])\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.isLoading\n          ? _c(\"div\", { staticClass: \"icon icon-loading-small\" })\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.update\n          ? _c(\"input\", {\n              staticClass: \"update primary\",\n              attrs: {\n                type: \"button\",\n                value: _vm.t(\"settings\", \"Update to {update}\", {\n                  update: _vm.app.update,\n                }),\n                disabled: _vm.installing || _vm.isLoading,\n              },\n              on: {\n                click: function ($event) {\n                  $event.stopPropagation()\n                  return _vm.update(_vm.app.id)\n                },\n              },\n            })\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.canUnInstall\n          ? _c(\"input\", {\n              staticClass: \"uninstall\",\n              attrs: {\n                type: \"button\",\n                value: _vm.t(\"settings\", \"Remove\"),\n                disabled: _vm.installing || _vm.isLoading,\n              },\n              on: {\n                click: function ($event) {\n                  $event.stopPropagation()\n                  return _vm.remove(_vm.app.id)\n                },\n              },\n            })\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.active\n          ? _c(\"input\", {\n              staticClass: \"enable\",\n              attrs: {\n                type: \"button\",\n                value: _vm.t(\"settings\", \"Disable\"),\n                disabled: _vm.installing || _vm.isLoading,\n              },\n              on: {\n                click: function ($event) {\n                  $event.stopPropagation()\n                  return _vm.disable(_vm.app.id)\n                },\n              },\n            })\n          : _vm._e(),\n        _vm._v(\" \"),\n        !_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible)\n          ? _c(\"input\", {\n              directives: [\n                {\n                  name: \"tooltip\",\n                  rawName: \"v-tooltip.auto\",\n                  value: _vm.enableButtonTooltip,\n                  expression: \"enableButtonTooltip\",\n                  modifiers: { auto: true },\n                },\n              ],\n              staticClass: \"enable\",\n              attrs: {\n                type: \"button\",\n                value: _vm.enableButtonText,\n                disabled:\n                  !_vm.app.canInstall || _vm.installing || _vm.isLoading,\n              },\n              on: {\n                click: function ($event) {\n                  $event.stopPropagation()\n                  return _vm.enable(_vm.app.id)\n                },\n              },\n            })\n          : !_vm.app.active\n          ? _c(\"input\", {\n              directives: [\n                {\n                  name: \"tooltip\",\n                  rawName: \"v-tooltip.auto\",\n                  value: _vm.forceEnableButtonTooltip,\n                  expression: \"forceEnableButtonTooltip\",\n                  modifiers: { auto: true },\n                },\n              ],\n              staticClass: \"enable force\",\n              attrs: {\n                type: \"button\",\n                value: _vm.forceEnableButtonText,\n                disabled: _vm.installing || _vm.isLoading,\n              },\n              on: {\n                click: function ($event) {\n                  $event.stopPropagation()\n                  return _vm.forceEnable(_vm.app.id)\n                },\n              },\n            })\n          : _vm._e(),\n      ]),\n    ]\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"img\", {\n    staticClass: \"app-score-image\",\n    attrs: { src: _vm.scoreImage },\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", {\n    staticClass: \"settings-markdown\",\n    domProps: { innerHTML: _vm._s(_vm.renderMarkdown) },\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"Content\",\n    {\n      class: { \"with-app-sidebar\": _vm.app },\n      attrs: {\n        \"app-name\": \"settings\",\n        \"content-class\": { \"icon-loading\": _vm.loadingList },\n        \"navigation-class\": { \"icon-loading\": _vm.loading },\n      },\n    },\n    [\n      _c(\"AppNavigation\", {\n        scopedSlots: _vm._u([\n          {\n            key: \"list\",\n            fn: function () {\n              return [\n                _c(\"AppNavigationItem\", {\n                  attrs: {\n                    id: \"app-category-your-apps\",\n                    to: { name: \"apps\" },\n                    exact: true,\n                    icon: \"icon-category-installed\",\n                    title: _vm.t(\"settings\", \"Your apps\"),\n                  },\n                }),\n                _vm._v(\" \"),\n                _c(\"AppNavigationItem\", {\n                  attrs: {\n                    id: \"app-category-enabled\",\n                    to: {\n                      name: \"apps-category\",\n                      params: { category: \"enabled\" },\n                    },\n                    icon: \"icon-category-enabled\",\n                    title: _vm.t(\"settings\", \"Active apps\"),\n                  },\n                }),\n                _vm._v(\" \"),\n                _c(\"AppNavigationItem\", {\n                  attrs: {\n                    id: \"app-category-disabled\",\n                    to: {\n                      name: \"apps-category\",\n                      params: { category: \"disabled\" },\n                    },\n                    icon: \"icon-category-disabled\",\n                    title: _vm.t(\"settings\", \"Disabled apps\"),\n                  },\n                }),\n                _vm._v(\" \"),\n                _vm.updateCount > 0\n                  ? _c(\n                      \"AppNavigationItem\",\n                      {\n                        attrs: {\n                          id: \"app-category-updates\",\n                          to: {\n                            name: \"apps-category\",\n                            params: { category: \"updates\" },\n                          },\n                          icon: \"icon-download\",\n                          title: _vm.t(\"settings\", \"Updates\"),\n                        },\n                      },\n                      [\n                        _c(\n                          \"AppNavigationCounter\",\n                          { attrs: { slot: \"counter\" }, slot: \"counter\" },\n                          [\n                            _vm._v(\n                              \"\\n\\t\\t\\t\\t\\t\" +\n                                _vm._s(_vm.updateCount) +\n                                \"\\n\\t\\t\\t\\t\"\n                            ),\n                          ]\n                        ),\n                      ],\n                      1\n                    )\n                  : _vm._e(),\n                _vm._v(\" \"),\n                _c(\"AppNavigationItem\", {\n                  attrs: {\n                    id: \"app-category-your-bundles\",\n                    to: {\n                      name: \"apps-category\",\n                      params: { category: \"app-bundles\" },\n                    },\n                    icon: \"icon-category-app-bundles\",\n                    title: _vm.t(\"settings\", \"App bundles\"),\n                  },\n                }),\n                _vm._v(\" \"),\n                _c(\"AppNavigationSpacer\"),\n                _vm._v(\" \"),\n                _vm.settings.appstoreEnabled\n                  ? [\n                      _c(\"AppNavigationItem\", {\n                        attrs: {\n                          id: \"app-category-featured\",\n                          to: {\n                            name: \"apps-category\",\n                            params: { category: \"featured\" },\n                          },\n                          icon: \"icon-favorite\",\n                          title: _vm.t(\"settings\", \"Featured apps\"),\n                        },\n                      }),\n                      _vm._v(\" \"),\n                      _vm._l(_vm.categories, function (cat) {\n                        return _c(\"AppNavigationItem\", {\n                          key: \"icon-category-\" + cat.ident,\n                          attrs: {\n                            icon: \"icon-category-\" + cat.ident,\n                            to: {\n                              name: \"apps-category\",\n                              params: { category: cat.ident },\n                            },\n                            title: cat.displayName,\n                          },\n                        })\n                      }),\n                    ]\n                  : _vm._e(),\n                _vm._v(\" \"),\n                _c(\"AppNavigationItem\", {\n                  attrs: {\n                    id: \"app-developer-docs\",\n                    href: \"settings.developerDocumentation\",\n                    title: _vm.t(\"settings\", \"Developer documentation\") + \" ↗\",\n                  },\n                }),\n              ]\n            },\n            proxy: true,\n          },\n        ]),\n      }),\n      _vm._v(\" \"),\n      _c(\n        \"AppContent\",\n        {\n          staticClass: \"app-settings-content\",\n          class: { \"icon-loading\": _vm.loadingList },\n        },\n        [\n          _c(\"AppList\", {\n            attrs: {\n              category: _vm.category,\n              app: _vm.app,\n              search: _vm.searchQuery,\n            },\n          }),\n        ],\n        1\n      ),\n      _vm._v(\" \"),\n      _vm.id && _vm.app\n        ? _c(\n            \"AppSidebar\",\n            _vm._b(\n              {\n                class: {\n                  \"app-sidebar--without-background\": !_vm.appSidebar.background,\n                },\n                on: { close: _vm.hideAppDetails },\n                scopedSlots: _vm._u(\n                  [\n                    !_vm.appSidebar.background\n                      ? {\n                          key: \"header\",\n                          fn: function () {\n                            return [\n                              _c(\"div\", {\n                                staticClass:\n                                  \"app-sidebar-header__figure--default-app-icon icon-settings-dark\",\n                              }),\n                            ]\n                          },\n                          proxy: true,\n                        }\n                      : null,\n                    {\n                      key: \"description\",\n                      fn: function () {\n                        return [\n                          _vm.app.level === 300 ||\n                          _vm.app.level === 200 ||\n                          _vm.hasRating\n                            ? _c(\n                                \"div\",\n                                { staticClass: \"app-level\" },\n                                [\n                                  _vm.app.level === 300\n                                    ? _c(\n                                        \"span\",\n                                        {\n                                          directives: [\n                                            {\n                                              name: \"tooltip\",\n                                              rawName: \"v-tooltip.auto\",\n                                              value: _vm.t(\n                                                \"settings\",\n                                                \"This app is supported via your current Nextcloud subscription.\"\n                                              ),\n                                              expression:\n                                                \"t('settings', 'This app is supported via your current Nextcloud subscription.')\",\n                                              modifiers: { auto: true },\n                                            },\n                                          ],\n                                          staticClass:\n                                            \"supported icon-checkmark-color\",\n                                        },\n                                        [\n                                          _vm._v(\n                                            \"\\n\\t\\t\\t\\t\\t\" +\n                                              _vm._s(\n                                                _vm.t(\"settings\", \"Supported\")\n                                              )\n                                          ),\n                                        ]\n                                      )\n                                    : _vm._e(),\n                                  _vm._v(\" \"),\n                                  _vm.app.level === 200\n                                    ? _c(\n                                        \"span\",\n                                        {\n                                          directives: [\n                                            {\n                                              name: \"tooltip\",\n                                              rawName: \"v-tooltip.auto\",\n                                              value: _vm.t(\n                                                \"settings\",\n                                                \"Featured apps are developed by and within the community. They offer central functionality and are ready for production use.\"\n                                              ),\n                                              expression:\n                                                \"t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')\",\n                                              modifiers: { auto: true },\n                                            },\n                                          ],\n                                          staticClass:\n                                            \"official icon-checkmark\",\n                                        },\n                                        [\n                                          _vm._v(\n                                            \"\\n\\t\\t\\t\\t\\t\" +\n                                              _vm._s(\n                                                _vm.t(\"settings\", \"Featured\")\n                                              )\n                                          ),\n                                        ]\n                                      )\n                                    : _vm._e(),\n                                  _vm._v(\" \"),\n                                  _vm.hasRating\n                                    ? _c(\"AppScore\", {\n                                        attrs: {\n                                          score:\n                                            _vm.app.appstoreData.ratingOverall,\n                                        },\n                                      })\n                                    : _vm._e(),\n                                ],\n                                1\n                              )\n                            : _vm._e(),\n                        ]\n                      },\n                      proxy: true,\n                    },\n                  ],\n                  null,\n                  true\n                ),\n              },\n              \"AppSidebar\",\n              _vm.appSidebar,\n              false\n            ),\n            [\n              _vm._v(\" \"),\n              _vm._v(\" \"),\n              _c(\n                \"AppSidebarTab\",\n                {\n                  attrs: {\n                    id: \"desc\",\n                    icon: \"icon-category-office\",\n                    name: _vm.t(\"settings\", \"Details\"),\n                    order: 0,\n                  },\n                },\n                [_c(\"AppDetails\", { attrs: { app: _vm.app } })],\n                1\n              ),\n              _vm._v(\" \"),\n              _vm.app.appstoreData &&\n              _vm.app.releases[0].translations.en.changelog\n                ? _c(\n                    \"AppSidebarTab\",\n                    {\n                      attrs: {\n                        id: \"desca\",\n                        icon: \"icon-category-organization\",\n                        name: _vm.t(\"settings\", \"Changelog\"),\n                        order: 1,\n                      },\n                    },\n                    _vm._l(_vm.app.releases, function (release) {\n                      return _c(\n                        \"div\",\n                        {\n                          key: release.version,\n                          staticClass: \"app-sidebar-tabs__release\",\n                        },\n                        [\n                          _c(\"h2\", [_vm._v(_vm._s(release.version))]),\n                          _vm._v(\" \"),\n                          _vm.changelog(release)\n                            ? _c(\"Markdown\", {\n                                attrs: { text: _vm.changelog(release) },\n                              })\n                            : _vm._e(),\n                        ],\n                        1\n                      )\n                    }),\n                    0\n                  )\n                : _vm._e(),\n            ],\n            1\n          )\n        : _vm._e(),\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }"],"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;;;ACzLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;AC3RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;ACtTA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAYA;AACA;AACA;;A;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAYA;AACA;AACA;;A;;;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;A;;;;;;;;;;;ACvCA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;ACAA;;A;;;;;;;;;;;;;A;;;;;;;;;;;;;A;;;;;;;;;;;;;A;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;;AC5XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;;AC5QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;A","sourceRoot":""}
>>>>>>> 5f2027f1e1 (Typing corrections)