{"version":3,"sources":["webpack:///polyfills.73c719.min.js","webpack:///webpack/bootstrap f9462c38af1f2567e84a","webpack:///./app/polyfills.js","webpack:///./~/es6-shim/es6-shim.js","webpack:///./~/process/browser.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","Object","prototype","hasOwnProperty","_m","args","slice","templateId","a","b","c","this","concat","shift","0","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","src","p","1","2","3","appendChild","m","fn","20","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","global","process","root","factory","ArrayIterator","_apply","Function","bind","_call","isArray","Array","keys","not","func","arguments","throwsError","valueOrFalseIfThrows","isCallableWithoutNew","arePropertyDescriptorsSupported","defineProperty","get","supportsDescriptors","functionsHaveNames","name","_forEach","forEach","_reduce","reduce","_filter","filter","_some","some","object","value","force","configurable","enumerable","writable","defineProperties","map","forceOverride","method","_toString","toString","isCallable","x","Value","getter","TypeError","proxy","originalObject","key","targetObject","originalDescriptor","getOwnPropertyDescriptor","set","redefine","property","newValue","descriptor","defineByDescriptor","preserveToString","target","source","create","properties","Prototype","supportsSubclassing","C","f","setPrototypeOf","Sub","Subclass","arg","o","constructor","getGlobal","self","Error","globals","globalIsFinite","isFinite","_indexOf","String","indexOf","_arrayIndexOfApply","_concat","_strSlice","_push","_pushApply","_shift","_max","Math","max","_min","min","_floor","floor","_abs","abs","_exp","exp","_log","log","_sqrt","sqrt","_hasOwnProperty","noop","Symbol","symbolSpecies","species","numberIsNaN","Number","isNaN","numberIsFinite","_sign","sign","number","isStandardArguments","isLegacyArguments","callee","isArguments","Type","primitive","string","regex","symbol","overrideNative","replacement","original","hasSymbols","$iterator$","iterator","Set","Reflect","$String","ES","Call","F","V","IsCallable","RequireObjectCoercible","optMessage","TypeIsObject","ToObject","IsConstructor","ToInt32","ToNumber","ToUint32","ToInteger","ToLength","len","MAX_SAFE_INTEGER","SameValue","SameValueZero","IsIterable","GetIterator","itFn","GetMethod","it","IteratorComplete","iterResult","done","IteratorClose","completionIsThrow","returnMethod","innerResult","innerException","IteratorNext","result","next","IteratorStep","Construct","newTarget","isES6internal","construct","proto","obj","SpeciesConstructor","O","defaultConstructor","S","CreateHTML","tag","attribute","ToString","p1","escapedV","replace","p2","p3","IsRegExp","argument","isRegExp","match","defineWellKnownSymbol","sym","search","symbolSearch","originalSearch","RegExp","searchShim","regexp","searcher","symbolReplace","originalReplace","replaceValue","replaceShim","searchValue","replacer","split","symbolSplit","originalSplit","limit","splitShim","separator","splitter","symbolMatchExists","stringMatchIgnoresSymbolMatch","symbolMatch","originalMatch","matchShim","matcher","wrapConstructor","keysToSkip","getOwnPropertyNames","defaultSpeciesGetter","addDefaultSpecies","addIterator","impl","implementation","createDataProperty","createDataPropertyOrThrow","emulateES6construct","defaultNewTarget","defaultProto","slots","fromCodePoint","originalFromCodePoint","codePoints","StringShims","RangeError","fromCharCode","join","raw","callSite","cooked","rawString","literalsegments","nextKey","nextSeg","nextSub","stringElements","nextIndex","stringRepeat","repeat","s","times","half","stringMaxLength","Infinity","StringPrototypeShims","thisStr","numTimes","startsWith","searchString","position","searchStr","start","endsWith","endPosition","pos","end","includes","codePointAt","first","charCodeAt","isEnd","second","startsWithRejectsRegex","startsWithHandlesInfinity","startsWithSupportsSymbolMatch","re","endsWithSupportsSymbolMatch","includesSupportsSymbolMatch","ws","trimRegexp","trimShim","nonWS","nonWSregex","isBadHexRegex","hasStringTrimBug","trim","iteratorResult","StringIterator","_s","_i","substr","ArrayShims","from","items","mapFn","mapping","T","usingIterator","nextValue","arrayLike","of","A","k","array","kind","retval","arrayOfSupportsSubclassing","Foo","fooArr","ArrayPrototypeShims","copyWithin","relativeTarget","relativeStart","to","relativeEnd","finalItem","count","direction","fill","find","predicate","list","thisArg","findIndex","values","entries","unscopables","originalArrayPrototypeValues","searchElement","getPrototypeOf","arrayFromSwallowsNegativeLengths","arrayFromHandlesIterables","arr","arrayFromHandlesUndefinedMapFunction","origArrayFrom","int32sAsOne","pow","toLengthsCorrectly","reversed","originalForEach","callbackFn","originalMap","originalFilter","originalSome","every","originalEvery","originalReduce","reduceRight","originalReduceRight","lacksOctalSupport","lacksBinarySupport","trimsNonWhitespace","OrigNumber","binaryRegex","octalRegex","isBinary","test","isOctal","toPrimitive","valueOf","hasNonWS","isBadHex","NumberShim","primValue","parseInt","NaN","receiver","valueOfSucceeds","MAX_VALUE","MIN_VALUE","NEGATIVE_INFINITY","POSITIVE_INFINITY","maxSafeInteger","MIN_SAFE_INTEGER","EPSILON","parseFloat","isInteger","isSafeInteger","item","idx","isEnumerableOn","propertyIsEnumerable","ensureEnumerable","prop","sliceArgs","initial","desiredArgCount","assignTo","assignReducer","symbols","sourceKeys","getOwnPropertySymbols","ObjectShims","assign","is","assignHasPendingExceptions","preventExtensions","thrower","ES5ObjectShims","magic","checkArgs","polyfill","FAKENULL","gpo","spo","objectKeysAcceptsPrimitives","originalObjectKeys","objectKeysRejectsRegex","regexRejectingObjectKeys","regexKeys","objectGOPNAcceptsPrimitives","cachedWindowNames","originalObjectGetOwnPropertyNames","val","objectGOPDAcceptsPrimitives","originalObjectGetOwnPropertyDescriptor","seal","objectSealAcceptsPrimitives","originalObjectSeal","isSealed","objectIsSealedAcceptsPrimitives","originalObjectIsSealed","freeze","objectFreezeAcceptsPrimitives","originalObjectFreeze","isFrozen","objectIsFrozenAcceptsPrimitives","originalObjectIsFrozen","objectPreventExtensionsAcceptsPrimitives","originalObjectPreventExtensions","isExtensible","objectIsExtensibleAcceptsPrimitives","originalObjectIsExtensible","objectGetProtoAcceptsPrimitives","originalGetProto","hasFlags","desc","regExpFlagsGetter","ignoreCase","multiline","unicode","sticky","regExpSupportsFlagsWithRegex","regExpNeedsToSupportSymbolMatch","regexToStringIsGeneric","regexToStringSupportsGenericFlags","flags","origRegExpToString","R","pattern","flagsGetter","sourceDesc","legacySourceGetter","sourceGetter","OrigRegExp","RegExpShim","patternIsRegExp","calledWithNew","P","$input","regexGlobals","input","lastMatch","lastParen","leftContext","rightContext","inverseEpsilon","roundTiesToEven","n","BINARY_32_EPSILON","BINARY_32_MAX_VALUE","BINARY_32_MIN_VALUE","E","LOG2E","LOG10E","numberCLZ","clz","MathShims","acosh","asinh","atanh","cbrt","negate","clz32","cosh","expm1","t","sum","hypot","y","largest","log2","log10","log1p","sinh","tanh","trunc","imul","ah","al","bh","bl","fround","v","expm1OfTen","origMathRound","round","roundHandlesBoundaryConditions","smallestPositiveNumberWhereRoundBreaks","largestPositiveNumberWhereRoundBreaks","roundDoesNotIncreaseIntegers","num","ceil","origImul","PromiseShim","setTimeout","IsPromise","promise","_promise","makeZeroTimeout","PromiseCapability","capability","resolver","resolve","reject","postMessage","timeouts","messageName","setZeroTimeout","handleMessage","event","data","stopPropagation","addEventListener","Promise$prototype","Promise$prototype$then","makePromiseAsap","Promise","pr","task","then","enqueue","setImmediate","nextTick","PROMISE_IDENTITY","PROMISE_THROWER","PROMISE_PENDING","PROMISE_FULFILLED","PROMISE_REJECTED","PROMISE_FULFILL_OFFSET","PROMISE_REJECT_OFFSET","PROMISE_CAPABILITY_OFFSET","PROMISE_FAKE_CAPABILITY","enqueuePromiseReactionJob","handler","promiseReactionJob","promiseCapability","handlerResult","fulfillPromise","reactionLength","fulfillReactionHandler0","reactionCapability0","rejectReactions0","state","rejectPromise","reason","rejectReactionHandler0","createResolvingFunctions","alreadyResolved","resolution","promiseResolveThenableJob","optimizedThen","thenable","resolvingFunctions","_promiseAllResolver","index","remaining","alreadyCalled","performPromiseAll","iteratorRecord","resultCapability","nextPromise","resolveElement","performPromiseRace","all","iterable","exception","ee","race","rejectFunc","resolveFunc","catch","onRejected","onFulfilled","returnValueIsIgnored","fulfillReactionHandler","rejectReactionHandler","accept","defer","chain","promiseSupportsSubclassing","promiseIgnoresNonFunctionThenCallbacks","promiseRequiresObjectContext","promiseResolveBroken","getsThenSynchronously","BadResolverPromise","executor","hasBadResolverPromise","origAll","origRace","origResolve","origReject","r","testOrder","preservesInsertionOrder","preservesNumericInsertionOrder","fastkey","emptyObject","addIterableToMap","MapConstructor","entry","iter","adder","nextItem","addIterableToSet","SetConstructor","add","collectionShims","Map","empty","MapEntry","prev","isRemoved","isMap","_es6map","requireMapSlot","MapIterator","_head","Map$prototype","MapShim","_storage","_size","fkey","has","delete","clear","context","Set$prototype","isSet","_es6set","requireSetSlot","SetShim","[[SetData]]","decodeKey","charAt","ensureMap","size","hasFKey","entireSet","mapAcceptsArguments","OrigMapNoArgs","testMap","mapUsesSameValueZero","mapSupportsChaining","origMapSet","origMapGet","origMapHas","testSet","setUsesSameValueZero","setSupportsChaining","origSetAdd","origSetHas","origSetDel","mapSupportsSubclassing","M","mapFailsToSupportSubclassing","mapRequiresNew","OrigMap","setSupportsSubclassing","setFailsToSupportSubclassing","setRequiresNew","OrigSet","newMap","mapIterationThrowsStopIterator","anonymousSetHas","throwUnlessTargetIsObject","ReflectShims","deleteProperty","ownKeys","callAndCatchException","internalGet","parent","internalSet","existingDesc","propertyKey","attributes","objectDotGetPrototypeOf","willCreateCircularPrototype","lastProto","defineOrOverrideReflectProperty","shim","acceptsPrimitives","originalReflectGetProto","basic","extensible","Date","dateToString","shimmedDateToString","stringHTMLshims","anchor","big","blink","bold","fixed","fontcolor","color","fontsize","italics","link","url","small","strike","sub","sup","shouldOverwrite","output","quotesCount","toLowerCase","JSONstringifiesSymbols","stringify","JSON","JSONstringifyAcceptsObjectSymbol","origStringify","replaceFn","wrappedReplacer","parsedValue","206","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","timeout","run","Item","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask"],"mappings":"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","file":"polyfills.73c719.min.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tvar _m = moreModules[moduleId];\n/******/\n/******/ \t\t\t\t// Check if module is deduplicated\n/******/ \t\t\t\tswitch(typeof _m) {\n/******/ \t\t\t\tcase \"object\":\n/******/ \t\t\t\t\t// Module can be created from a template\n/******/ \t\t\t\t\tmodules[moduleId] = (function(_m) {\n/******/ \t\t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n/******/ \t\t\t\t\t\treturn function (a,b,c) {\n/******/ \t\t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n/******/ \t\t\t\t\t\t};\n/******/ \t\t\t\t\t}(_m));\n/******/ \t\t\t\t\tbreak;\n/******/ \t\t\t\tcase \"function\":\n/******/ \t\t\t\t\t// Normal module\n/******/ \t\t\t\t\tmodules[moduleId] = _m;\n/******/ \t\t\t\t\tbreak;\n/******/ \t\t\t\tdefault:\n/******/ \t\t\t\t\t// Module is a copy of another module\n/******/ \t\t\t\t\tmodules[moduleId] = modules[_m];\n/******/ \t\t\t\t\tbreak;\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/ \t\tif(moreModules[0]) {\n/******/ \t\t\tinstalledModules[0] = 0;\n/******/ \t\t\treturn __webpack_require__(0);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t0:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/\n/******/ \t\t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + ({\"1\":\"app\",\"2\":\"vendor\",\"3\":\"sharebase\"}[chunkId]||chunkId) + \".\" + {\"1\":\"650bfc\",\"2\":\"7d0046\",\"3\":\"b198df\"}[chunkId] + \".min.js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(20);\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(global, process) { /*!\n\t * https://github.com/paulmillr/es6-shim\n\t * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com)\n\t * and contributors, MIT License\n\t * es6-shim: v0.35.1\n\t * see https://github.com/paulmillr/es6-shim/blob/0.35.1/LICENSE\n\t * Details and documentation:\n\t * https://github.com/paulmillr/es6-shim/\n\t */\n\t\n\t// UMD (Universal Module Definition)\n\t// see https://github.com/umdjs/umd/blob/master/returnExports.js\n\t(function (root, factory) {\n\t /*global define, module, exports */\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof exports === 'object') {\n\t // Node. Does not work with strict CommonJS, but\n\t // only CommonJS-like environments that support module.exports,\n\t // like Node.\n\t module.exports = factory();\n\t } else {\n\t // Browser globals (root is window)\n\t root.returnExports = factory();\n\t }\n\t}(this, function () {\n\t 'use strict';\n\t\n\t var _apply = Function.call.bind(Function.apply);\n\t var _call = Function.call.bind(Function.call);\n\t var isArray = Array.isArray;\n\t var keys = Object.keys;\n\t\n\t var not = function notThunker(func) {\n\t return function notThunk() {\n\t return !_apply(func, this, arguments);\n\t };\n\t };\n\t var throwsError = function (func) {\n\t try {\n\t func();\n\t return false;\n\t } catch (e) {\n\t return true;\n\t }\n\t };\n\t var valueOrFalseIfThrows = function valueOrFalseIfThrows(func) {\n\t try {\n\t return func();\n\t } catch (e) {\n\t return false;\n\t }\n\t };\n\t\n\t var isCallableWithoutNew = not(throwsError);\n\t var arePropertyDescriptorsSupported = function () {\n\t // if Object.defineProperty exists but throws, it's IE 8\n\t return !throwsError(function () {\n\t Object.defineProperty({}, 'x', { get: function () {} });\n\t });\n\t };\n\t var supportsDescriptors = !!Object.defineProperty && arePropertyDescriptorsSupported();\n\t var functionsHaveNames = (function foo() {}).name === 'foo'; // eslint-disable-line no-extra-parens\n\t\n\t var _forEach = Function.call.bind(Array.prototype.forEach);\n\t var _reduce = Function.call.bind(Array.prototype.reduce);\n\t var _filter = Function.call.bind(Array.prototype.filter);\n\t var _some = Function.call.bind(Array.prototype.some);\n\t\n\t var defineProperty = function (object, name, value, force) {\n\t if (!force && name in object) { return; }\n\t if (supportsDescriptors) {\n\t Object.defineProperty(object, name, {\n\t configurable: true,\n\t enumerable: false,\n\t writable: true,\n\t value: value\n\t });\n\t } else {\n\t object[name] = value;\n\t }\n\t };\n\t\n\t // Define configurable, writable and non-enumerable props\n\t // if they don’t exist.\n\t var defineProperties = function (object, map, forceOverride) {\n\t _forEach(keys(map), function (name) {\n\t var method = map[name];\n\t defineProperty(object, name, method, !!forceOverride);\n\t });\n\t };\n\t\n\t var _toString = Function.call.bind(Object.prototype.toString);\n\t var isCallable = false ? function IsCallableSlow(x) {\n\t // Some old browsers (IE, FF) say that typeof /abc/ === 'function'\n\t return typeof x === 'function' && _toString(x) === '[object Function]';\n\t } : function IsCallableFast(x) { return typeof x === 'function'; };\n\t\n\t var Value = {\n\t getter: function (object, name, getter) {\n\t if (!supportsDescriptors) {\n\t throw new TypeError('getters require true ES5 support');\n\t }\n\t Object.defineProperty(object, name, {\n\t configurable: true,\n\t enumerable: false,\n\t get: getter\n\t });\n\t },\n\t proxy: function (originalObject, key, targetObject) {\n\t if (!supportsDescriptors) {\n\t throw new TypeError('getters require true ES5 support');\n\t }\n\t var originalDescriptor = Object.getOwnPropertyDescriptor(originalObject, key);\n\t Object.defineProperty(targetObject, key, {\n\t configurable: originalDescriptor.configurable,\n\t enumerable: originalDescriptor.enumerable,\n\t get: function getKey() { return originalObject[key]; },\n\t set: function setKey(value) { originalObject[key] = value; }\n\t });\n\t },\n\t redefine: function (object, property, newValue) {\n\t if (supportsDescriptors) {\n\t var descriptor = Object.getOwnPropertyDescriptor(object, property);\n\t descriptor.value = newValue;\n\t Object.defineProperty(object, property, descriptor);\n\t } else {\n\t object[property] = newValue;\n\t }\n\t },\n\t defineByDescriptor: function (object, property, descriptor) {\n\t if (supportsDescriptors) {\n\t Object.defineProperty(object, property, descriptor);\n\t } else if ('value' in descriptor) {\n\t object[property] = descriptor.value;\n\t }\n\t },\n\t preserveToString: function (target, source) {\n\t if (source && isCallable(source.toString)) {\n\t defineProperty(target, 'toString', source.toString.bind(source), true);\n\t }\n\t }\n\t };\n\t\n\t // Simple shim for Object.create on ES3 browsers\n\t // (unlike real shim, no attempt to support `prototype === null`)\n\t var create = Object.create || function (prototype, properties) {\n\t var Prototype = function Prototype() {};\n\t Prototype.prototype = prototype;\n\t var object = new Prototype();\n\t if (typeof properties !== 'undefined') {\n\t keys(properties).forEach(function (key) {\n\t Value.defineByDescriptor(object, key, properties[key]);\n\t });\n\t }\n\t return object;\n\t };\n\t\n\t var supportsSubclassing = function (C, f) {\n\t if (!Object.setPrototypeOf) { return false; /* skip test on IE < 11 */ }\n\t return valueOrFalseIfThrows(function () {\n\t var Sub = function Subclass(arg) {\n\t var o = new C(arg);\n\t Object.setPrototypeOf(o, Subclass.prototype);\n\t return o;\n\t };\n\t Object.setPrototypeOf(Sub, C);\n\t Sub.prototype = create(C.prototype, {\n\t constructor: { value: Sub }\n\t });\n\t return f(Sub);\n\t });\n\t };\n\t\n\t var getGlobal = function () {\n\t /* global self, window, global */\n\t // the only reliable means to get the global object is\n\t // `Function('return this')()`\n\t // However, this causes CSP violations in Chrome apps.\n\t if (typeof self !== 'undefined') { return self; }\n\t if (typeof window !== 'undefined') { return window; }\n\t if (typeof global !== 'undefined') { return global; }\n\t throw new Error('unable to locate global object');\n\t };\n\t\n\t var globals = getGlobal();\n\t var globalIsFinite = globals.isFinite;\n\t var _indexOf = Function.call.bind(String.prototype.indexOf);\n\t var _arrayIndexOfApply = Function.apply.bind(Array.prototype.indexOf);\n\t var _concat = Function.call.bind(Array.prototype.concat);\n\t // var _sort = Function.call.bind(Array.prototype.sort);\n\t var _strSlice = Function.call.bind(String.prototype.slice);\n\t var _push = Function.call.bind(Array.prototype.push);\n\t var _pushApply = Function.apply.bind(Array.prototype.push);\n\t var _shift = Function.call.bind(Array.prototype.shift);\n\t var _max = Math.max;\n\t var _min = Math.min;\n\t var _floor = Math.floor;\n\t var _abs = Math.abs;\n\t var _exp = Math.exp;\n\t var _log = Math.log;\n\t var _sqrt = Math.sqrt;\n\t var _hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n\t var ArrayIterator; // make our implementation private\n\t var noop = function () {};\n\t\n\t var Symbol = globals.Symbol || {};\n\t var symbolSpecies = Symbol.species || '@@species';\n\t\n\t var numberIsNaN = Number.isNaN || function isNaN(value) {\n\t // NaN !== NaN, but they are identical.\n\t // NaNs are the only non-reflexive value, i.e., if x !== x,\n\t // then x is NaN.\n\t // isNaN is broken: it converts its argument to number, so\n\t // isNaN('foo') => true\n\t return value !== value;\n\t };\n\t var numberIsFinite = Number.isFinite || function isFinite(value) {\n\t return typeof value === 'number' && globalIsFinite(value);\n\t };\n\t var _sign = isCallable(Math.sign) ? Math.sign : function sign(value) {\n\t var number = Number(value);\n\t if (number === 0) { return number; }\n\t if (numberIsNaN(number)) { return number; }\n\t return number < 0 ? -1 : 1;\n\t };\n\t\n\t // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n\t // can be replaced with require('is-arguments') if we ever use a build process instead\n\t var isStandardArguments = function isArguments(value) {\n\t return _toString(value) === '[object Arguments]';\n\t };\n\t var isLegacyArguments = function isArguments(value) {\n\t return value !== null &&\n\t typeof value === 'object' &&\n\t typeof value.length === 'number' &&\n\t value.length >= 0 &&\n\t _toString(value) !== '[object Array]' &&\n\t _toString(value.callee) === '[object Function]';\n\t };\n\t var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n\t\n\t var Type = {\n\t primitive: function (x) { return x === null || (typeof x !== 'function' && typeof x !== 'object'); },\n\t string: function (x) { return _toString(x) === '[object String]'; },\n\t regex: function (x) { return _toString(x) === '[object RegExp]'; },\n\t symbol: function (x) {\n\t return typeof globals.Symbol === 'function' && typeof x === 'symbol';\n\t }\n\t };\n\t\n\t var overrideNative = function overrideNative(object, property, replacement) {\n\t var original = object[property];\n\t defineProperty(object, property, replacement, true);\n\t Value.preserveToString(object[property], original);\n\t };\n\t\n\t var hasSymbols = typeof Symbol === 'function' && typeof Symbol['for'] === 'function' && Type.symbol(Symbol());\n\t\n\t // This is a private name in the es6 spec, equal to '[Symbol.iterator]'\n\t // we're going to use an arbitrary _-prefixed name to make our shims\n\t // work properly with each other, even though we don't have full Iterator\n\t // support. That is, `Array.from(map.keys())` will work, but we don't\n\t // pretend to export a \"real\" Iterator interface.\n\t var $iterator$ = Type.symbol(Symbol.iterator) ? Symbol.iterator : '_es6-shim iterator_';\n\t // Firefox ships a partial implementation using the name @@iterator.\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14\n\t // So use that name if we detect it.\n\t if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') {\n\t $iterator$ = '@@iterator';\n\t }\n\t\n\t // Reflect\n\t if (!globals.Reflect) {\n\t defineProperty(globals, 'Reflect', {}, true);\n\t }\n\t var Reflect = globals.Reflect;\n\t\n\t var $String = String;\n\t\n\t var ES = {\n\t // http://www.ecma-international.org/ecma-262/6.0/#sec-call\n\t Call: function Call(F, V) {\n\t var args = arguments.length > 2 ? arguments[2] : [];\n\t if (!ES.IsCallable(F)) {\n\t throw new TypeError(F + ' is not a function');\n\t }\n\t return _apply(F, V, args);\n\t },\n\t\n\t RequireObjectCoercible: function (x, optMessage) {\n\t /* jshint eqnull:true */\n\t if (x == null) {\n\t throw new TypeError(optMessage || 'Cannot call method on ' + x);\n\t }\n\t return x;\n\t },\n\t\n\t // This might miss the \"(non-standard exotic and does not implement\n\t // [[Call]])\" case from\n\t // http://www.ecma-international.org/ecma-262/6.0/#sec-typeof-operator-runtime-semantics-evaluation\n\t // but we can't find any evidence these objects exist in practice.\n\t // If we find some in the future, you could test `Object(x) === x`,\n\t // which is reliable according to\n\t // http://www.ecma-international.org/ecma-262/6.0/#sec-toobject\n\t // but is not well optimized by runtimes and creates an object\n\t // whenever it returns false, and thus is very slow.\n\t TypeIsObject: function (x) {\n\t if (x === void 0 || x === null || x === true || x === false) {\n\t return false;\n\t }\n\t return typeof x === 'function' || typeof x === 'object';\n\t },\n\t\n\t ToObject: function (o, optMessage) {\n\t return Object(ES.RequireObjectCoercible(o, optMessage));\n\t },\n\t\n\t IsCallable: isCallable,\n\t\n\t IsConstructor: function (x) {\n\t // We can't tell callables from constructors in ES5\n\t return ES.IsCallable(x);\n\t },\n\t\n\t ToInt32: function (x) {\n\t return ES.ToNumber(x) >> 0;\n\t },\n\t\n\t ToUint32: function (x) {\n\t return ES.ToNumber(x) >>> 0;\n\t },\n\t\n\t ToNumber: function (value) {\n\t if (_toString(value) === '[object Symbol]') {\n\t throw new TypeError('Cannot convert a Symbol value to a number');\n\t }\n\t return +value;\n\t },\n\t\n\t ToInteger: function (value) {\n\t var number = ES.ToNumber(value);\n\t if (numberIsNaN(number)) { return 0; }\n\t if (number === 0 || !numberIsFinite(number)) { return number; }\n\t return (number > 0 ? 1 : -1) * _floor(_abs(number));\n\t },\n\t\n\t ToLength: function (value) {\n\t var len = ES.ToInteger(value);\n\t if (len <= 0) { return 0; } // includes converting -0 to +0\n\t if (len > Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER; }\n\t return len;\n\t },\n\t\n\t SameValue: function (a, b) {\n\t if (a === b) {\n\t // 0 === -0, but they are not identical.\n\t if (a === 0) { return 1 / a === 1 / b; }\n\t return true;\n\t }\n\t return numberIsNaN(a) && numberIsNaN(b);\n\t },\n\t\n\t SameValueZero: function (a, b) {\n\t // same as SameValue except for SameValueZero(+0, -0) == true\n\t return (a === b) || (numberIsNaN(a) && numberIsNaN(b));\n\t },\n\t\n\t IsIterable: function (o) {\n\t return ES.TypeIsObject(o) && (typeof o[$iterator$] !== 'undefined' || isArguments(o));\n\t },\n\t\n\t GetIterator: function (o) {\n\t if (isArguments(o)) {\n\t // special case support for `arguments`\n\t return new ArrayIterator(o, 'value');\n\t }\n\t var itFn = ES.GetMethod(o, $iterator$);\n\t if (!ES.IsCallable(itFn)) {\n\t // Better diagnostics if itFn is null or undefined\n\t throw new TypeError('value is not an iterable');\n\t }\n\t var it = ES.Call(itFn, o);\n\t if (!ES.TypeIsObject(it)) {\n\t throw new TypeError('bad iterator');\n\t }\n\t return it;\n\t },\n\t\n\t GetMethod: function (o, p) {\n\t var func = ES.ToObject(o)[p];\n\t if (func === void 0 || func === null) {\n\t return void 0;\n\t }\n\t if (!ES.IsCallable(func)) {\n\t throw new TypeError('Method not callable: ' + p);\n\t }\n\t return func;\n\t },\n\t\n\t IteratorComplete: function (iterResult) {\n\t return !!iterResult.done;\n\t },\n\t\n\t IteratorClose: function (iterator, completionIsThrow) {\n\t var returnMethod = ES.GetMethod(iterator, 'return');\n\t if (returnMethod === void 0) {\n\t return;\n\t }\n\t var innerResult, innerException;\n\t try {\n\t innerResult = ES.Call(returnMethod, iterator);\n\t } catch (e) {\n\t innerException = e;\n\t }\n\t if (completionIsThrow) {\n\t return;\n\t }\n\t if (innerException) {\n\t throw innerException;\n\t }\n\t if (!ES.TypeIsObject(innerResult)) {\n\t throw new TypeError(\"Iterator's return method returned a non-object.\");\n\t }\n\t },\n\t\n\t IteratorNext: function (it) {\n\t var result = arguments.length > 1 ? it.next(arguments[1]) : it.next();\n\t if (!ES.TypeIsObject(result)) {\n\t throw new TypeError('bad iterator');\n\t }\n\t return result;\n\t },\n\t\n\t IteratorStep: function (it) {\n\t var result = ES.IteratorNext(it);\n\t var done = ES.IteratorComplete(result);\n\t return done ? false : result;\n\t },\n\t\n\t Construct: function (C, args, newTarget, isES6internal) {\n\t var target = typeof newTarget === 'undefined' ? C : newTarget;\n\t\n\t if (!isES6internal && Reflect.construct) {\n\t // Try to use Reflect.construct if available\n\t return Reflect.construct(C, args, target);\n\t }\n\t // OK, we have to fake it. This will only work if the\n\t // C.[[ConstructorKind]] == \"base\" -- but that's the only\n\t // kind we can make in ES5 code anyway.\n\t\n\t // OrdinaryCreateFromConstructor(target, \"%ObjectPrototype%\")\n\t var proto = target.prototype;\n\t if (!ES.TypeIsObject(proto)) {\n\t proto = Object.prototype;\n\t }\n\t var obj = create(proto);\n\t // Call the constructor.\n\t var result = ES.Call(C, obj, args);\n\t return ES.TypeIsObject(result) ? result : obj;\n\t },\n\t\n\t SpeciesConstructor: function (O, defaultConstructor) {\n\t var C = O.constructor;\n\t if (C === void 0) {\n\t return defaultConstructor;\n\t }\n\t if (!ES.TypeIsObject(C)) {\n\t throw new TypeError('Bad constructor');\n\t }\n\t var S = C[symbolSpecies];\n\t if (S === void 0 || S === null) {\n\t return defaultConstructor;\n\t }\n\t if (!ES.IsConstructor(S)) {\n\t throw new TypeError('Bad @@species');\n\t }\n\t return S;\n\t },\n\t\n\t CreateHTML: function (string, tag, attribute, value) {\n\t var S = ES.ToString(string);\n\t var p1 = '<' + tag;\n\t if (attribute !== '') {\n\t var V = ES.ToString(value);\n\t var escapedV = V.replace(/\"/g, '"');\n\t p1 += ' ' + attribute + '=\"' + escapedV + '\"';\n\t }\n\t var p2 = p1 + '>';\n\t var p3 = p2 + S;\n\t return p3 + '';\n\t },\n\t\n\t IsRegExp: function IsRegExp(argument) {\n\t if (!ES.TypeIsObject(argument)) {\n\t return false;\n\t }\n\t var isRegExp = argument[Symbol.match];\n\t if (typeof isRegExp !== 'undefined') {\n\t return !!isRegExp;\n\t }\n\t return Type.regex(argument);\n\t },\n\t\n\t ToString: function ToString(string) {\n\t return $String(string);\n\t }\n\t };\n\t\n\t // Well-known Symbol shims\n\t if (supportsDescriptors && hasSymbols) {\n\t var defineWellKnownSymbol = function defineWellKnownSymbol(name) {\n\t if (Type.symbol(Symbol[name])) {\n\t return Symbol[name];\n\t }\n\t var sym = Symbol['for']('Symbol.' + name);\n\t Object.defineProperty(Symbol, name, {\n\t configurable: false,\n\t enumerable: false,\n\t writable: false,\n\t value: sym\n\t });\n\t return sym;\n\t };\n\t if (!Type.symbol(Symbol.search)) {\n\t var symbolSearch = defineWellKnownSymbol('search');\n\t var originalSearch = String.prototype.search;\n\t defineProperty(RegExp.prototype, symbolSearch, function search(string) {\n\t return ES.Call(originalSearch, string, [this]);\n\t });\n\t var searchShim = function search(regexp) {\n\t var O = ES.RequireObjectCoercible(this);\n\t if (regexp !== null && typeof regexp !== 'undefined') {\n\t var searcher = ES.GetMethod(regexp, symbolSearch);\n\t if (typeof searcher !== 'undefined') {\n\t return ES.Call(searcher, regexp, [O]);\n\t }\n\t }\n\t return ES.Call(originalSearch, O, [ES.ToString(regexp)]);\n\t };\n\t overrideNative(String.prototype, 'search', searchShim);\n\t }\n\t if (!Type.symbol(Symbol.replace)) {\n\t var symbolReplace = defineWellKnownSymbol('replace');\n\t var originalReplace = String.prototype.replace;\n\t defineProperty(RegExp.prototype, symbolReplace, function replace(string, replaceValue) {\n\t return ES.Call(originalReplace, string, [this, replaceValue]);\n\t });\n\t var replaceShim = function replace(searchValue, replaceValue) {\n\t var O = ES.RequireObjectCoercible(this);\n\t if (searchValue !== null && typeof searchValue !== 'undefined') {\n\t var replacer = ES.GetMethod(searchValue, symbolReplace);\n\t if (typeof replacer !== 'undefined') {\n\t return ES.Call(replacer, searchValue, [O, replaceValue]);\n\t }\n\t }\n\t return ES.Call(originalReplace, O, [ES.ToString(searchValue), replaceValue]);\n\t };\n\t overrideNative(String.prototype, 'replace', replaceShim);\n\t }\n\t if (!Type.symbol(Symbol.split)) {\n\t var symbolSplit = defineWellKnownSymbol('split');\n\t var originalSplit = String.prototype.split;\n\t defineProperty(RegExp.prototype, symbolSplit, function split(string, limit) {\n\t return ES.Call(originalSplit, string, [this, limit]);\n\t });\n\t var splitShim = function split(separator, limit) {\n\t var O = ES.RequireObjectCoercible(this);\n\t if (separator !== null && typeof separator !== 'undefined') {\n\t var splitter = ES.GetMethod(separator, symbolSplit);\n\t if (typeof splitter !== 'undefined') {\n\t return ES.Call(splitter, separator, [O, limit]);\n\t }\n\t }\n\t return ES.Call(originalSplit, O, [ES.ToString(separator), limit]);\n\t };\n\t overrideNative(String.prototype, 'split', splitShim);\n\t }\n\t var symbolMatchExists = Type.symbol(Symbol.match);\n\t var stringMatchIgnoresSymbolMatch = symbolMatchExists && (function () {\n\t // Firefox 41, through Nightly 45 has Symbol.match, but String#match ignores it.\n\t // Firefox 40 and below have Symbol.match but String#match works fine.\n\t var o = {};\n\t o[Symbol.match] = function () { return 42; };\n\t return 'a'.match(o) !== 42;\n\t }());\n\t if (!symbolMatchExists || stringMatchIgnoresSymbolMatch) {\n\t var symbolMatch = defineWellKnownSymbol('match');\n\t\n\t var originalMatch = String.prototype.match;\n\t defineProperty(RegExp.prototype, symbolMatch, function match(string) {\n\t return ES.Call(originalMatch, string, [this]);\n\t });\n\t\n\t var matchShim = function match(regexp) {\n\t var O = ES.RequireObjectCoercible(this);\n\t if (regexp !== null && typeof regexp !== 'undefined') {\n\t var matcher = ES.GetMethod(regexp, symbolMatch);\n\t if (typeof matcher !== 'undefined') {\n\t return ES.Call(matcher, regexp, [O]);\n\t }\n\t }\n\t return ES.Call(originalMatch, O, [ES.ToString(regexp)]);\n\t };\n\t overrideNative(String.prototype, 'match', matchShim);\n\t }\n\t }\n\t\n\t var wrapConstructor = function wrapConstructor(original, replacement, keysToSkip) {\n\t Value.preserveToString(replacement, original);\n\t if (Object.setPrototypeOf) {\n\t // sets up proper prototype chain where possible\n\t Object.setPrototypeOf(original, replacement);\n\t }\n\t if (supportsDescriptors) {\n\t _forEach(Object.getOwnPropertyNames(original), function (key) {\n\t if (key in noop || keysToSkip[key]) { return; }\n\t Value.proxy(original, key, replacement);\n\t });\n\t } else {\n\t _forEach(Object.keys(original), function (key) {\n\t if (key in noop || keysToSkip[key]) { return; }\n\t replacement[key] = original[key];\n\t });\n\t }\n\t replacement.prototype = original.prototype;\n\t Value.redefine(original.prototype, 'constructor', replacement);\n\t };\n\t\n\t var defaultSpeciesGetter = function () { return this; };\n\t var addDefaultSpecies = function (C) {\n\t if (supportsDescriptors && !_hasOwnProperty(C, symbolSpecies)) {\n\t Value.getter(C, symbolSpecies, defaultSpeciesGetter);\n\t }\n\t };\n\t\n\t var addIterator = function (prototype, impl) {\n\t var implementation = impl || function iterator() { return this; };\n\t defineProperty(prototype, $iterator$, implementation);\n\t if (!prototype[$iterator$] && Type.symbol($iterator$)) {\n\t // implementations are buggy when $iterator$ is a Symbol\n\t prototype[$iterator$] = implementation;\n\t }\n\t };\n\t\n\t var createDataProperty = function createDataProperty(object, name, value) {\n\t if (supportsDescriptors) {\n\t Object.defineProperty(object, name, {\n\t configurable: true,\n\t enumerable: true,\n\t writable: true,\n\t value: value\n\t });\n\t } else {\n\t object[name] = value;\n\t }\n\t };\n\t var createDataPropertyOrThrow = function createDataPropertyOrThrow(object, name, value) {\n\t createDataProperty(object, name, value);\n\t if (!ES.SameValue(object[name], value)) {\n\t throw new TypeError('property is nonconfigurable');\n\t }\n\t };\n\t\n\t var emulateES6construct = function (o, defaultNewTarget, defaultProto, slots) {\n\t // This is an es5 approximation to es6 construct semantics. in es6,\n\t // 'new Foo' invokes Foo.[[Construct]] which (for almost all objects)\n\t // just sets the internal variable NewTarget (in es6 syntax `new.target`)\n\t // to Foo and then returns Foo().\n\t\n\t // Many ES6 object then have constructors of the form:\n\t // 1. If NewTarget is undefined, throw a TypeError exception\n\t // 2. Let xxx by OrdinaryCreateFromConstructor(NewTarget, yyy, zzz)\n\t\n\t // So we're going to emulate those first two steps.\n\t if (!ES.TypeIsObject(o)) {\n\t throw new TypeError('Constructor requires `new`: ' + defaultNewTarget.name);\n\t }\n\t var proto = defaultNewTarget.prototype;\n\t if (!ES.TypeIsObject(proto)) {\n\t proto = defaultProto;\n\t }\n\t var obj = create(proto);\n\t for (var name in slots) {\n\t if (_hasOwnProperty(slots, name)) {\n\t var value = slots[name];\n\t defineProperty(obj, name, value, true);\n\t }\n\t }\n\t return obj;\n\t };\n\t\n\t // Firefox 31 reports this function's length as 0\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=1062484\n\t if (String.fromCodePoint && String.fromCodePoint.length !== 1) {\n\t var originalFromCodePoint = String.fromCodePoint;\n\t overrideNative(String, 'fromCodePoint', function fromCodePoint(codePoints) {\n\t return ES.Call(originalFromCodePoint, this, arguments);\n\t });\n\t }\n\t\n\t var StringShims = {\n\t fromCodePoint: function fromCodePoint(codePoints) {\n\t var result = [];\n\t var next;\n\t for (var i = 0, length = arguments.length; i < length; i++) {\n\t next = Number(arguments[i]);\n\t if (!ES.SameValue(next, ES.ToInteger(next)) || next < 0 || next > 0x10FFFF) {\n\t throw new RangeError('Invalid code point ' + next);\n\t }\n\t\n\t if (next < 0x10000) {\n\t _push(result, String.fromCharCode(next));\n\t } else {\n\t next -= 0x10000;\n\t _push(result, String.fromCharCode((next >> 10) + 0xD800));\n\t _push(result, String.fromCharCode((next % 0x400) + 0xDC00));\n\t }\n\t }\n\t return result.join('');\n\t },\n\t\n\t raw: function raw(callSite) {\n\t var cooked = ES.ToObject(callSite, 'bad callSite');\n\t var rawString = ES.ToObject(cooked.raw, 'bad raw value');\n\t var len = rawString.length;\n\t var literalsegments = ES.ToLength(len);\n\t if (literalsegments <= 0) {\n\t return '';\n\t }\n\t\n\t var stringElements = [];\n\t var nextIndex = 0;\n\t var nextKey, next, nextSeg, nextSub;\n\t while (nextIndex < literalsegments) {\n\t nextKey = ES.ToString(nextIndex);\n\t nextSeg = ES.ToString(rawString[nextKey]);\n\t _push(stringElements, nextSeg);\n\t if (nextIndex + 1 >= literalsegments) {\n\t break;\n\t }\n\t next = nextIndex + 1 < arguments.length ? arguments[nextIndex + 1] : '';\n\t nextSub = ES.ToString(next);\n\t _push(stringElements, nextSub);\n\t nextIndex += 1;\n\t }\n\t return stringElements.join('');\n\t }\n\t };\n\t if (String.raw && String.raw({ raw: { 0: 'x', 1: 'y', length: 2 } }) !== 'xy') {\n\t // IE 11 TP has a broken String.raw implementation\n\t overrideNative(String, 'raw', StringShims.raw);\n\t }\n\t defineProperties(String, StringShims);\n\t\n\t // Fast repeat, uses the `Exponentiation by squaring` algorithm.\n\t // Perf: http://jsperf.com/string-repeat2/2\n\t var stringRepeat = function repeat(s, times) {\n\t if (times < 1) { return ''; }\n\t if (times % 2) { return repeat(s, times - 1) + s; }\n\t var half = repeat(s, times / 2);\n\t return half + half;\n\t };\n\t var stringMaxLength = Infinity;\n\t\n\t var StringPrototypeShims = {\n\t repeat: function repeat(times) {\n\t var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n\t var numTimes = ES.ToInteger(times);\n\t if (numTimes < 0 || numTimes >= stringMaxLength) {\n\t throw new RangeError('repeat count must be less than infinity and not overflow maximum string size');\n\t }\n\t return stringRepeat(thisStr, numTimes);\n\t },\n\t\n\t startsWith: function startsWith(searchString) {\n\t var S = ES.ToString(ES.RequireObjectCoercible(this));\n\t if (ES.IsRegExp(searchString)) {\n\t throw new TypeError('Cannot call method \"startsWith\" with a regex');\n\t }\n\t var searchStr = ES.ToString(searchString);\n\t var position;\n\t if (arguments.length > 1) {\n\t position = arguments[1];\n\t }\n\t var start = _max(ES.ToInteger(position), 0);\n\t return _strSlice(S, start, start + searchStr.length) === searchStr;\n\t },\n\t\n\t endsWith: function endsWith(searchString) {\n\t var S = ES.ToString(ES.RequireObjectCoercible(this));\n\t if (ES.IsRegExp(searchString)) {\n\t throw new TypeError('Cannot call method \"endsWith\" with a regex');\n\t }\n\t var searchStr = ES.ToString(searchString);\n\t var len = S.length;\n\t var endPosition;\n\t if (arguments.length > 1) {\n\t endPosition = arguments[1];\n\t }\n\t var pos = typeof endPosition === 'undefined' ? len : ES.ToInteger(endPosition);\n\t var end = _min(_max(pos, 0), len);\n\t return _strSlice(S, end - searchStr.length, end) === searchStr;\n\t },\n\t\n\t includes: function includes(searchString) {\n\t if (ES.IsRegExp(searchString)) {\n\t throw new TypeError('\"includes\" does not accept a RegExp');\n\t }\n\t var searchStr = ES.ToString(searchString);\n\t var position;\n\t if (arguments.length > 1) {\n\t position = arguments[1];\n\t }\n\t // Somehow this trick makes method 100% compat with the spec.\n\t return _indexOf(this, searchStr, position) !== -1;\n\t },\n\t\n\t codePointAt: function codePointAt(pos) {\n\t var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n\t var position = ES.ToInteger(pos);\n\t var length = thisStr.length;\n\t if (position >= 0 && position < length) {\n\t var first = thisStr.charCodeAt(position);\n\t var isEnd = position + 1 === length;\n\t if (first < 0xD800 || first > 0xDBFF || isEnd) { return first; }\n\t var second = thisStr.charCodeAt(position + 1);\n\t if (second < 0xDC00 || second > 0xDFFF) { return first; }\n\t return ((first - 0xD800) * 1024) + (second - 0xDC00) + 0x10000;\n\t }\n\t }\n\t };\n\t if (String.prototype.includes && 'a'.includes('a', Infinity) !== false) {\n\t overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n\t }\n\t\n\t if (String.prototype.startsWith && String.prototype.endsWith) {\n\t var startsWithRejectsRegex = throwsError(function () {\n\t /* throws if spec-compliant */\n\t '/a/'.startsWith(/a/);\n\t });\n\t var startsWithHandlesInfinity = valueOrFalseIfThrows(function () {\n\t return 'abc'.startsWith('a', Infinity) === false;\n\t });\n\t if (!startsWithRejectsRegex || !startsWithHandlesInfinity) {\n\t // Firefox (< 37?) and IE 11 TP have a noncompliant startsWith implementation\n\t overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n\t overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n\t }\n\t }\n\t if (hasSymbols) {\n\t var startsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n\t var re = /a/;\n\t re[Symbol.match] = false;\n\t return '/a/'.startsWith(re);\n\t });\n\t if (!startsWithSupportsSymbolMatch) {\n\t overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n\t }\n\t var endsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n\t var re = /a/;\n\t re[Symbol.match] = false;\n\t return '/a/'.endsWith(re);\n\t });\n\t if (!endsWithSupportsSymbolMatch) {\n\t overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n\t }\n\t var includesSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n\t var re = /a/;\n\t re[Symbol.match] = false;\n\t return '/a/'.includes(re);\n\t });\n\t if (!includesSupportsSymbolMatch) {\n\t overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n\t }\n\t }\n\t\n\t defineProperties(String.prototype, StringPrototypeShims);\n\t\n\t // whitespace from: http://es5.github.io/#x15.5.4.20\n\t // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\n\t var ws = [\n\t '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n\t '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n\t '\\u2029\\uFEFF'\n\t ].join('');\n\t var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\n\t var trimShim = function trim() {\n\t return ES.ToString(ES.RequireObjectCoercible(this)).replace(trimRegexp, '');\n\t };\n\t var nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\n\t var nonWSregex = new RegExp('[' + nonWS + ']', 'g');\n\t var isBadHexRegex = /^[\\-+]0x[0-9a-f]+$/i;\n\t var hasStringTrimBug = nonWS.trim().length !== nonWS.length;\n\t defineProperty(String.prototype, 'trim', trimShim, hasStringTrimBug);\n\t\n\t // Given an argument x, it will return an IteratorResult object,\n\t // with value set to x and done to false.\n\t // Given no arguments, it will return an iterator completion object.\n\t var iteratorResult = function (x) {\n\t return { value: x, done: arguments.length === 0 };\n\t };\n\t\n\t // see http://www.ecma-international.org/ecma-262/6.0/#sec-string.prototype-@@iterator\n\t var StringIterator = function (s) {\n\t ES.RequireObjectCoercible(s);\n\t this._s = ES.ToString(s);\n\t this._i = 0;\n\t };\n\t StringIterator.prototype.next = function () {\n\t var s = this._s;\n\t var i = this._i;\n\t if (typeof s === 'undefined' || i >= s.length) {\n\t this._s = void 0;\n\t return iteratorResult();\n\t }\n\t var first = s.charCodeAt(i);\n\t var second, len;\n\t if (first < 0xD800 || first > 0xDBFF || (i + 1) === s.length) {\n\t len = 1;\n\t } else {\n\t second = s.charCodeAt(i + 1);\n\t len = (second < 0xDC00 || second > 0xDFFF) ? 1 : 2;\n\t }\n\t this._i = i + len;\n\t return iteratorResult(s.substr(i, len));\n\t };\n\t addIterator(StringIterator.prototype);\n\t addIterator(String.prototype, function () {\n\t return new StringIterator(this);\n\t });\n\t\n\t var ArrayShims = {\n\t from: function from(items) {\n\t var C = this;\n\t var mapFn;\n\t if (arguments.length > 1) {\n\t mapFn = arguments[1];\n\t }\n\t var mapping, T;\n\t if (typeof mapFn === 'undefined') {\n\t mapping = false;\n\t } else {\n\t if (!ES.IsCallable(mapFn)) {\n\t throw new TypeError('Array.from: when provided, the second argument must be a function');\n\t }\n\t if (arguments.length > 2) {\n\t T = arguments[2];\n\t }\n\t mapping = true;\n\t }\n\t\n\t // Note that that Arrays will use ArrayIterator:\n\t // https://bugs.ecmascript.org/show_bug.cgi?id=2416\n\t var usingIterator = typeof (isArguments(items) || ES.GetMethod(items, $iterator$)) !== 'undefined';\n\t\n\t var length, result, i;\n\t if (usingIterator) {\n\t result = ES.IsConstructor(C) ? Object(new C()) : [];\n\t var iterator = ES.GetIterator(items);\n\t var next, nextValue;\n\t\n\t i = 0;\n\t while (true) {\n\t next = ES.IteratorStep(iterator);\n\t if (next === false) {\n\t break;\n\t }\n\t nextValue = next.value;\n\t try {\n\t if (mapping) {\n\t nextValue = typeof T === 'undefined' ? mapFn(nextValue, i) : _call(mapFn, T, nextValue, i);\n\t }\n\t result[i] = nextValue;\n\t } catch (e) {\n\t ES.IteratorClose(iterator, true);\n\t throw e;\n\t }\n\t i += 1;\n\t }\n\t length = i;\n\t } else {\n\t var arrayLike = ES.ToObject(items);\n\t length = ES.ToLength(arrayLike.length);\n\t result = ES.IsConstructor(C) ? Object(new C(length)) : new Array(length);\n\t var value;\n\t for (i = 0; i < length; ++i) {\n\t value = arrayLike[i];\n\t if (mapping) {\n\t value = typeof T === 'undefined' ? mapFn(value, i) : _call(mapFn, T, value, i);\n\t }\n\t createDataPropertyOrThrow(result, i, value);\n\t }\n\t }\n\t\n\t result.length = length;\n\t return result;\n\t },\n\t\n\t of: function of() {\n\t var len = arguments.length;\n\t var C = this;\n\t var A = isArray(C) || !ES.IsCallable(C) ? new Array(len) : ES.Construct(C, [len]);\n\t for (var k = 0; k < len; ++k) {\n\t createDataPropertyOrThrow(A, k, arguments[k]);\n\t }\n\t A.length = len;\n\t return A;\n\t }\n\t };\n\t defineProperties(Array, ArrayShims);\n\t addDefaultSpecies(Array);\n\t\n\t // Our ArrayIterator is private; see\n\t // https://github.com/paulmillr/es6-shim/issues/252\n\t ArrayIterator = function (array, kind) {\n\t this.i = 0;\n\t this.array = array;\n\t this.kind = kind;\n\t };\n\t\n\t defineProperties(ArrayIterator.prototype, {\n\t next: function () {\n\t var i = this.i;\n\t var array = this.array;\n\t if (!(this instanceof ArrayIterator)) {\n\t throw new TypeError('Not an ArrayIterator');\n\t }\n\t if (typeof array !== 'undefined') {\n\t var len = ES.ToLength(array.length);\n\t for (; i < len; i++) {\n\t var kind = this.kind;\n\t var retval;\n\t if (kind === 'key') {\n\t retval = i;\n\t } else if (kind === 'value') {\n\t retval = array[i];\n\t } else if (kind === 'entry') {\n\t retval = [i, array[i]];\n\t }\n\t this.i = i + 1;\n\t return iteratorResult(retval);\n\t }\n\t }\n\t this.array = void 0;\n\t return iteratorResult();\n\t }\n\t });\n\t addIterator(ArrayIterator.prototype);\n\t\n\t/*\n\t var orderKeys = function orderKeys(a, b) {\n\t var aNumeric = String(ES.ToInteger(a)) === a;\n\t var bNumeric = String(ES.ToInteger(b)) === b;\n\t if (aNumeric && bNumeric) {\n\t return b - a;\n\t } else if (aNumeric && !bNumeric) {\n\t return -1;\n\t } else if (!aNumeric && bNumeric) {\n\t return 1;\n\t } else {\n\t return a.localeCompare(b);\n\t }\n\t };\n\t\n\t var getAllKeys = function getAllKeys(object) {\n\t var ownKeys = [];\n\t var keys = [];\n\t\n\t for (var key in object) {\n\t _push(_hasOwnProperty(object, key) ? ownKeys : keys, key);\n\t }\n\t _sort(ownKeys, orderKeys);\n\t _sort(keys, orderKeys);\n\t\n\t return _concat(ownKeys, keys);\n\t };\n\t */\n\t\n\t // note: this is positioned here because it depends on ArrayIterator\n\t var arrayOfSupportsSubclassing = Array.of === ArrayShims.of || (function () {\n\t // Detects a bug in Webkit nightly r181886\n\t var Foo = function Foo(len) { this.length = len; };\n\t Foo.prototype = [];\n\t var fooArr = Array.of.apply(Foo, [1, 2]);\n\t return fooArr instanceof Foo && fooArr.length === 2;\n\t }());\n\t if (!arrayOfSupportsSubclassing) {\n\t overrideNative(Array, 'of', ArrayShims.of);\n\t }\n\t\n\t var ArrayPrototypeShims = {\n\t copyWithin: function copyWithin(target, start) {\n\t var o = ES.ToObject(this);\n\t var len = ES.ToLength(o.length);\n\t var relativeTarget = ES.ToInteger(target);\n\t var relativeStart = ES.ToInteger(start);\n\t var to = relativeTarget < 0 ? _max(len + relativeTarget, 0) : _min(relativeTarget, len);\n\t var from = relativeStart < 0 ? _max(len + relativeStart, 0) : _min(relativeStart, len);\n\t var end;\n\t if (arguments.length > 2) {\n\t end = arguments[2];\n\t }\n\t var relativeEnd = typeof end === 'undefined' ? len : ES.ToInteger(end);\n\t var finalItem = relativeEnd < 0 ? _max(len + relativeEnd, 0) : _min(relativeEnd, len);\n\t var count = _min(finalItem - from, len - to);\n\t var direction = 1;\n\t if (from < to && to < (from + count)) {\n\t direction = -1;\n\t from += count - 1;\n\t to += count - 1;\n\t }\n\t while (count > 0) {\n\t if (from in o) {\n\t o[to] = o[from];\n\t } else {\n\t delete o[to];\n\t }\n\t from += direction;\n\t to += direction;\n\t count -= 1;\n\t }\n\t return o;\n\t },\n\t\n\t fill: function fill(value) {\n\t var start;\n\t if (arguments.length > 1) {\n\t start = arguments[1];\n\t }\n\t var end;\n\t if (arguments.length > 2) {\n\t end = arguments[2];\n\t }\n\t var O = ES.ToObject(this);\n\t var len = ES.ToLength(O.length);\n\t start = ES.ToInteger(typeof start === 'undefined' ? 0 : start);\n\t end = ES.ToInteger(typeof end === 'undefined' ? len : end);\n\t\n\t var relativeStart = start < 0 ? _max(len + start, 0) : _min(start, len);\n\t var relativeEnd = end < 0 ? len + end : end;\n\t\n\t for (var i = relativeStart; i < len && i < relativeEnd; ++i) {\n\t O[i] = value;\n\t }\n\t return O;\n\t },\n\t\n\t find: function find(predicate) {\n\t var list = ES.ToObject(this);\n\t var length = ES.ToLength(list.length);\n\t if (!ES.IsCallable(predicate)) {\n\t throw new TypeError('Array#find: predicate must be a function');\n\t }\n\t var thisArg = arguments.length > 1 ? arguments[1] : null;\n\t for (var i = 0, value; i < length; i++) {\n\t value = list[i];\n\t if (thisArg) {\n\t if (_call(predicate, thisArg, value, i, list)) {\n\t return value;\n\t }\n\t } else if (predicate(value, i, list)) {\n\t return value;\n\t }\n\t }\n\t },\n\t\n\t findIndex: function findIndex(predicate) {\n\t var list = ES.ToObject(this);\n\t var length = ES.ToLength(list.length);\n\t if (!ES.IsCallable(predicate)) {\n\t throw new TypeError('Array#findIndex: predicate must be a function');\n\t }\n\t var thisArg = arguments.length > 1 ? arguments[1] : null;\n\t for (var i = 0; i < length; i++) {\n\t if (thisArg) {\n\t if (_call(predicate, thisArg, list[i], i, list)) {\n\t return i;\n\t }\n\t } else if (predicate(list[i], i, list)) {\n\t return i;\n\t }\n\t }\n\t return -1;\n\t },\n\t\n\t keys: function keys() {\n\t return new ArrayIterator(this, 'key');\n\t },\n\t\n\t values: function values() {\n\t return new ArrayIterator(this, 'value');\n\t },\n\t\n\t entries: function entries() {\n\t return new ArrayIterator(this, 'entry');\n\t }\n\t };\n\t // Safari 7.1 defines Array#keys and Array#entries natively,\n\t // but the resulting ArrayIterator objects don't have a \"next\" method.\n\t if (Array.prototype.keys && !ES.IsCallable([1].keys().next)) {\n\t delete Array.prototype.keys;\n\t }\n\t if (Array.prototype.entries && !ES.IsCallable([1].entries().next)) {\n\t delete Array.prototype.entries;\n\t }\n\t\n\t // Chrome 38 defines Array#keys and Array#entries, and Array#@@iterator, but not Array#values\n\t if (Array.prototype.keys && Array.prototype.entries && !Array.prototype.values && Array.prototype[$iterator$]) {\n\t defineProperties(Array.prototype, {\n\t values: Array.prototype[$iterator$]\n\t });\n\t if (Type.symbol(Symbol.unscopables)) {\n\t Array.prototype[Symbol.unscopables].values = true;\n\t }\n\t }\n\t // Chrome 40 defines Array#values with the incorrect name, although Array#{keys,entries} have the correct name\n\t if (functionsHaveNames && Array.prototype.values && Array.prototype.values.name !== 'values') {\n\t var originalArrayPrototypeValues = Array.prototype.values;\n\t overrideNative(Array.prototype, 'values', function values() { return ES.Call(originalArrayPrototypeValues, this, arguments); });\n\t defineProperty(Array.prototype, $iterator$, Array.prototype.values, true);\n\t }\n\t defineProperties(Array.prototype, ArrayPrototypeShims);\n\t\n\t if (1 / [true].indexOf(true, -0) < 0) {\n\t // indexOf when given a position arg of -0 should return +0.\n\t // https://github.com/tc39/ecma262/pull/316\n\t defineProperty(Array.prototype, 'indexOf', function indexOf(searchElement) {\n\t var value = _arrayIndexOfApply(this, arguments);\n\t if (value === 0 && (1 / value) < 0) {\n\t return 0;\n\t }\n\t return value;\n\t }, true);\n\t }\n\t\n\t addIterator(Array.prototype, function () { return this.values(); });\n\t // Chrome defines keys/values/entries on Array, but doesn't give us\n\t // any way to identify its iterator. So add our own shimmed field.\n\t if (Object.getPrototypeOf) {\n\t addIterator(Object.getPrototypeOf([].values()));\n\t }\n\t\n\t // note: this is positioned here because it relies on Array#entries\n\t var arrayFromSwallowsNegativeLengths = (function () {\n\t // Detects a Firefox bug in v32\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=1063993\n\t return valueOrFalseIfThrows(function () {\n\t return Array.from({ length: -1 }).length === 0;\n\t });\n\t }());\n\t var arrayFromHandlesIterables = (function () {\n\t // Detects a bug in Webkit nightly r181886\n\t var arr = Array.from([0].entries());\n\t return arr.length === 1 && isArray(arr[0]) && arr[0][0] === 0 && arr[0][1] === 0;\n\t }());\n\t if (!arrayFromSwallowsNegativeLengths || !arrayFromHandlesIterables) {\n\t overrideNative(Array, 'from', ArrayShims.from);\n\t }\n\t var arrayFromHandlesUndefinedMapFunction = (function () {\n\t // Microsoft Edge v0.11 throws if the mapFn argument is *provided* but undefined,\n\t // but the spec doesn't care if it's provided or not - undefined doesn't throw.\n\t return valueOrFalseIfThrows(function () {\n\t return Array.from([0], void 0);\n\t });\n\t }());\n\t if (!arrayFromHandlesUndefinedMapFunction) {\n\t var origArrayFrom = Array.from;\n\t overrideNative(Array, 'from', function from(items) {\n\t if (arguments.length > 1 && typeof arguments[1] !== 'undefined') {\n\t return ES.Call(origArrayFrom, this, arguments);\n\t } else {\n\t return _call(origArrayFrom, this, items);\n\t }\n\t });\n\t }\n\t\n\t var int32sAsOne = -(Math.pow(2, 32) - 1);\n\t var toLengthsCorrectly = function (method, reversed) {\n\t var obj = { length: int32sAsOne };\n\t obj[reversed ? (obj.length >>> 0) - 1 : 0] = true;\n\t return valueOrFalseIfThrows(function () {\n\t _call(method, obj, function () {\n\t // note: in nonconforming browsers, this will be called\n\t // -1 >>> 0 times, which is 4294967295, so the throw matters.\n\t throw new RangeError('should not reach here');\n\t }, []);\n\t return true;\n\t });\n\t };\n\t if (!toLengthsCorrectly(Array.prototype.forEach)) {\n\t var originalForEach = Array.prototype.forEach;\n\t overrideNative(Array.prototype, 'forEach', function forEach(callbackFn) {\n\t return ES.Call(originalForEach, this.length >= 0 ? this : [], arguments);\n\t }, true);\n\t }\n\t if (!toLengthsCorrectly(Array.prototype.map)) {\n\t var originalMap = Array.prototype.map;\n\t overrideNative(Array.prototype, 'map', function map(callbackFn) {\n\t return ES.Call(originalMap, this.length >= 0 ? this : [], arguments);\n\t }, true);\n\t }\n\t if (!toLengthsCorrectly(Array.prototype.filter)) {\n\t var originalFilter = Array.prototype.filter;\n\t overrideNative(Array.prototype, 'filter', function filter(callbackFn) {\n\t return ES.Call(originalFilter, this.length >= 0 ? this : [], arguments);\n\t }, true);\n\t }\n\t if (!toLengthsCorrectly(Array.prototype.some)) {\n\t var originalSome = Array.prototype.some;\n\t overrideNative(Array.prototype, 'some', function some(callbackFn) {\n\t return ES.Call(originalSome, this.length >= 0 ? this : [], arguments);\n\t }, true);\n\t }\n\t if (!toLengthsCorrectly(Array.prototype.every)) {\n\t var originalEvery = Array.prototype.every;\n\t overrideNative(Array.prototype, 'every', function every(callbackFn) {\n\t return ES.Call(originalEvery, this.length >= 0 ? this : [], arguments);\n\t }, true);\n\t }\n\t if (!toLengthsCorrectly(Array.prototype.reduce)) {\n\t var originalReduce = Array.prototype.reduce;\n\t overrideNative(Array.prototype, 'reduce', function reduce(callbackFn) {\n\t return ES.Call(originalReduce, this.length >= 0 ? this : [], arguments);\n\t }, true);\n\t }\n\t if (!toLengthsCorrectly(Array.prototype.reduceRight, true)) {\n\t var originalReduceRight = Array.prototype.reduceRight;\n\t overrideNative(Array.prototype, 'reduceRight', function reduceRight(callbackFn) {\n\t return ES.Call(originalReduceRight, this.length >= 0 ? this : [], arguments);\n\t }, true);\n\t }\n\t\n\t var lacksOctalSupport = Number('0o10') !== 8;\n\t var lacksBinarySupport = Number('0b10') !== 2;\n\t var trimsNonWhitespace = _some(nonWS, function (c) {\n\t return Number(c + 0 + c) === 0;\n\t });\n\t if (lacksOctalSupport || lacksBinarySupport || trimsNonWhitespace) {\n\t var OrigNumber = Number;\n\t var binaryRegex = /^0b[01]+$/i;\n\t var octalRegex = /^0o[0-7]+$/i;\n\t // Note that in IE 8, RegExp.prototype.test doesn't seem to exist: ie, \"test\" is an own property of regexes. wtf.\n\t var isBinary = binaryRegex.test.bind(binaryRegex);\n\t var isOctal = octalRegex.test.bind(octalRegex);\n\t var toPrimitive = function (O) { // need to replace this with `es-to-primitive/es6`\n\t var result;\n\t if (typeof O.valueOf === 'function') {\n\t result = O.valueOf();\n\t if (Type.primitive(result)) {\n\t return result;\n\t }\n\t }\n\t if (typeof O.toString === 'function') {\n\t result = O.toString();\n\t if (Type.primitive(result)) {\n\t return result;\n\t }\n\t }\n\t throw new TypeError('No default value');\n\t };\n\t var hasNonWS = nonWSregex.test.bind(nonWSregex);\n\t var isBadHex = isBadHexRegex.test.bind(isBadHexRegex);\n\t var NumberShim = (function () {\n\t // this is wrapped in an IIFE because of IE 6-8's wacky scoping issues with named function expressions.\n\t var NumberShim = function Number(value) {\n\t var primValue;\n\t if (arguments.length > 0) {\n\t primValue = Type.primitive(value) ? value : toPrimitive(value, 'number');\n\t } else {\n\t primValue = 0;\n\t }\n\t if (typeof primValue === 'string') {\n\t primValue = ES.Call(trimShim, primValue);\n\t if (isBinary(primValue)) {\n\t primValue = parseInt(_strSlice(primValue, 2), 2);\n\t } else if (isOctal(primValue)) {\n\t primValue = parseInt(_strSlice(primValue, 2), 8);\n\t } else if (hasNonWS(primValue) || isBadHex(primValue)) {\n\t primValue = NaN;\n\t }\n\t }\n\t var receiver = this;\n\t var valueOfSucceeds = valueOrFalseIfThrows(function () {\n\t OrigNumber.prototype.valueOf.call(receiver);\n\t return true;\n\t });\n\t if (receiver instanceof NumberShim && !valueOfSucceeds) {\n\t return new OrigNumber(primValue);\n\t }\n\t /* jshint newcap: false */\n\t return OrigNumber(primValue);\n\t /* jshint newcap: true */\n\t };\n\t return NumberShim;\n\t }());\n\t wrapConstructor(OrigNumber, NumberShim, {});\n\t // this is necessary for ES3 browsers, where these properties are non-enumerable.\n\t defineProperties(NumberShim, {\n\t NaN: OrigNumber.NaN,\n\t MAX_VALUE: OrigNumber.MAX_VALUE,\n\t MIN_VALUE: OrigNumber.MIN_VALUE,\n\t NEGATIVE_INFINITY: OrigNumber.NEGATIVE_INFINITY,\n\t POSITIVE_INFINITY: OrigNumber.POSITIVE_INFINITY\n\t });\n\t /* globals Number: true */\n\t /* eslint-disable no-undef */\n\t /* jshint -W020 */\n\t Number = NumberShim;\n\t Value.redefine(globals, 'Number', NumberShim);\n\t /* jshint +W020 */\n\t /* eslint-enable no-undef */\n\t /* globals Number: false */\n\t }\n\t\n\t var maxSafeInteger = Math.pow(2, 53) - 1;\n\t defineProperties(Number, {\n\t MAX_SAFE_INTEGER: maxSafeInteger,\n\t MIN_SAFE_INTEGER: -maxSafeInteger,\n\t EPSILON: 2.220446049250313e-16,\n\t\n\t parseInt: globals.parseInt,\n\t parseFloat: globals.parseFloat,\n\t\n\t isFinite: numberIsFinite,\n\t\n\t isInteger: function isInteger(value) {\n\t return numberIsFinite(value) && ES.ToInteger(value) === value;\n\t },\n\t\n\t isSafeInteger: function isSafeInteger(value) {\n\t return Number.isInteger(value) && _abs(value) <= Number.MAX_SAFE_INTEGER;\n\t },\n\t\n\t isNaN: numberIsNaN\n\t });\n\t // Firefox 37 has a conforming Number.parseInt, but it's not === to the global parseInt (fixed in v40)\n\t defineProperty(Number, 'parseInt', globals.parseInt, Number.parseInt !== globals.parseInt);\n\t\n\t // Work around bugs in Array#find and Array#findIndex -- early\n\t // implementations skipped holes in sparse arrays. (Note that the\n\t // implementations of find/findIndex indirectly use shimmed\n\t // methods of Number, so this test has to happen down here.)\n\t /*jshint elision: true */\n\t /* eslint-disable no-sparse-arrays */\n\t if (![, 1].find(function (item, idx) { return idx === 0; })) {\n\t overrideNative(Array.prototype, 'find', ArrayPrototypeShims.find);\n\t }\n\t if ([, 1].findIndex(function (item, idx) { return idx === 0; }) !== 0) {\n\t overrideNative(Array.prototype, 'findIndex', ArrayPrototypeShims.findIndex);\n\t }\n\t /* eslint-enable no-sparse-arrays */\n\t /*jshint elision: false */\n\t\n\t var isEnumerableOn = Function.bind.call(Function.bind, Object.prototype.propertyIsEnumerable);\n\t var ensureEnumerable = function ensureEnumerable(obj, prop) {\n\t if (supportsDescriptors && isEnumerableOn(obj, prop)) {\n\t Object.defineProperty(obj, prop, { enumerable: false });\n\t }\n\t };\n\t var sliceArgs = function sliceArgs() {\n\t // per https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n\t // and https://gist.github.com/WebReflection/4327762cb87a8c634a29\n\t var initial = Number(this);\n\t var len = arguments.length;\n\t var desiredArgCount = len - initial;\n\t var args = new Array(desiredArgCount < 0 ? 0 : desiredArgCount);\n\t for (var i = initial; i < len; ++i) {\n\t args[i - initial] = arguments[i];\n\t }\n\t return args;\n\t };\n\t var assignTo = function assignTo(source) {\n\t return function assignToSource(target, key) {\n\t target[key] = source[key];\n\t return target;\n\t };\n\t };\n\t var assignReducer = function (target, source) {\n\t var sourceKeys = keys(Object(source));\n\t var symbols;\n\t if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n\t symbols = _filter(Object.getOwnPropertySymbols(Object(source)), isEnumerableOn(source));\n\t }\n\t return _reduce(_concat(sourceKeys, symbols || []), assignTo(source), target);\n\t };\n\t\n\t var ObjectShims = {\n\t // 19.1.3.1\n\t assign: function (target, source) {\n\t var to = ES.ToObject(target, 'Cannot convert undefined or null to object');\n\t return _reduce(ES.Call(sliceArgs, 1, arguments), assignReducer, to);\n\t },\n\t\n\t // Added in WebKit in https://bugs.webkit.org/show_bug.cgi?id=143865\n\t is: function is(a, b) {\n\t return ES.SameValue(a, b);\n\t }\n\t };\n\t var assignHasPendingExceptions = Object.assign && Object.preventExtensions && (function () {\n\t // Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t // which is 72% slower than our shim, and Firefox 40's native implementation.\n\t var thrower = Object.preventExtensions({ 1: 2 });\n\t try {\n\t Object.assign(thrower, 'xy');\n\t } catch (e) {\n\t return thrower[1] === 'y';\n\t }\n\t }());\n\t if (assignHasPendingExceptions) {\n\t overrideNative(Object, 'assign', ObjectShims.assign);\n\t }\n\t defineProperties(Object, ObjectShims);\n\t\n\t if (supportsDescriptors) {\n\t var ES5ObjectShims = {\n\t // 19.1.3.9\n\t // shim from https://gist.github.com/WebReflection/5593554\n\t setPrototypeOf: (function (Object, magic) {\n\t var set;\n\t\n\t var checkArgs = function (O, proto) {\n\t if (!ES.TypeIsObject(O)) {\n\t throw new TypeError('cannot set prototype on a non-object');\n\t }\n\t if (!(proto === null || ES.TypeIsObject(proto))) {\n\t throw new TypeError('can only set prototype to an object or null' + proto);\n\t }\n\t };\n\t\n\t var setPrototypeOf = function (O, proto) {\n\t checkArgs(O, proto);\n\t _call(set, O, proto);\n\t return O;\n\t };\n\t\n\t try {\n\t // this works already in Firefox and Safari\n\t set = Object.getOwnPropertyDescriptor(Object.prototype, magic).set;\n\t _call(set, {}, null);\n\t } catch (e) {\n\t if (Object.prototype !== {}[magic]) {\n\t // IE < 11 cannot be shimmed\n\t return;\n\t }\n\t // probably Chrome or some old Mobile stock browser\n\t set = function (proto) {\n\t this[magic] = proto;\n\t };\n\t // please note that this will **not** work\n\t // in those browsers that do not inherit\n\t // __proto__ by mistake from Object.prototype\n\t // in these cases we should probably throw an error\n\t // or at least be informed about the issue\n\t setPrototypeOf.polyfill = setPrototypeOf(\n\t setPrototypeOf({}, null),\n\t Object.prototype\n\t ) instanceof Object;\n\t // setPrototypeOf.polyfill === true means it works as meant\n\t // setPrototypeOf.polyfill === false means it's not 100% reliable\n\t // setPrototypeOf.polyfill === undefined\n\t // or\n\t // setPrototypeOf.polyfill == null means it's not a polyfill\n\t // which means it works as expected\n\t // we can even delete Object.prototype.__proto__;\n\t }\n\t return setPrototypeOf;\n\t }(Object, '__proto__'))\n\t };\n\t\n\t defineProperties(Object, ES5ObjectShims);\n\t }\n\t\n\t // Workaround bug in Opera 12 where setPrototypeOf(x, null) doesn't work,\n\t // but Object.create(null) does.\n\t if (Object.setPrototypeOf && Object.getPrototypeOf &&\n\t Object.getPrototypeOf(Object.setPrototypeOf({}, null)) !== null &&\n\t Object.getPrototypeOf(Object.create(null)) === null) {\n\t (function () {\n\t var FAKENULL = Object.create(null);\n\t var gpo = Object.getPrototypeOf;\n\t var spo = Object.setPrototypeOf;\n\t Object.getPrototypeOf = function (o) {\n\t var result = gpo(o);\n\t return result === FAKENULL ? null : result;\n\t };\n\t Object.setPrototypeOf = function (o, p) {\n\t var proto = p === null ? FAKENULL : p;\n\t return spo(o, proto);\n\t };\n\t Object.setPrototypeOf.polyfill = false;\n\t }());\n\t }\n\t\n\t var objectKeysAcceptsPrimitives = !throwsError(function () { Object.keys('foo'); });\n\t if (!objectKeysAcceptsPrimitives) {\n\t var originalObjectKeys = Object.keys;\n\t overrideNative(Object, 'keys', function keys(value) {\n\t return originalObjectKeys(ES.ToObject(value));\n\t });\n\t keys = Object.keys;\n\t }\n\t var objectKeysRejectsRegex = throwsError(function () { Object.keys(/a/g); });\n\t if (objectKeysRejectsRegex) {\n\t var regexRejectingObjectKeys = Object.keys;\n\t overrideNative(Object, 'keys', function keys(value) {\n\t if (Type.regex(value)) {\n\t var regexKeys = [];\n\t for (var k in value) {\n\t if (_hasOwnProperty(value, k)) {\n\t _push(regexKeys, k);\n\t }\n\t }\n\t return regexKeys;\n\t }\n\t return regexRejectingObjectKeys(value);\n\t });\n\t keys = Object.keys;\n\t }\n\t\n\t if (Object.getOwnPropertyNames) {\n\t var objectGOPNAcceptsPrimitives = !throwsError(function () { Object.getOwnPropertyNames('foo'); });\n\t if (!objectGOPNAcceptsPrimitives) {\n\t var cachedWindowNames = typeof window === 'object' ? Object.getOwnPropertyNames(window) : [];\n\t var originalObjectGetOwnPropertyNames = Object.getOwnPropertyNames;\n\t overrideNative(Object, 'getOwnPropertyNames', function getOwnPropertyNames(value) {\n\t var val = ES.ToObject(value);\n\t if (_toString(val) === '[object Window]') {\n\t try {\n\t return originalObjectGetOwnPropertyNames(val);\n\t } catch (e) {\n\t // IE bug where layout engine calls userland gOPN for cross-domain `window` objects\n\t return _concat([], cachedWindowNames);\n\t }\n\t }\n\t return originalObjectGetOwnPropertyNames(val);\n\t });\n\t }\n\t }\n\t if (Object.getOwnPropertyDescriptor) {\n\t var objectGOPDAcceptsPrimitives = !throwsError(function () { Object.getOwnPropertyDescriptor('foo', 'bar'); });\n\t if (!objectGOPDAcceptsPrimitives) {\n\t var originalObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\t overrideNative(Object, 'getOwnPropertyDescriptor', function getOwnPropertyDescriptor(value, property) {\n\t return originalObjectGetOwnPropertyDescriptor(ES.ToObject(value), property);\n\t });\n\t }\n\t }\n\t if (Object.seal) {\n\t var objectSealAcceptsPrimitives = !throwsError(function () { Object.seal('foo'); });\n\t if (!objectSealAcceptsPrimitives) {\n\t var originalObjectSeal = Object.seal;\n\t overrideNative(Object, 'seal', function seal(value) {\n\t if (!ES.TypeIsObject(value)) { return value; }\n\t return originalObjectSeal(value);\n\t });\n\t }\n\t }\n\t if (Object.isSealed) {\n\t var objectIsSealedAcceptsPrimitives = !throwsError(function () { Object.isSealed('foo'); });\n\t if (!objectIsSealedAcceptsPrimitives) {\n\t var originalObjectIsSealed = Object.isSealed;\n\t overrideNative(Object, 'isSealed', function isSealed(value) {\n\t if (!ES.TypeIsObject(value)) { return true; }\n\t return originalObjectIsSealed(value);\n\t });\n\t }\n\t }\n\t if (Object.freeze) {\n\t var objectFreezeAcceptsPrimitives = !throwsError(function () { Object.freeze('foo'); });\n\t if (!objectFreezeAcceptsPrimitives) {\n\t var originalObjectFreeze = Object.freeze;\n\t overrideNative(Object, 'freeze', function freeze(value) {\n\t if (!ES.TypeIsObject(value)) { return value; }\n\t return originalObjectFreeze(value);\n\t });\n\t }\n\t }\n\t if (Object.isFrozen) {\n\t var objectIsFrozenAcceptsPrimitives = !throwsError(function () { Object.isFrozen('foo'); });\n\t if (!objectIsFrozenAcceptsPrimitives) {\n\t var originalObjectIsFrozen = Object.isFrozen;\n\t overrideNative(Object, 'isFrozen', function isFrozen(value) {\n\t if (!ES.TypeIsObject(value)) { return true; }\n\t return originalObjectIsFrozen(value);\n\t });\n\t }\n\t }\n\t if (Object.preventExtensions) {\n\t var objectPreventExtensionsAcceptsPrimitives = !throwsError(function () { Object.preventExtensions('foo'); });\n\t if (!objectPreventExtensionsAcceptsPrimitives) {\n\t var originalObjectPreventExtensions = Object.preventExtensions;\n\t overrideNative(Object, 'preventExtensions', function preventExtensions(value) {\n\t if (!ES.TypeIsObject(value)) { return value; }\n\t return originalObjectPreventExtensions(value);\n\t });\n\t }\n\t }\n\t if (Object.isExtensible) {\n\t var objectIsExtensibleAcceptsPrimitives = !throwsError(function () { Object.isExtensible('foo'); });\n\t if (!objectIsExtensibleAcceptsPrimitives) {\n\t var originalObjectIsExtensible = Object.isExtensible;\n\t overrideNative(Object, 'isExtensible', function isExtensible(value) {\n\t if (!ES.TypeIsObject(value)) { return false; }\n\t return originalObjectIsExtensible(value);\n\t });\n\t }\n\t }\n\t if (Object.getPrototypeOf) {\n\t var objectGetProtoAcceptsPrimitives = !throwsError(function () { Object.getPrototypeOf('foo'); });\n\t if (!objectGetProtoAcceptsPrimitives) {\n\t var originalGetProto = Object.getPrototypeOf;\n\t overrideNative(Object, 'getPrototypeOf', function getPrototypeOf(value) {\n\t return originalGetProto(ES.ToObject(value));\n\t });\n\t }\n\t }\n\t\n\t var hasFlags = supportsDescriptors && (function () {\n\t var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags');\n\t return desc && ES.IsCallable(desc.get);\n\t }());\n\t if (supportsDescriptors && !hasFlags) {\n\t var regExpFlagsGetter = function flags() {\n\t if (!ES.TypeIsObject(this)) {\n\t throw new TypeError('Method called on incompatible type: must be an object.');\n\t }\n\t var result = '';\n\t if (this.global) {\n\t result += 'g';\n\t }\n\t if (this.ignoreCase) {\n\t result += 'i';\n\t }\n\t if (this.multiline) {\n\t result += 'm';\n\t }\n\t if (this.unicode) {\n\t result += 'u';\n\t }\n\t if (this.sticky) {\n\t result += 'y';\n\t }\n\t return result;\n\t };\n\t\n\t Value.getter(RegExp.prototype, 'flags', regExpFlagsGetter);\n\t }\n\t\n\t var regExpSupportsFlagsWithRegex = supportsDescriptors && valueOrFalseIfThrows(function () {\n\t return String(new RegExp(/a/g, 'i')) === '/a/i';\n\t });\n\t var regExpNeedsToSupportSymbolMatch = hasSymbols && supportsDescriptors && (function () {\n\t // Edge 0.12 supports flags fully, but does not support Symbol.match\n\t var regex = /./;\n\t regex[Symbol.match] = false;\n\t return RegExp(regex) === regex;\n\t }());\n\t\n\t var regexToStringIsGeneric = valueOrFalseIfThrows(function () {\n\t return RegExp.prototype.toString.call({ source: 'abc' }) === '/abc/';\n\t });\n\t var regexToStringSupportsGenericFlags = regexToStringIsGeneric && valueOrFalseIfThrows(function () {\n\t return RegExp.prototype.toString.call({ source: 'a', flags: 'b' }) === '/a/b';\n\t });\n\t if (!regexToStringIsGeneric || !regexToStringSupportsGenericFlags) {\n\t var origRegExpToString = RegExp.prototype.toString;\n\t defineProperty(RegExp.prototype, 'toString', function toString() {\n\t var R = ES.RequireObjectCoercible(this);\n\t if (Type.regex(R)) {\n\t return _call(origRegExpToString, R);\n\t }\n\t var pattern = $String(R.source);\n\t var flags = $String(R.flags);\n\t return '/' + pattern + '/' + flags;\n\t }, true);\n\t Value.preserveToString(RegExp.prototype.toString, origRegExpToString);\n\t }\n\t\n\t if (supportsDescriptors && (!regExpSupportsFlagsWithRegex || regExpNeedsToSupportSymbolMatch)) {\n\t var flagsGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get;\n\t var sourceDesc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'source') || {};\n\t var legacySourceGetter = function () { return this.source; }; // prior to it being a getter, it's own + nonconfigurable\n\t var sourceGetter = ES.IsCallable(sourceDesc.get) ? sourceDesc.get : legacySourceGetter;\n\t\n\t var OrigRegExp = RegExp;\n\t var RegExpShim = (function () {\n\t return function RegExp(pattern, flags) {\n\t var patternIsRegExp = ES.IsRegExp(pattern);\n\t var calledWithNew = this instanceof RegExp;\n\t if (!calledWithNew && patternIsRegExp && typeof flags === 'undefined' && pattern.constructor === RegExp) {\n\t return pattern;\n\t }\n\t\n\t var P = pattern;\n\t var F = flags;\n\t if (Type.regex(pattern)) {\n\t P = ES.Call(sourceGetter, pattern);\n\t F = typeof flags === 'undefined' ? ES.Call(flagsGetter, pattern) : flags;\n\t return new RegExp(P, F);\n\t } else if (patternIsRegExp) {\n\t P = pattern.source;\n\t F = typeof flags === 'undefined' ? pattern.flags : flags;\n\t }\n\t return new OrigRegExp(pattern, flags);\n\t };\n\t }());\n\t wrapConstructor(OrigRegExp, RegExpShim, {\n\t $input: true // Chrome < v39 & Opera < 26 have a nonstandard \"$input\" property\n\t });\n\t /* globals RegExp: true */\n\t /* eslint-disable no-undef */\n\t /* jshint -W020 */\n\t RegExp = RegExpShim;\n\t Value.redefine(globals, 'RegExp', RegExpShim);\n\t /* jshint +W020 */\n\t /* eslint-enable no-undef */\n\t /* globals RegExp: false */\n\t }\n\t\n\t if (supportsDescriptors) {\n\t var regexGlobals = {\n\t input: '$_',\n\t lastMatch: '$&',\n\t lastParen: '$+',\n\t leftContext: '$`',\n\t rightContext: '$\\''\n\t };\n\t _forEach(keys(regexGlobals), function (prop) {\n\t if (prop in RegExp && !(regexGlobals[prop] in RegExp)) {\n\t Value.getter(RegExp, regexGlobals[prop], function get() {\n\t return RegExp[prop];\n\t });\n\t }\n\t });\n\t }\n\t addDefaultSpecies(RegExp);\n\t\n\t var inverseEpsilon = 1 / Number.EPSILON;\n\t var roundTiesToEven = function roundTiesToEven(n) {\n\t // Even though this reduces down to `return n`, it takes advantage of built-in rounding.\n\t return (n + inverseEpsilon) - inverseEpsilon;\n\t };\n\t var BINARY_32_EPSILON = Math.pow(2, -23);\n\t var BINARY_32_MAX_VALUE = Math.pow(2, 127) * (2 - BINARY_32_EPSILON);\n\t var BINARY_32_MIN_VALUE = Math.pow(2, -126);\n\t var E = Math.E;\n\t var LOG2E = Math.LOG2E;\n\t var LOG10E = Math.LOG10E;\n\t var numberCLZ = Number.prototype.clz;\n\t delete Number.prototype.clz; // Safari 8 has Number#clz\n\t\n\t var MathShims = {\n\t acosh: function acosh(value) {\n\t var x = Number(value);\n\t if (numberIsNaN(x) || value < 1) { return NaN; }\n\t if (x === 1) { return 0; }\n\t if (x === Infinity) { return x; }\n\t return _log(x / E + _sqrt(x + 1) * _sqrt(x - 1) / E) + 1;\n\t },\n\t\n\t asinh: function asinh(value) {\n\t var x = Number(value);\n\t if (x === 0 || !globalIsFinite(x)) {\n\t return x;\n\t }\n\t return x < 0 ? -asinh(-x) : _log(x + _sqrt(x * x + 1));\n\t },\n\t\n\t atanh: function atanh(value) {\n\t var x = Number(value);\n\t if (numberIsNaN(x) || x < -1 || x > 1) {\n\t return NaN;\n\t }\n\t if (x === -1) { return -Infinity; }\n\t if (x === 1) { return Infinity; }\n\t if (x === 0) { return x; }\n\t return 0.5 * _log((1 + x) / (1 - x));\n\t },\n\t\n\t cbrt: function cbrt(value) {\n\t var x = Number(value);\n\t if (x === 0) { return x; }\n\t var negate = x < 0;\n\t var result;\n\t if (negate) { x = -x; }\n\t if (x === Infinity) {\n\t result = Infinity;\n\t } else {\n\t result = _exp(_log(x) / 3);\n\t // from http://en.wikipedia.org/wiki/Cube_root#Numerical_methods\n\t result = (x / (result * result) + (2 * result)) / 3;\n\t }\n\t return negate ? -result : result;\n\t },\n\t\n\t clz32: function clz32(value) {\n\t // See https://bugs.ecmascript.org/show_bug.cgi?id=2465\n\t var x = Number(value);\n\t var number = ES.ToUint32(x);\n\t if (number === 0) {\n\t return 32;\n\t }\n\t return numberCLZ ? ES.Call(numberCLZ, number) : 31 - _floor(_log(number + 0.5) * LOG2E);\n\t },\n\t\n\t cosh: function cosh(value) {\n\t var x = Number(value);\n\t if (x === 0) { return 1; } // +0 or -0\n\t if (numberIsNaN(x)) { return NaN; }\n\t if (!globalIsFinite(x)) { return Infinity; }\n\t if (x < 0) { x = -x; }\n\t if (x > 21) { return _exp(x) / 2; }\n\t return (_exp(x) + _exp(-x)) / 2;\n\t },\n\t\n\t expm1: function expm1(value) {\n\t var x = Number(value);\n\t if (x === -Infinity) { return -1; }\n\t if (!globalIsFinite(x) || x === 0) { return x; }\n\t if (_abs(x) > 0.5) {\n\t return _exp(x) - 1;\n\t }\n\t // A more precise approximation using Taylor series expansion\n\t // from https://github.com/paulmillr/es6-shim/issues/314#issuecomment-70293986\n\t var t = x;\n\t var sum = 0;\n\t var n = 1;\n\t while (sum + t !== sum) {\n\t sum += t;\n\t n += 1;\n\t t *= x / n;\n\t }\n\t return sum;\n\t },\n\t\n\t hypot: function hypot(x, y) {\n\t var result = 0;\n\t var largest = 0;\n\t for (var i = 0; i < arguments.length; ++i) {\n\t var value = _abs(Number(arguments[i]));\n\t if (largest < value) {\n\t result *= (largest / value) * (largest / value);\n\t result += 1;\n\t largest = value;\n\t } else {\n\t result += value > 0 ? (value / largest) * (value / largest) : value;\n\t }\n\t }\n\t return largest === Infinity ? Infinity : largest * _sqrt(result);\n\t },\n\t\n\t log2: function log2(value) {\n\t return _log(value) * LOG2E;\n\t },\n\t\n\t log10: function log10(value) {\n\t return _log(value) * LOG10E;\n\t },\n\t\n\t log1p: function log1p(value) {\n\t var x = Number(value);\n\t if (x < -1 || numberIsNaN(x)) { return NaN; }\n\t if (x === 0 || x === Infinity) { return x; }\n\t if (x === -1) { return -Infinity; }\n\t\n\t return (1 + x) - 1 === 0 ? x : x * (_log(1 + x) / ((1 + x) - 1));\n\t },\n\t\n\t sign: _sign,\n\t\n\t sinh: function sinh(value) {\n\t var x = Number(value);\n\t if (!globalIsFinite(x) || x === 0) { return x; }\n\t\n\t if (_abs(x) < 1) {\n\t return (Math.expm1(x) - Math.expm1(-x)) / 2;\n\t }\n\t return (_exp(x - 1) - _exp(-x - 1)) * E / 2;\n\t },\n\t\n\t tanh: function tanh(value) {\n\t var x = Number(value);\n\t if (numberIsNaN(x) || x === 0) { return x; }\n\t // can exit early at +-20 as JS loses precision for true value at this integer\n\t if (x >= 20) { return 1; }\n\t if (x <= -20) { return -1; }\n\t\n\t return (Math.expm1(x) - Math.expm1(-x)) / (_exp(x) + _exp(-x));\n\t },\n\t\n\t trunc: function trunc(value) {\n\t var x = Number(value);\n\t return x < 0 ? -_floor(-x) : _floor(x);\n\t },\n\t\n\t imul: function imul(x, y) {\n\t // taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\n\t var a = ES.ToUint32(x);\n\t var b = ES.ToUint32(y);\n\t var ah = (a >>> 16) & 0xffff;\n\t var al = a & 0xffff;\n\t var bh = (b >>> 16) & 0xffff;\n\t var bl = b & 0xffff;\n\t // the shift by 0 fixes the sign on the high part\n\t // the final |0 converts the unsigned value into a signed value\n\t return (al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0;\n\t },\n\t\n\t fround: function fround(x) {\n\t var v = Number(x);\n\t if (v === 0 || v === Infinity || v === -Infinity || numberIsNaN(v)) {\n\t return v;\n\t }\n\t var sign = _sign(v);\n\t var abs = _abs(v);\n\t if (abs < BINARY_32_MIN_VALUE) {\n\t return sign * roundTiesToEven(abs / BINARY_32_MIN_VALUE / BINARY_32_EPSILON) * BINARY_32_MIN_VALUE * BINARY_32_EPSILON;\n\t }\n\t // Veltkamp's splitting (?)\n\t var a = (1 + BINARY_32_EPSILON / Number.EPSILON) * abs;\n\t var result = a - (a - abs);\n\t if (result > BINARY_32_MAX_VALUE || numberIsNaN(result)) {\n\t return sign * Infinity;\n\t }\n\t return sign * result;\n\t }\n\t };\n\t defineProperties(Math, MathShims);\n\t // IE 11 TP has an imprecise log1p: reports Math.log1p(-1e-17) as 0\n\t defineProperty(Math, 'log1p', MathShims.log1p, Math.log1p(-1e-17) !== -1e-17);\n\t // IE 11 TP has an imprecise asinh: reports Math.asinh(-1e7) as not exactly equal to -Math.asinh(1e7)\n\t defineProperty(Math, 'asinh', MathShims.asinh, Math.asinh(-1e7) !== -Math.asinh(1e7));\n\t // Chrome 40 has an imprecise Math.tanh with very small numbers\n\t defineProperty(Math, 'tanh', MathShims.tanh, Math.tanh(-2e-17) !== -2e-17);\n\t // Chrome 40 loses Math.acosh precision with high numbers\n\t defineProperty(Math, 'acosh', MathShims.acosh, Math.acosh(Number.MAX_VALUE) === Infinity);\n\t // Firefox 38 on Windows\n\t defineProperty(Math, 'cbrt', MathShims.cbrt, Math.abs(1 - Math.cbrt(1e-300) / 1e-100) / Number.EPSILON > 8);\n\t // node 0.11 has an imprecise Math.sinh with very small numbers\n\t defineProperty(Math, 'sinh', MathShims.sinh, Math.sinh(-2e-17) !== -2e-17);\n\t // FF 35 on Linux reports 22025.465794806725 for Math.expm1(10)\n\t var expm1OfTen = Math.expm1(10);\n\t defineProperty(Math, 'expm1', MathShims.expm1, expm1OfTen > 22025.465794806719 || expm1OfTen < 22025.4657948067165168);\n\t\n\t var origMathRound = Math.round;\n\t // breaks in e.g. Safari 8, Internet Explorer 11, Opera 12\n\t var roundHandlesBoundaryConditions = Math.round(0.5 - Number.EPSILON / 4) === 0 && Math.round(-0.5 + Number.EPSILON / 3.99) === 1;\n\t\n\t // When engines use Math.floor(x + 0.5) internally, Math.round can be buggy for large integers.\n\t // This behavior should be governed by \"round to nearest, ties to even mode\"\n\t // see http://www.ecma-international.org/ecma-262/6.0/#sec-terms-and-definitions-number-type\n\t // These are the boundary cases where it breaks.\n\t var smallestPositiveNumberWhereRoundBreaks = inverseEpsilon + 1;\n\t var largestPositiveNumberWhereRoundBreaks = 2 * inverseEpsilon - 1;\n\t var roundDoesNotIncreaseIntegers = [smallestPositiveNumberWhereRoundBreaks, largestPositiveNumberWhereRoundBreaks].every(function (num) {\n\t return Math.round(num) === num;\n\t });\n\t defineProperty(Math, 'round', function round(x) {\n\t var floor = _floor(x);\n\t var ceil = floor === -1 ? -0 : floor + 1;\n\t return x - floor < 0.5 ? floor : ceil;\n\t }, !roundHandlesBoundaryConditions || !roundDoesNotIncreaseIntegers);\n\t Value.preserveToString(Math.round, origMathRound);\n\t\n\t var origImul = Math.imul;\n\t if (Math.imul(0xffffffff, 5) !== -5) {\n\t // Safari 6.1, at least, reports \"0\" for this value\n\t Math.imul = MathShims.imul;\n\t Value.preserveToString(Math.imul, origImul);\n\t }\n\t if (Math.imul.length !== 2) {\n\t // Safari 8.0.4 has a length of 1\n\t // fixed in https://bugs.webkit.org/show_bug.cgi?id=143658\n\t overrideNative(Math, 'imul', function imul(x, y) {\n\t return ES.Call(origImul, Math, arguments);\n\t });\n\t }\n\t\n\t // Promises\n\t // Simplest possible implementation; use a 3rd-party library if you\n\t // want the best possible speed and/or long stack traces.\n\t var PromiseShim = (function () {\n\t var setTimeout = globals.setTimeout;\n\t // some environments don't have setTimeout - no way to shim here.\n\t if (typeof setTimeout !== 'function' && typeof setTimeout !== 'object') { return; }\n\t\n\t ES.IsPromise = function (promise) {\n\t if (!ES.TypeIsObject(promise)) {\n\t return false;\n\t }\n\t if (typeof promise._promise === 'undefined') {\n\t return false; // uninitialized, or missing our hidden field.\n\t }\n\t return true;\n\t };\n\t\n\t // \"PromiseCapability\" in the spec is what most promise implementations\n\t // call a \"deferred\".\n\t var PromiseCapability = function (C) {\n\t if (!ES.IsConstructor(C)) {\n\t throw new TypeError('Bad promise constructor');\n\t }\n\t var capability = this;\n\t var resolver = function (resolve, reject) {\n\t if (capability.resolve !== void 0 || capability.reject !== void 0) {\n\t throw new TypeError('Bad Promise implementation!');\n\t }\n\t capability.resolve = resolve;\n\t capability.reject = reject;\n\t };\n\t // Initialize fields to inform optimizers about the object shape.\n\t capability.resolve = void 0;\n\t capability.reject = void 0;\n\t capability.promise = new C(resolver);\n\t if (!(ES.IsCallable(capability.resolve) && ES.IsCallable(capability.reject))) {\n\t throw new TypeError('Bad promise constructor');\n\t }\n\t };\n\t\n\t // find an appropriate setImmediate-alike\n\t var makeZeroTimeout;\n\t /*global window */\n\t if (typeof window !== 'undefined' && ES.IsCallable(window.postMessage)) {\n\t makeZeroTimeout = function () {\n\t // from http://dbaron.org/log/20100309-faster-timeouts\n\t var timeouts = [];\n\t var messageName = 'zero-timeout-message';\n\t var setZeroTimeout = function (fn) {\n\t _push(timeouts, fn);\n\t window.postMessage(messageName, '*');\n\t };\n\t var handleMessage = function (event) {\n\t if (event.source === window && event.data === messageName) {\n\t event.stopPropagation();\n\t if (timeouts.length === 0) { return; }\n\t var fn = _shift(timeouts);\n\t fn();\n\t }\n\t };\n\t window.addEventListener('message', handleMessage, true);\n\t return setZeroTimeout;\n\t };\n\t }\n\t var makePromiseAsap = function () {\n\t // An efficient task-scheduler based on a pre-existing Promise\n\t // implementation, which we can use even if we override the\n\t // global Promise below (in order to workaround bugs)\n\t // https://github.com/Raynos/observ-hash/issues/2#issuecomment-35857671\n\t var P = globals.Promise;\n\t var pr = P && P.resolve && P.resolve();\n\t return pr && function (task) {\n\t return pr.then(task);\n\t };\n\t };\n\t /*global process */\n\t /* jscs:disable disallowMultiLineTernary */\n\t var enqueue = ES.IsCallable(globals.setImmediate) ?\n\t globals.setImmediate :\n\t typeof process === 'object' && process.nextTick ? process.nextTick :\n\t makePromiseAsap() ||\n\t (ES.IsCallable(makeZeroTimeout) ? makeZeroTimeout() :\n\t function (task) { setTimeout(task, 0); }); // fallback\n\t /* jscs:enable disallowMultiLineTernary */\n\t\n\t // Constants for Promise implementation\n\t var PROMISE_IDENTITY = function (x) { return x; };\n\t var PROMISE_THROWER = function (e) { throw e; };\n\t var PROMISE_PENDING = 0;\n\t var PROMISE_FULFILLED = 1;\n\t var PROMISE_REJECTED = 2;\n\t // We store fulfill/reject handlers and capabilities in a single array.\n\t var PROMISE_FULFILL_OFFSET = 0;\n\t var PROMISE_REJECT_OFFSET = 1;\n\t var PROMISE_CAPABILITY_OFFSET = 2;\n\t // This is used in an optimization for chaining promises via then.\n\t var PROMISE_FAKE_CAPABILITY = {};\n\t\n\t var enqueuePromiseReactionJob = function (handler, capability, argument) {\n\t enqueue(function () {\n\t promiseReactionJob(handler, capability, argument);\n\t });\n\t };\n\t\n\t var promiseReactionJob = function (handler, promiseCapability, argument) {\n\t var handlerResult, f;\n\t if (promiseCapability === PROMISE_FAKE_CAPABILITY) {\n\t // Fast case, when we don't actually need to chain through to a\n\t // (real) promiseCapability.\n\t return handler(argument);\n\t }\n\t try {\n\t handlerResult = handler(argument);\n\t f = promiseCapability.resolve;\n\t } catch (e) {\n\t handlerResult = e;\n\t f = promiseCapability.reject;\n\t }\n\t f(handlerResult);\n\t };\n\t\n\t var fulfillPromise = function (promise, value) {\n\t var _promise = promise._promise;\n\t var length = _promise.reactionLength;\n\t if (length > 0) {\n\t enqueuePromiseReactionJob(\n\t _promise.fulfillReactionHandler0,\n\t _promise.reactionCapability0,\n\t value\n\t );\n\t _promise.fulfillReactionHandler0 = void 0;\n\t _promise.rejectReactions0 = void 0;\n\t _promise.reactionCapability0 = void 0;\n\t if (length > 1) {\n\t for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n\t enqueuePromiseReactionJob(\n\t _promise[idx + PROMISE_FULFILL_OFFSET],\n\t _promise[idx + PROMISE_CAPABILITY_OFFSET],\n\t value\n\t );\n\t promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n\t promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n\t promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n\t }\n\t }\n\t }\n\t _promise.result = value;\n\t _promise.state = PROMISE_FULFILLED;\n\t _promise.reactionLength = 0;\n\t };\n\t\n\t var rejectPromise = function (promise, reason) {\n\t var _promise = promise._promise;\n\t var length = _promise.reactionLength;\n\t if (length > 0) {\n\t enqueuePromiseReactionJob(\n\t _promise.rejectReactionHandler0,\n\t _promise.reactionCapability0,\n\t reason\n\t );\n\t _promise.fulfillReactionHandler0 = void 0;\n\t _promise.rejectReactions0 = void 0;\n\t _promise.reactionCapability0 = void 0;\n\t if (length > 1) {\n\t for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n\t enqueuePromiseReactionJob(\n\t _promise[idx + PROMISE_REJECT_OFFSET],\n\t _promise[idx + PROMISE_CAPABILITY_OFFSET],\n\t reason\n\t );\n\t promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n\t promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n\t promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n\t }\n\t }\n\t }\n\t _promise.result = reason;\n\t _promise.state = PROMISE_REJECTED;\n\t _promise.reactionLength = 0;\n\t };\n\t\n\t var createResolvingFunctions = function (promise) {\n\t var alreadyResolved = false;\n\t var resolve = function (resolution) {\n\t var then;\n\t if (alreadyResolved) { return; }\n\t alreadyResolved = true;\n\t if (resolution === promise) {\n\t return rejectPromise(promise, new TypeError('Self resolution'));\n\t }\n\t if (!ES.TypeIsObject(resolution)) {\n\t return fulfillPromise(promise, resolution);\n\t }\n\t try {\n\t then = resolution.then;\n\t } catch (e) {\n\t return rejectPromise(promise, e);\n\t }\n\t if (!ES.IsCallable(then)) {\n\t return fulfillPromise(promise, resolution);\n\t }\n\t enqueue(function () {\n\t promiseResolveThenableJob(promise, resolution, then);\n\t });\n\t };\n\t var reject = function (reason) {\n\t if (alreadyResolved) { return; }\n\t alreadyResolved = true;\n\t return rejectPromise(promise, reason);\n\t };\n\t return { resolve: resolve, reject: reject };\n\t };\n\t\n\t var optimizedThen = function (then, thenable, resolve, reject) {\n\t // Optimization: since we discard the result, we can pass our\n\t // own then implementation a special hint to let it know it\n\t // doesn't have to create it. (The PROMISE_FAKE_CAPABILITY\n\t // object is local to this implementation and unforgeable outside.)\n\t if (then === Promise$prototype$then) {\n\t _call(then, thenable, resolve, reject, PROMISE_FAKE_CAPABILITY);\n\t } else {\n\t _call(then, thenable, resolve, reject);\n\t }\n\t };\n\t var promiseResolveThenableJob = function (promise, thenable, then) {\n\t var resolvingFunctions = createResolvingFunctions(promise);\n\t var resolve = resolvingFunctions.resolve;\n\t var reject = resolvingFunctions.reject;\n\t try {\n\t optimizedThen(then, thenable, resolve, reject);\n\t } catch (e) {\n\t reject(e);\n\t }\n\t };\n\t\n\t var Promise$prototype, Promise$prototype$then;\n\t var Promise = (function () {\n\t var PromiseShim = function Promise(resolver) {\n\t if (!(this instanceof PromiseShim)) {\n\t throw new TypeError('Constructor Promise requires \"new\"');\n\t }\n\t if (this && this._promise) {\n\t throw new TypeError('Bad construction');\n\t }\n\t // see https://bugs.ecmascript.org/show_bug.cgi?id=2482\n\t if (!ES.IsCallable(resolver)) {\n\t throw new TypeError('not a valid resolver');\n\t }\n\t var promise = emulateES6construct(this, PromiseShim, Promise$prototype, {\n\t _promise: {\n\t result: void 0,\n\t state: PROMISE_PENDING,\n\t // The first member of the \"reactions\" array is inlined here,\n\t // since most promises only have one reaction.\n\t // We've also exploded the 'reaction' object to inline the\n\t // \"handler\" and \"capability\" fields, since both fulfill and\n\t // reject reactions share the same capability.\n\t reactionLength: 0,\n\t fulfillReactionHandler0: void 0,\n\t rejectReactionHandler0: void 0,\n\t reactionCapability0: void 0\n\t }\n\t });\n\t var resolvingFunctions = createResolvingFunctions(promise);\n\t var reject = resolvingFunctions.reject;\n\t try {\n\t resolver(resolvingFunctions.resolve, reject);\n\t } catch (e) {\n\t reject(e);\n\t }\n\t return promise;\n\t };\n\t return PromiseShim;\n\t }());\n\t Promise$prototype = Promise.prototype;\n\t\n\t var _promiseAllResolver = function (index, values, capability, remaining) {\n\t var alreadyCalled = false;\n\t return function (x) {\n\t if (alreadyCalled) { return; }\n\t alreadyCalled = true;\n\t values[index] = x;\n\t if ((--remaining.count) === 0) {\n\t var resolve = capability.resolve;\n\t resolve(values); // call w/ this===undefined\n\t }\n\t };\n\t };\n\t\n\t var performPromiseAll = function (iteratorRecord, C, resultCapability) {\n\t var it = iteratorRecord.iterator;\n\t var values = [];\n\t var remaining = { count: 1 };\n\t var next, nextValue;\n\t var index = 0;\n\t while (true) {\n\t try {\n\t next = ES.IteratorStep(it);\n\t if (next === false) {\n\t iteratorRecord.done = true;\n\t break;\n\t }\n\t nextValue = next.value;\n\t } catch (e) {\n\t iteratorRecord.done = true;\n\t throw e;\n\t }\n\t values[index] = void 0;\n\t var nextPromise = C.resolve(nextValue);\n\t var resolveElement = _promiseAllResolver(\n\t index, values, resultCapability, remaining\n\t );\n\t remaining.count += 1;\n\t optimizedThen(nextPromise.then, nextPromise, resolveElement, resultCapability.reject);\n\t index += 1;\n\t }\n\t if ((--remaining.count) === 0) {\n\t var resolve = resultCapability.resolve;\n\t resolve(values); // call w/ this===undefined\n\t }\n\t return resultCapability.promise;\n\t };\n\t\n\t var performPromiseRace = function (iteratorRecord, C, resultCapability) {\n\t var it = iteratorRecord.iterator;\n\t var next, nextValue, nextPromise;\n\t while (true) {\n\t try {\n\t next = ES.IteratorStep(it);\n\t if (next === false) {\n\t // NOTE: If iterable has no items, resulting promise will never\n\t // resolve; see:\n\t // https://github.com/domenic/promises-unwrapping/issues/75\n\t // https://bugs.ecmascript.org/show_bug.cgi?id=2515\n\t iteratorRecord.done = true;\n\t break;\n\t }\n\t nextValue = next.value;\n\t } catch (e) {\n\t iteratorRecord.done = true;\n\t throw e;\n\t }\n\t nextPromise = C.resolve(nextValue);\n\t optimizedThen(nextPromise.then, nextPromise, resultCapability.resolve, resultCapability.reject);\n\t }\n\t return resultCapability.promise;\n\t };\n\t\n\t defineProperties(Promise, {\n\t all: function all(iterable) {\n\t var C = this;\n\t if (!ES.TypeIsObject(C)) {\n\t throw new TypeError('Promise is not object');\n\t }\n\t var capability = new PromiseCapability(C);\n\t var iterator, iteratorRecord;\n\t try {\n\t iterator = ES.GetIterator(iterable);\n\t iteratorRecord = { iterator: iterator, done: false };\n\t return performPromiseAll(iteratorRecord, C, capability);\n\t } catch (e) {\n\t var exception = e;\n\t if (iteratorRecord && !iteratorRecord.done) {\n\t try {\n\t ES.IteratorClose(iterator, true);\n\t } catch (ee) {\n\t exception = ee;\n\t }\n\t }\n\t var reject = capability.reject;\n\t reject(exception);\n\t return capability.promise;\n\t }\n\t },\n\t\n\t race: function race(iterable) {\n\t var C = this;\n\t if (!ES.TypeIsObject(C)) {\n\t throw new TypeError('Promise is not object');\n\t }\n\t var capability = new PromiseCapability(C);\n\t var iterator, iteratorRecord;\n\t try {\n\t iterator = ES.GetIterator(iterable);\n\t iteratorRecord = { iterator: iterator, done: false };\n\t return performPromiseRace(iteratorRecord, C, capability);\n\t } catch (e) {\n\t var exception = e;\n\t if (iteratorRecord && !iteratorRecord.done) {\n\t try {\n\t ES.IteratorClose(iterator, true);\n\t } catch (ee) {\n\t exception = ee;\n\t }\n\t }\n\t var reject = capability.reject;\n\t reject(exception);\n\t return capability.promise;\n\t }\n\t },\n\t\n\t reject: function reject(reason) {\n\t var C = this;\n\t if (!ES.TypeIsObject(C)) {\n\t throw new TypeError('Bad promise constructor');\n\t }\n\t var capability = new PromiseCapability(C);\n\t var rejectFunc = capability.reject;\n\t rejectFunc(reason); // call with this===undefined\n\t return capability.promise;\n\t },\n\t\n\t resolve: function resolve(v) {\n\t // See https://esdiscuss.org/topic/fixing-promise-resolve for spec\n\t var C = this;\n\t if (!ES.TypeIsObject(C)) {\n\t throw new TypeError('Bad promise constructor');\n\t }\n\t if (ES.IsPromise(v)) {\n\t var constructor = v.constructor;\n\t if (constructor === C) {\n\t return v;\n\t }\n\t }\n\t var capability = new PromiseCapability(C);\n\t var resolveFunc = capability.resolve;\n\t resolveFunc(v); // call with this===undefined\n\t return capability.promise;\n\t }\n\t });\n\t\n\t defineProperties(Promise$prototype, {\n\t 'catch': function (onRejected) {\n\t return this.then(null, onRejected);\n\t },\n\t\n\t then: function then(onFulfilled, onRejected) {\n\t var promise = this;\n\t if (!ES.IsPromise(promise)) { throw new TypeError('not a promise'); }\n\t var C = ES.SpeciesConstructor(promise, Promise);\n\t var resultCapability;\n\t var returnValueIsIgnored = arguments.length > 2 && arguments[2] === PROMISE_FAKE_CAPABILITY;\n\t if (returnValueIsIgnored && C === Promise) {\n\t resultCapability = PROMISE_FAKE_CAPABILITY;\n\t } else {\n\t resultCapability = new PromiseCapability(C);\n\t }\n\t // PerformPromiseThen(promise, onFulfilled, onRejected, resultCapability)\n\t // Note that we've split the 'reaction' object into its two\n\t // components, \"capabilities\" and \"handler\"\n\t // \"capabilities\" is always equal to `resultCapability`\n\t var fulfillReactionHandler = ES.IsCallable(onFulfilled) ? onFulfilled : PROMISE_IDENTITY;\n\t var rejectReactionHandler = ES.IsCallable(onRejected) ? onRejected : PROMISE_THROWER;\n\t var _promise = promise._promise;\n\t var value;\n\t if (_promise.state === PROMISE_PENDING) {\n\t if (_promise.reactionLength === 0) {\n\t _promise.fulfillReactionHandler0 = fulfillReactionHandler;\n\t _promise.rejectReactionHandler0 = rejectReactionHandler;\n\t _promise.reactionCapability0 = resultCapability;\n\t } else {\n\t var idx = 3 * (_promise.reactionLength - 1);\n\t _promise[idx + PROMISE_FULFILL_OFFSET] = fulfillReactionHandler;\n\t _promise[idx + PROMISE_REJECT_OFFSET] = rejectReactionHandler;\n\t _promise[idx + PROMISE_CAPABILITY_OFFSET] = resultCapability;\n\t }\n\t _promise.reactionLength += 1;\n\t } else if (_promise.state === PROMISE_FULFILLED) {\n\t value = _promise.result;\n\t enqueuePromiseReactionJob(\n\t fulfillReactionHandler, resultCapability, value\n\t );\n\t } else if (_promise.state === PROMISE_REJECTED) {\n\t value = _promise.result;\n\t enqueuePromiseReactionJob(\n\t rejectReactionHandler, resultCapability, value\n\t );\n\t } else {\n\t throw new TypeError('unexpected Promise state');\n\t }\n\t return resultCapability.promise;\n\t }\n\t });\n\t // This helps the optimizer by ensuring that methods which take\n\t // capabilities aren't polymorphic.\n\t PROMISE_FAKE_CAPABILITY = new PromiseCapability(Promise);\n\t Promise$prototype$then = Promise$prototype.then;\n\t\n\t return Promise;\n\t }());\n\t\n\t // Chrome's native Promise has extra methods that it shouldn't have. Let's remove them.\n\t if (globals.Promise) {\n\t delete globals.Promise.accept;\n\t delete globals.Promise.defer;\n\t delete globals.Promise.prototype.chain;\n\t }\n\t\n\t if (typeof PromiseShim === 'function') {\n\t // export the Promise constructor.\n\t defineProperties(globals, { Promise: PromiseShim });\n\t // In Chrome 33 (and thereabouts) Promise is defined, but the\n\t // implementation is buggy in a number of ways. Let's check subclassing\n\t // support to see if we have a buggy implementation.\n\t var promiseSupportsSubclassing = supportsSubclassing(globals.Promise, function (S) {\n\t return S.resolve(42).then(function () {}) instanceof S;\n\t });\n\t var promiseIgnoresNonFunctionThenCallbacks = !throwsError(function () { globals.Promise.reject(42).then(null, 5).then(null, noop); });\n\t var promiseRequiresObjectContext = throwsError(function () { globals.Promise.call(3, noop); });\n\t // Promise.resolve() was errata'ed late in the ES6 process.\n\t // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1170742\n\t // https://code.google.com/p/v8/issues/detail?id=4161\n\t // It serves as a proxy for a number of other bugs in early Promise\n\t // implementations.\n\t var promiseResolveBroken = (function (Promise) {\n\t var p = Promise.resolve(5);\n\t p.constructor = {};\n\t var p2 = Promise.resolve(p);\n\t try {\n\t p2.then(null, noop).then(null, noop); // avoid \"uncaught rejection\" warnings in console\n\t } catch (e) {\n\t return true; // v8 native Promises break here https://code.google.com/p/chromium/issues/detail?id=575314\n\t }\n\t return p === p2; // This *should* be false!\n\t }(globals.Promise));\n\t\n\t // Chrome 46 (probably older too) does not retrieve a thenable's .then synchronously\n\t var getsThenSynchronously = supportsDescriptors && (function () {\n\t var count = 0;\n\t var thenable = Object.defineProperty({}, 'then', { get: function () { count += 1; } });\n\t Promise.resolve(thenable);\n\t return count === 1;\n\t }());\n\t\n\t var BadResolverPromise = function BadResolverPromise(executor) {\n\t var p = new Promise(executor);\n\t executor(3, function () {});\n\t this.then = p.then;\n\t this.constructor = BadResolverPromise;\n\t };\n\t BadResolverPromise.prototype = Promise.prototype;\n\t BadResolverPromise.all = Promise.all;\n\t // Chrome Canary 49 (probably older too) has some implementation bugs\n\t var hasBadResolverPromise = valueOrFalseIfThrows(function () {\n\t return !!BadResolverPromise.all([1, 2]);\n\t });\n\t\n\t if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks ||\n\t !promiseRequiresObjectContext || promiseResolveBroken ||\n\t !getsThenSynchronously || hasBadResolverPromise) {\n\t /* globals Promise: true */\n\t /* eslint-disable no-undef */\n\t /* jshint -W020 */\n\t Promise = PromiseShim;\n\t /* jshint +W020 */\n\t /* eslint-enable no-undef */\n\t /* globals Promise: false */\n\t overrideNative(globals, 'Promise', PromiseShim);\n\t }\n\t if (Promise.all.length !== 1) {\n\t var origAll = Promise.all;\n\t overrideNative(Promise, 'all', function all(iterable) {\n\t return ES.Call(origAll, this, arguments);\n\t });\n\t }\n\t if (Promise.race.length !== 1) {\n\t var origRace = Promise.race;\n\t overrideNative(Promise, 'race', function race(iterable) {\n\t return ES.Call(origRace, this, arguments);\n\t });\n\t }\n\t if (Promise.resolve.length !== 1) {\n\t var origResolve = Promise.resolve;\n\t overrideNative(Promise, 'resolve', function resolve(x) {\n\t return ES.Call(origResolve, this, arguments);\n\t });\n\t }\n\t if (Promise.reject.length !== 1) {\n\t var origReject = Promise.reject;\n\t overrideNative(Promise, 'reject', function reject(r) {\n\t return ES.Call(origReject, this, arguments);\n\t });\n\t }\n\t ensureEnumerable(Promise, 'all');\n\t ensureEnumerable(Promise, 'race');\n\t ensureEnumerable(Promise, 'resolve');\n\t ensureEnumerable(Promise, 'reject');\n\t addDefaultSpecies(Promise);\n\t }\n\t\n\t // Map and Set require a true ES5 environment\n\t // Their fast path also requires that the environment preserve\n\t // property insertion order, which is not guaranteed by the spec.\n\t var testOrder = function (a) {\n\t var b = keys(_reduce(a, function (o, k) {\n\t o[k] = true;\n\t return o;\n\t }, {}));\n\t return a.join(':') === b.join(':');\n\t };\n\t var preservesInsertionOrder = testOrder(['z', 'a', 'bb']);\n\t // some engines (eg, Chrome) only preserve insertion order for string keys\n\t var preservesNumericInsertionOrder = testOrder(['z', 1, 'a', '3', 2]);\n\t\n\t if (supportsDescriptors) {\n\t\n\t var fastkey = function fastkey(key) {\n\t if (!preservesInsertionOrder) {\n\t return null;\n\t }\n\t if (typeof key === 'undefined' || key === null) {\n\t return '^' + ES.ToString(key);\n\t } else if (typeof key === 'string') {\n\t return '$' + key;\n\t } else if (typeof key === 'number') {\n\t // note that -0 will get coerced to \"0\" when used as a property key\n\t if (!preservesNumericInsertionOrder) {\n\t return 'n' + key;\n\t }\n\t return key;\n\t } else if (typeof key === 'boolean') {\n\t return 'b' + key;\n\t }\n\t return null;\n\t };\n\t\n\t var emptyObject = function emptyObject() {\n\t // accomodate some older not-quite-ES5 browsers\n\t return Object.create ? Object.create(null) : {};\n\t };\n\t\n\t var addIterableToMap = function addIterableToMap(MapConstructor, map, iterable) {\n\t if (isArray(iterable) || Type.string(iterable)) {\n\t _forEach(iterable, function (entry) {\n\t if (!ES.TypeIsObject(entry)) {\n\t throw new TypeError('Iterator value ' + entry + ' is not an entry object');\n\t }\n\t map.set(entry[0], entry[1]);\n\t });\n\t } else if (iterable instanceof MapConstructor) {\n\t _call(MapConstructor.prototype.forEach, iterable, function (value, key) {\n\t map.set(key, value);\n\t });\n\t } else {\n\t var iter, adder;\n\t if (iterable !== null && typeof iterable !== 'undefined') {\n\t adder = map.set;\n\t if (!ES.IsCallable(adder)) { throw new TypeError('bad map'); }\n\t iter = ES.GetIterator(iterable);\n\t }\n\t if (typeof iter !== 'undefined') {\n\t while (true) {\n\t var next = ES.IteratorStep(iter);\n\t if (next === false) { break; }\n\t var nextItem = next.value;\n\t try {\n\t if (!ES.TypeIsObject(nextItem)) {\n\t throw new TypeError('Iterator value ' + nextItem + ' is not an entry object');\n\t }\n\t _call(adder, map, nextItem[0], nextItem[1]);\n\t } catch (e) {\n\t ES.IteratorClose(iter, true);\n\t throw e;\n\t }\n\t }\n\t }\n\t }\n\t };\n\t var addIterableToSet = function addIterableToSet(SetConstructor, set, iterable) {\n\t if (isArray(iterable) || Type.string(iterable)) {\n\t _forEach(iterable, function (value) {\n\t set.add(value);\n\t });\n\t } else if (iterable instanceof SetConstructor) {\n\t _call(SetConstructor.prototype.forEach, iterable, function (value) {\n\t set.add(value);\n\t });\n\t } else {\n\t var iter, adder;\n\t if (iterable !== null && typeof iterable !== 'undefined') {\n\t adder = set.add;\n\t if (!ES.IsCallable(adder)) { throw new TypeError('bad set'); }\n\t iter = ES.GetIterator(iterable);\n\t }\n\t if (typeof iter !== 'undefined') {\n\t while (true) {\n\t var next = ES.IteratorStep(iter);\n\t if (next === false) { break; }\n\t var nextValue = next.value;\n\t try {\n\t _call(adder, set, nextValue);\n\t } catch (e) {\n\t ES.IteratorClose(iter, true);\n\t throw e;\n\t }\n\t }\n\t }\n\t }\n\t };\n\t\n\t var collectionShims = {\n\t Map: (function () {\n\t\n\t var empty = {};\n\t\n\t var MapEntry = function MapEntry(key, value) {\n\t this.key = key;\n\t this.value = value;\n\t this.next = null;\n\t this.prev = null;\n\t };\n\t\n\t MapEntry.prototype.isRemoved = function isRemoved() {\n\t return this.key === empty;\n\t };\n\t\n\t var isMap = function isMap(map) {\n\t return !!map._es6map;\n\t };\n\t\n\t var requireMapSlot = function requireMapSlot(map, method) {\n\t if (!ES.TypeIsObject(map) || !isMap(map)) {\n\t throw new TypeError('Method Map.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(map));\n\t }\n\t };\n\t\n\t var MapIterator = function MapIterator(map, kind) {\n\t requireMapSlot(map, '[[MapIterator]]');\n\t this.head = map._head;\n\t this.i = this.head;\n\t this.kind = kind;\n\t };\n\t\n\t MapIterator.prototype = {\n\t next: function next() {\n\t var i = this.i;\n\t var kind = this.kind;\n\t var head = this.head;\n\t if (typeof this.i === 'undefined') {\n\t return iteratorResult();\n\t }\n\t while (i.isRemoved() && i !== head) {\n\t // back up off of removed entries\n\t i = i.prev;\n\t }\n\t // advance to next unreturned element.\n\t var result;\n\t while (i.next !== head) {\n\t i = i.next;\n\t if (!i.isRemoved()) {\n\t if (kind === 'key') {\n\t result = i.key;\n\t } else if (kind === 'value') {\n\t result = i.value;\n\t } else {\n\t result = [i.key, i.value];\n\t }\n\t this.i = i;\n\t return iteratorResult(result);\n\t }\n\t }\n\t // once the iterator is done, it is done forever.\n\t this.i = void 0;\n\t return iteratorResult();\n\t }\n\t };\n\t addIterator(MapIterator.prototype);\n\t\n\t var Map$prototype;\n\t var MapShim = function Map() {\n\t if (!(this instanceof Map)) {\n\t throw new TypeError('Constructor Map requires \"new\"');\n\t }\n\t if (this && this._es6map) {\n\t throw new TypeError('Bad construction');\n\t }\n\t var map = emulateES6construct(this, Map, Map$prototype, {\n\t _es6map: true,\n\t _head: null,\n\t _storage: emptyObject(),\n\t _size: 0\n\t });\n\t\n\t var head = new MapEntry(null, null);\n\t // circular doubly-linked list.\n\t head.next = head.prev = head;\n\t map._head = head;\n\t\n\t // Optionally initialize map from iterable\n\t if (arguments.length > 0) {\n\t addIterableToMap(Map, map, arguments[0]);\n\t }\n\t return map;\n\t };\n\t Map$prototype = MapShim.prototype;\n\t\n\t Value.getter(Map$prototype, 'size', function () {\n\t if (typeof this._size === 'undefined') {\n\t throw new TypeError('size method called on incompatible Map');\n\t }\n\t return this._size;\n\t });\n\t\n\t defineProperties(Map$prototype, {\n\t get: function get(key) {\n\t requireMapSlot(this, 'get');\n\t var fkey = fastkey(key);\n\t if (fkey !== null) {\n\t // fast O(1) path\n\t var entry = this._storage[fkey];\n\t if (entry) {\n\t return entry.value;\n\t } else {\n\t return;\n\t }\n\t }\n\t var head = this._head;\n\t var i = head;\n\t while ((i = i.next) !== head) {\n\t if (ES.SameValueZero(i.key, key)) {\n\t return i.value;\n\t }\n\t }\n\t },\n\t\n\t has: function has(key) {\n\t requireMapSlot(this, 'has');\n\t var fkey = fastkey(key);\n\t if (fkey !== null) {\n\t // fast O(1) path\n\t return typeof this._storage[fkey] !== 'undefined';\n\t }\n\t var head = this._head;\n\t var i = head;\n\t while ((i = i.next) !== head) {\n\t if (ES.SameValueZero(i.key, key)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t },\n\t\n\t set: function set(key, value) {\n\t requireMapSlot(this, 'set');\n\t var head = this._head;\n\t var i = head;\n\t var entry;\n\t var fkey = fastkey(key);\n\t if (fkey !== null) {\n\t // fast O(1) path\n\t if (typeof this._storage[fkey] !== 'undefined') {\n\t this._storage[fkey].value = value;\n\t return this;\n\t } else {\n\t entry = this._storage[fkey] = new MapEntry(key, value);\n\t i = head.prev;\n\t // fall through\n\t }\n\t }\n\t while ((i = i.next) !== head) {\n\t if (ES.SameValueZero(i.key, key)) {\n\t i.value = value;\n\t return this;\n\t }\n\t }\n\t entry = entry || new MapEntry(key, value);\n\t if (ES.SameValue(-0, key)) {\n\t entry.key = +0; // coerce -0 to +0 in entry\n\t }\n\t entry.next = this._head;\n\t entry.prev = this._head.prev;\n\t entry.prev.next = entry;\n\t entry.next.prev = entry;\n\t this._size += 1;\n\t return this;\n\t },\n\t\n\t 'delete': function (key) {\n\t requireMapSlot(this, 'delete');\n\t var head = this._head;\n\t var i = head;\n\t var fkey = fastkey(key);\n\t if (fkey !== null) {\n\t // fast O(1) path\n\t if (typeof this._storage[fkey] === 'undefined') {\n\t return false;\n\t }\n\t i = this._storage[fkey].prev;\n\t delete this._storage[fkey];\n\t // fall through\n\t }\n\t while ((i = i.next) !== head) {\n\t if (ES.SameValueZero(i.key, key)) {\n\t i.key = i.value = empty;\n\t i.prev.next = i.next;\n\t i.next.prev = i.prev;\n\t this._size -= 1;\n\t return true;\n\t }\n\t }\n\t return false;\n\t },\n\t\n\t clear: function clear() {\n\t requireMapSlot(this, 'clear');\n\t this._size = 0;\n\t this._storage = emptyObject();\n\t var head = this._head;\n\t var i = head;\n\t var p = i.next;\n\t while ((i = p) !== head) {\n\t i.key = i.value = empty;\n\t p = i.next;\n\t i.next = i.prev = head;\n\t }\n\t head.next = head.prev = head;\n\t },\n\t\n\t keys: function keys() {\n\t requireMapSlot(this, 'keys');\n\t return new MapIterator(this, 'key');\n\t },\n\t\n\t values: function values() {\n\t requireMapSlot(this, 'values');\n\t return new MapIterator(this, 'value');\n\t },\n\t\n\t entries: function entries() {\n\t requireMapSlot(this, 'entries');\n\t return new MapIterator(this, 'key+value');\n\t },\n\t\n\t forEach: function forEach(callback) {\n\t requireMapSlot(this, 'forEach');\n\t var context = arguments.length > 1 ? arguments[1] : null;\n\t var it = this.entries();\n\t for (var entry = it.next(); !entry.done; entry = it.next()) {\n\t if (context) {\n\t _call(callback, context, entry.value[1], entry.value[0], this);\n\t } else {\n\t callback(entry.value[1], entry.value[0], this);\n\t }\n\t }\n\t }\n\t });\n\t addIterator(Map$prototype, Map$prototype.entries);\n\t\n\t return MapShim;\n\t }()),\n\t\n\t Set: (function () {\n\t var isSet = function isSet(set) {\n\t return set._es6set && typeof set._storage !== 'undefined';\n\t };\n\t var requireSetSlot = function requireSetSlot(set, method) {\n\t if (!ES.TypeIsObject(set) || !isSet(set)) {\n\t // https://github.com/paulmillr/es6-shim/issues/176\n\t throw new TypeError('Set.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(set));\n\t }\n\t };\n\t\n\t // Creating a Map is expensive. To speed up the common case of\n\t // Sets containing only string or numeric keys, we use an object\n\t // as backing storage and lazily create a full Map only when\n\t // required.\n\t var Set$prototype;\n\t var SetShim = function Set() {\n\t if (!(this instanceof Set)) {\n\t throw new TypeError('Constructor Set requires \"new\"');\n\t }\n\t if (this && this._es6set) {\n\t throw new TypeError('Bad construction');\n\t }\n\t var set = emulateES6construct(this, Set, Set$prototype, {\n\t _es6set: true,\n\t '[[SetData]]': null,\n\t _storage: emptyObject()\n\t });\n\t if (!set._es6set) {\n\t throw new TypeError('bad set');\n\t }\n\t\n\t // Optionally initialize Set from iterable\n\t if (arguments.length > 0) {\n\t addIterableToSet(Set, set, arguments[0]);\n\t }\n\t return set;\n\t };\n\t Set$prototype = SetShim.prototype;\n\t\n\t var decodeKey = function (key) {\n\t var k = key;\n\t if (k === '^null') {\n\t return null;\n\t } else if (k === '^undefined') {\n\t return void 0;\n\t } else {\n\t var first = k.charAt(0);\n\t if (first === '$') {\n\t return _strSlice(k, 1);\n\t } else if (first === 'n') {\n\t return +_strSlice(k, 1);\n\t } else if (first === 'b') {\n\t return k === 'btrue';\n\t }\n\t }\n\t return +k;\n\t };\n\t // Switch from the object backing storage to a full Map.\n\t var ensureMap = function ensureMap(set) {\n\t if (!set['[[SetData]]']) {\n\t var m = set['[[SetData]]'] = new collectionShims.Map();\n\t _forEach(keys(set._storage), function (key) {\n\t var k = decodeKey(key);\n\t m.set(k, k);\n\t });\n\t set['[[SetData]]'] = m;\n\t }\n\t set._storage = null; // free old backing storage\n\t };\n\t\n\t Value.getter(SetShim.prototype, 'size', function () {\n\t requireSetSlot(this, 'size');\n\t if (this._storage) {\n\t return keys(this._storage).length;\n\t }\n\t ensureMap(this);\n\t return this['[[SetData]]'].size;\n\t });\n\t\n\t defineProperties(SetShim.prototype, {\n\t has: function has(key) {\n\t requireSetSlot(this, 'has');\n\t var fkey;\n\t if (this._storage && (fkey = fastkey(key)) !== null) {\n\t return !!this._storage[fkey];\n\t }\n\t ensureMap(this);\n\t return this['[[SetData]]'].has(key);\n\t },\n\t\n\t add: function add(key) {\n\t requireSetSlot(this, 'add');\n\t var fkey;\n\t if (this._storage && (fkey = fastkey(key)) !== null) {\n\t this._storage[fkey] = true;\n\t return this;\n\t }\n\t ensureMap(this);\n\t this['[[SetData]]'].set(key, key);\n\t return this;\n\t },\n\t\n\t 'delete': function (key) {\n\t requireSetSlot(this, 'delete');\n\t var fkey;\n\t if (this._storage && (fkey = fastkey(key)) !== null) {\n\t var hasFKey = _hasOwnProperty(this._storage, fkey);\n\t return (delete this._storage[fkey]) && hasFKey;\n\t }\n\t ensureMap(this);\n\t return this['[[SetData]]']['delete'](key);\n\t },\n\t\n\t clear: function clear() {\n\t requireSetSlot(this, 'clear');\n\t if (this._storage) {\n\t this._storage = emptyObject();\n\t }\n\t if (this['[[SetData]]']) {\n\t this['[[SetData]]'].clear();\n\t }\n\t },\n\t\n\t values: function values() {\n\t requireSetSlot(this, 'values');\n\t ensureMap(this);\n\t return this['[[SetData]]'].values();\n\t },\n\t\n\t entries: function entries() {\n\t requireSetSlot(this, 'entries');\n\t ensureMap(this);\n\t return this['[[SetData]]'].entries();\n\t },\n\t\n\t forEach: function forEach(callback) {\n\t requireSetSlot(this, 'forEach');\n\t var context = arguments.length > 1 ? arguments[1] : null;\n\t var entireSet = this;\n\t ensureMap(entireSet);\n\t this['[[SetData]]'].forEach(function (value, key) {\n\t if (context) {\n\t _call(callback, context, key, key, entireSet);\n\t } else {\n\t callback(key, key, entireSet);\n\t }\n\t });\n\t }\n\t });\n\t defineProperty(SetShim.prototype, 'keys', SetShim.prototype.values, true);\n\t addIterator(SetShim.prototype, SetShim.prototype.values);\n\t\n\t return SetShim;\n\t }())\n\t };\n\t\n\t if (globals.Map || globals.Set) {\n\t // Safari 8, for example, doesn't accept an iterable.\n\t var mapAcceptsArguments = valueOrFalseIfThrows(function () { return new Map([[1, 2]]).get(1) === 2; });\n\t if (!mapAcceptsArguments) {\n\t var OrigMapNoArgs = globals.Map;\n\t globals.Map = function Map() {\n\t if (!(this instanceof Map)) {\n\t throw new TypeError('Constructor Map requires \"new\"');\n\t }\n\t var m = new OrigMapNoArgs();\n\t if (arguments.length > 0) {\n\t addIterableToMap(Map, m, arguments[0]);\n\t }\n\t delete m.constructor;\n\t Object.setPrototypeOf(m, globals.Map.prototype);\n\t return m;\n\t };\n\t globals.Map.prototype = create(OrigMapNoArgs.prototype);\n\t defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n\t Value.preserveToString(globals.Map, OrigMapNoArgs);\n\t }\n\t var testMap = new Map();\n\t var mapUsesSameValueZero = (function () {\n\t // Chrome 38-42, node 0.11/0.12, iojs 1/2 also have a bug when the Map has a size > 4\n\t var m = new Map([[1, 0], [2, 0], [3, 0], [4, 0]]);\n\t m.set(-0, m);\n\t return m.get(0) === m && m.get(-0) === m && m.has(0) && m.has(-0);\n\t }());\n\t var mapSupportsChaining = testMap.set(1, 2) === testMap;\n\t if (!mapUsesSameValueZero || !mapSupportsChaining) {\n\t var origMapSet = Map.prototype.set;\n\t overrideNative(Map.prototype, 'set', function set(k, v) {\n\t _call(origMapSet, this, k === 0 ? 0 : k, v);\n\t return this;\n\t });\n\t }\n\t if (!mapUsesSameValueZero) {\n\t var origMapGet = Map.prototype.get;\n\t var origMapHas = Map.prototype.has;\n\t defineProperties(Map.prototype, {\n\t get: function get(k) {\n\t return _call(origMapGet, this, k === 0 ? 0 : k);\n\t },\n\t has: function has(k) {\n\t return _call(origMapHas, this, k === 0 ? 0 : k);\n\t }\n\t }, true);\n\t Value.preserveToString(Map.prototype.get, origMapGet);\n\t Value.preserveToString(Map.prototype.has, origMapHas);\n\t }\n\t var testSet = new Set();\n\t var setUsesSameValueZero = (function (s) {\n\t s['delete'](0);\n\t s.add(-0);\n\t return !s.has(0);\n\t }(testSet));\n\t var setSupportsChaining = testSet.add(1) === testSet;\n\t if (!setUsesSameValueZero || !setSupportsChaining) {\n\t var origSetAdd = Set.prototype.add;\n\t Set.prototype.add = function add(v) {\n\t _call(origSetAdd, this, v === 0 ? 0 : v);\n\t return this;\n\t };\n\t Value.preserveToString(Set.prototype.add, origSetAdd);\n\t }\n\t if (!setUsesSameValueZero) {\n\t var origSetHas = Set.prototype.has;\n\t Set.prototype.has = function has(v) {\n\t return _call(origSetHas, this, v === 0 ? 0 : v);\n\t };\n\t Value.preserveToString(Set.prototype.has, origSetHas);\n\t var origSetDel = Set.prototype['delete'];\n\t Set.prototype['delete'] = function SetDelete(v) {\n\t return _call(origSetDel, this, v === 0 ? 0 : v);\n\t };\n\t Value.preserveToString(Set.prototype['delete'], origSetDel);\n\t }\n\t var mapSupportsSubclassing = supportsSubclassing(globals.Map, function (M) {\n\t var m = new M([]);\n\t // Firefox 32 is ok with the instantiating the subclass but will\n\t // throw when the map is used.\n\t m.set(42, 42);\n\t return m instanceof M;\n\t });\n\t var mapFailsToSupportSubclassing = Object.setPrototypeOf && !mapSupportsSubclassing; // without Object.setPrototypeOf, subclassing is not possible\n\t var mapRequiresNew = (function () {\n\t try {\n\t return !(globals.Map() instanceof globals.Map);\n\t } catch (e) {\n\t return e instanceof TypeError;\n\t }\n\t }());\n\t if (globals.Map.length !== 0 || mapFailsToSupportSubclassing || !mapRequiresNew) {\n\t var OrigMap = globals.Map;\n\t globals.Map = function Map() {\n\t if (!(this instanceof Map)) {\n\t throw new TypeError('Constructor Map requires \"new\"');\n\t }\n\t var m = new OrigMap();\n\t if (arguments.length > 0) {\n\t addIterableToMap(Map, m, arguments[0]);\n\t }\n\t delete m.constructor;\n\t Object.setPrototypeOf(m, Map.prototype);\n\t return m;\n\t };\n\t globals.Map.prototype = OrigMap.prototype;\n\t defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n\t Value.preserveToString(globals.Map, OrigMap);\n\t }\n\t var setSupportsSubclassing = supportsSubclassing(globals.Set, function (S) {\n\t var s = new S([]);\n\t s.add(42, 42);\n\t return s instanceof S;\n\t });\n\t var setFailsToSupportSubclassing = Object.setPrototypeOf && !setSupportsSubclassing; // without Object.setPrototypeOf, subclassing is not possible\n\t var setRequiresNew = (function () {\n\t try {\n\t return !(globals.Set() instanceof globals.Set);\n\t } catch (e) {\n\t return e instanceof TypeError;\n\t }\n\t }());\n\t if (globals.Set.length !== 0 || setFailsToSupportSubclassing || !setRequiresNew) {\n\t var OrigSet = globals.Set;\n\t globals.Set = function Set() {\n\t if (!(this instanceof Set)) {\n\t throw new TypeError('Constructor Set requires \"new\"');\n\t }\n\t var s = new OrigSet();\n\t if (arguments.length > 0) {\n\t addIterableToSet(Set, s, arguments[0]);\n\t }\n\t delete s.constructor;\n\t Object.setPrototypeOf(s, Set.prototype);\n\t return s;\n\t };\n\t globals.Set.prototype = OrigSet.prototype;\n\t defineProperty(globals.Set.prototype, 'constructor', globals.Set, true);\n\t Value.preserveToString(globals.Set, OrigSet);\n\t }\n\t var newMap = new globals.Map();\n\t var mapIterationThrowsStopIterator = !valueOrFalseIfThrows(function () {\n\t return newMap.keys().next().done;\n\t });\n\t /*\n\t - In Firefox < 23, Map#size is a function.\n\t - In all current Firefox, Set#entries/keys/values & Map#clear do not exist\n\t - https://bugzilla.mozilla.org/show_bug.cgi?id=869996\n\t - In Firefox 24, Map and Set do not implement forEach\n\t - In Firefox 25 at least, Map and Set are callable without \"new\"\n\t */\n\t if (\n\t typeof globals.Map.prototype.clear !== 'function' ||\n\t new globals.Set().size !== 0 ||\n\t newMap.size !== 0 ||\n\t typeof globals.Map.prototype.keys !== 'function' ||\n\t typeof globals.Set.prototype.keys !== 'function' ||\n\t typeof globals.Map.prototype.forEach !== 'function' ||\n\t typeof globals.Set.prototype.forEach !== 'function' ||\n\t isCallableWithoutNew(globals.Map) ||\n\t isCallableWithoutNew(globals.Set) ||\n\t typeof newMap.keys().next !== 'function' || // Safari 8\n\t mapIterationThrowsStopIterator || // Firefox 25\n\t !mapSupportsSubclassing\n\t ) {\n\t defineProperties(globals, {\n\t Map: collectionShims.Map,\n\t Set: collectionShims.Set\n\t }, true);\n\t }\n\t\n\t if (globals.Set.prototype.keys !== globals.Set.prototype.values) {\n\t // Fixed in WebKit with https://bugs.webkit.org/show_bug.cgi?id=144190\n\t defineProperty(globals.Set.prototype, 'keys', globals.Set.prototype.values, true);\n\t }\n\t\n\t // Shim incomplete iterator implementations.\n\t addIterator(Object.getPrototypeOf((new globals.Map()).keys()));\n\t addIterator(Object.getPrototypeOf((new globals.Set()).keys()));\n\t\n\t if (functionsHaveNames && globals.Set.prototype.has.name !== 'has') {\n\t // Microsoft Edge v0.11.10074.0 is missing a name on Set#has\n\t var anonymousSetHas = globals.Set.prototype.has;\n\t overrideNative(globals.Set.prototype, 'has', function has(key) {\n\t return _call(anonymousSetHas, this, key);\n\t });\n\t }\n\t }\n\t defineProperties(globals, collectionShims);\n\t addDefaultSpecies(globals.Map);\n\t addDefaultSpecies(globals.Set);\n\t }\n\t\n\t var throwUnlessTargetIsObject = function throwUnlessTargetIsObject(target) {\n\t if (!ES.TypeIsObject(target)) {\n\t throw new TypeError('target must be an object');\n\t }\n\t };\n\t\n\t // Some Reflect methods are basically the same as\n\t // those on the Object global, except that a TypeError is thrown if\n\t // target isn't an object. As well as returning a boolean indicating\n\t // the success of the operation.\n\t var ReflectShims = {\n\t // Apply method in a functional form.\n\t apply: function apply() {\n\t return ES.Call(ES.Call, null, arguments);\n\t },\n\t\n\t // New operator in a functional form.\n\t construct: function construct(constructor, args) {\n\t if (!ES.IsConstructor(constructor)) {\n\t throw new TypeError('First argument must be a constructor.');\n\t }\n\t var newTarget = arguments.length > 2 ? arguments[2] : constructor;\n\t if (!ES.IsConstructor(newTarget)) {\n\t throw new TypeError('new.target must be a constructor.');\n\t }\n\t return ES.Construct(constructor, args, newTarget, 'internal');\n\t },\n\t\n\t // When deleting a non-existent or configurable property,\n\t // true is returned.\n\t // When attempting to delete a non-configurable property,\n\t // it will return false.\n\t deleteProperty: function deleteProperty(target, key) {\n\t throwUnlessTargetIsObject(target);\n\t if (supportsDescriptors) {\n\t var desc = Object.getOwnPropertyDescriptor(target, key);\n\t\n\t if (desc && !desc.configurable) {\n\t return false;\n\t }\n\t }\n\t\n\t // Will return true.\n\t return delete target[key];\n\t },\n\t\n\t has: function has(target, key) {\n\t throwUnlessTargetIsObject(target);\n\t return key in target;\n\t }\n\t };\n\t\n\t if (Object.getOwnPropertyNames) {\n\t Object.assign(ReflectShims, {\n\t // Basically the result of calling the internal [[OwnPropertyKeys]].\n\t // Concatenating propertyNames and propertySymbols should do the trick.\n\t // This should continue to work together with a Symbol shim\n\t // which overrides Object.getOwnPropertyNames and implements\n\t // Object.getOwnPropertySymbols.\n\t ownKeys: function ownKeys(target) {\n\t throwUnlessTargetIsObject(target);\n\t var keys = Object.getOwnPropertyNames(target);\n\t\n\t if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n\t _pushApply(keys, Object.getOwnPropertySymbols(target));\n\t }\n\t\n\t return keys;\n\t }\n\t });\n\t }\n\t\n\t var callAndCatchException = function ConvertExceptionToBoolean(func) {\n\t return !throwsError(func);\n\t };\n\t\n\t if (Object.preventExtensions) {\n\t Object.assign(ReflectShims, {\n\t isExtensible: function isExtensible(target) {\n\t throwUnlessTargetIsObject(target);\n\t return Object.isExtensible(target);\n\t },\n\t preventExtensions: function preventExtensions(target) {\n\t throwUnlessTargetIsObject(target);\n\t return callAndCatchException(function () {\n\t Object.preventExtensions(target);\n\t });\n\t }\n\t });\n\t }\n\t\n\t if (supportsDescriptors) {\n\t var internalGet = function get(target, key, receiver) {\n\t var desc = Object.getOwnPropertyDescriptor(target, key);\n\t\n\t if (!desc) {\n\t var parent = Object.getPrototypeOf(target);\n\t\n\t if (parent === null) {\n\t return void 0;\n\t }\n\t\n\t return internalGet(parent, key, receiver);\n\t }\n\t\n\t if ('value' in desc) {\n\t return desc.value;\n\t }\n\t\n\t if (desc.get) {\n\t return ES.Call(desc.get, receiver);\n\t }\n\t\n\t return void 0;\n\t };\n\t\n\t var internalSet = function set(target, key, value, receiver) {\n\t var desc = Object.getOwnPropertyDescriptor(target, key);\n\t\n\t if (!desc) {\n\t var parent = Object.getPrototypeOf(target);\n\t\n\t if (parent !== null) {\n\t return internalSet(parent, key, value, receiver);\n\t }\n\t\n\t desc = {\n\t value: void 0,\n\t writable: true,\n\t enumerable: true,\n\t configurable: true\n\t };\n\t }\n\t\n\t if ('value' in desc) {\n\t if (!desc.writable) {\n\t return false;\n\t }\n\t\n\t if (!ES.TypeIsObject(receiver)) {\n\t return false;\n\t }\n\t\n\t var existingDesc = Object.getOwnPropertyDescriptor(receiver, key);\n\t\n\t if (existingDesc) {\n\t return Reflect.defineProperty(receiver, key, {\n\t value: value\n\t });\n\t } else {\n\t return Reflect.defineProperty(receiver, key, {\n\t value: value,\n\t writable: true,\n\t enumerable: true,\n\t configurable: true\n\t });\n\t }\n\t }\n\t\n\t if (desc.set) {\n\t _call(desc.set, receiver, value);\n\t return true;\n\t }\n\t\n\t return false;\n\t };\n\t\n\t Object.assign(ReflectShims, {\n\t defineProperty: function defineProperty(target, propertyKey, attributes) {\n\t throwUnlessTargetIsObject(target);\n\t return callAndCatchException(function () {\n\t Object.defineProperty(target, propertyKey, attributes);\n\t });\n\t },\n\t\n\t getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n\t throwUnlessTargetIsObject(target);\n\t return Object.getOwnPropertyDescriptor(target, propertyKey);\n\t },\n\t\n\t // Syntax in a functional form.\n\t get: function get(target, key) {\n\t throwUnlessTargetIsObject(target);\n\t var receiver = arguments.length > 2 ? arguments[2] : target;\n\t\n\t return internalGet(target, key, receiver);\n\t },\n\t\n\t set: function set(target, key, value) {\n\t throwUnlessTargetIsObject(target);\n\t var receiver = arguments.length > 3 ? arguments[3] : target;\n\t\n\t return internalSet(target, key, value, receiver);\n\t }\n\t });\n\t }\n\t\n\t if (Object.getPrototypeOf) {\n\t var objectDotGetPrototypeOf = Object.getPrototypeOf;\n\t ReflectShims.getPrototypeOf = function getPrototypeOf(target) {\n\t throwUnlessTargetIsObject(target);\n\t return objectDotGetPrototypeOf(target);\n\t };\n\t }\n\t\n\t if (Object.setPrototypeOf && ReflectShims.getPrototypeOf) {\n\t var willCreateCircularPrototype = function (object, lastProto) {\n\t var proto = lastProto;\n\t while (proto) {\n\t if (object === proto) {\n\t return true;\n\t }\n\t proto = ReflectShims.getPrototypeOf(proto);\n\t }\n\t return false;\n\t };\n\t\n\t Object.assign(ReflectShims, {\n\t // Sets the prototype of the given object.\n\t // Returns true on success, otherwise false.\n\t setPrototypeOf: function setPrototypeOf(object, proto) {\n\t throwUnlessTargetIsObject(object);\n\t if (proto !== null && !ES.TypeIsObject(proto)) {\n\t throw new TypeError('proto must be an object or null');\n\t }\n\t\n\t // If they already are the same, we're done.\n\t if (proto === Reflect.getPrototypeOf(object)) {\n\t return true;\n\t }\n\t\n\t // Cannot alter prototype if object not extensible.\n\t if (Reflect.isExtensible && !Reflect.isExtensible(object)) {\n\t return false;\n\t }\n\t\n\t // Ensure that we do not create a circular prototype chain.\n\t if (willCreateCircularPrototype(object, proto)) {\n\t return false;\n\t }\n\t\n\t Object.setPrototypeOf(object, proto);\n\t\n\t return true;\n\t }\n\t });\n\t }\n\t var defineOrOverrideReflectProperty = function (key, shim) {\n\t if (!ES.IsCallable(globals.Reflect[key])) {\n\t defineProperty(globals.Reflect, key, shim);\n\t } else {\n\t var acceptsPrimitives = valueOrFalseIfThrows(function () {\n\t globals.Reflect[key](1);\n\t globals.Reflect[key](NaN);\n\t globals.Reflect[key](true);\n\t return true;\n\t });\n\t if (acceptsPrimitives) {\n\t overrideNative(globals.Reflect, key, shim);\n\t }\n\t }\n\t };\n\t Object.keys(ReflectShims).forEach(function (key) {\n\t defineOrOverrideReflectProperty(key, ReflectShims[key]);\n\t });\n\t var originalReflectGetProto = globals.Reflect.getPrototypeOf;\n\t if (functionsHaveNames && originalReflectGetProto && originalReflectGetProto.name !== 'getPrototypeOf') {\n\t overrideNative(globals.Reflect, 'getPrototypeOf', function getPrototypeOf(target) {\n\t return _call(originalReflectGetProto, globals.Reflect, target);\n\t });\n\t }\n\t if (globals.Reflect.setPrototypeOf) {\n\t if (valueOrFalseIfThrows(function () {\n\t globals.Reflect.setPrototypeOf(1, {});\n\t return true;\n\t })) {\n\t overrideNative(globals.Reflect, 'setPrototypeOf', ReflectShims.setPrototypeOf);\n\t }\n\t }\n\t if (globals.Reflect.defineProperty) {\n\t if (!valueOrFalseIfThrows(function () {\n\t var basic = !globals.Reflect.defineProperty(1, 'test', { value: 1 });\n\t // \"extensible\" fails on Edge 0.12\n\t var extensible = typeof Object.preventExtensions !== 'function' || !globals.Reflect.defineProperty(Object.preventExtensions({}), 'test', {});\n\t return basic && extensible;\n\t })) {\n\t overrideNative(globals.Reflect, 'defineProperty', ReflectShims.defineProperty);\n\t }\n\t }\n\t if (globals.Reflect.construct) {\n\t if (!valueOrFalseIfThrows(function () {\n\t var F = function F() {};\n\t return globals.Reflect.construct(function () {}, [], F) instanceof F;\n\t })) {\n\t overrideNative(globals.Reflect, 'construct', ReflectShims.construct);\n\t }\n\t }\n\t\n\t if (String(new Date(NaN)) !== 'Invalid Date') {\n\t var dateToString = Date.prototype.toString;\n\t var shimmedDateToString = function toString() {\n\t var valueOf = +this;\n\t if (valueOf !== valueOf) {\n\t return 'Invalid Date';\n\t }\n\t return ES.Call(dateToString, this);\n\t };\n\t overrideNative(Date.prototype, 'toString', shimmedDateToString);\n\t }\n\t\n\t // Annex B HTML methods\n\t // http://www.ecma-international.org/ecma-262/6.0/#sec-additional-properties-of-the-string.prototype-object\n\t var stringHTMLshims = {\n\t anchor: function anchor(name) { return ES.CreateHTML(this, 'a', 'name', name); },\n\t big: function big() { return ES.CreateHTML(this, 'big', '', ''); },\n\t blink: function blink() { return ES.CreateHTML(this, 'blink', '', ''); },\n\t bold: function bold() { return ES.CreateHTML(this, 'b', '', ''); },\n\t fixed: function fixed() { return ES.CreateHTML(this, 'tt', '', ''); },\n\t fontcolor: function fontcolor(color) { return ES.CreateHTML(this, 'font', 'color', color); },\n\t fontsize: function fontsize(size) { return ES.CreateHTML(this, 'font', 'size', size); },\n\t italics: function italics() { return ES.CreateHTML(this, 'i', '', ''); },\n\t link: function link(url) { return ES.CreateHTML(this, 'a', 'href', url); },\n\t small: function small() { return ES.CreateHTML(this, 'small', '', ''); },\n\t strike: function strike() { return ES.CreateHTML(this, 'strike', '', ''); },\n\t sub: function sub() { return ES.CreateHTML(this, 'sub', '', ''); },\n\t sup: function sub() { return ES.CreateHTML(this, 'sup', '', ''); }\n\t };\n\t _forEach(Object.keys(stringHTMLshims), function (key) {\n\t var method = String.prototype[key];\n\t var shouldOverwrite = false;\n\t if (ES.IsCallable(method)) {\n\t var output = _call(method, '', ' \" ');\n\t var quotesCount = _concat([], output.match(/\"/g)).length;\n\t shouldOverwrite = output !== output.toLowerCase() || quotesCount > 2;\n\t } else {\n\t shouldOverwrite = true;\n\t }\n\t if (shouldOverwrite) {\n\t overrideNative(String.prototype, key, stringHTMLshims[key]);\n\t }\n\t });\n\t\n\t var JSONstringifiesSymbols = (function () {\n\t // Microsoft Edge v0.12 stringifies Symbols incorrectly\n\t if (!hasSymbols) { return false; } // Symbols are not supported\n\t var stringify = typeof JSON === 'object' && typeof JSON.stringify === 'function' ? JSON.stringify : null;\n\t if (!stringify) { return false; } // JSON.stringify is not supported\n\t if (typeof stringify(Symbol()) !== 'undefined') { return true; } // Symbols should become `undefined`\n\t if (stringify([Symbol()]) !== '[null]') { return true; } // Symbols in arrays should become `null`\n\t var obj = { a: Symbol() };\n\t obj[Symbol()] = true;\n\t if (stringify(obj) !== '{}') { return true; } // Symbol-valued keys *and* Symbol-valued properties should be omitted\n\t return false;\n\t }());\n\t var JSONstringifyAcceptsObjectSymbol = valueOrFalseIfThrows(function () {\n\t // Chrome 45 throws on stringifying object symbols\n\t if (!hasSymbols) { return true; } // Symbols are not supported\n\t return JSON.stringify(Object(Symbol())) === '{}' && JSON.stringify([Object(Symbol())]) === '[{}]';\n\t });\n\t if (JSONstringifiesSymbols || !JSONstringifyAcceptsObjectSymbol) {\n\t var origStringify = JSON.stringify;\n\t overrideNative(JSON, 'stringify', function stringify(value) {\n\t if (typeof value === 'symbol') { return; }\n\t var replacer;\n\t if (arguments.length > 1) {\n\t replacer = arguments[1];\n\t }\n\t var args = [value];\n\t if (!isArray(replacer)) {\n\t var replaceFn = ES.IsCallable(replacer) ? replacer : null;\n\t var wrappedReplacer = function (key, val) {\n\t var parsedValue = replaceFn ? _call(replaceFn, this, key, val) : val;\n\t if (typeof parsedValue !== 'symbol') {\n\t if (Type.symbol(parsedValue)) {\n\t return assignTo({})(parsedValue);\n\t } else {\n\t return parsedValue;\n\t }\n\t }\n\t };\n\t args.push(wrappedReplacer);\n\t } else {\n\t // create wrapped replacer that handles an array replacer?\n\t args.push(replacer);\n\t }\n\t if (arguments.length > 2) {\n\t args.push(arguments[2]);\n\t }\n\t return origStringify.apply(this, args);\n\t });\n\t }\n\t\n\t return globals;\n\t}));\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(206)))\n\n/***/ }),\n\n/***/ 206:\n/***/ (function(module, exports) {\n\n\t// shim for using process in browser\n\tvar process = module.exports = {};\n\t\n\t// cached from whatever global is present so that test runners that stub it\n\t// don't break things. But we need to wrap it in a try catch in case it is\n\t// wrapped in strict mode code which doesn't define any globals. It's inside a\n\t// function because try/catches deoptimize in certain engines.\n\t\n\tvar cachedSetTimeout;\n\tvar cachedClearTimeout;\n\t\n\tfunction defaultSetTimout() {\n\t throw new Error('setTimeout has not been defined');\n\t}\n\tfunction defaultClearTimeout () {\n\t throw new Error('clearTimeout has not been defined');\n\t}\n\t(function () {\n\t try {\n\t if (typeof setTimeout === 'function') {\n\t cachedSetTimeout = setTimeout;\n\t } else {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t } catch (e) {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t try {\n\t if (typeof clearTimeout === 'function') {\n\t cachedClearTimeout = clearTimeout;\n\t } else {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t } catch (e) {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t} ())\n\tfunction runTimeout(fun) {\n\t if (cachedSetTimeout === setTimeout) {\n\t //normal enviroments in sane situations\n\t return setTimeout(fun, 0);\n\t }\n\t // if setTimeout wasn't available but was latter defined\n\t if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n\t cachedSetTimeout = setTimeout;\n\t return setTimeout(fun, 0);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedSetTimeout(fun, 0);\n\t } catch(e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedSetTimeout.call(null, fun, 0);\n\t } catch(e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n\t return cachedSetTimeout.call(this, fun, 0);\n\t }\n\t }\n\t\n\t\n\t}\n\tfunction runClearTimeout(marker) {\n\t if (cachedClearTimeout === clearTimeout) {\n\t //normal enviroments in sane situations\n\t return clearTimeout(marker);\n\t }\n\t // if clearTimeout wasn't available but was latter defined\n\t if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n\t cachedClearTimeout = clearTimeout;\n\t return clearTimeout(marker);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedClearTimeout(marker);\n\t } catch (e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedClearTimeout.call(null, marker);\n\t } catch (e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n\t // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n\t return cachedClearTimeout.call(this, marker);\n\t }\n\t }\n\t\n\t\n\t\n\t}\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t if (!draining || !currentQueue) {\n\t return;\n\t }\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = runTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t runClearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t runTimeout(drainQueue);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\tprocess.prependListener = noop;\n\tprocess.prependOnceListener = noop;\n\t\n\tprocess.listeners = function (name) { return [] }\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ })\n\n/******/ })));\n\n\n// WEBPACK FOOTER //\n// polyfills.73c719.min.js"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tvar _m = moreModules[moduleId];\n\n \t\t\t\t// Check if module is deduplicated\n \t\t\t\tswitch(typeof _m) {\n \t\t\t\tcase \"object\":\n \t\t\t\t\t// Module can be created from a template\n \t\t\t\t\tmodules[moduleId] = (function(_m) {\n \t\t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n \t\t\t\t\t\treturn function (a,b,c) {\n \t\t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n \t\t\t\t\t\t};\n \t\t\t\t\t}(_m));\n \t\t\t\t\tbreak;\n \t\t\t\tcase \"function\":\n \t\t\t\t\t// Normal module\n \t\t\t\t\tmodules[moduleId] = _m;\n \t\t\t\t\tbreak;\n \t\t\t\tdefault:\n \t\t\t\t\t// Module is a copy of another module\n \t\t\t\t\tmodules[moduleId] = modules[_m];\n \t\t\t\t\tbreak;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t0:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + ({\"1\":\"app\",\"2\":\"vendor\",\"3\":\"sharebase\"}[chunkId]||chunkId) + \".\" + {\"1\":\"650bfc\",\"2\":\"7d0046\",\"3\":\"b198df\"}[chunkId] + \".min.js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f9462c38af1f2567e84a","require('es6-shim');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/polyfills.js\n// module id = 0\n// module chunks = 0"," /*!\n * https://github.com/paulmillr/es6-shim\n * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com)\n * and contributors, MIT License\n * es6-shim: v0.35.1\n * see https://github.com/paulmillr/es6-shim/blob/0.35.1/LICENSE\n * Details and documentation:\n * https://github.com/paulmillr/es6-shim/\n */\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/returnExports.js\n(function (root, factory) {\n /*global define, module, exports */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory();\n }\n}(this, function () {\n 'use strict';\n\n var _apply = Function.call.bind(Function.apply);\n var _call = Function.call.bind(Function.call);\n var isArray = Array.isArray;\n var keys = Object.keys;\n\n var not = function notThunker(func) {\n return function notThunk() {\n return !_apply(func, this, arguments);\n };\n };\n var throwsError = function (func) {\n try {\n func();\n return false;\n } catch (e) {\n return true;\n }\n };\n var valueOrFalseIfThrows = function valueOrFalseIfThrows(func) {\n try {\n return func();\n } catch (e) {\n return false;\n }\n };\n\n var isCallableWithoutNew = not(throwsError);\n var arePropertyDescriptorsSupported = function () {\n // if Object.defineProperty exists but throws, it's IE 8\n return !throwsError(function () {\n Object.defineProperty({}, 'x', { get: function () {} });\n });\n };\n var supportsDescriptors = !!Object.defineProperty && arePropertyDescriptorsSupported();\n var functionsHaveNames = (function foo() {}).name === 'foo'; // eslint-disable-line no-extra-parens\n\n var _forEach = Function.call.bind(Array.prototype.forEach);\n var _reduce = Function.call.bind(Array.prototype.reduce);\n var _filter = Function.call.bind(Array.prototype.filter);\n var _some = Function.call.bind(Array.prototype.some);\n\n var defineProperty = function (object, name, value, force) {\n if (!force && name in object) { return; }\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n // Define configurable, writable and non-enumerable props\n // if they don’t exist.\n var defineProperties = function (object, map, forceOverride) {\n _forEach(keys(map), function (name) {\n var method = map[name];\n defineProperty(object, name, method, !!forceOverride);\n });\n };\n\n var _toString = Function.call.bind(Object.prototype.toString);\n var isCallable = typeof /abc/ === 'function' ? function IsCallableSlow(x) {\n // Some old browsers (IE, FF) say that typeof /abc/ === 'function'\n return typeof x === 'function' && _toString(x) === '[object Function]';\n } : function IsCallableFast(x) { return typeof x === 'function'; };\n\n var Value = {\n getter: function (object, name, getter) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n get: getter\n });\n },\n proxy: function (originalObject, key, targetObject) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n var originalDescriptor = Object.getOwnPropertyDescriptor(originalObject, key);\n Object.defineProperty(targetObject, key, {\n configurable: originalDescriptor.configurable,\n enumerable: originalDescriptor.enumerable,\n get: function getKey() { return originalObject[key]; },\n set: function setKey(value) { originalObject[key] = value; }\n });\n },\n redefine: function (object, property, newValue) {\n if (supportsDescriptors) {\n var descriptor = Object.getOwnPropertyDescriptor(object, property);\n descriptor.value = newValue;\n Object.defineProperty(object, property, descriptor);\n } else {\n object[property] = newValue;\n }\n },\n defineByDescriptor: function (object, property, descriptor) {\n if (supportsDescriptors) {\n Object.defineProperty(object, property, descriptor);\n } else if ('value' in descriptor) {\n object[property] = descriptor.value;\n }\n },\n preserveToString: function (target, source) {\n if (source && isCallable(source.toString)) {\n defineProperty(target, 'toString', source.toString.bind(source), true);\n }\n }\n };\n\n // Simple shim for Object.create on ES3 browsers\n // (unlike real shim, no attempt to support `prototype === null`)\n var create = Object.create || function (prototype, properties) {\n var Prototype = function Prototype() {};\n Prototype.prototype = prototype;\n var object = new Prototype();\n if (typeof properties !== 'undefined') {\n keys(properties).forEach(function (key) {\n Value.defineByDescriptor(object, key, properties[key]);\n });\n }\n return object;\n };\n\n var supportsSubclassing = function (C, f) {\n if (!Object.setPrototypeOf) { return false; /* skip test on IE < 11 */ }\n return valueOrFalseIfThrows(function () {\n var Sub = function Subclass(arg) {\n var o = new C(arg);\n Object.setPrototypeOf(o, Subclass.prototype);\n return o;\n };\n Object.setPrototypeOf(Sub, C);\n Sub.prototype = create(C.prototype, {\n constructor: { value: Sub }\n });\n return f(Sub);\n });\n };\n\n var getGlobal = function () {\n /* global self, window, global */\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') { return self; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n throw new Error('unable to locate global object');\n };\n\n var globals = getGlobal();\n var globalIsFinite = globals.isFinite;\n var _indexOf = Function.call.bind(String.prototype.indexOf);\n var _arrayIndexOfApply = Function.apply.bind(Array.prototype.indexOf);\n var _concat = Function.call.bind(Array.prototype.concat);\n // var _sort = Function.call.bind(Array.prototype.sort);\n var _strSlice = Function.call.bind(String.prototype.slice);\n var _push = Function.call.bind(Array.prototype.push);\n var _pushApply = Function.apply.bind(Array.prototype.push);\n var _shift = Function.call.bind(Array.prototype.shift);\n var _max = Math.max;\n var _min = Math.min;\n var _floor = Math.floor;\n var _abs = Math.abs;\n var _exp = Math.exp;\n var _log = Math.log;\n var _sqrt = Math.sqrt;\n var _hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n var ArrayIterator; // make our implementation private\n var noop = function () {};\n\n var Symbol = globals.Symbol || {};\n var symbolSpecies = Symbol.species || '@@species';\n\n var numberIsNaN = Number.isNaN || function isNaN(value) {\n // NaN !== NaN, but they are identical.\n // NaNs are the only non-reflexive value, i.e., if x !== x,\n // then x is NaN.\n // isNaN is broken: it converts its argument to number, so\n // isNaN('foo') => true\n return value !== value;\n };\n var numberIsFinite = Number.isFinite || function isFinite(value) {\n return typeof value === 'number' && globalIsFinite(value);\n };\n var _sign = isCallable(Math.sign) ? Math.sign : function sign(value) {\n var number = Number(value);\n if (number === 0) { return number; }\n if (numberIsNaN(number)) { return number; }\n return number < 0 ? -1 : 1;\n };\n\n // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n // can be replaced with require('is-arguments') if we ever use a build process instead\n var isStandardArguments = function isArguments(value) {\n return _toString(value) === '[object Arguments]';\n };\n var isLegacyArguments = function isArguments(value) {\n return value !== null &&\n typeof value === 'object' &&\n typeof value.length === 'number' &&\n value.length >= 0 &&\n _toString(value) !== '[object Array]' &&\n _toString(value.callee) === '[object Function]';\n };\n var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n\n var Type = {\n primitive: function (x) { return x === null || (typeof x !== 'function' && typeof x !== 'object'); },\n string: function (x) { return _toString(x) === '[object String]'; },\n regex: function (x) { return _toString(x) === '[object RegExp]'; },\n symbol: function (x) {\n return typeof globals.Symbol === 'function' && typeof x === 'symbol';\n }\n };\n\n var overrideNative = function overrideNative(object, property, replacement) {\n var original = object[property];\n defineProperty(object, property, replacement, true);\n Value.preserveToString(object[property], original);\n };\n\n var hasSymbols = typeof Symbol === 'function' && typeof Symbol['for'] === 'function' && Type.symbol(Symbol());\n\n // This is a private name in the es6 spec, equal to '[Symbol.iterator]'\n // we're going to use an arbitrary _-prefixed name to make our shims\n // work properly with each other, even though we don't have full Iterator\n // support. That is, `Array.from(map.keys())` will work, but we don't\n // pretend to export a \"real\" Iterator interface.\n var $iterator$ = Type.symbol(Symbol.iterator) ? Symbol.iterator : '_es6-shim iterator_';\n // Firefox ships a partial implementation using the name @@iterator.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14\n // So use that name if we detect it.\n if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') {\n $iterator$ = '@@iterator';\n }\n\n // Reflect\n if (!globals.Reflect) {\n defineProperty(globals, 'Reflect', {}, true);\n }\n var Reflect = globals.Reflect;\n\n var $String = String;\n\n var ES = {\n // http://www.ecma-international.org/ecma-262/6.0/#sec-call\n Call: function Call(F, V) {\n var args = arguments.length > 2 ? arguments[2] : [];\n if (!ES.IsCallable(F)) {\n throw new TypeError(F + ' is not a function');\n }\n return _apply(F, V, args);\n },\n\n RequireObjectCoercible: function (x, optMessage) {\n /* jshint eqnull:true */\n if (x == null) {\n throw new TypeError(optMessage || 'Cannot call method on ' + x);\n }\n return x;\n },\n\n // This might miss the \"(non-standard exotic and does not implement\n // [[Call]])\" case from\n // http://www.ecma-international.org/ecma-262/6.0/#sec-typeof-operator-runtime-semantics-evaluation\n // but we can't find any evidence these objects exist in practice.\n // If we find some in the future, you could test `Object(x) === x`,\n // which is reliable according to\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toobject\n // but is not well optimized by runtimes and creates an object\n // whenever it returns false, and thus is very slow.\n TypeIsObject: function (x) {\n if (x === void 0 || x === null || x === true || x === false) {\n return false;\n }\n return typeof x === 'function' || typeof x === 'object';\n },\n\n ToObject: function (o, optMessage) {\n return Object(ES.RequireObjectCoercible(o, optMessage));\n },\n\n IsCallable: isCallable,\n\n IsConstructor: function (x) {\n // We can't tell callables from constructors in ES5\n return ES.IsCallable(x);\n },\n\n ToInt32: function (x) {\n return ES.ToNumber(x) >> 0;\n },\n\n ToUint32: function (x) {\n return ES.ToNumber(x) >>> 0;\n },\n\n ToNumber: function (value) {\n if (_toString(value) === '[object Symbol]') {\n throw new TypeError('Cannot convert a Symbol value to a number');\n }\n return +value;\n },\n\n ToInteger: function (value) {\n var number = ES.ToNumber(value);\n if (numberIsNaN(number)) { return 0; }\n if (number === 0 || !numberIsFinite(number)) { return number; }\n return (number > 0 ? 1 : -1) * _floor(_abs(number));\n },\n\n ToLength: function (value) {\n var len = ES.ToInteger(value);\n if (len <= 0) { return 0; } // includes converting -0 to +0\n if (len > Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER; }\n return len;\n },\n\n SameValue: function (a, b) {\n if (a === b) {\n // 0 === -0, but they are not identical.\n if (a === 0) { return 1 / a === 1 / b; }\n return true;\n }\n return numberIsNaN(a) && numberIsNaN(b);\n },\n\n SameValueZero: function (a, b) {\n // same as SameValue except for SameValueZero(+0, -0) == true\n return (a === b) || (numberIsNaN(a) && numberIsNaN(b));\n },\n\n IsIterable: function (o) {\n return ES.TypeIsObject(o) && (typeof o[$iterator$] !== 'undefined' || isArguments(o));\n },\n\n GetIterator: function (o) {\n if (isArguments(o)) {\n // special case support for `arguments`\n return new ArrayIterator(o, 'value');\n }\n var itFn = ES.GetMethod(o, $iterator$);\n if (!ES.IsCallable(itFn)) {\n // Better diagnostics if itFn is null or undefined\n throw new TypeError('value is not an iterable');\n }\n var it = ES.Call(itFn, o);\n if (!ES.TypeIsObject(it)) {\n throw new TypeError('bad iterator');\n }\n return it;\n },\n\n GetMethod: function (o, p) {\n var func = ES.ToObject(o)[p];\n if (func === void 0 || func === null) {\n return void 0;\n }\n if (!ES.IsCallable(func)) {\n throw new TypeError('Method not callable: ' + p);\n }\n return func;\n },\n\n IteratorComplete: function (iterResult) {\n return !!iterResult.done;\n },\n\n IteratorClose: function (iterator, completionIsThrow) {\n var returnMethod = ES.GetMethod(iterator, 'return');\n if (returnMethod === void 0) {\n return;\n }\n var innerResult, innerException;\n try {\n innerResult = ES.Call(returnMethod, iterator);\n } catch (e) {\n innerException = e;\n }\n if (completionIsThrow) {\n return;\n }\n if (innerException) {\n throw innerException;\n }\n if (!ES.TypeIsObject(innerResult)) {\n throw new TypeError(\"Iterator's return method returned a non-object.\");\n }\n },\n\n IteratorNext: function (it) {\n var result = arguments.length > 1 ? it.next(arguments[1]) : it.next();\n if (!ES.TypeIsObject(result)) {\n throw new TypeError('bad iterator');\n }\n return result;\n },\n\n IteratorStep: function (it) {\n var result = ES.IteratorNext(it);\n var done = ES.IteratorComplete(result);\n return done ? false : result;\n },\n\n Construct: function (C, args, newTarget, isES6internal) {\n var target = typeof newTarget === 'undefined' ? C : newTarget;\n\n if (!isES6internal && Reflect.construct) {\n // Try to use Reflect.construct if available\n return Reflect.construct(C, args, target);\n }\n // OK, we have to fake it. This will only work if the\n // C.[[ConstructorKind]] == \"base\" -- but that's the only\n // kind we can make in ES5 code anyway.\n\n // OrdinaryCreateFromConstructor(target, \"%ObjectPrototype%\")\n var proto = target.prototype;\n if (!ES.TypeIsObject(proto)) {\n proto = Object.prototype;\n }\n var obj = create(proto);\n // Call the constructor.\n var result = ES.Call(C, obj, args);\n return ES.TypeIsObject(result) ? result : obj;\n },\n\n SpeciesConstructor: function (O, defaultConstructor) {\n var C = O.constructor;\n if (C === void 0) {\n return defaultConstructor;\n }\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad constructor');\n }\n var S = C[symbolSpecies];\n if (S === void 0 || S === null) {\n return defaultConstructor;\n }\n if (!ES.IsConstructor(S)) {\n throw new TypeError('Bad @@species');\n }\n return S;\n },\n\n CreateHTML: function (string, tag, attribute, value) {\n var S = ES.ToString(string);\n var p1 = '<' + tag;\n if (attribute !== '') {\n var V = ES.ToString(value);\n var escapedV = V.replace(/\"/g, '"');\n p1 += ' ' + attribute + '=\"' + escapedV + '\"';\n }\n var p2 = p1 + '>';\n var p3 = p2 + S;\n return p3 + '';\n },\n\n IsRegExp: function IsRegExp(argument) {\n if (!ES.TypeIsObject(argument)) {\n return false;\n }\n var isRegExp = argument[Symbol.match];\n if (typeof isRegExp !== 'undefined') {\n return !!isRegExp;\n }\n return Type.regex(argument);\n },\n\n ToString: function ToString(string) {\n return $String(string);\n }\n };\n\n // Well-known Symbol shims\n if (supportsDescriptors && hasSymbols) {\n var defineWellKnownSymbol = function defineWellKnownSymbol(name) {\n if (Type.symbol(Symbol[name])) {\n return Symbol[name];\n }\n var sym = Symbol['for']('Symbol.' + name);\n Object.defineProperty(Symbol, name, {\n configurable: false,\n enumerable: false,\n writable: false,\n value: sym\n });\n return sym;\n };\n if (!Type.symbol(Symbol.search)) {\n var symbolSearch = defineWellKnownSymbol('search');\n var originalSearch = String.prototype.search;\n defineProperty(RegExp.prototype, symbolSearch, function search(string) {\n return ES.Call(originalSearch, string, [this]);\n });\n var searchShim = function search(regexp) {\n var O = ES.RequireObjectCoercible(this);\n if (regexp !== null && typeof regexp !== 'undefined') {\n var searcher = ES.GetMethod(regexp, symbolSearch);\n if (typeof searcher !== 'undefined') {\n return ES.Call(searcher, regexp, [O]);\n }\n }\n return ES.Call(originalSearch, O, [ES.ToString(regexp)]);\n };\n overrideNative(String.prototype, 'search', searchShim);\n }\n if (!Type.symbol(Symbol.replace)) {\n var symbolReplace = defineWellKnownSymbol('replace');\n var originalReplace = String.prototype.replace;\n defineProperty(RegExp.prototype, symbolReplace, function replace(string, replaceValue) {\n return ES.Call(originalReplace, string, [this, replaceValue]);\n });\n var replaceShim = function replace(searchValue, replaceValue) {\n var O = ES.RequireObjectCoercible(this);\n if (searchValue !== null && typeof searchValue !== 'undefined') {\n var replacer = ES.GetMethod(searchValue, symbolReplace);\n if (typeof replacer !== 'undefined') {\n return ES.Call(replacer, searchValue, [O, replaceValue]);\n }\n }\n return ES.Call(originalReplace, O, [ES.ToString(searchValue), replaceValue]);\n };\n overrideNative(String.prototype, 'replace', replaceShim);\n }\n if (!Type.symbol(Symbol.split)) {\n var symbolSplit = defineWellKnownSymbol('split');\n var originalSplit = String.prototype.split;\n defineProperty(RegExp.prototype, symbolSplit, function split(string, limit) {\n return ES.Call(originalSplit, string, [this, limit]);\n });\n var splitShim = function split(separator, limit) {\n var O = ES.RequireObjectCoercible(this);\n if (separator !== null && typeof separator !== 'undefined') {\n var splitter = ES.GetMethod(separator, symbolSplit);\n if (typeof splitter !== 'undefined') {\n return ES.Call(splitter, separator, [O, limit]);\n }\n }\n return ES.Call(originalSplit, O, [ES.ToString(separator), limit]);\n };\n overrideNative(String.prototype, 'split', splitShim);\n }\n var symbolMatchExists = Type.symbol(Symbol.match);\n var stringMatchIgnoresSymbolMatch = symbolMatchExists && (function () {\n // Firefox 41, through Nightly 45 has Symbol.match, but String#match ignores it.\n // Firefox 40 and below have Symbol.match but String#match works fine.\n var o = {};\n o[Symbol.match] = function () { return 42; };\n return 'a'.match(o) !== 42;\n }());\n if (!symbolMatchExists || stringMatchIgnoresSymbolMatch) {\n var symbolMatch = defineWellKnownSymbol('match');\n\n var originalMatch = String.prototype.match;\n defineProperty(RegExp.prototype, symbolMatch, function match(string) {\n return ES.Call(originalMatch, string, [this]);\n });\n\n var matchShim = function match(regexp) {\n var O = ES.RequireObjectCoercible(this);\n if (regexp !== null && typeof regexp !== 'undefined') {\n var matcher = ES.GetMethod(regexp, symbolMatch);\n if (typeof matcher !== 'undefined') {\n return ES.Call(matcher, regexp, [O]);\n }\n }\n return ES.Call(originalMatch, O, [ES.ToString(regexp)]);\n };\n overrideNative(String.prototype, 'match', matchShim);\n }\n }\n\n var wrapConstructor = function wrapConstructor(original, replacement, keysToSkip) {\n Value.preserveToString(replacement, original);\n if (Object.setPrototypeOf) {\n // sets up proper prototype chain where possible\n Object.setPrototypeOf(original, replacement);\n }\n if (supportsDescriptors) {\n _forEach(Object.getOwnPropertyNames(original), function (key) {\n if (key in noop || keysToSkip[key]) { return; }\n Value.proxy(original, key, replacement);\n });\n } else {\n _forEach(Object.keys(original), function (key) {\n if (key in noop || keysToSkip[key]) { return; }\n replacement[key] = original[key];\n });\n }\n replacement.prototype = original.prototype;\n Value.redefine(original.prototype, 'constructor', replacement);\n };\n\n var defaultSpeciesGetter = function () { return this; };\n var addDefaultSpecies = function (C) {\n if (supportsDescriptors && !_hasOwnProperty(C, symbolSpecies)) {\n Value.getter(C, symbolSpecies, defaultSpeciesGetter);\n }\n };\n\n var addIterator = function (prototype, impl) {\n var implementation = impl || function iterator() { return this; };\n defineProperty(prototype, $iterator$, implementation);\n if (!prototype[$iterator$] && Type.symbol($iterator$)) {\n // implementations are buggy when $iterator$ is a Symbol\n prototype[$iterator$] = implementation;\n }\n };\n\n var createDataProperty = function createDataProperty(object, name, value) {\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n var createDataPropertyOrThrow = function createDataPropertyOrThrow(object, name, value) {\n createDataProperty(object, name, value);\n if (!ES.SameValue(object[name], value)) {\n throw new TypeError('property is nonconfigurable');\n }\n };\n\n var emulateES6construct = function (o, defaultNewTarget, defaultProto, slots) {\n // This is an es5 approximation to es6 construct semantics. in es6,\n // 'new Foo' invokes Foo.[[Construct]] which (for almost all objects)\n // just sets the internal variable NewTarget (in es6 syntax `new.target`)\n // to Foo and then returns Foo().\n\n // Many ES6 object then have constructors of the form:\n // 1. If NewTarget is undefined, throw a TypeError exception\n // 2. Let xxx by OrdinaryCreateFromConstructor(NewTarget, yyy, zzz)\n\n // So we're going to emulate those first two steps.\n if (!ES.TypeIsObject(o)) {\n throw new TypeError('Constructor requires `new`: ' + defaultNewTarget.name);\n }\n var proto = defaultNewTarget.prototype;\n if (!ES.TypeIsObject(proto)) {\n proto = defaultProto;\n }\n var obj = create(proto);\n for (var name in slots) {\n if (_hasOwnProperty(slots, name)) {\n var value = slots[name];\n defineProperty(obj, name, value, true);\n }\n }\n return obj;\n };\n\n // Firefox 31 reports this function's length as 0\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1062484\n if (String.fromCodePoint && String.fromCodePoint.length !== 1) {\n var originalFromCodePoint = String.fromCodePoint;\n overrideNative(String, 'fromCodePoint', function fromCodePoint(codePoints) {\n return ES.Call(originalFromCodePoint, this, arguments);\n });\n }\n\n var StringShims = {\n fromCodePoint: function fromCodePoint(codePoints) {\n var result = [];\n var next;\n for (var i = 0, length = arguments.length; i < length; i++) {\n next = Number(arguments[i]);\n if (!ES.SameValue(next, ES.ToInteger(next)) || next < 0 || next > 0x10FFFF) {\n throw new RangeError('Invalid code point ' + next);\n }\n\n if (next < 0x10000) {\n _push(result, String.fromCharCode(next));\n } else {\n next -= 0x10000;\n _push(result, String.fromCharCode((next >> 10) + 0xD800));\n _push(result, String.fromCharCode((next % 0x400) + 0xDC00));\n }\n }\n return result.join('');\n },\n\n raw: function raw(callSite) {\n var cooked = ES.ToObject(callSite, 'bad callSite');\n var rawString = ES.ToObject(cooked.raw, 'bad raw value');\n var len = rawString.length;\n var literalsegments = ES.ToLength(len);\n if (literalsegments <= 0) {\n return '';\n }\n\n var stringElements = [];\n var nextIndex = 0;\n var nextKey, next, nextSeg, nextSub;\n while (nextIndex < literalsegments) {\n nextKey = ES.ToString(nextIndex);\n nextSeg = ES.ToString(rawString[nextKey]);\n _push(stringElements, nextSeg);\n if (nextIndex + 1 >= literalsegments) {\n break;\n }\n next = nextIndex + 1 < arguments.length ? arguments[nextIndex + 1] : '';\n nextSub = ES.ToString(next);\n _push(stringElements, nextSub);\n nextIndex += 1;\n }\n return stringElements.join('');\n }\n };\n if (String.raw && String.raw({ raw: { 0: 'x', 1: 'y', length: 2 } }) !== 'xy') {\n // IE 11 TP has a broken String.raw implementation\n overrideNative(String, 'raw', StringShims.raw);\n }\n defineProperties(String, StringShims);\n\n // Fast repeat, uses the `Exponentiation by squaring` algorithm.\n // Perf: http://jsperf.com/string-repeat2/2\n var stringRepeat = function repeat(s, times) {\n if (times < 1) { return ''; }\n if (times % 2) { return repeat(s, times - 1) + s; }\n var half = repeat(s, times / 2);\n return half + half;\n };\n var stringMaxLength = Infinity;\n\n var StringPrototypeShims = {\n repeat: function repeat(times) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var numTimes = ES.ToInteger(times);\n if (numTimes < 0 || numTimes >= stringMaxLength) {\n throw new RangeError('repeat count must be less than infinity and not overflow maximum string size');\n }\n return stringRepeat(thisStr, numTimes);\n },\n\n startsWith: function startsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"startsWith\" with a regex');\n }\n var searchStr = ES.ToString(searchString);\n var position;\n if (arguments.length > 1) {\n position = arguments[1];\n }\n var start = _max(ES.ToInteger(position), 0);\n return _strSlice(S, start, start + searchStr.length) === searchStr;\n },\n\n endsWith: function endsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"endsWith\" with a regex');\n }\n var searchStr = ES.ToString(searchString);\n var len = S.length;\n var endPosition;\n if (arguments.length > 1) {\n endPosition = arguments[1];\n }\n var pos = typeof endPosition === 'undefined' ? len : ES.ToInteger(endPosition);\n var end = _min(_max(pos, 0), len);\n return _strSlice(S, end - searchStr.length, end) === searchStr;\n },\n\n includes: function includes(searchString) {\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('\"includes\" does not accept a RegExp');\n }\n var searchStr = ES.ToString(searchString);\n var position;\n if (arguments.length > 1) {\n position = arguments[1];\n }\n // Somehow this trick makes method 100% compat with the spec.\n return _indexOf(this, searchStr, position) !== -1;\n },\n\n codePointAt: function codePointAt(pos) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var position = ES.ToInteger(pos);\n var length = thisStr.length;\n if (position >= 0 && position < length) {\n var first = thisStr.charCodeAt(position);\n var isEnd = position + 1 === length;\n if (first < 0xD800 || first > 0xDBFF || isEnd) { return first; }\n var second = thisStr.charCodeAt(position + 1);\n if (second < 0xDC00 || second > 0xDFFF) { return first; }\n return ((first - 0xD800) * 1024) + (second - 0xDC00) + 0x10000;\n }\n }\n };\n if (String.prototype.includes && 'a'.includes('a', Infinity) !== false) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n\n if (String.prototype.startsWith && String.prototype.endsWith) {\n var startsWithRejectsRegex = throwsError(function () {\n /* throws if spec-compliant */\n '/a/'.startsWith(/a/);\n });\n var startsWithHandlesInfinity = valueOrFalseIfThrows(function () {\n return 'abc'.startsWith('a', Infinity) === false;\n });\n if (!startsWithRejectsRegex || !startsWithHandlesInfinity) {\n // Firefox (< 37?) and IE 11 TP have a noncompliant startsWith implementation\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n }\n if (hasSymbols) {\n var startsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.startsWith(re);\n });\n if (!startsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n }\n var endsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.endsWith(re);\n });\n if (!endsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n var includesSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.includes(re);\n });\n if (!includesSupportsSymbolMatch) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n }\n\n defineProperties(String.prototype, StringPrototypeShims);\n\n // whitespace from: http://es5.github.io/#x15.5.4.20\n // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\n var ws = [\n '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n '\\u2029\\uFEFF'\n ].join('');\n var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\n var trimShim = function trim() {\n return ES.ToString(ES.RequireObjectCoercible(this)).replace(trimRegexp, '');\n };\n var nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\n var nonWSregex = new RegExp('[' + nonWS + ']', 'g');\n var isBadHexRegex = /^[\\-+]0x[0-9a-f]+$/i;\n var hasStringTrimBug = nonWS.trim().length !== nonWS.length;\n defineProperty(String.prototype, 'trim', trimShim, hasStringTrimBug);\n\n // Given an argument x, it will return an IteratorResult object,\n // with value set to x and done to false.\n // Given no arguments, it will return an iterator completion object.\n var iteratorResult = function (x) {\n return { value: x, done: arguments.length === 0 };\n };\n\n // see http://www.ecma-international.org/ecma-262/6.0/#sec-string.prototype-@@iterator\n var StringIterator = function (s) {\n ES.RequireObjectCoercible(s);\n this._s = ES.ToString(s);\n this._i = 0;\n };\n StringIterator.prototype.next = function () {\n var s = this._s;\n var i = this._i;\n if (typeof s === 'undefined' || i >= s.length) {\n this._s = void 0;\n return iteratorResult();\n }\n var first = s.charCodeAt(i);\n var second, len;\n if (first < 0xD800 || first > 0xDBFF || (i + 1) === s.length) {\n len = 1;\n } else {\n second = s.charCodeAt(i + 1);\n len = (second < 0xDC00 || second > 0xDFFF) ? 1 : 2;\n }\n this._i = i + len;\n return iteratorResult(s.substr(i, len));\n };\n addIterator(StringIterator.prototype);\n addIterator(String.prototype, function () {\n return new StringIterator(this);\n });\n\n var ArrayShims = {\n from: function from(items) {\n var C = this;\n var mapFn;\n if (arguments.length > 1) {\n mapFn = arguments[1];\n }\n var mapping, T;\n if (typeof mapFn === 'undefined') {\n mapping = false;\n } else {\n if (!ES.IsCallable(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n if (arguments.length > 2) {\n T = arguments[2];\n }\n mapping = true;\n }\n\n // Note that that Arrays will use ArrayIterator:\n // https://bugs.ecmascript.org/show_bug.cgi?id=2416\n var usingIterator = typeof (isArguments(items) || ES.GetMethod(items, $iterator$)) !== 'undefined';\n\n var length, result, i;\n if (usingIterator) {\n result = ES.IsConstructor(C) ? Object(new C()) : [];\n var iterator = ES.GetIterator(items);\n var next, nextValue;\n\n i = 0;\n while (true) {\n next = ES.IteratorStep(iterator);\n if (next === false) {\n break;\n }\n nextValue = next.value;\n try {\n if (mapping) {\n nextValue = typeof T === 'undefined' ? mapFn(nextValue, i) : _call(mapFn, T, nextValue, i);\n }\n result[i] = nextValue;\n } catch (e) {\n ES.IteratorClose(iterator, true);\n throw e;\n }\n i += 1;\n }\n length = i;\n } else {\n var arrayLike = ES.ToObject(items);\n length = ES.ToLength(arrayLike.length);\n result = ES.IsConstructor(C) ? Object(new C(length)) : new Array(length);\n var value;\n for (i = 0; i < length; ++i) {\n value = arrayLike[i];\n if (mapping) {\n value = typeof T === 'undefined' ? mapFn(value, i) : _call(mapFn, T, value, i);\n }\n createDataPropertyOrThrow(result, i, value);\n }\n }\n\n result.length = length;\n return result;\n },\n\n of: function of() {\n var len = arguments.length;\n var C = this;\n var A = isArray(C) || !ES.IsCallable(C) ? new Array(len) : ES.Construct(C, [len]);\n for (var k = 0; k < len; ++k) {\n createDataPropertyOrThrow(A, k, arguments[k]);\n }\n A.length = len;\n return A;\n }\n };\n defineProperties(Array, ArrayShims);\n addDefaultSpecies(Array);\n\n // Our ArrayIterator is private; see\n // https://github.com/paulmillr/es6-shim/issues/252\n ArrayIterator = function (array, kind) {\n this.i = 0;\n this.array = array;\n this.kind = kind;\n };\n\n defineProperties(ArrayIterator.prototype, {\n next: function () {\n var i = this.i;\n var array = this.array;\n if (!(this instanceof ArrayIterator)) {\n throw new TypeError('Not an ArrayIterator');\n }\n if (typeof array !== 'undefined') {\n var len = ES.ToLength(array.length);\n for (; i < len; i++) {\n var kind = this.kind;\n var retval;\n if (kind === 'key') {\n retval = i;\n } else if (kind === 'value') {\n retval = array[i];\n } else if (kind === 'entry') {\n retval = [i, array[i]];\n }\n this.i = i + 1;\n return iteratorResult(retval);\n }\n }\n this.array = void 0;\n return iteratorResult();\n }\n });\n addIterator(ArrayIterator.prototype);\n\n/*\n var orderKeys = function orderKeys(a, b) {\n var aNumeric = String(ES.ToInteger(a)) === a;\n var bNumeric = String(ES.ToInteger(b)) === b;\n if (aNumeric && bNumeric) {\n return b - a;\n } else if (aNumeric && !bNumeric) {\n return -1;\n } else if (!aNumeric && bNumeric) {\n return 1;\n } else {\n return a.localeCompare(b);\n }\n };\n\n var getAllKeys = function getAllKeys(object) {\n var ownKeys = [];\n var keys = [];\n\n for (var key in object) {\n _push(_hasOwnProperty(object, key) ? ownKeys : keys, key);\n }\n _sort(ownKeys, orderKeys);\n _sort(keys, orderKeys);\n\n return _concat(ownKeys, keys);\n };\n */\n\n // note: this is positioned here because it depends on ArrayIterator\n var arrayOfSupportsSubclassing = Array.of === ArrayShims.of || (function () {\n // Detects a bug in Webkit nightly r181886\n var Foo = function Foo(len) { this.length = len; };\n Foo.prototype = [];\n var fooArr = Array.of.apply(Foo, [1, 2]);\n return fooArr instanceof Foo && fooArr.length === 2;\n }());\n if (!arrayOfSupportsSubclassing) {\n overrideNative(Array, 'of', ArrayShims.of);\n }\n\n var ArrayPrototypeShims = {\n copyWithin: function copyWithin(target, start) {\n var o = ES.ToObject(this);\n var len = ES.ToLength(o.length);\n var relativeTarget = ES.ToInteger(target);\n var relativeStart = ES.ToInteger(start);\n var to = relativeTarget < 0 ? _max(len + relativeTarget, 0) : _min(relativeTarget, len);\n var from = relativeStart < 0 ? _max(len + relativeStart, 0) : _min(relativeStart, len);\n var end;\n if (arguments.length > 2) {\n end = arguments[2];\n }\n var relativeEnd = typeof end === 'undefined' ? len : ES.ToInteger(end);\n var finalItem = relativeEnd < 0 ? _max(len + relativeEnd, 0) : _min(relativeEnd, len);\n var count = _min(finalItem - from, len - to);\n var direction = 1;\n if (from < to && to < (from + count)) {\n direction = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count > 0) {\n if (from in o) {\n o[to] = o[from];\n } else {\n delete o[to];\n }\n from += direction;\n to += direction;\n count -= 1;\n }\n return o;\n },\n\n fill: function fill(value) {\n var start;\n if (arguments.length > 1) {\n start = arguments[1];\n }\n var end;\n if (arguments.length > 2) {\n end = arguments[2];\n }\n var O = ES.ToObject(this);\n var len = ES.ToLength(O.length);\n start = ES.ToInteger(typeof start === 'undefined' ? 0 : start);\n end = ES.ToInteger(typeof end === 'undefined' ? len : end);\n\n var relativeStart = start < 0 ? _max(len + start, 0) : _min(start, len);\n var relativeEnd = end < 0 ? len + end : end;\n\n for (var i = relativeStart; i < len && i < relativeEnd; ++i) {\n O[i] = value;\n }\n return O;\n },\n\n find: function find(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#find: predicate must be a function');\n }\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n for (var i = 0, value; i < length; i++) {\n value = list[i];\n if (thisArg) {\n if (_call(predicate, thisArg, value, i, list)) {\n return value;\n }\n } else if (predicate(value, i, list)) {\n return value;\n }\n }\n },\n\n findIndex: function findIndex(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#findIndex: predicate must be a function');\n }\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n for (var i = 0; i < length; i++) {\n if (thisArg) {\n if (_call(predicate, thisArg, list[i], i, list)) {\n return i;\n }\n } else if (predicate(list[i], i, list)) {\n return i;\n }\n }\n return -1;\n },\n\n keys: function keys() {\n return new ArrayIterator(this, 'key');\n },\n\n values: function values() {\n return new ArrayIterator(this, 'value');\n },\n\n entries: function entries() {\n return new ArrayIterator(this, 'entry');\n }\n };\n // Safari 7.1 defines Array#keys and Array#entries natively,\n // but the resulting ArrayIterator objects don't have a \"next\" method.\n if (Array.prototype.keys && !ES.IsCallable([1].keys().next)) {\n delete Array.prototype.keys;\n }\n if (Array.prototype.entries && !ES.IsCallable([1].entries().next)) {\n delete Array.prototype.entries;\n }\n\n // Chrome 38 defines Array#keys and Array#entries, and Array#@@iterator, but not Array#values\n if (Array.prototype.keys && Array.prototype.entries && !Array.prototype.values && Array.prototype[$iterator$]) {\n defineProperties(Array.prototype, {\n values: Array.prototype[$iterator$]\n });\n if (Type.symbol(Symbol.unscopables)) {\n Array.prototype[Symbol.unscopables].values = true;\n }\n }\n // Chrome 40 defines Array#values with the incorrect name, although Array#{keys,entries} have the correct name\n if (functionsHaveNames && Array.prototype.values && Array.prototype.values.name !== 'values') {\n var originalArrayPrototypeValues = Array.prototype.values;\n overrideNative(Array.prototype, 'values', function values() { return ES.Call(originalArrayPrototypeValues, this, arguments); });\n defineProperty(Array.prototype, $iterator$, Array.prototype.values, true);\n }\n defineProperties(Array.prototype, ArrayPrototypeShims);\n\n if (1 / [true].indexOf(true, -0) < 0) {\n // indexOf when given a position arg of -0 should return +0.\n // https://github.com/tc39/ecma262/pull/316\n defineProperty(Array.prototype, 'indexOf', function indexOf(searchElement) {\n var value = _arrayIndexOfApply(this, arguments);\n if (value === 0 && (1 / value) < 0) {\n return 0;\n }\n return value;\n }, true);\n }\n\n addIterator(Array.prototype, function () { return this.values(); });\n // Chrome defines keys/values/entries on Array, but doesn't give us\n // any way to identify its iterator. So add our own shimmed field.\n if (Object.getPrototypeOf) {\n addIterator(Object.getPrototypeOf([].values()));\n }\n\n // note: this is positioned here because it relies on Array#entries\n var arrayFromSwallowsNegativeLengths = (function () {\n // Detects a Firefox bug in v32\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1063993\n return valueOrFalseIfThrows(function () {\n return Array.from({ length: -1 }).length === 0;\n });\n }());\n var arrayFromHandlesIterables = (function () {\n // Detects a bug in Webkit nightly r181886\n var arr = Array.from([0].entries());\n return arr.length === 1 && isArray(arr[0]) && arr[0][0] === 0 && arr[0][1] === 0;\n }());\n if (!arrayFromSwallowsNegativeLengths || !arrayFromHandlesIterables) {\n overrideNative(Array, 'from', ArrayShims.from);\n }\n var arrayFromHandlesUndefinedMapFunction = (function () {\n // Microsoft Edge v0.11 throws if the mapFn argument is *provided* but undefined,\n // but the spec doesn't care if it's provided or not - undefined doesn't throw.\n return valueOrFalseIfThrows(function () {\n return Array.from([0], void 0);\n });\n }());\n if (!arrayFromHandlesUndefinedMapFunction) {\n var origArrayFrom = Array.from;\n overrideNative(Array, 'from', function from(items) {\n if (arguments.length > 1 && typeof arguments[1] !== 'undefined') {\n return ES.Call(origArrayFrom, this, arguments);\n } else {\n return _call(origArrayFrom, this, items);\n }\n });\n }\n\n var int32sAsOne = -(Math.pow(2, 32) - 1);\n var toLengthsCorrectly = function (method, reversed) {\n var obj = { length: int32sAsOne };\n obj[reversed ? (obj.length >>> 0) - 1 : 0] = true;\n return valueOrFalseIfThrows(function () {\n _call(method, obj, function () {\n // note: in nonconforming browsers, this will be called\n // -1 >>> 0 times, which is 4294967295, so the throw matters.\n throw new RangeError('should not reach here');\n }, []);\n return true;\n });\n };\n if (!toLengthsCorrectly(Array.prototype.forEach)) {\n var originalForEach = Array.prototype.forEach;\n overrideNative(Array.prototype, 'forEach', function forEach(callbackFn) {\n return ES.Call(originalForEach, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.map)) {\n var originalMap = Array.prototype.map;\n overrideNative(Array.prototype, 'map', function map(callbackFn) {\n return ES.Call(originalMap, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.filter)) {\n var originalFilter = Array.prototype.filter;\n overrideNative(Array.prototype, 'filter', function filter(callbackFn) {\n return ES.Call(originalFilter, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.some)) {\n var originalSome = Array.prototype.some;\n overrideNative(Array.prototype, 'some', function some(callbackFn) {\n return ES.Call(originalSome, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.every)) {\n var originalEvery = Array.prototype.every;\n overrideNative(Array.prototype, 'every', function every(callbackFn) {\n return ES.Call(originalEvery, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.reduce)) {\n var originalReduce = Array.prototype.reduce;\n overrideNative(Array.prototype, 'reduce', function reduce(callbackFn) {\n return ES.Call(originalReduce, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.reduceRight, true)) {\n var originalReduceRight = Array.prototype.reduceRight;\n overrideNative(Array.prototype, 'reduceRight', function reduceRight(callbackFn) {\n return ES.Call(originalReduceRight, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n\n var lacksOctalSupport = Number('0o10') !== 8;\n var lacksBinarySupport = Number('0b10') !== 2;\n var trimsNonWhitespace = _some(nonWS, function (c) {\n return Number(c + 0 + c) === 0;\n });\n if (lacksOctalSupport || lacksBinarySupport || trimsNonWhitespace) {\n var OrigNumber = Number;\n var binaryRegex = /^0b[01]+$/i;\n var octalRegex = /^0o[0-7]+$/i;\n // Note that in IE 8, RegExp.prototype.test doesn't seem to exist: ie, \"test\" is an own property of regexes. wtf.\n var isBinary = binaryRegex.test.bind(binaryRegex);\n var isOctal = octalRegex.test.bind(octalRegex);\n var toPrimitive = function (O) { // need to replace this with `es-to-primitive/es6`\n var result;\n if (typeof O.valueOf === 'function') {\n result = O.valueOf();\n if (Type.primitive(result)) {\n return result;\n }\n }\n if (typeof O.toString === 'function') {\n result = O.toString();\n if (Type.primitive(result)) {\n return result;\n }\n }\n throw new TypeError('No default value');\n };\n var hasNonWS = nonWSregex.test.bind(nonWSregex);\n var isBadHex = isBadHexRegex.test.bind(isBadHexRegex);\n var NumberShim = (function () {\n // this is wrapped in an IIFE because of IE 6-8's wacky scoping issues with named function expressions.\n var NumberShim = function Number(value) {\n var primValue;\n if (arguments.length > 0) {\n primValue = Type.primitive(value) ? value : toPrimitive(value, 'number');\n } else {\n primValue = 0;\n }\n if (typeof primValue === 'string') {\n primValue = ES.Call(trimShim, primValue);\n if (isBinary(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 2);\n } else if (isOctal(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 8);\n } else if (hasNonWS(primValue) || isBadHex(primValue)) {\n primValue = NaN;\n }\n }\n var receiver = this;\n var valueOfSucceeds = valueOrFalseIfThrows(function () {\n OrigNumber.prototype.valueOf.call(receiver);\n return true;\n });\n if (receiver instanceof NumberShim && !valueOfSucceeds) {\n return new OrigNumber(primValue);\n }\n /* jshint newcap: false */\n return OrigNumber(primValue);\n /* jshint newcap: true */\n };\n return NumberShim;\n }());\n wrapConstructor(OrigNumber, NumberShim, {});\n // this is necessary for ES3 browsers, where these properties are non-enumerable.\n defineProperties(NumberShim, {\n NaN: OrigNumber.NaN,\n MAX_VALUE: OrigNumber.MAX_VALUE,\n MIN_VALUE: OrigNumber.MIN_VALUE,\n NEGATIVE_INFINITY: OrigNumber.NEGATIVE_INFINITY,\n POSITIVE_INFINITY: OrigNumber.POSITIVE_INFINITY\n });\n /* globals Number: true */\n /* eslint-disable no-undef */\n /* jshint -W020 */\n Number = NumberShim;\n Value.redefine(globals, 'Number', NumberShim);\n /* jshint +W020 */\n /* eslint-enable no-undef */\n /* globals Number: false */\n }\n\n var maxSafeInteger = Math.pow(2, 53) - 1;\n defineProperties(Number, {\n MAX_SAFE_INTEGER: maxSafeInteger,\n MIN_SAFE_INTEGER: -maxSafeInteger,\n EPSILON: 2.220446049250313e-16,\n\n parseInt: globals.parseInt,\n parseFloat: globals.parseFloat,\n\n isFinite: numberIsFinite,\n\n isInteger: function isInteger(value) {\n return numberIsFinite(value) && ES.ToInteger(value) === value;\n },\n\n isSafeInteger: function isSafeInteger(value) {\n return Number.isInteger(value) && _abs(value) <= Number.MAX_SAFE_INTEGER;\n },\n\n isNaN: numberIsNaN\n });\n // Firefox 37 has a conforming Number.parseInt, but it's not === to the global parseInt (fixed in v40)\n defineProperty(Number, 'parseInt', globals.parseInt, Number.parseInt !== globals.parseInt);\n\n // Work around bugs in Array#find and Array#findIndex -- early\n // implementations skipped holes in sparse arrays. (Note that the\n // implementations of find/findIndex indirectly use shimmed\n // methods of Number, so this test has to happen down here.)\n /*jshint elision: true */\n /* eslint-disable no-sparse-arrays */\n if (![, 1].find(function (item, idx) { return idx === 0; })) {\n overrideNative(Array.prototype, 'find', ArrayPrototypeShims.find);\n }\n if ([, 1].findIndex(function (item, idx) { return idx === 0; }) !== 0) {\n overrideNative(Array.prototype, 'findIndex', ArrayPrototypeShims.findIndex);\n }\n /* eslint-enable no-sparse-arrays */\n /*jshint elision: false */\n\n var isEnumerableOn = Function.bind.call(Function.bind, Object.prototype.propertyIsEnumerable);\n var ensureEnumerable = function ensureEnumerable(obj, prop) {\n if (supportsDescriptors && isEnumerableOn(obj, prop)) {\n Object.defineProperty(obj, prop, { enumerable: false });\n }\n };\n var sliceArgs = function sliceArgs() {\n // per https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n // and https://gist.github.com/WebReflection/4327762cb87a8c634a29\n var initial = Number(this);\n var len = arguments.length;\n var desiredArgCount = len - initial;\n var args = new Array(desiredArgCount < 0 ? 0 : desiredArgCount);\n for (var i = initial; i < len; ++i) {\n args[i - initial] = arguments[i];\n }\n return args;\n };\n var assignTo = function assignTo(source) {\n return function assignToSource(target, key) {\n target[key] = source[key];\n return target;\n };\n };\n var assignReducer = function (target, source) {\n var sourceKeys = keys(Object(source));\n var symbols;\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n symbols = _filter(Object.getOwnPropertySymbols(Object(source)), isEnumerableOn(source));\n }\n return _reduce(_concat(sourceKeys, symbols || []), assignTo(source), target);\n };\n\n var ObjectShims = {\n // 19.1.3.1\n assign: function (target, source) {\n var to = ES.ToObject(target, 'Cannot convert undefined or null to object');\n return _reduce(ES.Call(sliceArgs, 1, arguments), assignReducer, to);\n },\n\n // Added in WebKit in https://bugs.webkit.org/show_bug.cgi?id=143865\n is: function is(a, b) {\n return ES.SameValue(a, b);\n }\n };\n var assignHasPendingExceptions = Object.assign && Object.preventExtensions && (function () {\n // Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n // which is 72% slower than our shim, and Firefox 40's native implementation.\n var thrower = Object.preventExtensions({ 1: 2 });\n try {\n Object.assign(thrower, 'xy');\n } catch (e) {\n return thrower[1] === 'y';\n }\n }());\n if (assignHasPendingExceptions) {\n overrideNative(Object, 'assign', ObjectShims.assign);\n }\n defineProperties(Object, ObjectShims);\n\n if (supportsDescriptors) {\n var ES5ObjectShims = {\n // 19.1.3.9\n // shim from https://gist.github.com/WebReflection/5593554\n setPrototypeOf: (function (Object, magic) {\n var set;\n\n var checkArgs = function (O, proto) {\n if (!ES.TypeIsObject(O)) {\n throw new TypeError('cannot set prototype on a non-object');\n }\n if (!(proto === null || ES.TypeIsObject(proto))) {\n throw new TypeError('can only set prototype to an object or null' + proto);\n }\n };\n\n var setPrototypeOf = function (O, proto) {\n checkArgs(O, proto);\n _call(set, O, proto);\n return O;\n };\n\n try {\n // this works already in Firefox and Safari\n set = Object.getOwnPropertyDescriptor(Object.prototype, magic).set;\n _call(set, {}, null);\n } catch (e) {\n if (Object.prototype !== {}[magic]) {\n // IE < 11 cannot be shimmed\n return;\n }\n // probably Chrome or some old Mobile stock browser\n set = function (proto) {\n this[magic] = proto;\n };\n // please note that this will **not** work\n // in those browsers that do not inherit\n // __proto__ by mistake from Object.prototype\n // in these cases we should probably throw an error\n // or at least be informed about the issue\n setPrototypeOf.polyfill = setPrototypeOf(\n setPrototypeOf({}, null),\n Object.prototype\n ) instanceof Object;\n // setPrototypeOf.polyfill === true means it works as meant\n // setPrototypeOf.polyfill === false means it's not 100% reliable\n // setPrototypeOf.polyfill === undefined\n // or\n // setPrototypeOf.polyfill == null means it's not a polyfill\n // which means it works as expected\n // we can even delete Object.prototype.__proto__;\n }\n return setPrototypeOf;\n }(Object, '__proto__'))\n };\n\n defineProperties(Object, ES5ObjectShims);\n }\n\n // Workaround bug in Opera 12 where setPrototypeOf(x, null) doesn't work,\n // but Object.create(null) does.\n if (Object.setPrototypeOf && Object.getPrototypeOf &&\n Object.getPrototypeOf(Object.setPrototypeOf({}, null)) !== null &&\n Object.getPrototypeOf(Object.create(null)) === null) {\n (function () {\n var FAKENULL = Object.create(null);\n var gpo = Object.getPrototypeOf;\n var spo = Object.setPrototypeOf;\n Object.getPrototypeOf = function (o) {\n var result = gpo(o);\n return result === FAKENULL ? null : result;\n };\n Object.setPrototypeOf = function (o, p) {\n var proto = p === null ? FAKENULL : p;\n return spo(o, proto);\n };\n Object.setPrototypeOf.polyfill = false;\n }());\n }\n\n var objectKeysAcceptsPrimitives = !throwsError(function () { Object.keys('foo'); });\n if (!objectKeysAcceptsPrimitives) {\n var originalObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n return originalObjectKeys(ES.ToObject(value));\n });\n keys = Object.keys;\n }\n var objectKeysRejectsRegex = throwsError(function () { Object.keys(/a/g); });\n if (objectKeysRejectsRegex) {\n var regexRejectingObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n if (Type.regex(value)) {\n var regexKeys = [];\n for (var k in value) {\n if (_hasOwnProperty(value, k)) {\n _push(regexKeys, k);\n }\n }\n return regexKeys;\n }\n return regexRejectingObjectKeys(value);\n });\n keys = Object.keys;\n }\n\n if (Object.getOwnPropertyNames) {\n var objectGOPNAcceptsPrimitives = !throwsError(function () { Object.getOwnPropertyNames('foo'); });\n if (!objectGOPNAcceptsPrimitives) {\n var cachedWindowNames = typeof window === 'object' ? Object.getOwnPropertyNames(window) : [];\n var originalObjectGetOwnPropertyNames = Object.getOwnPropertyNames;\n overrideNative(Object, 'getOwnPropertyNames', function getOwnPropertyNames(value) {\n var val = ES.ToObject(value);\n if (_toString(val) === '[object Window]') {\n try {\n return originalObjectGetOwnPropertyNames(val);\n } catch (e) {\n // IE bug where layout engine calls userland gOPN for cross-domain `window` objects\n return _concat([], cachedWindowNames);\n }\n }\n return originalObjectGetOwnPropertyNames(val);\n });\n }\n }\n if (Object.getOwnPropertyDescriptor) {\n var objectGOPDAcceptsPrimitives = !throwsError(function () { Object.getOwnPropertyDescriptor('foo', 'bar'); });\n if (!objectGOPDAcceptsPrimitives) {\n var originalObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n overrideNative(Object, 'getOwnPropertyDescriptor', function getOwnPropertyDescriptor(value, property) {\n return originalObjectGetOwnPropertyDescriptor(ES.ToObject(value), property);\n });\n }\n }\n if (Object.seal) {\n var objectSealAcceptsPrimitives = !throwsError(function () { Object.seal('foo'); });\n if (!objectSealAcceptsPrimitives) {\n var originalObjectSeal = Object.seal;\n overrideNative(Object, 'seal', function seal(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectSeal(value);\n });\n }\n }\n if (Object.isSealed) {\n var objectIsSealedAcceptsPrimitives = !throwsError(function () { Object.isSealed('foo'); });\n if (!objectIsSealedAcceptsPrimitives) {\n var originalObjectIsSealed = Object.isSealed;\n overrideNative(Object, 'isSealed', function isSealed(value) {\n if (!ES.TypeIsObject(value)) { return true; }\n return originalObjectIsSealed(value);\n });\n }\n }\n if (Object.freeze) {\n var objectFreezeAcceptsPrimitives = !throwsError(function () { Object.freeze('foo'); });\n if (!objectFreezeAcceptsPrimitives) {\n var originalObjectFreeze = Object.freeze;\n overrideNative(Object, 'freeze', function freeze(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectFreeze(value);\n });\n }\n }\n if (Object.isFrozen) {\n var objectIsFrozenAcceptsPrimitives = !throwsError(function () { Object.isFrozen('foo'); });\n if (!objectIsFrozenAcceptsPrimitives) {\n var originalObjectIsFrozen = Object.isFrozen;\n overrideNative(Object, 'isFrozen', function isFrozen(value) {\n if (!ES.TypeIsObject(value)) { return true; }\n return originalObjectIsFrozen(value);\n });\n }\n }\n if (Object.preventExtensions) {\n var objectPreventExtensionsAcceptsPrimitives = !throwsError(function () { Object.preventExtensions('foo'); });\n if (!objectPreventExtensionsAcceptsPrimitives) {\n var originalObjectPreventExtensions = Object.preventExtensions;\n overrideNative(Object, 'preventExtensions', function preventExtensions(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectPreventExtensions(value);\n });\n }\n }\n if (Object.isExtensible) {\n var objectIsExtensibleAcceptsPrimitives = !throwsError(function () { Object.isExtensible('foo'); });\n if (!objectIsExtensibleAcceptsPrimitives) {\n var originalObjectIsExtensible = Object.isExtensible;\n overrideNative(Object, 'isExtensible', function isExtensible(value) {\n if (!ES.TypeIsObject(value)) { return false; }\n return originalObjectIsExtensible(value);\n });\n }\n }\n if (Object.getPrototypeOf) {\n var objectGetProtoAcceptsPrimitives = !throwsError(function () { Object.getPrototypeOf('foo'); });\n if (!objectGetProtoAcceptsPrimitives) {\n var originalGetProto = Object.getPrototypeOf;\n overrideNative(Object, 'getPrototypeOf', function getPrototypeOf(value) {\n return originalGetProto(ES.ToObject(value));\n });\n }\n }\n\n var hasFlags = supportsDescriptors && (function () {\n var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags');\n return desc && ES.IsCallable(desc.get);\n }());\n if (supportsDescriptors && !hasFlags) {\n var regExpFlagsGetter = function flags() {\n if (!ES.TypeIsObject(this)) {\n throw new TypeError('Method called on incompatible type: must be an object.');\n }\n var result = '';\n if (this.global) {\n result += 'g';\n }\n if (this.ignoreCase) {\n result += 'i';\n }\n if (this.multiline) {\n result += 'm';\n }\n if (this.unicode) {\n result += 'u';\n }\n if (this.sticky) {\n result += 'y';\n }\n return result;\n };\n\n Value.getter(RegExp.prototype, 'flags', regExpFlagsGetter);\n }\n\n var regExpSupportsFlagsWithRegex = supportsDescriptors && valueOrFalseIfThrows(function () {\n return String(new RegExp(/a/g, 'i')) === '/a/i';\n });\n var regExpNeedsToSupportSymbolMatch = hasSymbols && supportsDescriptors && (function () {\n // Edge 0.12 supports flags fully, but does not support Symbol.match\n var regex = /./;\n regex[Symbol.match] = false;\n return RegExp(regex) === regex;\n }());\n\n var regexToStringIsGeneric = valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({ source: 'abc' }) === '/abc/';\n });\n var regexToStringSupportsGenericFlags = regexToStringIsGeneric && valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({ source: 'a', flags: 'b' }) === '/a/b';\n });\n if (!regexToStringIsGeneric || !regexToStringSupportsGenericFlags) {\n var origRegExpToString = RegExp.prototype.toString;\n defineProperty(RegExp.prototype, 'toString', function toString() {\n var R = ES.RequireObjectCoercible(this);\n if (Type.regex(R)) {\n return _call(origRegExpToString, R);\n }\n var pattern = $String(R.source);\n var flags = $String(R.flags);\n return '/' + pattern + '/' + flags;\n }, true);\n Value.preserveToString(RegExp.prototype.toString, origRegExpToString);\n }\n\n if (supportsDescriptors && (!regExpSupportsFlagsWithRegex || regExpNeedsToSupportSymbolMatch)) {\n var flagsGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get;\n var sourceDesc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'source') || {};\n var legacySourceGetter = function () { return this.source; }; // prior to it being a getter, it's own + nonconfigurable\n var sourceGetter = ES.IsCallable(sourceDesc.get) ? sourceDesc.get : legacySourceGetter;\n\n var OrigRegExp = RegExp;\n var RegExpShim = (function () {\n return function RegExp(pattern, flags) {\n var patternIsRegExp = ES.IsRegExp(pattern);\n var calledWithNew = this instanceof RegExp;\n if (!calledWithNew && patternIsRegExp && typeof flags === 'undefined' && pattern.constructor === RegExp) {\n return pattern;\n }\n\n var P = pattern;\n var F = flags;\n if (Type.regex(pattern)) {\n P = ES.Call(sourceGetter, pattern);\n F = typeof flags === 'undefined' ? ES.Call(flagsGetter, pattern) : flags;\n return new RegExp(P, F);\n } else if (patternIsRegExp) {\n P = pattern.source;\n F = typeof flags === 'undefined' ? pattern.flags : flags;\n }\n return new OrigRegExp(pattern, flags);\n };\n }());\n wrapConstructor(OrigRegExp, RegExpShim, {\n $input: true // Chrome < v39 & Opera < 26 have a nonstandard \"$input\" property\n });\n /* globals RegExp: true */\n /* eslint-disable no-undef */\n /* jshint -W020 */\n RegExp = RegExpShim;\n Value.redefine(globals, 'RegExp', RegExpShim);\n /* jshint +W020 */\n /* eslint-enable no-undef */\n /* globals RegExp: false */\n }\n\n if (supportsDescriptors) {\n var regexGlobals = {\n input: '$_',\n lastMatch: '$&',\n lastParen: '$+',\n leftContext: '$`',\n rightContext: '$\\''\n };\n _forEach(keys(regexGlobals), function (prop) {\n if (prop in RegExp && !(regexGlobals[prop] in RegExp)) {\n Value.getter(RegExp, regexGlobals[prop], function get() {\n return RegExp[prop];\n });\n }\n });\n }\n addDefaultSpecies(RegExp);\n\n var inverseEpsilon = 1 / Number.EPSILON;\n var roundTiesToEven = function roundTiesToEven(n) {\n // Even though this reduces down to `return n`, it takes advantage of built-in rounding.\n return (n + inverseEpsilon) - inverseEpsilon;\n };\n var BINARY_32_EPSILON = Math.pow(2, -23);\n var BINARY_32_MAX_VALUE = Math.pow(2, 127) * (2 - BINARY_32_EPSILON);\n var BINARY_32_MIN_VALUE = Math.pow(2, -126);\n var E = Math.E;\n var LOG2E = Math.LOG2E;\n var LOG10E = Math.LOG10E;\n var numberCLZ = Number.prototype.clz;\n delete Number.prototype.clz; // Safari 8 has Number#clz\n\n var MathShims = {\n acosh: function acosh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || value < 1) { return NaN; }\n if (x === 1) { return 0; }\n if (x === Infinity) { return x; }\n return _log(x / E + _sqrt(x + 1) * _sqrt(x - 1) / E) + 1;\n },\n\n asinh: function asinh(value) {\n var x = Number(value);\n if (x === 0 || !globalIsFinite(x)) {\n return x;\n }\n return x < 0 ? -asinh(-x) : _log(x + _sqrt(x * x + 1));\n },\n\n atanh: function atanh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || x < -1 || x > 1) {\n return NaN;\n }\n if (x === -1) { return -Infinity; }\n if (x === 1) { return Infinity; }\n if (x === 0) { return x; }\n return 0.5 * _log((1 + x) / (1 - x));\n },\n\n cbrt: function cbrt(value) {\n var x = Number(value);\n if (x === 0) { return x; }\n var negate = x < 0;\n var result;\n if (negate) { x = -x; }\n if (x === Infinity) {\n result = Infinity;\n } else {\n result = _exp(_log(x) / 3);\n // from http://en.wikipedia.org/wiki/Cube_root#Numerical_methods\n result = (x / (result * result) + (2 * result)) / 3;\n }\n return negate ? -result : result;\n },\n\n clz32: function clz32(value) {\n // See https://bugs.ecmascript.org/show_bug.cgi?id=2465\n var x = Number(value);\n var number = ES.ToUint32(x);\n if (number === 0) {\n return 32;\n }\n return numberCLZ ? ES.Call(numberCLZ, number) : 31 - _floor(_log(number + 0.5) * LOG2E);\n },\n\n cosh: function cosh(value) {\n var x = Number(value);\n if (x === 0) { return 1; } // +0 or -0\n if (numberIsNaN(x)) { return NaN; }\n if (!globalIsFinite(x)) { return Infinity; }\n if (x < 0) { x = -x; }\n if (x > 21) { return _exp(x) / 2; }\n return (_exp(x) + _exp(-x)) / 2;\n },\n\n expm1: function expm1(value) {\n var x = Number(value);\n if (x === -Infinity) { return -1; }\n if (!globalIsFinite(x) || x === 0) { return x; }\n if (_abs(x) > 0.5) {\n return _exp(x) - 1;\n }\n // A more precise approximation using Taylor series expansion\n // from https://github.com/paulmillr/es6-shim/issues/314#issuecomment-70293986\n var t = x;\n var sum = 0;\n var n = 1;\n while (sum + t !== sum) {\n sum += t;\n n += 1;\n t *= x / n;\n }\n return sum;\n },\n\n hypot: function hypot(x, y) {\n var result = 0;\n var largest = 0;\n for (var i = 0; i < arguments.length; ++i) {\n var value = _abs(Number(arguments[i]));\n if (largest < value) {\n result *= (largest / value) * (largest / value);\n result += 1;\n largest = value;\n } else {\n result += value > 0 ? (value / largest) * (value / largest) : value;\n }\n }\n return largest === Infinity ? Infinity : largest * _sqrt(result);\n },\n\n log2: function log2(value) {\n return _log(value) * LOG2E;\n },\n\n log10: function log10(value) {\n return _log(value) * LOG10E;\n },\n\n log1p: function log1p(value) {\n var x = Number(value);\n if (x < -1 || numberIsNaN(x)) { return NaN; }\n if (x === 0 || x === Infinity) { return x; }\n if (x === -1) { return -Infinity; }\n\n return (1 + x) - 1 === 0 ? x : x * (_log(1 + x) / ((1 + x) - 1));\n },\n\n sign: _sign,\n\n sinh: function sinh(value) {\n var x = Number(value);\n if (!globalIsFinite(x) || x === 0) { return x; }\n\n if (_abs(x) < 1) {\n return (Math.expm1(x) - Math.expm1(-x)) / 2;\n }\n return (_exp(x - 1) - _exp(-x - 1)) * E / 2;\n },\n\n tanh: function tanh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || x === 0) { return x; }\n // can exit early at +-20 as JS loses precision for true value at this integer\n if (x >= 20) { return 1; }\n if (x <= -20) { return -1; }\n\n return (Math.expm1(x) - Math.expm1(-x)) / (_exp(x) + _exp(-x));\n },\n\n trunc: function trunc(value) {\n var x = Number(value);\n return x < 0 ? -_floor(-x) : _floor(x);\n },\n\n imul: function imul(x, y) {\n // taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\n var a = ES.ToUint32(x);\n var b = ES.ToUint32(y);\n var ah = (a >>> 16) & 0xffff;\n var al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff;\n var bl = b & 0xffff;\n // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n return (al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0;\n },\n\n fround: function fround(x) {\n var v = Number(x);\n if (v === 0 || v === Infinity || v === -Infinity || numberIsNaN(v)) {\n return v;\n }\n var sign = _sign(v);\n var abs = _abs(v);\n if (abs < BINARY_32_MIN_VALUE) {\n return sign * roundTiesToEven(abs / BINARY_32_MIN_VALUE / BINARY_32_EPSILON) * BINARY_32_MIN_VALUE * BINARY_32_EPSILON;\n }\n // Veltkamp's splitting (?)\n var a = (1 + BINARY_32_EPSILON / Number.EPSILON) * abs;\n var result = a - (a - abs);\n if (result > BINARY_32_MAX_VALUE || numberIsNaN(result)) {\n return sign * Infinity;\n }\n return sign * result;\n }\n };\n defineProperties(Math, MathShims);\n // IE 11 TP has an imprecise log1p: reports Math.log1p(-1e-17) as 0\n defineProperty(Math, 'log1p', MathShims.log1p, Math.log1p(-1e-17) !== -1e-17);\n // IE 11 TP has an imprecise asinh: reports Math.asinh(-1e7) as not exactly equal to -Math.asinh(1e7)\n defineProperty(Math, 'asinh', MathShims.asinh, Math.asinh(-1e7) !== -Math.asinh(1e7));\n // Chrome 40 has an imprecise Math.tanh with very small numbers\n defineProperty(Math, 'tanh', MathShims.tanh, Math.tanh(-2e-17) !== -2e-17);\n // Chrome 40 loses Math.acosh precision with high numbers\n defineProperty(Math, 'acosh', MathShims.acosh, Math.acosh(Number.MAX_VALUE) === Infinity);\n // Firefox 38 on Windows\n defineProperty(Math, 'cbrt', MathShims.cbrt, Math.abs(1 - Math.cbrt(1e-300) / 1e-100) / Number.EPSILON > 8);\n // node 0.11 has an imprecise Math.sinh with very small numbers\n defineProperty(Math, 'sinh', MathShims.sinh, Math.sinh(-2e-17) !== -2e-17);\n // FF 35 on Linux reports 22025.465794806725 for Math.expm1(10)\n var expm1OfTen = Math.expm1(10);\n defineProperty(Math, 'expm1', MathShims.expm1, expm1OfTen > 22025.465794806719 || expm1OfTen < 22025.4657948067165168);\n\n var origMathRound = Math.round;\n // breaks in e.g. Safari 8, Internet Explorer 11, Opera 12\n var roundHandlesBoundaryConditions = Math.round(0.5 - Number.EPSILON / 4) === 0 && Math.round(-0.5 + Number.EPSILON / 3.99) === 1;\n\n // When engines use Math.floor(x + 0.5) internally, Math.round can be buggy for large integers.\n // This behavior should be governed by \"round to nearest, ties to even mode\"\n // see http://www.ecma-international.org/ecma-262/6.0/#sec-terms-and-definitions-number-type\n // These are the boundary cases where it breaks.\n var smallestPositiveNumberWhereRoundBreaks = inverseEpsilon + 1;\n var largestPositiveNumberWhereRoundBreaks = 2 * inverseEpsilon - 1;\n var roundDoesNotIncreaseIntegers = [smallestPositiveNumberWhereRoundBreaks, largestPositiveNumberWhereRoundBreaks].every(function (num) {\n return Math.round(num) === num;\n });\n defineProperty(Math, 'round', function round(x) {\n var floor = _floor(x);\n var ceil = floor === -1 ? -0 : floor + 1;\n return x - floor < 0.5 ? floor : ceil;\n }, !roundHandlesBoundaryConditions || !roundDoesNotIncreaseIntegers);\n Value.preserveToString(Math.round, origMathRound);\n\n var origImul = Math.imul;\n if (Math.imul(0xffffffff, 5) !== -5) {\n // Safari 6.1, at least, reports \"0\" for this value\n Math.imul = MathShims.imul;\n Value.preserveToString(Math.imul, origImul);\n }\n if (Math.imul.length !== 2) {\n // Safari 8.0.4 has a length of 1\n // fixed in https://bugs.webkit.org/show_bug.cgi?id=143658\n overrideNative(Math, 'imul', function imul(x, y) {\n return ES.Call(origImul, Math, arguments);\n });\n }\n\n // Promises\n // Simplest possible implementation; use a 3rd-party library if you\n // want the best possible speed and/or long stack traces.\n var PromiseShim = (function () {\n var setTimeout = globals.setTimeout;\n // some environments don't have setTimeout - no way to shim here.\n if (typeof setTimeout !== 'function' && typeof setTimeout !== 'object') { return; }\n\n ES.IsPromise = function (promise) {\n if (!ES.TypeIsObject(promise)) {\n return false;\n }\n if (typeof promise._promise === 'undefined') {\n return false; // uninitialized, or missing our hidden field.\n }\n return true;\n };\n\n // \"PromiseCapability\" in the spec is what most promise implementations\n // call a \"deferred\".\n var PromiseCapability = function (C) {\n if (!ES.IsConstructor(C)) {\n throw new TypeError('Bad promise constructor');\n }\n var capability = this;\n var resolver = function (resolve, reject) {\n if (capability.resolve !== void 0 || capability.reject !== void 0) {\n throw new TypeError('Bad Promise implementation!');\n }\n capability.resolve = resolve;\n capability.reject = reject;\n };\n // Initialize fields to inform optimizers about the object shape.\n capability.resolve = void 0;\n capability.reject = void 0;\n capability.promise = new C(resolver);\n if (!(ES.IsCallable(capability.resolve) && ES.IsCallable(capability.reject))) {\n throw new TypeError('Bad promise constructor');\n }\n };\n\n // find an appropriate setImmediate-alike\n var makeZeroTimeout;\n /*global window */\n if (typeof window !== 'undefined' && ES.IsCallable(window.postMessage)) {\n makeZeroTimeout = function () {\n // from http://dbaron.org/log/20100309-faster-timeouts\n var timeouts = [];\n var messageName = 'zero-timeout-message';\n var setZeroTimeout = function (fn) {\n _push(timeouts, fn);\n window.postMessage(messageName, '*');\n };\n var handleMessage = function (event) {\n if (event.source === window && event.data === messageName) {\n event.stopPropagation();\n if (timeouts.length === 0) { return; }\n var fn = _shift(timeouts);\n fn();\n }\n };\n window.addEventListener('message', handleMessage, true);\n return setZeroTimeout;\n };\n }\n var makePromiseAsap = function () {\n // An efficient task-scheduler based on a pre-existing Promise\n // implementation, which we can use even if we override the\n // global Promise below (in order to workaround bugs)\n // https://github.com/Raynos/observ-hash/issues/2#issuecomment-35857671\n var P = globals.Promise;\n var pr = P && P.resolve && P.resolve();\n return pr && function (task) {\n return pr.then(task);\n };\n };\n /*global process */\n /* jscs:disable disallowMultiLineTernary */\n var enqueue = ES.IsCallable(globals.setImmediate) ?\n globals.setImmediate :\n typeof process === 'object' && process.nextTick ? process.nextTick :\n makePromiseAsap() ||\n (ES.IsCallable(makeZeroTimeout) ? makeZeroTimeout() :\n function (task) { setTimeout(task, 0); }); // fallback\n /* jscs:enable disallowMultiLineTernary */\n\n // Constants for Promise implementation\n var PROMISE_IDENTITY = function (x) { return x; };\n var PROMISE_THROWER = function (e) { throw e; };\n var PROMISE_PENDING = 0;\n var PROMISE_FULFILLED = 1;\n var PROMISE_REJECTED = 2;\n // We store fulfill/reject handlers and capabilities in a single array.\n var PROMISE_FULFILL_OFFSET = 0;\n var PROMISE_REJECT_OFFSET = 1;\n var PROMISE_CAPABILITY_OFFSET = 2;\n // This is used in an optimization for chaining promises via then.\n var PROMISE_FAKE_CAPABILITY = {};\n\n var enqueuePromiseReactionJob = function (handler, capability, argument) {\n enqueue(function () {\n promiseReactionJob(handler, capability, argument);\n });\n };\n\n var promiseReactionJob = function (handler, promiseCapability, argument) {\n var handlerResult, f;\n if (promiseCapability === PROMISE_FAKE_CAPABILITY) {\n // Fast case, when we don't actually need to chain through to a\n // (real) promiseCapability.\n return handler(argument);\n }\n try {\n handlerResult = handler(argument);\n f = promiseCapability.resolve;\n } catch (e) {\n handlerResult = e;\n f = promiseCapability.reject;\n }\n f(handlerResult);\n };\n\n var fulfillPromise = function (promise, value) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n if (length > 0) {\n enqueuePromiseReactionJob(\n _promise.fulfillReactionHandler0,\n _promise.reactionCapability0,\n value\n );\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(\n _promise[idx + PROMISE_FULFILL_OFFSET],\n _promise[idx + PROMISE_CAPABILITY_OFFSET],\n value\n );\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n _promise.result = value;\n _promise.state = PROMISE_FULFILLED;\n _promise.reactionLength = 0;\n };\n\n var rejectPromise = function (promise, reason) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n if (length > 0) {\n enqueuePromiseReactionJob(\n _promise.rejectReactionHandler0,\n _promise.reactionCapability0,\n reason\n );\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(\n _promise[idx + PROMISE_REJECT_OFFSET],\n _promise[idx + PROMISE_CAPABILITY_OFFSET],\n reason\n );\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n _promise.result = reason;\n _promise.state = PROMISE_REJECTED;\n _promise.reactionLength = 0;\n };\n\n var createResolvingFunctions = function (promise) {\n var alreadyResolved = false;\n var resolve = function (resolution) {\n var then;\n if (alreadyResolved) { return; }\n alreadyResolved = true;\n if (resolution === promise) {\n return rejectPromise(promise, new TypeError('Self resolution'));\n }\n if (!ES.TypeIsObject(resolution)) {\n return fulfillPromise(promise, resolution);\n }\n try {\n then = resolution.then;\n } catch (e) {\n return rejectPromise(promise, e);\n }\n if (!ES.IsCallable(then)) {\n return fulfillPromise(promise, resolution);\n }\n enqueue(function () {\n promiseResolveThenableJob(promise, resolution, then);\n });\n };\n var reject = function (reason) {\n if (alreadyResolved) { return; }\n alreadyResolved = true;\n return rejectPromise(promise, reason);\n };\n return { resolve: resolve, reject: reject };\n };\n\n var optimizedThen = function (then, thenable, resolve, reject) {\n // Optimization: since we discard the result, we can pass our\n // own then implementation a special hint to let it know it\n // doesn't have to create it. (The PROMISE_FAKE_CAPABILITY\n // object is local to this implementation and unforgeable outside.)\n if (then === Promise$prototype$then) {\n _call(then, thenable, resolve, reject, PROMISE_FAKE_CAPABILITY);\n } else {\n _call(then, thenable, resolve, reject);\n }\n };\n var promiseResolveThenableJob = function (promise, thenable, then) {\n var resolvingFunctions = createResolvingFunctions(promise);\n var resolve = resolvingFunctions.resolve;\n var reject = resolvingFunctions.reject;\n try {\n optimizedThen(then, thenable, resolve, reject);\n } catch (e) {\n reject(e);\n }\n };\n\n var Promise$prototype, Promise$prototype$then;\n var Promise = (function () {\n var PromiseShim = function Promise(resolver) {\n if (!(this instanceof PromiseShim)) {\n throw new TypeError('Constructor Promise requires \"new\"');\n }\n if (this && this._promise) {\n throw new TypeError('Bad construction');\n }\n // see https://bugs.ecmascript.org/show_bug.cgi?id=2482\n if (!ES.IsCallable(resolver)) {\n throw new TypeError('not a valid resolver');\n }\n var promise = emulateES6construct(this, PromiseShim, Promise$prototype, {\n _promise: {\n result: void 0,\n state: PROMISE_PENDING,\n // The first member of the \"reactions\" array is inlined here,\n // since most promises only have one reaction.\n // We've also exploded the 'reaction' object to inline the\n // \"handler\" and \"capability\" fields, since both fulfill and\n // reject reactions share the same capability.\n reactionLength: 0,\n fulfillReactionHandler0: void 0,\n rejectReactionHandler0: void 0,\n reactionCapability0: void 0\n }\n });\n var resolvingFunctions = createResolvingFunctions(promise);\n var reject = resolvingFunctions.reject;\n try {\n resolver(resolvingFunctions.resolve, reject);\n } catch (e) {\n reject(e);\n }\n return promise;\n };\n return PromiseShim;\n }());\n Promise$prototype = Promise.prototype;\n\n var _promiseAllResolver = function (index, values, capability, remaining) {\n var alreadyCalled = false;\n return function (x) {\n if (alreadyCalled) { return; }\n alreadyCalled = true;\n values[index] = x;\n if ((--remaining.count) === 0) {\n var resolve = capability.resolve;\n resolve(values); // call w/ this===undefined\n }\n };\n };\n\n var performPromiseAll = function (iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var values = [];\n var remaining = { count: 1 };\n var next, nextValue;\n var index = 0;\n while (true) {\n try {\n next = ES.IteratorStep(it);\n if (next === false) {\n iteratorRecord.done = true;\n break;\n }\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n values[index] = void 0;\n var nextPromise = C.resolve(nextValue);\n var resolveElement = _promiseAllResolver(\n index, values, resultCapability, remaining\n );\n remaining.count += 1;\n optimizedThen(nextPromise.then, nextPromise, resolveElement, resultCapability.reject);\n index += 1;\n }\n if ((--remaining.count) === 0) {\n var resolve = resultCapability.resolve;\n resolve(values); // call w/ this===undefined\n }\n return resultCapability.promise;\n };\n\n var performPromiseRace = function (iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var next, nextValue, nextPromise;\n while (true) {\n try {\n next = ES.IteratorStep(it);\n if (next === false) {\n // NOTE: If iterable has no items, resulting promise will never\n // resolve; see:\n // https://github.com/domenic/promises-unwrapping/issues/75\n // https://bugs.ecmascript.org/show_bug.cgi?id=2515\n iteratorRecord.done = true;\n break;\n }\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n nextPromise = C.resolve(nextValue);\n optimizedThen(nextPromise.then, nextPromise, resultCapability.resolve, resultCapability.reject);\n }\n return resultCapability.promise;\n };\n\n defineProperties(Promise, {\n all: function all(iterable) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = { iterator: iterator, done: false };\n return performPromiseAll(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n\n race: function race(iterable) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = { iterator: iterator, done: false };\n return performPromiseRace(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n\n reject: function reject(reason) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n var capability = new PromiseCapability(C);\n var rejectFunc = capability.reject;\n rejectFunc(reason); // call with this===undefined\n return capability.promise;\n },\n\n resolve: function resolve(v) {\n // See https://esdiscuss.org/topic/fixing-promise-resolve for spec\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n if (ES.IsPromise(v)) {\n var constructor = v.constructor;\n if (constructor === C) {\n return v;\n }\n }\n var capability = new PromiseCapability(C);\n var resolveFunc = capability.resolve;\n resolveFunc(v); // call with this===undefined\n return capability.promise;\n }\n });\n\n defineProperties(Promise$prototype, {\n 'catch': function (onRejected) {\n return this.then(null, onRejected);\n },\n\n then: function then(onFulfilled, onRejected) {\n var promise = this;\n if (!ES.IsPromise(promise)) { throw new TypeError('not a promise'); }\n var C = ES.SpeciesConstructor(promise, Promise);\n var resultCapability;\n var returnValueIsIgnored = arguments.length > 2 && arguments[2] === PROMISE_FAKE_CAPABILITY;\n if (returnValueIsIgnored && C === Promise) {\n resultCapability = PROMISE_FAKE_CAPABILITY;\n } else {\n resultCapability = new PromiseCapability(C);\n }\n // PerformPromiseThen(promise, onFulfilled, onRejected, resultCapability)\n // Note that we've split the 'reaction' object into its two\n // components, \"capabilities\" and \"handler\"\n // \"capabilities\" is always equal to `resultCapability`\n var fulfillReactionHandler = ES.IsCallable(onFulfilled) ? onFulfilled : PROMISE_IDENTITY;\n var rejectReactionHandler = ES.IsCallable(onRejected) ? onRejected : PROMISE_THROWER;\n var _promise = promise._promise;\n var value;\n if (_promise.state === PROMISE_PENDING) {\n if (_promise.reactionLength === 0) {\n _promise.fulfillReactionHandler0 = fulfillReactionHandler;\n _promise.rejectReactionHandler0 = rejectReactionHandler;\n _promise.reactionCapability0 = resultCapability;\n } else {\n var idx = 3 * (_promise.reactionLength - 1);\n _promise[idx + PROMISE_FULFILL_OFFSET] = fulfillReactionHandler;\n _promise[idx + PROMISE_REJECT_OFFSET] = rejectReactionHandler;\n _promise[idx + PROMISE_CAPABILITY_OFFSET] = resultCapability;\n }\n _promise.reactionLength += 1;\n } else if (_promise.state === PROMISE_FULFILLED) {\n value = _promise.result;\n enqueuePromiseReactionJob(\n fulfillReactionHandler, resultCapability, value\n );\n } else if (_promise.state === PROMISE_REJECTED) {\n value = _promise.result;\n enqueuePromiseReactionJob(\n rejectReactionHandler, resultCapability, value\n );\n } else {\n throw new TypeError('unexpected Promise state');\n }\n return resultCapability.promise;\n }\n });\n // This helps the optimizer by ensuring that methods which take\n // capabilities aren't polymorphic.\n PROMISE_FAKE_CAPABILITY = new PromiseCapability(Promise);\n Promise$prototype$then = Promise$prototype.then;\n\n return Promise;\n }());\n\n // Chrome's native Promise has extra methods that it shouldn't have. Let's remove them.\n if (globals.Promise) {\n delete globals.Promise.accept;\n delete globals.Promise.defer;\n delete globals.Promise.prototype.chain;\n }\n\n if (typeof PromiseShim === 'function') {\n // export the Promise constructor.\n defineProperties(globals, { Promise: PromiseShim });\n // In Chrome 33 (and thereabouts) Promise is defined, but the\n // implementation is buggy in a number of ways. Let's check subclassing\n // support to see if we have a buggy implementation.\n var promiseSupportsSubclassing = supportsSubclassing(globals.Promise, function (S) {\n return S.resolve(42).then(function () {}) instanceof S;\n });\n var promiseIgnoresNonFunctionThenCallbacks = !throwsError(function () { globals.Promise.reject(42).then(null, 5).then(null, noop); });\n var promiseRequiresObjectContext = throwsError(function () { globals.Promise.call(3, noop); });\n // Promise.resolve() was errata'ed late in the ES6 process.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1170742\n // https://code.google.com/p/v8/issues/detail?id=4161\n // It serves as a proxy for a number of other bugs in early Promise\n // implementations.\n var promiseResolveBroken = (function (Promise) {\n var p = Promise.resolve(5);\n p.constructor = {};\n var p2 = Promise.resolve(p);\n try {\n p2.then(null, noop).then(null, noop); // avoid \"uncaught rejection\" warnings in console\n } catch (e) {\n return true; // v8 native Promises break here https://code.google.com/p/chromium/issues/detail?id=575314\n }\n return p === p2; // This *should* be false!\n }(globals.Promise));\n\n // Chrome 46 (probably older too) does not retrieve a thenable's .then synchronously\n var getsThenSynchronously = supportsDescriptors && (function () {\n var count = 0;\n var thenable = Object.defineProperty({}, 'then', { get: function () { count += 1; } });\n Promise.resolve(thenable);\n return count === 1;\n }());\n\n var BadResolverPromise = function BadResolverPromise(executor) {\n var p = new Promise(executor);\n executor(3, function () {});\n this.then = p.then;\n this.constructor = BadResolverPromise;\n };\n BadResolverPromise.prototype = Promise.prototype;\n BadResolverPromise.all = Promise.all;\n // Chrome Canary 49 (probably older too) has some implementation bugs\n var hasBadResolverPromise = valueOrFalseIfThrows(function () {\n return !!BadResolverPromise.all([1, 2]);\n });\n\n if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks ||\n !promiseRequiresObjectContext || promiseResolveBroken ||\n !getsThenSynchronously || hasBadResolverPromise) {\n /* globals Promise: true */\n /* eslint-disable no-undef */\n /* jshint -W020 */\n Promise = PromiseShim;\n /* jshint +W020 */\n /* eslint-enable no-undef */\n /* globals Promise: false */\n overrideNative(globals, 'Promise', PromiseShim);\n }\n if (Promise.all.length !== 1) {\n var origAll = Promise.all;\n overrideNative(Promise, 'all', function all(iterable) {\n return ES.Call(origAll, this, arguments);\n });\n }\n if (Promise.race.length !== 1) {\n var origRace = Promise.race;\n overrideNative(Promise, 'race', function race(iterable) {\n return ES.Call(origRace, this, arguments);\n });\n }\n if (Promise.resolve.length !== 1) {\n var origResolve = Promise.resolve;\n overrideNative(Promise, 'resolve', function resolve(x) {\n return ES.Call(origResolve, this, arguments);\n });\n }\n if (Promise.reject.length !== 1) {\n var origReject = Promise.reject;\n overrideNative(Promise, 'reject', function reject(r) {\n return ES.Call(origReject, this, arguments);\n });\n }\n ensureEnumerable(Promise, 'all');\n ensureEnumerable(Promise, 'race');\n ensureEnumerable(Promise, 'resolve');\n ensureEnumerable(Promise, 'reject');\n addDefaultSpecies(Promise);\n }\n\n // Map and Set require a true ES5 environment\n // Their fast path also requires that the environment preserve\n // property insertion order, which is not guaranteed by the spec.\n var testOrder = function (a) {\n var b = keys(_reduce(a, function (o, k) {\n o[k] = true;\n return o;\n }, {}));\n return a.join(':') === b.join(':');\n };\n var preservesInsertionOrder = testOrder(['z', 'a', 'bb']);\n // some engines (eg, Chrome) only preserve insertion order for string keys\n var preservesNumericInsertionOrder = testOrder(['z', 1, 'a', '3', 2]);\n\n if (supportsDescriptors) {\n\n var fastkey = function fastkey(key) {\n if (!preservesInsertionOrder) {\n return null;\n }\n if (typeof key === 'undefined' || key === null) {\n return '^' + ES.ToString(key);\n } else if (typeof key === 'string') {\n return '$' + key;\n } else if (typeof key === 'number') {\n // note that -0 will get coerced to \"0\" when used as a property key\n if (!preservesNumericInsertionOrder) {\n return 'n' + key;\n }\n return key;\n } else if (typeof key === 'boolean') {\n return 'b' + key;\n }\n return null;\n };\n\n var emptyObject = function emptyObject() {\n // accomodate some older not-quite-ES5 browsers\n return Object.create ? Object.create(null) : {};\n };\n\n var addIterableToMap = function addIterableToMap(MapConstructor, map, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (entry) {\n if (!ES.TypeIsObject(entry)) {\n throw new TypeError('Iterator value ' + entry + ' is not an entry object');\n }\n map.set(entry[0], entry[1]);\n });\n } else if (iterable instanceof MapConstructor) {\n _call(MapConstructor.prototype.forEach, iterable, function (value, key) {\n map.set(key, value);\n });\n } else {\n var iter, adder;\n if (iterable !== null && typeof iterable !== 'undefined') {\n adder = map.set;\n if (!ES.IsCallable(adder)) { throw new TypeError('bad map'); }\n iter = ES.GetIterator(iterable);\n }\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n if (next === false) { break; }\n var nextItem = next.value;\n try {\n if (!ES.TypeIsObject(nextItem)) {\n throw new TypeError('Iterator value ' + nextItem + ' is not an entry object');\n }\n _call(adder, map, nextItem[0], nextItem[1]);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n var addIterableToSet = function addIterableToSet(SetConstructor, set, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (value) {\n set.add(value);\n });\n } else if (iterable instanceof SetConstructor) {\n _call(SetConstructor.prototype.forEach, iterable, function (value) {\n set.add(value);\n });\n } else {\n var iter, adder;\n if (iterable !== null && typeof iterable !== 'undefined') {\n adder = set.add;\n if (!ES.IsCallable(adder)) { throw new TypeError('bad set'); }\n iter = ES.GetIterator(iterable);\n }\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n if (next === false) { break; }\n var nextValue = next.value;\n try {\n _call(adder, set, nextValue);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n\n var collectionShims = {\n Map: (function () {\n\n var empty = {};\n\n var MapEntry = function MapEntry(key, value) {\n this.key = key;\n this.value = value;\n this.next = null;\n this.prev = null;\n };\n\n MapEntry.prototype.isRemoved = function isRemoved() {\n return this.key === empty;\n };\n\n var isMap = function isMap(map) {\n return !!map._es6map;\n };\n\n var requireMapSlot = function requireMapSlot(map, method) {\n if (!ES.TypeIsObject(map) || !isMap(map)) {\n throw new TypeError('Method Map.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(map));\n }\n };\n\n var MapIterator = function MapIterator(map, kind) {\n requireMapSlot(map, '[[MapIterator]]');\n this.head = map._head;\n this.i = this.head;\n this.kind = kind;\n };\n\n MapIterator.prototype = {\n next: function next() {\n var i = this.i;\n var kind = this.kind;\n var head = this.head;\n if (typeof this.i === 'undefined') {\n return iteratorResult();\n }\n while (i.isRemoved() && i !== head) {\n // back up off of removed entries\n i = i.prev;\n }\n // advance to next unreturned element.\n var result;\n while (i.next !== head) {\n i = i.next;\n if (!i.isRemoved()) {\n if (kind === 'key') {\n result = i.key;\n } else if (kind === 'value') {\n result = i.value;\n } else {\n result = [i.key, i.value];\n }\n this.i = i;\n return iteratorResult(result);\n }\n }\n // once the iterator is done, it is done forever.\n this.i = void 0;\n return iteratorResult();\n }\n };\n addIterator(MapIterator.prototype);\n\n var Map$prototype;\n var MapShim = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n if (this && this._es6map) {\n throw new TypeError('Bad construction');\n }\n var map = emulateES6construct(this, Map, Map$prototype, {\n _es6map: true,\n _head: null,\n _storage: emptyObject(),\n _size: 0\n });\n\n var head = new MapEntry(null, null);\n // circular doubly-linked list.\n head.next = head.prev = head;\n map._head = head;\n\n // Optionally initialize map from iterable\n if (arguments.length > 0) {\n addIterableToMap(Map, map, arguments[0]);\n }\n return map;\n };\n Map$prototype = MapShim.prototype;\n\n Value.getter(Map$prototype, 'size', function () {\n if (typeof this._size === 'undefined') {\n throw new TypeError('size method called on incompatible Map');\n }\n return this._size;\n });\n\n defineProperties(Map$prototype, {\n get: function get(key) {\n requireMapSlot(this, 'get');\n var fkey = fastkey(key);\n if (fkey !== null) {\n // fast O(1) path\n var entry = this._storage[fkey];\n if (entry) {\n return entry.value;\n } else {\n return;\n }\n }\n var head = this._head;\n var i = head;\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return i.value;\n }\n }\n },\n\n has: function has(key) {\n requireMapSlot(this, 'has');\n var fkey = fastkey(key);\n if (fkey !== null) {\n // fast O(1) path\n return typeof this._storage[fkey] !== 'undefined';\n }\n var head = this._head;\n var i = head;\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return true;\n }\n }\n return false;\n },\n\n set: function set(key, value) {\n requireMapSlot(this, 'set');\n var head = this._head;\n var i = head;\n var entry;\n var fkey = fastkey(key);\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] !== 'undefined') {\n this._storage[fkey].value = value;\n return this;\n } else {\n entry = this._storage[fkey] = new MapEntry(key, value);\n i = head.prev;\n // fall through\n }\n }\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.value = value;\n return this;\n }\n }\n entry = entry || new MapEntry(key, value);\n if (ES.SameValue(-0, key)) {\n entry.key = +0; // coerce -0 to +0 in entry\n }\n entry.next = this._head;\n entry.prev = this._head.prev;\n entry.prev.next = entry;\n entry.next.prev = entry;\n this._size += 1;\n return this;\n },\n\n 'delete': function (key) {\n requireMapSlot(this, 'delete');\n var head = this._head;\n var i = head;\n var fkey = fastkey(key);\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] === 'undefined') {\n return false;\n }\n i = this._storage[fkey].prev;\n delete this._storage[fkey];\n // fall through\n }\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.key = i.value = empty;\n i.prev.next = i.next;\n i.next.prev = i.prev;\n this._size -= 1;\n return true;\n }\n }\n return false;\n },\n\n clear: function clear() {\n requireMapSlot(this, 'clear');\n this._size = 0;\n this._storage = emptyObject();\n var head = this._head;\n var i = head;\n var p = i.next;\n while ((i = p) !== head) {\n i.key = i.value = empty;\n p = i.next;\n i.next = i.prev = head;\n }\n head.next = head.prev = head;\n },\n\n keys: function keys() {\n requireMapSlot(this, 'keys');\n return new MapIterator(this, 'key');\n },\n\n values: function values() {\n requireMapSlot(this, 'values');\n return new MapIterator(this, 'value');\n },\n\n entries: function entries() {\n requireMapSlot(this, 'entries');\n return new MapIterator(this, 'key+value');\n },\n\n forEach: function forEach(callback) {\n requireMapSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var it = this.entries();\n for (var entry = it.next(); !entry.done; entry = it.next()) {\n if (context) {\n _call(callback, context, entry.value[1], entry.value[0], this);\n } else {\n callback(entry.value[1], entry.value[0], this);\n }\n }\n }\n });\n addIterator(Map$prototype, Map$prototype.entries);\n\n return MapShim;\n }()),\n\n Set: (function () {\n var isSet = function isSet(set) {\n return set._es6set && typeof set._storage !== 'undefined';\n };\n var requireSetSlot = function requireSetSlot(set, method) {\n if (!ES.TypeIsObject(set) || !isSet(set)) {\n // https://github.com/paulmillr/es6-shim/issues/176\n throw new TypeError('Set.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(set));\n }\n };\n\n // Creating a Map is expensive. To speed up the common case of\n // Sets containing only string or numeric keys, we use an object\n // as backing storage and lazily create a full Map only when\n // required.\n var Set$prototype;\n var SetShim = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n if (this && this._es6set) {\n throw new TypeError('Bad construction');\n }\n var set = emulateES6construct(this, Set, Set$prototype, {\n _es6set: true,\n '[[SetData]]': null,\n _storage: emptyObject()\n });\n if (!set._es6set) {\n throw new TypeError('bad set');\n }\n\n // Optionally initialize Set from iterable\n if (arguments.length > 0) {\n addIterableToSet(Set, set, arguments[0]);\n }\n return set;\n };\n Set$prototype = SetShim.prototype;\n\n var decodeKey = function (key) {\n var k = key;\n if (k === '^null') {\n return null;\n } else if (k === '^undefined') {\n return void 0;\n } else {\n var first = k.charAt(0);\n if (first === '$') {\n return _strSlice(k, 1);\n } else if (first === 'n') {\n return +_strSlice(k, 1);\n } else if (first === 'b') {\n return k === 'btrue';\n }\n }\n return +k;\n };\n // Switch from the object backing storage to a full Map.\n var ensureMap = function ensureMap(set) {\n if (!set['[[SetData]]']) {\n var m = set['[[SetData]]'] = new collectionShims.Map();\n _forEach(keys(set._storage), function (key) {\n var k = decodeKey(key);\n m.set(k, k);\n });\n set['[[SetData]]'] = m;\n }\n set._storage = null; // free old backing storage\n };\n\n Value.getter(SetShim.prototype, 'size', function () {\n requireSetSlot(this, 'size');\n if (this._storage) {\n return keys(this._storage).length;\n }\n ensureMap(this);\n return this['[[SetData]]'].size;\n });\n\n defineProperties(SetShim.prototype, {\n has: function has(key) {\n requireSetSlot(this, 'has');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n return !!this._storage[fkey];\n }\n ensureMap(this);\n return this['[[SetData]]'].has(key);\n },\n\n add: function add(key) {\n requireSetSlot(this, 'add');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n this._storage[fkey] = true;\n return this;\n }\n ensureMap(this);\n this['[[SetData]]'].set(key, key);\n return this;\n },\n\n 'delete': function (key) {\n requireSetSlot(this, 'delete');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n var hasFKey = _hasOwnProperty(this._storage, fkey);\n return (delete this._storage[fkey]) && hasFKey;\n }\n ensureMap(this);\n return this['[[SetData]]']['delete'](key);\n },\n\n clear: function clear() {\n requireSetSlot(this, 'clear');\n if (this._storage) {\n this._storage = emptyObject();\n }\n if (this['[[SetData]]']) {\n this['[[SetData]]'].clear();\n }\n },\n\n values: function values() {\n requireSetSlot(this, 'values');\n ensureMap(this);\n return this['[[SetData]]'].values();\n },\n\n entries: function entries() {\n requireSetSlot(this, 'entries');\n ensureMap(this);\n return this['[[SetData]]'].entries();\n },\n\n forEach: function forEach(callback) {\n requireSetSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var entireSet = this;\n ensureMap(entireSet);\n this['[[SetData]]'].forEach(function (value, key) {\n if (context) {\n _call(callback, context, key, key, entireSet);\n } else {\n callback(key, key, entireSet);\n }\n });\n }\n });\n defineProperty(SetShim.prototype, 'keys', SetShim.prototype.values, true);\n addIterator(SetShim.prototype, SetShim.prototype.values);\n\n return SetShim;\n }())\n };\n\n if (globals.Map || globals.Set) {\n // Safari 8, for example, doesn't accept an iterable.\n var mapAcceptsArguments = valueOrFalseIfThrows(function () { return new Map([[1, 2]]).get(1) === 2; });\n if (!mapAcceptsArguments) {\n var OrigMapNoArgs = globals.Map;\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n var m = new OrigMapNoArgs();\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n delete m.constructor;\n Object.setPrototypeOf(m, globals.Map.prototype);\n return m;\n };\n globals.Map.prototype = create(OrigMapNoArgs.prototype);\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMapNoArgs);\n }\n var testMap = new Map();\n var mapUsesSameValueZero = (function () {\n // Chrome 38-42, node 0.11/0.12, iojs 1/2 also have a bug when the Map has a size > 4\n var m = new Map([[1, 0], [2, 0], [3, 0], [4, 0]]);\n m.set(-0, m);\n return m.get(0) === m && m.get(-0) === m && m.has(0) && m.has(-0);\n }());\n var mapSupportsChaining = testMap.set(1, 2) === testMap;\n if (!mapUsesSameValueZero || !mapSupportsChaining) {\n var origMapSet = Map.prototype.set;\n overrideNative(Map.prototype, 'set', function set(k, v) {\n _call(origMapSet, this, k === 0 ? 0 : k, v);\n return this;\n });\n }\n if (!mapUsesSameValueZero) {\n var origMapGet = Map.prototype.get;\n var origMapHas = Map.prototype.has;\n defineProperties(Map.prototype, {\n get: function get(k) {\n return _call(origMapGet, this, k === 0 ? 0 : k);\n },\n has: function has(k) {\n return _call(origMapHas, this, k === 0 ? 0 : k);\n }\n }, true);\n Value.preserveToString(Map.prototype.get, origMapGet);\n Value.preserveToString(Map.prototype.has, origMapHas);\n }\n var testSet = new Set();\n var setUsesSameValueZero = (function (s) {\n s['delete'](0);\n s.add(-0);\n return !s.has(0);\n }(testSet));\n var setSupportsChaining = testSet.add(1) === testSet;\n if (!setUsesSameValueZero || !setSupportsChaining) {\n var origSetAdd = Set.prototype.add;\n Set.prototype.add = function add(v) {\n _call(origSetAdd, this, v === 0 ? 0 : v);\n return this;\n };\n Value.preserveToString(Set.prototype.add, origSetAdd);\n }\n if (!setUsesSameValueZero) {\n var origSetHas = Set.prototype.has;\n Set.prototype.has = function has(v) {\n return _call(origSetHas, this, v === 0 ? 0 : v);\n };\n Value.preserveToString(Set.prototype.has, origSetHas);\n var origSetDel = Set.prototype['delete'];\n Set.prototype['delete'] = function SetDelete(v) {\n return _call(origSetDel, this, v === 0 ? 0 : v);\n };\n Value.preserveToString(Set.prototype['delete'], origSetDel);\n }\n var mapSupportsSubclassing = supportsSubclassing(globals.Map, function (M) {\n var m = new M([]);\n // Firefox 32 is ok with the instantiating the subclass but will\n // throw when the map is used.\n m.set(42, 42);\n return m instanceof M;\n });\n var mapFailsToSupportSubclassing = Object.setPrototypeOf && !mapSupportsSubclassing; // without Object.setPrototypeOf, subclassing is not possible\n var mapRequiresNew = (function () {\n try {\n return !(globals.Map() instanceof globals.Map);\n } catch (e) {\n return e instanceof TypeError;\n }\n }());\n if (globals.Map.length !== 0 || mapFailsToSupportSubclassing || !mapRequiresNew) {\n var OrigMap = globals.Map;\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n var m = new OrigMap();\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n delete m.constructor;\n Object.setPrototypeOf(m, Map.prototype);\n return m;\n };\n globals.Map.prototype = OrigMap.prototype;\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMap);\n }\n var setSupportsSubclassing = supportsSubclassing(globals.Set, function (S) {\n var s = new S([]);\n s.add(42, 42);\n return s instanceof S;\n });\n var setFailsToSupportSubclassing = Object.setPrototypeOf && !setSupportsSubclassing; // without Object.setPrototypeOf, subclassing is not possible\n var setRequiresNew = (function () {\n try {\n return !(globals.Set() instanceof globals.Set);\n } catch (e) {\n return e instanceof TypeError;\n }\n }());\n if (globals.Set.length !== 0 || setFailsToSupportSubclassing || !setRequiresNew) {\n var OrigSet = globals.Set;\n globals.Set = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n var s = new OrigSet();\n if (arguments.length > 0) {\n addIterableToSet(Set, s, arguments[0]);\n }\n delete s.constructor;\n Object.setPrototypeOf(s, Set.prototype);\n return s;\n };\n globals.Set.prototype = OrigSet.prototype;\n defineProperty(globals.Set.prototype, 'constructor', globals.Set, true);\n Value.preserveToString(globals.Set, OrigSet);\n }\n var newMap = new globals.Map();\n var mapIterationThrowsStopIterator = !valueOrFalseIfThrows(function () {\n return newMap.keys().next().done;\n });\n /*\n - In Firefox < 23, Map#size is a function.\n - In all current Firefox, Set#entries/keys/values & Map#clear do not exist\n - https://bugzilla.mozilla.org/show_bug.cgi?id=869996\n - In Firefox 24, Map and Set do not implement forEach\n - In Firefox 25 at least, Map and Set are callable without \"new\"\n */\n if (\n typeof globals.Map.prototype.clear !== 'function' ||\n new globals.Set().size !== 0 ||\n newMap.size !== 0 ||\n typeof globals.Map.prototype.keys !== 'function' ||\n typeof globals.Set.prototype.keys !== 'function' ||\n typeof globals.Map.prototype.forEach !== 'function' ||\n typeof globals.Set.prototype.forEach !== 'function' ||\n isCallableWithoutNew(globals.Map) ||\n isCallableWithoutNew(globals.Set) ||\n typeof newMap.keys().next !== 'function' || // Safari 8\n mapIterationThrowsStopIterator || // Firefox 25\n !mapSupportsSubclassing\n ) {\n defineProperties(globals, {\n Map: collectionShims.Map,\n Set: collectionShims.Set\n }, true);\n }\n\n if (globals.Set.prototype.keys !== globals.Set.prototype.values) {\n // Fixed in WebKit with https://bugs.webkit.org/show_bug.cgi?id=144190\n defineProperty(globals.Set.prototype, 'keys', globals.Set.prototype.values, true);\n }\n\n // Shim incomplete iterator implementations.\n addIterator(Object.getPrototypeOf((new globals.Map()).keys()));\n addIterator(Object.getPrototypeOf((new globals.Set()).keys()));\n\n if (functionsHaveNames && globals.Set.prototype.has.name !== 'has') {\n // Microsoft Edge v0.11.10074.0 is missing a name on Set#has\n var anonymousSetHas = globals.Set.prototype.has;\n overrideNative(globals.Set.prototype, 'has', function has(key) {\n return _call(anonymousSetHas, this, key);\n });\n }\n }\n defineProperties(globals, collectionShims);\n addDefaultSpecies(globals.Map);\n addDefaultSpecies(globals.Set);\n }\n\n var throwUnlessTargetIsObject = function throwUnlessTargetIsObject(target) {\n if (!ES.TypeIsObject(target)) {\n throw new TypeError('target must be an object');\n }\n };\n\n // Some Reflect methods are basically the same as\n // those on the Object global, except that a TypeError is thrown if\n // target isn't an object. As well as returning a boolean indicating\n // the success of the operation.\n var ReflectShims = {\n // Apply method in a functional form.\n apply: function apply() {\n return ES.Call(ES.Call, null, arguments);\n },\n\n // New operator in a functional form.\n construct: function construct(constructor, args) {\n if (!ES.IsConstructor(constructor)) {\n throw new TypeError('First argument must be a constructor.');\n }\n var newTarget = arguments.length > 2 ? arguments[2] : constructor;\n if (!ES.IsConstructor(newTarget)) {\n throw new TypeError('new.target must be a constructor.');\n }\n return ES.Construct(constructor, args, newTarget, 'internal');\n },\n\n // When deleting a non-existent or configurable property,\n // true is returned.\n // When attempting to delete a non-configurable property,\n // it will return false.\n deleteProperty: function deleteProperty(target, key) {\n throwUnlessTargetIsObject(target);\n if (supportsDescriptors) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (desc && !desc.configurable) {\n return false;\n }\n }\n\n // Will return true.\n return delete target[key];\n },\n\n has: function has(target, key) {\n throwUnlessTargetIsObject(target);\n return key in target;\n }\n };\n\n if (Object.getOwnPropertyNames) {\n Object.assign(ReflectShims, {\n // Basically the result of calling the internal [[OwnPropertyKeys]].\n // Concatenating propertyNames and propertySymbols should do the trick.\n // This should continue to work together with a Symbol shim\n // which overrides Object.getOwnPropertyNames and implements\n // Object.getOwnPropertySymbols.\n ownKeys: function ownKeys(target) {\n throwUnlessTargetIsObject(target);\n var keys = Object.getOwnPropertyNames(target);\n\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n _pushApply(keys, Object.getOwnPropertySymbols(target));\n }\n\n return keys;\n }\n });\n }\n\n var callAndCatchException = function ConvertExceptionToBoolean(func) {\n return !throwsError(func);\n };\n\n if (Object.preventExtensions) {\n Object.assign(ReflectShims, {\n isExtensible: function isExtensible(target) {\n throwUnlessTargetIsObject(target);\n return Object.isExtensible(target);\n },\n preventExtensions: function preventExtensions(target) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n Object.preventExtensions(target);\n });\n }\n });\n }\n\n if (supportsDescriptors) {\n var internalGet = function get(target, key, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent === null) {\n return void 0;\n }\n\n return internalGet(parent, key, receiver);\n }\n\n if ('value' in desc) {\n return desc.value;\n }\n\n if (desc.get) {\n return ES.Call(desc.get, receiver);\n }\n\n return void 0;\n };\n\n var internalSet = function set(target, key, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent !== null) {\n return internalSet(parent, key, value, receiver);\n }\n\n desc = {\n value: void 0,\n writable: true,\n enumerable: true,\n configurable: true\n };\n }\n\n if ('value' in desc) {\n if (!desc.writable) {\n return false;\n }\n\n if (!ES.TypeIsObject(receiver)) {\n return false;\n }\n\n var existingDesc = Object.getOwnPropertyDescriptor(receiver, key);\n\n if (existingDesc) {\n return Reflect.defineProperty(receiver, key, {\n value: value\n });\n } else {\n return Reflect.defineProperty(receiver, key, {\n value: value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n\n if (desc.set) {\n _call(desc.set, receiver, value);\n return true;\n }\n\n return false;\n };\n\n Object.assign(ReflectShims, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n Object.defineProperty(target, propertyKey, attributes);\n });\n },\n\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n throwUnlessTargetIsObject(target);\n return Object.getOwnPropertyDescriptor(target, propertyKey);\n },\n\n // Syntax in a functional form.\n get: function get(target, key) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 2 ? arguments[2] : target;\n\n return internalGet(target, key, receiver);\n },\n\n set: function set(target, key, value) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 3 ? arguments[3] : target;\n\n return internalSet(target, key, value, receiver);\n }\n });\n }\n\n if (Object.getPrototypeOf) {\n var objectDotGetPrototypeOf = Object.getPrototypeOf;\n ReflectShims.getPrototypeOf = function getPrototypeOf(target) {\n throwUnlessTargetIsObject(target);\n return objectDotGetPrototypeOf(target);\n };\n }\n\n if (Object.setPrototypeOf && ReflectShims.getPrototypeOf) {\n var willCreateCircularPrototype = function (object, lastProto) {\n var proto = lastProto;\n while (proto) {\n if (object === proto) {\n return true;\n }\n proto = ReflectShims.getPrototypeOf(proto);\n }\n return false;\n };\n\n Object.assign(ReflectShims, {\n // Sets the prototype of the given object.\n // Returns true on success, otherwise false.\n setPrototypeOf: function setPrototypeOf(object, proto) {\n throwUnlessTargetIsObject(object);\n if (proto !== null && !ES.TypeIsObject(proto)) {\n throw new TypeError('proto must be an object or null');\n }\n\n // If they already are the same, we're done.\n if (proto === Reflect.getPrototypeOf(object)) {\n return true;\n }\n\n // Cannot alter prototype if object not extensible.\n if (Reflect.isExtensible && !Reflect.isExtensible(object)) {\n return false;\n }\n\n // Ensure that we do not create a circular prototype chain.\n if (willCreateCircularPrototype(object, proto)) {\n return false;\n }\n\n Object.setPrototypeOf(object, proto);\n\n return true;\n }\n });\n }\n var defineOrOverrideReflectProperty = function (key, shim) {\n if (!ES.IsCallable(globals.Reflect[key])) {\n defineProperty(globals.Reflect, key, shim);\n } else {\n var acceptsPrimitives = valueOrFalseIfThrows(function () {\n globals.Reflect[key](1);\n globals.Reflect[key](NaN);\n globals.Reflect[key](true);\n return true;\n });\n if (acceptsPrimitives) {\n overrideNative(globals.Reflect, key, shim);\n }\n }\n };\n Object.keys(ReflectShims).forEach(function (key) {\n defineOrOverrideReflectProperty(key, ReflectShims[key]);\n });\n var originalReflectGetProto = globals.Reflect.getPrototypeOf;\n if (functionsHaveNames && originalReflectGetProto && originalReflectGetProto.name !== 'getPrototypeOf') {\n overrideNative(globals.Reflect, 'getPrototypeOf', function getPrototypeOf(target) {\n return _call(originalReflectGetProto, globals.Reflect, target);\n });\n }\n if (globals.Reflect.setPrototypeOf) {\n if (valueOrFalseIfThrows(function () {\n globals.Reflect.setPrototypeOf(1, {});\n return true;\n })) {\n overrideNative(globals.Reflect, 'setPrototypeOf', ReflectShims.setPrototypeOf);\n }\n }\n if (globals.Reflect.defineProperty) {\n if (!valueOrFalseIfThrows(function () {\n var basic = !globals.Reflect.defineProperty(1, 'test', { value: 1 });\n // \"extensible\" fails on Edge 0.12\n var extensible = typeof Object.preventExtensions !== 'function' || !globals.Reflect.defineProperty(Object.preventExtensions({}), 'test', {});\n return basic && extensible;\n })) {\n overrideNative(globals.Reflect, 'defineProperty', ReflectShims.defineProperty);\n }\n }\n if (globals.Reflect.construct) {\n if (!valueOrFalseIfThrows(function () {\n var F = function F() {};\n return globals.Reflect.construct(function () {}, [], F) instanceof F;\n })) {\n overrideNative(globals.Reflect, 'construct', ReflectShims.construct);\n }\n }\n\n if (String(new Date(NaN)) !== 'Invalid Date') {\n var dateToString = Date.prototype.toString;\n var shimmedDateToString = function toString() {\n var valueOf = +this;\n if (valueOf !== valueOf) {\n return 'Invalid Date';\n }\n return ES.Call(dateToString, this);\n };\n overrideNative(Date.prototype, 'toString', shimmedDateToString);\n }\n\n // Annex B HTML methods\n // http://www.ecma-international.org/ecma-262/6.0/#sec-additional-properties-of-the-string.prototype-object\n var stringHTMLshims = {\n anchor: function anchor(name) { return ES.CreateHTML(this, 'a', 'name', name); },\n big: function big() { return ES.CreateHTML(this, 'big', '', ''); },\n blink: function blink() { return ES.CreateHTML(this, 'blink', '', ''); },\n bold: function bold() { return ES.CreateHTML(this, 'b', '', ''); },\n fixed: function fixed() { return ES.CreateHTML(this, 'tt', '', ''); },\n fontcolor: function fontcolor(color) { return ES.CreateHTML(this, 'font', 'color', color); },\n fontsize: function fontsize(size) { return ES.CreateHTML(this, 'font', 'size', size); },\n italics: function italics() { return ES.CreateHTML(this, 'i', '', ''); },\n link: function link(url) { return ES.CreateHTML(this, 'a', 'href', url); },\n small: function small() { return ES.CreateHTML(this, 'small', '', ''); },\n strike: function strike() { return ES.CreateHTML(this, 'strike', '', ''); },\n sub: function sub() { return ES.CreateHTML(this, 'sub', '', ''); },\n sup: function sub() { return ES.CreateHTML(this, 'sup', '', ''); }\n };\n _forEach(Object.keys(stringHTMLshims), function (key) {\n var method = String.prototype[key];\n var shouldOverwrite = false;\n if (ES.IsCallable(method)) {\n var output = _call(method, '', ' \" ');\n var quotesCount = _concat([], output.match(/\"/g)).length;\n shouldOverwrite = output !== output.toLowerCase() || quotesCount > 2;\n } else {\n shouldOverwrite = true;\n }\n if (shouldOverwrite) {\n overrideNative(String.prototype, key, stringHTMLshims[key]);\n }\n });\n\n var JSONstringifiesSymbols = (function () {\n // Microsoft Edge v0.12 stringifies Symbols incorrectly\n if (!hasSymbols) { return false; } // Symbols are not supported\n var stringify = typeof JSON === 'object' && typeof JSON.stringify === 'function' ? JSON.stringify : null;\n if (!stringify) { return false; } // JSON.stringify is not supported\n if (typeof stringify(Symbol()) !== 'undefined') { return true; } // Symbols should become `undefined`\n if (stringify([Symbol()]) !== '[null]') { return true; } // Symbols in arrays should become `null`\n var obj = { a: Symbol() };\n obj[Symbol()] = true;\n if (stringify(obj) !== '{}') { return true; } // Symbol-valued keys *and* Symbol-valued properties should be omitted\n return false;\n }());\n var JSONstringifyAcceptsObjectSymbol = valueOrFalseIfThrows(function () {\n // Chrome 45 throws on stringifying object symbols\n if (!hasSymbols) { return true; } // Symbols are not supported\n return JSON.stringify(Object(Symbol())) === '{}' && JSON.stringify([Object(Symbol())]) === '[{}]';\n });\n if (JSONstringifiesSymbols || !JSONstringifyAcceptsObjectSymbol) {\n var origStringify = JSON.stringify;\n overrideNative(JSON, 'stringify', function stringify(value) {\n if (typeof value === 'symbol') { return; }\n var replacer;\n if (arguments.length > 1) {\n replacer = arguments[1];\n }\n var args = [value];\n if (!isArray(replacer)) {\n var replaceFn = ES.IsCallable(replacer) ? replacer : null;\n var wrappedReplacer = function (key, val) {\n var parsedValue = replaceFn ? _call(replaceFn, this, key, val) : val;\n if (typeof parsedValue !== 'symbol') {\n if (Type.symbol(parsedValue)) {\n return assignTo({})(parsedValue);\n } else {\n return parsedValue;\n }\n }\n };\n args.push(wrappedReplacer);\n } else {\n // create wrapped replacer that handles an array replacer?\n args.push(replacer);\n }\n if (arguments.length > 2) {\n args.push(arguments[2]);\n }\n return origStringify.apply(this, args);\n });\n }\n\n return globals;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es6-shim/es6-shim.js\n// module id = 20\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 206\n// module chunks = 0"],"sourceRoot":""}