\";\n return div.innerHTML.indexOf('
') > 0\n}\n\n// #3663: IE encodes newlines inside attribute values while other browsers don't\nvar shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;\n// #6828: chrome encodes content in a[href]\nvar shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;\n\n/* */\n\nvar idToTemplate = cached(function (id) {\n var el = query(id);\n return el && el.innerHTML\n});\n\nvar mount = Vue.prototype.$mount;\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && query(el);\n\n /* istanbul ignore if */\n if (el === document.body || el === document.documentElement) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Do not mount Vue to or - mount to normal elements instead.\"\n );\n return this\n }\n\n var options = this.$options;\n // resolve template/el and convert to render function\n if (!options.render) {\n var template = options.template;\n if (template) {\n if (typeof template === 'string') {\n if (template.charAt(0) === '#') {\n template = idToTemplate(template);\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !template) {\n warn(\n (\"Template element not found or is empty: \" + (options.template)),\n this\n );\n }\n }\n } else if (template.nodeType) {\n template = template.innerHTML;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn('invalid template option:' + template, this);\n }\n return this\n }\n } else if (el) {\n template = getOuterHTML(el);\n }\n if (template) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n mark('compile');\n }\n\n var ref = compileToFunctions(template, {\n shouldDecodeNewlines: shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,\n delimiters: options.delimiters,\n comments: options.comments\n }, this);\n var render = ref.render;\n var staticRenderFns = ref.staticRenderFns;\n options.render = render;\n options.staticRenderFns = staticRenderFns;\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n mark('compile end');\n measure((\"vue \" + (this._name) + \" compile\"), 'compile', 'compile end');\n }\n }\n }\n return mount.call(this, el, hydrating)\n};\n\n/**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\nfunction getOuterHTML (el) {\n if (el.outerHTML) {\n return el.outerHTML\n } else {\n var container = document.createElement('div');\n container.appendChild(el.cloneNode(true));\n return container.innerHTML\n }\n}\n\nVue.compile = compileToFunctions;\n\nexport default Vue;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var core = require('../../modules/_core');\nvar $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });\nmodule.exports = function stringify(it) { // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arDz = moment.defineLocale('ar-dz', {\n months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arDz;\n\n})));\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","module.exports = require(\"core-js/library/fn/array/is-array\");","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var bm = moment.defineLocale('bm', {\n months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),\n monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'MMMM [tile] D [san] YYYY',\n LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'\n },\n calendar : {\n sameDay : '[Bi lɛrɛ] LT',\n nextDay : '[Sini lɛrɛ] LT',\n nextWeek : 'dddd [don lɛrɛ] LT',\n lastDay : '[Kunu lɛrɛ] LT',\n lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s kɔnɔ',\n past : 'a bɛ %s bɔ',\n s : 'sanga dama dama',\n ss : 'sekondi %d',\n m : 'miniti kelen',\n mm : 'miniti %d',\n h : 'lɛrɛ kelen',\n hh : 'lɛrɛ %d',\n d : 'tile kelen',\n dd : 'tile %d',\n M : 'kalo kelen',\n MM : 'kalo %d',\n y : 'san kelen',\n yy : 'san %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return bm;\n\n})));\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n 'dd': 'день_дні_днів',\n 'MM': 'місяць_місяці_місяців',\n 'yy': 'рік_роки_років'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n };\n\n if (m === true) {\n return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n var nounCase = (/(\\[[ВвУу]\\]) ?dddd/).test(format) ?\n 'accusative' :\n ((/\\[?(?:минулої|наступної)? ?\\] ?dddd/).test(format) ?\n 'genitive' :\n 'nominative');\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months : {\n 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n weekdays : weekdaysCaseReplace,\n weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY р.',\n LLL : 'D MMMM YYYY р., HH:mm',\n LLLL : 'dddd, D MMMM YYYY р., HH:mm'\n },\n calendar : {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : '%s тому',\n s : 'декілька секунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'годину',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'місяць',\n MM : relativeTimeWithPlural,\n y : 'рік',\n yy : relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uk;\n\n})));\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar meta = require('./_meta');\nvar fails = require('./_fails');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar setToStringTag = require('./_set-to-string-tag');\nvar dP = require('./_object-dp').f;\nvar each = require('./_array-methods')(0);\nvar DESCRIPTORS = require('./_descriptors');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME, '_c');\n target._c = new Base();\n if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);\n });\n each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {\n anInstance(this, C, KEY);\n if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n IS_WEAK || dP(C.prototype, 'size', {\n get: function () {\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var lo = moment.defineLocale('lo', {\n months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'ວັນdddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar : {\n sameDay : '[ມື້ນີ້ເວລາ] LT',\n nextDay : '[ມື້ອື່ນເວລາ] LT',\n nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay : '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ອີກ %s',\n past : '%sຜ່ານມາ',\n s : 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss : '%d ວິນາທີ' ,\n m : '1 ນາທີ',\n mm : '%d ນາທີ',\n h : '1 ຊົ່ວໂມງ',\n hh : '%d ຊົ່ວໂມງ',\n d : '1 ມື້',\n dd : '%d ມື້',\n M : '1 ເດືອນ',\n MM : '%d ເດືອນ',\n y : '1 ປີ',\n yy : '%d ປີ'\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal : function (number) {\n return 'ທີ່' + number;\n }\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deAt;\n\n})));\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return de;\n\n})));\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'dadkh s yan %s',\n past : 'yan %s',\n s : 'imik',\n ss : '%d imik',\n m : 'minuḍ',\n mm : '%d minuḍ',\n h : 'saɛa',\n hh : '%d tassaɛin',\n d : 'ass',\n dd : '%d ossan',\n M : 'ayowr',\n MM : '%d iyyirn',\n y : 'asgas',\n yy : '%d isgasn'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var jv = moment.defineLocale('jv', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar : {\n sameDay : '[Dinten puniko pukul] LT',\n nextDay : '[Mbenjang pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kala wingi pukul] LT',\n lastWeek : 'dddd [kepengker pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'wonten ing %s',\n past : '%s ingkang kepengker',\n s : 'sawetawis detik',\n ss : '%d detik',\n m : 'setunggal menit',\n mm : '%d menit',\n h : 'setunggal jam',\n hh : '%d jam',\n d : 'sedinten',\n dd : '%d dinten',\n M : 'sewulan',\n MM : '%d wulan',\n y : 'setaun',\n yy : '%d taun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return jv;\n\n})));\n","module.exports = require(\"core-js/library/fn/set\");","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nn = moment.defineLocale('nn', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),\n weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s sidan',\n s : 'nokre sekund',\n ss : '%d sekund',\n m : 'eit minutt',\n mm : '%d minutt',\n h : 'ein time',\n hh : '%d timar',\n d : 'ein dag',\n dd : '%d dagar',\n M : 'ein månad',\n MM : '%d månader',\n y : 'eit år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nn;\n\n})));\n","module.exports = true;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var units = {\n 'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'h': 'stundas_stundām_stunda_stundas'.split('_'),\n 'hh': 'stundas_stundām_stunda_stundas'.split('_'),\n 'd': 'dienas_dienām_diena_dienas'.split('_'),\n 'dd': 'dienas_dienām_diena_dienas'.split('_'),\n 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'y': 'gada_gadiem_gads_gadi'.split('_'),\n 'yy': 'gada_gadiem_gads_gadi'.split('_')\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY.',\n LL : 'YYYY. [gada] D. MMMM',\n LLL : 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n },\n calendar : {\n sameDay : '[Šodien pulksten] LT',\n nextDay : '[Rīt pulksten] LT',\n nextWeek : 'dddd [pulksten] LT',\n lastDay : '[Vakar pulksten] LT',\n lastWeek : '[Pagājušā] dddd [pulksten] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'pēc %s',\n past : 'pirms %s',\n s : relativeSeconds,\n ss : relativeTimeWithPlural,\n m : relativeTimeWithSingular,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithSingular,\n hh : relativeTimeWithPlural,\n d : relativeTimeWithSingular,\n dd : relativeTimeWithPlural,\n M : relativeTimeWithSingular,\n MM : relativeTimeWithPlural,\n y : relativeTimeWithSingular,\n yy : relativeTimeWithPlural\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deCh;\n\n})));\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","module.exports = require('./lib/axios');","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","import _Object$defineProperty from \"../../core-js/object/define-property\";\nexport default function _defineProperty(obj, key, value) {\n if (key in obj) {\n _Object$defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","/* global module */\n'use strict';\n\n/**\n * Class representing the API\n */\nvar SpotifyWebApi = (function() {\n var _baseUri = 'https://api.spotify.com/v1';\n var _accessToken = null;\n var _promiseImplementation = null;\n\n var WrapPromiseWithAbort = function(promise, onAbort) {\n promise.abort = onAbort;\n return promise;\n };\n\n var _promiseProvider = function(promiseFunction, onAbort) {\n var returnedPromise;\n if (_promiseImplementation !== null) {\n var deferred = _promiseImplementation.defer();\n promiseFunction(\n function(resolvedResult) {\n deferred.resolve(resolvedResult);\n },\n function(rejectedResult) {\n deferred.reject(rejectedResult);\n }\n );\n returnedPromise = deferred.promise;\n } else {\n if (window.Promise) {\n returnedPromise = new window.Promise(promiseFunction);\n }\n }\n\n if (returnedPromise) {\n return new WrapPromiseWithAbort(returnedPromise, onAbort);\n } else {\n return null;\n }\n };\n\n var _extend = function() {\n var args = Array.prototype.slice.call(arguments);\n var target = args[0];\n var objects = args.slice(1);\n target = target || {};\n objects.forEach(function(object) {\n for (var j in object) {\n if (object.hasOwnProperty(j)) {\n target[j] = object[j];\n }\n }\n });\n return target;\n };\n\n var _buildUrl = function(url, parameters) {\n var qs = '';\n for (var key in parameters) {\n if (parameters.hasOwnProperty(key)) {\n var value = parameters[key];\n qs += encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&';\n }\n }\n if (qs.length > 0) {\n // chop off last '&'\n qs = qs.substring(0, qs.length - 1);\n url = url + '?' + qs;\n }\n return url;\n };\n\n var _performRequest = function(requestData, callback) {\n var req = new XMLHttpRequest();\n\n var promiseFunction = function(resolve, reject) {\n function success(data) {\n if (resolve) {\n resolve(data);\n }\n if (callback) {\n callback(null, data);\n }\n }\n\n function failure() {\n if (reject) {\n reject(req);\n }\n if (callback) {\n callback(req, null);\n }\n }\n\n var type = requestData.type || 'GET';\n req.open(type, _buildUrl(requestData.url, requestData.params));\n if (_accessToken) {\n req.setRequestHeader('Authorization', 'Bearer ' + _accessToken);\n }\n if (requestData.contentType) {\n req.setRequestHeader('Content-Type', requestData.contentType)\n }\n\n req.onreadystatechange = function() {\n if (req.readyState === 4) {\n var data = null;\n try {\n data = req.responseText ? JSON.parse(req.responseText) : '';\n } catch (e) {\n console.error(e);\n }\n\n if (req.status >= 200 && req.status < 300) {\n success(data);\n } else {\n failure();\n }\n }\n };\n\n if (type === 'GET') {\n req.send(null);\n } else {\n var postData = null\n if (requestData.postData) {\n postData = requestData.contentType === 'image/jpeg' ? requestData.postData : JSON.stringify(requestData.postData)\n }\n req.send(postData);\n }\n };\n\n if (callback) {\n promiseFunction();\n return null;\n } else {\n return _promiseProvider(promiseFunction, function() {\n req.abort();\n });\n }\n };\n\n var _checkParamsAndPerformRequest = function(requestData, options, callback, optionsAlwaysExtendParams) {\n var opt = {};\n var cb = null;\n\n if (typeof options === 'object') {\n opt = options;\n cb = callback;\n } else if (typeof options === 'function') {\n cb = options;\n }\n\n // options extend postData, if any. Otherwise they extend parameters sent in the url\n var type = requestData.type || 'GET';\n if (type !== 'GET' && requestData.postData && !optionsAlwaysExtendParams) {\n requestData.postData = _extend(requestData.postData, opt);\n } else {\n requestData.params = _extend(requestData.params, opt);\n }\n return _performRequest(requestData, cb);\n };\n\n /**\n * Creates an instance of the wrapper\n * @constructor\n */\n var Constr = function() {};\n\n Constr.prototype = {\n constructor: SpotifyWebApi\n };\n\n /**\n * Fetches a resource through a generic GET request.\n *\n * @param {string} url The URL to be fetched\n * @param {function(Object,Object)} callback An optional callback\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.getGeneric = function(url, callback) {\n var requestData = {\n url: url\n };\n return _checkParamsAndPerformRequest(requestData, callback);\n };\n\n /**\n * Fetches information about the current user.\n * See [Get Current User's Profile](https://developer.spotify.com/web-api/get-current-users-profile/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.getMe = function(options, callback) {\n var requestData = {\n url: _baseUri + '/me'\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Fetches current user's saved tracks.\n * See [Get Current User's Saved Tracks](https://developer.spotify.com/web-api/get-users-saved-tracks/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.getMySavedTracks = function(options, callback) {\n var requestData = {\n url: _baseUri + '/me/tracks'\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Adds a list of tracks to the current user's saved tracks.\n * See [Save Tracks for Current User](https://developer.spotify.com/web-api/save-tracks-user/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array
} trackIds The ids of the tracks. If you know their Spotify URI it is easy\n * to find their track id (e.g. spotify:track:)\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.addToMySavedTracks = function(trackIds, options, callback) {\n var requestData = {\n url: _baseUri + '/me/tracks',\n type: 'PUT',\n postData: trackIds\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Remove a list of tracks from the current user's saved tracks.\n * See [Remove Tracks for Current User](https://developer.spotify.com/web-api/remove-tracks-user/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array} trackIds The ids of the tracks. If you know their Spotify URI it is easy\n * to find their track id (e.g. spotify:track:)\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.removeFromMySavedTracks = function(trackIds, options, callback) {\n var requestData = {\n url: _baseUri + '/me/tracks',\n type: 'DELETE',\n postData: trackIds\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Checks if the current user's saved tracks contains a certain list of tracks.\n * See [Check Current User's Saved Tracks](https://developer.spotify.com/web-api/check-users-saved-tracks/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array} trackIds The ids of the tracks. If you know their Spotify URI it is easy\n * to find their track id (e.g. spotify:track:)\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.containsMySavedTracks = function(trackIds, options, callback) {\n var requestData = {\n url: _baseUri + '/me/tracks/contains',\n params: { ids: trackIds.join(',') }\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Get a list of the albums saved in the current Spotify user's \"Your Music\" library.\n * See [Get Current User's Saved Albums](https://developer.spotify.com/web-api/get-users-saved-albums/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.getMySavedAlbums = function(options, callback) {\n var requestData = {\n url: _baseUri + '/me/albums'\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Save one or more albums to the current user's \"Your Music\" library.\n * See [Save Albums for Current User](https://developer.spotify.com/web-api/save-albums-user/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array} albumIds The ids of the albums. If you know their Spotify URI, it is easy\n * to find their album id (e.g. spotify:album:)\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.addToMySavedAlbums = function(albumIds, options, callback) {\n var requestData = {\n url: _baseUri + '/me/albums',\n type: 'PUT',\n postData: albumIds\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Remove one or more albums from the current user's \"Your Music\" library.\n * See [Remove Albums for Current User](https://developer.spotify.com/web-api/remove-albums-user/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array} albumIds The ids of the albums. If you know their Spotify URI, it is easy\n * to find their album id (e.g. spotify:album:)\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.removeFromMySavedAlbums = function(albumIds, options, callback) {\n var requestData = {\n url: _baseUri + '/me/albums',\n type: 'DELETE',\n postData: albumIds\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Check if one or more albums is already saved in the current Spotify user's \"Your Music\" library.\n * See [Check User's Saved Albums](https://developer.spotify.com/web-api/check-users-saved-albums/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array} albumIds The ids of the albums. If you know their Spotify URI, it is easy\n * to find their album id (e.g. spotify:album:)\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.containsMySavedAlbums = function(albumIds, options, callback) {\n var requestData = {\n url: _baseUri + '/me/albums/contains',\n params: { ids: albumIds.join(',') }\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Get the current user’s top artists based on calculated affinity.\n * See [Get a User’s Top Artists](https://developer.spotify.com/web-api/get-users-top-artists-and-tracks/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.getMyTopArtists = function(options, callback) {\n var requestData = {\n url: _baseUri + '/me/top/artists'\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Get the current user’s top tracks based on calculated affinity.\n * See [Get a User’s Top Tracks](https://developer.spotify.com/web-api/get-users-top-artists-and-tracks/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.getMyTopTracks = function(options, callback) {\n var requestData = {\n url: _baseUri + '/me/top/tracks'\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Get tracks from the current user’s recently played tracks.\n * See [Get Current User’s Recently Played Tracks](https://developer.spotify.com/web-api/web-api-personalization-endpoints/get-recently-played/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.getMyRecentlyPlayedTracks = function(options, callback) {\n var requestData = {\n url: _baseUri + '/me/player/recently-played'\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Adds the current user as a follower of one or more other Spotify users.\n * See [Follow Artists or Users](https://developer.spotify.com/web-api/follow-artists-users/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array} userIds The ids of the users. If you know their Spotify URI it is easy\n * to find their user id (e.g. spotify:user:)\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is an empty value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.followUsers = function(userIds, callback) {\n var requestData = {\n url: _baseUri + '/me/following/',\n type: 'PUT',\n params: {\n ids: userIds.join(','),\n type: 'user'\n }\n };\n return _checkParamsAndPerformRequest(requestData, callback);\n };\n\n /**\n * Adds the current user as a follower of one or more artists.\n * See [Follow Artists or Users](https://developer.spotify.com/web-api/follow-artists-users/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array} artistIds The ids of the artists. If you know their Spotify URI it is easy\n * to find their artist id (e.g. spotify:artist:)\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is an empty value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.followArtists = function(artistIds, callback) {\n var requestData = {\n url: _baseUri + '/me/following/',\n type: 'PUT',\n params: {\n ids: artistIds.join(','),\n type: 'artist'\n }\n };\n return _checkParamsAndPerformRequest(requestData, callback);\n };\n\n /**\n * Add the current user as a follower of one playlist.\n * See [Follow a Playlist](https://developer.spotify.com/web-api/follow-playlist/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} playlistId The id of the playlist. If you know the Spotify URI it is easy\n * to find the playlist id (e.g. spotify:user:xxxx:playlist:)\n * @param {Object} options A JSON object with options that can be passed. For instance,\n * whether you want the playlist to be followed privately ({public: false})\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is an empty value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.followPlaylist = function(playlistId, options, callback) {\n var requestData = {\n url: _baseUri + '/playlists/' + playlistId + '/followers',\n type: 'PUT',\n postData: {}\n };\n\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Removes the current user as a follower of one or more other Spotify users.\n * See [Unfollow Artists or Users](https://developer.spotify.com/web-api/unfollow-artists-users/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array} userIds The ids of the users. If you know their Spotify URI it is easy\n * to find their user id (e.g. spotify:user:)\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is an empty value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.unfollowUsers = function(userIds, callback) {\n var requestData = {\n url: _baseUri + '/me/following/',\n type: 'DELETE',\n params: {\n ids: userIds.join(','),\n type: 'user'\n }\n };\n return _checkParamsAndPerformRequest(requestData, callback);\n };\n\n /**\n * Removes the current user as a follower of one or more artists.\n * See [Unfollow Artists or Users](https://developer.spotify.com/web-api/unfollow-artists-users/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array} artistIds The ids of the artists. If you know their Spotify URI it is easy\n * to find their artist id (e.g. spotify:artist:)\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is an empty value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.unfollowArtists = function(artistIds, callback) {\n var requestData = {\n url: _baseUri + '/me/following/',\n type: 'DELETE',\n params: {\n ids: artistIds.join(','),\n type: 'artist'\n }\n };\n return _checkParamsAndPerformRequest(requestData, callback);\n };\n\n /**\n * Remove the current user as a follower of one playlist.\n * See [Unfollow a Playlist](https://developer.spotify.com/web-api/unfollow-playlist/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} playlistId The id of the playlist. If you know the Spotify URI it is easy\n * to find the playlist id (e.g. spotify:user:xxxx:playlist:)\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is an empty value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.unfollowPlaylist = function(playlistId, callback) {\n var requestData = {\n url: _baseUri + '/playlists/' + playlistId + '/followers',\n type: 'DELETE'\n };\n return _checkParamsAndPerformRequest(requestData, callback);\n };\n\n /**\n * Checks to see if the current user is following one or more other Spotify users.\n * See [Check if Current User Follows Users or Artists](https://developer.spotify.com/web-api/check-current-user-follows/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array} userIds The ids of the users. If you know their Spotify URI it is easy\n * to find their user id (e.g. spotify:user:)\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is an array of boolean values that indicate\n * whether the user is following the users sent in the request.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.isFollowingUsers = function(userIds, callback) {\n var requestData = {\n url: _baseUri + '/me/following/contains',\n type: 'GET',\n params: {\n ids: userIds.join(','),\n type: 'user'\n }\n };\n return _checkParamsAndPerformRequest(requestData, callback);\n };\n\n /**\n * Checks to see if the current user is following one or more artists.\n * See [Check if Current User Follows](https://developer.spotify.com/web-api/check-current-user-follows/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Array} artistIds The ids of the artists. If you know their Spotify URI it is easy\n * to find their artist id (e.g. spotify:artist:)\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is an array of boolean values that indicate\n * whether the user is following the artists sent in the request.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.isFollowingArtists = function(artistIds, callback) {\n var requestData = {\n url: _baseUri + '/me/following/contains',\n type: 'GET',\n params: {\n ids: artistIds.join(','),\n type: 'artist'\n }\n };\n return _checkParamsAndPerformRequest(requestData, callback);\n };\n\n /**\n * Check to see if one or more Spotify users are following a specified playlist.\n * See [Check if Users Follow a Playlist](https://developer.spotify.com/web-api/check-user-following-playlist/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} playlistId The id of the playlist. If you know the Spotify URI it is easy\n * to find the playlist id (e.g. spotify:user:xxxx:playlist:)\n * @param {Array} userIds The ids of the users. If you know their Spotify URI it is easy\n * to find their user id (e.g. spotify:user:)\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is an array of boolean values that indicate\n * whether the users are following the playlist sent in the request.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.areFollowingPlaylist = function(playlistId, userIds, callback) {\n var requestData = {\n url: _baseUri + '/playlists/' + playlistId + '/followers/contains',\n type: 'GET',\n params: {\n ids: userIds.join(',')\n }\n };\n return _checkParamsAndPerformRequest(requestData, callback);\n };\n\n /**\n * Get the current user's followed artists.\n * See [Get User's Followed Artists](https://developer.spotify.com/web-api/get-followed-artists/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Object} [options] Options, being after and limit.\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is an object with a paged object containing\n * artists.\n * @returns {Promise|undefined} A promise that if successful, resolves to an object containing a paging object which contains\n * artists objects. Not returned if a callback is given.\n */\n Constr.prototype.getFollowedArtists = function(options, callback) {\n var requestData = {\n url: _baseUri + '/me/following',\n type: 'GET',\n params: {\n type: 'artist'\n }\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Fetches information about a specific user.\n * See [Get a User's Profile](https://developer.spotify.com/web-api/get-users-profile/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} userId The id of the user. If you know the Spotify URI it is easy\n * to find the id (e.g. spotify:user:)\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.getUser = function(userId, options, callback) {\n var requestData = {\n url: _baseUri + '/users/' + encodeURIComponent(userId)\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Fetches a list of the current user's playlists.\n * See [Get a List of a User's Playlists](https://developer.spotify.com/web-api/get-list-users-playlists/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} userId An optional id of the user. If you know the Spotify URI it is easy\n * to find the id (e.g. spotify:user:). If not provided, the id of the user that granted\n * the permissions will be used.\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.getUserPlaylists = function(userId, options, callback) {\n var requestData;\n if (typeof userId === 'string') {\n requestData = {\n url: _baseUri + '/users/' + encodeURIComponent(userId) + '/playlists'\n };\n } else {\n requestData = {\n url: _baseUri + '/me/playlists'\n };\n callback = options;\n options = userId;\n }\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Fetches a specific playlist.\n * See [Get a Playlist](https://developer.spotify.com/web-api/get-playlist/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} playlistId The id of the playlist. If you know the Spotify URI it is easy\n * to find the playlist id (e.g. spotify:user:xxxx:playlist:)\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.getPlaylist = function(playlistId, options, callback) {\n var requestData = {\n url: _baseUri + '/playlists/' + playlistId\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Fetches the tracks from a specific playlist.\n * See [Get a Playlist's Tracks](https://developer.spotify.com/web-api/get-playlists-tracks/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} playlistId The id of the playlist. If you know the Spotify URI it is easy\n * to find the playlist id (e.g. spotify:user:xxxx:playlist:)\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.getPlaylistTracks = function(playlistId, options, callback) {\n var requestData = {\n url: _baseUri + '/playlists/' + playlistId + '/tracks'\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Creates a playlist and stores it in the current user's library.\n * See [Create a Playlist](https://developer.spotify.com/web-api/create-playlist/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.createPlaylist = function(options, callback) {\n var requestData = {\n url: _baseUri + '/me/playlists',\n type: 'POST',\n postData: options\n };\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Change a playlist's name and public/private state\n * See [Change a Playlist's Details](https://developer.spotify.com/web-api/change-playlist-details/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} playlistId The id of the playlist. If you know the Spotify URI it is easy\n * to find the playlist id (e.g. spotify:user:xxxx:playlist:)\n * @param {Object} data A JSON object with the data to update. E.g. {name: 'A new name', public: true}\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.changePlaylistDetails = function(playlistId, data, callback) {\n var requestData = {\n url: _baseUri + '/playlists/' + playlistId,\n type: 'PUT',\n postData: data\n };\n return _checkParamsAndPerformRequest(requestData, data, callback);\n };\n\n /**\n * Add tracks to a playlist.\n * See [Add Tracks to a Playlist](https://developer.spotify.com/web-api/add-tracks-to-playlist/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} playlistId The id of the playlist. If you know the Spotify URI it is easy\n * to find the playlist id (e.g. spotify:user:xxxx:playlist:)\n * @param {Array} uris An array of Spotify URIs for the tracks\n * @param {Object} options A JSON object with options that can be passed\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.addTracksToPlaylist = function(playlistId, uris, options, callback) {\n var requestData = {\n url: _baseUri + '/playlists/' + playlistId + '/tracks',\n type: 'POST',\n postData: {\n uris: uris\n }\n };\n return _checkParamsAndPerformRequest(requestData, options, callback, true);\n };\n\n /**\n * Replace the tracks of a playlist\n * See [Replace a Playlist's Tracks](https://developer.spotify.com/web-api/replace-playlists-tracks/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} playlistId The id of the playlist. If you know the Spotify URI it is easy\n * to find the playlist id (e.g. spotify:user:xxxx:playlist:)\n * @param {Array} uris An array of Spotify URIs for the tracks\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.replaceTracksInPlaylist = function(playlistId, uris, callback) {\n var requestData = {\n url: _baseUri + '/playlists/' + playlistId + '/tracks',\n type: 'PUT',\n postData: { uris: uris }\n };\n return _checkParamsAndPerformRequest(requestData, {}, callback);\n };\n\n /**\n * Reorder tracks in a playlist\n * See [Reorder a Playlist’s Tracks](https://developer.spotify.com/web-api/reorder-playlists-tracks/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} playlistId The id of the playlist. If you know the Spotify URI it is easy\n * to find the playlist id (e.g. spotify:user:xxxx:playlist:)\n * @param {number} rangeStart The position of the first track to be reordered.\n * @param {number} insertBefore The position where the tracks should be inserted. To reorder the tracks to\n * the end of the playlist, simply set insert_before to the position after the last track.\n * @param {Object} options An object with optional parameters (range_length, snapshot_id)\n * @param {function(Object,Object)} callback An optional callback that receives 2 parameters. The first\n * one is the error object (null if no error), and the second is the value if the request succeeded.\n * @return {Object} Null if a callback is provided, a `Promise` object otherwise\n */\n Constr.prototype.reorderTracksInPlaylist = function(playlistId, rangeStart, insertBefore, options, callback) {\n /* eslint-disable camelcase */\n var requestData = {\n url: _baseUri + '/playlists/' + playlistId + '/tracks',\n type: 'PUT',\n postData: {\n range_start: rangeStart,\n insert_before: insertBefore\n }\n };\n /* eslint-enable camelcase */\n return _checkParamsAndPerformRequest(requestData, options, callback);\n };\n\n /**\n * Remove tracks from a playlist\n * See [Remove Tracks from a Playlist](https://developer.spotify.com/web-api/remove-tracks-playlist/) on\n * the Spotify Developer site for more information about the endpoint.\n *\n * @param {string} playlistId The id of the playlist. If you know the Spotify URI it is easy\n * to find the playlist id (e.g. spotify:user:xxxx:playlist:)\n * @param {Array