!function(t) {
"use strict";
var r, e = Object.prototype, n = e.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", c = o.toStringTag || "@@toStringTag", u = "object" == typeof module, f = t.regeneratorRuntime;
if (f) u && (module.exports = f); else {
(f = t.regeneratorRuntime = u ? module.exports : {}).wrap = w;
var h = "suspendedStart", s = "suspendedYield", l = "executing", p = "completed", y = {}, v = {};
v[i] = function() {
return this;
};
var d = Object.getPrototypeOf, g = d && d(d(F([])));
g && g !== e && n.call(g, i) && (v = g);
var m = b.prototype = x.prototype = Object.create(v);
E.prototype = m.constructor = b;
b.constructor = E;
b[c] = E.displayName = "GeneratorFunction";
f.isGeneratorFunction = function(t) {
var r = "function" == typeof t && t.constructor;
return !!r && (r === E || "GeneratorFunction" === (r.displayName || r.name));
};
f.mark = function(t) {
if (Object.setPrototypeOf) Object.setPrototypeOf(t, b); else {
t.__proto__ = b;
c in t || (t[c] = "GeneratorFunction");
}
t.prototype = Object.create(m);
return t;
};
f.awrap = function(t) {
return {
__await: t
};
};
_(j.prototype);
j.prototype[a] = function() {
return this;
};
f.AsyncIterator = j;
f.async = function(t, r, e, n) {
var o = new j(w(t, r, e, n));
return f.isGeneratorFunction(r) ? o : o.next().then(function(t) {
return t.done ? t.value : o.next();
});
};
_(m);
m[c] = "Generator";
m[i] = function() {
return this;
};
m.toString = function() {
return "[object Generator]";
};
f.keys = function(t) {
var r = [];
for (var e in t) r.push(e);
r.reverse();
return function e() {
for (;r.length; ) {
var n = r.pop();
if (n in t) {
e.value = n;
e.done = !1;
return e;
}
}
e.done = !0;
return e;
};
};
f.values = F;
P.prototype = {
constructor: P,
reset: function(t) {
this.prev = 0;
this.next = 0;
this.sent = this._sent = r;
this.done = !1;
this.delegate = null;
this.method = "next";
this.arg = r;
this.tryEntries.forEach(N);
if (!t) for (var e in this) "t" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = r);
},
stop: function() {
this.done = !0;
var t = this.tryEntries[0].completion;
if ("throw" === t.type) throw t.arg;
return this.rval;
},
dispatchException: function(t) {
if (this.done) throw t;
var e = this;
function o(n, o) {
c.type = "throw";
c.arg = t;
e.next = n;
if (o) {
e.method = "next";
e.arg = r;
}
return !!o;
}
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var a = this.tryEntries[i], c = a.completion;
if ("root" === a.tryLoc) return o("end");
if (a.tryLoc <= this.prev) {
var u = n.call(a, "catchLoc"), f = n.call(a, "finallyLoc");
if (u && f) {
if (this.prev < a.catchLoc) return o(a.catchLoc, !0);
if (this.prev < a.finallyLoc) return o(a.finallyLoc);
} else if (u) {
if (this.prev < a.catchLoc) return o(a.catchLoc, !0);
} else {
if (!f) throw new Error("try statement without catch or finally");
if (this.prev < a.finallyLoc) return o(a.finallyLoc);
}
}
}
},
abrupt: function(t, r) {
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
var o = this.tryEntries[e];
if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
var i = o;
break;
}
}
i && ("break" === t || "continue" === t) && i.tryLoc <= r && r <= i.finallyLoc && (i = null);
var a = i ? i.completion : {};
a.type = t;
a.arg = r;
if (i) {
this.method = "next";
this.next = i.finallyLoc;
return y;
}
return this.complete(a);
},
complete: function(t, r) {
if ("throw" === t.type) throw t.arg;
if ("break" === t.type || "continue" === t.type) this.next = t.arg; else if ("return" === t.type) {
this.rval = this.arg = t.arg;
this.method = "return";
this.next = "end";
} else "normal" === t.type && r && (this.next = r);
return y;
},
finish: function(t) {
for (var r = this.tryEntries.length - 1; r >= 0; --r) {
var e = this.tryEntries[r];
if (e.finallyLoc === t) {
this.complete(e.completion, e.afterLoc);
N(e);
return y;
}
}
},
catch: function(t) {
for (var r = this.tryEntries.length - 1; r >= 0; --r) {
var e = this.tryEntries[r];
if (e.tryLoc === t) {
var n = e.completion;
if ("throw" === n.type) {
var o = n.arg;
N(e);
}
return o;
}
}
throw new Error("illegal catch attempt");
},
delegateYield: function(t, e, n) {
this.delegate = {
iterator: F(t),
resultName: e,
nextLoc: n
};
"next" === this.method && (this.arg = r);
return y;
}
};
}
function w(t, r, e, n) {
var o = r && r.prototype instanceof x ? r : x, i = Object.create(o.prototype), a = new P(n || []);
i._invoke = O(t, e, a);
return i;
}
function L(t, r, e) {
try {
return {
type: "normal",
arg: t.call(r, e)
};
} catch (t) {
return {
type: "throw",
arg: t
};
}
}
function x() {}
function E() {}
function b() {}
function _(t) {
[ "next", "throw", "return" ].forEach(function(r) {
t[r] = function(t) {
return this._invoke(r, t);
};
});
}
function j(t) {
function r(e, o, i, a) {
var c = L(t[e], t, o);
if ("throw" !== c.type) {
var u = c.arg, f = u.value;
return f && "object" == typeof f && n.call(f, "__await") ? Promise.resolve(f.__await).then(function(t) {
r("next", t, i, a);
}, function(t) {
r("throw", t, i, a);
}) : Promise.resolve(f).then(function(t) {
u.value = t;
i(u);
}, a);
}
a(c.arg);
}
var e;
this._invoke = function(t, n) {
function o() {
return new Promise(function(e, o) {
r(t, n, e, o);
});
}
return e = e ? e.then(o, o) : o();
};
}
function O(t, r, e) {
var n = h;
return function(o, i) {
if (n === l) throw new Error("Generator is already running");
if (n === p) {
if ("throw" === o) throw i;
return S();
}
e.method = o;
e.arg = i;
for (;;) {
var a = e.delegate;
if (a) {
var c = k(a, e);
if (c) {
if (c === y) continue;
return c;
}
}
if ("next" === e.method) e.sent = e._sent = e.arg; else if ("throw" === e.method) {
if (n === h) {
n = p;
throw e.arg;
}
e.dispatchException(e.arg);
} else "return" === e.method && e.abrupt("return", e.arg);
n = l;
var u = L(t, r, e);
if ("normal" === u.type) {
n = e.done ? p : s;
if (u.arg === y) continue;
return {
value: u.arg,
done: e.done
};
}
if ("throw" === u.type) {
n = p;
e.method = "throw";
e.arg = u.arg;
}
}
};
}
function k(t, e) {
var n = t.iterator[e.method];
if (n === r) {
e.delegate = null;
if ("throw" === e.method) {
if (t.iterator.return) {
e.method = "return";
e.arg = r;
k(t, e);
if ("throw" === e.method) return y;
}
e.method = "throw";
e.arg = new TypeError("The iterator does not provide a 'throw' method");
}
return y;
}
var o = L(n, t.iterator, e.arg);
if ("throw" === o.type) {
e.method = "throw";
e.arg = o.arg;
e.delegate = null;
return y;
}
var i = o.arg;
if (!i) {
e.method = "throw";
e.arg = new TypeError("iterator result is not an object");
e.delegate = null;
return y;
}
if (!i.done) return i;
e[t.resultName] = i.value;
e.next = t.nextLoc;
if ("return" !== e.method) {
e.method = "next";
e.arg = r;
}
e.delegate = null;
return y;
}
function G(t) {
var r = {
tryLoc: t[0]
};
1 in t && (r.catchLoc = t[1]);
if (2 in t) {
r.finallyLoc = t[2];
r.afterLoc = t[3];
}
this.tryEntries.push(r);
}
function N(t) {
var r = t.completion || {};
r.type = "normal";
delete r.arg;
t.completion = r;
}
function P(t) {
this.tryEntries = [ {
tryLoc: "root"
} ];
t.forEach(G, this);
this.reset(!0);
}
function F(t) {
if (t) {
var e = t[i];
if (e) return e.call(t);
if ("function" == typeof t.next) return t;
if (!isNaN(t.length)) {
var o = -1, a = function e() {
for (;++o < t.length; ) if (n.call(t, o)) {
e.value = t[o];
e.done = !1;
return e;
}
e.value = r;
e.done = !0;
return e;
};
return a.next = a;
}
}
return {
next: S
};
}
function S() {
return {
value: r,
done: !0
};
}
}(function() {
return this;
}() || Function("", "return this")());