text: /*!
    * https://github.com/paulmillr/es6-shim
    * @license es6-shim Copyright 2013-2014 by Paul Miller (http://paulmillr.com)
    *   and contributors,  MIT License
    * es6-shim: v0.19.2
    * see https://github.com/paulmillr/es6-shim/blob/master/LICENSE
    * Details and documentation:
    * https://github.com/paulmillr/es6-shim/
    */
  (function(e){"use strict";var t=function(e){try{e()}catch(t){return false}return true};var r=function(e,t){try{var r=function(){e.apply(this,arguments)};if(!r.__proto__){return false}Object.setPrototypeOf(r,e);r.prototype=Object.create(e.prototype,{constructor:{value:e}});return t(r)}catch(n){return false}};var n=function(){try{Object.defineProperty({},"x",{});return true}catch(e){return false}};var a=function(){var e=false;if(String.prototype.startsWith){try{"/a/".startsWith(/a/)}catch(t){e=true}}return e};var i=new Function("return this;");var o=function(){var o=i();var u=o.isFinite;var s=!!Object.defineProperty&&n();var f=a();var c=Array.prototype.slice;var l=String.prototype.indexOf;var h=Object.prototype.toString;var v=Object.prototype.hasOwnProperty;var p;var y=function(e,t,r,n){if(!n&&t in e){return}if(s){Object.defineProperty(e,t,{configurable:true,enumerable:false,writable:true,value:r})}else{e[t]=r}};var b=function(e,t){Object.keys(t).forEach(function(r){var n=t[r];y(e,r,n,false)})};var g=Object.create||function(e,t){function r(){}r.prototype=e;var n=new r;if(typeof t!=="undefined"){b(n,t)}return n};var m=typeof Symbol==="function"&&Symbol.iterator||"_es6shim_iterator_";if(o.Set&&typeof(new o.Set)["@@iterator"]==="function"){m="@@iterator"}var d=function(e,t){if(!t){t=function n(){return this}}var r={};r[m]=t;b(e,r);if(!e[m]&&typeof m==="symbol"){e[m]=t}};var w=function B(e){var t=h.call(e);var r=t==="[object Arguments]";if(!r){r=t!=="[object Array]"&&e!==null&&typeof e==="object"&&typeof e.length==="number"&&e.length>=0&&h.call(e.callee)==="[object Function]"}return r};var j=function(e){if(!I.TypeIsObject(e)){throw new TypeError("bad object")}if(!e._es6construct){if(e.constructor&&I.IsCallable(e.constructor["@@create"])){e=e.constructor["@@create"](e)}b(e,{_es6construct:true})}return e};var I={CheckObjectCoercible:function(e,t){if(e==null){throw new TypeError(t||"Cannot call method on "+e)}return e},TypeIsObject:function(e){return e!=null&&Object(e)===e},ToObject:function(e,t){return Object(I.CheckObjectCoercible(e,t))},IsCallable:function(e){return typeof e==="function"&&h.call(e)==="[object Function]"},ToInt32:function(e){return e>>0},ToUint32:function(e){return e>>>0},ToInteger:function(e){var t=+e;if(Number.isNaN(t)){return 0}if(t===0||!Number.isFinite(t)){return t}return(t>0?1:-1)*Math.floor(Math.abs(t))},ToLength:function(e){var t=I.ToInteger(e);if(t<=0){return 0}if(t>Number.MAX_SAFE_INTEGER){return Number.MAX_SAFE_INTEGER}return t},SameValue:function(e,t){if(e===t){if(e===0){return 1/e===1/t}return true}return Number.isNaN(e)&&Number.isNaN(t)},SameValueZero:function(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)},IsIterable:function(t){return I.TypeIsObject(t)&&(t[m]!==e||w(t))},GetIterator:function(e){if(w(e)){return new p(e,"value")}var t=e[m]();if(!I.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!I.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},Construct:function(e,t){var r;if(I.IsCallable(e["@@create"])){r=e["@@create"]()}else{r=g(e.prototype||null)}b(r,{_es6construct:true});var n=e.apply(r,t);return I.TypeIsObject(n)?n:r}};var O=function(){function e(e){var t=Math.floor(e),r=e-t;if(r<.5){return t}if(r>.5){return t+1}return t%2?t+1:t}function t(t,r,n){var a=(1<<r-1)-1,i,o,u,s,f,c,l,h;if(t!==t){o=(1<<r)-1;u=Math.pow(2,n-1);i=0}else if(t===Infinity||t===-Infinity){o=(1<<r)-1;u=0;i=t<0?1:0}else if(t===0){o=0;u=0;i=1/t===-Infinity?1:0}else{i=t<0;t=Math.abs(t);if(t>=Math.pow(2,1-a)){o=Math.min(Math.floor(Math.log(t)/Math.LN2),1023);u=e(t/Math.pow(2,o)*Math.pow(2,n));if(u/Math.pow(2,n)>=2){o=o+1;u=1}if(o>a){o=(1<<r)-1;u=0}else{o=o+a;u=u-Math.pow(2,n)}}else{o=0;u=e(t/Math.pow(2,1-a-n))}}c=[];for(f=n;f;f-=1){c.push(u%2?1:0);u=Math.floor(u/2)}for(f=r;f;f-=1){c.push(o%2?1:0);o=Math.floor(o/2)}c.push(i?1:0);c.reverse();l=c.join("");h=[];while(l.length){h.push(parseInt(l.slice(0,8),2));l=l.slice(8)}return h}function r(e,t,r){var n=[],a,i,o,u,s,f,c,l;for(a=e.length;a;a-=1){o=e[a-1];for(i=8;i;i-=1){n.push(o%2?1:0);o=o>>1}}n.reverse();u=n.join("");s=(1<<t-1)-1;f=parseInt(u.slice(0,1),2)?-1:1;c=parseInt(u.slice(1,1+t),2);l=parseInt(u.slice(1+t),2);if(c===(1<<t)-1){return l!==0?NaN:f*Infinity}else if(c>0){return f*Math.pow(2,c-s)*(1+l/Math.pow(2,r))}else if(l!==0){return f*Math.pow(2,-(s-1))*(l/Math.pow(2,r))}else{return f<0?-0:0}}function n(e){return r(e,11,52)}function a(e){return t(e,11,52)}function i(e){return r(e,8,23)}function o(e){return t(e,8,23)}var u={toFloat32:function(e){return i(o(e))}};if(typeof Float32Array!=="undefined"){var s=new Float32Array(1);u.toFloat32=function(e){s[0]=e;return s[0]}}return u}();b(String,{fromCodePoint:function(e){var t=c.call(arguments,0,arguments.length);var r=[];var n;for(var a=0,i=t.length;a<i;a++){n=Number(t[a]);if(!I.SameValue(n,I.ToInteger(n))||n<0||n>1114111){throw new RangeError("Invalid code point "+n)}if(n<65536){r.push(String.fromCharCode(n))}else{n-=65536;r.push(String.fromCharCode((n>>10)+55296));r.push(String.fromCharCode(n%1024+56320))}}return r.join("")},raw:function(t){var r=c.call(arguments,1,arguments.length);var n=I.ToObject(t,"bad callSite");var a=n.raw;var i=I.ToObject(a,"bad raw value");var o=Object.keys(i).length;var u=I.ToLength(o);if(u===0){return""}var s=[];var f=0;var l,h,v,p;while(f<u){l=String(f);h=i[l];v=String(h);s.push(v);if(f+1>=u){break}h=r[l];if(h===e){break}p=String(h);s.push(p);f++}return s.join("")}});if(String.fromCodePoint.length!==1){var _=String.fromCodePoint;y(String,"fromCodePoint",function(e){return _.apply(this,arguments)},true)}var N={repeat:function(){var e=function(t,r){if(r<1){return""}if(r%2){return e(t,r-1)+t}var n=e(t,r/2);return n+n};return function(t){var r=String(I.CheckObjectCoercible(this));t=I.ToInteger(t);if(t<0||t===Infinity){throw new RangeError("Invalid String#repeat value")}return e(r,t)}}(),startsWith:function(t){var r=String(I.CheckObjectCoercible(this));if(h.call(t)==="[object RegExp]"){throw new TypeError('Cannot call method "startsWith" with a regex')}t=String(t);var n=arguments.length>1?arguments[1]:e;var a=Math.max(I.ToInteger(n),0);return r.slice(a,a+t.length)===t},endsWith:function(t){var r=String(I.CheckObjectCoercible(this));if(h.call(t)==="[object RegExp]"){throw new TypeError('Cannot call method "endsWith" with a regex')}t=String(t);var n=r.length;var a=arguments.length>1?arguments[1]:e;var i=a===e?n:I.ToInteger(a);var o=Math.min(Math.max(i,0),n);return r.slice(o-t.length,o)===t},contains:function(t){var r=arguments.length>1?arguments[1]:e;return l.call(this,t,r)!==-1},codePointAt:function(e){var t=String(I.CheckObjectCoercible(this));var r=I.ToInteger(e);var n=t.length;if(r<0||r>=n){return}var a=t.charCodeAt(r);var i=r+1===n;if(a<55296||a>56319||i){return a}var o=t.charCodeAt(r+1);if(o<56320||o>57343){return a}return(a-55296)*1024+(o-56320)+65536}};b(String.prototype,N);var T="\x85".trim().length!==1;if(T){var M=String.prototype.trim;delete String.prototype.trim;var S=["	\n\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003","\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028","\u2029\ufeff"].join("");var x=new RegExp("(^["+S+"]+)|(["+S+"]+$)","g");b(String.prototype,{trim:function(){if(this===e||this===null){throw new TypeError("can't convert "+this+" to object")}return String(this).replace(x,"")}})}var E=function(e){this._s=String(I.CheckObjectCoercible(e));this._i=0};E.prototype.next=function(){var t=this._s,r=this._i;if(t===e||r>=t.length){this._s=e;return{value:e,done:true}}var n=t.charCodeAt(r),a,i;if(n<55296||n>56319||r+1==t.length){i=1}else{a=t.charCodeAt(r+1);i=a<56320||a>57343?1:2}this._i=r+i;return{value:t.substr(r,i),done:false}};d(E.prototype);d(String.prototype,function(){return new E(this)});if(!f){String.prototype.startsWith=N.startsWith;String.prototype.endsWith=N.endsWith}var C={from:function(t){var r=arguments.length>1?arguments[1]:e;var n=I.ToObject(t,"bad iterable");if(r!==e&&!I.IsCallable(r)){throw new TypeError("Array.from: when provided, the second argument must be a function")}var a=arguments.length>2;var i=a?arguments[2]:e;var o=I.IsIterable(n);var u;var s,f,c;if(o){f=0;s=I.IsCallable(this)?Object(new this):[];var l=o?I.GetIterator(n):null;var h;do{h=I.IteratorNext(l);if(!h.done){c=h.value;if(r){s[f]=a?r.call(i,c,f):r(c,f)}else{s[f]=c}f+=1}}while(!h.done);u=f}else{u=I.ToLength(n.length);s=I.IsCallable(this)?Object(new this(u)):new Array(u);for(f=0;f<u;++f){c=n[f];if(r){s[f]=a?r.call(i,c,f):r(c,f)}else{s[f]=c}}}s.length=u;return s},of:function(){return Array.from(arguments)}};b(Array,C);var k=function(){try{return Array.from({length:-1}).length===0}catch(e){return false}};if(!k()){y(Array,"from",C.from,true)}p=function(e,t){this.i=0;this.array=e;this.kind=t};b(p.prototype,{next:function(){var t=this.i,r=this.array;if(!(this instanceof p)){throw new TypeError("Not an ArrayIterator")}if(r!==e){var n=I.ToLength(r.length);for(;t<n;t++){var a=this.kind;var i;if(a==="key"){i=t}else if(a==="value"){i=r[t]}else if(a==="entry"){i=[t,r[t]]}this.i=t+1;return{value:i,done:false}}}this.array=e;return{value:e,done:true}}});d(p.prototype);var P={copyWithin:function(t,r){var n=arguments[2];var a=I.ToObject(this);var i=I.ToLength(a.length);t=I.ToInteger(t);r=I.ToInteger(r);var o=t<0?Math.max(i+t,0):Math.min(t,i);var u=r<0?Math.max(i+r,0):Math.min(r,i);n=n===e?i:I.ToInteger(n);var s=n<0?Math.max(i+n,0):Math.min(n,i);var f=Math.min(s-u,i-o);var c=1;if(u<o&&o<u+f){c=-1;u+=f-1;o+=f-1}while(f>0){if(v.call(a,u)){a[o]=a[u]}else{delete a[u]}u+=c;o+=c;f-=1}return a},fill:function(t){var r=arguments.length>1?arguments[1]:e;var n=arguments.length>2?arguments[2]:e;var a=I.ToObject(this);var i=I.ToLength(a.length);r=I.ToInteger(r===e?0:r);n=I.ToInteger(n===e?i:n);var o=r<0?Math.max(i+r,0):Math.min(r,i);var u=n<0?i+n:n;for(var s=o;s<i&&s<u;++s){a[s]=t}return a},find:function H(t){var r=I.ToObject(this);var n=I.ToLength(r.length);if(!I.IsCallable(t)){throw new TypeError("Array#find: predicate must be a function")}var a=arguments[1];for(var i=0,o;i<n;i++){o=r[i];if(t.call(a,o,i,r)){return o}}return e},findIndex:function J(e){var t=I.ToObject(this);var r=I.ToLength(t.length);if(!I.IsCallable(e)){throw new TypeError("Array#findIndex: predicate must be a function")}var n=arguments[1];for(var a=0;a<r;a++){if(e.call(n,t[a],a,t)){return a}}return-1},keys:function(){return new p(this,"key")},values:function(){return new p(this,"value")},entries:function(){return new p(this,"entry")}};if(Array.prototype.keys&&!I.IsCallable([1].keys().next)){delete Array.prototype.keys}if(Array.prototype.entries&&!I.IsCallable([1].entries().next)){delete Array.prototype.entries}b(Array.prototype,P);d(Array.prototype,function(){return this.values()});if(Object.getPrototypeOf){d(Object.getPrototypeOf([].values()))}var A=Math.pow(2,53)-1;b(Number,{MAX_SAFE_INTEGER:A,MIN_SAFE_INTEGER:-A,EPSILON:2.220446049250313e-16,parseInt:o.parseInt,parseFloat:o.parseFloat,isFinite:function(e){return typeof e==="number"&&u(e)},isInteger:function(e){return Number.isFinite(e)&&I.ToInteger(e)===e},isSafeInteger:function(e){return Number.isInteger(e)&&Math.abs(e)<=Number.MAX_SAFE_INTEGER},isNaN:function(e){return e!==e}});if(![,1].find(function(e,t){return t===0})){y(Array.prototype,"find",P.find,true)}if([,1].findIndex(function(e,t){return t===0})!==0){y(Array.prototype,"findIndex",P.findIndex,true)}if(s){b(Object,{getPropertyDescriptor:function(t,r){var n=Object.getOwnPropertyDescriptor(t,r);var a=Object.getPrototypeOf(t);while(n===e&&a!==null){n=Object.getOwnPropertyDescriptor(a,r);a=Object.getPrototypeOf(a)}return n},getPropertyNames:function(e){var t=Object.getOwnPropertyNames(e);var r=Object.getPrototypeOf(e);var n=function(e){if(t.indexOf(e)===-1){t.push(e)}};while(r!==null){Object.getOwnPropertyNames(r).forEach(n);r=Object.getPrototypeOf(r)}return t}});b(Object,{assign:function(e,t){if(!I.TypeIsObject(e)){throw new TypeError("target must be an object")}return Array.prototype.reduce.call(arguments,function(e,t){return Object.keys(Object(t)).reduce(function(e,r){e[r]=t[r];return e},e)})},is:function(e,t){return I.SameValue(e,t)},setPrototypeOf:function(e,t){var r;var n=function(e,t){if(!I.TypeIsObject(e)){throw new TypeError("cannot set prototype on a non-object")}if(!(t===null||I.TypeIsObject(t))){throw new TypeError("can only set prototype to an object or null"+t)}};var a=function(e,t){n(e,t);r.call(e,t);return e};try{r=e.getOwnPropertyDescriptor(e.prototype,t).set;r.call({},null)}catch(i){if(e.prototype!=={}[t]){return}r=function(e){this[t]=e};a.polyfill=a(a({},null),e.prototype)instanceof e}return a}(Object,"__proto__")})}if(Object.setPrototypeOf&&Object.getPrototypeOf&&Object.getPrototypeOf(Object.setPrototypeOf({},null))!==null&&Object.getPrototypeOf(Object.create(null))===null){(function(){var e=Object.create(null);var t=Object.getPrototypeOf,r=Object.setPrototypeOf;Object.getPrototypeOf=function(r){var n=t(r);return n===e?null:n};Object.setPrototypeOf=function(t,n){if(n===null){n=e}return r(t,n)};Object.setPrototypeOf.polyfill=false})()}try{Object.keys("foo")}catch(R){var F=Object.keys;Object.keys=function(e){return F(I.ToObject(e))}}var z={acosh:function(e){e=Number(e);if(Number.isNaN(e)||e<1){return NaN}if(e===1){return 0}if(e===Infinity){return e}return Math.log(e+Math.sqrt(e*e-1))},asinh:function(e){e=Number(e);if(e===0||!u(e)){return e}return e<0?-Math.asinh(-e):Math.log(e+Math.sqrt(e*e+1))},atanh:function(e){e=Number(e);if(Number.isNaN(e)||e<-1||e>1){return NaN}if(e===-1){return-Infinity}if(e===1){return Infinity}if(e===0){return e}return.5*Math.log((1+e)/(1-e))},cbrt:function(e){e=Number(e);if(e===0){return e}var t=e<0,r;if(t){e=-e}r=Math.pow(e,1/3);return t?-r:r},clz32:function(e){e=Number(e);var t=I.ToUint32(e);if(t===0){return 32}return 32-t.toString(2).length},cosh:function(e){e=Number(e);if(e===0){return 1}if(Number.isNaN(e)){return NaN}if(!u(e)){return Infinity}if(e<0){e=-e}if(e>21){return Math.exp(e)/2}return(Math.exp(e)+Math.exp(-e))/2},expm1:function(e){e=Number(e);if(e===-Infinity){return-1}if(!u(e)||e===0){return e}return Math.exp(e)-1},hypot:function(e,t){var r=false;var n=true;var a=false;var i=[];Array.prototype.every.call(arguments,function(e){var t=Number(e);if(Number.isNaN(t)){r=true}else if(t===Infinity||t===-Infinity){a=true}else if(t!==0){n=false}if(a){return false}else if(!r){i.push(Math.abs(t))}return true});if(a){return Infinity}if(r){return NaN}if(n){return 0}i.sort(function(e,t){return t-e});var o=i[0];var u=i.map(function(e){return e/o});var s=u.reduce(function(e,t){return e+=t*t},0);return o*Math.sqrt(s)},log2:function(e){return Math.log(e)*Math.LOG2E},log10:function(e){return Math.log(e)*Math.LOG10E},log1p:function(e){e=Number(e);if(e<-1||Number.isNaN(e)){return NaN}if(e===0||e===Infinity){return e}if(e===-1){return-Infinity}var t=0;var r=50;if(e<0||e>1){return Math.log(1+e)}for(var n=1;n<r;n++){if(n%2===0){t-=Math.pow(e,n)/n}else{t+=Math.pow(e,n)/n}}return t},sign:function(e){var t=+e;if(t===0){return t}if(Number.isNaN(t)){return t}return t<0?-1:1},sinh:function(e){e=Number(e);if(!u(e)||e===0){return e}return(Math.exp(e)-Math.exp(-e))/2},tanh:function(e){e=Number(e);if(Number.isNaN(e)||e===0){return e}if(e===Infinity){return 1}if(e===-Infinity){return-1}return(Math.exp(e)-Math.exp(-e))/(Math.exp(e)+Math.exp(-e))},trunc:function(e){var t=Number(e);return t<0?-Math.floor(-t):Math.floor(t)},imul:function(e,t){e=I.ToUint32(e);t=I.ToUint32(t);var r=e>>>16&65535;var n=e&65535;var a=t>>>16&65535;var i=t&65535;return n*i+(r*i+n*a<<16>>>0)|0},fround:function(e){if(e===0||e===Infinity||e===-Infinity||Number.isNaN(e)){return e}var t=Number(e);return O.toFloat32(t)}};b(Math,z);if(Math.imul(4294967295,5)!==-5){Math.imul=z.imul}var D=function(){var t,r;I.IsPromise=function(t){if(!I.TypeIsObject(t)){return false}if(!t._promiseConstructor){return false}if(t._status===e){return false}return true};var n=function(e){if(!I.IsCallable(e)){throw new TypeError("bad promise constructor")}var t=this;var r=function(e,r){t.resolve=e;t.reject=r};t.promise=I.Construct(e,[r]);if(!t.promise._es6construct){throw new TypeError("bad promise constructor")}if(!(I.IsCallable(t.resolve)&&I.IsCallable(t.reject))){throw new TypeError("bad promise constructor")}};var a=o.setTimeout;var i;if(typeof window!=="undefined"&&I.IsCallable(window.postMessage)){i=function(){var e=[];var t="zero-timeout-message";var r=function(r){e.push(r);window.postMessage(t,"*")};var n=function(r){if(r.source==window&&r.data==t){r.stopPropagation();if(e.length===0){return}var n=e.shift();n()}};window.addEventListener("message",n,true);return r}}var u=function(){var e=o.Promise;return e&&e.resolve&&function(t){return e.resolve().then(t)}};var s=I.IsCallable(o.setImmediate)?o.setImmediate.bind(o):typeof process==="object"&&process.nextTick?process.nextTick:u()||(I.IsCallable(i)?i():function(e){a(e,0)});var f=function(e,t){e.forEach(function(e){s(function(){var r=e.handler;var n=e.capability;var a=n.resolve;var i=n.reject;try{var o=r(t);if(o===n.promise){throw new TypeError("self resolution")}var u=c(o,n);if(!u){a(o)}}catch(s){i(s)}})})};var c=function(e,t){if(!I.TypeIsObject(e)){return false}var r=t.resolve;var n=t.reject;try{var a=e.then;if(!I.IsCallable(a)){return false}a.call(e,r,n)}catch(i){n(i)}return true};var l=function(e,t,r){return function(a){if(a===e){return r(new TypeError("self resolution"))}var i=e._promiseConstructor;var o=new n(i);var u=c(a,o);if(u){return o.promise.then(t,r)}else{return t(a)}}};t=function(t){var r=this;r=j(r);if(!r._promiseConstructor){throw new TypeError("bad promise")}if(r._status!==e){throw new TypeError("promise already initialized")}if(!I.IsCallable(t)){throw new TypeError("not a valid resolver")}r._status="unresolved";r._resolveReactions=[];r._rejectReactions=[];var n=function(t){if(r._status!=="unresolved"){return}var n=r._resolveReactions;r._result=t;r._resolveReactions=e;r._rejectReactions=e;r._status="has-resolution";f(n,t)};var a=function(t){if(r._status!=="unresolved"){return}var n=r._rejectReactions;r._result=t;r._resolveReactions=e;r._rejectReactions=e;r._status="has-rejection";f(n,t)};try{t(n,a)}catch(i){a(i)}return r};r=t.prototype;b(t,{"@@create":function(t){var n=this;var a=n.prototype||r;t=t||g(a);b(t,{_status:e,_result:e,_resolveReactions:e,_rejectReactions:e,_promiseConstructor:e});t._promiseConstructor=n;return t}});var h=function(e,t,r,n){var a=false;return function(i){if(a){return}a=true;t[e]=i;if(--n.count===0){var o=r.resolve;o(t)}}};t.all=function(e){var t=this;var r=new n(t);var a=r.resolve;var i=r.reject;try{if(!I.IsIterable(e)){throw new TypeError("bad iterable")}var o=I.GetIterator(e);var u=[],s={count:1};for(var f=0;;f++){var c=I.IteratorNext(o);if(c.done){break}var l=t.resolve(c.value);var v=h(f,u,r,s);s.count++;l.then(v,r.reject)}if(--s.count===0){a(u)}}catch(p){i(p)}return r.promise};t.race=function(e){var t=this;var r=new n(t);var a=r.resolve;var i=r.reject;try{if(!I.IsIterable(e)){throw new TypeError("bad iterable")}var o=I.GetIterator(e);while(true){var u=I.IteratorNext(o);if(u.done){break}var s=t.resolve(u.value);s.then(a,i)}}catch(f){i(f)}return r.promise};t.reject=function(e){var t=this;var r=new n(t);var a=r.reject;a(e);return r.promise};t.resolve=function(e){var t=this;if(I.IsPromise(e)){var r=e._promiseConstructor;if(r===t){return e}}var a=new n(t);var i=a.resolve;i(e);return a.promise};t.prototype["catch"]=function(t){return this.then(e,t)};t.prototype.then=function(e,t){var r=this;if(!I.IsPromise(r)){throw new TypeError("not a promise")}var a=this.constructor;var i=new n(a);if(!I.IsCallable(t)){t=function(e){throw e}}if(!I.IsCallable(e)){e=function(e){return e}}var o=l(r,e,t);var u={capability:i,handler:o};var s={capability:i,handler:t};switch(r._status){case"unresolved":r._resolveReactions.push(u);r._rejectReactions.push(s);break;case"has-resolution":f([u],r._result);break;case"has-rejection":f([s],r._result);break;default:throw new TypeError("unexpected")}return i.promise};return t}();b(o,{Promise:D});var G=r(o.Promise,function(e){return e.resolve(42)instanceof e});var L=function(){try{o.Promise.reject(42).then(null,5).then(null,function(){});return true}catch(e){return false}}();var W=function(){try{Promise.call(3,function(){})}catch(e){return true}return false}();if(!G||!L||!W){o.Promise=D}var V=function(e){var t=Object.keys(e.reduce(function(e,t){e[t]=true;return e},{}));return e.join(":")===t.join(":")};var Z=V(["z","a","bb"]);var U=V(["z",1,"a","3",2]);if(s){var X=function K(e){if(!Z){return null}var t=typeof e;if(t==="string"){return"$"+e}else if(t==="number"){if(!U){return"n"+e}return e}return null};var q=function Q(){return Object.create?Object.create(null):{}};var $={Map:function(){var t={};function r(e,t){this.key=e;this.value=t;this.next=null;this.prev=null}r.prototype.isRemoved=function(){return this.key===t};function n(e,t){this.head=e._head;this.i=this.head;this.kind=t}n.prototype={next:function(){var t=this.i,r=this.kind,n=this.head,a;if(this.i===e){return{value:e,done:true}}while(t.isRemoved()&&t!==n){t=t.prev}while(t.next!==n){t=t.next;if(!t.isRemoved()){if(r==="key"){a=t.key}else if(r==="value"){a=t.value}else{a=[t.key,t.value]}this.i=t;return{value:a,done:false}}}this.i=e;return{value:e,done:true}}};d(n.prototype);function a(t){var n=this;n=j(n);if(!n._es6map){throw new TypeError("bad map")}var a=new r(null,null);a.next=a.prev=a;b(n,{_head:a,_storage:q(),_size:0});if(t!==e&&t!==null){var i=I.GetIterator(t);var o=n.set;if(!I.IsCallable(o)){throw new TypeError("bad map")}while(true){var u=I.IteratorNext(i);if(u.done){break}var s=u.value;if(!I.TypeIsObject(s)){throw new TypeError("expected iterable of pairs")}o.call(n,s[0],s[1])}}return n}var i=a.prototype;b(a,{"@@create":function(e){var t=this;var r=t.prototype||i;e=e||g(r);b(e,{_es6map:true});return e}});Object.defineProperty(a.prototype,"size",{configurable:true,enumerable:false,get:function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size}});b(a.prototype,{get:function(t){var r=X(t);if(r!==null){var n=this._storage[r];return n?n.value:e}var a=this._head,i=a;while((i=i.next)!==a){if(I.SameValueZero(i.key,t)){return i.value}}return e},has:function(e){var t=X(e);if(t!==null){return typeof this._storage[t]!=="undefined"}var r=this._head,n=r;while((n=n.next)!==r){if(I.SameValueZero(n.key,e)){return true}}return false},set:function(e,t){var n=this._head,a=n,i;var o=X(e);if(o!==null){if(typeof this._storage[o]!=="undefined"){this._storage[o].value=t;return}else{i=this._storage[o]=new r(e,t);a=n.prev}}while((a=a.next)!==n){if(I.SameValueZero(a.key,e)){a.value=t;return}}i=i||new r(e,t);if(I.SameValue(-0,e)){i.key=+0}i.next=this._head;i.prev=this._head.prev;i.prev.next=i;i.next.prev=i;this._size+=1;return this},"delete":function(e){var r=this._head,n=r;var a=X(e);if(a!==null){if(typeof this._storage[a]==="undefined"){return false}n=this._storage[a].prev;delete this._storage[a]}while((n=n.next)!==r){if(I.SameValueZero(n.key,e)){n.key=n.value=t;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function(){this._size=0;this._storage=q();var e=this._head,r=e,n=r.next;while((r=n)!==e){r.key=r.value=t;n=r.next;r.next=r.prev=e}e.next=e.prev=e},keys:function(){return new n(this,"key")},values:function(){return new n(this,"value")},entries:function(){return new n(this,"key+value")},forEach:function(e){var t=arguments.length>1?arguments[1]:null;var r=this.entries();for(var n=r.next();!n.done;n=r.next()){e.call(t,n.value[1],n.value[0],this)}}});d(a.prototype,function(){return this.entries()});return a}(),Set:function(){var t=function a(t){var r=this;r=j(r);if(!r._es6set){throw new TypeError("bad set")}b(r,{"[[SetData]]":null,_storage:q()});if(t!==e&&t!==null){var n=I.GetIterator(t);var a=r.add;if(!I.IsCallable(a)){throw new TypeError("bad set")}while(true){var i=I.IteratorNext(n);if(i.done){break}var o=i.value;a.call(r,o)}}return r};var r=t.prototype;b(t,{"@@create":function(e){var t=this;var n=t.prototype||r;e=e||g(n);b(e,{_es6set:true});return e}});var n=function i(e){if(!e["[[SetData]]"]){var t=e["[[SetData]]"]=new $.Map;Object.keys(e._storage).forEach(function(e){if(e.charCodeAt(0)===36){e=e.slice(1)}else if(e.charAt(0)==="n"){e=+e.slice(1)}else{e=+e}t.set(e,e)});e._storage=null}};Object.defineProperty(t.prototype,"size",{configurable:true,enumerable:false,get:function(){if(typeof this._storage==="undefined"){throw new TypeError("size method called on incompatible Set")}n(this);return this["[[SetData]]"].size}});b(t.prototype,{has:function(e){var t;if(this._storage&&(t=X(e))!==null){return!!this._storage[t]}n(this);return this["[[SetData]]"].has(e)},add:function(e){var t;if(this._storage&&(t=X(e))!==null){this._storage[t]=true;return}n(this);this["[[SetData]]"].set(e,e);return this},"delete":function(e){var t;if(this._storage&&(t=X(e))!==null){return delete this._storage[t]}n(this);return this["[[SetData]]"]["delete"](e)},clear:function(){if(this._storage){this._storage=q();return}return this["[[SetData]]"].clear()},keys:function(){n(this);return this["[[SetData]]"].keys()},values:function(){n(this);return this["[[SetData]]"].values()},entries:function(){n(this);return this["[[SetData]]"].entries()},forEach:function(e){var t=arguments.length>1?arguments[1]:null;var r=this;n(this);this["[[SetData]]"].forEach(function(n,a){e.call(t,a,a,r)})}});d(t.prototype,function(){return this.values()});return t}()};b(o,$);if(o.Map||o.Set){if(typeof o.Map.prototype.clear!=="function"||(new o.Set).size!==0||(new o.Map).size!==0||typeof o.Map.prototype.keys!=="function"||typeof o.Set.prototype.keys!=="function"||typeof o.Map.prototype.forEach!=="function"||typeof o.Set.prototype.forEach!=="function"||t(o.Map)||t(o.Set)||!r(o.Map,function(e){var t=new e([]);t.set(42,42);return t instanceof e})){o.Map=$.Map;o.Set=$.Set}}d(Object.getPrototypeOf((new o.Map).keys()));d(Object.getPrototypeOf((new o.Set).keys()))}};if(typeof define==="function"&&define.amd){define(o)}else{o()}})();
  //# sourceMappingURL=es6-shim.map