{"version":3,"sources":["vendor/ember-cli/app-prefix.js","database-dashboard/adapters/application.js","database-dashboard/adapters/database-backup.js","database-dashboard/adapters/database-feature.js","database-dashboard/adapters/database-type-version.js","database-dashboard/adapters/database-type.js","database-dashboard/adapters/database-user.js","database-dashboard/adapters/database.js","database-dashboard/adapters/operation.js","database-dashboard/adapters/plan.js","database-dashboard/app.js","database-dashboard/components/advanced-backup.js","database-dashboard/components/advanced-elasticsearch-feature.js","database-dashboard/components/advanced-elasticsearch.js","database-dashboard/components/advanced-influxdb.js","database-dashboard/components/advanced-mongo.js","database-dashboard/components/advanced-mysql.js","database-dashboard/components/advanced-postgresql.js","database-dashboard/components/advanced-redis.js","database-dashboard/components/basic-dropdown.js","database-dashboard/components/basic-dropdown/content-element.js","database-dashboard/components/basic-dropdown/content.js","database-dashboard/components/basic-dropdown/trigger.js","database-dashboard/components/button-group.js","database-dashboard/components/c3-chart.js","database-dashboard/components/confirmation-modal.js","database-dashboard/components/database-access.js","database-dashboard/components/database-download-certificates.js","database-dashboard/components/database-general.js","database-dashboard/components/database-logs.js","database-dashboard/components/database-upgrade.js","database-dashboard/components/database/database-management.js","database-dashboard/components/datetime-picker.js","database-dashboard/components/db-metrics.js","database-dashboard/components/detail-layout.js","database-dashboard/components/ember-modal-dialog-positioned-container.js","database-dashboard/components/ember-wormhole.js","database-dashboard/components/help-dropdown.js","database-dashboard/components/logs-archive.js","database-dashboard/components/materialize-badge.js","database-dashboard/components/materialize-button-submit.js","database-dashboard/components/materialize-button.js","database-dashboard/components/materialize-card-action.js","database-dashboard/components/materialize-card-content.js","database-dashboard/components/materialize-card-panel.js","database-dashboard/components/materialize-card-reveal.js","database-dashboard/components/materialize-card.js","database-dashboard/components/materialize-checkbox.js","database-dashboard/components/materialize-checkboxes.js","database-dashboard/components/materialize-collapsible-card.js","database-dashboard/components/materialize-collapsible.js","database-dashboard/components/materialize-copyright.js","database-dashboard/components/materialize-date-input.js","database-dashboard/components/materialize-input-field.js","database-dashboard/components/materialize-input.js","database-dashboard/components/materialize-loader.js","database-dashboard/components/materialize-modal.js","database-dashboard/components/materialize-navbar.js","database-dashboard/components/materialize-pagination.js","database-dashboard/components/materialize-parallax.js","database-dashboard/components/materialize-radio.js","database-dashboard/components/materialize-radios.js","database-dashboard/components/materialize-range.js","database-dashboard/components/materialize-select.js","database-dashboard/components/materialize-switch.js","database-dashboard/components/materialize-switches.js","database-dashboard/components/materialize-tabs-tab.js","database-dashboard/components/materialize-tabs.js","database-dashboard/components/materialize-textarea.js","database-dashboard/components/md-badge.js","database-dashboard/components/md-btn-dropdown.js","database-dashboard/components/md-btn-submit.js","database-dashboard/components/md-btn.js","database-dashboard/components/md-card-action.js","database-dashboard/components/md-card-collapsible.js","database-dashboard/components/md-card-content.js","database-dashboard/components/md-card-panel.js","database-dashboard/components/md-card-reveal.js","database-dashboard/components/md-card.js","database-dashboard/components/md-check.js","database-dashboard/components/md-checks-check.js","database-dashboard/components/md-checks.js","database-dashboard/components/md-collapsible.js","database-dashboard/components/md-collection.js","database-dashboard/components/md-copyright.js","database-dashboard/components/md-default-collection-header.js","database-dashboard/components/md-default-column-header.js","database-dashboard/components/md-fixed-btn.js","database-dashboard/components/md-fixed-btns.js","database-dashboard/components/md-input-date.js","database-dashboard/components/md-input-field.js","database-dashboard/components/md-input.js","database-dashboard/components/md-loader.js","database-dashboard/components/md-modal-container.js","database-dashboard/components/md-modal.js","database-dashboard/components/md-navbar.js","database-dashboard/components/md-pagination.js","database-dashboard/components/md-parallax.js","database-dashboard/components/md-radio.js","database-dashboard/components/md-radios-radio.js","database-dashboard/components/md-radios.js","database-dashboard/components/md-range.js","database-dashboard/components/md-select.js","database-dashboard/components/md-switch.js","database-dashboard/components/md-switches-switch.js","database-dashboard/components/md-switches.js","database-dashboard/components/md-tab.js","database-dashboard/components/md-table-col.js","database-dashboard/components/md-table.js","database-dashboard/components/md-tabs.js","database-dashboard/components/md-textarea.js","database-dashboard/components/modal-dialog-overlay.js","database-dashboard/components/modal-dialog.js","database-dashboard/components/overview-right-cluster-topology.js","database-dashboard/components/overview-right.js","database-dashboard/components/overview-stats.js","database-dashboard/components/pg-query-statistics-query.js","database-dashboard/components/power-select-multiple.js","database-dashboard/components/power-select-multiple/trigger.js","database-dashboard/components/power-select.js","database-dashboard/components/power-select/before-options.js","database-dashboard/components/power-select/options.js","database-dashboard/components/power-select/placeholder.js","database-dashboard/components/power-select/power-select-group.js","database-dashboard/components/power-select/search-message.js","database-dashboard/components/power-select/trigger.js","database-dashboard/components/radio-button-input.js","database-dashboard/components/radio-button.js","database-dashboard/components/sc-chart.js","database-dashboard/components/sc-md-btn-submit.js","database-dashboard/components/sc-md-btn.js","database-dashboard/components/sc-md-input.js","database-dashboard/components/sc-md-navbar.js","database-dashboard/components/sc-md-switch.js","database-dashboard/components/sc-md-tab.js","database-dashboard/components/sc-md-tabs.js","database-dashboard/components/sc-md-toggle-btn.js","database-dashboard/components/sc-modal.js","database-dashboard/components/single-chart.js","database-dashboard/components/single-cpu-chart.js","database-dashboard/components/single-disk-chart.js","database-dashboard/components/single-diskio-chart.js","database-dashboard/components/single-memory-chart.js","database-dashboard/components/stats-table.js","database-dashboard/components/tether-dialog.js","database-dashboard/components/type-stats-table.js","database-dashboard/components/user-management.js","database-dashboard/components/welcome-page.js","database-dashboard/controllers/application.js","database-dashboard/controllers/dashboard.js","database-dashboard/controllers/dashboard/backups.js","database-dashboard/controllers/dashboard/databases.js","database-dashboard/controllers/dashboard/logs-archives.js","database-dashboard/controllers/dashboard/metrics.js","database-dashboard/controllers/dashboard/overview.js","database-dashboard/controllers/dashboard/pg-query-statistics.js","database-dashboard/controllers/dashboard/pg-running-queries.js","database-dashboard/controllers/dashboard/users.js","database-dashboard/controllers/index.js","database-dashboard/controllers/sso.js","database-dashboard/helpers/and.js","database-dashboard/helpers/app-version.js","database-dashboard/helpers/bw-compat-icon.js","database-dashboard/helpers/bytes.js","database-dashboard/helpers/cancel-all.js","database-dashboard/helpers/capitalize.js","database-dashboard/helpers/database-types.js","database-dashboard/helpers/date.js","database-dashboard/helpers/ember-power-select-is-group.js","database-dashboard/helpers/ember-power-select-is-selected.js","database-dashboard/helpers/ember-power-select-true-string-if-present.js","database-dashboard/helpers/eq.js","database-dashboard/helpers/gt.js","database-dashboard/helpers/gte.js","database-dashboard/helpers/instance-role.js","database-dashboard/helpers/instance-size.js","database-dashboard/helpers/is-after.js","database-dashboard/helpers/is-array.js","database-dashboard/helpers/is-before.js","database-dashboard/helpers/is-between.js","database-dashboard/helpers/is-empty.js","database-dashboard/helpers/is-equal.js","database-dashboard/helpers/is-same-or-after.js","database-dashboard/helpers/is-same-or-before.js","database-dashboard/helpers/is-same.js","database-dashboard/helpers/lt.js","database-dashboard/helpers/lte.js","database-dashboard/helpers/moment-add.js","database-dashboard/helpers/moment-calendar.js","database-dashboard/helpers/moment-diff.js","database-dashboard/helpers/moment-duration.js","database-dashboard/helpers/moment-format.js","database-dashboard/helpers/moment-from-now.js","database-dashboard/helpers/moment-from.js","database-dashboard/helpers/moment-subtract.js","database-dashboard/helpers/moment-to-date.js","database-dashboard/helpers/moment-to-now.js","database-dashboard/helpers/moment-to.js","database-dashboard/helpers/moment-unix.js","database-dashboard/helpers/moment.js","database-dashboard/helpers/not-eq.js","database-dashboard/helpers/not.js","database-dashboard/helpers/now.js","database-dashboard/helpers/optional-action.js","database-dashboard/helpers/or.js","database-dashboard/helpers/perform.js","database-dashboard/helpers/pluralize.js","database-dashboard/helpers/singularize.js","database-dashboard/helpers/start-with.js","database-dashboard/helpers/task.js","database-dashboard/helpers/to-bytes.js","database-dashboard/helpers/to-percent.js","database-dashboard/helpers/to-timezone.js","database-dashboard/helpers/to-utc.js","database-dashboard/helpers/truncate.js","database-dashboard/helpers/unix.js","database-dashboard/helpers/upper.js","database-dashboard/helpers/utc.js","database-dashboard/helpers/xor.js","database-dashboard/initializers/active-model-adapter.js","database-dashboard/initializers/add-modals-container.js","database-dashboard/initializers/app-version.js","database-dashboard/initializers/confirmation-modal.js","database-dashboard/initializers/container-debug-adapter.js","database-dashboard/initializers/data-adapter.js","database-dashboard/initializers/ember-concurrency.js","database-dashboard/initializers/ember-data.js","database-dashboard/initializers/ember-keyboard-first-responder-inputs.js","database-dashboard/initializers/export-application-global.js","database-dashboard/initializers/helpers.js","database-dashboard/initializers/injectStore.js","database-dashboard/initializers/md-settings.js","database-dashboard/initializers/notificate.js","database-dashboard/initializers/session.js","database-dashboard/initializers/store.js","database-dashboard/initializers/transforms.js","database-dashboard/initializers/truth-helpers.js","database-dashboard/instance-initializers/ember-data.js","database-dashboard/mixins/postgresql-database-mixin.js","database-dashboard/mixins/retry-until-success.js","database-dashboard/models/database-backup.js","database-dashboard/models/database-feature.js","database-dashboard/models/database-health.js","database-dashboard/models/database-lag.js","database-dashboard/models/database-metrics.js","database-dashboard/models/database-type-version.js","database-dashboard/models/database-type.js","database-dashboard/models/database-user.js","database-dashboard/models/database.js","database-dashboard/models/instance.js","database-dashboard/models/operation.js","database-dashboard/models/plan.js","database-dashboard/models/session.js","database-dashboard/resolver.js","database-dashboard/router.js","database-dashboard/routes/application.js","database-dashboard/routes/authenticated.js","database-dashboard/routes/base.js","database-dashboard/routes/dashboard.js","database-dashboard/routes/dashboard/advanced.js","database-dashboard/routes/dashboard/backups.js","database-dashboard/routes/dashboard/databases.js","database-dashboard/routes/dashboard/index.js","database-dashboard/routes/dashboard/logs-archives.js","database-dashboard/routes/dashboard/logs.js","database-dashboard/routes/dashboard/metrics.js","database-dashboard/routes/dashboard/overview.js","database-dashboard/routes/dashboard/pg-query-statistics.js","database-dashboard/routes/dashboard/pg-running-queries.js","database-dashboard/routes/dashboard/users.js","database-dashboard/routes/index.js","database-dashboard/routes/sso.js","database-dashboard/serializers/database-type-version.js","database-dashboard/serializers/database-user.js","database-dashboard/serializers/database.js","database-dashboard/services/ajax.js","database-dashboard/services/confirmation-modal.js","database-dashboard/services/keyboard.js","database-dashboard/services/md-settings.js","database-dashboard/services/modal-dialog.js","database-dashboard/services/moment.js","database-dashboard/services/text-measurer.js","database-dashboard/templates/application.js","database-dashboard/templates/components/advanced-backup.js","database-dashboard/templates/components/advanced-elasticsearch-feature.js","database-dashboard/templates/components/advanced-elasticsearch.js","database-dashboard/templates/components/advanced-influxdb.js","database-dashboard/templates/components/advanced-mongo.js","database-dashboard/templates/components/advanced-mysql.js","database-dashboard/templates/components/advanced-postgresql.js","database-dashboard/templates/components/advanced-redis.js","database-dashboard/templates/components/button-group.js","database-dashboard/templates/components/confirmation-modal.js","database-dashboard/templates/components/database-access.js","database-dashboard/templates/components/database-details.js","database-dashboard/templates/components/database-download-certificates.js","database-dashboard/templates/components/database-general.js","database-dashboard/templates/components/database-logs.js","database-dashboard/templates/components/database-upgrade.js","database-dashboard/templates/components/database/database-management.js","database-dashboard/templates/components/datetime-picker.js","database-dashboard/templates/components/db-metrics.js","database-dashboard/templates/components/detail-layout.js","database-dashboard/templates/components/error-container.js","database-dashboard/templates/components/help-dropdown.js","database-dashboard/templates/components/logs-archive.js","database-dashboard/templates/components/modal-dialog.js","database-dashboard/templates/components/nav-drawer-layout.js","database-dashboard/templates/components/overview-right-cluster-topology.js","database-dashboard/templates/components/overview-right.js","database-dashboard/templates/components/overview-stats.js","database-dashboard/templates/components/pg-query-statistics-query.js","database-dashboard/templates/components/sc-md-btn.js","database-dashboard/templates/components/sc-md-input.js","database-dashboard/templates/components/sc-md-navbar.js","database-dashboard/templates/components/sc-md-switch.js","database-dashboard/templates/components/sc-md-tabs.js","database-dashboard/templates/components/sc-md-toggle-btn.js","database-dashboard/templates/components/sc-modal.js","database-dashboard/templates/components/single-chart.js","database-dashboard/templates/components/stats-table.js","database-dashboard/templates/components/tether-dialog.js","database-dashboard/templates/components/type-stats-table.js","database-dashboard/templates/components/user-management.js","database-dashboard/templates/dashboard/advanced.js","database-dashboard/templates/dashboard/backups.js","database-dashboard/templates/dashboard/databases.js","database-dashboard/templates/dashboard/loading.js","database-dashboard/templates/dashboard/logs-archives.js","database-dashboard/templates/dashboard/logs.js","database-dashboard/templates/dashboard/metrics.js","database-dashboard/templates/dashboard/overview.js","database-dashboard/templates/dashboard/pg-query-statistics.js","database-dashboard/templates/dashboard/pg-running-queries.js","database-dashboard/templates/dashboard/users.js","database-dashboard/templates/error.js","database-dashboard/templates/loading.js","database-dashboard/templates/sso.js","database-dashboard/templates/you-are-lost.js","database-dashboard/utils/flatten-query-params.js","database-dashboard/utils/listener-name.js","vendor/ember-cli/app-suffix.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"sourcesContent":["\"use strict\";\n\n\n","define('database-dashboard/adapters/application', ['exports', 'ember-data', 'active-model-adapter'], function (exports, _emberData, _activeModelAdapter) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  // http://emberjs.com/guides/models/#toc_store\n  // http://emberjs.com/guides/models/pushing-records-into-the-store/\n  var ApplicationAdapter = _activeModelAdapter.default.extend({\n    namespace: '',\n    host: Ember.computed(function () {\n      var host = window.EmberENV.apiBaseURI;\n      // if (host.charAt(host.length - 1) != '/') {\n      // host += \"/\"\n      // }\n      return host;\n    }),\n\n    // ajaxError has been changed to handleResponse\n    // https://github.com/ember-data/active-model-adapter/commit/fae3159deedb5a02a1d198041134e802cdf2b5b1\n    handleResponse: function handleResponse(status, headers, payload) {\n      if (this.isInvalid(status, headers, payload)) {\n        var payloadErrors = payload.errors;\n        var errors = {};\n\n        if (payloadErrors != null) {\n          Object.keys(payloadErrors).forEach(function (key) {\n            errors[Ember.String.camelize(key)] = payloadErrors[key];\n          });\n        }\n\n        // include global error\n        if (payload.error) {\n          errors.error = payload.error;\n        }\n\n        // Here we use DS.Error instead of DS.InvalidError\n        // because InvalidError awaits a json-api formatted array.\n        // Now, the errors are directly available on the .save()'s fail handler\n        return new _emberData.default.Errors(errors);\n      } else {\n        return this._super.apply(this, arguments);\n      }\n    }\n\n  });\n\n  ApplicationAdapter.reopenClass({\n    makeNestedResourceAdapter: function makeNestedResourceAdapter(_ref) {\n      var parent = _ref.parent,\n          resource = _ref.resource;\n\n      var argumentsPresent = parent.path != null && parent.property != null && resource.path && resource.property;\n      (true && !(argumentsPresent) && Ember.assert(\"Resource adapter factory requires all arguments to be present\", argumentsPresent));\n\n\n      return this.extend({\n        parent: parent,\n        resource: resource,\n\n        buildNestedURL: function buildNestedURL(type, parentId, resourceId, endpoint, record) {\n          if (Ember.isPresent(parentId)) {\n            var base = '' + this.get(\"host\") + this.get('namespace') + '/' + parent.path + '/' + parentId;\n\n            if (Ember.isPresent(endpoint)) {\n              return base + '/' + endpoint.trim('/');\n            }\n\n            if (Ember.isPresent(resourceId)) {\n              base = base + '/' + resource.path + '/' + resourceId.toString();\n            } else {\n              base = base + '/' + resource.path;\n            }\n            return base;\n          } else {\n            return this.buildURL(type.typeKey, resourceId, record);\n          }\n        },\n        findRecord: function findRecord(store, type, id, snapshot) {\n          try {\n            var parentId = snapshot.record.get(parent.property);\n            var url = this.buildNestedURL(type, parentId, id, null, snapshot.record);\n            return this.ajax(url, 'GET');\n          } catch (e) {\n            return this._super.apply(this, arguments);\n          }\n        },\n        queryRecord: function queryRecord(store, type, query) {\n          try {\n            var parentQuery = query[parent.property];\n            var resourceQuery = query[resource.property];\n            var endpointQuery = query.endpoint;\n\n            var url = this.buildNestedURL(type, parentQuery, resourceQuery, endpointQuery);\n            return this.ajax(url, 'GET');\n          } catch (e) {\n            return this._super.apply(this, arguments);\n          }\n        },\n        findAll: function findAll() {\n          return this._super.apply(this, arguments);\n        },\n        query: function query(store, type, _query) {\n          try {\n            if (!Ember.isPresent(_query[parent.property])) {\n              throw 'NestedResourceAdapter ' + type + ' is missing property ' + this.parent.property;\n            }\n\n            var parentQuery = _query[parent.property];\n            var resourceQuery = _query[resource.property];\n            var endpointQuery = _query.endpoint;\n\n            var url = this.buildNestedURL(type, parentQuery, resourceQuery, endpointQuery);\n\n            delete _query[parent.property];\n            delete _query[resource.property];\n            delete _query.endpoint;\n\n            return this.ajax(url, 'GET', { data: _query });\n          } catch (e) {\n            return this._super.apply(this, arguments);\n          }\n        },\n        createRecord: function createRecord(store, type, snapshot) {\n          var parentId = snapshot.record.get(this.parent.property);\n\n          var data = {};\n          var serializer = store.serializerFor(type.modelName);\n          serializer.serializeIntoHash(data, type, snapshot, { includeId: true });\n\n          var url = this.buildNestedURL(type, parentId, null, null, snapshot.record);\n          return this.ajax(url, 'POST', { data: data });\n        },\n        deleteRecord: function deleteRecord(store, type, snapshot) {\n          var serializer = store.serializerFor(type.modelName);\n          var parentId = snapshot.record.get(parent.property);\n          var resourceId = snapshot.record.get(serializer.primaryKey);\n          var url = this.buildNestedURL(type, parentId, resourceId, null, snapshot.record);\n\n          return this.ajax(url, 'DELETE');\n        }\n      });\n    }\n  });\n\n  exports.default = ApplicationAdapter;\n});","define('database-dashboard/adapters/database-backup', ['exports', 'database-dashboard/adapters/application', 'ember-data-url-templates'], function (exports, _application, _emberDataUrlTemplates) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _application.default.extend(_emberDataUrlTemplates.default, {\n    urlTemplate: '{+host}/backups{/id}',\n    findAllUrlTemplate: '{+host}/databases/{dbId}/backups',\n    queryUrlTemplate: '{+host}/databases/{dbId}/backups{?query*}',\n\n    urlSegments: {\n      id: function id(type, _id) {\n        return _id;\n      },\n      dbId: function dbId(type, id, snapshot, query) {\n        return query.dbId;\n      }\n    }\n\n  });\n});","define('database-dashboard/adapters/database-feature', ['exports', 'database-dashboard/adapters/application'], function (exports, _application) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var FeatureAdapter = _application.default.makeNestedResourceAdapter({\n    parent: {\n      path: 'databases',\n      property: 'dbId'\n    },\n    resource: {\n      path: 'features',\n      property: 'featureId'\n    }\n  });\n\n  exports.default = FeatureAdapter;\n});","define('database-dashboard/adapters/database-type-version', ['exports', 'database-dashboard/adapters/application'], function (exports, _application) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var DatabaseTypeVersionAdapter = _application.default.extend({});\n\n  exports.default = DatabaseTypeVersionAdapter;\n});","define('database-dashboard/adapters/database-type', ['exports', 'database-dashboard/adapters/application'], function (exports, _application) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var DatabaseTypeAdapter = _application.default.extend({});\n\n  exports.default = DatabaseTypeAdapter;\n});","define('database-dashboard/adapters/database-user', ['exports', 'database-dashboard/adapters/application'], function (exports, _application) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var UserAdapter = _application.default.makeNestedResourceAdapter({\n    parent: {\n      path: 'databases',\n      property: 'dbId'\n    },\n    resource: {\n      path: 'users',\n      property: 'userId'\n    }\n  });\n\n  exports.default = UserAdapter;\n});","define('database-dashboard/adapters/database', ['exports', 'database-dashboard/adapters/application'], function (exports, _application) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var DatabaseAdapter = _application.default.extend({});\n\n  exports.default = DatabaseAdapter;\n});","define('database-dashboard/adapters/operation', ['exports', 'database-dashboard/adapters/application'], function (exports, _application) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var OperationAdapter = _application.default.extend({});\n\n  exports.default = OperationAdapter;\n});","define('database-dashboard/adapters/plan', ['exports', 'database-dashboard/adapters/application'], function (exports, _application) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var PlanAdapter = _application.default.extend({});\n\n  exports.default = PlanAdapter;\n});","define('database-dashboard/app', ['exports', 'database-dashboard/resolver', 'ember-load-initializers', 'database-dashboard/config/environment'], function (exports, _resolver, _emberLoadInitializers, _environment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var App = Ember.Application.extend({\n    modulePrefix: _environment.default.modulePrefix,\n    podModulePrefix: _environment.default.podModulePrefix,\n    Resolver: _resolver.default\n  });\n\n  (0, _emberLoadInitializers.default)(App, _environment.default.modulePrefix);\n\n  exports.default = App;\n});","define('database-dashboard/components/advanced-backup', ['exports', 'moment', 'database-dashboard/models/operation', 'database-dashboard/models/database', 'database-dashboard/helpers/to-utc', 'database-dashboard/helpers/to-timezone'], function (exports, _moment, _operation, _database, _toUtc, _toTimezone) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n  function _asyncToGenerator(fn) {\n    return function () {\n      var gen = fn.apply(this, arguments);\n      return new Promise(function (resolve, reject) {\n        function step(key, arg) {\n          try {\n            var info = gen[key](arg);\n            var value = info.value;\n          } catch (error) {\n            reject(error);\n            return;\n          }\n\n          if (info.done) {\n            resolve(value);\n          } else {\n            return Promise.resolve(value).then(function (value) {\n              step(\"next\", value);\n            }, function (err) {\n              step(\"throw\", err);\n            });\n          }\n        }\n\n        return step(\"next\");\n      });\n    };\n  }\n\n  exports.default = Ember.Component.extend({\n    // Injected\n    db: null,\n    plan: null,\n\n    // Properties\n    periodicBackupsError: null,\n    periodicBackupsActivated: false,\n    periodicBackupsTimeValue: 0,\n    periodicBackupsTZ: _moment.default.tz.guess(),\n    isEnablingPeriodicBackups: false,\n    isSettingPeriodicBackupsTime: false,\n\n    manualBackupLoading: false,\n    manualBackupError: null,\n\n    timezones: _moment.default.tz.names(),\n\n    curPITRTime: null,\n    modalIsOpen: false,\n    isPITRLoading: false,\n    pitrError: null,\n\n    // formatPeriodicBackupsScheduledAt returns a string representation of the\n    // periodicBackupsScheduledAt array. It's only called if there are multiple\n    // values in the array.\n    formatPeriodicBackupsScheduledAt: Ember.computed('db.periodicBackupsScheduledAt', function () {\n      var _this2 = this;\n\n      return this.get('db.periodicBackupsScheduledAt').map(function (h) {\n        return (0, _toTimezone.default)(h, _this2.get('periodicBackupsTZ'));\n      }).sort().join(':00, ') + ':00 ' + this.get('periodicBackupsTZ');\n    }),\n\n    backupTimes: Ember.computed(function () {\n      var res = [];\n      for (var i = 0; i < 24; i++) {\n        if (i < 10) {\n          res.push({ text: '0' + i + ':00', value: i });\n        } else {\n          res.push({ text: i + ':00', value: i });\n        }\n      }\n      return res;\n    }),\n\n    backupHour: function backupHour() {\n      var time = parseInt(this.get('periodicBackupsTime').value);\n      return (0, _toUtc.default)(time, this.get('periodicBackupsTZ'));\n    },\n\n\n    isSetPeriodicBackupsTimeDisabled: Ember.computed('db.periodicBackupsEnabled', 'isSettingPeriodicBackupsTime', 'notPeriodicBackupsVersion', function () {\n      return !this.get('db.periodicBackupsEnabled') || this.get('isSettingPeriodicBackupsTime') || this.get('notPeriodicBackupsVersion');\n    }),\n\n    isManualBackupDisabled: Ember.computed('manualBackupLoading', 'notPeriodicBackupsVersion', function () {\n      return this.get('manualBackupLoading') || this.get('notPeriodicBackupsVersion');\n    }),\n\n    periodicBackupsTime: Ember.computed('periodicBackupsTimeValue', function () {\n      var _this3 = this;\n\n      var backupTimes = this.get('backupTimes');\n      if (!backupTimes) {\n        return null;\n      }\n      var backupTime = backupTimes.find(function (x) {\n        return x.value === _this3.get('periodicBackupsTimeValue');\n      });\n      return backupTime;\n    }),\n\n    reloadPeriodicBackupsTime: function reloadPeriodicBackupsTime() {\n      var backupTime = this.get('db.periodicBackupsScheduledAt')[0];\n      if (backupTime) {\n        var tzTime = (0, _toTimezone.default)(backupTime, this.get('periodicBackupsTZ'));\n        this.set('periodicBackupsTimeValue', tzTime);\n        this._forceSelectRefresh();\n      } else {\n        this.set('periodicBackupsTimeValue', 0);\n      }\n    },\n\n\n    periodicBackupsChanged: Ember.observer('db.periodicBackupsEnabled', function () {\n      var _this4 = this;\n\n      this.set('isEnablingPeriodicBackups', true);\n      this.set('periodicBackupsError', null);\n      var previousValue = this.get('db.periodicBackupsEnabled');\n      this.get('db').save().then(function () {}, function () {\n        _this4.set('periodicBackupsError', \"Something went wrong\");\n        _this4.set('db.periodicBackupsEnabled', previousValue);\n      }).finally(function () {\n        _this4.set('isEnablingPeriodicBackups', false);\n      });\n    }),\n\n    isPGSandbox: Ember.computed('db.plan', function () {\n      return this.get('db.plan') == 'postgresql-sandbox';\n    }),\n\n    supportPITR: Ember.computed('db.typeName', function () {\n      return this.get('db.typeName') == _database.dbTypes.PGSQL;\n    }),\n\n    isPITRDisabled: Ember.computed('isPITRLoading', 'notPITRversion', 'db.{currentOperation.type,firstPitrBackup}', function () {\n      var isLoading = this.get('isPITRLoading');\n      var hasCurrentOperation = this.get('db.currentOperation.type') != null;\n      var notPITRversion = this.get('notPITRversion');\n      var isPGSandbox = this.get('isPGSandbox');\n\n      if (isPGSandbox || isLoading || hasCurrentOperation || notPITRversion) {\n        return true;\n      }\n\n      return this.get('db.firstPitrBackup') == null;\n    }),\n\n    pitrDisabledMessage: Ember.computed('db.currentOperation.{status,type}', 'db.{firstPitrBackup,currentPlan}', function () {\n      var type = this.get('db.currentOperation.type');\n      var status = this.get('db.currentOperation.status');\n      var firstPITRBackup = this.get('db.firstPitrBackup');\n\n      if (this.get('isPGSandbox')) {\n        return 'Only PostgreSQL databases using paid plans have acccess to Point in Time Recovery.';\n      }\n\n      if ((type == null || status == null) && firstPITRBackup != null) {\n        return;\n      }\n\n      if (type == _operation.types.PITR_RESTORE) {\n        switch (status) {\n          case _operation.statuses.PENDING:\n            return 'Point-in-time restoration scheduled, it will start soon.';\n          case _operation.statuses.RUNNING:\n            return 'Point-in-time restoration running.';\n          case _operation.statuses.ERROR:\n            return 'Something went wrong while restoring your database. Please contact the support.';\n        }\n        return 'Unknown status.';\n      }\n\n      if (firstPITRBackup == null) {\n        if (this.get('plan.backup')) {\n          return 'First PITR backup is not yet done. Please wait a couple of minutes for this to be achieved before using this feature.';\n        }\n        return 'Database has no PITR backup available. Please update to a paid plan to get access to this feature.';\n      }\n\n      return 'Another operation is running.';\n    }),\n\n    notPeriodicBackupsVersion: Ember.computed('plan.backup', function () {\n      return !this.get('plan.backup');\n    }),\n\n    notPITRversion: Ember.computed('db.cluster', function () {\n      return !this.get('db.cluster');\n    }),\n\n    isOperationRunning: Ember.computed('db.currentOperation.status', function () {\n      return this.get('db.currentOperation.status') === _operation.statuses.RUNNING;\n    }),\n\n    isOperationPending: Ember.computed('db.currentOperation.status', function () {\n      return this.get('db.currentOperation.status') === _operation.statuses.PENDING;\n    }),\n\n    isOperationError: Ember.computed('db.currentOperation.status', function () {\n      return this.get('db.currentOperation.status') === _operation.statuses.ERROR;\n    }),\n\n    refreshCurrentOperation: function refreshCurrentOperation() {\n      var _this5 = this;\n\n      var refreshIfNonexistent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n      this.get('db').reload().then(function () {\n        if (_this5.get('db.currentOperation.type') == null) {\n          if (refreshIfNonexistent) {\n            setTimeout(function () {\n              _this5.refreshCurrentOperation();\n            }, 10000);\n          }\n          return;\n        }\n        _this5.get('db').belongsTo('currentOperation').reload().then(function () {\n          setTimeout(function () {\n            _this5.refreshCurrentOperation();\n          }, 6000);\n        });\n      });\n    },\n    didInsertElement: function didInsertElement() {\n      this.reloadPeriodicBackupsTime();\n      this.refreshCurrentOperation();\n    },\n\n\n    // This is a dirty hack needed because the select component does not correctly react to value changes...\n    _forceSelectRefresh: function _forceSelectRefresh() {\n      var _this = this;\n      Ember.run.later(function () {\n        _this.$('select').material_select();\n      });\n    },\n\n\n    actions: {\n      backupTimeChanged: function backupTimeChanged(time) {\n        this.set('periodicBackupsTimeValue', time.value);\n      },\n      setPeriodicBackupsTime: function setPeriodicBackupsTime() {\n        var _this6 = this;\n\n        this.set('periodicBackupsError', null);\n        this.set('isSettingPeriodicBackupsTime', true);\n        var backupHour = this.backupHour();\n        this.set('db.periodicBackupsScheduledAt', backupHour);\n\n        this.get('db').save().then(function () {\n          var tzTime = (0, _toTimezone.default)(backupHour, _this6.get('periodicBackupsTZ'));\n          _this6.get('notifier').notify('Backup time has been changed to ' + tzTime + ':00 ' + _this6.get('periodicBackupsTZ'));\n        }, function () {\n          _this6.set('periodicBackupsError', 'Something went wrong. Our team has been notified. Please contact the support for further assistance.');\n        }).finally(function () {\n          _this6.set('isSettingPeriodicBackupsTime', false);\n        });\n      },\n      startPITR: function startPITR() {\n        this.set('modalIsOpen', true);\n        this.set('isPITRLoading', true);\n        this.set('pitrError', null);\n      },\n      closeModal: function closeModal() {\n        this.set('modalIsOpen', false);\n        this.set('isPITRLoading', false);\n      },\n      pitrAccept: function pitrAccept() {\n        var _this7 = this;\n\n        this.set('modalIsOpen', false);\n        var pitrTime = this.get('curPITRTime');\n        this.get('db').pitrRestore(pitrTime).then(function () {\n          _this7.refreshCurrentOperation(true);\n        }).catch(function (error) {\n          if (error.responseJSON && error.responseJSON.error) {\n            _this7.set('pitrError', error.responseJSON.error);\n          } else {\n            _this7.set('pitrError', 'Something went wrong. Our team has been notified. Please contact the support for further assistance.');\n          }\n        }).finally(function () {\n          _this7.set('isPITRLoading', false);\n        });\n      },\n      makeManualBackup: function makeManualBackup() {\n        var _this8 = this;\n\n        _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                  _this8.set('manualBackupLoading', true);\n                  _this8.set('manualBackupError', null);\n                  _context.prev = 2;\n                  _context.next = 5;\n                  return _this8.get('db').manualBackup();\n\n                case 5:\n                  _context.next = 10;\n                  break;\n\n                case 7:\n                  _context.prev = 7;\n                  _context.t0 = _context['catch'](2);\n\n                  if (_context.t0.responseJSON && _context.t0.responseJSON.error) {\n                    _this8.set('manualBackupError', _context.t0.responseJSON.error);\n                  } else {\n                    _this8.set('manualBackupError', 'Something went wrong. Our team has been notified. Please contact the support for further assistance.');\n                  }\n\n                case 10:\n                  _this8.sendAction('reloadBackups');\n                  _this8.set('manualBackupLoading', false);\n\n                case 12:\n                case 'end':\n                  return _context.stop();\n              }\n            }\n          }, _callee, _this8, [[2, 7]]);\n        }))();\n      }\n    }\n  });\n});","define('database-dashboard/components/advanced-elasticsearch-feature', ['exports', 'database-dashboard/models/database'], function (exports, _database) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var AdvancedElasticsearchFeatureComponent = Ember.Component.extend({\n    confirmationModal: Ember.inject.service('confirmation-modal'),\n    // Injected\n    db: null,\n\n    // Internal\n    currentFeature: null,\n\n    featureStatus: Ember.computed('db.features.[]', function () {\n      return this.get('db').featureStatus(this.get('currentFeature.featureName'));\n    }),\n\n    isFeatureActivating: Ember.computed('featureStatus', function () {\n      return this.get('featureStatus') == _database.featurestatus.PENDING;\n    }),\n\n    featureActivationObserver: Ember.observer('featureStatus', function () {\n      if ([_database.featurestatus.PENDING, _database.featurestatus.NOTFOUND].includes(this.get('featureStatus'))) {\n        return;\n      }\n      if (this.get('featureStatus') == _database.featurestatus.FAILED) {\n        this.get('notifier').notify('Failed to activate ' + this.get('currentFeature.displayName') + '. Our team has been notified. Please contact the support for further assistance.');\n        this.send('resetFeature');\n        return;\n      }\n\n      this.get('notifier').notify(this.get('currentFeature.displayName') + ' is activated');\n    }),\n\n    actions: {\n      toggleActivatePluginConfirmation: function toggleActivatePluginConfirmation(feature) {\n        var _this = this;\n\n        this.set('currentFeature', feature);\n        this.get('confirmationModal').display({\n          okLabel: 'Activate',\n          action: function action() {\n            _this.send('activateFeature');\n          },\n          prompt: 'Do you really want to activate ' + feature.get('displayName') + '?',\n          extraIcon: 'mdi-alert-warning',\n          extraMsg: 'Your database will be restarted after the activation. After enabling a plugin, you CANNOT disable it.',\n          cancel: function cancel() {\n            _this.send('resetFeature');\n          }\n        });\n      },\n\n      resetFeature: function resetFeature() {\n        this.set('currentFeature.installed', false);\n      },\n\n      activateFeature: function activateFeature() {\n        var feature = this.get('currentFeature');\n        this.get('db').addFeature(feature.get('featureName'));\n        this.get('db').reloadUntilFeatureIsProvisionned(feature.get('featureName'), 1000);\n      }\n    }\n  });\n\n  exports.default = AdvancedElasticsearchFeatureComponent;\n});","define('database-dashboard/components/advanced-elasticsearch', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var AdvancedElasticsearchComponent = Ember.Component.extend({\n    // Injected\n    db: null\n  });\n\n  exports.default = AdvancedElasticsearchComponent;\n});","define('database-dashboard/components/advanced-influxdb', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var AdvancedInfluxdbComponent = Ember.Component.extend({\n    confirmationModal: Ember.inject.service('confirmation-modal'),\n    // Injected\n    db: null,\n\n    // Internal\n    isAdding: null,\n    policyToAdd: {},\n    influxRetentionPolicies: Ember.A(),\n    policiesSorting: ['name:asc'],\n    sortedInfluxRetentionPolicies: Ember.computed.sort('influxRetentionPolicies', 'policiesSorting'),\n\n    isDeleting: null,\n    policyToDelete: null,\n\n    didInsertElement: function didInsertElement() {\n      var _this = this;\n\n      this.get('db').action(\"list-retention-policies\").then(function (action) {\n        _this.set('influxRetentionPolicies', action.result || Ember.A());\n      }, function (res) {\n        var errorMsg = 'Failed to add the retention policy \\'' + _this.get('policy.name') + '\\'';\n        if (res.error) {\n          errorMsg += ' (' + res.error + ')';\n        }\n        _this.get('notifier').notify(errorMsg);\n      });\n    },\n\n\n    actions: {\n      addRetentionPolicy: function addRetentionPolicy() {\n        var _this2 = this;\n\n        this.set('isAdding', true);\n        var policy = this.get('policyToAdd');\n        this.get('db').action('add-retention-policy', policy).then(function () {\n          _this2.get('notifier').notify(\"Retention policy '\" + policy.name + \"' successfully added\");\n          if (policy.default) {\n            // Remove the default attribute from the old default RP\n            _this2.get('influxRetentionPolicies').forEach(function (rp) {\n              if (rp.default) {\n                Ember.set(rp, \"default\", null);\n              }\n            });\n          }\n          _this2.get('influxRetentionPolicies').addObject(policy);\n          _this2.set('policyToAdd', {});\n        }, function (res) {\n          var errorMsg = 'Failed to add the retention policy \\'' + policy.name + '\\'';\n          if (res.error) {\n            errorMsg += ' (' + res.error + ')';\n          }\n          _this2.get('notifier').notify(errorMsg);\n        }).finally(function () {\n          _this2.set('isAdding', null);\n        });\n      },\n      deleteRetentionPolicy: function deleteRetentionPolicy() {\n        var _this3 = this;\n\n        this.set('isDeleting', true);\n        var policy = this.get('policyToDelete');\n        this.get('db').action('del-retention-policy', policy).then(function () {\n          _this3.get('notifier').notify(\"Retention policy '\" + policy.name + \"' successfully deleted\");\n          _this3.get('influxRetentionPolicies').removeObject(policy);\n        }, function (res) {\n          var errorMsg = 'Failed to add the retention policy \\'' + policy.name + '\\'';\n          if (res.error) {\n            errorMsg += ' (' + res.error + ')';\n          }\n          _this3.get('notifier').notify(errorMsg);\n        }).finally(function () {\n          _this3.set('isDeleting', null);\n          _this3.set('policyToDelete', null);\n        });\n      },\n      toggleDeleteRetentionPolicyConfirmation: function toggleDeleteRetentionPolicyConfirmation(policy) {\n        var _this4 = this;\n\n        this.set('policyToDelete', policy);\n        this.get('confirmationModal').display({\n          okLabel: 'Delete',\n          action: function action() {\n            _this4.send('deleteRetentionPolicy');\n          },\n          prompt: 'Do you really want to delete the retention policy \\'' + policy.name + '\\'?'\n        });\n      }\n    }\n  });\n\n  exports.default = AdvancedInfluxdbComponent;\n});","define('database-dashboard/components/advanced-mongo', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var AdvancedMongoComponent = Ember.Component.extend({\n    confirmationModal: Ember.inject.service('confirmation-modal'),\n    // Injected\n    db: null,\n\n    // Internal\n    errors: null,\n    isActivating: null,\n\n    actions: {\n      activateOplog: function activateOplog() {\n        this.send('activateFeature', {\n          feature: 'oplog',\n          okMsg: 'Oplog activated'\n        });\n      },\n      activateFeature: function activateFeature(opts) {\n        var _this = this;\n\n        var feature = opts.feature;\n        this.set('isActivating', true);\n        this.get('db').addFeature(feature).then(function (data) {\n          if (data.message) {\n            _this.get('notifier').notify(data.message);\n          } else {\n            _this.get('notifier').notify(opts.okMsg);\n          }\n        }, function (errors) {\n          if (errors.error) {\n            _this.get('notifier').notify('Failed to activate ' + feature + ', ' + errors.error);\n          }\n          _this.set('errors', errors);\n        }).finally(function () {\n          _this.set('isActivating', null);\n        });\n      },\n      toggleActivateOplogConfirmation: function toggleActivateOplogConfirmation() {\n        var _this2 = this;\n\n        this.get('confirmationModal').display({\n          okLabel: 'Create',\n          action: function action() {\n            _this2.send('activateOplog');\n          },\n          prompt: 'Do you really want to activate Oplog?'\n        });\n      }\n    }\n  });\n\n  exports.default = AdvancedMongoComponent;\n});","define('database-dashboard/components/advanced-mysql', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var AdvancedMySQLComponent = Ember.Component.extend({\n    // Injected\n    db: null,\n    sqlModes: [],\n    isLoading: true,\n    isSubmitting: false,\n    error: null,\n    allSQLModes: [\"ALLOW_INVALID_DATES\", \"ANSI\", \"ANSI_QUOTES\", \"DB2\", \"ERROR_FOR_DIVISION_BY_ZERO\", \"HIGH_NOT_PRECEDENCE\", \"IGNORE_SPACE\", \"MAXDB\", \"MSSQL\", \"MYSQL323\", \"MYSQL40\", \"NO_AUTO_CREATE_USER\", \"NO_AUTO_VALUE_ON_ZERO\", \"NO_BACKSLASH_ESCAPES\", \"NO_DIR_IN_CREATE\", \"NO_ENGINE_SUBSTITUTION\", \"NO_FIELD_OPTIONS\", \"NO_KEY_OPTIONS\", \"NO_TABLE_OPTIONS\", \"NO_UNSIGNED_SUBTRACTION\", \"NO_ZERO_DATE\", \"NO_ZERO_IN_DATE\", \"ONLY_FULL_GROUP_BY\", \"ORACLE\", \"PAD_CHAR_TO_FULL_LENGTH\", \"PIPES_AS_CONCAT\", \"POSTGRESQL\", \"REAL_AS_FLOAT\", \"STRICT_ALL_TABLES\", \"STRICT_TRANS_TABLES\", \"TRADITIONAL\"],\n\n    didInsertElement: function didInsertElement() {\n      this.loadSQLMode();\n    },\n    loadSQLMode: function loadSQLMode() {\n      var _this = this;\n\n      this.get('db').sqlMode().then(function (sqlMode) {\n        if (sqlMode === \"\") {\n          _this.set('sqlModes', []);\n        } else {\n          _this.set('sqlModes', sqlMode.split(','));\n        }\n      }).finally(function () {\n        _this.set('isLoading', false);\n        _this.set(\"isSubmitting\", false);\n      });\n    },\n\n\n    areInputsDisabled: Ember.computed('isSubmitting', 'canUpdateConfig', function () {\n      return this.get('isSubmitting') || !this.get('db.version.canUpdateConfig');\n    }),\n\n    actions: {\n      setSQLMode: function setSQLMode() {\n        var _this2 = this;\n\n        this.set(\"isSubmitting\", true);\n        this.set(\"error\", null);\n        var mode = this.get('sqlModes').join(',');\n        this.get('db').setSQLMode(mode).catch(function (e) {\n          _this2.set('error', e.error);\n        }).finally(function () {\n          _this2.loadSQLMode();\n        });\n      }\n    }\n  });\n\n  exports.default = AdvancedMySQLComponent;\n});","define(\"database-dashboard/components/advanced-postgresql\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var AdvancedPostgresqlComponent = Ember.Component.extend({\n    // Injected\n    db: null,\n\n    // Internal\n    extensionsList: [\"btree_gist\", \"citext\", \"cube\", \"dblink\", \"dict_int\", \"earthdistance\", \"fuzzystrmatch\", \"hstore\", \" intarray\", \"isn\", \"ltree\", \"pg_repack\", \"pg_stat_statements\", \"pg_trgm\", \"pgcrypto\", \"pgrowlocks\", \"plpgsql\", \"postgis\", \"postgis_tiger_geocoder\", \"postgis_topology\", \"postgres_fdw\", \"tablefunc\", \"unaccent\", \"uuid-ossp\"],\n\n    enabledExtension: null\n  });\n\n  exports.default = AdvancedPostgresqlComponent;\n});","define('database-dashboard/components/advanced-redis', ['exports', 'database-dashboard/models/database'], function (exports, _database) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var AdvancedRedisComponent = Ember.Component.extend({\n    // Injected\n    db: null,\n\n    hasRDB: Ember.computed('db', function () {\n      return this.get('db').hasFeature(_database.features.REDIS_RDB);\n    }),\n    hasAOF: Ember.computed('db', function () {\n      return this.get('db').hasFeature(_database.features.REDIS_AOF);\n    }),\n    hasCacheMode: Ember.computed('db', function () {\n      return this.get('db').hasFeature(_database.features.REDIS_CACHE);\n    }),\n\n    actions: {\n      toggleRDB: function toggleRDB() {\n        return this.send('toggleFeature', _database.features.REDIS_RDB, 'RDB');\n      },\n      toggleAOF: function toggleAOF() {\n        return this.send('toggleFeature', _database.features.REDIS_AOF, 'AOF');\n      },\n      toggleCacheMode: function toggleCacheMode() {\n        return this.send('toggleFeature', _database.features.REDIS_CACHE, 'CacheMode');\n      },\n      toggleFeature: function toggleFeature(feature, propSuffix) {\n        var _this = this;\n\n        var promise = null;\n        var errorProp = 'error' + propSuffix;\n        var loadingProp = 'toggling' + propSuffix;\n\n        this.set(errorProp, null);\n        this.set(loadingProp, true);\n        if (this.get('db').hasFeature(feature)) {\n          promise = this.get('db').removeFeature(feature);\n        } else {\n          promise = this.get('db').addFeature(feature);\n        }\n\n        promise.then(function () {\n          _this.get('db').reload();\n        }, function (error) {\n          _this.set(errorProp, error);\n        }).finally(function () {\n          _this.set(loadingProp, null);\n        });\n      }\n    }\n  });\n\n  exports.default = AdvancedRedisComponent;\n});","define('database-dashboard/components/basic-dropdown', ['exports', 'ember-basic-dropdown/components/basic-dropdown'], function (exports, _basicDropdown) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _basicDropdown.default;\n    }\n  });\n});","define('database-dashboard/components/basic-dropdown/content-element', ['exports', 'ember-basic-dropdown/components/basic-dropdown/content-element'], function (exports, _contentElement) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _contentElement.default;\n    }\n  });\n});","define('database-dashboard/components/basic-dropdown/content', ['exports', 'ember-basic-dropdown/components/basic-dropdown/content'], function (exports, _content) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _content.default;\n    }\n  });\n});","define('database-dashboard/components/basic-dropdown/trigger', ['exports', 'ember-basic-dropdown/components/basic-dropdown/trigger'], function (exports, _trigger) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _trigger.default;\n    }\n  });\n});","define('database-dashboard/components/button-group', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    content: null,\n    selected: null,\n    action: null,\n    actions: {\n      click: function click(position) {\n        this.set(\"selected\", position);\n        return this.get('action')(position);\n      }\n    },\n    didInsertElement: function didInsertElement() {\n      this._super();\n      if (Ember.isEmpty(this.get(\"selected\"))) {\n        return this.set(\"selected\", this.get(\"content\")[0].value);\n      }\n    }\n  });\n});","define('database-dashboard/components/c3-chart', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    tagName: 'div',\n    classNames: ['c3-chart-component'],\n    data: {},\n    axis: {},\n    regions: {},\n    bar: {},\n    pie: {},\n    donut: {},\n    gauge: {},\n    grid: {},\n    legend: {},\n    tooltip: {},\n    subchart: {},\n    zoom: {},\n    point: {},\n    line: {},\n    area: {},\n    size: {},\n    padding: {},\n    color: {},\n    transition: {},\n    _chart: null,\n\n    chart: Ember.computed('config', function () {\n      if (Ember.isEmpty(this.get('_chart'))) {\n        var container = this.$().get(0);\n        if (Ember.isEmpty(container)) {\n          return void 0;\n        } else {\n          var config = this.get('_config');\n          var chart = window.c3.generate(config);\n          this.set('_chart', chart);\n          return chart;\n        }\n      } else {\n        return this.get('_chart');\n      }\n    }),\n\n    _config: Ember.computed('data', 'axis', 'regions', 'bar', 'pie', 'donut', 'gauge', 'grid', 'legend', 'tooltip', 'subchart', 'zoom', 'point', 'line', 'area', 'size', 'padding', 'color', 'transition', function () {\n      var _this = this;\n\n      var c = this.getProperties(['data', 'axis', 'regions', 'bar', 'pie', 'donut', 'gauge', 'grid', 'legend', 'tooltip', 'subchart', 'zoom', 'point', 'line', 'area', 'size', 'padding', 'color', 'transition']);\n      Ember.A(['oninit', 'onrendered', 'onmouseover', 'onmouseout', 'onresize', 'onresized']).forEach(function (eventname) {\n        c[eventname] = function () {\n          _this.sendAction(eventname, _this);\n        };\n      });\n      c.bindto = this.$().get(0);\n      return c;\n    }),\n\n    dataDidChange: Ember.observer('data', function () {\n      var chart = this.get('chart');\n      if (Ember.isEmpty(chart)) {\n        return;\n      }\n      var data = this.get('data');\n      if (Ember.isEmpty(data)) {\n        return;\n      }\n      chart.load(data);\n    }),\n\n    didInsertElement: function didInsertElement() {\n      var controller = this.get('targetObject');\n      var propertyKey = void 0;\n      var data = this.get('data');\n      for (var prop in controller) {\n        if (controller.hasOwnProperty(prop)) {\n          if (controller[prop] === data) {\n            propertyKey = prop;\n            break;\n          }\n        }\n      }\n      if (!Ember.isEmpty(propertyKey)) {\n        controller.addObserver(propertyKey, this, this.dataDidChange);\n      }\n      this.dataDidChange();\n    }\n  });\n});","define('database-dashboard/components/confirmation-modal', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    // injected\n    context: null,\n\n    actions: {\n      confirmAction: function confirmAction() {\n        this.set('errors', null);\n        var ctx = this.get('context');\n        if (ctx.validationText && ctx.validationText != this.get('validationText')) {\n          this.set('errors', ['validation text should match \"' + ctx.validationText + '\"']);\n          return;\n        }\n        if (ctx.action) {\n          ctx.action();\n        }\n        Ember.$(\"#confirmationModal\").modal('close');\n        this.set('validationText', null);\n      }\n    }\n  });\n});","define('database-dashboard/components/database-access', ['exports', 'database-dashboard/models/database'], function (exports, _database) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    confirmationModal: Ember.inject.service('confirmation-modal'),\n\n    // Injected\n    db: null,\n\n    // Internal\n    errors: null,\n    isTogglingInternetAccess: false,\n    isTogglingForceSSL: false,\n\n    hasForceSSL: Ember.computed.oneWay('db.hasForceSSL'),\n    hasInternetAccess: Ember.computed.oneWay('db.hasInternetAccess'),\n\n    isAccessLoading: Ember.computed('isTogglingInternetAccess', 'isInternetAccessLoading', 'isTogglingForceSSL', 'isForceSSLLoading', function () {\n      return this.get('isTogglingInternetAccess') || this.get('isInternetAccessLoading') || this.get('isTogglingForceSSL') || this.get('isForceSSLLoading');\n    }),\n\n    isInternetCheckboxDisabled: Ember.computed('db.hasForceSSL', 'internetAccessError', 'isAccessLoading', function () {\n      return !this.get('db.hasForceSSL') || this.get('internetAccessError') != \"\" || this.get('isAccessLoading');\n    }),\n\n    isForceSSLCheckboxDisabled: Ember.computed('db.hasInternetAccess', 'isAccessLoading', function () {\n      return this.get('db.hasInternetAccess') || this.get('isAccessLoading');\n    }),\n\n    publiclyAvailableStatus: Ember.computed('db.features.[]', function () {\n      return this.get('db').featureStatus(_database.features.PUBLICLY_AVAILABLE);\n    }),\n\n    isInternetAccessLoading: Ember.computed('publiclyAvailableStatus', function () {\n      return this.get('publiclyAvailableStatus').startsWith(_database.featurestatus.PENDING);\n    }),\n\n    internetAccessError: Ember.computed('publiclyAvailableStatus', function () {\n      if (this.get('publiclyAvailableStatus') == _database.featurestatus.FAILED) {\n        return \"An error occurred when applying this feature. Our team has been notified. Please contact the support for further assistance.\";\n      } else {\n        return \"\";\n      }\n    }),\n\n    forceSSLStatus: Ember.computed('db.features.[]', function () {\n      return this.get('db').featureStatus(_database.features.FORCE_SSL);\n    }),\n\n    isForceSSLLoading: Ember.computed('forceSSLStatus', function () {\n      return this.get('forceSSLStatus').startsWith(_database.featurestatus.PENDING);\n    }),\n\n    forceSSLError: Ember.computed('forceSSLStatus', function () {\n      if (this.get('forceSSLStatus') == _database.featurestatus.FAILED) {\n        return \"An error occurred when applying this feature. Our team has been notified. Please contact the support for further assistance.\";\n      } else {\n        return \"\";\n      }\n    }),\n\n    actions: {\n      toggleActivateInternetAccess: function toggleActivateInternetAccess(checker) {\n        if (checker.checked) {\n          this.send('enableFeature', {\n            feature: _database.features.PUBLICLY_AVAILABLE,\n            notificationMsg: 'Your database will be accessible from anywhere in an instant',\n            toggleProperty: 'isTogglingInternetAccess',\n            boundProperty: 'hasInternetAccess'\n          });\n        } else {\n          this.send('disableFeature', {\n            feature: _database.features.PUBLICLY_AVAILABLE,\n            notificationMsg: 'Your database is now only accessible from our internal network',\n            toggleProperty: 'isTogglingInternetAccess',\n            boundProperty: 'hasInternetAccess'\n          });\n        }\n      },\n      toggleActivateForceSSL: function toggleActivateForceSSL(checker) {\n        var _this = this;\n\n        if (checker.checked) {\n          this.send('enableFeature', {\n            feature: _database.features.FORCE_SSL,\n            notificationMsg: \"Your database is now only accessible using encrypted connections\",\n            toggleProperty: 'isTogglingForceSSL',\n            boundProperty: 'hasForceSSL'\n          });\n        } else {\n          this.set('isTogglingForceSSL', true);\n          this.get('confirmationModal').display({\n            okLabel: 'I understand',\n            action: function action() {\n              _this.send('disableForceSSL');\n            },\n            prompt: 'While disabling Force TLS, your database will be restarted, a downtime might be noticed',\n            extraIcon: 'mdi-alert-warning',\n            cancel: function cancel() {\n              _this.send('cancelForceSSLDeactivation');\n            }\n          });\n        }\n      },\n      disableForceSSL: function disableForceSSL() {\n        this.send('disableFeature', {\n          feature: _database.features.FORCE_SSL,\n          notificationMsg: 'Your database is now accessible using TLS/SSL or unencrypted',\n          toggleProperty: 'isTogglingForceSSL',\n          boundProperty: 'hasForceSSL'\n        });\n      },\n      cancelForceSSLDeactivation: function cancelForceSSLDeactivation() {\n        this.set('isTogglingForceSSL', false);\n        this.set('hasForceSSL', true);\n      },\n      enableFeature: function enableFeature(opts) {\n        var _this2 = this;\n\n        this.set(opts.toggleProperty, true);\n        this.get('db').addFeature(opts.feature).then(function () {\n          _this2.get('notifier').notify(opts.notificationMsg);\n          _this2.get('db').reloadUntilFeatureIsProvisionned(opts.feature, 1000);\n        }, function (responseJSON) {\n          _this2.set(opts.boundProperty, !_this2.get(opts.boundProperty));\n          if (responseJSON.error) {\n            _this2.get('notifier').notify(responseJSON.error);\n          } else {\n            _this2.get('notifier').notify(\"something went wrong when enabling '\" + opts.feature + \"'\");\n          }\n        }).finally(function () {\n          _this2.set(opts.toggleProperty, false);\n        });\n      },\n      disableFeature: function disableFeature(opts) {\n        var _this3 = this;\n\n        this.set(opts.toggleProperty, true);\n        this.get('db').removeFeature(opts.feature).then(function () {\n          _this3.get('notifier').notify(opts.notificationMsg);\n        }, function (responseJSON) {\n          _this3.set(opts.boundProperty, !_this3.get(opts.boundProperty));\n          if (responseJSON.error) {\n            _this3.get('notifier').notify(responseJSON.error);\n          } else {\n            _this3.get('notifier').notify(\"something went wrong when disabling '\" + opts.feature + \"'\");\n          }\n        }).finally(function () {\n          _this3.set(opts.toggleProperty, null);\n        });\n      }\n    }\n  });\n});","define('database-dashboard/components/database-download-certificates', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var DownloadCertificatesComponent = Ember.Component.extend({\n    // Injected\n    db: null\n  });\n\n  exports.default = DownloadCertificatesComponent;\n});","define('database-dashboard/components/database-general', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    didInsertElement: function didInsertElement() {\n      Ember.$('#tls-support.tooltipped').tooltip();\n      Ember.$('#internet-access.tooltipped').tooltip();\n    }\n  });\n});","define('database-dashboard/components/database-logs', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    // Injected\n    db: null,\n\n    // HTML\n    tagName: 'pre',\n    classNames: ['database-logs'],\n\n    // Internal\n    loggingInitialized: false,\n    logsPreload: 500,\n    logs: [],\n    logsContent: Ember.computed('logs.[]', function () {\n      var _this = this;\n\n      // After the pre/code view has been updated, scroll to the bottom\n      Ember.run.scheduleOnce('afterRender', function () {\n        _this.element.scrollTop = 999999;\n        _this.element.children[0].scrollTop = 999999;\n      });\n      return Ember.$(\"<div/>\").text(this.get('logs').join('\\n')).html();\n    }),\n\n    didInsertElement: function didInsertElement() {\n      var _this2 = this;\n\n      if (this.get('loggingInitialized')) {\n        return;\n      }\n      this.set('loggingInitialized', true);\n      this.get('db').logsURL().then(function (res) {\n        var request = Ember.$.ajax({ method: \"GET\", url: res.url + \"&n=\" + _this2.get('logsPreload'), dataType: 'text' });\n        request.done(function (data) {\n          if (data) {\n            var logs = _this2.get('logs');\n            logs.pushObjects(data.split(\"\\n\"));\n          }\n\n          // https -> wss | http -> ws\n          var wsURL = res.url.replace(\"http\", \"ws\") + \"&stream=true\";\n          var ws = new WebSocket(wsURL);\n          ws.onopen = function (open) {\n            Ember.Logger.debug('Connected to:', open.target.url);\n          };\n\n          ws.onmessage = function (event) {\n            var content = JSON.parse(event.data);\n            if (content.event == \"log\") {\n              var strippedLine = content.log.replace(/^\\s+|\\s+$/g, '');\n              _this2.get('logs').pushObject(strippedLine);\n            }\n          };\n        });\n      });\n    }\n  });\n});","define('database-dashboard/components/database-upgrade', ['exports', 'database-dashboard/models/operation'], function (exports, _operation) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    confirmationModal: Ember.inject.service('confirmation-modal'),\n    // Injected\n    db: null,\n    store: null,\n\n    // Internals\n    isUpgrading: false,\n    hasError: false,\n\n    upgradeMessage: null,\n    loadingOperation: true,\n\n    // Computed\n    isDisabled: Ember.computed('isUpgrading', 'hasError', 'db.isTimescaleDB', function () {\n      return this.get('isUpgrading') || this.get('hasError') || !this.get('isRunning') || this.get('db.isTimescaleDB');\n    }),\n\n    isRunning: Ember.computed('db.status', function () {\n      return this.get('db.status') == 'running';\n    }),\n\n    didInsertElement: function didInsertElement() {\n      var _this = this;\n\n      this.get('db.currentOperation').then(function () {\n        _this.set('loadingOperation', false);\n      });\n\n      if (!this.get('isRunning')) {\n        this.set('upgradeMessage', 'The database status must be \"running\" to be able to run an upgrade. It is currently \"' + this.get('db.status') + '\".');\n      }\n    },\n\n    // Observer\n    databaseStatusObserver: Ember.observer('db.status', function () {\n      if (!this.get('isRunning')) {\n        this.set('upgradeMessage', 'The database status must be \"running\" to be able to run an upgrade. It is currently \"' + this.get('db.status') + '\".');\n      }\n    }),\n\n    currentOperationObserver: Ember.observer('db.currentOperation', 'db.currentOperation.status', function () {\n      var _this2 = this;\n\n      this.get('db.currentOperation').then(function (op) {\n        // if there is no currentOperation related to this DB\n        if (op === null) {\n          return;\n        }\n        var status = op.get('status');\n        // If the controller is not currently upgrading but the operation have a status\n        // meaning upgrading\n        if (!_this2.get('isUpgrading') && op.get('isUpgrading')) {\n          _this2.set('isUpgrading', true);\n          var adapter = _this2.get('store').adapterFor('operation');\n          var url = adapter.buildURL('operation', op.get('id'));\n          var getOperationPromise = _this2.get('db').monitorOperation(url);\n          _this2.handleGetOperationPromise(getOperationPromise);\n        }\n        var msg = null;\n        if (op.get('type') == _operation.types.UPGRADE) {\n          switch (status) {\n            case _operation.statuses.PENDING:\n              msg = 'Database upgrade is pending';\n              break;\n            case _operation.statuses.RUNNING:\n              msg = 'Database upgrade is running';\n              break;\n            case _operation.statuses.FINISHED:\n              msg = 'Database upgrade finished successfully';\n              break;\n            case _operation.statuses.USER_ERROR:\n              msg = op.get('error');\n              break;\n            case _operation.statuses.ERROR:\n              _this2.set('hasError', true);\n              msg = op.get('error');\n              if (Ember.isEmpty(msg)) {\n                msg = 'An error occurred during the upgrade process. Please contact the support for further assistance.';\n              }\n              break;\n          }\n        } else {\n          msg = \"Another operation is in progress on the database\";\n        }\n        _this2.set('upgradeMessage', msg);\n      });\n    }),\n\n    // Methods\n    handleGetOperationPromise: function handleGetOperationPromise(promise) {\n      var _this3 = this;\n\n      promise.then(function () {\n        // Upgrade finished successfully\n        _this3.get('db').reload();\n      }).finally(function () {\n        _this3.set('isUpgrading', false);\n      });\n    },\n\n\n    actions: {\n      upgradeDatabase: function upgradeDatabase() {\n        var _this4 = this;\n\n        this.set('isUpgrading', true);\n\n        var _get$upgrade = this.get('db').upgrade(),\n            triggered = _get$upgrade.triggered,\n            done = _get$upgrade.done;\n\n        triggered.then(function () {\n          // If success requesting the upgrade of the DB\n        }, function () {\n          // If error requesting the DB upgrade\n          _this4.set('upgradeMessage', 'An error occurred during the upgrade process. Our team has been notified. Please contact the support for further assistance.');\n        });\n\n        this.handleGetOperationPromise(done);\n      },\n      toggleUpgradeDatabaseConfirmation: function toggleUpgradeDatabaseConfirmation() {\n        var _this5 = this;\n\n        var versionString = this.get('db.nextVersion.toFullVersionString');\n        this.get('confirmationModal').display({\n          okLabel: 'Upgrade',\n          action: function action() {\n            _this5.send(\"upgradeDatabase\");\n          },\n          prompt: 'Do you really want to upgrade to ' + versionString + '?'\n        });\n      }\n    }\n  });\n});","define('database-dashboard/components/database/database-management', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    confirmationModal: Ember.inject.service('confirmation-modal'),\n    // Inject\n    db: null,\n\n    // Hooks\n    didInsertElement: function didInsertElement() {\n      this.loadDatabases();\n    },\n\n\n    hasLoadingOverlay: Ember.computed('loadingDatabases', 'creating', 'deleting', function () {\n      return this.get('loadingDatabases') || this.get('creating') || this.get('deleting');\n    }),\n\n    // Computed\n    content: Ember.computed('databases.[]', function () {\n      if (!this.get('databases')) {\n        return ['first'];\n      } else {\n        return this.get('databases');\n      }\n    }),\n\n    // Methods\n    loadDatabases: function loadDatabases() {\n      var _this = this;\n\n      this.set('loadingDatabases', true);\n      this.get('db').databases().then(function (dbs) {\n        _this.set('databases', dbs);\n      }).catch(function (res) {\n        _this.get('notifier').notify('Something wrong happened');\n      }).finally(function () {\n        _this.set('loadingDatabases', false);\n      });\n    },\n    deleteDatabase: function deleteDatabase(db) {\n      var _this2 = this;\n\n      this.set('deleting', true);\n      this.get('db').deleteDatabase(db.name).then(function () {\n        _this2.loadDatabases();\n        _this2.get('notifier').notify('Database ' + db.name + ' has been deleted.');\n      }).catch(function (res) {\n        _this2.get('notifier').notify('Something wrong happened: ' + res.error);\n      }).finally(function () {\n        _this2.set('deleting', false);\n      });\n    },\n    resetDatabase: function resetDatabase(db) {\n      var _this3 = this;\n\n      this.set('deleting', true);\n      this.get('db').resetDatabase(db.name).then(function () {\n        _this3.loadDatabases();\n        _this3.get('notifier').notify('Database ' + db.name + ' has been reseted.');\n      }).catch(function (res) {\n        _this3.get('notifier').notify('Something wrong happened: ' + res.error);\n      }).finally(function () {\n        _this3.set('deleting', false);\n      });\n    },\n\n\n    actions: {\n      confirmDeleteDatabase: function confirmDeleteDatabase(db) {\n        var _this4 = this;\n\n        this.get('confirmationModal').display({\n          prompt: 'Do you really want to delete the database \"' + db.name + '\"?',\n          extraMsg: Ember.String.htmlSafe('This operation will delete the database \"' + db.name + '\", including all its data, ' + 'be sure you don\\'t need these data anymore or that you have an up-to-date backup. ' + '<br><br>To validate the operation please type <b>the name of the database</b>:'),\n          validationText: db.name,\n          okLabel: 'drop',\n          action: function action() {\n            return _this4.deleteDatabase(db);\n          }\n        });\n      },\n      confirmResetDatabase: function confirmResetDatabase(db) {\n        var _this5 = this;\n\n        this.get('confirmationModal').display({\n          prompt: 'Do you really want to reset the database \"' + db.name + '\"?',\n          extraMsg: Ember.String.htmlSafe('This operation will reset the database \"' + db.name + '\", ' + 'the database will keep existing but its data will be wiped. ' + 'Be sure you don\\'t need these data anymore or that you have an up-to-date backup. ' + '<br><br>To validate the operation please type <b>the name of the database</b>:'),\n          validationText: db.name,\n          okLabel: 'reset',\n          action: function action() {\n            return _this5.resetDatabase(db);\n          }\n        });\n      },\n      createDatabase: function createDatabase() {\n        var _this6 = this;\n\n        var name = this.get('newDbName');\n        this.set('errors', null);\n        this.set('creating', true);\n        this.get('db').createDatabase(name).then(function () {\n          _this6.loadDatabases();\n          _this6.set('newDbName', '');\n          _this6.get('notifier').notify('Database ' + name + ' has been created.');\n        }).catch(function (res) {\n          var errors = res.errors ? Object.values(res.errors).toString() : res.error;\n          _this6.get('notifier').notify('Something wrong happened: ' + errors);\n          _this6.set('errors', [errors]);\n        }).finally(function () {\n          _this6.set('creating', false);\n        });\n      }\n    }\n  });\n});","define('database-dashboard/components/datetime-picker', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    timezone: moment.tz.guess(),\n    timezones: moment.tz.names(),\n    curMinute: \"00\",\n    curHour: \"00\",\n    curDate: Ember.computed(function () {\n      return moment().format(\"L\");\n    }),\n    dates: Ember.computed(function () {\n      return Array(7).fill().map(function (_, i) {\n        return moment().subtract(i, 'days').format(\"L\");\n      });\n    }),\n    hours: Ember.computed(function () {\n      var res = [];\n      for (var i = 0; i < 24; i++) {\n        if (i < 10) {\n          res.push('0' + i);\n        } else {\n          res.push('' + i);\n        }\n      }\n      return res;\n    }),\n    minutes: Ember.computed(function () {\n      var res = [];\n      for (var i = 0; i < 60; i++) {\n        if (i < 10) {\n          res.push('0' + i);\n        } else {\n          res.push('' + i);\n        }\n      }\n      return res;\n    }),\n\n    didInsertElement: function didInsertElement() {\n      this.sendAction('onChange', this.formatedDate());\n    },\n    formatedDate: function formatedDate() {\n      var zoneFormat = moment.tz(this.get('timezone')).format('Z');\n      var curDateFormat = moment(this.get('curDate')).format('YYYY-MM-DD');\n      return curDateFormat + 'T' + this.get('curHour') + ':' + this.get('curMinute') + ':00' + zoneFormat;\n    },\n\n\n    onPropertyChange: Ember.observer('timezone', 'curMinute', 'curHour', 'curDate', function () {\n      this.sendAction('onChange', this.formatedDate());\n    })\n  });\n});","define('database-dashboard/components/db-metrics', ['exports', 'database-dashboard/helpers/bytes', 'database-dashboard/models/instance', 'database-dashboard/models/database'], function (exports, _bytes, _instance, _database) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    cont: null,\n    tooltipPos: null,\n    tooltipUpdate: null,\n    metricsTime: null,\n    timezone: null,\n    cpuAxis: null,\n    memAxis: null,\n    swapAxis: null,\n    showGraphs: true,\n    showMore: false,\n    icon: \"visibility_off\",\n\n    cpuURLS: null,\n    cpuTypes: [\"cpu\"],\n\n    memoryURLS: null,\n    memoryTypes: [\"memory\", \"swap\"],\n    memoryColors: {\n      \"memory\": \"#03A9F4\",\n      \"swap\": \"#DB909A\"\n    },\n\n    diskUsedAxis: null,\n    diskUsedURLs: null,\n    diskUsedTypes: [\"disk usage\"], // Is displayed in the tooltip\n\n    diskioUsedAxis: null,\n    diskioUsedURLs: null,\n    diskioUsedTypes: [\"reads\", \"writes\"], // Is displayed in the tooltip\n    diskioColors: {\n      \"writes\": \"#03A9F4\", // light blue\n      \"reads\": \"#f7ae04\" // yellow-orange\n    },\n\n    database: null,\n    databasePlan: null,\n    instance: null,\n    initDone: false,\n\n    didInsertElement: function didInsertElement() {\n      this.initGraph();\n    },\n    metricsTimeObserver: Ember.observer('metricsTime', function () {\n      this.initGraph();\n    }),\n    dbObserver: Ember.observer('database', function () {\n      this.initGraph();\n    }),\n\n    isDBNode: Ember.computed(\"instance.type\", function () {\n      return this.get(\"instance.type\") == _instance.instanceTypes.DB_NODE;\n    }),\n\n    areDiskMetricsEnabled: Ember.computed(\"database.flags\", function () {\n      return !this.get('database.flags').contains(_database.disableDiskMetricsGraphFlag);\n    }),\n\n    initGraph: function initGraph() {\n      var _this = this;\n\n      var xAxis = {\n        padding: 0,\n        tick: {\n          values: []\n        }\n      };\n      var cpuAxis = {\n        x: xAxis,\n        y: {\n          min: 0,\n          max: 100,\n          width: 40,\n          padding: {\n            top: 0,\n            bottom: 0\n          },\n          tick: {\n            count: 3,\n            format: function format(d) {\n              return Math.floor(100 * d) / 100 + \"%\";\n            }\n          }\n        }\n      };\n      var memAxis = {\n        x: xAxis,\n        y: {\n          width: 40,\n          padding: {\n            top: 0,\n            bottom: 0\n          },\n          min: 0,\n          max: 1,\n          tick: {\n            count: 3,\n            format: _bytes.default\n          }\n        }\n      };\n\n      var diskUsedAxis = {\n        x: xAxis,\n        y: {\n          width: 40,\n          padding: {\n            top: 0,\n            bottom: 0\n          },\n          min: 0,\n          max: 1,\n          tick: {\n            count: 3,\n            format: _bytes.default\n          }\n        }\n      };\n      var diskioUsedAxis = {\n        x: xAxis,\n        y: {\n          width: 40,\n          padding: {\n            top: 0,\n            bottom: 0\n          },\n          min: 0,\n          max: 1,\n          tick: {\n            count: 3,\n            format: function format(val) {\n              // This is called for every point in the chart\n              return Math.floor(100 * val) / 100 + \" io/s\";\n            }\n          }\n        }\n      };\n\n      this.get(\"database.currentPlan\").then(function (plan) {\n        _this.set(\"databasePlan\", plan);\n      });\n\n      var baseURL = window.EmberENV.apiBaseURI + \"/databases/\" + this.get(\"database.id\") + \"/instances/\" + this.get(\"instance.id\") + \"/metrics\";\n      this.setProperties({\n        cpuAxis: cpuAxis,\n        memAxis: memAxis,\n        memoryURLS: [baseURL + \"/memory?since=\" + this.get('metricsTime'), baseURL + \"/swap?since=\" + this.get('metricsTime')],\n        cpuURLS: [baseURL + \"/cpu?since=\" + this.get('metricsTime')],\n        diskUsedAxis: diskUsedAxis,\n        diskUsedURLs: [baseURL + \"/disk?since=\" + this.get('metricsTime')],\n        diskioUsedAxis: diskioUsedAxis,\n        diskioUsedURLs: [baseURL + \"/diskio?since=\" + this.get('metricsTime'),\n        // We currently need to call this twice, even though it's the same endpoint to get the reads and the writes.\n        // We will fix this in the upcoming release of the new DB dashboard.\n        baseURL + \"/diskio?since=\" + this.get('metricsTime')]\n      });\n      return this.set(\"initDone\", true);\n    },\n\n    setProperties: function setProperties(properties) {\n      var key, results, value;\n      results = [];\n      for (key in properties) {\n        value = properties[key];\n        results.push(this.set(key, value));\n      }\n      return results;\n    }\n  });\n});","define('database-dashboard/components/detail-layout', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var DetailLayoutComponent = Ember.Component.extend({\n    endLoading: 'addLayoutOffset',\n\n    willInsertElement: function willInsertElement() {\n      this.sendAction('endLoading');\n    }\n  });\n\n  exports.default = DetailLayoutComponent;\n});","define('database-dashboard/components/ember-modal-dialog-positioned-container', ['exports', 'ember-modal-dialog/components/positioned-container'], function (exports, _positionedContainer) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _positionedContainer.default;\n    }\n  });\n});","define('database-dashboard/components/ember-wormhole', ['exports', 'ember-wormhole/components/ember-wormhole'], function (exports, _emberWormhole) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _emberWormhole.default;\n    }\n  });\n});","define('database-dashboard/components/help-dropdown', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var HelpDropdownComponent = Ember.Component.extend({\n    tagName: 'a',\n    classNames: ['dropdown-button', 'navbar-menu', 'navbar-help-menu'],\n    attributeBindings: ['inDuration', 'outDuration', 'constrainWidth', 'hover', 'gutter', 'belowOrigin'],\n\n    belowOrigin: true,\n    constrainWidth: false,\n\n    didInsertElement: function didInsertElement() {\n      this._super(this, arguments);\n      Ember.run.scheduleOnce('afterRender', this, this._setupDropdown);\n    },\n\n    _setupDropdown: function _setupDropdown() {\n      // needed until the Materialize.dropdown plugin is replaced\n      this.$().attr('data-activates', this.get('_dropdownContentId'));\n\n      this.$().dropdown2({\n        hover: !!this.getWithDefault('hover', false),\n        constrain_width: !!this.getWithDefault('constrainWidth', true),\n        inDuration: this.getWithDefault('inDuration', this.get('_mdSettings.dropdownInDuration')),\n        outDuration: this.getWithDefault('outDuration', this.get('_mdSettings.dropdownOutDuration')),\n        gutter: this.getWithDefault('gutter', 0),\n        belowOrigin: !!this.getWithDefault('belowOrigin', false)\n      });\n    },\n\n    _dropdownContentId: Ember.computed('elementId', function () {\n      return this.get('elementId') + \"-dropdown-content\";\n    })\n  });\n\n  exports.default = HelpDropdownComponent;\n});","define('database-dashboard/components/logs-archive', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    // Injected\n    db: null,\n\n    noMoreAvailable: false,\n    loading: false,\n    cursor: \"\",\n    archives: [],\n    isEmpty: true,\n\n    didInsertElement: function didInsertElement() {\n      this.fetch();\n    },\n    fetch: function fetch() {\n      var _this = this;\n\n      var archivesAjax, archivesPromise, archivesUrl;\n      this.set('loading', true);\n      archivesUrl = window.EmberENV.apiBaseURI + \"/databases/\" + this.get(\"db.id\") + \"/logs_archives?cursor=\" + this.cursor;\n      archivesAjax = Ember.$.ajax({\n        url: archivesUrl\n      });\n      archivesPromise = new Ember.RSVP.Promise(function (resolve, reject) {\n        return archivesAjax.then(resolve, reject);\n      });\n      return archivesPromise.then(function (value) {\n        _this.set('cursor', value.next_cursor);\n        _this.set('archives', _this.get('archives').concat(value.archives));\n        _this.set('noMoreAvailable', !value.has_more);\n        _this.set('loading', false);\n        if (_this.get('archives').length > 0) {\n          _this.set('isEmpty', false);\n        }\n      });\n    },\n\n\n    actions: {\n      viewMore: function viewMore() {\n        return this.fetch();\n      }\n    }\n  });\n});","define('database-dashboard/components/materialize-badge', ['exports', 'database-dashboard/components/md-badge'], function (exports, _mdBadge) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdBadge.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-badge}} has been deprecated. Please use {{md-badge}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-button-submit', ['exports', 'database-dashboard/components/md-btn-submit'], function (exports, _mdBtnSubmit) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdBtnSubmit.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-button-submit}} has been deprecated. Please use {{md-btn-submit}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-button', ['exports', 'database-dashboard/components/md-btn'], function (exports, _mdBtn) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdBtn.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-button}} has been deprecated. Please use {{md-btn}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-card-action', ['exports', 'database-dashboard/components/md-card-action'], function (exports, _mdCardAction) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCardAction.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-card-action}} has been deprecated. Please use {{md-card-action}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-card-content', ['exports', 'database-dashboard/components/md-card-content'], function (exports, _mdCardContent) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCardContent.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-card-content}} has been deprecated. Please use {{md-card-content}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-card-panel', ['exports', 'database-dashboard/components/md-card-panel'], function (exports, _mdCardPanel) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCardPanel.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-card-panel}} has been deprecated. Please use {{md-card-panel}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-card-reveal', ['exports', 'database-dashboard/components/md-card-reveal'], function (exports, _mdCardReveal) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCardReveal.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-card-reveal}} has been deprecated. Please use {{md-card-reveal}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-card', ['exports', 'database-dashboard/components/md-card'], function (exports, _mdCard) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCard.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-card}} has been deprecated. Please use {{md-card}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-checkbox', ['exports', 'database-dashboard/components/md-check'], function (exports, _mdCheck) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCheck.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-checkbox}} has been deprecated. Please use {{md-check}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-checkboxes', ['exports', 'database-dashboard/components/md-checks'], function (exports, _mdChecks) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdChecks.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-checkboxes}} has been deprecated. Please use {{md-checks}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-collapsible-card', ['exports', 'database-dashboard/components/md-card-collapsible'], function (exports, _mdCardCollapsible) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCardCollapsible.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-collapsible-card}} has been deprecated. Please use {{md-card-collapsible}} instead', false, { url: 'https://github.com/sgasser/ember-cli-materialize/issues/67' });\n    }\n  });\n});","define('database-dashboard/components/materialize-collapsible', ['exports', 'database-dashboard/components/md-collapsible'], function (exports, _mdCollapsible) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCollapsible.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-collapsible}} has been deprecated. Please use {{md-collapsible}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-copyright', ['exports', 'database-dashboard/components/md-copyright'], function (exports, _mdCopyright) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCopyright.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-copyright}} has been deprecated. Please use {{md-copyright}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-date-input', ['exports', 'database-dashboard/components/md-input-date'], function (exports, _mdInputDate) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdInputDate.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-date-input}} has been deprecated. Please use {{md-input-date}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-input-field', ['exports', 'database-dashboard/components/md-input-field'], function (exports, _mdInputField) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdInputField.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-input-field}} has been deprecated. Please use {{md-input-field}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-input', ['exports', 'database-dashboard/components/md-input'], function (exports, _mdInput) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdInput.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-input}} has been deprecated. Please use {{md-input}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-loader', ['exports', 'database-dashboard/components/md-loader'], function (exports, _mdLoader) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdLoader.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-loader}} has been deprecated. Please use {{md-loader}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-modal', ['exports', 'database-dashboard/components/md-modal'], function (exports, _mdModal) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdModal.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-modal}} has been deprecated. Please use {{md-modal}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-navbar', ['exports', 'database-dashboard/components/md-navbar'], function (exports, _mdNavbar) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdNavbar.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-navbar}} has been deprecated. Please use {{md-navbar}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-pagination', ['exports', 'database-dashboard/components/md-pagination'], function (exports, _mdPagination) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdPagination.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-pagination}} has been deprecated. Please use {{md-pagination}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-parallax', ['exports', 'database-dashboard/components/md-parallax'], function (exports, _mdParallax) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdParallax.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-parallax}} has been deprecated. Please use {{md-parallax}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-radio', ['exports', 'database-dashboard/components/md-radio'], function (exports, _mdRadio) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdRadio.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-radio}} has been deprecated. Please use {{md-radio}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-radios', ['exports', 'database-dashboard/components/md-radios'], function (exports, _mdRadios) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdRadios.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-radios}} has been deprecated. Please use {{md-radios}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-range', ['exports', 'database-dashboard/components/md-range'], function (exports, _mdRange) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdRange.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-range}} has been deprecated. Please use {{md-range}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-select', ['exports', 'database-dashboard/components/md-select'], function (exports, _mdSelect) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdSelect.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-select}} has been deprecated. Please use {{md-select}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-switch', ['exports', 'database-dashboard/components/md-switch'], function (exports, _mdSwitch) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdSwitch.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-switch}} has been deprecated. Please use {{md-switch}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-switches', ['exports', 'database-dashboard/components/md-switches'], function (exports, _mdSwitches) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdSwitches.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-switches}} has been deprecated. Please use {{md-switches}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-tabs-tab', ['exports', 'database-dashboard/components/md-tab'], function (exports, _mdTab) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdTab.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-tabs-tab}} has been deprecated. Please use {{md-tab}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-tabs', ['exports', 'database-dashboard/components/md-tabs'], function (exports, _mdTabs) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdTabs.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-tabs}} has been deprecated. Please use {{md-tabs}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/materialize-textarea', ['exports', 'database-dashboard/components/md-textarea'], function (exports, _mdTextarea) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdTextarea.default.extend({\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.deprecate('{{materialize-textarea}} has been deprecated. Please use {{md-textarea}} instead', false, {\n        url: 'https://github.com/sgasser/ember-cli-materialize/issues/67'\n      });\n    }\n  });\n});","define('database-dashboard/components/md-badge', ['exports', 'ember-cli-materialize/components/md-badge'], function (exports, _mdBadge) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdBadge.default;\n});","define('database-dashboard/components/md-btn-dropdown', ['exports', 'ember-cli-materialize/components/md-btn-dropdown'], function (exports, _mdBtnDropdown) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdBtnDropdown.default;\n});","define('database-dashboard/components/md-btn-submit', ['exports', 'ember-cli-materialize/components/md-btn-submit'], function (exports, _mdBtnSubmit) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdBtnSubmit.default;\n});","define('database-dashboard/components/md-btn', ['exports', 'ember-cli-materialize/components/md-btn'], function (exports, _mdBtn) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdBtn.default;\n});","define('database-dashboard/components/md-card-action', ['exports', 'ember-cli-materialize/components/md-card-action'], function (exports, _mdCardAction) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCardAction.default;\n});","define('database-dashboard/components/md-card-collapsible', ['exports', 'ember-cli-materialize/components/md-card-collapsible'], function (exports, _mdCardCollapsible) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCardCollapsible.default;\n});","define('database-dashboard/components/md-card-content', ['exports', 'ember-cli-materialize/components/md-card-content'], function (exports, _mdCardContent) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCardContent.default;\n});","define('database-dashboard/components/md-card-panel', ['exports', 'ember-cli-materialize/components/md-card-panel'], function (exports, _mdCardPanel) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCardPanel.default;\n});","define('database-dashboard/components/md-card-reveal', ['exports', 'ember-cli-materialize/components/md-card-reveal'], function (exports, _mdCardReveal) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCardReveal.default;\n});","define('database-dashboard/components/md-card', ['exports', 'ember-cli-materialize/components/md-card'], function (exports, _mdCard) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCard.default;\n});","define('database-dashboard/components/md-check', ['exports', 'ember-cli-materialize/components/md-check'], function (exports, _mdCheck) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCheck.default;\n});","define('database-dashboard/components/md-checks-check', ['exports', 'ember-cli-materialize/components/md-checks-check'], function (exports, _mdChecksCheck) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _mdChecksCheck.default;\n    }\n  });\n});","define('database-dashboard/components/md-checks', ['exports', 'ember-cli-materialize/components/md-checks'], function (exports, _mdChecks) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdChecks.default;\n});","define('database-dashboard/components/md-collapsible', ['exports', 'ember-cli-materialize/components/md-collapsible'], function (exports, _mdCollapsible) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCollapsible.default;\n});","define('database-dashboard/components/md-collection', ['exports', 'ember-cli-materialize/components/md-collection'], function (exports, _mdCollection) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _mdCollection.default;\n    }\n  });\n});","define('database-dashboard/components/md-copyright', ['exports', 'ember-cli-materialize/components/md-copyright'], function (exports, _mdCopyright) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdCopyright.default;\n});","define('database-dashboard/components/md-default-collection-header', ['exports', 'ember-cli-materialize/components/md-default-collection-header'], function (exports, _mdDefaultCollectionHeader) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _mdDefaultCollectionHeader.default;\n    }\n  });\n});","define('database-dashboard/components/md-default-column-header', ['exports', 'ember-cli-materialize/components/md-default-column-header'], function (exports, _mdDefaultColumnHeader) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _mdDefaultColumnHeader.default;\n    }\n  });\n});","define('database-dashboard/components/md-fixed-btn', ['exports', 'ember-cli-materialize/components/md-fixed-btn'], function (exports, _mdFixedBtn) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _mdFixedBtn.default;\n    }\n  });\n});","define('database-dashboard/components/md-fixed-btns', ['exports', 'ember-cli-materialize/components/md-fixed-btns'], function (exports, _mdFixedBtns) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _mdFixedBtns.default;\n    }\n  });\n});","define('database-dashboard/components/md-input-date', ['exports', 'ember-cli-materialize/components/md-input-date'], function (exports, _mdInputDate) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdInputDate.default;\n});","define('database-dashboard/components/md-input-field', ['exports', 'ember-cli-materialize/components/md-input-field'], function (exports, _mdInputField) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdInputField.default;\n});","define('database-dashboard/components/md-input', ['exports', 'ember-cli-materialize/components/md-input'], function (exports, _mdInput) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdInput.default;\n});","define('database-dashboard/components/md-loader', ['exports', 'ember-cli-materialize/components/md-loader'], function (exports, _mdLoader) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdLoader.default;\n});","define('database-dashboard/components/md-modal-container', ['exports', 'ember-cli-materialize/components/md-modal-container'], function (exports, _mdModalContainer) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdModalContainer.default;\n});","define('database-dashboard/components/md-modal', ['exports', 'ember-cli-materialize/components/md-modal'], function (exports, _mdModal) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdModal.default;\n});","define('database-dashboard/components/md-navbar', ['exports', 'ember-cli-materialize/components/md-navbar'], function (exports, _mdNavbar) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdNavbar.default;\n});","define('database-dashboard/components/md-pagination', ['exports', 'ember-cli-materialize/components/md-pagination'], function (exports, _mdPagination) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdPagination.default;\n});","define('database-dashboard/components/md-parallax', ['exports', 'ember-cli-materialize/components/md-parallax'], function (exports, _mdParallax) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdParallax.default;\n});","define('database-dashboard/components/md-radio', ['exports', 'ember-cli-materialize/components/md-radio'], function (exports, _mdRadio) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdRadio.default;\n});","define('database-dashboard/components/md-radios-radio', ['exports', 'ember-cli-materialize/components/md-radios-radio'], function (exports, _mdRadiosRadio) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _mdRadiosRadio.default;\n    }\n  });\n});","define('database-dashboard/components/md-radios', ['exports', 'ember-cli-materialize/components/md-radios'], function (exports, _mdRadios) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdRadios.default;\n});","define('database-dashboard/components/md-range', ['exports', 'ember-cli-materialize/components/md-range'], function (exports, _mdRange) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdRange.default;\n});","define('database-dashboard/components/md-select', ['exports', 'ember-cli-materialize/components/md-select'], function (exports, _mdSelect) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdSelect.default;\n});","define('database-dashboard/components/md-switch', ['exports', 'ember-cli-materialize/components/md-switch'], function (exports, _mdSwitch) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdSwitch.default;\n});","define('database-dashboard/components/md-switches-switch', ['exports', 'ember-cli-materialize/components/md-switches-switch'], function (exports, _mdSwitchesSwitch) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _mdSwitchesSwitch.default;\n    }\n  });\n});","define('database-dashboard/components/md-switches', ['exports', 'ember-cli-materialize/components/md-switches'], function (exports, _mdSwitches) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdSwitches.default;\n});","define('database-dashboard/components/md-tab', ['exports', 'ember-cli-materialize/components/md-tab'], function (exports, _mdTab) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdTab.default;\n});","define('database-dashboard/components/md-table-col', ['exports', 'ember-cli-materialize/components/md-table-col'], function (exports, _mdTableCol) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _mdTableCol.default;\n    }\n  });\n});","define('database-dashboard/components/md-table', ['exports', 'ember-cli-materialize/components/md-table'], function (exports, _mdTable) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _mdTable.default;\n    }\n  });\n});","define('database-dashboard/components/md-tabs', ['exports', 'ember-cli-materialize/components/md-tabs'], function (exports, _mdTabs) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdTabs.default;\n});","define('database-dashboard/components/md-textarea', ['exports', 'ember-cli-materialize/components/md-textarea'], function (exports, _mdTextarea) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _mdTextarea.default;\n});","define('database-dashboard/components/modal-dialog-overlay', ['exports', 'ember-modal-dialog/components/modal-dialog-overlay'], function (exports, _modalDialogOverlay) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _modalDialogOverlay.default;\n    }\n  });\n});","define('database-dashboard/components/modal-dialog', ['exports', 'ember-modal-dialog/components/modal-dialog'], function (exports, _modalDialog) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _modalDialog.default;\n    }\n  });\n});","define('database-dashboard/components/overview-right-cluster-topology', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var OverviewRightClusterTopologyComponent = Ember.Component.extend({\n    // Injected\n    tagName: 'tr',\n    db: null,\n    dbLag: null,\n    instance: null,\n\n    postgreSQLInstanceLag: Ember.computed('instance', 'dbLag', function () {\n      var instanceLag = this.get('instanceLag');\n      if (instanceLag.length == 0) return 'n/a';\n\n      return instanceLag[0]['lag_in_mega_bytes'] + ' MB';\n    }),\n\n    mySQLInstanceLag: Ember.computed('instance', 'dbLag', function () {\n      var instanceLag = this.get('instanceLag');\n      if (instanceLag.length == 0) return 'n/a';\n\n      var lag = instanceLag[0]['lag_in_time'];\n      if (lag == null) return '0';\n      return lag;\n    }),\n\n    instanceLag: Ember.computed('instance', 'dbLag', function () {\n      var dbLag = this.get('dbLag');\n      if (dbLag == null || dbLag['members'] == null) return '';\n\n      return dbLag['members'].filterBy('name', this.get('instance.id'));\n    })\n  });\n\n  exports.default = OverviewRightClusterTopologyComponent;\n});","define('database-dashboard/components/overview-right', ['exports', 'database-dashboard/models/database'], function (exports, _database) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var OverviewRightComponent = Ember.Component.extend({\n    // Injected\n    db: null,\n    dbMetrics: null,\n    dbHealth: null,\n    dbLag: null,\n    plan: null,\n\n    nbDBNodes: Ember.computed('db.typeName', function () {\n      switch (this.get('db.typeName')) {\n        case _database.dbTypes.ELASTICSEARCH:\n          return this.get('plan.esMasterDataNodes');\n        case _database.dbTypes.MYSQL:\n          return this.get('plan.mysqlNodes');\n        case _database.dbTypes.PGSQL:\n          return this.get('plan.postgresqlNodes');\n        case _database.dbTypes.REDIS:\n          return this.get('plan.redisNodes');\n        default:\n          return -1;\n      }\n    }),\n\n    healthStatusString: Ember.computed('dbHealth.status', function () {\n      switch (this.get('dbHealth.status')) {\n        case 'green':\n          return 'Green - Healthy';\n        case 'yellow':\n          return 'Yellow - Replication warning';\n        case 'red':\n          return 'Red - Unhealthy';\n        default:\n          return 'Unknown';\n      }\n    }),\n    instanceSortProperties: ['type:desc', 'privateIp:asc'],\n    sortedInstances: Ember.computed.sort('db.instances', 'instanceSortProperties')\n  });\n\n  exports.default = OverviewRightComponent;\n});","define('database-dashboard/components/overview-stats', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var OverviewStatsComponent = Ember.Component.extend({\n    // Injected\n    db: null,\n    dbMetrics: null\n  });\n\n  exports.default = OverviewStatsComponent;\n});","define('database-dashboard/components/pg-query-statistics-query', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    query: null,\n    selectedQuery: null,\n\n    // internal\n    isEditing: false,\n\n    obsSelectedQuery: Ember.observer('selectedQuery', function () {\n      if (this.get('selectedQuery') !== this.get('query')) {\n        this.set('isEditing', false);\n      }\n    }),\n\n    click: function click() {\n      if (!this.get('isEditing')) {\n        this.set('isEditing', true);\n        this.get('selectionChanged')(this.get('query'));\n      }\n    }\n  });\n});","define('database-dashboard/components/power-select-multiple', ['exports', 'ember-power-select/components/power-select-multiple'], function (exports, _powerSelectMultiple) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _powerSelectMultiple.default;\n    }\n  });\n});","define('database-dashboard/components/power-select-multiple/trigger', ['exports', 'ember-power-select/components/power-select-multiple/trigger'], function (exports, _trigger) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _trigger.default;\n    }\n  });\n});","define('database-dashboard/components/power-select', ['exports', 'ember-power-select/components/power-select'], function (exports, _powerSelect) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _powerSelect.default;\n    }\n  });\n});","define('database-dashboard/components/power-select/before-options', ['exports', 'ember-power-select/components/power-select/before-options'], function (exports, _beforeOptions) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _beforeOptions.default;\n    }\n  });\n});","define('database-dashboard/components/power-select/options', ['exports', 'ember-power-select/components/power-select/options'], function (exports, _options) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _options.default;\n    }\n  });\n});","define('database-dashboard/components/power-select/placeholder', ['exports', 'ember-power-select/components/power-select/placeholder'], function (exports, _placeholder) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _placeholder.default;\n    }\n  });\n});","define('database-dashboard/components/power-select/power-select-group', ['exports', 'ember-power-select/components/power-select/power-select-group'], function (exports, _powerSelectGroup) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _powerSelectGroup.default;\n    }\n  });\n});","define('database-dashboard/components/power-select/search-message', ['exports', 'ember-power-select/components/power-select/search-message'], function (exports, _searchMessage) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _searchMessage.default;\n    }\n  });\n});","define('database-dashboard/components/power-select/trigger', ['exports', 'ember-power-select/components/power-select/trigger'], function (exports, _trigger) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _trigger.default;\n    }\n  });\n});","define('database-dashboard/components/radio-button-input', ['exports', 'ember-radio-button/components/radio-button-input'], function (exports, _radioButtonInput) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _radioButtonInput.default;\n    }\n  });\n});","define('database-dashboard/components/radio-button', ['exports', 'ember-radio-button/components/radio-button'], function (exports, _radioButton) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _radioButton.default;\n    }\n  });\n});","define('database-dashboard/components/sc-chart', ['exports', 'database-dashboard/components/c3-chart'], function (exports, _c3Chart) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _c3Chart.default.extend({\n    tooltipPos: null,\n    reload: null,\n    lastIndex: 0,\n    lastValue: 0,\n\n    findClosest: function findClosest(x) {\n      var closest, closestIndex, data, i, incr, index, j, lastIndex, lastValue, max, min, ref, value;\n      lastIndex = this.get(\"lastIndex\");\n      lastValue = this.get(\"lastValue\");\n      incr = 1;\n      data = this._chart.data()[0].values;\n      max = data.length;\n      if (lastIndex <= 0 || lastIndex > data.length) {\n        lastValue = data[0].value;\n        lastIndex = 0;\n      }\n      if (lastValue > x) {\n        incr = -1;\n        max = lastIndex;\n      } else {\n        max = data.length - lastIndex;\n      }\n      closest = lastValue;\n      closestIndex = lastIndex;\n      min = Math.abs(closest - x);\n      for (i = j = 0, ref = max; 0 <= ref ? j <= ref : j >= ref; i = 0 <= ref ? ++j : --j) {\n        index = lastIndex + i * incr;\n        value = data[index];\n        if (value && Math.abs(value.x - x) <= min) {\n          closest = value.x;\n          closestIndex = index;\n          min = Math.abs(value.x - x);\n        } else {\n          break;\n        }\n      }\n      this.set(\"lastValue\", closest);\n      this.set(\"lastIndex\", closestIndex);\n      return closest;\n    },\n\n    toolTipObserver: Ember.observer('tooltipPos', function () {\n      var args, tooltip;\n      tooltip = this.get(\"tooltipPos\");\n      if (tooltip === null) {\n        this.set(\"lastIndex\", 0);\n        this.set(\"lastValue\", 0);\n        return this._chart.tooltip.hide();\n      } else {\n        args = {\n          x: this.findClosest(tooltip)\n        };\n        return this._chart.tooltip.show(args);\n      }\n    }),\n\n    reloadObserver: Ember.observer('reload', function () {\n      var _this = this;\n\n      return setTimeout(function () {\n        var axis = _this.get(\"axis\");\n        _this._chart.axis.range({\n          min: {\n            x: axis.x.min,\n            y: axis.y.min\n          },\n          max: {\n            x: axis.x.max,\n            y: axis.y.max\n          }\n        });\n        var grid = _this.get(\"grid\");\n        if (grid !== null && grid.y !== null) {\n          _this._chart.ygrids(grid.y.lines);\n        }\n        _this._chart.load(_this.get(\"data\"));\n        return _this._chart.flush();\n      }, 100);\n    })\n  });\n});","define('database-dashboard/components/sc-md-btn-submit', ['exports', 'database-dashboard/components/sc-md-btn'], function (exports, _scMdBtn) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var ScMdBtnSubmitComponent = _scMdBtn.default.extend({\n    layoutName: 'components/materialize-button',\n    tagName: 'button',\n    attributeBindings: ['type'],\n    type: 'submit'\n  });\n\n  exports.default = ScMdBtnSubmitComponent;\n});","define('database-dashboard/components/sc-md-btn', ['exports', 'database-dashboard/components/md-btn', 'database-dashboard/templates/components/sc-md-btn'], function (exports, _mdBtn, _scMdBtn) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var ScMdBtnComponent = _mdBtn.default.extend({\n    layout: _scMdBtn.default,\n    colorClass: null,\n    isLoading: false,\n\n    classNameBindings: ['colorClass', 'useDefaultColor:btn-color', 'deleteClass', 'isLoading:btn-loading'],\n\n    wavesClass: Ember.computed('isFlat', function () {\n      if (this.get('isFlat')) {\n        return 'waves-dark';\n      } else {\n        return 'waves-light';\n      }\n    }),\n\n    useDefaultColor: Ember.computed('isFlat', 'text', 'isDisabled', 'isDeleteBtn', 'colorClass', function () {\n      if (this.get('isDisabled')) {\n        return false;\n      }\n      if (this.get('colorClass')) {\n        return false;\n      }\n      if (this.get('isDeleteBtn')) {\n        return false;\n      }\n\n      if (this.get('isFlat')) {\n        var text = '';\n        if (this.get('text')) {\n          text = this.get('text').toLowerCase();\n        }\n        return text !== 'cancel' && text !== 'close' && text !== 'dismiss';\n      } else {\n        return true;\n      }\n    }),\n\n    isDeleteBtn: Ember.computed('icon', 'text', function () {\n      var text = this.get('text');\n      var icon = this.get('icon');\n      if (text) {\n        text = text.toLowerCase();\n      }\n      return text === 'delete' || icon && icon.indexOf('delete') != -1;\n    }),\n\n    deleteClass: Ember.computed('isDeleteBtn', 'isFlat', function () {\n      if (this.get('isDeleteBtn')) {\n        if (this.get('isFlat')) {\n          return 'materialize-red-text';\n        } else {\n          return 'materialize-red';\n        }\n      }\n      return null;\n    }),\n\n    // Remove this when https://github.com/mike-north/ember-cli-materialize/issues/201\n    // is finally fixed\n    click: function click() {\n      if (!this.get('isDisabled') && this.get('action')) {\n        this.get('action')(this.get('actionArg'));\n      }\n    }\n  });\n\n  exports.default = ScMdBtnComponent;\n});","define('database-dashboard/components/sc-md-input', ['exports', 'database-dashboard/components/md-input', 'database-dashboard/templates/components/sc-md-input'], function (exports, _mdInput, _scMdInput) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  // This component add Material Design input hint logic\n  var ScMdInputComponent = _mdInput.default.extend({\n    layout: _scMdInput.default,\n\n    hint: null,\n    suffix: null\n  });\n\n  exports.default = ScMdInputComponent;\n});","define('database-dashboard/components/sc-md-navbar', ['exports', 'database-dashboard/templates/components/sc-md-navbar', 'database-dashboard/components/md-navbar'], function (exports, _scMdNavbar, _mdNavbar) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var ScMdNavbarComponent = _mdNavbar.default.extend({\n    tagName: 'div',\n    layout: _scMdNavbar.default,\n\n    _setupNavbar: function _setupNavbar() {\n      this.$('.tooltipped').tooltip();\n    },\n\n\n    appURL: Ember.computed('appName', function () {\n      return window.EmberENV.appDashboardURL + '/apps/' + this.get('appName') + '/addons';\n    })\n  });\n\n  exports.default = ScMdNavbarComponent;\n});","define('database-dashboard/components/sc-md-switch', ['exports', 'database-dashboard/components/md-switch'], function (exports, _mdSwitch) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var ScMdSwitchComponent = _mdSwitch.default.extend({\n    didInsertElement: function didInsertElement() {\n      this.setTooltips();\n    },\n    setTooltips: function setTooltips() {\n      var selector = \"#\" + this.get('elementId') + \" .tooltipped\";\n      Ember.$(selector).tooltip();\n    },\n\n\n    errorWatcher: Ember.observer('error', function () {\n      this.setTooltips();\n    })\n  });\n\n  exports.default = ScMdSwitchComponent;\n});","define(\"database-dashboard/components/sc-md-tab\", [\"exports\", \"database-dashboard/components/md-tab\"], function (exports, _mdTab) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var ScMdTab = _mdTab.default.extend({\n    // Override\n    classNames: [\"tab-flex\"],\n    _colClass: \"\"\n  });\n\n  exports.default = ScMdTab;\n});","define('database-dashboard/components/sc-md-tabs', ['exports', 'database-dashboard/templates/components/sc-md-tabs', 'database-dashboard/components/md-tabs'], function (exports, _scMdTabs, _mdTabs) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var ScMdTabs = _mdTabs.default.extend({\n    layout: _scMdTabs.default\n  });\n\n  exports.default = ScMdTabs;\n});","define('database-dashboard/components/sc-md-toggle-btn', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    text: null,\n    elementId: null,\n    selectedId: null,\n    action: null,\n    actions: {\n      click: function click() {\n        if (this.get(\"selectedId\") !== this.get(\"elementId\")) {\n          return this.get('action')(this.get(\"elementId\"));\n        }\n      }\n    },\n    isSelected: Ember.computed('elementId', 'selectedId', function () {\n      return this.get(\"selectedId\") === this.get(\"elementId\");\n    })\n  });\n});","define('database-dashboard/components/sc-modal', ['exports', 'database-dashboard/templates/components/sc-modal'], function (exports, _scModal) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    layout: _scModal.default,\n\n    // Injected properties\n    id: null,\n    close: null,\n    modalContext: null,\n    autoOpen: false,\n    fixedFooter: true,\n\n    didInsertElement: function didInsertElement() {\n      var div = Ember.$('#' + this.get('id'));\n      div.modal();\n      if (this.get('autoOpen')) {\n        div.modal('open', {\n          complete: Ember.run.bind(this, 'complete')\n        });\n      }\n    },\n    complete: function complete() {\n      if (this.get('close')) {\n        this.get('close')();\n      }\n      var onClose = this.get('modalContext.onClose');\n      if (onClose) {\n        onClose();\n      }\n    }\n  });\n});","define('database-dashboard/components/single-chart', ['exports', 'database-dashboard/templates/components/single-chart', 'moment'], function (exports, _singleChart, _moment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    layout: _singleChart.default,\n    tooltipPos: null,\n    dataTypes: null,\n    dataObjects: null,\n    dataURLS: null,\n    tooltipUpdate: null,\n    onRendered: null,\n    since: null,\n    customColors: null,\n    customLegend: false,\n    timezone: _moment.default.tz.guess(),\n    autoupdate: true,\n    loaded: false,\n    tempData: null,\n    failed: false,\n    internalError: false,\n    addData: null,\n    reload: null,\n    intervalId: null,\n    data: null,\n    size: null,\n    padding: null,\n    legend: {\n      show: false\n    },\n    grid: null,\n    color: {\n      pattern: [\"#03A9F4\", \"#77D3FE\"]\n    },\n    point: null,\n    tooltip: {\n      position: null\n    },\n    tooltipTitleBuilder: function tooltipTitleBuilder() {\n      var _this = this;\n\n      return function (x) {\n        return (0, _moment.default)(x).tz(_this.get(\"timezone\")).format(\"DD/MM HH:mm\");\n      };\n    },\n    dataURLSObserver: Ember.observer('dataURLS', 'dataObjects', function () {\n      this.updateGraph(0, null, false);\n    }),\n    timezoneObserver: Ember.observer('timezone', function () {\n      this.set(\"reload\", Math.random());\n    }),\n    didInsertElement: function didInsertElement() {\n      this._super.apply(this, arguments);\n      this.updateGraph(0, null, false);\n    },\n    willDestroyElement: function willDestroyElement() {\n      var intervalId;\n      intervalId = this.get(\"intervalId\");\n      if (intervalId !== null) {\n        clearInterval(intervalId);\n      }\n    },\n    initGraphData: function initGraphData() {\n      var _this2 = this;\n\n      var padding = {\n        top: 0,\n        right: 0,\n        bottom: 0\n      };\n      var tooltip = {\n        format: {\n          title: this.tooltipTitleBuilder()\n        },\n        onhide: function onhide() {\n          _this2.get(\"tooltipUpdate\")(null);\n        }\n      };\n      var grid = {\n        y: {\n          show: true\n        }\n      };\n      var size = {\n        height: 150\n      };\n      if (this.get(\"dataTypes\")[0] === \"events\") {\n        size.height = 100;\n      }\n      this.set(\"internalError\", false);\n      this.set(\"tooltipValues\", []);\n      this.set(\"size\", size);\n      this.set(\"grid\", grid);\n      this.set(\"tooltip\", tooltip);\n      this.set(\"padding\", padding);\n    },\n\n    updateGraph: function updateGraph(dataIndex, data, successfull) {\n      var _this3 = this;\n\n      this.set(\"loaded\", false);\n      this.set(\"failed\", false);\n      var dataURLS = this.get(\"dataURLS\");\n      var dataObjects = this.get(\"dataObjects\");\n      if (dataObjects === null && dataURLS === null) {\n        return;\n      }\n      var dataTypes = this.get(\"dataTypes\");\n      if (dataIndex === 0) {\n        this.initGraphData();\n      }\n      if (dataIndex === dataTypes.length) {\n        if (successfull) {\n          var mainObj = this;\n          setTimeout(function () {\n            mainObj.propertyWillChange(\"data\");\n            mainObj.set(\"data\", data);\n            mainObj.propertyDidChange(\"data\");\n            mainObj.set(\"loaded\", true);\n            if (mainObj.get(\"autoupdate\")) {\n              var updateInterval = mainObj.getUpdateInterval();\n              if (updateInterval > 0) {\n                var intervalId = setInterval(mainObj.updaterBuilder(), updateInterval);\n                mainObj.set(\"intervalId\", intervalId);\n              }\n            }\n          }, 100);\n        } else {\n          var _mainObj = this;\n          setTimeout(function () {\n            _mainObj.renderDummy();\n          }, 100);\n        }\n      } else {\n        if (dataTypes[dataIndex] === \"events\") {\n          if (dataObjects[dataIndex].length === 0) {\n            this.updateGraph(dataIndex + 1, data, successfull);\n          } else {\n            var result = {\n              data: dataObjects[dataIndex],\n              max: 0,\n              type: dataTypes[dataIndex]\n            };\n            this.formatMetrics(result, function (data) {\n              _this3.updateGraph(dataIndex + 1, data, true);\n            });\n          }\n        } else {\n          this.getMetrics(dataTypes[dataIndex], dataURLS[dataIndex]).then(function (data) {\n            _this3.updateGraph(dataIndex + 1, data, true);\n          }, function (status) {\n            var internalError = _this3.get(\"internalError\");\n            internalError = internalError || status !== 404;\n            _this3.set(\"internalError\", internalError);\n            _this3.updateGraph(dataIndex + 1, data, successfull);\n          });\n        }\n      }\n    },\n    formatValues: function formatValues(values, type) {\n      var i, j, len, result, sample;\n      result = {\n        data: [[type], ['x']],\n        max: 0,\n        type: type\n      };\n      for (i = j = 0, len = values.length; j < len; i = ++j) {\n        sample = values[i];\n        if (sample.value === null && i > 0) {\n          sample.value = values[i - 1].value;\n        }\n        sample.value = sample.value || 0;\n        if (sample.value === 0 && i <= 1) {\n          continue;\n        }\n        if (sample.value === 0 && i >= values.length - 2) {\n          continue;\n        }\n        if (sample.value > result.max) {\n          result.max = sample.value;\n        }\n        result.data[0].push(sample.value);\n        result.data[1].push((0, _moment.default)(sample.time).toDate());\n      }\n      return result;\n    },\n    getMetrics: function getMetrics(type, uri) {\n      var _this4 = this;\n\n      return new Ember.RSVP.Promise(function (resolve, reject) {\n        return Ember.$.getJSON(uri, function (val) {\n          var result = _this4.formatValues(val, type);\n          return _this4.formatMetrics(result, resolve, reject);\n        }).fail(function (xhr) {\n          return reject(xhr.status);\n        });\n      });\n    },\n    renderDummy: function renderDummy() {\n      var result;\n      result = {\n        data: [[\"abc\", 0, 0], ['x', (0, _moment.default)().add(2, 'hour').valueOf(), (0, _moment.default)().add(1, 'hour').valueOf()]],\n        max: 2,\n        type: \"dummy\"\n      };\n      this.formatMetrics(result, this.dummyLoaded());\n    },\n    dummyLoaded: function dummyLoaded() {\n      var _this5 = this;\n\n      return function (data) {\n        _this5.propertyWillChange(\"data\");\n        _this5.set(\"data\", data);\n        _this5.propertyDidChange(\"data\");\n        _this5.set(\"loaded\", true);\n        _this5.set(\"failed\", true);\n      };\n    },\n    formatMetrics: function formatMetrics(metrics, resolve) {\n      metrics = this.preFormat(metrics);\n      var data = metrics.data;\n      var max = metrics.max;\n      var type = metrics.type;\n      var tooltip = this.get(\"tooltip\");\n      var axis = this.get(\"axis\");\n      if (type === \"dummy\") {\n        tooltip.show = false;\n      }\n      this.formatXAxis(axis, data, type);\n      this.formatOptions(max);\n      if (type === \"dummy\") {\n        this.formatDummyOptions();\n        data = this.formatDummyData(data);\n        axis = this.formatDummyAxis(axis, max);\n        this.formatDummyGrid(axis, max);\n      } else {\n        data = this.formatData(data);\n        axis = this.formatAxis(axis, max, type);\n        tooltip = this.formatTooltip(tooltip);\n        this.formatGrid(axis, max, type);\n      }\n      this.propertyWillChange(\"axis\");\n      this.set(\"axis\", axis);\n      this.propertyDidChange(\"axis\");\n      this.propertyWillChange(\"tooltip\");\n      this.set(\"tooltip\", tooltip);\n      this.propertyDidChange(\"tooltip\");\n      this.set(\"tempData\", data);\n      resolve(data);\n    },\n    preFormat: function preFormat(metrics) {\n      return metrics;\n    },\n\n    formatXAxis: function formatXAxis(axis, data, type) {\n      var diff, i, incr, j, ref, since, tickCount, xEnd, xStart;\n      since = this.get(\"since\");\n      if (type === \"dummy\") {\n        xStart = (0, _moment.default)().startOf('hour').subtract(since, 'hour');\n        xEnd = (0, _moment.default)().startOf('hour');\n        axis.x.min = (0, _moment.default)().subtract(since, 'hour');\n        axis.x.max = (0, _moment.default)();\n      } else {\n        xStart = (0, _moment.default)(data[1][1]).startOf('hour');\n        xEnd = (0, _moment.default)(data[1][data[1].length - 1]).startOf('hour');\n      }\n      diff = xEnd.diff(xStart, 'hours');\n      tickCount = 6;\n      incr = Math.floor(diff / 6);\n      if (incr === 0) {\n        incr = 1;\n        tickCount = 4;\n      }\n      for (i = j = 1, ref = tickCount - 1; 1 <= ref ? j <= ref : j >= ref; i <= ref ? ++j : --j) {\n        axis.x.tick.values.push(xStart.add(incr, 'hour').valueOf());\n      }\n      axis.x.tick.format = this.tickFormatBuilder();\n    },\n\n    tickFormatBuilder: function tickFormatBuilder() {\n      var _this6 = this;\n\n      return function (d) {\n        return (0, _moment.default)(d).tz(_this6.get(\"timezone\")).format(\"HH:mm\");\n      };\n    },\n\n    formatAxis: function formatAxis(axis, max) {\n      axis.y.max = max;\n      return axis;\n    },\n    formatDummyOptions: function formatDummyOptions() {\n      var padding;\n      padding = this.get(\"padding\");\n      padding.left = 50;\n      this.set(\"padding\", padding);\n    },\n    formatDummyAxis: function formatDummyAxis(axis) {\n      axis.y.show = false;\n      return axis;\n    },\n    formatDummyGrid: function formatDummyGrid() {\n      var grid;\n      grid = this.get(\"grid\");\n      grid.y.show = false;\n      this.propertyWillChange(\"grid\");\n      this.set(\"grid\", grid);\n      this.propertyDidChange(\"grid\");\n    },\n    formatDummyData: function formatDummyData(metricsData) {\n      var data;\n      data = {\n        hide: true,\n        columns: metricsData,\n        x: 'x',\n        types: {}\n      };\n      return data;\n    },\n    formatData: function formatData(metricsData, type) {\n      var customColors, data, i, j, ref;\n      data = {\n        columns: metricsData,\n        x: 'x',\n        onmouseover: this.dataMouseoverBuilder(),\n        types: {}\n      };\n      customColors = this.get(\"customColors\");\n      if (customColors != null) {\n        data.colors = customColors;\n      }\n      for (i = j = 0, ref = metricsData.length - 1; 0 <= ref ? j <= ref : j >= ref; i = 0 <= ref ? ++j : --j) {\n        if (metricsData[i][0] !== 'x') {\n          data.types[metricsData[i][0]] = type || \"area\";\n        }\n      }\n      return data;\n    },\n    formatGrid: function formatGrid() {},\n    formatOptions: function formatOptions() {\n      var pointValue;\n      pointValue = {\n        show: false\n      };\n      this.set(\"point\", pointValue);\n    },\n    formatTooltip: function formatTooltip(tooltip) {\n      tooltip.position = this.positionBuilder();\n      return tooltip;\n    },\n    dataMouseoverBuilder: function dataMouseoverBuilder() {\n      var _this7 = this;\n\n      return function (e) {\n        return _this7.get(\"tooltipUpdate\")(e.x);\n      };\n    },\n    positionBuilder: function positionBuilder() {\n      var _this8 = this;\n\n      return function (data, width, height, element) {\n        var graphContainer = document.querySelector(\"#\" + _this8.elementId);\n        var chartOffsetX = graphContainer.getBoundingClientRect().left;\n        var graphOffsetX = graphContainer.querySelector(\".c3-axis-y\").getBoundingClientRect().right;\n        var x = parseInt(element.getAttribute('x')) + graphOffsetX - chartOffsetX - width;\n        return {\n          top: 0,\n          left: x\n        };\n      };\n    },\n\n    getUpdateInterval: function getUpdateInterval() {\n      var column, data, j, len, ref;\n      data = this.get(\"data\");\n      ref = data.columns;\n      for (j = 0, len = ref.length; j < len; j++) {\n        column = ref[j];\n        if (column[0] === 'x') {\n          return (0, _moment.default)(column[2]).diff(column[1]);\n        }\n      }\n      return -1;\n    },\n    getDataIndex: function getDataIndex(data, type) {\n      var index, j, len, value;\n      for (index = j = 0, len = data.length; j < len; index = ++j) {\n        value = data[index];\n        if (value[0] === type) {\n          return index;\n        }\n      }\n      return -1;\n    },\n    updaterBuilder: function updaterBuilder() {\n      var _this9 = this;\n\n      return function () {\n        var index, j, len;\n        var dataURLS = _this9.get(\"dataURLS\");\n        var types = _this9.get(\"dataTypes\");\n        if (dataURLS === null) {\n          return null;\n        }\n\n        var promises = [];\n        for (index = j = 0, len = dataURLS.length; j < len; index = ++j) {\n          var url = dataURLS[index];\n          if (url !== null) {\n            promises.push(_this9.updateWorker(url + \"&last=true\", types[index]));\n          }\n        }\n        return Ember.RSVP.all(promises).then(function (results) {\n          var axis, data;\n          data = _this9.get(\"data\");\n          axis = _this9.get(\"axis\");\n          data = _this9.autoUpdateFormater(data, results);\n          _this9.autoUpdateXAxisFormatter(axis, data);\n          _this9.autoUpdateMaxFormatter(axis, data);\n          _this9.propertyWillChange(\"data\");\n          _this9.set(\"data\", data);\n          _this9.propertyDidChange(\"data\");\n          _this9.set(\"axis\", axis);\n          return _this9.set(\"reload\", Math.random());\n        });\n      };\n    },\n    autoUpdateFormater: function autoUpdateFormater(data, results) {\n      var dataIndex, j, len, result, x, xDataIndex;\n      x = false;\n      for (j = 0, len = results.length; j < len; j++) {\n        result = results[j];\n        dataIndex = this.getDataIndex(data.columns, result.type);\n        if (dataIndex !== -1) {\n          if (result.metrics) {\n            data.columns[dataIndex].push(result.metrics[0].value);\n            if (!x) {\n              x = true;\n              xDataIndex = this.getDataIndex(data.columns, 'x');\n              data.columns[xDataIndex].push((0, _moment.default)(result.metrics[0].time).toDate());\n              data.columns[xDataIndex].splice(1, 1);\n            }\n          } else {\n            data.columns[dataIndex].push(null);\n          }\n          data.columns[dataIndex].splice(1, 1);\n        }\n      }\n      return data;\n    },\n    autoUpdateXAxisFormatter: function autoUpdateXAxisFormatter(axis, data) {\n      axis.x.tick.values = [];\n      return this.formatXAxis(axis, data.columns, \"\");\n    },\n    autoUpdateMaxFormatter: function autoUpdateMaxFormatter(axis, data) {\n      var column, j, k, len, len1, max, ref, value;\n      max = axis.y.max;\n      ref = data.columns;\n      for (j = 0, len = ref.length; j < len; j++) {\n        column = ref[j];\n        if (column[0] === 'x') {\n          continue;\n        }\n        for (k = 0, len1 = column.length; k < len1; k++) {\n          value = column[k];\n          if (value > max) {\n            max = value;\n          }\n        }\n      }\n      axis.y.max = max;\n    },\n    updateWorker: function updateWorker(url, type) {\n      return new Ember.RSVP.Promise(function (resolve) {\n        return Ember.$.getJSON(url, function (val) {\n          return resolve({\n            metrics: val,\n            type: type\n          });\n        }).fail(function () {\n          return resolve({\n            metrics: null,\n            type: type\n          });\n        });\n      });\n    }\n  });\n});","define('database-dashboard/components/single-cpu-chart', ['exports', 'database-dashboard/components/single-chart'], function (exports, _singleChart) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _singleChart.default.extend({\n    formatAxis: function formatAxis(axis, max) {\n      if (max < 100) {\n        axis.y.max = 100;\n      } else {\n        axis.y.max = (Math.floor(max / 2) + 1) * 2;\n      }\n      return axis;\n    }\n  });\n});","define(\"database-dashboard/components/single-disk-chart\", [\"exports\", \"database-dashboard/components/single-chart\"], function (exports, _singleChart) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _singleChart.default.extend({\n    databasePlan: null,\n\n    // values contains the JSON returned by the DB API call\n    // types contains what is defined in diskUsedTypes in db-disk-metrics\n    formatValues: function formatValues(values, type) {\n      // We want to use the `disk_used` key in the disk metrics\n      var formattedValues = values[\"disk_metrics\"].flatMap(function (val) {\n        return { time: val[\"time\"], value: val[\"disk_used\"] };\n      });\n      return this._super(formattedValues, type);\n    },\n\n    formatAxis: function formatAxis(axis, max) {\n      var planDiskBytes = this.databasePlan.get(\"diskBytes\");\n      // The y-axis max is the amount included in the plan, or the max usage + 20% if the database uses more than what is included in the plan\n      if (planDiskBytes > max) {\n        axis.y.max = planDiskBytes;\n      } else {\n        // The max y-axis value is the max + 20%\n        axis.y.max = max + max * 0.2;\n      }\n      axis.y.min = 0;\n      return axis;\n    }\n  });\n});","define(\"database-dashboard/components/single-diskio-chart\", [\"exports\", \"database-dashboard/components/single-chart\"], function (exports, _singleChart) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _singleChart.default.extend({\n    // values contains the JSON returned by the DB API call\n    // types contains what is defined in diskioUsedTypes in db-disk-metrics\n    formatValues: function formatValues(values, type) {\n      // We want to use the `reads` or `writes` keys in the diskio metrics\n      var formattedValues = values[\"diskio_metrics\"].flatMap(function (val) {\n        var value = val[\"diskio_\" + type];\n        return { time: val[\"time\"], value: value };\n      });\n      return this._super(formattedValues, type);\n    },\n\n    formatAxis: function formatAxis(axis, max) {\n      // The max y-axis value is the next hundred of the max.\n      var hundreds = Math.round(max / 100);\n      var max_y = (hundreds + 1) * 100;\n\n      // Do not overwrite the scale when another metrics has the highest value.\n      if (max_y > axis.y.max) {\n        axis.y.max = max_y;\n      }\n      axis.y.min = 0;\n      return axis;\n    },\n\n    // we need to override the formatData function to display both reads and writes.\n    formatData: function formatData(metricsData) {\n      var customColors, data;\n      if (metricsData[0][0] === \"writes\") {\n        data = this.get(\"tempData\");\n        data.columns.push(metricsData[0]);\n      } else {\n        // if we format the reads data\n        data = {\n          order: function order(d1) {\n            return d1.id === \"writes\";\n          },\n          columns: metricsData,\n          x: 'x',\n          onmouseover: this.dataMouseoverBuilder(),\n          types: {}\n        };\n      }\n      data.types[metricsData[0][0]] = \"area\";\n      customColors = this.get(\"customColors\");\n      if (customColors != null) {\n        data.colors = customColors;\n      }\n      return data;\n    }\n  });\n});","define('database-dashboard/components/single-memory-chart', ['exports', 'database-dashboard/components/single-chart', 'database-dashboard/helpers/instance-size', 'moment'], function (exports, _singleChart, _instanceSize, _moment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _singleChart.default.extend({\n    db: null,\n    instance: null,\n\n    formatValues: function formatValues(val, type) {\n      var i, j, len, limit, previous, result, sample;\n      limit = (0, _instanceSize.default)(this.get('db.typeName'), this.get('db.plan'), this.get('instance.type'));\n      if (type === \"memory\") {\n        return this._super(val, type);\n      } else {\n        result = {\n          data: [[type], ['x']],\n          max: 0,\n          type: type\n        };\n        for (i = j = 0, len = val.length; j < len; i = ++j) {\n          sample = val[i];\n          sample.value = sample.value || 0;\n          if (sample.value <= limit * 0.02) {\n            sample.value = null;\n            if (result.data[0].length > 0) {\n              previous = result.data[0][result.data[0].length - 1];\n              if (previous !== null && previous !== 0) {\n                sample.value = 0;\n              }\n            }\n          } else {\n            if (result.data[0].length > 0 && result.data[0][result.data[0].length - 1] === null) {\n              result.data[0][result.data[0].length - 1] = 0;\n            }\n            if (sample.value < 0) {\n              sample.value = 0;\n            }\n            if (sample.value > result.max) {\n              result.max = sample.value;\n            }\n            if (sample.value === 0 && i <= 1) {\n              continue;\n            }\n            if (sample.value === 0 && i >= val.length - 2) {\n              continue;\n            }\n          }\n          result.data[0].push(sample.value);\n          result.data[1].push((0, _moment.default)(sample.time).toDate());\n        }\n        return result;\n      }\n    },\n    formatAxis: function formatAxis(axis, max, type) {\n      if (type === \"memory\") {\n        return this.formatMemoryAxis(axis, max);\n      } else {\n        return this.formatSwapAxis(axis, max);\n      }\n    },\n    formatMemoryAxis: function formatMemoryAxis(axis, max) {\n      var limit;\n      limit = (0, _instanceSize.default)(this.get('db.typeName'), this.get('db.plan'), this.get('instance.type'));\n\n      axis.y.tick.values = [limit / 2, limit];\n      if (limit > max) {\n        axis.y.max = limit;\n      } else {\n        axis.y.max = max;\n      }\n      return axis;\n    },\n    formatSwapAxis: function formatSwapAxis(axis, max) {\n      if (max > axis.y.max / 15) {\n        axis.y.max += max;\n      }\n      return axis;\n    },\n    formatGrid: function formatGrid(axis, max, type) {\n      var grid, limit;\n      limit = (0, _instanceSize.default)(this.get('db.typeName'), this.get('db.plan'), this.get('instance.type'));\n      if (type === \"swap\") {\n        grid = this.get(\"grid\");\n        if (max > axis.y.max / 15) {\n          grid.y.lines = [{\n            value: limit\n          }];\n        }\n        this.propertyWillChange(\"grid\");\n        this.set(\"grid\", grid);\n        return this.propertyDidChange(\"grid\");\n      }\n    },\n    formatData: function formatData(metricsData) {\n      var customColors, data;\n      if (metricsData[0][0] === \"swap\") {\n        data = this.get(\"tempData\");\n        data.columns.push(metricsData[0]);\n      } else {\n        data = {\n          order: function order(d1) {\n            return d1.id === \"swap\";\n          },\n          columns: metricsData,\n          x: 'x',\n          onmouseover: this.dataMouseoverBuilder(),\n          types: {},\n          groups: [[\"memory\", \"swap\"]]\n        };\n      }\n      data.types[metricsData[0][0]] = \"area\";\n      customColors = this.get(\"customColors\");\n      if (customColors != null) {\n        data.colors = customColors;\n      }\n      return data;\n    },\n    autoUpdateFormater: function autoUpdateFormater(data, results) {\n      var dataIndex, j, len, limit, previousValue, result, value, x, xDataIndex;\n      x = false;\n      limit = (0, _instanceSize.default)(this.get('db.typeName'), this.get('db.plan'), this.get('instance.type'));\n      for (j = 0, len = results.length; j < len; j++) {\n        result = results[j];\n        dataIndex = this.getDataIndex(data.columns, result.type);\n        if (dataIndex !== -1) {\n          if (result.metrics) {\n            value = result.metrics[0].value;\n            if (value < limit * 0.02) {\n              value = 0;\n            }\n            if (value === 0 && result.type === \"swap\") {\n              previousValue = data.columns[dataIndex][data.columns[dataIndex].length - 1];\n              if (previousValue === 0 || previousValue === null) {\n                value = null;\n              }\n            } else {\n              if (previousValue === null) {\n                data.columns[dataIndex][data.columns[dataIndex].length - 1] = 0;\n              }\n            }\n            data.columns[dataIndex].push(value);\n            if (!x) {\n              x = true;\n              xDataIndex = this.getDataIndex(data.columns, 'x');\n              data.columns[xDataIndex].push((0, _moment.default)(result.metrics[0].time).toDate());\n              data.columns[xDataIndex].splice(1, 1);\n            }\n          } else {\n            data.columns[dataIndex].push(null);\n          }\n          data.columns[dataIndex].splice(1, 1);\n        }\n      }\n      return data;\n    },\n    autoUpdateMaxFormatter: function autoUpdateMaxFormatter(axis, data) {\n      var cur, index, j, k, len, max, metricsIndex, ref, ref1, xDataIndex;\n      max = axis.y.max;\n      xDataIndex = this.getDataIndex(data.columns, 'x');\n      ref = data.columns[0];\n      for (index = j = 0, len = ref.length; j < len; index = ++j) {\n        for (metricsIndex = k = 0, ref1 = data.columns.length - 1; 0 <= ref1 ? k <= ref1 : k >= ref1; metricsIndex = 0 <= ref1 ? ++k : --k) {\n          cur = 0;\n          if (metricsIndex !== xDataIndex) {\n            cur += data.columns[metricsIndex][index];\n          }\n          if (cur > max) {\n            max = cur;\n          }\n        }\n      }\n      return axis.y.max = max;\n    }\n  });\n});","define('database-dashboard/components/stats-table', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var StatsTableComponent = Ember.Component.extend({\n    tagName: \"table\",\n    classNames: [\"bordered\"],\n\n    // Injected\n    dbMetrics: null,\n\n    ramStats: Ember.computed('dbMetrics.memory', function () {\n      var currentUsage = this.get('dbMetrics.memory.memory');\n      var maxUsage = this.get('dbMetrics.memory.memory_max');\n      var limit = this.get('dbMetrics.memory.memory_limit');\n\n      var current = currentUsage / limit * 100;\n      var max = maxUsage / limit * 100;\n      var free = 100 - current;\n\n      return {\n        percent: {\n          current: current.toFixed(0),\n          max: max.toFixed(0),\n          free: free.toFixed(0)\n        },\n        free: limit - currentUsage\n      };\n    }),\n\n    swapStats: Ember.computed('dbMetrics.memory', function () {\n      var currentUsage = this.get('dbMetrics.memory.swap');\n      var maxUsage = this.get('dbMetrics.memory.swap_max');\n      var limit = this.get('dbMetrics.memory.swap_limit');\n\n      var current = currentUsage / limit * 100;\n      var max = maxUsage / limit * 100;\n      var free = 100 - current;\n\n      return {\n        percent: {\n          current: current.toFixed(0),\n          max: max.toFixed(0),\n          free: free.toFixed(0)\n        },\n        free: limit - currentUsage\n      };\n    })\n  });\n\n  exports.default = StatsTableComponent;\n});","define('database-dashboard/components/tether-dialog', ['exports', 'ember-modal-dialog/components/tether-dialog'], function (exports, _tetherDialog) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _tetherDialog.default;\n    }\n  });\n});","define(\"database-dashboard/components/type-stats-table\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var TypeStatsTableComponent = Ember.Component.extend({\n    tagName: \"table\",\n    classNames: [\"bordered\"],\n\n    // Injected\n    db: null,\n    dbMetrics: null\n  });\n\n  exports.default = TypeStatsTableComponent;\n});","define('database-dashboard/components/user-management', ['exports', 'database-dashboard/models/database'], function (exports, _database) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var UserManagementComponent = Ember.Component.extend({\n    confirmationModal: Ember.inject.service('confirmation-modal'),\n    // Injected\n    db: null,\n    store: null,\n    users: null,\n\n    // Internal\n    errors: null,\n    user: {},\n    isCreating: null,\n    isDeleting: null,\n\n    hasNoUser: Ember.computed('users', function () {\n      return !this.get('users') || this.get('users.length') === 0;\n    }),\n\n    isMongoDb: Ember.computed('db', function () {\n      if (!this.get('db')) {\n        return false;\n      }\n      return this.get('db').get('typeName') === _database.dbTypes.MONGO;\n    }),\n\n    getMongoConnectionString: Ember.computed('db', function () {\n      if (!this.get('db')) {\n        return false;\n      }\n      var hostname = this.get('db').get('hostname');\n      var resourceId = this.get('db').get('resourceId');\n\n      return \"mongodb://<user>:<password>@\" + hostname + \"/<db_name>?authSource=\" + resourceId;\n    }),\n\n    actions: {\n      newUser: function newUser() {\n        var _this = this;\n\n        var db = this.get('db');\n        // inject nested resource attributes\n        var userRecord = this.get('store').createRecord('database-user', {\n          dbId: db.id,\n          database: db\n        });\n        userRecord.setProperties(this.get('user'));\n\n        this.set('isCreating', true);\n        userRecord.save().then(function (user) {\n          _this.get('notifier').notify('User created: ' + user.get('name'));\n\n          // Ember 1.13 hack https://github.com/emberjs/data/issues/3313\n          _this.get('users').pushObject(user._internalModel);\n\n          // Show API generated password\n          var password = user.get('password');\n          if (password.replace(/\\*/g, '')) {\n            _this.get('notifier').notify('Please save the generated password: ' + user.get('password') + ' <a class=\"do-copy\" style=\"cursor: pointer; margin-left: 8px;\" data-clipboard-text=\"' + user.get('password') + '\">COPY</a>', 'LONG');\n          }\n\n          _this.setProperties({\n            errors: null,\n            user: {}\n          });\n        }, function (errors) {\n          if (errors.error) {\n            _this.get('notifier').notify(errors.error);\n          }\n          _this.set('errors', errors);\n        }).finally(function () {\n          _this.set('isCreating', null);\n          if (userRecord.get('isNew')) {\n            userRecord.unloadRecord();\n          }\n        });\n      },\n      deleteUser: function deleteUser(u) {\n        var _this2 = this;\n\n        this.set('isDeleting', true);\n\n        u.set('dbId', u.get('database.id'));\n        u.destroyRecord().then(function () {\n          _this2.get('users').removeObject(u);\n          _this2.get('notifier').notify('User deleted: ' + u.get('name'));\n        }, function (errors) {\n          _this2.get('notifier').notify('Can not delete user: ' + u.get('name'));\n          _this2.set('errors', errors);\n        }).finally(function () {\n          _this2.set('isDeleting', null);\n        });\n      },\n      toggleDeleteUserConfirmation: function toggleDeleteUserConfirmation(u) {\n        var _this3 = this;\n\n        this.get('confirmationModal').display({\n          okLabel: 'Delete',\n          action: function action() {\n            _this3.send('deleteUser', u);\n          },\n          prompt: 'Do you really want to delete the user ' + u.get('name') + '?'\n        });\n      }\n    }\n  });\n\n  exports.default = UserManagementComponent;\n});","define('database-dashboard/components/welcome-page', ['exports', 'ember-welcome-page/components/welcome-page'], function (exports, _welcomePage) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _welcomePage.default;\n    }\n  });\n});","define('database-dashboard/controllers/application', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    confirmationModal: Ember.inject.service('confirmation-modal'),\n    layoutOffset: false,\n    useFullLayout: Ember.computed.and('session.authenticated', 'layoutOffset'),\n    init: function init() {\n      this._super.apply(this, arguments);\n      Ember.$('.app-loader').remove();\n    }\n  });\n});","define('database-dashboard/controllers/dashboard', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({});\n});","define('database-dashboard/controllers/dashboard/backups', ['exports', 'moment'], function (exports, _moment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    backupReloadInterval: 10000,\n\n    reloadBackup: function reloadBackup(backup) {\n      var _this = this;\n\n      return function () {\n        backup.reload().then(function (backup) {\n          if (backup.get('shouldBeReloaded')) {\n            setTimeout(_this.reloadBackup(backup), _this.backupReloadInterval);\n          }\n        });\n      };\n    },\n\n    dbBackupsObserver: Ember.observer('model.dbBackups', function () {\n      var _this2 = this;\n\n      var backups = this.get('model.dbBackups');\n      if (Ember.isEmpty(backups)) {\n        return;\n      }\n      backups.forEach(function (backup) {\n        if (backup.get('shouldBeReloaded')) {\n          setTimeout(_this2.reloadBackup(backup), _this2.backupReloadInterval);\n        }\n      });\n    }),\n\n    timezone: _moment.default.tz.guess(),\n\n    actions: {\n      reloadBackups: function reloadBackups() {\n        var _this3 = this;\n\n        this.store.unloadAll('databaseBackup');\n        this.store.query('databaseBackup', { dbId: this.get('model.db.id') }).then(function (backups) {\n          _this3.set('model.dbBackups', backups);\n        });\n      }\n    }\n  });\n});","define('database-dashboard/controllers/dashboard/databases', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    // Injected\n    db: null\n  });\n});","define('database-dashboard/controllers/dashboard/logs-archives', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({});\n});","define('database-dashboard/controllers/dashboard/metrics', ['exports', 'moment'], function (exports, _moment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    queryParams: {\n      metricsTime: {\n        replace: true\n      }\n    },\n    db: null,\n    metrics: null,\n    tooltipPos: null,\n    metricsTime: 3,\n    metricsTimeValues: [{\n      value: 3,\n      title: '3h'\n    }, {\n      value: 12,\n      title: '12h'\n    }, {\n      value: 24,\n      title: '24h'\n    }, {\n      value: 48,\n      title: '48h'\n    }, {\n      value: 72,\n      title: '72h'\n    }],\n\n    instanceSortProperties: ['type:asc', 'privateIp:asc'],\n    instancesByType: Ember.computed.sort('model.db.instances', 'instanceSortProperties'),\n\n    timezones: _moment.default.tz.names(),\n    graphTimezone: _moment.default.tz.guess(),\n    actions: {\n      tooltipUpdate: function tooltipUpdate(tooltip) {\n        this.set('tooltipPos', tooltip);\n      },\n      metricsTimeUpdate: function metricsTimeUpdate(time) {\n        this.set('metricsTime', time);\n      }\n    }\n  });\n});","define('database-dashboard/controllers/dashboard/overview', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({});\n});","define('database-dashboard/controllers/dashboard/pg-query-statistics', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    // injected\n    db: Ember.computed.alias('model.db'),\n\n    // HTML\n    classNames: ['row'],\n\n    statistics: null,\n    isEnabling: null,\n    isReloading: null,\n    isReseting: null,\n\n    actions: {\n      enable: function enable() {\n        var _this = this;\n\n        this.set('isEnabling', true);\n        this.get('db').action('pg-stat-statements-enable').then(function () {\n          _this.get('notifier').notify(\"PostgreSQL pg-stat-statements has been enabled\");\n          var promise = _this.get('db').refreshExtensionsList();\n          promise.then(function () {\n            _this.send('reload', { dontNotify: true });\n          });\n        }, function () {\n          _this.get('notifier').notify(\"Failed to enable 'pg-stat-statements' extension, our team has been notified\");\n        }).finally(function () {\n          _this.set('isEnabling', null);\n        });\n      },\n      reset: function reset() {\n        var _this2 = this;\n\n        this.set('isReseting', true);\n        this.get('db').action('pg-stat-statements-reset').then(function () {\n          _this2.set('statistics', null);\n          _this2.get('notifier').notify(\"PostgreSQL stats have been reseted\");\n        }, function () {\n          _this2.get('notifier').notify(\"Failed to reset stats, our team has been notified\");\n        }).finally(function () {\n          _this2.set('isReseting', null);\n        });\n      },\n      reload: function reload(opts) {\n        var _this3 = this;\n\n        opts = opts || {};\n        var shouldNotify = opts.dontNotify !== true;\n\n        this.set('isReloading', true);\n        this.get('db').action('pg-stat-statements-list').then(function (action) {\n          _this3.set('statistics', action.result);\n          if (shouldNotify) {\n            _this3.get('notifier').notify(\"PostgreSQL stats have been refreshed\");\n          }\n        }, function () {\n          _this3.get('notifier').notify(\"Failed to fetch stats, our team has been notified\");\n        }).finally(function () {\n          _this3.set('isReloading', null);\n        });\n      },\n      selectionChanged: function selectionChanged(query) {\n        this.set('selectedQuery', query);\n      }\n    }\n  });\n});","define('database-dashboard/controllers/dashboard/pg-running-queries', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    // injected\n    db: Ember.computed.alias('model.db'),\n\n    // HTML\n    classNames: ['row'],\n\n    // Internals\n    modalAction: '',\n    modalQuery: '',\n    modalPid: '',\n    modalIsOpen: false,\n\n    showIdleQueries: false,\n\n    runningQueries: null,\n    isRefreshing: null,\n\n    userQueries: Ember.computed.filter('runningQueries', function (query) {\n      var adminUsernames = ['admin', 'admin_patroni', 'replicator'];\n      return !adminUsernames.includes(query.username);\n    }),\n    idleQueries: Ember.computed.filter('userQueries', function (query) {\n      return query.state === 'idle';\n    }),\n    activeQueries: Ember.computed.filter('userQueries', function (query) {\n      return query.state !== 'idle';\n    }),\n    displayedQueries: Ember.computed('showIdleQueries', 'userQueries', 'activeQueries', function () {\n      if (this.get('showIdleQueries')) {\n        return this.get('userQueries');\n      }\n      return this.get('activeQueries');\n    }),\n\n    showIdleQueriesObs: Ember.observer('showIdleQueries', function () {\n      this.send('reload');\n    }),\n\n    showIdleQueriesLabel: Ember.computed('showIdleQueries', 'idleQueries', function () {\n      var verb = 'Show';\n      if (this.get('showIdleQueries')) {\n        verb = 'Hide';\n      }\n\n      var count = this.get('idleQueries.length');\n      if (count <= 0) {\n        return verb + ' ' + count + ' idle querie:';\n      } else {\n        return verb + ' ' + count + ' idle queries:';\n      }\n    }),\n\n    actions: {\n      reload: function reload() {\n        var _this = this;\n\n        this.set('isRefreshing', true);\n        this.get('db').action('pg-list-queries').then(function (action) {\n          _this.set('runningQueries', action.result);\n        }).finally(function () {\n          _this.set('isRefreshing', null);\n        });\n      },\n      cancelQuery: function cancelQuery(query) {\n        this.set('modalAction', 'cancel');\n        this.set('modalQuery', query.query);\n        this.set('modalPid', query.pid);\n        this.set('modalIsOpen', true);\n      },\n      terminateQuery: function terminateQuery(query) {\n        this.set('modalAction', 'terminate');\n        this.set('modalQuery', query.query);\n        this.set('modalPid', query.pid);\n        this.set('modalIsOpen', true);\n      },\n      modalAccept: function modalAccept() {\n        var _this2 = this;\n\n        var action = null;\n        var pid = this.get('modalPid');\n        if (this.get('modalAction') == 'cancel') {\n          action = this.get('db').action('pg-cancel-query', { 'pid': pid });\n        } else {\n          action = this.get('db').action('pg-terminate-query', { 'pid': pid });\n        }\n        action.then().finally(function () {\n          _this2.send('reload');\n          _this2.send('closeModal');\n        });\n      },\n      closeModal: function closeModal() {\n        this.set('modalIsOpen', false);\n      }\n    }\n  });\n});","define('database-dashboard/controllers/dashboard/users', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend(Ember.PromiseProxyMixin, {\n    // Injected\n    db: null,\n\n    // Internal\n    users: null,\n\n    promiseFulfilledObs: Ember.observer('isFulfilled', function () {\n      this.set('users', this.get('content'));\n    })\n  });\n});","define('database-dashboard/controllers/index', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    appName: '',\n    dbType: '',\n    navTitle: '',\n    navColor: '',\n    selectedTab: '',\n    tabsContent: null,\n\n    selectedTabObserver: Ember.observer('selectedTab', function () {\n      if (this.get('selectedTab')) {\n        this.transitionToRoute('dashboard.' + this.get('selectedTab'));\n      }\n    })\n  });\n});","define('database-dashboard/controllers/sso', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    queryParams: ['timestamp', 'token', 'id', 'user_uuid'],\n    timestamp: null,\n    token: null,\n    id: null,\n    user_uuid: null,\n\n    ssoFailed: false,\n    ssoStatus: Ember.computed('ssoStatus', function () {\n      var _this = this;\n\n      this.checkSSOParams().then(function (response) {\n        _this.set(\"ssoStatus\", \"Authenticated, redirecting...\");\n\n        var token = response.authentication_token;\n        _this.get('session').set('token', token);\n\n        var id = _this.get('id');\n        return _this.get('store').findRecord('database', id);\n      }).then(function (record) {\n        var dbId = record.get('id');\n        _this.get('session').set('databaseId', dbId);\n        _this.transitionToRoute('dashboard', dbId);\n      }).catch(function (error) {\n        _this.set(\"ssoFailed\", true);\n        _this.set(\"ssoStatus\", 'Invalid parameters.');\n        Ember.Logger.error(error);\n      });\n      return \"Checking authentication...\";\n    }),\n\n    checkSSOParams: function checkSSOParams() {\n      var _this2 = this;\n\n      return new Ember.RSVP.Promise(function (resolve, reject) {\n        var id = _this2.get('id');\n        var token = _this2.get('token');\n        var time = _this2.get('timestamp');\n        var user_uuid = _this2.get('user_uuid');\n\n        if (time == null || token == null || id == null) {\n          return reject('Invalid parameters.');\n        }\n\n        var url = window.EmberENV.apiBaseURI + '/sso?timestamp=' + time + '&token=' + token + \"&id=\" + id;\n        if (user_uuid) {\n          url += \"&user_uuid=\" + user_uuid;\n        }\n\n        return resolve(Ember.$.ajax({\n          dataType: 'json',\n          contentType: 'application/json; charset=utf-8',\n          url: url\n        }));\n      });\n    }\n\n  });\n});","define('database-dashboard/helpers/and', ['exports', 'ember-truth-helpers/helpers/and'], function (exports, _and) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var forExport = null;\n\n  if (Ember.Helper) {\n    forExport = Ember.Helper.helper(_and.andHelper);\n  } else if (Ember.HTMLBars.makeBoundHelper) {\n    forExport = Ember.HTMLBars.makeBoundHelper(_and.andHelper);\n  }\n\n  exports.default = forExport;\n});","define('database-dashboard/helpers/app-version', ['exports', 'database-dashboard/config/environment', 'ember-cli-app-version/utils/regexp'], function (exports, _environment, _regexp) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.appVersion = appVersion;\n  function appVersion(_) {\n    var hash = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    var version = _environment.default.APP.version;\n    // e.g. 1.0.0-alpha.1+4jds75hf\n\n    // Allow use of 'hideSha' and 'hideVersion' For backwards compatibility\n    var versionOnly = hash.versionOnly || hash.hideSha;\n    var shaOnly = hash.shaOnly || hash.hideVersion;\n\n    var match = null;\n\n    if (versionOnly) {\n      if (hash.showExtended) {\n        match = version.match(_regexp.versionExtendedRegExp); // 1.0.0-alpha.1\n      }\n      // Fallback to just version\n      if (!match) {\n        match = version.match(_regexp.versionRegExp); // 1.0.0\n      }\n    }\n\n    if (shaOnly) {\n      match = version.match(_regexp.shaRegExp); // 4jds75hf\n    }\n\n    return match ? match[0] : version;\n  }\n\n  exports.default = Ember.Helper.helper(appVersion);\n});","define('database-dashboard/helpers/bw-compat-icon', ['exports', 'ember-cli-materialize/helpers/bw-compat-icon'], function (exports, _bwCompatIcon) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bwCompatIcon.default;\n    }\n  });\n  Object.defineProperty(exports, 'bwCompatIcon', {\n    enumerable: true,\n    get: function () {\n      return _bwCompatIcon.bwCompatIcon;\n    }\n  });\n});","define('database-dashboard/helpers/bytes', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  var formatBytes = function formatBytes(bytes) {\n    var i, result, sizes;\n    sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\n    if (bytes === 0) {\n      return 0 + ' B';\n    }\n    i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));\n    result = bytes / Math.pow(1024, i);\n    return Math.round(result * 10) / 10 + ' ' + sizes[[i]];\n  };\n\n  exports.default = formatBytes;\n});","define('database-dashboard/helpers/cancel-all', ['exports', 'ember-concurrency/helpers/cancel-all'], function (exports, _cancelAll) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _cancelAll.default;\n    }\n  });\n});","define('database-dashboard/helpers/capitalize', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Helper.helper(function (params) {\n    var string = params[0];\n    if (!string) {\n      return '';\n    }\n    return string.capitalize();\n  });\n});","define('database-dashboard/helpers/database-types', ['exports', 'database-dashboard/models/database'], function (exports, _database) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var databaseTypes = function databaseTypes(dbType) {\n    return _database.dbTypes[dbType];\n  };\n\n  exports.default = Ember.Helper.helper(databaseTypes);\n});","define('database-dashboard/helpers/date', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = DateHelper;\n\n\n  window.moment.updateLocale('en', {\n    relativeTime: {\n      future: \"in %s\",\n      past: \"%s ago\",\n      s: \"1s\",\n      m: \"1m\",\n      mm: \"%dm\",\n      h: \"1h\",\n      hh: \"%dh\",\n      d: \"1d\",\n      dd: \"%dd\",\n      M: \"1mo\",\n      MM: \"%dmo\",\n      y: \"1y\",\n      yy: \"%dy\"\n    }\n  });\n\n  var helpers = {\n    dateToMonth: function dateToMonth(params) {\n      var date = params[0];\n      if (!date) {\n        return \"n/a\";\n      }\n      var locale = window.navigator.userLanguage || window.navigator.language;\n      // When there are several locales: \"fren\" for instance\n      locale = locale.split(\"\")[0];\n      return date.toLocaleDateString(locale, { month: \"long\" }) + \" \" + date.getFullYear();\n    },\n    timeAgo: function timeAgo(params) {\n      var date = params[0];\n      return window.moment(date).fromNow();\n    },\n    minutesToTime: function minutesToTime(params) {\n      var mins = params[0];\n      var dayMins = 60 * 24;\n      var nbDays = parseInt(mins / dayMins % dayMins);\n      mins -= nbDays * dayMins;\n      var nbDaysLabel = nbDays > 1 ? \"days \" : \"day \";\n      return nbDays + nbDaysLabel + parseInt(mins / 60 % 60) + \"h \" + parseInt(mins % 60) + \"min\";\n    },\n    toDate: function toDate(params) {\n      var date = params[2];\n      if (!date) {\n        return \"n/a\";\n      }\n      if (typeof date === \"string\") {\n        date = new Date(date);\n      }\n      return date.toDateString();\n    },\n    toDateTime: function toDateTime(params) {\n      var date = params[0];\n      if (!date) {\n        return \"n/a\";\n      }\n      if (typeof date === \"string\") {\n        date = new Date(date);\n      }\n      return date.toDateString() + \" \" + (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\n    },\n    toNumericDateTime: function toNumericDateTime(params) {\n      var date = params[0];\n      if (!date) {\n        return \"n/a\";\n      }\n      // L:  Date (in local format)\n      // LT: Time (without seconds)\n      return window.moment(date).format('L LT');\n    },\n    toNumericDate: function toNumericDate(params) {\n      var date = params[0];\n      if (!date) {\n        return \"n/a\";\n      }\n      // L:  Date (in local format)\n      return window.moment(date).format('L');\n    },\n    isToday: function isToday(params) {\n      var date = params[0];\n      return window.moment(date).isSame(new Date(), 'day');\n    },\n    nanoToMilli: function nanoToMilli(params) {\n      return params[0] / 1000000;\n    },\n    formatDuration: function formatDuration(params) {\n      var time = params[0];\n      var unit = params[1];\n      var duration = window.moment.duration(time, unit);\n      var format = 's[s] S[ms]';\n\n      if (duration.asMinutes() > 2) {\n        format = 'm[m] s[s]';\n      }\n\n      if (duration.asHours() > 2) {\n        format = 'H[h] m[m]';\n      }\n\n      return window.moment.duration(time, unit).format(format);\n    }\n  };\n\n  function DateHelper(app) {\n    for (var key in helpers) {\n      app[Ember.String.capitalize(key) + 'Helper'] = Ember.Helper.helper(helpers[key]);\n    }\n  }\n});","define('database-dashboard/helpers/ember-power-select-is-group', ['exports', 'ember-power-select/helpers/ember-power-select-is-group'], function (exports, _emberPowerSelectIsGroup) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectIsGroup.default;\n    }\n  });\n  Object.defineProperty(exports, 'emberPowerSelectIsGroup', {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectIsGroup.emberPowerSelectIsGroup;\n    }\n  });\n});","define('database-dashboard/helpers/ember-power-select-is-selected', ['exports', 'ember-power-select/helpers/ember-power-select-is-selected'], function (exports, _emberPowerSelectIsSelected) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectIsSelected.default;\n    }\n  });\n  Object.defineProperty(exports, 'emberPowerSelectIsSelected', {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectIsSelected.emberPowerSelectIsSelected;\n    }\n  });\n});","define('database-dashboard/helpers/ember-power-select-true-string-if-present', ['exports', 'ember-power-select/helpers/ember-power-select-true-string-if-present'], function (exports, _emberPowerSelectTrueStringIfPresent) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectTrueStringIfPresent.default;\n    }\n  });\n  Object.defineProperty(exports, 'emberPowerSelectTrueStringIfPresent', {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectTrueStringIfPresent.emberPowerSelectTrueStringIfPresent;\n    }\n  });\n});","define('database-dashboard/helpers/eq', ['exports', 'ember-truth-helpers/helpers/equal'], function (exports, _equal) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var forExport = null;\n\n  if (Ember.Helper) {\n    forExport = Ember.Helper.helper(_equal.equalHelper);\n  } else if (Ember.HTMLBars.makeBoundHelper) {\n    forExport = Ember.HTMLBars.makeBoundHelper(_equal.equalHelper);\n  }\n\n  exports.default = forExport;\n});","define('database-dashboard/helpers/gt', ['exports', 'ember-truth-helpers/helpers/gt'], function (exports, _gt) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var forExport = null;\n\n  if (Ember.Helper) {\n    forExport = Ember.Helper.helper(_gt.gtHelper);\n  } else if (Ember.HTMLBars.makeBoundHelper) {\n    forExport = Ember.HTMLBars.makeBoundHelper(_gt.gtHelper);\n  }\n\n  exports.default = forExport;\n});","define('database-dashboard/helpers/gte', ['exports', 'ember-truth-helpers/helpers/gte'], function (exports, _gte) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var forExport = null;\n\n  if (Ember.Helper) {\n    forExport = Ember.Helper.helper(_gte.gteHelper);\n  } else if (Ember.HTMLBars.makeBoundHelper) {\n    forExport = Ember.HTMLBars.makeBoundHelper(_gte.gteHelper);\n  }\n\n  exports.default = forExport;\n});","define('database-dashboard/helpers/instance-role', ['exports', 'database-dashboard/models/database'], function (exports, _database) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.instanceRole = instanceRole;\n  function instanceRole(args) {\n    var instance = args[0];\n    var metrics = args[1];\n    var dbTypeName = args[2];\n    var instanceID = instance.get('id');\n    var instanceType = instance.get('typeString');\n\n    var clusteredDatabase = [_database.dbTypes.MONGO, _database.dbTypes.ELASTICSEARCH, _database.dbTypes.MYSQL, _database.dbTypes.PGSQL, _database.dbTypes.REDIS, _database.dbTypes.INFLUX];\n    if (clusteredDatabase.indexOf(dbTypeName) == -1) {\n      return instanceID;\n    }\n\n    // For multi-nodes database, display the instance type along with the instance\n    // ID (e.g. Node, Gateway, etc)\n    if (instanceType != '') {\n      return instanceID + ' (' + instanceType + ')';\n    }\n    return instanceID;\n  }\n\n  exports.default = Ember.Helper.helper(instanceRole);\n});","define('database-dashboard/helpers/instance-size', ['exports', 'database-dashboard/models/instance'], function (exports, _instance) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n  exports.default = function (dbType, plan, instanceType) {\n    var mb = 1024 * 1024;\n    var gb = 1024 * mb;\n\n    if (instanceType == _instance.instanceTypes.GATEWAY) {\n      return 128 * mb;\n    }\n\n    var default_size = 512 * mb;\n    var sizes = {\n      'default': {\n        'free': 512 * mb,\n        '64m': 64 * mb,\n        '64m-free': 64 * mb,\n        '128m': 128 * mb,\n        '128m-free': 128 * mb,\n        '256m': 256 * mb,\n        '512m': 512 * mb,\n        '1g': gb,\n        '2g': 2 * gb,\n        '4g': 4 * gb,\n        '8g': 8 * gb,\n        '16g': 16 * gb,\n        '32g': 32 * gb\n      },\n      'mysql': {\n        'mysql-sandbox': 192 * mb,\n        'mysql-starter-256': 256 * mb,\n        'mysql-starter-512': 512 * mb,\n        'mysql-starter-1024': gb,\n        'mysql-starter-2048': 2 * gb,\n        'mysql-starter-4096': 4 * gb,\n        'mysql-starter-8192': 8 * gb,\n        'mysql-starter-16384': 16 * gb,\n        'mysql-starter-32768': 32 * gb,\n        'mysql-starter-65536': 64 * gb,\n        'mysql-business-512': 512 * mb,\n        'mysql-business-1024': gb,\n        'mysql-business-2048': 2 * gb,\n        'mysql-business-4096': 4 * gb,\n        'mysql-business-8192': 8 * gb,\n        'mysql-business-16384': 16 * gb,\n        'mysql-business-32768': 32 * gb,\n        'mysql-business-65536': 64 * gb\n      },\n      'elasticsearch': {\n        'elasticsearch-sandbox': 320 * mb,\n        'elasticsearch-starter-512': 512 * mb,\n        'elasticsearch-starter-1024': gb,\n        'elasticsearch-starter-2048': 2 * gb,\n        'elasticsearch-starter-4096': 4 * gb,\n        'elasticsearch-starter-8192': 8 * gb,\n        'elasticsearch-starter-16384': 16 * gb,\n        'elasticsearch-starter-32768': 32 * gb,\n        'elasticsearch-starter-65536': 64 * gb,\n        'elasticsearch-business-512': 512 * mb,\n        'elasticsearch-business-1024': gb,\n        'elasticsearch-business-2048': 2 * gb,\n        'elasticsearch-business-4096': 4 * gb,\n        'elasticsearch-business-8192': 8 * gb,\n        'elasticsearch-business-16384': 16 * gb,\n        'elasticsearch-business-32768': 32 * gb,\n        'elasticsearch-business-65536': 64 * gb\n      },\n      'mongo': {\n        'mongo-sandbox': 128 * mb,\n        'mongo-starter-free': 128 * mb,\n        'mongo-starter-256': 256 * mb,\n        'mongo-starter-512': 512 * mb,\n        'mongo-starter-1024': gb,\n        'mongo-starter-2048': 2 * gb,\n        'mongo-starter-4096': 4 * gb,\n        'mongo-starter-8192': 8 * gb,\n        'mongo-starter-16384': 16 * gb,\n        'mongo-starter-32768': 32 * gb,\n        'mongo-starter-65536': 64 * gb,\n        'mongo-business-256': 256 * mb,\n        'mongo-business-512': 512 * mb,\n        'mongo-business-1024': gb,\n        'mongo-business-2048': 2 * gb,\n        'mongo-business-4096': 4 * gb,\n        'mongo-business-8192': 8 * gb,\n        'mongo-business-16384': 16 * gb,\n        'mongo-business-32768': 32 * gb,\n        'mongo-business-65536': 64 * gb\n      },\n      'postgresql': {\n        'postgresql-sandbox': 128 * mb,\n        'postgresql-starter-512': 512 * mb,\n        'postgresql-starter-1024': gb,\n        'postgresql-starter-2048': 2 * gb,\n        'postgresql-starter-4096': 4 * gb,\n        'postgresql-starter-8192': 8 * gb,\n        'postgresql-starter-16384': 16 * gb,\n        'postgresql-starter-32768': 32 * gb,\n        'postgresql-starter-65536': 64 * gb,\n        'postgresql-starter-131072': 128 * gb,\n        'postgresql-starter-262144': 256 * gb,\n        'postgresql-business-128': 128 * mb,\n        'postgresql-business-256': 256 * mb,\n        'postgresql-business-512': 512 * mb,\n        'postgresql-business-1024': gb,\n        'postgresql-business-2048': 2 * gb,\n        'postgresql-business-4096': 4 * gb,\n        'postgresql-business-8192': 8 * gb,\n        'postgresql-business-16384': 16 * gb,\n        'postgresql-business-32768': 32 * gb,\n        'postgresql-business-65536': 64 * gb,\n        'postgresql-business-131072': 128 * gb,\n        'postgresql-business-262144': 256 * gb\n      },\n      'redis': {\n        'free': 64 * mb,\n        '128m': 128 * mb,\n        '256m': 256 * mb,\n        '512m': 512 * mb,\n        '1g': gb,\n        '2g': 2 * gb,\n        '4g': 4 * gb,\n        'redis-sandbox': 64 * mb,\n        'redis-starter-128': 128 * mb,\n        'redis-starter-256': 256 * mb,\n        'redis-starter-512': 512 * mb,\n        'redis-starter-1024': gb,\n        'redis-starter-2048': 2 * gb,\n        'redis-starter-4096': 4 * gb,\n        'redis-starter-8192': 8 * gb,\n        'redis-starter-16384': 16 * gb,\n        'redis-starter-32768': 32 * gb,\n        'redis-starter-65536': 64 * gb,\n        'redis-business-128': 128 * mb,\n        'redis-business-256': 256 * mb,\n        'redis-business-512': 512 * mb,\n        'redis-business-1024': gb,\n        'redis-business-2048': 2 * gb,\n        'redis-business-4096': 4 * gb,\n        'redis-business-8192': 8 * gb,\n        'redis-business-16384': 16 * gb,\n        'redis-business-32768': 32 * gb,\n        'redis-business-65536': 64 * gb\n      },\n      'influxdb': {\n        'influxdb-sandbox': 128 * mb,\n        'influxdb-starter-128': 128 * mb,\n        'influxdb-starter-256': 256 * mb,\n        'influxdb-starter-512': 512 * mb,\n        'influxdb-starter-1024': gb,\n        'influxdb-starter-2048': 2 * gb,\n        'influxdb-starter-4096': 4 * gb,\n        'influxdb-starter-8192': 8 * gb,\n        'influxdb-starter-16384': 16 * gb,\n        'influxdb-starter-32768': 32 * gb,\n        'influxdb-starter-65536': 64 * gb\n      }\n    };\n\n    if (sizes[dbType] != null && sizes[dbType][plan] != null) {\n      return sizes[dbType][plan];\n    }\n\n    if (sizes['default'][plan] != null) {\n      return sizes['default'][plan];\n    }\n    return default_size;\n  };\n});","define('database-dashboard/helpers/is-after', ['exports', 'ember-moment/helpers/is-after'], function (exports, _isAfter) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _isAfter.default;\n    }\n  });\n});","define('database-dashboard/helpers/is-array', ['exports', 'ember-truth-helpers/helpers/is-array'], function (exports, _isArray) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var forExport = null;\n\n  if (Ember.Helper) {\n    forExport = Ember.Helper.helper(_isArray.isArrayHelper);\n  } else if (Ember.HTMLBars.makeBoundHelper) {\n    forExport = Ember.HTMLBars.makeBoundHelper(_isArray.isArrayHelper);\n  }\n\n  exports.default = forExport;\n});","define('database-dashboard/helpers/is-before', ['exports', 'ember-moment/helpers/is-before'], function (exports, _isBefore) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _isBefore.default;\n    }\n  });\n});","define('database-dashboard/helpers/is-between', ['exports', 'ember-moment/helpers/is-between'], function (exports, _isBetween) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _isBetween.default;\n    }\n  });\n});","define('database-dashboard/helpers/is-empty', ['exports', 'ember-truth-helpers/helpers/is-empty'], function (exports, _isEmpty) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _isEmpty.default;\n    }\n  });\n});","define('database-dashboard/helpers/is-equal', ['exports', 'ember-truth-helpers/helpers/is-equal'], function (exports, _isEqual) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _isEqual.default;\n    }\n  });\n  Object.defineProperty(exports, 'isEqual', {\n    enumerable: true,\n    get: function () {\n      return _isEqual.isEqual;\n    }\n  });\n});","define('database-dashboard/helpers/is-same-or-after', ['exports', 'ember-moment/helpers/is-same-or-after'], function (exports, _isSameOrAfter) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _isSameOrAfter.default;\n    }\n  });\n});","define('database-dashboard/helpers/is-same-or-before', ['exports', 'ember-moment/helpers/is-same-or-before'], function (exports, _isSameOrBefore) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _isSameOrBefore.default;\n    }\n  });\n});","define('database-dashboard/helpers/is-same', ['exports', 'ember-moment/helpers/is-same'], function (exports, _isSame) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _isSame.default;\n    }\n  });\n});","define('database-dashboard/helpers/lt', ['exports', 'ember-truth-helpers/helpers/lt'], function (exports, _lt) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var forExport = null;\n\n  if (Ember.Helper) {\n    forExport = Ember.Helper.helper(_lt.ltHelper);\n  } else if (Ember.HTMLBars.makeBoundHelper) {\n    forExport = Ember.HTMLBars.makeBoundHelper(_lt.ltHelper);\n  }\n\n  exports.default = forExport;\n});","define('database-dashboard/helpers/lte', ['exports', 'ember-truth-helpers/helpers/lte'], function (exports, _lte) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var forExport = null;\n\n  if (Ember.Helper) {\n    forExport = Ember.Helper.helper(_lte.lteHelper);\n  } else if (Ember.HTMLBars.makeBoundHelper) {\n    forExport = Ember.HTMLBars.makeBoundHelper(_lte.lteHelper);\n  }\n\n  exports.default = forExport;\n});","define('database-dashboard/helpers/moment-add', ['exports', 'ember-moment/helpers/moment-add'], function (exports, _momentAdd) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _momentAdd.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment-calendar', ['exports', 'ember-moment/helpers/moment-calendar'], function (exports, _momentCalendar) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _momentCalendar.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment-diff', ['exports', 'ember-moment/helpers/moment-diff'], function (exports, _momentDiff) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _momentDiff.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment-duration', ['exports', 'ember-moment/helpers/moment-duration'], function (exports, _momentDuration) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _momentDuration.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment-format', ['exports', 'ember-moment/helpers/moment-format'], function (exports, _momentFormat) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _momentFormat.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment-from-now', ['exports', 'ember-moment/helpers/moment-from-now'], function (exports, _momentFromNow) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _momentFromNow.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment-from', ['exports', 'ember-moment/helpers/moment-from'], function (exports, _momentFrom) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _momentFrom.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment-subtract', ['exports', 'ember-moment/helpers/moment-subtract'], function (exports, _momentSubtract) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _momentSubtract.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment-to-date', ['exports', 'ember-moment/helpers/moment-to-date'], function (exports, _momentToDate) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _momentToDate.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment-to-now', ['exports', 'ember-moment/helpers/moment-to-now'], function (exports, _momentToNow) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _momentToNow.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment-to', ['exports', 'ember-moment/helpers/moment-to'], function (exports, _momentTo) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _momentTo.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment-unix', ['exports', 'ember-moment/helpers/unix'], function (exports, _unix) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _unix.default;\n    }\n  });\n});","define('database-dashboard/helpers/moment', ['exports', 'ember-moment/helpers/moment'], function (exports, _moment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _moment.default;\n    }\n  });\n});","define('database-dashboard/helpers/not-eq', ['exports', 'ember-truth-helpers/helpers/not-equal'], function (exports, _notEqual) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var forExport = null;\n\n  if (Ember.Helper) {\n    forExport = Ember.Helper.helper(_notEqual.notEqualHelper);\n  } else if (Ember.HTMLBars.makeBoundHelper) {\n    forExport = Ember.HTMLBars.makeBoundHelper(_notEqual.notEqualHelper);\n  }\n\n  exports.default = forExport;\n});","define('database-dashboard/helpers/not', ['exports', 'ember-truth-helpers/helpers/not'], function (exports, _not) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var forExport = null;\n\n  if (Ember.Helper) {\n    forExport = Ember.Helper.helper(_not.notHelper);\n  } else if (Ember.HTMLBars.makeBoundHelper) {\n    forExport = Ember.HTMLBars.makeBoundHelper(_not.notHelper);\n  }\n\n  exports.default = forExport;\n});","define('database-dashboard/helpers/now', ['exports', 'ember-moment/helpers/now'], function (exports, _now) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _now.default;\n    }\n  });\n});","define('database-dashboard/helpers/optional-action', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n  var _slicedToArray = function () {\n    function sliceIterator(arr, i) {\n      var _arr = [];\n      var _n = true;\n      var _d = false;\n      var _e = undefined;\n\n      try {\n        for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n          _arr.push(_s.value);\n\n          if (i && _arr.length === i) break;\n        }\n      } catch (err) {\n        _d = true;\n        _e = err;\n      } finally {\n        try {\n          if (!_n && _i[\"return\"]) _i[\"return\"]();\n        } finally {\n          if (_d) throw _e;\n        }\n      }\n\n      return _arr;\n    }\n\n    return function (arr, i) {\n      if (Array.isArray(arr)) {\n        return arr;\n      } else if (Symbol.iterator in Object(arr)) {\n        return sliceIterator(arr, i);\n      } else {\n        throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n      }\n    };\n  }();\n\n  exports.default = Ember.Helper.helper(function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 1),\n        action = _ref2[0];\n\n    return action || function () {};\n  });\n});","define('database-dashboard/helpers/or', ['exports', 'ember-truth-helpers/helpers/or'], function (exports, _or) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var forExport = null;\n\n  if (Ember.Helper) {\n    forExport = Ember.Helper.helper(_or.orHelper);\n  } else if (Ember.HTMLBars.makeBoundHelper) {\n    forExport = Ember.HTMLBars.makeBoundHelper(_or.orHelper);\n  }\n\n  exports.default = forExport;\n});","define('database-dashboard/helpers/perform', ['exports', 'ember-concurrency/helpers/perform'], function (exports, _perform) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _perform.default;\n    }\n  });\n});","define('database-dashboard/helpers/pluralize', ['exports', 'ember-inflector/lib/helpers/pluralize'], function (exports, _pluralize) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _pluralize.default;\n});","define('database-dashboard/helpers/singularize', ['exports', 'ember-inflector/lib/helpers/singularize'], function (exports, _singularize) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _singularize.default;\n});","define('database-dashboard/helpers/start-with', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.startWith = startWith;\n  function startWith(params) {\n    var value = params[0];\n    var comp = params[1];\n    return value.substr(0, comp.length) == comp;\n  }\n\n  exports.default = Ember.Helper.helper(startWith);\n});","define('database-dashboard/helpers/task', ['exports', 'ember-concurrency/helpers/task'], function (exports, _task) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _task.default;\n    }\n  });\n});","define('database-dashboard/helpers/to-bytes', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var KB = 1024;\n  var MB = KB * 1024;\n  var GB = MB * 1024;\n  var TB = GB * 1024;\n\n  exports.default = Ember.Helper.helper(function (params) {\n    if (params.length === 2) {\n      var a = parseFloat(params[0]);\n      var b = parseFloat(params[1]);\n\n      var unitFinder = a > b ? a : b;\n      if (unitFinder == null || isNaN(unitFinder) || unitFinder < 0) {\n        return 'n/a';\n      }\n      if (unitFinder / TB >= 1) {\n        a = (a / TB).toFixed(2) / 1;\n        b = (b / TB).toFixed(2) / 1;\n        return a + ' / ' + b + ' TB';\n      } else if (unitFinder / GB >= 1) {\n        a = (a / GB).toFixed(2) / 1;\n        b = (b / GB).toFixed(2) / 1;\n        return a + ' / ' + b + ' GB';\n      } else if (unitFinder / MB >= 1) {\n        a = (a / MB).toFixed(0) / 1;\n        b = (b / MB).toFixed(0) / 1;\n        return a + ' / ' + b + ' MB';\n      } else if (unitFinder / KB >= 1) {\n        a = (a / KB).toFixed(0) / 1;\n        b = (b / KB).toFixed(0) / 1;\n        return a + ' / ' + b + ' KB';\n      } else {\n        return a + ' / ' + b + ' B';\n      }\n    } else {\n      var size = parseFloat(params[0]);\n      if (size == null || isNaN(size) || size < 0) {\n        return 'n/a';\n      }\n      if (size / TB >= 1) {\n        size = (size / TB).toFixed(2) / 1;\n        return size + ' TB';\n      } else if (size / GB >= 1) {\n        size = (size / GB).toFixed(2) / 1;\n        return size + ' GB';\n      } else if (size / MB >= 1) {\n        size = (size / MB).toFixed(0) / 1;\n        return size + ' MB';\n      } else if (size / KB >= 1) {\n        size = (size / KB).toFixed(0) / 1;\n        return size + ' KB';\n      } else {\n        return size + ' B';\n      }\n    }\n  });\n});","define('database-dashboard/helpers/to-percent', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Helper.helper(function (params) {\n    var percent = parseFloat(params[0]);\n    return percent + ' %';\n  });\n});","define('database-dashboard/helpers/to-timezone', ['exports', 'moment'], function (exports, _moment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n  exports.default = function (hour, tz) {\n    var offset = _moment.default.tz.zone(tz).utcOffset((0, _moment.default)()) / 60;\n    var tzTime = (hour - offset) % 24;\n    if (tzTime < 0) {\n      tzTime += 24;\n    }\n    return tzTime;\n  };\n});","define('database-dashboard/helpers/to-utc', ['exports', 'moment'], function (exports, _moment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n  exports.default = function (hour, tz) {\n    var offset = _moment.default.tz.zone(tz).utcOffset((0, _moment.default)()) / 60;\n    var utcTime = (hour + offset) % 24;\n    if (utcTime < 0) {\n      utcTime += 24;\n    }\n    return utcTime;\n  };\n});","define('database-dashboard/helpers/truncate', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.truncate = truncate;\n  function truncate(params, hash) {\n    var value = params[0];\n    var len = hash.limit;\n    var out = '';\n\n    if (value !== undefined) {\n      out = value.substr(0, len);\n\n      if (value.length > len) {\n        out += '...';\n      }\n    } else {\n      out = '';\n    }\n\n    return out;\n  }\n\n  exports.default = Ember.Helper.helper(truncate);\n});","define('database-dashboard/helpers/unix', ['exports', 'ember-moment/helpers/unix'], function (exports, _unix) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _unix.default;\n    }\n  });\n});","define('database-dashboard/helpers/upper', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.truncate = truncate;\n  function truncate(params) {\n    var value = params[0];\n    return value.toUpperCase();\n  }\n\n  exports.default = Ember.Helper.helper(truncate);\n});","define('database-dashboard/helpers/utc', ['exports', 'ember-moment/helpers/utc'], function (exports, _utc) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _utc.default;\n    }\n  });\n  Object.defineProperty(exports, 'utc', {\n    enumerable: true,\n    get: function () {\n      return _utc.utc;\n    }\n  });\n});","define('database-dashboard/helpers/xor', ['exports', 'ember-truth-helpers/helpers/xor'], function (exports, _xor) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var forExport = null;\n\n  if (Ember.Helper) {\n    forExport = Ember.Helper.helper(_xor.xorHelper);\n  } else if (Ember.HTMLBars.makeBoundHelper) {\n    forExport = Ember.HTMLBars.makeBoundHelper(_xor.xorHelper);\n  }\n\n  exports.default = forExport;\n});","define(\"database-dashboard/initializers/active-model-adapter\", [\"exports\", \"active-model-adapter\", \"active-model-adapter/active-model-serializer\"], function (exports, _activeModelAdapter, _activeModelSerializer) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'active-model-adapter',\n    initialize: function initialize() {\n      var application = arguments[1] || arguments[0];\n      application.register('adapter:-active-model', _activeModelAdapter.default);\n      application.register('serializer:-active-model', _activeModelSerializer.default);\n    }\n  };\n});","define('database-dashboard/initializers/add-modals-container', ['exports', 'ember-modal-dialog/initializers/add-modals-container'], function (exports, _addModalsContainer) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'add-modals-container',\n    initialize: _addModalsContainer.default\n  };\n});","define('database-dashboard/initializers/app-version', ['exports', 'ember-cli-app-version/initializer-factory', 'database-dashboard/config/environment'], function (exports, _initializerFactory, _environment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var name = void 0,\n      version = void 0;\n  if (_environment.default.APP) {\n    name = _environment.default.APP.name;\n    version = _environment.default.APP.version;\n  }\n\n  exports.default = {\n    name: 'App Version',\n    initialize: (0, _initializerFactory.default)(name, version)\n  };\n});","define('database-dashboard/initializers/confirmation-modal', ['exports', 'database-dashboard/services/confirmation-modal'], function (exports, _confirmationModal) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var ConfirmationModalInitializer = {\n    name: 'confirmation-modal',\n    initialize: function initialize(application) {\n\n      var modalService = _confirmationModal.default.create();\n\n      application.register('confirmation-modal:current', modalService, { instantiate: false, singleton: true });\n\n      application.inject('component', 'confirmation-modal', 'confirmation-modal:current');\n      application.inject('controller', 'confirmation-modal', 'confirmation-modal:current');\n      application.inject('route', 'confirmation-modal', 'confirmation-modal:current');\n    }\n  };\n\n  exports.default = ConfirmationModalInitializer;\n});","define('database-dashboard/initializers/container-debug-adapter', ['exports', 'ember-resolver/resolvers/classic/container-debug-adapter'], function (exports, _containerDebugAdapter) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'container-debug-adapter',\n\n    initialize: function initialize() {\n      var app = arguments[1] || arguments[0];\n\n      app.register('container-debug-adapter:main', _containerDebugAdapter.default);\n      app.inject('container-debug-adapter:main', 'namespace', 'application:main');\n    }\n  };\n});","define('database-dashboard/initializers/data-adapter', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'data-adapter',\n    before: 'store',\n    initialize: function initialize() {}\n  };\n});","define('database-dashboard/initializers/ember-concurrency', ['exports', 'ember-concurrency/initializers/ember-concurrency'], function (exports, _emberConcurrency) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _emberConcurrency.default;\n    }\n  });\n});","define('database-dashboard/initializers/ember-data', ['exports', 'ember-data/setup-container', 'ember-data'], function (exports, _setupContainer) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'ember-data',\n    initialize: _setupContainer.default\n  };\n});","define('database-dashboard/initializers/ember-keyboard-first-responder-inputs', ['exports', 'ember-keyboard/initializers/ember-keyboard-first-responder-inputs'], function (exports, _emberKeyboardFirstResponderInputs) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _emberKeyboardFirstResponderInputs.default;\n    }\n  });\n  Object.defineProperty(exports, 'initialize', {\n    enumerable: true,\n    get: function () {\n      return _emberKeyboardFirstResponderInputs.initialize;\n    }\n  });\n});","define('database-dashboard/initializers/export-application-global', ['exports', 'database-dashboard/config/environment'], function (exports, _environment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.initialize = initialize;\n  function initialize() {\n    var application = arguments[1] || arguments[0];\n    if (_environment.default.exportApplicationGlobal !== false) {\n      var theGlobal;\n      if (typeof window !== 'undefined') {\n        theGlobal = window;\n      } else if (typeof global !== 'undefined') {\n        theGlobal = global;\n      } else if (typeof self !== 'undefined') {\n        theGlobal = self;\n      } else {\n        // no reasonable global, just bail\n        return;\n      }\n\n      var value = _environment.default.exportApplicationGlobal;\n      var globalName;\n\n      if (typeof value === 'string') {\n        globalName = value;\n      } else {\n        globalName = Ember.String.classify(_environment.default.modulePrefix);\n      }\n\n      if (!theGlobal[globalName]) {\n        theGlobal[globalName] = application;\n\n        application.reopen({\n          willDestroy: function willDestroy() {\n            this._super.apply(this, arguments);\n            delete theGlobal[globalName];\n          }\n        });\n      }\n    }\n  }\n\n  exports.default = {\n    name: 'export-application-global',\n\n    initialize: initialize\n  };\n});","define(\"database-dashboard/initializers/helpers\", [\"exports\", \"database-dashboard/helpers/date\"], function (exports, _date) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var HelpersInitializer = {\n    name: \"helpers\",\n    initialize: function initialize(app) {\n      new _date.default(app);\n    }\n  };\n\n  exports.default = HelpersInitializer;\n});","define('database-dashboard/initializers/injectStore', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'injectStore',\n    before: 'store',\n    initialize: function initialize() {}\n  };\n});","define('database-dashboard/initializers/md-settings', ['exports', 'database-dashboard/config/environment', 'ember-cli-materialize/services/md-settings'], function (exports, _environment, _mdSettings) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.initialize = initialize;\n  function initialize() {\n    var materializeDefaults = _environment.default.materializeDefaults;\n\n    var application = arguments[1] || arguments[0];\n\n    if (window && window.validate_field) {\n      window.validate_field = function () {};\n    }\n\n    application.register('config:materialize', materializeDefaults, { instantiate: false });\n    application.register('service:materialize-settings', _mdSettings.default);\n    application.inject('service:materialize-settings', 'materializeDefaults', 'config:materialize');\n  }\n\n  exports.default = {\n    name: 'md-settings',\n    initialize: initialize\n  };\n});","define('database-dashboard/initializers/notificate', ['exports', 'clipboard'], function (exports, _clipboard) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var DURATION = {\n    'SHORT': 5000,\n    'DEFAULT': 10000,\n    'LONG': 30000\n  };\n\n  exports.default = {\n    name: 'notifier-instance',\n    initialize: function initialize(application) {\n      var notifier = Ember.Object.create({\n        notify: function () {\n          var showing = 0;\n          var queue = [];\n\n          return function (text) {\n            var _this = this;\n\n            var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DURATION.DEFAULT;\n\n            if (text) {\n              if (typeof duration === 'string') {\n                duration = DURATION[duration.toUpperCase()];\n              }\n              queue.push({ text: text, duration: duration });\n            }\n            // Limit to 3 toast at a time\n            if (showing < 3) {\n              showing++;\n              var item = queue.shift();\n              window.Materialize.toast(item.text, item.duration, '', function () {\n                showing--;\n                if (queue.length > 0) {\n                  _this.notify();\n                }\n              });\n\n              // Currently we initialize clipboardjs here which is not ideal\n              if (item.text.indexOf('data-clipboard-text') !== -1) {\n                new _clipboard.default('.do-copy').on('success', function () {\n                  _this.notify('Copied!');\n                }).on('error', function () {\n                  _this.notify('If your are using Safari please double click password then press Ctrl+C to copy.');\n                });\n                // this.get('clipboard').destroy()\n              }\n            }\n          };\n        }()\n      });\n\n      application.register('notifier:current', notifier, { instantiate: false, singleton: true });\n\n      application.inject('controller', 'notifier', 'notifier:current');\n      application.inject('route', 'notifier', 'notifier:current');\n      application.inject('component', 'notifier', 'notifier:current');\n    }\n  };\n});","define('database-dashboard/initializers/session', ['exports', 'database-dashboard/models/session'], function (exports, _session) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var SessionInitializer = {\n    name: 'session-data',\n    initialize: function initialize(application) {\n\n      // Make current session available everywhere\n      var session = _session.default.create();\n\n      application.register('session:current', session, { instantiate: false, singleton: true });\n\n      application.inject('controller', 'session', 'session:current');\n      application.inject('route', 'session', 'session:current');\n    }\n  };\n\n  exports.default = SessionInitializer;\n});","define('database-dashboard/initializers/store', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'store',\n    after: 'ember-data',\n    initialize: function initialize() {}\n  };\n});","define('database-dashboard/initializers/transforms', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'transforms',\n    before: 'store',\n    initialize: function initialize() {}\n  };\n});","define('database-dashboard/initializers/truth-helpers', ['exports', 'ember-truth-helpers/utils/register-helper', 'ember-truth-helpers/helpers/and', 'ember-truth-helpers/helpers/or', 'ember-truth-helpers/helpers/equal', 'ember-truth-helpers/helpers/not', 'ember-truth-helpers/helpers/is-array', 'ember-truth-helpers/helpers/not-equal', 'ember-truth-helpers/helpers/gt', 'ember-truth-helpers/helpers/gte', 'ember-truth-helpers/helpers/lt', 'ember-truth-helpers/helpers/lte'], function (exports, _registerHelper, _and, _or, _equal, _not, _isArray, _notEqual, _gt, _gte, _lt, _lte) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.initialize = initialize;\n  function initialize() /* container, application */{\n\n    // Do not register helpers from Ember 1.13 onwards, starting from 1.13 they\n    // will be auto-discovered.\n    if (Ember.Helper) {\n      return;\n    }\n\n    (0, _registerHelper.registerHelper)('and', _and.andHelper);\n    (0, _registerHelper.registerHelper)('or', _or.orHelper);\n    (0, _registerHelper.registerHelper)('eq', _equal.equalHelper);\n    (0, _registerHelper.registerHelper)('not', _not.notHelper);\n    (0, _registerHelper.registerHelper)('is-array', _isArray.isArrayHelper);\n    (0, _registerHelper.registerHelper)('not-eq', _notEqual.notEqualHelper);\n    (0, _registerHelper.registerHelper)('gt', _gt.gtHelper);\n    (0, _registerHelper.registerHelper)('gte', _gte.gteHelper);\n    (0, _registerHelper.registerHelper)('lt', _lt.ltHelper);\n    (0, _registerHelper.registerHelper)('lte', _lte.lteHelper);\n  }\n\n  exports.default = {\n    name: 'truth-helpers',\n    initialize: initialize\n  };\n});","define(\"database-dashboard/instance-initializers/ember-data\", [\"exports\", \"ember-data/initialize-store-service\"], function (exports, _initializeStoreService) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: \"ember-data\",\n    initialize: _initializeStoreService.default\n  };\n});","define('database-dashboard/mixins/postgresql-database-mixin', ['exports', 'ember-data'], function (exports, _emberData) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Mixin.create({\n    refreshExtensionsTrigger: null,\n\n    pgExtensions: Ember.computed(\"refreshExtensionsTrigger\", function () {\n      return _emberData.default.PromiseArray.create({\n        promise: this.action(\"list-extensions\").then(function (action) {\n          return action.result;\n        })\n      });\n    }),\n\n    refreshExtensionsList: function refreshExtensionsList() {\n      this.set(\"refreshExtensionsTrigger\", \"refresh\");\n      return this.get('pgExtensions');\n    },\n\n\n    hasPgStatStatements: Ember.computed('pgExtensions', function () {\n      return _emberData.default.PromiseObject.create({\n        promise: this.get('pgExtensions').then(function (exts) {\n          if (!exts) {\n            return false;\n          }\n          return exts.filter(function (e) {\n            return e.name == \"pg_stat_statements\";\n          }).length == 1;\n        })\n      });\n    })\n  });\n});","define('database-dashboard/mixins/retry-until-success', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Mixin.create({\n    retryUntilSuccess: function retryUntilSuccess(name, promiseFunc) {\n      return new Ember.RSVP.Promise(function (resolve) {\n        promiseFunc().then(function (res) {\n          resolve(res);\n        }, function () {\n          var intervalID = setInterval(function () {\n            promiseFunc().then(function (res) {\n              clearInterval(intervalID);\n              resolve(res);\n            }, function (error) {\n              Ember.Logger.debug(\"promise '\" + name + \"' failed to resolve: \" + error);\n            });\n          }, 10000);\n        });\n      });\n    }\n  });\n});","define('database-dashboard/models/database-backup', ['exports', 'ember-data', 'database-dashboard/models/database'], function (exports, _emberData, _database) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.BackupStatuses = undefined;\n  var BackupStatuses = exports.BackupStatuses = {\n    SCHEDULED: 'scheduled',\n    RUNNING: 'running',\n    DONE: 'done',\n    ERROR: 'error'\n  };\n\n  exports.default = _emberData.default.Model.extend({\n    createdAt: _emberData.default.attr('date'),\n    startedAt: _emberData.default.attr('date'),\n    databaseId: _emberData.default.attr('string'),\n    name: _emberData.default.attr('string'),\n    method: _emberData.default.attr('string'),\n    size: _emberData.default.attr('number'),\n    status: _emberData.default.attr('string'),\n\n    // Added relationships\n    database: _emberData.default.belongsTo('database'),\n\n    isDownloadable: Ember.computed('status', function () {\n      return this.get('status') == BackupStatuses.DONE && this.get('database.typeName') != _database.dbTypes.ELASTICSEARCH;\n    }),\n\n    isRestorable: Ember.computed('status', function () {\n      return this.get('status') == BackupStatuses.DONE && (this.get('database.typeName') == _database.dbTypes.REDIS || this.get('database.typeName') == _database.dbTypes.ELASTICSEARCH);\n    }),\n\n    downloadUrl: Ember.computed(function () {\n      return window.EmberENV.apiBaseURI + '/databases/' + this.get('databaseId') + '/backups/' + this.get('id') + '/archive';\n    }),\n\n    restoreUrl: Ember.computed(function () {\n      return window.EmberENV.apiBaseURI + '/databases/' + this.get('databaseId') + '/backups/' + this.get('id') + '/restore';\n    }),\n\n    shouldBeReloaded: Ember.computed('status', function () {\n      return this.get('status') !== BackupStatuses.DONE && this.get('status') !== BackupStatuses.ERROR;\n    }),\n\n    restore: function restore() {\n      return $.ajax({\n        method: \"POST\",\n        url: this.get('restoreUrl'),\n        contentType: 'application/json',\n        data: JSON.stringify({ database_id: this.get('database.id') })\n      });\n    }\n  });\n});","define('database-dashboard/models/database-feature', ['exports', 'ember-data'], function (exports, _emberData) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _emberData.default.Model.extend({\n    displayName: _emberData.default.attr('string'),\n    featureName: _emberData.default.attr('string'),\n    description: _emberData.default.attr('string'),\n    installed: _emberData.default.attr('boolean'),\n\n    // Added relationships\n    dbTypeVersion: _emberData.default.belongsTo('databaseTypeVersion', { inverse: \"allowedPlugins\" })\n  });\n});","define('database-dashboard/models/database-health', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  /**\n   * DatabaseHealth structure. Its content is an JSON:\n   *\n   * {\n   *   cluster: string,\n   *   status: string,\n   *   shards: int,\n   *   pending_tasks: int,\n   * }\n   *\n   */\n  var DatabaseHealth = Ember.Object.extend({});\n\n  DatabaseHealth.reopenClass({\n    get: function get(dbId) {\n      var url = window.EmberENV.apiBaseURI + '/databases/' + dbId + '/health';\n      return Ember.$.ajax({ url: url });\n    }\n  });\n\n  exports.default = DatabaseHealth;\n});","define('database-dashboard/models/database-lag', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  /**\n   * DatabaseLag structure. Its content is a JSON:\n   *\n   * {\n   *   cluster: string,\n   *   members: [\n   *     {\n   *       name: string,\n   *       lag: float,\n   *     },\n   *   ],\n   * }\n   *\n   */\n  var DatabaseLag = Ember.Object.extend({});\n\n  DatabaseLag.reopenClass({\n    get: function get(dbId) {\n      var url = window.EmberENV.apiBaseURI + '/databases/' + dbId + '/lag';\n      return Ember.$.ajax({ url: url });\n    }\n  });\n\n  exports.default = DatabaseLag;\n});","define('database-dashboard/models/database-metrics', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  /**\n   * DatabaseMetrics structure.\n   * Key-value pair is omitted by the API if value is invalid, such as -1.\n   *\n   * {\n   *   cpu_usage: number,\n   *   database_stats: {\n   *     data_size: number,\n   *\n   *     current_connections: number, // pgsql and mysql\n   *     max_connections: number,     // pgsql and mysql\n   *\n   *     index_size: number,          // mongo only\n   *   },\n   *   errors: {\n   *     cpu: string,\n   *     memory: string\n   *     real_disk_size: string\n   *     database_size: string\n   *   },\n   *   memory: {\n   *     memory: number\n   *     memory_max: number\n   *     memory_limit: number\n   *     swap: number\n   *     swap_max: number\n   *     swap_limit: number\n   *   },\n   *   real_disk_size: number\n   * }\n   *\n   */\n  var DatabaseMetrics = Ember.Object.extend({});\n\n  DatabaseMetrics.reopenClass({\n    get: function get(dbId) {\n      var url = window.EmberENV.apiBaseURI + '/databases/' + dbId + '/metrics';\n      return Ember.$.ajax({ url: url });\n    }\n  });\n\n  exports.default = DatabaseMetrics;\n});","define('database-dashboard/models/database-type-version', ['exports', 'ember-data'], function (exports, _emberData) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.versionFeatures = undefined;\n  var versionFeatures = exports.versionFeatures = {\n    TLS: \"tls\",\n    MySQLNoCustomConfig: \"mysql-no-custom-config\"\n  };\n\n  exports.default = _emberData.default.Model.extend({\n    createdAt: _emberData.default.attr('date'),\n    databaseTypeId: _emberData.default.attr('string'),\n    major: _emberData.default.attr('number'),\n    minor: _emberData.default.attr('number'),\n    patch: _emberData.default.attr('number'),\n    build: _emberData.default.attr('number'),\n    updatedAt: _emberData.default.attr('date'),\n    features: _emberData.default.attr(),\n\n    hasFeature: function hasFeature(feature) {\n      if (!feature) {\n        return false;\n      }\n      var features = this.get('features');\n      if (!features) {\n        return false;\n      }\n\n      return features.contains(feature);\n    },\n\n\n    // Added relationships\n    databaseType: _emberData.default.belongsTo('databaseType'),\n    databases: _emberData.default.hasMany('database', { inverse: \"version\" }),\n    allowedPlugins: _emberData.default.hasMany('databaseFeatures', { inverse: \"dbTypeVersion\" }),\n\n    hasTLS: Ember.computed('features.[]', function () {\n      return this.hasFeature(versionFeatures.TLS);\n    }),\n\n    canUpdateConfig: Ember.computed('features.[]', function () {\n      return !this.hasFeature(versionFeatures.MySQLNoCustomConfig);\n    }),\n\n    toVersionString: Ember.computed('major', 'minor', 'patch', 'build', function () {\n      return this.get('major') + '.' + this.get('minor') + '.' + this.get('patch');\n    }),\n\n    toFullVersionString: Ember.computed('major', 'minor', 'patch', 'build', function () {\n      return this.get('major') + '.' + this.get('minor') + '.' + this.get('patch') + '-' + this.get('build');\n    }),\n\n    isUnderV3: Ember.computed('major', function () {\n      return this.get('major') < 3;\n    })\n  });\n});","define('database-dashboard/models/database-type', ['exports', 'ember-data'], function (exports, _emberData) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _emberData.default.Model.extend({\n    createdAt: _emberData.default.attr('date'),\n    defaultVersionId: _emberData.default.attr('string'),\n    logoUrl: _emberData.default.attr('string'),\n    name: _emberData.default.attr('string'),\n\n    // Added relationships\n    defaultVersion: _emberData.default.belongsTo('databaseTypeVersion')\n  });\n});","define('database-dashboard/models/database-user', ['exports', 'ember-data'], function (exports, _emberData) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _emberData.default.Model.extend({\n    name: _emberData.default.attr('string'),\n    readOnly: _emberData.default.attr('boolean'),\n    password: _emberData.default.attr('string'),\n    passwordConfirmation: _emberData.default.attr('string'),\n\n    // Added relationships\n    database: _emberData.default.belongsTo('database'),\n\n    isProtectedUser: Ember.computed('database', function () {\n      return this.get('name') === this.get('database.resourceId') || this.get('database.typeName') === \"mongo\" && this.get('name') === \"oplogger\";\n    })\n  });\n});","define('database-dashboard/models/database', ['exports', 'ember-data', 'database-dashboard/mixins/postgresql-database-mixin', 'database-dashboard/models/operation'], function (exports, _emberData, _postgresqlDatabaseMixin, _operation) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.disableDiskMetricsGraphFlag = exports.dbTypes = exports.featurestatus = exports.features = undefined;\n  var features = exports.features = {\n    PUBLICLY_AVAILABLE: \"publicly-available\",\n    FORCE_SSL: \"force-ssl\",\n    OPLOG: \"oplog\",\n    REDIS_RDB: \"redis-rdb\",\n    REDIS_AOF: \"redis-aof\",\n    REDIS_CACHE: \"redis-cache\"\n  };\n\n  var featurestatus = exports.featurestatus = {\n    ACTIVATED: \"ACTIVATED\",\n    PENDING: \"PENDING\",\n    FAILED: \"FAILED\",\n    NOTFOUND: \"NOTFOUND\"\n  };\n\n  var dbTypes = exports.dbTypes = {\n    ELASTICSEARCH: \"elasticsearch\",\n    INFLUX: \"influxdb\",\n    MONGO: \"mongo\",\n    MYSQL: \"mysql\",\n    PGSQL: \"postgresql\",\n    REDIS: \"redis\"\n\n    // Variable containing the flag that need to be present to enable disk/diskIO graphs.\n  };var disableDiskMetricsGraphFlag = exports.disableDiskMetricsGraphFlag = \"disable-disk-metrics-graph\";\n\n  exports.default = _emberData.default.Model.extend(_postgresqlDatabaseMixin.default, {\n    appName: _emberData.default.attr('string'),\n    createdAt: _emberData.default.attr('date'),\n    features: _emberData.default.attr(),\n    encryptionAtRest: _emberData.default.attr('boolean'),\n    // hostname is the hostname and port concatenated for all the instances\n    hostname: _emberData.default.attr('string'),\n    plan: _emberData.default.attr('string'),\n    resourceId: _emberData.default.attr('string'),\n    status: _emberData.default.attr('string'),\n    typeId: _emberData.default.attr('string'),\n    typeName: _emberData.default.attr('string'),\n    readableVersion: _emberData.default.attr('string'),\n    versionId: _emberData.default.attr('string'),\n    users: _emberData.default.hasMany('databaseUser', { async: true }),\n    nextVersionWarning: _emberData.default.attr('string'),\n    cluster: _emberData.default.attr('boolean'),\n    flags: _emberData.default.attr(),\n\n    // Specific MongoDB\n    mongoReplSetName: _emberData.default.attr('string'),\n    // Specific PostgreSQL\n    postgresqlConfig: _emberData.default.attr(),\n\n    // Added relationships\n    instances: _emberData.default.hasMany('instance'),\n    backups: _emberData.default.hasMany('databaseBackup'),\n    type: _emberData.default.belongsTo('databaseType'),\n    version: _emberData.default.belongsTo('databaseTypeVersion', { inverse: \"databases\" }),\n    nextVersion: _emberData.default.belongsTo('databaseTypeVersion', { inverse: null }),\n\n    currentOperation: _emberData.default.belongsTo('operation'),\n\n    // Backups\n    periodicBackupsEnabled: _emberData.default.attr('boolean'),\n    periodicBackupsScheduledAt: _emberData.default.attr(),\n    firstPitrBackup: _emberData.default.attr('date'),\n\n    // Private properties\n    checkInterval: 1500,\n    upgradeIntervalId: null,\n\n    hasInternetAccess: Ember.computed('features.[]', function () {\n      return this.hasFeature(features.PUBLICLY_AVAILABLE);\n    }),\n    hasForceSSL: Ember.computed('features.[]', function () {\n      return this.hasFeature(features.FORCE_SSL);\n    }),\n\n    url: Ember.computed(function () {\n      var typeName = this.get('typeName');\n      if (typeName == dbTypes.REDIS) {\n        return this.get('noTlsUrl');\n      }\n\n      if (typeName == dbTypes.INFLUX || typeName == dbTypes.ELASTICSEARCH) {\n        if (this.hasFeature(features.FORCE_SSL)) {\n          return this.get('tlsUrl');\n        }\n      } else if (this.get('version.hasTLS')) {\n        return this.get('tlsUrl');\n      }\n\n      return this.get('noTlsUrl');\n    }),\n\n    noTlsUrl: Ember.computed(function () {\n      var typeName = this.get('typeName');\n      var hostname = this.get('hostname');\n      var resourceId = this.get('resourceId');\n      var replicasetName = this.get('mongoReplSetName');\n      if (replicasetName) {\n        replicasetName = \"?replicaSet=\".concat(replicasetName);\n      }\n\n      switch (typeName) {\n        case dbTypes.MONGO:\n          return 'mongodb://<user>:<password>@' + hostname + '/' + resourceId + replicasetName;\n        case dbTypes.MYSQL:\n          return 'mysql://<user>:<password>@' + hostname + '/' + resourceId;\n        case dbTypes.PGSQL:\n          return 'postgres://<user>:<password>@' + hostname + '/' + resourceId;\n        case dbTypes.REDIS:\n          return 'redis://<user>:<password>@' + hostname;\n        case dbTypes.ELASTICSEARCH:\n          return 'http://<user>:<password>@' + hostname;\n        case dbTypes.INFLUX:\n          return 'http://<user>:<password>@' + hostname + '/' + resourceId;\n      }\n    }),\n\n    tlsUrl: Ember.computed(function () {\n      var typeName = this.get('typeName');\n      var hostname = this.get('hostname');\n      var resourceId = this.get('resourceId');\n      var replicasetName = this.get('mongoReplSetName');\n      if (replicasetName) {\n        replicasetName = \"?replicaSet=\".concat(replicasetName);\n      }\n\n      switch (typeName) {\n        case dbTypes.MONGO:\n          return 'mongodb://<user>:<password>@' + hostname + '/' + resourceId + replicasetName + '&ssl=true';\n        case dbTypes.MYSQL:\n          return 'mysql://<user>:<password>@' + hostname + '/' + resourceId + '?useSSL=true&verifyServerCertificate=false';\n        case dbTypes.PGSQL:\n          return 'postgres://<user>:<password>@' + hostname + '/' + resourceId + '?sslmode=prefer';\n        case dbTypes.ELASTICSEARCH:\n          return 'https://<user>:<password>@' + hostname;\n        case dbTypes.INFLUX:\n          return 'https://<user>:<password>@' + hostname + '/' + resourceId;\n      }\n    }),\n\n    consoleCommand: Ember.computed(function () {\n      var typeName = this.get('typeName');\n      switch (typeName) {\n        case dbTypes.MONGO:\n          return 'mongo-console';\n        case dbTypes.MYSQL:\n          return 'mysql-console';\n        case dbTypes.PGSQL:\n          return 'pgsql-console';\n        case dbTypes.REDIS:\n          return 'redis-console';\n        case dbTypes.INFLUX:\n          return 'influxdb-console';\n      }\n      return null;\n    }),\n\n    hasBackups: Ember.computed('backups', function (k, v) {\n      var _this = this;\n\n      if (arguments.length > 1) {\n        return v;\n      }\n      this.get('backups').then(function (backups) {\n        _this.set('hasBackups', backups.length > 0);\n      });\n      return v;\n    }),\n\n    nextVersionWarningMessage: Ember.computed('nextVersionWarning', 'isTimescaleDB', function () {\n      if (this.get('isTimescaleDB')) {\n        return \"Please contact your account manager to upgrade your TimescaleDB database to a new version\";\n      }\n\n      return this.get('nextVersionWarning');\n    }),\n\n    hasAvailableUpgrade: Ember.computed('nextVersion', function () {\n      return this.get('nextVersion.content') != null;\n    }),\n\n    hasAdvancedFeatures: Ember.computed('typeName', function () {\n      var advancedFeaturesDB = [dbTypes.MONGO, dbTypes.PGSQL, dbTypes.ELASTICSEARCH, dbTypes.INFLUX, dbTypes.REDIS, dbTypes.MYSQL];\n      return advancedFeaturesDB.indexOf(this.get('typeName')) != -1;\n    }),\n\n    isSANDCluster: Ember.computed('typeName', 'cluster', function () {\n      var t = this.get('typeName');\n      return this.get('cluster') && (t === dbTypes.PGSQL || t === dbTypes.ELASTICSEARCH || t === dbTypes.REDIS || t === dbTypes.MYSQL);\n    }),\n\n    hasMongoIndex: Ember.computed('typeName', function () {\n      return this.get('typeName') === dbTypes.MONGO;\n    }),\n\n    hasOplog: Ember.computed('features.[]', function () {\n      return this.hasFeature(features.OPLOG);\n    }),\n\n    isPubliclyAvailable: Ember.computed('features.[]', function () {\n      return this.hasFeature(features.PUBLICLY_AVAILABLE);\n    }),\n\n    isTimescaleDB: Ember.computed('postgresqlConfig', function () {\n      return this.get('postgresqlConfig.timescaledb_enabled') === true;\n    }),\n\n    needDownloadableCaCert: Ember.computed('features.[]', function () {\n      return this.get(\"version.hasTLS\");\n    }),\n\n    caCertUrl: Ember.computed(function () {\n      return window.EmberENV.apiBaseURI + '/ca_certificate';\n    }),\n\n    hasFeature: function hasFeature(feature) {\n      if (!feature) {\n        return false;\n      }\n      var features = this.get('features');\n      if (!features) {\n        return false;\n      }\n\n      return features.map(function (f) {\n        return f.name;\n      }).contains(feature);\n    },\n    featureStatus: function featureStatus(featureName) {\n      if (!featureName) {\n        return featurestatus.NOTFOUND;\n      }\n\n      var features = this.get('features');\n\n      var feature = features.find(function (f) {\n        return f.name == featureName;\n      });\n      if (!feature) {\n        return featurestatus.NOTFOUND;\n      }\n      return feature.status;\n    },\n    reloadUntilFeatureIsProvisionned: function reloadUntilFeatureIsProvisionned(feature, duration) {\n      var _this2 = this;\n\n      setTimeout(function () {\n        _this2.reload().then(function (db) {\n          if (db.featureStatus(feature).startsWith(featurestatus.PENDING)) {\n            db.reloadUntilFeatureIsProvisionned(feature, 10000);\n          }\n        }).catch(function () {\n          // In some cases the DB will be unavailable during provisioning\n          // and the reload will stop in a perfectly normal case.\n          _this2.reloadUntilFeatureIsProvisionned(feature, 10000);\n        });\n      }, duration);\n    },\n\n\n    /*\n     * feature is actually the name of the feature\n     * options can be anything\n     */\n    addFeature: function addFeature(feature, options) {\n      var _this3 = this;\n\n      var adapter = this.store.adapterFor('database');\n      var url = adapter.buildURL('database', this.get('id')) + '/features';\n      return adapter.ajax(url, 'POST', {\n        data: {\n          feature: {\n            name: feature,\n            options: options\n          }\n        }\n      }).then(function (data) {\n        _this3.get('features').addObject({ name: data.name, status: data.status });\n      });\n    },\n\n\n    /*\n     * feature is actually the name of the feature\n     */\n    removeFeature: function removeFeature(featureName) {\n      var _this4 = this;\n\n      var adapter = this.store.adapterFor('database');\n      var url = adapter.buildURL('database', this.get('id')) + '/features?feature=' + featureName;\n      return adapter.ajax(url, 'DELETE', null).then(function () {\n        _this4.get('features').forEach(function (feature) {\n          if (feature.name == featureName) {\n            _this4.get('features').removeObject(feature);\n            return;\n          }\n        });\n      });\n    },\n\n\n    /*\n     * fetch plan of the database\n     */\n    currentPlan: Ember.computed('plan', function () {\n      var _this5 = this;\n\n      var adapter = this.store.adapterFor('database');\n      var url = adapter.buildURL('database', this.get('id')) + '/plan';\n      return adapter.ajax(url, 'GET').then(function (data) {\n        _this5.store.pushPayload('plan', data);\n        var modelPlan = _this5.store.peekRecord('plan', data.plan.id);\n        return modelPlan;\n      });\n    }),\n\n    logsURL: function logsURL() {\n      var adapter = this.store.adapterFor('database');\n      var url = adapter.buildURL('database', this.get('id')) + '/logs';\n      return adapter.ajax(url, 'GET');\n    },\n\n\n    /*\n     * Informations about logical databases of a database deployment\n     */\n    databases: function databases() {\n      return this.action('list-databases', {}).then(function (res) {\n        return res.result;\n      });\n    },\n    deleteDatabase: function deleteDatabase(db) {\n      return this.action('delete-database', { database_name: db }).then(function (res) {\n        return res.result;\n      });\n    },\n    createDatabase: function createDatabase(db) {\n      return this.action('create-database', { database_name: db }).then(function (res) {\n        return res.result;\n      });\n    },\n    resetDatabase: function resetDatabase(db) {\n      return this.action('reset-database', { database_name: db }).then(function (res) {\n        return res.result;\n      });\n    },\n\n\n    // SQLMode configuration\n    sqlMode: function sqlMode() {\n      return this.action('get-sqlmode', {}).then(function (res) {\n        return res.result;\n      });\n    },\n    setSQLMode: function setSQLMode(mode) {\n      return this.action('set-sqlmode', mode).then(function (res) {\n        return res.result;\n      });\n    },\n    action: function action(actionName, params) {\n      var adapter = this.store.adapterFor('database');\n      var url = adapter.buildURL('database', this.get('id')) + '/action';\n      var request = Ember.$.ajax({\n        method: 'POST',\n        url: url,\n        contentType: 'application/json; charset=utf-8',\n        processData: false,\n        data: JSON.stringify({\n          action_name: actionName,\n          params: params\n        }),\n        dataType: 'json'\n      });\n      return new Ember.RSVP.Promise(function (resolve, reject) {\n        request.done(function (data) {\n          resolve(data);\n        });\n        request.fail(function (jqXHR) {\n          reject(jqXHR.responseJSON, jqXHR);\n        });\n      });\n    },\n    upgrade: function upgrade() {\n      var _this6 = this;\n\n      var adapter = this.store.adapterFor('database');\n      var url = adapter.buildURL('database', this.get('id')) + '/upgrade';\n\n      var request = Ember.$.ajax({\n        method: 'POST',\n        url: url,\n        contentType: 'application/json; charset=utf-8',\n        dataType: 'json'\n      });\n\n      var requestUpgradePromise = new Ember.RSVP.Promise(function (resolve, reject) {\n        request.done(function (data, _, jqXHR) {\n          // For the getResponseHeader to work, the CORS headers sent by the server\n          // need to expose Location\n          resolve(jqXHR.getResponseHeader('Location'));\n        });\n        request.fail(function (jqXHR, textStatus) {\n          reject(textStatus);\n        });\n      });\n\n      var endOfUpgradePromise = requestUpgradePromise.then(function (operationUrl) {\n        return _this6.monitorOperation(operationUrl);\n      });\n\n      return { triggered: requestUpgradePromise, done: endOfUpgradePromise };\n    },\n    monitorOperation: function monitorOperation(operationUrl) {\n      var _this7 = this;\n\n      var url = window.EmberENV.apiBaseURI + \"/\" + operationUrl;\n      if (operationUrl.startsWith('http')) {\n        url = operationUrl;\n      }\n      var previousStatus = null;\n      return new Ember.RSVP.Promise(function (resolve, reject) {\n        // Get every checkInterval ms the upgrade operation and\n        // wait for it to finish or error\n        var upgradeIntervalId = setInterval(function () {\n          var requestOperation = Ember.$.getJSON(url);\n          requestOperation.done(function (data) {\n            if (previousStatus !== null && previousStatus === data.operation.status) {\n              return;\n            }\n            previousStatus = data.operation.status;\n            _this7.store.pushPayload('operation', data);\n            _this7.set('currentOperation', _this7.store.recordForId('operation', data.operation.id));\n            var status = _this7.get('currentOperation.status');\n            if (status === _operation.statuses.ERROR || status === _operation.statuses.FINISHED || status === _operation.statuses.USER_ERROR) {\n              clearInterval(_this7.get('upgradeIntervalId'));\n              if (status === _operation.statuses.ERROR) {\n                reject(data.operation.error);\n                return;\n              }\n              resolve(data.operation);\n              return;\n            }\n          });\n          requestOperation.fail(function (jqXHR, textStatus) {\n            clearInterval(_this7.get('upgradeIntervalId'));\n            _this7.set(\"currentOperation.error\", textStatus);\n            reject(textStatus);\n          });\n        }, _this7.get('checkInterval'));\n        _this7.set('upgradeIntervalId', upgradeIntervalId);\n      });\n    },\n    manualBackup: function manualBackup() {\n      var adapter = this.store.adapterFor('database');\n      var url = adapter.buildURL('database', this.get('id')) + '/backups';\n      var request = Ember.$.ajax({\n        method: 'POST',\n        url: url,\n        contentType: 'application/json; charset=utf-8',\n        processData: false,\n        dataType: 'json'\n      });\n      return new Ember.RSVP.Promise(function (resolve, reject) {\n        request.done(resolve);\n        request.fail(reject);\n      });\n    },\n    pitrRestore: function pitrRestore(restoreTime) {\n      var adapter = this.store.adapterFor('database');\n      var url = adapter.buildURL('database', this.get('id')) + '/pitr/restore';\n      var request = Ember.$.ajax({\n        method: 'POST',\n        url: url,\n        contentType: 'application/json',\n        data: JSON.stringify({ restore_time: restoreTime })\n      });\n      return new Ember.RSVP.Promise(function (resolve, reject) {\n        request.done(resolve);\n        request.fail(reject);\n      });\n    },\n\n\n    canModifyUsers: Ember.computed('typeName', function () {\n      var typeName = this.get('typeName');\n      return typeName === \"mongo\" || typeName === \"mysql\" || typeName === \"postgresql\" || typeName === \"influxdb\";\n    }),\n\n    canModifyDatabases: Ember.computed('typeName', function () {\n      var typeName = this.get('typeName');\n      return typeName === \"mysql\" || typeName === \"mongo\";\n    }),\n\n    showDatabaseSize: Ember.computed('typeName', function () {\n      var typeName = this.get('typeName');\n      return !(typeName === dbTypes.REDIS || typeName === dbTypes.ELASTICSEARCH);\n    }),\n\n    showConnections: Ember.computed('typeName', function () {\n      var typeName = this.get('typeName');\n      return typeName === dbTypes.MYSQL || typeName === dbTypes.PGSQL;\n    }),\n\n    themeColor: Ember.computed('typeName', function () {\n      var typeName = this.get('typeName');\n\n      switch (typeName) {\n        case dbTypes.MONGO:\n          return 'mongo-color';\n        case dbTypes.MYSQL:\n          return 'mysql-color';\n        case dbTypes.PGSQL:\n          return 'postgresql-color';\n        case dbTypes.REDIS:\n          return 'redis-color';\n        case dbTypes.ELASTICSEARCH:\n          return 'elasticsearch-color';\n        case dbTypes.INFLUX:\n          return 'influx-color';\n        default:\n          return '';\n      }\n    }),\n\n    displayName: Ember.computed('typeName', function () {\n      var typeName = this.get('typeName');\n\n      switch (typeName) {\n        case dbTypes.MONGO:\n          return 'MongoDB';\n        case dbTypes.MYSQL:\n          return 'MySQL';\n        case dbTypes.PGSQL:\n          return 'PostgreSQL';\n        case dbTypes.REDIS:\n          return 'Redis';\n        case dbTypes.ELASTICSEARCH:\n          return 'Elasticsearch';\n        case dbTypes.INFLUX:\n          return \"InfluxDB\";\n        default:\n          return '';\n      }\n    }),\n\n    environmentVariableName: Ember.computed('typeName', function () {\n      var typeName = this.get('typeName');\n\n      switch (typeName) {\n        case dbTypes.MONGO:\n          return 'SCALINGO_MONGO_URL';\n        case dbTypes.MYSQL:\n          return 'SCALINGO_MYSQL_URL';\n        case dbTypes.PGSQL:\n          return 'SCALINGO_POSTGRESQL_URL';\n        case dbTypes.REDIS:\n          return 'SCALINGO_REDIS_URL';\n        case dbTypes.ELASTICSEARCH:\n          return 'SCALINGO_ELASTICSEARCH_URL';\n        case dbTypes.INFLUX:\n          return 'SCALINGO_INFLUX_URL';\n        default:\n          return '';\n      }\n    }),\n\n    minVersionForTLS: Ember.computed('typeName', function () {\n      var typeName = this.get('typeName');\n\n      switch (typeName) {\n        case dbTypes.MONGO:\n          return '3.4.7';\n        case dbTypes.MYSQL:\n          return '5.7.19';\n        case dbTypes.PGSQL:\n          return '9.6.5';\n        case dbTypes.ELASTICSEARCH:\n          return '5.5.3';\n        case dbTypes.INFLUX:\n          return '1.2.4';\n        default:\n          return '';\n      }\n    }),\n\n    dockerHubUrl: Ember.computed('typeName', function () {\n      return 'https://hub.docker.com/r/scalingo/' + this.get('typeName');\n    })\n  });\n});","define('database-dashboard/models/instance', ['exports', 'ember-data', 'database-dashboard/models/database'], function (exports, _emberData, _database) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.instanceTypes = undefined;\n  var instanceTypes = exports.instanceTypes = {\n    GATEWAY: \"gateway\",\n    DB_NODE: \"db-node\",\n    UTILITY: \"utility\"\n  };\n\n  exports.default = _emberData.default.Model.extend({\n    hostname: _emberData.default.attr('string'),\n    port: _emberData.default.attr('number'),\n    status: _emberData.default.attr('string'),\n    type: _emberData.default.attr('string'),\n    privateIp: _emberData.default.attr('string'),\n    features: _emberData.default.attr(),\n\n    // Added relationships\n    database: _emberData.default.belongsTo('database'),\n\n    typeString: Ember.computed('type', function () {\n      switch (this.get('type')) {\n        case instanceTypes.GATEWAY:\n          return 'Gateway';\n        case instanceTypes.DB_NODE:\n          return 'Node';\n        case instanceTypes.UTILITY:\n          if (this.get('database.typeName') == _database.dbTypes.REDIS) {\n            return 'Sentinel';\n          }\n          return 'Utility';\n        default:\n          return 'Unknown';\n      }\n    }),\n\n    hasFeature: function hasFeature(featureName) {\n      if (!featureName) {\n        return false;\n      }\n      var features = this.get('features');\n      if (!features) {\n        return false;\n      }\n\n      return features.contains(featureName);\n    }\n  });\n});","define('database-dashboard/models/operation', ['exports', 'ember-data'], function (exports, _emberData) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.types = exports.statuses = undefined;\n  var statuses = exports.statuses = {\n    PENDING: \"pending\",\n    RUNNING: \"running\",\n    FINISHED: \"finished\",\n    ERROR: \"error\",\n    USER_ERROR: \"user-error\"\n  };\n\n  var types = exports.types = {\n    UPGRADE: \"upgrade\",\n    PITR_BACKUP: \"pitr_backup\",\n    PITR_RESTORE: \"pitr_restore\"\n  };\n\n  exports.default = _emberData.default.Model.extend({\n    status: _emberData.default.attr('string'),\n    createdAt: _emberData.default.attr('date'),\n    finishedAt: _emberData.default.attr('date'),\n    type: _emberData.default.attr('string'),\n    error: _emberData.default.attr('string'),\n\n    // Added relationships\n    database: _emberData.default.belongsTo('database'),\n\n    isUpgrading: Ember.computed('status', function () {\n      var status = this.get('status');\n      return status === statuses.PENDING || status === statuses.RUNNING;\n    })\n  });\n});","define('database-dashboard/models/plan', ['exports', 'ember-data'], function (exports, _emberData) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _emberData.default.Model.extend({\n    backup: _emberData.default.attr('boolean'),\n    memory: _emberData.default.attr('number'),\n    disk: _emberData.default.attr('number'), // In MB\n\n    // SAND cluster specific\n    gatewayNodes: _emberData.default.attr('number'),\n    esMasterDataNodes: _emberData.default.attr('number'),\n    mysqlNodes: _emberData.default.attr('number'),\n    postgresqlNodes: _emberData.default.attr('number'),\n    redisNodes: _emberData.default.attr('number'),\n\n    // MongoDB specific\n    mongoDataNode: _emberData.default.attr('number'),\n    mongoArbiterNode: _emberData.default.attr('number'),\n    mongoBackupNode: _emberData.default.attr('number'),\n\n    diskBytes: Ember.computed('disk', function () {\n      return this.get('disk') * 1024 * 1024;\n    })\n  });\n});","define('database-dashboard/models/session', ['exports', 'js-base64', 'ember-cli-js-cookie'], function (exports, _jsBase, _emberCliJsCookie) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var ACCESS_TOKEN = 'access_token';\n  var DATABASE_ID = 'database_id';\n  var IS_ADMIN = 'is_admin';\n\n  var cookiesOpts = { path: '/' };\n\n  exports.default = Ember.Object.extend({\n    // Properties\n    token: null,\n    databaseId: null,\n    isAdmin: false,\n\n    initListener: Ember.on('init', function () {\n      var token = _emberCliJsCookie.default.get(ACCESS_TOKEN);\n      if (Ember.isPresent(token)) {\n        this.setProperties({\n          token: token,\n          databaseId: _emberCliJsCookie.default.get(DATABASE_ID),\n          isAdmin: _emberCliJsCookie.default.get(IS_ADMIN)\n        });\n      }\n    }),\n\n    authenticated: Ember.computed('token', function () {\n      return Ember.isPresent(this.get('token'));\n    }),\n\n    httpToken: Ember.computed('token', function () {\n      return 'Basic ' + _jsBase.Base64.encode(\":\" + this.get('token'));\n    }),\n\n    // Observers\n    tokenChanged: Ember.observer('token', function () {\n      if (this.get('authenticated')) {\n        Ember.$.ajaxSetup({\n          headers: { 'Authorization': this.get(\"httpToken\") },\n          dataType: 'json'\n        });\n\n        _emberCliJsCookie.default.set(ACCESS_TOKEN, this.get('token'), cookiesOpts);\n      } else {\n        Ember.$.ajaxSetup({ headers: { 'Authorization': 'Basic none' } });\n\n        _emberCliJsCookie.default.remove(ACCESS_TOKEN, cookiesOpts);\n      }\n    }),\n\n    databaseIdChanged: Ember.observer('databaseId', function () {\n      var value = this.get('databaseId');\n      if (value) {\n        _emberCliJsCookie.default.set(DATABASE_ID, value, cookiesOpts);\n      } else {\n        _emberCliJsCookie.default.remove(DATABASE_ID, cookiesOpts);\n      }\n    }),\n\n    isAdminChanged: Ember.observer('isAdmin', function () {\n      var value = this.get('isAdmin');\n      if (value) {\n        _emberCliJsCookie.default.set(IS_ADMIN, value, cookiesOpts);\n      } else {\n        _emberCliJsCookie.default.remove(IS_ADMIN, cookiesOpts);\n      }\n    }),\n\n    clear: function clear() {\n      this.setProperties({\n        token: null,\n        databaseId: null,\n        isAdmin: false\n      });\n    }\n  });\n});","define('database-dashboard/resolver', ['exports', 'ember-resolver'], function (exports, _emberResolver) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _emberResolver.default;\n});","define('database-dashboard/router', ['exports', 'database-dashboard/config/environment'], function (exports, _environment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var AppRouter = Ember.Router.extend({\n    location: _environment.default.locationType\n  });\n\n  AppRouter.map(function () {\n    this.route('sso');\n    this.route('you-are-lost');\n\n    this.route('index', { path: '/' }, function () {\n      this.route('dashboard', { resetNamespace: true, path: '/dashboard/:id' }, function () {\n        this.route('overview');\n        this.route('users');\n        this.route('databases');\n        this.route('backups');\n        this.route('logs');\n        this.route('logs-archives');\n        this.route('pg-running-queries');\n        this.route('pg-query-statistics');\n        this.route('advanced');\n        this.route('metrics');\n      });\n    });\n  });\n\n  exports.default = AppRouter;\n});","define('database-dashboard/routes/application', ['exports', 'database-dashboard/routes/base'], function (exports, _base) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _base.default.extend({\n    title: function title(tokens) {\n      var base = '';\n      if (tokens && tokens.length > 0) {\n        var joined = '' + tokens.reverse().join(' - ');\n        if (base) {\n          joined = joined + ' - ' + base;\n        }\n        return joined;\n      } else {\n        return base;\n      }\n    },\n\n\n    actions: {\n      addLayoutOffset: function addLayoutOffset() {\n        this.controllerFor('application').set('layoutOffset', true);\n      },\n      error: function error(_error) {\n        this.controllerFor('application').set('layoutOffset', false);\n\n        var errorTemplate = _error.template || 'error';\n        var parentTemplate = _error.parent || 'application';\n        var controller = _error.controller || 'application';\n\n        if (_error.controller) {\n          this.controllerFor(controller).setProperties(this.modelFor(controller));\n        }\n\n        this.render();\n        if (parentTemplate !== 'application') {\n          this.render(parentTemplate, { into: 'application' });\n        }\n        this.render(errorTemplate, { into: parentTemplate });\n      }\n    }\n  });\n});","define('database-dashboard/routes/authenticated', ['exports', 'database-dashboard/routes/base'], function (exports, _base) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _base.default.extend({\n    beforeModel: function beforeModel(transition) {\n      if (!this.get('session.authenticated')) {\n        this.get('session').clear();\n        this.redirectToLost(transition);\n      }\n    },\n    redirectToLost: function redirectToLost() {\n      this.transitionTo('you-are-lost');\n    },\n\n\n    actions: {\n      // recover from any error that may happen during the transition to this route\n      error: function error(reason, transition) {\n        // if the HTTP status is 401 (unauthorised), redirect to the login page\n        if (reason.status === 401) {\n          this.redirectToLost(transition);\n          return false;\n        } else {\n          console.log('unknown problem see in AuthenticatedRoute');\n          console.log(\"transition\", transition);\n          console.trace(reason);\n          return true;\n        }\n      }\n    }\n  });\n});","define('database-dashboard/routes/base', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define('database-dashboard/routes/dashboard', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    titleToken: '',\n\n    beforeModel: function beforeModel(transition) {\n      // Requested database is not the one we are authenticated for\n      if (this.get('session.databaseId') !== transition.params.dashboard.id) {\n        this.get('session').clear();\n        this.redirectToLost(transition);\n      }\n    },\n    redirectToLost: function redirectToLost() {\n      this.transitionTo('you-are-lost');\n    },\n    model: function model(params) {\n      var store = this.store;\n      var database = store.findRecord('database', params.id);\n\n      return database.then(function (db) {\n        return Ember.RSVP.hash({\n          db: db,\n          version: db.get('version'),\n          plan: db.get('currentPlan')\n        }).then(function (model) {\n          model.db.get('currentOperation.id');\n          return model;\n        });\n      });\n    },\n    setupController: function setupController(controller, model) {\n      var displayName = model.db.get('displayName');\n      var title = 'Scalingo ' + displayName + ' dashboard';\n      this.set('titleToken', title);\n      this.send('updateNavTitle', title);\n\n      var tabsContent = [{ id: 'overview', title: 'Overview' }, { id: 'logs', title: 'Logs' }, { id: 'metrics', title: 'Metrics' }, { id: 'backups', title: 'Backups' }];\n      if (model.db.get('canModifyUsers')) {\n        tabsContent.splice(tabsContent.length, 0, { id: 'users', title: 'Users' });\n      }\n      if (model.db.get('canModifyDatabases')) {\n        tabsContent.splice(tabsContent.length, 0, { id: 'databases', title: 'Databases' });\n      }\n\n      if (model.db.get('typeName') == \"postgresql\") {\n        tabsContent.splice(tabsContent.length, 0, { id: 'advanced', title: 'Extensions' });\n        tabsContent.splice(3, 0, { id: 'pg-query-statistics', title: 'Query Statistics' });\n        tabsContent.splice(3, 0, { id: 'pg-running-queries', title: 'Running Queries' });\n      } else {\n        tabsContent.splice(tabsContent.length, 0, { id: 'advanced', title: 'Advanced' });\n      }\n\n      this.controllerFor('index').setProperties({\n        appName: model.db.get('appName'),\n        dbType: model.db.get('displayName').toLowerCase(),\n        navColor: model.db.get('themeColor'),\n        tabsContent: tabsContent\n      });\n    },\n\n\n    actions: {\n      updateSelectedTab: function updateSelectedTab(tab) {\n        this.controllerFor('index').set('selectedTab', tab);\n      }\n    }\n\n  });\n});","define('database-dashboard/routes/dashboard/advanced', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    titleToken: 'Advanced',\n\n    model: function model() {\n      var db = this.modelFor('dashboard').db;\n      var dbId = db.get('id');\n      var features = this.store.query('databaseFeature', { dbId: dbId });\n\n      return Ember.RSVP.hash({\n        db: db,\n        data: {\n          features: features\n        }\n      });\n    },\n\n\n    actions: {\n      didTransition: function didTransition() {\n        this.send('updateSelectedTab', 'advanced');\n      }\n    }\n  });\n});","define('database-dashboard/routes/dashboard/backups', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    confirmationModal: Ember.inject.service('confirmation-modal'),\n    titleToken: 'Backups',\n\n    model: function model() {\n      var dashboard = this.modelFor('dashboard');\n      var db = dashboard.db;\n      var plan = dashboard.plan;\n\n      return Ember.RSVP.hash({\n        db: db,\n        plan: plan,\n        dbBackups: this.store.query('databaseBackup', { dbId: db.get('id') })\n      });\n    },\n\n\n    actions: {\n      didTransition: function didTransition() {\n        this.send('updateSelectedTab', 'backups');\n      },\n\n\n      downloadBackup: function downloadBackup(downloadUrl) {\n        var request = Ember.$.ajax(downloadUrl, {\n          method: 'GET',\n          dataType: 'json'\n        });\n        var backupPromise = new Ember.RSVP.Promise(function (resolve, reject) {\n          return request.then(resolve, reject);\n        });\n        return backupPromise.then(function (value) {\n          window.location = value.download_url;\n        });\n      },\n      restoreBackup: function restoreBackup(backup) {\n        var _this = this;\n\n        this.get('confirmationModal').display({\n          okLabel: 'Restore',\n          prompt: 'Do you really want to restore the backup ' + backup.get('name') + '?',\n          extraMsg: Ember.String.htmlSafe('This operation will restore the backup \"' + backup.get('name') + '\". ' + ('The database will be restored with data from: <br> ' + backup.get('createdAt')) + ('<br><br>To validate the operation please type <b>\"' + backup.get('name') + '\"</b>:')),\n          validationText: backup.get('name'),\n          action: function action() {\n            backup.restore().done(function () {\n              _this.get('notifier').notify(\"This backup is being restored\");\n            }).fail(function () {\n              _this.get('notifier').notify(\"Fail to restore backup\");\n            });\n          }\n        });\n      }\n    }\n  });\n});","define('database-dashboard/routes/dashboard/databases', ['exports', 'database-dashboard/mixins/retry-until-success'], function (exports, _retryUntilSuccess) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend(_retryUntilSuccess.default, {\n    titleToken: 'Databases',\n\n    model: function model() {\n      return Ember.RSVP.hash({\n        db: this.modelFor(\"dashboard\")[\"db\"]\n      });\n    },\n    setupController: function setupController(controller, model) {\n      controller.setProperties(model);\n    },\n\n\n    actions: {\n      didTransition: function didTransition() {\n        this.send('updateSelectedTab', 'databases');\n      }\n    }\n  });\n});","define('database-dashboard/routes/dashboard/index', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    redirect: function redirect() {\n      this.transitionTo('dashboard.overview');\n    }\n  });\n});","define('database-dashboard/routes/dashboard/logs-archives', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    titleToken: 'Log archives',\n\n    model: function model() {\n      var db = this.modelFor('dashboard').db;\n\n      return Ember.RSVP.hash({\n        db: db\n      });\n    },\n\n\n    actions: {\n      didTransition: function didTransition() {\n        this.send('updateSelectedTab', null);\n      }\n    }\n  });\n});","define('database-dashboard/routes/dashboard/logs', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    titleToken: 'Logs',\n\n    model: function model() {\n      var db = this.modelFor('dashboard').db;\n\n      return Ember.RSVP.hash({\n        db: db\n      });\n    },\n\n\n    actions: {\n      didTransition: function didTransition() {\n        this.send('updateSelectedTab', 'logs');\n      }\n    }\n  });\n});","define('database-dashboard/routes/dashboard/metrics', ['exports', 'database-dashboard/models/database-metrics'], function (exports, _databaseMetrics) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    titleToken: 'Metrics',\n\n    model: function model() {\n      var db = this.modelFor('dashboard').db;\n\n      return Ember.RSVP.hash({\n        db: db,\n        metrics: _databaseMetrics.default.get(db.get('id'))\n      });\n    },\n\n\n    actions: {\n      didTransition: function didTransition() {\n        this.send('updateSelectedTab', 'metrics');\n      }\n    }\n  });\n});","define('database-dashboard/routes/dashboard/overview', ['exports', 'database-dashboard/mixins/retry-until-success', 'database-dashboard/models/database-metrics', 'database-dashboard/models/database-health', 'database-dashboard/models/database-lag', 'database-dashboard/models/database'], function (exports, _retryUntilSuccess, _databaseMetrics, _databaseHealth, _databaseLag, _database) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend(_retryUntilSuccess.default, {\n    titleToken: 'Overview',\n\n    model: function model() {\n      return this.modelFor('dashboard');\n    },\n    startMetricsReloader: function startMetricsReloader(controller, databaseID) {\n      var _this = this;\n\n      var promise = this.retryUntilSuccess(\"database-metrics\", function () {\n        return _databaseMetrics.default.get(databaseID);\n      });\n      promise.then(function (metrics) {\n        controller.set('dbMetrics', metrics);\n        setTimeout(function () {\n          _this.startMetricsReloader(controller, databaseID);\n        }, 10000);\n      });\n      return promise;\n    },\n    startHealthReloader: function startHealthReloader(controller, databaseID) {\n      var _this2 = this;\n\n      return _databaseHealth.default.get(databaseID).then(function (dbHealth) {\n        controller.set('dbHealth', dbHealth);\n      }, function () {\n        controller.set('dbHealth', null);\n      }).always(function () {\n        setTimeout(function () {\n          _this2.startHealthReloader(controller, databaseID);\n        }, 60000);\n      });\n    },\n    startLagReloader: function startLagReloader(controller, databaseID) {\n      var _this3 = this;\n\n      return _databaseLag.default.get(databaseID).then(function (dbLag) {\n        controller.set('dbLag', dbLag);\n      }, function () {\n        controller.set('dbLag', null);\n      }).always(function () {\n        setTimeout(function () {\n          _this3.startLagReloader(controller, databaseID);\n        }, 60000);\n      });\n    },\n    setupController: function setupController(controller, model) {\n      var databaseID = model.db.get('id');\n      if (model.db.get('typeName') == _database.dbTypes.ELASTICSEARCH) {\n        this.startHealthReloader(controller, databaseID);\n      } else if (model.db.get('cluster') && (model.db.get('typeName') == _database.dbTypes.PGSQL || model.db.get('typeName') == _database.dbTypes.MYSQL)) {\n        this.startLagReloader(controller, databaseID);\n      }\n      this.startMetricsReloader(controller, databaseID);\n      this._super(controller, model);\n    },\n\n\n    actions: {\n      didTransition: function didTransition() {\n        this.send('updateSelectedTab', 'overview');\n      }\n    }\n  });\n});","define('database-dashboard/routes/dashboard/pg-query-statistics', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    titleToken: 'Query statistics',\n\n    model: function model() {\n      var db = this.modelFor('dashboard').db;\n      return Ember.RSVP.hash({\n        db: db\n      });\n    },\n    setupController: function setupController(controller, model) {\n      var _this = this;\n\n      this._super(controller, model);\n      model.db.get('hasPgStatStatements').then(function (ok) {\n        if (ok) {\n          _this.controllerFor('dashboard.pg-query-statistics').send('reload', { dontNotify: true });\n        }\n      });\n    },\n\n\n    actions: {\n      didTransition: function didTransition() {\n        this.send('updateSelectedTab', 'pg-query-statistics');\n      }\n    }\n  });\n});","define('database-dashboard/routes/dashboard/pg-running-queries', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    titleToken: 'Current Queries',\n\n    model: function model() {\n      var db = this.modelFor('dashboard').db;\n\n      return Ember.RSVP.hash({\n        db: db\n      });\n    },\n    setupController: function setupController(controller, model) {\n      this._super(controller, model);\n      this.controllerFor('dashboard.pg-running-queries').send('reload');\n    },\n\n\n    actions: {\n      didTransition: function didTransition() {\n        this.send('updateSelectedTab', 'pg-running-queries');\n      }\n    }\n  });\n});","define('database-dashboard/routes/dashboard/users', ['exports', 'database-dashboard/mixins/retry-until-success'], function (exports, _retryUntilSuccess) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend(_retryUntilSuccess.default, {\n    titleToken: 'Users',\n\n    model: function model() {\n      return Ember.RSVP.hash({\n        db: this.modelFor(\"dashboard\")[\"db\"]\n      });\n    },\n    setupController: function setupController(controller, model) {\n      var _this = this;\n\n      model.promise = this.retryUntilSuccess(\"database-users\", function () {\n        return _this.get('store').query('database-user', { dbId: model.db.get('id') }).then(function (users) {\n          return users.forEach(function (user) {\n            user.set('database', model.db);\n          });\n        });\n      });\n      controller.setProperties(model);\n    },\n\n\n    actions: {\n      didTransition: function didTransition() {\n        this.send('updateSelectedTab', 'users');\n      }\n    }\n  });\n});","define(\"database-dashboard/routes/index\", [\"exports\", \"database-dashboard/routes/authenticated\"], function (exports, _authenticated) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _authenticated.default.extend({\n    beforeModel: function beforeModel(transition) {\n      this._super(arguments);\n\n      if (transition.targetName === \"index.index\") {\n        this.transitionTo(\"you-are-lost\");\n      }\n    },\n    renderTemplate: function renderTemplate() {\n      this.render('components/nav-drawer-layout', {\n        outlet: 'nav',\n        into: 'application'\n      });\n      this.render();\n    },\n\n\n    actions: {\n      updateNavTitle: function updateNavTitle(title) {\n        this.controllerFor('index').set('navTitle', title);\n      }\n    }\n  });\n});","define('database-dashboard/routes/sso', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define('database-dashboard/serializers/database-type-version', ['exports', 'active-model-adapter'], function (exports, _activeModelAdapter) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _activeModelAdapter.ActiveModelSerializer.extend({});\n});","define('database-dashboard/serializers/database-user', ['exports', 'ember-data', 'active-model-adapter'], function (exports, _emberData, _activeModelAdapter) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _activeModelAdapter.ActiveModelSerializer.extend(_emberData.default.EmbeddedRecordsMixin, {\n    primaryKey: 'name'\n  });\n});","define('database-dashboard/serializers/database', ['exports', 'ember-data', 'active-model-adapter'], function (exports, _emberData, _activeModelAdapter) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _activeModelAdapter.ActiveModelSerializer.extend(_emberData.default.EmbeddedRecordsMixin, {\n    attrs: {\n      instances: { embedded: 'always' }\n    }\n  });\n});","define('database-dashboard/services/ajax', ['exports', 'ember-ajax/services/ajax'], function (exports, _ajax) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _ajax.default;\n    }\n  });\n});","define('database-dashboard/services/confirmation-modal', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Service.extend({\n    context: null,\n\n    display: function display(context) {\n      this.set('context', context);\n      Ember.$('#confirmationModal').modal('open');\n    }\n  });\n});","define('database-dashboard/services/keyboard', ['exports', 'ember-keyboard/services/keyboard'], function (exports, _keyboard) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _keyboard.default;\n    }\n  });\n});","define('database-dashboard/services/md-settings', ['exports', 'ember-cli-materialize/services/md-settings'], function (exports, _mdSettings) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _mdSettings.default;\n    }\n  });\n});","define('database-dashboard/services/modal-dialog', ['exports', 'ember-modal-dialog/services/modal-dialog'], function (exports, _modalDialog) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _modalDialog.default;\n});","define('database-dashboard/services/moment', ['exports', 'ember-moment/services/moment', 'database-dashboard/config/environment'], function (exports, _moment, _environment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  var get = Ember.get;\n  exports.default = _moment.default.extend({\n    defaultFormat: get(_environment.default, 'moment.outputFormat')\n  });\n});","define('database-dashboard/services/text-measurer', ['exports', 'ember-text-measurer/services/text-measurer'], function (exports, _textMeasurer) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _textMeasurer.default;\n    }\n  });\n});","define(\"database-dashboard/templates/application\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"UUxEerpt\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"header\\\"],[7],[0,\\\"\\\\n  \\\"],[1,[25,\\\"outlet\\\",[\\\"nav\\\"],null],false],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[6,\\\"main\\\"],[7],[0,\\\"\\\\n  \\\"],[1,[18,\\\"outlet\\\"],false],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"useFullLayout\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"footer\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"center-align\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://scalingo.com/\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"img\\\"],[9,\\\"src\\\",\\\"https://scalingo.com/logo-grey.svg\\\"],[7],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[1,[18,\\\"md-modal-container\\\"],false],[0,\\\"\\\\n\\\\n\\\\n\\\"],[1,[25,\\\"confirmation-modal\\\",null,[[\\\"context\\\"],[[20,[\\\"confirmationModal\\\",\\\"context\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/application.hbs\" } });\n});","define(\"database-dashboard/templates/components/advanced-backup\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"X3w+N1JH\", \"block\": \"{\\\"symbols\\\":[\\\"zone\\\",\\\"time\\\"],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"Backup Settings\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m12\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"notPeriodicBackupsVersion\\\"]]],null,{\\\"statements\\\":[[0,\\\"          Your database plan does not support backups made by the platform.\\\\n          Please update to a paid plan to get access to this feature.\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"h2\\\"],[9,\\\"class\\\",\\\"col s12 m6\\\"],[7],[0,\\\" Periodic backups \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s6\\\"],[7],[0,\\\"\\\\n        \\\"],[1,[25,\\\"sc-md-switch\\\",null,[[\\\"checked\\\",\\\"onLabel\\\",\\\"offLabel\\\",\\\"class\\\",\\\"disabled\\\",\\\"loading\\\"],[[20,[\\\"db\\\",\\\"periodicBackupsEnabled\\\"]],\\\"Enabled\\\",\\\"Disabled\\\",\\\"title-ctrl\\\",[20,[\\\"notPeriodicBackupsVersion\\\"]],[20,[\\\"isEnablingPeriodicBackups\\\"]]]]],false],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"periodicBackupError\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"red lighten-5 red-text error-message\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"strong\\\"],[7],[0,\\\" Error: \\\"],[1,[18,\\\"periodicBackupError\\\"],false],[0,\\\" \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[25,\\\"gt\\\",[[20,[\\\"db\\\",\\\"periodicBackupsScheduledAt\\\",\\\"length\\\"]],1],null]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"alert alert-danger\\\"],[7],[0,\\\"\\\\n        Your database is backed up multiple times a day at\\\\n        \\\"],[1,[18,\\\"formatPeriodicBackupsScheduledAt\\\"],false],[0,\\\". Please ask the support to\\\\n        update the frequency of these backups.\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[10,\\\"class\\\",[26,[\\\"disablable-form \\\",[25,\\\"if\\\",[[20,[\\\"isSetPeriodicBackupsTimeDisabled\\\"]],\\\"disabled\\\"],null]]]],[7],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n            Backup daily at:\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"flex-row\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col grow\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"onchange\\\",\\\"disabled\\\"],[[20,[\\\"backupTimes\\\"]],[20,[\\\"periodicBackupsTime\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"backupTimeChanged\\\"],null],[20,[\\\"isSetPeriodicBackupsTimeDisabled\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[19,2,[\\\"text\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col grow\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"onchange\\\",\\\"disabled\\\"],[[20,[\\\"timezones\\\"]],[20,[\\\"periodicBackupsTZ\\\"]],[25,\\\"action\\\",[[19,0,[]],[25,\\\"mut\\\",[[20,[\\\"periodicBackupsTZ\\\"]]],null]],null],[20,[\\\"isSetPeriodicBackupsTimeDisabled\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[19,1,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col\\\"],[7],[0,\\\"\\\\n            \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"text\\\",\\\"isDisabled\\\",\\\"isLoading\\\",\\\"action\\\"],[\\\"Set\\\",[20,[\\\"isSetPeriodicBackupsTimeDisabled\\\"]],[20,[\\\"isSettingPeriodicBackupsTime\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"setPeriodicBackupsTime\\\"],null]]]],false],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"    \\\"],[6,\\\"h2\\\"],[7],[0,\\\" Manual backup \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"manualBackupError\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"red lighten-5 red-text error-message\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"strong\\\"],[7],[0,\\\" Error: \\\"],[1,[18,\\\"manualBackupError\\\"],false],[0,\\\" \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"text\\\",\\\"action\\\",\\\"isDisabled\\\",\\\"isLoading\\\"],[\\\"Make manual backup\\\",[25,\\\"action\\\",[[19,0,[]],\\\"makeManualBackup\\\"],null],[20,[\\\"isManualBackupDisabled\\\"]],[20,[\\\"manualBackupLoading\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"supportPITR\\\"]]],null,{\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"Point-in-Time Recovery\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"pitrError\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"red lighten-5 red-text error-message\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"strong\\\"],[7],[0,\\\" Error: \\\"],[1,[18,\\\"pitrError\\\"],false],[0,\\\" \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"notPITRversion\\\"]]],null,{\\\"statements\\\":[[0,\\\"        Your database version does not support point-in-time recovery. Please\\\\n        update at least to PostgreSQL 10.9 in order to be able to use this\\\\n        feature.\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"        Restore database state to:\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[10,\\\"class\\\",[26,[\\\"row disablable-form \\\",[25,\\\"if\\\",[[20,[\\\"isPITRDisabled\\\"]],\\\"disabled\\\"],null]]]],[7],[0,\\\"\\\\n        \\\"],[1,[25,\\\"datetime-picker\\\",null,[[\\\"onChange\\\",\\\"isDisabled\\\"],[[25,\\\"action\\\",[[19,0,[]],[25,\\\"mut\\\",[[20,[\\\"curPITRTime\\\"]]],null]],null],[20,[\\\"isPITRDisabled\\\"]]]]],false],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m12\\\"],[7],[0,\\\"\\\\n          \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"text\\\",\\\"isDisabled\\\",\\\"isLoading\\\",\\\"action\\\"],[\\\"Restore database\\\",[20,[\\\"isPITRDisabled\\\"]],[20,[\\\"isPITRLoading\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"startPITR\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m12\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"pitr-status\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"icon\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"isOperationRunning\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center pitr-status-running\\\"],[7],[0,\\\"refresh\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"isOperationPending\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center\\\"],[7],[0,\\\"scheduled\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"isOperationError\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center pitr-status-error\\\"],[7],[0,\\\"error\\\"],[8],[0,\\\"\\\\n              \\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}],[0,\\\"            \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"pitrDisabledMessage\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"em\\\"],[7],[1,[18,\\\"pitrDisabledMessage\\\"],false],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"modalIsOpen\\\"]]],null,{\\\"statements\\\":[[4,\\\"md-modal\\\",null,[[\\\"close\\\"],[\\\"closeModal\\\"]],{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"modal-content\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"h4\\\"],[7],[0,\\\" Are you sure? \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          This operation will restore the database state to the state it had at the following date: \\\"],[1,[18,\\\"curPITRTime\\\"],false],[0,\\\" \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n\\\\n          You won't be able to access your database during the restoration.\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"modal-footer\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"a\\\"],[9,\\\"class\\\",\\\"modal-action waves-effect waves-red btn-flat btn-color agree-button\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"pitrAccept\\\"]],[7],[0,\\\"\\\\n          Continue\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"a\\\"],[9,\\\"class\\\",\\\"modal-action modal-close waves-effect waves-red btn-flat cancel-button\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"closeModal\\\"]],[7],[0,\\\"\\\\n          Cancel\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/advanced-backup.hbs\" } });\n});","define(\"database-dashboard/templates/components/advanced-elasticsearch-feature\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"ZjIId5j6\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"p\\\"],[7],[0,\\\"\\\\n\\\\t\\\"],[1,[25,\\\"sc-md-switch\\\",null,[[\\\"value\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"loading\\\",\\\"action\\\"],[[20,[\\\"feature\\\",\\\"featureName\\\"]],[20,[\\\"feature\\\",\\\"displayName\\\"]],[20,[\\\"feature\\\",\\\"installed\\\"]],[20,[\\\"feature\\\",\\\"installed\\\"]],[20,[\\\"isFeatureActivating\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"toggleActivatePluginConfirmation\\\",[20,[\\\"feature\\\"]]],null]]]],false],[0,\\\"\\\\n\\\\t\\\"],[6,\\\"p\\\"],[9,\\\"class\\\",\\\"feature\\\"],[7],[1,[20,[\\\"feature\\\",\\\"description\\\"]],true],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/advanced-elasticsearch-feature.hbs\" } });\n});","define(\"database-dashboard/templates/components/advanced-elasticsearch\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"ErPwPV70\", \"block\": \"{\\\"symbols\\\":[\\\"feature\\\"],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[\\\"Elasticsearch features\\\",\\\"db-advanced db-advanced-elasticsearch\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"h2\\\"],[7],[0,\\\"Plugins\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"blockquote\\\"],[7],[0,\\\"\\\\n          Plugins are a way to enhance the core Elasticsearch functionality in a custom manner. They range from adding custom mapping types, custom analyzers, native scripts, custom discovery and more.\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"right-align\\\"],[7],[0,\\\"\\\\n            ―\\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://www.elastic.co/guide/en/elasticsearch/plugins/master/intro.html\\\"],[7],[0,\\\"Elasticsearch Documentation\\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n         We provide a fixed list of Elasticsearch plugins you can activate on your database. If you would like to see another plugin in this list, please \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"mailto:support@scalingo.com\\\"],[7],[0,\\\"contact our team\\\"],[8],[0,\\\". We would be delighted to have a look at your request and possibly add this plugin to the list. Note that activating a plugin will trigger a restart of you database. It may take a while depending on your database size.\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"data\\\",\\\"features\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"h3\\\"],[7],[0,\\\"Available plugins\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"data\\\",\\\"features\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"advanced-elasticsearch-feature\\\",null,[[\\\"db\\\",\\\"feature\\\",\\\"enable\\\"],[[20,[\\\"db\\\"]],[19,1,[]],\\\"featureEnable\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n          \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"red-text\\\"],[7],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"strong\\\"],[7],[6,\\\"i\\\"],[7],[6,\\\"br\\\"],[7],[8],[0,\\\"You need to upgrade your instance to a version greater or equal to 2.3.4 to enable plugins\\\"],[8],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/advanced-elasticsearch.hbs\" } });\n});","define(\"database-dashboard/templates/components/advanced-influxdb\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"vj+yLt+h\", \"block\": \"{\\\"symbols\\\":[\\\"rp\\\"],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[\\\"InfluxDB features\\\",\\\"db-advanced db-advanced-influxdb\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"h2\\\"],[7],[0,\\\"Downsampling and Data Retention\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"blockquote\\\"],[7],[0,\\\"\\\\n          InfluxDB can handle hundreds of thousands of data points per second. Working with that\\\\n          much data over a long period of time can create storage concerns. A natural solution is to\\\\n          downsample the data; keep the high precision raw data for only a limited time, and store\\\\n          the lower precision, summarized data for much longer or forever.\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"right-align\\\"],[7],[0,\\\"\\\\n            ―\\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://docs.influxdata.com/influxdb/v1.2/guides/downsampling_and_retention/\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[0,\\\"InfluxDB Documentation\\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          To keep the performance of your InfluxDB instance high, you may want to create a retention\\\\n          policy. To do so, you just need to name the retention policy and to provide a duration.\\\\n          The records will be automatically deleted after the specified duration.\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          A duration string is a sequence of integers, each with a unit suffix, such as \\\\\\\"300ms\\\\\\\", \\\\\\\"1h\\\\\\\" or\\\\n          \\\\\\\"2h45m\\\\\\\". The minimum duration for a retention policy is one hour.\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          A non-default retention policy can be added to create some kind of second table for a single\\\\n          measurement. Alongside with \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://docs.influxdata.com/influxdb/v1.2/query_language/continuous_queries/\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[0,\\\"continuous queries\\\"],[8],[0,\\\", both features ease the way you can downsample your\\\\n          data.\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n        For comprehensive information about retention policy and continuous query we suggest you to read the example in\\\\n           the \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://docs.influxdata.com/influxdb/v1.2/guides/downsampling_and_retention/\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[0,\\\"InfluxDB Documentation\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s6\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"Retention Policies\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"sortedInfluxRetentionPolicies\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"bordered\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[7],[0,\\\"Name\\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[9,\\\"class\\\",\\\"center-align\\\"],[7],[0,\\\"Duration\\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[7],[8],[0,\\\"\\\\n                \\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"sortedInfluxRetentionPolicies\\\"]]],null,{\\\"statements\\\":[[0,\\\"                    \\\"],[6,\\\"tr\\\"],[9,\\\"class\\\",\\\"user-tr\\\"],[7],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n                        \\\"],[6,\\\"span\\\"],[7],[1,[19,1,[\\\"name\\\"]],false],[4,\\\"if\\\",[[19,1,[\\\"default\\\"]]],null,{\\\"statements\\\":[[0,\\\" \\\"],[6,\\\"em\\\"],[7],[0,\\\"(default)\\\"],[8]],\\\"parameters\\\":[]},null],[8],[0,\\\"\\\\n                      \\\"],[8],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[9,\\\"class\\\",\\\"center-align\\\"],[7],[0,\\\"\\\\n                        \\\"],[1,[19,1,[\\\"duration\\\"]],false],[0,\\\"\\\\n                      \\\"],[8],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[9,\\\"class\\\",\\\"right-align\\\"],[7],[0,\\\"\\\\n                        \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"icon\\\",\\\"iconPosition\\\",\\\"buttonType\\\",\\\"isDisabled\\\",\\\"action\\\"],[\\\"delete\\\",\\\"center\\\",\\\"flat\\\",[20,[\\\"isDeleting\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"toggleDeleteRetentionPolicyConfirmation\\\",[19,1,[]]],null]]]],false],[0,\\\"\\\\n                      \\\"],[8],[0,\\\"\\\\n                    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"            No rentention policies found\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s6\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"classNames\\\"],[\\\"Add a Retention Policy\\\",\\\"small\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"form\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"addRetentionPolicy\\\"],[[\\\"on\\\"],[\\\"submit\\\"]]],[7],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n            \\\"],[1,[25,\\\"sc-md-input\\\",null,[[\\\"label\\\",\\\"value\\\",\\\"required\\\",\\\"class\\\",\\\"disabled\\\",\\\"errors\\\"],[\\\"Retention policy name\\\",[20,[\\\"policyToAdd\\\",\\\"name\\\"]],true,\\\"col s6\\\",[20,[\\\"isAdding\\\"]],[20,[\\\"errors\\\",\\\"name\\\"]]]]],false],[0,\\\"\\\\n            \\\"],[1,[25,\\\"sc-md-input\\\",null,[[\\\"label\\\",\\\"value\\\",\\\"hint\\\",\\\"required\\\",\\\"class\\\",\\\"disabled\\\",\\\"errors\\\"],[\\\"Duration\\\",[20,[\\\"policyToAdd\\\",\\\"duration\\\"]],\\\"e.g. 1h, 4w, 3h15m5s\\\",true,\\\"col s6\\\",[20,[\\\"isAdding\\\"]],[20,[\\\"errors\\\",\\\"duration\\\"]]]]],false],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s6\\\"],[7],[0,\\\"\\\\n              \\\"],[1,[25,\\\"md-check\\\",null,[[\\\"checked\\\",\\\"name\\\",\\\"disabled\\\"],[[20,[\\\"policyToAdd\\\",\\\"default\\\"]],\\\"Default\\\",[20,[\\\"isAdding\\\"]]]]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[1,[25,\\\"sc-md-btn-submit\\\",null,[[\\\"text\\\",\\\"isDisabled\\\",\\\"isLoading\\\"],[\\\"Add Retention Policy\\\",[20,[\\\"isAdding\\\"]],[20,[\\\"isAdding\\\"]]]]],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/advanced-influxdb.hbs\" } });\n});","define(\"database-dashboard/templates/components/advanced-mongo\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"scCt8xDP\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[\\\"MongoDB features\\\",\\\"db-advanced db-advanced-mongo\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"h2\\\"],[7],[0,\\\"Oplog\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"blockquote\\\"],[7],[0,\\\"\\\\n          The oplog (operations log) is a special capped collection that keeps a rolling record of all operations that modify\\\\n          the data stored in your databases. MongoDB applies database operations on the primary and then records the operations\\\\n          on the primary’s oplog. The secondary members then copy and apply these operations in an asynchronous process.\\\\n          All replica set members contain a copy of the oplog, in the local.oplog.rs collection, which allows them to maintain\\\\n          the current state of the database. [...]\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"right-align\\\"],[7],[0,\\\"\\\\n            ―\\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://docs.mongodb.com/manual/core/replica-set-oplog/\\\"],[7],[0,\\\"MongoDB Documentation\\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"\\\\n            By activating the Oplog, an \\\"],[6,\\\"code\\\"],[7],[0,\\\"oplogger\\\"],[8],[0,\\\" user with read-only right will be added to your database instance.\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"\\\\n            The environment variable \\\"],[6,\\\"code\\\"],[7],[0,\\\"MONGO_OPLOG_URL\\\"],[8],[0,\\\" will be added to your app. You will need to configure your application and/or change its code to use this variable.\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"hasOplog\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"text\\\",\\\"isDisabled\\\"],[\\\"Activated\\\",true]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"          \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"text\\\",\\\"action\\\",\\\"isDisabled\\\",\\\"isLoading\\\"],[\\\"Create the oplog user\\\",[25,\\\"action\\\",[[19,0,[]],\\\"toggleActivateOplogConfirmation\\\"],null],[20,[\\\"isActivating\\\"]],[20,[\\\"isActivating\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"        \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"red-text\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/advanced-mongo.hbs\" } });\n});","define(\"database-dashboard/templates/components/advanced-mysql\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"Aw3f+svi\", \"block\": \"{\\\"symbols\\\":[\\\"mode\\\"],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[\\\"MySQL configuration\\\",\\\"db-advanced db-advanced-mysql\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"h2\\\"],[7],[0,\\\" SQL Mode \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"blockquote\\\"],[7],[0,\\\"\\\\n          Modes affect the SQL syntax MySQL supports and the data validation\\\\n          checks it performs. \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n\\\\n          The most important configuration are:\\\\n          \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[0,\\\" - \\\"],[6,\\\"b\\\"],[7],[0,\\\" ANSI \\\"],[8],[0,\\\" This mode changes syntax and behavior to conform more closely to standard SQL.\\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[0,\\\" - \\\"],[6,\\\"b\\\"],[7],[0,\\\" STRICT_TRANS_TABLES \\\"],[8],[0,\\\" If a value could not be inserted as given into a transactional table, abort the statement. \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[0,\\\" - \\\"],[6,\\\"b\\\"],[7],[0,\\\" TRADITIONAL \\\"],[8],[0,\\\" Make MySQL behave like a “traditional” SQL database system. A simple description of this mode is “give an error instead of a warning” when inserting an incorrect value into a column. \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          You can find more information in the \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html\\\"],[7],[0,\\\"MySQL documentation\\\"],[8],[0,\\\".\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"error\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"red-text\\\"],[7],[0,\\\" \\\"],[1,[18,\\\"error\\\"],false],[0,\\\" \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[20,[\\\"isLoading\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"centered-container\\\"],[7],[0,\\\"\\\\n            \\\"],[1,[25,\\\"md-loader\\\",null,[[\\\"mode\\\"],[\\\"circular\\\"]]],false],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"power-select-multiple\\\",null,[[\\\"disabled\\\",\\\"onchange\\\",\\\"selected\\\",\\\"options\\\"],[[20,[\\\"areInputsDisabled\\\"]],[25,\\\"action\\\",[[19,0,[]],[25,\\\"mut\\\",[[20,[\\\"sqlModes\\\"]]],null]],null],[20,[\\\"sqlModes\\\"]],[20,[\\\"allSQLModes\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[19,1,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"          \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[25,\\\"not\\\",[[20,[\\\"db\\\",\\\"version\\\",\\\"canUpdateConfig\\\"]]],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"red-text\\\"],[7],[0,\\\" This version does not support custom configuration, please upgrade your database to set a custom SQL Mode.\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"action\\\",\\\"text\\\",\\\"isDisabled\\\",\\\"isLoading\\\"],[[25,\\\"action\\\",[[19,0,[]],\\\"setSQLMode\\\"],null],\\\"Set SQL mode\\\",[20,[\\\"areInputDisabled\\\"]],[20,[\\\"isSubmitting\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}],[0,\\\"      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/advanced-mysql.hbs\" } });\n});","define(\"database-dashboard/templates/components/advanced-postgresql\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"Dk34TkBM\", \"block\": \"{\\\"symbols\\\":[\\\"ext\\\",\\\"ext\\\"],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[\\\"PostgreSQL features\\\",\\\"db-advanced db-advanced-postgresql\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"h2\\\"],[7],[0,\\\"Extensions\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"blockquote\\\"],[7],[0,\\\"\\\\n          PostgreSQL is a database engine which is extensible thanks to a\\\\n          large set of extensions. A lot of them are available for\\\\n          your PostgreSQL instance but you need to enable those manually\\\\n          according to your needs.\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          To find out how to enable an extension, please read our documentation:\\\\n          \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://doc.scalingo.com/databases/postgresql/extensions\\\"],[7],[0,\\\"Managing PostgreSQL extensions\\\"],[8],[0,\\\".\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"h3\\\"],[7],[0,\\\"Available extensions\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"extensions-list\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"extensionsList\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"li\\\"],[7],[1,[19,2,[]],false],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"pgExtensions\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s6\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"classNames\\\"],[\\\"Enabled extensions\\\",\\\"small\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"ul\\\"],[9,\\\"class\\\",\\\"collection\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"db\\\",\\\"pgExtensions\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"li\\\"],[9,\\\"class\\\",\\\"collection-item\\\"],[7],[1,[19,1,[\\\"name\\\"]],false],[0,\\\" (v\\\"],[1,[19,1,[\\\"version\\\"]],false],[0,\\\")\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/advanced-postgresql.hbs\" } });\n});","define(\"database-dashboard/templates/components/advanced-redis\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"ctr2wQkQ\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[\\\"Redis features\\\",\\\"db-advanced db-advanced-redis\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"h2\\\"],[7],[0,\\\"Persistence\\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"- Redis has different persistency models according to the\\\\n            prefered performance and reliability tradeoff. \\\"],[6,\\\"strong\\\"],[7],[0,\\\"By default\\\\n              on Scalingo, the RDB persistency mode is enabled\\\"],[8],[0,\\\". These\\\\n            settings are global and impact all the databases of the Redis\\\\n            instance.\\\"],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"- \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Changing the persistency configuration\\\"],[8],[0,\\\" of your\\\\n              Redis database is instant and \\\"],[6,\\\"strong\\\"],[7],[0,\\\"does not require any\\\\n                restart\\\"],[8],[0,\\\" of the instance. Moreover, all the options can\\\\n              be turned off as quickly as they have been enabled.\\\"],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"- If you wish you can disable all the persistency options. Your\\\\n            Redis instance will keep living in memory, data will be preserved\\\\n            until a restart operation is done (maintenance/upgrade).\\\"],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"- All the modes can be combined if you need to use the advantages\\\\n            of different options.\\\\n\\\\n          \\\"],[6,\\\"em\\\"],[7],[0,\\\"You can read more information in the \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://redis.io/topics/persistence\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[0,\\\"official Redis\\\\n              persistence documentation\\\"],[8],[8],[0,\\\".\\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[25,\\\"and\\\",[[25,\\\"and\\\",[[25,\\\"not\\\",[[20,[\\\"hasRDB\\\"]]],null],[25,\\\"not\\\",[[20,[\\\"hasAOF\\\"]]],null]],null],[25,\\\"not\\\",[[20,[\\\"hasCacheMode\\\"]]],null]],null]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"alert-danger\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[9,\\\"class\\\",\\\"bg-danger\\\"],[7],[0,\\\"\\\\n              Your Redis instance is not persisting data on disk, if the instance is restarted because of a maintenance\\\\n              or an upgrade, stored data will be lost.\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n        \\\"],[6,\\\"h3\\\"],[7],[0,\\\"\\\\n          RDB Persistence\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          This persistency mode, which is configured by default, provides a compromise between performance and persistence.\\\\n          Data are saved to disk periodically, according to the number of write operations, asynchronously. It means that\\\\n          in the scope of an incident, recent data are lost. Here are the saving rules:\\\\n\\\\n          \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[0,\\\"* Every 900 seconds if at least 1 write operation has\\\\n              occurred\\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[0,\\\"* Every 300 seconds if at least 10 write operations have\\\\n              occurred\\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[0,\\\"* Every 60 seconds if at least 10000 write operations have\\\\n              occurred\\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[1,[25,\\\"sc-md-switch\\\",null,[[\\\"value\\\",\\\"onLabel\\\",\\\"offLabel\\\",\\\"disabled\\\",\\\"loading\\\",\\\"error\\\",\\\"checked\\\",\\\"action\\\"],[\\\"rdb\\\",\\\"Enabled\\\",\\\"Disabled\\\",[20,[\\\"togglingRDB\\\"]],[20,[\\\"togglingRDB\\\"]],[20,[\\\"errorRDB\\\"]],[20,[\\\"hasRDB\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"toggleRDB\\\"],null]]]],false],[0,\\\"\\\\n\\\\n        \\\"],[6,\\\"h3\\\"],[7],[0,\\\"\\\\n          AOF Persistence\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          This mode provides the highest level of persistency for Redis, any command impacting the dataset will be saved\\\\n          synchronously in file, ensuring that in case of incident, all the data will be recoverable from this log file.\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[1,[25,\\\"sc-md-switch\\\",null,[[\\\"value\\\",\\\"onLabel\\\",\\\"offLabel\\\",\\\"disabled\\\",\\\"loading\\\",\\\"error\\\",\\\"checked\\\",\\\"action\\\"],[\\\"aof\\\",\\\"Enabled\\\",\\\"Disabled\\\",[20,[\\\"togglingAOF\\\"]],[20,[\\\"togglingAOF\\\"]],[20,[\\\"errorAOF\\\"]],[20,[\\\"hasAOF\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"toggleAOF\\\"],null]]]],false],[0,\\\"\\\\n\\\\n        \\\"],[6,\\\"h3\\\"],[7],[0,\\\"\\\\n          Cache Mode\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          This persistence mode configures Redis to drop the least recently used keys automatically. This mode is optimal\\\\n          for caching as the most queried keys will be kept in cache forever. Please be cautious, any data can be deleted\\\\n          don't use your Redis instance to store important information in this mode.\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[1,[25,\\\"sc-md-switch\\\",null,[[\\\"value\\\",\\\"onLabel\\\",\\\"offLabel\\\",\\\"disabled\\\",\\\"loading\\\",\\\"error\\\",\\\"checked\\\",\\\"action\\\"],[\\\"cache\\\",\\\"Enabled\\\",\\\"Disabled\\\",[20,[\\\"togglingCacheMode\\\"]],[20,[\\\"togglingCacheMode\\\"]],[20,[\\\"errorCacheMode\\\"]],[20,[\\\"hasCacheMode\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"toggleCacheMode\\\"],null]]]],false],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/advanced-redis.hbs\" } });\n});","define(\"database-dashboard/templates/components/button-group\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"gY8h9LrY\", \"block\": \"{\\\"symbols\\\":[\\\"button\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"sc-button-group\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"content\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[25,\\\"sc-md-toggle-btn\\\",null,[[\\\"text\\\",\\\"selectedId\\\",\\\"elementId\\\",\\\"action\\\"],[[19,1,[\\\"title\\\"]],[20,[\\\"selected\\\"]],[19,1,[\\\"value\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"click\\\"],null]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[8],[0,\\\"\\\\n\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/button-group.hbs\" } });\n});","define(\"database-dashboard/templates/components/confirmation-modal\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"iH6SSMZa\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"sc-modal\\\",null,[[\\\"id\\\",\\\"fixedFooter\\\"],[\\\"confirmationModal\\\",false]],{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"modal-content\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"modal-header\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"h3\\\"],[7],[1,[20,[\\\"context\\\",\\\"prompt\\\"]],false],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"context\\\",\\\"extraMsg\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"modal-body\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"context\\\",\\\"extraIcon\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"i\\\"],[10,\\\"class\\\",[26,[[20,[\\\"context\\\",\\\"extraIcon\\\"]]]]],[7],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"          \\\"],[1,[20,[\\\"context\\\",\\\"extraMsg\\\"]],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[20,[\\\"context\\\",\\\"validationText\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[1,[25,\\\"sc-md-input\\\",null,[[\\\"label\\\",\\\"required\\\",\\\"class\\\",\\\"disabled\\\",\\\"value\\\",\\\"errors\\\"],[\\\"Validation text\\\",true,\\\"col s12\\\",[20,[\\\"context\\\",\\\"loading\\\"]],[20,[\\\"validationText\\\"]],[20,[\\\"errors\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"modal-footer\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"text\\\",\\\"buttonType\\\",\\\"isDisabled\\\",\\\"isLoading\\\",\\\"action\\\"],[[20,[\\\"context\\\",\\\"okLabel\\\"]],\\\"flat\\\",[20,[\\\"context\\\",\\\"loading\\\"]],[20,[\\\"context\\\",\\\"loading\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"confirmAction\\\"],null]]]],false],[0,\\\"\\\\n    \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"class\\\",\\\"text\\\",\\\"buttonType\\\",\\\"isDisabled\\\",\\\"action\\\"],[\\\"modal-action modal-close\\\",\\\"Cancel\\\",\\\"flat\\\",[20,[\\\"context\\\",\\\"loading\\\"]],[20,[\\\"context\\\",\\\"cancel\\\"]]]]],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/confirmation-modal.hbs\" } });\n});","define(\"database-dashboard/templates/components/database-access\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"s79rg5yG\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"Database Access\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"unless\\\",[[20,[\\\"db\\\",\\\"hasInternetAccess\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"blockquote\\\"],[9,\\\"class\\\",\\\"warning\\\"],[7],[0,\\\"\\\\n            Direct internet access to your database is disabled. To access your\\\\n            database, you must use \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://cli.scalingo.com\\\"],[7],[0,\\\"our\\\\n            CLI tool\\\"],[8],[0,\\\".\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n        \\\"],[6,\\\"h3\\\"],[9,\\\"class\\\",\\\"mt-0\\\"],[7],[0,\\\"Connection string\\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"command-line\\\"],[7],[6,\\\"code\\\"],[9,\\\"class\\\",\\\"db-info-url\\\"],[7],[1,[20,[\\\"db\\\",\\\"url\\\"]],false],[8],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[25,\\\"eq\\\",[[20,[\\\"db\\\",\\\"typeName\\\"]],\\\"elasticsearch\\\"],null]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Example: Cluster health call\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"command-line\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"code\\\"],[9,\\\"class\\\",\\\"db-info-url\\\"],[7],[0,\\\"\\\\n              curl '\\\"],[1,[20,[\\\"db\\\",\\\"url\\\"]],false],[0,\\\"/_cluster/health?pretty'\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"consoleCommand\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"h3\\\"],[7],[0,\\\"Console access with our CLI tool \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://doc.scalingo.com/platform/databases/access#interactive-remote-console\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons doc-link\\\"],[7],[0,\\\"help\\\"],[8],[8],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"blockquote\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"code\\\"],[7],[0,\\\"\\\\n              scalingo -a \\\"],[1,[20,[\\\"db\\\",\\\"appName\\\"]],false],[0,\\\" \\\"],[1,[20,[\\\"db\\\",\\\"consoleCommand\\\"]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"unless\\\",[[20,[\\\"db\\\",\\\"hasInternetAccess\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"h3\\\"],[7],[0,\\\"SSH tunnel \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://doc.scalingo.com/platform/databases/access#encrypted-tunnel\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons doc-link\\\"],[7],[0,\\\" help\\\"],[8],[0,\\\" \\\"],[8],[0,\\\" \\\"],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            To setup a SSH tunnel between your computer and the database, the\\\\n            easiest way is to use \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://cli.scalingo.com\\\"],[7],[0,\\\"our CLI tool\\\"],[8],[0,\\\".\\\\n          \\\"],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"command-line\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"code\\\"],[7],[0,\\\"\\\\n              scalingo -a \\\"],[1,[20,[\\\"db\\\",\\\"appName\\\"]],false],[0,\\\" db-tunnel \\\"],[1,[20,[\\\"db\\\",\\\"environmentVariableName\\\"]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"version\\\",\\\"hasTLS\\\"]]],null,{\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"TLS/Internet access\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"h3\\\"],[9,\\\"class\\\",\\\"mt-0\\\"],[7],[0,\\\"Force connections using TLS\\\"],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            Any non-TLS connection will be blocked when enabled.\\\\n          \\\"],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"blockquote\\\"],[9,\\\"class\\\",\\\"warning\\\"],[7],[0,\\\"\\\\n            Before enabling this feature be sure that your application connect to your\\\\n            database using TLS otherwise it will be unable to connect.\\\\n          \\\"],[8],[0,\\\"\\\\n\\\\n          \\\"],[1,[25,\\\"sc-md-switch\\\",null,[[\\\"value\\\",\\\"onLabel\\\",\\\"offLabel\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"action\\\",\\\"loading\\\",\\\"error\\\"],[\\\"force-ssl\\\",\\\"Enabled\\\",\\\"Disabled\\\",\\\"\\\",[20,[\\\"hasForceSSL\\\"]],[20,[\\\"isForceSSLCheckboxDisabled\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"toggleActivateForceSSL\\\"],null],[20,[\\\"isForceSSLLoading\\\"]],[20,[\\\"forceSSLError\\\"]]]]],false],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"h3\\\"],[7],[0,\\\"Internet Accessibility \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://doc.scalingo.com/platform/databases/access#interactive-remote-console\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons doc-link\\\"],[7],[0,\\\" help\\\"],[8],[0,\\\" \\\"],[8],[0,\\\" \\\"],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            By default your database is only accessible from our private internal network.\\\\n          \\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[25,\\\"not\\\",[[20,[\\\"db\\\",\\\"hasForceSSL\\\"]]],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"blockquote\\\"],[9,\\\"class\\\",\\\"warning\\\"],[7],[0,\\\"\\\\n              You must enable the ForceTLS option first to make your database accessible from the internet.\\\\n            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n          \\\"],[1,[25,\\\"sc-md-switch\\\",null,[[\\\"value\\\",\\\"checked\\\",\\\"onLabel\\\",\\\"offLabel\\\",\\\"disabled\\\",\\\"action\\\",\\\"loading\\\",\\\"error\\\"],[\\\"internet-access\\\",[20,[\\\"hasInternetAccess\\\"]],\\\"Enabled\\\",\\\"Disabled\\\",[20,[\\\"isInternetCheckboxDisabled\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"toggleActivateInternetAccess\\\"],null],[20,[\\\"isInternetAccessLoading\\\"]],[20,[\\\"internetAccessError\\\"]]]]],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/database-access.hbs\" } });\n});","define(\"database-dashboard/templates/components/database-details\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"miOGf4vV\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"h3\\\"],[7],[0,\\\"Details\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"bordered\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[7],[0,\\\"App Name\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[1,[20,[\\\"db\\\",\\\"appName\\\"]],false],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[7],[0,\\\"Engine\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"img\\\"],[9,\\\"class\\\",\\\"db-info-logo\\\"],[10,\\\"src\\\",[26,[[20,[\\\"db\\\",\\\"type\\\",\\\"logoUrl\\\"]]]]],[10,\\\"alt\\\",[26,[[20,[\\\"db\\\",\\\"displayName\\\"]]]]],[7],[8],[0,\\\"\\\\n        \\\"],[1,[25,\\\"capitalize\\\",[[20,[\\\"db\\\",\\\"displayName\\\"]]],null],false],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[7],[0,\\\"Current Engine Version\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[6,\\\"span\\\"],[7],[1,[20,[\\\"db\\\",\\\"version\\\",\\\"toVersionString\\\"]],false],[8],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[7],[0,\\\"Docker Image Version\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[6,\\\"span\\\"],[7],[6,\\\"a\\\"],[10,\\\"href\\\",[20,[\\\"db\\\",\\\"dockerHubUrl\\\"]],null],[9,\\\"target\\\",\\\"_blank\\\"],[7],[1,[20,[\\\"db\\\",\\\"version\\\",\\\"toFullVersionString\\\"]],false],[8],[8],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[6,\\\"h3\\\"],[7],[0,\\\"Connection string\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"code\\\"],[9,\\\"class\\\",\\\"db-info-url\\\"],[7],[1,[20,[\\\"db\\\",\\\"url\\\"]],false],[8],[0,\\\"\\\\n\\\\n\\\"],[6,\\\"h3\\\"],[7],[0,\\\" Access your database remotely \\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\nTo access your database remotely, you'll need to setup a tunnel between your computer and the database. To do so, you must use \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://cli.scalingo.com\\\"],[7],[0,\\\" our cli tool\\\"],[8],[0,\\\".\\\\n\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"blockquote\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"code\\\"],[7],[0,\\\"\\\\n    scalingo -a \\\"],[1,[20,[\\\"db\\\",\\\"appName\\\"]],false],[0,\\\" db-tunnel SCALINGO_\\\"],[1,[25,\\\"upper\\\",[[20,[\\\"db\\\",\\\"typeName\\\"]]],null],false],[0,\\\"_URL\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\\nMore information \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://doc.scalingo.com/platform/databases/access#encrypted-tunnel\\\"],[7],[0,\\\"in our documentation\\\"],[8],[0,\\\".\\\\n\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"consoleCommand\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"h3\\\"],[7],[0,\\\" Access your database command line interface \\\"],[8],[0,\\\"\\\\n  To launch your database command line interface,you must use\\\\n  \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://cli.scalingo.com\\\"],[7],[0,\\\" our CLI tool\\\"],[8],[0,\\\".\\\\n\\\\n  \\\"],[6,\\\"blockquote\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"code\\\"],[7],[0,\\\"\\\\n      scalingo -a \\\"],[1,[20,[\\\"db\\\",\\\"appName\\\"]],false],[0,\\\" db-tunnel \\\"],[1,[20,[\\\"db\\\",\\\"consoleCommand\\\"]],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\\n  More information \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://doc.scalingo.com/platform/databases/access#interactive-remote-console\\\"],[7],[0,\\\"in our documentation\\\"],[8],[0,\\\".\\\\n\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/database-details.hbs\" } });\n});","define(\"database-dashboard/templates/components/database-download-certificates\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"npC/E4eC\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[0,\\\"The CA certificate is already included in the CA pool of your application's\\\\ncontainers. You only need this CA certificate if you need to access your\\\\ndatabase from a remote server or your local machine.\\\\n\\\\n\\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"bordered\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"Certification authority\\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"a\\\"],[10,\\\"href\\\",[26,[[20,[\\\"db\\\",\\\"caCertUrl\\\"]]]]],[9,\\\"class\\\",\\\"btn\\\"],[7],[0,\\\"\\\\n          Download\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/database-download-certificates.hbs\" } });\n});","define(\"database-dashboard/templates/components/database-general\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"YTGcEU3f\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"h3\\\"],[7],[0,\\\"Details\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"bordered\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[7],[0,\\\"App Name\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[1,[20,[\\\"db\\\",\\\"appName\\\"]],false],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[7],[0,\\\"Engine\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"img\\\"],[9,\\\"class\\\",\\\"db-info-logo\\\"],[10,\\\"src\\\",[26,[[20,[\\\"db\\\",\\\"type\\\",\\\"logoUrl\\\"]]]]],[10,\\\"alt\\\",[26,[[20,[\\\"db\\\",\\\"displayName\\\"]]]]],[7],[8],[0,\\\"\\\\n        \\\"],[1,[25,\\\"capitalize\\\",[[20,[\\\"db\\\",\\\"displayName\\\"]]],null],false],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[7],[0,\\\"Current Engine Version\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[6,\\\"span\\\"],[7],[1,[20,[\\\"db\\\",\\\"version\\\",\\\"toVersionString\\\"]],false],[8],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[7],[0,\\\"Docker Image Version\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[6,\\\"span\\\"],[7],[6,\\\"a\\\"],[10,\\\"href\\\",[20,[\\\"db\\\",\\\"dockerHubUrl\\\"]],null],[9,\\\"target\\\",\\\"_blank\\\"],[7],[1,[20,[\\\"db\\\",\\\"version\\\",\\\"toFullVersionString\\\"]],false],[8],[8],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"unless\\\",[[25,\\\"eq\\\",[[20,[\\\"db\\\",\\\"typeName\\\"]],\\\"redis\\\"],null]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"td\\\"],[7],[6,\\\"span\\\"],[7],[0,\\\"TLS Support\\\"],[8],[8],[0,\\\"\\\\n        \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"version\\\",\\\"hasTLS\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"span\\\"],[7],[0,\\\"Available\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"span\\\"],[7],[0,\\\"Unavailable\\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"a\\\"],[9,\\\"class\\\",\\\"tooltipped\\\"],[9,\\\"id\\\",\\\"tls-support\\\"],[9,\\\"data-position\\\",\\\"top\\\"],[9,\\\"data-delay\\\",\\\"50\\\"],[10,\\\"data-tooltip\\\",[26,[\\\"Only available for \\\",[20,[\\\"db\\\",\\\"typeName\\\"]],\\\" >= \\\",[20,[\\\"db\\\",\\\"minVersionForTLS\\\"]],\\\". Please upgrade.\\\"]]],[7],[0,\\\"\\\\n              \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center tiny\\\"],[7],[0,\\\"info_outline\\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"span\\\"],[7],[0,\\\"\\\\n            Internet Access\\\\n            \\\"],[6,\\\"a\\\"],[9,\\\"class\\\",\\\"tooltipped\\\"],[9,\\\"id\\\",\\\"internet-access\\\"],[9,\\\"data-position\\\",\\\"top\\\"],[9,\\\"data-delay\\\",\\\"50\\\"],[9,\\\"data-tooltip\\\",\\\"Is this database reachable from anywhere on the internet?\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center tiny\\\"],[7],[0,\\\"info_outline\\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"hasInternetAccess\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"span\\\"],[7],[0,\\\"Enabled\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"span\\\"],[7],[0,\\\"Disabled\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[6,\\\"span\\\"],[7],[0,\\\"Encryption at rest\\\"],[8],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"encryptionAtRest\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"span\\\"],[7],[0,\\\"Enabled\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"span\\\"],[7],[0,\\\"Disabled\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/database-general.hbs\" } });\n});","define(\"database-dashboard/templates/components/database-logs\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"7YAvS5Ne\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"code\\\"],[7],[1,[18,\\\"logsContent\\\"],false],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/database-logs.hbs\" } });\n});","define(\"database-dashboard/templates/components/database-upgrade\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"M5tf4zNY\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"hasAvailableUpgrade\\\"]]],null,{\\\"statements\\\":[[6,\\\"p\\\"],[7],[0,\\\"\\\\n  Your database can be upgraded from \\\"],[6,\\\"strong\\\"],[7],[1,[20,[\\\"db\\\",\\\"version\\\",\\\"toFullVersionString\\\"]],false],[8],[0,\\\" to\\\\n  \\\"],[6,\\\"strong\\\"],[7],[1,[20,[\\\"db\\\",\\\"nextVersion\\\",\\\"toFullVersionString\\\"]],false],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"form\\\"],[9,\\\"action\\\",\\\"/upgrade\\\"],[9,\\\"method\\\",\\\"post\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"toggleUpgradeDatabaseConfirmation\\\"],[[\\\"on\\\"],[\\\"submit\\\"]]],[7],[0,\\\"\\\\n  \\\"],[6,\\\"blockquote\\\"],[7],[0,\\\"\\\\n    During the upgrade your database will be restarted and will not be reachable. Once this operation completed, your\\\\n    application will be restarted.\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"nextVersionWarningMessage\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"blockquote\\\"],[9,\\\"class\\\",\\\"error\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[20,[\\\"db\\\",\\\"nextVersionWarningMessage\\\"]],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[20,[\\\"loadingOperation\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"center\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[25,\\\"md-loader\\\",null,[[\\\"mode\\\",\\\"size\\\"],[\\\"circular\\\",\\\"small\\\"]]],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"  \\\"],[1,[25,\\\"sc-md-btn-submit\\\",null,[[\\\"text\\\",\\\"isDisabled\\\",\\\"isLoading\\\"],[[25,\\\"concat\\\",[\\\"Upgrade to \\\",[20,[\\\"db\\\",\\\"nextVersion\\\",\\\"toFullVersionString\\\"]]],null],[20,[\\\"isDisabled\\\"]],[20,[\\\"isUpgrading\\\"]]]]],false],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"upgradeMessage\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"em\\\"],[9,\\\"class\\\",\\\"upgrade-message\\\"],[7],[1,[18,\\\"upgradeMessage\\\"],false],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[6,\\\"p\\\"],[7],[0,\\\"\\\\n  You're already running the latest available version.\\\\n\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n\\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"text\\\",\\\"isDisabled\\\"],[\\\"Upgrade\\\",true]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/database-upgrade.hbs\" } });\n});","define(\"database-dashboard/templates/components/database/database-management\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"v5jdh+de\", \"block\": \"{\\\"symbols\\\":[\\\"item\\\",\\\"db\\\"],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"id\\\"],[\\\"Databases\\\",\\\"database-management\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"hasLoadingOverlay\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"users-overlay\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"loader-card col s3 offset-s5\\\"],[7],[0,\\\"\\\\n          \\\"],[1,[25,\\\"md-loader\\\",null,[[\\\"mode\\\",\\\"size\\\"],[\\\"circular\\\",\\\"small\\\"]]],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[20,[\\\"content\\\"]]],null,{\\\"statements\\\":[[4,\\\"md-collection\\\",null,[[\\\"content\\\"],[[20,[\\\"content\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"collection-item\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"svg\\\"],[9,\\\"viewBox\\\",\\\"0 0 24 24\\\"],[7],[0,\\\" \\\"],[6,\\\"path\\\"],[9,\\\"fill\\\",\\\"#000000\\\"],[9,\\\"d\\\",\\\"M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11\\\\n            12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M4,9V12C4,14.21\\\\n            7.58,16 12,16C16.42,16 20,14.21 20,12V9C20,11.21 16.42,13\\\\n            12,13C7.58,13 4,11.21 4,9M4,14V17C4,19.21 7.58,21 12,21C16.42,21\\\\n            20,19.21 20,17V14C20,16.21 16.42,18 12,18C7.58,18 4,16.21 4,14Z\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"span\\\"],[7],[1,[19,2,[\\\"name\\\"]],false],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[19,2,[\\\"protected\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"class\\\",\\\"icon\\\",\\\"iconPosition\\\",\\\"buttonType\\\",\\\"text\\\",\\\"isDisabled\\\",\\\"action\\\"],[\\\"secondary-content\\\",\\\"delete_sweep\\\",\\\"center\\\",\\\"flat\\\",\\\"Empty\\\",[20,[\\\"deleting\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"confirmResetDatabase\\\",[19,2,[]]],null]]]],false],[0,\\\"\\\\n            \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"badge grey\\\"],[7],[0,\\\"default\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"class\\\",\\\"icon\\\",\\\"iconPosition\\\",\\\"buttonType\\\",\\\"text\\\",\\\"isDisabled\\\",\\\"action\\\"],[\\\"secondary-content\\\",\\\"delete\\\",\\\"center\\\",\\\"flat\\\",\\\"Drop\\\",[20,[\\\"deleting\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"confirmDeleteDatabase\\\",[19,2,[]]],null]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"md-collection\\\",null,[[\\\"class\\\",\\\"content\\\"],[\\\"loadable-collection\\\",[20,[\\\"content\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"centered-container\\\"],[7],[0,\\\"\\\\n          \\\"],[1,[25,\\\"md-loader\\\",null,[[\\\"mode\\\"],[\\\"circular\\\"]]],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null]],\\\"parameters\\\":[]}],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"h3\\\"],[7],[0,\\\"Create a new database\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"form\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"createDatabase\\\"],[[\\\"on\\\"],[\\\"submit\\\"]]],[7],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n            \\\"],[1,[25,\\\"sc-md-input\\\",null,[[\\\"label\\\",\\\"value\\\",\\\"required\\\",\\\"class\\\",\\\"disabled\\\",\\\"errors\\\"],[\\\"Name\\\",[20,[\\\"newDbName\\\"]],true,\\\"col s12\\\",[20,[\\\"creating\\\"]],[20,[\\\"errors\\\"]]]]],false],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[1,[25,\\\"sc-md-btn-submit\\\",null,[[\\\"text\\\",\\\"isDisabled\\\",\\\"isLoading\\\"],[\\\"Create\\\",[20,[\\\"creating\\\"]],[20,[\\\"creating\\\"]]]]],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/database/database-management.hbs\" } });\n});","define(\"database-dashboard/templates/components/datetime-picker\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"pQ8mJnb1\", \"block\": \"{\\\"symbols\\\":[\\\"zone\\\",\\\"minute\\\",\\\"minute\\\",\\\"minute\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[10,\\\"class\\\",[26,[\\\"col s12 datetimepicker \\\",[25,\\\"if\\\",[[20,[\\\"isDisabled\\\"]],\\\"disabled\\\"],null]]]],[7],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"disabled\\\",\\\"options\\\",\\\"selected\\\",\\\"onchange\\\"],[[20,[\\\"isDisabled\\\"]],[20,[\\\"dates\\\"]],[20,[\\\"curDate\\\"]],[25,\\\"action\\\",[[19,0,[]],[25,\\\"mut\\\",[[20,[\\\"curDate\\\"]]],null]],null]]],{\\\"statements\\\":[[0,\\\"    \\\"],[1,[19,4,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"  at\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"disabled\\\",\\\"options\\\",\\\"selected\\\",\\\"onchange\\\"],[[20,[\\\"isDisabled\\\"]],[20,[\\\"hours\\\"]],[20,[\\\"curHour\\\"]],[25,\\\"action\\\",[[19,0,[]],[25,\\\"mut\\\",[[20,[\\\"curHour\\\"]]],null]],null]]],{\\\"statements\\\":[[0,\\\"    \\\"],[1,[19,3,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"  :\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"disabled\\\",\\\"options\\\",\\\"selected\\\",\\\"onchange\\\"],[[20,[\\\"isDisabled\\\"]],[20,[\\\"minutes\\\"]],[20,[\\\"curMinute\\\"]],[25,\\\"action\\\",[[19,0,[]],[25,\\\"mut\\\",[[20,[\\\"curMinute\\\"]]],null]],null]]],{\\\"statements\\\":[[0,\\\"    \\\"],[1,[19,2,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"  \\\"],[6,\\\"div\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"disabled\\\",\\\"options\\\",\\\"selected\\\",\\\"onchange\\\"],[[20,[\\\"isDisabled\\\"]],[20,[\\\"timezones\\\"]],[20,[\\\"timezone\\\"]],[25,\\\"action\\\",[[19,0,[]],[25,\\\"mut\\\",[[20,[\\\"timezone\\\"]]],null]],null]]],{\\\"statements\\\":[[0,\\\"    \\\"],[1,[19,1,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/datetime-picker.hbs\" } });\n});","define(\"database-dashboard/templates/components/db-metrics\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"sqFe1XZW\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"initDone\\\"]]],null,{\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row clearfix\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m12 l6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[9,\\\"class\\\",\\\"graph-metrics-title\\\"],[7],[0,\\\"CPU\\\"],[8],[0,\\\"\\\\n    \\\"],[1,[25,\\\"single-cpu-chart\\\",null,[[\\\"axis\\\",\\\"tooltipPos\\\",\\\"tooltipUpdate\\\",\\\"dataURLS\\\",\\\"dataTypes\\\",\\\"containerSize\\\",\\\"timezone\\\"],[[20,[\\\"cpuAxis\\\"]],[20,[\\\"tooltipPos\\\"]],[20,[\\\"tooltipUpdate\\\"]],[20,[\\\"cpuURLS\\\"]],[20,[\\\"cpuTypes\\\"]],[20,[\\\"cont\\\",\\\"size\\\"]],[20,[\\\"timezone\\\"]]]]],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m12 l6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[9,\\\"class\\\",\\\"graph-metrics-title\\\"],[7],[0,\\\"Memory\\\"],[8],[0,\\\"\\\\n    \\\"],[1,[25,\\\"single-memory-chart\\\",null,[[\\\"axis\\\",\\\"tooltipPos\\\",\\\"tooltipUpdate\\\",\\\"dataURLS\\\",\\\"dataTypes\\\",\\\"db\\\",\\\"instance\\\",\\\"customColors\\\",\\\"timezone\\\"],[[20,[\\\"memAxis\\\"]],[20,[\\\"tooltipPos\\\"]],[20,[\\\"tooltipUpdate\\\"]],[20,[\\\"memoryURLS\\\"]],[20,[\\\"memoryTypes\\\"]],[20,[\\\"database\\\"]],[20,[\\\"instance\\\"]],[20,[\\\"memoryColors\\\"]],[20,[\\\"timezone\\\"]]]]],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"isDBNode\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"areDiskMetricsEnabled\\\"]]],null,{\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row clearfix\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m12 l6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[9,\\\"class\\\",\\\"graph-metrics-title\\\"],[7],[0,\\\"Disk Usage\\\"],[8],[0,\\\"\\\\n    \\\"],[1,[25,\\\"single-disk-chart\\\",null,[[\\\"tooltipPos\\\",\\\"tooltipUpdate\\\",\\\"axis\\\",\\\"dataURLS\\\",\\\"dataTypes\\\",\\\"timezone\\\",\\\"databasePlan\\\"],[[20,[\\\"tooltipPos\\\"]],[20,[\\\"tooltipUpdate\\\"]],[20,[\\\"diskUsedAxis\\\"]],[20,[\\\"diskUsedURLs\\\"]],[20,[\\\"diskUsedTypes\\\"]],[20,[\\\"timezone\\\"]],[20,[\\\"databasePlan\\\"]]]]],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m12 l6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[9,\\\"class\\\",\\\"graph-metrics-title\\\"],[7],[0,\\\"Disk IOPS (Read/Write Operations)\\\"],[8],[0,\\\"\\\\n    \\\"],[1,[25,\\\"single-diskio-chart\\\",null,[[\\\"tooltipPos\\\",\\\"tooltipUpdate\\\",\\\"axis\\\",\\\"dataURLS\\\",\\\"dataTypes\\\",\\\"customColors\\\",\\\"timezone\\\"],[[20,[\\\"tooltipPos\\\"]],[20,[\\\"tooltipUpdate\\\"]],[20,[\\\"diskioUsedAxis\\\"]],[20,[\\\"diskioUsedURLs\\\"]],[20,[\\\"diskioUsedTypes\\\"]],[20,[\\\"diskioColors\\\"]],[20,[\\\"timezone\\\"]]]]],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/db-metrics.hbs\" } });\n});","define(\"database-dashboard/templates/components/detail-layout\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"DN8w4abK\", \"block\": \"{\\\"symbols\\\":[\\\"&default\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container\\\"],[7],[0,\\\"\\\\n  \\\"],[11,1],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/detail-layout.hbs\" } });\n});","define(\"database-dashboard/templates/components/error-container\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"Ugga9VdT\", \"block\": \"{\\\"symbols\\\":[\\\"&default\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container fullscreen\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m6 offset-m3 l4 offset-l4\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"class\\\"],[\\\"sso\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"title center-align\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://scalingo.com\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"img\\\"],[9,\\\"src\\\",\\\"https://scalingo.com/logo-lightgrey.svg\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n              \\\"],[11,1],[0,\\\"\\\\n              \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n              \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://my.scalingo.com\\\"],[7],[0,\\\"\\\\n                back to Scalingo dashboard\\\\n              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/error-container.hbs\" } });\n});","define(\"database-dashboard/templates/components/help-dropdown\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"q+Gpl8kr\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center\\\"],[7],[0,\\\"apps\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"navbar-menu-placeholder\\\"],[7],[8],[0,\\\"\\\\n\\\"],[6,\\\"ul\\\"],[10,\\\"id\\\",[26,[[18,\\\"_dropdownContentId\\\"]]]],[9,\\\"class\\\",\\\"dropdown-content help-dropdown\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://cli.scalingo.com/\\\"],[9,\\\"title\\\",\\\"Scalingo Command Line Tool\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"mdi-device-dvr left\\\"],[7],[8],[0,\\\"Command Line Tool\\\"],[8],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://changelog.scalingo.com/\\\"],[9,\\\"title\\\",\\\"Scalingo Changelog\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"mdi-action-assignment left\\\"],[7],[8],[0,\\\"Changelog\\\"],[8],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://scalingostatus.com/\\\"],[9,\\\"title\\\",\\\"Scalingo Status\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"mdi-action-announcement left\\\"],[7],[8],[0,\\\"Status\\\"],[8],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://blog.scalingo.com/\\\"],[9,\\\"title\\\",\\\"Scalingo Blog\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[7],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"mdi-social-public left\\\"],[7],[8],[0,\\\"Blog\\\"],[8],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/help-dropdown.hbs\" } });\n});","define(\"database-dashboard/templates/components/logs-archive\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"ng71U5Am\", \"block\": \"{\\\"symbols\\\":[\\\"archive\\\"],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"id\\\"],[\\\"Logs archives\\\",\\\"basic-card\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 card-controls\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"link-to\\\",[\\\"dashboard.logs\\\"],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"a\\\"],[9,\\\"class\\\",\\\"btn btn-flat btn-color\\\"],[7],[0,\\\"\\\\n            Back to logs view\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\" Your logs archives are downloadable here in gzip format.\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"unless\\\",[[20,[\\\"isEmpty\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[9,\\\"class\\\",\\\"logs-archives-since hide-on-small-only\\\"],[7],[0,\\\"From\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[9,\\\"class\\\",\\\"logs-archives-to hide-on-small-only\\\"],[7],[0,\\\"To\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[9,\\\"class\\\",\\\"logs-archives-size hide-on-small-only\\\"],[7],[0,\\\"Size\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[9,\\\"class\\\",\\\"logs-archives-download\\\"],[7],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n\\\\n            \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"archives\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"td\\\"],[9,\\\"class\\\",\\\"logs-archives-since\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[19,1,[\\\"from\\\"]]],null,{\\\"statements\\\":[[0,\\\"                      \\\"],[1,[25,\\\"toDateTime\\\",[[19,1,[\\\"from\\\"]]],null],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                      n/a\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"                  \\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"td\\\"],[9,\\\"class\\\",\\\"logs-archives-to\\\"],[7],[1,[25,\\\"toDateTime\\\",[[19,1,[\\\"to\\\"]]],null],false],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"td\\\"],[9,\\\"class\\\",\\\"logs-archives-size\\\"],[7],[1,[25,\\\"to-bytes\\\",[[19,1,[\\\"size\\\"]]],null],false],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"td\\\"],[9,\\\"class\\\",\\\"logs-archives-download\\\"],[7],[0,\\\"\\\\n                    \\\"],[6,\\\"a\\\"],[10,\\\"href\\\",[26,[[19,1,[\\\"url\\\"]]]]],[9,\\\"class\\\",\\\"btn\\\"],[7],[0,\\\"\\\\n                    Download\\\\n                    \\\"],[8],[0,\\\"\\\\n                  \\\"],[8],[0,\\\"\\\\n                \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"unless\\\",[[20,[\\\"noMoreAvailable\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"a\\\"],[9,\\\"class\\\",\\\"btn\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"viewMore\\\"]],[7],[0,\\\"\\\\n              View more\\\\n            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"i\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"loading\\\"]]],null,{\\\"statements\\\":[[0,\\\"                Loading...\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                Nothing available\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/logs-archive.hbs\" } });\n});","define('database-dashboard/templates/components/modal-dialog', ['exports', 'ember-modal-dialog/templates/components/modal-dialog'], function (exports, _modalDialog) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _modalDialog.default;\n    }\n  });\n});","define(\"database-dashboard/templates/components/nav-drawer-layout\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"TfJ762oW\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"sc-md-navbar\\\",null,[[\\\"appName\\\",\\\"color\\\",\\\"dbType\\\",\\\"name\\\",\\\"selectedTab\\\",\\\"tabsContent\\\"],[[20,[\\\"appName\\\"]],[20,[\\\"navColor\\\"]],[20,[\\\"dbType\\\"]],[20,[\\\"navTitle\\\"]],[20,[\\\"selectedTab\\\"]],[20,[\\\"tabsContent\\\"]]]],{\\\"statements\\\":[],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/nav-drawer-layout.hbs\" } });\n});","define(\"database-dashboard/templates/components/overview-right-cluster-topology\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"BUcnVH6g\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"td\\\"],[7],[1,[20,[\\\"instance\\\",\\\"privateIp\\\"]],false],[8],[0,\\\"\\\\n\\\"],[6,\\\"td\\\"],[7],[1,[20,[\\\"instance\\\",\\\"typeString\\\"]],false],[8],[0,\\\"\\\\n\\\"],[6,\\\"td\\\"],[7],[1,[20,[\\\"instance\\\",\\\"status\\\"]],false],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[25,\\\"eq\\\",[[20,[\\\"db\\\",\\\"typeName\\\"]],\\\"postgresql\\\"],null]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"td\\\"],[7],[1,[18,\\\"postgreSQLInstanceLag\\\"],false],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[25,\\\"eq\\\",[[20,[\\\"db\\\",\\\"typeName\\\"]],\\\"mysql\\\"],null]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"td\\\"],[7],[1,[18,\\\"mySQLInstanceLag\\\"],false],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/overview-right-cluster-topology.hbs\" } });\n});","define(\"database-dashboard/templates/components/overview-right\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"SxQ6O947\", \"block\": \"{\\\"symbols\\\":[\\\"instance\\\"],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[\\\"Plan Information\\\",\\\"db-plan\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n        You currently use the \\\"],[6,\\\"strong\\\"],[7],[1,[20,[\\\"db\\\",\\\"plan\\\"]],false],[8],[0,\\\" plan. It includes:\\\\n        \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"bordered\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"span\\\"],[7],[0,\\\"Periodic Backups\\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"plan\\\",\\\"backup\\\"]]],null,{\\\"statements\\\":[[0,\\\"                  Included\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                  Not included\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"span\\\"],[7],[0,\\\"Memory\\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"to-bytes\\\",[[20,[\\\"plan\\\",\\\"memory\\\"]]],null],false],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"span\\\"],[7],[0,\\\"Disk\\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"to-bytes\\\",[[20,[\\\"plan\\\",\\\"diskBytes\\\"]]],null],false],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"isSANDCluster\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"span\\\"],[7],[0,\\\"Database nodes\\\"],[8],[0,\\\"\\\\n                \\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[1,[18,\\\"nbDBNodes\\\"],false],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"span\\\"],[7],[0,\\\"Gateway nodes\\\"],[8],[0,\\\"\\\\n                \\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[1,[20,[\\\"plan\\\",\\\"gatewayNodes\\\"]],false],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[25,\\\"eq\\\",[[20,[\\\"db\\\",\\\"typeName\\\"]],\\\"mongo\\\"],null]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"span\\\"],[7],[0,\\\"Data nodes\\\"],[8],[0,\\\"\\\\n                \\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[1,[20,[\\\"plan\\\",\\\"mongoDataNode\\\"]],false],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"span\\\"],[7],[0,\\\"Arbiter nodes\\\"],[8],[0,\\\"\\\\n                \\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[1,[20,[\\\"plan\\\",\\\"mongoArbiterNode\\\"]],false],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"span\\\"],[7],[0,\\\"Backup nodes\\\"],[8],[0,\\\"\\\\n                \\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[1,[20,[\\\"plan\\\",\\\"mongoBackupNode\\\"]],false],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n            \\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}],[0,\\\"          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[25,\\\"eq\\\",[[20,[\\\"db\\\",\\\"typeName\\\"]],\\\"elasticsearch\\\"],null]],null,{\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[\\\"Cluster Health\\\",\\\"db-cluster-health\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"bordered\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[0,\\\"Name\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[1,[20,[\\\"dbHealth\\\",\\\"cluster\\\"]],false],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[0,\\\"Health\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"i\\\"],[10,\\\"class\\\",[26,[\\\"material-icons center \\\",[20,[\\\"dbHealth\\\",\\\"status\\\"]],\\\"-text\\\"]]],[7],[0,\\\" brightness_1 \\\"],[8],[0,\\\"\\\\n                  \\\"],[1,[18,\\\"healthStatusString\\\"],false],[0,\\\"\\\\n                \\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[0,\\\"Shards\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[6,\\\"code\\\"],[7],[1,[20,[\\\"dbHealth\\\",\\\"shards\\\"]],false],[8],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[0,\\\"Pending Tasks\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[6,\\\"code\\\"],[7],[1,[20,[\\\"dbHealth\\\",\\\"pending_tasks\\\"]],false],[8],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"isSANDCluster\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[25,\\\"gt\\\",[[20,[\\\"db\\\",\\\"instances\\\",\\\"length\\\"]],1],null]],null,{\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[\\\"Cluster Topology\\\",\\\"db-cluster-topology\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n              Each cluster runs within its own private network. Only gateway instances are accessible\\\\n              from the internet after enabling \\\\\\\"Internet Accessibility\\\\\\\".\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"bordered\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[7],[0,\\\"Private IP\\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[7],[0,\\\"Type\\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[7],[0,\\\"Status\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[25,\\\"eq\\\",[[20,[\\\"db\\\",\\\"typeName\\\"]],[25,\\\"database-types\\\",[\\\"PGSQL\\\"],null]],null]],null,{\\\"statements\\\":[[0,\\\"                    \\\"],[6,\\\"th\\\"],[7],[0,\\\"Lag\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[25,\\\"eq\\\",[[20,[\\\"db\\\",\\\"typeName\\\"]],[25,\\\"database-types\\\",[\\\"MYSQL\\\"],null]],null]],null,{\\\"statements\\\":[[0,\\\"                    \\\"],[6,\\\"th\\\"],[7],[0,\\\"Replication Lag\\\"],[8],[0,\\\"\\\\n                  \\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}],[0,\\\"                \\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"sortedInstances\\\"]]],null,{\\\"statements\\\":[[0,\\\"                  \\\"],[1,[25,\\\"overview-right-cluster-topology\\\",null,[[\\\"db\\\",\\\"instance\\\",\\\"dbLag\\\"],[[20,[\\\"db\\\"]],[19,1,[]],[20,[\\\"dbLag\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[[25,\\\"concat\\\",[[20,[\\\"db\\\",\\\"displayName\\\"]],\\\" Stats\\\"],null],\\\"db-stats\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"dbMetrics\\\",\\\"database_stats\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[1,[25,\\\"type-stats-table\\\",null,[[\\\"db\\\",\\\"dbMetrics\\\"],[[20,[\\\"db\\\"]],[20,[\\\"dbMetrics\\\"]]]]],false],[0,\\\"\\\\n          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            System metrics are available on the\\\\n            \\\"],[4,\\\"link-to\\\",[\\\"dashboard.metrics\\\"],null,{\\\"statements\\\":[[0,\\\"metrics\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n            tab.\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"loader-card col s3 offset-s5\\\"],[7],[0,\\\"\\\\n            \\\"],[1,[25,\\\"md-loader\\\",null,[[\\\"mode\\\",\\\"size\\\"],[\\\"circular\\\",\\\"small\\\"]]],false],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[\\\"Database Upgrade\\\",\\\"db-upgrade\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n        \\\"],[1,[25,\\\"database-upgrade\\\",null,[[\\\"db\\\",\\\"store\\\"],[[20,[\\\"db\\\"]],[20,[\\\"store\\\"]]]]],false],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/overview-right.hbs\" } });\n});","define(\"database-dashboard/templates/components/overview-stats\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"SAiMNh6Z\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"class\\\"],[\\\"Stats\\\",\\\"db-stats\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"dbMetrics\\\",\\\"database_stats\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"h3\\\"],[7],[0,\\\"Container stats\\\"],[8],[0,\\\"\\\\n          \\\"],[1,[25,\\\"stats-table\\\",null,[[\\\"dbMetrics\\\"],[[20,[\\\"dbMetrics\\\"]]]]],false],[0,\\\"\\\\n          \\\"],[6,\\\"h3\\\"],[7],[1,[25,\\\"capitalize\\\",[[20,[\\\"db\\\",\\\"displayName\\\"]]],null],false],[0,\\\" stats\\\"],[8],[0,\\\"\\\\n          \\\"],[1,[25,\\\"type-stats-table\\\",null,[[\\\"db\\\",\\\"dbMetrics\\\"],[[20,[\\\"db\\\"]],[20,[\\\"dbMetrics\\\"]]]]],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"loader-card col s3 offset-s5\\\"],[7],[0,\\\"\\\\n          \\\"],[1,[25,\\\"md-loader\\\",null,[[\\\"mode\\\",\\\"size\\\"],[\\\"circular\\\",\\\"small\\\"]]],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/overview-stats.hbs\" } });\n});","define(\"database-dashboard/templates/components/pg-query-statistics-query\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"jYDnu7+B\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"isEditing\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"input-field\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"textarea\\\"],[9,\\\"class\\\",\\\"materialize-textarea\\\"],[9,\\\"readonly\\\",\\\"readonly\\\"],[7],[1,[18,\\\"query\\\"],false],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"code\\\"],[7],[1,[25,\\\"truncate\\\",[[20,[\\\"query\\\"]]],[[\\\"limit\\\"],[80]]],false],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/pg-query-statistics-query.hbs\" } });\n});","define(\"database-dashboard/templates/components/sc-md-btn\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"YX3h/TOK\", \"block\": \"{\\\"symbols\\\":[\\\"&default\\\"],\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"icon\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"i\\\"],[10,\\\"class\\\",[26,[\\\"material-icons \\\",[18,\\\"iconPosition\\\"]]]],[7],[1,[18,\\\"icon\\\"],false],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[20,[\\\"text\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"btn__text\\\"],[7],[1,[18,\\\"text\\\"],false],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[11,1],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"isLoading\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[1,[18,\\\"md-loader\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/sc-md-btn.hbs\" } });\n});","define(\"database-dashboard/templates/components/sc-md-input\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"s7emAMYz\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"icon\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"i\\\"],[10,\\\"class\\\",[26,[[18,\\\"icon\\\"],\\\" prefix\\\"]]],[7],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[1,[25,\\\"input\\\",[[25,\\\"-input-type\\\",[[20,[\\\"type\\\"]]],null]],[[\\\"id\\\",\\\"value\\\",\\\"type\\\",\\\"required\\\",\\\"pattern\\\",\\\"maxlength\\\",\\\"readonly\\\",\\\"disabled\\\",\\\"autocomplete\\\",\\\"autofocus\\\",\\\"step\\\",\\\"min\\\",\\\"max\\\",\\\"class\\\"],[[20,[\\\"id\\\"]],[20,[\\\"value\\\"]],[20,[\\\"type\\\"]],[20,[\\\"required\\\"]],[20,[\\\"pattern\\\"]],[20,[\\\"maxlength\\\"]],[20,[\\\"readonly\\\"]],[20,[\\\"disabled\\\"]],[20,[\\\"autocomplete\\\"]],[20,[\\\"autofocus\\\"]],[20,[\\\"step\\\"]],[20,[\\\"min\\\"]],[20,[\\\"max\\\"]],[25,\\\"concat\\\",[[25,\\\"if\\\",[[20,[\\\"validate\\\"]],\\\"validate\\\",\\\"\\\"],null],\\\" \\\",[25,\\\"if\\\",[[20,[\\\"isValid\\\"]],\\\"valid\\\",\\\"\\\"],null],\\\" \\\",[25,\\\"if\\\",[[20,[\\\"isInvalid\\\"]],\\\"invalid\\\",\\\"\\\"],null],\\\" \\\"],null]]]],false],[0,\\\"\\\\n\\\"],[6,\\\"label\\\"],[10,\\\"for\\\",[26,[[18,\\\"id\\\"]]]],[7],[1,[18,\\\"label\\\"],false],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"suffix\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"input-suffix\\\"],[7],[1,[18,\\\"suffix\\\"],false],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[6,\\\"small\\\"],[10,\\\"class\\\",[25,\\\"if\\\",[[20,[\\\"errors\\\",\\\"firstObject\\\"]],\\\"red-text\\\"],null],null],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"errors\\\",\\\"firstObject\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[20,[\\\"errors\\\",\\\"firstObject\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"hint\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[18,\\\"hint\\\"],false],[0,\\\"\\\\n  \\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"  \\\\n  \\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/sc-md-input.hbs\" } });\n});","define(\"database-dashboard/templates/components/sc-md-navbar\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"DjQIw6Tp\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"nav\\\"],[10,\\\"class\\\",[18,\\\"color\\\"],null],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"nav-wrapper\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"a\\\"],[10,\\\"href\\\",[18,\\\"appURL\\\"],null],[9,\\\"class\\\",\\\"button-arrow tooltipped\\\"],[9,\\\"data-position\\\",\\\"right\\\"],[9,\\\"data-delay\\\",\\\"50\\\"],[10,\\\"data-tooltip\\\",[26,[\\\"Back to \\\",[18,\\\"appName\\\"],\\\" on Scalingo Dashboard\\\"]]],[7],[0,\\\"\\\\n      \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons\\\"],[7],[0,\\\"arrow_back\\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"brand-logo left\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[18,\\\"name\\\"],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"dbType\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"a\\\"],[10,\\\"href\\\",[26,[\\\"https://doc.scalingo.com/databases/\\\",[18,\\\"dbType\\\"],\\\"/start\\\"]]],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"class\\\",\\\"navbar-menu\\\"],[9,\\\"title\\\",\\\"Scalingo Documentation Center\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons\\\"],[7],[0,\\\"help\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"navbar-menu-placeholder\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://doc.scalingo.com\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"class\\\",\\\"navbar-menu\\\"],[9,\\\"title\\\",\\\"Scalingo Documentation Center\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons\\\"],[7],[0,\\\"help\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"navbar-menu-placeholder\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"\\\\n    \\\"],[1,[18,\\\"help-dropdown\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\\n  \\\"],[1,[25,\\\"sc-md-tabs\\\",null,[[\\\"content\\\",\\\"selected\\\"],[[20,[\\\"tabsContent\\\"]],[20,[\\\"selectedTab\\\"]]]]],false],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/sc-md-navbar.hbs\" } });\n});","define(\"database-dashboard/templates/components/sc-md-switch\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"PyD3J19B\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"sc-md-switch\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"switch-label materialize-selectable-item-label\\\"],[7],[0,\\\" \\\"],[1,[18,\\\"name\\\"],false],[0,\\\" \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"loading\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[25,\\\"md-loader\\\",null,[[\\\"mode\\\",\\\"size\\\"],[\\\"circular\\\",\\\"small\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[20,[\\\"error\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"tooltipped material-icons center red-text\\\"],[9,\\\"data-position\\\",\\\"top\\\"],[9,\\\"data-delay\\\",\\\"50\\\"],[10,\\\"data-tooltip\\\",[18,\\\"error\\\"],null],[7],[0,\\\"clear\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[1,[25,\\\"md-switch\\\",null,[[\\\"value\\\",\\\"checked\\\",\\\"disabled\\\",\\\"action\\\",\\\"onLabel\\\",\\\"offLabel\\\"],[[20,[\\\"value\\\"]],[20,[\\\"checked\\\"]],[20,[\\\"disabled\\\"]],[20,[\\\"action\\\"]],[20,[\\\"onLabel\\\"]],[20,[\\\"offLabel\\\"]]]]],false],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/sc-md-switch.hbs\" } });\n});","define(\"database-dashboard/templates/components/sc-md-tabs\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"im/I9rV2\", \"block\": \"{\\\"symbols\\\":[\\\"tab\\\",\\\"&default\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"ul\\\"],[9,\\\"class\\\",\\\"tabs tabs-flex\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"_content\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[1,[25,\\\"sc-md-tab\\\",null,[[\\\"title\\\",\\\"value\\\"],[[19,1,[\\\"title\\\"]],[19,1,[\\\"id\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"    \\\"],[11,2],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"indicator indicator1\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"indicator indicator2\\\"],[7],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/sc-md-tabs.hbs\" } });\n});","define(\"database-dashboard/templates/components/sc-md-toggle-btn\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"hRtTS9Vp\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"a\\\"],[10,\\\"class\\\",[26,[\\\"btn black-text test-darken-3 grey lighten-4 \\\",[25,\\\"if\\\",[[20,[\\\"isSelected\\\"]],\\\"lighten-1\\\",\\\"lighten-4\\\"],null]]]],[3,\\\"action\\\",[[19,0,[]],\\\"click\\\"]],[7],[0,\\\"\\\\n  \\\"],[1,[18,\\\"text\\\"],false],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/sc-md-toggle-btn.hbs\" } });\n});","define(\"database-dashboard/templates/components/sc-modal\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"tj/8iDI4\", \"block\": \"{\\\"symbols\\\":[\\\"&default\\\"],\\\"statements\\\":[[4,\\\"ember-wormhole\\\",null,[[\\\"to\\\"],[\\\"modal-overlays\\\"]],{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[10,\\\"id\\\",[26,[[18,\\\"id\\\"]]]],[10,\\\"class\\\",[26,[\\\"modal container \\\",[25,\\\"if\\\",[[20,[\\\"fixedFooter\\\"]],\\\"modal-fixed-footer\\\"],null]]]],[7],[0,\\\"\\\\n    \\\"],[11,1],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/sc-modal.hbs\" } });\n});","define(\"database-dashboard/templates/components/single-chart\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"vVxNxUEE\", \"block\": \"{\\\"symbols\\\":[\\\"item\\\"],\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"loaded\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"single-chart\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"customLegend\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"single-chart-legend\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"legendItems\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"legend-item\\\"],[10,\\\"id\\\",[19,1,[]],null],[7],[0,\\\"\\\\n            \\\"],[1,[19,1,[]],false],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[1,[25,\\\"sc-chart\\\",null,[[\\\"data\\\",\\\"axis\\\",\\\"grid\\\",\\\"point\\\",\\\"legend\\\",\\\"size\\\",\\\"color\\\",\\\"padding\\\",\\\"tooltip\\\",\\\"tooltipPos\\\",\\\"onrendered\\\",\\\"onmouseout\\\",\\\"reload\\\"],[[20,[\\\"data\\\"]],[20,[\\\"axis\\\"]],[20,[\\\"grid\\\"]],[20,[\\\"point\\\"]],[20,[\\\"legend\\\"]],[20,[\\\"size\\\"]],[20,[\\\"color\\\"]],[20,[\\\"padding\\\"]],[20,[\\\"tooltip\\\"]],[20,[\\\"tooltipPos\\\"]],[20,[\\\"onRendered\\\"]],[20,[\\\"onmouseout\\\"]],[20,[\\\"reload\\\"]]]]],false],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"failed\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"metrics-container-placeholder error-placeholder\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"h4\\\"],[9,\\\"class\\\",\\\"center-align container-error\\\"],[7],[0,\\\"No Data Available\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"internalError\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"h5\\\"],[9,\\\"class\\\",\\\"center-align container-error\\\"],[7],[0,\\\"Please retry later.\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"metrics-container-placeholder\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[25,\\\"md-loader\\\",null,[[\\\"mode\\\"],[\\\"circular\\\"]]],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/single-chart.hbs\" } });\n});","define(\"database-dashboard/templates/components/stats-table\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"RS2BgGfo\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-title\\\"],[7],[0,\\\"\\\\n      CPU usage\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-value\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[25,\\\"to-percent\\\",[[20,[\\\"dbMetrics\\\",\\\"cpu_usage\\\"]]],null],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[6,\\\"tr\\\"],[9,\\\"class\\\",\\\"db-stats-usage\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"td\\\"],[9,\\\"colspan\\\",\\\"2\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-title\\\"],[7],[0,\\\"\\\\n      Memory usage\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"db-stats-chart\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"db-stats-chart-bar current\\\"],[10,\\\"style\\\",[26,[\\\"width: \\\",[20,[\\\"ramStats\\\",\\\"percent\\\",\\\"current\\\"]],\\\"%; max-width: \\\",[20,[\\\"ramStats\\\",\\\"percent\\\",\\\"current\\\"]],\\\"%;\\\"]]],[10,\\\"title\\\",[26,[\\\"Current: \\\",[25,\\\"to-bytes\\\",[[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"memory\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"memory_limit\\\"]]],null]]]],[7],[0,\\\"\\\\n        \\\"],[6,\\\"small\\\"],[7],[1,[20,[\\\"ramStats\\\",\\\"percent\\\",\\\"current\\\"]],false],[0,\\\"%\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"db-stats-chart-indicator max\\\"],[10,\\\"style\\\",[26,[\\\"left: \\\",[20,[\\\"ramStats\\\",\\\"percent\\\",\\\"max\\\"]],\\\"%;\\\"]]],[10,\\\"title\\\",[26,[\\\"Highest: \\\",[25,\\\"to-bytes\\\",[[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"memory_max\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"memory_limit\\\"]]],null]]]],[7],[0,\\\"\\\\n        \\\"],[6,\\\"small\\\"],[7],[0,\\\"Highest\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"db-stats-chart-bar limit\\\"],[10,\\\"style\\\",[26,[\\\"width: \\\",[20,[\\\"ramStats\\\",\\\"percent\\\",\\\"free\\\"]],\\\"%; max-width: \\\",[20,[\\\"ramStats\\\",\\\"percent\\\",\\\"free\\\"]],\\\"%;\\\"]]],[10,\\\"title\\\",[26,[\\\"Free: \\\",[25,\\\"to-bytes\\\",[[20,[\\\"ramStats\\\",\\\"free\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"memory_limit\\\"]]],null]]]],[7],[0,\\\"\\\\n        \\\"],[6,\\\"small\\\"],[7],[1,[20,[\\\"ramStats\\\",\\\"percent\\\",\\\"free\\\"]],false],[0,\\\"%\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\\n    \\\"],[6,\\\"ul\\\"],[9,\\\"class\\\",\\\"db-stats-usage-item\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"li\\\"],[9,\\\"class\\\",\\\"current\\\"],[7],[6,\\\"span\\\"],[7],[0,\\\"Current\\\"],[8],[6,\\\"span\\\"],[7],[1,[25,\\\"to-bytes\\\",[[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"memory\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"memory_limit\\\"]]],null],false],[8],[8],[0,\\\"\\\\n      \\\"],[6,\\\"li\\\"],[9,\\\"class\\\",\\\"max\\\"],[7],[6,\\\"span\\\"],[7],[0,\\\"Highest\\\"],[8],[6,\\\"span\\\"],[7],[1,[25,\\\"to-bytes\\\",[[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"memory_max\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"memory_limit\\\"]]],null],false],[8],[8],[0,\\\"\\\\n      \\\"],[6,\\\"li\\\"],[9,\\\"class\\\",\\\"limit\\\"],[7],[6,\\\"span\\\"],[7],[0,\\\"Free\\\"],[8],[6,\\\"span\\\"],[7],[1,[25,\\\"to-bytes\\\",[[20,[\\\"ramStats\\\",\\\"free\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"memory_limit\\\"]]],null],false],[8],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[6,\\\"tr\\\"],[9,\\\"class\\\",\\\"db-stats-usage\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"td\\\"],[9,\\\"colspan\\\",\\\"2\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-title\\\"],[7],[0,\\\"\\\\n      Swap usage\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"db-stats-chart\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"db-stats-chart-bar current\\\"],[10,\\\"style\\\",[26,[\\\"width: \\\",[20,[\\\"swapStats\\\",\\\"percent\\\",\\\"current\\\"]],\\\"%; max-width: \\\",[20,[\\\"swapStats\\\",\\\"percent\\\",\\\"current\\\"]],\\\"%;\\\"]]],[10,\\\"title\\\",[26,[\\\"Current: \\\",[25,\\\"to-bytes\\\",[[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"swap\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"swap_limit\\\"]]],null]]]],[7],[0,\\\"\\\\n        \\\"],[6,\\\"small\\\"],[7],[1,[20,[\\\"swapStats\\\",\\\"percent\\\",\\\"current\\\"]],false],[0,\\\"%\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"db-stats-chart-indicator max\\\"],[10,\\\"style\\\",[26,[\\\"left: \\\",[20,[\\\"swapStats\\\",\\\"percent\\\",\\\"max\\\"]],\\\"%;\\\"]]],[10,\\\"title\\\",[26,[\\\"Highest: \\\",[25,\\\"to-bytes\\\",[[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"swap_max\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"swap_limit\\\"]]],null]]]],[7],[0,\\\"\\\\n        \\\"],[6,\\\"small\\\"],[7],[0,\\\"Highest\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"db-stats-chart-bar limit\\\"],[10,\\\"style\\\",[26,[\\\"width: \\\",[20,[\\\"swapStats\\\",\\\"percent\\\",\\\"free\\\"]],\\\"%; max-width: \\\",[20,[\\\"swapStats\\\",\\\"percent\\\",\\\"free\\\"]],\\\"%;\\\"]]],[10,\\\"title\\\",[26,[\\\"Free: \\\",[25,\\\"to-bytes\\\",[[20,[\\\"swapStats\\\",\\\"free\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"swap_limit\\\"]]],null]]]],[7],[0,\\\"\\\\n        \\\"],[6,\\\"small\\\"],[7],[1,[20,[\\\"swapStats\\\",\\\"percent\\\",\\\"free\\\"]],false],[0,\\\"%\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\\n    \\\"],[6,\\\"ul\\\"],[9,\\\"class\\\",\\\"db-stats-usage-item\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"li\\\"],[9,\\\"class\\\",\\\"current\\\"],[7],[6,\\\"span\\\"],[7],[0,\\\"Current\\\"],[8],[6,\\\"span\\\"],[7],[1,[25,\\\"to-bytes\\\",[[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"swap\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"swap_limit\\\"]]],null],false],[8],[8],[0,\\\"\\\\n      \\\"],[6,\\\"li\\\"],[9,\\\"class\\\",\\\"max\\\"],[7],[6,\\\"span\\\"],[7],[0,\\\"Highest\\\"],[8],[6,\\\"span\\\"],[7],[1,[25,\\\"to-bytes\\\",[[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"swap_max\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"swap_limit\\\"]]],null],false],[8],[8],[0,\\\"\\\\n      \\\"],[6,\\\"li\\\"],[9,\\\"class\\\",\\\"limit\\\"],[7],[6,\\\"span\\\"],[7],[0,\\\"Free\\\"],[8],[6,\\\"span\\\"],[7],[1,[25,\\\"to-bytes\\\",[[20,[\\\"swapStats\\\",\\\"free\\\"]],[20,[\\\"dbMetrics\\\",\\\"memory\\\",\\\"swap_limit\\\"]]],null],false],[8],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/stats-table.hbs\" } });\n});","define('database-dashboard/templates/components/tether-dialog', ['exports', 'ember-modal-dialog/templates/components/tether-dialog'], function (exports, _tetherDialog) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _tetherDialog.default;\n    }\n  });\n});","define(\"database-dashboard/templates/components/type-stats-table\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"5Cy7adrp\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"hasMongoIndex\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-title\\\"],[7],[0,\\\"\\\\n          MongoDB index size\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-value\\\"],[7],[0,\\\"\\\\n          \\\"],[1,[25,\\\"to-bytes\\\",[[20,[\\\"dbMetrics\\\",\\\"database_stats\\\",\\\"index_size\\\"]]],null],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"showConnections\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-title\\\"],[7],[0,\\\"\\\\n          Database connections\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-value\\\"],[7],[0,\\\"\\\\n          \\\"],[1,[20,[\\\"dbMetrics\\\",\\\"database_stats\\\",\\\"current_connections\\\"]],false],[0,\\\" / \\\"],[1,[20,[\\\"dbMetrics\\\",\\\"database_stats\\\",\\\"max_connections\\\"]],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"showDatabaseSize\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-title\\\"],[7],[0,\\\"\\\\n          Data size\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-value\\\"],[7],[0,\\\"\\\\n          \\\"],[1,[25,\\\"to-bytes\\\",[[20,[\\\"dbMetrics\\\",\\\"database_stats\\\",\\\"data_size\\\"]]],null],false],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-title\\\"],[7],[0,\\\"\\\\n        Database on disk size\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"db-stats-usage-value\\\"],[7],[0,\\\"\\\\n        \\\"],[1,[25,\\\"to-bytes\\\",[[20,[\\\"dbMetrics\\\",\\\"real_disk_size\\\"]]],null],false],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/type-stats-table.hbs\" } });\n});","define(\"database-dashboard/templates/components/user-management\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"ZnJRpwnl\", \"block\": \"{\\\"symbols\\\":[\\\"user\\\"],\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"id\\\"],[\\\"User Management\\\",\\\"user-management\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"canModifyUsers\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"hasNoUser\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"users-overlay\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"loader-card col s3 offset-s5\\\"],[7],[0,\\\"\\\\n              \\\"],[1,[25,\\\"md-loader\\\",null,[[\\\"mode\\\",\\\"size\\\"],[\\\"circular\\\",\\\"small\\\"]]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"users\\\"]]],null,{\\\"statements\\\":[[4,\\\"md-collection\\\",null,[[\\\"content\\\"],[[20,[\\\"users\\\"]]]],{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"collection-item\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"collection-item-icon material-icons\\\"],[7],[0,\\\"person\\\"],[8],[0,\\\"\\\\n              \\\"],[1,[19,1,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"],[4,\\\"unless\\\",[[19,1,[\\\"isProtectedUser\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"class\\\",\\\"icon\\\",\\\"text\\\",\\\"iconPosition\\\",\\\"buttonType\\\",\\\"isDisabled\\\",\\\"action\\\"],[\\\"secondary-content\\\",\\\"delete\\\",\\\"Delete\\\",\\\"center\\\",\\\"flat\\\",[20,[\\\"isDeleting\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"toggleDeleteUserConfirmation\\\",[19,1,[]]],null]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[19,1,[\\\"readOnly\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"badge blue\\\"],[7],[0,\\\"read-only\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[19,1,[\\\"isProtectedUser\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"span\\\"],[9,\\\"class\\\",\\\"badge grey\\\"],[7],[0,\\\"protected\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n            Loading users...\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"isMongoDb\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"blockquote\\\"],[9,\\\"class\\\",\\\"warning\\\"],[7],[0,\\\"\\\\n          Users are registered in the default database.\\\\n          To use them on another database, use the \\\\\\\"authSource\\\\\\\" argument.\\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[6,\\\"code\\\"],[7],[1,[18,\\\"getMongoConnectionString\\\"],false],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"h3\\\"],[7],[0,\\\"Add a new user\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"form\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"newUser\\\"],[[\\\"on\\\"],[\\\"submit\\\"]]],[7],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n              \\\"],[1,[25,\\\"sc-md-input\\\",null,[[\\\"label\\\",\\\"value\\\",\\\"required\\\",\\\"class\\\",\\\"disabled\\\",\\\"errors\\\"],[\\\"Username\\\",[20,[\\\"user\\\",\\\"name\\\"]],true,\\\"col s12\\\",[20,[\\\"isCreating\\\"]],[20,[\\\"errors\\\",\\\"name\\\"]]]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"sc-md-input\\\",null,[[\\\"label\\\",\\\"value\\\",\\\"hint\\\",\\\"class\\\",\\\"disabled\\\",\\\"errors\\\"],[\\\"Password\\\",[20,[\\\"user\\\",\\\"password\\\"]],\\\"Will be generated if empty\\\",\\\"col s12\\\",[20,[\\\"isCreating\\\"]],[20,[\\\"errors\\\",\\\"password\\\"]]]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"sc-md-input\\\",null,[[\\\"label\\\",\\\"value\\\",\\\"class\\\",\\\"disabled\\\",\\\"errors\\\"],[\\\"Password confirmation\\\",[20,[\\\"user\\\",\\\"passwordConfirmation\\\"]],\\\"col s12\\\",[20,[\\\"isCreating\\\"]],[20,[\\\"errors\\\",\\\"passwordConfirmation\\\"]]]]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n                \\\"],[1,[25,\\\"md-check\\\",null,[[\\\"checked\\\",\\\"name\\\",\\\"disabled\\\"],[[20,[\\\"user\\\",\\\"readOnly\\\"]],\\\"Read only\\\",[20,[\\\"isCreating\\\"]]]]],false],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[1,[25,\\\"sc-md-btn-submit\\\",null,[[\\\"text\\\",\\\"isDisabled\\\",\\\"isLoading\\\"],[\\\"Add User\\\",[20,[\\\"isCreating\\\"]],[20,[\\\"isCreating\\\"]]]]],false],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"em\\\"],[7],[0,\\\"This type of database does not have user management feature.\\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/components/user-management.hbs\" } });\n});","define(\"database-dashboard/templates/dashboard/advanced\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"2NVF1+Mz\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"detail-layout\\\",null,null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"model\\\",\\\"db\\\",\\\"hasAdvancedFeatures\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[1,[25,\\\"component\\\",[[25,\\\"concat\\\",[\\\"advanced-\\\",[20,[\\\"model\\\",\\\"db\\\",\\\"typeName\\\"]]],null]],[[\\\"db\\\",\\\"data\\\"],[[20,[\\\"model\\\",\\\"db\\\"]],[20,[\\\"model\\\",\\\"data\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"Database features\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"em\\\"],[7],[0,\\\"There is no advanced feature yet for this type of database.\\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/dashboard/advanced.hbs\" } });\n});","define(\"database-dashboard/templates/dashboard/backups\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"Gf20qJf9\", \"block\": \"{\\\"symbols\\\":[\\\"b\\\"],\\\"statements\\\":[[4,\\\"detail-layout\\\",null,null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s6\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[25,\\\"advanced-backup\\\",null,[[\\\"db\\\",\\\"plan\\\",\\\"reloadBackups\\\"],[[20,[\\\"model\\\",\\\"db\\\"]],[20,[\\\"model\\\",\\\"plan\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"reloadBackups\\\"],null]]]],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s6\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"Backups\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[25,\\\"gt\\\",[[20,[\\\"model\\\",\\\"dbBackups\\\",\\\"length\\\"]],0],null]],null,{\\\"statements\\\":[[0,\\\"                All backups dates are in \\\"],[1,[18,\\\"timezone\\\"],false],[0,\\\" timezone.\\\\n                \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"bordered\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n                    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[7],[0,\\\"Type\\\"],[8],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[7],[0,\\\"Date\\\"],[8],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[7],[0,\\\"Size\\\"],[8],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[7],[0,\\\"Status\\\"],[8],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[7],[8],[0,\\\"\\\\n                    \\\"],[8],[0,\\\"\\\\n                  \\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"model\\\",\\\"dbBackups\\\"]]],null,{\\\"statements\\\":[[0,\\\"                      \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                        \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[25,\\\"eq\\\",[[19,1,[\\\"method\\\"]],\\\"manual\\\"],null]],null,{\\\"statements\\\":[[0,\\\"                            \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center\\\"],[10,\\\"title\\\",[26,[[19,1,[\\\"method\\\"]]]]],[7],[0,\\\"\\\\n                              face\\\\n                            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[25,\\\"eq\\\",[[19,1,[\\\"method\\\"]],\\\"periodic\\\"],null]],null,{\\\"statements\\\":[[0,\\\"                            \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center\\\"],[10,\\\"title\\\",[26,[[19,1,[\\\"method\\\"]]]]],[7],[0,\\\"\\\\n                              history\\\\n                            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                            \\\"],[1,[19,1,[\\\"method\\\"]],false],[0,\\\"\\\\n                          \\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}],[0,\\\"                        \\\"],[8],[0,\\\"\\\\n                        \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"toNumericDateTime\\\",[[19,1,[\\\"startedAt\\\"]]],null],false],[8],[0,\\\"\\\\n                        \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[25,\\\"eq\\\",[[19,1,[\\\"status\\\"]],\\\"done\\\"],null]],null,{\\\"statements\\\":[[0,\\\"                            \\\"],[1,[25,\\\"to-bytes\\\",[[19,1,[\\\"size\\\"]]],null],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[25,\\\"eq\\\",[[19,1,[\\\"status\\\"]],\\\"running\\\"],null]],null,{\\\"statements\\\":[[0,\\\"                            \\\"],[6,\\\"em\\\"],[7],[0,\\\"running\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[25,\\\"eq\\\",[[19,1,[\\\"status\\\"]],\\\"scheduled\\\"],null]],null,{\\\"statements\\\":[[0,\\\"                            \\\"],[6,\\\"em\\\"],[7],[0,\\\"scheduled\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                             n/a\\\\n                          \\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}],[0,\\\"                        \\\"],[8],[0,\\\"\\\\n                        \\\"],[6,\\\"td\\\"],[9,\\\"class\\\",\\\"backup-status\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[25,\\\"eq\\\",[[19,1,[\\\"status\\\"]],\\\"done\\\"],null]],null,{\\\"statements\\\":[[0,\\\"                            \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center backup-status-done\\\"],[7],[0,\\\"done\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[25,\\\"eq\\\",[[19,1,[\\\"status\\\"]],\\\"running\\\"],null]],null,{\\\"statements\\\":[[0,\\\"                            \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center backup-status-running\\\"],[7],[0,\\\"refresh\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[25,\\\"eq\\\",[[19,1,[\\\"status\\\"]],\\\"error\\\"],null]],null,{\\\"statements\\\":[[0,\\\"                            \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center backup-status-error\\\"],[7],[0,\\\"error\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[25,\\\"eq\\\",[[19,1,[\\\"status\\\"]],\\\"scheduled\\\"],null]],null,{\\\"statements\\\":[[0,\\\"                            \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center\\\"],[7],[0,\\\"scheduled\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                            \\\"],[1,[19,1,[\\\"status\\\"]],false],[0,\\\"\\\\n                          \\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}],[0,\\\"                        \\\"],[8],[0,\\\"\\\\n                        \\\"],[6,\\\"td\\\"],[9,\\\"class\\\",\\\"right-align\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[19,1,[\\\"isRestorable\\\"]]],null,{\\\"statements\\\":[[0,\\\"                            \\\"],[6,\\\"a\\\"],[9,\\\"class\\\",\\\"btn-flat btn-color waves-effect hide-on-small-only\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"restoreBackup\\\",[19,1,[]]]],[7],[0,\\\"\\\\n                              Restore\\\\n                            \\\"],[8],[0,\\\"\\\\n                            \\\"],[6,\\\"a\\\"],[9,\\\"class\\\",\\\"btn-flat btn-color waves-effect hide-on-med-and-up\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"restoreBackup\\\",[19,1,[]]]],[7],[0,\\\"\\\\n                              \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center\\\"],[7],[0,\\\"restore\\\"],[8],[0,\\\"\\\\n                            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[19,1,[\\\"isDownloadable\\\"]]],null,{\\\"statements\\\":[[0,\\\"                            \\\"],[6,\\\"a\\\"],[10,\\\"href\\\",[26,[[19,1,[\\\"downloadUrl\\\"]]]]],[9,\\\"class\\\",\\\"btn-flat btn-color waves-effect hide-on-small-only\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"downloadBackup\\\",[19,1,[\\\"downloadUrl\\\"]]]],[7],[0,\\\"\\\\n                              Download\\\\n                            \\\"],[8],[0,\\\"\\\\n                            \\\"],[6,\\\"a\\\"],[10,\\\"href\\\",[26,[[19,1,[\\\"downloadUrl\\\"]]]]],[9,\\\"class\\\",\\\"btn-flat btn-color waves-effect hide-on-med-and-up\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"downloadBackup\\\",[19,1,[\\\"downloadUrl\\\"]]]],[7],[0,\\\"\\\\n                              \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons center\\\"],[7],[0,\\\"cloud_download\\\"],[8],[0,\\\"\\\\n                            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"                        \\\"],[8],[0,\\\"\\\\n                      \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"                  \\\"],[8],[0,\\\"\\\\n                \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"em\\\"],[7],[0,\\\"There is no backup for this database.\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/dashboard/backups.hbs\" } });\n});","define(\"database-dashboard/templates/dashboard/databases\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"pb/FbdjQ\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"detail-layout\\\",null,null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m6 offset-m3\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[25,\\\"database/database-management\\\",null,[[\\\"db\\\",\\\"store\\\"],[[20,[\\\"db\\\"]],[20,[\\\"store\\\"]]]]],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/dashboard/databases.hbs\" } });\n});","define(\"database-dashboard/templates/dashboard/loading\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"KLilF+Dk\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"loader col s12\\\"],[7],[0,\\\"\\\\n       \\\"],[1,[25,\\\"md-loader\\\",null,[[\\\"mode\\\"],[\\\"circular\\\"]]],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/dashboard/loading.hbs\" } });\n});","define(\"database-dashboard/templates/dashboard/logs-archives\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"FenBIe1W\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"detail-layout\\\",null,null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[25,\\\"logs-archive\\\",null,[[\\\"db\\\"],[[20,[\\\"model\\\",\\\"db\\\"]]]]],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/dashboard/logs-archives.hbs\" } });\n});","define(\"database-dashboard/templates/dashboard/logs\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"vCOSG2ky\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"detail-layout\\\",null,null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m12\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"Logs\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 card-controls\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"link-to\\\",[\\\"dashboard.logs-archives\\\"],null,{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"a\\\"],[9,\\\"class\\\",\\\"btn btn-flat btn-color\\\"],[7],[0,\\\"\\\\n                  Archives\\\\n                \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n              \\\"],[1,[25,\\\"database-logs\\\",null,[[\\\"db\\\"],[[20,[\\\"model\\\",\\\"db\\\"]]]]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/dashboard/logs.hbs\" } });\n});","define(\"database-dashboard/templates/dashboard/metrics\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"tl/LkZMd\", \"block\": \"{\\\"symbols\\\":[\\\"instance\\\"],\\\"statements\\\":[[4,\\\"detail-layout\\\",null,null,{\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m12\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"id\\\"],[\\\"Metrics\\\",\\\"basic-card\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"hide-on-small-only metrics-time\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[25,\\\"button-group\\\",null,[[\\\"selected\\\",\\\"content\\\",\\\"action\\\"],[[20,[\\\"metricsTime\\\"]],[20,[\\\"metricsTimeValues\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"metricsTimeUpdate\\\"],null]]]],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"metrics-timezone\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[25,\\\"md-select\\\",null,[[\\\"content\\\",\\\"value\\\"],[[20,[\\\"timezones\\\"]],[20,[\\\"graphTimezone\\\"]]]]],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"hide-on-med-and-up\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[25,\\\"md-select\\\",null,[[\\\"value\\\",\\\"content\\\",\\\"optionLabelPath\\\",\\\"optionValuePath\\\"],[[20,[\\\"metricsTime\\\"]],[20,[\\\"metricsTimeValues\\\"]],\\\"content.title\\\",\\\"content.value\\\"]]],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"clearfix\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"instancesByType\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[25,\\\"not-eq\\\",[[20,[\\\"instancesByType\\\",\\\"length\\\"]],1],null]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"divider metrics-divider\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[6,\\\"h2\\\"],[9,\\\"class\\\",\\\"graph-container-title\\\"],[7],[0,\\\"Instance \\\"],[1,[25,\\\"instance-role\\\",[[19,1,[]],[20,[\\\"model\\\",\\\"metrics\\\"]],[20,[\\\"model\\\",\\\"db\\\",\\\"typeName\\\"]]],null],false],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[1,[25,\\\"db-metrics\\\",null,[[\\\"database\\\",\\\"instance\\\",\\\"tooltipUpdate\\\",\\\"tooltipPos\\\",\\\"metricsTime\\\",\\\"timezone\\\"],[[20,[\\\"model\\\",\\\"db\\\"]],[19,1,[]],[25,\\\"action\\\",[[19,0,[]],\\\"tooltipUpdate\\\"],null],[20,[\\\"tooltipPos\\\"]],[20,[\\\"metricsTime\\\"]],[20,[\\\"graphTimezone\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/dashboard/metrics.hbs\" } });\n});","define(\"database-dashboard/templates/dashboard/overview\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"xLvQWHcw\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"detail-layout\\\",null,null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m6\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"General Information\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n              \\\"],[1,[25,\\\"database-general\\\",null,[[\\\"db\\\"],[[20,[\\\"model\\\",\\\"db\\\"]]]]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n      \\\"],[1,[25,\\\"database-access\\\",null,[[\\\"db\\\"],[[20,[\\\"model\\\",\\\"db\\\"]]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"model\\\",\\\"db\\\",\\\"needDownloadableCaCert\\\"]]],null,{\\\"statements\\\":[[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"Database TLS Certificates\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n                \\\"],[1,[25,\\\"database-download-certificates\\\",null,[[\\\"db\\\"],[[20,[\\\"model\\\",\\\"db\\\"]]]]],false],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[8],[0,\\\"\\\\n\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m6\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[25,\\\"overview-right\\\",null,[[\\\"store\\\",\\\"db\\\",\\\"dbMetrics\\\",\\\"dbHealth\\\",\\\"dbLag\\\",\\\"plan\\\"],[[20,[\\\"store\\\"]],[20,[\\\"model\\\",\\\"db\\\"]],[20,[\\\"dbMetrics\\\"]],[20,[\\\"dbHealth\\\"]],[20,[\\\"dbLag\\\"]],[20,[\\\"model\\\",\\\"plan\\\"]]]]],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/dashboard/overview.hbs\" } });\n});","define(\"database-dashboard/templates/dashboard/pg-query-statistics\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"azlx2Wj+\", \"block\": \"{\\\"symbols\\\":[\\\"stat\\\"],\\\"statements\\\":[[4,\\\"detail-layout\\\",null,null,{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"db\\\",\\\"hasPgStatStatements\\\",\\\"content\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"Query statistics\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 card-controls\\\"],[7],[0,\\\"\\\\n              \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"text\\\",\\\"isDisabled\\\",\\\"isLoading\\\",\\\"buttonType\\\",\\\"action\\\"],[\\\"Refresh\\\",[20,[\\\"isReloading\\\"]],[20,[\\\"isReloading\\\"]],\\\"flat\\\",[25,\\\"action\\\",[[19,0,[]],\\\"reload\\\"],null]]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"text\\\",\\\"isDisabled\\\",\\\"isLoading\\\",\\\"buttonType\\\",\\\"action\\\"],[\\\"Reset\\\",[20,[\\\"isReseting\\\"]],[20,[\\\"isReseting\\\"]],\\\"flat\\\",[25,\\\"action\\\",[[19,0,[]],\\\"reset\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"statistics\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table-responsive\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[7],[0,\\\"SQL Query (click to expand)\\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[7],[0,\\\"Calls\\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[7],[0,\\\"Rows\\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[7],[0,\\\"Total Time\\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[7],[0,\\\"Mean Time\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"unless\\\",[[25,\\\"start-with\\\",[[20,[\\\"db\\\",\\\"readableVersion\\\"]],\\\"9.4.\\\"],null]],null,{\\\"statements\\\":[[0,\\\"                    \\\"],[6,\\\"th\\\"],[7],[0,\\\"Min Time\\\"],[8],[0,\\\"\\\\n                    \\\"],[6,\\\"th\\\"],[7],[0,\\\"Max Time\\\"],[8],[0,\\\"\\\\n                    \\\"],[6,\\\"th\\\"],[7],[0,\\\"Time Stddev\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"                \\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"statistics\\\"]]],null,{\\\"statements\\\":[[0,\\\"                    \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[9,\\\"class\\\",\\\"pg-stat-query\\\"],[7],[0,\\\"\\\\n                        \\\"],[1,[25,\\\"pg-query-statistics-query\\\",null,[[\\\"selectedQuery\\\",\\\"query\\\",\\\"selectionChanged\\\"],[[20,[\\\"selectedQuery\\\"]],[19,1,[\\\"query\\\"]],[25,\\\"action\\\",[[19,0,[]],\\\"selectionChanged\\\"],null]]]],false],[0,\\\"\\\\n                      \\\"],[8],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"calls\\\"]],false],[8],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"rows\\\"]],false],[8],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"formatDuration\\\",[[19,1,[\\\"total_time\\\"]],\\\"millisecond\\\"],null],false],[8],[0,\\\"\\\\n                      \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"formatDuration\\\",[[19,1,[\\\"mean_time\\\"]],\\\"millisecond\\\"],null],false],[8],[0,\\\"\\\\n\\\"],[4,\\\"unless\\\",[[25,\\\"start-with\\\",[[20,[\\\"db\\\",\\\"readableVersion\\\"]],\\\"9.4.\\\"],null]],null,{\\\"statements\\\":[[0,\\\"                        \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"formatDuration\\\",[[19,1,[\\\"min_time\\\"]],\\\"millisecond\\\"],null],false],[8],[0,\\\"\\\\n                        \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"formatDuration\\\",[[19,1,[\\\"max_time\\\"]],\\\"millisecond\\\"],null],false],[8],[0,\\\"\\\\n                        \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"formatDuration\\\",[[19,1,[\\\"stddev_time\\\"]],\\\"millisecond\\\"],null],false],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"                    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"                \\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"em\\\"],[7],[0,\\\"There is not query stats available right now, more requests should be sent to the database.\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col offset-s2 s8\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\",\\\"classNames\\\"],[\\\"PostgreSQL Query Statistics\\\",\\\"small\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n              When the extension \\\"],[6,\\\"code\\\"],[7],[0,\\\"pg_stat_statements\\\"],[8],[0,\\\" is enabled,\\\\n              PostgreSQL gathers statistics on requests you can query afterwards.\\\\n              \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://www.postgresql.org/docs/9.5/static/pgstatstatements.html\\\"],[7],[0,\\\"Documentation\\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n              This extension has some impact on the overall performance of your database,\\\\n              it might, according to your workflow, slightly slow down queries, this is why\\\\n              this option is not enabled by default.\\\\n            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"md-card-action\\\",null,null,{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"text\\\",\\\"action\\\",\\\"isLoading\\\",\\\"isDisabled\\\"],[\\\"Enable Query Statistics\\\",[25,\\\"action\\\",[[19,0,[]],\\\"enable\\\"],null],[20,[\\\"isEnabling\\\"]],[20,[\\\"isEnabling\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/dashboard/pg-query-statistics.hbs\" } });\n});","define(\"database-dashboard/templates/dashboard/pg-running-queries\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"o5fk2YvM\", \"block\": \"{\\\"symbols\\\":[\\\"query\\\"],\\\"statements\\\":[[4,\\\"detail-layout\\\",null,null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"title\\\"],[\\\"Running queries\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 card-controls pg-queries-card-controls\\\"],[7],[0,\\\"\\\\n            \\\"],[1,[25,\\\"sc-md-btn\\\",null,[[\\\"text\\\",\\\"isDisabled\\\",\\\"isLoading\\\",\\\"buttonType\\\",\\\"action\\\"],[\\\"Refresh\\\",[20,[\\\"isRefreshing\\\"]],[20,[\\\"isRefreshing\\\"]],\\\"flat\\\",[25,\\\"action\\\",[[19,0,[]],\\\"reload\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"pg-queries-switch\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"em\\\"],[7],[1,[18,\\\"showIdleQueriesLabel\\\"],false],[8],[0,\\\"\\\\n              \\\"],[1,[25,\\\"md-switch\\\",null,[[\\\"checked\\\"],[[20,[\\\"showIdleQueries\\\"]]]]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"displayedQueries\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"table\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[7],[0,\\\"PID\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[7],[0,\\\"Start Time\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[7],[0,\\\"State\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[7],[0,\\\"Duration\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[7],[0,\\\"Query\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[7],[0,\\\"Username\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[7],[0,\\\"Actions\\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"displayedQueries\\\"]]],null,{\\\"statements\\\":[[0,\\\"                  \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                    \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"pid\\\"]],false],[8],[0,\\\"\\\\n                    \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"toNumericDateTime\\\",[[19,1,[\\\"query_start\\\"]]],null],false],[8],[0,\\\"\\\\n                    \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"state\\\"]],false],[8],[0,\\\"\\\\n                    \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"formatDuration\\\",[[25,\\\"nanoToMilli\\\",[[19,1,[\\\"query_duration\\\"]]],null],\\\"millisecond\\\"],null],false],[8],[0,\\\"\\\\n                    \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"truncate\\\",[[19,1,[\\\"query\\\"]]],[[\\\"limit\\\"],[200]]],false],[8],[0,\\\"\\\\n                    \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"username\\\"]],false],[8],[0,\\\"\\\\n                    \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n                      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row action-buttons\\\"],[7],[0,\\\"\\\\n                        \\\"],[6,\\\"a\\\"],[9,\\\"title\\\",\\\"Cancel query\\\"],[9,\\\"class\\\",\\\"btn btn-small btn-flat\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"cancelQuery\\\",[19,1,[]]],[[\\\"on\\\"],[\\\"click\\\"]]],[7],[0,\\\"\\\\n                          \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons\\\"],[7],[0,\\\"stop\\\"],[8],[0,\\\"\\\\n                        \\\"],[8],[0,\\\"\\\\n                        \\\"],[6,\\\"a\\\"],[9,\\\"title\\\",\\\"Terminate query\\\"],[9,\\\"class\\\",\\\"btn btn-small btn-flat fa fa-times\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"terminateQuery\\\",[19,1,[]]],[[\\\"on\\\"],[\\\"click\\\"]]],[7],[0,\\\"\\\\n                          \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"material-icons\\\"],[7],[0,\\\"clear\\\"],[8],[0,\\\"\\\\n                        \\\"],[8],[0,\\\"\\\\n                      \\\"],[8],[0,\\\"\\\\n                    \\\"],[8],[0,\\\"\\\\n                  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"i\\\"],[7],[0,\\\"There are currently no running query\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"modalIsOpen\\\"]]],null,{\\\"statements\\\":[[4,\\\"md-modal\\\",null,[[\\\"close\\\"],[\\\"closeModal\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"modal-content\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Are you sure ?\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            Are you sure that you want to \\\"],[1,[18,\\\"modalAction\\\"],false],[0,\\\" the following query:\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"code\\\"],[7],[0,\\\"\\\\n            \\\"],[1,[18,\\\"modalQuery\\\"],false],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"modal-footer\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"a\\\"],[9,\\\"class\\\",\\\"modal-action modal-close waves-effect waves-orange btn-flat agree-button\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"modalAccept\\\"]],[7],[0,\\\"\\\\n              Yes\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"a\\\"],[9,\\\"class\\\",\\\"modal-action modal-close waves-effect waves-red btn-flat cancel-button\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"closeModal\\\"]],[7],[0,\\\"\\\\n              Cancel\\\\n          \\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/dashboard/pg-running-queries.hbs\" } });\n});","define(\"database-dashboard/templates/dashboard/users\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"yY0eTxgo\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"detail-layout\\\",null,null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m6 offset-m3\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[25,\\\"user-management\\\",null,[[\\\"db\\\",\\\"store\\\",\\\"users\\\"],[[20,[\\\"db\\\"]],[20,[\\\"store\\\"]],[20,[\\\"users\\\"]]]]],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/dashboard/users.hbs\" } });\n});","define(\"database-dashboard/templates/error\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"1X0aOs6E\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"error-container\\\",null,null,{\\\"statements\\\":[[0,\\\"URL is invalid.\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/error.hbs\" } });\n});","define(\"database-dashboard/templates/loading\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"doLixbU6\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container app-loader\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s6 m4 offset-s3 offset-m4\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"img\\\"],[9,\\\"src\\\",\\\"https://scalingo.com/logo-grey.svg\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/loading.hbs\" } });\n});","define(\"database-dashboard/templates/sso\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"LsaSrNTI\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container fullscreen\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12 m6 offset-m3 l4 offset-l4\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"md-card\\\",null,[[\\\"class\\\"],[\\\"sso\\\"]],{\\\"statements\\\":[[4,\\\"md-card-content\\\",null,null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"title center-align\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://scalingo.com\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"img\\\"],[9,\\\"src\\\",\\\"https://scalingo.com/logo-lightgrey.svg\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col s12\\\"],[7],[0,\\\"\\\\n              \\\"],[1,[18,\\\"ssoStatus\\\"],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/sso.hbs\" } });\n});","define(\"database-dashboard/templates/you-are-lost\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"YmIfgIMh\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"error-container\\\",null,null,{\\\"statements\\\":[[0,\\\"You seem to be lost...\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"database-dashboard/templates/you-are-lost.hbs\" } });\n});","define('database-dashboard/utils/flatten-query-params', ['exports', 'ember-data-url-templates/utils/flatten-query-params'], function (exports, _flattenQueryParams) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _flattenQueryParams.default;\n    }\n  });\n});","define('database-dashboard/utils/listener-name', ['exports', 'ember-keyboard/utils/listener-name'], function (exports, _listenerName) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _listenerName.default;\n    }\n  });\n});","\n","define('database-dashboard/config/environment', [], function() {\n  var prefix = 'database-dashboard';\ntry {\n  var metaName = prefix + '/config/environment';\n  var rawConfig = document.querySelector('meta[name=\"' + metaName + '\"]').getAttribute('content');\n  var config = JSON.parse(unescape(rawConfig));\n\n  var exports = { 'default': config };\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n}\ncatch(err) {\n  throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n});\n","if (!runningTests) {\n  require(\"database-dashboard/app\")[\"default\"].create({\"name\":\"database-dashboard\",\"version\":\"0.0.0\"});\n}\n"],"names":[],"mappings":"AAAA;AACA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACplBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;","file":"database-dashboard.js"}