{"version":3,"sources":["fetch.js","promise.js","index.js","svg4everybody.js","svg4everybody.legacy.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CC7XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CCv8BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IC5FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IF9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"polyfill-generated.js","sourcesContent":["(function() {\r\n 'use strict';\r\n\r\n if (self.fetch) {\r\n return\r\n }\r\n\r\n function normalizeName(name) {\r\n if (typeof name !== 'string') {\r\n name = String(name)\r\n }\r\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\r\n throw new TypeError('Invalid character in header field name')\r\n }\r\n return name.toLowerCase()\r\n }\r\n\r\n function normalizeValue(value) {\r\n if (typeof value !== 'string') {\r\n value = String(value)\r\n }\r\n return value\r\n }\r\n\r\n function Headers(headers) {\r\n this.map = {}\r\n\r\n if (headers instanceof Headers) {\r\n headers.forEach(function(value, name) {\r\n this.append(name, value)\r\n }, this)\r\n\r\n } else if (headers) {\r\n Object.getOwnPropertyNames(headers).forEach(function(name) {\r\n this.append(name, headers[name])\r\n }, this)\r\n }\r\n }\r\n\r\n Headers.prototype.append = function(name, value) {\r\n name = normalizeName(name)\r\n value = normalizeValue(value)\r\n var list = this.map[name]\r\n if (!list) {\r\n list = []\r\n this.map[name] = list\r\n }\r\n list.push(value)\r\n }\r\n\r\n Headers.prototype['delete'] = function(name) {\r\n delete this.map[normalizeName(name)]\r\n }\r\n\r\n Headers.prototype.get = function(name) {\r\n var values = this.map[normalizeName(name)]\r\n return values ? values[0] : null\r\n }\r\n\r\n Headers.prototype.getAll = function(name) {\r\n return this.map[normalizeName(name)] || []\r\n }\r\n\r\n Headers.prototype.has = function(name) {\r\n return this.map.hasOwnProperty(normalizeName(name))\r\n }\r\n\r\n Headers.prototype.set = function(name, value) {\r\n this.map[normalizeName(name)] = [normalizeValue(value)]\r\n }\r\n\r\n Headers.prototype.forEach = function(callback, thisArg) {\r\n Object.getOwnPropertyNames(this.map).forEach(function(name) {\r\n this.map[name].forEach(function(value) {\r\n callback.call(thisArg, value, name, this)\r\n }, this)\r\n }, this)\r\n }\r\n\r\n function consumed(body) {\r\n if (body.bodyUsed) {\r\n return Promise.reject(new TypeError('Already read'))\r\n }\r\n body.bodyUsed = true\r\n }\r\n\r\n function fileReaderReady(reader) {\r\n return new Promise(function(resolve, reject) {\r\n reader.onload = function() {\r\n resolve(reader.result)\r\n }\r\n reader.onerror = function() {\r\n reject(reader.error)\r\n }\r\n })\r\n }\r\n\r\n function readBlobAsArrayBuffer(blob) {\r\n var reader = new FileReader()\r\n reader.readAsArrayBuffer(blob)\r\n return fileReaderReady(reader)\r\n }\r\n\r\n function readBlobAsText(blob) {\r\n var reader = new FileReader()\r\n reader.readAsText(blob)\r\n return fileReaderReady(reader)\r\n }\r\n\r\n var support = {\r\n blob: 'FileReader' in self && 'Blob' in self && (function() {\r\n try {\r\n new Blob();\r\n return true\r\n } catch(e) {\r\n return false\r\n }\r\n })(),\r\n formData: 'FormData' in self,\r\n arrayBuffer: 'ArrayBuffer' in self\r\n }\r\n\r\n function Body() {\r\n this.bodyUsed = false\r\n\r\n\r\n this._initBody = function(body) {\r\n this._bodyInit = body\r\n if (typeof body === 'string') {\r\n this._bodyText = body\r\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\r\n this._bodyBlob = body\r\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\r\n this._bodyFormData = body\r\n } else if (!body) {\r\n this._bodyText = ''\r\n } else if (support.arrayBuffer && ArrayBuffer.prototype.isPrototypeOf(body)) {\r\n // Only support ArrayBuffers for POST method.\r\n // Receiving ArrayBuffers happens via Blobs, instead.\r\n } else {\r\n throw new Error('unsupported BodyInit type')\r\n }\r\n }\r\n\r\n if (support.blob) {\r\n this.blob = function() {\r\n var rejected = consumed(this)\r\n if (rejected) {\r\n return rejected\r\n }\r\n\r\n if (this._bodyBlob) {\r\n return Promise.resolve(this._bodyBlob)\r\n } else if (this._bodyFormData) {\r\n throw new Error('could not read FormData body as blob')\r\n } else {\r\n return Promise.resolve(new Blob([this._bodyText]))\r\n }\r\n }\r\n\r\n this.arrayBuffer = function() {\r\n return this.blob().then(readBlobAsArrayBuffer)\r\n }\r\n\r\n this.text = function() {\r\n var rejected = consumed(this)\r\n if (rejected) {\r\n return rejected\r\n }\r\n\r\n if (this._bodyBlob) {\r\n return readBlobAsText(this._bodyBlob)\r\n } else if (this._bodyFormData) {\r\n throw new Error('could not read FormData body as text')\r\n } else {\r\n return Promise.resolve(this._bodyText)\r\n }\r\n }\r\n } else {\r\n this.text = function() {\r\n var rejected = consumed(this)\r\n return rejected ? rejected : Promise.resolve(this._bodyText)\r\n }\r\n }\r\n\r\n if (support.formData) {\r\n this.formData = function() {\r\n return this.text().then(decode)\r\n }\r\n }\r\n\r\n this.json = function() {\r\n return this.text().then(JSON.parse)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // HTTP methods whose capitalization should be normalized\r\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\r\n\r\n function normalizeMethod(method) {\r\n var upcased = method.toUpperCase()\r\n return (methods.indexOf(upcased) > -1) ? upcased : method\r\n }\r\n\r\n function Request(input, options) {\r\n options = options || {}\r\n var body = options.body\r\n if (Request.prototype.isPrototypeOf(input)) {\r\n if (input.bodyUsed) {\r\n throw new TypeError('Already read')\r\n }\r\n this.url = input.url\r\n this.credentials = input.credentials\r\n if (!options.headers) {\r\n this.headers = new Headers(input.headers)\r\n }\r\n this.method = input.method\r\n this.mode = input.mode\r\n if (!body) {\r\n body = input._bodyInit\r\n input.bodyUsed = true\r\n }\r\n } else {\r\n this.url = input\r\n }\r\n\r\n this.credentials = options.credentials || this.credentials || 'omit'\r\n if (options.headers || !this.headers) {\r\n this.headers = new Headers(options.headers)\r\n }\r\n this.method = normalizeMethod(options.method || this.method || 'GET')\r\n this.mode = options.mode || this.mode || null\r\n this.referrer = null\r\n\r\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\r\n throw new TypeError('Body not allowed for GET or HEAD requests')\r\n }\r\n this._initBody(body)\r\n }\r\n\r\n Request.prototype.clone = function() {\r\n return new Request(this)\r\n }\r\n\r\n function decode(body) {\r\n var form = new FormData()\r\n body.trim().split('&').forEach(function(bytes) {\r\n if (bytes) {\r\n var split = bytes.split('=')\r\n var name = split.shift().replace(/\\+/g, ' ')\r\n var value = split.join('=').replace(/\\+/g, ' ')\r\n form.append(decodeURIComponent(name), decodeURIComponent(value))\r\n }\r\n })\r\n return form\r\n }\r\n\r\n function headers(xhr) {\r\n var head = new Headers()\r\n var pairs = xhr.getAllResponseHeaders().trim().split('\\n')\r\n pairs.forEach(function(header) {\r\n var split = header.trim().split(':')\r\n var key = split.shift().trim()\r\n var value = split.join(':').trim()\r\n head.append(key, value)\r\n })\r\n return head\r\n }\r\n\r\n Body.call(Request.prototype)\r\n\r\n function Response(bodyInit, options) {\r\n if (!options) {\r\n options = {}\r\n }\r\n\r\n this._initBody(bodyInit)\r\n this.type = 'default'\r\n this.status = options.status\r\n this.ok = this.status >= 200 && this.status < 300\r\n this.statusText = options.statusText\r\n this.headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers)\r\n this.url = options.url || ''\r\n }\r\n\r\n Body.call(Response.prototype)\r\n\r\n Response.prototype.clone = function() {\r\n return new Response(this._bodyInit, {\r\n status: this.status,\r\n statusText: this.statusText,\r\n headers: new Headers(this.headers),\r\n url: this.url\r\n })\r\n }\r\n\r\n Response.error = function() {\r\n var response = new Response(null, {status: 0, statusText: ''})\r\n response.type = 'error'\r\n return response\r\n }\r\n\r\n var redirectStatuses = [301, 302, 303, 307, 308]\r\n\r\n Response.redirect = function(url, status) {\r\n if (redirectStatuses.indexOf(status) === -1) {\r\n throw new RangeError('Invalid status code')\r\n }\r\n\r\n return new Response(null, {status: status, headers: {location: url}})\r\n }\r\n\r\n self.Headers = Headers;\r\n self.Request = Request;\r\n self.Response = Response;\r\n\r\n self.fetch = function(input, init) {\r\n return new Promise(function(resolve, reject) {\r\n var request\r\n if (Request.prototype.isPrototypeOf(input) && !init) {\r\n request = input\r\n } else {\r\n request = new Request(input, init)\r\n }\r\n\r\n var xhr = new XMLHttpRequest()\r\n\r\n function responseURL() {\r\n if ('responseURL' in xhr) {\r\n return xhr.responseURL\r\n }\r\n\r\n // Avoid security warnings on getResponseHeader when not allowed by CORS\r\n if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) {\r\n return xhr.getResponseHeader('X-Request-URL')\r\n }\r\n\r\n return;\r\n }\r\n\r\n xhr.onload = function() {\r\n var status = (xhr.status === 1223) ? 204 : xhr.status\r\n if (status < 100 || status > 599) {\r\n reject(new TypeError('Network request failed'))\r\n return\r\n }\r\n var options = {\r\n status: status,\r\n statusText: xhr.statusText,\r\n headers: headers(xhr),\r\n url: responseURL()\r\n }\r\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\r\n resolve(new Response(body, options))\r\n }\r\n\r\n xhr.onerror = function() {\r\n reject(new TypeError('Network request failed'))\r\n }\r\n\r\n xhr.open(request.method, request.url, true)\r\n\r\n if (request.credentials === 'include') {\r\n xhr.withCredentials = true\r\n }\r\n\r\n if ('responseType' in xhr && support.blob) {\r\n xhr.responseType = 'blob'\r\n }\r\n\r\n request.headers.forEach(function(value, name) {\r\n xhr.setRequestHeader(name, value)\r\n })\r\n\r\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\r\n })\r\n }\r\n self.fetch.polyfill = true\r\n})();\r\n","/*!\r\n * @overview es6-promise - a tiny implementation of Promises/A+.\r\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\r\n * @license Licensed under MIT license\r\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\r\n * @version 3.0.2\r\n */\r\n\r\n(function() {\r\n \"use strict\";\r\n function lib$es6$promise$utils$$objectOrFunction(x) {\r\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\r\n }\r\n\r\n function lib$es6$promise$utils$$isFunction(x) {\r\n return typeof x === 'function';\r\n }\r\n\r\n function lib$es6$promise$utils$$isMaybeThenable(x) {\r\n return typeof x === 'object' && x !== null;\r\n }\r\n\r\n var lib$es6$promise$utils$$_isArray;\r\n if (!Array.isArray) {\r\n lib$es6$promise$utils$$_isArray = function (x) {\r\n return Object.prototype.toString.call(x) === '[object Array]';\r\n };\r\n } else {\r\n lib$es6$promise$utils$$_isArray = Array.isArray;\r\n }\r\n\r\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\r\n var lib$es6$promise$asap$$len = 0;\r\n var lib$es6$promise$asap$$toString = {}.toString;\r\n var lib$es6$promise$asap$$vertxNext;\r\n var lib$es6$promise$asap$$customSchedulerFn;\r\n\r\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\r\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\r\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\r\n lib$es6$promise$asap$$len += 2;\r\n if (lib$es6$promise$asap$$len === 2) {\r\n // If len is 2, that means that we need to schedule an async flush.\r\n // If additional callbacks are queued before the queue is flushed, they\r\n // will be processed by this flush that we are scheduling.\r\n if (lib$es6$promise$asap$$customSchedulerFn) {\r\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\r\n } else {\r\n lib$es6$promise$asap$$scheduleFlush();\r\n }\r\n }\r\n }\r\n\r\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\r\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\r\n }\r\n\r\n function lib$es6$promise$asap$$setAsap(asapFn) {\r\n lib$es6$promise$asap$$asap = asapFn;\r\n }\r\n\r\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\r\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\r\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\r\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\r\n\r\n // test for web worker but not in IE10\r\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\r\n typeof importScripts !== 'undefined' &&\r\n typeof MessageChannel !== 'undefined';\r\n\r\n // node\r\n function lib$es6$promise$asap$$useNextTick() {\r\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\r\n // see https://github.com/cujojs/when/issues/410 for details\r\n return function() {\r\n process.nextTick(lib$es6$promise$asap$$flush);\r\n };\r\n }\r\n\r\n // vertx\r\n function lib$es6$promise$asap$$useVertxTimer() {\r\n return function() {\r\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\r\n };\r\n }\r\n\r\n function lib$es6$promise$asap$$useMutationObserver() {\r\n var iterations = 0;\r\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\r\n var node = document.createTextNode('');\r\n observer.observe(node, { characterData: true });\r\n\r\n return function() {\r\n node.data = (iterations = ++iterations % 2);\r\n };\r\n }\r\n\r\n // web worker\r\n function lib$es6$promise$asap$$useMessageChannel() {\r\n var channel = new MessageChannel();\r\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\r\n return function () {\r\n channel.port2.postMessage(0);\r\n };\r\n }\r\n\r\n function lib$es6$promise$asap$$useSetTimeout() {\r\n return function() {\r\n setTimeout(lib$es6$promise$asap$$flush, 1);\r\n };\r\n }\r\n\r\n var lib$es6$promise$asap$$queue = new Array(1000);\r\n function lib$es6$promise$asap$$flush() {\r\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\r\n var callback = lib$es6$promise$asap$$queue[i];\r\n var arg = lib$es6$promise$asap$$queue[i+1];\r\n\r\n callback(arg);\r\n\r\n lib$es6$promise$asap$$queue[i] = undefined;\r\n lib$es6$promise$asap$$queue[i+1] = undefined;\r\n }\r\n\r\n lib$es6$promise$asap$$len = 0;\r\n }\r\n\r\n function lib$es6$promise$asap$$attemptVertx() {\r\n try {\r\n var r = require;\r\n var vertx = r('vertx');\r\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\r\n return lib$es6$promise$asap$$useVertxTimer();\r\n } catch(e) {\r\n return lib$es6$promise$asap$$useSetTimeout();\r\n }\r\n }\r\n\r\n var lib$es6$promise$asap$$scheduleFlush;\r\n // Decide what async method to use to triggering processing of queued callbacks:\r\n if (lib$es6$promise$asap$$isNode) {\r\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\r\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\r\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\r\n } else if (lib$es6$promise$asap$$isWorker) {\r\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\r\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\r\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\r\n } else {\r\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\r\n }\r\n\r\n function lib$es6$promise$$internal$$noop() {}\r\n\r\n var lib$es6$promise$$internal$$PENDING = void 0;\r\n var lib$es6$promise$$internal$$FULFILLED = 1;\r\n var lib$es6$promise$$internal$$REJECTED = 2;\r\n\r\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\r\n\r\n function lib$es6$promise$$internal$$selfFulfillment() {\r\n return new TypeError(\"You cannot resolve a promise with itself\");\r\n }\r\n\r\n function lib$es6$promise$$internal$$cannotReturnOwn() {\r\n return new TypeError('A promises callback cannot return that same promise.');\r\n }\r\n\r\n function lib$es6$promise$$internal$$getThen(promise) {\r\n try {\r\n return promise.then;\r\n } catch(error) {\r\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\r\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\r\n try {\r\n then.call(value, fulfillmentHandler, rejectionHandler);\r\n } catch(e) {\r\n return e;\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\r\n lib$es6$promise$asap$$asap(function(promise) {\r\n var sealed = false;\r\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\r\n if (sealed) { return; }\r\n sealed = true;\r\n if (thenable !== value) {\r\n lib$es6$promise$$internal$$resolve(promise, value);\r\n } else {\r\n lib$es6$promise$$internal$$fulfill(promise, value);\r\n }\r\n }, function(reason) {\r\n if (sealed) { return; }\r\n sealed = true;\r\n\r\n lib$es6$promise$$internal$$reject(promise, reason);\r\n }, 'Settle: ' + (promise._label || ' unknown promise'));\r\n\r\n if (!sealed && error) {\r\n sealed = true;\r\n lib$es6$promise$$internal$$reject(promise, error);\r\n }\r\n }, promise);\r\n }\r\n\r\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\r\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\r\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\r\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\r\n lib$es6$promise$$internal$$reject(promise, thenable._result);\r\n } else {\r\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\r\n lib$es6$promise$$internal$$resolve(promise, value);\r\n }, function(reason) {\r\n lib$es6$promise$$internal$$reject(promise, reason);\r\n });\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable) {\r\n if (maybeThenable.constructor === promise.constructor) {\r\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\r\n } else {\r\n var then = lib$es6$promise$$internal$$getThen(maybeThenable);\r\n\r\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\r\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\r\n } else if (then === undefined) {\r\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\r\n } else if (lib$es6$promise$utils$$isFunction(then)) {\r\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\r\n } else {\r\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\r\n }\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$resolve(promise, value) {\r\n if (promise === value) {\r\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\r\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\r\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value);\r\n } else {\r\n lib$es6$promise$$internal$$fulfill(promise, value);\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$publishRejection(promise) {\r\n if (promise._onerror) {\r\n promise._onerror(promise._result);\r\n }\r\n\r\n lib$es6$promise$$internal$$publish(promise);\r\n }\r\n\r\n function lib$es6$promise$$internal$$fulfill(promise, value) {\r\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\r\n\r\n promise._result = value;\r\n promise._state = lib$es6$promise$$internal$$FULFILLED;\r\n\r\n if (promise._subscribers.length !== 0) {\r\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$reject(promise, reason) {\r\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\r\n promise._state = lib$es6$promise$$internal$$REJECTED;\r\n promise._result = reason;\r\n\r\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\r\n }\r\n\r\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\r\n var subscribers = parent._subscribers;\r\n var length = subscribers.length;\r\n\r\n parent._onerror = null;\r\n\r\n subscribers[length] = child;\r\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\r\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\r\n\r\n if (length === 0 && parent._state) {\r\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$publish(promise) {\r\n var subscribers = promise._subscribers;\r\n var settled = promise._state;\r\n\r\n if (subscribers.length === 0) { return; }\r\n\r\n var child, callback, detail = promise._result;\r\n\r\n for (var i = 0; i < subscribers.length; i += 3) {\r\n child = subscribers[i];\r\n callback = subscribers[i + settled];\r\n\r\n if (child) {\r\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\r\n } else {\r\n callback(detail);\r\n }\r\n }\r\n\r\n promise._subscribers.length = 0;\r\n }\r\n\r\n function lib$es6$promise$$internal$$ErrorObject() {\r\n this.error = null;\r\n }\r\n\r\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\r\n\r\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\r\n try {\r\n return callback(detail);\r\n } catch(e) {\r\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\r\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\r\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\r\n value, error, succeeded, failed;\r\n\r\n if (hasCallback) {\r\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\r\n\r\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\r\n failed = true;\r\n error = value.error;\r\n value = null;\r\n } else {\r\n succeeded = true;\r\n }\r\n\r\n if (promise === value) {\r\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\r\n return;\r\n }\r\n\r\n } else {\r\n value = detail;\r\n succeeded = true;\r\n }\r\n\r\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\r\n // noop\r\n } else if (hasCallback && succeeded) {\r\n lib$es6$promise$$internal$$resolve(promise, value);\r\n } else if (failed) {\r\n lib$es6$promise$$internal$$reject(promise, error);\r\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\r\n lib$es6$promise$$internal$$fulfill(promise, value);\r\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\r\n lib$es6$promise$$internal$$reject(promise, value);\r\n }\r\n }\r\n\r\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\r\n try {\r\n resolver(function resolvePromise(value){\r\n lib$es6$promise$$internal$$resolve(promise, value);\r\n }, function rejectPromise(reason) {\r\n lib$es6$promise$$internal$$reject(promise, reason);\r\n });\r\n } catch(e) {\r\n lib$es6$promise$$internal$$reject(promise, e);\r\n }\r\n }\r\n\r\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\r\n var enumerator = this;\r\n\r\n enumerator._instanceConstructor = Constructor;\r\n enumerator.promise = new Constructor(lib$es6$promise$$internal$$noop);\r\n\r\n if (enumerator._validateInput(input)) {\r\n enumerator._input = input;\r\n enumerator.length = input.length;\r\n enumerator._remaining = input.length;\r\n\r\n enumerator._init();\r\n\r\n if (enumerator.length === 0) {\r\n lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);\r\n } else {\r\n enumerator.length = enumerator.length || 0;\r\n enumerator._enumerate();\r\n if (enumerator._remaining === 0) {\r\n lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);\r\n }\r\n }\r\n } else {\r\n lib$es6$promise$$internal$$reject(enumerator.promise, enumerator._validationError());\r\n }\r\n }\r\n\r\n lib$es6$promise$enumerator$$Enumerator.prototype._validateInput = function(input) {\r\n return lib$es6$promise$utils$$isArray(input);\r\n };\r\n\r\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\r\n return new Error('Array Methods must be provided an Array');\r\n };\r\n\r\n lib$es6$promise$enumerator$$Enumerator.prototype._init = function() {\r\n this._result = new Array(this.length);\r\n };\r\n\r\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\r\n\r\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\r\n var enumerator = this;\r\n\r\n var length = enumerator.length;\r\n var promise = enumerator.promise;\r\n var input = enumerator._input;\r\n\r\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\r\n enumerator._eachEntry(input[i], i);\r\n }\r\n };\r\n\r\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\r\n var enumerator = this;\r\n var c = enumerator._instanceConstructor;\r\n\r\n if (lib$es6$promise$utils$$isMaybeThenable(entry)) {\r\n if (entry.constructor === c && entry._state !== lib$es6$promise$$internal$$PENDING) {\r\n entry._onerror = null;\r\n enumerator._settledAt(entry._state, i, entry._result);\r\n } else {\r\n enumerator._willSettleAt(c.resolve(entry), i);\r\n }\r\n } else {\r\n enumerator._remaining--;\r\n enumerator._result[i] = entry;\r\n }\r\n };\r\n\r\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\r\n var enumerator = this;\r\n var promise = enumerator.promise;\r\n\r\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\r\n enumerator._remaining--;\r\n\r\n if (state === lib$es6$promise$$internal$$REJECTED) {\r\n lib$es6$promise$$internal$$reject(promise, value);\r\n } else {\r\n enumerator._result[i] = value;\r\n }\r\n }\r\n\r\n if (enumerator._remaining === 0) {\r\n lib$es6$promise$$internal$$fulfill(promise, enumerator._result);\r\n }\r\n };\r\n\r\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\r\n var enumerator = this;\r\n\r\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\r\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\r\n }, function(reason) {\r\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\r\n });\r\n };\r\n function lib$es6$promise$promise$all$$all(entries) {\r\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\r\n }\r\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\r\n function lib$es6$promise$promise$race$$race(entries) {\r\n /*jshint validthis:true */\r\n var Constructor = this;\r\n\r\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\r\n\r\n if (!lib$es6$promise$utils$$isArray(entries)) {\r\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\r\n return promise;\r\n }\r\n\r\n var length = entries.length;\r\n\r\n function onFulfillment(value) {\r\n lib$es6$promise$$internal$$resolve(promise, value);\r\n }\r\n\r\n function onRejection(reason) {\r\n lib$es6$promise$$internal$$reject(promise, reason);\r\n }\r\n\r\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\r\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\r\n }\r\n\r\n return promise;\r\n }\r\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\r\n function lib$es6$promise$promise$resolve$$resolve(object) {\r\n /*jshint validthis:true */\r\n var Constructor = this;\r\n\r\n if (object && typeof object === 'object' && object.constructor === Constructor) {\r\n return object;\r\n }\r\n\r\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\r\n lib$es6$promise$$internal$$resolve(promise, object);\r\n return promise;\r\n }\r\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\r\n function lib$es6$promise$promise$reject$$reject(reason) {\r\n /*jshint validthis:true */\r\n var Constructor = this;\r\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\r\n lib$es6$promise$$internal$$reject(promise, reason);\r\n return promise;\r\n }\r\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\r\n\r\n var lib$es6$promise$promise$$counter = 0;\r\n\r\n function lib$es6$promise$promise$$needsResolver() {\r\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\r\n }\r\n\r\n function lib$es6$promise$promise$$needsNew() {\r\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\r\n }\r\n\r\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\r\n /**\r\n Promise objects represent the eventual result of an asynchronous operation. The\r\n primary way of interacting with a promise is through its `then` method, which\r\n registers callbacks to receive either a promise's eventual value or the reason\r\n why the promise cannot be fulfilled.\r\n\r\n Terminology\r\n -----------\r\n\r\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\r\n - `thenable` is an object or function that defines a `then` method.\r\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\r\n - `exception` is a value that is thrown using the throw statement.\r\n - `reason` is a value that indicates why a promise was rejected.\r\n - `settled` the final resting state of a promise, fulfilled or rejected.\r\n\r\n A promise can be in one of three states: pending, fulfilled, or rejected.\r\n\r\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\r\n state. Promises that are rejected have a rejection reason and are in the\r\n rejected state. A fulfillment value is never a thenable.\r\n\r\n Promises can also be said to *resolve* a value. If this value is also a\r\n promise, then the original promise's settled state will match the value's\r\n settled state. So a promise that *resolves* a promise that rejects will\r\n itself reject, and a promise that *resolves* a promise that fulfills will\r\n itself fulfill.\r\n\r\n\r\n Basic Usage:\r\n ------------\r\n\r\n ```js\r\n var promise = new Promise(function(resolve, reject) {\r\n // on success\r\n resolve(value);\r\n\r\n // on failure\r\n reject(reason);\r\n });\r\n\r\n promise.then(function(value) {\r\n // on fulfillment\r\n }, function(reason) {\r\n // on rejection\r\n });\r\n ```\r\n\r\n Advanced Usage:\r\n ---------------\r\n\r\n Promises shine when abstracting away asynchronous interactions such as\r\n `XMLHttpRequest`s.\r\n\r\n ```js\r\n function getJSON(url) {\r\n return new Promise(function(resolve, reject){\r\n var xhr = new XMLHttpRequest();\r\n\r\n xhr.open('GET', url);\r\n xhr.onreadystatechange = handler;\r\n xhr.responseType = 'json';\r\n xhr.setRequestHeader('Accept', 'application/json');\r\n xhr.send();\r\n\r\n function handler() {\r\n if (this.readyState === this.DONE) {\r\n if (this.status === 200) {\r\n resolve(this.response);\r\n } else {\r\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\r\n }\r\n }\r\n };\r\n });\r\n }\r\n\r\n getJSON('/posts.json').then(function(json) {\r\n // on fulfillment\r\n }, function(reason) {\r\n // on rejection\r\n });\r\n ```\r\n\r\n Unlike callbacks, promises are great composable primitives.\r\n\r\n ```js\r\n Promise.all([\r\n getJSON('/posts'),\r\n getJSON('/comments')\r\n ]).then(function(values){\r\n values[0] // => postsJSON\r\n values[1] // => commentsJSON\r\n\r\n return values;\r\n });\r\n ```\r\n\r\n @class Promise\r\n @param {function} resolver\r\n Useful for tooling.\r\n @constructor\r\n */\r\n function lib$es6$promise$promise$$Promise(resolver) {\r\n this._id = lib$es6$promise$promise$$counter++;\r\n this._state = undefined;\r\n this._result = undefined;\r\n this._subscribers = [];\r\n\r\n if (lib$es6$promise$$internal$$noop !== resolver) {\r\n if (!lib$es6$promise$utils$$isFunction(resolver)) {\r\n lib$es6$promise$promise$$needsResolver();\r\n }\r\n\r\n if (!(this instanceof lib$es6$promise$promise$$Promise)) {\r\n lib$es6$promise$promise$$needsNew();\r\n }\r\n\r\n lib$es6$promise$$internal$$initializePromise(this, resolver);\r\n }\r\n }\r\n\r\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\r\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\r\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\r\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\r\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\r\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\r\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\r\n\r\n lib$es6$promise$promise$$Promise.prototype = {\r\n constructor: lib$es6$promise$promise$$Promise,\r\n\r\n /**\r\n The primary way of interacting with a promise is through its `then` method,\r\n which registers callbacks to receive either a promise's eventual value or the\r\n reason why the promise cannot be fulfilled.\r\n\r\n ```js\r\n findUser().then(function(user){\r\n // user is available\r\n }, function(reason){\r\n // user is unavailable, and you are given the reason why\r\n });\r\n ```\r\n\r\n Chaining\r\n --------\r\n\r\n The return value of `then` is itself a promise. This second, 'downstream'\r\n promise is resolved with the return value of the first promise's fulfillment\r\n or rejection handler, or rejected if the handler throws an exception.\r\n\r\n ```js\r\n findUser().then(function (user) {\r\n return user.name;\r\n }, function (reason) {\r\n return 'default name';\r\n }).then(function (userName) {\r\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\r\n // will be `'default name'`\r\n });\r\n\r\n findUser().then(function (user) {\r\n throw new Error('Found user, but still unhappy');\r\n }, function (reason) {\r\n throw new Error('`findUser` rejected and we're unhappy');\r\n }).then(function (value) {\r\n // never reached\r\n }, function (reason) {\r\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\r\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\r\n });\r\n ```\r\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\r\n\r\n ```js\r\n findUser().then(function (user) {\r\n throw new PedagogicalException('Upstream error');\r\n }).then(function (value) {\r\n // never reached\r\n }).then(function (value) {\r\n // never reached\r\n }, function (reason) {\r\n // The `PedgagocialException` is propagated all the way down to here\r\n });\r\n ```\r\n\r\n Assimilation\r\n ------------\r\n\r\n Sometimes the value you want to propagate to a downstream promise can only be\r\n retrieved asynchronously. This can be achieved by returning a promise in the\r\n fulfillment or rejection handler. The downstream promise will then be pending\r\n until the returned promise is settled. This is called *assimilation*.\r\n\r\n ```js\r\n findUser().then(function (user) {\r\n return findCommentsByAuthor(user);\r\n }).then(function (comments) {\r\n // The user's comments are now available\r\n });\r\n ```\r\n\r\n If the assimliated promise rejects, then the downstream promise will also reject.\r\n\r\n ```js\r\n findUser().then(function (user) {\r\n return findCommentsByAuthor(user);\r\n }).then(function (comments) {\r\n // If `findCommentsByAuthor` fulfills, we'll have the value here\r\n }, function (reason) {\r\n // If `findCommentsByAuthor` rejects, we'll have the reason here\r\n });\r\n ```\r\n\r\n Simple Example\r\n --------------\r\n\r\n Synchronous Example\r\n\r\n ```javascript\r\n var result;\r\n\r\n try {\r\n result = findResult();\r\n // success\r\n } catch(reason) {\r\n // failure\r\n }\r\n ```\r\n\r\n Errback Example\r\n\r\n ```js\r\n findResult(function(result, err){\r\n if (err) {\r\n // failure\r\n } else {\r\n // success\r\n }\r\n });\r\n ```\r\n\r\n Promise Example;\r\n\r\n ```javascript\r\n findResult().then(function(result){\r\n // success\r\n }, function(reason){\r\n // failure\r\n });\r\n ```\r\n\r\n Advanced Example\r\n --------------\r\n\r\n Synchronous Example\r\n\r\n ```javascript\r\n var author, books;\r\n\r\n try {\r\n author = findAuthor();\r\n books = findBooksByAuthor(author);\r\n // success\r\n } catch(reason) {\r\n // failure\r\n }\r\n ```\r\n\r\n Errback Example\r\n\r\n ```js\r\n\r\n function foundBooks(books) {\r\n\r\n }\r\n\r\n function failure(reason) {\r\n\r\n }\r\n\r\n findAuthor(function(author, err){\r\n if (err) {\r\n failure(err);\r\n // failure\r\n } else {\r\n try {\r\n findBoooksByAuthor(author, function(books, err) {\r\n if (err) {\r\n failure(err);\r\n } else {\r\n try {\r\n foundBooks(books);\r\n } catch(reason) {\r\n failure(reason);\r\n }\r\n }\r\n });\r\n } catch(error) {\r\n failure(err);\r\n }\r\n // success\r\n }\r\n });\r\n ```\r\n\r\n Promise Example;\r\n\r\n ```javascript\r\n findAuthor().\r\n then(findBooksByAuthor).\r\n then(function(books){\r\n // found books\r\n }).catch(function(reason){\r\n // something went wrong\r\n });\r\n ```\r\n\r\n @method then\r\n @param {Function} onFulfilled\r\n @param {Function} onRejected\r\n Useful for tooling.\r\n @return {Promise}\r\n */\r\n then: function(onFulfillment, onRejection) {\r\n var parent = this;\r\n var state = parent._state;\r\n\r\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\r\n return this;\r\n }\r\n\r\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\r\n var result = parent._result;\r\n\r\n if (state) {\r\n var callback = arguments[state - 1];\r\n lib$es6$promise$asap$$asap(function(){\r\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\r\n });\r\n } else {\r\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\r\n }\r\n\r\n return child;\r\n },\r\n\r\n /**\r\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\r\n as the catch block of a try/catch statement.\r\n\r\n ```js\r\n function findAuthor(){\r\n throw new Error('couldn't find that author');\r\n }\r\n\r\n // synchronous\r\n try {\r\n findAuthor();\r\n } catch(reason) {\r\n // something went wrong\r\n }\r\n\r\n // async with promises\r\n findAuthor().catch(function(reason){\r\n // something went wrong\r\n });\r\n ```\r\n\r\n @method catch\r\n @param {Function} onRejection\r\n Useful for tooling.\r\n @return {Promise}\r\n */\r\n 'catch': function(onRejection) {\r\n return this.then(null, onRejection);\r\n }\r\n };\r\n function lib$es6$promise$polyfill$$polyfill() {\r\n var local;\r\n\r\n if (typeof global !== 'undefined') {\r\n local = global;\r\n } else if (typeof self !== 'undefined') {\r\n local = self;\r\n } else {\r\n try {\r\n local = Function('return this')();\r\n } catch (e) {\r\n throw new Error('polyfill failed because global object is unavailable in this environment');\r\n }\r\n }\r\n\r\n var P = local.Promise;\r\n\r\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\r\n return;\r\n }\r\n\r\n local.Promise = lib$es6$promise$promise$$default;\r\n }\r\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\r\n\r\n var lib$es6$promise$umd$$ES6Promise = {\r\n 'Promise': lib$es6$promise$promise$$default,\r\n 'polyfill': lib$es6$promise$polyfill$$default\r\n };\r\n\r\n /* global define:true module:true window: true */\r\n if (typeof define === 'function' && define['amd']) {\r\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\r\n } else if (typeof module !== 'undefined' && module['exports']) {\r\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\r\n } else if (typeof this !== 'undefined') {\r\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\r\n }\r\n\r\n lib$es6$promise$polyfill$$default();\r\n}).call(this);\r\n\r\n","// https://github.com/jonathantneal/svg4everybody\r\n// https://github.com/bfred-it/object-fit-images\r\nsvg4everybody();\r\nvar objectFitClass = document.querySelectorAll(\"img.object-fit--cover\");\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function(event) {\r\n objectFitImages(objectFitClass);\r\n});\r\ndocument.addEventListener(\"orientationchange\", function(event){\r\n objectFitImages(objectFitClass);\r\n\r\n});\r\n","!function(root, factory) {\r\n \"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\r\n define([], function() {\r\n return root.svg4everybody = factory();\r\n }) : \"object\" == typeof exports ? module.exports = factory() : root.svg4everybody = factory();\r\n}(this, function() {\r\n /*! svg4everybody v2.0.3 | github.com/jonathantneal/svg4everybody */\r\n function embed(svg, target) {\r\n // if the target exists\r\n if (target) {\r\n // create a document fragment to hold the contents of the target\r\n var fragment = document.createDocumentFragment(), viewBox = !svg.getAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\r\n // conditionally set the viewBox on the svg\r\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\r\n // copy the contents of the clone into the fragment\r\n for (// clone the target\r\n var clone = target.cloneNode(!0); clone.childNodes.length; ) {\r\n fragment.appendChild(clone.firstChild);\r\n }\r\n // append the fragment into the svg\r\n svg.appendChild(fragment);\r\n }\r\n }\r\n function loadreadystatechange(xhr) {\r\n // listen to changes in the request\r\n xhr.onreadystatechange = function() {\r\n // if the request is ready\r\n if (4 === xhr.readyState) {\r\n // get the cached html document\r\n var cachedDocument = xhr._cachedDocument;\r\n // ensure the cached html document based on the xhr response\r\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \r\n cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\r\n xhr._embeds.splice(0).map(function(item) {\r\n // get the cached target\r\n var target = xhr._cachedTarget[item.id];\r\n // ensure the cached target\r\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \r\n // embed the target into the svg\r\n embed(item.svg, target);\r\n });\r\n }\r\n }, // test the ready state change immediately\r\n xhr.onreadystatechange();\r\n }\r\n function svg4everybody(rawopts) {\r\n function oninterval() {\r\n // while the index exists in the live collection\r\n for (// get the cached index\r\n var index = 0; index < uses.length; ) {\r\n // get the current \r\n var use = uses[index], svg = use.parentNode;\r\n if (svg && /svg/i.test(svg.nodeName)) {\r\n var src = use.getAttribute(\"xlink:href\");\r\n if (polyfill && (!opts.validate || opts.validate(src, svg, use))) {\r\n // remove the element\r\n svg.removeChild(use);\r\n // parse the src and get the url and id\r\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\r\n // if the link is external\r\n if (url.length) {\r\n // get the cached xhr request\r\n var xhr = requests[url];\r\n // ensure the xhr request exists\r\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \r\n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\r\n xhr._embeds.push({\r\n svg: svg,\r\n id: id\r\n }), // prepare the xhr ready state change event\r\n loadreadystatechange(xhr);\r\n } else {\r\n // embed the local id into the svg\r\n embed(svg, document.getElementById(id));\r\n }\r\n }\r\n } else {\r\n // increase the index when the previous value was not \"valid\"\r\n ++index;\r\n }\r\n }\r\n // continue the interval\r\n requestAnimationFrame(oninterval, 67);\r\n }\r\n var polyfill, opts = Object(rawopts), newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/;\r\n polyfill = \"polyfill\" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537;\r\n // create xhr requests object\r\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\");\r\n // conditionally start the interval if the polyfill is active\r\n polyfill && oninterval();\r\n }\r\n return svg4everybody;\r\n});","!function(root, factory) {\r\n \"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\r\n define([], function() {\r\n return root.svg4everybody = factory();\r\n }) : \"object\" == typeof exports ? module.exports = factory() : root.svg4everybody = factory();\r\n}(this, function() {\r\n /*! svg4everybody v2.0.3 | github.com/jonathantneal/svg4everybody */\r\n function embed(svg, target) {\r\n // if the target exists\r\n if (target) {\r\n // create a document fragment to hold the contents of the target\r\n var fragment = document.createDocumentFragment(), viewBox = !svg.getAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\r\n // conditionally set the viewBox on the svg\r\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\r\n // copy the contents of the clone into the fragment\r\n for (// clone the target\r\n var clone = target.cloneNode(!0); clone.childNodes.length; ) {\r\n fragment.appendChild(clone.firstChild);\r\n }\r\n // append the fragment into the svg\r\n svg.appendChild(fragment);\r\n }\r\n }\r\n function loadreadystatechange(xhr) {\r\n // listen to changes in the request\r\n xhr.onreadystatechange = function() {\r\n // if the request is ready\r\n if (4 === xhr.readyState) {\r\n // get the cached html document\r\n var cachedDocument = xhr._cachedDocument;\r\n // ensure the cached html document based on the xhr response\r\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \r\n cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\r\n xhr._embeds.splice(0).map(function(item) {\r\n // get the cached target\r\n var target = xhr._cachedTarget[item.id];\r\n // ensure the cached target\r\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \r\n // embed the target into the svg\r\n embed(item.svg, target);\r\n });\r\n }\r\n }, // test the ready state change immediately\r\n xhr.onreadystatechange();\r\n }\r\n function svg4everybody(rawopts) {\r\n function oninterval() {\r\n // while the index exists in the live collection\r\n for (// get the cached index\r\n var index = 0; index < uses.length; ) {\r\n // get the current \r\n var use = uses[index], svg = use.parentNode;\r\n if (svg && /svg/i.test(svg.nodeName)) {\r\n var src = use.getAttribute(\"xlink:href\");\r\n // if running with legacy support\r\n if (nosvg) {\r\n // create a new fallback image\r\n var img = document.createElement(\"img\");\r\n // force display in older IE\r\n img.style.cssText = \"display:inline-block;height:100%;width:100%\", // set the fallback size using the svg size\r\n img.setAttribute(\"width\", svg.getAttribute(\"width\") || svg.clientWidth), img.setAttribute(\"height\", svg.getAttribute(\"height\") || svg.clientHeight), \r\n // set the fallback src\r\n img.src = fallback(src, svg, use), // replace the with the fallback image\r\n svg.replaceChild(img, use);\r\n } else {\r\n if (polyfill && (!opts.validate || opts.validate(src, svg, use))) {\r\n // remove the element\r\n svg.removeChild(use);\r\n // parse the src and get the url and id\r\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\r\n // if the link is external\r\n if (url.length) {\r\n // get the cached xhr request\r\n var xhr = requests[url];\r\n // ensure the xhr request exists\r\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \r\n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\r\n xhr._embeds.push({\r\n svg: svg,\r\n id: id\r\n }), // prepare the xhr ready state change event\r\n loadreadystatechange(xhr);\r\n } else {\r\n // embed the local id into the svg\r\n embed(svg, document.getElementById(id));\r\n }\r\n }\r\n }\r\n } else {\r\n // increase the index when the previous value was not \"valid\"\r\n ++index;\r\n }\r\n }\r\n // continue the interval\r\n requestAnimationFrame(oninterval, 67);\r\n }\r\n var nosvg, fallback, opts = Object(rawopts);\r\n fallback = opts.fallback || function(src) {\r\n return src.replace(/\\?[^#]+/, \"\").replace(\"#\", \".\").replace(/^\\./, \"\") + \".png\" + (/\\?[^#]+/.exec(src) || [ \"\" ])[0];\r\n }, nosvg = \"nosvg\" in opts ? opts.nosvg : /\\bMSIE [1-8]\\b/.test(navigator.userAgent), \r\n nosvg && (document.createElement(\"svg\"), document.createElement(\"use\"));\r\n // set whether the polyfill will be activated or not\r\n var polyfill, olderIEUA = /\\bMSIE [1-8]\\.0\\b/, newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/;\r\n polyfill = \"polyfill\" in opts ? opts.polyfill : olderIEUA.test(navigator.userAgent) || newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537;\r\n // create xhr requests object\r\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\");\r\n // conditionally start the interval if the polyfill is active\r\n polyfill && oninterval();\r\n }\r\n return svg4everybody;\r\n});"]}